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 re