diff -uprN binutils-2.13.90.0.16/COPYING.LIBGLOSS binutils-2.13.90.0.18/COPYING.LIBGLOSS --- binutils-2.13.90.0.16/COPYING.LIBGLOSS Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/COPYING.LIBGLOSS Tue Jan 21 10:21:32 2003 @@ -0,0 +1,297 @@ +The libgloss subdirectory is a collection of software from several sources. +Each have their own copyrights embedded in each file that they concern. + +(1) University of California, Berkeley + +[1a] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +and other materials related to such distribution and use +acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1b] + +Copyright (c) 1991, 2000 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1c] + +Copyright (c) 1991, 1998, 2001 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. [rescinded 22 July 1999] +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +------------------------------------------------------------- + Please note that in some of the above alternate licenses, there is a + statement regarding that acknowledgement must be made in any + advertising materials for products using the code. This restriction + no longer applies due to the following license change: + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + + In some cases the defunct clause has been removed in modified newlib code and + in some cases, the clause has been left as-is. +------------------------------------------------------------- + +(2) DJ Delorie + +Copyright (C) 1993 DJ Delorie +All rights reserved. + +Redistribution and use in source and binary forms is permitted +provided that the above copyright notice and following paragraph are +duplicated in all such forms. + +This file is distributed WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +(3) GPL (fr30 directory only) + +Copyright (C) 1998 Free Software Foundation, Inc. +Contributed by Cygnus Solutions. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. + +(4) Advanced Micro Devices + +Copyright 1989, 1990 Advanced Micro Devices, Inc. + +This software is the property of Advanced Micro Devices, Inc (AMD) which +specifically grants the user the right to modify, use and distribute this +software provided this notice is not removed or altered. All other rights +are reserved by AMD. + +AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the 29K Technical Support Center at +800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. + +Advanced Micro Devices, Inc. +29K Support Products +Mail Stop 573 +5900 E. Ben White Blvd. +Austin, TX 78741 +800-292-9263 + +(5) Array Technology Corporation and MIPS (mips/lsi33k-stub.h) + +COPYRIGHT (C) 1991, 1992 ARRAY TECHNOLOGY CORPORATION + All Rights Reserved + +This software is confidential information which is proprietary to and +a trade secret of ARRAY Technology Corporation. Use, duplication, or +disclosure is subject to the terms of a separate license agreement. + +Copyright 1985 by MIPS Computer Systems, Inc. + +(6) University of Utah and the Computer Systems Laboratory (CSL) + [applies only to hppa*-*-pro* targets] + +Copyright (c) 1990,1994 The University of Utah and +the Computer Systems Laboratory (CSL). All rights reserved. + +Permission to use, copy, modify and distribute this software is hereby +granted provided that (1) source code retains these copyright, permission, +and disclaimer notices, and (2) redistributions including binaries +reproduce the notices in supporting documentation, and (3) all advertising +materials mentioning features or use of this software display the following +acknowledgement: ``This product includes software developed by the +Computer Systems Laboratory at the University of Utah.'' + +THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS +IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF +ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + +CSL requests users of this software to return to csl-dist@cs.utah.edu any +improvements that they make and grant CSL redistribution rights. + +(7) Sun Microsystems + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + +(8) Hewlett Packard + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(9) Hans-Peter Nilsson + +Copyright (C) 2001 Hans-Peter Nilsson + +Permission to use, copy, modify, and distribute this software is +freely granted, provided that the above copyright notice, this notice +and the following disclaimer are preserved with no changes. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +(10) No Copyright + +THIS SOFTWARE IS NOT COPYRIGHTED + +(11) Cygnus Support / Cygnus Solutions + +Copyright (c) 1995, 1996, 1997, 1998, 1999 Cygnus Support + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +--------------------------------------------------------------- + Please note that the copyright above may be used with the name + Cygnus Solutions instead of Cygnus Support. Both names should + be considered interchangeable. These copyrights are now owned + by Red Hat Incorporated. +--------------------------------------------------------------- + +(12) Red Hat Incorporated + +Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +(13) Default copyright + +Unless otherwise stated in each remaining libgloss file, the remaining +files in the libgloss subdirectory are governed by the following copyright. + +Copyright (c) 1994, 1997, 2001, 2002 Red Hat Incorporated. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + The name of Red Hat Incorporated may not be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff -uprN binutils-2.13.90.0.16/COPYING.NEWLIB binutils-2.13.90.0.18/COPYING.NEWLIB --- binutils-2.13.90.0.16/COPYING.NEWLIB Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/COPYING.NEWLIB Tue Jan 21 10:21:32 2003 @@ -1,8 +1,24 @@ The newlib subdirectory is a collection of software from several sources. -Each have their own copyrights embedded in each file that they concern. +Each file may have its own copyright/license that is embedded in the source +file. + +This list documents those licenses which are more restrictive than +a BSD-like license or require the copyright notice +to be duplicated in documentation and/or other materials associated with +the distribution. Certain licenses documented here only apply to +specific targets. Certain clauses only apply if you are building the +code as part of your binary. + +Note that this list may omit certain licenses that +only pertain to the copying/modifying of the individual source code. +If you are distributing the source code, then you do not need to +worry about these omitted licenses, so long as you do not modify the +copyright information already in place. (1) University of California, Berkeley +[1a] + Copyright (c) 1990 The Regents of the University of California. All rights reserved. @@ -18,19 +34,162 @@ THIS SOFTWARE IS PROVIDED ``AS IS'' AND IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -(2) DJ Delorie (following only applies to go32 target) +[1b] -Copyright (C) 1991 DJ Delorie +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. -This file is distributed under the terms listed in the document -"copying.dj". +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +advertising materials, and other materials related to such +distribution and use acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -A copy of "copying.dj" should accompany this file; if not, a copy -should be available from where this file was obtained. This file -may not be distributed without a verbatim copy of "copying.dj". +[1c] -This file is distributed WITHOUT ANY WARRANTY; without even the implied -warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +Copyright (c) 1981, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 +The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1d] + +Copyright (c) 1988, 1990, 1993 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1e] + +Copyright (c) 1982, 1986, 1989, 1991, 1993, 1994 +The Regents of the University of California. All rights reserved. +(c) UNIX System Laboratories, Inc. +All or some portions of this file are derived from material licensed +to the University of California by American Telephone and Telegraph +Co. or Unix System Laboratories, Inc. and are reproduced herein with +the permission of UNIX System Laboratories, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1f] + +Copyright (c) 1987, 1988, 2000 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that: (1) source distributions retain this entire copyright +notice and comment, and (2) distributions including binaries display +the following acknowledgement: ``This product includes software +developed by the University of California, Berkeley and its contributors'' +in the documentation or other materials provided with the distribution +and in all advertising materials mentioning features or use of this +software. Neither the name of the University nor the names of its +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +------------------------------------------------------------- + Please note that in some of the above alternate licenses, there is a + statement regarding that acknowledgement must be made in any + advertising materials for products using the code. This restriction + no longer applies due to the following license change: + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + + In some cases the defunct clause has been removed in modified newlib code and + in some cases, the clause has been left as-is. +------------------------------------------------------------- + +(2) Cygwin (cygwin targets only) + +Copyright 2001 Red Hat, Inc. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. (3) David M. Gay at AT&T @@ -166,8 +325,308 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -(12) Unless otherwise stated in each remaining newlib file, the remaining -files in the newlib subdirectory are governed by the following copyright. +(12) SuperH, Inc. + +Copyright 2002 SuperH, Inc. All rights reserved + +This software is the property of SuperH, Inc (SuperH) which specifically +grants the user the right to modify, use and distribute this software +provided this notice is not removed or altered. All other rights are +reserved by SuperH. + +SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO +THIS SOFTWARE. IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM +THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the SuperH Support Center via +e-mail at softwaresupport@superh.com . + +SuperH, Inc. +405 River Oaks Parkway +San Jose +CA 95134 +USA + +(13) Royal Institute of Technology + +Copyright (c) 1999 Kungliga Tekniska Högskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of KTH nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(14) Alexey Zelkin + +Copyright (c) 2000, 2001 Alexey Zelkin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(15) Andrey A. Chernov + +Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(16) FreeBSD + +Copyright (c) 1997-2002 FreeBSD Project. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(17) S. L. Moshier + +Author: S. L. Moshier. + +Copyright (c) 1984,2000 S.L. Moshier + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(18) Citrus Project + +Copyright (c)1999 Citrus Project, +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(19) Todd C. Miller + +Copyright (c) 1998 Todd C. Miller +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(20) DJ Delorie (i386) + +Copyright (C) 1991 DJ Delorie +All rights reserved. + +Redistribution and use in source and binary forms is permitted +provided that the above copyright notice and following paragraph are +duplicated in all such forms. + +This file is distributed WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +(21) Free Software Foundation LGPL License (i[3456]86-*-linux* targets only) + + Copyright (C) 1990-1999, 2000, 2001 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Mark Kettenis , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. + +(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only) + +Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is 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. + +(23) Intel (i960) + +Copyright (c) 1993 Intel Corporation + +Intel hereby grants you permission to copy, modify, and distribute this +software and its documentation. Intel grants this permission provided +that the above copyright notice appears in all copies and that both the +copyright notice and this permission notice appear in supporting +documentation. In addition, Intel grants this permission provided that +you prominently mark as "not part of the original" any modifications +made to this software or documentation, and that the name of Intel +Corporation not be used in advertising or publicity pertaining to +distribution of the software or the documentation without specific, +written prior permission. + +Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR +IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or +representations regarding the use of, or the results of the use of, +the software and documentation in terms of correctness, accuracy, +reliability, currentness, or otherwise; and you rely on the software, +documentation and results solely at your own risk. + +IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, +LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES +OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM +PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + +(24) Hewlett-Packard (hppa targets only) + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(25) Red Hat Incorporated + +Unless otherwise stated in each remaining newlib file, the remaining +files in the newlib subdirectory default to the following copyright. +It should be noted that Red Hat Incorporated now owns copyrights +belonging to Cygnus Solutions and Cygnus Support. Copyright (c) 1994, 1997, 2001, 2002 Red Hat Incorporated. All rights reserved. diff -uprN binutils-2.13.90.0.16/ChangeLog binutils-2.13.90.0.18/ChangeLog --- binutils-2.13.90.0.16/ChangeLog Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/ChangeLog Tue Jan 21 10:21:32 2003 @@ -1,3 +1,423 @@ +2003-01-19 Nathanael Nerode + + * configure.in: Add missing \. + * configure: Rebuilt. + +2003-01-17 Jakub Jelinek + + * configure.in (baseargs): Avoid using \| in sed regular + expressions. + * configure: Rebuilt. + +2003-01-16 Jakub Jelinek + + * configure.in (baseargs): Remove all supported forms of + --cache-file, --srcdir, --host, --build and --target options + from argument lists. + * configure: Rebuilt. + +2003-01-15 Alexandre Oliva + + * configure.in (noconfigdirs): Don't skip gas on IRIX 6. + * configure: Rebuilt. + +2003-01-09 Nathanael Nerode + + * configure.in: Substitute TOPLEVEL_CONFIGURE_ARGUMENTS. + * Makefile.tpl: Pass TOPLEVEL_CONFIGURE_ARGUMENTS to gcc. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2003-01-09 Christian Cornelssen + + * Makefile.tpl (BASE_FLAGS_TO_PASS): Also pass DESTDIR. + (install-info, dir.info): Prepend $(DESTDIR) to $(infodir). + * Makefile.in: Regenerate. + +2003-01-09 Alexandre Oliva + + * configure.in: Remove Makefile in build, host and target modules + unless configure was run with --no-recursion. + * configure: Rebuilt. + +2003-01-08 Chris Demetriou + + * config.guess: Update to 2003-01-03 version. + * config.sub: Update to 2003-01-03 version. + +2003-01-07 Christopher Faylor + + * configure: Regenerate with proper autoconf 2.13. + +2003-01-07 Christopher Faylor + + * configure.in: Add AC_PREREQ for consistency. + * configure: Regenerate. + +2003-01-06 Andrew Cagney + + * configure.in (GDB_TK): Add tcl directories conditional on + gdb/gdbtk directory being present. + * configure: Regenerate. + +2003-01-04 John David Anglin + + * configure.in (LD): Improve test for gcc. Try to set LD to the ld used + by gcc if LD is not defined and we are not doing a Canadian Cross. + * configure: Rebuilt. + +2003-01-01 Daniel Jacobowitz + + * src-release (ETC_SUPPORT): Add fdl.texi and texi2pod.pl. + +2002-12-31 Tom Tromey + + * Makefile.in: Rebuilt. + * Makefile.def (target_modules) [libffi]: Allow installation. + +2002-12-31 Andreas Schwab + + * configure.in: Fix use of $program_transform_name. + * configure: Regenerated. + +2002-12-30 Daniel Jacobowitz + + * configure.in (baseargs): Don't remove first configure argument. + * configure: Regenerated. + +2002-12-29 Alexandre Oliva + + * Makefile.tpl (local-distclean): Don't remove... + (multilib.ts): ... this. Moved into... + (multilib.out): ... this. Don't use sub-make. + ($(BUILD_SUBDIR)/[+module+]/Makefile, [+module+]/Makefile, + $(TARGET_SUBDIR)/[+module+]/Makefile, gcc/Makefile): Moved into... + (configure-build-[+module+], configure-[+module+], + configure-target-[+module+], configure-gcc): ... these. Test + for Makefile existence. Drop config.status from dependencies. + * Makefile.in: Rebuilt. + * configure.in: Move gcc-version-trigger to the end of + ac_configure_args. Add comments to maybedep.tmp and + serdep.tmp. Introduce --disable-serial-configure. Remove + nonopt from baseargs, matching and removing corresponding + whitespace while at it. + * configure: Rebuilt. + +2002-12-28 Alexandre Oliva + + * configure.in (host_configargs): Replace reference to + no-longer-defined buildopts with --build=${build_alias}. + * configure: Rebuilt. + +2002-12-28 Alexandre Oliva + + * Makefile.tpl ($(NOTPARALLEL)): Move to the end. Bring uses of + program_transform_name to standard idiom. + (AUTOGEN, AUTOCONF): Define. + (Makefile.in): Use $(AUTOGEN). + (Makefile): Depend on config.status, and use autoconf-style rule to + build it. Move original commands to... + (config.status): ... this new target. + (configure): Add $(srcdir). Depend on config/acx.m4. Use + $(AUTOCONF). + * Makefile.in: Rebuilt. + +2002-12-28 Nathanael Nerode + + * Makefile.tpl: Fix dramatic bustage due to change in + program_transform_name. + * Makefile.in: Regenerate. + + * configure.in: Remove unnecessary PATH setting. + * configure: Regnerate. + + * configure.in: Don't default to unprefixed tools unless + the native tools will work. + * configure: Regenerate. + + * configure.in: Convert to autoconf script. Blow away lots + of now-redundant Makefile fragments. + * configure: Generate using Autoconf. + * Makefile.tpl: Rewrite to reflect autoconfiscation. + * Makefile.in: Regenerate. + +2002-12-27 Nathanael Nerode + + * configure: Remove unneeded 'export's. Make CC_FOR_TARGET, + CXX_FOR_TARGET, GCJ_FOR_TARGET substituted in configure.in only. + + * ChangeLog: Move a couple of entries from here to winsup/cygwin, + where they belong. + +2002-12-24 Andreas Schwab + + * Makefile.tpl (multilib.out): Fix missing space. + * Makefile.in: Regenerate. + +2002-12-23 Nathanael Nerode + + * Makefile.tpl: Use shared multilib.out. Use move-if-change for it. + Convert (cd foo; make) to (cd foo && make). Clean up multilib.out. + * Makefile.in: Regenerate. + * configure.in: Remove unnecessary leftovers. + +2002-12-22 Geoffrey Keating + + * config/mt-aix43: Delete. + +2002-12-21 Geoffrey Keating + + * configure.in (extra_ranlibflags_for_target): New variable. + (*-*-darwin): Add -c to ranlib commands. + * configure (tooldir): Handle extra_ranlibflags_for_target. + +2002-12-20 Jeff Johnston + + * COPYING.NEWLIB: Updated. + * COPYING.LIBGLOSS: Ditto. + +2002-12-19 Nathanael Nerode + + * Makefile.tpl: Revert HJL's change. + * Makefile.in: Regenerated. + * configure.in: Put build_prefix before $(BUILD_SUBDIR) here, and + always. + +2002-12-19 Andreas Schwab + + * Makefile.tpl, configure.in: Substitute libstdcxx_incdir. + * Makefile.in: Regenerate. + +2002-12-18 H.J. Lu + + * Makefile.tpl: Add @build_prefix@ before $(BUILD_SUBDIR). + * Makefile.in: Regenerated. + + * configure.in (build_prefix): New. Substitute. + +2002-12-18 Nathanael Nerode + + * Makefile.tpl: Don't let real targets depend on phony targets. + * Makefile.in: Regenerate. + + * Makefile.tpl (do-info): Depend on maybe-all-texinfo, not all-texinfo. + * Makefile.in: Regenerate. + +2002-12-16 Jason Merrill + + * Makefile.tpl (all-gcc): Use 'make quickstrap' if there was a + previous 'make bootstrap'. + * Makefile.in: Regenerate. + +2002-12-17 Hans-Peter Nilsson + + * configure.in (noconfigdirs) [mmix-*-*]: Disable libgloss and gdb. + +2002-12-13 Jason Merrill + + * Makefile.tpl (check-gcc-c++): Renamed from check-c++. Don't run + library tests. + (check-c++): Just depend on it and check-target-libstdc++-v3. + * Makefile.in: Regenerate. + +2002-12-13 Nathanael Nerode + + * configure.in, Makefile.tpl, Makefile.def: Remove tclX. + * Makefile.in: Regenerate. + +2002-12-12 Jeff Johnston + + * COPYING.NEWLIB: Update list of alternate Regent of California + licenses and discuss official revoking of advertising clause. + * COPYING.LIBGLOSS: Ditto. + +2002-12-12 Alexandre Oliva + + * Makefile.tpl (configure-target-rda): Depend on $(ALL_GCC_C). + * Makefile.in: Rebuilt. + +2002-12-10 Nathanael Nerode + + * configure: Fix bug put in by gremlins. + + * Makefile.tpl: Substitute more autoconfily. + * configure: Substitute more autoconfily. + * Makefile.in: Regenerate. + +2002-12-08 Andrew Cagney + + * Makefile.tpl (all-sim): Depend on maybe-configure-gdb. + * Makefile.in (all-sim): Ditto. + +2002-12-06 DJ Delorie + + * Makefile.tpl: Change configure dependencies to not have real + targets depend on phony targets. + +2002-12-05 Nathanael Nerode + + * configure.in: Revert unintentional change. + + * src-release: Configure host subdirs. + + * Makefile.tpl: Change dependency for */multilib.out so that + it works when gcc isn't in the tree. + + * configure.in: Substitute more. + * configure: Run subconfigures from the Makefile. + * Makefile.tpl: Run subconfigures from the Makefile; add a few + convenience targets. Make sure gcc isn't rebuilt after bootstrap. + +2002-12-03 Nathanael Nerode + + * Makefile.tpl: Add targets for configuring host subdirs in Makefile, + and corresponding dependencies. + * Makefile.in: Regenerate. + + * configure.in (host_tools): Order binutils, gas and ld for + convenience in running the testsuites. + + * Makefile.tpl: Introduce rules to serialize subconfigure runs. + * Makefile.in: Regenerate. + * configure.in: Introduce rules to serialize subconfigure runs. + + * configure.in: Introduce BASE_CC_FOR_TARGET. + * Makefile.tpl: Reorganize and comment. Introduce HOST_CONFIGARGS. + Realize configure-build-* targets. Realize configure-target-* targets. + * Makefile.in: Regenerate. + +2002-12-02 Nathanael Nerode + + * configure: Move gcc_version_trigger stuff from here... + * configure.in: ...to here. + + * configure.in: Separate subconfigure options added by this file from + options given by the user. Add machinery to put args for host + subconfigures into the Makefile. + + * Makefile.tpl: Remove 'vault' targets. + * Makefile.tpl: Reorder and comment dependencies. + * Makefile.in: Regenerate. + +2002-11-28 Geoffrey Keating + + * configure.in: Move host-specific darwin noconfigdirs into + the host-specific section. + +2002-12-02 Nathanael Nerode + + * Makefile.tpl: Restore bkorb's style patch, accidentally lost + during replay. + * Makefile.in: Regenerate. + + (finishing slow-motion replay) + * configure: Remove skip-this-dir support. + * Makefile.tpl: Remove skip-this-dir support. + + * Makefile.tpl: Remove leftover support for non-autoconfiscated + subdirectories. + * Makefile.in: Regenerate. + + * Makefile.tpl: Strip out useless setting of 'dir'. + * Makefile.in: Regenerate. + +2002-12-02 Nathanael Nerode + + (finishing slow-motion replay) + * configure.in: Fix deeply stupid bug. + + * configure.in: Introduce RAW_CXX_FOR_TARGET and simplify embedded + shell code in CXX_FOR_TARGET + * Makefile.def: Introduce raw_cxx. + * Makefile.tpl: Use raw_cxx to select between CXX_FOR_TARGET and + RAW_CXX_FOR_TARGET. + * Makefile.in: Regenerate. + +2002-12-02 Nathanael Nerode + + (finishing slow-motion replay) + * Makefile.tpl: Remove unnecessary ifs. + * Makefile.in: Regenerate. + + * Makefile.tpl: Implement soft dependency machinery. Maybe-ize + dependencies. Maybe-ize build-libiberty. Create dummy install + targets for 'no_install' modules. + * configure: Move GDB_TK substitution to configure.in. Move + build_modules stuff to configure.in. + * configure.in: Implement soft dependency machinery. Maybe-ize + GDB_TK, rearrange slightly. Move build_modules stuff from configure. + * Makefile.in: Regenerate. + +2002-12-01 Nathanael Nerode + + (continuing slow-motion replay) + * Makefile.tpl: Make all-target, install-target behave similarly + to all, install (only hitting configured targets). Eliminate + unused macro defintions. + + * Makefile.tpl: Add all-gcc: all-build-libiberty dependency when + build != host. + + * Makefile.tpl: Add all-gcc: all-libiberty dependency. + + * ltcf-c.sh, ltcf-gcj.sh, Makefile.tpl: Correct BUILD/HOST confusion. + + * configure.in: Produce lists of subdir targets we're actually + configuring. Remove references to "dosrel". + * Makefile.tpl: Let configure set which subdir targets are hit. + Remove install-cross; clean up install; remove ALL. Remove + references to "dosrel". Remove "EXTRA_TARGET_HOST" hackery. + Autogenerate host module targets. Remove empty dependency lines + and redundant dependency; rearrange slightly. + * Makefile.def: Add host-side libtermcap, utils. + + * Makefile.in: Regenerate. + +2002-12-01 Nathanael Nerode + + (Continuing slow-motion replay) + * Makefile.def: Add list of recursive targets to autogenerate. + Add build_modules. + * Makefile.tpl: Autogenerate do-* targets. Autogenerate *-target-* + targets. Autogenerate *-build-* targets. + * Makefile.in: Regenerate. + +2002-11-30 Nathanael Nerode + + (Continuing slow-motion replay) + * configure: More autoconf-style substitutions. + * Makefile.tpl: More autoconf-style substitutions. + * Makefile.in: Regenerate. + +2002-11-30 Nathanael Nerode + + (Continuing slow-motion replay) + * configure: Substitute more variables in a more autoconf-friendly + way. Simplify slightly. + * Makefile.tpl: Make more variables substitutable in an + autoconf-friendly way. + * Makefile.in: Regenerate. + +2002-11-29 Nathanael Nerode + + (Continuing slow-motion replay) + * configure.in (v810*): Remove special setting of tools. + + * configure: Add support for extra required flags for ar or nm. + * configure.in (aix4.3+): Use above support for target-specific + issues, rather than using config/mt-aix43. + +2002-11-29 Nathanael Nerode + + (Starting slow-motion replay merge from gcc 3.4 b-i-b branch) + * configure: Remove 'removing', which doesn't work. Replace $subdir + with . everywhere. Replace $subdirs with ''. Replace $makesrcdir + with $srcdir. Reformat indentation. Substitute some variables + formerly hard-coded in the Makefile for build=host. + * Makefile.tpl: Autogenerate more; make more autoconf-friendly. + * Makefile.def: Autogenerate more. + * Makefile.in: Regenerate. + 2002-11-13 Bruce Korb * Makefile.tpl: syntactic cleanup diff -uprN binutils-2.13.90.0.16/ChangeLog.linux binutils-2.13.90.0.18/ChangeLog.linux --- binutils-2.13.90.0.16/ChangeLog.linux Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/ChangeLog.linux Tue Jan 21 10:21:32 2003 @@ -1,3 +1,15 @@ +2003-01-02 H.J. Lu + + * binutils.spec.in: Don't apply binutils-mips-isa.patch. + +2002-12-16 H.J. Lu + + * binutils.spec.in: Add "make configure-bfd". + +2002-12-06 H.J. Lu + + * binutils.spec.in: Apply gas-mips-gprel.patch for mips. + 2002-11-22 H.J. Lu * binutils.spec.in: Include c++filt. diff -uprN binutils-2.13.90.0.16/Makefile.def binutils-2.13.90.0.18/Makefile.def --- binutils-2.13.90.0.16/Makefile.def Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/Makefile.def Tue Jan 21 10:21:32 2003 @@ -1,6 +1,8 @@ #! /usr/bin/autogen AutoGen definitions Makefile.tpl; +build_modules= { module= libiberty; }; + host_modules= { module= ash; }; host_modules= { module= autoconf; }; host_modules= { module= automake; }; @@ -61,8 +63,15 @@ host_modules= { module= uudecode; }; host_modules= { module= wdiff; }; host_modules= { module= zip; no_check_cross=true; }; host_modules= { module= zlib; no_install=true; no_check=true; }; +host_modules= { module= gdb; with_x=true; }; +host_modules= { module= expect; with_x=true; }; +host_modules= { module= guile; with_x=true; }; +host_modules= { module= tk; with_x=true; }; +host_modules= { module= tix; with_x=true; }; +host_modules= { module= libtermcap; no_check=true; no_clean=true; }; +host_modules= { module= utils; no_check=true; }; -target_modules = { module= libstdc++-v3; }; +target_modules = { module= libstdc++-v3; raw_cxx=true; }; target_modules = { module= newlib; }; target_modules = { module= libf2c; }; target_modules = { module= libobjc; }; @@ -72,9 +81,21 @@ target_modules = { module= libgloss; no_ target_modules = { module= libiberty; }; target_modules = { module= gperf; }; target_modules = { module= examples; no_check=true; no_install=true; }; -target_modules = { module= libffi; no_install=true; }; -target_modules = { module= libjava; }; +target_modules = { module= libffi; }; +target_modules = { module= libjava; raw_cxx=true; }; target_modules = { module= zlib; }; target_modules = { module= boehm-gc; }; target_modules = { module= qthreads; }; target_modules = { module= rda; }; + +// These are (some of) the targets to be done in each subdirectory. +// Not all; these are the ones which don't have special options. +recursive_targets = { target= clean; }; +recursive_targets = { target= distclean; }; +recursive_targets = { target= dvi; }; +recursive_targets = { target= info; }; +recursive_targets = { target= install-info; }; +recursive_targets = { target= installcheck; }; +recursive_targets = { target= mostlyclean; }; +recursive_targets = { target= maintainer-clean; }; +recursive_targets = { target= TAGS; }; diff -uprN binutils-2.13.90.0.16/Makefile.in binutils-2.13.90.0.18/Makefile.in --- binutils-2.13.90.0.16/Makefile.in Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/Makefile.in Tue Jan 21 10:21:32 2003 @@ -20,11 +20,34 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -# Tell GNU make 3.79 not to run the top level in parallel. This -# prevents contention for $builddir/$target/config.cache, as well -# as minimizing scatter in file system caches. -NOTPARALLEL = .NOTPARALLEL -$(NOTPARALLEL): +VPATH=@srcdir@ +links=@configlinks@ + +build_alias=@build_alias@ +build_cpu=@build_cpu@ +build_vendor=@build_vendor@ +build_os=@build_os@ +build_canonical=@build_cpu@-@build_vendor@-@build_os@ +host_alias=@host_alias@ +host_cpu=@host_cpu@ +host_vendor=@host_vendor@ +host_os=@host_os@ +host_canonical=@host_cpu@-@host_vendor@-@host_os@ +target_alias=@target_alias@ +target_cpu=@target_cpu@ +target_vendor=@target_vendor@ +target_os=@target_os@ +target_canonical=@target_cpu@-@target_vendor@-@target_os@ + +enable_shared = @enable_shared@ +enable_threads = @enable_threads@ +enable_version_specific_runtime_libs = @enable_version_specific_runtime_libs@ +# The file containing GCC's version number. +gcc_version_trigger = @gcc_version_trigger@ +gcc_version = @gcc_version@ + +# The gcc driver likes to know the arguments it was configured with. +TOPLEVEL_CONFIGURE_ARGUMENTS=@TOPLEVEL_CONFIGURE_ARGUMENTS@ srcdir = @srcdir@ @@ -43,7 +66,8 @@ includedir = @includedir@ oldincludedir = @oldincludedir@ infodir = @infodir@ mandir = @mandir@ -gxx_include_dir=@gxx_include_dir@ +gxx_include_dir = @gxx_include_dir@ +libstdcxx_incdir = @libstdcxx_incdir@ tooldir = @tooldir@ build_tooldir = @build_tooldir@ @@ -80,22 +104,19 @@ INSTALL_PROGRAM = $(INSTALL) $(INSTALL_P INSTALL_SCRIPT = $(INSTALL) INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_DOSREL = install-dosrel-fake - -AS = as -AR = ar +AS = @AS@ +AR = @AR@ AR_FLAGS = rc -CC = cc +CC = @CC@ # Special variables passed down in EXTRA_GCC_FLAGS. They are defined # here so that they can be overridden by Makefile fragments. -HOST_CC = $(CC_FOR_BUILD) -BUILD_PREFIX = -BUILD_PREFIX_1 = loser- - -# These flag values are normally overridden by the configure script. -CFLAGS = -g -CXXFLAGS = -g -O2 +BUILD_CC = $(CC_FOR_BUILD) +BUILD_PREFIX = @BUILD_PREFIX@ +BUILD_PREFIX_1 = @BUILD_PREFIX_1@ + +CFLAGS = @CFLAGS@ +CXXFLAGS = @CXXFLAGS@ LDFLAGS = LIBCFLAGS = $(CFLAGS) @@ -110,32 +131,34 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARG PICFLAG = PICFLAG_FOR_TARGET = -CXX = c++ +CXX = @CXX@ # Use -O2 to stress test the compiler. LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates CXXFLAGS_FOR_TARGET = $(CXXFLAGS) LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates -DLLTOOL = dlltool -WINDRES = windres +DLLTOOL = @DLLTOOL@ +WINDRES = @WINDRES@ -NM = nm +NM = @NM@ -LD = ld +LD = @LD@ # These values are substituted by configure. DEFAULT_YACC = @DEFAULT_YACC@ DEFAULT_LEX = @DEFAULT_LEX@ DEFAULT_M4 = @DEFAULT_M4@ -BISON = `if [ -f $$r/bison/bison ] ; then \ +BISON=@BISON@ +USUAL_BISON = `if [ -f $$r/bison/bison ] ; then \ echo $$r/bison/bison -L $$s/bison/ ; \ else \ echo bison ; \ fi` -YACC = `if [ -f $$r/bison/bison ] ; then \ +YACC=@YACC@ +USUAL_YACC = `if [ -f $$r/bison/bison ] ; then \ echo $$r/bison/bison -y -L $$s/bison/ ; \ elif [ -f $$r/byacc/byacc ] ; then \ echo $$r/byacc/byacc ; \ @@ -143,7 +166,8 @@ YACC = `if [ -f $$r/bison/bison ] ; then echo ${DEFAULT_YACC} ; \ fi` -LEX = `if [ -f $$r/flex/flex ] ; \ +LEX=@LEX@ +USUAL_LEX = `if [ -f $$r/flex/flex ] ; \ then echo $$r/flex/flex ; \ else echo ${DEFAULT_LEX} ; fi` @@ -153,7 +177,8 @@ M4 = `if [ -f $$r/m4/m4 ] ; \ # For an installed makeinfo, we require it to be from texinfo 4 or # higher, else we use the "missing" dummy. -MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ +MAKEINFO=@MAKEINFO@ +USUAL_MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ then echo $$r/texinfo/makeinfo/makeinfo ; \ else if (makeinfo --version \ | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \ @@ -175,7 +200,7 @@ RUNTEST = `if [ -f $$s/dejagnu/runtest ] # compilers to use to create programs which must be run in the build # environment. -CC_FOR_BUILD = $(CC) +CC_FOR_BUILD = @CC_FOR_BUILD@ CXX_FOR_BUILD = $(CXX) SUBDIRS = @configdirs@ @@ -192,13 +217,17 @@ BUILD_CONFIGDIRS = libiberty BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring -# directories built for the target. -TARGET_CONFIGARGS = @target_configargs@ - -# This is set by the configure script to the arguments to use when configuring # directories built for the build system. BUILD_CONFIGARGS = @build_configargs@ +# This is set by the configure script to the arguments to use when configuring +# directories built for the host system. +HOST_CONFIGARGS = @host_configargs@ + +# This is set by the configure script to the arguments to use when configuring +# directories built for the target. +TARGET_CONFIGARGS = @target_configargs@ + # This is set by configure to REALLY_SET_LIB_PATH if --enable-shared # was used. SET_LIB_PATH = @SET_LIB_PATH@ @@ -221,35 +250,24 @@ TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/l REALLY_SET_LIB_PATH = \ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); -ALL = all.normal -INSTALL_TARGET = installdirs \ - install-gcc \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - -INSTALL_TARGET_CROSS = installdirs \ - install-gcc-cross \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - # Should be substed by configure.in FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ CC_FOR_TARGET = @CC_FOR_TARGET@ CXX_FOR_TARGET = @CXX_FOR_TARGET@ +RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@ CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ +RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ GCJ_FOR_TARGET = @GCJ_FOR_TARGET@ # If GCC_FOR_TARGET is not overriden on the command line, then this # variable is passed down to the gcc Makefile, where it is used to # build libgcc2.a. We define it here so that it can itself be # overridden on the command line. -GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) +GCC_FOR_TARGET=@GCC_FOR_TARGET@ +USUAL_GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) -AS_FOR_TARGET = ` \ +AS_FOR_TARGET=@AS_FOR_TARGET@ +USUAL_AS_FOR_TARGET = ` \ if [ -f $$r/gas/as-new ] ; then \ echo $$r/gas/as-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ @@ -258,11 +276,12 @@ AS_FOR_TARGET = ` \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(AS); \ else \ - t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \ + echo as | sed '$(program_transform_name)' ; \ fi; \ fi` -LD_FOR_TARGET = ` \ +LD_FOR_TARGET=@LD_FOR_TARGET@ +USUAL_LD_FOR_TARGET = ` \ if [ -f $$r/ld/ld-new ] ; then \ echo $$r/ld/ld-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ @@ -271,44 +290,48 @@ LD_FOR_TARGET = ` \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(LD); \ else \ - t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \ + echo ld | sed '$(program_transform_name)' ; \ fi; \ fi` -DLLTOOL_FOR_TARGET = ` \ +DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ +USUAL_DLLTOOL_FOR_TARGET = ` \ if [ -f $$r/binutils/dlltool ] ; then \ echo $$r/binutils/dlltool ; \ else \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(DLLTOOL); \ else \ - t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \ + echo dlltool | sed '$(program_transform_name)' ; \ fi; \ fi` -WINDRES_FOR_TARGET = ` \ +WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@ +USUAL_WINDRES_FOR_TARGET = ` \ if [ -f $$r/binutils/windres ] ; then \ echo $$r/binutils/windres ; \ else \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(WINDRES); \ else \ - t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \ + echo windres | sed '$(program_transform_name)' ; \ fi; \ fi` -AR_FOR_TARGET = ` \ +AR_FOR_TARGET=@AR_FOR_TARGET@ +USUAL_AR_FOR_TARGET = ` \ if [ -f $$r/binutils/ar ] ; then \ echo $$r/binutils/ar ; \ else \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(AR); \ else \ - t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \ + echo ar | sed '$(program_transform_name)' ; \ fi; \ fi` -RANLIB_FOR_TARGET = ` \ +RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ +USUAL_RANLIB_FOR_TARGET = ` \ if [ -f $$r/binutils/ranlib ] ; then \ echo $$r/binutils/ranlib ; \ else \ @@ -319,11 +342,12 @@ RANLIB_FOR_TARGET = ` \ echo ranlib; \ fi; \ else \ - t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \ + echo ranlib | sed '$(program_transform_name)' ; \ fi; \ fi` -NM_FOR_TARGET = ` \ +NM_FOR_TARGET=@NM_FOR_TARGET@ +USUAL_NM_FOR_TARGET = ` \ if [ -f $$r/binutils/nm-new ] ; then \ echo $$r/binutils/nm-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ @@ -332,7 +356,7 @@ NM_FOR_TARGET = ` \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(NM); \ else \ - t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \ + echo nm | sed '$(program_transform_name)' ; \ fi; \ fi` @@ -341,14 +365,11 @@ NM_FOR_TARGET = ` \ all: all.normal .PHONY: all -# These can be overridden by config/mt-*. -# The _TARGET_ is because they're specified in mt-foo. -# The _HOST_ is because they're programs that run on the host. -EXTRA_TARGET_HOST_ALL_MODULES = -EXTRA_TARGET_HOST_INSTALL_MODULES = -EXTRA_TARGET_HOST_CHECK_MODULES = - #### host and target specific makefile fragments come in here. +@target_makefile_frag@ +@alphaieee_frag@ +@ospace_frag@ +@host_makefile_frag@ ### # Flags to pass down to all sub-makes. @@ -367,6 +388,7 @@ BASE_FLAGS_TO_PASS = \ "CXXFLAGS=$(CXXFLAGS)" \ "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ + "DESTDIR=$(DESTDIR)" \ "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ "INSTALL=$(INSTALL)" \ "INSTALL_DATA=$(INSTALL_DATA)" \ @@ -422,7 +444,8 @@ BASE_FLAGS_TO_PASS = \ # so we pass these variables down unchanged. They must not contain # single nor double quotes. RECURSE_FLAGS = \ - CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' + CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \ + RAW_CXX_FOR_TARGET='$(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \ # Flags to pass down to most sub-makes, in which we're building with # the host environment. @@ -485,7 +508,7 @@ EXTRA_GCC_FLAGS = \ 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ - 'HOST_CC=$(CC_FOR_BUILD)' \ + 'BUILD_CC=$(CC_FOR_BUILD)' \ 'BUILD_PREFIX=$(BUILD_PREFIX)' \ 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ 'NM=$(NM)' \ @@ -505,318 +528,8 @@ EXTRA_GCC_FLAGS = \ GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) -# This is a list of the targets for all of the modules which are compiled -# using the build machine's native compiler. Configure edits the second -# macro for build!=host builds. -ALL_BUILD_MODULES_LIST = \ - all-build-libiberty -ALL_BUILD_MODULES = @all_build_modules@ - -# This is a list of the configure targets for all of the modules which -# are compiled using the native tools. -CONFIGURE_BUILD_MODULES = \ - configure-build-libiberty - -# This is a list of the targets for all of the modules which are compiled -# using $(FLAGS_TO_PASS). -ALL_MODULES = \ - all-ash \ - all-autoconf \ - all-automake \ - all-bash \ - all-bfd \ - all-opcodes \ - all-binutils \ - all-bison \ - all-byacc \ - all-bzip2 \ - all-db \ - all-dejagnu \ - all-diff \ - all-dosutils \ - all-etc \ - all-fastjar \ - all-fileutils \ - all-findutils \ - all-find \ - all-flex \ - all-gas \ - all-gawk \ - all-gettext \ - all-gnuserv \ - all-gprof \ - all-grep \ - all-gzip \ - all-hello \ - all-indent \ - all-intl \ - all-tcl \ - all-itcl \ - all-ld \ - all-libgui \ - all-libiberty \ - all-libtool \ - all-m4 \ - all-make \ - all-mmalloc \ - all-patch \ - all-perl \ - all-prms \ - all-rcs \ - all-readline \ - all-release \ - all-recode \ - all-sed \ - all-send-pr \ - all-shellutils \ - all-sid \ - all-sim \ - all-snavigator \ - all-tar \ - all-texinfo \ - all-textutils \ - all-time \ - all-uudecode \ - all-wdiff \ - all-zip \ - all-zlib \ - $(EXTRA_TARGET_HOST_ALL_MODULES) - -# This is a list of the check targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -# -# The list is in two parts. The first lists those tools which -# are tested as part of the host's native tool-chain, and not -# tested in a cross configuration. -NATIVE_CHECK_MODULES = \ - check-bison \ - check-byacc \ - check-fastjar \ - check-flex \ - check-zip - -CROSS_CHECK_MODULES = \ - check-ash \ - check-autoconf \ - check-automake \ - check-bash \ - check-bfd \ - check-opcodes \ - check-binutils \ - check-bzip2 \ - check-db \ - check-dejagnu \ - check-diff \ - check-etc \ - check-fileutils \ - check-findutils \ - check-find \ - check-gas \ - check-gawk \ - check-gettext \ - check-gnuserv \ - check-gprof \ - check-grep \ - check-gzip \ - check-hello \ - check-indent \ - check-intl \ - check-tcl \ - check-itcl \ - check-ld \ - check-libgui \ - check-libiberty \ - check-libtool \ - check-m4 \ - check-make \ - check-patch \ - check-perl \ - check-prms \ - check-rcs \ - check-readline \ - check-recode \ - check-sed \ - check-send-pr \ - check-shellutils \ - check-sid \ - check-sim \ - check-snavigator \ - check-tar \ - check-texinfo \ - check-textutils \ - check-time \ - check-uudecode \ - check-wdiff \ - $(EXTRA_TARGET_HOST_CHECK_MODULES) - -CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) - -# This is a list of the install targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -INSTALL_MODULES = \ - install-ash \ - install-autoconf \ - install-automake \ - install-bash \ - install-bfd \ - install-opcodes \ - install-binutils \ - install-bison \ - install-byacc \ - install-bzip2 \ - install-db \ - install-dejagnu \ - install-diff \ - install-dosutils \ - install-etc \ - install-fastjar \ - install-fileutils \ - install-findutils \ - install-find \ - install-flex \ - install-gas \ - install-gawk \ - install-gettext \ - install-gnuserv \ - install-gprof \ - install-grep \ - install-gzip \ - install-hello \ - install-indent \ - install-intl \ - install-tcl \ - install-itcl \ - install-ld \ - install-libgui \ - install-libiberty \ - install-libtool \ - install-m4 \ - install-make \ - install-mmalloc \ - install-patch \ - install-perl \ - install-prms \ - install-rcs \ - install-readline \ - install-recode \ - install-sed \ - install-send-pr \ - install-shellutils \ - install-sid \ - install-sim \ - install-snavigator \ - install-tar \ - install-textutils \ - install-time \ - install-uudecode \ - install-wdiff \ - install-zip \ - $(EXTRA_TARGET_HOST_INSTALL_MODULES) - -# This is a list of the targets for all of the modules which are compiled -# using $(X11_FLAGS_TO_PASS). -ALL_X11_MODULES = \ - all-gdb \ - all-expect \ - all-guile \ - all-tclX \ - all-tk \ - all-tix - -# This is a list of the check targets for all of the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -CHECK_X11_MODULES = \ - check-gdb \ - check-guile \ - check-expect \ - check-tclX \ - check-tk \ - check-tix - -# This is a list of the install targets for all the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -INSTALL_X11_MODULES = \ - install-gdb \ - install-guile \ - install-expect \ - install-tclX \ - install-tk \ - install-tix - -# This is a list of the targets for all of the modules which are compiled -# using $(TARGET_FLAGS_TO_PASS). -ALL_TARGET_MODULES = \ - all-target-libstdc++-v3 \ - all-target-newlib \ - all-target-libf2c \ - all-target-libobjc \ - all-target-libtermcap \ - all-target-winsup \ - all-target-libgloss \ - all-target-libiberty \ - all-target-gperf \ - all-target-examples \ - all-target-libffi \ - all-target-libjava \ - all-target-zlib \ - all-target-boehm-gc \ - all-target-qthreads \ - all-target-rda - -# This is a list of the configure targets for all of the modules which -# are compiled using the target tools. -CONFIGURE_TARGET_MODULES = \ - configure-target-libstdc++-v3 \ - configure-target-newlib \ - configure-target-libf2c \ - configure-target-libobjc \ - configure-target-libtermcap \ - configure-target-winsup \ - configure-target-libgloss \ - configure-target-libiberty \ - configure-target-gperf \ - configure-target-examples \ - configure-target-libffi \ - configure-target-libjava \ - configure-target-zlib \ - configure-target-boehm-gc \ - configure-target-qthreads \ - configure-target-rda - -# This is a list of the check targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -CHECK_TARGET_MODULES = \ - check-target-libstdc++-v3 \ - check-target-newlib \ - check-target-libf2c \ - check-target-libobjc \ - check-target-winsup \ - check-target-libiberty \ - check-target-gperf \ - check-target-libffi \ - check-target-libjava \ - check-target-zlib \ - check-target-boehm-gc \ - check-target-qthreads \ - check-target-rda - -# This is a list of the install targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -INSTALL_TARGET_MODULES = \ - install-target-libstdc++-v3 \ - install-target-newlib \ - install-target-libf2c \ - install-target-libobjc \ - install-target-libtermcap \ - install-target-winsup \ - install-target-libgloss \ - install-target-libiberty \ - install-target-gperf \ - install-target-libjava \ - install-target-zlib \ - install-target-boehm-gc \ - install-target-qthreads \ - install-target-rda +configure-host: @configure_host_modules@ +configure-target: @configure_target_modules@ # This is a list of the targets for which we can do a clean-{target}. CLEAN_MODULES = \ @@ -879,7 +592,8 @@ CLEAN_MODULES = \ clean-uudecode \ clean-wdiff \ clean-zip \ - clean-zlib + clean-zlib \ + clean-utils # All of the target modules that can be cleaned CLEAN_TARGET_MODULES = \ @@ -897,25 +611,25 @@ CLEAN_TARGET_MODULES = \ clean-target-zlib \ clean-target-boehm-gc \ clean-target-qthreads \ - clean-target-rda + clean-target-rda # All of the x11 modules that can be cleaned CLEAN_X11_MODULES = \ clean-gdb \ clean-expect \ clean-guile \ - clean-tclX \ clean-tk \ - clean-tix + clean-tix # The target built for a native build. +# This list only includes modules actually being configured and built. .PHONY: all.normal -all.normal: \ - $(ALL_BUILD_MODULES) \ - $(ALL_MODULES) \ - $(ALL_X11_MODULES) \ - $(ALL_TARGET_MODULES) \ - all-gcc +all.normal: @all_build_modules@ \ + @all_host_modules@ \ + @all_target_modules@ + +all-host: @all_host_modules@ +all-target: @all_target_modules@ # Do a target for all the subdirectories. A ``make do-X'' will do a # ``make X'' in all subdirectories (because, in general, there is a @@ -924,20 +638,10 @@ all.normal: \ # This target ensures that $(BASE_FLAGS_TO_PASS) appears only once, # because it is so large that it can easily overflow the command line # length limit on some systems. -DO_X = \ - do-clean \ - do-distclean \ - do-dvi \ - do-info \ - do-install-info \ - do-installcheck \ - do-mostlyclean \ - do-maintainer-clean \ - do-TAGS -.PHONY: $(DO_X) -$(DO_X): - @target=`echo $@ | sed -e 's/^do-//'`; \ - r=`${PWD}`; export r; \ + +.PHONY: do-clean +do-clean: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ for i in $(SUBDIRS) -dummy-; do \ @@ -954,16 +658,16 @@ $(DO_X): done; \ ;; \ esac ; \ - if (cd ./$$i; \ + (cd ./$$i && \ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - $${target}); \ - then true; else exit 1; fi; \ + clean) \ + || exit 1; \ else true; fi; \ done - @target=`echo $@ | sed -e 's/^do-//'`; \ + # Break into two pieces r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ @@ -972,71 +676,451 @@ $(DO_X): for flag in $(EXTRA_TARGET_FLAGS); do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ - if (cd $(TARGET_SUBDIR)/$$i; \ + (cd $(TARGET_SUBDIR)/$$i && \ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - $${target}); \ - then true; else exit 1; fi; \ + clean) \ + || exit 1; \ else true; fi; \ done -# Here are the targets which correspond to the do-X targets. - -.PHONY: info installcheck dvi install-info -.PHONY: clean distclean mostlyclean maintainer-clean realclean -.PHONY: local-clean local-distclean local-maintainer-clean -info: do-info -installcheck: do-installcheck -dvi: do-dvi - -# Make sure makeinfo is built before we do a `make info'. -do-info: all-texinfo - -install-info: do-install-info dir.info +.PHONY: do-distclean +do-distclean: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ - if [ -f dir.info ] ; then \ - $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \ - else true ; fi + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + distclean) \ + || exit 1; \ + else true; fi; \ + done -local-clean: - -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log +.PHONY: do-dvi +do-dvi: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + dvi) \ + || exit 1; \ + else true; fi; \ + done -local-distclean: - -rm -f Makefile config.status config.cache mh-frag mt-frag - -if [ "$(TARGET_SUBDIR)" != "." ]; then \ - rm -rf $(TARGET_SUBDIR); \ - else true; fi - -rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile - -rm -f texinfo/doc/Makefile texinfo/po/POTFILES - -rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null - -rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null - -rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null +.PHONY: do-info +do-info: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + info) \ + || exit 1; \ + else true; fi; \ + done -local-maintainer-clean: - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." +.PHONY: do-install-info +do-install-info: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + install-info) \ + || exit 1; \ + else true; fi; \ + done -clean: do-clean local-clean -mostlyclean: do-mostlyclean local-clean -distclean: do-distclean local-clean local-distclean -maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean -maintainer-clean: local-distclean -realclean: maintainer-clean +.PHONY: do-installcheck +do-installcheck: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + installcheck) \ + || exit 1; \ + else true; fi; \ + done -# This rule is used to clean specific modules. -.PHONY: $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc -$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc: - @dir=`echo $@ | sed -e 's/clean-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \ - else \ - true; \ - fi +.PHONY: do-mostlyclean +do-mostlyclean: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + mostlyclean) \ + || exit 1; \ + else true; fi; \ + done + +.PHONY: do-maintainer-clean +do-maintainer-clean: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + maintainer-clean) \ + || exit 1; \ + else true; fi; \ + done + +.PHONY: do-TAGS +do-TAGS: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(SUBDIRS) -dummy-; do \ + if [ -f ./$$i/Makefile ]; then \ + case $$i in \ + gcc) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + *) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + ;; \ + esac ; \ + (cd ./$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1; \ + else true; fi; \ + done + # Break into two pieces + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + for i in $(TARGET_CONFIGDIRS) -dummy-; do \ + if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/$$i && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + TAGS) \ + || exit 1; \ + else true; fi; \ + done + + + +# Here are the targets which correspond to the do-X targets. + +.PHONY: info installcheck dvi install-info +.PHONY: clean distclean mostlyclean maintainer-clean realclean +.PHONY: local-clean local-distclean local-maintainer-clean +info: do-info +installcheck: do-installcheck +dvi: do-dvi + +# Make sure makeinfo is built before we do a `make info', if we're +# in fact building texinfo. +do-info: maybe-all-texinfo + +install-info: do-install-info dir.info + s=`cd $(srcdir); ${PWD}`; export s; \ + if [ -f dir.info ] ; then \ + $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \ + else true ; fi + +local-clean: + -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log + +local-distclean: + -rm -f Makefile config.status config.cache mh-frag mt-frag + -rm -f multilib.out multilib.tmp maybedep.tmp serdep.tmp + -if [ "$(TARGET_SUBDIR)" != "." ]; then \ + rm -rf $(TARGET_SUBDIR); \ + else true; fi + -rm -f texinfo/po/Makefile texinfo/po/Makefile.in texinfo/info/Makefile + -rm -f texinfo/doc/Makefile texinfo/po/POTFILES + -rmdir texinfo/doc texinfo/info texinfo/intl texinfo/lib 2>/dev/null + -rmdir texinfo/makeinfo texinfo/po texinfo/util 2>/dev/null + -rmdir fastjar gcc libiberty texinfo zlib 2>/dev/null + +local-maintainer-clean: + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +clean: do-clean local-clean +mostlyclean: do-mostlyclean local-clean +distclean: do-distclean local-clean local-distclean +maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean +maintainer-clean: local-distclean +realclean: maintainer-clean + +# This rule is used to clean specific modules. +.PHONY: $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc +$(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc: + @dir=`echo $@ | sed -e 's/clean-//'`; \ + if [ -f ./$${dir}/Makefile ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $${dir} && $(MAKE) $(FLAGS_TO_PASS) clean); \ + else \ + true; \ + fi .PHONY: $(CLEAN_TARGET_MODULES) $(CLEAN_TARGET_MODULES): @@ -1046,7 +1130,7 @@ $(CLEAN_TARGET_MODULES): r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \ + (cd $(TARGET_SUBDIR)/$${dir} && $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \ else \ true; \ fi @@ -1064,10 +1148,9 @@ clean-target-libgcc: check: $(MAKE) do-check NOTPARALLEL=parallel-ok -do-check: $(CHECK_MODULES) \ - $(CHECK_TARGET_MODULES) \ - $(CHECK_X11_MODULES) \ - check-gcc +# Only include modules actually being configured and built. +do-check: @check_host_modules@ \ + @check_target_modules@ # Automated reporting of test results. @@ -1092,34 +1175,20 @@ mail-report-with-warnings.log: warning.l # Installation targets. -.PHONY: install install-cross uninstall source-vault binary-vault vault-install -install: $(INSTALL_TARGET) -install-cross: $(INSTALL_TARGET_CROSS) +.PHONY: install uninstall +install: installdirs @install_host_modules@ @install_target_modules@ + +install-target: @install_target_modules@ uninstall: @echo "the uninstall target is not supported in this tree" -source-vault: - $(MAKE) -f ./release/Build-A-Release \ - host=$(host_alias) source-vault - -binary-vault: - $(MAKE) -f ./release/Build-A-Release \ - host=$(host_alias) target=$(target_alias) - -vault-install: - @if [ -f ./release/vault-install ] ; then \ - ./release/vault-install $(host_alias) $(target_alias) ; \ - else \ - true ; \ - fi - .PHONY: install.all install.all: install-no-fixedincludes @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}` ; export r ; \ $(SET_LIB_PATH) \ - (cd ./gcc; \ + (cd ./gcc && \ $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \ else \ true ; \ @@ -1128,88 +1197,6006 @@ install.all: install-no-fixedincludes # install-no-fixedincludes is used because Cygnus can not distribute # the fixed header files. .PHONY: install-no-fixedincludes -install-no-fixedincludes: \ - installdirs \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - gcc-no-fixedincludes +install-no-fixedincludes: installdirs @install_host_modules_nogcc@ \ + @install_target_modules@ gcc-no-fixedincludes -# Install the gcc headers files, but not the fixed include files, -# which Cygnus is not allowed to distribute. This rule is very -# dependent on the workings of the gcc Makefile.in. -.PHONY: gcc-no-fixedincludes -gcc-no-fixedincludes: - @if [ -f ./gcc/Makefile ]; then \ - rm -rf gcc/tmp-include; \ - mv gcc/include gcc/tmp-include 2>/dev/null; \ - mkdir gcc/include; \ - cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \ - touch gcc/stmp-fixinc gcc/include/fixed; \ - rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ - $(SET_LIB_PATH) \ - (cd ./gcc; \ - $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ - rm -rf gcc/include; \ - mv gcc/tmp-include gcc/include 2>/dev/null; \ - else true; fi +### other supporting targets -# This rule is used to build the modules which are built with the -# build machine's native compiler. -.PHONY: $(ALL_BUILD_MODULES) -$(ALL_BUILD_MODULES): - dir=`echo $@ | sed -e 's/all-build-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +MAKEDIRS= \ + $(DESTDIR)$(prefix) \ + $(DESTDIR)$(exec_prefix) +.PHONY: installdirs +installdirs: mkinstalldirs + $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS) + +dir.info: do-install-info + if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \ + $(srcdir)/texinfo/gen-info-dir $(DESTDIR)$(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \ + mv -f dir.info.new dir.info ; \ + else true ; \ + fi + +dist: + @echo "Building a full distribution of this tree isn't done" + @echo "via 'make dist'. Check out the etc/ subdirectory" + +etags tags: TAGS + +# Right now this just builds TAGS in each subdirectory. emacs19 has the +# ability to use several tags files at once, so there is probably no need +# to combine them into one big TAGS file (like CVS 1.3 does). We could +# (if we felt like it) have this Makefile write a piece of elisp which +# the user could load to tell emacs19 where all the TAGS files we just +# built are. +TAGS: do-TAGS + +# -------------------------------------- +# Modules which run on the build machine +# -------------------------------------- + +.PHONY: configure-build-libiberty maybe-configure-build-libiberty +maybe-configure-build-libiberty: +configure-build-libiberty: + @test ! -f $(BUILD_SUBDIR)/libiberty/Makefile || exit 0; \ + [ -d $(BUILD_SUBDIR)/libiberty ] || \ + mkdir $(BUILD_SUBDIR)/libiberty;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + AR="$(AR_FOR_BUILD)"; export AR; \ + AS="$(AS_FOR_BUILD)"; export AS; \ + CC="$(CC_FOR_BUILD)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CXX="$(CXX_FOR_BUILD)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + LD="$(LD_FOR_BUILD)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ + NM="$(NM_FOR_BUILD)"; export NM; \ + RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \ + echo Configuring in $(BUILD_SUBDIR)/libiberty; \ + cd "$(BUILD_SUBDIR)/libiberty" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(BUILD_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(BUILD_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libiberty "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libiberty"; \ + libsrcdir="$$s/libiberty"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(BUILD_CONFIGARGS) $${srcdiroption} \ + --with-build-subdir="$(BUILD_SUBDIR)" \ + || exit 1 + +.PHONY: all-build-libiberty maybe-all-build-libiberty +maybe-all-build-libiberty: +all-build-libiberty: configure-build-libiberty + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + (cd $(BUILD_SUBDIR)/libiberty && $(MAKE) all) + + +# -------------------------------------- +# Modules which run on the host machine +# -------------------------------------- + +.PHONY: configure-ash maybe-configure-ash +maybe-configure-ash: +configure-ash: + @test ! -f ash/Makefile || exit 0; \ + [ -d ash ] || mkdir ash; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in ash; \ + cd ash || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/ash"; \ + libsrcdir="$$s/ash";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/ash"; \ + libsrcdir="$$s/ash";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-ash maybe-all-ash +maybe-all-ash: +all-ash: configure-ash + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd ash && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-ash +check-ash: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd ash && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-ash maybe-install-ash +maybe-install-ash: +install-ash: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd ash && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-autoconf maybe-configure-autoconf +maybe-configure-autoconf: +configure-autoconf: + @test ! -f autoconf/Makefile || exit 0; \ + [ -d autoconf ] || mkdir autoconf; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in autoconf; \ + cd autoconf || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/autoconf"; \ + libsrcdir="$$s/autoconf";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/autoconf"; \ + libsrcdir="$$s/autoconf";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-autoconf maybe-all-autoconf +maybe-all-autoconf: +all-autoconf: configure-autoconf + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-autoconf +check-autoconf: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-autoconf maybe-install-autoconf +maybe-install-autoconf: +install-autoconf: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd autoconf && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-automake maybe-configure-automake +maybe-configure-automake: +configure-automake: + @test ! -f automake/Makefile || exit 0; \ + [ -d automake ] || mkdir automake; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in automake; \ + cd automake || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/automake"; \ + libsrcdir="$$s/automake";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/automake"; \ + libsrcdir="$$s/automake";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-automake maybe-all-automake +maybe-all-automake: +all-automake: configure-automake + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd automake && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-automake +check-automake: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd automake && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-automake maybe-install-automake +maybe-install-automake: +install-automake: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd automake && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-bash maybe-configure-bash +maybe-configure-bash: +configure-bash: + @test ! -f bash/Makefile || exit 0; \ + [ -d bash ] || mkdir bash; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in bash; \ + cd bash || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/bash"; \ + libsrcdir="$$s/bash";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/bash"; \ + libsrcdir="$$s/bash";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-bash maybe-all-bash +maybe-all-bash: +all-bash: configure-bash + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bash && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-bash +check-bash: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bash && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-bash maybe-install-bash +maybe-install-bash: +install-bash: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bash && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-bfd maybe-configure-bfd +maybe-configure-bfd: +configure-bfd: + @test ! -f bfd/Makefile || exit 0; \ + [ -d bfd ] || mkdir bfd; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in bfd; \ + cd bfd || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/bfd"; \ + libsrcdir="$$s/bfd";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/bfd"; \ + libsrcdir="$$s/bfd";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-bfd maybe-all-bfd +maybe-all-bfd: +all-bfd: configure-bfd + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bfd && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-bfd +check-bfd: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bfd && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-bfd maybe-install-bfd +maybe-install-bfd: +install-bfd: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bfd && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-opcodes maybe-configure-opcodes +maybe-configure-opcodes: +configure-opcodes: + @test ! -f opcodes/Makefile || exit 0; \ + [ -d opcodes ] || mkdir opcodes; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in opcodes; \ + cd opcodes || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/opcodes"; \ + libsrcdir="$$s/opcodes";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/opcodes"; \ + libsrcdir="$$s/opcodes";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-opcodes maybe-all-opcodes +maybe-all-opcodes: +all-opcodes: configure-opcodes + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-opcodes +check-opcodes: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-opcodes maybe-install-opcodes +maybe-install-opcodes: +install-opcodes: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd opcodes && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-binutils maybe-configure-binutils +maybe-configure-binutils: +configure-binutils: + @test ! -f binutils/Makefile || exit 0; \ + [ -d binutils ] || mkdir binutils; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in binutils; \ + cd binutils || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/binutils"; \ + libsrcdir="$$s/binutils";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/binutils"; \ + libsrcdir="$$s/binutils";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-binutils maybe-all-binutils +maybe-all-binutils: +all-binutils: configure-binutils + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd binutils && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-binutils +check-binutils: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd binutils && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-binutils maybe-install-binutils +maybe-install-binutils: +install-binutils: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd binutils && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-bison maybe-configure-bison +maybe-configure-bison: +configure-bison: + @test ! -f bison/Makefile || exit 0; \ + [ -d bison ] || mkdir bison; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in bison; \ + cd bison || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/bison"; \ + libsrcdir="$$s/bison";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/bison"; \ + libsrcdir="$$s/bison";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-bison maybe-all-bison +maybe-all-bison: +all-bison: configure-bison + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bison && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-bison +# This module is only tested in a native toolchain. +check-bison: + @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bison && $(MAKE) $(FLAGS_TO_PASS) check); \ + fi + + + +.PHONY: install-bison maybe-install-bison +maybe-install-bison: +install-bison: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bison && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-byacc maybe-configure-byacc +maybe-configure-byacc: +configure-byacc: + @test ! -f byacc/Makefile || exit 0; \ + [ -d byacc ] || mkdir byacc; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in byacc; \ + cd byacc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/byacc"; \ + libsrcdir="$$s/byacc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/byacc"; \ + libsrcdir="$$s/byacc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-byacc maybe-all-byacc +maybe-all-byacc: +all-byacc: configure-byacc + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd byacc && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-byacc +# This module is only tested in a native toolchain. +check-byacc: + @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd byacc && $(MAKE) $(FLAGS_TO_PASS) check); \ + fi + + + +.PHONY: install-byacc maybe-install-byacc +maybe-install-byacc: +install-byacc: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd byacc && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-bzip2 maybe-configure-bzip2 +maybe-configure-bzip2: +configure-bzip2: + @test ! -f bzip2/Makefile || exit 0; \ + [ -d bzip2 ] || mkdir bzip2; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in bzip2; \ + cd bzip2 || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/bzip2"; \ + libsrcdir="$$s/bzip2";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/bzip2"; \ + libsrcdir="$$s/bzip2";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-bzip2 maybe-all-bzip2 +maybe-all-bzip2: +all-bzip2: configure-bzip2 + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-bzip2 +check-bzip2: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-bzip2 maybe-install-bzip2 +maybe-install-bzip2: +install-bzip2: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd bzip2 && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-db maybe-configure-db +maybe-configure-db: +configure-db: + @test ! -f db/Makefile || exit 0; \ + [ -d db ] || mkdir db; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in db; \ + cd db || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/db"; \ + libsrcdir="$$s/db";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/db"; \ + libsrcdir="$$s/db";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-db maybe-all-db +maybe-all-db: +all-db: configure-db + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd db && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-db +check-db: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd db && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-db maybe-install-db +maybe-install-db: +install-db: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd db && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-dejagnu maybe-configure-dejagnu +maybe-configure-dejagnu: +configure-dejagnu: + @test ! -f dejagnu/Makefile || exit 0; \ + [ -d dejagnu ] || mkdir dejagnu; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in dejagnu; \ + cd dejagnu || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/dejagnu"; \ + libsrcdir="$$s/dejagnu";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/dejagnu"; \ + libsrcdir="$$s/dejagnu";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-dejagnu maybe-all-dejagnu +maybe-all-dejagnu: +all-dejagnu: configure-dejagnu + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-dejagnu +check-dejagnu: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-dejagnu maybe-install-dejagnu +maybe-install-dejagnu: +install-dejagnu: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd dejagnu && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-diff maybe-configure-diff +maybe-configure-diff: +configure-diff: + @test ! -f diff/Makefile || exit 0; \ + [ -d diff ] || mkdir diff; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in diff; \ + cd diff || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/diff"; \ + libsrcdir="$$s/diff";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/diff"; \ + libsrcdir="$$s/diff";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-diff maybe-all-diff +maybe-all-diff: +all-diff: configure-diff + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd diff && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-diff +check-diff: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd diff && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-diff maybe-install-diff +maybe-install-diff: +install-diff: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd diff && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-dosutils maybe-configure-dosutils +maybe-configure-dosutils: +configure-dosutils: + @test ! -f dosutils/Makefile || exit 0; \ + [ -d dosutils ] || mkdir dosutils; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in dosutils; \ + cd dosutils || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/dosutils"; \ + libsrcdir="$$s/dosutils";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/dosutils"; \ + libsrcdir="$$s/dosutils";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-dosutils maybe-all-dosutils +maybe-all-dosutils: +all-dosutils: configure-dosutils + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd dosutils && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-dosutils +check-dosutils: + + + +.PHONY: install-dosutils maybe-install-dosutils +maybe-install-dosutils: +install-dosutils: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd dosutils && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-etc maybe-configure-etc +maybe-configure-etc: +configure-etc: + @test ! -f etc/Makefile || exit 0; \ + [ -d etc ] || mkdir etc; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in etc; \ + cd etc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/etc"; \ + libsrcdir="$$s/etc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/etc"; \ + libsrcdir="$$s/etc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-etc maybe-all-etc +maybe-all-etc: +all-etc: configure-etc + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd etc && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-etc +check-etc: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd etc && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-etc maybe-install-etc +maybe-install-etc: +install-etc: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd etc && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-fastjar maybe-configure-fastjar +maybe-configure-fastjar: +configure-fastjar: + @test ! -f fastjar/Makefile || exit 0; \ + [ -d fastjar ] || mkdir fastjar; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in fastjar; \ + cd fastjar || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/fastjar"; \ + libsrcdir="$$s/fastjar";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/fastjar"; \ + libsrcdir="$$s/fastjar";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-fastjar maybe-all-fastjar +maybe-all-fastjar: +all-fastjar: configure-fastjar + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd fastjar && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-fastjar +# This module is only tested in a native toolchain. +check-fastjar: + @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd fastjar && $(MAKE) $(FLAGS_TO_PASS) check); \ + fi + + + +.PHONY: install-fastjar maybe-install-fastjar +maybe-install-fastjar: +install-fastjar: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd fastjar && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-fileutils maybe-configure-fileutils +maybe-configure-fileutils: +configure-fileutils: + @test ! -f fileutils/Makefile || exit 0; \ + [ -d fileutils ] || mkdir fileutils; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in fileutils; \ + cd fileutils || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/fileutils"; \ + libsrcdir="$$s/fileutils";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/fileutils"; \ + libsrcdir="$$s/fileutils";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-fileutils maybe-all-fileutils +maybe-all-fileutils: +all-fileutils: configure-fileutils + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-fileutils +check-fileutils: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-fileutils maybe-install-fileutils +maybe-install-fileutils: +install-fileutils: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd fileutils && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-findutils maybe-configure-findutils +maybe-configure-findutils: +configure-findutils: + @test ! -f findutils/Makefile || exit 0; \ + [ -d findutils ] || mkdir findutils; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in findutils; \ + cd findutils || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/findutils"; \ + libsrcdir="$$s/findutils";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/findutils"; \ + libsrcdir="$$s/findutils";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-findutils maybe-all-findutils +maybe-all-findutils: +all-findutils: configure-findutils + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd findutils && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-findutils +check-findutils: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd findutils && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-findutils maybe-install-findutils +maybe-install-findutils: +install-findutils: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd findutils && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-find maybe-configure-find +maybe-configure-find: +configure-find: + @test ! -f find/Makefile || exit 0; \ + [ -d find ] || mkdir find; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in find; \ + cd find || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/find"; \ + libsrcdir="$$s/find";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/find"; \ + libsrcdir="$$s/find";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-find maybe-all-find +maybe-all-find: +all-find: configure-find + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd find && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-find +check-find: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd find && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-find maybe-install-find +maybe-install-find: +install-find: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd find && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-flex maybe-configure-flex +maybe-configure-flex: +configure-flex: + @test ! -f flex/Makefile || exit 0; \ + [ -d flex ] || mkdir flex; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in flex; \ + cd flex || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/flex"; \ + libsrcdir="$$s/flex";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/flex"; \ + libsrcdir="$$s/flex";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-flex maybe-all-flex +maybe-all-flex: +all-flex: configure-flex + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd flex && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-flex +# This module is only tested in a native toolchain. +check-flex: + @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd flex && $(MAKE) $(FLAGS_TO_PASS) check); \ + fi + + + +.PHONY: install-flex maybe-install-flex +maybe-install-flex: +install-flex: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd flex && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-gas maybe-configure-gas +maybe-configure-gas: +configure-gas: + @test ! -f gas/Makefile || exit 0; \ + [ -d gas ] || mkdir gas; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gas; \ + cd gas || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gas"; \ + libsrcdir="$$s/gas";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gas"; \ + libsrcdir="$$s/gas";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-gas maybe-all-gas +maybe-all-gas: +all-gas: configure-gas + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gas && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-gas +check-gas: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gas && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-gas maybe-install-gas +maybe-install-gas: +install-gas: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gas && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-gawk maybe-configure-gawk +maybe-configure-gawk: +configure-gawk: + @test ! -f gawk/Makefile || exit 0; \ + [ -d gawk ] || mkdir gawk; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gawk; \ + cd gawk || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gawk"; \ + libsrcdir="$$s/gawk";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gawk"; \ + libsrcdir="$$s/gawk";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-gawk maybe-all-gawk +maybe-all-gawk: +all-gawk: configure-gawk + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gawk && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-gawk +check-gawk: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gawk && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-gawk maybe-install-gawk +maybe-install-gawk: +install-gawk: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gawk && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-gettext maybe-configure-gettext +maybe-configure-gettext: +configure-gettext: + @test ! -f gettext/Makefile || exit 0; \ + [ -d gettext ] || mkdir gettext; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gettext; \ + cd gettext || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gettext"; \ + libsrcdir="$$s/gettext";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gettext"; \ + libsrcdir="$$s/gettext";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-gettext maybe-all-gettext +maybe-all-gettext: +all-gettext: configure-gettext + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gettext && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-gettext +check-gettext: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gettext && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-gettext maybe-install-gettext +maybe-install-gettext: +install-gettext: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gettext && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-gnuserv maybe-configure-gnuserv +maybe-configure-gnuserv: +configure-gnuserv: + @test ! -f gnuserv/Makefile || exit 0; \ + [ -d gnuserv ] || mkdir gnuserv; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gnuserv; \ + cd gnuserv || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gnuserv"; \ + libsrcdir="$$s/gnuserv";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gnuserv"; \ + libsrcdir="$$s/gnuserv";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-gnuserv maybe-all-gnuserv +maybe-all-gnuserv: +all-gnuserv: configure-gnuserv + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-gnuserv +check-gnuserv: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-gnuserv maybe-install-gnuserv +maybe-install-gnuserv: +install-gnuserv: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gnuserv && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-gprof maybe-configure-gprof +maybe-configure-gprof: +configure-gprof: + @test ! -f gprof/Makefile || exit 0; \ + [ -d gprof ] || mkdir gprof; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gprof; \ + cd gprof || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gprof"; \ + libsrcdir="$$s/gprof";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gprof"; \ + libsrcdir="$$s/gprof";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-gprof maybe-all-gprof +maybe-all-gprof: +all-gprof: configure-gprof + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gprof && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-gprof +check-gprof: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gprof && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-gprof maybe-install-gprof +maybe-install-gprof: +install-gprof: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gprof && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-grep maybe-configure-grep +maybe-configure-grep: +configure-grep: + @test ! -f grep/Makefile || exit 0; \ + [ -d grep ] || mkdir grep; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in grep; \ + cd grep || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/grep"; \ + libsrcdir="$$s/grep";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/grep"; \ + libsrcdir="$$s/grep";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-grep maybe-all-grep +maybe-all-grep: +all-grep: configure-grep + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd grep && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-grep +check-grep: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd grep && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-grep maybe-install-grep +maybe-install-grep: +install-grep: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd grep && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-gzip maybe-configure-gzip +maybe-configure-gzip: +configure-gzip: + @test ! -f gzip/Makefile || exit 0; \ + [ -d gzip ] || mkdir gzip; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gzip; \ + cd gzip || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gzip"; \ + libsrcdir="$$s/gzip";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gzip"; \ + libsrcdir="$$s/gzip";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-gzip maybe-all-gzip +maybe-all-gzip: +all-gzip: configure-gzip + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gzip && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-gzip +check-gzip: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gzip && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-gzip maybe-install-gzip +maybe-install-gzip: +install-gzip: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gzip && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-hello maybe-configure-hello +maybe-configure-hello: +configure-hello: + @test ! -f hello/Makefile || exit 0; \ + [ -d hello ] || mkdir hello; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in hello; \ + cd hello || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/hello"; \ + libsrcdir="$$s/hello";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/hello"; \ + libsrcdir="$$s/hello";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-hello maybe-all-hello +maybe-all-hello: +all-hello: configure-hello + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd hello && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-hello +check-hello: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd hello && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-hello maybe-install-hello +maybe-install-hello: +install-hello: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd hello && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-indent maybe-configure-indent +maybe-configure-indent: +configure-indent: + @test ! -f indent/Makefile || exit 0; \ + [ -d indent ] || mkdir indent; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in indent; \ + cd indent || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/indent"; \ + libsrcdir="$$s/indent";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/indent"; \ + libsrcdir="$$s/indent";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-indent maybe-all-indent +maybe-all-indent: +all-indent: configure-indent + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd indent && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-indent +check-indent: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd indent && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-indent maybe-install-indent +maybe-install-indent: +install-indent: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd indent && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-intl maybe-configure-intl +maybe-configure-intl: +configure-intl: + @test ! -f intl/Makefile || exit 0; \ + [ -d intl ] || mkdir intl; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in intl; \ + cd intl || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/intl"; \ + libsrcdir="$$s/intl";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/intl"; \ + libsrcdir="$$s/intl";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-intl maybe-all-intl +maybe-all-intl: +all-intl: configure-intl + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd intl && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-intl +check-intl: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd intl && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-intl maybe-install-intl +maybe-install-intl: +install-intl: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd intl && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-tcl maybe-configure-tcl +maybe-configure-tcl: +configure-tcl: + @test ! -f tcl/Makefile || exit 0; \ + [ -d tcl ] || mkdir tcl; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in tcl; \ + cd tcl || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/tcl"; \ + libsrcdir="$$s/tcl";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/tcl"; \ + libsrcdir="$$s/tcl";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-tcl maybe-all-tcl +maybe-all-tcl: +all-tcl: configure-tcl + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tcl && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-tcl +check-tcl: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tcl && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-tcl maybe-install-tcl +maybe-install-tcl: +install-tcl: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tcl && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-itcl maybe-configure-itcl +maybe-configure-itcl: +configure-itcl: + @test ! -f itcl/Makefile || exit 0; \ + [ -d itcl ] || mkdir itcl; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in itcl; \ + cd itcl || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/itcl"; \ + libsrcdir="$$s/itcl";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/itcl"; \ + libsrcdir="$$s/itcl";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-itcl maybe-all-itcl +maybe-all-itcl: +all-itcl: configure-itcl + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd itcl && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-itcl +check-itcl: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd itcl && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-itcl maybe-install-itcl +maybe-install-itcl: +install-itcl: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd itcl && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-ld maybe-configure-ld +maybe-configure-ld: +configure-ld: + @test ! -f ld/Makefile || exit 0; \ + [ -d ld ] || mkdir ld; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in ld; \ + cd ld || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/ld"; \ + libsrcdir="$$s/ld";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/ld"; \ + libsrcdir="$$s/ld";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-ld maybe-all-ld +maybe-all-ld: +all-ld: configure-ld + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd ld && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-ld +check-ld: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd ld && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-ld maybe-install-ld +maybe-install-ld: +install-ld: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd ld && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-libgui maybe-configure-libgui +maybe-configure-libgui: +configure-libgui: + @test ! -f libgui/Makefile || exit 0; \ + [ -d libgui ] || mkdir libgui; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in libgui; \ + cd libgui || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/libgui"; \ + libsrcdir="$$s/libgui";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/libgui"; \ + libsrcdir="$$s/libgui";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-libgui maybe-all-libgui +maybe-all-libgui: +all-libgui: configure-libgui + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libgui && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-libgui +check-libgui: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libgui && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-libgui maybe-install-libgui +maybe-install-libgui: +install-libgui: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libgui && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-libiberty maybe-configure-libiberty +maybe-configure-libiberty: +configure-libiberty: + @test ! -f libiberty/Makefile || exit 0; \ + [ -d libiberty ] || mkdir libiberty; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in libiberty; \ + cd libiberty || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/libiberty"; \ + libsrcdir="$$s/libiberty";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/libiberty"; \ + libsrcdir="$$s/libiberty";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-libiberty maybe-all-libiberty +maybe-all-libiberty: +all-libiberty: configure-libiberty + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-libiberty +check-libiberty: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-libiberty maybe-install-libiberty +maybe-install-libiberty: +install-libiberty: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libiberty && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-libtool maybe-configure-libtool +maybe-configure-libtool: +configure-libtool: + @test ! -f libtool/Makefile || exit 0; \ + [ -d libtool ] || mkdir libtool; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in libtool; \ + cd libtool || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/libtool"; \ + libsrcdir="$$s/libtool";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/libtool"; \ + libsrcdir="$$s/libtool";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-libtool maybe-all-libtool +maybe-all-libtool: +all-libtool: configure-libtool + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libtool && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-libtool +check-libtool: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libtool && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-libtool maybe-install-libtool +maybe-install-libtool: +install-libtool: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libtool && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-m4 maybe-configure-m4 +maybe-configure-m4: +configure-m4: + @test ! -f m4/Makefile || exit 0; \ + [ -d m4 ] || mkdir m4; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in m4; \ + cd m4 || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/m4"; \ + libsrcdir="$$s/m4";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/m4"; \ + libsrcdir="$$s/m4";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-m4 maybe-all-m4 +maybe-all-m4: +all-m4: configure-m4 + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd m4 && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-m4 +check-m4: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd m4 && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-m4 maybe-install-m4 +maybe-install-m4: +install-m4: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd m4 && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-make maybe-configure-make +maybe-configure-make: +configure-make: + @test ! -f make/Makefile || exit 0; \ + [ -d make ] || mkdir make; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in make; \ + cd make || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/make"; \ + libsrcdir="$$s/make";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/make"; \ + libsrcdir="$$s/make";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-make maybe-all-make +maybe-all-make: +all-make: configure-make + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd make && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-make +check-make: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd make && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-make maybe-install-make +maybe-install-make: +install-make: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd make && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-mmalloc maybe-configure-mmalloc +maybe-configure-mmalloc: +configure-mmalloc: + @test ! -f mmalloc/Makefile || exit 0; \ + [ -d mmalloc ] || mkdir mmalloc; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in mmalloc; \ + cd mmalloc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/mmalloc"; \ + libsrcdir="$$s/mmalloc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/mmalloc"; \ + libsrcdir="$$s/mmalloc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-mmalloc maybe-all-mmalloc +maybe-all-mmalloc: +all-mmalloc: configure-mmalloc + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd mmalloc && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-mmalloc +check-mmalloc: + + + +.PHONY: install-mmalloc maybe-install-mmalloc +maybe-install-mmalloc: +install-mmalloc: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd mmalloc && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-patch maybe-configure-patch +maybe-configure-patch: +configure-patch: + @test ! -f patch/Makefile || exit 0; \ + [ -d patch ] || mkdir patch; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in patch; \ + cd patch || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/patch"; \ + libsrcdir="$$s/patch";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/patch"; \ + libsrcdir="$$s/patch";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-patch maybe-all-patch +maybe-all-patch: +all-patch: configure-patch + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd patch && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-patch +check-patch: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd patch && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-patch maybe-install-patch +maybe-install-patch: +install-patch: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd patch && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-perl maybe-configure-perl +maybe-configure-perl: +configure-perl: + @test ! -f perl/Makefile || exit 0; \ + [ -d perl ] || mkdir perl; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in perl; \ + cd perl || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/perl"; \ + libsrcdir="$$s/perl";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/perl"; \ + libsrcdir="$$s/perl";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-perl maybe-all-perl +maybe-all-perl: +all-perl: configure-perl + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd perl && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-perl +check-perl: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd perl && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-perl maybe-install-perl +maybe-install-perl: +install-perl: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd perl && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-prms maybe-configure-prms +maybe-configure-prms: +configure-prms: + @test ! -f prms/Makefile || exit 0; \ + [ -d prms ] || mkdir prms; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in prms; \ + cd prms || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/prms"; \ + libsrcdir="$$s/prms";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/prms"; \ + libsrcdir="$$s/prms";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-prms maybe-all-prms +maybe-all-prms: +all-prms: configure-prms + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd prms && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-prms +check-prms: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd prms && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-prms maybe-install-prms +maybe-install-prms: +install-prms: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd prms && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-rcs maybe-configure-rcs +maybe-configure-rcs: +configure-rcs: + @test ! -f rcs/Makefile || exit 0; \ + [ -d rcs ] || mkdir rcs; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in rcs; \ + cd rcs || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/rcs"; \ + libsrcdir="$$s/rcs";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/rcs"; \ + libsrcdir="$$s/rcs";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-rcs maybe-all-rcs +maybe-all-rcs: +all-rcs: configure-rcs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd rcs && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-rcs +check-rcs: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd rcs && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-rcs maybe-install-rcs +maybe-install-rcs: +install-rcs: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd rcs && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-readline maybe-configure-readline +maybe-configure-readline: +configure-readline: + @test ! -f readline/Makefile || exit 0; \ + [ -d readline ] || mkdir readline; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in readline; \ + cd readline || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/readline"; \ + libsrcdir="$$s/readline";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/readline"; \ + libsrcdir="$$s/readline";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-readline maybe-all-readline +maybe-all-readline: +all-readline: configure-readline + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd readline && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-readline +check-readline: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd readline && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-readline maybe-install-readline +maybe-install-readline: +install-readline: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd readline && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-release maybe-configure-release +maybe-configure-release: +configure-release: + @test ! -f release/Makefile || exit 0; \ + [ -d release ] || mkdir release; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in release; \ + cd release || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/release"; \ + libsrcdir="$$s/release";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/release"; \ + libsrcdir="$$s/release";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-release maybe-all-release +maybe-all-release: +all-release: configure-release + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd release && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-release +check-release: + + + +.PHONY: install-release maybe-install-release +maybe-install-release: +install-release: + + +.PHONY: configure-recode maybe-configure-recode +maybe-configure-recode: +configure-recode: + @test ! -f recode/Makefile || exit 0; \ + [ -d recode ] || mkdir recode; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in recode; \ + cd recode || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/recode"; \ + libsrcdir="$$s/recode";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/recode"; \ + libsrcdir="$$s/recode";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-recode maybe-all-recode +maybe-all-recode: +all-recode: configure-recode + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd recode && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-recode +check-recode: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd recode && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-recode maybe-install-recode +maybe-install-recode: +install-recode: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd recode && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-sed maybe-configure-sed +maybe-configure-sed: +configure-sed: + @test ! -f sed/Makefile || exit 0; \ + [ -d sed ] || mkdir sed; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in sed; \ + cd sed || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/sed"; \ + libsrcdir="$$s/sed";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/sed"; \ + libsrcdir="$$s/sed";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-sed maybe-all-sed +maybe-all-sed: +all-sed: configure-sed + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sed && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-sed +check-sed: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sed && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-sed maybe-install-sed +maybe-install-sed: +install-sed: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sed && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-send-pr maybe-configure-send-pr +maybe-configure-send-pr: +configure-send-pr: + @test ! -f send-pr/Makefile || exit 0; \ + [ -d send-pr ] || mkdir send-pr; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in send-pr; \ + cd send-pr || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/send-pr"; \ + libsrcdir="$$s/send-pr";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/send-pr"; \ + libsrcdir="$$s/send-pr";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-send-pr maybe-all-send-pr +maybe-all-send-pr: +all-send-pr: configure-send-pr + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-send-pr +check-send-pr: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-send-pr maybe-install-send-pr +maybe-install-send-pr: +install-send-pr: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd send-pr && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-shellutils maybe-configure-shellutils +maybe-configure-shellutils: +configure-shellutils: + @test ! -f shellutils/Makefile || exit 0; \ + [ -d shellutils ] || mkdir shellutils; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in shellutils; \ + cd shellutils || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/shellutils"; \ + libsrcdir="$$s/shellutils";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/shellutils"; \ + libsrcdir="$$s/shellutils";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-shellutils maybe-all-shellutils +maybe-all-shellutils: +all-shellutils: configure-shellutils + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-shellutils +check-shellutils: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-shellutils maybe-install-shellutils +maybe-install-shellutils: +install-shellutils: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd shellutils && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-sid maybe-configure-sid +maybe-configure-sid: +configure-sid: + @test ! -f sid/Makefile || exit 0; \ + [ -d sid ] || mkdir sid; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in sid; \ + cd sid || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/sid"; \ + libsrcdir="$$s/sid";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/sid"; \ + libsrcdir="$$s/sid";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-sid maybe-all-sid +maybe-all-sid: +all-sid: configure-sid + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sid && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-sid +check-sid: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sid && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-sid maybe-install-sid +maybe-install-sid: +install-sid: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sid && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-sim maybe-configure-sim +maybe-configure-sim: +configure-sim: + @test ! -f sim/Makefile || exit 0; \ + [ -d sim ] || mkdir sim; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in sim; \ + cd sim || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/sim"; \ + libsrcdir="$$s/sim";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/sim"; \ + libsrcdir="$$s/sim";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-sim maybe-all-sim +maybe-all-sim: +all-sim: configure-sim + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sim && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-sim +check-sim: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sim && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-sim maybe-install-sim +maybe-install-sim: +install-sim: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd sim && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-snavigator maybe-configure-snavigator +maybe-configure-snavigator: +configure-snavigator: + @test ! -f snavigator/Makefile || exit 0; \ + [ -d snavigator ] || mkdir snavigator; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in snavigator; \ + cd snavigator || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/snavigator"; \ + libsrcdir="$$s/snavigator";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/snavigator"; \ + libsrcdir="$$s/snavigator";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-snavigator maybe-all-snavigator +maybe-all-snavigator: +all-snavigator: configure-snavigator + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd snavigator && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-snavigator +check-snavigator: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd snavigator && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-snavigator maybe-install-snavigator +maybe-install-snavigator: +install-snavigator: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd snavigator && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-tar maybe-configure-tar +maybe-configure-tar: +configure-tar: + @test ! -f tar/Makefile || exit 0; \ + [ -d tar ] || mkdir tar; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in tar; \ + cd tar || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/tar"; \ + libsrcdir="$$s/tar";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/tar"; \ + libsrcdir="$$s/tar";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-tar maybe-all-tar +maybe-all-tar: +all-tar: configure-tar + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tar && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-tar +check-tar: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tar && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-tar maybe-install-tar +maybe-install-tar: +install-tar: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tar && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-texinfo maybe-configure-texinfo +maybe-configure-texinfo: +configure-texinfo: + @test ! -f texinfo/Makefile || exit 0; \ + [ -d texinfo ] || mkdir texinfo; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in texinfo; \ + cd texinfo || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/texinfo"; \ + libsrcdir="$$s/texinfo";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/texinfo"; \ + libsrcdir="$$s/texinfo";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-texinfo maybe-all-texinfo +maybe-all-texinfo: +all-texinfo: configure-texinfo + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd texinfo && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-texinfo +check-texinfo: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd texinfo && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-texinfo maybe-install-texinfo +maybe-install-texinfo: +install-texinfo: + + +.PHONY: configure-textutils maybe-configure-textutils +maybe-configure-textutils: +configure-textutils: + @test ! -f textutils/Makefile || exit 0; \ + [ -d textutils ] || mkdir textutils; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in textutils; \ + cd textutils || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/textutils"; \ + libsrcdir="$$s/textutils";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/textutils"; \ + libsrcdir="$$s/textutils";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-textutils maybe-all-textutils +maybe-all-textutils: +all-textutils: configure-textutils + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd textutils && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-textutils +check-textutils: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd textutils && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-textutils maybe-install-textutils +maybe-install-textutils: +install-textutils: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd textutils && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-time maybe-configure-time +maybe-configure-time: +configure-time: + @test ! -f time/Makefile || exit 0; \ + [ -d time ] || mkdir time; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in time; \ + cd time || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/time"; \ + libsrcdir="$$s/time";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/time"; \ + libsrcdir="$$s/time";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-time maybe-all-time +maybe-all-time: +all-time: configure-time + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd time && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-time +check-time: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd time && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-time maybe-install-time +maybe-install-time: +install-time: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd time && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-uudecode maybe-configure-uudecode +maybe-configure-uudecode: +configure-uudecode: + @test ! -f uudecode/Makefile || exit 0; \ + [ -d uudecode ] || mkdir uudecode; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in uudecode; \ + cd uudecode || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/uudecode"; \ + libsrcdir="$$s/uudecode";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/uudecode"; \ + libsrcdir="$$s/uudecode";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-uudecode maybe-all-uudecode +maybe-all-uudecode: +all-uudecode: configure-uudecode + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-uudecode +check-uudecode: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-uudecode maybe-install-uudecode +maybe-install-uudecode: +install-uudecode: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd uudecode && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-wdiff maybe-configure-wdiff +maybe-configure-wdiff: +configure-wdiff: + @test ! -f wdiff/Makefile || exit 0; \ + [ -d wdiff ] || mkdir wdiff; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in wdiff; \ + cd wdiff || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/wdiff"; \ + libsrcdir="$$s/wdiff";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/wdiff"; \ + libsrcdir="$$s/wdiff";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-wdiff maybe-all-wdiff +maybe-all-wdiff: +all-wdiff: configure-wdiff + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-wdiff +check-wdiff: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) check) + + + +.PHONY: install-wdiff maybe-install-wdiff +maybe-install-wdiff: +install-wdiff: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd wdiff && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-zip maybe-configure-zip +maybe-configure-zip: +configure-zip: + @test ! -f zip/Makefile || exit 0; \ + [ -d zip ] || mkdir zip; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in zip; \ + cd zip || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/zip"; \ + libsrcdir="$$s/zip";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/zip"; \ + libsrcdir="$$s/zip";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-zip maybe-all-zip +maybe-all-zip: +all-zip: configure-zip + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd zip && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-zip +# This module is only tested in a native toolchain. +check-zip: + @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd zip && $(MAKE) $(FLAGS_TO_PASS) check); \ + fi + + + +.PHONY: install-zip maybe-install-zip +maybe-install-zip: +install-zip: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd zip && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-zlib maybe-configure-zlib +maybe-configure-zlib: +configure-zlib: + @test ! -f zlib/Makefile || exit 0; \ + [ -d zlib ] || mkdir zlib; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in zlib; \ + cd zlib || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/zlib"; \ + libsrcdir="$$s/zlib";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/zlib"; \ + libsrcdir="$$s/zlib";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-zlib maybe-all-zlib +maybe-all-zlib: +all-zlib: configure-zlib + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd zlib && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-zlib +check-zlib: + + + +.PHONY: install-zlib maybe-install-zlib +maybe-install-zlib: +install-zlib: + + +.PHONY: configure-gdb maybe-configure-gdb +maybe-configure-gdb: +configure-gdb: + @test ! -f gdb/Makefile || exit 0; \ + [ -d gdb ] || mkdir gdb; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gdb; \ + cd gdb || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gdb"; \ + libsrcdir="$$s/gdb";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gdb"; \ + libsrcdir="$$s/gdb";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-gdb maybe-all-gdb +maybe-all-gdb: +all-gdb: configure-gdb + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) + + +.PHONY: check-gdb +check-gdb: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) + + + +.PHONY: install-gdb maybe-install-gdb +maybe-install-gdb: +install-gdb: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd gdb && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) + + +.PHONY: configure-expect maybe-configure-expect +maybe-configure-expect: +configure-expect: + @test ! -f expect/Makefile || exit 0; \ + [ -d expect ] || mkdir expect; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in expect; \ + cd expect || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/expect"; \ + libsrcdir="$$s/expect";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/expect"; \ + libsrcdir="$$s/expect";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-expect maybe-all-expect +maybe-all-expect: +all-expect: configure-expect + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) + + +.PHONY: check-expect +check-expect: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) + + + +.PHONY: install-expect maybe-install-expect +maybe-install-expect: +install-expect: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd expect && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) + + +.PHONY: configure-guile maybe-configure-guile +maybe-configure-guile: +configure-guile: + @test ! -f guile/Makefile || exit 0; \ + [ -d guile ] || mkdir guile; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in guile; \ + cd guile || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/guile"; \ + libsrcdir="$$s/guile";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/guile"; \ + libsrcdir="$$s/guile";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-guile maybe-all-guile +maybe-all-guile: +all-guile: configure-guile + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) + + +.PHONY: check-guile +check-guile: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) + + + +.PHONY: install-guile maybe-install-guile +maybe-install-guile: +install-guile: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd guile && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) + + +.PHONY: configure-tk maybe-configure-tk +maybe-configure-tk: +configure-tk: + @test ! -f tk/Makefile || exit 0; \ + [ -d tk ] || mkdir tk; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in tk; \ + cd tk || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/tk"; \ + libsrcdir="$$s/tk";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/tk"; \ + libsrcdir="$$s/tk";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-tk maybe-all-tk +maybe-all-tk: +all-tk: configure-tk + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) + + +.PHONY: check-tk +check-tk: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) + + + +.PHONY: install-tk maybe-install-tk +maybe-install-tk: +install-tk: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tk && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) + + +.PHONY: configure-tix maybe-configure-tix +maybe-configure-tix: +configure-tix: + @test ! -f tix/Makefile || exit 0; \ + [ -d tix ] || mkdir tix; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in tix; \ + cd tix || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/tix"; \ + libsrcdir="$$s/tix";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/tix"; \ + libsrcdir="$$s/tix";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-tix maybe-all-tix +maybe-all-tix: +all-tix: configure-tix + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all) + + +.PHONY: check-tix +check-tix: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check) + + + +.PHONY: install-tix maybe-install-tix +maybe-install-tix: +install-tix: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd tix && $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install) + + +.PHONY: configure-libtermcap maybe-configure-libtermcap +maybe-configure-libtermcap: +configure-libtermcap: + @test ! -f libtermcap/Makefile || exit 0; \ + [ -d libtermcap ] || mkdir libtermcap; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in libtermcap; \ + cd libtermcap || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/libtermcap"; \ + libsrcdir="$$s/libtermcap";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/libtermcap"; \ + libsrcdir="$$s/libtermcap";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-libtermcap maybe-all-libtermcap +maybe-all-libtermcap: +all-libtermcap: configure-libtermcap + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libtermcap && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-libtermcap +check-libtermcap: + + + +.PHONY: install-libtermcap maybe-install-libtermcap +maybe-install-libtermcap: +install-libtermcap: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd libtermcap && $(MAKE) $(FLAGS_TO_PASS) install) + + +.PHONY: configure-utils maybe-configure-utils +maybe-configure-utils: +configure-utils: + @test ! -f utils/Makefile || exit 0; \ + [ -d utils ] || mkdir utils; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in utils; \ + cd utils || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/utils"; \ + libsrcdir="$$s/utils";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/utils"; \ + libsrcdir="$$s/utils";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-utils maybe-all-utils +maybe-all-utils: +all-utils: configure-utils + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd utils && $(MAKE) $(FLAGS_TO_PASS) all) + + +.PHONY: check-utils +check-utils: + + + +.PHONY: install-utils maybe-install-utils +maybe-install-utils: +install-utils: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd utils && $(MAKE) $(FLAGS_TO_PASS) install) + + + +# --------------------------------------- +# Modules which run on the target machine +# --------------------------------------- + +.PHONY: configure-target-libstdc++-v3 maybe-configure-target-libstdc++-v3 +maybe-configure-target-libstdc++-v3: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libstdc++-v3/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || \ + mkdir $(TARGET_SUBDIR)/libstdc++-v3; \ + rm -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libstdc++-v3/multilib.out + +configure-target-libstdc++-v3: $(TARGET_SUBDIR)/libstdc++-v3/multilib.out + @test ! -f $(TARGET_SUBDIR)/libstdc++-v3/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libstdc++-v3 ] || \ + mkdir $(TARGET_SUBDIR)/libstdc++-v3;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ + CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libstdc++-v3; \ + cd "$(TARGET_SUBDIR)/libstdc++-v3" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libstdc++-v3 "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libstdc++-v3"; \ + libsrcdir="$$s/libstdc++-v3"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libstdc++-v3 maybe-all-target-libstdc++-v3 +maybe-all-target-libstdc++-v3: +all-target-libstdc++-v3: configure-target-libstdc++-v3 + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' all) + +.PHONY: check-target-libstdc++-v3 +check-target-libstdc++-v3: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' check) + + +.PHONY: install-target-libstdc++-v3 maybe-install-target-libstdc++-v3 +maybe-install-target-libstdc++-v3: +install-target-libstdc++-v3: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libstdc++-v3 && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-newlib maybe-configure-target-newlib +maybe-configure-target-newlib: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/newlib/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/newlib ] || \ + mkdir $(TARGET_SUBDIR)/newlib; \ + rm -f $(TARGET_SUBDIR)/newlib/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/newlib/multilib.out + +configure-target-newlib: $(TARGET_SUBDIR)/newlib/multilib.out + @test ! -f $(TARGET_SUBDIR)/newlib/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/newlib ] || \ + mkdir $(TARGET_SUBDIR)/newlib;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/newlib; \ + cd "$(TARGET_SUBDIR)/newlib" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/newlib "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/newlib"; \ + libsrcdir="$$s/newlib"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-newlib maybe-all-target-newlib +maybe-all-target-newlib: +all-target-newlib: configure-target-newlib + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-newlib +check-target-newlib: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-newlib maybe-install-target-newlib +maybe-install-target-newlib: +install-target-newlib: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/newlib && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-libf2c maybe-configure-target-libf2c +maybe-configure-target-libf2c: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libf2c/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libf2c ] || \ + mkdir $(TARGET_SUBDIR)/libf2c; \ + rm -f $(TARGET_SUBDIR)/libf2c/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libf2c/multilib.out + +configure-target-libf2c: $(TARGET_SUBDIR)/libf2c/multilib.out + @test ! -f $(TARGET_SUBDIR)/libf2c/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libf2c ] || \ + mkdir $(TARGET_SUBDIR)/libf2c;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libf2c; \ + cd "$(TARGET_SUBDIR)/libf2c" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libf2c "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libf2c"; \ + libsrcdir="$$s/libf2c"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libf2c maybe-all-target-libf2c +maybe-all-target-libf2c: +all-target-libf2c: configure-target-libf2c + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-libf2c +check-target-libf2c: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-libf2c maybe-install-target-libf2c +maybe-install-target-libf2c: +install-target-libf2c: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libf2c && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-libobjc maybe-configure-target-libobjc +maybe-configure-target-libobjc: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libobjc/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libobjc ] || \ + mkdir $(TARGET_SUBDIR)/libobjc; \ + rm -f $(TARGET_SUBDIR)/libobjc/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libobjc/multilib.out + +configure-target-libobjc: $(TARGET_SUBDIR)/libobjc/multilib.out + @test ! -f $(TARGET_SUBDIR)/libobjc/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libobjc ] || \ + mkdir $(TARGET_SUBDIR)/libobjc;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libobjc; \ + cd "$(TARGET_SUBDIR)/libobjc" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libobjc "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libobjc"; \ + libsrcdir="$$s/libobjc"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libobjc maybe-all-target-libobjc +maybe-all-target-libobjc: +all-target-libobjc: configure-target-libobjc + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-libobjc +check-target-libobjc: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-libobjc maybe-install-target-libobjc +maybe-install-target-libobjc: +install-target-libobjc: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libobjc && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-libtermcap maybe-configure-target-libtermcap +maybe-configure-target-libtermcap: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libtermcap/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libtermcap ] || \ + mkdir $(TARGET_SUBDIR)/libtermcap; \ + rm -f $(TARGET_SUBDIR)/libtermcap/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libtermcap/multilib.out + +configure-target-libtermcap: $(TARGET_SUBDIR)/libtermcap/multilib.out + @test ! -f $(TARGET_SUBDIR)/libtermcap/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libtermcap ] || \ + mkdir $(TARGET_SUBDIR)/libtermcap;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libtermcap; \ + cd "$(TARGET_SUBDIR)/libtermcap" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libtermcap "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libtermcap"; \ + libsrcdir="$$s/libtermcap"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libtermcap maybe-all-target-libtermcap +maybe-all-target-libtermcap: +all-target-libtermcap: configure-target-libtermcap + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libtermcap && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +# Dummy target for uncheckable module. +.PHONY: check-target-libtermcap +check-target-libtermcap: + + +.PHONY: install-target-libtermcap maybe-install-target-libtermcap +maybe-install-target-libtermcap: +install-target-libtermcap: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libtermcap && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-winsup maybe-configure-target-winsup +maybe-configure-target-winsup: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/winsup/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/winsup ] || \ + mkdir $(TARGET_SUBDIR)/winsup; \ + rm -f $(TARGET_SUBDIR)/winsup/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/winsup/multilib.out + +configure-target-winsup: $(TARGET_SUBDIR)/winsup/multilib.out + @test ! -f $(TARGET_SUBDIR)/winsup/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/winsup ] || \ + mkdir $(TARGET_SUBDIR)/winsup;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/winsup; \ + cd "$(TARGET_SUBDIR)/winsup" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/winsup "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/winsup"; \ + libsrcdir="$$s/winsup"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-winsup maybe-all-target-winsup +maybe-all-target-winsup: +all-target-winsup: configure-target-winsup + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-winsup +check-target-winsup: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-winsup maybe-install-target-winsup +maybe-install-target-winsup: +install-target-winsup: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/winsup && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-libgloss maybe-configure-target-libgloss +maybe-configure-target-libgloss: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libgloss/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libgloss ] || \ + mkdir $(TARGET_SUBDIR)/libgloss; \ + rm -f $(TARGET_SUBDIR)/libgloss/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libgloss/multilib.out + +configure-target-libgloss: $(TARGET_SUBDIR)/libgloss/multilib.out + @test ! -f $(TARGET_SUBDIR)/libgloss/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libgloss ] || \ + mkdir $(TARGET_SUBDIR)/libgloss;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libgloss; \ + cd "$(TARGET_SUBDIR)/libgloss" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libgloss "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libgloss"; \ + libsrcdir="$$s/libgloss"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libgloss maybe-all-target-libgloss +maybe-all-target-libgloss: +all-target-libgloss: configure-target-libgloss + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +# Dummy target for uncheckable module. +.PHONY: check-target-libgloss +check-target-libgloss: + + +.PHONY: install-target-libgloss maybe-install-target-libgloss +maybe-install-target-libgloss: +install-target-libgloss: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libgloss && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-libiberty maybe-configure-target-libiberty +maybe-configure-target-libiberty: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libiberty/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libiberty ] || \ + mkdir $(TARGET_SUBDIR)/libiberty; \ + rm -f $(TARGET_SUBDIR)/libiberty/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libiberty/multilib.out + +configure-target-libiberty: $(TARGET_SUBDIR)/libiberty/multilib.out + @test ! -f $(TARGET_SUBDIR)/libiberty/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libiberty ] || \ + mkdir $(TARGET_SUBDIR)/libiberty;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libiberty; \ + cd "$(TARGET_SUBDIR)/libiberty" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libiberty "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libiberty"; \ + libsrcdir="$$s/libiberty"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libiberty maybe-all-target-libiberty +maybe-all-target-libiberty: +all-target-libiberty: configure-target-libiberty + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-libiberty +check-target-libiberty: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-libiberty maybe-install-target-libiberty +maybe-install-target-libiberty: +install-target-libiberty: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libiberty && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-gperf maybe-configure-target-gperf +maybe-configure-target-gperf: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/gperf/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/gperf ] || \ + mkdir $(TARGET_SUBDIR)/gperf; \ + rm -f $(TARGET_SUBDIR)/gperf/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/gperf/multilib.out + +configure-target-gperf: $(TARGET_SUBDIR)/gperf/multilib.out + @test ! -f $(TARGET_SUBDIR)/gperf/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/gperf ] || \ + mkdir $(TARGET_SUBDIR)/gperf;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/gperf; \ + cd "$(TARGET_SUBDIR)/gperf" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/gperf "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/gperf"; \ + libsrcdir="$$s/gperf"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-gperf maybe-all-target-gperf +maybe-all-target-gperf: +all-target-gperf: configure-target-gperf + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-gperf +check-target-gperf: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-gperf maybe-install-target-gperf +maybe-install-target-gperf: +install-target-gperf: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/gperf && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-examples maybe-configure-target-examples +maybe-configure-target-examples: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/examples/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/examples ] || \ + mkdir $(TARGET_SUBDIR)/examples; \ + rm -f $(TARGET_SUBDIR)/examples/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/examples/multilib.out + +configure-target-examples: $(TARGET_SUBDIR)/examples/multilib.out + @test ! -f $(TARGET_SUBDIR)/examples/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/examples ] || \ + mkdir $(TARGET_SUBDIR)/examples;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/examples; \ + cd "$(TARGET_SUBDIR)/examples" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/examples "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/examples"; \ + libsrcdir="$$s/examples"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-examples maybe-all-target-examples +maybe-all-target-examples: +all-target-examples: configure-target-examples + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/examples && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +# Dummy target for uncheckable module. +.PHONY: check-target-examples +check-target-examples: + + +.PHONY: install-target-examples maybe-install-target-examples +maybe-install-target-examples: +# Dummy target for uninstallable. +install-target-examples: + + +.PHONY: configure-target-libffi maybe-configure-target-libffi +maybe-configure-target-libffi: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libffi/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libffi ] || \ + mkdir $(TARGET_SUBDIR)/libffi; \ + rm -f $(TARGET_SUBDIR)/libffi/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libffi/multilib.out + +configure-target-libffi: $(TARGET_SUBDIR)/libffi/multilib.out + @test ! -f $(TARGET_SUBDIR)/libffi/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libffi ] || \ + mkdir $(TARGET_SUBDIR)/libffi;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libffi; \ + cd "$(TARGET_SUBDIR)/libffi" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libffi "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libffi"; \ + libsrcdir="$$s/libffi"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libffi maybe-all-target-libffi +maybe-all-target-libffi: +all-target-libffi: configure-target-libffi + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-libffi +check-target-libffi: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-libffi maybe-install-target-libffi +maybe-install-target-libffi: +install-target-libffi: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libffi && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-libjava maybe-configure-target-libjava +maybe-configure-target-libjava: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/libjava/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/libjava ] || \ + mkdir $(TARGET_SUBDIR)/libjava; \ + rm -f $(TARGET_SUBDIR)/libjava/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/libjava/multilib.out + +configure-target-libjava: $(TARGET_SUBDIR)/libjava/multilib.out + @test ! -f $(TARGET_SUBDIR)/libjava/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/libjava ] || \ + mkdir $(TARGET_SUBDIR)/libjava;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ + CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/libjava; \ + cd "$(TARGET_SUBDIR)/libjava" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/libjava "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/libjava"; \ + libsrcdir="$$s/libjava"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-libjava maybe-all-target-libjava +maybe-all-target-libjava: +all-target-libjava: configure-target-libjava + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' all) + +.PHONY: check-target-libjava +check-target-libjava: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' check) + + +.PHONY: install-target-libjava maybe-install-target-libjava +maybe-install-target-libjava: +install-target-libjava: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/libjava && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-zlib maybe-configure-target-zlib +maybe-configure-target-zlib: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/zlib/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/zlib ] || \ + mkdir $(TARGET_SUBDIR)/zlib; \ + rm -f $(TARGET_SUBDIR)/zlib/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/zlib/multilib.out + +configure-target-zlib: $(TARGET_SUBDIR)/zlib/multilib.out + @test ! -f $(TARGET_SUBDIR)/zlib/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/zlib ] || \ + mkdir $(TARGET_SUBDIR)/zlib;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/zlib; \ + cd "$(TARGET_SUBDIR)/zlib" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/zlib "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/zlib"; \ + libsrcdir="$$s/zlib"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-zlib maybe-all-target-zlib +maybe-all-target-zlib: +all-target-zlib: configure-target-zlib + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-zlib +check-target-zlib: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-zlib maybe-install-target-zlib +maybe-install-target-zlib: +install-target-zlib: installdirs + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/zlib && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + + +.PHONY: configure-target-boehm-gc maybe-configure-target-boehm-gc +maybe-configure-target-boehm-gc: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/boehm-gc/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/boehm-gc ] || \ + mkdir $(TARGET_SUBDIR)/boehm-gc; \ + rm -f $(TARGET_SUBDIR)/boehm-gc/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/boehm-gc/multilib.out + +configure-target-boehm-gc: $(TARGET_SUBDIR)/boehm-gc/multilib.out + @test ! -f $(TARGET_SUBDIR)/boehm-gc/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/boehm-gc ] || \ + mkdir $(TARGET_SUBDIR)/boehm-gc;\ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/boehm-gc; \ + cd "$(TARGET_SUBDIR)/boehm-gc" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) \ + topdir=$(srcdir) ;; \ + *) \ + case "$(TARGET_SUBDIR)" in \ + .) topdir="../$(srcdir)" ;; \ + *) topdir="../../$(srcdir)" ;; \ + esac ;; \ + esac; \ + if [ "$(srcdir)" = "." ] ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/boehm-gc "no-such-file" ; then \ + if [ -f Makefile ]; then \ + if $(MAKE) distclean; then \ + true; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + else \ + exit 1; \ + fi; \ + else \ + true; \ + fi; \ + srcdiroption="--srcdir=."; \ + libsrcdir="."; \ + else \ + srcdiroption="--srcdir=$${topdir}/boehm-gc"; \ + libsrcdir="$$s/boehm-gc"; \ + fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-boehm-gc maybe-all-target-boehm-gc +maybe-all-target-boehm-gc: +all-target-boehm-gc: configure-target-boehm-gc + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) + +.PHONY: check-target-boehm-gc +check-target-boehm-gc: + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + + +.PHONY: install-target-boehm-gc maybe-install-target-boehm-gc +maybe-install-target-boehm-gc: +install-target-boehm-gc: installdirs + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ - (cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \ - else \ - true; \ - fi + $(SET_LIB_PATH) \ + (cd $(TARGET_SUBDIR)/boehm-gc && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) -# This rule is used to configure the modules which are built with the -# native tools. -.PHONY: $(CONFIGURE_BUILD_MODULES) -$(CONFIGURE_BUILD_MODULES): - @dir=`echo $@ | sed -e 's/configure-build-//'`; \ - if [ ! -d $(BUILD_SUBDIR) ]; then \ - true; \ - elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \ - true; \ - elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ - if [ -d $(srcdir)/$${dir} ]; then \ - [ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\ + +.PHONY: configure-target-qthreads maybe-configure-target-qthreads +maybe-configure-target-qthreads: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/qthreads/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/qthreads ] || \ + mkdir $(TARGET_SUBDIR)/qthreads; \ + rm -f $(TARGET_SUBDIR)/qthreads/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/qthreads/multilib.out + +configure-target-qthreads: $(TARGET_SUBDIR)/qthreads/multilib.out + @test ! -f $(TARGET_SUBDIR)/qthreads/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/qthreads ] || \ + mkdir $(TARGET_SUBDIR)/qthreads;\ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ - AR="$(AR_FOR_BUILD)"; export AR; \ - AS="$(AS_FOR_BUILD)"; export AS; \ - CC="$(CC_FOR_BUILD)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ - CXX="$(CXX_FOR_BUILD)"; export CXX; \ - CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ - GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \ - DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ - LD="$(LD_FOR_BUILD)"; export LD; \ - LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ - NM="$(NM_FOR_BUILD)"; export NM; \ - RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \ - WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \ - echo Configuring in $(BUILD_SUBDIR)/$${dir}; \ - cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \ + $(SET_LIB_PATH) \ + AR="$(AR_FOR_TARGET)"; export AR; \ + AS="$(AS_FOR_TARGET)"; export AS; \ + CC="$(CC_FOR_TARGET)"; export CC; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ + NM="$(NM_FOR_TARGET)"; export NM; \ + RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ + WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ + echo Configuring in $(TARGET_SUBDIR)/qthreads; \ + cd "$(TARGET_SUBDIR)/qthreads" || exit 1; \ case $(srcdir) in \ /* | [A-Za-z]:[\\/]*) \ topdir=$(srcdir) ;; \ *) \ - case "$(BUILD_SUBDIR)" in \ + case "$(TARGET_SUBDIR)" in \ .) topdir="../$(srcdir)" ;; \ *) topdir="../../$(srcdir)" ;; \ esac ;; \ esac; \ if [ "$(srcdir)" = "." ] ; then \ - if [ "$(BUILD_SUBDIR)" != "." ] ; then \ - if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if [ "$(TARGET_SUBDIR)" != "." ] ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/qthreads "no-such-file" ; then \ if [ -f Makefile ]; then \ if $(MAKE) distclean; then \ true; \ @@ -1228,121 +7215,57 @@ $(CONFIGURE_BUILD_MODULES): srcdiroption="--srcdir=."; \ libsrcdir="."; \ else \ - srcdiroption="--srcdir=$${topdir}/$${dir}"; \ - libsrcdir="$$s/$${dir}"; \ + srcdiroption="--srcdir=$${topdir}/qthreads"; \ + libsrcdir="$$s/qthreads"; \ fi; \ - if [ -f $${libsrcdir}/configure ] ; then \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ - $(BUILD_CONFIGARGS) $${srcdiroption} \ - --with-build-subdir="$(BUILD_SUBDIR)"; \ - else \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ - $(BUILD_CONFIGARGS) $${srcdiroption} \ - --with-build-subdir="$(BUILD_SUBDIR)"; \ - fi || exit 1; \ - if [ -f skip-this-dir ] ; then \ - sh skip-this-dir; \ - rm -f skip-this-dir; \ - cd ..; rmdir $${dir} || true; \ - else \ - true; \ - fi; \ - else \ - true; \ - fi; \ - else \ - true; \ - fi + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 -# This rule is used to build the modules which use FLAGS_TO_PASS. To -# build a target all-X means to cd to X and make all. -.PHONY: $(ALL_MODULES) -$(ALL_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +.PHONY: all-target-qthreads maybe-all-target-qthreads +maybe-all-target-qthreads: +all-target-qthreads: configure-target-qthreads + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \ - else \ - true; \ - fi - -# These rules are used to check the modules which use FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make check. Some -# modules are only tested in a native toolchain. - -.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) -$(NATIVE_CHECK_MODULES): - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ - else \ - true; \ - fi; \ - fi + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) -$(CROSS_CHECK_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +.PHONY: check-target-qthreads +check-target-qthreads: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ - else \ - true; \ - fi + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_MODULES) -$(INSTALL_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + +.PHONY: install-target-qthreads maybe-install-target-qthreads +maybe-install-target-qthreads: +install-target-qthreads: installdirs + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ - else \ - true; \ - fi + (cd $(TARGET_SUBDIR)/qthreads && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) -# This rule is used to configure the modules which are built with the -# target tools. -.PHONY: $(CONFIGURE_TARGET_MODULES) -$(CONFIGURE_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/configure-target-//'`; \ - if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \ - r=`${PWD}`; export r; \ - $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \ - if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \ - if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \ - if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \ - rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \ - else \ - echo "Multilibs changed for $${dir}, reconfiguring"; \ - rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \ - mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ - fi; \ - else \ - mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ - fi; \ - fi; \ - fi; exit 0 # break command into two pieces - @dir=`echo $@ | sed -e 's/configure-target-//'`; \ - if [ ! -d $(TARGET_SUBDIR) ]; then \ - true; \ - elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - true; \ - elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ - if [ -d $(srcdir)/$${dir} ]; then \ - [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\ + +.PHONY: configure-target-rda maybe-configure-target-rda +maybe-configure-target-rda: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/rda/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/rda ] || \ + mkdir $(TARGET_SUBDIR)/rda; \ + rm -f $(TARGET_SUBDIR)/rda/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/rda/multilib.out + +configure-target-rda: $(TARGET_SUBDIR)/rda/multilib.out + @test ! -f $(TARGET_SUBDIR)/rda/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/rda ] || \ + mkdir $(TARGET_SUBDIR)/rda;\ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ @@ -1359,8 +7282,8 @@ $(CONFIGURE_TARGET_MODULES): NM="$(NM_FOR_TARGET)"; export NM; \ RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ - echo Configuring in $(TARGET_SUBDIR)/$${dir}; \ - cd "$(TARGET_SUBDIR)/$${dir}" || exit 1; \ + echo Configuring in $(TARGET_SUBDIR)/rda; \ + cd "$(TARGET_SUBDIR)/rda" || exit 1; \ case $(srcdir) in \ /* | [A-Za-z]:[\\/]*) \ topdir=$(srcdir) ;; \ @@ -1372,7 +7295,7 @@ $(CONFIGURE_TARGET_MODULES): esac; \ if [ "$(srcdir)" = "." ] ; then \ if [ "$(TARGET_SUBDIR)" != "." ] ; then \ - if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/rda "no-such-file" ; then \ if [ -f Makefile ]; then \ if $(MAKE) distclean; then \ true; \ @@ -1391,135 +7314,110 @@ $(CONFIGURE_TARGET_MODULES): srcdiroption="--srcdir=."; \ libsrcdir="."; \ else \ - srcdiroption="--srcdir=$${topdir}/$${dir}"; \ - libsrcdir="$$s/$${dir}"; \ - fi; \ - if [ -f $${libsrcdir}/configure ] ; then \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ - $(TARGET_CONFIGARGS) $${srcdiroption} \ - --with-target-subdir="$(TARGET_SUBDIR)"; \ - else \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ - $(TARGET_CONFIGARGS) $${srcdiroption} \ - --with-target-subdir="$(TARGET_SUBDIR)"; \ - fi || exit 1; \ - if [ -f skip-this-dir ] ; then \ - sh skip-this-dir; \ - rm -f skip-this-dir; \ - cd ..; rmdir $${dir} || true; \ - else \ - true; \ + srcdiroption="--srcdir=$${topdir}/rda"; \ + libsrcdir="$$s/rda"; \ fi; \ - else \ - true; \ - fi; \ - else \ - true; \ - fi + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 -# This rule is used to build the modules which use TARGET_FLAGS_TO_PASS. -# To build a target all-X means to cd to X and make all. -.PHONY: $(ALL_TARGET_MODULES) -$(ALL_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/all-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +.PHONY: all-target-rda maybe-all-target-rda +maybe-all-target-rda: +all-target-rda: configure-target-rda + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \ - else \ - true; \ - fi + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) all) -# This rule is used to check the modules which use TARGET_FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(CHECK_TARGET_MODULES) -$(CHECK_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/check-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +.PHONY: check-target-rda +check-target-rda: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\ - else \ - true; \ - fi + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) -# This rule is used to install the modules which use -# TARGET_FLAGS_TO_PASS. To build a target install-X means to cd to X -# and make install. -.PHONY: $(INSTALL_TARGET_MODULES) -$(INSTALL_TARGET_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \ - else \ - true; \ - fi -# This rule is used to build the modules which use X11_FLAGS_TO_PASS. -# To build a target all-X means to cd to X and make all. -.PHONY: $(ALL_X11_MODULES) -$(ALL_X11_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +.PHONY: install-target-rda maybe-install-target-rda +maybe-install-target-rda: +install-target-rda: installdirs + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \ - else \ - true; \ - fi + (cd $(TARGET_SUBDIR)/rda && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) -# This rule is used to check the modules which use X11_FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make all. -.PHONY: $(CHECK_X11_MODULES) -$(CHECK_X11_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \ - else \ - true; \ - fi -# This rule is used to install the modules which use X11_FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_X11_MODULES) -$(INSTALL_X11_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ + +# ---------- +# GCC module +# ---------- + +# Unfortunately, while gcc _should_ be a host module, +# libgcc is a target module, and gen* programs are +# build modules. So GCC is a sort of hybrid. + +# gcc is the only module which uses GCC_FLAGS_TO_PASS. +.PHONY: configure-gcc maybe-configure-gcc +maybe-configure-gcc: +configure-gcc: + @test ! -f gcc/Makefile || exit 0; \ + [ -d gcc ] || mkdir gcc; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gcc; \ + cd gcc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +# Don't 'make all' in gcc if it's already been made by 'bootstrap'; that +# causes trouble. This wart will be fixed eventually by moving +# the bootstrap behavior to this file. +.PHONY: all-gcc maybe-all-gcc +maybe-all-gcc: +all-gcc: configure-gcc + @if [ -f gcc/stage_last ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \ else \ - true; \ - fi - -# gcc is the only module which uses GCC_FLAGS_TO_PASS. -.PHONY: all-gcc -all-gcc: - @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ - else \ - true; \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ fi # Building GCC uses some tools for rebuilding "source" files @@ -1533,7 +7431,7 @@ all-gcc: # in parallel. # .PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap -bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap +bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap configure-gcc @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ @@ -1581,237 +7479,224 @@ check-gcc: r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ else \ true; \ fi -.PHONY: check-c++ -check-c++: +.PHONY: check-gcc-c++ +check-gcc-c++: @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ - $(MAKE) check-target-libstdc++-v3; \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ else \ true; \ - fi + fi + +.PHONY: check-c++ +check-c++: check-target-libstdc++-v3 check-gcc-c++ -.PHONY: install-gcc +.PHONY: install-gcc maybe-install-gcc +maybe-install-gcc: install-gcc: @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ else \ true; \ fi -.PHONY: install-gcc-cross -install-gcc-cross: - @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \ - else \ - true; \ - fi -# EXPERIMENTAL STUFF -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: install-dosrel -install-dosrel: installdirs info - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ +# Install the gcc headers files, but not the fixed include files, +# which Cygnus is not allowed to distribute. This rule is very +# dependent on the workings of the gcc Makefile.in. +.PHONY: gcc-no-fixedincludes +gcc-no-fixedincludes: + @if [ -f ./gcc/Makefile ]; then \ + rm -rf gcc/tmp-include; \ + mv gcc/include gcc/tmp-include 2>/dev/null; \ + mkdir gcc/include; \ + cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \ + touch gcc/stmp-fixinc gcc/include/fixed; \ + rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \ r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + s=`cd $(srcdir); ${PWD}` ; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -install-dosrel-fake: + (cd ./gcc && \ + $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ + rm -rf gcc/include; \ + mv gcc/tmp-include gcc/include 2>/dev/null; \ + else true; fi -ALL_GCC = all-gcc -ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss -ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3 - -# This is a list of inter-dependencies among modules. -all-ash: -all-autoconf: all-m4 all-texinfo -all-automake: all-m4 all-texinfo -all-bash: -all-bfd: all-libiberty all-intl -all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl -all-bison: all-texinfo -configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads -all-byacc: -all-bzip2: -all-db: -all-dejagnu: all-tcl all-expect all-tk -all-diff: all-libiberty -all-etc: -configure-target-examples: $(ALL_GCC_C) -all-expect: all-tcl all-tk -all-fileutils: all-libiberty -all-findutils: -all-find: -all-flex: all-libiberty all-bison all-byacc -all-gas: all-libiberty all-opcodes all-bfd all-intl -all-gawk: -all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib -all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib +# -------------------------------------- +# Dependencies between different modules +# -------------------------------------- + +# There are two types of dependencies here: 'hard' dependencies, where one +# module simply won't build without the other; and 'soft' dependencies, where +# if the depended-on module is missing, the depending module will do without +# or find a substitute somewhere (perhaps installed). Soft dependencies +# are specified by depending on a 'maybe-' target. If you're not sure, +# it's safer to use a soft dependency. + +# Host modules specific to gcc. +# GCC needs to identify certain tools. +configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex +all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +# This is a slightly kludgy method of getting dependencies on +# all-build-libiberty correct; it would be better to build it every time. +all-gcc: maybe-all-build-libiberty +all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib + +# Host modules specific to gdb. +# GDB needs to know that the simulator is being built. +configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim GDB_TK = @GDB_TK@ -all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK) -all-gettext: -all-gnuserv: -configure-target-gperf: $(ALL_GCC_CXX) -all-target-gperf: all-target-libiberty all-target-libstdc++-v3 -all-gprof: all-libiberty all-bfd all-opcodes all-intl -all-grep: all-libiberty -all-guile: -all-gzip: all-libiberty -all-hello: all-libiberty -all-indent: -all-intl: -all-itcl: all-tcl all-tk -all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl -configure-target-libgloss: $(ALL_GCC) -all-target-libgloss: configure-target-newlib -all-libgui: all-tcl all-tk all-itcl -all-libiberty: - -all-build-libiberty: configure-build-libiberty - -configure-target-libffi: $(ALL_GCC_C) -configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi -all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi -configure-target-libstdc++-v3: $(ALL_GCC_C) -all-target-libstdc++-v3: all-target-libiberty -all-libtool: -configure-target-libf2c: $(ALL_GCC_C) -all-target-libf2c: all-target-libiberty -configure-target-libobjc: $(ALL_GCC_C) -all-target-libobjc: all-target-libiberty -all-m4: all-libiberty all-texinfo -all-make: all-libiberty -all-mmalloc: -configure-target-newlib: $(ALL_GCC) -configure-target-libtermcap: $(ALL_GCC_C) -all-opcodes: all-bfd all-libiberty -all-patch: all-libiberty -all-perl: -all-prms: all-libiberty -configure-target-qthreads: $(ALL_GCC_C) -all-rcs: -all-readline: -all-recode: all-libiberty -all-sed: all-libiberty -all-send-pr: all-prms -all-shellutils: -all-sid: all-tcl all-tk -all-sim: all-libiberty all-bfd all-opcodes all-readline -all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui -all-tar: all-libiberty -all-tcl: -all-tclX: all-tcl all-tk -all-tk: all-tcl -all-texinfo: all-libiberty -all-textutils: -all-time: -all-tix: all-tcl all-tk -all-wdiff: -configure-target-winsup: $(ALL_GCC_C) -all-target-winsup: all-target-libiberty all-target-libtermcap -all-uudecode: all-libiberty -all-zip: -all-zlib: -configure-target-zlib: $(ALL_GCC_C) -all-fastjar: all-zlib all-libiberty -configure-target-fastjar: configure-target-zlib -all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty -configure-target-libiberty: $(ALL_GCC_C) -configure-target: $(CONFIGURE_TARGET_MODULES) -all-target: $(ALL_TARGET_MODULES) -install-target: $(INSTALL_TARGET_MODULES) -install-gdb: install-tcl install-tk install-itcl install-tix install-libgui -install-sid: install-tcl install-tk - +all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK) +install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui +configure-libgui: maybe-configure-tcl maybe-configure-tk +all-libgui: maybe-all-tcl maybe-all-tk maybe-all-itcl + +# Host modules specific to binutils. +configure-bfd: configure-libiberty +all-bfd: maybe-all-libiberty maybe-all-intl +all-binutils: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl # We put install-opcodes before install-binutils because the installed # binutils might be on PATH, and they might need the shared opcodes # library. -install-binutils: install-opcodes - +install-binutils: maybe-install-opcodes +all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl +all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl +all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl +all-opcodes: maybe-all-bfd maybe-all-libiberty + +# Other host modules in the 'src' repository. +all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk +configure-expect: maybe-configure-tcl maybe-configure-tk +all-expect: maybe-all-tcl maybe-all-tk +configure-itcl: maybe-configure-tcl maybe-configure-tk +all-itcl: maybe-all-tcl maybe-all-tk # We put install-tcl before install-itcl because itcl wants to run a # program on installation which uses the Tcl libraries. -install-itcl: install-tcl - - -# Dependencies of all-target-foo on configure-target-foo. -all-target-libstdc++-v3: configure-target-libstdc++-v3 -all-target-newlib: configure-target-newlib -all-target-libf2c: configure-target-libf2c -all-target-libobjc: configure-target-libobjc -all-target-libtermcap: configure-target-libtermcap -all-target-winsup: configure-target-winsup -all-target-libgloss: configure-target-libgloss -all-target-libiberty: configure-target-libiberty -all-target-gperf: configure-target-gperf -all-target-examples: configure-target-examples -all-target-libffi: configure-target-libffi -all-target-libjava: configure-target-libjava -all-target-zlib: configure-target-zlib -all-target-boehm-gc: configure-target-boehm-gc -all-target-qthreads: configure-target-qthreads -all-target-rda: configure-target-rda - - -### other supporting targets - -MAKEDIRS= \ - $(DESTDIR)$(prefix) \ - $(DESTDIR)$(exec_prefix) -.PHONY: installdirs -installdirs: mkinstalldirs - $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS) - -dir.info: do-install-info - if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \ - $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \ - mv -f dir.info.new dir.info ; \ - else true ; \ - fi +install-itcl: maybe-install-tcl +all-sid: maybe-all-tcl maybe-all-tk +install-sid: maybe-install-tcl maybe-install-tk +all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb +configure-tk: maybe-configure-tcl +all-tk: maybe-all-tcl +configure-tix: maybe-configure-tcl maybe-configure-tk +all-tix: maybe-all-tcl maybe-all-tk +all-texinfo: maybe-all-libiberty + +# Other host modules. Warning, these are not well tested. +all-autoconf: maybe-all-m4 maybe-all-texinfo +all-automake: maybe-all-m4 maybe-all-texinfo +all-bison: maybe-all-texinfo +all-diff: maybe-all-libiberty +all-fastjar: maybe-all-zlib maybe-all-libiberty +all-fileutils: maybe-all-libiberty +all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc +all-grep: maybe-all-libiberty +all-gzip: maybe-all-libiberty +all-hello: maybe-all-libiberty +all-m4: maybe-all-libiberty maybe-all-texinfo +all-make: maybe-all-libiberty +all-patch: maybe-all-libiberty +all-prms: maybe-all-libiberty +all-recode: maybe-all-libiberty +all-sed: maybe-all-libiberty +all-send-pr: maybe-all-prms +all-snavigator: maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-db maybe-all-grep maybe-all-libgui +all-tar: maybe-all-libiberty +all-uudecode: maybe-all-libiberty + +ALL_GCC = maybe-all-gcc +ALL_GCC_C = $(ALL_GCC) maybe-all-target-newlib maybe-all-target-libgloss +ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-target-libstdc++-v3 + +# Target modules specific to gcc. +configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads +configure-target-fastjar: maybe-configure-target-zlib +all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty +configure-target-libf2c: $(ALL_GCC_C) +all-target-libf2c: maybe-all-target-libiberty +configure-target-libffi: $(ALL_GCC_C) +configure-target-libjava: $(ALL_GCC_C) maybe-configure-target-zlib maybe-configure-target-boehm-gc maybe-configure-target-qthreads maybe-configure-target-libffi +all-target-libjava: maybe-all-fastjar maybe-all-target-zlib maybe-all-target-boehm-gc maybe-all-target-qthreads maybe-all-target-libffi +configure-target-libobjc: $(ALL_GCC_C) +all-target-libobjc: maybe-all-target-libiberty +configure-target-libstdc++-v3: $(ALL_GCC_C) +all-target-libstdc++-v3: maybe-all-target-libiberty +configure-target-zlib: $(ALL_GCC_C) -dist: - @echo "Building a full distribution of this tree isn't done" - @echo "via 'make dist'. Check out the etc/ subdirectory" +# Target modules in the 'src' repository. +configure-target-examples: $(ALL_GCC_C) +configure-target-libgloss: $(ALL_GCC) +all-target-libgloss: maybe-configure-target-newlib +configure-target-libiberty: $(ALL_GCC_C) +configure-target-libtermcap: $(ALL_GCC_C) +configure-target-newlib: $(ALL_GCC) +configure-target-rda: $(ALL_GCC_C) +configure-target-winsup: $(ALL_GCC_C) +all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap -etags tags: TAGS +# Other target modules. Warning, these are not well tested. +configure-target-gperf: $(ALL_GCC_CXX) +all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3 +configure-target-qthreads: $(ALL_GCC_C) -# Right now this just builds TAGS in each subdirectory. emacs19 has the -# ability to use several tags files at once, so there is probably no need -# to combine them into one big TAGS file (like CVS 1.3 does). We could -# (if we felt like it) have this Makefile write a piece of elisp which -# the user could load to tell emacs19 where all the TAGS files we just -# built are. -TAGS: do-TAGS +# Dependencies of maybe-foo on foo. These are used because, for example, +# all-gcc only depends on all-gas if gas is present and being configured. +@maybe_dependencies@ + +# Serialization dependencies. Host configures don't work well in parallel to +# each other, due to contention over config.cache. Target configures and +# build configures are similar. +@serialization_dependencies@ + +# -------------------------------- +# Regenerating top level configury +# -------------------------------- + +# Multilib.out tells target dirs what multilibs they should build. +# There is really only one copy. We use the 'timestamp' method to +# work around various timestamp bugs on some systems. +# We use move-if-change so that it's only considered updated when it +# actually changes, because it has to depend on a phony target. +multilib.out: maybe-all-gcc + @r=`${PWD}`; export r; \ + echo "Checking multilib configuration..."; \ + $(CC_FOR_TARGET) --print-multi-lib > multilib.tmp 2> /dev/null ; \ + $(SHELL) $(srcdir)/move-if-change multilib.tmp multilib.out ; \ # Rebuilding Makefile.in, using autogen. +AUTOGEN = autogen $(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def - cd $(srcdir) && autogen Makefile.def - -# with the gnu make, this is done automatically. - -Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger) - $(SHELL) ./config.status + cd $(srcdir) && $(AUTOGEN) Makefile.def +# Rebuilding Makefile. +Makefile: $(srcdir)/Makefile.in config.status + CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +config.status: configure $(gcc_version_trigger) + $(SHELL) ./config.status --recheck + +# Rebuilding configure. +AUTOCONF = autoconf +$(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/config/acx.m4 + cd $(srcdir) && $(AUTOCONF) # .NOEXPORT: MAKEOVERRIDES= +# Tell GNU make 3.79 not to run the top level in parallel. This +# prevents contention for $builddir/$target/config.cache, as well +# as minimizing scatter in file system caches. +NOTPARALLEL = .NOTPARALLEL +$(NOTPARALLEL): + # end of Makefile.in diff -uprN binutils-2.13.90.0.16/Makefile.tpl binutils-2.13.90.0.18/Makefile.tpl --- binutils-2.13.90.0.16/Makefile.tpl Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/Makefile.tpl Tue Jan 21 10:21:32 2003 @@ -23,11 +23,34 @@ in # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -# Tell GNU make 3.79 not to run the top level in parallel. This -# prevents contention for $builddir/$target/config.cache, as well -# as minimizing scatter in file system caches. -NOTPARALLEL = .NOTPARALLEL -$(NOTPARALLEL): +VPATH=@srcdir@ +links=@configlinks@ + +build_alias=@build_alias@ +build_cpu=@build_cpu@ +build_vendor=@build_vendor@ +build_os=@build_os@ +build_canonical=@build_cpu@-@build_vendor@-@build_os@ +host_alias=@host_alias@ +host_cpu=@host_cpu@ +host_vendor=@host_vendor@ +host_os=@host_os@ +host_canonical=@host_cpu@-@host_vendor@-@host_os@ +target_alias=@target_alias@ +target_cpu=@target_cpu@ +target_vendor=@target_vendor@ +target_os=@target_os@ +target_canonical=@target_cpu@-@target_vendor@-@target_os@ + +enable_shared = @enable_shared@ +enable_threads = @enable_threads@ +enable_version_specific_runtime_libs = @enable_version_specific_runtime_libs@ +# The file containing GCC's version number. +gcc_version_trigger = @gcc_version_trigger@ +gcc_version = @gcc_version@ + +# The gcc driver likes to know the arguments it was configured with. +TOPLEVEL_CONFIGURE_ARGUMENTS=@TOPLEVEL_CONFIGURE_ARGUMENTS@ srcdir = @srcdir@ @@ -46,7 +69,8 @@ includedir = @includedir@ oldincludedir = @oldincludedir@ infodir = @infodir@ mandir = @mandir@ -gxx_include_dir=@gxx_include_dir@ +gxx_include_dir = @gxx_include_dir@ +libstdcxx_incdir = @libstdcxx_incdir@ tooldir = @tooldir@ build_tooldir = @build_tooldir@ @@ -83,22 +107,19 @@ INSTALL_PROGRAM = $(INSTALL) $(INSTALL_P INSTALL_SCRIPT = $(INSTALL) INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_DOSREL = install-dosrel-fake - -AS = as -AR = ar +AS = @AS@ +AR = @AR@ AR_FLAGS = rc -CC = cc +CC = @CC@ # Special variables passed down in EXTRA_GCC_FLAGS. They are defined # here so that they can be overridden by Makefile fragments. -HOST_CC = $(CC_FOR_BUILD) -BUILD_PREFIX = -BUILD_PREFIX_1 = loser- - -# These flag values are normally overridden by the configure script. -CFLAGS = -g -CXXFLAGS = -g -O2 +BUILD_CC = $(CC_FOR_BUILD) +BUILD_PREFIX = @BUILD_PREFIX@ +BUILD_PREFIX_1 = @BUILD_PREFIX_1@ + +CFLAGS = @CFLAGS@ +CXXFLAGS = @CXXFLAGS@ LDFLAGS = LIBCFLAGS = $(CFLAGS) @@ -113,32 +134,34 @@ LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARG PICFLAG = PICFLAG_FOR_TARGET = -CXX = c++ +CXX = @CXX@ # Use -O2 to stress test the compiler. LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates CXXFLAGS_FOR_TARGET = $(CXXFLAGS) LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates -DLLTOOL = dlltool -WINDRES = windres +DLLTOOL = @DLLTOOL@ +WINDRES = @WINDRES@ -NM = nm +NM = @NM@ -LD = ld +LD = @LD@ # These values are substituted by configure. DEFAULT_YACC = @DEFAULT_YACC@ DEFAULT_LEX = @DEFAULT_LEX@ DEFAULT_M4 = @DEFAULT_M4@ -BISON = `if [ -f $$r/bison/bison ] ; then \ +BISON=@BISON@ +USUAL_BISON = `if [ -f $$r/bison/bison ] ; then \ echo $$r/bison/bison -L $$s/bison/ ; \ else \ echo bison ; \ fi` -YACC = `if [ -f $$r/bison/bison ] ; then \ +YACC=@YACC@ +USUAL_YACC = `if [ -f $$r/bison/bison ] ; then \ echo $$r/bison/bison -y -L $$s/bison/ ; \ elif [ -f $$r/byacc/byacc ] ; then \ echo $$r/byacc/byacc ; \ @@ -146,7 +169,8 @@ YACC = `if [ -f $$r/bison/bison ] ; then echo ${DEFAULT_YACC} ; \ fi` -LEX = `if [ -f $$r/flex/flex ] ; \ +LEX=@LEX@ +USUAL_LEX = `if [ -f $$r/flex/flex ] ; \ then echo $$r/flex/flex ; \ else echo ${DEFAULT_LEX} ; fi` @@ -156,7 +180,8 @@ M4 = `if [ -f $$r/m4/m4 ] ; \ # For an installed makeinfo, we require it to be from texinfo 4 or # higher, else we use the "missing" dummy. -MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ +MAKEINFO=@MAKEINFO@ +USUAL_MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ then echo $$r/texinfo/makeinfo/makeinfo ; \ else if (makeinfo --version \ | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \ @@ -178,7 +203,7 @@ RUNTEST = `if [ -f $$s/dejagnu/runtest ] # compilers to use to create programs which must be run in the build # environment. -CC_FOR_BUILD = $(CC) +CC_FOR_BUILD = @CC_FOR_BUILD@ CXX_FOR_BUILD = $(CXX) SUBDIRS = @configdirs@ @@ -195,13 +220,17 @@ BUILD_CONFIGDIRS = libiberty BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring -# directories built for the target. -TARGET_CONFIGARGS = @target_configargs@ - -# This is set by the configure script to the arguments to use when configuring # directories built for the build system. BUILD_CONFIGARGS = @build_configargs@ +# This is set by the configure script to the arguments to use when configuring +# directories built for the host system. +HOST_CONFIGARGS = @host_configargs@ + +# This is set by the configure script to the arguments to use when configuring +# directories built for the target. +TARGET_CONFIGARGS = @target_configargs@ + # This is set by configure to REALLY_SET_LIB_PATH if --enable-shared # was used. SET_LIB_PATH = @SET_LIB_PATH@ @@ -224,35 +253,24 @@ TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/l REALLY_SET_LIB_PATH = \ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); -ALL = all.normal -INSTALL_TARGET = installdirs \ - install-gcc \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - -INSTALL_TARGET_CROSS = installdirs \ - install-gcc-cross \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - # Should be substed by configure.in FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ CC_FOR_TARGET = @CC_FOR_TARGET@ CXX_FOR_TARGET = @CXX_FOR_TARGET@ +RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@ CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ +RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ GCJ_FOR_TARGET = @GCJ_FOR_TARGET@ # If GCC_FOR_TARGET is not overriden on the command line, then this # variable is passed down to the gcc Makefile, where it is used to # build libgcc2.a. We define it here so that it can itself be # overridden on the command line. -GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) +GCC_FOR_TARGET=@GCC_FOR_TARGET@ +USUAL_GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) -AS_FOR_TARGET = ` \ +AS_FOR_TARGET=@AS_FOR_TARGET@ +USUAL_AS_FOR_TARGET = ` \ if [ -f $$r/gas/as-new ] ; then \ echo $$r/gas/as-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ @@ -261,11 +279,12 @@ AS_FOR_TARGET = ` \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(AS); \ else \ - t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \ + echo as | sed '$(program_transform_name)' ; \ fi; \ fi` -LD_FOR_TARGET = ` \ +LD_FOR_TARGET=@LD_FOR_TARGET@ +USUAL_LD_FOR_TARGET = ` \ if [ -f $$r/ld/ld-new ] ; then \ echo $$r/ld/ld-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ @@ -274,44 +293,48 @@ LD_FOR_TARGET = ` \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(LD); \ else \ - t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \ + echo ld | sed '$(program_transform_name)' ; \ fi; \ fi` -DLLTOOL_FOR_TARGET = ` \ +DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ +USUAL_DLLTOOL_FOR_TARGET = ` \ if [ -f $$r/binutils/dlltool ] ; then \ echo $$r/binutils/dlltool ; \ else \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(DLLTOOL); \ else \ - t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \ + echo dlltool | sed '$(program_transform_name)' ; \ fi; \ fi` -WINDRES_FOR_TARGET = ` \ +WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@ +USUAL_WINDRES_FOR_TARGET = ` \ if [ -f $$r/binutils/windres ] ; then \ echo $$r/binutils/windres ; \ else \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(WINDRES); \ else \ - t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \ + echo windres | sed '$(program_transform_name)' ; \ fi; \ fi` -AR_FOR_TARGET = ` \ +AR_FOR_TARGET=@AR_FOR_TARGET@ +USUAL_AR_FOR_TARGET = ` \ if [ -f $$r/binutils/ar ] ; then \ echo $$r/binutils/ar ; \ else \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(AR); \ else \ - t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \ + echo ar | sed '$(program_transform_name)' ; \ fi; \ fi` -RANLIB_FOR_TARGET = ` \ +RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ +USUAL_RANLIB_FOR_TARGET = ` \ if [ -f $$r/binutils/ranlib ] ; then \ echo $$r/binutils/ranlib ; \ else \ @@ -322,11 +345,12 @@ RANLIB_FOR_TARGET = ` \ echo ranlib; \ fi; \ else \ - t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \ + echo ranlib | sed '$(program_transform_name)' ; \ fi; \ fi` -NM_FOR_TARGET = ` \ +NM_FOR_TARGET=@NM_FOR_TARGET@ +USUAL_NM_FOR_TARGET = ` \ if [ -f $$r/binutils/nm-new ] ; then \ echo $$r/binutils/nm-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ @@ -335,7 +359,7 @@ NM_FOR_TARGET = ` \ if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ echo $(NM); \ else \ - t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \ + echo nm | sed '$(program_transform_name)' ; \ fi; \ fi` @@ -344,14 +368,11 @@ NM_FOR_TARGET = ` \ all: all.normal .PHONY: all -# These can be overridden by config/mt-*. -# The _TARGET_ is because they're specified in mt-foo. -# The _HOST_ is because they're programs that run on the host. -EXTRA_TARGET_HOST_ALL_MODULES = -EXTRA_TARGET_HOST_INSTALL_MODULES = -EXTRA_TARGET_HOST_CHECK_MODULES = - #### host and target specific makefile fragments come in here. +@target_makefile_frag@ +@alphaieee_frag@ +@ospace_frag@ +@host_makefile_frag@ ### # Flags to pass down to all sub-makes. @@ -370,6 +391,7 @@ BASE_FLAGS_TO_PASS = \ "CXXFLAGS=$(CXXFLAGS)" \ "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ + "DESTDIR=$(DESTDIR)" \ "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ "INSTALL=$(INSTALL)" \ "INSTALL_DATA=$(INSTALL_DATA)" \ @@ -425,7 +447,8 @@ BASE_FLAGS_TO_PASS = \ # so we pass these variables down unchanged. They must not contain # single nor double quotes. RECURSE_FLAGS = \ - CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' + CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \ + RAW_CXX_FOR_TARGET='$(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \ # Flags to pass down to most sub-makes, in which we're building with # the host environment. @@ -488,7 +511,7 @@ EXTRA_GCC_FLAGS = \ 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ - 'HOST_CC=$(CC_FOR_BUILD)' \ + 'BUILD_CC=$(CC_FOR_BUILD)' \ 'BUILD_PREFIX=$(BUILD_PREFIX)' \ 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ 'NM=$(NM)' \ @@ -508,126 +531,13 @@ EXTRA_GCC_FLAGS = \ GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) -# This is a list of the targets for all of the modules which are compiled -# using the build machine's native compiler. Configure edits the second -# macro for build!=host builds. -ALL_BUILD_MODULES_LIST = \ - all-build-libiberty -ALL_BUILD_MODULES = @all_build_modules@ - -# This is a list of the configure targets for all of the modules which -# are compiled using the native tools. -CONFIGURE_BUILD_MODULES = \ - configure-build-libiberty - -# This is a list of the targets for all of the modules which are compiled -# using $(FLAGS_TO_PASS). -ALL_MODULES =[+ - FOR host_modules +] \ - all-[+module+][+ - ENDFOR host_modules +] \ - $(EXTRA_TARGET_HOST_ALL_MODULES) - -# This is a list of the check targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -# -# The list is in two parts. The first lists those tools which -# are tested as part of the host's native tool-chain, and not -# tested in a cross configuration. -NATIVE_CHECK_MODULES = \ - check-bison \ - check-byacc \ - check-fastjar \ - check-flex \ - check-zip - -CROSS_CHECK_MODULES =[+ - FOR host_modules +][+ - IF (not (or (exist? "no_check_cross") (exist? "no_check"))) - +] \ - check-[+module+][+ - ENDIF no_check +][+ - ENDFOR host_modules +] \ - $(EXTRA_TARGET_HOST_CHECK_MODULES) - -CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) - -# This is a list of the install targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -INSTALL_MODULES =[+ - FOR host_modules+][+ - IF (not (exist? "no_install")) +] \ - install-[+module+][+ - ENDIF no_install +][+ - ENDFOR host_modules +] \ - $(EXTRA_TARGET_HOST_INSTALL_MODULES) - -# This is a list of the targets for all of the modules which are compiled -# using $(X11_FLAGS_TO_PASS). -ALL_X11_MODULES = \ - all-gdb \ - all-expect \ - all-guile \ - all-tclX \ - all-tk \ - all-tix - -# This is a list of the check targets for all of the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -CHECK_X11_MODULES = \ - check-gdb \ - check-guile \ - check-expect \ - check-tclX \ - check-tk \ - check-tix - -# This is a list of the install targets for all the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -INSTALL_X11_MODULES = \ - install-gdb \ - install-guile \ - install-expect \ - install-tclX \ - install-tk \ - install-tix - -# This is a list of the targets for all of the modules which are compiled -# using $(TARGET_FLAGS_TO_PASS). -ALL_TARGET_MODULES =[+ - FOR target_modules +] \ - all-target-[+module+][+ - ENDFOR target_modules +] - -# This is a list of the configure targets for all of the modules which -# are compiled using the target tools. -CONFIGURE_TARGET_MODULES =[+ - FOR target_modules +] \ - configure-target-[+module+][+ - ENDFOR target_modules +] - -# This is a list of the check targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -CHECK_TARGET_MODULES =[+ - FOR target_modules +][+ - IF (not (exist? "no_check")) +] \ - check-target-[+module+][+ - ENDIF no_check +][+ - ENDFOR target_modules +] - -# This is a list of the install targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -INSTALL_TARGET_MODULES =[+ - FOR target_modules +][+ - IF (not (exist? "no_install")) +] \ - install-target-[+module+][+ - ENDIF no_install +][+ - ENDFOR target_modules +] +configure-host: @configure_host_modules@ +configure-target: @configure_target_modules@ # This is a list of the targets for which we can do a clean-{target}. CLEAN_MODULES =[+ FOR host_modules +][+ - IF (not (exist? "no_clean")) +] \ + IF (not (or (exist? "no_clean") (exist? "with_x"))) +] \ clean-[+module+][+ ENDIF no_clean +][+ ENDFOR host_modules +] @@ -641,22 +551,18 @@ CLEAN_TARGET_MODULES =[+ ENDFOR target_modules +] # All of the x11 modules that can be cleaned -CLEAN_X11_MODULES = \ - clean-gdb \ - clean-expect \ - clean-guile \ - clean-tclX \ - clean-tk \ - clean-tix +CLEAN_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\ + clean-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +] # The target built for a native build. +# This list only includes modules actually being configured and built. .PHONY: all.normal -all.normal: \ - $(ALL_BUILD_MODULES) \ - $(ALL_MODULES) \ - $(ALL_X11_MODULES) \ - $(ALL_TARGET_MODULES) \ - all-gcc +all.normal: @all_build_modules@ \ + @all_host_modules@ \ + @all_target_modules@ + +all-host: @all_host_modules@ +all-target: @all_target_modules@ # Do a target for all the subdirectories. A ``make do-X'' will do a # ``make X'' in all subdirectories (because, in general, there is a @@ -665,20 +571,10 @@ all.normal: \ # This target ensures that $(BASE_FLAGS_TO_PASS) appears only once, # because it is so large that it can easily overflow the command line # length limit on some systems. -DO_X = \ - do-clean \ - do-distclean \ - do-dvi \ - do-info \ - do-install-info \ - do-installcheck \ - do-mostlyclean \ - do-maintainer-clean \ - do-TAGS -.PHONY: $(DO_X) -$(DO_X): - @target=`echo $@ | sed -e 's/^do-//'`; \ - r=`${PWD}`; export r; \ +[+ FOR recursive_targets +] +.PHONY: do-[+target+] +do-[+target+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ for i in $(SUBDIRS) -dummy-; do \ @@ -695,16 +591,16 @@ $(DO_X): done; \ ;; \ esac ; \ - if (cd ./$$i; \ + (cd ./$$i && \ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - $${target}); \ - then true; else exit 1; fi; \ + [+target+]) \ + || exit 1; \ else true; fi; \ done - @target=`echo $@ | sed -e 's/^do-//'`; \ + # Break into two pieces r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ @@ -713,15 +609,17 @@ $(DO_X): for flag in $(EXTRA_TARGET_FLAGS); do \ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ done; \ - if (cd $(TARGET_SUBDIR)/$$i; \ + (cd $(TARGET_SUBDIR)/$$i && \ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - $${target}); \ - then true; else exit 1; fi; \ + [+target+]) \ + || exit 1; \ else true; fi; \ done +[+ ENDFOR recursive_targets +] + # Here are the targets which correspond to the do-X targets. @@ -732,13 +630,14 @@ info: do-info installcheck: do-installcheck dvi: do-dvi -# Make sure makeinfo is built before we do a `make info'. -do-info: all-texinfo +# Make sure makeinfo is built before we do a `make info', if we're +# in fact building texinfo. +do-info: maybe-all-texinfo install-info: do-install-info dir.info s=`cd $(srcdir); ${PWD}`; export s; \ if [ -f dir.info ] ; then \ - $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \ + $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \ else true ; fi local-clean: @@ -746,6 +645,7 @@ local-clean: local-distclean: -rm -f Makefile config.status config.cache mh-frag mt-frag + -rm -f multilib.out multilib.tmp maybedep.tmp serdep.tmp -if [ "$(TARGET_SUBDIR)" != "." ]; then \ rm -rf $(TARGET_SUBDIR); \ else true; fi @@ -774,7 +674,7 @@ $(CLEAN_MODULES) $(CLEAN_X11_MODULES) cl r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \ + (cd $${dir} && $(MAKE) $(FLAGS_TO_PASS) clean); \ else \ true; \ fi @@ -787,7 +687,7 @@ $(CLEAN_TARGET_MODULES): r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \ + (cd $(TARGET_SUBDIR)/$${dir} && $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \ else \ true; \ fi @@ -805,10 +705,9 @@ clean-target-libgcc: check: $(MAKE) do-check NOTPARALLEL=parallel-ok -do-check: $(CHECK_MODULES) \ - $(CHECK_TARGET_MODULES) \ - $(CHECK_X11_MODULES) \ - check-gcc +# Only include modules actually being configured and built. +do-check: @check_host_modules@ \ + @check_target_modules@ # Automated reporting of test results. @@ -833,34 +732,20 @@ mail-report-with-warnings.log: warning.l # Installation targets. -.PHONY: install install-cross uninstall source-vault binary-vault vault-install -install: $(INSTALL_TARGET) -install-cross: $(INSTALL_TARGET_CROSS) +.PHONY: install uninstall +install: installdirs @install_host_modules@ @install_target_modules@ + +install-target: @install_target_modules@ uninstall: @echo "the uninstall target is not supported in this tree" -source-vault: - $(MAKE) -f ./release/Build-A-Release \ - host=$(host_alias) source-vault - -binary-vault: - $(MAKE) -f ./release/Build-A-Release \ - host=$(host_alias) target=$(target_alias) - -vault-install: - @if [ -f ./release/vault-install ] ; then \ - ./release/vault-install $(host_alias) $(target_alias) ; \ - else \ - true ; \ - fi - .PHONY: install.all install.all: install-no-fixedincludes @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}` ; export r ; \ $(SET_LIB_PATH) \ - (cd ./gcc; \ + (cd ./gcc && \ $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \ else \ true ; \ @@ -869,59 +754,49 @@ install.all: install-no-fixedincludes # install-no-fixedincludes is used because Cygnus can not distribute # the fixed header files. .PHONY: install-no-fixedincludes -install-no-fixedincludes: \ - installdirs \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - gcc-no-fixedincludes +install-no-fixedincludes: installdirs @install_host_modules_nogcc@ \ + @install_target_modules@ gcc-no-fixedincludes -# Install the gcc headers files, but not the fixed include files, -# which Cygnus is not allowed to distribute. This rule is very -# dependent on the workings of the gcc Makefile.in. -.PHONY: gcc-no-fixedincludes -gcc-no-fixedincludes: - @if [ -f ./gcc/Makefile ]; then \ - rm -rf gcc/tmp-include; \ - mv gcc/include gcc/tmp-include 2>/dev/null; \ - mkdir gcc/include; \ - cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \ - touch gcc/stmp-fixinc gcc/include/fixed; \ - rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ - $(SET_LIB_PATH) \ - (cd ./gcc; \ - $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ - rm -rf gcc/include; \ - mv gcc/tmp-include gcc/include 2>/dev/null; \ - else true; fi +### other supporting targets -# This rule is used to build the modules which are built with the -# build machine's native compiler. -.PHONY: $(ALL_BUILD_MODULES) -$(ALL_BUILD_MODULES): - dir=`echo $@ | sed -e 's/all-build-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - (cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \ - else \ - true; \ +MAKEDIRS= \ + $(DESTDIR)$(prefix) \ + $(DESTDIR)$(exec_prefix) +.PHONY: installdirs +installdirs: mkinstalldirs + $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS) + +dir.info: do-install-info + if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \ + $(srcdir)/texinfo/gen-info-dir $(DESTDIR)$(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \ + mv -f dir.info.new dir.info ; \ + else true ; \ fi -# This rule is used to configure the modules which are built with the -# native tools. -.PHONY: $(CONFIGURE_BUILD_MODULES) -$(CONFIGURE_BUILD_MODULES): - @dir=`echo $@ | sed -e 's/configure-build-//'`; \ - if [ ! -d $(BUILD_SUBDIR) ]; then \ - true; \ - elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \ - true; \ - elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ - if [ -d $(srcdir)/$${dir} ]; then \ - [ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\ +dist: + @echo "Building a full distribution of this tree isn't done" + @echo "via 'make dist'. Check out the etc/ subdirectory" + +etags tags: TAGS + +# Right now this just builds TAGS in each subdirectory. emacs19 has the +# ability to use several tags files at once, so there is probably no need +# to combine them into one big TAGS file (like CVS 1.3 does). We could +# (if we felt like it) have this Makefile write a piece of elisp which +# the user could load to tell emacs19 where all the TAGS files we just +# built are. +TAGS: do-TAGS + +# -------------------------------------- +# Modules which run on the build machine +# -------------------------------------- +[+ FOR build_modules +] +.PHONY: configure-build-[+module+] maybe-configure-build-[+module+] +maybe-configure-build-[+module+]: +configure-build-[+module+]: + @test ! -f $(BUILD_SUBDIR)/[+module+]/Makefile || exit 0; \ + [ -d $(BUILD_SUBDIR)/[+module+] ] || \ + mkdir $(BUILD_SUBDIR)/[+module+];\ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ AR="$(AR_FOR_BUILD)"; export AR; \ @@ -937,8 +812,8 @@ $(CONFIGURE_BUILD_MODULES): NM="$(NM_FOR_BUILD)"; export NM; \ RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \ WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \ - echo Configuring in $(BUILD_SUBDIR)/$${dir}; \ - cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \ + echo Configuring in $(BUILD_SUBDIR)/[+module+]; \ + cd "$(BUILD_SUBDIR)/[+module+]" || exit 1; \ case $(srcdir) in \ /* | [A-Za-z]:[\\/]*) \ topdir=$(srcdir) ;; \ @@ -950,7 +825,7 @@ $(CONFIGURE_BUILD_MODULES): esac; \ if [ "$(srcdir)" = "." ] ; then \ if [ "$(BUILD_SUBDIR)" != "." ] ; then \ - if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \ if [ -f Makefile ]; then \ if $(MAKE) distclean; then \ true; \ @@ -969,129 +844,155 @@ $(CONFIGURE_BUILD_MODULES): srcdiroption="--srcdir=."; \ libsrcdir="."; \ else \ - srcdiroption="--srcdir=$${topdir}/$${dir}"; \ - libsrcdir="$$s/$${dir}"; \ - fi; \ - if [ -f $${libsrcdir}/configure ] ; then \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ - $(BUILD_CONFIGARGS) $${srcdiroption} \ - --with-build-subdir="$(BUILD_SUBDIR)"; \ - else \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ - $(BUILD_CONFIGARGS) $${srcdiroption} \ - --with-build-subdir="$(BUILD_SUBDIR)"; \ - fi || exit 1; \ - if [ -f skip-this-dir ] ; then \ - sh skip-this-dir; \ - rm -f skip-this-dir; \ - cd ..; rmdir $${dir} || true; \ - else \ - true; \ + srcdiroption="--srcdir=$${topdir}/[+module+]"; \ + libsrcdir="$$s/[+module+]"; \ fi; \ - else \ - true; \ - fi; \ - else \ - true; \ - fi + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(BUILD_CONFIGARGS) $${srcdiroption} \ + --with-build-subdir="$(BUILD_SUBDIR)" \ + || exit 1 + +.PHONY: all-build-[+module+] maybe-all-build-[+module+] +maybe-all-build-[+module+]: +all-build-[+module+]: configure-build-[+module+] + @r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + (cd $(BUILD_SUBDIR)/[+module+] && $(MAKE) all) +[+ ENDFOR build_modules +] -# This rule is used to build the modules which use FLAGS_TO_PASS. To -# build a target all-X means to cd to X and make all. -.PHONY: $(ALL_MODULES) -$(ALL_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +# -------------------------------------- +# Modules which run on the host machine +# -------------------------------------- +[+ FOR host_modules +] +.PHONY: configure-[+module+] maybe-configure-[+module+] +maybe-configure-[+module+]: +configure-[+module+]: + @test ! -f [+module+]/Makefile || exit 0; \ + [ -d [+module+] ] || mkdir [+module+]; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in [+module+]; \ + cd [+module+] || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/[+module+]"; \ + libsrcdir="$$s/[+module+]";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/[+module+]"; \ + libsrcdir="$$s/[+module+]";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +.PHONY: all-[+module+] maybe-all-[+module+] +maybe-all-[+module+]: +all-[+module+]: configure-[+module+] + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \ - else \ - true; \ - fi - -# These rules are used to check the modules which use FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make check. Some -# modules are only tested in a native toolchain. - -.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) -$(NATIVE_CHECK_MODULES): + (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] all) + +[+ IF no_check +] +.PHONY: check-[+module+] +check-[+module+]: +[+ ELIF no_check_cross +] +.PHONY: check-[+module+] +# This module is only tested in a native toolchain. +check-[+module+]: @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ - else \ - true; \ - fi; \ - fi - -$(CROSS_CHECK_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] check); \ + fi +[+ ELSE check +] +.PHONY: check-[+module+] +check-[+module+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ - else \ - true; \ - fi - -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_MODULES) -$(INSTALL_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] check) +[+ ENDIF no_check +] + +[+ IF no_install +] +.PHONY: install-[+module+] maybe-install-[+module+] +maybe-install-[+module+]: +install-[+module+]: +[+ ELSE install +] +.PHONY: install-[+module+] maybe-install-[+module+] +maybe-install-[+module+]: +install-[+module+]: installdirs + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -# This rule is used to configure the modules which are built with the -# target tools. -.PHONY: $(CONFIGURE_TARGET_MODULES) -$(CONFIGURE_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/configure-target-//'`; \ - if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \ - r=`${PWD}`; export r; \ - $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \ - if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \ - if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \ - if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \ - rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \ - else \ - echo "Multilibs changed for $${dir}, reconfiguring"; \ - rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \ - mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ - fi; \ - else \ - mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ - fi; \ - fi; \ - fi; exit 0 # break command into two pieces - @dir=`echo $@ | sed -e 's/configure-target-//'`; \ - if [ ! -d $(TARGET_SUBDIR) ]; then \ - true; \ - elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - true; \ - elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ - if [ -d $(srcdir)/$${dir} ]; then \ - [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\ + (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] install) +[+ ENDIF no_install +] +[+ ENDFOR host_modules +] + +# --------------------------------------- +# Modules which run on the target machine +# --------------------------------------- +[+ FOR target_modules +] +.PHONY: configure-target-[+module+] maybe-configure-target-[+module+] +maybe-configure-target-[+module+]: + +# There's only one multilib.out. Cleverer subdirs shouldn't need it copied. +$(TARGET_SUBDIR)/[+module+]/multilib.out: multilib.out + @[ -d $(TARGET_SUBDIR)/[+module+] ] || \ + mkdir $(TARGET_SUBDIR)/[+module+]; \ + rm -f $(TARGET_SUBDIR)/[+module+]/Makefile || : ; \ + cp multilib.out $(TARGET_SUBDIR)/[+module+]/multilib.out + +configure-target-[+module+]: $(TARGET_SUBDIR)/[+module+]/multilib.out + @test ! -f $(TARGET_SUBDIR)/[+module+]/Makefile || exit 0; \ + [ -d $(TARGET_SUBDIR)/[+module+] ] || \ + mkdir $(TARGET_SUBDIR)/[+module+];\ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ CC="$(CC_FOR_TARGET)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ - CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \[+ + IF raw_cxx +] + CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ + CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \[+ + ELSE normal_cxx +] + CXX="$(CXX_FOR_TARGET)"; export CXX; \[+ + ENDIF raw_cxx +] CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ @@ -1100,8 +1001,8 @@ $(CONFIGURE_TARGET_MODULES): NM="$(NM_FOR_TARGET)"; export NM; \ RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ - echo Configuring in $(TARGET_SUBDIR)/$${dir}; \ - cd "$(TARGET_SUBDIR)/$${dir}" || exit 1; \ + echo Configuring in $(TARGET_SUBDIR)/[+module+]; \ + cd "$(TARGET_SUBDIR)/[+module+]" || exit 1; \ case $(srcdir) in \ /* | [A-Za-z]:[\\/]*) \ topdir=$(srcdir) ;; \ @@ -1113,7 +1014,7 @@ $(CONFIGURE_TARGET_MODULES): esac; \ if [ "$(srcdir)" = "." ] ; then \ if [ "$(TARGET_SUBDIR)" != "." ] ; then \ - if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \ if [ -f Makefile ]; then \ if $(MAKE) distclean; then \ true; \ @@ -1132,135 +1033,127 @@ $(CONFIGURE_TARGET_MODULES): srcdiroption="--srcdir=."; \ libsrcdir="."; \ else \ - srcdiroption="--srcdir=$${topdir}/$${dir}"; \ - libsrcdir="$$s/$${dir}"; \ - fi; \ - if [ -f $${libsrcdir}/configure ] ; then \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ - $(TARGET_CONFIGARGS) $${srcdiroption} \ - --with-target-subdir="$(TARGET_SUBDIR)"; \ - else \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ - $(TARGET_CONFIGARGS) $${srcdiroption} \ - --with-target-subdir="$(TARGET_SUBDIR)"; \ - fi || exit 1; \ - if [ -f skip-this-dir ] ; then \ - sh skip-this-dir; \ - rm -f skip-this-dir; \ - cd ..; rmdir $${dir} || true; \ - else \ - true; \ + srcdiroption="--srcdir=$${topdir}/[+module+]"; \ + libsrcdir="$$s/[+module+]"; \ fi; \ - else \ - true; \ - fi; \ - else \ - true; \ - fi - -# This rule is used to build the modules which use TARGET_FLAGS_TO_PASS. -# To build a target all-X means to cd to X and make all. -.PHONY: $(ALL_TARGET_MODULES) -$(ALL_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/all-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \ - else \ - true; \ - fi - -# This rule is used to check the modules which use TARGET_FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(CHECK_TARGET_MODULES) -$(CHECK_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/check-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1 + +.PHONY: all-target-[+module+] maybe-all-target-[+module+] +maybe-all-target-[+module+]: +all-target-[+module+]: configure-target-[+module+] + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\ - else \ - true; \ - fi - -# This rule is used to install the modules which use -# TARGET_FLAGS_TO_PASS. To build a target install-X means to cd to X -# and make install. -.PHONY: $(INSTALL_TARGET_MODULES) -$(INSTALL_TARGET_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd $(TARGET_SUBDIR)/[+module+] && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ + IF raw_cxx + +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ + ENDIF raw_cxx + +] all) +[+ IF no_check +] +# Dummy target for uncheckable module. +.PHONY: check-target-[+module+] +check-target-[+module+]: +[+ ELSE check +] +.PHONY: check-target-[+module+] +check-target-[+module+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -# This rule is used to build the modules which use X11_FLAGS_TO_PASS. -# To build a target all-X means to cd to X and make all. -.PHONY: $(ALL_X11_MODULES) -$(ALL_X11_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd $(TARGET_SUBDIR)/[+module+] && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ + IF raw_cxx + +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ + ENDIF raw_cxx + +] check) +[+ ENDIF no_check +] +[+ IF no_install +] +.PHONY: install-target-[+module+] maybe-install-target-[+module+] +maybe-install-target-[+module+]: +# Dummy target for uninstallable. +install-target-[+module+]: +[+ ELSE install +] +.PHONY: install-target-[+module+] maybe-install-target-[+module+] +maybe-install-target-[+module+]: +install-target-[+module+]: installdirs + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \ - else \ - true; \ - fi + (cd $(TARGET_SUBDIR)/[+module+] && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) +[+ ENDIF no_install +] +[+ ENDFOR target_modules +] -# This rule is used to check the modules which use X11_FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make all. -.PHONY: $(CHECK_X11_MODULES) -$(CHECK_X11_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \ - else \ - true; \ - fi +# ---------- +# GCC module +# ---------- + +# Unfortunately, while gcc _should_ be a host module, +# libgcc is a target module, and gen* programs are +# build modules. So GCC is a sort of hybrid. -# This rule is used to install the modules which use X11_FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_X11_MODULES) -$(INSTALL_X11_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ +# gcc is the only module which uses GCC_FLAGS_TO_PASS. +.PHONY: configure-gcc maybe-configure-gcc +maybe-configure-gcc: +configure-gcc: + @test ! -f gcc/Makefile || exit 0; \ + [ -d gcc ] || mkdir gcc; \ + r=`${PWD}`; export r; \ + s=`cd $(srcdir); ${PWD}`; export s; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ + if [ z$(build_canonical) != z$(host_canoncial) ] ; then \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + fi; \ + echo Configuring in gcc; \ + cd gcc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + || exit 1 + +# Don't 'make all' in gcc if it's already been made by 'bootstrap'; that +# causes trouble. This wart will be fixed eventually by moving +# the bootstrap behavior to this file. +.PHONY: all-gcc maybe-all-gcc +maybe-all-gcc: +all-gcc: configure-gcc + @if [ -f gcc/stage_last ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \ else \ - true; \ - fi - -# gcc is the only module which uses GCC_FLAGS_TO_PASS. -.PHONY: all-gcc -all-gcc: - @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ - else \ - true; \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ fi # Building GCC uses some tools for rebuilding "source" files @@ -1274,7 +1167,7 @@ all-gcc: # in parallel. # .PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap -bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap +bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap: all-bootstrap configure-gcc @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ @@ -1322,222 +1215,224 @@ check-gcc: r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ else \ true; \ fi -.PHONY: check-c++ -check-c++: +.PHONY: check-gcc-c++ +check-gcc-c++: @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ - $(MAKE) check-target-libstdc++-v3; \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ else \ true; \ - fi + fi + +.PHONY: check-c++ +check-c++: check-target-libstdc++-v3 check-gcc-c++ -.PHONY: install-gcc +.PHONY: install-gcc maybe-install-gcc +maybe-install-gcc: install-gcc: @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ else \ true; \ fi -.PHONY: install-gcc-cross -install-gcc-cross: - @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \ - else \ - true; \ - fi -# EXPERIMENTAL STUFF -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: install-dosrel -install-dosrel: installdirs info - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ +# Install the gcc headers files, but not the fixed include files, +# which Cygnus is not allowed to distribute. This rule is very +# dependent on the workings of the gcc Makefile.in. +.PHONY: gcc-no-fixedincludes +gcc-no-fixedincludes: + @if [ -f ./gcc/Makefile ]; then \ + rm -rf gcc/tmp-include; \ + mv gcc/include gcc/tmp-include 2>/dev/null; \ + mkdir gcc/include; \ + cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \ + touch gcc/stmp-fixinc gcc/include/fixed; \ + rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \ r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + s=`cd $(srcdir); ${PWD}` ; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -install-dosrel-fake: + (cd ./gcc && \ + $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ + rm -rf gcc/include; \ + mv gcc/tmp-include gcc/include 2>/dev/null; \ + else true; fi -ALL_GCC = all-gcc -ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss -ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3 - -# This is a list of inter-dependencies among modules. -all-ash: -all-autoconf: all-m4 all-texinfo -all-automake: all-m4 all-texinfo -all-bash: -all-bfd: all-libiberty all-intl -all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl -all-bison: all-texinfo -configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads -all-byacc: -all-bzip2: -all-db: -all-dejagnu: all-tcl all-expect all-tk -all-diff: all-libiberty -all-etc: -configure-target-examples: $(ALL_GCC_C) -all-expect: all-tcl all-tk -all-fileutils: all-libiberty -all-findutils: -all-find: -all-flex: all-libiberty all-bison all-byacc -all-gas: all-libiberty all-opcodes all-bfd all-intl -all-gawk: -all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib -all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib +# -------------------------------------- +# Dependencies between different modules +# -------------------------------------- + +# There are two types of dependencies here: 'hard' dependencies, where one +# module simply won't build without the other; and 'soft' dependencies, where +# if the depended-on module is missing, the depending module will do without +# or find a substitute somewhere (perhaps installed). Soft dependencies +# are specified by depending on a 'maybe-' target. If you're not sure, +# it's safer to use a soft dependency. + +# Host modules specific to gcc. +# GCC needs to identify certain tools. +configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex +all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +# This is a slightly kludgy method of getting dependencies on +# all-build-libiberty correct; it would be better to build it every time. +all-gcc: maybe-all-build-libiberty +all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib + +# Host modules specific to gdb. +# GDB needs to know that the simulator is being built. +configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim GDB_TK = @GDB_TK@ -all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK) -all-gettext: -all-gnuserv: -configure-target-gperf: $(ALL_GCC_CXX) -all-target-gperf: all-target-libiberty all-target-libstdc++-v3 -all-gprof: all-libiberty all-bfd all-opcodes all-intl -all-grep: all-libiberty -all-guile: -all-gzip: all-libiberty -all-hello: all-libiberty -all-indent: -all-intl: -all-itcl: all-tcl all-tk -all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl -configure-target-libgloss: $(ALL_GCC) -all-target-libgloss: configure-target-newlib -all-libgui: all-tcl all-tk all-itcl -all-libiberty: - -all-build-libiberty: configure-build-libiberty - -configure-target-libffi: $(ALL_GCC_C) -configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi -all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi -configure-target-libstdc++-v3: $(ALL_GCC_C) -all-target-libstdc++-v3: all-target-libiberty -all-libtool: -configure-target-libf2c: $(ALL_GCC_C) -all-target-libf2c: all-target-libiberty -configure-target-libobjc: $(ALL_GCC_C) -all-target-libobjc: all-target-libiberty -all-m4: all-libiberty all-texinfo -all-make: all-libiberty -all-mmalloc: -configure-target-newlib: $(ALL_GCC) -configure-target-libtermcap: $(ALL_GCC_C) -all-opcodes: all-bfd all-libiberty -all-patch: all-libiberty -all-perl: -all-prms: all-libiberty -configure-target-qthreads: $(ALL_GCC_C) -all-rcs: -all-readline: -all-recode: all-libiberty -all-sed: all-libiberty -all-send-pr: all-prms -all-shellutils: -all-sid: all-tcl all-tk -all-sim: all-libiberty all-bfd all-opcodes all-readline -all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui -all-tar: all-libiberty -all-tcl: -all-tclX: all-tcl all-tk -all-tk: all-tcl -all-texinfo: all-libiberty -all-textutils: -all-time: -all-tix: all-tcl all-tk -all-wdiff: -configure-target-winsup: $(ALL_GCC_C) -all-target-winsup: all-target-libiberty all-target-libtermcap -all-uudecode: all-libiberty -all-zip: -all-zlib: -configure-target-zlib: $(ALL_GCC_C) -all-fastjar: all-zlib all-libiberty -configure-target-fastjar: configure-target-zlib -all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty -configure-target-libiberty: $(ALL_GCC_C) -configure-target: $(CONFIGURE_TARGET_MODULES) -all-target: $(ALL_TARGET_MODULES) -install-target: $(INSTALL_TARGET_MODULES) -install-gdb: install-tcl install-tk install-itcl install-tix install-libgui -install-sid: install-tcl install-tk - +all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK) +install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui +configure-libgui: maybe-configure-tcl maybe-configure-tk +all-libgui: maybe-all-tcl maybe-all-tk maybe-all-itcl + +# Host modules specific to binutils. +configure-bfd: configure-libiberty +all-bfd: maybe-all-libiberty maybe-all-intl +all-binutils: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl # We put install-opcodes before install-binutils because the installed # binutils might be on PATH, and they might need the shared opcodes # library. -install-binutils: install-opcodes - +install-binutils: maybe-install-opcodes +all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl +all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl +all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl +all-opcodes: maybe-all-bfd maybe-all-libiberty + +# Other host modules in the 'src' repository. +all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk +configure-expect: maybe-configure-tcl maybe-configure-tk +all-expect: maybe-all-tcl maybe-all-tk +configure-itcl: maybe-configure-tcl maybe-configure-tk +all-itcl: maybe-all-tcl maybe-all-tk # We put install-tcl before install-itcl because itcl wants to run a # program on installation which uses the Tcl libraries. -install-itcl: install-tcl - - -# Dependencies of all-target-foo on configure-target-foo. -[+ FOR target_modules +]all-target-[+module+]: configure-target-[+module+] -[+ ENDFOR target_modules +] - -### other supporting targets - -MAKEDIRS= \ - $(DESTDIR)$(prefix) \ - $(DESTDIR)$(exec_prefix) -.PHONY: installdirs -installdirs: mkinstalldirs - $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS) - -dir.info: do-install-info - if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \ - $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \ - mv -f dir.info.new dir.info ; \ - else true ; \ - fi +install-itcl: maybe-install-tcl +all-sid: maybe-all-tcl maybe-all-tk +install-sid: maybe-install-tcl maybe-install-tk +all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline maybe-configure-gdb +configure-tk: maybe-configure-tcl +all-tk: maybe-all-tcl +configure-tix: maybe-configure-tcl maybe-configure-tk +all-tix: maybe-all-tcl maybe-all-tk +all-texinfo: maybe-all-libiberty + +# Other host modules. Warning, these are not well tested. +all-autoconf: maybe-all-m4 maybe-all-texinfo +all-automake: maybe-all-m4 maybe-all-texinfo +all-bison: maybe-all-texinfo +all-diff: maybe-all-libiberty +all-fastjar: maybe-all-zlib maybe-all-libiberty +all-fileutils: maybe-all-libiberty +all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc +all-grep: maybe-all-libiberty +all-gzip: maybe-all-libiberty +all-hello: maybe-all-libiberty +all-m4: maybe-all-libiberty maybe-all-texinfo +all-make: maybe-all-libiberty +all-patch: maybe-all-libiberty +all-prms: maybe-all-libiberty +all-recode: maybe-all-libiberty +all-sed: maybe-all-libiberty +all-send-pr: maybe-all-prms +all-snavigator: maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-db maybe-all-grep maybe-all-libgui +all-tar: maybe-all-libiberty +all-uudecode: maybe-all-libiberty + +ALL_GCC = maybe-all-gcc +ALL_GCC_C = $(ALL_GCC) maybe-all-target-newlib maybe-all-target-libgloss +ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-target-libstdc++-v3 + +# Target modules specific to gcc. +configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads +configure-target-fastjar: maybe-configure-target-zlib +all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty +configure-target-libf2c: $(ALL_GCC_C) +all-target-libf2c: maybe-all-target-libiberty +configure-target-libffi: $(ALL_GCC_C) +configure-target-libjava: $(ALL_GCC_C) maybe-configure-target-zlib maybe-configure-target-boehm-gc maybe-configure-target-qthreads maybe-configure-target-libffi +all-target-libjava: maybe-all-fastjar maybe-all-target-zlib maybe-all-target-boehm-gc maybe-all-target-qthreads maybe-all-target-libffi +configure-target-libobjc: $(ALL_GCC_C) +all-target-libobjc: maybe-all-target-libiberty +configure-target-libstdc++-v3: $(ALL_GCC_C) +all-target-libstdc++-v3: maybe-all-target-libiberty +configure-target-zlib: $(ALL_GCC_C) -dist: - @echo "Building a full distribution of this tree isn't done" - @echo "via 'make dist'. Check out the etc/ subdirectory" +# Target modules in the 'src' repository. +configure-target-examples: $(ALL_GCC_C) +configure-target-libgloss: $(ALL_GCC) +all-target-libgloss: maybe-configure-target-newlib +configure-target-libiberty: $(ALL_GCC_C) +configure-target-libtermcap: $(ALL_GCC_C) +configure-target-newlib: $(ALL_GCC) +configure-target-rda: $(ALL_GCC_C) +configure-target-winsup: $(ALL_GCC_C) +all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap -etags tags: TAGS +# Other target modules. Warning, these are not well tested. +configure-target-gperf: $(ALL_GCC_CXX) +all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3 +configure-target-qthreads: $(ALL_GCC_C) -# Right now this just builds TAGS in each subdirectory. emacs19 has the -# ability to use several tags files at once, so there is probably no need -# to combine them into one big TAGS file (like CVS 1.3 does). We could -# (if we felt like it) have this Makefile write a piece of elisp which -# the user could load to tell emacs19 where all the TAGS files we just -# built are. -TAGS: do-TAGS +# Dependencies of maybe-foo on foo. These are used because, for example, +# all-gcc only depends on all-gas if gas is present and being configured. +@maybe_dependencies@ + +# Serialization dependencies. Host configures don't work well in parallel to +# each other, due to contention over config.cache. Target configures and +# build configures are similar. +@serialization_dependencies@ + +# -------------------------------- +# Regenerating top level configury +# -------------------------------- + +# Multilib.out tells target dirs what multilibs they should build. +# There is really only one copy. We use the 'timestamp' method to +# work around various timestamp bugs on some systems. +# We use move-if-change so that it's only considered updated when it +# actually changes, because it has to depend on a phony target. +multilib.out: maybe-all-gcc + @r=`${PWD}`; export r; \ + echo "Checking multilib configuration..."; \ + $(CC_FOR_TARGET) --print-multi-lib > multilib.tmp 2> /dev/null ; \ + $(SHELL) $(srcdir)/move-if-change multilib.tmp multilib.out ; \ # Rebuilding Makefile.in, using autogen. +AUTOGEN = autogen $(srcdir)/Makefile.in: # $(srcdir)/Makefile.tpl $(srcdir)/Makefile.def - cd $(srcdir) && autogen Makefile.def - -# with the gnu make, this is done automatically. - -Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger) - $(SHELL) ./config.status + cd $(srcdir) && $(AUTOGEN) Makefile.def +# Rebuilding Makefile. +Makefile: $(srcdir)/Makefile.in config.status + CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +config.status: configure $(gcc_version_trigger) + $(SHELL) ./config.status --recheck + +# Rebuilding configure. +AUTOCONF = autoconf +$(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/config/acx.m4 + cd $(srcdir) && $(AUTOCONF) # .NOEXPORT: MAKEOVERRIDES= +# Tell GNU make 3.79 not to run the top level in parallel. This +# prevents contention for $builddir/$target/config.cache, as well +# as minimizing scatter in file system caches. +NOTPARALLEL = .NOTPARALLEL +$(NOTPARALLEL): + # end of Makefile.in diff -uprN binutils-2.13.90.0.16/bfd/ChangeLog binutils-2.13.90.0.18/bfd/ChangeLog --- binutils-2.13.90.0.16/bfd/ChangeLog Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/ChangeLog Tue Jan 21 10:21:32 2003 @@ -1,3 +1,628 @@ +2003-01-21 Fabio Alemagna + + * config.bfd: Handle i[3456]86-*-aros*. + +2003-01-21 Andreas Schwab + + * elf32-ppc.c (struct ppc_elf_dyn_relocs): Define. + (struct ppc_elf_link_hash_entry): Define. + (ppc_elf_hash_entry): New function. + (struct ppc_elf_link_hash_table): Define. + (ppc_elf_hash_table): New function. + (ppc_elf_link_hash_newfunc): New function. + (ppc_elf_link_hash_table_create): New function. + (ppc_elf_copy_indirect_symbol): New function. + (allocate_dynrelocs): New function. + (readonly_dynrelocs): New function. + (ppc_elf_size_dynamic_sections): Allocate space for dynamic + relocs and determine DT_TEXTREL. + (ppc_elf_check_relocs): Don't do that here, just count the + dynamic relocs. + (ppc_elf_gc_sweep_hook): Discard any dynamic relocs against the + removed section. + (bfd_elf32_bfd_link_hash_table_create): Define. + (elf_backend_copy_indirect_symbol): Define. + +2003-01-21 Richard Henderson + + * elf64-alpha.c (alpha_dynamic_entries_for_reloc): GOTTPREL and + TPREL also get a reloc if shared. Remove SREL support. + (elf64_alpha_emit_dynrel): New. + (elf64_alpha_relocate_section): Use it. Resolve dynamic TPREL + and GOTTPREL relocs to local symbols against the tp base. + (elf64_alpha_finish_dynamic_symbol): Use elf64_alpha_emit_dynrel. + + * elf64-alpha.c (elf64_alpha_relax_got_load): Decrement got + use count before clobbering r_type. + (elf64_alpha_relax_tls_get_addr): Don't use pos[1] if insn + ordering would mean dataflow inspection is necessary. + +2003-01-20 Svein E. Seldal + + * coffcode.h (coff_set_flags): Added get/set arch hooks. + +2003-01-20 Fabio Alemagna + + * elf32-sh.c: Treat elfNN_bed like other macros defined in + elfxx-target.h and #undef it before #define'ing it. + * elf32-i386.c: Likewise. + * elf32-sh64.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-sh64.c: Likewise. + +2003-01-20 Martin Schwidefsky + + * bfd-in2.h: Regenerate. + * elf32-s390.c (elf_s390_adjust_gotplt): New prototype. + (elf_howto_table): Rename R_390_GOTOFF to R_390_GOTOFF32. Add + R_390_GOTOFF16, R_390_GOTOFF64, R_390_GOTPLT12, R_390_GOTPLT16, + R_390_GOTPLT32, R_390_GOTPLT64, R_390_GOTPLTENT, R_390_PLTOFF16, + R_390_PLTOFF32 and R_390_PLTOFF64. + (elf_s390_reloc_type_lookup): Likewise. + (struct elf_s390_link_hash_entry): Add gotplt_refcount to keep track + of GOTPLT references to a function. + (link_hash_newfunc): Initialize gotplt_refcount. + (elf_s390_check_relocs): Move allocation of local_got_refcounts array + and creation of the got section out of the main switch. Add support + for the gotoff, gotplt and pltoff relocations. + (elf_s390_gc_sweep_hook): Add reference counting for gotoff, gotplt + and pltoff. + (elf_s390_adjust_gotplt): New function. + (elf_s390_adjust_dynamic_symbol): Adjust gotplt refcount for removed + plt entries. + (allocate_dynrelocs): Add comment. + (elf_s390_relocate_section): Change r_type to unsigned. Add support + for gotoff, gotplt and pltoff relocations. + * elf64-s390.c: Same changes as for elf32-s390.c. + * libbfd.h: Regenerate. + * reloc.c: Add BFD_RELOC_390_GOTOFF64, BFD_RELOC_390_GOTPLT12, + BFD_RELOC_390_GOTPLT16, BFD_RELOC_390_GOTPLT32, BFD_RELOC_390_GOTPLT64, + BFD_RELOC_390_GOTPLTENT, BFD_RELOC_390_PLTOFF16, BFD_RELOC_390_PLTOFF32 + and BFD_RELOC_390_PLTOFF64. + +2003-01-18 Jakub Jelinek + + * elfxx-ia64.c (elfNN_ia64_relocate_section): Handle + R_IA64_TPREL64[LM]SB against non-global symbol properly. + +2003-01-16 Jakub Jelinek + + * elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add + self_dtpmod_done and self_dtpmod_offset. + (allocate_global_data_got): Only use one got entry for all + dtpmod relocs against local symbols. + (allocate_dynrel_entries): Only need .rela.got entry for + dtpmod against global symbol. + (elfNN_ia64_size_dynamic_sections): Initialize self_dtpmod_offset. + Reserve space in .rela.got for the local dtpmod entry. + (set_got_entry): Initialize the common local dtpmod .got entry. + (elfNN_ia64_relocate_section): Handle R_IA_64_DTPREL64LSB + and R_IA_64_DTPREL64MSB. + +2003-01-16 Alan Modra + + * elf64-ppc.c: Include elf/ppc64.h rather than elf/ppc.h. + (R_PPC_*): Rename all occurrences to R_PPC64_*. + (R_PPC64_ADDR30): Rename all occurrences to R_PPC64_REL30. + (enum elf_ppc_reloc_type): Ditto to enum elf_ppc64_reloc_type. + (ppc64_elf_gc_sweep_hook): Handle R_PPC64_REL30 along with other + relative relocs, not with absolute ones. + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2003-01-15 Andreas Schwab + + * elf32-ppc.c (ppc_elf_check_relocs): Don't set DF_TEXTREL for a + relocation against a non-allocated readonly section. + +2003-01-10 Alan Modra + + * elf32-ppc.c (ppc_elf_relocate_section): Adjust addend for GOT16_HA. + * elf64-ppc.c (ppc64_elf_relocate_section): Likewise. PLTGOT16_HA too. + +2002-01-08 Klee Dienes + + * Makefile.am (ALL_MACHINES): Use cpu-msp430.lo, not cpu-msp430.c. + (BFD32_BACKENDS): Use elf32-msp430.lo, not elf32-msp430.c. + * Makefile.in: Regenerate. + +2003-01-08 Alexandre Oliva + + * elfn32-mips.c (prev_reloc_section): New. + (GET_RELOC_ADDEND): Use it. Parenthesize macro arguments. + (SET_RELOC_ADDEND): Parenthesize macro argument. + +2003-01-07 John David Anglin + + * elf32-hppa.c (final_link_relocate): For all DP relative relocations, + adjust addil instructions if the symbol has no section. + +2003-01-07 DJ Delorie + + * elf32-xstormy16.c (xstormy16_elf_howto_table): Make REL_12 not + partial_inplace. + +2003-01-07 Andreas Schwab + + * elf32-m68k.c (elf_m68k_check_relocs): Don't set DF_TEXTREL for + PC relative relocations. + (elf_m68k_discard_copies): Set it here instead. + +2002-01-02 Ben Elliston + Jeff Johnston + + * Makefile.am (ALL_MACHINES): Add cpu-iq2000.lo. + (ALL_MACHINES_CFILES): Add cpu-iq2000.c. + (BFD32_BACKENDS): Add elf32-iq2000.lo. + (BFD32_BACKENDS_CFILES): Add elf32-iq2000.c. + (cpu-iq2000.lo): New target. + * Makefile.in: Regenerate. + * config.bfd: Handle iq2000-*-elf. + * archures.c (bfd_architecture): Add bfd_{arch,mach}_iq2000. + (bfd_archures_list): Add bfd_iq2000_arch. + * configure.in: Handle bfd_elf32_iq2000_vec. + * configure: Regenerate. + * reloc.c: Add BFD_RELOC_IQ2000_OFFSET_16, BFD_RELOC_IQ2000_OFFSET_21, + and BFD_RELOC_IQ2000_UHI16. + * targets.c (bfd_elf32_iq2000_vec): Declare. + (bfd_target_vector): Add bfd_elf32_iq2000_vec. + * elf.c (prep_headers): Set e_machine to EM_IQ2000. + * cpu-iq2000.c: New file. + * elf32-iq2000.c: Likewise. + * libbfd.h: Regenerate. + * bfd-in2.h: Likewise. + +2003-01-02 Richard Sandiford + + * elfxx-mips.c: Include libiberty.h. + (elf_mips_isa, _bfd_mips_elf_mach_extends_p): Remove. + (mips_set_isa_flags): New function, split out from... + (_bfd_mips_elf_final_write_processing): ...here. Only call + mips_set_isa_flags if the EF_MIPS_MACH bits are clear. + (mips_mach_extensions): New array. + (mips_32bit_flags_p): New function. + (_bfd_mips_elf_merge_private_bfd_data): Rework architecture checks. + Use mips_32bit_flags_p to check if one binary is 32-bit and the + other is 64-bit. When adopting IBFD's architecture, adopt the + bfd_mach as well as the flags. + +2003-01-02 Nick Kelsey + + * elf32-ip2k.c: Re-work of linker relaxation code for the ip2k to + fix internal errors, fix bad code generation, fix incorrect stabs + information, and improve ability to eliminate redundant page + instructions. Added code to ip2k_final_link_relocate to self-verify + the linker relaxation. Fix formatting problems. + +2002-12-30 Chris Demetriou + + * aoutx.h (NAME(aout,machine_type)): Add bfd_mach_mipsisa32r2 case. + * archures.c (bfd_mach_mipsisa32r2): New define. + * bfd-in2.h: Regenerate. + * cpu-mips.c (I_mipsisa32r2): New enum value. + (arch_info_struct): Add entry for I_mipsisa32r2. + * elfxx-mips.c (elf_mips_isa, _bfd_elf_mips_mach) + (_bfd_mips_elf_print_private_bfd_data): Handle E_MIPS_ARCH_32R2. + (_bfd_mips_elf_final_write_processing): Add + bfd_mach_mipsisa32r2 case. + (_bfd_mips_elf_merge_private_bfd_data): Handle merging of + binaries marked as using MIPS32 Release 2. + +2002-12-30 Dmitry Diky + + * Makefile.am: Add msp430 target. + * configure.in: Likewise. + * Makefile.in: Regenerate. + * configure: Regenerate. + * archures.c: Add msp430 architecture vector. + * config.bfd: Likewise. + * reloc.c: Add msp430 relocs. + * targets.c: Add msp320 target. + * cpu-msp430.c: New file: msp430 cpu detection. + * elf32-msp430.c: New file: msp430 reloc processing. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2002-12-28 Jakub Jelinek + + * elf.c (elf_sort_sections): Don't reorder .tbss. + (assign_file_positions_for_segments): Only adjust off/voff + for increased alignment in PT_LOAD or PT_NOTE segment, + but adjust p_filesz for .tbss too. in PT_LOAD consider + .tbss to have zero memory size. + (copy_private_bfd_data) [SECTION_SIZE]: Define. + [IS_CONTAINED_BY_VMA, IS_CONTAINED_BY_LMA]: Use it. + [INCLUDE_SECTION_IN_SEGMENT]: Only put SHF_TLS sections + into PT_TLS segment. Never put SHF_TLS sections in + segments other than PT_TLS or PT_LOAD. + + * elf64-alpha.c (elf64_alpha_finish_dynamic_sections): Clear .plt + sh_entsize. + +2002-12-23 DJ Delorie + + * coff64-rs6000.c (xcoff64_ppc_relocate_section): Fix logic reversal. + +2002-12-23 Alan Modra + + * elflink.h (elf_link_output_extsym): Heed strip_discarded. + +2002-12-23 Nick Clifton + + * archures.c (bfd_arch_get_compatible): Add third parameter + 'accept_unknowns'. Only accept unknown format BFDs if + accept_unknowns is true, or if the format is "binary". + * bfd-in2.h: Regenerate. + +2002-12-21 Nick Clifton + + * coff-arm.c (coff_arm_relocate_section): Disable WINCE workaround + that subtracted 8 from pc relative relocations. + +2002-12-20 Kazu Hirata + + * coff-h8300.c: Fix comment typos. + * coffcode.h: Likewise. + * cpu-cris.c: Likewise. + * elf32-vax.c: Likewise. + * genlink.h: Likewise. + * linker.c: Likewise. + * som.c: Likewise. + * tekhex.c: Likewise. + * vms-misc.c: Likewise. + +2002-12-20 DJ Delorie + + * reloc.c: Add BFD_RELOC_XSTORMY16_12. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + * elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_12. + (xstormy16_reloc_map): Add R_XSTORMY16_12. + +2002-12-19 Kazu Hirata + + * doc/bfdint.texi: Fix typos. + +2002-12-20 Paul Eggert + + Port to POSIX 1003.1-2001. + * acinclude.m4 (AM_INSTALL_LIBBFD): Do not rely on "test -o". + * configure.in (build-warnings): Likewise. + (Horrible hacks to build DLLs on Windows): Do not rely on "tail -1". + * aclocal.m4: Regenerate. + * config.in: Regenerate. + * configure: Regenerate. + +2002-12-19 Alan Modra + + * coff-h8300.c: Include libiberty.h. + (h8300_reloc16_extra_cases): Check the hash table creator before + referencing h8300 specific fields. Stash the hash table pointer + in a local var. Comment typo fixes. + (h8300_bfd_link_add_symbols): Likewise. + + * bfd/reloc.c (struct reloc_howto_struct): Revise src_mask and + dst_mask comments. + * bfd-in2.h: Regenerate. + +2002-12-18 Alan Modra + + * elf32-ppc.c (ppc_elf_relocate_section): Reorganize dynamic reloc + code a little. Comment on dynamic relocs against section symbols. + +2002-12-17 Roger Sayle + + * configure.host (ia64-*-hpux*): Support 64 bit targets using + the HP compiler's "long long". + +2002-12-16 Andrew MacLeod + + * elf32-xstormy16.c (xstormy16_elf_howto): Add R_XSTORMY16_LO16 + and R_XSTORMY16_HI16) howto entries. + (xstormy16_reloc_map): Map R_XSTORMY16_{LO,HI}16 to BFD_RELOC_{LO,HI}16. + (xstormy16_info_to_howto_rela): Use R_XSTORMY16_GNU_VTINHERIT to + determine the start of the second reloc table. + +2002-12-16 Nathan Tallent + + * ecofflink.c: Fix the reading of the debugging information + of Tru64/Alpha binaries that are produced by recent Compaq + compilers. + (mk_fdrtab): Fix error in creating the FDR (file descriptor) + table. + (lookup_line): Because of the strange information sometimes + generated by Compaq's recent compilers, change how the FDR + table is searched so that PDRs (procedure descriptors) are + correctly found. Note that this change is really more of a hack; + however, I have included extensive documentation as to why + this is the best solution short of an extensive rewrite or + another hack. + (fdrtab_lookup): Add comments to explain the algorithm. + +2002-12-12 Alexandre Oliva + + * elf-m10300.c (elf32_mn10300_link_hash_newfunc): Reorder + initializers to match struct declaration. + +2002-12-12 Alan Modra + + * dwarf2.c (comp_unit_contains_address): Comment typo fix. + * elf.c (get_program_header_size): Likewise. + * elf32-m32r.c (m32r_elf_lo16_reloc): Likewise. + (m32r_elf_generic_reloc): Likewise. + * elf32-ppc.c (ppc_elf_howto_init): Likewise. + * elflink.h (elf_bfd_discard_info): Likewise. + +2002-12-12 Alan Modra + + * elf32-i386.c (elf_i386_finish_dynamic_sections): Add output_offset + to DT_JMPREL. Use srelplt input section size for DT_PLTRELSZ and + DT_RELSZ adjustment, not output section. Avoid writing tags when + unchanged. Don't assume linker script is sane, adjust DT_REL too. + * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Just use raw + size of srelplt for DT_PLTRELSZ. Use srelplt input section size for + DT_RELASZ adjustment, not output section. Avoid writing tags when + unchanged. Adjust DT_RELA. + * elf64-ppc.c (ppc64_elf_finish_dynamic_sections): Tweaks for better + formatting. Avoid writing tags when unchanged. Adjust DT_RELA. + +2002-12-12 Alexandre Oliva + + * elfxx-mips.c (mips_elf_calculate_relocation): Don't divide + addend by 4. + +2002-12-12 Alexandre Oliva + + * elfxx-mips.c (struct mips_got_entry): New. + (struct mips_got_info): Added got_entries field. + (mips_elf_got_entry_hash, mips_elf_got_entry_eq): New functions. + (mips_elf_local_got_index, mips_elf_got_page, + mips_elf_got16_entry): Re-implement in terms of new... + (mips_elf_create_local_got_entry): Rewrite to use got_entries. + Change return type. + (mips_elf_highest): Warning clean-up. + (mips_elf_create_got_section): Initialize got_entries. + (_bfd_mips_elf_check_relocs): Use got_entries to estimate + local got size. + (_bfd_mips_elf_size_dynamic_sections): Do not account for + GOT_PAGE entries, since we now reuse GOT16 entries. + +2002-12-10 Jason Thorpe + + * aoutx.h (set_section_contents): Allow an otherwise unrepresentable + read-only section that lies after .text and before .data to be + written into the output file and included in a_text. + (translate_to_native_sym_flags): If an otherwise unrepresentable + section was merged with .text, convert its symbols to N_TEXT + symbols. + * libaout.h (aout_section_merge_with_text_p): New macro. + +2002-12-08 Alan Modra + + * bfd-in.h: Comment typo fix. Formatting. + * bfd-in2.h: Regenerate. + * coff64-rs6000.c (xcoff64_openr_next_archived_file): Warning fix. + * elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): Prototype. + * elf64-mmix.c (mmix_dump_bpo_gregs): Warning fix. + +2002-12-05 Richard Henderson + + * elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21BI. + Only send PCREL21B though the plt. Fix installed reloc type. + (elfNN_ia64_relocate_section): Give error for dynamic reloc + against PCREL22 or PCREL64I; clean up error messages for + branch relocs. + +2002-12-04 Kevin Buettner + + * elf64-mips.c (elf64_mips_grok_prstatus, elf64_mips_grok_psinfo): + New functions. + (elf_backend_grok_prstatus, elf_backend_grok_psinfo): Define. + +2002-12-04 David Mosberger + + * cpu-ia64-opc.c: Add operand constant "ar.csd". + +2002-12-04 H.J. Lu + + * elfxx-ia64.c (get_local_sym_hash): Use section ID instead of + BFD address when constructing local name. + +2002-12-04 Andreas Schwab + + * elf32-m68k.c (struct elf_m68k_link_hash_table): Add sym_sec + member. + (elf_m68k_link_hash_table_create): Initialize it. + (elf_m68k_check_relocs): Handle symbols that are forced to be + local due to visibility changes. + (elf_m68k_adjust_dynamic_symbol): Likewise. + (elf_m68k_size_dynamic_sections): Likewise. + (elf_m68k_discard_copies): Likewise. + (elf_m68k_relocate_section): Likewise. + +2002-12-04 Alan Modra + + * elf64-ppc.c (ppc64_elf_edit_opd): Correct typo. + +2002-12-04 Alan Modra + + * srec.c (srec_write_symbols): Restore '$' prefix to address + accidentally removed in 2002-04-04 change. + (srec_get_symtab): Use 0 instead of `(long) FALSE'. + +2002-12-03 Nick Clifton + + * elf32-ppc.c (apuinfo_list_init): New function. + (apuinfo_list_add): New function: Add a value to the list. + (apuinfo_list_length): New function: Return the number of + values on the list. + (apuinfo_list_element): New function: Return a value on the + list. + (apuinfo_list_finish): New function: Free the resources used + by the list. + (ppc_elf_begin_write_processing): New function. Scan the + input bfds for apuinfo sections. + (ppc_elf_write_section): New function: Delay the creation of + the contents of an apuinfo section in an output bfd. + (ppc_elf_final_write_processing): New function. Create the + contents of an apuinfo section in an output bfd. + (elf_backend_begin_write_processing): Define. + (elf_backend_final_write_processing): Define. + (elf_backend_write_section): Define. + +2002-12-03 Richard Henderson + + * cpu-ia64-opc.c (elf64_ia64_operands): Add ldxmov entry. + +2002-12-01 Stephane Carrez + + Fix PR savannah/1417: + * elf32-m68hc11.c (m68hc11_elf_relax_delete_bytes): Don't adjust + branch if it goes to the start of the deleted region. + +2002-12-01 Stephane Carrez + + * bfd-in2.h (bfd_mach_m6812): Rebuild. + * archures.c (bfd_mach_m6812_default, bfd_mach_m6812, + bfd_mach_m6812s): Declare. + + * elf32-m68hc12.c (m68hc12_elf_set_mach_from_flags): New function. + (_bfd_m68hc12_elf_set_private_flags): Call it. + (_bfd_m68hc12_elf_print_private_bfd_data): Report processor version. + (_bfd_m68hc12_elf_merge_private_bfd_data): Merge the flags and + report microcontroller incompatibilities (HC12 vs HCS12). + (elf_backend_object_p): Update. + +2002-11-30 Alan Modra + + * bfd-in.h (TRUE_FALSE_ALREADY_DEFINED, BFD_TRUE_FALSE): Delete. + (enum bfd_boolean, boolean): Delete. + (bfd_boolean): Typedef to an int. + (FALSE, TRUE): Define. + * aix386-core.c, aix5ppc-core.c, aout-adobe.c, aout-arm.c, aout-cris.c, + aout-encap.c, aout-ns32k.c, aout-target.h, aout-tic30.c, aoutf1.h, + aoutx.h, archive.c, archive64.c, archures.c, bfd-in.h, bfd.c, bfdwin.c, + binary.c, bout.c, cache.c, cisco-core.c, coff-a29k.c, coff-alpha.c, + coff-apollo.c, coff-arm.c, coff-aux.c, coff-h8300.c, coff-h8500.c, + coff-i386.c, coff-i860.c, coff-i960.c, coff-ia64.c, coff-m68k.c, + coff-m88k.c, coff-mcore.c, coff-mips.c, coff-or32.c, coff-ppc.c, + coff-rs6000.c, coff-sh.c, coff-sparc.c, coff-stgo32.c, coff-tic30.c, + coff-tic4x.c, coff-tic54x.c, coff-tic80.c, coff-w65.c, coff-we32k.c, + coff-z8k.c, coff64-rs6000.c, coffcode.h, coffgen.c, cofflink.c, + corefile.c, cpu-a29k.c, cpu-alpha.c, cpu-arc.c, cpu-arm.c, cpu-avr.c, + cpu-cris.c, cpu-d10v.c, cpu-d30v.c, cpu-dlx.c, cpu-fr30.c, cpu-frv.c, + cpu-h8300.c, cpu-h8500.c, cpu-hppa.c, cpu-i370.c, cpu-i386.c, + cpu-i860.c, cpu-i960.c, cpu-ia64.c, cpu-ip2k.c, cpu-m10200.c, + cpu-m10300.c, cpu-m32r.c, cpu-m68hc11.c, cpu-m68hc12.c, cpu-m68k.c, + cpu-m88k.c, cpu-mcore.c, cpu-mips.c, cpu-mmix.c, cpu-ns32k.c, + cpu-openrisc.c, cpu-or32.c, cpu-pdp11.c, cpu-pj.c, cpu-powerpc.c, + cpu-rs6000.c, cpu-s390.c, cpu-sh.c, cpu-sparc.c, cpu-tic30.c, + cpu-tic4x.c, cpu-tic54x.c, cpu-tic80.c, cpu-v850.c, cpu-vax.c, + cpu-w65.c, cpu-we32k.c, cpu-xstormy16.c, cpu-z8k.c, dwarf1.c, + dwarf2.c, ecoff.c, ecofflink.c, efi-app-ia32.c, efi-app-ia64.c, + elf-bfd.h, elf-eh-frame.c, elf-hppa.h, elf-m10200.c, elf-m10300.c, + elf-strtab.c, elf.c, elf32-arc.c, elf32-arm.h, elf32-avr.c, + elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c, elf32-fr30.c, + elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c, elf32-hppa.h, + elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c, + elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c, + elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c, + elf32-pj.c, elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-sh64-com.c, + elf32-sh64.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c, + elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c, + elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-ppc.h, elf64-s390.c, + elf64-sh64.c, elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c, + elfarm-oabi.c, elfcode.h, elfcore.h, elflink.c, elflink.h, + elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c, elfxx-mips.h, + elfxx-target.h, format.c, freebsd.h, genlink.h, hash.c, hp300hpux.c, + hppabsd-core.c, hpux-core.c, i386aout.c, i386linux.c, i386lynx.c, + i386mach3.c, i386msdos.c, i386os9k.c, ieee.c, ihex.c, irix-core.c, + libaout.h, libbfd-in.h, libbfd.c, libcoff-in.h, libecoff.h, libieee.h, + libnlm.h, liboasys.h, libpei.h, libxcoff.h, linker.c, lynx-core.c, + m68klinux.c, m68klynx.c, mach-o.c, mach-o.h, merge.c, mipsbsd.c, + mmo.c, netbsd-core.c, netbsd.h, nlm.c, nlm32-alpha.c, nlm32-i386.c, + nlm32-ppc.c, nlm32-sparc.c, nlmcode.h, oasys.c, opncls.c, osf-core.c, + pc532-mach.c, pdp11.c, pe-arm.c, pe-i386.c, pe-mcore.c, pe-mips.c, + pe-sh.c, peXXigen.c, pef.c, pei-arm.c, pei-i386.c, pei-mcore.c, + pei-mips.c, pei-sh.c, peicode.h, ppcboot.c, ptrace-core.c, reloc.c, + reloc16.c, riscix.c, rs6000-core.c, sco5-core.c, section.c, simple.c, + som.c, som.h, sparclinux.c, sparclynx.c, srec.c, stabs.c, sunos.c, + syms.c, targets.c, tekhex.c, ticoff.h, trad-core.c, versados.c, + vms-gsd.c, vms-hdr.c, vms-misc.c, vms-tir.c, vms.c, vms.h, + xcoff-target.h, xcofflink.c, xsym.c, xsym.h: Replace boolean with + bfd_boolean, true with TRUE, false with FALSE. Simplify comparisons + of bfd_boolean vars with TRUE/FALSE. Formatting. + * bfd-in2.h, libbfd.h, libcoff.h: Regenerate + +2002-11-28 Alan Modra + + * elf-bfd.h: Replace occurrences of Elf32_Internal_* and + Elf64_Internal_* with Elf_Internal_*. Replace Elf_Internal_Rel + with Elf_Internal_Rela. + * elf-hppa.h, elf-m10200.c, elf-m10300.c, elf32-arc.c, elf32-arm.h, + elf32-avr.c, elf32-cris.c, elf32-d10v.c, elf32-d30v.c, elf32-dlx.c, + elf32-fr30.c, elf32-frv.c, elf32-gen.c, elf32-h8300.c, elf32-hppa.c, + elf32-i370.c, elf32-i386.c, elf32-i860.c, elf32-i960.c, elf32-ip2k.c, + elf32-m32r.c, elf32-m68hc11.c, elf32-m68hc12.c, elf32-m68k.c, + elf32-mcore.c, elf32-mips.c, elf32-openrisc.c, elf32-or32.c, + elf32-ppc.c, elf32-s390.c, elf32-sh.c, elf32-v850.c, elf32-vax.c, + elf32-xstormy16.c, elf64-alpha.c, elf64-gen.c, elf64-hppa.c, + elf64-mips.c, elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c, + elf64-sparc.c, elf64-x86-64.c, elfarm-nabi.c, elfarm-oabi.c, + elfcode.h, elflink.h, elfn32-mips.c, elfxx-ia64.c, elfxx-mips.c: Ditto. + * elf-hppa.h (elf_hppa_internal_shdr): Delete. Use Elf_Internal_Shdr + throughout instead. + * elf.c (_bfd_elf_no_info_to_howto_rel): Delete. + * elfcode.h (elf_swap_reloca_in): Pass source operand as a bfd_byte *. + Remove INLINE keyword. + (elf_swap_reloc_in): Likewise. Also clear r_addend. + (elf_swap_reloc_out, elf_swap_reloca_out): Pass destination operand + as a bfd_byte *. + (elf_write_relocs): Consolidate REL and RELA code. + (elf_slurp_reloc_table_from_section): Simplify REL code. + (NAME(_bfd_elf,size_info)): Populate reloc swap entries. + * elf-bfd.h (MAX_INT_RELS_PER_EXT_REL): Define. + * elflink.h (elf_link_read_relocs_from_section): Consolidate REL and + RELA code. + (elf_link_adjust_relocs): Likewise. Don't malloc space for temp + reloc array, use a fixed size of MAX_INT_RELS_PER_EXT_REL. + (elf_link_output_relocs): Likewise. + (elf_reloc_link_order): Likewise. + (elf_finish_pointer_linker_section): Likewise. + (struct elf_link_sort_rela): Remove union. + (elf_link_sort_cmp1): Update to suit. + (elf_link_sort_cmp2): Here too. + (elf_link_sort_relocs): Consolidate REL and RELA code. Fix memory + over-allocation for int_rels_per_ext_rel != 1 case. + * elf32-arm.h: Update all bfd_elf32_swap_reloc_out calls. + * elf32-i386.c: Likewise. + * elf32-cris.c: Likewise for bfd_elf32_swap_reloca_out. + * elf32-hppa.c, elf32-i370.c, elf32-m68k.c, elf32-ppc.c, elf32-s390.c, + elf32-sh.c, elf32-vax.c, elfxx-mips.c: Likewise. + * elf64-alpha.c: Likewise for bfd_elf64_swap_reloca_out. + * elf64-hppa.c, elf64-mips.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c, + elf64-sparc.c, elf64-x86-64.c: Likewise. + * elfxx-ia64.c: Likewise for bfd_elfNN_swap_reloca_out. + * elfxx-mips.c (sort_dynamic_relocs): Likewise for + bfd_elf32_swap_reloc_in. + + * elf32-arm.h: Update elf32_arm_info_to_howto calls. + * elf32-mips.c: Likewise for mips_info_to_howto_rel. + (mips_elf64_swap_reloc_in): Zero r_addend. + (mips_elf64_be_swap_reloc_in): Likewise. + (mips_elf64_slurp_one_reloc_table): Simplify. + + * elf64-alpha.c (alpha_elf_size_info): Populate reloc swap entries. + * elf64-hppa.c (hppa64_elf_size_info): Likewise. + * elf64-sparc.c (sparc64_elf_size_info): Likewise. + +2002-11-28 Kaz Kojima + + * elf32-sh.c (sh_elf_relocate_section): Don't complain about + unresolved debugging relocs in dynamic applications. + * elf64-sh64.c (sh_elf64_relocate_section): Likewise. + 2002-11-26 Alan Modra * elf-eh-frame.c (ENSURE_NO_RELOCS): Disregard R_*_NONE relocs. diff -uprN binutils-2.13.90.0.16/bfd/Makefile.am binutils-2.13.90.0.18/bfd/Makefile.am --- binutils-2.13.90.0.16/bfd/Makefile.am Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/Makefile.am Tue Jan 21 10:21:32 2003 @@ -70,6 +70,7 @@ ALL_MACHINES = \ cpu-i860.lo \ cpu-i960.lo \ cpu-ip2k.lo \ + cpu-iq2000.lo \ cpu-m32r.lo \ cpu-m68hc11.lo \ cpu-m68hc12.lo \ @@ -80,6 +81,7 @@ ALL_MACHINES = \ cpu-mcore.lo \ cpu-mips.lo \ cpu-mmix.lo \ + cpu-msp430.lo \ cpu-or32.lo \ cpu-ns32k.lo \ cpu-openrisc.lo \ @@ -122,6 +124,7 @@ ALL_MACHINES_CFILES = \ cpu-i860.c \ cpu-i960.c \ cpu-ip2k.c \ + cpu-iq2000.c \ cpu-m32r.c \ cpu-m68hc11.c \ cpu-m68hc12.c \ @@ -132,6 +135,7 @@ ALL_MACHINES_CFILES = \ cpu-mcore.c \ cpu-mips.c \ cpu-mmix.c \ + cpu-msp430.c \ cpu-or32.c \ cpu-ns32k.c \ cpu-openrisc.c \ @@ -221,6 +225,7 @@ BFD32_BACKENDS = \ elf32-i960.lo \ elf32-ia64.lo \ elf32-ip2k.lo \ + elf32-iq2000.lo \ elf32-m32r.lo \ elf32-m68hc11.lo \ elf32-m68hc12.lo \ @@ -231,6 +236,7 @@ BFD32_BACKENDS = \ elf32-mcore.lo \ elfxx-mips.lo \ elf32-mips.lo \ + elf32-msp430.lo \ elf32-openrisc.lo \ elf32-or32.lo \ elf32-pj.lo \ @@ -378,6 +384,7 @@ BFD32_BACKENDS_CFILES = \ elf32-i860.c \ elf32-i960.c \ elf32-ip2k.c \ + elf32-iq2000.c \ elf32-m32r.c \ elf32-m68k.c \ elf32-m68hc11.c \ @@ -388,6 +395,7 @@ BFD32_BACKENDS_CFILES = \ elf32-mcore.c \ elfxx-mips.c \ elf32-mips.c \ + elf32-msp430.c \ elf32-openrisc.c \ elf32-or32.c \ elf32-pj.c \ @@ -917,6 +925,7 @@ cpu-i386.lo: cpu-i386.c $(INCDIR)/filena cpu-i860.lo: cpu-i860.c $(INCDIR)/filenames.h cpu-i960.lo: cpu-i960.c $(INCDIR)/filenames.h cpu-ip2k.lo: cpu-ip2k.c $(INCDIR)/filenames.h +cpu-iq2000.lo: cpu-iq2000.c $(INCDIR)/filenames.h cpu-m32r.lo: cpu-m32r.c $(INCDIR)/filenames.h cpu-m68hc11.lo: cpu-m68hc11.c $(INCDIR)/filenames.h cpu-m68hc12.lo: cpu-m68hc12.c $(INCDIR)/filenames.h @@ -927,6 +936,7 @@ cpu-m10300.lo: cpu-m10300.c $(INCDIR)/fi cpu-mcore.lo: cpu-mcore.c $(INCDIR)/filenames.h cpu-mips.lo: cpu-mips.c $(INCDIR)/filenames.h cpu-mmix.lo: cpu-mmix.c $(INCDIR)/filenames.h +cpu-msp430.lo: cpu-msp430.c $(INCDIR)/filenames.h cpu-or32.lo: cpu-or32.c $(INCDIR)/filenames.h cpu-ns32k.lo: cpu-ns32k.c $(INCDIR)/filenames.h ns32k.h cpu-openrisc.lo: cpu-openrisc.c $(INCDIR)/filenames.h @@ -1008,7 +1018,8 @@ coff-aux.lo: coff-aux.c $(INCDIR)/filena coffswap.h coff-h8300.lo: coff-h8300.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ genlink.h $(INCDIR)/coff/h8300.h $(INCDIR)/coff/external.h \ - $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h + $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/libiberty.h \ + coffcode.h coffswap.h coff-h8500.lo: coff-h8500.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/coff/h8500.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \ libcoff.h coffcode.h coffswap.h @@ -1170,6 +1181,10 @@ elf32-ip2k.lo: elf32-ip2k.c $(INCDIR)/fi $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h +elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/iq2000.h \ + $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/reloc-macros.h \ @@ -1201,17 +1216,23 @@ elf32-mcore.lo: elf32-mcore.c $(INCDIR)/ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/mcore.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h -elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h elf-bfd.h \ - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ - $(INCDIR)/bfdlink.h elfxx-mips.h $(INCDIR)/elf/mips.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \ - $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h +elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elfxx-mips.h \ + $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \ + $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \ + $(INCDIR)/coff/external.h $(INCDIR)/hashtab.h elf32-mips.lo: elf32-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ genlink.h elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h elfxx-mips.h $(INCDIR)/elf/mips.h \ $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \ $(INCDIR)/coff/internal.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \ $(INCDIR)/coff/external.h ecoffswap.h elf32-target.h +elf32-msp430.lo: elf32-msp430.c $(INCDIR)/filenames.h \ + $(INCDIR)/libiberty.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \ @@ -1527,7 +1548,7 @@ elf64-mmix.lo: elf64-mmix.c $(INCDIR)/fi $(INCDIR)/opcode/mmix.h elf64-target.h elf64-ppc.lo: elf64-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/reloc-macros.h \ elf64-ppc.h elf64-target.h elf64-s390.lo: elf64-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ diff -uprN binutils-2.13.90.0.16/bfd/Makefile.in binutils-2.13.90.0.18/bfd/Makefile.in --- binutils-2.13.90.0.16/bfd/Makefile.in Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/Makefile.in Tue Jan 21 10:21:32 2003 @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -195,6 +195,7 @@ ALL_MACHINES = \ cpu-i860.lo \ cpu-i960.lo \ cpu-ip2k.lo \ + cpu-iq2000.lo \ cpu-m32r.lo \ cpu-m68hc11.lo \ cpu-m68hc12.lo \ @@ -205,6 +206,7 @@ ALL_MACHINES = \ cpu-mcore.lo \ cpu-mips.lo \ cpu-mmix.lo \ + cpu-msp430.lo \ cpu-or32.lo \ cpu-ns32k.lo \ cpu-openrisc.lo \ @@ -248,6 +250,7 @@ ALL_MACHINES_CFILES = \ cpu-i860.c \ cpu-i960.c \ cpu-ip2k.c \ + cpu-iq2000.c \ cpu-m32r.c \ cpu-m68hc11.c \ cpu-m68hc12.c \ @@ -258,6 +261,7 @@ ALL_MACHINES_CFILES = \ cpu-mcore.c \ cpu-mips.c \ cpu-mmix.c \ + cpu-msp430.c \ cpu-or32.c \ cpu-ns32k.c \ cpu-openrisc.c \ @@ -348,6 +352,7 @@ BFD32_BACKENDS = \ elf32-i960.lo \ elf32-ia64.lo \ elf32-ip2k.lo \ + elf32-iq2000.lo \ elf32-m32r.lo \ elf32-m68hc11.lo \ elf32-m68hc12.lo \ @@ -358,6 +363,7 @@ BFD32_BACKENDS = \ elf32-mcore.lo \ elfxx-mips.lo \ elf32-mips.lo \ + elf32-msp430.lo \ elf32-openrisc.lo \ elf32-or32.lo \ elf32-pj.lo \ @@ -506,6 +512,7 @@ BFD32_BACKENDS_CFILES = \ elf32-i860.c \ elf32-i960.c \ elf32-ip2k.c \ + elf32-iq2000.c \ elf32-m32r.c \ elf32-m68k.c \ elf32-m68hc11.c \ @@ -516,6 +523,7 @@ BFD32_BACKENDS_CFILES = \ elf32-mcore.c \ elfxx-mips.c \ elf32-mips.c \ + elf32-msp430.c \ elf32-openrisc.c \ elf32-or32.c \ elf32-pj.c \ @@ -791,7 +799,7 @@ configure.in version.h DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES) OBJECTS = $(libbfd_a_OBJECTS) $(libbfd_la_OBJECTS) @@ -1450,6 +1458,7 @@ cpu-i386.lo: cpu-i386.c $(INCDIR)/filena cpu-i860.lo: cpu-i860.c $(INCDIR)/filenames.h cpu-i960.lo: cpu-i960.c $(INCDIR)/filenames.h cpu-ip2k.lo: cpu-ip2k.c $(INCDIR)/filenames.h +cpu-iq2000.lo: cpu-iq2000.c $(INCDIR)/filenames.h cpu-m32r.lo: cpu-m32r.c $(INCDIR)/filenames.h cpu-m68hc11.lo: cpu-m68hc11.c $(INCDIR)/filenames.h cpu-m68hc12.lo: cpu-m68hc12.c $(INCDIR)/filenames.h @@ -1460,6 +1469,7 @@ cpu-m10300.lo: cpu-m10300.c $(INCDIR)/fi cpu-mcore.lo: cpu-mcore.c $(INCDIR)/filenames.h cpu-mips.lo: cpu-mips.c $(INCDIR)/filenames.h cpu-mmix.lo: cpu-mmix.c $(INCDIR)/filenames.h +cpu-msp430.lo: cpu-msp430.c $(INCDIR)/filenames.h cpu-or32.lo: cpu-or32.c $(INCDIR)/filenames.h cpu-ns32k.lo: cpu-ns32k.c $(INCDIR)/filenames.h ns32k.h cpu-openrisc.lo: cpu-openrisc.c $(INCDIR)/filenames.h @@ -1541,7 +1551,8 @@ coff-aux.lo: coff-aux.c $(INCDIR)/filena coffswap.h coff-h8300.lo: coff-h8300.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ genlink.h $(INCDIR)/coff/h8300.h $(INCDIR)/coff/external.h \ - $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h + $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/libiberty.h \ + coffcode.h coffswap.h coff-h8500.lo: coff-h8500.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ $(INCDIR)/coff/h8500.h $(INCDIR)/coff/external.h $(INCDIR)/coff/internal.h \ libcoff.h coffcode.h coffswap.h @@ -1703,6 +1714,10 @@ elf32-ip2k.lo: elf32-ip2k.c $(INCDIR)/fi $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/ip2k.h $(INCDIR)/elf/reloc-macros.h \ elf32-target.h +elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/iq2000.h \ + $(INCDIR)/elf/reloc-macros.h elf32-target.h elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h elf-bfd.h \ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/reloc-macros.h \ @@ -1734,17 +1749,23 @@ elf32-mcore.lo: elf32-mcore.c $(INCDIR)/ $(INCDIR)/bfdlink.h elf-bfd.h $(INCDIR)/elf/common.h \ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/elf/mcore.h \ $(INCDIR)/elf/reloc-macros.h elf32-target.h -elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h elf-bfd.h \ - $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ - $(INCDIR)/bfdlink.h elfxx-mips.h $(INCDIR)/elf/mips.h \ - $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \ - $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h $(INCDIR)/coff/external.h +elfxx-mips.lo: elfxx-mips.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \ + elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h elfxx-mips.h \ + $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h \ + $(INCDIR)/coff/symconst.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \ + $(INCDIR)/coff/external.h $(INCDIR)/hashtab.h elf32-mips.lo: elf32-mips.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ genlink.h elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h elfxx-mips.h $(INCDIR)/elf/mips.h \ $(INCDIR)/elf/reloc-macros.h $(INCDIR)/coff/sym.h $(INCDIR)/coff/symconst.h \ $(INCDIR)/coff/internal.h $(INCDIR)/coff/ecoff.h $(INCDIR)/coff/mips.h \ $(INCDIR)/coff/external.h ecoffswap.h elf32-target.h +elf32-msp430.lo: elf32-msp430.c $(INCDIR)/filenames.h \ + $(INCDIR)/libiberty.h elf-bfd.h $(INCDIR)/elf/common.h \ + $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ + $(INCDIR)/elf/msp430.h $(INCDIR)/elf/reloc-macros.h \ + elf32-target.h elf32-openrisc.lo: elf32-openrisc.c $(INCDIR)/filenames.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/openrisc.h \ @@ -2060,7 +2081,7 @@ elf64-mmix.lo: elf64-mmix.c $(INCDIR)/fi $(INCDIR)/opcode/mmix.h elf64-target.h elf64-ppc.lo: elf64-ppc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ - $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \ + $(INCDIR)/elf/external.h $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/reloc-macros.h \ elf64-ppc.h elf64-target.h elf64-s390.lo: elf64-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \ elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ diff -uprN binutils-2.13.90.0.16/bfd/acinclude.m4 binutils-2.13.90.0.18/bfd/acinclude.m4 --- binutils-2.13.90.0.16/bfd/acinclude.m4 Thu May 23 15:10:09 2002 +++ binutils-2.13.90.0.18/bfd/acinclude.m4 Tue Jan 21 10:21:32 2003 @@ -129,7 +129,7 @@ AC_DEFUN([AM_INSTALL_LIBBFD], AC_ARG_ENABLE(install-libbfd, [ --install-libbfd controls installation of libbfd and related headers], install_libbfd_p=$enableval, - if test "${host}" = "${target}" -o "$enable_shared" = "yes"; then + if test "${host}" = "${target}" || test "$enable_shared" = "yes"; then install_libbfd_p=yes else install_libbfd_p=no diff -uprN binutils-2.13.90.0.16/bfd/aclocal.m4 binutils-2.13.90.0.18/bfd/aclocal.m4 --- binutils-2.13.90.0.16/bfd/aclocal.m4 Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/aclocal.m4 Tue Jan 21 10:21:32 2003 @@ -141,7 +141,7 @@ AC_DEFUN([AM_INSTALL_LIBBFD], AC_ARG_ENABLE(install-libbfd, [ --install-libbfd controls installation of libbfd and related headers], install_libbfd_p=$enableval, - if test "${host}" = "${target}" -o "$enable_shared" = "yes"; then + if test "${host}" = "${target}" || test "$enable_shared" = "yes"; then install_libbfd_p=yes else install_libbfd_p=no @@ -173,24 +173,6 @@ else $1_FALSE= fi]) -#serial 1 -# This test replaces the one in autoconf. -# Currently this macro should have the same name as the autoconf macro -# because gettext's gettext.m4 (distributed in the automake package) -# still uses it. Otherwise, the use in gettext.m4 makes autoheader -# give these diagnostics: -# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX -# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX - -undefine([AC_ISC_POSIX]) - -AC_DEFUN([AC_ISC_POSIX], - [ - dnl This test replaces the obsolescent AC_ISC_POSIX kludge. - AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) - ] -) - # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. diff -uprN binutils-2.13.90.0.16/bfd/aix386-core.c binutils-2.13.90.0.18/bfd/aix386-core.c --- binutils-2.13.90.0.16/bfd/aix386-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/aix386-core.c Mon Dec 16 12:22:51 2002 @@ -204,13 +204,13 @@ aix386_core_file_failing_signal (abfd) return core_hdr (abfd)->cd_cursig; } -static boolean +static bfd_boolean aix386_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd; bfd *exec_bfd; { /* FIXME: We have no way of telling at this point. */ - return true; + return TRUE; } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/aix5ppc-core.c binutils-2.13.90.0.18/bfd/aix5ppc-core.c --- binutils-2.13.90.0.16/bfd/aix5ppc-core.c Thu May 23 15:10:09 2002 +++ binutils-2.13.90.0.18/bfd/aix5ppc-core.c Mon Dec 16 12:22:51 2002 @@ -28,10 +28,14 @@ #include "sysdep.h" #include "libbfd.h" -const bfd_target * xcoff64_core_p PARAMS ((bfd *)); -boolean xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -char * xcoff64_core_file_failing_command PARAMS ((bfd *)); -int xcoff64_core_file_failing_signal PARAMS ((bfd *)); +const bfd_target *xcoff64_core_p + PARAMS ((bfd *)); +bfd_boolean xcoff64_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); +char *xcoff64_core_file_failing_command + PARAMS ((bfd *)); +int xcoff64_core_file_failing_signal + PARAMS ((bfd *)); /* Aix 5.1 system include file. */ @@ -62,11 +66,11 @@ xcoff64_core_p (abfd) if (bfd_seek (abfd, 0, SEEK_SET) != 0) goto xcoff64_core_p_error; - if (sizeof (struct core_dumpxx) + if (sizeof (struct core_dumpxx) != bfd_bread (&core, sizeof (struct core_dumpxx), abfd)) goto xcoff64_core_p_error; - if (bfd_stat (abfd, &statbuf) < 0) + if (bfd_stat (abfd, &statbuf) < 0) goto xcoff64_core_p_error; /* Sanity checks @@ -82,24 +86,24 @@ xcoff64_core_p (abfd) See rs6000-core.c for comment on size of core If there isn't enough of a real core file, bail. */ - if ((CORE_VERSION_1 != (core.c_flag & CORE_VERSION_1)) - || (0 != core.c_entries) - || (! (IS_PROC64 (&core.c_u.U_proc))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_fdsinfox))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_loader))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_loader + core.c_lsize))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_thr))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_segregion))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_stack))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_stack + core.c_size))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_data))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_data + core.c_datasize))) - || (! (core.c_flag & UBLOCK_VALID)) - || (! (core.c_flag & LE_VALID))) + if ((CORE_VERSION_1 != (core.c_flag & CORE_VERSION_1)) + || (0 != core.c_entries) + || (! (IS_PROC64 (&core.c_u.U_proc))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_fdsinfox))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_loader))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_loader + core.c_lsize))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_thr))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_segregion))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_stack))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_stack + core.c_size))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_data))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_data + core.c_datasize))) + || (! (core.c_flag & UBLOCK_VALID)) + || (! (core.c_flag & LE_VALID))) goto xcoff64_core_p_error; /* Check for trucated stack or general truncating. */ - if ((! (core.c_flag & USTACK_VALID)) + if ((! (core.c_flag & USTACK_VALID)) || (core.c_flag & CORE_TRUNC)) { bfd_set_error (bfd_error_file_truncated); @@ -109,7 +113,7 @@ xcoff64_core_p (abfd) new_core_hdr = (struct core_dumpxx *) bfd_zalloc (abfd, sizeof (struct core_dumpxx)); - if (NULL == new_core_hdr) + if (NULL == new_core_hdr) return return_value; memcpy (new_core_hdr, &core, sizeof (struct core_dumpxx)); @@ -117,7 +121,7 @@ xcoff64_core_p (abfd) /* .stack section. */ sec = bfd_make_section_anyway (abfd, ".stack"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -127,7 +131,7 @@ xcoff64_core_p (abfd) /* .reg section for all registers. */ sec = bfd_make_section_anyway (abfd, ".reg"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_HAS_CONTENTS | SEC_IN_MEMORY; @@ -138,7 +142,7 @@ xcoff64_core_p (abfd) /* .ldinfo section. To actually find out how long this section is in this particular - core dump would require going down the whole list of struct + core dump would require going down the whole list of struct ld_info's. See if we can just fake it. */ sec = bfd_make_section_anyway (abfd, ".ldinfo"); if (NULL == sec) @@ -152,10 +156,10 @@ xcoff64_core_p (abfd) /* AIX 4 adds data sections from loaded objects to the core file, which can be found by examining ldinfo, and anonymously mmapped regions. */ - + /* .data section from executable. */ sec = bfd_make_section_anyway (abfd, ".data"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -165,20 +169,20 @@ xcoff64_core_p (abfd) /* .data sections from loaded objects. */ ld_offset = core.c_loader; - - while (1) + + while (1) { - if (bfd_seek (abfd, ld_offset, SEEK_SET) != 0) + if (bfd_seek (abfd, ld_offset, SEEK_SET) != 0) return return_value; if (sizeof (struct __ld_info64) != - bfd_bread (&ldinfo, sizeof (struct __ld_info64), abfd)) + bfd_bread (&ldinfo, sizeof (struct __ld_info64), abfd)) return return_value; - if (ldinfo.ldinfo_core) + if (ldinfo.ldinfo_core) { sec = bfd_make_section_anyway (abfd, ".data"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -193,20 +197,20 @@ xcoff64_core_p (abfd) } /* .vmdata sections from anonymously mmapped regions. */ - if (core.c_vmregions) + if (core.c_vmregions) { - if (bfd_seek (abfd, core.c_vmm, SEEK_SET) != 0) + if (bfd_seek (abfd, core.c_vmm, SEEK_SET) != 0) return return_value; - for (i = 0; i < core.c_vmregions; i++) + for (i = 0; i < core.c_vmregions; i++) if (sizeof (struct vm_infox) != - bfd_bread (&vminfo, sizeof (struct vm_infox), abfd)) + bfd_bread (&vminfo, sizeof (struct vm_infox), abfd)) return return_value; - if (vminfo.vminfo_offset) + if (vminfo.vminfo_offset) { sec = bfd_make_section_anyway (abfd, ".vmdata"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -217,17 +221,17 @@ xcoff64_core_p (abfd) } return_value = abfd->xvec; /* This is garbage for now. */ - + xcoff64_core_p_error: - if (bfd_get_error () != bfd_error_system_call) + if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_wrong_format); - + return return_value; } -/* Return `true' if given core is from the given executable. */ +/* Return `TRUE' if given core is from the given executable. */ -boolean +bfd_boolean xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd; bfd *exec_bfd; @@ -236,22 +240,22 @@ xcoff64_core_file_matches_executable_p ( char *path, *s; size_t alloc; const char *str1, *str2; - boolean return_value = false; + bfd_boolean return_value = FALSE; /* Get the header. */ - if (bfd_seek (core_bfd, 0, SEEK_SET) != 0) + if (bfd_seek (core_bfd, 0, SEEK_SET) != 0) return return_value; - + if (sizeof (struct core_dumpxx) != - bfd_bread (&core, sizeof (struct core_dumpxx), core_bfd)) + bfd_bread (&core, sizeof (struct core_dumpxx), core_bfd)) return return_value; - if (bfd_seek (core_bfd, core.c_loader, SEEK_SET) != 0) + if (bfd_seek (core_bfd, core.c_loader, SEEK_SET) != 0) return return_value; alloc = 100; path = bfd_malloc (alloc); - if (path == NULL) + if (path == NULL) return return_value; s = path; @@ -264,13 +268,13 @@ xcoff64_core_file_matches_executable_p ( if (*s == '\0') break; ++s; - if (s == path + alloc) + if (s == path + alloc) { char *n; alloc *= 2; n = bfd_realloc (path, alloc); - if (n == NULL) + if (n == NULL) goto xcoff64_core_file_matches_executable_p_end_1; s = n + (path - s); @@ -285,8 +289,8 @@ xcoff64_core_file_matches_executable_p ( str1 = str1 != NULL ? str1 + 1 : path; str2 = str2 != NULL ? str2 + 1 : exec_bfd->filename; - if (strcmp (str1, str2) == 0) - return_value = true; + if (strcmp (str1, str2) == 0) + return_value = TRUE; xcoff64_core_file_matches_executable_p_end_1: free (path); @@ -300,7 +304,7 @@ xcoff64_core_file_failing_command (abfd) struct core_dumpxx *c = core_hdr (abfd); char *return_value = 0; - if (NULL != c) + if (NULL != c) return_value = c->c_u.U_proc.pi_comm; return return_value; @@ -313,7 +317,7 @@ xcoff64_core_file_failing_signal (abfd) struct core_dumpxx *c = core_hdr (abfd); int return_value = 0; - if (NULL != c) + if (NULL != c) return_value = c->c_signo; return return_value; @@ -321,10 +325,14 @@ xcoff64_core_file_failing_signal (abfd) #else /* AIX_5_CORE */ -const bfd_target * xcoff64_core_p PARAMS ((bfd *)); -boolean xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -char * xcoff64_core_file_failing_command PARAMS ((bfd *)); -int xcoff64_core_file_failing_signal PARAMS ((bfd *)); +const bfd_target *xcoff64_core_p + PARAMS ((bfd *)); +bfd_boolean xcoff64_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); +char *xcoff64_core_file_failing_command + PARAMS ((bfd *)); +int xcoff64_core_file_failing_signal + PARAMS ((bfd *)); const bfd_target * xcoff64_core_p (abfd) @@ -334,12 +342,12 @@ xcoff64_core_p (abfd) return 0; } -boolean +bfd_boolean xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return false; + return FALSE; } char * diff -uprN binutils-2.13.90.0.16/bfd/aout-adobe.c binutils-2.13.90.0.18/bfd/aout-adobe.c --- binutils-2.13.90.0.16/bfd/aout-adobe.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/aout-adobe.c Mon Dec 16 12:22:51 2002 @@ -32,19 +32,26 @@ Foundation, Inc., 59 Temple Place - Suit /* Forward decl. */ extern const bfd_target a_out_adobe_vec; -static const bfd_target *aout_adobe_callback PARAMS ((bfd *)); - -extern boolean aout_32_slurp_symbol_table PARAMS ((bfd *abfd)); -extern boolean aout_32_write_syms PARAMS ((bfd *)); -static void aout_adobe_write_section PARAMS ((bfd *abfd, sec_ptr sect)); -static const bfd_target * aout_adobe_object_p PARAMS ((bfd *)); -static boolean aout_adobe_mkobject PARAMS ((bfd *)); -static boolean aout_adobe_write_object_contents PARAMS ((bfd *)); -static boolean aout_adobe_set_section_contents +static const bfd_target *aout_adobe_callback + PARAMS ((bfd *)); +extern bfd_boolean aout_32_slurp_symbol_table + PARAMS ((bfd *abfd)); +extern bfd_boolean aout_32_write_syms + PARAMS ((bfd *)); +static void aout_adobe_write_section + PARAMS ((bfd *abfd, sec_ptr sect)); +static const bfd_target * aout_adobe_object_p + PARAMS ((bfd *)); +static bfd_boolean aout_adobe_mkobject + PARAMS ((bfd *)); +static bfd_boolean aout_adobe_write_object_contents + PARAMS ((bfd *)); +static bfd_boolean aout_adobe_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static boolean aout_adobe_set_arch_mach +static bfd_boolean aout_adobe_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -static int aout_adobe_sizeof_headers PARAMS ((bfd *, boolean)); +static int aout_adobe_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); /* Swaps the information in an executable header taken from a raw byte stream memory image, into the internal exec_header structure. */ @@ -271,7 +278,7 @@ struct bout_data_struct struct internal_exec e; }; -static boolean +static bfd_boolean aout_adobe_mkobject (abfd) bfd *abfd; { @@ -280,7 +287,7 @@ aout_adobe_mkobject (abfd) rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, amt); if (rawptr == NULL) - return false; + return FALSE; abfd->tdata.bout_data = rawptr; exec_hdr (abfd) = &rawptr->e; @@ -291,10 +298,10 @@ aout_adobe_mkobject (abfd) adata (abfd).segment_size = 1; /* Not applicable. */ adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return true; + return TRUE; } -static boolean +static bfd_boolean aout_adobe_write_object_contents (abfd) bfd *abfd; { @@ -342,7 +349,7 @@ aout_adobe_write_object_contents (abfd) amt = EXEC_BYTES_SIZE; if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 || bfd_bwrite ((PTR) &swapped_hdr, amt, abfd) != amt) - return false; + return FALSE; /* Now write out the section information. Text first, data next, rest afterward. */ @@ -362,38 +369,38 @@ aout_adobe_write_object_contents (abfd) /* Write final `sentinel` section header (with type of 0). */ amt = sizeof (*sentinel); if (bfd_bwrite ((PTR) sentinel, amt, abfd) != amt) - return false; + return FALSE; /* Now write out reloc info, followed by syms and strings. */ if (bfd_get_symcount (abfd) != 0) { if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*exec_hdr (abfd))), SEEK_SET) != 0) - return false; + return FALSE; if (! aout_32_write_syms (abfd)) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*exec_hdr (abfd))), SEEK_SET) != 0) - return false; + return FALSE; for (sect = abfd->sections; sect; sect = sect->next) if (sect->flags & SEC_CODE) if (!aout_32_squirt_out_relocs (abfd, sect)) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*exec_hdr (abfd))), SEEK_SET) != 0) - return false; + return FALSE; for (sect = abfd->sections; sect; sect = sect->next) if (sect->flags & SEC_DATA) if (!aout_32_squirt_out_relocs (abfd, sect)) - return false; + return FALSE; } - return true; + return TRUE; } static void @@ -404,7 +411,7 @@ aout_adobe_write_section (abfd, sect) /* FIXME XXX */ } -static boolean +static bfd_boolean aout_adobe_set_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -457,34 +464,34 @@ aout_adobe_set_section_contents (abfd, s /* Regardless, once we know what we're doing, we might as well get going. */ if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0) - return false; + return FALSE; if (count == 0) - return true; + return TRUE; return bfd_bwrite ((PTR) location, count, abfd) == count; } -static boolean +static bfd_boolean aout_adobe_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; unsigned long machine; { if (! bfd_default_set_arch_mach (abfd, arch, machine)) - return false; + return FALSE; if (arch == bfd_arch_unknown || arch == bfd_arch_m68k) - return true; + return TRUE; - return false; + return FALSE; } static int aout_adobe_sizeof_headers (ignore_abfd, ignore) bfd *ignore_abfd ATTRIBUTE_UNUSED; - boolean ignore ATTRIBUTE_UNUSED; + bfd_boolean ignore ATTRIBUTE_UNUSED; { return sizeof (struct internal_exec); } diff -uprN binutils-2.13.90.0.16/bfd/aout-arm.c binutils-2.13.90.0.18/bfd/aout-arm.c --- binutils-2.13.90.0.16/bfd/aout-arm.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/aout-arm.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for raw ARM a.out binaries. - Copyright 1994, 1995, 1997, 1998, 1999, 2000, 2001 + Copyright 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) @@ -54,7 +54,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "libaout.h" #include "aout/aout64.h" -static boolean MY(write_object_contents) +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *)); static bfd_reloc_status_type MY(fix_pcrel_26_done) PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); @@ -80,28 +80,28 @@ reloc_howto_type MY(howto_table)[] = { /* Type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone. */ - HOWTO (0, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "8", true, - 0x000000ff, 0x000000ff, false), - HOWTO (1, 0, 1, 16, false, 0, complain_overflow_bitfield, 0, "16", true, - 0x0000ffff, 0x0000ffff, false), - HOWTO (2, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "32", true, - 0xffffffff, 0xffffffff, false), - HOWTO (3, 2, 2, 26, true, 0, complain_overflow_signed, MY(fix_pcrel_26), - "ARM26", true, 0x00ffffff, 0x00ffffff, true), - HOWTO (4, 0, 0, 8, true, 0, complain_overflow_signed, 0, "DISP8", true, - 0x000000ff, 0x000000ff, true), - HOWTO (5, 0, 1, 16, true, 0, complain_overflow_signed, 0, "DISP16", true, - 0x0000ffff, 0x0000ffff, true), - HOWTO (6, 0, 2, 32, true, 0, complain_overflow_signed, 0, "DISP32", true, - 0xffffffff, 0xffffffff, true), - HOWTO (7, 2, 2, 26, false, 0, complain_overflow_signed, - MY(fix_pcrel_26_done), "ARM26D", true, 0x0, 0x0, - false), + HOWTO (0, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE, + 0x000000ff, 0x000000ff, FALSE), + HOWTO (1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE, + 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (2, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE, + 0xffffffff, 0xffffffff, FALSE), + HOWTO (3, 2, 2, 26, TRUE, 0, complain_overflow_signed, MY(fix_pcrel_26), + "ARM26", TRUE, 0x00ffffff, 0x00ffffff, TRUE), + HOWTO (4, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE, + 0x000000ff, 0x000000ff, TRUE), + HOWTO (5, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE, + 0x0000ffff, 0x0000ffff, TRUE), + HOWTO (6, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, + 0xffffffff, 0xffffffff, TRUE), + HOWTO (7, 2, 2, 26, FALSE, 0, complain_overflow_signed, + MY(fix_pcrel_26_done), "ARM26D", TRUE, 0x0, 0x0, + FALSE), EMPTY_HOWTO (-1), - HOWTO (9, 0, -1, 16, false, 0, complain_overflow_bitfield, 0, "NEG16", true, - 0x0000ffff, 0x0000ffff, false), - HOWTO (10, 0, -2, 32, false, 0, complain_overflow_bitfield, 0, "NEG32", true, - 0xffffffff, 0xffffffff, false) + HOWTO (9, 0, -1, 16, FALSE, 0, complain_overflow_bitfield, 0, "NEG16", TRUE, + 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (10, 0, -2, 32, FALSE, 0, complain_overflow_bitfield, 0, "NEG32", TRUE, + 0xffffffff, 0xffffffff, FALSE) }; #define RELOC_ARM_BITS_NEG_BIG ((unsigned int) 0x08) diff -uprN binutils-2.13.90.0.16/bfd/aout-cris.c binutils-2.13.90.0.18/bfd/aout-cris.c --- binutils-2.13.90.0.16/bfd/aout-cris.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/aout-cris.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD backend for CRIS a.out binaries. - Copyright 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Axis Communications AB. Written by Hans-Peter Nilsson. @@ -76,7 +76,7 @@ Foundation, Inc., 59 Temple Place - Suit #define MY_exec_hdr_flags 1 #define MY_write_object_contents MY(write_object_contents) -static boolean MY(write_object_contents) PARAMS ((bfd *)); +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *)); /* Forward this, so we can use a pointer to it in PARAMS. */ struct reloc_ext_external; @@ -92,7 +92,7 @@ static void MY(swap_ext_reloc_in) PARAMS bfd_size_type)); #define MY_set_sizes MY(set_sizes) -static boolean MY(set_sizes) PARAMS ((bfd *)); +static bfd_boolean MY(set_sizes) PARAMS ((bfd *)); /* To set back reloc_size to ext, we make MY(set_sizes) be called through this construct. Note that MY_set_arch_mach is only called @@ -121,7 +121,7 @@ static boolean MY(set_sizes) PARAMS ((bf /* We need our own version to set header flags. */ -static boolean +static bfd_boolean MY(write_object_contents) (abfd) bfd *abfd; { @@ -143,7 +143,7 @@ MY(write_object_contents) (abfd) WRITE_HEADERS (abfd, execp); - return true; + return TRUE; } /* We need our own for these reasons: @@ -279,7 +279,7 @@ MY(swap_ext_reloc_in) (abfd, bytes, cach "obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;", to avoid changing NAME (aout, set_arch_mach) in aoutx. */ -static boolean +static bfd_boolean MY(set_sizes) (abfd) bfd *abfd; { @@ -297,7 +297,7 @@ MY(set_sizes) (abfd) obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE; - return true; + return TRUE; } /* diff -uprN binutils-2.13.90.0.16/bfd/aout-encap.c binutils-2.13.90.0.18/bfd/aout-encap.c --- binutils-2.13.90.0.16/bfd/aout-encap.c Mon Oct 15 21:27:22 2001 +++ binutils-2.13.90.0.18/bfd/aout-encap.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for a.out files encapsulated with COFF headers. - Copyright 1990, 1991, 1994, 1995, 2000, 2001 + Copyright 1990, 1991, 1994, 1995, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -123,7 +123,7 @@ encap_real_callback (abfd) Section contents have already been written. We write the file header, symbols, and relocation. */ -boolean +bfd_boolean encap_write_object_contents (abfd) bfd *abfd; { @@ -230,7 +230,7 @@ encap_write_object_contents (abfd) text_size -= N_TXTOFF (outheader); WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } #define MY_write_object_content encap_write_object_contents diff -uprN binutils-2.13.90.0.16/bfd/aout-ns32k.c binutils-2.13.90.0.18/bfd/aout-ns32k.c --- binutils-2.13.90.0.16/bfd/aout-ns32k.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/bfd/aout-ns32k.c Mon Dec 16 12:22:51 2002 @@ -35,7 +35,7 @@ MYNS(bfd_reloc_type_lookup) PARAMS((bfd *abfd AND bfd_reloc_code_real_type code)); -boolean +bfd_boolean MYNS(write_object_contents) PARAMS((bfd *abfd)); @@ -100,58 +100,58 @@ reloc_howto_type MY(howto_table)[] = { /* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone */ /* ns32k immediate operands. */ - HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 0, 8, false, 0, complain_overflow_signed, + HOWTO (BFD_RELOC_NS32K_IMM_8, 0, 0, 8, FALSE, 0, complain_overflow_signed, _bfd_ns32k_reloc_imm, "NS32K_IMM_8", - true, 0x000000ff,0x000000ff, false), - HOWTO (BFD_RELOC_NS32K_IMM_16, 0, 1, 16, false, 0, complain_overflow_signed, + TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (BFD_RELOC_NS32K_IMM_16, 0, 1, 16, FALSE, 0, complain_overflow_signed, _bfd_ns32k_reloc_imm, "NS32K_IMM_16", - true, 0x0000ffff,0x0000ffff, false), - HOWTO (BFD_RELOC_NS32K_IMM_32, 0, 2, 32, false, 0, complain_overflow_signed, + TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (BFD_RELOC_NS32K_IMM_32, 0, 2, 32, FALSE, 0, complain_overflow_signed, _bfd_ns32k_reloc_imm, "NS32K_IMM_32", - true, 0xffffffff,0xffffffff, false), - HOWTO (BFD_RELOC_NS32K_IMM_8_PCREL, 0, 0, 8, true, 0, complain_overflow_signed, + TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO (BFD_RELOC_NS32K_IMM_8_PCREL, 0, 0, 8, TRUE, 0, complain_overflow_signed, _bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_8", - true, 0x000000ff, 0x000000ff, false), - HOWTO (BFD_RELOC_NS32K_IMM_16_PCREL, 0, 1, 16, true, 0, complain_overflow_signed, + TRUE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (BFD_RELOC_NS32K_IMM_16_PCREL, 0, 1, 16, TRUE, 0, complain_overflow_signed, _bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_16", - true, 0x0000ffff,0x0000ffff, false), - HOWTO (BFD_RELOC_NS32K_IMM_32_PCREL, 0, 2, 32, true, 0, complain_overflow_signed, + TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (BFD_RELOC_NS32K_IMM_32_PCREL, 0, 2, 32, TRUE, 0, complain_overflow_signed, _bfd_ns32k_reloc_imm, "PCREL_NS32K_IMM_32", - true, 0xffffffff,0xffffffff, false), + TRUE, 0xffffffff,0xffffffff, FALSE), /* ns32k displacements. */ - HOWTO (BFD_RELOC_NS32K_DISP_8, 0, 0, 7, false, 0, complain_overflow_signed, + HOWTO (BFD_RELOC_NS32K_DISP_8, 0, 0, 7, FALSE, 0, complain_overflow_signed, _bfd_ns32k_reloc_disp, "NS32K_DISP_8", - true, 0x000000ff,0x000000ff, false), - HOWTO (BFD_RELOC_NS32K_DISP_16, 0, 1, 14, false, 0, complain_overflow_signed, + TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (BFD_RELOC_NS32K_DISP_16, 0, 1, 14, FALSE, 0, complain_overflow_signed, _bfd_ns32k_reloc_disp, "NS32K_DISP_16", - true, 0x0000ffff, 0x0000ffff, false), - HOWTO (BFD_RELOC_NS32K_DISP_32, 0, 2, 30, false, 0, complain_overflow_signed, + TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (BFD_RELOC_NS32K_DISP_32, 0, 2, 30, FALSE, 0, complain_overflow_signed, _bfd_ns32k_reloc_disp, "NS32K_DISP_32", - true, 0xffffffff, 0xffffffff, false), - HOWTO (BFD_RELOC_NS32K_DISP_8_PCREL, 0, 0, 7, true, 0, complain_overflow_signed, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO (BFD_RELOC_NS32K_DISP_8_PCREL, 0, 0, 7, TRUE, 0, complain_overflow_signed, _bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_8", - true, 0x000000ff,0x000000ff, false), - HOWTO (BFD_RELOC_NS32K_DISP_16_PCREL, 0, 1, 14, true, 0, complain_overflow_signed, + TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (BFD_RELOC_NS32K_DISP_16_PCREL, 0, 1, 14, TRUE, 0, complain_overflow_signed, _bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_16", - true, 0x0000ffff,0x0000ffff, false), - HOWTO (BFD_RELOC_NS32K_DISP_32_PCREL, 0, 2, 30, true, 0, complain_overflow_signed, + TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (BFD_RELOC_NS32K_DISP_32_PCREL, 0, 2, 30, TRUE, 0, complain_overflow_signed, _bfd_ns32k_reloc_disp, "PCREL_NS32K_DISP_32", - true, 0xffffffff,0xffffffff, false), + TRUE, 0xffffffff,0xffffffff, FALSE), /* Normal 2's complement. */ - HOWTO (BFD_RELOC_8, 0, 0, 8, false, 0, complain_overflow_bitfield,0, - "8", true, 0x000000ff,0x000000ff, false), - HOWTO (BFD_RELOC_16, 0, 1, 16, false, 0, complain_overflow_bitfield,0, - "16", true, 0x0000ffff,0x0000ffff, false), - HOWTO (BFD_RELOC_32, 0, 2, 32, false, 0, complain_overflow_bitfield,0, - "32", true, 0xffffffff,0xffffffff, false), - HOWTO (BFD_RELOC_8_PCREL, 0, 0, 8, true, 0, complain_overflow_signed, 0, - "PCREL_8", true, 0x000000ff,0x000000ff, false), - HOWTO (BFD_RELOC_16_PCREL, 0, 1, 16, true, 0, complain_overflow_signed, 0, - "PCREL_16", true, 0x0000ffff,0x0000ffff, false), - HOWTO (BFD_RELOC_32_PCREL, 0, 2, 32, true, 0, complain_overflow_signed, 0, - "PCREL_32", true, 0xffffffff,0xffffffff, false), + HOWTO (BFD_RELOC_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,0, + "8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (BFD_RELOC_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,0, + "16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (BFD_RELOC_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0, + "32", TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO (BFD_RELOC_8_PCREL, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, + "PCREL_8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (BFD_RELOC_16_PCREL, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, + "PCREL_16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (BFD_RELOC_32_PCREL, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, + "PCREL_32", TRUE, 0xffffffff,0xffffffff, FALSE), }; #define CTOR_TABLE_RELOC_HOWTO(BFD) (MY(howto_table) + 14) diff -uprN binutils-2.13.90.0.16/bfd/aout-target.h binutils-2.13.90.0.18/bfd/aout-target.h --- binutils-2.13.90.0.16/bfd/aout-target.h Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/aout-target.h Mon Dec 16 12:22:51 2002 @@ -201,21 +201,21 @@ MY(object_p) (abfd) #ifndef MY_mkobject -static boolean MY(mkobject) PARAMS ((bfd *)); +static bfd_boolean MY(mkobject) PARAMS ((bfd *)); -static boolean +static bfd_boolean MY(mkobject) (abfd) bfd *abfd; { if (! NAME(aout,mkobject) (abfd)) - return false; + return FALSE; #if 0 /* Sizes get set in set_sizes callback, later, after we know the architecture and machine. */ adata(abfd).page_size = TARGET_PAGE_SIZE; adata(abfd).segment_size = SEGMENT_SIZE; adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE; #endif - return true; + return TRUE; } #define MY_mkobject MY(mkobject) #endif @@ -228,10 +228,10 @@ MY(mkobject) (abfd) section contents, and copy_private_bfd_data is not called until after the section contents have been set. */ -static boolean MY_bfd_copy_private_section_data +static bfd_boolean MY_bfd_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); -static boolean +static bfd_boolean MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec) bfd *ibfd; asection *isec ATTRIBUTE_UNUSED; @@ -241,7 +241,7 @@ MY_bfd_copy_private_section_data (ibfd, if (bfd_get_flavour (ibfd) == bfd_target_aout_flavour && bfd_get_flavour (obfd) == bfd_target_aout_flavour) obj_aout_subformat (obfd) = obj_aout_subformat (ibfd); - return true; + return TRUE; } #endif @@ -251,9 +251,9 @@ MY_bfd_copy_private_section_data (ibfd, file header, symbols, and relocation. */ #ifndef MY_write_object_contents -static boolean MY(write_object_contents) PARAMS ((bfd *)); +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *)); -static boolean +static bfd_boolean MY(write_object_contents) (abfd) bfd *abfd; { @@ -264,16 +264,16 @@ MY(write_object_contents) (abfd) WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } #define MY_write_object_contents MY(write_object_contents) #endif #ifndef MY_set_sizes -static boolean MY(set_sizes) PARAMS ((bfd *)); +static bfd_boolean MY(set_sizes) PARAMS ((bfd *)); -static boolean +static bfd_boolean MY(set_sizes) (abfd) bfd *abfd; { @@ -287,7 +287,7 @@ MY(set_sizes) (abfd) #endif adata(abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return true; + return TRUE; } #define MY_set_sizes MY(set_sizes) #endif @@ -375,9 +375,9 @@ MY_final_link_callback (abfd, ptreloff, /* Final link routine. We need to use a call back to get the correct offsets in the output file. */ -static boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); -static boolean +static bfd_boolean MY_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; diff -uprN binutils-2.13.90.0.16/bfd/aout-tic30.c binutils-2.13.90.0.18/bfd/aout-tic30.c --- binutils-2.13.90.0.16/bfd/aout-tic30.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/aout-tic30.c Mon Dec 16 12:22:51 2002 @@ -56,18 +56,23 @@ static bfd_reloc_status_type tic30_aout_ static bfd_reloc_status_type tic30_aout_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma, bfd_vma, bfd_vma)); -static const bfd_target *tic30_aout_object_p PARAMS ((bfd *)); -static boolean tic30_aout_write_object_contents PARAMS ((bfd *)); -static boolean tic30_aout_set_sizes PARAMS ((bfd *)); -static const bfd_target * tic30_aout_callback PARAMS ((bfd *)); -static boolean MY_bfd_copy_private_section_data +static const bfd_target *tic30_aout_object_p + PARAMS ((bfd *)); +static bfd_boolean tic30_aout_write_object_contents + PARAMS ((bfd *)); +static bfd_boolean tic30_aout_set_sizes + PARAMS ((bfd *)); +static const bfd_target * tic30_aout_callback + PARAMS ((bfd *)); +static bfd_boolean MY_bfd_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); -static boolean MY_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean MY_bfd_final_link + PARAMS ((bfd *, struct bfd_link_info *)); reloc_howto_type * tic30_aout_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); enum machine_type tic30_aout_machine_type - PARAMS ((enum bfd_architecture, unsigned long, boolean *)); -boolean tic30_aout_set_arch_mach + PARAMS ((enum bfd_architecture, unsigned long, bfd_boolean *)); +bfd_boolean tic30_aout_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); #define MY_reloc_howto(BFD, REL, IN, EX, PC) \ @@ -146,16 +151,16 @@ static const struct aout_backend_data ti reloc_howto_type tic30_aout_howto_table[] = { EMPTY_HOWTO (-1), - HOWTO (1, 2, 1, 16, false, 0, 0, tic30_aout_fix_16, - "16", false, 0x0000FFFF, 0x0000FFFF, false), - HOWTO (2, 2, 2, 24, false, 0, complain_overflow_bitfield, NULL, - "24", false, 0x00FFFFFF, 0x00FFFFFF, false), - HOWTO (3, 18, 3, 24, false, 0, complain_overflow_bitfield, NULL, - "LDP", false, 0x00FF0000, 0x000000FF, false), - HOWTO (4, 2, 4, 32, false, 0, complain_overflow_bitfield, tic30_aout_fix_32, - "32", false, 0xFFFFFFFF, 0xFFFFFFFF, false), - HOWTO (5, 2, 1, 16, true, 0, complain_overflow_signed, - tic30_aout_fix_pcrel_16, "PCREL", true, 0x0000FFFF, 0x0000FFFF, true), + HOWTO (1, 2, 1, 16, FALSE, 0, 0, tic30_aout_fix_16, + "16", FALSE, 0x0000FFFF, 0x0000FFFF, FALSE), + HOWTO (2, 2, 2, 24, FALSE, 0, complain_overflow_bitfield, NULL, + "24", FALSE, 0x00FFFFFF, 0x00FFFFFF, FALSE), + HOWTO (3, 18, 3, 24, FALSE, 0, complain_overflow_bitfield, NULL, + "LDP", FALSE, 0x00FF0000, 0x000000FF, FALSE), + HOWTO (4, 2, 4, 32, FALSE, 0, complain_overflow_bitfield, tic30_aout_fix_32, + "32", FALSE, 0xFFFFFFFF, 0xFFFFFFFF, FALSE), + HOWTO (5, 2, 1, 16, TRUE, 0, complain_overflow_signed, + tic30_aout_fix_pcrel_16, "PCREL", TRUE, 0x0000FFFF, 0x0000FFFF, TRUE), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), @@ -164,7 +169,7 @@ reloc_howto_type tic30_aout_howto_table[ }; extern reloc_howto_type *NAME (aout, reloc_type_lookup) - PARAMS ((bfd *, bfd_reloc_code_real_type)); + PARAMS ((bfd *, bfd_reloc_code_real_type)); reloc_howto_type * tic30_aout_reloc_type_lookup (abfd, code) @@ -420,7 +425,7 @@ tic30_aout_relocate_contents (howto, inp bfd_byte *location; { bfd_vma x; - boolean overflow; + bfd_boolean overflow; if (howto->size < 0) relocation = -relocation; @@ -445,7 +450,7 @@ tic30_aout_relocate_contents (howto, inp break; } - overflow = false; + overflow = FALSE; if (howto->complain_on_overflow != complain_overflow_dont) { @@ -491,14 +496,14 @@ tic30_aout_relocate_contents (howto, inp bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1; bfd_signed_vma reloc_signed_min = ~reloc_signed_max; if (signed_check > reloc_signed_max || signed_check < reloc_signed_min) - overflow = true; + overflow = TRUE; } break; case complain_overflow_unsigned: { bfd_vma reloc_unsigned_max = (((1 << (howto->bitsize - 1)) - 1) << 1) | 1; if (check > reloc_unsigned_max) - overflow = true; + overflow = TRUE; } break; case complain_overflow_bitfield: @@ -507,7 +512,7 @@ tic30_aout_relocate_contents (howto, inp if ((check & ~reloc_bits) != 0 && (((bfd_vma) signed_check & ~reloc_bits) != ((bfd_vma) -1 & ~reloc_bits))) - overflow = true; + overflow = TRUE; } break; default: @@ -607,7 +612,7 @@ tic30_aout_object_p (abfd) section contents, and copy_private_bfd_data is not called until after the section contents have been set. */ -static boolean +static bfd_boolean MY_bfd_copy_private_section_data (ibfd, isec, obfd, osec) bfd *ibfd; asection *isec ATTRIBUTE_UNUSED; @@ -616,14 +621,14 @@ MY_bfd_copy_private_section_data (ibfd, { if (bfd_get_flavour (obfd) == bfd_target_aout_flavour) obj_aout_subformat (obfd) = obj_aout_subformat (ibfd); - return true; + return TRUE; } /* Write an object file. Section contents have already been written. We write the file header, symbols, and relocation. */ -static boolean +static bfd_boolean tic30_aout_write_object_contents (abfd) bfd *abfd; { @@ -650,10 +655,10 @@ tic30_aout_write_object_contents (abfd) { bfd_size_type amt; if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; amt = adata (abfd).exec_bytes_size; if (bfd_bwrite ((PTR) &exec_bytes, amt, abfd) != amt) - return false; + return FALSE; } /* Now write out reloc info, followed by syms and strings. */ @@ -661,27 +666,27 @@ tic30_aout_write_object_contents (abfd) && bfd_get_symcount (abfd) != 0) { if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*execp)), SEEK_SET) != 0) - return false; + return FALSE; if (!NAME (aout, write_syms) (abfd)) - return false; + return FALSE; } if (bfd_seek (abfd, (file_ptr) (N_TRELOFF (*execp)), SEEK_SET) != 0) - return false; + return FALSE; if (!NAME (aout, squirt_out_relocs) (abfd, obj_textsec (abfd))) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp)), SEEK_SET) != 0) - return false; + return FALSE; if (!NAME (aout, squirt_out_relocs) (abfd, obj_datasec (abfd))) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean tic30_aout_set_sizes (abfd) bfd *abfd; { @@ -701,7 +706,7 @@ tic30_aout_set_sizes (abfd) adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return true; + return TRUE; } #ifndef MY_final_link_callback @@ -732,7 +737,7 @@ MY_final_link_callback (abfd, ptreloff, /* Final link routine. We need to use a call back to get the correct offsets in the output file. */ -static boolean +static bfd_boolean MY_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -800,40 +805,40 @@ enum machine_type tic30_aout_machine_type (arch, machine, unknown) enum bfd_architecture arch; unsigned long machine ATTRIBUTE_UNUSED; - boolean *unknown; + bfd_boolean *unknown; { enum machine_type arch_flags; arch_flags = M_UNKNOWN; - *unknown = true; + *unknown = TRUE; switch (arch) { case bfd_arch_tic30: - *unknown = false; + *unknown = FALSE; break; default: arch_flags = M_UNKNOWN; } if (arch_flags != M_UNKNOWN) - *unknown = false; + *unknown = FALSE; return arch_flags; } -boolean +bfd_boolean tic30_aout_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; unsigned long machine; { if (!bfd_default_set_arch_mach (abfd, arch, machine)) - return false; + return FALSE; if (arch != bfd_arch_unknown) { - boolean unknown; + bfd_boolean unknown; tic30_aout_machine_type (arch, machine, &unknown); if (unknown) - return false; + return FALSE; } obj_reloc_entry_size (abfd) = RELOC_STD_SIZE; return (*aout_backend_info (abfd)->set_sizes) (abfd); diff -uprN binutils-2.13.90.0.16/bfd/aoutf1.h binutils-2.13.90.0.18/bfd/aoutf1.h --- binutils-2.13.90.0.16/bfd/aoutf1.h Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/aoutf1.h Mon Dec 16 12:22:51 2002 @@ -75,15 +75,24 @@ The name put into the target vector. #define sunos_write_object_contents aout_32_sunos4_write_object_contents #endif -static boolean sunos_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static void sunos_set_arch_mach PARAMS ((bfd *, enum machine_type)); -static void choose_reloc_size PARAMS ((bfd *)); -static boolean sunos_write_object_contents PARAMS ((bfd *)); -static const bfd_target *sunos4_core_file_p PARAMS ((bfd *)); -static char *sunos4_core_file_failing_command PARAMS ((bfd *)); -static int sunos4_core_file_failing_signal PARAMS ((bfd *)); -static boolean sunos4_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -static boolean sunos4_set_sizes PARAMS ((bfd *)); +static bfd_boolean sunos_merge_private_bfd_data + PARAMS ((bfd *, bfd *)); +static void sunos_set_arch_mach + PARAMS ((bfd *, enum machine_type)); +static void choose_reloc_size + PARAMS ((bfd *)); +static bfd_boolean sunos_write_object_contents + PARAMS ((bfd *)); +static const bfd_target *sunos4_core_file_p + PARAMS ((bfd *)); +static char *sunos4_core_file_failing_command + PARAMS ((bfd *)); +static int sunos4_core_file_failing_signal + PARAMS ((bfd *)); +static bfd_boolean sunos4_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); +static bfd_boolean sunos4_set_sizes + PARAMS ((bfd *)); /* Merge backend data into the output file. This is necessary on sparclet-aout where we want the resultant machine @@ -91,13 +100,13 @@ static boolean sunos4_set_sizes PARAMS ( #define MY_bfd_merge_private_bfd_data sunos_merge_private_bfd_data -static boolean +static bfd_boolean sunos_merge_private_bfd_data (ibfd, obfd) bfd *ibfd, *obfd; { if (bfd_get_flavour (ibfd) != bfd_target_aout_flavour || bfd_get_flavour (obfd) != bfd_target_aout_flavour) - return true; + return TRUE; if (bfd_get_arch (obfd) == bfd_arch_sparc) { @@ -105,7 +114,7 @@ sunos_merge_private_bfd_data (ibfd, obfd bfd_set_arch_mach (obfd, bfd_arch_sparc, bfd_get_mach (ibfd)); } - return true; + return TRUE; } /* This is either sunos_32_set_arch_mach or sunos_64_set_arch_mach, @@ -207,7 +216,7 @@ choose_reloc_size (abfd) aout_64_sunos4_write_object_contents or aout_32_sunos4_write_object_contents, depending upon ARCH_SIZE. */ -static boolean +static bfd_boolean sunos_write_object_contents (abfd) bfd *abfd; { @@ -264,7 +273,7 @@ sunos_write_object_contents (abfd) WRITE_HEADERS (abfd, execp); - return true; + return TRUE; } /* core files */ @@ -731,7 +740,7 @@ sunos4_core_file_failing_signal (abfd) return core_hdr (abfd)->hdr->c_signo; } -static boolean +static bfd_boolean sunos4_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd; bfd *exec_bfd; @@ -739,12 +748,12 @@ sunos4_core_file_matches_executable_p (c if (core_bfd->xvec != exec_bfd->xvec) { bfd_set_error (bfd_error_system_call); - return false; + return FALSE; } /* Solaris core files do not include an aouthdr. */ if ((core_hdr (core_bfd)->hdr)->c_len == SOLARIS_BCP_CORE_LEN) - return true; + return TRUE; return (memcmp ((char *) &((core_hdr (core_bfd)->hdr)->c_aouthdr), (char *) exec_hdr (exec_bfd), @@ -752,24 +761,24 @@ sunos4_core_file_matches_executable_p (c } #define MY_set_sizes sunos4_set_sizes -static boolean +static bfd_boolean sunos4_set_sizes (abfd) bfd *abfd; { switch (bfd_get_arch (abfd)) { default: - return false; + return FALSE; case bfd_arch_sparc: adata (abfd).page_size = 0x2000; adata (abfd).segment_size = 0x2000; adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return true; + return TRUE; case bfd_arch_m68k: adata (abfd).page_size = 0x2000; adata (abfd).segment_size = 0x20000; adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return true; + return TRUE; } } diff -uprN binutils-2.13.90.0.16/bfd/aoutx.h binutils-2.13.90.0.18/bfd/aoutx.h --- binutils-2.13.90.0.16/bfd/aoutx.h Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/aoutx.h Tue Jan 21 10:21:32 2003 @@ -131,14 +131,18 @@ DESCRIPTION #include "aout/stab_gnu.h" #include "aout/ar.h" -static boolean aout_get_external_symbols PARAMS ((bfd *)); -static boolean translate_from_native_sym_flags +static bfd_boolean aout_get_external_symbols + PARAMS ((bfd *)); +static bfd_boolean translate_from_native_sym_flags PARAMS ((bfd *, aout_symbol_type *)); -static boolean translate_to_native_sym_flags +static bfd_boolean translate_to_native_sym_flags PARAMS ((bfd *, asymbol *, struct external_nlist *)); -static void adjust_o_magic PARAMS ((bfd *, struct internal_exec *)); -static void adjust_z_magic PARAMS ((bfd *, struct internal_exec *)); -static void adjust_n_magic PARAMS ((bfd *, struct internal_exec *)); +static void adjust_o_magic + PARAMS ((bfd *, struct internal_exec *)); +static void adjust_z_magic + PARAMS ((bfd *, struct internal_exec *)); +static void adjust_n_magic + PARAMS ((bfd *, struct internal_exec *)); reloc_howto_type * NAME(aout,reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); @@ -194,57 +198,57 @@ DESCRIPTION reloc_howto_type howto_table_ext[] = { /* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone. */ - HOWTO(RELOC_8, 0, 0, 8, false, 0, complain_overflow_bitfield,0,"8", false, 0,0x000000ff, false), - HOWTO(RELOC_16, 0, 1, 16, false, 0, complain_overflow_bitfield,0,"16", false, 0,0x0000ffff, false), - HOWTO(RELOC_32, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"32", false, 0,0xffffffff, false), - HOWTO(RELOC_DISP8, 0, 0, 8, true, 0, complain_overflow_signed,0,"DISP8", false, 0,0x000000ff, false), - HOWTO(RELOC_DISP16, 0, 1, 16, true, 0, complain_overflow_signed,0,"DISP16", false, 0,0x0000ffff, false), - HOWTO(RELOC_DISP32, 0, 2, 32, true, 0, complain_overflow_signed,0,"DISP32", false, 0,0xffffffff, false), - HOWTO(RELOC_WDISP30,2, 2, 30, true, 0, complain_overflow_signed,0,"WDISP30", false, 0,0x3fffffff, false), - HOWTO(RELOC_WDISP22,2, 2, 22, true, 0, complain_overflow_signed,0,"WDISP22", false, 0,0x003fffff, false), - HOWTO(RELOC_HI22, 10, 2, 22, false, 0, complain_overflow_bitfield,0,"HI22", false, 0,0x003fffff, false), - HOWTO(RELOC_22, 0, 2, 22, false, 0, complain_overflow_bitfield,0,"22", false, 0,0x003fffff, false), - HOWTO(RELOC_13, 0, 2, 13, false, 0, complain_overflow_bitfield,0,"13", false, 0,0x00001fff, false), - HOWTO(RELOC_LO10, 0, 2, 10, false, 0, complain_overflow_dont,0,"LO10", false, 0,0x000003ff, false), - HOWTO(RELOC_SFA_BASE,0, 2, 32, false, 0, complain_overflow_bitfield,0,"SFA_BASE", false, 0,0xffffffff, false), - HOWTO(RELOC_SFA_OFF13,0,2, 32, false, 0, complain_overflow_bitfield,0,"SFA_OFF13",false, 0,0xffffffff, false), - HOWTO(RELOC_BASE10, 0, 2, 10, false, 0, complain_overflow_dont,0,"BASE10", false, 0,0x000003ff, false), - HOWTO(RELOC_BASE13, 0, 2, 13, false, 0, complain_overflow_signed,0,"BASE13", false, 0,0x00001fff, false), - HOWTO(RELOC_BASE22, 10, 2, 22, false, 0, complain_overflow_bitfield,0,"BASE22", false, 0,0x003fffff, false), - HOWTO(RELOC_PC10, 0, 2, 10, true, 0, complain_overflow_dont,0,"PC10", false, 0,0x000003ff, true), - HOWTO(RELOC_PC22, 10, 2, 22, true, 0, complain_overflow_signed,0,"PC22", false, 0,0x003fffff, true), - HOWTO(RELOC_JMP_TBL,2, 2, 30, true, 0, complain_overflow_signed,0,"JMP_TBL", false, 0,0x3fffffff, false), - HOWTO(RELOC_SEGOFF16,0, 2, 0, false, 0, complain_overflow_bitfield,0,"SEGOFF16", false, 0,0x00000000, false), - HOWTO(RELOC_GLOB_DAT,0, 2, 0, false, 0, complain_overflow_bitfield,0,"GLOB_DAT", false, 0,0x00000000, false), - HOWTO(RELOC_JMP_SLOT,0, 2, 0, false, 0, complain_overflow_bitfield,0,"JMP_SLOT", false, 0,0x00000000, false), - HOWTO(RELOC_RELATIVE,0, 2, 0, false, 0, complain_overflow_bitfield,0,"RELATIVE", false, 0,0x00000000, false), - HOWTO(0, 0, 0, 0, false, 0, complain_overflow_dont, 0, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(0, 0, 0, 0, false, 0, complain_overflow_dont, 0, "R_SPARC_NONE", false,0,0x00000000,true), + HOWTO(RELOC_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,0,"8", FALSE, 0,0x000000ff, FALSE), + HOWTO(RELOC_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,0,"16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(RELOC_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"32", FALSE, 0,0xffffffff, FALSE), + HOWTO(RELOC_DISP8, 0, 0, 8, TRUE, 0, complain_overflow_signed,0,"DISP8", FALSE, 0,0x000000ff, FALSE), + HOWTO(RELOC_DISP16, 0, 1, 16, TRUE, 0, complain_overflow_signed,0,"DISP16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(RELOC_DISP32, 0, 2, 32, TRUE, 0, complain_overflow_signed,0,"DISP32", FALSE, 0,0xffffffff, FALSE), + HOWTO(RELOC_WDISP30,2, 2, 30, TRUE, 0, complain_overflow_signed,0,"WDISP30", FALSE, 0,0x3fffffff, FALSE), + HOWTO(RELOC_WDISP22,2, 2, 22, TRUE, 0, complain_overflow_signed,0,"WDISP22", FALSE, 0,0x003fffff, FALSE), + HOWTO(RELOC_HI22, 10, 2, 22, FALSE, 0, complain_overflow_bitfield,0,"HI22", FALSE, 0,0x003fffff, FALSE), + HOWTO(RELOC_22, 0, 2, 22, FALSE, 0, complain_overflow_bitfield,0,"22", FALSE, 0,0x003fffff, FALSE), + HOWTO(RELOC_13, 0, 2, 13, FALSE, 0, complain_overflow_bitfield,0,"13", FALSE, 0,0x00001fff, FALSE), + HOWTO(RELOC_LO10, 0, 2, 10, FALSE, 0, complain_overflow_dont,0,"LO10", FALSE, 0,0x000003ff, FALSE), + HOWTO(RELOC_SFA_BASE,0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"SFA_BASE", FALSE, 0,0xffffffff, FALSE), + HOWTO(RELOC_SFA_OFF13,0,2, 32, FALSE, 0, complain_overflow_bitfield,0,"SFA_OFF13",FALSE, 0,0xffffffff, FALSE), + HOWTO(RELOC_BASE10, 0, 2, 10, FALSE, 0, complain_overflow_dont,0,"BASE10", FALSE, 0,0x000003ff, FALSE), + HOWTO(RELOC_BASE13, 0, 2, 13, FALSE, 0, complain_overflow_signed,0,"BASE13", FALSE, 0,0x00001fff, FALSE), + HOWTO(RELOC_BASE22, 10, 2, 22, FALSE, 0, complain_overflow_bitfield,0,"BASE22", FALSE, 0,0x003fffff, FALSE), + HOWTO(RELOC_PC10, 0, 2, 10, TRUE, 0, complain_overflow_dont,0,"PC10", FALSE, 0,0x000003ff, TRUE), + HOWTO(RELOC_PC22, 10, 2, 22, TRUE, 0, complain_overflow_signed,0,"PC22", FALSE, 0,0x003fffff, TRUE), + HOWTO(RELOC_JMP_TBL,2, 2, 30, TRUE, 0, complain_overflow_signed,0,"JMP_TBL", FALSE, 0,0x3fffffff, FALSE), + HOWTO(RELOC_SEGOFF16,0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"SEGOFF16", FALSE, 0,0x00000000, FALSE), + HOWTO(RELOC_GLOB_DAT,0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"GLOB_DAT", FALSE, 0,0x00000000, FALSE), + HOWTO(RELOC_JMP_SLOT,0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"JMP_SLOT", FALSE, 0,0x00000000, FALSE), + HOWTO(RELOC_RELATIVE,0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"RELATIVE", FALSE, 0,0x00000000, FALSE), + HOWTO(0, 0, 0, 0, FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(0, 0, 0, 0, FALSE, 0, complain_overflow_dont, 0, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), #define RELOC_SPARC_REV32 RELOC_WDISP19 - HOWTO(RELOC_SPARC_REV32, 0, 2, 32, false, 0, complain_overflow_dont,0,"R_SPARC_REV32", false, 0,0xffffffff, false), + HOWTO(RELOC_SPARC_REV32, 0, 2, 32, FALSE, 0, complain_overflow_dont,0,"R_SPARC_REV32", FALSE, 0,0xffffffff, FALSE), }; /* Convert standard reloc records to "arelent" format (incl byte swap). */ reloc_howto_type howto_table_std[] = { /* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone. */ -HOWTO ( 0, 0, 0, 8, false, 0, complain_overflow_bitfield,0,"8", true, 0x000000ff,0x000000ff, false), -HOWTO ( 1, 0, 1, 16, false, 0, complain_overflow_bitfield,0,"16", true, 0x0000ffff,0x0000ffff, false), -HOWTO ( 2, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"32", true, 0xffffffff,0xffffffff, false), -HOWTO ( 3, 0, 4, 64, false, 0, complain_overflow_bitfield,0,"64", true, 0xdeaddead,0xdeaddead, false), -HOWTO ( 4, 0, 0, 8, true, 0, complain_overflow_signed, 0,"DISP8", true, 0x000000ff,0x000000ff, false), -HOWTO ( 5, 0, 1, 16, true, 0, complain_overflow_signed, 0,"DISP16", true, 0x0000ffff,0x0000ffff, false), -HOWTO ( 6, 0, 2, 32, true, 0, complain_overflow_signed, 0,"DISP32", true, 0xffffffff,0xffffffff, false), -HOWTO ( 7, 0, 4, 64, true, 0, complain_overflow_signed, 0,"DISP64", true, 0xfeedface,0xfeedface, false), -HOWTO ( 8, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"GOT_REL", false, 0,0x00000000, false), -HOWTO ( 9, 0, 1, 16, false, 0, complain_overflow_bitfield,0,"BASE16", false,0xffffffff,0xffffffff, false), -HOWTO (10, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"BASE32", false,0xffffffff,0xffffffff, false), +HOWTO ( 0, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,0,"8", TRUE, 0x000000ff,0x000000ff, FALSE), +HOWTO ( 1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,0,"16", TRUE, 0x0000ffff,0x0000ffff, FALSE), +HOWTO ( 2, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"32", TRUE, 0xffffffff,0xffffffff, FALSE), +HOWTO ( 3, 0, 4, 64, FALSE, 0, complain_overflow_bitfield,0,"64", TRUE, 0xdeaddead,0xdeaddead, FALSE), +HOWTO ( 4, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0,"DISP8", TRUE, 0x000000ff,0x000000ff, FALSE), +HOWTO ( 5, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0,"DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), +HOWTO ( 6, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0,"DISP32", TRUE, 0xffffffff,0xffffffff, FALSE), +HOWTO ( 7, 0, 4, 64, TRUE, 0, complain_overflow_signed, 0,"DISP64", TRUE, 0xfeedface,0xfeedface, FALSE), +HOWTO ( 8, 0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"GOT_REL", FALSE, 0,0x00000000, FALSE), +HOWTO ( 9, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,0,"BASE16", FALSE,0xffffffff,0xffffffff, FALSE), +HOWTO (10, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"BASE32", FALSE,0xffffffff,0xffffffff, FALSE), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), - HOWTO (16, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"JMP_TABLE", false, 0,0x00000000, false), + HOWTO (16, 0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"JMP_TABLE", FALSE, 0,0x00000000, FALSE), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), @@ -260,7 +264,7 @@ EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), - HOWTO (32, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"RELATIVE", false, 0,0x00000000, false), + HOWTO (32, 0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"RELATIVE", FALSE, 0,0x00000000, FALSE), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), @@ -268,7 +272,7 @@ EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), - HOWTO (40, 0, 2, 0, false, 0, complain_overflow_bitfield,0,"BASEREL", false, 0,0x00000000, false), + HOWTO (40, 0, 2, 0, FALSE, 0, complain_overflow_bitfield,0,"BASEREL", FALSE, 0,0x00000000, FALSE), }; #define TABLE_SIZE(TABLE) (sizeof (TABLE) / sizeof (TABLE[0])) @@ -419,20 +423,20 @@ NAME(aout,swap_exec_header_out) (abfd, e /* Make all the section for an a.out file. */ -boolean +bfd_boolean NAME(aout,make_sections) (abfd) bfd *abfd; { if (obj_textsec (abfd) == (asection *) NULL && bfd_make_section (abfd, ".text") == (asection *) NULL) - return false; + return FALSE; if (obj_datasec (abfd) == (asection *) NULL && bfd_make_section (abfd, ".data") == (asection *) NULL) - return false; + return FALSE; if (obj_bsssec (abfd) == (asection *) NULL && bfd_make_section (abfd, ".bss") == (asection *) NULL) - return false; - return true; + return FALSE; + return TRUE; } /* @@ -673,13 +677,13 @@ FUNCTION aout_@var{size}_mkobject SYNOPSIS - boolean aout_@var{size}_mkobject, (bfd *abfd); + bfd_boolean aout_@var{size}_mkobject, (bfd *abfd); DESCRIPTION Initialize BFD @var{abfd} for use with a.out files. */ -boolean +bfd_boolean NAME(aout,mkobject) (abfd) bfd *abfd; { @@ -690,7 +694,7 @@ NAME(aout,mkobject) (abfd) rawptr = (struct aout_data_struct *) bfd_zalloc (abfd, amt); if (rawptr == NULL) - return false; + return FALSE; abfd->tdata.aout_data = rawptr; exec_hdr (abfd) = &(rawptr->e); @@ -699,7 +703,7 @@ NAME(aout,mkobject) (abfd) obj_datasec (abfd) = (asection *) NULL; obj_bsssec (abfd) = (asection *) NULL; - return true; + return TRUE; } /* @@ -725,12 +729,12 @@ enum machine_type NAME(aout,machine_type) (arch, machine, unknown) enum bfd_architecture arch; unsigned long machine; - boolean *unknown; + bfd_boolean *unknown; { enum machine_type arch_flags; arch_flags = M_UNKNOWN; - *unknown = true; + *unknown = TRUE; switch (arch) { @@ -749,7 +753,7 @@ NAME(aout,machine_type) (arch, machine, switch (machine) { case 0: arch_flags = M_68010; break; - case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = false; break; + case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = FALSE; break; case bfd_mach_m68010: arch_flags = M_68010; break; case bfd_mach_m68020: arch_flags = M_68020; break; default: arch_flags = M_UNKNOWN; break; @@ -796,6 +800,7 @@ NAME(aout,machine_type) (arch, machine, case bfd_mach_mips12000: case bfd_mach_mips16: case bfd_mach_mipsisa32: + case bfd_mach_mipsisa32r2: case bfd_mach_mips5: case bfd_mach_mipsisa64: case bfd_mach_mips_sb1: @@ -819,7 +824,7 @@ NAME(aout,machine_type) (arch, machine, break; case bfd_arch_vax: - *unknown = false; + *unknown = FALSE; break; case bfd_arch_cris: @@ -832,7 +837,7 @@ NAME(aout,machine_type) (arch, machine, } if (arch_flags != M_UNKNOWN) - *unknown = false; + *unknown = FALSE; return arch_flags; } @@ -842,7 +847,7 @@ FUNCTION aout_@var{size}_set_arch_mach SYNOPSIS - boolean aout_@var{size}_set_arch_mach, + bfd_boolean aout_@var{size}_set_arch_mach, (bfd *, enum bfd_architecture arch, unsigned long machine)); @@ -853,22 +858,22 @@ DESCRIPTION can support the architecture required. */ -boolean +bfd_boolean NAME(aout,set_arch_mach) (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; unsigned long machine; { if (! bfd_default_set_arch_mach (abfd, arch, machine)) - return false; + return FALSE; if (arch != bfd_arch_unknown) { - boolean unknown; + bfd_boolean unknown; NAME(aout,machine_type) (arch, machine, &unknown); if (unknown) - return false; + return FALSE; } /* Determine the size of a relocation entry. */ @@ -1116,7 +1121,7 @@ adjust_n_magic (abfd, execp) N_SET_MAGIC (*execp, NMAGIC); } -boolean +bfd_boolean NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end) bfd *abfd; bfd_size_type *text_size; @@ -1125,10 +1130,10 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, struct internal_exec *execp = exec_hdr (abfd); if (! NAME(aout,make_sections) (abfd)) - return false; + return FALSE; if (adata (abfd).magic != undecided_magic) - return true; + return TRUE; obj_textsec (abfd)->_raw_size = align_power (obj_textsec (abfd)->_raw_size, @@ -1205,7 +1210,7 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, obj_bsssec (abfd)->vma, obj_bsssec (abfd)->_raw_size); #endif - return true; + return TRUE; } /* @@ -1213,7 +1218,7 @@ FUNCTION aout_@var{size}_new_section_hook SYNOPSIS - boolean aout_@var{size}_new_section_hook, + bfd_boolean aout_@var{size}_new_section_hook, (bfd *abfd, asection *newsect)); @@ -1221,7 +1226,7 @@ DESCRIPTION Called by the BFD in response to a @code{bfd_make_section} request. */ -boolean +bfd_boolean NAME(aout,new_section_hook) (abfd, newsect) bfd *abfd; asection *newsect; @@ -1235,29 +1240,29 @@ NAME(aout,new_section_hook) (abfd, newse { obj_textsec (abfd)= newsect; newsect->target_index = N_TEXT; - return true; + return TRUE; } if (obj_datasec (abfd) == NULL && !strcmp (newsect->name, ".data")) { obj_datasec (abfd) = newsect; newsect->target_index = N_DATA; - return true; + return TRUE; } if (obj_bsssec (abfd) == NULL && !strcmp (newsect->name, ".bss")) { obj_bsssec (abfd) = newsect; newsect->target_index = N_BSS; - return true; + return TRUE; } } /* We allow more than three sections internally. */ - return true; + return TRUE; } -boolean +bfd_boolean NAME(aout,set_section_contents) (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -1271,38 +1276,44 @@ NAME(aout,set_section_contents) (abfd, s if (! abfd->output_has_begun) { if (! NAME(aout,adjust_sizes_and_vmas) (abfd, &text_size, &text_end)) - return false; + return FALSE; } if (section == obj_bsssec (abfd)) { bfd_set_error (bfd_error_no_contents); - return false; + return FALSE; } if (section != obj_textsec (abfd) && section != obj_datasec (abfd)) { - (*_bfd_error_handler) - (_("%s: can not represent section `%s' in a.out object file format"), - bfd_get_filename (abfd), bfd_get_section_name (abfd, section)); - bfd_set_error (bfd_error_nonrepresentable_section); - return false; + if (aout_section_merge_with_text_p (abfd, section)) + section->filepos = obj_textsec (abfd)->filepos + + (section->vma - obj_textsec (abfd)->vma); + else + { + (*_bfd_error_handler) + (_("%s: can not represent section `%s' in a.out object file format"), + bfd_get_filename (abfd), bfd_get_section_name (abfd, section)); + bfd_set_error (bfd_error_nonrepresentable_section); + return FALSE; + } } if (count != 0) { if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0 || bfd_bwrite (location, count, abfd) != count) - return false; + return FALSE; } - return true; + return TRUE; } /* Read the external symbols from an a.out file. */ -static boolean +static bfd_boolean aout_get_external_symbols (abfd) bfd *abfd; { @@ -1317,8 +1328,8 @@ aout_get_external_symbols (abfd) #ifdef USE_MMAP if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), exec_hdr (abfd)->a_syms, - &obj_aout_sym_window (abfd), true)) - return false; + &obj_aout_sym_window (abfd), TRUE)) + return FALSE; syms = (struct external_nlist *) obj_aout_sym_window (abfd).data; #else /* We allocate using malloc to make the values easy to free @@ -1327,14 +1338,14 @@ aout_get_external_symbols (abfd) syms = ((struct external_nlist *) bfd_malloc (count * EXTERNAL_NLIST_SIZE)); if (syms == (struct external_nlist *) NULL && count != 0) - return false; + return FALSE; amt = exec_hdr (abfd)->a_syms; if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0 || bfd_bread (syms, amt, abfd) != amt) { free (syms); - return false; + return FALSE; } #endif @@ -1353,18 +1364,18 @@ aout_get_external_symbols (abfd) /* Get the size of the strings. */ if (bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET) != 0 || bfd_bread ((PTR) string_chars, amt, abfd) != amt) - return false; + return FALSE; stringsize = GET_WORD (abfd, string_chars); #ifdef USE_MMAP if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize, - &obj_aout_string_window (abfd), true)) - return false; + &obj_aout_string_window (abfd), TRUE)) + return FALSE; strings = (char *) obj_aout_string_window (abfd).data; #else strings = (char *) bfd_malloc (stringsize + 1); if (strings == NULL) - return false; + return FALSE; /* Skip space for the string count in the buffer for convenience when using indexes. */ @@ -1372,7 +1383,7 @@ aout_get_external_symbols (abfd) if (bfd_bread (strings + BYTES_IN_WORD, amt, abfd) != amt) { free (strings); - return false; + return FALSE; } #endif @@ -1385,7 +1396,7 @@ aout_get_external_symbols (abfd) obj_aout_external_string_size (abfd) = stringsize; } - return true; + return TRUE; } /* Translate an a.out symbol into a BFD symbol. The desc, other, type @@ -1393,7 +1404,7 @@ aout_get_external_symbols (abfd) nlist structure. This function is responsible for setting symbol->flags and symbol->section, and adjusting symbol->value. */ -static boolean +static bfd_boolean translate_from_native_sym_flags (abfd, cache_ptr) bfd *abfd; aout_symbol_type *cache_ptr; @@ -1430,7 +1441,7 @@ translate_from_native_sym_flags (abfd, c cache_ptr->symbol.section = sec; cache_ptr->symbol.value -= sec->vma; - return true; + return TRUE; } /* Get the default visibility. This does not apply to all types, so @@ -1519,18 +1530,18 @@ translate_from_native_sym_flags (abfd, c amt = strlen (cache_ptr->symbol.name) + 1; copy = bfd_alloc (abfd, amt); if (copy == NULL) - return false; + return FALSE; strcpy (copy, cache_ptr->symbol.name); section = bfd_make_section (abfd, copy); if (section == NULL) - return false; + return FALSE; } amt = sizeof (arelent_chain); reloc = (arelent_chain *) bfd_alloc (abfd, amt); if (reloc == NULL) - return false; + return FALSE; /* Build a relocation entry for the constructor. */ switch (cache_ptr->type & N_TYPE) @@ -1643,12 +1654,12 @@ translate_from_native_sym_flags (abfd, c break; } - return true; + return TRUE; } /* Set the fields of SYM_POINTER according to CACHE_PTR. */ -static boolean +static bfd_boolean translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer) bfd *abfd; asymbol *cache_ptr; @@ -1674,7 +1685,7 @@ translate_to_native_sym_flags (abfd, cac bfd_get_filename (abfd), cache_ptr->name != NULL ? cache_ptr->name : _("*unknown*")); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } if (sec->output_section != NULL) @@ -1699,11 +1710,16 @@ translate_to_native_sym_flags (abfd, cac sym_pointer->e_type[0] = N_UNDF | N_EXT; else { - (*_bfd_error_handler) - (_("%s: can not represent section `%s' in a.out object file format"), - bfd_get_filename (abfd), bfd_get_section_name (abfd, sec)); - bfd_set_error (bfd_error_nonrepresentable_section); - return false; + if (aout_section_merge_with_text_p (abfd, sec)) + sym_pointer->e_type[0] |= N_TEXT; + else + { + (*_bfd_error_handler) + (_("%s: can not represent section `%s' in a.out object file format"), + bfd_get_filename (abfd), bfd_get_section_name (abfd, sec)); + bfd_set_error (bfd_error_nonrepresentable_section); + return FALSE; + } } /* Turn the symbol from section relative to absolute again. */ @@ -1751,7 +1767,7 @@ translate_to_native_sym_flags (abfd, cac PUT_WORD (abfd, value, sym_pointer->e_value); - return true; + return TRUE; } /* Native-level interface to symbols. */ @@ -1771,7 +1787,7 @@ NAME(aout,make_empty_symbol) (abfd) /* Translate a set of internal symbols into external symbols. */ -boolean +bfd_boolean NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic) bfd *abfd; aout_symbol_type *in; @@ -1779,7 +1795,7 @@ NAME(aout,translate_symbol_table) (abfd, bfd_size_type count; char *str; bfd_size_type strsize; - boolean dynamic; + bfd_boolean dynamic; { struct external_nlist *ext_end; @@ -1801,7 +1817,7 @@ NAME(aout,translate_symbol_table) (abfd, else if (x < strsize) in->symbol.name = str + x; else - return false; + return FALSE; in->symbol.value = GET_SWORD (abfd, ext->e_value); in->desc = H_GET_16 (abfd, ext->e_desc); @@ -1810,20 +1826,20 @@ NAME(aout,translate_symbol_table) (abfd, in->symbol.udata.p = NULL; if (! translate_from_native_sym_flags (abfd, in)) - return false; + return FALSE; if (dynamic) in->symbol.flags |= BSF_DYNAMIC; } - return true; + return TRUE; } /* We read the symbols into a buffer, which is discarded when this function exits. We read the strings into a buffer large enough to hold them all plus all the cached symbol entries. */ -boolean +bfd_boolean NAME(aout,slurp_symbol_table) (abfd) bfd *abfd; { @@ -1833,18 +1849,18 @@ NAME(aout,slurp_symbol_table) (abfd) /* If there's no work to be done, don't do any. */ if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL) - return true; + return TRUE; old_external_syms = obj_aout_external_syms (abfd); if (! aout_get_external_symbols (abfd)) - return false; + return FALSE; cached_size = obj_aout_external_sym_count (abfd); cached_size *= sizeof (aout_symbol_type); cached = (aout_symbol_type *) bfd_zmalloc (cached_size); if (cached == NULL && cached_size != 0) - return false; + return FALSE; /* Convert from external symbol information to internal. */ if (! (NAME(aout,translate_symbol_table) @@ -1853,10 +1869,10 @@ NAME(aout,slurp_symbol_table) (abfd) obj_aout_external_sym_count (abfd), obj_aout_external_strings (abfd), obj_aout_external_string_size (abfd), - false))) + FALSE))) { free (cached); - return false; + return FALSE; } bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd); @@ -1878,7 +1894,7 @@ NAME(aout,slurp_symbol_table) (abfd) obj_aout_external_syms (abfd) = NULL; } - return true; + return TRUE; } /* We use a hash table when writing out symbols so that we only write @@ -1891,8 +1907,9 @@ NAME(aout,slurp_symbol_table) (abfd) if BFD_TRADITIONAL_FORMAT is set. */ static bfd_size_type add_to_stringtab - PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, boolean)); -static boolean emit_stringtab PARAMS ((bfd *, struct bfd_strtab_hash *)); + PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, bfd_boolean)); +static bfd_boolean emit_stringtab + PARAMS ((bfd *, struct bfd_strtab_hash *)); /* Get the index of a string in a strtab, adding it if it is not already present. */ @@ -1902,9 +1919,9 @@ add_to_stringtab (abfd, tab, str, copy) bfd *abfd; struct bfd_strtab_hash *tab; const char *str; - boolean copy; + bfd_boolean copy; { - boolean hash; + bfd_boolean hash; bfd_size_type index; /* An index of 0 always means the empty string. */ @@ -1913,9 +1930,9 @@ add_to_stringtab (abfd, tab, str, copy) /* Don't hash if BFD_TRADITIONAL_FORMAT is set, because SunOS dbx doesn't understand a hashed string table. */ - hash = true; + hash = TRUE; if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0) - hash = false; + hash = FALSE; index = _bfd_stringtab_add (tab, str, hash, copy); @@ -1932,7 +1949,7 @@ add_to_stringtab (abfd, tab, str, copy) /* Write out a strtab. ABFD is already at the right location in the file. */ -static boolean +static bfd_boolean emit_stringtab (abfd, tab) register bfd *abfd; struct bfd_strtab_hash *tab; @@ -1943,12 +1960,12 @@ emit_stringtab (abfd, tab) /* The string table starts with the size. */ PUT_WORD (abfd, _bfd_stringtab_size (tab) + BYTES_IN_WORD, buffer); if (bfd_bwrite ((PTR) buffer, amt, abfd) != amt) - return false; + return FALSE; return _bfd_stringtab_emit (abfd, tab); } -boolean +bfd_boolean NAME(aout,write_syms) (abfd) bfd *abfd; { @@ -1958,7 +1975,7 @@ NAME(aout,write_syms) (abfd) strtab = _bfd_stringtab_init (); if (strtab == NULL) - return false; + return FALSE; for (count = 0; count < bfd_get_symcount (abfd); count++) { @@ -1967,7 +1984,7 @@ NAME(aout,write_syms) (abfd) struct external_nlist nsp; bfd_size_type amt; - indx = add_to_stringtab (abfd, strtab, g->name, false); + indx = add_to_stringtab (abfd, strtab, g->name, FALSE); if (indx == (bfd_size_type) -1) goto error_return; PUT_WORD (abfd, indx, (bfd_byte *) nsp.e_strx); @@ -2002,11 +2019,11 @@ NAME(aout,write_syms) (abfd) _bfd_stringtab_free (strtab); - return true; + return TRUE; error_return: _bfd_stringtab_free (strtab); - return false; + return FALSE; } long @@ -2370,7 +2387,7 @@ NAME(aout,swap_std_reloc_in) (abfd, byte /* Read and swap the relocs for a section. */ -boolean +bfd_boolean NAME(aout,slurp_reloc_table) (abfd, asect, symbols) bfd *abfd; sec_ptr asect; @@ -2386,10 +2403,10 @@ NAME(aout,slurp_reloc_table) (abfd, asec bfd_size_type amt; if (asect->relocation) - return true; + return TRUE; if (asect->flags & SEC_CONSTRUCTOR) - return true; + return TRUE; if (asect == obj_datasec (abfd)) reloc_size = exec_hdr (abfd)->a_drsize; @@ -2400,11 +2417,11 @@ NAME(aout,slurp_reloc_table) (abfd, asec else { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; each_size = obj_reloc_entry_size (abfd); @@ -2413,20 +2430,20 @@ NAME(aout,slurp_reloc_table) (abfd, asec amt = count * sizeof (arelent); reloc_cache = (arelent *) bfd_zmalloc (amt); if (reloc_cache == NULL && count != 0) - return false; + return FALSE; relocs = bfd_malloc (reloc_size); if (relocs == NULL && reloc_size != 0) { free (reloc_cache); - return false; + return FALSE; } if (bfd_bread (relocs, reloc_size, abfd) != reloc_size) { free (relocs); free (reloc_cache); - return false; + return FALSE; } cache_ptr = reloc_cache; @@ -2452,12 +2469,12 @@ NAME(aout,slurp_reloc_table) (abfd, asec asect->relocation = reloc_cache; asect->reloc_count = cache_ptr - reloc_cache; - return true; + return TRUE; } /* Write out a relocation section into an object file. */ -boolean +bfd_boolean NAME(aout,squirt_out_relocs) (abfd, section) bfd *abfd; asection *section; @@ -2470,13 +2487,13 @@ NAME(aout,squirt_out_relocs) (abfd, sect bfd_size_type natsize; if (count == 0 || section->orelocation == NULL) - return true; + return TRUE; each_size = obj_reloc_entry_size (abfd); natsize = (bfd_size_type) each_size * count; native = (unsigned char *) bfd_zalloc (abfd, natsize); if (!native) - return false; + return FALSE; generic = section->orelocation; @@ -2500,11 +2517,11 @@ NAME(aout,squirt_out_relocs) (abfd, sect if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize) { bfd_release (abfd, native); - return false; + return FALSE; } bfd_release (abfd, native); - return true; + return TRUE; } /* This is stupid. This function should be a boolean predicate. */ @@ -2681,7 +2698,7 @@ NAME(aout,print_symbol) (abfd, afile, sy long NAME(aout,read_minisymbols) (abfd, dynamic, minisymsp, sizep) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; PTR *minisymsp; unsigned int *sizep; { @@ -2717,7 +2734,7 @@ NAME(aout,read_minisymbols) (abfd, dynam asymbol * NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; const PTR minisym; asymbol *sym; { @@ -2735,7 +2752,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, d (bfd_size_type) 1, obj_aout_external_strings (abfd), obj_aout_external_string_size (abfd), - false))) + FALSE))) return NULL; return sym; @@ -2745,7 +2762,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, d and return the name of the source file and the line nearest to the wanted location. */ -boolean +bfd_boolean NAME(aout,find_nearest_line) (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd; @@ -2904,7 +2921,7 @@ NAME(aout,find_nearest_line) buf = (char *) bfd_malloc (filelen + funclen + 3); adata (abfd).line_buf = buf; if (buf == NULL) - return false; + return FALSE; } if (main_file_name != NULL) @@ -2941,13 +2958,13 @@ NAME(aout,find_nearest_line) *functionname_ptr = buf; } - return true; + return TRUE; } int NAME(aout,sizeof_headers) (abfd, execable) bfd *abfd; - boolean execable ATTRIBUTE_UNUSED; + bfd_boolean execable ATTRIBUTE_UNUSED; { return adata (abfd).exec_bytes_size; } @@ -2955,7 +2972,7 @@ NAME(aout,sizeof_headers) (abfd, execabl /* Free all information we have cached for this BFD. We can always read it again later if we need it. */ -boolean +bfd_boolean NAME(aout,bfd_free_cached_info) (abfd) bfd *abfd; { @@ -2963,7 +2980,7 @@ NAME(aout,bfd_free_cached_info) (abfd) if (bfd_get_format (abfd) != bfd_object || abfd->tdata.aout_data == NULL) - return true; + return TRUE; #define BFCI_FREE(x) if (x != NULL) { free (x); x = NULL; } BFCI_FREE (obj_aout_symbols (abfd)); @@ -2980,19 +2997,20 @@ NAME(aout,bfd_free_cached_info) (abfd) BFCI_FREE (o->relocation); #undef BFCI_FREE - return true; + return TRUE; } /* a.out link code. */ -static boolean aout_link_add_object_symbols +static bfd_boolean aout_link_add_object_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean aout_link_check_archive_element - PARAMS ((bfd *, struct bfd_link_info *, boolean *)); -static boolean aout_link_free_symbols PARAMS ((bfd *)); -static boolean aout_link_check_ar_symbols - PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded)); -static boolean aout_link_add_symbols +static bfd_boolean aout_link_check_archive_element + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean aout_link_free_symbols + PARAMS ((bfd *)); +static bfd_boolean aout_link_check_ar_symbols + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); +static bfd_boolean aout_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); /* Routine to create an entry in an a.out link hash table. */ @@ -3020,7 +3038,7 @@ NAME(aout,link_hash_newfunc) (entry, tab if (ret) { /* Set local fields. */ - ret->written = false; + ret->written = FALSE; ret->indx = -1; } @@ -3029,13 +3047,13 @@ NAME(aout,link_hash_newfunc) (entry, tab /* Initialize an a.out link hash table. */ -boolean +bfd_boolean NAME(aout,link_hash_table_init) (table, abfd, newfunc) struct aout_link_hash_table *table; bfd *abfd; - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); + struct bfd_hash_entry *(*newfunc) + PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, + const char *)); { return _bfd_link_hash_table_init (&table->root, abfd, newfunc); } @@ -3064,7 +3082,7 @@ NAME(aout,link_hash_table_create) (abfd) /* Given an a.out BFD, add symbols to the global hash table as appropriate. */ -boolean +bfd_boolean NAME(aout,link_add_symbols) (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3078,27 +3096,27 @@ NAME(aout,link_add_symbols) (abfd, info) (abfd, info, aout_link_check_archive_element); default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } } /* Add symbols from an a.out object file. */ -static boolean +static bfd_boolean aout_link_add_object_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { if (! aout_get_external_symbols (abfd)) - return false; + return FALSE; if (! aout_link_add_symbols (abfd, info)) - return false; + return FALSE; if (! info->keep_memory) { if (! aout_link_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Check a single archive element to see if we need to include it in @@ -3106,36 +3124,36 @@ aout_link_add_object_symbols (abfd, info needed in the link or not. This is called from _bfd_generic_link_add_archive_symbols. */ -static boolean +static bfd_boolean aout_link_check_archive_element (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { if (! aout_get_external_symbols (abfd)) - return false; + return FALSE; if (! aout_link_check_ar_symbols (abfd, info, pneeded)) - return false; + return FALSE; if (*pneeded) { if (! aout_link_add_symbols (abfd, info)) - return false; + return FALSE; } if (! info->keep_memory || ! *pneeded) { if (! aout_link_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Free up the internal symbols read from an a.out file. */ -static boolean +static bfd_boolean aout_link_free_symbols (abfd) bfd *abfd; { @@ -3157,7 +3175,7 @@ aout_link_free_symbols (abfd) #endif obj_aout_external_strings (abfd) = (char *) NULL; } - return true; + return TRUE; } /* Look through the internal symbols to see if this object file should @@ -3167,17 +3185,17 @@ aout_link_free_symbols (abfd) known symbol but we do not include the object file in the link (unless there is some other reason to include it). */ -static boolean +static bfd_boolean aout_link_check_ar_symbols (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { register struct external_nlist *p; struct external_nlist *pend; char *strings; - *pneeded = false; + *pneeded = FALSE; /* Look through all the symbols. */ p = obj_aout_external_syms (abfd); @@ -3207,7 +3225,7 @@ aout_link_check_ar_symbols (abfd, info, } name = strings + GET_WORD (abfd, p->e_strx); - h = bfd_link_hash_lookup (info->hash, name, false, false, true); + h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); /* We are only interested in symbols that are currently undefined or common. */ @@ -3266,9 +3284,9 @@ aout_link_check_ar_symbols (abfd, info, } if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } if (type == (N_UNDF | N_EXT)) @@ -3295,9 +3313,9 @@ aout_link_check_ar_symbols (abfd, info, if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } /* Turn the current link symbol into a common symbol. It is already on the undefs list. */ @@ -3306,7 +3324,7 @@ aout_link_check_ar_symbols (abfd, info, bfd_hash_allocate (&info->hash->table, sizeof (struct bfd_link_hash_common_entry))); if (h->u.c.p == NULL) - return false; + return FALSE; h->u.c.size = value; @@ -3343,33 +3361,32 @@ aout_link_check_ar_symbols (abfd, info, if (h->type == bfd_link_hash_undefined) { if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } } } /* We do not need this object file. */ - return true; + return TRUE; } /* Add all symbols from an object file to the hash table. */ -static boolean +static bfd_boolean aout_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { - boolean (*add_one_symbol) PARAMS ((struct bfd_link_info *, bfd *, - const char *, flagword, asection *, - bfd_vma, const char *, boolean, - boolean, - struct bfd_link_hash_entry **)); + bfd_boolean (*add_one_symbol) + PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *, + bfd_vma, const char *, bfd_boolean, bfd_boolean, + struct bfd_link_hash_entry **)); struct external_nlist *syms; bfd_size_type sym_count; char *strings; - boolean copy; + bfd_boolean copy; struct aout_link_hash_entry **sym_hash; register struct external_nlist *p; struct external_nlist *pend; @@ -3379,15 +3396,15 @@ aout_link_add_symbols (abfd, info) sym_count = obj_aout_external_sym_count (abfd); strings = obj_aout_external_strings (abfd); if (info->keep_memory) - copy = false; + copy = FALSE; else - copy = true; + copy = TRUE; if (aout_backend_info (abfd)->add_dynamic_symbols != NULL) { if (! ((*aout_backend_info (abfd)->add_dynamic_symbols) (abfd, info, &syms, &sym_count, &strings))) - return false; + return FALSE; } /* We keep a list of the linker hash table entries that correspond @@ -3397,7 +3414,7 @@ aout_link_add_symbols (abfd, info) amt = sym_count * sizeof (struct aout_link_hash_entry *); sym_hash = (struct aout_link_hash_entry **) bfd_alloc (abfd, amt); if (sym_hash == NULL && sym_count != 0) - return false; + return FALSE; obj_aout_sym_hashes (abfd) = sym_hash; add_one_symbol = aout_backend_info (abfd)->add_one_symbol; @@ -3543,9 +3560,9 @@ aout_link_add_symbols (abfd, info) } if (! ((*add_one_symbol) - (info, abfd, name, flags, section, value, string, copy, false, + (info, abfd, name, flags, section, value, string, copy, FALSE, (struct bfd_link_hash_entry **) sym_hash))) - return false; + return FALSE; /* Restrict the maximum alignment of a common symbol based on the architecture, since a.out has no way to represent @@ -3571,7 +3588,7 @@ aout_link_add_symbols (abfd, info) ++sym_hash; } - return true; + return TRUE; } /* A hash table used for header files with N_BINCL entries. */ @@ -3634,27 +3651,27 @@ struct aout_final_link_info static struct bfd_hash_entry *aout_link_includes_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean aout_link_input_bfd +static bfd_boolean aout_link_input_bfd PARAMS ((struct aout_final_link_info *, bfd *input_bfd)); -static boolean aout_link_write_symbols +static bfd_boolean aout_link_write_symbols PARAMS ((struct aout_final_link_info *, bfd *input_bfd)); -static boolean aout_link_write_other_symbol +static bfd_boolean aout_link_write_other_symbol PARAMS ((struct aout_link_hash_entry *, PTR)); -static boolean aout_link_input_section +static bfd_boolean aout_link_input_section PARAMS ((struct aout_final_link_info *, bfd *input_bfd, asection *input_section, file_ptr *reloff_ptr, bfd_size_type rel_size)); -static boolean aout_link_input_section_std +static bfd_boolean aout_link_input_section_std PARAMS ((struct aout_final_link_info *, bfd *input_bfd, asection *input_section, struct reloc_std_external *, bfd_size_type rel_size, bfd_byte *contents)); -static boolean aout_link_input_section_ext +static bfd_boolean aout_link_input_section_ext PARAMS ((struct aout_final_link_info *, bfd *input_bfd, asection *input_section, struct reloc_ext_external *, bfd_size_type rel_size, bfd_byte *contents)); static INLINE asection *aout_reloc_index_to_section PARAMS ((bfd *, int)); -static boolean aout_link_reloc_link_order +static bfd_boolean aout_link_reloc_link_order PARAMS ((struct aout_final_link_info *, asection *, struct bfd_link_order *)); @@ -3697,14 +3714,14 @@ aout_link_includes_newfunc (entry, table of bfd_link_order structures which list all the input sections for the output section. */ -boolean +bfd_boolean NAME(aout,final_link) (abfd, info, callback) bfd *abfd; struct bfd_link_info *info; void (*callback) PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *)); { struct aout_final_link_info aout_info; - boolean includes_hash_initialized = false; + bfd_boolean includes_hash_initialized = FALSE; register bfd *sub; bfd_size_type trsize, drsize; bfd_size_type max_contents_size; @@ -3714,7 +3731,7 @@ NAME(aout,final_link) (abfd, info, callb file_ptr text_end; register struct bfd_link_order *p; asection *o; - boolean have_link_order_relocs; + bfd_boolean have_link_order_relocs; if (info->shared) abfd->flags |= DYNAMIC; @@ -3730,7 +3747,7 @@ NAME(aout,final_link) (abfd, info, callb aout_link_includes_newfunc, 251)) goto error_return; - includes_hash_initialized = true; + includes_hash_initialized = TRUE; /* Figure out the largest section size. Also, if generating relocateable output, count the relocs. */ @@ -3853,7 +3870,7 @@ NAME(aout,final_link) (abfd, info, callb struct aout_link_hash_entry *h; h = aout_link_hash_lookup (aout_hash_table (info), "__DYNAMIC", - false, false, false); + FALSE, FALSE, FALSE); if (h != NULL) aout_link_write_other_symbol (h, &aout_info); } @@ -3880,7 +3897,7 @@ NAME(aout,final_link) (abfd, info, callb We use the output_has_begun field of the input BFDs to see whether we have already handled it. */ for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next) - sub->output_has_begun = false; + sub->output_has_begun = FALSE; /* Mark all sections which are to be included in the link. This will normally be every section. We need to do this so that we @@ -3891,11 +3908,11 @@ NAME(aout,final_link) (abfd, info, callb for (p = o->link_order_head; p != NULL; p = p->next) { if (p->type == bfd_indirect_link_order) - p->u.indirect.section->linker_mark = (unsigned int) true; + p->u.indirect.section->linker_mark = TRUE; } } - have_link_order_relocs = false; + have_link_order_relocs = FALSE; for (o = abfd->sections; o != (asection *) NULL; o = o->next) { for (p = o->link_order_head; @@ -3913,14 +3930,14 @@ NAME(aout,final_link) (abfd, info, callb { if (! aout_link_input_bfd (&aout_info, input_bfd)) goto error_return; - input_bfd->output_has_begun = true; + input_bfd->output_has_begun = TRUE; } } else if (p->type == bfd_section_reloc_link_order || p->type == bfd_symbol_reloc_link_order) { /* These are handled below. */ - have_link_order_relocs = true; + have_link_order_relocs = TRUE; } else { @@ -3980,7 +3997,7 @@ NAME(aout,final_link) (abfd, info, callb if (includes_hash_initialized) { bfd_hash_table_free (&aout_info.includes.root); - includes_hash_initialized = false; + includes_hash_initialized = FALSE; } /* Finish up any dynamic linking we may be doing. */ @@ -4019,7 +4036,7 @@ NAME(aout,final_link) (abfd, info, callb goto error_return; } - return true; + return TRUE; error_return: if (aout_info.contents != NULL) @@ -4032,12 +4049,12 @@ NAME(aout,final_link) (abfd, info, callb free (aout_info.output_syms); if (includes_hash_initialized) bfd_hash_table_free (&aout_info.includes.root); - return false; + return FALSE; } /* Link an a.out input BFD into the output file. */ -static boolean +static bfd_boolean aout_link_input_bfd (finfo, input_bfd) struct aout_final_link_info *finfo; bfd *input_bfd; @@ -4055,16 +4072,16 @@ aout_link_input_bfd (finfo, input_bfd) } /* Get the symbols. We probably have them already, unless - finfo->info->keep_memory is false. */ + finfo->info->keep_memory is FALSE. */ if (! aout_get_external_symbols (input_bfd)) - return false; + return FALSE; sym_count = obj_aout_external_sym_count (input_bfd); /* Write out the symbols and get a map of the new indices. The map is placed into finfo->symbol_map. */ if (! aout_link_write_symbols (finfo, input_bfd)) - return false; + return FALSE; /* Relocate and write out the sections. These functions use the symbol map created by aout_link_write_symbols. The linker_mark @@ -4076,7 +4093,7 @@ aout_link_input_bfd (finfo, input_bfd) obj_textsec (input_bfd), &finfo->treloff, exec_hdr (input_bfd)->a_trsize)) - return false; + return FALSE; } if (obj_datasec (input_bfd)->linker_mark) { @@ -4084,7 +4101,7 @@ aout_link_input_bfd (finfo, input_bfd) obj_datasec (input_bfd), &finfo->dreloff, exec_hdr (input_bfd)->a_drsize)) - return false; + return FALSE; } /* If we are not keeping memory, we don't need the symbols any @@ -4093,16 +4110,16 @@ aout_link_input_bfd (finfo, input_bfd) if (! finfo->info->keep_memory) { if (! aout_link_free_symbols (input_bfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Adjust and write out the symbols for an a.out file. Set the new symbol indices into a symbol_map. */ -static boolean +static bfd_boolean aout_link_write_symbols (finfo, input_bfd) struct aout_final_link_info *finfo; bfd *input_bfd; @@ -4118,8 +4135,8 @@ aout_link_write_symbols (finfo, input_bf struct external_nlist *sym_end; struct aout_link_hash_entry **sym_hash; int *symbol_map; - boolean pass; - boolean skip_next; + bfd_boolean pass; + bfd_boolean skip_next; output_bfd = finfo->output_bfd; sym_count = obj_aout_external_sym_count (input_bfd); @@ -4133,16 +4150,16 @@ aout_link_write_symbols (finfo, input_bf if (strip != strip_all && (strip != strip_some || bfd_hash_lookup (finfo->info->keep_hash, input_bfd->filename, - false, false) != NULL) + FALSE, FALSE) != NULL) && discard != discard_all) { H_PUT_8 (output_bfd, N_TEXT, outsym->e_type); H_PUT_8 (output_bfd, 0, outsym->e_other); H_PUT_16 (output_bfd, 0, outsym->e_desc); strtab_index = add_to_stringtab (output_bfd, finfo->strtab, - input_bfd->filename, false); + input_bfd->filename, FALSE); if (strtab_index == (bfd_size_type) -1) - return false; + return FALSE; PUT_WORD (output_bfd, strtab_index, outsym->e_strx); PUT_WORD (output_bfd, (bfd_get_section_vma (output_bfd, @@ -4153,8 +4170,8 @@ aout_link_write_symbols (finfo, input_bf ++outsym; } - pass = false; - skip_next = false; + pass = FALSE; + skip_next = FALSE; sym = obj_aout_external_syms (input_bfd); sym_end = sym + sym_count; sym_hash = obj_aout_sym_hashes (input_bfd); @@ -4165,10 +4182,10 @@ aout_link_write_symbols (finfo, input_bf const char *name; int type; struct aout_link_hash_entry *h; - boolean skip; + bfd_boolean skip; asection *symsec; bfd_vma val = 0; - boolean copy; + bfd_boolean copy; /* We set *symbol_map to 0 above for all symbols. If it has already been set to -1 for this symbol, it means that we are @@ -4192,14 +4209,14 @@ aout_link_write_symbols (finfo, input_bf /* Pass this symbol through. It is the target of an indirect or warning symbol. */ val = GET_WORD (input_bfd, sym->e_value); - pass = false; + pass = FALSE; } else if (skip_next) { /* Skip this symbol, which is the target of an indirect symbol that we have changed to no longer be an indirect symbol. */ - skip_next = false; + skip_next = FALSE; continue; } else @@ -4241,34 +4258,34 @@ aout_link_write_symbols (finfo, input_bf { if ((type & N_TYPE) == N_INDR || type == N_WARNING) - skip_next = true; + skip_next = TRUE; *symbol_map = h->indx; continue; } /* See if we are stripping this symbol. */ - skip = false; + skip = FALSE; switch (strip) { case strip_none: break; case strip_debugger: if ((type & N_STAB) != 0) - skip = true; + skip = TRUE; break; case strip_some: - if (bfd_hash_lookup (finfo->info->keep_hash, name, false, false) + if (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE) == NULL) - skip = true; + skip = TRUE; break; case strip_all: - skip = true; + skip = TRUE; break; } if (skip) { if (h != (struct aout_link_hash_entry *) NULL) - h->written = true; + h->written = TRUE; continue; } @@ -4297,7 +4314,7 @@ aout_link_write_symbols (finfo, input_bf the indirect symbol was defined, we output it with the correct definition so the debugger will understand it. */ - pass = true; + pass = TRUE; val = GET_WORD (input_bfd, sym->e_value); symsec = NULL; } @@ -4313,7 +4330,7 @@ aout_link_write_symbols (finfo, input_bf a case we do not want to output the next symbol, which is the target of the indirection. */ if ((type & N_TYPE) == N_INDR) - skip_next = true; + skip_next = TRUE; symsec = NULL; @@ -4405,7 +4422,7 @@ aout_link_write_symbols (finfo, input_bf it is a local symbol see if we should discard it. */ if (h != (struct aout_link_hash_entry *) NULL) { - h->written = true; + h->written = TRUE; h->indx = obj_aout_external_sym_count (output_bfd); } else if ((type & N_TYPE) != N_SETT @@ -4421,15 +4438,15 @@ aout_link_write_symbols (finfo, input_bf case discard_l: if ((type & N_STAB) == 0 && bfd_is_local_label_name (input_bfd, name)) - skip = true; + skip = TRUE; break; case discard_all: - skip = true; + skip = TRUE; break; } if (skip) { - pass = false; + pass = FALSE; continue; } } @@ -4485,11 +4502,11 @@ aout_link_write_symbols (finfo, input_bf /* If we have already included a header file with the same value, then replace this one with an N_EXCL symbol. */ - copy = (boolean) (! finfo->info->keep_memory); + copy = (bfd_boolean) (! finfo->info->keep_memory); incl_entry = aout_link_includes_lookup (&finfo->includes, - name, true, copy); + name, TRUE, copy); if (incl_entry == NULL) - return false; + return FALSE; for (t = incl_entry->totals; t != NULL; t = t->next) if (t->total == val) break; @@ -4501,7 +4518,7 @@ aout_link_write_symbols (finfo, input_bf bfd_hash_allocate (&finfo->includes.root, sizeof *t)); if (t == NULL) - return false; + return FALSE; t->total = val; t->next = incl_entry->totals; incl_entry->totals = t; @@ -4546,7 +4563,7 @@ aout_link_write_symbols (finfo, input_bf H_PUT_8 (output_bfd, type, outsym->e_type); H_PUT_8 (output_bfd, H_GET_8 (input_bfd, sym->e_other), outsym->e_other); H_PUT_16 (output_bfd, H_GET_16 (input_bfd, sym->e_desc), outsym->e_desc); - copy = false; + copy = FALSE; if (! finfo->info->keep_memory) { /* name points into a string table which we are going to @@ -4555,12 +4572,12 @@ aout_link_write_symbols (finfo, input_bf if (h != (struct aout_link_hash_entry *) NULL) name = h->root.root.string; else - copy = true; + copy = TRUE; } strtab_index = add_to_stringtab (output_bfd, finfo->strtab, name, copy); if (strtab_index == (bfd_size_type) -1) - return false; + return FALSE; PUT_WORD (output_bfd, strtab_index, outsym->e_strx); PUT_WORD (output_bfd, val, outsym->e_value); *symbol_map = obj_aout_external_sym_count (output_bfd); @@ -4574,22 +4591,22 @@ aout_link_write_symbols (finfo, input_bf bfd_size_type outsym_size; if (bfd_seek (output_bfd, finfo->symoff, SEEK_SET) != 0) - return false; + return FALSE; outsym_size = outsym - finfo->output_syms; outsym_size *= EXTERNAL_NLIST_SIZE; if (bfd_bwrite ((PTR) finfo->output_syms, outsym_size, output_bfd) != outsym_size) - return false; + return FALSE; finfo->symoff += outsym_size; } - return true; + return TRUE; } /* Write out a symbol that was not associated with an a.out input object. */ -static boolean +static bfd_boolean aout_link_write_other_symbol (h, data) struct aout_link_hash_entry *h; PTR data; @@ -4606,7 +4623,7 @@ aout_link_write_other_symbol (h, data) { h = (struct aout_link_hash_entry *) h->root.u.i.link; if (h->root.type == bfd_link_hash_new) - return true; + return TRUE; } output_bfd = finfo->output_bfd; @@ -4622,17 +4639,17 @@ aout_link_write_other_symbol (h, data) } if (h->written) - return true; + return TRUE; - h->written = true; + h->written = TRUE; /* An indx of -2 means the symbol must be written. */ if (h->indx != -2 && (finfo->info->strip == strip_all || (finfo->info->strip == strip_some && bfd_hash_lookup (finfo->info->keep_hash, h->root.root.string, - false, false) == NULL))) - return true; + FALSE, FALSE) == NULL))) + return TRUE; switch (h->root.type) { @@ -4640,11 +4657,11 @@ aout_link_write_other_symbol (h, data) case bfd_link_hash_warning: abort (); /* Avoid variable not initialized warnings. */ - return true; + return TRUE; case bfd_link_hash_new: /* This can happen for set symbols when sets are not being built. */ - return true; + return TRUE; case bfd_link_hash_undefined: type = N_UNDF | N_EXT; val = 0; @@ -4681,14 +4698,14 @@ aout_link_write_other_symbol (h, data) case bfd_link_hash_indirect: /* We ignore these symbols, since the indirected symbol is already in the hash table. */ - return true; + return TRUE; } H_PUT_8 (output_bfd, type, outsym.e_type); H_PUT_8 (output_bfd, 0, outsym.e_other); H_PUT_16 (output_bfd, 0, outsym.e_desc); indx = add_to_stringtab (output_bfd, finfo->strtab, h->root.root.string, - false); + FALSE); if (indx == - (bfd_size_type) 1) { /* FIXME: No way to handle errors. */ @@ -4709,12 +4726,12 @@ aout_link_write_other_symbol (h, data) h->indx = obj_aout_external_sym_count (output_bfd); ++obj_aout_external_sym_count (output_bfd); - return true; + return TRUE; } /* Link an a.out section into the output file. */ -static boolean +static bfd_boolean aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr, rel_size) struct aout_final_link_info *finfo; @@ -4731,7 +4748,7 @@ aout_link_input_section (finfo, input_bf if (! bfd_get_section_contents (input_bfd, input_section, (PTR) finfo->contents, (file_ptr) 0, input_size)) - return false; + return FALSE; /* Read in the relocs if we haven't already done it. */ if (aout_section_data (input_section) != NULL @@ -4744,7 +4761,7 @@ aout_link_input_section (finfo, input_bf { if (bfd_seek (input_bfd, input_section->rel_filepos, SEEK_SET) != 0 || bfd_bread (relocs, rel_size, input_bfd) != rel_size) - return false; + return FALSE; } } @@ -4754,14 +4771,14 @@ aout_link_input_section (finfo, input_bf if (! aout_link_input_section_std (finfo, input_bfd, input_section, (struct reloc_std_external *) relocs, rel_size, finfo->contents)) - return false; + return FALSE; } else { if (! aout_link_input_section_ext (finfo, input_bfd, input_section, (struct reloc_ext_external *) relocs, rel_size, finfo->contents)) - return false; + return FALSE; } /* Write out the section contents. */ @@ -4770,16 +4787,16 @@ aout_link_input_section (finfo, input_bf (PTR) finfo->contents, (file_ptr) input_section->output_offset, input_size)) - return false; + return FALSE; /* If we are producing relocateable output, the relocs were modified, and we now write them out. */ if (finfo->info->relocateable && rel_size > 0) { if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite (relocs, rel_size, finfo->output_bfd) != rel_size) - return false; + return FALSE; *reloff_ptr += rel_size; /* Assert that the relocs have not run into the symbols, and @@ -4791,7 +4808,7 @@ aout_link_input_section (finfo, input_bf <= obj_datasec (finfo->output_bfd)->rel_filepos))); } - return true; + return TRUE; } /* Get the section corresponding to a reloc index. */ @@ -4821,7 +4838,7 @@ aout_reloc_index_to_section (abfd, indx) /* Relocate an a.out section using standard a.out relocs. */ -static boolean +static bfd_boolean aout_link_input_section_std (finfo, input_bfd, input_section, relocs, rel_size, contents) struct aout_final_link_info *finfo; @@ -4831,13 +4848,12 @@ aout_link_input_section_std (finfo, inpu bfd_size_type rel_size; bfd_byte *contents; { - boolean (*check_dynamic_reloc) PARAMS ((struct bfd_link_info *, - bfd *, asection *, - struct aout_link_hash_entry *, - PTR, bfd_byte *, boolean *, - bfd_vma *)); + bfd_boolean (*check_dynamic_reloc) + PARAMS ((struct bfd_link_info *, bfd *, asection *, + struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *, + bfd_vma *)); bfd *output_bfd; - boolean relocateable; + bfd_boolean relocateable; struct external_nlist *syms; char *strings; struct aout_link_hash_entry **sym_hashes; @@ -4979,10 +4995,10 @@ aout_link_input_section_std (finfo, inpu if (h->indx < 0) { h->indx = -2; - h->written = false; + h->written = FALSE; if (! aout_link_write_other_symbol (h, (PTR) finfo)) - return false; + return FALSE; } r_index = h->indx; } @@ -4995,7 +5011,7 @@ aout_link_input_section_std (finfo, inpu if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, name, input_bfd, input_section, r_addr))) - return false; + return FALSE; r_index = 0; } } @@ -5055,11 +5071,11 @@ aout_link_input_section_std (finfo, inpu } else { - boolean hundef; + bfd_boolean hundef; /* We are generating an executable, and must do a full relocation. */ - hundef = false; + hundef = FALSE; if (r_extern) { @@ -5078,7 +5094,7 @@ aout_link_input_section_std (finfo, inpu relocation = 0; else { - hundef = true; + hundef = TRUE; relocation = 0; } } @@ -5096,12 +5112,12 @@ aout_link_input_section_std (finfo, inpu if (check_dynamic_reloc != NULL) { - boolean skip; + bfd_boolean skip; if (! ((*check_dynamic_reloc) (finfo->info, input_bfd, input_section, h, (PTR) rel, contents, &skip, &relocation))) - return false; + return FALSE; if (skip) continue; } @@ -5119,8 +5135,8 @@ aout_link_input_section_std (finfo, inpu name = strings + GET_WORD (input_bfd, syms[r_index].e_strx); if (! ((*finfo->info->callbacks->undefined_symbol) (finfo->info, name, input_bfd, input_section, - r_addr, true))) - return false; + r_addr, TRUE))) + return FALSE; } r = MY_final_link_relocate (howto, @@ -5155,19 +5171,19 @@ aout_link_input_section_std (finfo, inpu if (! ((*finfo->info->callbacks->reloc_overflow) (finfo->info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, r_addr))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* Relocate an a.out section using extended a.out relocs. */ -static boolean +static bfd_boolean aout_link_input_section_ext (finfo, input_bfd, input_section, relocs, rel_size, contents) struct aout_final_link_info *finfo; @@ -5177,13 +5193,12 @@ aout_link_input_section_ext (finfo, inpu bfd_size_type rel_size; bfd_byte *contents; { - boolean (*check_dynamic_reloc) PARAMS ((struct bfd_link_info *, - bfd *, asection *, - struct aout_link_hash_entry *, - PTR, bfd_byte *, boolean *, - bfd_vma *)); + bfd_boolean (*check_dynamic_reloc) + PARAMS ((struct bfd_link_info *, bfd *, asection *, + struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *, + bfd_vma *)); bfd *output_bfd; - boolean relocateable; + bfd_boolean relocateable; struct external_nlist *syms; char *strings; struct aout_link_hash_entry **sym_hashes; @@ -5317,10 +5332,10 @@ aout_link_input_section_ext (finfo, inpu if (h->indx < 0) { h->indx = -2; - h->written = false; + h->written = FALSE; if (! aout_link_write_other_symbol (h, (PTR) finfo)) - return false; + return FALSE; } r_index = h->indx; } @@ -5333,7 +5348,7 @@ aout_link_input_section_ext (finfo, inpu if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, name, input_bfd, input_section, r_addr))) - return false; + return FALSE; r_index = 0; } } @@ -5398,12 +5413,12 @@ aout_link_input_section_ext (finfo, inpu } else { - boolean hundef; + bfd_boolean hundef; bfd_reloc_status_type r; /* We are generating an executable, and must do a full relocation. */ - hundef = false; + hundef = FALSE; if (r_extern) { @@ -5422,7 +5437,7 @@ aout_link_input_section_ext (finfo, inpu relocation = 0; else { - hundef = true; + hundef = TRUE; relocation = 0; } } @@ -5495,12 +5510,12 @@ aout_link_input_section_ext (finfo, inpu if (check_dynamic_reloc != NULL) { - boolean skip; + bfd_boolean skip; if (! ((*check_dynamic_reloc) (finfo->info, input_bfd, input_section, h, (PTR) rel, contents, &skip, &relocation))) - return false; + return FALSE; if (skip) continue; } @@ -5522,8 +5537,8 @@ aout_link_input_section_ext (finfo, inpu name = strings + GET_WORD (input_bfd, syms[r_index].e_strx); if (! ((*finfo->info->callbacks->undefined_symbol) (finfo->info, name, input_bfd, input_section, - r_addr, true))) - return false; + r_addr, TRUE))) + return FALSE; } if (r_type != (unsigned int) RELOC_SPARC_REV32) @@ -5570,7 +5585,7 @@ aout_link_input_section_ext (finfo, inpu if (! ((*finfo->info->callbacks->reloc_overflow) (finfo->info, name, howto_table_ext[r_type].name, r_addend, input_bfd, input_section, r_addr))) - return false; + return FALSE; } break; } @@ -5578,12 +5593,12 @@ aout_link_input_section_ext (finfo, inpu } } - return true; + return TRUE; } /* Handle a link order which is supposed to generate a reloc. */ -static boolean +static bfd_boolean aout_link_reloc_link_order (finfo, o, p) struct aout_final_link_info *finfo; asection *o; @@ -5620,7 +5635,7 @@ aout_link_reloc_link_order (finfo, o, p) r_extern = 1; h = ((struct aout_link_hash_entry *) bfd_wrapped_link_hash_lookup (finfo->output_bfd, finfo->info, - pr->u.name, false, false, true)); + pr->u.name, FALSE, FALSE, TRUE)); if (h != (struct aout_link_hash_entry *) NULL && h->indx >= 0) r_index = h->indx; @@ -5631,9 +5646,9 @@ aout_link_reloc_link_order (finfo, o, p) here. I don't think that will ever matter for a global symbol. */ h->indx = -2; - h->written = false; + h->written = FALSE; if (! aout_link_write_other_symbol (h, (PTR) finfo)) - return false; + return FALSE; r_index = h->indx; } else @@ -5641,7 +5656,7 @@ aout_link_reloc_link_order (finfo, o, p) if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, pr->u.name, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) - return false; + return FALSE; r_index = 0; } } @@ -5650,7 +5665,7 @@ aout_link_reloc_link_order (finfo, o, p) if (howto == 0) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (o == obj_textsec (finfo->output_bfd)) @@ -5720,12 +5735,12 @@ aout_link_reloc_link_order (finfo, o, p) bfd_size_type size; bfd_reloc_status_type r; bfd_byte *buf; - boolean ok; + bfd_boolean ok; size = bfd_get_reloc_size (howto); buf = (bfd_byte *) bfd_zmalloc (size); if (buf == (bfd_byte *) NULL) - return false; + return FALSE; r = MY_relocate_contents (howto, finfo->output_bfd, (bfd_vma) pr->addend, buf); switch (r) @@ -5746,7 +5761,7 @@ aout_link_reloc_link_order (finfo, o, p) (asection *) NULL, (bfd_vma) 0))) { free (buf); - return false; + return FALSE; } break; } @@ -5754,7 +5769,7 @@ aout_link_reloc_link_order (finfo, o, p) (file_ptr) p->offset, size); free (buf); if (! ok) - return false; + return FALSE; } } else @@ -5793,7 +5808,7 @@ aout_link_reloc_link_order (finfo, o, p) amt = obj_reloc_entry_size (finfo->output_bfd); if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0 || bfd_bwrite (rel_ptr, amt, finfo->output_bfd) != amt) - return false; + return FALSE; *reloff_ptr += obj_reloc_entry_size (finfo->output_bfd); @@ -5804,5 +5819,5 @@ aout_link_reloc_link_order (finfo, o, p) || (*reloff_ptr <= obj_datasec (finfo->output_bfd)->rel_filepos))); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/archive.c binutils-2.13.90.0.18/bfd/archive.c --- binutils-2.13.90.0.16/bfd/archive.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/archive.c Mon Dec 16 12:22:51 2002 @@ -160,17 +160,20 @@ struct ar_cache { #define arch_eltdata(bfd) ((struct areltdata *) ((bfd)->arelt_data)) #define arch_hdr(bfd) ((struct ar_hdr *)arch_eltdata(bfd)->arch_header) -static char *get_extended_arelt_filename PARAMS ((bfd *arch, - const char *name)); -static boolean do_slurp_bsd_armap PARAMS ((bfd *abfd)); -static boolean do_slurp_coff_armap PARAMS ((bfd *abfd)); -boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *abfd)); -static const char *normalize PARAMS ((bfd *, const char *file)); -static struct areltdata *bfd_ar_hdr_from_filesystem PARAMS ((bfd *abfd, - const char *, - bfd *member)); +static char *get_extended_arelt_filename + PARAMS ((bfd *arch, const char *name)); +static bfd_boolean do_slurp_bsd_armap + PARAMS ((bfd *abfd)); +static bfd_boolean do_slurp_coff_armap + PARAMS ((bfd *abfd)); +bfd_boolean bfd_elf64_archive_slurp_armap + PARAMS ((bfd *abfd)); +static const char *normalize + PARAMS ((bfd *, const char *file)); +static struct areltdata *bfd_ar_hdr_from_filesystem + PARAMS ((bfd *abfd, const char *, bfd *member)); -boolean +bfd_boolean _bfd_generic_mkarchive (abfd) bfd *abfd; { @@ -178,7 +181,7 @@ _bfd_generic_mkarchive (abfd) abfd->tdata.aout_ar_data = (struct artdata *) bfd_zalloc (abfd, amt); if (bfd_ardata (abfd) == NULL) - return false; + return FALSE; bfd_ardata (abfd)->cache = NULL; bfd_ardata (abfd)->archive_head = NULL; @@ -186,7 +189,7 @@ _bfd_generic_mkarchive (abfd) bfd_ardata (abfd)->extended_names = NULL; bfd_ardata (abfd)->tdata = NULL; - return true; + return TRUE; } /* @@ -247,21 +250,21 @@ FUNCTION bfd_set_archive_head SYNOPSIS - boolean bfd_set_archive_head(bfd *output, bfd *new_head); + bfd_boolean bfd_set_archive_head(bfd *output, bfd *new_head); DESCRIPTION Set the head of the chain of BFDs contained in the archive @var{output} to @var{new_head}. */ -boolean +bfd_boolean bfd_set_archive_head (output_archive, new_head) bfd *output_archive; bfd *new_head; { output_archive->archive_head = new_head; - return true; + return TRUE; } bfd * @@ -280,7 +283,7 @@ _bfd_look_for_bfd_in_cache (arch_bfd, fi } /* Kind of stupid to call cons for each one, but we don't do too many */ -boolean +bfd_boolean _bfd_add_bfd_to_archive_cache (arch_bfd, filepos, new_elt) bfd *arch_bfd, *new_elt; file_ptr filepos; @@ -289,7 +292,7 @@ _bfd_add_bfd_to_archive_cache (arch_bfd, struct ar_cache *new_cache = (struct ar_cache *) bfd_zalloc (arch_bfd, amt); if (new_cache == NULL) - return false; + return FALSE; new_cache->ptr = filepos; new_cache->arelt = new_elt; @@ -305,7 +308,7 @@ _bfd_add_bfd_to_archive_cache (arch_bfd, current->next = new_cache; } - return true; + return TRUE; } /* The name begins with space. Hence the rest of the name is an index into @@ -664,10 +667,10 @@ bfd_generic_archive_p (abfd) first = bfd_openr_next_archived_file (abfd, (bfd *) NULL); if (first != NULL) { - boolean fail; + bfd_boolean fail; - first->target_defaulted = false; - fail = false; + first->target_defaulted = FALSE; + fail = FALSE; if (bfd_check_format (first, bfd_object) && first->xvec != abfd->xvec) { @@ -707,9 +710,9 @@ bfd_generic_archive_p (abfd) /* The size of the string count. */ #define BSD_STRING_COUNT_SIZE 4 -/* Returns false on error, true otherwise */ +/* Returns FALSE on error, TRUE otherwise */ -static boolean +static bfd_boolean do_slurp_bsd_armap (abfd) bfd *abfd; { @@ -723,13 +726,13 @@ do_slurp_bsd_armap (abfd) mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); if (mapdata == NULL) - return false; + return FALSE; parsed_size = mapdata->parsed_size; bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */ raw_armap = (bfd_byte *) bfd_zalloc (abfd, parsed_size); if (raw_armap == (bfd_byte *) NULL) - return false; + return FALSE; if (bfd_bread ((PTR) raw_armap, parsed_size, abfd) != parsed_size) { @@ -737,7 +740,7 @@ do_slurp_bsd_armap (abfd) bfd_set_error (bfd_error_malformed_archive); byebye: bfd_release (abfd, (PTR) raw_armap); - return false; + return FALSE; } ardata->symdef_count = H_GET_32 (abfd, raw_armap) / BSD_SYMDEF_SIZE; @@ -758,7 +761,7 @@ do_slurp_bsd_armap (abfd) amt = (bfd_size_type) ardata->symdef_count * sizeof (carsym); ardata->symdefs = (carsym *) bfd_alloc (abfd, amt); if (!ardata->symdefs) - return false; + return FALSE; for (counter = 0, set = ardata->symdefs; counter < ardata->symdef_count; @@ -774,13 +777,13 @@ do_slurp_bsd_armap (abfd) /* FIXME, we should provide some way to free raw_ardata when we are done using the strings from it. For now, it seems to be allocated on an objalloc anyway... */ - bfd_has_map (abfd) = true; - return true; + bfd_has_map (abfd) = TRUE; + return TRUE; } -/* Returns false on error, true otherwise. */ +/* Returns FALSE on error, TRUE otherwise. */ -static boolean +static bfd_boolean do_slurp_coff_armap (abfd) bfd *abfd; { @@ -799,7 +802,7 @@ do_slurp_coff_armap (abfd) mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); if (mapdata == NULL) - return false; + return FALSE; parsed_size = mapdata->parsed_size; bfd_release (abfd, (PTR) mapdata); /* Don't need it any more. */ @@ -807,7 +810,7 @@ do_slurp_coff_armap (abfd) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); - return false; + return FALSE; } /* It seems that all numeric information in a coff archive is always in big endian format, nomatter the host or target. */ @@ -840,7 +843,7 @@ do_slurp_coff_armap (abfd) ardata->symdefs = (carsym *) bfd_zalloc (abfd, carsym_size + stringsize + 1); if (ardata->symdefs == NULL) - return false; + return FALSE; carsyms = ardata->symdefs; stringbase = ((char *) ardata->symdefs) + carsym_size; @@ -872,7 +875,7 @@ do_slurp_coff_armap (abfd) /* Pad to an even boundary if you have to. */ ardata->first_file_filepos += (ardata->first_file_filepos) % 2; - bfd_has_map (abfd) = true; + bfd_has_map (abfd) = TRUE; bfd_release (abfd, (PTR) raw_armap); /* Check for a second archive header (as used by PE). */ @@ -893,19 +896,19 @@ do_slurp_coff_armap (abfd) } } - return true; + return TRUE; release_raw_armap: bfd_release (abfd, (PTR) raw_armap); release_symdefs: bfd_release (abfd, (PTR) (ardata)->symdefs); - return false; + return FALSE; } /* This routine can handle either coff-style or bsd-style armaps. - Returns false on error, true otherwise */ + Returns FALSE on error, TRUE otherwise */ -boolean +bfd_boolean bfd_slurp_armap (abfd) bfd *abfd; { @@ -913,12 +916,12 @@ bfd_slurp_armap (abfd) int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); if (i == 0) - return true; + return TRUE; if (i != 16) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) - return false; + return FALSE; if (!strncmp (nextname, "__.SYMDEF ", 16) || !strncmp (nextname, "__.SYMDEF/ ", 16)) /* old Linux archives */ @@ -932,22 +935,22 @@ bfd_slurp_armap (abfd) return bfd_elf64_archive_slurp_armap (abfd); #else bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; #endif } - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } -/* Returns false on error, true otherwise */ +/* Returns FALSE on error, TRUE otherwise */ /* flavor 2 of a bsd armap, similar to bfd_slurp_bsd_armap except the header is in a slightly different order and the map name is '/'. This flavour is used by hp300hpux. */ #define HPUX_SYMDEF_COUNT_SIZE 2 -boolean +bfd_boolean bfd_slurp_bsd_armap_f2 (abfd) bfd *abfd; { @@ -963,13 +966,13 @@ bfd_slurp_bsd_armap_f2 (abfd) int i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); if (i == 0) - return true; + return TRUE; if (i != 16) - return false; + return FALSE; /* The archive has at least 16 bytes in it. */ if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) - return false; + return FALSE; if (!strncmp (nextname, "__.SYMDEF ", 16) || !strncmp (nextname, "__.SYMDEF/ ", 16)) /* old Linux archives */ @@ -977,13 +980,13 @@ bfd_slurp_bsd_armap_f2 (abfd) if (strncmp (nextname, "/ ", 16)) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); if (mapdata == NULL) - return false; + return FALSE; amt = mapdata->parsed_size; raw_armap = (bfd_byte *) bfd_zalloc (abfd, amt); @@ -991,7 +994,7 @@ bfd_slurp_bsd_armap_f2 (abfd) { byebye: bfd_release (abfd, (PTR) mapdata); - return false; + return FALSE; } if (bfd_bread ((PTR) raw_armap, amt, abfd) != amt) @@ -1024,7 +1027,7 @@ bfd_slurp_bsd_armap_f2 (abfd) amt = (bfd_size_type) ardata->symdef_count * BSD_SYMDEF_SIZE; ardata->symdefs = (carsym *) bfd_alloc (abfd, amt); if (!ardata->symdefs) - return false; + return FALSE; for (counter = 0, set = ardata->symdefs; counter < ardata->symdef_count; @@ -1040,8 +1043,8 @@ bfd_slurp_bsd_armap_f2 (abfd) /* FIXME, we should provide some way to free raw_ardata when we are done using the strings from it. For now, it seems to be allocated on an objalloc anyway... */ - bfd_has_map (abfd) = true; - return true; + bfd_has_map (abfd) = TRUE; + return TRUE; } /** Extended name table. @@ -1054,9 +1057,9 @@ bfd_slurp_bsd_armap_f2 (abfd) element>. Index is the P.R. of an int (decimal). Data General have extended the format by using the prefix // for the special element. */ -/* Returns false on error, true otherwise. */ +/* Returns FALSE on error, TRUE otherwise. */ -boolean +bfd_boolean _bfd_slurp_extended_name_table (abfd) bfd *abfd; { @@ -1065,23 +1068,23 @@ _bfd_slurp_extended_name_table (abfd) bfd_size_type amt; /* FIXME: Formatting sucks here, and in case of failure of BFD_READ, - we probably don't want to return true. */ + we probably don't want to return TRUE. */ bfd_seek (abfd, bfd_ardata (abfd)->first_file_filepos, SEEK_SET); if (bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd) == 16) { if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) - return false; + return FALSE; if (strncmp (nextname, "ARFILENAMES/ ", 16) != 0 && strncmp (nextname, "// ", 16) != 0) { bfd_ardata (abfd)->extended_names = NULL; - return true; + return TRUE; } namedata = (struct areltdata *) _bfd_read_ar_hdr (abfd); if (namedata == NULL) - return false; + return FALSE; amt = namedata->parsed_size; bfd_ardata (abfd)->extended_names = bfd_zalloc (abfd, amt); @@ -1089,7 +1092,7 @@ _bfd_slurp_extended_name_table (abfd) { byebye: bfd_release (abfd, (PTR) namedata); - return false; + return FALSE; } if (bfd_bread ((PTR) bfd_ardata (abfd)->extended_names, amt, abfd) != amt) @@ -1129,7 +1132,7 @@ _bfd_slurp_extended_name_table (abfd) bfd_release (abfd, namedata); #endif } - return true; + return TRUE; } #ifdef VMS @@ -1199,7 +1202,7 @@ normalize (abfd, file) /* Build a BFD style extended name table. */ -boolean +bfd_boolean _bfd_archive_bsd_construct_extended_name_table (abfd, tabloc, tablen, name) bfd *abfd; char **tabloc; @@ -1207,12 +1210,12 @@ _bfd_archive_bsd_construct_extended_name const char **name; { *name = "ARFILENAMES/"; - return _bfd_construct_extended_name_table (abfd, false, tabloc, tablen); + return _bfd_construct_extended_name_table (abfd, FALSE, tabloc, tablen); } /* Build an SVR4 style extended name table. */ -boolean +bfd_boolean _bfd_archive_coff_construct_extended_name_table (abfd, tabloc, tablen, name) bfd *abfd; char **tabloc; @@ -1220,21 +1223,21 @@ _bfd_archive_coff_construct_extended_nam const char **name; { *name = "//"; - return _bfd_construct_extended_name_table (abfd, true, tabloc, tablen); + return _bfd_construct_extended_name_table (abfd, TRUE, tabloc, tablen); } /* Follows archive_head and produces an extended name table if necessary. Returns (in tabloc) a pointer to an extended name table, and in tablen the length of the table. If it makes an entry it clobbers the filename so that the element may be written without - further massage. Returns true if it ran successfully, false if + further massage. Returns TRUE if it ran successfully, FALSE if something went wrong. A successful return may still involve a zero-length tablen! */ -boolean +bfd_boolean _bfd_construct_extended_name_table (abfd, trailing_slash, tabloc, tablen) bfd *abfd; - boolean trailing_slash; + bfd_boolean trailing_slash; char **tabloc; bfd_size_type *tablen; { @@ -1253,7 +1256,7 @@ _bfd_construct_extended_name_table (abfd normal = normalize (current, current->filename); if (normal == NULL) - return false; + return FALSE; thislen = strlen (normal); @@ -1289,11 +1292,11 @@ _bfd_construct_extended_name_table (abfd } if (total_namelen == 0) - return true; + return TRUE; *tabloc = bfd_zalloc (abfd, total_namelen); if (*tabloc == NULL) - return false; + return FALSE; *tablen = total_namelen; strptr = *tabloc; @@ -1306,7 +1309,7 @@ _bfd_construct_extended_name_table (abfd normal = normalize (current, current->filename); if (normal == NULL) - return false; + return FALSE; thislen = strlen (normal); if (thislen > maxname) @@ -1341,7 +1344,7 @@ _bfd_construct_extended_name_table (abfd } } - return true; + return TRUE; } /** A couple of functions for creating ar_hdrs */ @@ -1458,7 +1461,8 @@ bfd_ar_hdr_from_filesystem (abfd, filena a strong stomach to write this, and it does, but it takes even a stronger stomach to try to code around such a thing! */ -struct ar_hdr *bfd_special_undocumented_glue PARAMS ((bfd *, const char *)); +struct ar_hdr *bfd_special_undocumented_glue + PARAMS ((bfd *, const char *)); struct ar_hdr * bfd_special_undocumented_glue (abfd, filename) @@ -1669,7 +1673,7 @@ bfd_gnu_truncate_arname (abfd, pathname, /* The BFD is open for write and has its format set to bfd_archive. */ -boolean +bfd_boolean _bfd_write_archive_contents (arch) bfd *arch; { @@ -1677,8 +1681,9 @@ _bfd_write_archive_contents (arch) char *etable = NULL; bfd_size_type elength = 0; const char *ename = NULL; - boolean makemap = bfd_has_map (arch); - boolean hasobjects = false; /* If no .o's, don't bother to make a map. */ + bfd_boolean makemap = bfd_has_map (arch); + /* If no .o's, don't bother to make a map. */ + bfd_boolean hasobjects = FALSE; bfd_size_type wrote; unsigned int i; int tries; @@ -1696,14 +1701,14 @@ _bfd_write_archive_contents (arch) if (bfd_write_p (current)) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (!current->arelt_data) { current->arelt_data = (PTR) bfd_ar_hdr_from_filesystem (arch, current->filename, current); if (!current->arelt_data) - return false; + return FALSE; /* Put in the file name. */ BFD_SEND (arch, _bfd_truncate_arname, (arch, @@ -1718,28 +1723,28 @@ _bfd_write_archive_contents (arch) && ((bfd_get_file_flags (current) & HAS_SYMS)) #endif ) - hasobjects = true; + hasobjects = TRUE; } } if (!BFD_SEND (arch, _bfd_construct_extended_name_table, (arch, &etable, &elength, &ename))) - return false; + return FALSE; if (bfd_seek (arch, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; #ifdef GNU960 wrote = bfd_bwrite (BFD_GNU960_ARMAG (arch), (bfd_size_type) SARMAG, arch); #else wrote = bfd_bwrite (ARMAG, (bfd_size_type) SARMAG, arch); #endif if (wrote != SARMAG) - return false; + return FALSE; if (makemap && hasobjects) { if (! _bfd_compute_and_write_armap (arch, (unsigned int) elength)) - return false; + return FALSE; } if (elength != 0) @@ -1758,11 +1763,11 @@ _bfd_write_archive_contents (arch) if ((bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) || bfd_bwrite (etable, elength, arch) != elength) - return false; + return FALSE; if ((elength % 2) == 1) { if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1) - return false; + return FALSE; } } @@ -1775,9 +1780,9 @@ _bfd_write_archive_contents (arch) /* Write ar header. */ if (bfd_bwrite ((PTR) hdr, (bfd_size_type) sizeof (*hdr), arch) != sizeof (*hdr)) - return false; + return FALSE; if (bfd_seek (current, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; while (remaining) { unsigned int amt = DEFAULT_BUFFERSIZE; @@ -1788,16 +1793,16 @@ _bfd_write_archive_contents (arch) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); - return false; + return FALSE; } if (bfd_bwrite (buffer, (bfd_size_type) amt, arch) != amt) - return false; + return FALSE; remaining -= amt; } if ((arelt_size (current) % 2) == 1) { if (bfd_bwrite ("\012", (bfd_size_type) 1, arch) != 1) - return false; + return FALSE; } } @@ -1820,12 +1825,12 @@ _bfd_write_archive_contents (arch) while (++tries < 6); } - return true; + return TRUE; } /* Note that the namidx for the first symbol is 0. */ -boolean +bfd_boolean _bfd_compute_and_write_armap (arch, elength) bfd *arch; unsigned int elength; @@ -1839,7 +1844,7 @@ _bfd_compute_and_write_armap (arch, elen int stridx = 0; /* string index */ asymbol **syms = NULL; long syms_max = 0; - boolean ret; + bfd_boolean ret; bfd_size_type amt; /* Dunno if this is the best place for this info... */ @@ -1968,10 +1973,10 @@ _bfd_compute_and_write_armap (arch, elen if (first_name != NULL) bfd_release (arch, first_name); - return false; + return FALSE; } -boolean +bfd_boolean bsd_write_armap (arch, elength, map, orl_count, stridx) bfd *arch; unsigned int elength; @@ -2012,10 +2017,10 @@ bsd_write_armap (arch, elength, map, orl (((char *) (&hdr))[i]) = ' '; if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) - return false; + return FALSE; H_PUT_32 (arch, ranlibsize, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) - return false; + return FALSE; for (count = 0; count < orl_count; count++) { @@ -2037,19 +2042,19 @@ bsd_write_armap (arch, elength, map, orl H_PUT_32 (arch, firstreal, buf + BSD_SYMDEF_OFFSET_SIZE); if (bfd_bwrite (buf, (bfd_size_type) BSD_SYMDEF_SIZE, arch) != BSD_SYMDEF_SIZE) - return false; + return FALSE; } /* Now write the strings themselves. */ H_PUT_32 (arch, stringsize, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), arch) != sizeof (temp)) - return false; + return FALSE; for (count = 0; count < orl_count; count++) { size_t len = strlen (*map[count].name) + 1; if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) - return false; + return FALSE; } /* The spec sez this should be a newline. But in order to be @@ -2057,19 +2062,19 @@ bsd_write_armap (arch, elength, map, orl if (padit) { if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) - return false; + return FALSE; } - return true; + return TRUE; } /* At the end of archive file handling, update the timestamp in the file, so the linker will accept it. - Return true if the timestamp was OK, or an unusual problem happened. - Return false if we updated the timestamp. */ + Return TRUE if the timestamp was OK, or an unusual problem happened. + Return FALSE if we updated the timestamp. */ -boolean +bfd_boolean _bfd_archive_bsd_update_armap_timestamp (arch) bfd *arch; { @@ -2085,11 +2090,11 @@ _bfd_archive_bsd_update_armap_timestamp bfd_perror (_("Reading archive file mod timestamp")); /* Can't read mod time for some reason. */ - return true; + return TRUE; } if (archstat.st_mtime <= bfd_ardata (arch)->armap_timestamp) /* OK by the linker's rules. */ - return true; + return TRUE; /* Update the timestamp. */ bfd_ardata (arch)->armap_timestamp = archstat.st_mtime + ARMAP_TIME_OFFSET; @@ -2111,11 +2116,11 @@ _bfd_archive_bsd_update_armap_timestamp bfd_perror (_("Writing updated armap timestamp")); /* Some error while writing. */ - return true; + return TRUE; } /* We updated the timestamp successfully. */ - return false; + return FALSE; } /* A coff armap looks like : @@ -2132,7 +2137,7 @@ _bfd_archive_bsd_update_armap_timestamp symbol name n-1 */ -boolean +bfd_boolean coff_write_armap (arch, elength, map, symbol_count, stridx) bfd *arch; unsigned int elength; @@ -2179,10 +2184,10 @@ coff_write_armap (arch, elength, map, sy if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) - return false; + return FALSE; if (!bfd_write_bigendian_4byte_int (arch, symbol_count)) - return false; + return FALSE; /* Two passes, first write the file offsets for each symbol - remembering that each offset is on a two byte boundary. */ @@ -2200,7 +2205,7 @@ coff_write_armap (arch, elength, map, sy while (count < symbol_count && map[count].u.abfd == current) { if (!bfd_write_bigendian_4byte_int (arch, archive_member_file_ptr)) - return false; + return FALSE; count++; } /* Add size of this archive entry. */ @@ -2217,7 +2222,7 @@ coff_write_armap (arch, elength, map, sy size_t len = strlen (*map[count].name) + 1; if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) - return false; + return FALSE; } /* The spec sez this should be a newline. But in order to be @@ -2225,8 +2230,8 @@ coff_write_armap (arch, elength, map, sy if (padit) { if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) - return false; + return FALSE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/archive64.c binutils-2.13.90.0.18/bfd/archive64.c --- binutils-2.13.90.0.16/bfd/archive64.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/archive64.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* MIPS-specific support for 64-bit ELF - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Ian Lance Taylor, Cygnus Support Linker support added by Mark Mitchell, CodeSourcery, LLC. @@ -31,13 +31,13 @@ Foundation, Inc., 59 Temple Place - Suit /* Irix 6 defines a 64bit archive map format, so that they can have archives more than 4 GB in size. */ -boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *)); -boolean bfd_elf64_archive_write_armap +bfd_boolean bfd_elf64_archive_slurp_armap PARAMS ((bfd *)); +bfd_boolean bfd_elf64_archive_write_armap PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); /* Read an Irix 6 armap. */ -boolean +bfd_boolean bfd_elf64_archive_slurp_armap (abfd) bfd *abfd; { @@ -58,12 +58,12 @@ bfd_elf64_archive_slurp_armap (abfd) arhdrpos = bfd_tell (abfd); i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); if (i == 0) - return true; + return TRUE; if (i != 16) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) - 16, SEEK_CUR) != 0) - return false; + return FALSE; /* Archives with traditional armaps are still permitted. */ if (strncmp (nextname, "/ ", 16) == 0) @@ -71,13 +71,13 @@ bfd_elf64_archive_slurp_armap (abfd) if (strncmp (nextname, "/SYM64/ ", 16) != 0) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); if (mapdata == NULL) - return false; + return FALSE; parsed_size = mapdata->parsed_size; bfd_release (abfd, (PTR) mapdata); @@ -85,7 +85,7 @@ bfd_elf64_archive_slurp_armap (abfd) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); - return false; + return FALSE; } nsymz = bfd_getb64 (int_buf); @@ -97,7 +97,7 @@ bfd_elf64_archive_slurp_armap (abfd) amt = carsym_size + stringsize + 1; ardata->symdefs = (carsym *) bfd_zalloc (abfd, amt); if (ardata->symdefs == NULL) - return false; + return FALSE; carsyms = ardata->symdefs; stringbase = ((char *) ardata->symdefs) + carsym_size; @@ -127,23 +127,23 @@ bfd_elf64_archive_slurp_armap (abfd) /* Pad to an even boundary if you have to. */ ardata->first_file_filepos += (ardata->first_file_filepos) % 2; - bfd_has_map (abfd) = true; + bfd_has_map (abfd) = TRUE; bfd_release (abfd, raw_armap); - return true; + return TRUE; release_raw_armap: bfd_release (abfd, raw_armap); release_symdefs: bfd_release (abfd, ardata->symdefs); - return false; + return FALSE; } /* Write out an Irix 6 armap. The Irix 6 tools are supposed to be able to handle ordinary ELF armaps, but at least on Irix 6.2 the linker crashes. */ -boolean +bfd_boolean bfd_elf64_archive_write_armap (arch, elength, map, symbol_count, stridx) bfd *arch; unsigned int elength; @@ -189,11 +189,11 @@ bfd_elf64_archive_write_armap (arch, ele if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), arch) != sizeof (struct ar_hdr)) - return false; + return FALSE; bfd_putb64 ((bfd_vma) symbol_count, buf); if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8) - return false; + return FALSE; /* Two passes, first write the file offsets for each symbol - remembering that each offset is on a two byte boundary. */ @@ -212,7 +212,7 @@ bfd_elf64_archive_write_armap (arch, ele { bfd_putb64 ((bfd_vma) archive_member_file_ptr, buf); if (bfd_bwrite (buf, (bfd_size_type) 8, arch) != 8) - return false; + return FALSE; count++; } /* Add size of this archive entry */ @@ -229,7 +229,7 @@ bfd_elf64_archive_write_armap (arch, ele size_t len = strlen (*map[count].name) + 1; if (bfd_bwrite (*map[count].name, (bfd_size_type) len, arch) != len) - return false; + return FALSE; } /* The spec says that this should be padded to an 8 byte boundary. @@ -237,9 +237,9 @@ bfd_elf64_archive_write_armap (arch, ele while (padding != 0) { if (bfd_bwrite ("", (bfd_size_type) 1, arch) != 1) - return false; + return FALSE; --padding; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/archures.c binutils-2.13.90.0.18/bfd/archures.c --- binutils-2.13.90.0.16/bfd/archures.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/archures.c Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* BFD library support routines for architectures. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Hacked by John Gilmore and Steve Chamberlain of Cygnus Support. @@ -145,6 +145,7 @@ DESCRIPTION .#define bfd_mach_mips5 5 .#define bfd_mach_mips_sb1 12310201 {* octal 'SB', 01 *} .#define bfd_mach_mipsisa32 32 +.#define bfd_mach_mipsisa32r2 33 .#define bfd_mach_mipsisa64 64 . bfd_arch_i386, {* Intel 386 *} .#define bfd_mach_i386_i386 1 @@ -201,6 +202,9 @@ DESCRIPTION . bfd_arch_dlx, {* DLX *} . bfd_arch_m68hc11, {* Motorola 68HC11 *} . bfd_arch_m68hc12, {* Motorola 68HC12 *} +.#define bfd_mach_m6812_default 0 +.#define bfd_mach_m6812 1 +.#define bfd_mach_m6812s 2 . bfd_arch_z8k, {* Zilog Z8000 *} .#define bfd_mach_z8001 1 .#define bfd_mach_z8002 2 @@ -268,6 +272,9 @@ DESCRIPTION . bfd_arch_ip2k, {* Ubicom IP2K microcontrollers. *} .#define bfd_mach_ip2022 1 .#define bfd_mach_ip2022ext 2 +. bfd_arch_iq2000, {* Vitesse IQ2000. *} +.#define bfd_mach_iq2000 1 +.#define bfd_mach_iq10 2 . bfd_arch_pj, . bfd_arch_avr, {* Atmel AVR microcontrollers. *} .#define bfd_mach_avr1 1 @@ -283,6 +290,20 @@ DESCRIPTION . bfd_arch_mmix, {* Donald Knuth's educational processor. *} . bfd_arch_xstormy16, .#define bfd_mach_xstormy16 1 +. bfd_arch_msp430, {* Texas Instruments MSP430 architecture. *} +.#define bfd_mach_msp110 110 +.#define bfd_mach_msp11 11 +.#define bfd_mach_msp12 12 +.#define bfd_mach_msp13 13 +.#define bfd_mach_msp14 14 +.#define bfd_mach_msp41 41 +.#define bfd_mach_msp31 31 +.#define bfd_mach_msp32 32 +.#define bfd_mach_msp33 33 +.#define bfd_mach_msp43 43 +.#define bfd_mach_msp44 44 +.#define bfd_mach_msp15 15 +.#define bfd_mach_msp16 16 . bfd_arch_last . }; */ @@ -306,15 +327,15 @@ DESCRIPTION . const char *arch_name; . const char *printable_name; . unsigned int section_align_power; -. {* True if this is the default machine for the architecture. +. {* TRUE if this is the default machine for the architecture. . The default arch should be the first entry for an arch so that . all the entries for that arch can be accessed via <>. *} -. boolean the_default; +. bfd_boolean the_default; . const struct bfd_arch_info * (*compatible) . PARAMS ((const struct bfd_arch_info *a, . const struct bfd_arch_info *b)); . -. boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *)); +. bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *)); . . const struct bfd_arch_info *next; .} @@ -342,6 +363,7 @@ extern const bfd_arch_info_type bfd_i860 extern const bfd_arch_info_type bfd_i960_arch; extern const bfd_arch_info_type bfd_ia64_arch; extern const bfd_arch_info_type bfd_ip2k_arch; +extern const bfd_arch_info_type bfd_iq2000_arch; extern const bfd_arch_info_type bfd_m32r_arch; extern const bfd_arch_info_type bfd_m68hc11_arch; extern const bfd_arch_info_type bfd_m68hc12_arch; @@ -352,6 +374,7 @@ extern const bfd_arch_info_type bfd_mips extern const bfd_arch_info_type bfd_mmix_arch; extern const bfd_arch_info_type bfd_mn10200_arch; extern const bfd_arch_info_type bfd_mn10300_arch; +extern const bfd_arch_info_type bfd_msp430_arch; extern const bfd_arch_info_type bfd_ns32k_arch; extern const bfd_arch_info_type bfd_openrisc_arch; extern const bfd_arch_info_type bfd_or32_arch; @@ -399,6 +422,7 @@ static const bfd_arch_info_type * const &bfd_i960_arch, &bfd_ia64_arch, &bfd_ip2k_arch, + &bfd_iq2000_arch, &bfd_m32r_arch, &bfd_m68hc11_arch, &bfd_m68hc12_arch, @@ -409,6 +433,7 @@ static const bfd_arch_info_type * const &bfd_mmix_arch, &bfd_mn10200_arch, &bfd_mn10300_arch, + &bfd_msp430_arch, &bfd_ns32k_arch, &bfd_openrisc_arch, &bfd_or32_arch, @@ -544,27 +569,39 @@ FUNCTION SYNOPSIS const bfd_arch_info_type *bfd_arch_get_compatible( const bfd *abfd, - const bfd *bbfd); + const bfd *bbfd, + bfd_boolean accept_unknowns); DESCRIPTION - Determine whether two BFDs' - architectures and machine types are compatible. Calculates - the lowest common denominator between the two architectures - and machine types implied by the BFDs and returns a pointer to - an <> structure describing the compatible machine. + Determine whether two BFDs' architectures and machine types + are compatible. Calculates the lowest common denominator + between the two architectures and machine types implied by + the BFDs and returns a pointer to an <> structure + describing the compatible machine. */ const bfd_arch_info_type * -bfd_arch_get_compatible (abfd, bbfd) +bfd_arch_get_compatible (abfd, bbfd, accept_unknowns) const bfd *abfd; const bfd *bbfd; + bfd_boolean accept_unknowns; { - /* If either architecture is unknown, then all we can do is assume - the user knows what he's doing. */ - if (abfd->arch_info->arch == bfd_arch_unknown) - return bbfd->arch_info; - if (bbfd->arch_info->arch == bfd_arch_unknown) - return abfd->arch_info; + const bfd * ubfd = NULL; + + /* Look for an unknown architecture. */ + if (((ubfd = abfd) && ubfd->arch_info->arch == bfd_arch_unknown) + || ((ubfd = bbfd) && ubfd->arch_info->arch == bfd_arch_unknown)) + { + /* We can allow an unknown architecture if accept_unknowns + is true, or if the target is the "binary" format, which + has an unknown architecture. Since the binary format can + only be set by explicit request from the user, it is safe + to assume that they know what they are doing. */ + if (accept_unknowns + || strcmp (bfd_get_target (ubfd), "binary") == 0) + return ubfd->arch_info; + return NULL; + } /* Otherwise architecture-specific code has to decide. */ return abfd->arch_info->compatible (abfd->arch_info, bbfd->arch_info); @@ -585,7 +622,7 @@ DESCRIPTION */ const bfd_arch_info_type bfd_default_arch_struct = { - 32, 32, 8, bfd_arch_unknown, 0, "unknown", "unknown", 2, true, + 32, 32, 8, bfd_arch_unknown, 0, "unknown", "unknown", 2, TRUE, bfd_default_compatible, bfd_default_scan, 0, @@ -615,7 +652,7 @@ INTERNAL_FUNCTION bfd_default_set_arch_mach SYNOPSIS - boolean bfd_default_set_arch_mach(bfd *abfd, + bfd_boolean bfd_default_set_arch_mach(bfd *abfd, enum bfd_architecture arch, unsigned long mach); @@ -626,7 +663,7 @@ DESCRIPTION pointer. */ -boolean +bfd_boolean bfd_default_set_arch_mach (abfd, arch, mach) bfd *abfd; enum bfd_architecture arch; @@ -634,11 +671,11 @@ bfd_default_set_arch_mach (abfd, arch, m { abfd->arch_info = bfd_lookup_arch (arch, mach); if (abfd->arch_info != NULL) - return true; + return TRUE; abfd->arch_info = &bfd_default_arch_struct; bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* @@ -755,14 +792,14 @@ INTERNAL_FUNCTION bfd_default_scan SYNOPSIS - boolean bfd_default_scan(const struct bfd_arch_info *info, const char *string); + bfd_boolean bfd_default_scan(const struct bfd_arch_info *info, const char *string); DESCRIPTION The default function for working out whether this is an architecture hit and a machine hit. */ -boolean +bfd_boolean bfd_default_scan (info, string) const bfd_arch_info_type *info; const char *string; @@ -777,11 +814,11 @@ bfd_default_scan (info, string) default architecture? */ if (strcasecmp (string, info->arch_name) == 0 && info->the_default) - return true; + return TRUE; /* Exact match of the machine name (PRINTABLE_NAME)? */ if (strcasecmp (string, info->printable_name) == 0) - return true; + return TRUE; /* Given that printable_name contains no colon, attempt to match: ARCH_NAME [ ":" ] PRINTABLE_NAME? */ @@ -795,13 +832,13 @@ bfd_default_scan (info, string) { if (strcasecmp (string + strlen_arch_name + 1, info->printable_name) == 0) - return true; + return TRUE; } else { if (strcasecmp (string + strlen_arch_name, info->printable_name) == 0) - return true; + return TRUE; } } } @@ -814,7 +851,7 @@ bfd_default_scan (info, string) if (strncasecmp (string, info->printable_name, colon_index) == 0 && strcasecmp (string + colon_index, info->printable_name + colon_index + 1) == 0) - return true; + return TRUE; } /* Given that PRINTABLE_NAME has the form: ":" ; Do not @@ -957,16 +994,16 @@ bfd_default_scan (info, string) break; default: - return false; + return FALSE; } if (arch != info->arch) - return false; + return FALSE; if (number != info->mach) - return false; + return FALSE; - return true; + return TRUE; } /* diff -uprN binutils-2.13.90.0.16/bfd/bfd-in.h binutils-2.13.90.0.18/bfd/bfd-in.h --- binutils-2.13.90.0.16/bfd/bfd-in.h Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/bfd-in.h Mon Dec 16 12:22:51 2002 @@ -70,42 +70,27 @@ extern "C" { /* Forward declaration. */ typedef struct _bfd bfd; -/* To squelch erroneous compiler warnings ("illegal pointer - combination") from the SVR3 compiler, we would like to typedef - boolean to int (it doesn't like functions which return boolean. - Making sure they are never implicitly declared to return int - doesn't seem to help). But this file is not configured based on - the host. */ -/* General rules: functions which are boolean return true on success - and false on failure (unless they're a predicate). -- bfd.doc */ -/* I'm sure this is going to break something and someone is going to - force me to change it. */ -/* typedef enum boolean {false, true} boolean; */ -/* Yup, SVR4 has a "typedef enum boolean" in -fnf */ -/* It gets worse if the host also defines a true/false enum... -sts */ -/* And even worse if your compiler has built-in boolean types... -law */ -/* And even worse if your compiler provides a stdbool.h that conflicts - with these definitions... gcc 2.95 and later do. If so, it must - be included first. -drow */ -#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -#define TRUE_FALSE_ALREADY_DEFINED -#else -#if defined (__bool_true_false_are_defined) -/* We have . */ -#define TRUE_FALSE_ALREADY_DEFINED -#endif -#endif -#ifdef MPW -/* Pre-emptive strike - get the file with the enum. */ -#include -#define TRUE_FALSE_ALREADY_DEFINED -#endif /* MPW */ -#ifndef TRUE_FALSE_ALREADY_DEFINED -typedef enum bfd_boolean {false, true} boolean; -#define BFD_TRUE_FALSE -#else -/* Use enum names that will appear nowhere else. */ -typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean; +/* Boolean type used in bfd. Too many systems define their own + versions of "boolean" for us to safely typedef a "boolean" of + our own. Using an enum for "bfd_boolean" has its own set of + problems, with strange looking casts required to avoid warnings + on some older compilers. Thus we just use an int. + + General rule: Functions which are bfd_boolean return TRUE on + success and FALSE on failure (unless they're a predicate). */ + +typedef int bfd_boolean; +#undef FALSE +#undef TRUE +#define FALSE 0 +#define TRUE 1 + +#if 0 +/* Poison. */ +#undef false +#undef true +#define false dont_use_false_in_bfd +#define true dont_use_true_in_bfd #endif /* Support for different sizes of target format ints and addresses. @@ -186,8 +171,10 @@ typedef unsigned long bfd_size_type; typedef bfd_signed_vma file_ptr; typedef bfd_vma ufile_ptr; -extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma)); -extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma)); +extern void bfd_sprintf_vma + PARAMS ((bfd *, char *, bfd_vma)); +extern void bfd_fprintf_vma + PARAMS ((bfd *, PTR, bfd_vma)); #define printf_vma(x) fprintf_vma(stdout,x) #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x) @@ -263,7 +250,7 @@ bfd_format; /* This flag indicates that the BFD contents are actually cached in memory. If this is set, iostream points to a bfd_in_memory struct. */ #define BFD_IN_MEMORY 0x800 - + /* The sections in this BFD specify a memory page. */ #define HAS_LOAD_PAGE 0x1000 @@ -345,9 +332,9 @@ typedef struct sec *sec_ptr; #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) -#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (unsigned int)true), true) -#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true) -#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true) +#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) +#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) +#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) typedef struct stat stat_type; @@ -373,7 +360,8 @@ typedef struct _symbol_info /* Get the name of a stabs type code. */ -extern const char *bfd_get_stab_name PARAMS ((int)); +extern const char *bfd_get_stab_name + PARAMS ((int)); /* Hash table routines. There is no way to free up a hash table. */ @@ -406,23 +394,22 @@ struct bfd_hash_table built each of which calls the function in the superclass. Thus each function should be written to allocate a new block of memory only if the argument is NULL. */ - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); + struct bfd_hash_entry *(*newfunc) + PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); /* An objalloc for this hash table. This is a struct objalloc *, but we use PTR to avoid requiring the inclusion of objalloc.h. */ PTR memory; }; /* Initialize a hash table. */ -extern boolean bfd_hash_table_init +extern bfd_boolean bfd_hash_table_init PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *))); /* Initialize a hash table specifying a size. */ -extern boolean bfd_hash_table_init_n +extern bfd_boolean bfd_hash_table_init_n PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -430,15 +417,16 @@ extern boolean bfd_hash_table_init_n unsigned int size)); /* Free up a hash table. */ -extern void bfd_hash_table_free PARAMS ((struct bfd_hash_table *)); +extern void bfd_hash_table_free + PARAMS ((struct bfd_hash_table *)); -/* Look up a string in a hash table. If CREATE is true, a new entry +/* Look up a string in a hash table. If CREATE is TRUE, a new entry will be created for this string if one does not already exist. The - COPY argument must be true if this routine should copy the string + COPY argument must be TRUE if this routine should copy the string into newly allocated memory when adding an entry. */ extern struct bfd_hash_entry *bfd_hash_lookup - PARAMS ((struct bfd_hash_table *, const char *, boolean create, - boolean copy)); + PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create, + bfd_boolean copy)); /* Replace an entry in a hash table. */ extern void bfd_hash_replace @@ -451,16 +439,16 @@ extern struct bfd_hash_entry *bfd_hash_n const char *)); /* Grab some space for a hash table entry. */ -extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *, - unsigned int)); +extern PTR bfd_hash_allocate + PARAMS ((struct bfd_hash_table *, unsigned int)); /* Traverse a hash table in a random order, calling a function on each - element. If the function returns false, the traversal stops. The + element. If the function returns FALSE, the traversal stops. The INFO argument is passed to the function. */ -extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *, - boolean (*) (struct bfd_hash_entry *, - PTR), - PTR info)); +extern void bfd_hash_traverse + PARAMS ((struct bfd_hash_table *, + bfd_boolean (*) (struct bfd_hash_entry *, PTR), + PTR info)); #define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table @@ -469,12 +457,18 @@ extern void bfd_hash_traverse PARAMS ((s /* Direct I/O routines, for programs which know more about the object file than BFD does. Use higher level routines if possible. */ -extern bfd_size_type bfd_bread PARAMS ((PTR, bfd_size_type, bfd *)); -extern bfd_size_type bfd_bwrite PARAMS ((const PTR, bfd_size_type, bfd *)); -extern int bfd_seek PARAMS ((bfd *, file_ptr, int)); -extern ufile_ptr bfd_tell PARAMS ((bfd *)); -extern int bfd_flush PARAMS ((bfd *)); -extern int bfd_stat PARAMS ((bfd *, struct stat *)); +extern bfd_size_type bfd_bread + PARAMS ((PTR, bfd_size_type, bfd *)); +extern bfd_size_type bfd_bwrite + PARAMS ((const PTR, bfd_size_type, bfd *)); +extern int bfd_seek + PARAMS ((bfd *, file_ptr, int)); +extern ufile_ptr bfd_tell + PARAMS ((bfd *)); +extern int bfd_flush + PARAMS ((bfd *)); +extern int bfd_stat + PARAMS ((bfd *, struct stat *)); /* Deprecated old routines. */ #if __GNUC__ @@ -529,40 +523,61 @@ extern void warn_deprecated #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) -#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true) +#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -extern boolean bfd_cache_close PARAMS ((bfd *abfd)); +extern bfd_boolean bfd_cache_close + PARAMS ((bfd *abfd)); /* NB: This declaration should match the autogenerated one in libbfd.h. */ -extern boolean bfd_record_phdr - PARAMS ((bfd *, unsigned long, boolean, flagword, boolean, bfd_vma, - boolean, boolean, unsigned int, struct sec **)); +extern bfd_boolean bfd_record_phdr + PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, + bfd_boolean, bfd_boolean, unsigned int, struct sec **)); /* Byte swapping routines. */ -bfd_vma bfd_getb64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb16 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_16 PARAMS ((const unsigned char *)); -void bfd_putb64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb16 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl16 PARAMS ((bfd_vma, unsigned char *)); +bfd_vma bfd_getb64 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getl64 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getb_signed_64 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getl_signed_64 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getb32 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getl32 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getb_signed_32 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getl_signed_32 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getb16 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getl16 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getb_signed_16 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getl_signed_16 + PARAMS ((const unsigned char *)); +void bfd_putb64 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putl64 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putb32 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putl32 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putb16 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putl16 + PARAMS ((bfd_vma, unsigned char *)); /* Byte swapping routines which take size and endiannes as arguments. */ -bfd_vma bfd_get_bits PARAMS ((bfd_byte *, int, boolean)); -void bfd_put_bits PARAMS ((bfd_vma, bfd_byte *, int, boolean)); +bfd_vma bfd_get_bits + PARAMS ((bfd_byte *, int, bfd_boolean)); +void bfd_put_bits + PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean)); /* Externally visible ECOFF routines. */ @@ -575,9 +590,11 @@ struct bfd_link_info; struct bfd_link_hash_entry; struct bfd_elf_version_tree; #endif -extern bfd_vma bfd_ecoff_get_gp_value PARAMS ((bfd * abfd)); -extern boolean bfd_ecoff_set_gp_value PARAMS ((bfd *abfd, bfd_vma gp_value)); -extern boolean bfd_ecoff_set_regmasks +extern bfd_vma bfd_ecoff_get_gp_value + PARAMS ((bfd * abfd)); +extern bfd_boolean bfd_ecoff_set_gp_value + PARAMS ((bfd *abfd, bfd_vma gp_value)); +extern bfd_boolean bfd_ecoff_set_regmasks PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask, unsigned long *cprmask)); extern PTR bfd_ecoff_debug_init @@ -588,39 +605,39 @@ extern void bfd_ecoff_debug_free PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate +extern bfd_boolean bfd_ecoff_debug_accumulate PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, bfd *input_bfd, struct ecoff_debug_info *input_debug, const struct ecoff_debug_swap *input_swap, struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate_other +extern bfd_boolean bfd_ecoff_debug_accumulate_other PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, bfd *input_bfd, struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_externals +extern bfd_boolean bfd_ecoff_debug_externals PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, - boolean relocateable, - boolean (*get_extr) (struct symbol_cache_entry *, - struct ecoff_extr *), + bfd_boolean relocateable, + bfd_boolean (*get_extr) (struct symbol_cache_entry *, + struct ecoff_extr *), void (*set_index) (struct symbol_cache_entry *, bfd_size_type))); -extern boolean bfd_ecoff_debug_one_external +extern bfd_boolean bfd_ecoff_debug_one_external PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, const char *name, struct ecoff_extr *esym)); extern bfd_size_type bfd_ecoff_debug_size PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap)); -extern boolean bfd_ecoff_write_debug +extern bfd_boolean bfd_ecoff_write_debug PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, file_ptr where)); -extern boolean bfd_ecoff_write_accumulated_debug +extern bfd_boolean bfd_ecoff_write_accumulated_debug PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, struct bfd_link_info *info, file_ptr where)); -extern boolean bfd_mips_ecoff_create_embedded_relocs +extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); @@ -633,36 +650,40 @@ struct bfd_link_needed_list const char *name; }; -extern boolean bfd_elf32_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); -extern boolean bfd_elf64_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); +extern bfd_boolean bfd_elf32_record_link_assignment + PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); +extern bfd_boolean bfd_elf64_record_link_assignment + PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); extern struct bfd_link_needed_list *bfd_elf_get_needed_list PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf_get_bfd_needed_list +extern bfd_boolean bfd_elf_get_bfd_needed_list PARAMS ((bfd *, struct bfd_link_needed_list **)); -extern boolean bfd_elf32_size_dynamic_sections +extern bfd_boolean bfd_elf32_size_dynamic_sections PARAMS ((bfd *, const char *, const char *, const char *, const char * const *, struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *)); -extern boolean bfd_elf64_size_dynamic_sections +extern bfd_boolean bfd_elf64_size_dynamic_sections PARAMS ((bfd *, const char *, const char *, const char *, const char * const *, struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *)); -extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *)); -extern void bfd_elf_set_dt_needed_soname PARAMS ((bfd *, const char *)); -extern const char *bfd_elf_get_dt_soname PARAMS ((bfd *)); +extern void bfd_elf_set_dt_needed_name + PARAMS ((bfd *, const char *)); +extern void bfd_elf_set_dt_needed_soname + PARAMS ((bfd *, const char *)); +extern const char *bfd_elf_get_dt_soname + PARAMS ((bfd *)); extern struct bfd_link_needed_list *bfd_elf_get_runpath_list PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf32_discard_info +extern bfd_boolean bfd_elf32_discard_info PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf64_discard_info +extern bfd_boolean bfd_elf64_discard_info PARAMS ((bfd *, struct bfd_link_info *)); /* Return an upper bound on the number of bytes required to store a copy of ABFD's program header table entries. Return -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd)); +extern long bfd_get_elf_phdr_upper_bound + PARAMS ((bfd *abfd)); /* Copy ABFD's program header table entries to *PHDRS. The entries will be stored as an array of Elf_Internal_Phdr structures, as @@ -671,18 +692,21 @@ extern long bfd_get_elf_phdr_upper_bound Return the number of program header table entries read, or -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs)); +extern int bfd_get_elf_phdrs + PARAMS ((bfd *abfd, void *phdrs)); /* Return the arch_size field of an elf bfd, or -1 if not elf. */ -extern int bfd_get_arch_size PARAMS ((bfd *)); +extern int bfd_get_arch_size + PARAMS ((bfd *)); -/* Return true if address "naturally" sign extends, or -1 if not elf. */ -extern int bfd_get_sign_extend_vma PARAMS ((bfd *)); +/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ +extern int bfd_get_sign_extend_vma + PARAMS ((bfd *)); -extern boolean bfd_m68k_elf32_create_embedded_relocs +extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); -extern boolean bfd_mips_elf32_create_embedded_relocs +extern bfd_boolean bfd_mips_elf32_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); @@ -690,19 +714,19 @@ extern boolean bfd_mips_elf32_create_emb extern struct bfd_link_needed_list *bfd_sunos_get_needed_list PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sunos_record_link_assignment +extern bfd_boolean bfd_sunos_record_link_assignment PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_sunos_size_dynamic_sections +extern bfd_boolean bfd_sunos_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **, struct sec **)); /* Linux shared library support routines for the linker. */ -extern boolean bfd_i386linux_size_dynamic_sections +extern bfd_boolean bfd_i386linux_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_m68klinux_size_dynamic_sections +extern bfd_boolean bfd_m68klinux_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sparclinux_size_dynamic_sections +extern bfd_boolean bfd_sparclinux_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); /* mmap hacks */ @@ -725,34 +749,37 @@ typedef struct _bfd_window } bfd_window; -extern void bfd_init_window PARAMS ((bfd_window *)); -extern void bfd_free_window PARAMS ((bfd_window *)); -extern boolean bfd_get_file_window - PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, boolean)); +extern void bfd_init_window + PARAMS ((bfd_window *)); +extern void bfd_free_window + PARAMS ((bfd_window *)); +extern bfd_boolean bfd_get_file_window + PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean)); /* XCOFF support routines for the linker. */ -extern boolean bfd_xcoff_link_record_set +extern bfd_boolean bfd_xcoff_link_record_set PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type)); -extern boolean bfd_xcoff_import_symbol +extern bfd_boolean bfd_xcoff_import_symbol PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, const char *, const char *, const char *, unsigned int)); -extern boolean bfd_xcoff_export_symbol +extern bfd_boolean bfd_xcoff_export_symbol PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *)); -extern boolean bfd_xcoff_link_count_reloc +extern bfd_boolean bfd_xcoff_link_count_reloc PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_record_link_assignment +extern bfd_boolean bfd_xcoff_record_link_assignment PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_size_dynamic_sections +extern bfd_boolean bfd_xcoff_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, boolean, - int, boolean, boolean, struct sec **, boolean)); -extern boolean bfd_xcoff_link_generate_rtinit - PARAMS ((bfd *, const char *, const char *, boolean)); + unsigned long, unsigned long, unsigned long, bfd_boolean, + int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean)); +extern bfd_boolean bfd_xcoff_link_generate_rtinit + PARAMS ((bfd *, const char *, const char *, bfd_boolean)); /* XCOFF support routines for ar. */ -extern boolean bfd_xcoff_ar_archive_set_magic PARAMS ((bfd *, char *)); +extern bfd_boolean bfd_xcoff_ar_archive_set_magic + PARAMS ((bfd *, char *)); /* Externally visible COFF routines. */ @@ -761,50 +788,50 @@ struct internal_syment; union internal_auxent; #endif -extern boolean bfd_coff_get_syment +extern bfd_boolean bfd_coff_get_syment PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *)); -extern boolean bfd_coff_get_auxent +extern bfd_boolean bfd_coff_get_auxent PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *)); -extern boolean bfd_coff_set_symbol_class +extern bfd_boolean bfd_coff_set_symbol_class PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int)); -extern boolean bfd_m68k_coff_create_embedded_relocs +extern bfd_boolean bfd_m68k_coff_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); /* ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_allocate_interworking_sections +extern bfd_boolean bfd_arm_allocate_interworking_sections PARAMS ((struct bfd_link_info *)); -extern boolean bfd_arm_process_before_allocation +extern bfd_boolean bfd_arm_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *, int)); -extern boolean bfd_arm_get_bfd_for_interworking +extern bfd_boolean bfd_arm_get_bfd_for_interworking PARAMS ((bfd *, struct bfd_link_info *)); /* PE ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_pe_allocate_interworking_sections +extern bfd_boolean bfd_arm_pe_allocate_interworking_sections PARAMS ((struct bfd_link_info *)); -extern boolean bfd_arm_pe_process_before_allocation +extern bfd_boolean bfd_arm_pe_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *, int)); -extern boolean bfd_arm_pe_get_bfd_for_interworking +extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking PARAMS ((bfd *, struct bfd_link_info *)); /* ELF ARM Interworking support. Called from linker. */ -extern boolean bfd_elf32_arm_allocate_interworking_sections +extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections PARAMS ((struct bfd_link_info *)); -extern boolean bfd_elf32_arm_process_before_allocation +extern bfd_boolean bfd_elf32_arm_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *, int)); -extern boolean bfd_elf32_arm_get_bfd_for_interworking +extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf32_arm_add_glue_sections_to_bfd +extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd PARAMS ((bfd *, struct bfd_link_info *)); /* TI COFF load page support. */ diff -uprN binutils-2.13.90.0.16/bfd/bfd-in2.h binutils-2.13.90.0.18/bfd/bfd-in2.h --- binutils-2.13.90.0.16/bfd/bfd-in2.h Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/bfd-in2.h Tue Jan 21 10:21:32 2003 @@ -77,42 +77,27 @@ extern "C" { /* Forward declaration. */ typedef struct _bfd bfd; -/* To squelch erroneous compiler warnings ("illegal pointer - combination") from the SVR3 compiler, we would like to typedef - boolean to int (it doesn't like functions which return boolean. - Making sure they are never implicitly declared to return int - doesn't seem to help). But this file is not configured based on - the host. */ -/* General rules: functions which are boolean return true on success - and false on failure (unless they're a predicate). -- bfd.doc */ -/* I'm sure this is going to break something and someone is going to - force me to change it. */ -/* typedef enum boolean {false, true} boolean; */ -/* Yup, SVR4 has a "typedef enum boolean" in -fnf */ -/* It gets worse if the host also defines a true/false enum... -sts */ -/* And even worse if your compiler has built-in boolean types... -law */ -/* And even worse if your compiler provides a stdbool.h that conflicts - with these definitions... gcc 2.95 and later do. If so, it must - be included first. -drow */ -#if defined (__GNUG__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)) -#define TRUE_FALSE_ALREADY_DEFINED -#else -#if defined (__bool_true_false_are_defined) -/* We have . */ -#define TRUE_FALSE_ALREADY_DEFINED -#endif -#endif -#ifdef MPW -/* Pre-emptive strike - get the file with the enum. */ -#include -#define TRUE_FALSE_ALREADY_DEFINED -#endif /* MPW */ -#ifndef TRUE_FALSE_ALREADY_DEFINED -typedef enum bfd_boolean {false, true} boolean; -#define BFD_TRUE_FALSE -#else -/* Use enum names that will appear nowhere else. */ -typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean; +/* Boolean type used in bfd. Too many systems define their own + versions of "boolean" for us to safely typedef a "boolean" of + our own. Using an enum for "bfd_boolean" has its own set of + problems, with strange looking casts required to avoid warnings + on some older compilers. Thus we just use an int. + + General rule: Functions which are bfd_boolean return TRUE on + success and FALSE on failure (unless they're a predicate). */ + +typedef int bfd_boolean; +#undef FALSE +#undef TRUE +#define FALSE 0 +#define TRUE 1 + +#if 0 +/* Poison. */ +#undef false +#undef true +#define false dont_use_false_in_bfd +#define true dont_use_true_in_bfd #endif /* Support for different sizes of target format ints and addresses. @@ -193,8 +178,10 @@ typedef unsigned long bfd_size_type; typedef bfd_signed_vma file_ptr; typedef bfd_vma ufile_ptr; -extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma)); -extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma)); +extern void bfd_sprintf_vma + PARAMS ((bfd *, char *, bfd_vma)); +extern void bfd_fprintf_vma + PARAMS ((bfd *, PTR, bfd_vma)); #define printf_vma(x) fprintf_vma(stdout,x) #define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x) @@ -270,7 +257,7 @@ bfd_format; /* This flag indicates that the BFD contents are actually cached in memory. If this is set, iostream points to a bfd_in_memory struct. */ #define BFD_IN_MEMORY 0x800 - + /* The sections in this BFD specify a memory page. */ #define HAS_LOAD_PAGE 0x1000 @@ -352,9 +339,9 @@ typedef struct sec *sec_ptr; #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0) -#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = (unsigned int)true), true) -#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true) -#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true) +#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE) +#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE) +#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE) typedef struct stat stat_type; @@ -380,7 +367,8 @@ typedef struct _symbol_info /* Get the name of a stabs type code. */ -extern const char *bfd_get_stab_name PARAMS ((int)); +extern const char *bfd_get_stab_name + PARAMS ((int)); /* Hash table routines. There is no way to free up a hash table. */ @@ -413,23 +401,22 @@ struct bfd_hash_table built each of which calls the function in the superclass. Thus each function should be written to allocate a new block of memory only if the argument is NULL. */ - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); + struct bfd_hash_entry *(*newfunc) + PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); /* An objalloc for this hash table. This is a struct objalloc *, but we use PTR to avoid requiring the inclusion of objalloc.h. */ PTR memory; }; /* Initialize a hash table. */ -extern boolean bfd_hash_table_init +extern bfd_boolean bfd_hash_table_init PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *))); /* Initialize a hash table specifying a size. */ -extern boolean bfd_hash_table_init_n +extern bfd_boolean bfd_hash_table_init_n PARAMS ((struct bfd_hash_table *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -437,15 +424,16 @@ extern boolean bfd_hash_table_init_n unsigned int size)); /* Free up a hash table. */ -extern void bfd_hash_table_free PARAMS ((struct bfd_hash_table *)); +extern void bfd_hash_table_free + PARAMS ((struct bfd_hash_table *)); -/* Look up a string in a hash table. If CREATE is true, a new entry +/* Look up a string in a hash table. If CREATE is TRUE, a new entry will be created for this string if one does not already exist. The - COPY argument must be true if this routine should copy the string + COPY argument must be TRUE if this routine should copy the string into newly allocated memory when adding an entry. */ extern struct bfd_hash_entry *bfd_hash_lookup - PARAMS ((struct bfd_hash_table *, const char *, boolean create, - boolean copy)); + PARAMS ((struct bfd_hash_table *, const char *, bfd_boolean create, + bfd_boolean copy)); /* Replace an entry in a hash table. */ extern void bfd_hash_replace @@ -458,16 +446,16 @@ extern struct bfd_hash_entry *bfd_hash_n const char *)); /* Grab some space for a hash table entry. */ -extern PTR bfd_hash_allocate PARAMS ((struct bfd_hash_table *, - unsigned int)); +extern PTR bfd_hash_allocate + PARAMS ((struct bfd_hash_table *, unsigned int)); /* Traverse a hash table in a random order, calling a function on each - element. If the function returns false, the traversal stops. The + element. If the function returns FALSE, the traversal stops. The INFO argument is passed to the function. */ -extern void bfd_hash_traverse PARAMS ((struct bfd_hash_table *, - boolean (*) (struct bfd_hash_entry *, - PTR), - PTR info)); +extern void bfd_hash_traverse + PARAMS ((struct bfd_hash_table *, + bfd_boolean (*) (struct bfd_hash_entry *, PTR), + PTR info)); #define COFF_SWAP_TABLE (PTR) &bfd_coff_std_swap_table @@ -476,12 +464,18 @@ extern void bfd_hash_traverse PARAMS ((s /* Direct I/O routines, for programs which know more about the object file than BFD does. Use higher level routines if possible. */ -extern bfd_size_type bfd_bread PARAMS ((PTR, bfd_size_type, bfd *)); -extern bfd_size_type bfd_bwrite PARAMS ((const PTR, bfd_size_type, bfd *)); -extern int bfd_seek PARAMS ((bfd *, file_ptr, int)); -extern ufile_ptr bfd_tell PARAMS ((bfd *)); -extern int bfd_flush PARAMS ((bfd *)); -extern int bfd_stat PARAMS ((bfd *, struct stat *)); +extern bfd_size_type bfd_bread + PARAMS ((PTR, bfd_size_type, bfd *)); +extern bfd_size_type bfd_bwrite + PARAMS ((const PTR, bfd_size_type, bfd *)); +extern int bfd_seek + PARAMS ((bfd *, file_ptr, int)); +extern ufile_ptr bfd_tell + PARAMS ((bfd *)); +extern int bfd_flush + PARAMS ((bfd *)); +extern int bfd_stat + PARAMS ((bfd *, struct stat *)); /* Deprecated old routines. */ #if __GNUC__ @@ -536,40 +530,61 @@ extern void warn_deprecated #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char) -#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = (boolean) (bool)), true) +#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE) -extern boolean bfd_cache_close PARAMS ((bfd *abfd)); +extern bfd_boolean bfd_cache_close + PARAMS ((bfd *abfd)); /* NB: This declaration should match the autogenerated one in libbfd.h. */ -extern boolean bfd_record_phdr - PARAMS ((bfd *, unsigned long, boolean, flagword, boolean, bfd_vma, - boolean, boolean, unsigned int, struct sec **)); +extern bfd_boolean bfd_record_phdr + PARAMS ((bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, + bfd_boolean, bfd_boolean, unsigned int, struct sec **)); /* Byte swapping routines. */ -bfd_vma bfd_getb64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_64 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_64 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_32 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_32 PARAMS ((const unsigned char *)); -bfd_vma bfd_getb16 PARAMS ((const unsigned char *)); -bfd_vma bfd_getl16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getb_signed_16 PARAMS ((const unsigned char *)); -bfd_signed_vma bfd_getl_signed_16 PARAMS ((const unsigned char *)); -void bfd_putb64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl64 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl32 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putb16 PARAMS ((bfd_vma, unsigned char *)); -void bfd_putl16 PARAMS ((bfd_vma, unsigned char *)); +bfd_vma bfd_getb64 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getl64 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getb_signed_64 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getl_signed_64 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getb32 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getl32 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getb_signed_32 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getl_signed_32 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getb16 + PARAMS ((const unsigned char *)); +bfd_vma bfd_getl16 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getb_signed_16 + PARAMS ((const unsigned char *)); +bfd_signed_vma bfd_getl_signed_16 + PARAMS ((const unsigned char *)); +void bfd_putb64 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putl64 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putb32 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putl32 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putb16 + PARAMS ((bfd_vma, unsigned char *)); +void bfd_putl16 + PARAMS ((bfd_vma, unsigned char *)); /* Byte swapping routines which take size and endiannes as arguments. */ -bfd_vma bfd_get_bits PARAMS ((bfd_byte *, int, boolean)); -void bfd_put_bits PARAMS ((bfd_vma, bfd_byte *, int, boolean)); +bfd_vma bfd_get_bits + PARAMS ((bfd_byte *, int, bfd_boolean)); +void bfd_put_bits + PARAMS ((bfd_vma, bfd_byte *, int, bfd_boolean)); /* Externally visible ECOFF routines. */ @@ -582,9 +597,11 @@ struct bfd_link_info; struct bfd_link_hash_entry; struct bfd_elf_version_tree; #endif -extern bfd_vma bfd_ecoff_get_gp_value PARAMS ((bfd * abfd)); -extern boolean bfd_ecoff_set_gp_value PARAMS ((bfd *abfd, bfd_vma gp_value)); -extern boolean bfd_ecoff_set_regmasks +extern bfd_vma bfd_ecoff_get_gp_value + PARAMS ((bfd * abfd)); +extern bfd_boolean bfd_ecoff_set_gp_value + PARAMS ((bfd *abfd, bfd_vma gp_value)); +extern bfd_boolean bfd_ecoff_set_regmasks PARAMS ((bfd *abfd, unsigned long gprmask, unsigned long fprmask, unsigned long *cprmask)); extern PTR bfd_ecoff_debug_init @@ -595,39 +612,39 @@ extern void bfd_ecoff_debug_free PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate +extern bfd_boolean bfd_ecoff_debug_accumulate PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, bfd *input_bfd, struct ecoff_debug_info *input_debug, const struct ecoff_debug_swap *input_swap, struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_accumulate_other +extern bfd_boolean bfd_ecoff_debug_accumulate_other PARAMS ((PTR handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, bfd *input_bfd, struct bfd_link_info *)); -extern boolean bfd_ecoff_debug_externals +extern bfd_boolean bfd_ecoff_debug_externals PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, - boolean relocateable, - boolean (*get_extr) (struct symbol_cache_entry *, - struct ecoff_extr *), + bfd_boolean relocateable, + bfd_boolean (*get_extr) (struct symbol_cache_entry *, + struct ecoff_extr *), void (*set_index) (struct symbol_cache_entry *, bfd_size_type))); -extern boolean bfd_ecoff_debug_one_external +extern bfd_boolean bfd_ecoff_debug_one_external PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, const char *name, struct ecoff_extr *esym)); extern bfd_size_type bfd_ecoff_debug_size PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap)); -extern boolean bfd_ecoff_write_debug +extern bfd_boolean bfd_ecoff_write_debug PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, file_ptr where)); -extern boolean bfd_ecoff_write_accumulated_debug +extern bfd_boolean bfd_ecoff_write_accumulated_debug PARAMS ((PTR handle, bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, struct bfd_link_info *info, file_ptr where)); -extern boolean bfd_mips_ecoff_create_embedded_relocs +extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); @@ -640,36 +657,40 @@ struct bfd_link_needed_list const char *name; }; -extern boolean bfd_elf32_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); -extern boolean bfd_elf64_record_link_assignment - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean)); +extern bfd_boolean bfd_elf32_record_link_assignment + PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); +extern bfd_boolean bfd_elf64_record_link_assignment + PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean)); extern struct bfd_link_needed_list *bfd_elf_get_needed_list PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf_get_bfd_needed_list +extern bfd_boolean bfd_elf_get_bfd_needed_list PARAMS ((bfd *, struct bfd_link_needed_list **)); -extern boolean bfd_elf32_size_dynamic_sections +extern bfd_boolean bfd_elf32_size_dynamic_sections PARAMS ((bfd *, const char *, const char *, const char *, const char * const *, struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *)); -extern boolean bfd_elf64_size_dynamic_sections +extern bfd_boolean bfd_elf64_size_dynamic_sections PARAMS ((bfd *, const char *, const char *, const char *, const char * const *, struct bfd_link_info *, struct sec **, struct bfd_elf_version_tree *)); -extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *)); -extern void bfd_elf_set_dt_needed_soname PARAMS ((bfd *, const char *)); -extern const char *bfd_elf_get_dt_soname PARAMS ((bfd *)); +extern void bfd_elf_set_dt_needed_name + PARAMS ((bfd *, const char *)); +extern void bfd_elf_set_dt_needed_soname + PARAMS ((bfd *, const char *)); +extern const char *bfd_elf_get_dt_soname + PARAMS ((bfd *)); extern struct bfd_link_needed_list *bfd_elf_get_runpath_list PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf32_discard_info +extern bfd_boolean bfd_elf32_discard_info PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf64_discard_info +extern bfd_boolean bfd_elf64_discard_info PARAMS ((bfd *, struct bfd_link_info *)); /* Return an upper bound on the number of bytes required to store a copy of ABFD's program header table entries. Return -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern long bfd_get_elf_phdr_upper_bound PARAMS ((bfd *abfd)); +extern long bfd_get_elf_phdr_upper_bound + PARAMS ((bfd *abfd)); /* Copy ABFD's program header table entries to *PHDRS. The entries will be stored as an array of Elf_Internal_Phdr structures, as @@ -678,18 +699,21 @@ extern long bfd_get_elf_phdr_upper_bound Return the number of program header table entries read, or -1 if an error occurs; bfd_get_error will return an appropriate code. */ -extern int bfd_get_elf_phdrs PARAMS ((bfd *abfd, void *phdrs)); +extern int bfd_get_elf_phdrs + PARAMS ((bfd *abfd, void *phdrs)); /* Return the arch_size field of an elf bfd, or -1 if not elf. */ -extern int bfd_get_arch_size PARAMS ((bfd *)); +extern int bfd_get_arch_size + PARAMS ((bfd *)); -/* Return true if address "naturally" sign extends, or -1 if not elf. */ -extern int bfd_get_sign_extend_vma PARAMS ((bfd *)); +/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */ +extern int bfd_get_sign_extend_vma + PARAMS ((bfd *)); -extern boolean bfd_m68k_elf32_create_embedded_relocs +extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); -extern boolean bfd_mips_elf32_create_embedded_relocs +extern bfd_boolean bfd_mips_elf32_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); @@ -697,19 +721,19 @@ extern boolean bfd_mips_elf32_create_emb extern struct bfd_link_needed_list *bfd_sunos_get_needed_list PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sunos_record_link_assignment +extern bfd_boolean bfd_sunos_record_link_assignment PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_sunos_size_dynamic_sections +extern bfd_boolean bfd_sunos_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *, struct sec **, struct sec **, struct sec **)); /* Linux shared library support routines for the linker. */ -extern boolean bfd_i386linux_size_dynamic_sections +extern bfd_boolean bfd_i386linux_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_m68klinux_size_dynamic_sections +extern bfd_boolean bfd_m68klinux_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_sparclinux_size_dynamic_sections +extern bfd_boolean bfd_sparclinux_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); /* mmap hacks */ @@ -732,34 +756,37 @@ typedef struct _bfd_window } bfd_window; -extern void bfd_init_window PARAMS ((bfd_window *)); -extern void bfd_free_window PARAMS ((bfd_window *)); -extern boolean bfd_get_file_window - PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, boolean)); +extern void bfd_init_window + PARAMS ((bfd_window *)); +extern void bfd_free_window + PARAMS ((bfd_window *)); +extern bfd_boolean bfd_get_file_window + PARAMS ((bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean)); /* XCOFF support routines for the linker. */ -extern boolean bfd_xcoff_link_record_set +extern bfd_boolean bfd_xcoff_link_record_set PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type)); -extern boolean bfd_xcoff_import_symbol +extern bfd_boolean bfd_xcoff_import_symbol PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, const char *, const char *, const char *, unsigned int)); -extern boolean bfd_xcoff_export_symbol +extern bfd_boolean bfd_xcoff_export_symbol PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *)); -extern boolean bfd_xcoff_link_count_reloc +extern bfd_boolean bfd_xcoff_link_count_reloc PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_record_link_assignment +extern bfd_boolean bfd_xcoff_record_link_assignment PARAMS ((bfd *, struct bfd_link_info *, const char *)); -extern boolean bfd_xcoff_size_dynamic_sections +extern bfd_boolean bfd_xcoff_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *, const char *, const char *, - unsigned long, unsigned long, unsigned long, boolean, - int, boolean, boolean, struct sec **, boolean)); -extern boolean bfd_xcoff_link_generate_rtinit - PARAMS ((bfd *, const char *, const char *, boolean)); + unsigned long, unsigned long, unsigned long, bfd_boolean, + int, bfd_boolean, bfd_boolean, struct sec **, bfd_boolean)); +extern bfd_boolean bfd_xcoff_link_generate_rtinit + PARAMS ((bfd *, const char *, const char *, bfd_boolean)); /* XCOFF support routines for ar. */ -extern boolean bfd_xcoff_ar_archive_set_magic PARAMS ((bfd *, char *)); +extern bfd_boolean bfd_xcoff_ar_archive_set_magic + PARAMS ((bfd *, char *)); /* Externally visible COFF routines. */ @@ -768,50 +795,50 @@ struct internal_syment; union internal_auxent; #endif -extern boolean bfd_coff_get_syment +extern bfd_boolean bfd_coff_get_syment PARAMS ((bfd *, struct symbol_cache_entry *, struct internal_syment *)); -extern boolean bfd_coff_get_auxent +extern bfd_boolean bfd_coff_get_auxent PARAMS ((bfd *, struct symbol_cache_entry *, int, union internal_auxent *)); -extern boolean bfd_coff_set_symbol_class +extern bfd_boolean bfd_coff_set_symbol_class PARAMS ((bfd *, struct symbol_cache_entry *, unsigned int)); -extern boolean bfd_m68k_coff_create_embedded_relocs +extern bfd_boolean bfd_m68k_coff_create_embedded_relocs PARAMS ((bfd *, struct bfd_link_info *, struct sec *, struct sec *, char **)); /* ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_allocate_interworking_sections +extern bfd_boolean bfd_arm_allocate_interworking_sections PARAMS ((struct bfd_link_info *)); -extern boolean bfd_arm_process_before_allocation +extern bfd_boolean bfd_arm_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *, int)); -extern boolean bfd_arm_get_bfd_for_interworking +extern bfd_boolean bfd_arm_get_bfd_for_interworking PARAMS ((bfd *, struct bfd_link_info *)); /* PE ARM Interworking support. Called from linker. */ -extern boolean bfd_arm_pe_allocate_interworking_sections +extern bfd_boolean bfd_arm_pe_allocate_interworking_sections PARAMS ((struct bfd_link_info *)); -extern boolean bfd_arm_pe_process_before_allocation +extern bfd_boolean bfd_arm_pe_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *, int)); -extern boolean bfd_arm_pe_get_bfd_for_interworking +extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking PARAMS ((bfd *, struct bfd_link_info *)); /* ELF ARM Interworking support. Called from linker. */ -extern boolean bfd_elf32_arm_allocate_interworking_sections +extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections PARAMS ((struct bfd_link_info *)); -extern boolean bfd_elf32_arm_process_before_allocation +extern bfd_boolean bfd_elf32_arm_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *, int)); -extern boolean bfd_elf32_arm_get_bfd_for_interworking +extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf32_arm_add_glue_sections_to_bfd +extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd PARAMS ((bfd *, struct bfd_link_info *)); /* TI COFF load page support. */ @@ -838,19 +865,19 @@ bfd_openstreamr PARAMS ((const char *, c bfd * bfd_openw PARAMS ((const char *filename, const char *target)); -boolean +bfd_boolean bfd_close PARAMS ((bfd *abfd)); -boolean +bfd_boolean bfd_close_all_done PARAMS ((bfd *)); bfd * bfd_create PARAMS ((const char *filename, bfd *templ)); -boolean +bfd_boolean bfd_make_writable PARAMS ((bfd *abfd)); -boolean +bfd_boolean bfd_make_readable PARAMS ((bfd *abfd)); /* Extracted from libbfd.c. */ @@ -1430,7 +1457,7 @@ bfd_make_section_anyway PARAMS ((bfd *ab asection * bfd_make_section PARAMS ((bfd *, const char *name)); -boolean +bfd_boolean bfd_set_section_flags PARAMS ((bfd *abfd, asection *sec, flagword flags)); void @@ -1440,20 +1467,20 @@ bfd_map_over_sections PARAMS ((bfd *abfd PTR obj), PTR obj)); -boolean +bfd_boolean bfd_set_section_size PARAMS ((bfd *abfd, asection *sec, bfd_size_type val)); -boolean +bfd_boolean bfd_set_section_contents PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset, bfd_size_type count)); -boolean +bfd_boolean bfd_get_section_contents PARAMS ((bfd *abfd, asection *section, PTR location, file_ptr offset, bfd_size_type count)); -boolean +bfd_boolean bfd_copy_private_section_data PARAMS ((bfd *ibfd, asection *isec, bfd *obfd, asection *osec)); @@ -1463,7 +1490,7 @@ bfd_copy_private_section_data PARAMS ((b void _bfd_strip_section_from_output PARAMS ((struct bfd_link_info *info, asection *section)); -boolean +bfd_boolean bfd_generic_discard_group PARAMS ((bfd *abfd, asection *group)); /* Extracted from archures.c. */ @@ -1545,6 +1572,7 @@ enum bfd_architecture #define bfd_mach_mips5 5 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ #define bfd_mach_mipsisa32 32 +#define bfd_mach_mipsisa32r2 33 #define bfd_mach_mipsisa64 64 bfd_arch_i386, /* Intel 386 */ #define bfd_mach_i386_i386 1 @@ -1601,6 +1629,9 @@ enum bfd_architecture bfd_arch_dlx, /* DLX */ bfd_arch_m68hc11, /* Motorola 68HC11 */ bfd_arch_m68hc12, /* Motorola 68HC12 */ +#define bfd_mach_m6812_default 0 +#define bfd_mach_m6812 1 +#define bfd_mach_m6812s 2 bfd_arch_z8k, /* Zilog Z8000 */ #define bfd_mach_z8001 1 #define bfd_mach_z8002 2 @@ -1668,6 +1699,9 @@ enum bfd_architecture bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ #define bfd_mach_ip2022 1 #define bfd_mach_ip2022ext 2 + bfd_arch_iq2000, /* Vitesse IQ2000. */ +#define bfd_mach_iq2000 1 +#define bfd_mach_iq10 2 bfd_arch_pj, bfd_arch_avr, /* Atmel AVR microcontrollers. */ #define bfd_mach_avr1 1 @@ -1683,6 +1717,20 @@ enum bfd_architecture bfd_arch_mmix, /* Donald Knuth's educational processor. */ bfd_arch_xstormy16, #define bfd_mach_xstormy16 1 + bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ +#define bfd_mach_msp110 110 +#define bfd_mach_msp11 11 +#define bfd_mach_msp12 12 +#define bfd_mach_msp13 13 +#define bfd_mach_msp14 14 +#define bfd_mach_msp41 41 +#define bfd_mach_msp31 31 +#define bfd_mach_msp32 32 +#define bfd_mach_msp33 33 +#define bfd_mach_msp43 43 +#define bfd_mach_msp44 44 +#define bfd_mach_msp15 15 +#define bfd_mach_msp16 16 bfd_arch_last }; @@ -1696,15 +1744,15 @@ typedef struct bfd_arch_info const char *arch_name; const char *printable_name; unsigned int section_align_power; - /* True if this is the default machine for the architecture. + /* TRUE if this is the default machine for the architecture. The default arch should be the first entry for an arch so that all the entries for that arch can be accessed via <>. */ - boolean the_default; + bfd_boolean the_default; const struct bfd_arch_info * (*compatible) PARAMS ((const struct bfd_arch_info *a, const struct bfd_arch_info *b)); - boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *)); + bfd_boolean (*scan) PARAMS ((const struct bfd_arch_info *, const char *)); const struct bfd_arch_info *next; } @@ -1722,7 +1770,8 @@ bfd_arch_list PARAMS ((void)); const bfd_arch_info_type * bfd_arch_get_compatible PARAMS (( const bfd *abfd, - const bfd *bbfd)); + const bfd *bbfd, + bfd_boolean accept_unknowns)); void bfd_set_arch_info PARAMS ((bfd *abfd, const bfd_arch_info_type *arg)); @@ -1852,7 +1901,7 @@ struct reloc_howto_struct data section of the addend. The relocation function will subtract from the relocation value the address of the location being relocated. */ - boolean pc_relative; + bfd_boolean pc_relative; /* The bit position of the reloc value in the destination. The relocated value is left shifted by this amount. */ @@ -1888,21 +1937,20 @@ struct reloc_howto_struct USE_REL targets set this field to TRUE. Why this is so is peculiar to each particular target. For relocs that aren't used in partial links (e.g. GOT stuff) it doesn't matter what this is set to. */ - boolean partial_inplace; + bfd_boolean partial_inplace; - /* The src_mask selects which parts of the read in data - are to be used in the relocation sum. E.g., if this was an 8 bit - byte of data which we read and relocated, this would be - 0x000000ff. When we have relocs which have an addend, such as - sun4 extended relocs, the value in the offset part of a - relocating field is garbage so we never use it. In this case - the mask would be 0x00000000. */ + /* src_mask selects the part of the instruction (or data) to be used + in the relocation sum. If the target relocations don't have an + addend in the reloc, eg. ELF USE_REL, src_mask will normally equal + dst_mask to extract the addend from the section contents. If + relocations do have an addend in the reloc, eg. ELF USE_RELA, this + field should be zero. Non-zero values for ELF USE_RELA targets are + bogus as in those cases the value in the dst_mask part of the + section contents should be treated as garbage. */ bfd_vma src_mask; - /* The dst_mask selects which parts of the instruction are replaced - into the instruction. In most cases src_mask == dst_mask, - except in the above special case, where dst_mask would be - 0x000000ff, and src_mask would be 0x00000000. */ + /* dst_mask selects which parts of the instruction (or data) are + replaced with a relocated value. */ bfd_vma dst_mask; /* When some formats create PC relative instructions, they leave @@ -1911,18 +1959,18 @@ struct reloc_howto_struct be made just by adding in an ordinary offset (e.g., sun3 a.out). Some formats leave the displacement part of an instruction empty (e.g., m88k bcs); this flag signals the fact. */ - boolean pcrel_offset; + bfd_boolean pcrel_offset; }; #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ - NAME, false, 0, 0, IN) + NAME, FALSE, 0, 0, IN) #define EMPTY_HOWTO(C) \ - HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \ - NULL, false, 0, 0, false) + HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ + NULL, FALSE, 0, 0, FALSE) #define HOWTO_PREPARE(relocation, symbol) \ { \ @@ -2179,7 +2227,7 @@ GP register. */ BFD_RELOC_ALPHA_GPREL_LO16, /* Like BFD_RELOC_23_PCREL_S2, except that the source and target must -share a common GP, and the target address is adjusted for +share a common GP, and the target address is adjusted for STO_ALPHA_STD_GPLOAD. */ BFD_RELOC_ALPHA_BRSGP, @@ -2948,6 +2996,33 @@ into 22 bits. */ /* 32 bit rel. offset to GOT entry. */ BFD_RELOC_390_GOTENT, +/* 64 bit offset to GOT. */ + BFD_RELOC_390_GOTOFF64, + +/* 12-bit offset to symbol-entry within GOT, with PLT handling. */ + BFD_RELOC_390_GOTPLT12, + +/* 16-bit offset to symbol-entry within GOT, with PLT handling. */ + BFD_RELOC_390_GOTPLT16, + +/* 32-bit offset to symbol-entry within GOT, with PLT handling. */ + BFD_RELOC_390_GOTPLT32, + +/* 64-bit offset to symbol-entry within GOT, with PLT handling. */ + BFD_RELOC_390_GOTPLT64, + +/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling. */ + BFD_RELOC_390_GOTPLTENT, + +/* 16-bit rel. offset from the GOT to a PLT entry. */ + BFD_RELOC_390_PLTOFF16, + +/* 32-bit rel. offset from the GOT to a PLT entry. */ + BFD_RELOC_390_PLTOFF32, + +/* 64-bit rel. offset from the GOT to a PLT entry. */ + BFD_RELOC_390_PLTOFF64, + /* Scenix IP2K - 9-bit register number / data address */ BFD_RELOC_IP2K_FR9, @@ -3208,6 +3283,7 @@ to follow the 16K memory bank of 68HC12 /* Sony Xstormy16 Relocations. */ BFD_RELOC_XSTORMY16_REL_12, + BFD_RELOC_XSTORMY16_12, BFD_RELOC_XSTORMY16_24, BFD_RELOC_XSTORMY16_FPTR16, @@ -3215,6 +3291,18 @@ to follow the 16K memory bank of 68HC12 BFD_RELOC_VAX_GLOB_DAT, BFD_RELOC_VAX_JMP_SLOT, BFD_RELOC_VAX_RELATIVE, + +/* msp430 specific relocation codes */ + BFD_RELOC_MSP430_10_PCREL, + BFD_RELOC_MSP430_16_PCREL, + BFD_RELOC_MSP430_16, + BFD_RELOC_MSP430_16_PCREL_BYTE, + BFD_RELOC_MSP430_16_BYTE, + +/* IQ2000 Relocations. */ + BFD_RELOC_IQ2000_OFFSET_16, + BFD_RELOC_IQ2000_OFFSET_21, + BFD_RELOC_IQ2000_UHI16, BFD_RELOC_UNUSED }; typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; reloc_howto_type * @@ -3352,10 +3440,10 @@ asymbol; #define bfd_get_symtab_upper_bound(abfd) \ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) -boolean +bfd_boolean bfd_is_local_label PARAMS ((bfd *abfd, asymbol *sym)); -boolean +bfd_boolean bfd_is_local_label_name PARAMS ((bfd *abfd, const char *name)); #define bfd_is_local_label_name(abfd, name) \ @@ -3365,7 +3453,7 @@ bfd_is_local_label_name PARAMS ((bfd *ab BFD_SEND (abfd, _bfd_canonicalize_symtab,\ (abfd, location)) -boolean +bfd_boolean bfd_set_symtab PARAMS ((bfd *abfd, asymbol **location, unsigned int count)); void @@ -3383,13 +3471,13 @@ _bfd_generic_make_empty_symbol PARAMS (( int bfd_decode_symclass PARAMS ((asymbol *symbol)); -boolean +bfd_boolean bfd_is_undefined_symclass PARAMS ((int symclass)); void bfd_symbol_info PARAMS ((asymbol *symbol, symbol_info *ret)); -boolean +bfd_boolean bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym)); #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ @@ -3416,12 +3504,12 @@ struct _bfd /* Is the file descriptor being cached? That is, can it be closed as needed, and re-opened when accessed later? */ - boolean cacheable; + bfd_boolean cacheable; /* Marks whether there was a default target specified when the BFD was opened. This is used to select which matching algorithm to use to choose the back end. */ - boolean target_defaulted; + bfd_boolean target_defaulted; /* The caching routines use these to maintain a least-recently-used list of BFDs. */ @@ -3432,13 +3520,13 @@ struct _bfd ufile_ptr where; /* ... and here: (``once'' means at least once). */ - boolean opened_once; + bfd_boolean opened_once; /* Set if we have a locally maintained mtime value, rather than getting it from the file each time. */ - boolean mtime_set; + bfd_boolean mtime_set; - /* File modified time, if mtime_set is true. */ + /* File modified time, if mtime_set is TRUE. */ long mtime; /* Reserved for an unimplemented file locking extension. */ @@ -3467,7 +3555,7 @@ struct _bfd /* Remember when output has begun, to stop strange things from happening. */ - boolean output_has_begun; + bfd_boolean output_has_begun; /* A hash table for section names. */ struct bfd_hash_table section_htab; @@ -3502,7 +3590,7 @@ struct _bfd struct _bfd *my_archive; /* The containing archive BFD. */ struct _bfd *next; /* The next BFD in the archive. */ struct _bfd *archive_head; /* The first BFD in the archive. */ - boolean has_armap; + bfd_boolean has_armap; /* A chain of BFD structures involved in a link. */ struct _bfd *link_next; @@ -3624,7 +3712,7 @@ bfd_canonicalize_reloc PARAMS ((bfd *abf void bfd_set_reloc PARAMS ((bfd *abfd, asection *sec, arelent **rel, unsigned int count)); -boolean +bfd_boolean bfd_set_file_flags PARAMS ((bfd *abfd, flagword flags)); int @@ -3633,7 +3721,7 @@ bfd_get_arch_size PARAMS ((bfd *abfd)); int bfd_get_sign_extend_vma PARAMS ((bfd *abfd)); -boolean +bfd_boolean bfd_set_start_address PARAMS ((bfd *abfd, bfd_vma vma)); unsigned int @@ -3645,19 +3733,19 @@ bfd_set_gp_size PARAMS ((bfd *abfd, unsi bfd_vma bfd_scan_vma PARAMS ((const char *string, const char **end, int base)); -boolean +bfd_boolean bfd_copy_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd)); #define bfd_copy_private_bfd_data(ibfd, obfd) \ BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ (ibfd, obfd)) -boolean +bfd_boolean bfd_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd)); #define bfd_merge_private_bfd_data(ibfd, obfd) \ BFD_SEND (obfd, _bfd_merge_private_bfd_data, \ (ibfd, obfd)) -boolean +bfd_boolean bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags)); #define bfd_set_private_flags(abfd, flags) \ @@ -3737,9 +3825,9 @@ bfd_set_private_flags PARAMS ((bfd *abfd extern bfd_byte *bfd_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, - boolean, asymbol **)); + bfd_boolean, asymbol **)); -boolean +bfd_boolean bfd_alt_mach_code PARAMS ((bfd *abfd, int alternative)); struct bfd_preserve @@ -3754,7 +3842,7 @@ struct bfd_preserve struct bfd_hash_table section_htab; }; -boolean +bfd_boolean bfd_preserve_save PARAMS ((bfd *, struct bfd_preserve *)); void @@ -3767,7 +3855,7 @@ bfd_preserve_finish PARAMS ((bfd *, stru symindex bfd_get_next_mapent PARAMS ((bfd *abfd, symindex previous, carsym **sym)); -boolean +bfd_boolean bfd_set_archive_head PARAMS ((bfd *output, bfd *new_head)); bfd * @@ -3780,7 +3868,7 @@ bfd_core_file_failing_command PARAMS ((b int bfd_core_file_failing_signal PARAMS ((bfd *abfd)); -boolean +bfd_boolean core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd)); /* Extracted from targets.c. */ @@ -3901,10 +3989,10 @@ typedef struct bfd_target const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *)); /* Set the format of a file being written. */ - boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *)); + bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *)); /* Write cached information into a file being written, at <>. */ - boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); + bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); /* Generic entry points. */ @@ -3916,15 +4004,15 @@ CONCAT2 (NAME,_get_section_contents), \ CONCAT2 (NAME,_get_section_contents_in_window) /* Called when the BFD is being closed to do any necessary cleanup. */ - boolean (*_close_and_cleanup) PARAMS ((bfd *)); + bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *)); /* Ask the BFD to free all cached information. */ - boolean (*_bfd_free_cached_info) PARAMS ((bfd *)); + bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *)); /* Called when a new section is created. */ - boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr)); + bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr)); /* Read the contents of a section. */ - boolean (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR, - file_ptr, bfd_size_type)); - boolean (*_bfd_get_section_contents_in_window) + bfd_boolean (*_bfd_get_section_contents) + PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); + bfd_boolean (*_bfd_get_section_contents_in_window) PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type)); /* Entry points to copy private data. */ @@ -3937,32 +4025,32 @@ CONCAT2 (NAME,_bfd_set_private_flags), \ CONCAT2 (NAME,_bfd_print_private_bfd_data) \ /* Called to copy BFD general private data from one object file to another. */ - boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)); + bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)); /* Called to merge BFD general private data from one object file to a common output file when linking. */ - boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *)); + bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *)); /* Called to copy BFD private section data from one object file to another. */ - boolean (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr, - bfd *, sec_ptr)); + bfd_boolean (*_bfd_copy_private_section_data) + PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr)); /* Called to copy BFD private symbol data from one symbol to another. */ - boolean (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *, - bfd *, asymbol *)); + bfd_boolean (*_bfd_copy_private_symbol_data) + PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); /* Called to set private backend flags. */ - boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword)); + bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword)); /* Called to print private BFD data. */ - boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)); + bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)); /* Core file entry points. */ #define BFD_JUMP_TABLE_CORE(NAME) \ CONCAT2 (NAME,_core_file_failing_command), \ CONCAT2 (NAME,_core_file_failing_signal), \ CONCAT2 (NAME,_core_file_matches_executable_p) - char * (*_core_file_failing_command) PARAMS ((bfd *)); - int (*_core_file_failing_signal) PARAMS ((bfd *)); - boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *)); + char * (*_core_file_failing_command) PARAMS ((bfd *)); + int (*_core_file_failing_signal) PARAMS ((bfd *)); + bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *)); /* Archive entry points. */ #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ @@ -3976,19 +4064,19 @@ CONCAT2 (NAME,_openr_next_archived_file) CONCAT2 (NAME,_get_elt_at_index), \ CONCAT2 (NAME,_generic_stat_arch_elt), \ CONCAT2 (NAME,_update_armap_timestamp) - boolean (*_bfd_slurp_armap) PARAMS ((bfd *)); - boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *)); - boolean (*_bfd_construct_extended_name_table) + bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *)); + bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *)); + bfd_boolean (*_bfd_construct_extended_name_table) PARAMS ((bfd *, char **, bfd_size_type *, const char **)); - void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *)); - boolean (*write_armap) + void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *)); + bfd_boolean (*write_armap) PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); - PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *)); - bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *)); + PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *)); + bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *)); #define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i)) - bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex)); - int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *)); - boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *)); + bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex)); + int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *)); + bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *)); /* Entry points used for symbols. */ #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ @@ -4003,59 +4091,57 @@ CONCAT2 (NAME,_find_nearest_line), \ CONCAT2 (NAME,_bfd_make_debug_symbol), \ CONCAT2 (NAME,_read_minisymbols), \ CONCAT2 (NAME,_minisymbol_to_symbol) - long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *)); - long (*_bfd_canonicalize_symtab) PARAMS ((bfd *, + long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *)); + long (*_bfd_canonicalize_symtab) PARAMS ((bfd *, struct symbol_cache_entry **)); struct symbol_cache_entry * - (*_bfd_make_empty_symbol) PARAMS ((bfd *)); - void (*_bfd_print_symbol) PARAMS ((bfd *, PTR, - struct symbol_cache_entry *, - bfd_print_symbol_type)); + (*_bfd_make_empty_symbol) PARAMS ((bfd *)); + void (*_bfd_print_symbol) + PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type)); #define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e)) - void (*_bfd_get_symbol_info) PARAMS ((bfd *, - struct symbol_cache_entry *, - symbol_info *)); + void (*_bfd_get_symbol_info) + PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *)); #define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e)) - boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *)); + bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *)); - alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *)); - boolean (*_bfd_find_nearest_line) + alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *)); + bfd_boolean (*_bfd_find_nearest_line) PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma, const char **, const char **, unsigned int *)); /* Back-door to allow format-aware applications to create debug symbols while using BFD for everything else. Currently used by the assembler when creating COFF files. */ - asymbol *(*_bfd_make_debug_symbol) PARAMS ((bfd *, void *, - unsigned long size)); + asymbol * (*_bfd_make_debug_symbol) + PARAMS ((bfd *, void *, unsigned long size)); #define bfd_read_minisymbols(b, d, m, s) \ BFD_SEND (b, _read_minisymbols, (b, d, m, s)) - long (*_read_minisymbols) PARAMS ((bfd *, boolean, PTR *, - unsigned int *)); + long (*_read_minisymbols) + PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); #define bfd_minisymbol_to_symbol(b, d, m, f) \ BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) - asymbol *(*_minisymbol_to_symbol) PARAMS ((bfd *, boolean, const PTR, - asymbol *)); + asymbol * (*_minisymbol_to_symbol) + PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); /* Routines for relocs. */ #define BFD_JUMP_TABLE_RELOCS(NAME) \ CONCAT2 (NAME,_get_reloc_upper_bound), \ CONCAT2 (NAME,_canonicalize_reloc), \ CONCAT2 (NAME,_bfd_reloc_type_lookup) - long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr)); - long (*_bfd_canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, - struct symbol_cache_entry **)); + long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr)); + long (*_bfd_canonicalize_reloc) + PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **)); /* See documentation on reloc types. */ reloc_howto_type * - (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); + (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); /* Routines used when writing an object file. */ #define BFD_JUMP_TABLE_WRITE(NAME) \ CONCAT2 (NAME,_set_arch_mach), \ CONCAT2 (NAME,_set_section_contents) - boolean (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture, - unsigned long)); - boolean (*_bfd_set_section_contents) PARAMS ((bfd *, sec_ptr, PTR, - file_ptr, bfd_size_type)); + bfd_boolean (*_bfd_set_arch_mach) + PARAMS ((bfd *, enum bfd_architecture, unsigned long)); + bfd_boolean (*_bfd_set_section_contents) + PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); /* Routines used by the linker. */ #define BFD_JUMP_TABLE_LINK(NAME) \ @@ -4071,42 +4157,46 @@ CONCAT2 (NAME,_bfd_link_split_section), CONCAT2 (NAME,_bfd_gc_sections), \ CONCAT2 (NAME,_bfd_merge_sections), \ CONCAT2 (NAME,_bfd_discard_group) - int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean)); - bfd_byte *(*_bfd_get_relocated_section_contents) + int (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean)); + bfd_byte * (*_bfd_get_relocated_section_contents) PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, struct symbol_cache_entry **)); + bfd_byte *, bfd_boolean, struct symbol_cache_entry **)); - boolean (*_bfd_relax_section) - PARAMS ((bfd *, struct sec *, struct bfd_link_info *, boolean *)); + bfd_boolean (*_bfd_relax_section) + PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *)); /* Create a hash table for the linker. Different backends store different information in this table. */ - struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *)); + struct bfd_link_hash_table * + (*_bfd_link_hash_table_create) PARAMS ((bfd *)); /* Release the memory associated with the linker hash table. */ - void (*_bfd_link_hash_table_free) PARAMS ((struct bfd_link_hash_table *)); + void (*_bfd_link_hash_table_free) + PARAMS ((struct bfd_link_hash_table *)); /* Add symbols from this object file into the hash table. */ - boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_link_add_symbols) + PARAMS ((bfd *, struct bfd_link_info *)); /* Indicate that we are only retrieving symbol values from this section. */ - void (*_bfd_link_just_syms) PARAMS ((asection *, struct bfd_link_info *)); + void (*_bfd_link_just_syms) + PARAMS ((asection *, struct bfd_link_info *)); /* Do a link based on the link_order structures attached to each section of the BFD. */ - boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); /* Should this section be split up into smaller pieces during linking. */ - boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); + bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); /* Remove sections that are not referenced from the output. */ - boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); /* Attempt to merge SEC_MERGE sections. */ - boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); + bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); /* Discard members of a group. */ - boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *)); + bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *)); /* Routines to handle dynamic symbols and relocs. */ #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ @@ -4115,14 +4205,14 @@ CONCAT2 (NAME,_canonicalize_dynamic_symt CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \ CONCAT2 (NAME,_canonicalize_dynamic_reloc) /* Get the amount of memory required to hold the dynamic symbols. */ - long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); + long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); /* Read in the dynamic symbols. */ - long (*_bfd_canonicalize_dynamic_symtab) + long (*_bfd_canonicalize_dynamic_symtab) PARAMS ((bfd *, struct symbol_cache_entry **)); /* Get the amount of memory required to hold the dynamic relocs. */ - long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); + long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); /* Read in the dynamic relocs. */ - long (*_bfd_canonicalize_dynamic_reloc) + long (*_bfd_canonicalize_dynamic_reloc) PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); /* Opposite endian version of this target. */ @@ -4134,7 +4224,7 @@ CONCAT2 (NAME,_canonicalize_dynamic_relo } bfd_target; -boolean +bfd_boolean bfd_set_default_target PARAMS ((const char *name)); const bfd_target * @@ -4147,20 +4237,20 @@ const bfd_target * bfd_search_for_target PARAMS ((int (* search_func) (const bfd_target *, void *), void *)); /* Extracted from format.c. */ -boolean +bfd_boolean bfd_check_format PARAMS ((bfd *abfd, bfd_format format)); -boolean +bfd_boolean bfd_check_format_matches PARAMS ((bfd *abfd, bfd_format format, char ***matching)); -boolean +bfd_boolean bfd_set_format PARAMS ((bfd *abfd, bfd_format format)); const char * bfd_format_string PARAMS ((bfd_format format)); /* Extracted from linker.c. */ -boolean +bfd_boolean bfd_link_split_section PARAMS ((bfd *abfd, asection *sec)); #define bfd_link_split_section(abfd, sec) \ diff -uprN binutils-2.13.90.0.16/bfd/bfd.c binutils-2.13.90.0.18/bfd/bfd.c --- binutils-2.13.90.0.16/bfd/bfd.c Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/bfd.c Mon Dec 16 12:22:51 2002 @@ -53,12 +53,12 @@ CODE_FRAGMENT . . {* Is the file descriptor being cached? That is, can it be closed as . needed, and re-opened when accessed later? *} -. boolean cacheable; +. bfd_boolean cacheable; . . {* Marks whether there was a default target specified when the . BFD was opened. This is used to select which matching algorithm . to use to choose the back end. *} -. boolean target_defaulted; +. bfd_boolean target_defaulted; . . {* The caching routines use these to maintain a . least-recently-used list of BFDs. *} @@ -69,13 +69,13 @@ CODE_FRAGMENT . ufile_ptr where; . . {* ... and here: (``once'' means at least once). *} -. boolean opened_once; +. bfd_boolean opened_once; . . {* Set if we have a locally maintained mtime value, rather than . getting it from the file each time. *} -. boolean mtime_set; +. bfd_boolean mtime_set; . -. {* File modified time, if mtime_set is true. *} +. {* File modified time, if mtime_set is TRUE. *} . long mtime; . . {* Reserved for an unimplemented file locking extension. *} @@ -104,7 +104,7 @@ CODE_FRAGMENT . . {* Remember when output has begun, to stop strange things . from happening. *} -. boolean output_has_begun; +. bfd_boolean output_has_begun; . . {* A hash table for section names. *} . struct bfd_hash_table section_htab; @@ -139,7 +139,7 @@ CODE_FRAGMENT . struct _bfd *my_archive; {* The containing archive BFD. *} . struct _bfd *next; {* The next BFD in the archive. *} . struct _bfd *archive_head; {* The first BFD in the archive. *} -. boolean has_armap; +. bfd_boolean has_armap; . . {* A chain of BFD structures involved in a link. *} . struct _bfd *link_next; @@ -659,7 +659,7 @@ FUNCTION bfd_set_file_flags SYNOPSIS - boolean bfd_set_file_flags(bfd *abfd, flagword flags); + bfd_boolean bfd_set_file_flags(bfd *abfd, flagword flags); DESCRIPTION Set the flag word in the BFD @var{abfd} to the value @var{flags}. @@ -674,7 +674,7 @@ DESCRIPTION */ -boolean +bfd_boolean bfd_set_file_flags (abfd, flags) bfd *abfd; flagword flags; @@ -682,23 +682,23 @@ bfd_set_file_flags (abfd, flags) if (abfd->format != bfd_object) { bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } if (bfd_read_p (abfd)) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } bfd_get_file_flags (abfd) = flags; if ((flags & bfd_applicable_file_flags (abfd)) != flags) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } - return true; + return TRUE; } void @@ -810,22 +810,22 @@ FUNCTION bfd_set_start_address SYNOPSIS - boolean bfd_set_start_address(bfd *abfd, bfd_vma vma); + bfd_boolean bfd_set_start_address(bfd *abfd, bfd_vma vma); DESCRIPTION Make @var{vma} the entry point of output BFD @var{abfd}. RETURNS - Returns <> on success, <> otherwise. + Returns <> on success, <> otherwise. */ -boolean +bfd_boolean bfd_set_start_address (abfd, vma) bfd *abfd; bfd_vma vma; { abfd->start_address = vma; - return true; + return TRUE; } /* @@ -1013,11 +1013,11 @@ FUNCTION bfd_copy_private_bfd_data SYNOPSIS - boolean bfd_copy_private_bfd_data(bfd *ibfd, bfd *obfd); + bfd_boolean bfd_copy_private_bfd_data(bfd *ibfd, bfd *obfd); DESCRIPTION Copy private BFD information from the BFD @var{ibfd} to the - the BFD @var{obfd}. Return <> on success, <> on error. + the BFD @var{obfd}. Return <> on success, <> on error. Possible error returns are: o <> - @@ -1034,12 +1034,12 @@ FUNCTION bfd_merge_private_bfd_data SYNOPSIS - boolean bfd_merge_private_bfd_data(bfd *ibfd, bfd *obfd); + bfd_boolean bfd_merge_private_bfd_data(bfd *ibfd, bfd *obfd); DESCRIPTION Merge private BFD information from the BFD @var{ibfd} to the - the output file BFD @var{obfd} when linking. Return <> - on success, <> on error. Possible error returns are: + the output file BFD @var{obfd} when linking. Return <> + on success, <> on error. Possible error returns are: o <> - Not enough memory exists to create private data for @var{obfd}. @@ -1055,11 +1055,11 @@ FUNCTION bfd_set_private_flags SYNOPSIS - boolean bfd_set_private_flags(bfd *abfd, flagword flags); + bfd_boolean bfd_set_private_flags(bfd *abfd, flagword flags); DESCRIPTION Set private BFD flag information in the BFD @var{abfd}. - Return <> on success, <> on error. Possible error + Return <> on success, <> on error. Possible error returns are: o <> - @@ -1152,7 +1152,7 @@ DESCRIPTION .extern bfd_byte *bfd_get_relocated_section_contents . PARAMS ((bfd *, struct bfd_link_info *, . struct bfd_link_order *, bfd_byte *, -. boolean, asymbol **)); +. bfd_boolean, asymbol **)); . */ @@ -1164,12 +1164,12 @@ bfd_get_relocated_section_contents (abfd struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { bfd *abfd2; bfd_byte *(*fn) PARAMS ((bfd *, struct bfd_link_info *, - struct bfd_link_order *, bfd_byte *, boolean, + struct bfd_link_order *, bfd_byte *, bfd_boolean, asymbol **)); if (link_order->type == bfd_indirect_link_order) @@ -1188,17 +1188,17 @@ bfd_get_relocated_section_contents (abfd /* Record information about an ELF program header. */ -boolean +bfd_boolean bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at, includes_filehdr, includes_phdrs, count, secs) bfd *abfd; unsigned long type; - boolean flags_valid; + bfd_boolean flags_valid; flagword flags; - boolean at_valid; + bfd_boolean at_valid; bfd_vma at; - boolean includes_filehdr; - boolean includes_phdrs; + bfd_boolean includes_filehdr; + bfd_boolean includes_phdrs; unsigned int count; asection **secs; { @@ -1206,13 +1206,13 @@ bfd_record_phdr (abfd, type, flags_valid bfd_size_type amt; if (bfd_get_flavour (abfd) != bfd_target_elf_flavour) - return true; + return TRUE; amt = sizeof (struct elf_segment_map); amt += ((bfd_size_type) count - 1) * sizeof (asection *); m = (struct elf_segment_map *) bfd_alloc (abfd, amt); if (m == NULL) - return false; + return FALSE; m->next = NULL; m->p_type = type; @@ -1230,7 +1230,7 @@ bfd_record_phdr (abfd, type, flags_valid ; *pm = m; - return true; + return TRUE; } void @@ -1262,7 +1262,7 @@ FUNCTION bfd_alt_mach_code SYNOPSIS - boolean bfd_alt_mach_code(bfd *abfd, int alternative); + bfd_boolean bfd_alt_mach_code(bfd *abfd, int alternative); DESCRIPTION @@ -1273,7 +1273,7 @@ DESCRIPTION machine codes. */ -boolean +bfd_boolean bfd_alt_mach_code (abfd, alternative) bfd *abfd; int alternative; @@ -1291,25 +1291,25 @@ bfd_alt_mach_code (abfd, alternative) case 1: code = get_elf_backend_data (abfd)->elf_machine_alt1; if (code == 0) - return false; + return FALSE; break; case 2: code = get_elf_backend_data (abfd)->elf_machine_alt2; if (code == 0) - return false; + return FALSE; break; default: - return false; + return FALSE; } elf_elfheader (abfd)->e_machine = code; - return true; + return TRUE; } - return false; + return FALSE; } /* @@ -1334,7 +1334,7 @@ FUNCTION bfd_preserve_save SYNOPSIS - boolean bfd_preserve_save (bfd *, struct bfd_preserve *); + bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); DESCRIPTION When testing an object for compatibility with a particular @@ -1349,7 +1349,7 @@ DESCRIPTION */ -boolean +bfd_boolean bfd_preserve_save (abfd, preserve) bfd *abfd; struct bfd_preserve *preserve; @@ -1363,7 +1363,7 @@ bfd_preserve_save (abfd, preserve) preserve->section_htab = abfd->section_htab; if (! bfd_hash_table_init (&abfd->section_htab, bfd_section_hash_newfunc)) - return false; + return FALSE; abfd->tdata.any = NULL; abfd->arch_info = &bfd_default_arch_struct; @@ -1372,7 +1372,7 @@ bfd_preserve_save (abfd, preserve) abfd->section_tail = &abfd->sections; abfd->section_count = 0; - return true; + return TRUE; } /* diff -uprN binutils-2.13.90.0.16/bfd/bfdwin.c binutils-2.13.90.0.18/bfd/bfdwin.c --- binutils-2.13.90.0.16/bfd/bfdwin.c Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/bfdwin.c Mon Dec 16 12:22:51 2002 @@ -107,13 +107,13 @@ bfd_free_window (windowp) static int ok_to_map = 1; -boolean +bfd_boolean bfd_get_file_window (abfd, offset, size, windowp, writable) bfd *abfd; file_ptr offset; bfd_size_type size; bfd_window *windowp; - boolean writable; + bfd_boolean writable; { static size_t pagesize; bfd_window_internal *i = windowp->i; @@ -137,7 +137,7 @@ bfd_get_file_window (abfd, offset, size, bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal))); windowp->i = i; if (i == 0) - return false; + return FALSE; i->data = 0; } #ifdef HAVE_MMAP @@ -189,7 +189,7 @@ bfd_get_file_window (abfd, offset, size, windowp->data = 0; if (debug_windows) fprintf (stderr, "\t\tmmap failed!\n"); - return false; + return FALSE; } if (debug_windows) fprintf (stderr, "\n\tmapped %ld at %p, offset is %ld\n", @@ -198,7 +198,7 @@ bfd_get_file_window (abfd, offset, size, windowp->data = (PTR) ((bfd_byte *) i->data + offset2); windowp->size = size; i->mapped = 1; - return true; + return TRUE; } else if (debug_windows) { @@ -229,14 +229,14 @@ bfd_get_file_window (abfd, offset, size, if (i->data == NULL) { if (size_to_alloc == 0) - return true; - return false; + return TRUE; + return FALSE; } if (bfd_seek (abfd, offset, SEEK_SET) != 0) - return false; + return FALSE; i->size = bfd_bread (i->data, size, abfd); if (i->size != size) - return false; + return FALSE; i->mapped = 0; #ifdef HAVE_MPROTECT if (!writable) @@ -249,7 +249,7 @@ bfd_get_file_window (abfd, offset, size, #endif windowp->data = i->data; windowp->size = i->size; - return true; + return TRUE; } #endif /* USE_MMAP */ diff -uprN binutils-2.13.90.0.16/bfd/binary.c binutils-2.13.90.0.18/bfd/binary.c --- binutils-2.13.90.0.16/bfd/binary.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/binary.c Mon Dec 16 12:22:51 2002 @@ -41,17 +41,17 @@ Foundation, Inc., 59 Temple Place - Suit a start symbol, an end symbol, and an absolute length symbol. */ #define BIN_SYMS 3 -static boolean binary_mkobject PARAMS ((bfd *)); +static bfd_boolean binary_mkobject PARAMS ((bfd *)); static const bfd_target *binary_object_p PARAMS ((bfd *)); -static boolean binary_get_section_contents +static bfd_boolean binary_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); static long binary_get_symtab_upper_bound PARAMS ((bfd *)); static char *mangle_name PARAMS ((bfd *, char *)); static long binary_get_symtab PARAMS ((bfd *, asymbol **)); static void binary_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -static boolean binary_set_section_contents +static bfd_boolean binary_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static int binary_sizeof_headers PARAMS ((bfd *, boolean)); +static int binary_sizeof_headers PARAMS ((bfd *, bfd_boolean)); /* Set by external programs - specifies the BFD architecture to use when creating binary BFDs. */ @@ -59,11 +59,11 @@ enum bfd_architecture bfd_external_binar /* Create a binary object. Invoked via bfd_set_format. */ -static boolean +static bfd_boolean binary_mkobject (abfd) bfd *abfd ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Any file may be considered to be a binary file, provided the target @@ -119,7 +119,7 @@ binary_object_p (abfd) /* Get contents of the only section. */ -static boolean +static bfd_boolean binary_get_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section ATTRIBUTE_UNUSED; @@ -129,8 +129,8 @@ binary_get_section_contents (abfd, secti { if (bfd_seek (abfd, offset, SEEK_SET) != 0 || bfd_bread (location, count, abfd) != count) - return false; - return true; + return FALSE; + return TRUE; } /* Return the amount of memory needed to read the symbol table. */ @@ -185,7 +185,7 @@ binary_get_symtab (abfd, alocation) syms = (asymbol *) bfd_alloc (abfd, amt); if (syms == NULL) - return (long) false; + return 0; /* Start symbol. */ syms[0].the_bfd = abfd; @@ -250,7 +250,7 @@ binary_get_symbol_info (ignore_abfd, sym /* Write section contents of a binary file. */ -static boolean +static bfd_boolean binary_set_section_contents (abfd, sec, data, offset, size) bfd *abfd; asection *sec; @@ -259,18 +259,18 @@ binary_set_section_contents (abfd, sec, bfd_size_type size; { if (size == 0) - return true; + return TRUE; if (! abfd->output_has_begun) { - boolean found_low; + bfd_boolean found_low; bfd_vma low; asection *s; /* The lowest section LMA sets the virtual address of the start of the file. We use this to set the file position of all the sections. */ - found_low = false; + found_low = FALSE; low = 0; for (s = abfd->sections; s != NULL; s = s->next) if (((s->flags @@ -280,7 +280,7 @@ binary_set_section_contents (abfd, sec, && (! found_low || s->lma < low)) { low = s->lma; - found_low = true; + found_low = TRUE; } for (s = abfd->sections; s != NULL; s = s->next) @@ -308,16 +308,16 @@ binary_set_section_contents (abfd, sec, (unsigned long) s->filepos); } - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; } /* We don't want to output anything for a section that is neither loaded nor allocated. The contents of such a section are not meaningful in the binary format. */ if ((sec->flags & (SEC_LOAD | SEC_ALLOC)) == 0) - return true; + return TRUE; if ((sec->flags & SEC_NEVER_LOAD) != 0) - return true; + return TRUE; return _bfd_generic_set_section_contents (abfd, sec, data, offset, size); } @@ -327,7 +327,7 @@ binary_set_section_contents (abfd, sec, static int binary_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } diff -uprN binutils-2.13.90.0.16/bfd/bout.c binutils-2.13.90.0.18/bfd/bout.c --- binutils-2.13.90.0.16/bfd/bout.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/bout.c Mon Dec 16 12:22:51 2002 @@ -30,30 +30,59 @@ Foundation, Inc., 59 Temple Place - Suit #include "aout/stab_gnu.h" #include "libaout.h" /* BFD a.out internal data structures. */ -static int aligncode PARAMS ((bfd *abfd, asection *input_section, arelent *r, unsigned int shrink)); -static void perform_slip PARAMS ((bfd *abfd, unsigned int slip, asection *input_section, bfd_vma value)); -static boolean b_out_squirt_out_relocs PARAMS ((bfd *abfd, asection *section)); -static const bfd_target * b_out_callback PARAMS ((bfd *)); -static bfd_reloc_status_type calljx_callback PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR src, PTR dst, asection *)); -static bfd_reloc_status_type callj_callback PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR data, unsigned int srcidx, unsigned int dstidx, asection *, boolean)); -static bfd_vma get_value PARAMS ((arelent *, struct bfd_link_info *, asection *)); -static int abs32code PARAMS ((bfd *, asection *, arelent *, unsigned int, struct bfd_link_info *)); -static boolean b_out_bfd_relax_section PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); -static bfd_byte * b_out_bfd_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, boolean, asymbol **)); -static int b_out_sizeof_headers PARAMS ((bfd *, boolean)); -static boolean b_out_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -static boolean b_out_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static long b_out_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr)); -static long b_out_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); -static boolean b_out_slurp_reloc_table PARAMS ((bfd *, sec_ptr, asymbol **)); -static reloc_howto_type * b_out_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static boolean b_out_write_object_contents PARAMS ((bfd *)); -static int b_out_symbol_cmp PARAMS ((const void *, const void *)); -static boolean b_out_mkobject PARAMS ((bfd *)); -static const bfd_target * b_out_object_p PARAMS ((bfd *)); - -void bout_swap_exec_header_in PARAMS ((bfd *, struct external_exec *, struct internal_exec *)); -void bout_swap_exec_header_out PARAMS ((bfd *, struct internal_exec *, struct external_exec *)); +static int aligncode + PARAMS ((bfd *abfd, asection *input_section, arelent *r, + unsigned int shrink)); +static void perform_slip + PARAMS ((bfd *abfd, unsigned int slip, asection *input_section, + bfd_vma value)); +static bfd_boolean b_out_squirt_out_relocs + PARAMS ((bfd *abfd, asection *section)); +static const bfd_target *b_out_callback + PARAMS ((bfd *)); +static bfd_reloc_status_type calljx_callback + PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR src, PTR dst, + asection *)); +static bfd_reloc_status_type callj_callback + PARAMS ((bfd *, struct bfd_link_info *, arelent *, PTR data, + unsigned int srcidx, unsigned int dstidx, asection *, bfd_boolean)); +static bfd_vma get_value + PARAMS ((arelent *, struct bfd_link_info *, asection *)); +static int abs32code + PARAMS ((bfd *, asection *, arelent *, unsigned int, + struct bfd_link_info *)); +static bfd_boolean b_out_bfd_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_byte *b_out_bfd_get_relocated_section_contents + PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, + bfd_boolean, asymbol **)); +static int b_out_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean b_out_set_arch_mach + PARAMS ((bfd *, enum bfd_architecture, unsigned long)); +static bfd_boolean b_out_set_section_contents + PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); +static long b_out_get_reloc_upper_bound + PARAMS ((bfd *, sec_ptr)); +static long b_out_canonicalize_reloc + PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); +static bfd_boolean b_out_slurp_reloc_table + PARAMS ((bfd *, sec_ptr, asymbol **)); +static reloc_howto_type *b_out_bfd_reloc_type_lookup + PARAMS ((bfd *, bfd_reloc_code_real_type)); +static bfd_boolean b_out_write_object_contents + PARAMS ((bfd *)); +static int b_out_symbol_cmp + PARAMS ((const void *, const void *)); +static bfd_boolean b_out_mkobject + PARAMS ((bfd *)); +static const bfd_target *b_out_object_p + PARAMS ((bfd *)); + +void bout_swap_exec_header_in + PARAMS ((bfd *, struct external_exec *, struct internal_exec *)); +void bout_swap_exec_header_out + PARAMS ((bfd *, struct internal_exec *, struct external_exec *)); /* Swaps the information in an executable header taken from a raw byte stream memory image, into the internal exec_header structure. */ @@ -201,7 +230,7 @@ struct bout_data_struct struct internal_exec e; }; -static boolean +static bfd_boolean b_out_mkobject (abfd) bfd *abfd; { @@ -210,7 +239,7 @@ b_out_mkobject (abfd) rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, amt); if (rawptr == NULL) - return false; + return FALSE; abfd->tdata.bout_data = rawptr; exec_hdr (abfd) = &rawptr->e; @@ -219,7 +248,7 @@ b_out_mkobject (abfd) obj_datasec (abfd) = (asection *) NULL; obj_bsssec (abfd) = (asection *) NULL; - return true; + return TRUE; } static int @@ -253,7 +282,7 @@ b_out_symbol_cmp (a_ptr, b_ptr) return 0; } -static boolean +static bfd_boolean b_out_write_object_contents (abfd) bfd *abfd; { @@ -261,7 +290,7 @@ b_out_write_object_contents (abfd) bfd_size_type amt; if (! aout_32_make_sections (abfd)) - return false; + return FALSE; exec_hdr (abfd)->a_info = BMAGIC; @@ -287,7 +316,7 @@ b_out_write_object_contents (abfd) amt = EXEC_BYTES_SIZE; if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 || bfd_bwrite ((PTR) &swapped_hdr, amt, abfd) != amt) - return false; + return FALSE; /* Now write out reloc info, followed by syms and strings */ if (bfd_get_symcount (abfd) != 0) @@ -319,23 +348,25 @@ b_out_write_object_contents (abfd) /* Back to your regularly scheduled program. */ if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*exec_hdr(abfd))), SEEK_SET) != 0) - return false; + return FALSE; if (! aout_32_write_syms (abfd)) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_TROFF(*exec_hdr(abfd))), SEEK_SET) != 0) - return false; + return FALSE; - if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd))) return false; + if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd))) + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_DROFF(*exec_hdr(abfd))), SEEK_SET) != 0) - return false; + return FALSE; - if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd))) return false; + if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd))) + return FALSE; } - return true; + return TRUE; } /* Some reloc hackery. */ @@ -400,7 +431,7 @@ callj_callback (abfd, link_info, reloc_e unsigned int srcidx; unsigned int dstidx; asection *input_section; - boolean shrinking; + bfd_boolean shrinking; { int word = bfd_get_32 (abfd, (bfd_byte *) data + srcidx); asymbol *symbol_in = *(reloc_entry->sym_ptr_ptr); @@ -467,33 +498,33 @@ callj_callback (abfd, link_info, reloc_e #define ALIGNER 10 #define ALIGNDONE 11 static reloc_howto_type howto_reloc_callj = -HOWTO(CALLJ, 0, 2, 24, true, 0, complain_overflow_signed, 0,"callj", true, 0x00ffffff, 0x00ffffff,false); +HOWTO(CALLJ, 0, 2, 24, TRUE, 0, complain_overflow_signed, 0,"callj", TRUE, 0x00ffffff, 0x00ffffff,FALSE); static reloc_howto_type howto_reloc_abs32 = -HOWTO(ABS32, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"abs32", true, 0xffffffff,0xffffffff,false); +HOWTO(ABS32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"abs32", TRUE, 0xffffffff,0xffffffff,FALSE); static reloc_howto_type howto_reloc_pcrel24 = -HOWTO(PCREL24, 0, 2, 24, true, 0, complain_overflow_signed,0,"pcrel24", true, 0x00ffffff,0x00ffffff,false); +HOWTO(PCREL24, 0, 2, 24, TRUE, 0, complain_overflow_signed,0,"pcrel24", TRUE, 0x00ffffff,0x00ffffff,FALSE); static reloc_howto_type howto_reloc_pcrel13 = -HOWTO(PCREL13, 0, 2, 13, true, 0, complain_overflow_signed,0,"pcrel13", true, 0x00001fff,0x00001fff,false); +HOWTO(PCREL13, 0, 2, 13, TRUE, 0, complain_overflow_signed,0,"pcrel13", TRUE, 0x00001fff,0x00001fff,FALSE); static reloc_howto_type howto_reloc_abs32codeshrunk = -HOWTO(ABS32CODE_SHRUNK, 0, 2, 24, true, 0, complain_overflow_signed, 0,"callx->callj", true, 0x00ffffff, 0x00ffffff,false); +HOWTO(ABS32CODE_SHRUNK, 0, 2, 24, TRUE, 0, complain_overflow_signed, 0,"callx->callj", TRUE, 0x00ffffff, 0x00ffffff,FALSE); static reloc_howto_type howto_reloc_abs32code = -HOWTO(ABS32CODE, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"callx", true, 0xffffffff,0xffffffff,false); +HOWTO(ABS32CODE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"callx", TRUE, 0xffffffff,0xffffffff,FALSE); static reloc_howto_type howto_align_table[] = { - HOWTO (ALIGNER, 0, 0x1, 0, false, 0, complain_overflow_dont, 0, "align16", false, 0, 0, false), - HOWTO (ALIGNER, 0, 0x3, 0, false, 0, complain_overflow_dont, 0, "align32", false, 0, 0, false), - HOWTO (ALIGNER, 0, 0x7, 0, false, 0, complain_overflow_dont, 0, "align64", false, 0, 0, false), - HOWTO (ALIGNER, 0, 0xf, 0, false, 0, complain_overflow_dont, 0, "align128", false, 0, 0, false), + HOWTO (ALIGNER, 0, 0x1, 0, FALSE, 0, complain_overflow_dont, 0, "align16", FALSE, 0, 0, FALSE), + HOWTO (ALIGNER, 0, 0x3, 0, FALSE, 0, complain_overflow_dont, 0, "align32", FALSE, 0, 0, FALSE), + HOWTO (ALIGNER, 0, 0x7, 0, FALSE, 0, complain_overflow_dont, 0, "align64", FALSE, 0, 0, FALSE), + HOWTO (ALIGNER, 0, 0xf, 0, FALSE, 0, complain_overflow_dont, 0, "align128", FALSE, 0, 0, FALSE), }; static reloc_howto_type howto_done_align_table[] = { - HOWTO (ALIGNDONE, 0x1, 0x1, 0, false, 0, complain_overflow_dont, 0, "donealign16", false, 0, 0, false), - HOWTO (ALIGNDONE, 0x3, 0x3, 0, false, 0, complain_overflow_dont, 0, "donealign32", false, 0, 0, false), - HOWTO (ALIGNDONE, 0x7, 0x7, 0, false, 0, complain_overflow_dont, 0, "donealign64", false, 0, 0, false), - HOWTO (ALIGNDONE, 0xf, 0xf, 0, false, 0, complain_overflow_dont, 0, "donealign128", false, 0, 0, false), + HOWTO (ALIGNDONE, 0x1, 0x1, 0, FALSE, 0, complain_overflow_dont, 0, "donealign16", FALSE, 0, 0, FALSE), + HOWTO (ALIGNDONE, 0x3, 0x3, 0, FALSE, 0, complain_overflow_dont, 0, "donealign32", FALSE, 0, 0, FALSE), + HOWTO (ALIGNDONE, 0x7, 0x7, 0, FALSE, 0, complain_overflow_dont, 0, "donealign64", FALSE, 0, 0, FALSE), + HOWTO (ALIGNDONE, 0xf, 0xf, 0, FALSE, 0, complain_overflow_dont, 0, "donealign128", FALSE, 0, 0, FALSE), }; static reloc_howto_type * @@ -517,7 +548,7 @@ b_out_bfd_reloc_type_lookup (abfd, code) /* Allocate enough room for all the reloc entries, plus pointers to them all. */ -static boolean +static bfd_boolean b_out_slurp_reloc_table (abfd, asect, symbols) bfd *abfd; sec_ptr asect; @@ -536,10 +567,10 @@ b_out_slurp_reloc_table (abfd, asect, sy arelent *reloc_cache; if (asect->relocation) - return true; + return TRUE; if (!aout_32_slurp_symbol_table (abfd)) - return false; + return FALSE; if (asect == obj_datasec (abfd)) { @@ -560,16 +591,16 @@ b_out_slurp_reloc_table (abfd, asect, sy } bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; doit: if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; count = reloc_size / sizeof (struct relocation_info); relocs = (struct relocation_info *) bfd_malloc (reloc_size); if (!relocs && reloc_size != 0) - return false; + return FALSE; amt = ((bfd_size_type) count + 1) * sizeof (arelent); reloc_cache = (arelent *) bfd_malloc (amt); @@ -577,7 +608,7 @@ b_out_slurp_reloc_table (abfd, asect, sy { if (relocs != NULL) free (relocs); - return false; + return FALSE; } if (bfd_bread ((PTR) relocs, reloc_size, abfd) != reloc_size) @@ -585,7 +616,7 @@ b_out_slurp_reloc_table (abfd, asect, sy free (reloc_cache); if (relocs != NULL) free (relocs); - return false; + return FALSE; } if (bfd_header_big_endian (abfd)) @@ -740,10 +771,10 @@ b_out_slurp_reloc_table (abfd, asect, sy asect->relocation = reloc_cache; asect->reloc_count = count; - return true; + return TRUE; } -static boolean +static bfd_boolean b_out_squirt_out_relocs (abfd, section) bfd *abfd; asection *section; @@ -759,13 +790,13 @@ b_out_squirt_out_relocs (abfd, section) int extern_mask, pcrel_mask, len_2, callj_mask; if (count == 0) - return true; + return TRUE; generic = section->orelocation; natsize = (bfd_size_type) count * sizeof (struct relocation_info); native = ((struct relocation_info *) bfd_malloc (natsize)); if (!native && natsize != 0) - return false; + return FALSE; if (bfd_header_big_endian (abfd)) { @@ -870,12 +901,12 @@ b_out_squirt_out_relocs (abfd, section) if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize) { free ((PTR)native); - return false; + return FALSE; } free ((PTR)native); - return true; + return TRUE; } /* This is stupid. This function should be a boolean predicate. */ @@ -948,7 +979,7 @@ b_out_get_reloc_upper_bound (abfd, asect } -static boolean +static bfd_boolean b_out_set_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -960,7 +991,7 @@ b_out_set_section_contents (abfd, sectio { /* Set by bfd.c handler. */ if (! aout_32_make_sections (abfd)) - return false; + return FALSE; obj_textsec (abfd)->filepos = sizeof (struct internal_exec); obj_datasec(abfd)->filepos = obj_textsec(abfd)->filepos @@ -969,15 +1000,15 @@ b_out_set_section_contents (abfd, sectio /* Regardless, once we know what we're doing, we might as well get going. */ if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0) - return false; + return FALSE; if (count == 0) - return true; + return TRUE; return bfd_bwrite ((PTR) location, count, abfd) == count; } -static boolean +static bfd_boolean b_out_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; @@ -986,7 +1017,7 @@ b_out_set_arch_mach (abfd, arch, machine bfd_default_set_arch_mach(abfd, arch, machine); if (arch == bfd_arch_unknown) /* Unknown machine arch is OK. */ - return true; + return TRUE; if (arch == bfd_arch_i960) /* i960 default is OK. */ switch (machine) @@ -1000,18 +1031,18 @@ b_out_set_arch_mach (abfd, arch, machine case bfd_mach_i960_jx: case bfd_mach_i960_hx: case 0: - return true; + return TRUE; default: - return false; + return FALSE; } - return false; + return FALSE; } static int b_out_sizeof_headers (ignore_abfd, ignore) bfd *ignore_abfd ATTRIBUTE_UNUSED; - boolean ignore ATTRIBUTE_UNUSED; + bfd_boolean ignore ATTRIBUTE_UNUSED; { return sizeof (struct internal_exec); } @@ -1040,7 +1071,7 @@ get_value (reloc, link_info, input_secti generic symbols. */ h = bfd_wrapped_link_hash_lookup (input_section->owner, link_info, bfd_asymbol_name (symbol), - false, false, true); + FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined || h->type == bfd_link_hash_defweak)) @@ -1053,7 +1084,7 @@ get_value (reloc, link_info, input_secti if (! ((*link_info->callbacks->undefined_symbol) (link_info, bfd_asymbol_name (symbol), input_section->owner, input_section, reloc->address, - true))) + TRUE))) abort (); value = 0; } @@ -1192,12 +1223,12 @@ aligncode (abfd, input_section, r, shrin return shrink; } -static boolean +static bfd_boolean b_out_bfd_relax_section (abfd, i, link_info, again) bfd *abfd; asection *i; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { /* Get enough memory to hold the stuff. */ bfd *input_bfd = i->owner; @@ -1208,11 +1239,11 @@ b_out_bfd_relax_section (abfd, i, link_i input_section); if (reloc_size < 0) - return false; + return FALSE; /* We only run this relaxation once. It might work to run it multiple times, but it hasn't been tested. */ - *again = false; + *again = FALSE; if (reloc_size) { @@ -1258,11 +1289,11 @@ b_out_bfd_relax_section (abfd, i, link_i if (reloc_vector != NULL) free (reloc_vector); - return true; + return TRUE; error_return: if (reloc_vector != NULL) free (reloc_vector); - return false; + return FALSE; } static bfd_byte * @@ -1272,7 +1303,7 @@ b_out_bfd_get_relocated_section_contents struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { /* Get enough memory to hold the stuff. */ @@ -1300,11 +1331,11 @@ b_out_bfd_get_relocated_section_contents input_section->reloc_done = 1; /* Read in the section. */ - BFD_ASSERT (true == bfd_get_section_contents (input_bfd, - input_section, - data, - (bfd_vma) 0, - input_section->_raw_size)); + BFD_ASSERT (bfd_get_section_contents (input_bfd, + input_section, + data, + (bfd_vma) 0, + input_section->_raw_size)); reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, @@ -1366,7 +1397,7 @@ b_out_bfd_get_relocated_section_contents case CALLJ: callj_callback (input_bfd, link_info, reloc, data, src_address, dst_address, input_section, - false); + FALSE); src_address += 4; dst_address += 4; break; @@ -1383,7 +1414,7 @@ b_out_bfd_get_relocated_section_contents callj will reach, so do the right thing. */ callj_callback (input_bfd, link_info, reloc, data, src_address + 4, dst_address, input_section, - true); + TRUE); dst_address += 4; src_address += 8; break; diff -uprN binutils-2.13.90.0.16/bfd/cache.c binutils-2.13.90.0.18/bfd/cache.c --- binutils-2.13.90.0.16/bfd/cache.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/cache.c Mon Dec 16 12:22:51 2002 @@ -42,8 +42,8 @@ SECTION static void insert PARAMS ((bfd *)); static void snip PARAMS ((bfd *)); -static boolean close_one PARAMS ((void)); -static boolean bfd_cache_delete PARAMS ((bfd *)); +static bfd_boolean close_one PARAMS ((void)); +static bfd_boolean bfd_cache_delete PARAMS ((bfd *)); /* INTERNAL_FUNCTION @@ -133,7 +133,7 @@ snip (abfd) /* We need to open a new file, and the cache is full. Find the least recently used cacheable BFD and close it. */ -static boolean +static bfd_boolean close_one () { register bfd *kill; @@ -157,7 +157,7 @@ close_one () if (kill == NULL) { /* There are no open cacheable BFD's. */ - return true; + return TRUE; } kill->where = ftell ((FILE *) kill->iostream); @@ -167,17 +167,17 @@ close_one () /* Close a BFD and remove it from the cache. */ -static boolean +static bfd_boolean bfd_cache_delete (abfd) bfd *abfd; { - boolean ret; + bfd_boolean ret; if (fclose ((FILE *) abfd->iostream) == 0) - ret = true; + ret = TRUE; else { - ret = false; + ret = FALSE; bfd_set_error (bfd_error_system_call); } @@ -194,13 +194,13 @@ INTERNAL_FUNCTION bfd_cache_init SYNOPSIS - boolean bfd_cache_init (bfd *abfd); + bfd_boolean bfd_cache_init (bfd *abfd); DESCRIPTION Add a newly opened BFD to the cache. */ -boolean +bfd_boolean bfd_cache_init (abfd) bfd *abfd; { @@ -208,11 +208,11 @@ bfd_cache_init (abfd) if (open_files >= BFD_CACHE_MAX_OPEN) { if (! close_one ()) - return false; + return FALSE; } insert (abfd); ++open_files; - return true; + return TRUE; } /* @@ -220,24 +220,24 @@ INTERNAL_FUNCTION bfd_cache_close SYNOPSIS - boolean bfd_cache_close (bfd *abfd); + bfd_boolean bfd_cache_close (bfd *abfd); DESCRIPTION Remove the BFD @var{abfd} from the cache. If the attached file is open, then close it too. RETURNS - <> is returned if closing the file fails, <> is + <> is returned if closing the file fails, <> is returned if all is well. */ -boolean +bfd_boolean bfd_cache_close (abfd) bfd *abfd; { if (abfd->iostream == NULL || (abfd->flags & BFD_IN_MEMORY) != 0) - return true; + return TRUE; return bfd_cache_delete (abfd); } @@ -261,7 +261,7 @@ FILE * bfd_open_file (abfd) bfd *abfd; { - abfd->cacheable = true; /* Allow it to be closed later. */ + abfd->cacheable = TRUE; /* Allow it to be closed later. */ if (open_files >= BFD_CACHE_MAX_OPEN) { @@ -312,7 +312,7 @@ bfd_open_file (abfd) unlink (abfd->filename); #endif abfd->iostream = (PTR) fopen (abfd->filename, FOPEN_WUB); - abfd->opened_once = true; + abfd->opened_once = TRUE; } break; } diff -uprN binutils-2.13.90.0.16/bfd/cisco-core.c binutils-2.13.90.0.18/bfd/cisco-core.c --- binutils-2.13.90.0.16/bfd/cisco-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/cisco-core.c Mon Dec 16 12:22:51 2002 @@ -75,7 +75,7 @@ static const bfd_target *cisco_core_file static const bfd_target *cisco_core_file_p PARAMS ((bfd *)); char *cisco_core_file_failing_command PARAMS ((bfd *)); int cisco_core_file_failing_signal PARAMS ((bfd *)); -boolean cisco_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); +bfd_boolean cisco_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); /* Examine the file for a crash info struct at the offset given by CRASH_INFO_LOC. */ @@ -318,12 +318,12 @@ cisco_core_file_failing_signal (abfd) return abfd->tdata.cisco_core_data->sig; } -boolean +bfd_boolean cisco_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return true; + return TRUE; } extern const bfd_target cisco_core_little_vec; diff -uprN binutils-2.13.90.0.16/bfd/coff-a29k.c binutils-2.13.90.0.18/bfd/coff-a29k.c --- binutils-2.13.90.0.16/bfd/coff-a29k.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/coff-a29k.c Mon Dec 16 12:22:51 2002 @@ -31,12 +31,12 @@ Foundation, Inc., 59 Temple Place - Suit static long get_symbol_value PARAMS ((asymbol *)); static bfd_reloc_status_type a29k_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean coff_a29k_relocate_section +static bfd_boolean coff_a29k_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); -static boolean coff_a29k_adjust_symndx +static bfd_boolean coff_a29k_adjust_symndx PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, - struct internal_reloc *, boolean *)); + struct internal_reloc *, bfd_boolean *)); static void reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); @@ -82,7 +82,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in { /* The consth relocation comes in two parts, we have to remember the state between calls, in these variables. */ - static boolean part1_consth_active = false; + static bfd_boolean part1_consth_active = FALSE; static unsigned long part1_consth_value; unsigned long insn; unsigned long sym_value; @@ -107,7 +107,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in /* Keep the state machine happy in case we're called again. */ if (r_type == R_IHIHALF) { - part1_consth_active = true; + part1_consth_active = TRUE; part1_consth_value = 0; } return bfd_reloc_undefined; @@ -115,7 +115,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in if ((part1_consth_active) && (r_type != R_IHCONST)) { - part1_consth_active = false; + part1_consth_active = FALSE; *error_message = (char *) _("Missing IHCONST"); return bfd_reloc_dangerous; @@ -167,7 +167,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in insn = bfd_get_32 (abfd, hit_data); /* consth, part 1 Just get the symbol value that is referenced. */ - part1_consth_active = true; + part1_consth_active = TRUE; part1_consth_value = sym_value + reloc_entry->addend; /* Don't modify insn until R_IHCONST. */ break; @@ -186,7 +186,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in unsigned_value += part1_consth_value; unsigned_value = unsigned_value >> 16; insn = INSERT_HWORD(insn, unsigned_value); - part1_consth_active = false; + part1_consth_active = FALSE; bfd_put_32 (abfd, (bfd_vma) insn, hit_data); break; case R_BYTE: @@ -219,7 +219,7 @@ a29k_reloc (abfd, reloc_entry, symbol_in /*FIXME: I'm not real sure about this table. */ static reloc_howto_type howto_table[] = { - {R_ABS, 0, 3, 32, false, 0, complain_overflow_bitfield,a29k_reloc,"ABS", true, 0xffffffff,0xffffffff, false}, + {R_ABS, 0, 3, 32, FALSE, 0, complain_overflow_bitfield,a29k_reloc,"ABS", TRUE, 0xffffffff,0xffffffff, FALSE}, EMPTY_HOWTO (1), EMPTY_HOWTO (2), EMPTY_HOWTO (3), @@ -243,14 +243,14 @@ static reloc_howto_type howto_table[] = EMPTY_HOWTO (21), EMPTY_HOWTO (22), EMPTY_HOWTO (23), - {R_IREL, 0, 3, 32, true, 0, complain_overflow_signed,a29k_reloc,"IREL", true, 0xffffffff,0xffffffff, false}, - {R_IABS, 0, 3, 32, false, 0, complain_overflow_bitfield, a29k_reloc,"IABS", true, 0xffffffff,0xffffffff, false}, - {R_ILOHALF, 0, 3, 16, true, 0, complain_overflow_signed, a29k_reloc,"ILOHALF", true, 0x0000ffff,0x0000ffff, false}, - {R_IHIHALF, 0, 3, 16, true, 16, complain_overflow_signed, a29k_reloc,"IHIHALF", true, 0xffff0000,0xffff0000, false}, - {R_IHCONST, 0, 3, 16, true, 0, complain_overflow_signed, a29k_reloc,"IHCONST", true, 0xffff0000,0xffff0000, false}, - {R_BYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, a29k_reloc,"BYTE", true, 0x000000ff,0x000000ff, false}, - {R_HWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, a29k_reloc,"HWORD", true, 0x0000ffff,0x0000ffff, false}, - {R_WORD, 0, 2, 32, false, 0, complain_overflow_bitfield, a29k_reloc,"WORD", true, 0xffffffff,0xffffffff, false}, + {R_IREL, 0, 3, 32, TRUE, 0, complain_overflow_signed,a29k_reloc,"IREL", TRUE, 0xffffffff,0xffffffff, FALSE}, + {R_IABS, 0, 3, 32, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"IABS", TRUE, 0xffffffff,0xffffffff, FALSE}, + {R_ILOHALF, 0, 3, 16, TRUE, 0, complain_overflow_signed, a29k_reloc,"ILOHALF", TRUE, 0x0000ffff,0x0000ffff, FALSE}, + {R_IHIHALF, 0, 3, 16, TRUE, 16, complain_overflow_signed, a29k_reloc,"IHIHALF", TRUE, 0xffff0000,0xffff0000, FALSE}, + {R_IHCONST, 0, 3, 16, TRUE, 0, complain_overflow_signed, a29k_reloc,"IHCONST", TRUE, 0xffff0000,0xffff0000, FALSE}, + {R_BYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"BYTE", TRUE, 0x000000ff,0x000000ff, FALSE}, + {R_HWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"HWORD", TRUE, 0x0000ffff,0x0000ffff, FALSE}, + {R_WORD, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, a29k_reloc,"WORD", TRUE, 0xffffffff,0xffffffff, FALSE}, }; #define BADMAG(x) A29KBADMAG(x) @@ -310,7 +310,7 @@ reloc_processing (relent,reloc, symbols, /* The reloc processing routine for the optimized COFF linker. */ -static boolean +static bfd_boolean coff_a29k_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -324,16 +324,16 @@ coff_a29k_relocate_section (output_bfd, { struct internal_reloc *rel; struct internal_reloc *relend; - boolean hihalf; + bfd_boolean hihalf; bfd_vma hihalf_val; /* If we are performing a relocateable link, we don't need to do a thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ if (info->relocateable) - return true; + return TRUE; - hihalf = false; + hihalf = FALSE; hihalf_val = 0; rel = relocs; @@ -346,7 +346,7 @@ coff_a29k_relocate_section (output_bfd, struct internal_syment *sym; asection *sec; bfd_vma val; - boolean overflow; + bfd_boolean overflow; unsigned long insn; long signed_value; unsigned long unsigned_value; @@ -397,8 +397,8 @@ coff_a29k_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -407,18 +407,18 @@ coff_a29k_relocate_section (output_bfd, if (! ((*info->callbacks->reloc_dangerous) (info, _("missing IHCONST reloc"), input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; - hihalf = false; + return FALSE; + hihalf = FALSE; } } - overflow = false; + overflow = FALSE; switch (rel->r_type) { default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; case R_IREL: insn = bfd_get_32 (input_bfd, loc); @@ -465,7 +465,7 @@ coff_a29k_relocate_section (output_bfd, + (rel->r_vaddr - input_section->vma)); if (signed_value > 0x1ffff || signed_value < - 0x20000) { - overflow = true; + overflow = TRUE; signed_value = 0; } } @@ -487,7 +487,7 @@ coff_a29k_relocate_section (output_bfd, case R_IHIHALF: /* Save the value for the R_IHCONST reloc. */ - hihalf = true; + hihalf = TRUE; hihalf_val = val; break; @@ -497,7 +497,7 @@ coff_a29k_relocate_section (output_bfd, if (! ((*info->callbacks->reloc_dangerous) (info, _("missing IHIHALF reloc"), input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; hihalf_val = 0; } @@ -507,7 +507,7 @@ coff_a29k_relocate_section (output_bfd, insn = INSERT_HWORD (insn, unsigned_value); bfd_put_32 (input_bfd, (bfd_vma) insn, loc); - hihalf = false; + hihalf = FALSE; break; @@ -517,7 +517,7 @@ coff_a29k_relocate_section (output_bfd, rstat = _bfd_relocate_contents (howto_table + rel->r_type, input_bfd, val, loc); if (rstat == bfd_reloc_overflow) - overflow = true; + overflow = TRUE; else if (rstat != bfd_reloc_ok) abort (); break; @@ -548,11 +548,11 @@ coff_a29k_relocate_section (output_bfd, (info, name, howto_table[rel->r_type].name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } } - return true; + return TRUE; } #define coff_relocate_section coff_a29k_relocate_section @@ -560,20 +560,20 @@ coff_a29k_relocate_section (output_bfd, /* We don't want to change the symndx of a R_IHCONST reloc, since it is actually an addend, not a symbol index at all. */ -static boolean +static bfd_boolean coff_a29k_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp) bfd *obfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; bfd *ibfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; struct internal_reloc *irel; - boolean *adjustedp; + bfd_boolean *adjustedp; { if (irel->r_type == R_IHCONST) - *adjustedp = true; + *adjustedp = TRUE; else - *adjustedp = false; - return true; + *adjustedp = FALSE; + return TRUE; } #define coff_adjust_symndx coff_a29k_adjust_symndx diff -uprN binutils-2.13.90.0.16/bfd/coff-alpha.c binutils-2.13.90.0.18/bfd/coff-alpha.c --- binutils-2.13.90.0.16/bfd/coff-alpha.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/coff-alpha.c Mon Dec 16 12:22:51 2002 @@ -35,36 +35,40 @@ Foundation, Inc., 59 Temple Place - Suit /* Prototypes for static functions. */ -static const bfd_target *alpha_ecoff_object_p PARAMS ((bfd *)); -static boolean alpha_ecoff_bad_format_hook PARAMS ((bfd *abfd, PTR filehdr)); -static PTR alpha_ecoff_mkobject_hook PARAMS ((bfd *, PTR filehdr, PTR aouthdr)); -static void alpha_ecoff_swap_reloc_in PARAMS ((bfd *, PTR, - struct internal_reloc *)); -static void alpha_ecoff_swap_reloc_out PARAMS ((bfd *, - const struct internal_reloc *, - PTR)); -static void alpha_adjust_reloc_in PARAMS ((bfd *, - const struct internal_reloc *, - arelent *)); -static void alpha_adjust_reloc_out PARAMS ((bfd *, const arelent *, - struct internal_reloc *)); +static const bfd_target *alpha_ecoff_object_p + PARAMS ((bfd *)); +static bfd_boolean alpha_ecoff_bad_format_hook + PARAMS ((bfd *abfd, PTR filehdr)); +static PTR alpha_ecoff_mkobject_hook + PARAMS ((bfd *, PTR filehdr, PTR aouthdr)); +static void alpha_ecoff_swap_reloc_in + PARAMS ((bfd *, PTR, struct internal_reloc *)); +static void alpha_ecoff_swap_reloc_out + PARAMS ((bfd *, const struct internal_reloc *, PTR)); +static void alpha_adjust_reloc_in + PARAMS ((bfd *, const struct internal_reloc *, arelent *)); +static void alpha_adjust_reloc_out + PARAMS ((bfd *, const arelent *, struct internal_reloc *)); static reloc_howto_type *alpha_bfd_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); + PARAMS ((bfd *, bfd_reloc_code_real_type)); static bfd_byte *alpha_ecoff_get_relocated_section_contents PARAMS ((bfd *abfd, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *data, boolean relocateable, asymbol **symbols)); + bfd_byte *data, bfd_boolean relocateable, asymbol **symbols)); static bfd_vma alpha_convert_external_reloc PARAMS ((bfd *, struct bfd_link_info *, bfd *, struct external_reloc *, struct ecoff_link_hash_entry *)); -static boolean alpha_relocate_section PARAMS ((bfd *, struct bfd_link_info *, - bfd *, asection *, - bfd_byte *, PTR)); -static boolean alpha_adjust_headers +static bfd_boolean alpha_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, PTR)); +static bfd_boolean alpha_adjust_headers PARAMS ((bfd *, struct internal_filehdr *, struct internal_aouthdr *)); -static PTR alpha_ecoff_read_ar_hdr PARAMS ((bfd *)); -static bfd *alpha_ecoff_get_elt_at_filepos PARAMS ((bfd *, file_ptr)); -static bfd *alpha_ecoff_openr_next_archived_file PARAMS ((bfd *, bfd *)); -static bfd *alpha_ecoff_get_elt_at_index PARAMS ((bfd *, symindex)); +static PTR alpha_ecoff_read_ar_hdr + PARAMS ((bfd *)); +static bfd *alpha_ecoff_get_elt_at_filepos + PARAMS ((bfd *, file_ptr)); +static bfd *alpha_ecoff_openr_next_archived_file + PARAMS ((bfd *, bfd *)); +static bfd *alpha_ecoff_get_elt_at_index + PARAMS ((bfd *, symindex)); /* ECOFF has COFF sections, but the debugging information is stored in a completely different format. ECOFF targets use some of the @@ -122,9 +126,8 @@ static bfd *alpha_ecoff_get_elt_at_index /* How to process the various reloc types. */ -static bfd_reloc_status_type -reloc_nil PARAMS ((bfd *, arelent *, asymbol *, PTR, - asection *, bfd *, char **)); +static bfd_reloc_status_type reloc_nil + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type reloc_nil (abfd, reloc, sym, data, sec, output_bfd, error_message) @@ -152,45 +155,45 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "IGNORE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 32 bit reference to a symbol. */ HOWTO (ALPHA_R_REFLONG, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "REFLONG", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit reference to a symbol. */ HOWTO (ALPHA_R_REFQUAD, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "REFQUAD", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit GP relative offset. This is just like REFLONG except that when the value is used the value of the gp register will be @@ -199,15 +202,15 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "GPREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used for an instruction that refers to memory off the GP register. The offset is 16 bits of the 32 bit instruction. This @@ -216,15 +219,15 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "LITERAL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* This reloc only appears immediately following a LITERAL reloc. It identifies a use of the literal. It seems that the linker can @@ -239,15 +242,15 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "LITUSE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Load the gp register. This is always used for a ldah instruction which loads the upper 16 bits of the gp register. The next reloc @@ -264,15 +267,15 @@ static reloc_howto_type alpha_howto_tabl 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "GPDISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 21 bit branch. The native assembler generates these for branches within the text segment, and also fills in the PC @@ -281,90 +284,90 @@ static reloc_howto_type alpha_howto_tabl 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 21, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "BRADDR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1fffff, /* src_mask */ 0x1fffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A hint for a jump to a register. */ HOWTO (ALPHA_R_HINT, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 14, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "HINT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3fff, /* src_mask */ 0x3fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative offset. */ HOWTO (ALPHA_R_SREL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative offset. */ HOWTO (ALPHA_R_SREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit PC relative offset. */ HOWTO (ALPHA_R_SREL64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Push a value on the reloc evaluation stack. */ HOWTO (ALPHA_R_OP_PUSH, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_PUSH", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Store the value from the stack at the given address. Store it in a bitfield of size r_size starting at bit position r_offset. */ @@ -372,15 +375,15 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_STORE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Subtract the reloc address from the value on the top of the relocation stack. */ @@ -388,15 +391,15 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_PSUB", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Shift the value on the top of the relocation stack right by the given value. */ @@ -404,30 +407,30 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_PRSHIFT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Adjust the GP value for a new range in the object file. */ HOWTO (ALPHA_R_GPVALUE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "GPVALUE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; /* Recognize an Alpha ECOFF file. */ @@ -471,7 +474,7 @@ alpha_ecoff_object_p (abfd) /* See whether the magic number matches. */ -static boolean +static bfd_boolean alpha_ecoff_bad_format_hook (abfd, filehdr) bfd *abfd ATTRIBUTE_UNUSED; PTR filehdr; @@ -479,9 +482,9 @@ alpha_ecoff_bad_format_hook (abfd, fileh struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (ALPHA_ECOFF_BADMAG (*internal_f)) - return false; + return FALSE; - return true; + return TRUE; } /* This is a hook called by coff_real_object_p to create any backend @@ -755,7 +758,7 @@ alpha_ecoff_get_relocated_section_conten struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { bfd *input_bfd = link_order->u.indirect.section->owner; @@ -765,7 +768,7 @@ alpha_ecoff_get_relocated_section_conten long reloc_count; bfd *output_bfd = relocateable ? abfd : (bfd *) NULL; bfd_vma gp; - boolean gp_undefined; + bfd_boolean gp_undefined; bfd_vma stack[RELOC_STACKSIZE]; int tos = 0; @@ -781,7 +784,7 @@ alpha_ecoff_get_relocated_section_conten /* The section size is not going to change. */ input_section->_cooked_size = input_section->_raw_size; - input_section->reloc_done = true; + input_section->reloc_done = TRUE; reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, reloc_vector, symbols); @@ -791,7 +794,7 @@ alpha_ecoff_get_relocated_section_conten goto successful_return; /* Get the GP value for the output BFD. */ - gp_undefined = false; + gp_undefined = FALSE; gp = _bfd_get_gp_value (abfd); if (gp == 0) { @@ -819,11 +822,11 @@ alpha_ecoff_get_relocated_section_conten { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (link_info->hash, "_gp", false, false, - true); + h = bfd_link_hash_lookup (link_info->hash, "_gp", FALSE, FALSE, + TRUE); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) - gp_undefined = true; + gp_undefined = TRUE; else { gp = (h->u.def.value @@ -1111,7 +1114,7 @@ alpha_ecoff_get_relocated_section_conten case ALPHA_R_GPVALUE: /* I really don't know if this does the right thing. */ gp = rel->addend; - gp_undefined = false; + gp_undefined = FALSE; break; default: @@ -1134,7 +1137,7 @@ alpha_ecoff_get_relocated_section_conten case bfd_reloc_undefined: if (! ((*link_info->callbacks->undefined_symbol) (link_info, bfd_asymbol_name (*rel->sym_ptr_ptr), - input_bfd, input_section, rel->address, true))) + input_bfd, input_section, rel->address, TRUE))) goto error_return; break; case bfd_reloc_dangerous: @@ -1365,7 +1368,7 @@ alpha_convert_external_reloc (output_bfd quite similar to get_relocated_section_contents. Perhaps they could be combined somehow. */ -static boolean +static bfd_boolean alpha_relocate_section (output_bfd, info, input_bfd, input_section, contents, external_relocs) bfd *output_bfd; @@ -1378,7 +1381,7 @@ alpha_relocate_section (output_bfd, info asection **symndx_to_section, *lita_sec; struct ecoff_link_hash_entry **sym_hashes; bfd_vma gp; - boolean gp_undefined; + bfd_boolean gp_undefined; bfd_vma stack[RELOC_STACKSIZE]; int tos = 0; struct external_reloc *ext_rel; @@ -1394,7 +1397,7 @@ alpha_relocate_section (output_bfd, info amt = NUM_RELOC_SECTIONS * sizeof (asection *); symndx_to_section = (asection **) bfd_alloc (input_bfd, amt); if (!symndx_to_section) - return false; + return FALSE; symndx_to_section[RELOC_SECTION_NONE] = NULL; symndx_to_section[RELOC_SECTION_TEXT] = @@ -1485,7 +1488,7 @@ alpha_relocate_section (output_bfd, info _("using multiple gp values"), (char *) NULL, output_bfd, (asection *) NULL, (bfd_vma) 0); - ecoff_data (output_bfd)->issued_multiple_gp_warning = true; + ecoff_data (output_bfd)->issued_multiple_gp_warning = TRUE; } if (lita_vma < gp - 0x8000) gp = lita_vma + lita_size - 0x8000; @@ -1515,9 +1518,9 @@ alpha_relocate_section (output_bfd, info int r_extern; int r_offset; int r_size; - boolean relocatep; - boolean adjust_addrp; - boolean gp_usedp; + bfd_boolean relocatep; + bfd_boolean adjust_addrp; + bfd_boolean gp_usedp; bfd_vma addend; r_vaddr = H_GET_64 (input_bfd, ext_rel->r_vaddr); @@ -1532,9 +1535,9 @@ alpha_relocate_section (output_bfd, info r_size = ((ext_rel->r_bits[3] & RELOC_BITS3_SIZE_LITTLE) >> RELOC_BITS3_SIZE_SH_LITTLE); - relocatep = false; - adjust_addrp = true; - gp_usedp = false; + relocatep = FALSE; + adjust_addrp = TRUE; + gp_usedp = FALSE; addend = 0; switch (r_type) @@ -1552,13 +1555,13 @@ alpha_relocate_section (output_bfd, info if (info->relocateable) H_PUT_64 (input_bfd, input_section->output_offset + r_vaddr, ext_rel->r_vaddr); - adjust_addrp = false; + adjust_addrp = FALSE; break; case ALPHA_R_REFLONG: case ALPHA_R_REFQUAD: case ALPHA_R_HINT: - relocatep = true; + relocatep = TRUE; break; case ALPHA_R_BRADDR: @@ -1567,7 +1570,7 @@ alpha_relocate_section (output_bfd, info case ALPHA_R_SREL64: if (r_extern) addend += - (r_vaddr + 4); - relocatep = true; + relocatep = TRUE; break; case ALPHA_R_GPREL32: @@ -1575,9 +1578,9 @@ alpha_relocate_section (output_bfd, info bit offset from the current GP value. We must adjust it by the different between the original GP value and the current GP value. */ - relocatep = true; + relocatep = TRUE; addend = ecoff_data (input_bfd)->gp - gp; - gp_usedp = true; + gp_usedp = TRUE; break; case ALPHA_R_LITERAL: @@ -1608,9 +1611,9 @@ alpha_relocate_section (output_bfd, info || ((insn >> 26) & 0x3f) == 0x28); } - relocatep = true; + relocatep = TRUE; addend = ecoff_data (input_bfd)->gp - gp; - gp_usedp = true; + gp_usedp = TRUE; break; case ALPHA_R_LITUSE: @@ -1674,7 +1677,7 @@ alpha_relocate_section (output_bfd, info bfd_put_32 (input_bfd, (bfd_vma) insn2, contents + r_vaddr - input_section->vma + r_symndx); - gp_usedp = true; + gp_usedp = TRUE; } break; @@ -1717,8 +1720,8 @@ alpha_relocate_section (output_bfd, info relocated. */ if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, (bfd_vma) 0, true))) - return false; + input_section, (bfd_vma) 0, TRUE))) + return FALSE; addend = 0; } } @@ -1734,7 +1737,7 @@ alpha_relocate_section (output_bfd, info if (! ((*info->callbacks->unattached_reloc) (info, h->root.root.string, input_bfd, input_section, (bfd_vma) 0))) - return false; + return FALSE; } addend = alpha_convert_external_reloc (output_bfd, info, @@ -1774,7 +1777,7 @@ alpha_relocate_section (output_bfd, info } } - adjust_addrp = false; + adjust_addrp = FALSE; break; case ALPHA_R_OP_STORE: @@ -1811,7 +1814,7 @@ alpha_relocate_section (output_bfd, info case ALPHA_R_GPVALUE: /* I really don't know if this does the right thing. */ gp = ecoff_data (input_bfd)->gp + r_symndx; - gp_undefined = false; + gp_undefined = FALSE; break; } @@ -1861,7 +1864,7 @@ alpha_relocate_section (output_bfd, info if (! ((*info->callbacks->unattached_reloc) (info, h->root.root.string, input_bfd, input_section, r_vaddr - input_section->vma))) - return false; + return FALSE; } relocation = alpha_convert_external_reloc (output_bfd, @@ -1918,8 +1921,8 @@ alpha_relocate_section (output_bfd, info if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - r_vaddr - input_section->vma, true))) - return false; + r_vaddr - input_section->vma, TRUE))) + return FALSE; relocation = 0; } } @@ -1965,7 +1968,7 @@ alpha_relocate_section (output_bfd, info (info, name, alpha_howto_table[r_type].name, (bfd_vma) 0, input_bfd, input_section, r_vaddr - input_section->vma))) - return false; + return FALSE; } break; } @@ -1988,24 +1991,24 @@ alpha_relocate_section (output_bfd, info if (! ((*info->callbacks->reloc_dangerous) (info, _("GP relative relocation used when GP not defined"), input_bfd, input_section, r_vaddr - input_section->vma))) - return false; + return FALSE; /* Only give the error once per link. */ gp = 4; _bfd_set_gp_value (output_bfd, gp); - gp_undefined = false; + gp_undefined = FALSE; } } if (tos != 0) abort (); - return true; + return TRUE; } /* Do final adjustments to the filehdr and the aouthdr. This routine sets the dynamic bits in the file header. */ -static boolean +static bfd_boolean alpha_adjust_headers (abfd, fhdr, ahdr) bfd *abfd; struct internal_filehdr *fhdr; @@ -2015,7 +2018,7 @@ alpha_adjust_headers (abfd, fhdr, ahdr) fhdr->f_flags |= F_ALPHA_CALL_SHARED; else if ((abfd->flags & DYNAMIC) != 0) fhdr->f_flags |= F_ALPHA_SHARABLE; - return true; + return TRUE; } /* Archive handling. In OSF/1 (or Digital Unix) v3.2, Digital @@ -2185,7 +2188,7 @@ alpha_ecoff_get_elt_at_filepos (archive, bim->size = size; bim->buffer = buf; - nbfd->mtime_set = true; + nbfd->mtime_set = TRUE; nbfd->mtime = strtol (hdr->ar_date, (char **) NULL, 10); nbfd->flags |= BFD_IN_MEMORY; @@ -2262,7 +2265,7 @@ static const struct ecoff_backend_data a (unsigned (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* reloc_out */ alpha_ecoff_swap_filehdr_out, alpha_ecoff_swap_aouthdr_out, alpha_ecoff_swap_scnhdr_out, - FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, true, false, 4, false, 2, + FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, FALSE, 4, FALSE, 2, alpha_ecoff_swap_filehdr_in, alpha_ecoff_swap_aouthdr_in, alpha_ecoff_swap_scnhdr_in, NULL, alpha_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, @@ -2278,10 +2281,10 @@ static const struct ecoff_backend_data a /* The page boundary used to align sections in a demand-paged executable file. E.g., 0x1000. */ 0x2000, - /* True if the .rdata section is part of the text segment, as on the - Alpha. False if .rdata is part of the data segment, as on the + /* TRUE if the .rdata section is part of the text segment, as on the + Alpha. FALSE if .rdata is part of the data segment, as on the MIPS. */ - true, + TRUE, /* Bitsize of constructor entries. */ 64, /* Reloc to use for constructor entries. */ diff -uprN binutils-2.13.90.0.16/bfd/coff-apollo.c binutils-2.13.90.0.18/bfd/coff-apollo.c --- binutils-2.13.90.0.16/bfd/coff-apollo.c Mon Aug 27 11:44:51 2001 +++ binutils-2.13.90.0.18/bfd/coff-apollo.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Apollo 68000 COFF binaries. - Copyright 1990, 1991, 1992, 1993, 1994, 1999, 2000, 2001 + Copyright 1990, 1991, 1992, 1993, 1994, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. By Troy Rollo (troy@cbme.unsw.edu.au) Based on m68k standard COFF version Written by Cygnus Support. @@ -34,13 +34,13 @@ extern reloc_howto_type apollocoff_howto #else reloc_howto_type apollocoff_howto_table[] = { - HOWTO (R_RELBYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "8", true, 0x000000ff,0x000000ff, false), - HOWTO (R_RELWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, 0, "16", true, 0x0000ffff,0x0000ffff, false), - HOWTO (R_RELLONG, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "32", true, 0xffffffff,0xffffffff, false), - HOWTO (R_PCRBYTE, 0, 0, 8, true, 0, complain_overflow_signed, 0, "DISP8", true, 0x000000ff,0x000000ff, false), - HOWTO (R_PCRWORD, 0, 1, 16, true, 0, complain_overflow_signed, 0, "DISP16", true, 0x0000ffff,0x0000ffff, false), - HOWTO (R_PCRLONG, 0, 2, 32, true, 0, complain_overflow_signed, 0, "DISP32", true, 0xffffffff,0xffffffff, false), - HOWTO (R_RELLONG_NEG, 0, -2, 32, false, 0, complain_overflow_bitfield, 0, "-32", true, 0xffffffff,0xffffffff, false), + HOWTO (R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO (R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO (R_RELLONG_NEG, 0, -2, 32, FALSE, 0, complain_overflow_bitfield, 0, "-32", TRUE, 0xffffffff,0xffffffff, FALSE), }; #endif /* not ONLY_DECLARE_RELOCS */ diff -uprN binutils-2.13.90.0.16/bfd/coff-arm.c binutils-2.13.90.0.18/bfd/coff-arm.c --- binutils-2.13.90.0.16/bfd/coff-arm.c Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/bfd/coff-arm.c Tue Jan 21 10:21:32 2003 @@ -80,7 +80,7 @@ typedef unsigned long int insn32; typedef unsigned short int insn16; /* Forward declarations for stupid compilers. */ -static boolean coff_arm_relocate_section +static bfd_boolean coff_arm_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); static bfd_reloc_status_type aoutarm_fix_pcrel_26_done @@ -99,9 +99,9 @@ static bfd_reloc_status_type coff_thumb_ PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type coff_arm_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean coff_arm_adjust_symndx +static bfd_boolean coff_arm_adjust_symndx PARAMS ((bfd *, struct bfd_link_info *, bfd *, - asection *, struct internal_reloc *, boolean *)); + asection *, struct internal_reloc *, bfd_boolean *)); static reloc_howto_type * coff_arm_rtype_to_howto PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, @@ -125,19 +125,19 @@ static void record_thumb_to_arm_glue PARAMS ((struct bfd_link_info *, struct coff_link_hash_entry *)); #endif #endif -static boolean coff_arm_merge_private_bfd_data +static bfd_boolean coff_arm_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean coff_arm_print_private_bfd_data +static bfd_boolean coff_arm_print_private_bfd_data PARAMS ((bfd *, PTR)); -static boolean _bfd_coff_arm_set_private_flags +static bfd_boolean _bfd_coff_arm_set_private_flags PARAMS ((bfd *, flagword)); -static boolean coff_arm_copy_private_bfd_data +static bfd_boolean coff_arm_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean coff_arm_is_local_label_name +static bfd_boolean coff_arm_is_local_label_name PARAMS ((bfd *, const char *)); -static boolean coff_arm_link_output_has_begun +static bfd_boolean coff_arm_link_output_has_begun PARAMS ((bfd *, struct coff_final_link_info *)); -static boolean coff_arm_final_link_postscript +static bfd_boolean coff_arm_final_link_postscript PARAMS ((bfd *, struct coff_final_link_info *)); static void arm_emit_base_file_entry PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_vma)); @@ -224,7 +224,7 @@ coff_arm_reloc (abfd, reloc_entry, symbo #endif #ifndef PCRELOFFSET -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #endif /* These most certainly belong somewhere else. Just had to get rid of @@ -269,12 +269,12 @@ static reloc_howto_type aoutarm_std_relo 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_32", - true, + TRUE, 0xffffffff, 0xffffffff, PCRELOFFSET), @@ -282,12 +282,12 @@ static reloc_howto_type aoutarm_std_relo 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_RVA32", - true, + TRUE, 0xffffffff, 0xffffffff, PCRELOFFSET), @@ -295,12 +295,12 @@ static reloc_howto_type aoutarm_std_relo 2, 2, 24, - true, + TRUE, 0, complain_overflow_signed, aoutarm_fix_pcrel_26 , "ARM_26", - false, + FALSE, 0x00ffffff, 0x00ffffff, PCRELOFFSET), @@ -308,12 +308,12 @@ static reloc_howto_type aoutarm_std_relo 1, 1, 11, - true, + TRUE, 0, complain_overflow_signed, coff_thumb_pcrel_12 , "ARM_THUMB12", - false, + FALSE, 0x000007ff, 0x000007ff, PCRELOFFSET), @@ -321,15 +321,15 @@ static reloc_howto_type aoutarm_std_relo 2, 2, 24, - false, + FALSE, 0, complain_overflow_dont, aoutarm_fix_pcrel_26_done, "ARM_26D", - true, + TRUE, 0x00ffffff, 0x0, - false), + FALSE), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), @@ -342,12 +342,12 @@ static reloc_howto_type aoutarm_std_relo 0, 1, 16, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_16", - true, + TRUE, 0x0000ffff, 0x0000ffff, PCRELOFFSET), @@ -355,26 +355,26 @@ static reloc_howto_type aoutarm_std_relo 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_32", - true, + TRUE, 0xffffffff, 0xffffffff, PCRELOFFSET), #else /* not ARM_WINCE */ - HOWTO (ARM_8, /* type */ + HOWTO (ARM_8, /* type */ 0, /* rightshift */ 0, /* size */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ - coff_arm_reloc, /* special_function */ + coff_arm_reloc, /* special_function */ "ARM_8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ PCRELOFFSET /* pcrel_offset */), @@ -382,12 +382,12 @@ static reloc_howto_type aoutarm_std_relo 0, 1, 16, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_16", - true, + TRUE, 0x0000ffff, 0x0000ffff, PCRELOFFSET), @@ -395,12 +395,12 @@ static reloc_howto_type aoutarm_std_relo 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_32", - true, + TRUE, 0xffffffff, 0xffffffff, PCRELOFFSET), @@ -408,12 +408,12 @@ static reloc_howto_type aoutarm_std_relo 2, 2, 24, - true, + TRUE, 0, complain_overflow_signed, aoutarm_fix_pcrel_26 , "ARM_26", - false, + FALSE, 0x00ffffff, 0x00ffffff, PCRELOFFSET), @@ -421,92 +421,92 @@ static reloc_howto_type aoutarm_std_relo 0, 0, 8, - true, + TRUE, 0, complain_overflow_signed, coff_arm_reloc, "ARM_DISP8", - true, + TRUE, 0x000000ff, 0x000000ff, - true), + TRUE), HOWTO (ARM_DISP16, 0, 1, 16, - true, + TRUE, 0, complain_overflow_signed, coff_arm_reloc, "ARM_DISP16", - true, + TRUE, 0x0000ffff, 0x0000ffff, - true), + TRUE), HOWTO (ARM_DISP32, 0, 2, 32, - true, + TRUE, 0, complain_overflow_signed, coff_arm_reloc, "ARM_DISP32", - true, + TRUE, 0xffffffff, 0xffffffff, - true), + TRUE), HOWTO (ARM_26D, 2, 2, 24, - false, + FALSE, 0, complain_overflow_dont, aoutarm_fix_pcrel_26_done, "ARM_26D", - true, + TRUE, 0x00ffffff, 0x0, - false), + FALSE), /* 8 is unused */ EMPTY_HOWTO (-1), HOWTO (ARM_NEG16, 0, -1, 16, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_NEG16", - true, + TRUE, 0x0000ffff, 0x0000ffff, - false), + FALSE), HOWTO (ARM_NEG32, 0, -2, 32, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_NEG32", - true, + TRUE, 0xffffffff, 0xffffffff, - false), + FALSE), HOWTO (ARM_RVA32, 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, coff_arm_reloc, "ARM_RVA32", - true, + TRUE, 0xffffffff, 0xffffffff, PCRELOFFSET), @@ -514,12 +514,12 @@ static reloc_howto_type aoutarm_std_relo 1, 1, 8, - true, + TRUE, 0, complain_overflow_signed, coff_thumb_pcrel_9 , "ARM_THUMB9", - false, + FALSE, 0x000000ff, 0x000000ff, PCRELOFFSET), @@ -527,12 +527,12 @@ static reloc_howto_type aoutarm_std_relo 1, 1, 11, - true, + TRUE, 0, complain_overflow_signed, coff_thumb_pcrel_12 , "ARM_THUMB12", - false, + FALSE, 0x000007ff, 0x000007ff, PCRELOFFSET), @@ -540,12 +540,12 @@ static reloc_howto_type aoutarm_std_relo 1, 2, 22, - true, + TRUE, 0, complain_overflow_signed, coff_thumb_pcrel_23 , "ARM_THUMB23", - false, + FALSE, 0x07ff07ff, 0x07ff07ff, PCRELOFFSET) @@ -555,11 +555,11 @@ static reloc_howto_type aoutarm_std_relo #define NUM_RELOCS NUM_ELEM (aoutarm_std_reloc_howto) #ifdef COFF_WITH_PE -static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); -/* Return true if this relocation should +static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); +/* Return TRUE if this relocation should appear in the output .reloc section. */ -static boolean +static bfd_boolean in_reloc_p (abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type * howto; @@ -1059,7 +1059,7 @@ find_thumb_glue (info, name, input_bfd) sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name); myh = coff_link_hash_lookup - (coff_hash_table (info), tmp_name, false, false, true); + (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE); if (myh == NULL) /* xgettext:c-format */ @@ -1089,7 +1089,7 @@ find_arm_glue (info, name, input_bfd) sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name); myh = coff_link_hash_lookup - (coff_hash_table (info), tmp_name, false, false, true); + (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE); if (myh == NULL) /* xgettext:c-format */ @@ -1188,7 +1188,7 @@ static const insn32 t2a6_bx_insn = 0x ARM/Thumb builds. It is only the code marked THUMBEXTENSION that is different from the original. */ -static boolean +static bfd_boolean coff_arm_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) bfd *output_bfd; @@ -1244,7 +1244,7 @@ coff_arm_relocate_section (output_bfd, i howto = coff_rtype_to_howto (input_bfd, input_section, rel, h, sym, &addend); if (howto == NULL) - return false; + return FALSE; /* The relocation_section function will skip pcrel_offset relocs when doing a relocateable link. However, we want to convert @@ -1264,15 +1264,15 @@ coff_arm_relocate_section (output_bfd, i 2, 2, 24, - true, + TRUE, 0, complain_overflow_signed, aoutarm_fix_pcrel_26 , "ARM_26", - false, + FALSE, 0x00ffffff, 0x00ffffff, - false); + FALSE); addend -= rel->r_vaddr - input_section->vma; howto = &fake_arm26_reloc; @@ -1281,9 +1281,12 @@ coff_arm_relocate_section (output_bfd, i #ifdef ARM_WINCE /* MS ARM-CE makes the reloc relative to the opcode's pc, not the next opcode's pc, so is off by one. */ +#if 0 /* This appears to have been true for WINCE 2.0, but it is not + true for WINCE 3.0. */ if (howto->pc_relative && !info->relocateable) addend -= 8; #endif +#endif /* If we are doing a relocateable link, then we can just ignore a PC relative reloc that is pcrel_offset. It will already @@ -1365,7 +1368,7 @@ coff_arm_relocate_section (output_bfd, i myh = find_arm_glue (info, name, input_bfd); if (myh == NULL) - return false; + return FALSE; globals = coff_arm_hash_table (info); @@ -1458,7 +1461,7 @@ coff_arm_relocate_section (output_bfd, i myh = find_thumb_glue (info, name, input_bfd); if (myh == NULL) - return false; + return FALSE; globals = coff_arm_hash_table (info); @@ -1596,8 +1599,8 @@ coff_arm_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -1631,18 +1634,18 @@ coff_arm_relocate_section (output_bfd, i rstat = bfd_reloc_outofrange; else { - bfd_vma relocation = val + addend; - int size = bfd_get_reloc_size (howto); - boolean overflow = false; - bfd_byte * location = contents + address; - bfd_vma x = bfd_get_32 (input_bfd, location); - bfd_vma src_mask = 0x007FFFFE; - bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1; - bfd_signed_vma reloc_signed_min = ~reloc_signed_max; - bfd_vma check; - bfd_signed_vma signed_check; - bfd_vma add; - bfd_signed_vma signed_add; + bfd_vma relocation = val + addend; + int size = bfd_get_reloc_size (howto); + bfd_boolean overflow = FALSE; + bfd_byte *location = contents + address; + bfd_vma x = bfd_get_32 (input_bfd, location); + bfd_vma src_mask = 0x007FFFFE; + bfd_signed_vma reloc_signed_max = (1 << (howto->bitsize - 1)) - 1; + bfd_signed_vma reloc_signed_min = ~reloc_signed_max; + bfd_vma check; + bfd_signed_vma signed_check; + bfd_vma add; + bfd_signed_vma signed_add; BFD_ASSERT (size == 4); @@ -1699,7 +1702,7 @@ coff_arm_relocate_section (output_bfd, i /* Assumes two's complement. */ if ( signed_check > reloc_signed_max || signed_check < reloc_signed_min) - overflow = true; + overflow = TRUE; /* Put the relocation into the correct bits. For a BLX instruction, make sure that the relocation is rounded up @@ -1746,13 +1749,13 @@ coff_arm_relocate_section (output_bfd, i /* Determine if we need to set the bottom bit of a relocated address because the address is the address of a Thumb code symbol. */ - int patchit = false; + int patchit = FALSE; if (h != NULL && ( h->class == C_THUMBSTATFUNC || h->class == C_THUMBEXTFUNC)) { - patchit = true; + patchit = TRUE; } else if (sym != NULL && sym->n_scnum > N_UNDEF) @@ -1761,7 +1764,7 @@ coff_arm_relocate_section (output_bfd, i if ( sym->n_sclass == C_THUMBSTATFUNC || sym->n_sclass == C_THUMBEXTFUNC) - patchit = true; + patchit = TRUE; } if (patchit) @@ -1786,7 +1789,7 @@ coff_arm_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), (unsigned long) rel->r_vaddr, bfd_get_section_name (input_bfd, input_section)); - return false; + return FALSE; case bfd_reloc_overflow: { const char *name; @@ -1800,23 +1803,23 @@ coff_arm_relocate_section (output_bfd, i { name = _bfd_coff_internal_syment_name (input_bfd, sym, buf); if (name == NULL) - return false; + return FALSE; } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } } } - return true; + return TRUE; } #ifndef COFF_IMAGE_WITH_PE -boolean +bfd_boolean bfd_arm_allocate_interworking_sections (info) struct bfd_link_info * info; { @@ -1869,7 +1872,7 @@ bfd_arm_allocate_interworking_sections ( s->contents = foo; } - return true; + return TRUE; } static void @@ -1904,7 +1907,7 @@ record_arm_to_thumb_glue (info, h) sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name); myh = coff_link_hash_lookup - (coff_hash_table (info), tmp_name, false, false, true); + (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE); if (myh != NULL) { @@ -1919,7 +1922,7 @@ record_arm_to_thumb_glue (info, h) bh = NULL; val = globals->arm_glue_size + 1; bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name, - BSF_GLOBAL, s, val, NULL, true, false, &bh); + BSF_GLOBAL, s, val, NULL, TRUE, FALSE, &bh); free (tmp_name); @@ -1961,7 +1964,7 @@ record_thumb_to_arm_glue (info, h) sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name); myh = coff_link_hash_lookup - (coff_hash_table (info), tmp_name, false, false, true); + (coff_hash_table (info), tmp_name, FALSE, FALSE, TRUE); if (myh != NULL) { @@ -1972,7 +1975,7 @@ record_thumb_to_arm_glue (info, h) bh = NULL; val = globals->thumb_glue_size + 1; bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name, - BSF_GLOBAL, s, val, NULL, true, false, &bh); + BSF_GLOBAL, s, val, NULL, TRUE, FALSE, &bh); /* If we mark it 'thumb', the disassembler will do a better job. */ myh = (struct coff_link_hash_entry *) bh; @@ -1995,7 +1998,7 @@ record_thumb_to_arm_glue (info, h) bh = NULL; val = globals->thumb_glue_size + (globals->support_old_code ? 8 : 4); bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name, - BSF_LOCAL, s, val, NULL, true, false, &bh); + BSF_LOCAL, s, val, NULL, TRUE, FALSE, &bh); free (tmp_name); @@ -2009,7 +2012,7 @@ record_thumb_to_arm_glue (info, h) This function is called from the linker scripts in ld/emultempl/ {armcoff/pe}.em */ -boolean +bfd_boolean bfd_arm_get_bfd_for_interworking (abfd, info) bfd * abfd; struct bfd_link_info * info; @@ -2021,14 +2024,14 @@ bfd_arm_get_bfd_for_interworking (abfd, /* If we are only performing a partial link do not bother getting a bfd to hold the glue. */ if (info->relocateable) - return true; + return TRUE; globals = coff_arm_hash_table (info); BFD_ASSERT (globals != NULL); if (globals->bfd_of_glue_owner != NULL) - return true; + return TRUE; sec = bfd_get_section_by_name (abfd, ARM2THUMB_GLUE_SECTION_NAME); @@ -2041,7 +2044,7 @@ bfd_arm_get_bfd_for_interworking (abfd, if (sec == NULL || ! bfd_set_section_flags (abfd, sec, flags) || ! bfd_set_section_alignment (abfd, sec, 2)) - return false; + return FALSE; } sec = bfd_get_section_by_name (abfd, THUMB2ARM_GLUE_SECTION_NAME); @@ -2055,16 +2058,16 @@ bfd_arm_get_bfd_for_interworking (abfd, if (sec == NULL || ! bfd_set_section_flags (abfd, sec, flags) || ! bfd_set_section_alignment (abfd, sec, 2)) - return false; + return FALSE; } /* Save the bfd for later use. */ globals->bfd_of_glue_owner = abfd; - return true; + return TRUE; } -boolean +bfd_boolean bfd_arm_process_before_allocation (abfd, info, support_old_code) bfd * abfd; struct bfd_link_info * info; @@ -2076,7 +2079,7 @@ bfd_arm_process_before_allocation (abfd, /* If we are only performing a partial link do not bother to construct any glue. */ if (info->relocateable) - return true; + return TRUE; /* Here we have a bfd that is to be included on the link. We have a hook to do reloc rummaging, before section sizes are nailed down. */ @@ -2094,7 +2097,7 @@ bfd_arm_process_before_allocation (abfd, sec = abfd->sections; if (sec == NULL) - return true; + return TRUE; for (; sec != NULL; sec = sec->next) { @@ -2178,7 +2181,7 @@ bfd_arm_process_before_allocation (abfd, } } - return true; + return TRUE; } #endif /* ! defined (COFF_IMAGE_WITH_PE) */ @@ -2198,14 +2201,14 @@ bfd_arm_process_before_allocation (abfd, /* When doing a relocateable link, we want to convert ARM26 relocs into ARM26D relocs. */ -static boolean +static bfd_boolean coff_arm_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp) bfd *obfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; bfd *ibfd; asection *sec; struct internal_reloc *irel; - boolean *adjustedp; + bfd_boolean *adjustedp; { if (irel->r_type == 3) { @@ -2218,8 +2221,8 @@ coff_arm_adjust_symndx (obfd, info, ibfd && h->root.u.def.section->output_section == sec->output_section) irel->r_type = 7; } - *adjustedp = false; - return true; + *adjustedp = FALSE; + return TRUE; } /* Called when merging the private data areas of two BFDs. @@ -2227,7 +2230,7 @@ coff_arm_adjust_symndx (obfd, info, ibfd attempting to merge binaries compiled for different ARM targets, eg different CPUs or differents APCS's. */ -static boolean +static bfd_boolean coff_arm_merge_private_bfd_data (ibfd, obfd) bfd * ibfd; bfd * obfd; @@ -2235,14 +2238,14 @@ coff_arm_merge_private_bfd_data (ibfd, o BFD_ASSERT (ibfd != NULL && obfd != NULL); if (ibfd == obfd) - return true; + return TRUE; /* If the two formats are different we cannot merge anything. This is not an error, since it is permissable to change the input and output formats. */ if ( ibfd->xvec->flavour != bfd_target_coff_flavour || obfd->xvec->flavour != bfd_target_coff_flavour) - return true; + return TRUE; /* Verify that the APCS is the same for the two BFDs */ if (APCS_SET (ibfd)) @@ -2260,7 +2263,7 @@ coff_arm_merge_private_bfd_data (ibfd, o ); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } if (APCS_FLOAT_FLAG (obfd) != APCS_FLOAT_FLAG (ibfd)) @@ -2278,7 +2281,7 @@ coff_arm_merge_private_bfd_data (ibfd, o bfd_get_filename (obfd)); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } if (PIC_FLAG (obfd) != PIC_FLAG (ibfd)) @@ -2295,7 +2298,7 @@ coff_arm_merge_private_bfd_data (ibfd, o bfd_get_filename (obfd)); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } } else @@ -2334,12 +2337,12 @@ coff_arm_merge_private_bfd_data (ibfd, o } } - return true; + return TRUE; } /* Display the flags field. */ -static boolean +static bfd_boolean coff_arm_print_private_bfd_data (abfd, ptr) bfd * abfd; PTR ptr; @@ -2376,7 +2379,7 @@ coff_arm_print_private_bfd_data (abfd, p fputc ('\n', file); - return true; + return TRUE; } /* Copies the given flags into the coff_tdata.flags field. @@ -2386,7 +2389,7 @@ coff_arm_print_private_bfd_data (abfd, p Note: Although this function is static, it is explicitly called from both coffcode.h and peicode.h. */ -static boolean +static bfd_boolean _bfd_coff_arm_set_private_flags (abfd, flags) bfd * abfd; flagword flags; @@ -2404,7 +2407,7 @@ _bfd_coff_arm_set_private_flags (abfd, f || (APCS_FLOAT_FLAG (abfd) != (flags & F_APCS_FLOAT)) || (PIC_FLAG (abfd) != (flags & F_PIC)) )) - return false; + return FALSE; flag |= (flags & (F_APCS_FLOAT | F_PIC)); @@ -2431,13 +2434,13 @@ _bfd_coff_arm_set_private_flags (abfd, f SET_INTERWORK_FLAG (abfd, flag); - return true; + return TRUE; } /* Copy the important parts of the target specific data from one instance of a BFD to another. */ -static boolean +static bfd_boolean coff_arm_copy_private_bfd_data (src, dest) bfd * src; bfd * dest; @@ -2445,12 +2448,12 @@ coff_arm_copy_private_bfd_data (src, des BFD_ASSERT (src != NULL && dest != NULL); if (src == dest) - return true; + return TRUE; /* If the destination is not in the same format as the source, do not do the copy. */ if (src->xvec != dest->xvec) - return true; + return TRUE; /* copy the flags field */ if (APCS_SET (src)) @@ -2459,13 +2462,13 @@ coff_arm_copy_private_bfd_data (src, des { /* If the src and dest have different APCS flag bits set, fail. */ if (APCS_26_FLAG (dest) != APCS_26_FLAG (src)) - return false; + return FALSE; if (APCS_FLOAT_FLAG (dest) != APCS_FLOAT_FLAG (src)) - return false; + return FALSE; if (PIC_FLAG (dest) != PIC_FLAG (src)) - return false; + return FALSE; } else SET_APCS_FLAGS (dest, APCS_26_FLAG (src) | APCS_FLOAT_FLAG (src) @@ -2498,7 +2501,7 @@ Warning: Clearing the interworking flag } } - return true; + return TRUE; } /* Note: the definitions here of LOCAL_LABEL_PREFIX and USER_LABEL_PREIFX @@ -2513,7 +2516,7 @@ Warning: Clearing the interworking flag non-local. b) Allow other prefixes than ".", e.g. an empty prefix would cause all labels of the form Lxxx to be stripped. */ -static boolean +static bfd_boolean coff_arm_is_local_label_name (abfd, name) bfd * abfd ATTRIBUTE_UNUSED; const char * name; @@ -2522,7 +2525,7 @@ coff_arm_is_local_label_name (abfd, name if (USER_LABEL_PREFIX[0] != 0) { if (strncmp (name, USER_LABEL_PREFIX, strlen (USER_LABEL_PREFIX)) == 0) - return false; + return FALSE; } #endif @@ -2535,7 +2538,7 @@ coff_arm_is_local_label_name (abfd, name size_t len = strlen (LOCAL_LABEL_PREFIX); if (strncmp (name, LOCAL_LABEL_PREFIX, len) != 0) - return false; + return FALSE; /* Perform the checks below for the rest of the name. */ name += len; @@ -2553,7 +2556,7 @@ coff_arm_is_local_label_name (abfd, name krk@cygnus.com */ -static boolean +static bfd_boolean coff_arm_link_output_has_begun (sub, info) bfd * sub; struct coff_final_link_info * info; @@ -2562,7 +2565,7 @@ coff_arm_link_output_has_begun (sub, inf || sub == coff_arm_hash_table (info->info)->bfd_of_glue_owner); } -static boolean +static bfd_boolean coff_arm_final_link_postscript (abfd, pfinfo) bfd * abfd ATTRIBUTE_UNUSED; struct coff_final_link_info * pfinfo; @@ -2576,12 +2579,12 @@ coff_arm_final_link_postscript (abfd, pf if (globals->bfd_of_glue_owner != NULL) { if (! _bfd_coff_link_input_bfd (pfinfo, globals->bfd_of_glue_owner)) - return false; + return FALSE; - globals->bfd_of_glue_owner->output_has_begun = true; + globals->bfd_of_glue_owner->output_has_begun = TRUE; } - return true; + return TRUE; } #include "coffcode.h" diff -uprN binutils-2.13.90.0.16/bfd/coff-aux.c binutils-2.13.90.0.18/bfd/coff-aux.c --- binutils-2.13.90.0.16/bfd/coff-aux.c Fri Mar 9 11:15:29 2001 +++ binutils-2.13.90.0.18/bfd/coff-aux.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Apple M68K COFF A/UX 3.x files. - Copyright 1996, 1997, 2000 Free Software Foundation, Inc. + Copyright 1996, 1997, 2000, 2002 Free Software Foundation, Inc. Written by Richard Henderson . This file is part of BFD, the Binary File Descriptor library. @@ -40,9 +40,9 @@ Foundation, Inc., 59 Temple Place - Suit #include "bfd.h" #include "sysdep.h" -static boolean coff_m68k_aux_link_add_one_symbol +static bfd_boolean coff_m68k_aux_link_add_one_symbol PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, - asection *, bfd_vma, const char *, boolean, boolean, + asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **)); #define coff_link_add_one_symbol coff_m68k_aux_link_add_one_symbol @@ -56,7 +56,7 @@ static boolean coff_m68k_aux_link_add_on shared libraries work here, but can work if you are careful with what you include in the shared object. */ -static boolean +static bfd_boolean coff_m68k_aux_link_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp) struct bfd_link_info *info; @@ -66,8 +66,8 @@ coff_m68k_aux_link_add_one_symbol (info, asection *section; bfd_vma value; const char *string; - boolean copy; - boolean collect; + bfd_boolean copy; + bfd_boolean collect; struct bfd_link_hash_entry **hashp; { struct bfd_link_hash_entry *h; @@ -86,21 +86,21 @@ coff_m68k_aux_link_add_one_symbol (info, } else { - h = bfd_link_hash_lookup (info->hash, name, true, copy, false); + h = bfd_link_hash_lookup (info->hash, name, TRUE, copy, FALSE); if (h == NULL) { if (hashp != NULL) *hashp = NULL; - return false; + return FALSE; } } if (info->notice_hash != (struct bfd_hash_table *) NULL - && (bfd_hash_lookup (info->notice_hash, name, false, false) + && (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != (struct bfd_hash_entry *) NULL)) { if (! (*info->callbacks->notice) (info, name, abfd, section, value)) - return false; + return FALSE; } if (hashp != (struct bfd_link_hash_entry **) NULL) @@ -121,10 +121,10 @@ coff_m68k_aux_link_add_one_symbol (info, { h->u.def.section = section; h->u.def.value = value; - return true; + return TRUE; } else if (bfd_is_abs_section (section) && !bfd_is_abs_section (msec)) - return true; + return TRUE; } } diff -uprN binutils-2.13.90.0.16/bfd/coff-h8300.c binutils-2.13.90.0.18/bfd/coff-h8300.c --- binutils-2.13.90.0.16/bfd/coff-h8300.c Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/coff-h8300.c Tue Jan 21 10:21:32 2003 @@ -28,6 +28,7 @@ #include "coff/h8300.h" #include "coff/internal.h" #include "libcoff.h" +#include "libiberty.h" #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) @@ -62,21 +63,31 @@ static struct bfd_hash_entry * funcvec_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean +static bfd_boolean funcvec_hash_table_init PARAMS ((struct funcvec_hash_table *, bfd *, - struct bfd_hash_entry *(*) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)))); - -static bfd_reloc_status_type special PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static int select_reloc PARAMS ((reloc_howto_type *)); -static void rtype2howto PARAMS ((arelent *, struct internal_reloc *)); -static void reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); -static boolean h8300_symbol_address_p PARAMS ((bfd *, asection *, bfd_vma)); -static int h8300_reloc16_estimate PARAMS ((bfd *, asection *, arelent *, unsigned int, struct bfd_link_info *)); -static void h8300_reloc16_extra_cases PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, bfd_byte *, unsigned int *, unsigned int *)); -static boolean h8300_bfd_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); + struct bfd_hash_entry *(*) (struct bfd_hash_entry *, + struct bfd_hash_table *, + const char *))); + +static bfd_reloc_status_type special + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static int select_reloc + PARAMS ((reloc_howto_type *)); +static void rtype2howto + PARAMS ((arelent *, struct internal_reloc *)); +static void reloc_processing + PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); +static bfd_boolean h8300_symbol_address_p + PARAMS ((bfd *, asection *, bfd_vma)); +static int h8300_reloc16_estimate + PARAMS ((bfd *, asection *, arelent *, unsigned int, + struct bfd_link_info *)); +static void h8300_reloc16_extra_cases + PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, + bfd_byte *, unsigned int *, unsigned int *)); +static bfd_boolean h8300_bfd_link_add_symbols + PARAMS ((bfd *, struct bfd_link_info *)); /* To lookup a value in the function vector hash table. */ #define funcvec_hash_lookup(table, string, create, copy) \ @@ -127,8 +138,8 @@ funcvec_hash_newfunc (entry, gen_table, subclass. */ if (ret == NULL) ret = ((struct funcvec_hash_entry *) - bfd_hash_allocate (gen_table, - sizeof (struct funcvec_hash_entry))); + bfd_hash_allocate (gen_table, + sizeof (struct funcvec_hash_entry))); if (ret == NULL) return NULL; @@ -159,13 +170,13 @@ funcvec_hash_newfunc (entry, gen_table, /* Initialize the function vector hash table. */ -static boolean +static bfd_boolean funcvec_hash_table_init (table, abfd, newfunc) struct funcvec_hash_table *table; bfd *abfd; - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); + struct bfd_hash_entry *(*newfunc) + PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, + const char *)); { /* Initialize our local fields, then call the generic initialization routine. */ @@ -175,7 +186,7 @@ funcvec_hash_table_init (table, abfd, ne } /* Create the derived linker hash table. We use a derived hash table - basically to hold "static" information during an h8/300 coff link + basically to hold "static" information during an H8/300 coff link without using static variables. */ static struct bfd_link_hash_table * @@ -232,37 +243,37 @@ special (abfd, reloc_entry, symbol, data } static reloc_howto_type howto_table[] = { - HOWTO (R_RELBYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "8", false, 0x000000ff, 0x000000ff, false), - HOWTO (R_RELWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "16", false, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_RELLONG, 0, 2, 32, false, 0, complain_overflow_bitfield, special, "32", false, 0xffffffff, 0xffffffff, false), - HOWTO (R_PCRBYTE, 0, 0, 8, true, 0, complain_overflow_signed, special, "DISP8", false, 0x000000ff, 0x000000ff, true), - HOWTO (R_PCRWORD, 0, 1, 16, true, 0, complain_overflow_signed, special, "DISP16", false, 0x0000ffff, 0x0000ffff, true), - HOWTO (R_PCRLONG, 0, 2, 32, true, 0, complain_overflow_signed, special, "DISP32", false, 0xffffffff, 0xffffffff, true), - HOWTO (R_MOV16B1, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "relaxable mov.b:16", false, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_MOV16B2, 0, 1, 8, false, 0, complain_overflow_bitfield, special, "relaxed mov.b:16", false, 0x000000ff, 0x000000ff, false), - HOWTO (R_JMP1, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "16/pcrel", false, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_JMP2, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "pcrecl/16", false, 0x000000ff, 0x000000ff, false), - HOWTO (R_JMPL1, 0, 2, 32, false, 0, complain_overflow_bitfield, special, "24/pcrell", false, 0x00ffffff, 0x00ffffff, false), - HOWTO (R_JMPL2, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "pc8/24", false, 0x000000ff, 0x000000ff, false), - HOWTO (R_MOV24B1, 0, 1, 32, false, 0, complain_overflow_bitfield, special, "relaxable mov.b:24", false, 0xffffffff, 0xffffffff, false), - HOWTO (R_MOV24B2, 0, 1, 8, false, 0, complain_overflow_bitfield, special, "relaxed mov.b:24", false, 0x0000ffff, 0x0000ffff, false), + HOWTO (R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "8", FALSE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "16", FALSE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, special, "32", FALSE, 0xffffffff, 0xffffffff, FALSE), + HOWTO (R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "DISP8", FALSE, 0x000000ff, 0x000000ff, TRUE), + HOWTO (R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, special, "DISP16", FALSE, 0x0000ffff, 0x0000ffff, TRUE), + HOWTO (R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, special, "DISP32", FALSE, 0xffffffff, 0xffffffff, TRUE), + HOWTO (R_MOV16B1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "relaxable mov.b:16", FALSE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_MOV16B2, 0, 1, 8, FALSE, 0, complain_overflow_bitfield, special, "relaxed mov.b:16", FALSE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (R_JMP1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "16/pcrel", FALSE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_JMP2, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "pcrecl/16", FALSE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (R_JMPL1, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, special, "24/pcrell", FALSE, 0x00ffffff, 0x00ffffff, FALSE), + HOWTO (R_JMPL2, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "pc8/24", FALSE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (R_MOV24B1, 0, 1, 32, FALSE, 0, complain_overflow_bitfield, special, "relaxable mov.b:24", FALSE, 0xffffffff, 0xffffffff, FALSE), + HOWTO (R_MOV24B2, 0, 1, 8, FALSE, 0, complain_overflow_bitfield, special, "relaxed mov.b:24", FALSE, 0x0000ffff, 0x0000ffff, FALSE), /* An indirect reference to a function. This causes the function's address to be added to the function vector in lo-mem and puts the address of the function vector's entry in the jsr instruction. */ - HOWTO (R_MEM_INDIRECT, 0, 0, 8, false, 0, complain_overflow_bitfield, special, "8/indirect", false, 0x000000ff, 0x000000ff, false), + HOWTO (R_MEM_INDIRECT, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, special, "8/indirect", FALSE, 0x000000ff, 0x000000ff, FALSE), /* Internal reloc for relaxing. This is created when a 16bit pc-relative branch is turned into an 8bit pc-relative branch. */ - HOWTO (R_PCRWORD_B, 0, 0, 8, true, 0, complain_overflow_bitfield, special, "relaxed bCC:16", false, 0x000000ff, 0x000000ff, false), + HOWTO (R_PCRWORD_B, 0, 0, 8, TRUE, 0, complain_overflow_bitfield, special, "relaxed bCC:16", FALSE, 0x000000ff, 0x000000ff, FALSE), - HOWTO (R_MOVL1, 0, 2, 32, false, 0, complain_overflow_bitfield,special, "32/24 relaxable move", false, 0xffffffff, 0xffffffff, false), + HOWTO (R_MOVL1, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,special, "32/24 relaxable move", FALSE, 0xffffffff, 0xffffffff, FALSE), - HOWTO (R_MOVL2, 0, 1, 16, false, 0, complain_overflow_bitfield, special, "32/24 relaxed move", false, 0x0000ffff, 0x0000ffff, false), + HOWTO (R_MOVL2, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, special, "32/24 relaxed move", FALSE, 0x0000ffff, 0x0000ffff, FALSE), - HOWTO (R_BCC_INV, 0, 0, 8, true, 0, complain_overflow_signed, special, "DISP8 inverted", false, 0x000000ff, 0x000000ff, true), + HOWTO (R_BCC_INV, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "DISP8 inverted", FALSE, 0x000000ff, 0x000000ff, TRUE), - HOWTO (R_JMP_DEL, 0, 0, 8, true, 0, complain_overflow_signed, special, "Deleted jump", false, 0x000000ff, 0x000000ff, true), + HOWTO (R_JMP_DEL, 0, 0, 8, TRUE, 0, complain_overflow_signed, special, "Deleted jump", FALSE, 0x000000ff, 0x000000ff, TRUE), }; /* Turn a howto into a reloc number. */ @@ -401,7 +412,7 @@ reloc_processing (relent, reloc, symbols #endif } -static boolean +static bfd_boolean h8300_symbol_address_p (abfd, input_section, address) bfd *abfd; asection *input_section; @@ -421,10 +432,10 @@ h8300_symbol_address_p (abfd, input_sect && (input_section->output_section->vma + input_section->output_offset + p->value) == address) - return true; + return TRUE; s++; } - return false; + return FALSE; } /* If RELOC represents a relaxable instruction/reloc, change it into @@ -505,18 +516,18 @@ h8300_reloc16_estimate (abfd, input_sect Only perform this optimisation for jumps (code 0x5a) not subroutine calls, as otherwise it could transform: - - mov.w r0,r0 - beq .L1 - jsr @_bar - .L1: rts - _bar: rts + + mov.w r0,r0 + beq .L1 + jsr @_bar + .L1: rts + _bar: rts into: - mov.w r0,r0 - bne _bar - rts - _bar: rts - + mov.w r0,r0 + bne _bar + rts + _bar: rts + which changes the call (jsr) into a branch (bne). */ if (code == 0x5a && gap <= 126 @@ -554,7 +565,7 @@ h8300_reloc16_estimate (abfd, input_sect pc-relative branch. */ case R_PCRWORD: /* Get the address of the target of this branch, add one to the value - because the addend field in PCrel jumps is off by -1. */ + because the addend field in PCrel jumps is off by -1. */ value = bfd_coff_reloc16_get_value (reloc, link_info, input_section) + 1; /* Get the address of the next instruction if we were to relax. */ @@ -639,7 +650,7 @@ h8300_reloc16_estimate (abfd, input_sect value = bfd_coff_reloc16_get_value (reloc, link_info, input_section); /* If this address is in 0x0000..0x7fff inclusive or - 0xff8000..0xffffff inclusive, then it can be relaxed. */ + 0xff8000..0xffffff inclusive, then it can be relaxed. */ if (value <= 0x7fff || value >= 0xff8000) { /* Change the reloc type. */ @@ -1081,7 +1092,25 @@ h8300_reloc16_extra_cases (abfd, link_in const char *name; struct funcvec_hash_table *ftab; struct funcvec_hash_entry *h; - asection *vectors_sec = h8300_coff_hash_table (link_info)->vectors_sec; + struct h8300_coff_link_hash_table *htab; + asection *vectors_sec; + + if (link_info->hash->creator != abfd->xvec) + { + (*_bfd_error_handler) + (_("cannot handle R_MEM_INDIRECT reloc when using %s output"), + link_info->hash->creator->name); + + /* What else can we do? This function doesn't allow return + of an error, and we don't want to call abort as that + indicates an internal error. */ +#ifndef EXIT_FAILURE +#define EXIT_FAILURE 1 +#endif + xexit (EXIT_FAILURE); + } + htab = h8300_coff_hash_table (link_info); + vectors_sec = htab->vectors_sec; /* First see if this is a reloc against the absolute symbol or against a symbol with a nonnegative value <= 0xff. */ @@ -1130,12 +1159,12 @@ h8300_reloc16_extra_cases (abfd, link_in name = new_name; } - ftab = h8300_coff_hash_table (link_info)->funcvec_hash_table; - h = funcvec_hash_lookup (ftab, name, false, false); + ftab = htab->funcvec_hash_table; + h = funcvec_hash_lookup (ftab, name, FALSE, FALSE); /* This shouldn't ever happen. If it does that means we've got data corruption of some kind. Aborting seems like a reasonable - think to do here. */ + thing to do here. */ if (h == NULL || vectors_sec == NULL) abort (); @@ -1196,7 +1225,7 @@ h8300_reloc16_extra_cases (abfd, link_in from this BFD to the bfd linker hash table. It may add a few selected static symbols to the bfd linker hash table. */ -static boolean +static bfd_boolean h8300_bfd_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1204,50 +1233,53 @@ h8300_bfd_link_add_symbols (abfd, info) asection *sec; struct funcvec_hash_table *funcvec_hash_table; bfd_size_type amt; + struct h8300_coff_link_hash_table *htab; + + /* Add the symbols using the generic code. */ + _bfd_generic_link_add_symbols (abfd, info); + + if (info->hash->creator != abfd->xvec) + return TRUE; + + htab = h8300_coff_hash_table (info); /* If we haven't created a vectors section, do so now. */ - if (!h8300_coff_hash_table (info)->vectors_sec) + if (!htab->vectors_sec) { flagword flags; /* Make sure the appropriate flags are set, including SEC_IN_MEMORY. */ flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_READONLY); - h8300_coff_hash_table (info)->vectors_sec = bfd_make_section (abfd, - ".vectors"); + htab->vectors_sec = bfd_make_section (abfd, ".vectors"); /* If the section wasn't created, or we couldn't set the flags, - quit quickly now, rather than dieing a painful death later. */ - if (! h8300_coff_hash_table (info)->vectors_sec - || ! bfd_set_section_flags (abfd, - h8300_coff_hash_table(info)->vectors_sec, - flags)) - return false; + quit quickly now, rather than dying a painful death later. */ + if (!htab->vectors_sec + || !bfd_set_section_flags (abfd, htab->vectors_sec, flags)) + return FALSE; /* Also create the vector hash table. */ amt = sizeof (struct funcvec_hash_table); funcvec_hash_table = (struct funcvec_hash_table *) bfd_alloc (abfd, amt); if (!funcvec_hash_table) - return false; + return FALSE; /* And initialize the funcvec hash table. */ if (!funcvec_hash_table_init (funcvec_hash_table, abfd, funcvec_hash_newfunc)) { bfd_release (abfd, funcvec_hash_table); - return false; + return FALSE; } /* Store away a pointer to the funcvec hash table. */ - h8300_coff_hash_table (info)->funcvec_hash_table = funcvec_hash_table; + htab->funcvec_hash_table = funcvec_hash_table; } /* Load up the function vector hash table. */ - funcvec_hash_table = h8300_coff_hash_table (info)->funcvec_hash_table; - - /* Add the symbols using the generic code. */ - _bfd_generic_link_add_symbols (abfd, info); + funcvec_hash_table = htab->funcvec_hash_table; /* Now scan the relocs for all the sections in this bfd; create additional space in the .vectors section as needed. */ @@ -1264,7 +1296,7 @@ h8300_bfd_link_add_symbols (abfd, info) relocs = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); if (!relocs) - return false; + return FALSE; /* The symbols should have been read in by _bfd_generic link_add_symbols call abovec, so we can cheat and use the pointer to them that was @@ -1312,27 +1344,27 @@ h8300_bfd_link_add_symbols (abfd, info) } /* Look this symbol up in the function vector hash table. */ - ftab = h8300_coff_hash_table (info)->funcvec_hash_table; - h = funcvec_hash_lookup (ftab, name, false, false); + ftab = htab->funcvec_hash_table; + h = funcvec_hash_lookup (ftab, name, FALSE, FALSE); /* If this symbol isn't already in the hash table, add it and bump up the size of the hash table. */ if (h == NULL) { - h = funcvec_hash_lookup (ftab, name, true, true); + h = funcvec_hash_lookup (ftab, name, TRUE, TRUE); if (h == NULL) { free (relocs); - return false; + return FALSE; } /* Bump the size of the vectors section. Each vector takes 2 bytes on the h8300 and 4 bytes on the h8300h. */ if (bfd_get_mach (abfd) == bfd_mach_h8300) - h8300_coff_hash_table (info)->vectors_sec->_raw_size += 2; + htab->vectors_sec->_raw_size += 2; else if (bfd_get_mach (abfd) == bfd_mach_h8300h || bfd_get_mach (abfd) == bfd_mach_h8300s) - h8300_coff_hash_table (info)->vectors_sec->_raw_size += 4; + htab->vectors_sec->_raw_size += 4; } } } @@ -1343,7 +1375,7 @@ h8300_bfd_link_add_symbols (abfd, info) /* Now actually allocate some space for the function vector. It's wasteful to do this more than once, but this is easier. */ - sec = h8300_coff_hash_table (info)->vectors_sec; + sec = htab->vectors_sec; if (sec->_raw_size != 0) { /* Free the old contents. */ @@ -1354,7 +1386,7 @@ h8300_bfd_link_add_symbols (abfd, info) sec->contents = bfd_malloc (sec->_raw_size); } - return true; + return TRUE; } #define coff_reloc16_extra_cases h8300_reloc16_extra_cases diff -uprN binutils-2.13.90.0.16/bfd/coff-h8500.c binutils-2.13.90.0.18/bfd/coff-h8500.c --- binutils-2.13.90.0.16/bfd/coff-h8500.c Mon Oct 1 15:25:20 2001 +++ binutils-2.13.90.0.18/bfd/coff-h8500.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Hitachi H8/500 COFF binaries. - Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001 + Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Cygnus Support. Written by Steve Chamberlain, . @@ -36,38 +36,38 @@ static void extra_case PARAMS ((bf #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) static reloc_howto_type r_imm8 = -HOWTO (R_H8500_IMM8, 0, 1, 8, false, 0, - complain_overflow_bitfield, 0, "r_imm8", true, 0x000000ff, 0x000000ff, false); +HOWTO (R_H8500_IMM8, 0, 1, 8, FALSE, 0, + complain_overflow_bitfield, 0, "r_imm8", TRUE, 0x000000ff, 0x000000ff, FALSE); static reloc_howto_type r_imm16 = -HOWTO (R_H8500_IMM16, 0, 1, 16, false, 0, - complain_overflow_bitfield, 0, "r_imm16", true, 0x0000ffff, 0x0000ffff, false); +HOWTO (R_H8500_IMM16, 0, 1, 16, FALSE, 0, + complain_overflow_bitfield, 0, "r_imm16", TRUE, 0x0000ffff, 0x0000ffff, FALSE); static reloc_howto_type r_imm24 = -HOWTO (R_H8500_IMM24, 0, 1, 24, false, 0, - complain_overflow_bitfield, 0, "r_imm24", true, 0x00ffffff, 0x00ffffff, false); +HOWTO (R_H8500_IMM24, 0, 1, 24, FALSE, 0, + complain_overflow_bitfield, 0, "r_imm24", TRUE, 0x00ffffff, 0x00ffffff, FALSE); static reloc_howto_type r_imm32 = -HOWTO (R_H8500_IMM32, 0, 1, 32, false, 0, - complain_overflow_bitfield, 0, "r_imm32", true, 0xffffffff, 0xffffffff, false); +HOWTO (R_H8500_IMM32, 0, 1, 32, FALSE, 0, + complain_overflow_bitfield, 0, "r_imm32", TRUE, 0xffffffff, 0xffffffff, FALSE); static reloc_howto_type r_high8 = -HOWTO (R_H8500_HIGH8, 0, 1, 8, false, 0, - complain_overflow_dont, 0, "r_high8", true, 0x000000ff, 0x000000ff, false); +HOWTO (R_H8500_HIGH8, 0, 1, 8, FALSE, 0, + complain_overflow_dont, 0, "r_high8", TRUE, 0x000000ff, 0x000000ff, FALSE); static reloc_howto_type r_low16 = -HOWTO (R_H8500_LOW16, 0, 1, 16, false, 0, - complain_overflow_dont, 0, "r_low16", true, 0x0000ffff, 0x0000ffff, false); +HOWTO (R_H8500_LOW16, 0, 1, 16, FALSE, 0, + complain_overflow_dont, 0, "r_low16", TRUE, 0x0000ffff, 0x0000ffff, FALSE); static reloc_howto_type r_pcrel8 = -HOWTO (R_H8500_PCREL8, 0, 1, 8, true, 0, complain_overflow_signed, 0, "r_pcrel8", true, 0, 0, true); +HOWTO (R_H8500_PCREL8, 0, 1, 8, TRUE, 0, complain_overflow_signed, 0, "r_pcrel8", TRUE, 0, 0, TRUE); static reloc_howto_type r_pcrel16 = -HOWTO (R_H8500_PCREL16, 0, 1, 16, true, 0, complain_overflow_signed, 0, "r_pcrel16", true, 0, 0, true); +HOWTO (R_H8500_PCREL16, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "r_pcrel16", TRUE, 0, 0, TRUE); static reloc_howto_type r_high16 = -HOWTO (R_H8500_HIGH16, 0, 1, 8, false, 0, - complain_overflow_dont, 0, "r_high16", true, 0x000ffff, 0x0000ffff, false); +HOWTO (R_H8500_HIGH16, 0, 1, 8, FALSE, 0, + complain_overflow_dont, 0, "r_high16", TRUE, 0x000ffff, 0x0000ffff, FALSE); /* Turn a howto into a reloc number. */ diff -uprN binutils-2.13.90.0.16/bfd/coff-i386.c binutils-2.13.90.0.18/bfd/coff-i386.c --- binutils-2.13.90.0.16/bfd/coff-i386.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/coff-i386.c Mon Dec 16 12:22:51 2002 @@ -179,12 +179,12 @@ coff_i386_reloc (abfd, reloc_entry, symb } #ifdef COFF_WITH_PE -/* Return true if this relocation should appear in the output .reloc +/* Return TRUE if this relocation should appear in the output .reloc section. */ -static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); +static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); -static boolean in_reloc_p (abfd, howto) +static bfd_boolean in_reloc_p (abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type *howto; { @@ -193,7 +193,7 @@ static boolean in_reloc_p (abfd, howto) #endif /* COFF_WITH_PE */ #ifndef PCRELOFFSET -#define PCRELOFFSET false +#define PCRELOFFSET FALSE #endif static reloc_howto_type howto_table[] = @@ -208,29 +208,29 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "dir32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* PE IMAGE_REL_I386_DIR32NB relocation (7). */ HOWTO (R_IMAGEBASE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "rva32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (010), EMPTY_HOWTO (011), EMPTY_HOWTO (012), @@ -243,12 +243,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -257,12 +257,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -271,12 +271,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -285,12 +285,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "DISP8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -299,12 +299,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "DISP16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -313,12 +313,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_i386_reloc, /* special_function */ "DISP32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ PCRELOFFSET) /* pcrel_offset */ @@ -388,11 +388,11 @@ static reloc_howto_type howto_table[] = and the regular routine is that we don't want to do anything for a relocateable link. */ -static boolean coff_pe_i386_relocate_section +static bfd_boolean coff_pe_i386_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); -static boolean +static bfd_boolean coff_pe_i386_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) @@ -406,7 +406,7 @@ coff_pe_i386_relocate_section (output_bf asection **sections; { if (info->relocateable) - return true; + return TRUE; return _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd, input_section, contents, @@ -539,15 +539,16 @@ coff_i386_reloc_type_lookup (abfd, code) a leading dot for local labels, so if TARGET_UNDERSCORE is defined we treat all symbols starting with L as local. */ -static boolean coff_i386_is_local_label_name PARAMS ((bfd *, const char *)); +static bfd_boolean coff_i386_is_local_label_name + PARAMS ((bfd *, const char *)); -static boolean +static bfd_boolean coff_i386_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == 'L') - return true; + return TRUE; return _bfd_coff_is_local_label_name (abfd, name); } diff -uprN binutils-2.13.90.0.16/bfd/coff-i860.c binutils-2.13.90.0.18/bfd/coff-i860.c --- binutils-2.13.90.0.16/bfd/coff-i860.c Mon Oct 1 15:25:20 2001 +++ binutils-2.13.90.0.18/bfd/coff-i860.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Intel 860 COFF files. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Created mostly by substituting "860" for "386" in coff-i386.c Harry Dolan , October 1995 @@ -136,7 +136,7 @@ coff_i860_reloc (abfd, reloc_entry, symb } #ifndef PCRELOFFSET -#define PCRELOFFSET false +#define PCRELOFFSET FALSE #endif static reloc_howto_type howto_table[] = @@ -151,29 +151,29 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "dir32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* {7}, */ HOWTO (R_IMAGEBASE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "rva32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (010), EMPTY_HOWTO (011), EMPTY_HOWTO (012), @@ -185,12 +185,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -198,12 +198,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -211,12 +211,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -224,12 +224,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "DISP8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -237,12 +237,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "DISP16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ PCRELOFFSET), /* pcrel_offset */ @@ -250,12 +250,12 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_i860_reloc, /* special_function */ "DISP32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ PCRELOFFSET) /* pcrel_offset */ diff -uprN binutils-2.13.90.0.16/bfd/coff-i960.c binutils-2.13.90.0.18/bfd/coff-i960.c --- binutils-2.13.90.0.16/bfd/coff-i960.c Mon Oct 1 15:25:20 2001 +++ binutils-2.13.90.0.18/bfd/coff-i960.c Mon Dec 16 12:22:51 2002 @@ -1,6 +1,6 @@ /* BFD back-end for Intel 960 COFF files. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001 - Free Software Foundation, Inc. + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, + 2002 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -29,21 +29,22 @@ Foundation, Inc., 59 Temple Place - Suit #include "coff/internal.h" #include "libcoff.h" /* to allow easier abstraction-breaking */ -static boolean coff_i960_is_local_label_name PARAMS ((bfd *, const char *)); +static bfd_boolean coff_i960_is_local_label_name + PARAMS ((bfd *, const char *)); static bfd_reloc_status_type optcall_callback PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type coff_i960_relocate PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static reloc_howto_type *coff_i960_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static boolean coff_i960_start_final_link +static bfd_boolean coff_i960_start_final_link PARAMS ((bfd *, struct bfd_link_info *)); -static boolean coff_i960_relocate_section +static bfd_boolean coff_i960_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); -static boolean coff_i960_adjust_symndx +static bfd_boolean coff_i960_adjust_symndx PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, - struct internal_reloc *, boolean *)); + struct internal_reloc *, bfd_boolean *)); #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (3) #define COFF_ALIGN_IN_SECTION_HEADER 1 @@ -59,7 +60,7 @@ static boolean coff_i960_adjust_symndx /* This set of local label names is taken from gas. */ -static boolean +static bfd_boolean coff_i960_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -266,15 +267,15 @@ coff_i960_relocate (abfd, reloc_entry, s } static reloc_howto_type howto_rellong = - HOWTO ((unsigned int) R_RELLONG, 0, 2, 32,false, 0, - complain_overflow_bitfield, coff_i960_relocate,"rellong", true, + HOWTO ((unsigned int) R_RELLONG, 0, 2, 32,FALSE, 0, + complain_overflow_bitfield, coff_i960_relocate,"rellong", TRUE, 0xffffffff, 0xffffffff, 0); static reloc_howto_type howto_iprmed = - HOWTO (R_IPRMED, 0, 2, 24,true,0, complain_overflow_signed, - coff_i960_relocate, "iprmed ", true, 0x00ffffff, 0x00ffffff, 0); + HOWTO (R_IPRMED, 0, 2, 24,TRUE,0, complain_overflow_signed, + coff_i960_relocate, "iprmed ", TRUE, 0x00ffffff, 0x00ffffff, 0); static reloc_howto_type howto_optcall = - HOWTO (R_OPTCALL, 0,2,24,true,0, complain_overflow_signed, - optcall_callback, "optcall", true, 0x00ffffff, 0x00ffffff, 0); + HOWTO (R_OPTCALL, 0,2,24,TRUE,0, complain_overflow_signed, + optcall_callback, "optcall", TRUE, 0x00ffffff, 0x00ffffff, 0); static reloc_howto_type * coff_i960_reloc_type_lookup (abfd, code) @@ -318,7 +319,7 @@ coff_i960_reloc_type_lookup (abfd, code) called at the start of the linking process, and it creates the necessary symbols. */ -static boolean +static bfd_boolean coff_i960_start_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -328,14 +329,14 @@ coff_i960_start_final_link (abfd, info) bfd_byte *esym; if (! info->relocateable) - return true; + return TRUE; esym = (bfd_byte *) bfd_malloc (symesz); if (esym == NULL) - return false; + return FALSE; if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0) - return false; + return FALSE; for (o = abfd->sections; o != NULL; o = o->next) { @@ -353,7 +354,7 @@ coff_i960_start_final_link (abfd, info) if (bfd_bwrite (esym, symesz, abfd) != symesz) { free (esym); - return false; + return FALSE; } obj_raw_syment_count (abfd) += 1; @@ -361,12 +362,12 @@ coff_i960_start_final_link (abfd, info) free (esym); - return true; + return TRUE; } /* The reloc processing routine for the optimized COFF linker. */ -static boolean +static bfd_boolean coff_i960_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -392,7 +393,7 @@ coff_i960_relocate_section (output_bfd, bfd_vma val; reloc_howto_type *howto; bfd_reloc_status_type rstat = bfd_reloc_ok; - boolean done; + bfd_boolean done; symndx = rel->r_symndx; @@ -419,7 +420,7 @@ coff_i960_relocate_section (output_bfd, case 27: howto = &howto_optcall; break; default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } val = 0; @@ -458,12 +459,12 @@ coff_i960_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } - done = false; + done = FALSE; if (howto->type == R_OPTCALL && ! info->relocateable && symndx != -1) { @@ -485,7 +486,7 @@ coff_i960_relocate_section (output_bfd, _("uncertain calling convention for non-COFF symbol"), input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; break; case C_LEAFSTAT: case C_LEAFEXT: @@ -521,7 +522,7 @@ coff_i960_relocate_section (output_bfd, bfd_put_32 (input_bfd, (bfd_vma) word, contents + (rel->r_vaddr - input_section->vma)); - done = true; + done = TRUE; } break; case C_SCALL: @@ -559,47 +560,47 @@ coff_i960_relocate_section (output_bfd, { name = _bfd_coff_internal_syment_name (input_bfd, sym, buf); if (name == NULL) - return false; + return FALSE; } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } } } - return true; + return TRUE; } /* Adjust the symbol index of any reloc against a global symbol to instead be a reloc against the internal symbol we created specially for the section. */ -static boolean +static bfd_boolean coff_i960_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp) bfd *obfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; bfd *ibfd; asection *sec ATTRIBUTE_UNUSED; struct internal_reloc *irel; - boolean *adjustedp; + bfd_boolean *adjustedp; { struct coff_link_hash_entry *h; - *adjustedp = false; + *adjustedp = FALSE; h = obj_coff_sym_hashes (ibfd)[irel->r_symndx]; if (h == NULL || (h->root.type != bfd_link_hash_defined && h->root.type != bfd_link_hash_defweak)) - return true; + return TRUE; irel->r_symndx = h->root.u.def.section->output_section->target_index - 1; - *adjustedp = true; + *adjustedp = TRUE; - return true; + return TRUE; } #define coff_bfd_is_local_label_name coff_i960_is_local_label_name diff -uprN binutils-2.13.90.0.16/bfd/coff-ia64.c binutils-2.13.90.0.18/bfd/coff-ia64.c --- binutils-2.13.90.0.16/bfd/coff-ia64.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-ia64.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for HP/Intel IA-64 COFF files. - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by David Mosberger This file is part of BFD, the Binary File Descriptor library. @@ -49,17 +49,17 @@ static reloc_howto_type howto_table[] = (cache_ptr)->howto = howto_table + (dst)->r_type; #ifdef COFF_WITH_PE -/* Return true if this relocation should +/* Return TRUE if this relocation should appear in the output .reloc section. */ -static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); +static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); -static boolean +static bfd_boolean in_reloc_p(abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type *howto ATTRIBUTE_UNUSED; { - return 0; /* We don't do relocs for now... */ + return FALSE; /* We don't do relocs for now... */ } #endif diff -uprN binutils-2.13.90.0.16/bfd/coff-m68k.c binutils-2.13.90.0.18/bfd/coff-m68k.c --- binutils-2.13.90.0.16/bfd/coff-m68k.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-m68k.c Mon Dec 16 12:22:51 2002 @@ -1,6 +1,6 @@ /* BFD back-end for Motorola 68000 COFF binaries. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1999, - 2000, 2001 + 2000, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. @@ -67,19 +67,20 @@ static reloc_howto_type *m68kcoff_common #define RELOC_SPECIAL_FN m68kcoff_common_addend_special_fn #endif -static boolean m68k_coff_is_local_label_name PARAMS ((bfd *, const char *)); +static bfd_boolean m68k_coff_is_local_label_name + PARAMS ((bfd *, const char *)); /* On the delta, a symbol starting with L% is local. We won't see such a symbol on other platforms, so it should be safe to always consider it local here. */ -static boolean +static bfd_boolean m68k_coff_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == 'L' && name[1] == '%') - return true; + return TRUE; return _bfd_coff_is_local_label_name (abfd, name); } @@ -100,13 +101,13 @@ static #endif reloc_howto_type m68kcoff_howto_table[] = { - HOWTO (R_RELBYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "8", true, 0x000000ff,0x000000ff, false), - HOWTO (R_RELWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "16", true, 0x0000ffff,0x0000ffff, false), - HOWTO (R_RELLONG, 0, 2, 32, false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "32", true, 0xffffffff,0xffffffff, false), - HOWTO (R_PCRBYTE, 0, 0, 8, true, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP8", true, 0x000000ff,0x000000ff, false), - HOWTO (R_PCRWORD, 0, 1, 16, true, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP16", true, 0x0000ffff,0x0000ffff, false), - HOWTO (R_PCRLONG, 0, 2, 32, true, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP32", true, 0xffffffff,0xffffffff, false), - HOWTO (R_RELLONG_NEG, 0, -2, 32, false, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "-32", true, 0xffffffff,0xffffffff, false), + HOWTO (R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "32", TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO (R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO (R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO (R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, RELOC_SPECIAL_FN, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO (R_RELLONG_NEG, 0, -2, 32, FALSE, 0, complain_overflow_bitfield, RELOC_SPECIAL_FN, "-32", TRUE, 0xffffffff,0xffffffff, FALSE), }; #endif /* not ONLY_DECLARE_RELOCS */ @@ -430,7 +431,7 @@ m68kcoff_common_addend_rtype_to_howto (a after the add_symbols entry point has been called for all the objects, and before the final_link entry point is called. */ -boolean +bfd_boolean bfd_m68k_coff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg) bfd *abfd; struct bfd_link_info *info; @@ -449,19 +450,19 @@ bfd_m68k_coff_create_embedded_relocs (ab *errmsg = NULL; if (datasec->reloc_count == 0) - return true; + return TRUE; extsyms = obj_coff_external_syms (abfd); symesz = bfd_coff_symesz (abfd); - irel = _bfd_coff_read_internal_relocs (abfd, datasec, true, NULL, false, + irel = _bfd_coff_read_internal_relocs (abfd, datasec, TRUE, NULL, FALSE, NULL); irelend = irel + datasec->reloc_count; amt = (bfd_size_type) datasec->reloc_count * 12; relsec->contents = (bfd_byte *) bfd_alloc (abfd, amt); if (relsec->contents == NULL) - return false; + return FALSE; p = relsec->contents; @@ -480,7 +481,7 @@ bfd_m68k_coff_create_embedded_relocs (ab { *errmsg = _("unsupported reloc type"); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (irel->r_symndx == -1) @@ -512,7 +513,7 @@ bfd_m68k_coff_create_embedded_relocs (ab strncpy (p + 4, targetsec->output_section->name, 8); } - return true; + return TRUE; } #endif /* neither ONLY_DECLARE_RELOCS not STATIC_RELOCS */ diff -uprN binutils-2.13.90.0.16/bfd/coff-m88k.c binutils-2.13.90.0.18/bfd/coff-m88k.c --- binutils-2.13.90.0.16/bfd/coff-m88k.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-m88k.c Mon Dec 16 12:22:51 2002 @@ -1,6 +1,6 @@ /* BFD back-end for Motorola 88000 COFF "Binary Compatability Standard" files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 1999, 2000, - 2001 + 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. @@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "coff/internal.h" #include "libcoff.h" -static boolean m88k_is_local_label_name PARAMS ((bfd *, const char *)); +static bfd_boolean m88k_is_local_label_name PARAMS ((bfd *, const char *)); static bfd_reloc_status_type m88k_special_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static void rtype2howto PARAMS ((arelent *, struct internal_reloc *)); @@ -44,7 +44,7 @@ static void reloc_processing #define coff_bfd_is_local_label_name m88k_is_local_label_name -static boolean +static bfd_boolean m88k_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -152,85 +152,85 @@ static reloc_howto_type howto_table[] = 02, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ m88k_special_reloc, /* special_function */ "PCR16L", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_PCR26L, /* type */ 02, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ m88k_special_reloc, /* special_function */ "PCR26L", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x03ffffff, /* src_mask */ 0x03ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_VRT16, /* type */ 00, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ m88k_special_reloc, /* special_function */ "VRT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_HVRT16, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m88k_special_reloc, /* special_function */ "HVRT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_LVRT16, /* type */ 00, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m88k_special_reloc, /* special_function */ "LVRT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_VRT32, /* type */ 00, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ m88k_special_reloc, /* special_function */ "VRT32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ }; /* Code to turn an external r_type into a pointer to an entry in the diff -uprN binutils-2.13.90.0.16/bfd/coff-mcore.c binutils-2.13.90.0.18/bfd/coff-mcore.c --- binutils-2.13.90.0.16/bfd/coff-mcore.c Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/coff-mcore.c Mon Dec 16 12:22:51 2002 @@ -37,25 +37,26 @@ Boston, MA 02111-1307, USA. */ /* This file is compiled more than once, but we only compile the final_link routine once. */ -extern boolean mcore_bfd_coff_final_link +extern bfd_boolean mcore_bfd_coff_final_link PARAMS ((bfd *, struct bfd_link_info *)); #if 0 -static struct bfd_link_hash_table * coff_mcore_link_hash_table_create +static struct bfd_link_hash_table *coff_mcore_link_hash_table_create PARAMS ((bfd *)); #endif -static bfd_reloc_status_type mcore_coff_unsupported_reloc +static bfd_reloc_status_type mcore_coff_unsupported_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean coff_mcore_relocate_section +static bfd_boolean coff_mcore_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); -static reloc_howto_type * mcore_coff_reloc_type_lookup +static reloc_howto_type *mcore_coff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static reloc_howto_type * coff_mcore_rtype_to_howto +static reloc_howto_type *coff_mcore_rtype_to_howto PARAMS ((bfd *, asection *, struct internal_reloc *, - struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); + struct coff_link_hash_entry *, struct internal_syment *, + bfd_vma *)); static void mcore_emit_base_file_entry PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_vma)); -static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); +static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); /* The NT loader points the toc register to &toc + 32768, in order to use the complete range of a 16-bit displacement. We have to adjust @@ -77,29 +78,29 @@ static reloc_howto_type mcore_coff_howto 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* dont complain_on_overflow */ NULL, /* special_function */ "ABSOLUTE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00, /* src_mask */ 0x00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (IMAGE_REL_MCORE_ADDR32,/* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ NULL, /* special_function */ "ADDR32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 8 bits + 2 zero bits; jmpi/jsri/lrw instructions. Should not appear in object files. */ @@ -107,15 +108,15 @@ static reloc_howto_type mcore_coff_howto 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mcore_coff_unsupported_reloc, /* special_function */ "IMM8BY4", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* bsr/bt/bf/br instructions; 11 bits + 1 zero bit Span 2k instructions == 4k bytes. @@ -124,45 +125,45 @@ static reloc_howto_type mcore_coff_howto 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ NULL, /* special_function */ "IMM11BY2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0, /* src_mask */ 0x7ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 4 bits + 1 zero bit; 'loopt' instruction only; unsupported. */ HOWTO (IMAGE_REL_MCORE_PCREL_IMM4BY2, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 4, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mcore_coff_unsupported_reloc, /* special_function */ "IMM4BY2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32-bit pc-relative. Eventually this will help support PIC code. */ HOWTO (IMAGE_REL_MCORE_PCREL_32,/* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ NULL, /* special_function */ "PCREL_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Like PCREL_IMM11BY2, this relocation indicates that there is a 'jsri' at the specified address. There is a separate relocation @@ -175,29 +176,29 @@ static reloc_howto_type mcore_coff_howto 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ NULL, /* special_function */ "JSR_IMM11BY2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0, /* src_mask */ 0x7ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (IMAGE_REL_MCORE_RVA, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ NULL, /* special_function */ "MCORE_RVA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true) /* pcrel_offset */ + TRUE) /* pcrel_offset */ }; /* Extend the coff_link_hash_table structure with a few M*Core specific fields. @@ -358,10 +359,10 @@ coff_mcore_rtype_to_howto (abfd, sec, re return howto; } -/* Return true if this relocation should appear in the output .reloc section. +/* Return TRUE if this relocation should appear in the output .reloc section. This function is referenced in pe_mkobject in peicode.h. */ -static boolean +static bfd_boolean in_reloc_p (abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type * howto; @@ -370,7 +371,7 @@ in_reloc_p (abfd, howto) } /* The reloc processing routine for the optimized COFF linker. */ -static boolean +static bfd_boolean coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) bfd * output_bfd; @@ -384,14 +385,14 @@ coff_mcore_relocate_section (output_bfd, { struct internal_reloc * rel; struct internal_reloc * relend; - boolean hihalf; + bfd_boolean hihalf; bfd_vma hihalf_val; /* If we are performing a relocateable link, we don't need to do a thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ if (info->relocateable) - return true; + return TRUE; /* Check if we have the same endianess */ if ( input_bfd->xvec->byteorder != output_bfd->xvec->byteorder @@ -404,10 +405,10 @@ coff_mcore_relocate_section (output_bfd, bfd_big_endian (output_bfd) ? _("big endian") : _("little endian")); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } - hihalf = false; + hihalf = FALSE; hihalf_val = 0; rel = relocs; @@ -446,7 +447,7 @@ coff_mcore_relocate_section (output_bfd, howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h, sym, & addend); if (howto == NULL) - return false; + return FALSE; val = 0; @@ -492,8 +493,8 @@ coff_mcore_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } my_name = h->root.root.string; @@ -508,7 +509,7 @@ coff_mcore_relocate_section (output_bfd, _bfd_error_handler (_("%s: unsupported relocation type 0x%02x"), bfd_archive_filename (input_bfd), r_type); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; case IMAGE_REL_MCORE_ABSOLUTE: fprintf (stderr, @@ -560,11 +561,11 @@ coff_mcore_relocate_section (output_bfd, (info, my_name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } } - return true; + return TRUE; } /* Tailor coffcode.h -- macro heaven. */ diff -uprN binutils-2.13.90.0.16/bfd/coff-mips.c binutils-2.13.90.0.18/bfd/coff-mips.c --- binutils-2.13.90.0.16/bfd/coff-mips.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/coff-mips.c Mon Dec 16 12:22:51 2002 @@ -35,85 +35,50 @@ Foundation, Inc., 59 Temple Place - Suit /* Prototypes for static functions. */ -static boolean mips_ecoff_bad_format_hook PARAMS ((bfd *abfd, PTR filehdr)); -static void mips_ecoff_swap_reloc_in PARAMS ((bfd *, PTR, - struct internal_reloc *)); -static void mips_ecoff_swap_reloc_out PARAMS ((bfd *, - const struct internal_reloc *, - PTR)); -static void mips_adjust_reloc_in PARAMS ((bfd *, - const struct internal_reloc *, - arelent *)); -static void mips_adjust_reloc_out PARAMS ((bfd *, const arelent *, - struct internal_reloc *)); -static bfd_reloc_status_type mips_generic_reloc PARAMS ((bfd *abfd, - arelent *reloc, - asymbol *symbol, - PTR data, - asection *section, - bfd *output_bfd, - char **error)); -static bfd_reloc_status_type mips_refhi_reloc PARAMS ((bfd *abfd, - arelent *reloc, - asymbol *symbol, - PTR data, - asection *section, - bfd *output_bfd, - char **error)); -static bfd_reloc_status_type mips_reflo_reloc PARAMS ((bfd *abfd, - arelent *reloc, - asymbol *symbol, - PTR data, - asection *section, - bfd *output_bfd, - char **error)); -static bfd_reloc_status_type mips_gprel_reloc PARAMS ((bfd *abfd, - arelent *reloc, - asymbol *symbol, - PTR data, - asection *section, - bfd *output_bfd, - char **error)); -static bfd_reloc_status_type mips_relhi_reloc PARAMS ((bfd *abfd, - arelent *reloc, - asymbol *symbol, - PTR data, - asection *section, - bfd *output_bfd, - char **error)); -static bfd_reloc_status_type mips_rello_reloc PARAMS ((bfd *abfd, - arelent *reloc, - asymbol *symbol, - PTR data, - asection *section, - bfd *output_bfd, - char **error)); -static bfd_reloc_status_type mips_switch_reloc PARAMS ((bfd *abfd, - arelent *reloc, - asymbol *symbol, - PTR data, - asection *section, - bfd *output_bfd, - char **error)); -static void mips_relocate_hi PARAMS ((struct internal_reloc *refhi, - struct internal_reloc *reflo, - bfd *input_bfd, - asection *input_section, - bfd_byte *contents, - size_t adjust, - bfd_vma relocation, - boolean pcrel)); -static boolean mips_relocate_section PARAMS ((bfd *, struct bfd_link_info *, - bfd *, asection *, - bfd_byte *, PTR)); -static boolean mips_read_relocs PARAMS ((bfd *, asection *)); -static boolean mips_relax_section PARAMS ((bfd *, asection *, - struct bfd_link_info *, - boolean *)); -static boolean mips_relax_pcrel16 PARAMS ((struct bfd_link_info *, bfd *, - asection *, - struct ecoff_link_hash_entry *, - bfd_byte *, bfd_vma)); +static bfd_boolean mips_ecoff_bad_format_hook + PARAMS ((bfd *abfd, PTR filehdr)); +static void mips_ecoff_swap_reloc_in + PARAMS ((bfd *, PTR, struct internal_reloc *)); +static void mips_ecoff_swap_reloc_out + PARAMS ((bfd *, const struct internal_reloc *, PTR)); +static void mips_adjust_reloc_in + PARAMS ((bfd *, const struct internal_reloc *, arelent *)); +static void mips_adjust_reloc_out + PARAMS ((bfd *, const arelent *, struct internal_reloc *)); +static bfd_reloc_status_type mips_generic_reloc + PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, + asection *section, bfd *output_bfd, char **error)); +static bfd_reloc_status_type mips_refhi_reloc + PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, + asection *section, bfd *output_bfd, char **error)); +static bfd_reloc_status_type mips_reflo_reloc + PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, + asection *section, bfd *output_bfd, char **error)); +static bfd_reloc_status_type mips_gprel_reloc + PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, + asection *section, bfd *output_bfd, char **error)); +static bfd_reloc_status_type mips_relhi_reloc + PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, + asection *section, bfd *output_bfd, char **error)); +static bfd_reloc_status_type mips_rello_reloc + PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, + asection *section, bfd *output_bfd, char **error)); +static bfd_reloc_status_type mips_switch_reloc + PARAMS ((bfd *abfd, arelent *reloc, asymbol *symbol, PTR data, + asection *section, bfd *output_bfd, char **error)); +static void mips_relocate_hi + PARAMS ((struct internal_reloc *refhi, struct internal_reloc *reflo, + bfd *input_bfd, asection *input_section, bfd_byte *contents, + size_t adjust, bfd_vma relocation, bfd_boolean pcrel)); +static bfd_boolean mips_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, PTR)); +static bfd_boolean mips_read_relocs + PARAMS ((bfd *, asection *)); +static bfd_boolean mips_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean mips_relax_pcrel16 + PARAMS ((struct bfd_link_info *, bfd *, asection *, + struct ecoff_link_hash_entry *, bfd_byte *, bfd_vma)); static reloc_howto_type *mips_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); @@ -152,52 +117,52 @@ static reloc_howto_type mips_howto_table 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "IGNORE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit reference to a symbol, normally from a data section. */ HOWTO (MIPS_R_REFHALF, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_generic_reloc, /* special_function */ "REFHALF", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit reference to a symbol, normally from a data section. */ HOWTO (MIPS_R_REFWORD, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_generic_reloc, /* special_function */ "REFWORD", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 26 bit absolute jump address. */ HOWTO (MIPS_R_JMPADDR, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -205,10 +170,10 @@ static reloc_howto_type mips_howto_table bits must match the PC. */ mips_generic_reloc, /* special_function */ "JMPADDR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffffff, /* src_mask */ 0x3ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high 16 bits of a symbol value. Handled by the function mips_refhi_reloc. */ @@ -216,30 +181,30 @@ static reloc_howto_type mips_howto_table 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_refhi_reloc, /* special_function */ "REFHI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The low 16 bits of a symbol value. */ HOWTO (MIPS_R_REFLO, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_reflo_reloc, /* special_function */ "REFLO", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A reference to an offset from the gp register. Handled by the function mips_gprel_reloc. */ @@ -247,15 +212,15 @@ static reloc_howto_type mips_howto_table 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_gprel_reloc, /* special_function */ "GPREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A reference to a literal using an offset from the gp register. Handled by the function mips_gprel_reloc. */ @@ -263,15 +228,15 @@ static reloc_howto_type mips_howto_table 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_gprel_reloc, /* special_function */ "LITERAL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (8), EMPTY_HOWTO (9), @@ -286,15 +251,15 @@ static reloc_howto_type mips_howto_table 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_generic_reloc, /* special_function */ "PCREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* This reloc is a Cygnus extension used when generating position independent code for embedded systems. It represents the high 16 @@ -307,15 +272,15 @@ static reloc_howto_type mips_howto_table 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_relhi_reloc, /* special_function */ "RELHI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* This reloc is a Cygnus extension used when generating position independent code for embedded systems. It represents the low 16 @@ -324,15 +289,15 @@ static reloc_howto_type mips_howto_table 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_rello_reloc, /* special_function */ "RELLO", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (15), EMPTY_HOWTO (16), @@ -352,15 +317,15 @@ static reloc_howto_type mips_howto_table 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_switch_reloc, /* special_function */ "SWITCH", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true) /* pcrel_offset */ + TRUE) /* pcrel_offset */ }; #define MIPS_HOWTO_COUNT \ @@ -384,7 +349,7 @@ static reloc_howto_type mips_howto_table /* See whether the magic number matches. */ -static boolean +static bfd_boolean mips_ecoff_bad_format_hook (abfd, filehdr) bfd *abfd; PTR filehdr; @@ -395,7 +360,7 @@ mips_ecoff_bad_format_hook (abfd, filehd { case MIPS_MAGIC_1: /* I don't know what endianness this implies. */ - return true; + return TRUE; case MIPS_MAGIC_BIG: case MIPS_MAGIC_BIG2: @@ -408,7 +373,7 @@ mips_ecoff_bad_format_hook (abfd, filehd return bfd_little_endian (abfd); default: - return false; + return FALSE; } } @@ -793,7 +758,7 @@ mips_gprel_reloc (abfd, bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_vma gp; bfd_vma relocation; unsigned long val; @@ -812,10 +777,10 @@ mips_gprel_reloc (abfd, } if (output_bfd != (bfd *) NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1185,7 +1150,7 @@ mips_relocate_hi (refhi, reflo, input_bf bfd_byte *contents; size_t adjust; bfd_vma relocation; - boolean pcrel; + bfd_boolean pcrel; { unsigned long insn; unsigned long val; @@ -1229,7 +1194,7 @@ mips_relocate_hi (refhi, reflo, input_bf /* Relocate a section while linking a MIPS ECOFF file. */ -static boolean +static bfd_boolean mips_relocate_section (output_bfd, info, input_bfd, input_section, contents, external_relocs) bfd *output_bfd; @@ -1242,13 +1207,13 @@ mips_relocate_section (output_bfd, info, asection **symndx_to_section; struct ecoff_link_hash_entry **sym_hashes; bfd_vma gp; - boolean gp_undefined; + bfd_boolean gp_undefined; size_t adjust; long *offsets; struct external_reloc *ext_rel; struct external_reloc *ext_rel_end; unsigned int i; - boolean got_lo; + bfd_boolean got_lo; struct internal_reloc lo_int_rel; bfd_size_type amt; @@ -1264,7 +1229,7 @@ mips_relocate_section (output_bfd, info, amt = NUM_RELOC_SECTIONS * sizeof (asection *); symndx_to_section = (asection **) bfd_alloc (input_bfd, amt); if (!symndx_to_section) - return false; + return FALSE; symndx_to_section[RELOC_SECTION_NONE] = NULL; symndx_to_section[RELOC_SECTION_TEXT] = @@ -1299,11 +1264,11 @@ mips_relocate_section (output_bfd, info, gp = _bfd_get_gp_value (output_bfd); if (gp == 0) - gp_undefined = true; + gp_undefined = TRUE; else - gp_undefined = false; + gp_undefined = FALSE; - got_lo = false; + got_lo = FALSE; adjust = 0; @@ -1317,7 +1282,7 @@ mips_relocate_section (output_bfd, info, for (i = 0; ext_rel < ext_rel_end; ext_rel++, i++) { struct internal_reloc int_rel; - boolean use_lo = false; + bfd_boolean use_lo = FALSE; bfd_vma addend; reloc_howto_type *howto; struct ecoff_link_hash_entry *h = NULL; @@ -1330,7 +1295,7 @@ mips_relocate_section (output_bfd, info, else { int_rel = lo_int_rel; - got_lo = false; + got_lo = FALSE; } BFD_ASSERT (int_rel.r_type @@ -1365,9 +1330,9 @@ mips_relocate_section (output_bfd, info, && int_rel.r_extern == lo_int_rel.r_extern && int_rel.r_symndx == lo_int_rel.r_symndx) { - use_lo = true; + use_lo = TRUE; if (lo_ext_rel == ext_rel + 1) - got_lo = true; + got_lo = TRUE; } } @@ -1432,11 +1397,11 @@ mips_relocate_section (output_bfd, info, (info, _("GP relative relocation used when GP not defined"), input_bfd, input_section, int_rel.r_vaddr - input_section->vma))) - return false; + return FALSE; /* Only give the error once per link. */ gp = 4; _bfd_set_gp_value (output_bfd, gp); - gp_undefined = false; + gp_undefined = FALSE; } if (! int_rel.r_extern) { @@ -1511,7 +1476,7 @@ mips_relocate_section (output_bfd, info, + (int_rel.r_vaddr - input_section->vma) + adjust))) - return false; + return FALSE; /* We must adjust everything else up a notch. */ adjust += PCREL16_EXPANSION_ADJUSTMENT; @@ -1694,7 +1659,7 @@ mips_relocate_section (output_bfd, info, (info, h->root.root.string, input_bfd, input_section, int_rel.r_vaddr - input_section->vma))) - return false; + return FALSE; int_rel.r_symndx = 0; } relocation = 0; @@ -1778,8 +1743,8 @@ mips_relocate_section (output_bfd, info, if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - int_rel.r_vaddr - input_section->vma, true))) - return false; + int_rel.r_vaddr - input_section->vma, TRUE))) + return FALSE; relocation = 0; } } @@ -1860,19 +1825,19 @@ mips_relocate_section (output_bfd, info, (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, int_rel.r_vaddr - input_section->vma))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* Read in the relocs for a section. */ -static boolean +static bfd_boolean mips_read_relocs (abfd, sec) bfd *abfd; asection *sec; @@ -1886,7 +1851,7 @@ mips_read_relocs (abfd, sec) amt = sizeof (struct ecoff_section_tdata); sec->used_by_bfd = (PTR) bfd_alloc (abfd, amt); if (sec->used_by_bfd == NULL) - return false; + return FALSE; section_tdata = ecoff_section_data (abfd, sec); section_tdata->external_relocs = NULL; @@ -1900,14 +1865,14 @@ mips_read_relocs (abfd, sec) amt *= sec->reloc_count; section_tdata->external_relocs = (PTR) bfd_alloc (abfd, amt); if (section_tdata->external_relocs == NULL && amt != 0) - return false; + return FALSE; if (bfd_seek (abfd, sec->rel_filepos, SEEK_SET) != 0 || bfd_bread (section_tdata->external_relocs, amt, abfd) != amt) - return false; + return FALSE; } - return true; + return TRUE; } /* Relax a section when linking a MIPS ECOFF file. This is used for @@ -1934,12 +1899,12 @@ mips_read_relocs (abfd, sec) routine and the mips_relocate_section routine is the table of offsets. */ -static boolean +static bfd_boolean mips_relax_section (abfd, sec, info, again) bfd *abfd; asection *sec; struct bfd_link_info *info; - boolean *again; + bfd_boolean *again; { struct ecoff_section_tdata *section_tdata; bfd_byte *contents = NULL; @@ -1949,21 +1914,21 @@ mips_relax_section (abfd, sec, info, aga unsigned int i; /* Assume we are not going to need another pass. */ - *again = false; + *again = FALSE; /* If we are not generating an ECOFF file, this is much too confusing to deal with. */ if (info->hash->creator->flavour != bfd_get_flavour (abfd)) - return true; + return TRUE; /* If there are no relocs, there is nothing to do. */ if (sec->reloc_count == 0) - return true; + return TRUE; /* We are only interested in PC relative relocs, and why would there ever be one from anything but the .text section? */ if (strcmp (bfd_get_section_name (abfd, sec), ".text") != 0) - return true; + return TRUE; /* Read in the relocs, if we haven't already got them. */ section_tdata = ecoff_section_data (abfd, sec); @@ -2108,7 +2073,7 @@ mips_relax_section (abfd, sec, info, aga symbols in the object file following this location. */ sec->_cooked_size += PCREL16_EXPANSION_ADJUSTMENT; - *again = true; + *again = TRUE; if (offsets == (long *) NULL) { @@ -2306,12 +2271,12 @@ mips_relax_section (abfd, sec, info, aga if (contents != (bfd_byte *) NULL && ! info->keep_memory) free (contents); - return true; + return TRUE; error_return: if (contents != (bfd_byte *) NULL && ! info->keep_memory) free (contents); - return false; + return FALSE; } /* This routine is called from mips_relocate_section when a PC @@ -2319,7 +2284,7 @@ mips_relax_section (abfd, sec, info, aga It handles all the details of the expansion, including resolving the reloc. */ -static boolean +static bfd_boolean mips_relax_pcrel16 (info, input_bfd, input_section, h, location, address) struct bfd_link_info *info ATTRIBUTE_UNUSED; bfd *input_bfd; @@ -2356,7 +2321,7 @@ mips_relax_pcrel16 (info, input_bfd, inp bfd_put_32 (input_bfd, (bfd_vma) 0x0020f809, location + 16); /* jalr $at */ - return true; + return TRUE; } /* Given a .sdata section and a .rel.sdata in-memory section, store @@ -2368,7 +2333,7 @@ mips_relax_pcrel16 (info, input_bfd, inp function presumes that the object was compiled using -membedded-pic. */ -boolean +bfd_boolean bfd_mips_ecoff_create_embedded_relocs (abfd, info, datasec, relsec, errmsg) bfd *abfd; struct bfd_link_info *info; @@ -2388,17 +2353,17 @@ bfd_mips_ecoff_create_embedded_relocs (a *errmsg = NULL; if (datasec->reloc_count == 0) - return true; + return TRUE; sym_hashes = ecoff_data (abfd)->sym_hashes; if (! mips_read_relocs (abfd, datasec)) - return false; + return FALSE; amt = (bfd_size_type) datasec->reloc_count * 4; relsec->contents = (bfd_byte *) bfd_alloc (abfd, amt); if (relsec->contents == NULL) - return false; + return FALSE; p = relsec->contents; @@ -2408,7 +2373,7 @@ bfd_mips_ecoff_create_embedded_relocs (a for (; ext_rel < ext_rel_end; ext_rel++, p += 4) { struct internal_reloc int_rel; - boolean text_relative; + bfd_boolean text_relative; mips_ecoff_swap_reloc_in (abfd, (PTR) ext_rel, &int_rel); @@ -2428,7 +2393,7 @@ bfd_mips_ecoff_create_embedded_relocs (a { *errmsg = _("unsupported reloc type"); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (int_rel.r_extern) @@ -2444,28 +2409,28 @@ bfd_mips_ecoff_create_embedded_relocs (a if ((h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) && (h->root.u.def.section->flags & SEC_CODE) != 0) - text_relative = true; + text_relative = TRUE; else - text_relative = false; + text_relative = FALSE; } else { switch (int_rel.r_symndx) { case RELOC_SECTION_TEXT: - text_relative = true; + text_relative = TRUE; break; case RELOC_SECTION_SDATA: case RELOC_SECTION_SBSS: case RELOC_SECTION_LIT8: - text_relative = false; + text_relative = FALSE; break; default: /* No other sections should appear in -membedded-pic code. */ *errmsg = _("reloc against unsupported section"); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } @@ -2473,7 +2438,7 @@ bfd_mips_ecoff_create_embedded_relocs (a { *errmsg = _("reloc not properly aligned"); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } bfd_put_32 (abfd, @@ -2482,7 +2447,7 @@ bfd_mips_ecoff_create_embedded_relocs (a p); } - return true; + return TRUE; } /* This is the ECOFF backend structure. The backend field of the @@ -2501,7 +2466,7 @@ static const struct ecoff_backend_data m (unsigned (*) PARAMS ((bfd *,PTR,PTR))) bfd_void, /* reloc_out */ mips_ecoff_swap_filehdr_out, mips_ecoff_swap_aouthdr_out, mips_ecoff_swap_scnhdr_out, - FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, true, false, 4, false, 2, + FILHSZ, AOUTSZ, SCNHSZ, 0, 0, 0, 0, FILNMLEN, TRUE, FALSE, 4, FALSE, 2, mips_ecoff_swap_filehdr_in, mips_ecoff_swap_aouthdr_in, mips_ecoff_swap_scnhdr_in, NULL, mips_ecoff_bad_format_hook, _bfd_ecoff_set_arch_mach_hook, @@ -2517,10 +2482,10 @@ static const struct ecoff_backend_data m /* The page boundary used to align sections in a demand-paged executable file. E.g., 0x1000. */ 0x1000, - /* True if the .rdata section is part of the text segment, as on the - Alpha. False if .rdata is part of the data segment, as on the + /* TRUE if the .rdata section is part of the text segment, as on the + Alpha. FALSE if .rdata is part of the data segment, as on the MIPS. */ - false, + FALSE, /* Bitsize of constructor entries. */ 32, /* Reloc to use for constructor entries. */ diff -uprN binutils-2.13.90.0.16/bfd/coff-or32.c binutils-2.13.90.0.18/bfd/coff-or32.c --- binutils-2.13.90.0.16/bfd/coff-or32.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/coff-or32.c Mon Dec 16 12:22:51 2002 @@ -27,11 +27,18 @@ #include "coff/internal.h" #include "libcoff.h" -static long get_symbol_value PARAMS ((asymbol *)); -static bfd_reloc_status_type or32_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean coff_or32_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); -static boolean coff_or32_adjust_symndx PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, boolean *)); -static void reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); +static long get_symbol_value + PARAMS ((asymbol *)); +static bfd_reloc_status_type or32_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_boolean coff_or32_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + struct internal_reloc *, struct internal_syment *, asection **)); +static bfd_boolean coff_or32_adjust_symndx + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, + struct internal_reloc *, bfd_boolean *)); +static void reloc_processing + PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (2) @@ -52,14 +59,14 @@ static void reloc_proc /* Provided the symbol, returns the value reffed. */ static long -get_symbol_value (symbol) +get_symbol_value (symbol) asymbol *symbol; -{ +{ long relocation = 0; if (bfd_is_com_section (symbol->section)) - relocation = 0; - else + relocation = 0; + else relocation = symbol->value + symbol->section->output_section->vma + symbol->section->output_offset; @@ -82,7 +89,7 @@ or32_reloc (abfd, reloc_entry, symbol_in { /* The consth relocation comes in two parts, we have to remember the state between calls, in these variables. */ - static boolean part1_consth_active = false; + static bfd_boolean part1_consth_active = FALSE; static unsigned long part1_consth_value; unsigned long insn; @@ -93,10 +100,10 @@ or32_reloc (abfd, reloc_entry, symbol_in unsigned long addr = reloc_entry->address ; /*+ input_section->vma*/ bfd_byte *hit_data =addr + (bfd_byte *)(data); - + r_type = reloc_entry->howto->type; - if (output_bfd) + if (output_bfd) { /* Partial linking - do nothing. */ reloc_entry->address += input_section->output_offset; @@ -107,18 +114,18 @@ or32_reloc (abfd, reloc_entry, symbol_in && bfd_is_und_section (symbol_in->section)) { /* Keep the state machine happy in case we're called again. */ - if (r_type == R_IHIHALF) + if (r_type == R_IHIHALF) { - part1_consth_active = true; + part1_consth_active = TRUE; part1_consth_value = 0; } return bfd_reloc_undefined; } - if ((part1_consth_active) && (r_type != R_IHCONST)) + if ((part1_consth_active) && (r_type != R_IHCONST)) { - part1_consth_active = false; + part1_consth_active = FALSE; *error_message = (char *) "Missing IHCONST"; return bfd_reloc_dangerous; @@ -126,10 +133,10 @@ or32_reloc (abfd, reloc_entry, symbol_in sym_value = get_symbol_value (symbol_in); - switch (r_type) + switch (r_type) { - case R_IREL: - insn = bfd_get_32(abfd, hit_data); + case R_IREL: + insn = bfd_get_32(abfd, hit_data); /* Take the value in the field and sign extend it. */ signed_value = EXTRACT_JUMPTARG (insn); @@ -146,8 +153,8 @@ or32_reloc (abfd, reloc_entry, symbol_in { /* Absolute jmp/call. */ insn |= (1<<24); /* Make it absolute. */ /* FIXME: Should we change r_type to R_IABS. */ - } - else + } + else #endif { /* Relative jmp/call, so subtract from the value the @@ -155,39 +162,39 @@ or32_reloc (abfd, reloc_entry, symbol_in signed_value -= (reloc_entry->address + input_section->output_section->vma + input_section->output_offset); - if (signed_value > 0x7ffffff || signed_value < -0x8000000) + if (signed_value > 0x7ffffff || signed_value < -0x8000000) return bfd_reloc_overflow; } signed_value >>= 2; insn = INSERT_JUMPTARG (insn, signed_value); - bfd_put_32 (abfd, insn, hit_data); + bfd_put_32 (abfd, insn, hit_data); break; - case R_ILOHALF: - insn = bfd_get_32 (abfd, hit_data); + case R_ILOHALF: + insn = bfd_get_32 (abfd, hit_data); unsigned_value = EXTRACT_HWORD (insn); unsigned_value += sym_value + reloc_entry->addend; insn = INSERT_HWORD (insn, unsigned_value); - bfd_put_32 (abfd, insn, hit_data); + bfd_put_32 (abfd, insn, hit_data); break; case R_IHIHALF: - insn = bfd_get_32 (abfd, hit_data); + insn = bfd_get_32 (abfd, hit_data); - /* consth, part 1 + /* consth, part 1 Just get the symbol value that is referenced. */ - part1_consth_active = true; + part1_consth_active = TRUE; part1_consth_value = sym_value + reloc_entry->addend; /* Don't modify insn until R_IHCONST. */ break; - case R_IHCONST: - insn = bfd_get_32 (abfd, hit_data); + case R_IHCONST: + insn = bfd_get_32 (abfd, hit_data); - /* consth, part 2 + /* consth, part 2 Now relocate the reference. */ - if (! part1_consth_active) + if (! part1_consth_active) { *error_message = (char *) "Missing IHIHALF"; return bfd_reloc_dangerous; @@ -199,29 +206,29 @@ or32_reloc (abfd, reloc_entry, symbol_in unsigned_value += part1_consth_value; unsigned_value = unsigned_value >> 16; insn = INSERT_HWORD (insn, unsigned_value); - part1_consth_active = false; - bfd_put_32 (abfd, insn, hit_data); + part1_consth_active = FALSE; + bfd_put_32 (abfd, insn, hit_data); break; case R_BYTE: - insn = bfd_get_8 (abfd, hit_data); - unsigned_value = insn + sym_value + reloc_entry->addend; + insn = bfd_get_8 (abfd, hit_data); + unsigned_value = insn + sym_value + reloc_entry->addend; if (unsigned_value & 0xffffff00) return bfd_reloc_overflow; - bfd_put_8 (abfd, unsigned_value, hit_data); + bfd_put_8 (abfd, unsigned_value, hit_data); break; case R_HWORD: - insn = bfd_get_16 (abfd, hit_data); - unsigned_value = insn + sym_value + reloc_entry->addend; + insn = bfd_get_16 (abfd, hit_data); + unsigned_value = insn + sym_value + reloc_entry->addend; if (unsigned_value & 0xffff0000) return bfd_reloc_overflow; - bfd_put_16 (abfd, insn, hit_data); + bfd_put_16 (abfd, insn, hit_data); break; case R_WORD: - insn = bfd_get_32 (abfd, hit_data); - insn += sym_value + reloc_entry->addend; + insn = bfd_get_32 (abfd, hit_data); + insn += sym_value + reloc_entry->addend; bfd_put_32 (abfd, insn, hit_data); break; @@ -242,14 +249,14 @@ or32_reloc (abfd, reloc_entry, symbol_in complain_on_overflow special_function relocation name - partial_inplace + partial_inplace src_mask */ /* FIXME: I'm not real sure about this table. */ -static reloc_howto_type howto_table[] = +static reloc_howto_type howto_table[] = { - { R_ABS, 0, 3, 32, false, 0, complain_overflow_bitfield, or32_reloc, "ABS", true, 0xffffffff,0xffffffff, false }, + { R_ABS, 0, 3, 32, FALSE, 0, complain_overflow_bitfield, or32_reloc, "ABS", TRUE, 0xffffffff,0xffffffff, FALSE }, EMPTY_HOWTO (1), EMPTY_HOWTO (2), EMPTY_HOWTO (3), @@ -273,14 +280,14 @@ static reloc_howto_type howto_table[] = EMPTY_HOWTO (21), EMPTY_HOWTO (22), EMPTY_HOWTO (23), - { R_IREL, 0, 3, 32, true, 0, complain_overflow_signed, or32_reloc, "IREL", true, 0xffffffff,0xffffffff, false }, - { R_IABS, 0, 3, 32, false, 0, complain_overflow_bitfield, or32_reloc, "IABS", true, 0xffffffff,0xffffffff, false }, - { R_ILOHALF, 0, 3, 16, true, 0, complain_overflow_signed, or32_reloc, "ILOHALF", true, 0x0000ffff,0x0000ffff, false }, - { R_IHIHALF, 0, 3, 16, true, 16,complain_overflow_signed, or32_reloc, "IHIHALF", true, 0xffff0000,0xffff0000, false }, - { R_IHCONST, 0, 3, 16, true, 0, complain_overflow_signed, or32_reloc, "IHCONST", true, 0xffff0000,0xffff0000, false }, - { R_BYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, or32_reloc, "BYTE", true, 0x000000ff,0x000000ff, false }, - { R_HWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, or32_reloc, "HWORD", true, 0x0000ffff,0x0000ffff, false }, - { R_WORD, 0, 2, 32, false, 0, complain_overflow_bitfield, or32_reloc, "WORD", true, 0xffffffff,0xffffffff, false }, + { R_IREL, 0, 3, 32, TRUE, 0, complain_overflow_signed, or32_reloc, "IREL", TRUE, 0xffffffff,0xffffffff, FALSE }, + { R_IABS, 0, 3, 32, FALSE, 0, complain_overflow_bitfield, or32_reloc, "IABS", TRUE, 0xffffffff,0xffffffff, FALSE }, + { R_ILOHALF, 0, 3, 16, TRUE, 0, complain_overflow_signed, or32_reloc, "ILOHALF", TRUE, 0x0000ffff,0x0000ffff, FALSE }, + { R_IHIHALF, 0, 3, 16, TRUE, 16,complain_overflow_signed, or32_reloc, "IHIHALF", TRUE, 0xffff0000,0xffff0000, FALSE }, + { R_IHCONST, 0, 3, 16, TRUE, 0, complain_overflow_signed, or32_reloc, "IHCONST", TRUE, 0xffff0000,0xffff0000, FALSE }, + { R_BYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, or32_reloc, "BYTE", TRUE, 0x000000ff,0x000000ff, FALSE }, + { R_HWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, or32_reloc, "HWORD", TRUE, 0x0000ffff,0x0000ffff, FALSE }, + { R_WORD, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, or32_reloc, "WORD", TRUE, 0xffffffff,0xffffffff, FALSE }, }; #define BADMAG(x) OR32BADMAG (x) @@ -298,11 +305,11 @@ reloc_processing (relent,reloc, symbols, { static bfd_vma ihihalf_vaddr = (bfd_vma) -1; - relent->address = reloc->r_vaddr; + relent->address = reloc->r_vaddr; relent->howto = howto_table + reloc->r_type; - if (reloc->r_type == R_IHCONST) - { + if (reloc->r_type == R_IHCONST) + { /* The address of an R_IHCONST should always be the address of the immediately preceding R_IHIHALF. relocs generated by gas are correct, but relocs generated by High C are different (I @@ -336,7 +343,7 @@ reloc_processing (relent,reloc, symbols, /* The reloc processing routine for the optimized COFF linker. */ -static boolean +static bfd_boolean coff_or32_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -350,16 +357,16 @@ coff_or32_relocate_section (output_bfd, { struct internal_reloc *rel; struct internal_reloc *relend; - boolean hihalf; + bfd_boolean hihalf; bfd_vma hihalf_val; /* If we are performing a relocateable link, we don't need to do a thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ if (info->relocateable) - return true; + return TRUE; - hihalf = false; + hihalf = FALSE; hihalf_val = 0; rel = relocs; @@ -373,7 +380,7 @@ coff_or32_relocate_section (output_bfd, struct internal_syment *sym; asection *sec; bfd_vma val; - boolean overflow; + bfd_boolean overflow; unsigned long insn; long signed_value; unsigned long unsigned_value; @@ -424,8 +431,8 @@ coff_or32_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -434,18 +441,18 @@ coff_or32_relocate_section (output_bfd, if (! ((*info->callbacks->reloc_dangerous) (info, "missing IHCONST reloc", input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; - hihalf = false; + return FALSE; + hihalf = FALSE; } } - overflow = false; + overflow = FALSE; switch (rel->r_type) { default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; case R_IREL: insn = bfd_get_32 (input_bfd, loc); @@ -473,7 +480,7 @@ coff_or32_relocate_section (output_bfd, + (rel->r_vaddr - input_section->vma)); if (signed_value > 0x7ffffff || signed_value < - 0x8000000) { - overflow = true; + overflow = TRUE; signed_value = 0; } } @@ -495,7 +502,7 @@ coff_or32_relocate_section (output_bfd, case R_IHIHALF: /* Save the value for the R_IHCONST reloc. */ - hihalf = true; + hihalf = TRUE; hihalf_val = val; break; @@ -505,7 +512,7 @@ coff_or32_relocate_section (output_bfd, if (! ((*info->callbacks->reloc_dangerous) (info, "missing IHIHALF reloc", input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; hihalf_val = 0; } @@ -515,7 +522,7 @@ coff_or32_relocate_section (output_bfd, insn = INSERT_HWORD (insn, unsigned_value); bfd_put_32 (input_bfd, (bfd_vma) insn, loc); - hihalf = false; + hihalf = FALSE; break; case R_BYTE: @@ -524,7 +531,7 @@ coff_or32_relocate_section (output_bfd, rstat = _bfd_relocate_contents (howto_table + rel->r_type, input_bfd, val, loc); if (rstat == bfd_reloc_overflow) - overflow = true; + overflow = TRUE; else if (rstat != bfd_reloc_ok) abort (); break; @@ -555,11 +562,11 @@ coff_or32_relocate_section (output_bfd, (info, name, howto_table[rel->r_type].name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } - } + } - return true; + return TRUE; } #define coff_relocate_section coff_or32_relocate_section @@ -567,20 +574,20 @@ coff_or32_relocate_section (output_bfd, /* We don't want to change the symndx of a R_IHCONST reloc, since it is actually an addend, not a symbol index at all. */ -static boolean +static bfd_boolean coff_or32_adjust_symndx (obfd, info, ibfd, sec, irel, adjustedp) bfd *obfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; bfd *ibfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; struct internal_reloc *irel; - boolean *adjustedp; + bfd_boolean *adjustedp; { if (irel->r_type == R_IHCONST) - *adjustedp = true; + *adjustedp = TRUE; else - *adjustedp = false; - return true; + *adjustedp = FALSE; + return TRUE; } #define coff_adjust_symndx coff_or32_adjust_symndx @@ -599,7 +606,7 @@ const bfd_target or32coff_big_vec = HAS_SYMS | HAS_LOCALS | WP_TEXT), (SEC_HAS_CONTENTS | SEC_ALLOC | /* Section flags. */ - SEC_LOAD | SEC_RELOC | + SEC_LOAD | SEC_RELOC | SEC_READONLY ), '_', /* Leading underscore. */ '/', /* ar_pad_char. */ @@ -615,7 +622,7 @@ const bfd_target or32coff_big_vec = bfd_getb32, bfd_getb_signed_32, bfd_putb32, bfd_getb16, bfd_getb_signed_16, bfd_putb16, - { + { _bfd_dummy_target, coff_object_p, bfd_generic_archive_p, @@ -643,7 +650,7 @@ const bfd_target or32coff_big_vec = BFD_JUMP_TABLE_WRITE (coff), BFD_JUMP_TABLE_LINK (coff), BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), - + /* Alternative_target. */ #ifdef TARGET_LITTLE_SYM & TARGET_LITTLE_SYM, diff -uprN binutils-2.13.90.0.16/bfd/coff-ppc.c binutils-2.13.90.0.18/bfd/coff-ppc.c --- binutils-2.13.90.0.16/bfd/coff-ppc.c Fri Apr 5 10:03:49 2002 +++ binutils-2.13.90.0.18/bfd/coff-ppc.c Mon Dec 16 12:22:51 2002 @@ -54,7 +54,7 @@ Boston, MA 02111-1307, USA. */ /* This file is compiled more than once, but we only compile the final_link routine once. */ -extern boolean ppc_bfd_coff_final_link +extern bfd_boolean ppc_bfd_coff_final_link PARAMS ((bfd *, struct bfd_link_info *)); extern void dump_toc PARAMS ((PTR)); @@ -128,14 +128,14 @@ struct ppc_coff_link_hash_table static struct bfd_hash_entry *ppc_coff_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean ppc_coff_link_hash_table_init +static bfd_boolean ppc_coff_link_hash_table_init PARAMS ((struct ppc_coff_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *))); static struct bfd_link_hash_table *ppc_coff_link_hash_table_create PARAMS ((bfd *)); -static boolean coff_ppc_relocate_section +static bfd_boolean coff_ppc_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); static reloc_howto_type *coff_ppc_rtype_to_howto @@ -184,7 +184,7 @@ ppc_coff_link_hash_newfunc (entry, table /* Initialize a PE linker hash table. */ -static boolean +static bfd_boolean ppc_coff_link_hash_table_init (table, abfd, newfunc) struct ppc_coff_link_hash_table *table; bfd *abfd; @@ -385,7 +385,7 @@ static bfd_reloc_status_type ppc_imglue_ bfd *output_bfd, char **error)); -static boolean in_reloc_p PARAMS((bfd *abfd, reloc_howto_type *howto)); +static bfd_boolean in_reloc_p PARAMS((bfd *abfd, reloc_howto_type *howto)); /* FIXME: It'll take a while to get through all of these. I only need a few to get us started, so those I'll make sure work. Those marked FIXME are either @@ -433,15 +433,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* dont complain_on_overflow */ 0, /* special_function */ "ABSOLUTE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00, /* src_mask */ 0x00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_ADDR64 0x0001 64-bit address */ /* Unused: */ @@ -449,15 +449,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 3, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "ADDR64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_ADDR32 0x0002 32-bit address */ /* Used: */ @@ -465,15 +465,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "ADDR32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_ADDR24 0x0003 26-bit address, shifted left 2 (branch absolute) */ /* the LI field is in bit 6 through bit 29 is 24 bits, + 2 for the shift */ @@ -484,15 +484,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "ADDR24", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x07fffffc, /* src_mask */ 0x07fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_ADDR16 0x0004 16-bit address */ /* Used: */ @@ -500,15 +500,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "ADDR16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_ADDR14 0x0005 */ /* 16-bit address, shifted left 2 (load doubleword) */ @@ -518,15 +518,15 @@ static reloc_howto_type ppc_coff_howto_t 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "ADDR16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_REL24 0x0006 */ /* 26-bit PC-relative offset, shifted left 2 (branch relative) */ @@ -535,15 +535,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "REL24", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3fffffc, /* src_mask */ 0x3fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_REL14 0x0007 */ /* 16-bit PC-relative offset, shifted left 2 (br cond relative) */ @@ -554,15 +554,15 @@ static reloc_howto_type ppc_coff_howto_t 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "ADDR16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* IMAGE_REL_PPC_TOCREL16 0x0008 */ /* 16-bit offset from TOC base */ @@ -571,15 +571,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc_toc16_reloc, /* special_function */ "TOCREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_TOCREL14 0x0009 */ /* 16-bit offset from TOC base, shifted left 2 (load doubleword) */ @@ -588,15 +588,15 @@ static reloc_howto_type ppc_coff_howto_t 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "TOCREL14", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_ADDR32NB 0x000A */ /* 32-bit addr w/ image base */ @@ -605,15 +605,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "ADDR32NB", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_SECREL 0x000B */ /* va of containing section (as in an image sectionhdr) */ @@ -622,15 +622,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc_secrel_reloc, /* special_function */ "SECREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* IMAGE_REL_PPC_SECTION 0x000C */ /* sectionheader number */ @@ -639,15 +639,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc_section_reloc, /* special_function */ "SECTION", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* IMAGE_REL_PPC_IFGLUE 0x000D */ /* substitute TOC restore instruction iff symbol is glue code */ @@ -656,15 +656,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "IFGLUE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_IMGLUE 0x000E */ /* symbol is glue code; virtual address is TOC restore instruction */ @@ -673,15 +673,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc_imglue_reloc, /* special_function */ "IMGLUE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_SECREL16 0x000F */ /* va of containing section (limited to 16 bits) */ @@ -690,15 +690,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SECREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* IMAGE_REL_PPC_REFHI 0x0010 */ /* Unused: */ @@ -706,15 +706,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc_refhi_reloc, /* special_function */ "REFHI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_REFLO 0x0011 */ /* Unused: */ @@ -722,15 +722,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc_refhi_reloc, /* special_function */ "REFLO", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_PAIR 0x0012 */ /* Unused: */ @@ -738,15 +738,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc_pair_reloc, /* special_function */ "PAIR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* IMAGE_REL_PPC_TOCREL16_DEFN 0x0013 */ /* 16-bit offset from TOC base, without causing a definition */ @@ -755,15 +755,15 @@ static reloc_howto_type ppc_coff_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "TOCREL16, TOCDEFN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -884,13 +884,13 @@ record_toc (toc_section, our_toc_offset, #ifdef COFF_IMAGE_WITH_PE -static boolean ppc_record_toc_entry +static bfd_boolean ppc_record_toc_entry PARAMS ((bfd *, struct bfd_link_info *, asection *, int, enum toc_type)); static void ppc_mark_symbol_as_glue PARAMS ((bfd *, int, struct internal_reloc *)); /* record a toc offset against a symbol */ -static boolean +static bfd_boolean ppc_record_toc_entry(abfd, info, sec, sym, toc_kind) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -922,7 +922,7 @@ ppc_record_toc_entry(abfd, info, sec, sy amt = (bfd_size_type) obj_raw_syment_count (abfd) * sizeof (int); local_syms = (int *) bfd_zalloc (abfd, amt); if (local_syms == 0) - return false; + return FALSE; obj_coff_local_toc_table (abfd) = local_syms; for (i = 0; i < obj_raw_syment_count (abfd); ++i) { @@ -940,7 +940,7 @@ ppc_record_toc_entry(abfd, info, sec, sy { (*_bfd_error_handler) (_("TOC overflow")); bfd_set_error (bfd_error_file_too_big); - return false; + return FALSE; } } } @@ -960,12 +960,12 @@ ppc_record_toc_entry(abfd, info, sec, sy { (*_bfd_error_handler) (_("TOC overflow")); bfd_set_error (bfd_error_file_too_big); - return false; + return FALSE; } } } - return true; + return TRUE; } /* record a toc offset against a symbol */ @@ -989,10 +989,10 @@ ppc_mark_symbol_as_glue(abfd, sym, rel) #endif /* COFF_IMAGE_WITH_PE */ -/* Return true if this relocation should +/* Return TRUE if this relocation should appear in the output .reloc section. */ -static boolean in_reloc_p(abfd, howto) +static bfd_boolean in_reloc_p(abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type *howto; { @@ -1030,7 +1030,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_ { /* the consth relocation comes in two parts, we have to remember the state between calls, in these variables */ - static boolean part1_consth_active = false; + static bfd_boolean part1_consth_active = FALSE; static unsigned long part1_consth_value; unsigned long sym_value; @@ -1052,7 +1052,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_ /* Keep the state machine happy in case we're called again */ if (r_type == IMAGE_REL_PPC_REFHI) { - part1_consth_active = true; + part1_consth_active = TRUE; part1_consth_value = 0; } return(bfd_reloc_undefined); @@ -1060,7 +1060,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_ if ((part1_consth_active) && (r_type != IMAGE_REL_PPC_PAIR)) { - part1_consth_active = false; + part1_consth_active = FALSE; *error_message = (char *) _("Missing PAIR"); return(bfd_reloc_dangerous); } @@ -1074,7 +1074,7 @@ pe_ppc_reloc (abfd, reloc_entry, symbol_ /* The reloc processing routine for the optimized COFF linker. */ -static boolean +static bfd_boolean coff_ppc_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) bfd *output_bfd; @@ -1088,7 +1088,7 @@ coff_ppc_relocate_section (output_bfd, i { struct internal_reloc *rel; struct internal_reloc *relend; - boolean hihalf; + bfd_boolean hihalf; bfd_vma hihalf_val; asection *toc_section = 0; bfd_vma relocation; @@ -1098,9 +1098,9 @@ coff_ppc_relocate_section (output_bfd, i thing. The caller will take care of adjusting the reloc addresses and symbol indices. */ if (info->relocateable) - return true; + return TRUE; - hihalf = false; + hihalf = FALSE; hihalf_val = 0; rel = relocs; @@ -1182,8 +1182,8 @@ coff_ppc_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -1197,7 +1197,7 @@ coff_ppc_relocate_section (output_bfd, i (_("%s: unsupported relocation type 0x%02x"), bfd_archive_filename (input_bfd), r_type); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; case IMAGE_REL_PPC_TOCREL16: { bfd_signed_vma our_toc_offset; @@ -1224,7 +1224,7 @@ coff_ppc_relocate_section (output_bfd, i * the 1 bit to tell us if we've written this particular toc * entry out. */ - fixit = false; + fixit = FALSE; if (h == 0) { /* it is a file local symbol */ int *local_toc_table; @@ -1254,7 +1254,7 @@ coff_ppc_relocate_section (output_bfd, i toc_section->contents + our_toc_offset); MARK_AS_WRITTEN(local_toc_table[symndx]); - fixit = true; + fixit = TRUE; } } else @@ -1291,7 +1291,7 @@ coff_ppc_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), name, (unsigned long) our_toc_offset); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } record_toc (toc_section, our_toc_offset, pub, @@ -1317,7 +1317,7 @@ coff_ppc_relocate_section (output_bfd, i MARK_AS_WRITTEN(h->toc_offset); /* The tricky part is that this is the address that */ /* needs a .reloc entry for it */ - fixit = true; + fixit = TRUE; } } @@ -1348,7 +1348,7 @@ coff_ppc_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), (unsigned long) toc_section->_raw_size); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Now we know the relocation for this toc reference */ @@ -1423,7 +1423,7 @@ coff_ppc_relocate_section (output_bfd, i (_("%s: Out of order IMGLUE reloc for %s"), bfd_archive_filename (input_bfd), my_name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } case IMAGE_REL_PPC_ADDR32NB: @@ -1438,7 +1438,7 @@ coff_ppc_relocate_section (output_bfd, i struct coff_link_hash_entry *myh; myh = coff_link_hash_lookup (coff_hash_table (info), "__idata5_magic__", - false, false, true); + FALSE, FALSE, TRUE); first_thunk_address = myh->root.u.def.value + sec->output_section->vma + sec->output_offset - @@ -1447,12 +1447,12 @@ coff_ppc_relocate_section (output_bfd, i idata5offset = myh->root.u.def.value; myh = coff_link_hash_lookup (coff_hash_table (info), "__idata6_magic__", - false, false, true); + FALSE, FALSE, TRUE); thunk_size = myh->root.u.def.value - idata5offset; myh = coff_link_hash_lookup (coff_hash_table (info), "__idata4_magic__", - false, false, true); + FALSE, FALSE, TRUE); import_table_size = myh->root.u.def.value; } @@ -1479,7 +1479,7 @@ coff_ppc_relocate_section (output_bfd, i myh = coff_link_hash_lookup (coff_hash_table (info), target, - false, false, true); + FALSE, FALSE, TRUE); if (myh == 0) { /* Missing magic cookies. Something is very wrong. */ @@ -1493,7 +1493,7 @@ coff_ppc_relocate_section (output_bfd, i int idata5offset; myh = coff_link_hash_lookup (coff_hash_table (info), "__idata5_magic__", - false, false, true); + FALSE, FALSE, TRUE); first_thunk_address = myh->root.u.def.value + sec->output_section->vma + sec->output_offset - @@ -1502,12 +1502,12 @@ coff_ppc_relocate_section (output_bfd, i idata5offset = myh->root.u.def.value; myh = coff_link_hash_lookup (coff_hash_table (info), "__idata6_magic__", - false, false, true); + FALSE, FALSE, TRUE); thunk_size = myh->root.u.def.value - idata5offset; myh = coff_link_hash_lookup (coff_hash_table (info), "__idata4_magic__", - false, false, true); + FALSE, FALSE, TRUE); import_table_size = myh->root.u.def.value; } } @@ -1596,14 +1596,14 @@ coff_ppc_relocate_section (output_bfd, i (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) { - return false; + return FALSE; } } } } - return true; + return TRUE; } #ifdef COFF_IMAGE_WITH_PE @@ -1677,7 +1677,7 @@ dump_toc (vfile) fprintf (file, "\n"); } -boolean +bfd_boolean ppc_allocate_toc_section (info) struct bfd_link_info *info ATTRIBUTE_UNUSED; { @@ -1687,7 +1687,7 @@ ppc_allocate_toc_section (info) static char test_char = '1'; if ( global_toc_size == 0 ) /* FIXME: does this get me in trouble? */ - return true; + return TRUE; if (bfd_of_toc_owner == 0) { @@ -1709,10 +1709,10 @@ ppc_allocate_toc_section (info) s->_raw_size = s->_cooked_size = global_toc_size; s->contents = foo; - return true; + return TRUE; } -boolean +bfd_boolean ppc_process_before_allocation (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1730,7 +1730,7 @@ ppc_process_before_allocation (abfd, inf if (sec == 0) { - return true; + return TRUE; } for (; sec != 0; sec = sec->next) @@ -1749,7 +1749,7 @@ ppc_process_before_allocation (abfd, inf { unsigned short r_type = EXTRACT_TYPE (rel->r_type); unsigned short r_flags = EXTRACT_FLAGS(rel->r_type); - boolean ok = true; + bfd_boolean ok = TRUE; DUMP_RELOC2(ppc_coff_howto_table[r_type].name, rel); @@ -1762,7 +1762,7 @@ ppc_process_before_allocation (abfd, inf ok = ppc_record_toc_entry(abfd, info, sec, rel->r_symndx, default_toc); if (!ok) - return false; + return FALSE; break; case IMAGE_REL_PPC_IMGLUE: ppc_mark_symbol_as_glue(abfd, rel->r_symndx, rel); @@ -1773,7 +1773,7 @@ ppc_process_before_allocation (abfd, inf } } - return true; + return TRUE; } #endif @@ -2278,17 +2278,17 @@ ppc_coff_swap_sym_in_hook (abfd, ext1, i #ifndef COFF_IMAGE_WITH_PE -static boolean ppc_do_last PARAMS ((bfd *)); +static bfd_boolean ppc_do_last PARAMS ((bfd *)); static bfd *ppc_get_last PARAMS ((void)); -static boolean +static bfd_boolean ppc_do_last (abfd) bfd *abfd; { if (abfd == bfd_of_toc_owner) - return true; + return TRUE; else - return false; + return FALSE; } static bfd * @@ -2311,14 +2311,14 @@ ppc_get_last() /* Do the final link step. */ -boolean +bfd_boolean ppc_bfd_coff_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; { bfd_size_type symesz; struct coff_final_link_info finfo; - boolean debug_merge_allocated; + bfd_boolean debug_merge_allocated; asection *o; struct bfd_link_order *p; bfd_size_type max_sym_count; @@ -2351,7 +2351,7 @@ ppc_bfd_coff_final_link (abfd, info) finfo.contents = NULL; finfo.external_relocs = NULL; finfo.internal_relocs = NULL; - debug_merge_allocated = false; + debug_merge_allocated = FALSE; coff_data (abfd)->link_info = info; @@ -2361,13 +2361,13 @@ ppc_bfd_coff_final_link (abfd, info) if (! coff_debug_merge_hash_table_init (&finfo.debug_merge)) goto error_return; - debug_merge_allocated = true; + debug_merge_allocated = TRUE; /* Compute the file positions for all the sections. */ if (! abfd->output_has_begun) { if (! bfd_coff_compute_section_file_positions (abfd)) - return false; + return FALSE; } /* Count the line numbers and relocation entries required for the @@ -2395,7 +2395,7 @@ ppc_bfd_coff_final_link (abfd, info) link. This will normally be every section. We need to do this so that we can identify any sections which the linker has decided to not include. */ - sec->linker_mark = true; + sec->linker_mark = TRUE; if (info->strip == strip_none || info->strip == strip_some) @@ -2509,7 +2509,7 @@ ppc_bfd_coff_final_link (abfd, info) { bfd_size_type sz; - sub->output_has_begun = false; + sub->output_has_begun = FALSE; sz = obj_raw_syment_count (sub); if (sz > max_sym_count) max_sym_count = sz; @@ -2575,7 +2575,7 @@ ppc_bfd_coff_final_link (abfd, info) { if (! _bfd_coff_link_input_bfd (&finfo, sub)) goto error_return; - sub->output_has_begun = true; + sub->output_has_begun = TRUE; } } else if (p->type == bfd_section_reloc_link_order @@ -2600,14 +2600,14 @@ ppc_bfd_coff_final_link (abfd, info) if (! _bfd_coff_link_input_bfd (&finfo, last_one)) goto error_return; } - last_one->output_has_begun = true; + last_one->output_has_begun = TRUE; } #endif /* Free up the buffers used by _bfd_coff_link_input_bfd. */ coff_debug_merge_hash_table_free (&finfo.debug_merge); - debug_merge_allocated = false; + debug_merge_allocated = FALSE; if (finfo.internal_syms != NULL) { @@ -2659,11 +2659,11 @@ ppc_bfd_coff_final_link (abfd, info) pos = obj_sym_filepos (abfd) + finfo.last_file_index * symesz; if (bfd_seek (abfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo.outsyms, symesz, abfd) != symesz) - return false; + return FALSE; } /* Write out the global symbols. */ - finfo.failed = false; + finfo.failed = FALSE; coff_link_hash_traverse (coff_hash_table (info), _bfd_coff_write_global_sym, (PTR) &finfo); if (finfo.failed) @@ -2740,7 +2740,7 @@ ppc_bfd_coff_final_link (abfd, info) if (coff_hash_table (info)->stab_info != NULL) { if (! _bfd_write_stab_strings (abfd, &coff_hash_table (info)->stab_info)) - return false; + return FALSE; } /* Write out the string table. */ @@ -2750,7 +2750,7 @@ ppc_bfd_coff_final_link (abfd, info) pos = obj_sym_filepos (abfd) + obj_raw_syment_count (abfd) * symesz; if (bfd_seek (abfd, pos, SEEK_SET) != 0) - return false; + return FALSE; #if STRING_SIZE_SIZE == 4 H_PUT_32 (abfd, @@ -2762,10 +2762,10 @@ ppc_bfd_coff_final_link (abfd, info) if (bfd_bwrite (strbuf, (bfd_size_type) STRING_SIZE_SIZE, abfd) != STRING_SIZE_SIZE) - return false; + return FALSE; if (! _bfd_stringtab_emit (abfd, finfo.strtab)) - return false; + return FALSE; } _bfd_stringtab_free (finfo.strtab); @@ -2774,7 +2774,7 @@ ppc_bfd_coff_final_link (abfd, info) not try to write out the symbols. */ bfd_get_symcount (abfd) = 0; - return true; + return TRUE; error_return: if (debug_merge_allocated) @@ -2812,7 +2812,7 @@ ppc_bfd_coff_final_link (abfd, info) free (finfo.internal_relocs); if (external_relocs != NULL) free (external_relocs); - return false; + return FALSE; } #endif diff -uprN binutils-2.13.90.0.16/bfd/coff-rs6000.c binutils-2.13.90.0.18/bfd/coff-rs6000.c --- binutils-2.13.90.0.16/bfd/coff-rs6000.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/coff-rs6000.c Mon Dec 16 12:22:51 2002 @@ -36,29 +36,46 @@ Foundation, Inc., 59 Temple Place - Suit #include "libcoff.h" #include "libxcoff.h" -extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *)); -extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *)); +extern bfd_boolean _bfd_xcoff_mkobject + PARAMS ((bfd *)); +extern bfd_boolean _bfd_xcoff_copy_private_bfd_data + PARAMS ((bfd *, bfd *)); +extern bfd_boolean _bfd_xcoff_is_local_label_name + PARAMS ((bfd *, const char *)); extern reloc_howto_type *_bfd_xcoff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *)); -extern const bfd_target *_bfd_xcoff_archive_p PARAMS ((bfd *)); -extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *)); -extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *)); -extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *)); -extern boolean _bfd_xcoff_write_armap +extern bfd_boolean _bfd_xcoff_slurp_armap + PARAMS ((bfd *)); +extern const bfd_target *_bfd_xcoff_archive_p + PARAMS ((bfd *)); +extern PTR _bfd_xcoff_read_ar_hdr + PARAMS ((bfd *)); +extern bfd *_bfd_xcoff_openr_next_archived_file + PARAMS ((bfd *, bfd *)); +extern int _bfd_xcoff_stat_arch_elt + PARAMS ((bfd *, struct stat *)); +extern bfd_boolean _bfd_xcoff_write_armap PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); -extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *)); -extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, boolean)); -extern void _bfd_xcoff_swap_sym_in PARAMS ((bfd *, PTR, PTR)); -extern unsigned int _bfd_xcoff_swap_sym_out PARAMS ((bfd *, PTR, PTR)); -extern void _bfd_xcoff_swap_aux_in PARAMS ((bfd *, PTR, int, int, int, int, PTR)); -extern unsigned int _bfd_xcoff_swap_aux_out PARAMS ((bfd *, PTR, int, int, int, int, PTR)); -static void xcoff_swap_reloc_in PARAMS ((bfd *, PTR, PTR)); -static unsigned int xcoff_swap_reloc_out PARAMS ((bfd *, PTR, PTR)); +extern bfd_boolean _bfd_xcoff_write_archive_contents + PARAMS ((bfd *)); +extern int _bfd_xcoff_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +extern void _bfd_xcoff_swap_sym_in + PARAMS ((bfd *, PTR, PTR)); +extern unsigned int _bfd_xcoff_swap_sym_out + PARAMS ((bfd *, PTR, PTR)); +extern void _bfd_xcoff_swap_aux_in + PARAMS ((bfd *, PTR, int, int, int, int, PTR)); +extern unsigned int _bfd_xcoff_swap_aux_out + PARAMS ((bfd *, PTR, int, int, int, int, PTR)); +static void xcoff_swap_reloc_in + PARAMS ((bfd *, PTR, PTR)); +static unsigned int xcoff_swap_reloc_out + PARAMS ((bfd *, PTR, PTR)); /* Forward declare xcoff_rtype2howto for coffcode.h macro. */ -void xcoff_rtype2howto PARAMS ((arelent *, struct internal_reloc *)); +void xcoff_rtype2howto + PARAMS ((arelent *, struct internal_reloc *)); /* coffcode.h needs these to be defined. */ #define RS6000COFF_C 1 @@ -82,11 +99,14 @@ void xcoff_rtype2howto PARAMS ((arelent #define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name #define coff_bfd_reloc_type_lookup _bfd_xcoff_reloc_type_lookup #ifdef AIX_CORE -extern const bfd_target * rs6000coff_core_p PARAMS ((bfd *abfd)); -extern boolean rs6000coff_core_file_matches_executable_p +extern const bfd_target * rs6000coff_core_p + PARAMS ((bfd *abfd)); +extern bfd_boolean rs6000coff_core_file_matches_executable_p PARAMS ((bfd *cbfd, bfd *ebfd)); -extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd)); -extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd)); +extern char *rs6000coff_core_file_failing_command + PARAMS ((bfd *abfd)); +extern int rs6000coff_core_file_failing_signal + PARAMS ((bfd *abfd)); #define CORE_FILE_P rs6000coff_core_p #define coff_core_file_failing_command \ rs6000coff_core_file_failing_command @@ -115,13 +135,16 @@ extern int rs6000coff_core_file_failing_ /* The main body of code is in coffcode.h. */ -static const char *normalize_filename PARAMS ((bfd *)); -static boolean xcoff_write_armap_old +static const char *normalize_filename + PARAMS ((bfd *)); +static bfd_boolean xcoff_write_armap_old PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); -static boolean xcoff_write_armap_big +static bfd_boolean xcoff_write_armap_big PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); -static boolean xcoff_write_archive_contents_old PARAMS ((bfd *)); -static boolean xcoff_write_archive_contents_big PARAMS ((bfd *)); +static bfd_boolean xcoff_write_archive_contents_old + PARAMS ((bfd *)); +static bfd_boolean xcoff_write_archive_contents_big + PARAMS ((bfd *)); static void xcoff_swap_ldhdr_in PARAMS ((bfd *, const PTR, struct internal_ldhdr *)); static void xcoff_swap_ldhdr_out @@ -134,39 +157,45 @@ static void xcoff_swap_ldrel_in PARAMS ((bfd *, const PTR, struct internal_ldrel *)); static void xcoff_swap_ldrel_out PARAMS ((bfd *, const struct internal_ldrel *, PTR)); -static boolean xcoff_ppc_relocate_section +static bfd_boolean xcoff_ppc_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); -static boolean _bfd_xcoff_put_ldsymbol_name +static bfd_boolean _bfd_xcoff_put_ldsymbol_name PARAMS ((bfd *, struct xcoff_loader_info *, struct internal_ldsym *, const char *)); static asection *xcoff_create_csect_from_smclas PARAMS ((bfd *, union internal_auxent *, const char *)); -static boolean xcoff_is_lineno_count_overflow PARAMS ((bfd *, bfd_vma)); -static boolean xcoff_is_reloc_count_overflow PARAMS ((bfd *, bfd_vma)); +static bfd_boolean xcoff_is_lineno_count_overflow + PARAMS ((bfd *, bfd_vma)); +static bfd_boolean xcoff_is_reloc_count_overflow + PARAMS ((bfd *, bfd_vma)); static bfd_vma xcoff_loader_symbol_offset PARAMS ((bfd *, struct internal_ldhdr *)); static bfd_vma xcoff_loader_reloc_offset PARAMS ((bfd *, struct internal_ldhdr *)); -static boolean xcoff_generate_rtinit - PARAMS ((bfd *, const char *, const char *, boolean)); -static boolean do_pad PARAMS ((bfd *, unsigned int)); -static boolean do_copy PARAMS ((bfd *, bfd *)); -static boolean do_shared_object_padding PARAMS ((bfd *, bfd *, ufile_ptr *, int)); +static bfd_boolean xcoff_generate_rtinit + PARAMS ((bfd *, const char *, const char *, bfd_boolean)); +static bfd_boolean do_pad + PARAMS ((bfd *, unsigned int)); +static bfd_boolean do_copy + PARAMS ((bfd *, bfd *)); +static bfd_boolean do_shared_object_padding + PARAMS ((bfd *, bfd *, ufile_ptr *, int)); /* Relocation functions */ -static boolean xcoff_reloc_type_br PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +static bfd_boolean xcoff_reloc_type_br + PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -static boolean xcoff_complain_overflow_dont_func +static bfd_boolean xcoff_complain_overflow_dont_func PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)); -static boolean xcoff_complain_overflow_bitfield_func +static bfd_boolean xcoff_complain_overflow_bitfield_func PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)); -static boolean xcoff_complain_overflow_signed_func +static bfd_boolean xcoff_complain_overflow_signed_func PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)); -static boolean xcoff_complain_overflow_unsigned_func +static bfd_boolean xcoff_complain_overflow_unsigned_func PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)); -boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION]) +bfd_boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION]) PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)) = { xcoff_reloc_type_pos, /* R_POS (0x00) */ @@ -199,7 +228,7 @@ boolean (*xcoff_calculate_relocation[XCO xcoff_reloc_type_ba, /* R_RBRC (0x1b) */ }; -boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW]) +bfd_boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW]) PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)) = { xcoff_complain_overflow_dont_func, @@ -211,7 +240,7 @@ boolean (*xcoff_complain_overflow[XCOFF_ /* We use our own tdata type. Its first field is the COFF tdata type, so the COFF routines are compatible. */ -boolean +bfd_boolean _bfd_xcoff_mkobject (abfd) bfd *abfd; { @@ -220,7 +249,7 @@ _bfd_xcoff_mkobject (abfd) abfd->tdata.xcoff_obj_data = (struct xcoff_tdata *) bfd_zalloc (abfd, amt); if (abfd->tdata.xcoff_obj_data == NULL) - return false; + return FALSE; coff = coff_data (abfd); coff->symbols = (coff_symbol_type *) NULL; coff->conversion_table = (unsigned int *) NULL; @@ -239,12 +268,12 @@ _bfd_xcoff_mkobject (abfd) /* text section alignment is different than the default */ bfd_xcoff_text_align_power (abfd) = 2; - return true; + return TRUE; } /* Copy XCOFF data from one BFD to another. */ -boolean +bfd_boolean _bfd_xcoff_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -253,7 +282,7 @@ _bfd_xcoff_copy_private_bfd_data (ibfd, asection *sec; if (ibfd->xvec != obfd->xvec) - return true; + return TRUE; ix = xcoff_data (ibfd); ox = xcoff_data (obfd); ox->full_aouthdr = ix->full_aouthdr; @@ -284,7 +313,7 @@ _bfd_xcoff_copy_private_bfd_data (ibfd, ox->cputype = ix->cputype; ox->maxdata = ix->maxdata; ox->maxstack = ix->maxstack; - return true; + return TRUE; } /* I don't think XCOFF really has a notion of local labels based on @@ -292,12 +321,12 @@ _bfd_xcoff_copy_private_bfd_data (ibfd, The AIX native linker does not have a -X option, and it ignores the -x option. */ -boolean +bfd_boolean _bfd_xcoff_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; { - return false; + return FALSE; } void @@ -468,7 +497,8 @@ _bfd_xcoff_swap_aux_in (abfd, ext1, type } -unsigned int _bfd_xcoff_swap_aux_out PARAMS ((bfd *, PTR, int, int, int, int, PTR)); +unsigned int _bfd_xcoff_swap_aux_out + PARAMS ((bfd *, PTR, int, int, int, int, PTR)); unsigned int _bfd_xcoff_swap_aux_out (abfd, inp, type, class, indx, numaux, extp) @@ -582,105 +612,105 @@ reloc_howto_type xcoff_howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_POS", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit relocation, but store negative value. */ HOWTO (R_NEG, /* type */ 0, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_NEG", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative relocation. */ HOWTO (R_REL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_REL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit TOC relative relocation. */ HOWTO (R_TOC, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TOC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* I don't really know what this is. */ HOWTO (R_RTB, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RTB", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* External TOC relative symbol. */ HOWTO (R_GL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_GL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Local TOC relative symbol. */ HOWTO (R_TCL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TCL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (7), @@ -689,15 +719,15 @@ reloc_howto_type xcoff_howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_BA_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (9), @@ -706,15 +736,15 @@ reloc_howto_type xcoff_howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_BR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (0xb), @@ -723,30 +753,30 @@ reloc_howto_type xcoff_howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Load address. */ HOWTO (R_RLA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RLA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (0xe), @@ -755,15 +785,15 @@ reloc_howto_type xcoff_howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "R_REF", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (0x10), EMPTY_HOWTO (0x11), @@ -773,195 +803,195 @@ reloc_howto_type xcoff_howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TRL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* TOC relative load address. */ HOWTO (R_TRLA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TRLA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable relative branch. */ HOWTO (R_RRTBI, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RRTBI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable absolute branch. */ HOWTO (R_RRTBA, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RRTBA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable call absolute indirect. */ HOWTO (R_CAI, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_CAI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable call relative. */ HOWTO (R_CREL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_CREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBA, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBAC, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBAC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch relative. */ HOWTO (R_RBR, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_RBR_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBRC, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBRC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit Non modifiable absolute branch. */ HOWTO (R_BA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_BA_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xfffc, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch relative. */ HOWTO (R_RBR, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_RBR_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch relative. */ HOWTO (R_RBA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_RBA_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -1069,19 +1099,19 @@ _bfd_xcoff_reloc_type_lookup (abfd, code /* Set the magic for archive. */ -boolean +bfd_boolean bfd_xcoff_ar_archive_set_magic (abfd, magic) bfd *abfd ATTRIBUTE_UNUSED; char *magic ATTRIBUTE_UNUSED; { /* Not supported yet. */ - return false; + return FALSE; /* bfd_xcoff_archive_set_magic (abfd, magic); */ } /* Read in the armap of an XCOFF archive. */ -boolean +bfd_boolean _bfd_xcoff_slurp_armap (abfd) bfd *abfd; { @@ -1095,8 +1125,8 @@ _bfd_xcoff_slurp_armap (abfd) if (xcoff_ardata (abfd) == NULL) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } if (! xcoff_big_format_p (abfd)) @@ -1107,32 +1137,32 @@ _bfd_xcoff_slurp_armap (abfd) off = strtol (xcoff_ardata (abfd)->symoff, (char **) NULL, 10); if (off == 0) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } if (bfd_seek (abfd, off, SEEK_SET) != 0) - return false; + return FALSE; /* The symbol table starts with a normal archive header. */ if (bfd_bread ((PTR) &hdr, (bfd_size_type) SIZEOF_AR_HDR, abfd) != SIZEOF_AR_HDR) - return false; + return FALSE; /* Skip the name (normally empty). */ namlen = strtol (hdr.namlen, (char **) NULL, 10); off = ((namlen + 1) & ~ (size_t) 1) + SXCOFFARFMAG; if (bfd_seek (abfd, off, SEEK_CUR) != 0) - return false; + return FALSE; sz = strtol (hdr.size, (char **) NULL, 10); /* Read in the entire symbol table. */ contents = (bfd_byte *) bfd_alloc (abfd, sz); if (contents == NULL) - return false; + return FALSE; if (bfd_bread ((PTR) contents, sz, abfd) != sz) - return false; + return FALSE; /* The symbol table starts with a four byte count. */ c = H_GET_32 (abfd, contents); @@ -1140,13 +1170,13 @@ _bfd_xcoff_slurp_armap (abfd) if (c * 4 >= sz) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } bfd_ardata (abfd)->symdefs = ((carsym *) bfd_alloc (abfd, c * sizeof (carsym))); if (bfd_ardata (abfd)->symdefs == NULL) - return false; + return FALSE; /* After the count comes a list of four byte file offsets. */ for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 4; @@ -1162,23 +1192,23 @@ _bfd_xcoff_slurp_armap (abfd) off = strtol (xcoff_ardata_big (abfd)->symoff, (char **) NULL, 10); if (off == 0) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } if (bfd_seek (abfd, off, SEEK_SET) != 0) - return false; + return FALSE; /* The symbol table starts with a normal archive header. */ if (bfd_bread ((PTR) &hdr, (bfd_size_type) SIZEOF_AR_HDR_BIG, abfd) != SIZEOF_AR_HDR_BIG) - return false; + return FALSE; /* Skip the name (normally empty). */ namlen = strtol (hdr.namlen, (char **) NULL, 10); off = ((namlen + 1) & ~ (size_t) 1) + SXCOFFARFMAG; if (bfd_seek (abfd, off, SEEK_CUR) != 0) - return false; + return FALSE; /* XXX This actually has to be a call to strtoll (at least on 32-bit machines) since the field width is 20 and there numbers with more @@ -1188,9 +1218,9 @@ _bfd_xcoff_slurp_armap (abfd) /* Read in the entire symbol table. */ contents = (bfd_byte *) bfd_alloc (abfd, sz); if (contents == NULL) - return false; + return FALSE; if (bfd_bread ((PTR) contents, sz, abfd) != sz) - return false; + return FALSE; /* The symbol table starts with an eight byte count. */ c = H_GET_64 (abfd, contents); @@ -1198,13 +1228,13 @@ _bfd_xcoff_slurp_armap (abfd) if (c * 8 >= sz) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } bfd_ardata (abfd)->symdefs = ((carsym *) bfd_alloc (abfd, c * sizeof (carsym))); if (bfd_ardata (abfd)->symdefs == NULL) - return false; + return FALSE; /* After the count comes a list of eight byte file offsets. */ for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 8; @@ -1222,15 +1252,15 @@ _bfd_xcoff_slurp_armap (abfd) if (p >= cend) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } arsym->name = (char *) p; } bfd_ardata (abfd)->symdef_count = c; - bfd_has_map (abfd) = true; + bfd_has_map (abfd) = TRUE; - return true; + return TRUE; } /* See if this is an XCOFF archive. */ @@ -1546,7 +1576,7 @@ normalize_filename (abfd) /* Write out an XCOFF armap. */ /*ARGSUSED*/ -static boolean +static bfd_boolean xcoff_write_armap_old (abfd, elength, map, orl_count, stridx) bfd *abfd; unsigned int elength ATTRIBUTE_UNUSED; @@ -1580,11 +1610,11 @@ xcoff_write_armap_old (abfd, elength, ma != SIZEOF_AR_HDR || (bfd_bwrite (XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, abfd) != SXCOFFARFMAG)) - return false; + return FALSE; H_PUT_32 (abfd, orl_count, buf); if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; sub = abfd->archive_head; fileoff = SIZEOF_AR_FILE_HDR; @@ -1597,7 +1627,7 @@ xcoff_write_armap_old (abfd, elength, ma { H_PUT_32 (abfd, fileoff, buf); if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; ++i; } namlen = strlen (normalize_filename (sub)); @@ -1618,7 +1648,7 @@ xcoff_write_armap_old (abfd, elength, ma name = *map[i].name; namlen = strlen (name); if (bfd_bwrite (name, (bfd_size_type) (namlen + 1), abfd) != namlen + 1) - return false; + return FALSE; } if ((stridx & 1) != 0) @@ -1627,10 +1657,10 @@ xcoff_write_armap_old (abfd, elength, ma b = '\0'; if (bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1) - return false; + return FALSE; } - return true; + return TRUE; } static char buff20[XCOFFARMAGBIG_ELEMENT_SIZE + 1]; @@ -1659,7 +1689,7 @@ static char buff20[XCOFFARMAGBIG_ELEMENT memcpy (buff20, (d), 20), \ (v) = bfd_scan_vma (buff20, (const char **) NULL, 10) -static boolean +static bfd_boolean do_pad (abfd, number) bfd *abfd; unsigned int number; @@ -1668,16 +1698,16 @@ do_pad (abfd, number) /* Limit pad to <= 4096. */ if (number > 4096) - return false; + return FALSE; while (number--) if (bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean do_copy (out_bfd, in_bfd) bfd *out_bfd; bfd *in_bfd; @@ -1686,7 +1716,7 @@ do_copy (out_bfd, in_bfd) bfd_byte buffer[DEFAULT_BUFFERSIZE]; if (bfd_seek (in_bfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; remaining = arelt_size (in_bfd); @@ -1694,7 +1724,7 @@ do_copy (out_bfd, in_bfd) { if (bfd_bread (buffer, DEFAULT_BUFFERSIZE, in_bfd) != DEFAULT_BUFFERSIZE || bfd_bwrite (buffer, DEFAULT_BUFFERSIZE, out_bfd) != DEFAULT_BUFFERSIZE) - return false; + return FALSE; remaining -= DEFAULT_BUFFERSIZE; } @@ -1703,13 +1733,13 @@ do_copy (out_bfd, in_bfd) { if (bfd_bread (buffer, remaining, in_bfd) != remaining || bfd_bwrite (buffer, remaining, out_bfd) != remaining) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean do_shared_object_padding (out_bfd, in_bfd, offset, ar_header_size) bfd *out_bfd; bfd *in_bfd; @@ -1729,15 +1759,15 @@ do_shared_object_padding (out_bfd, in_bf pad -= (*offset + ar_header_size) & (pad - 1); if (! do_pad (out_bfd, pad)) - return false; + return FALSE; *offset += pad; } - return true; + return TRUE; } -static boolean +static bfd_boolean xcoff_write_armap_big (abfd, elength, map, orl_count, stridx) bfd *abfd; unsigned int elength ATTRIBUTE_UNUSED; @@ -1834,7 +1864,7 @@ xcoff_write_armap_big (abfd, elength, ma symbol_table = NULL; symbol_table = (bfd_byte *) bfd_zmalloc (symbol_table_size); if (symbol_table == NULL) - return false; + return FALSE; hdr = (struct xcoff_ar_hdr_big *) symbol_table; @@ -1937,7 +1967,7 @@ xcoff_write_armap_big (abfd, elength, ma symbol_table = NULL; symbol_table = (bfd_byte *) bfd_zmalloc (symbol_table_size); if (symbol_table == NULL) - return false; + return FALSE; hdr = (struct xcoff_ar_hdr_big *) symbol_table; @@ -2017,10 +2047,10 @@ xcoff_write_armap_big (abfd, elength, ma else PRINT20 (fhdr->symoff64, 0); - return true; + return TRUE; } -boolean +bfd_boolean _bfd_xcoff_write_armap (abfd, elength, map, orl_count, stridx) bfd *abfd; unsigned int elength ATTRIBUTE_UNUSED; @@ -2037,7 +2067,7 @@ _bfd_xcoff_write_armap (abfd, elength, m /* Write out an XCOFF archive. We always write an entire archive, rather than fussing with the freelist and so forth. */ -static boolean +static bfd_boolean xcoff_write_archive_contents_old (abfd) bfd *abfd; { @@ -2045,8 +2075,8 @@ xcoff_write_archive_contents_old (abfd) bfd_size_type count; bfd_size_type total_namlen; file_ptr *offsets; - boolean makemap; - boolean hasobjects; + bfd_boolean makemap; + bfd_boolean hasobjects; ufile_ptr prevoff, nextoff; bfd *sub; size_t i; @@ -2069,13 +2099,13 @@ xcoff_write_archive_contents_old (abfd) } offsets = (file_ptr *) bfd_alloc (abfd, count * sizeof (file_ptr)); if (offsets == NULL) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) SIZEOF_AR_FILE_HDR, SEEK_SET) != 0) - return false; + return FALSE; makemap = bfd_has_map (abfd); - hasobjects = false; + hasobjects = FALSE; prevoff = 0; nextoff = SIZEOF_AR_FILE_HDR; for (sub = abfd->archive_head, i = 0; sub != NULL; sub = sub->next, i++) @@ -2088,7 +2118,7 @@ xcoff_write_archive_contents_old (abfd) if (makemap && ! hasobjects) { if (bfd_check_format (sub, bfd_object)) - hasobjects = true; + hasobjects = TRUE; } name = normalize_filename (sub); @@ -2108,7 +2138,7 @@ xcoff_write_archive_contents_old (abfd) if (stat (bfd_get_filename (sub), &s) != 0) { bfd_set_error (bfd_error_system_call); - return false; + return FALSE; } sprintf (ahdrp->size, "%ld", (long) s.st_size); @@ -2122,7 +2152,7 @@ xcoff_write_archive_contents_old (abfd) size = sizeof (struct areltdata); sub->arelt_data = bfd_alloc (sub, size); if (sub->arelt_data == NULL) - return false; + return FALSE; } arch_eltdata (sub)->parsed_size = s.st_size; @@ -2157,19 +2187,19 @@ xcoff_write_archive_contents_old (abfd) if ((bfd_bwrite ((PTR) ahdrp, (bfd_size_type) SIZEOF_AR_HDR, abfd) != SIZEOF_AR_HDR) - || (bfd_bwrite ((PTR) name, namlen, abfd) != namlen) - || (bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, abfd) - != SXCOFFARFMAG)) - return false; + || bfd_bwrite ((PTR) name, namlen, abfd) != namlen + || bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, + abfd) != SXCOFFARFMAG) + return FALSE; if (bfd_seek (sub, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; if (! do_copy (abfd, sub)) - return false; + return FALSE; if (! do_pad (abfd, size & 1)) - return false; + return FALSE; } sprintf (fhdr.lastmemoff, "%ld", (long) prevoff); @@ -2213,18 +2243,18 @@ xcoff_write_archive_contents_old (abfd) != SIZEOF_AR_HDR) || (bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, abfd) != SXCOFFARFMAG)) - return false; + return FALSE; sprintf (decbuf, "%-12ld", (long) count); if (bfd_bwrite ((PTR) decbuf, (bfd_size_type) XCOFFARMAG_ELEMENT_SIZE, abfd) != XCOFFARMAG_ELEMENT_SIZE) - return false; + return FALSE; for (i = 0; i < (size_t) count; i++) { sprintf (decbuf, "%-12ld", (long) offsets[i]); if (bfd_bwrite ((PTR) decbuf, (bfd_size_type) XCOFFARMAG_ELEMENT_SIZE, abfd) != XCOFFARMAG_ELEMENT_SIZE) - return false; + return FALSE; } for (sub = abfd->archive_head; sub != NULL; sub = sub->next) { @@ -2234,11 +2264,11 @@ xcoff_write_archive_contents_old (abfd) name = normalize_filename (sub); namlen = strlen (name); if (bfd_bwrite ((PTR) name, namlen + 1, abfd) != namlen + 1) - return false; + return FALSE; } if (! do_pad (abfd, size & 1)) - return false; + return FALSE; /* Write out the armap, if appropriate. */ if (! makemap || ! hasobjects) @@ -2249,7 +2279,7 @@ xcoff_write_archive_contents_old (abfd) sprintf (fhdr.symoff, "%ld", (long) nextoff); bfd_ardata (abfd)->tdata = (PTR) &fhdr; if (! _bfd_compute_and_write_armap (abfd, 0)) - return false; + return FALSE; } /* Write out the archive file header. */ @@ -2262,12 +2292,12 @@ xcoff_write_archive_contents_old (abfd) if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 || (bfd_bwrite ((PTR) &fhdr, (bfd_size_type) SIZEOF_AR_FILE_HDR, abfd) != SIZEOF_AR_FILE_HDR)) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean xcoff_write_archive_contents_big (abfd) bfd *abfd; { @@ -2275,8 +2305,8 @@ xcoff_write_archive_contents_big (abfd) bfd_size_type count; bfd_size_type total_namlen; file_ptr *offsets; - boolean makemap; - boolean hasobjects; + bfd_boolean makemap; + bfd_boolean hasobjects; ufile_ptr prevoff, nextoff; bfd *current_bfd; size_t i; @@ -2289,11 +2319,11 @@ xcoff_write_archive_contents_big (abfd) memcpy (fhdr.magic, XCOFFARMAGBIG, SXCOFFARMAG); if (bfd_seek (abfd, (file_ptr) SIZEOF_AR_FILE_HDR_BIG, SEEK_SET) != 0) - return false; + return FALSE; /* Calculate count and total_namlen. */ makemap = bfd_has_map (abfd); - hasobjects = false; + hasobjects = FALSE; for (current_bfd = abfd->archive_head, count = 0, total_namlen = 0; current_bfd != NULL; current_bfd = current_bfd->next, count++) @@ -2303,7 +2333,7 @@ xcoff_write_archive_contents_big (abfd) if (makemap && ! hasobjects && bfd_check_format (current_bfd, bfd_object)) - hasobjects = true; + hasobjects = TRUE; } offsets = NULL; @@ -2311,7 +2341,7 @@ xcoff_write_archive_contents_big (abfd) { offsets = (file_ptr *) bfd_malloc (count * sizeof (file_ptr)); if (offsets == NULL) - return false; + return FALSE; } prevoff = 0; @@ -2344,7 +2374,7 @@ xcoff_write_archive_contents_big (abfd) if (stat (bfd_get_filename (current_bfd), &s) != 0) { bfd_set_error (bfd_error_system_call); - return false; + return FALSE; } PRINT20 (ahdrp->size, s.st_size); @@ -2358,7 +2388,7 @@ xcoff_write_archive_contents_big (abfd) size = sizeof (struct areltdata); current_bfd->arelt_data = bfd_alloc (current_bfd, size); if (current_bfd->arelt_data == NULL) - return false; + return FALSE; } arch_eltdata (current_bfd)->parsed_size = s.st_size; @@ -2385,7 +2415,7 @@ xcoff_write_archive_contents_big (abfd) if (! do_shared_object_padding (abfd, current_bfd, & nextoff, SIZEOF_AR_HDR_BIG + namlen + SXCOFFARFMAG)) - return false; + return FALSE; offsets[i] = nextoff; @@ -2399,16 +2429,16 @@ xcoff_write_archive_contents_big (abfd) || bfd_bwrite ((PTR) name, (bfd_size_type) namlen, abfd) != namlen || (bfd_bwrite ((PTR) XCOFFARFMAG, (bfd_size_type) SXCOFFARFMAG, abfd) != SXCOFFARFMAG)) - return false; + return FALSE; if (bfd_seek (current_bfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; if (! do_copy (abfd, current_bfd)) - return false; + return FALSE; if (! do_pad (abfd, size & 1)) - return false; + return FALSE; } if (count) @@ -2450,7 +2480,7 @@ xcoff_write_archive_contents_big (abfd) member_table = NULL; member_table = (bfd_byte *) bfd_zmalloc (member_table_size); if (member_table == NULL) - return false; + return FALSE; hdr = (struct xcoff_ar_hdr_big *) member_table; @@ -2498,7 +2528,7 @@ xcoff_write_archive_contents_big (abfd) } if (bfd_bwrite (member_table, member_table_size, abfd) != member_table_size) - return false; + return FALSE; free (member_table); member_table = NULL; @@ -2521,7 +2551,7 @@ xcoff_write_archive_contents_big (abfd) bfd_ardata (abfd)->tdata = (PTR) &fhdr; if (! _bfd_compute_and_write_armap (abfd, 0)) - return false; + return FALSE; } /* Write out the archive file header. */ @@ -2529,12 +2559,12 @@ xcoff_write_archive_contents_big (abfd) if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 || (bfd_bwrite ((PTR) &fhdr, (bfd_size_type) SIZEOF_AR_FILE_HDR_BIG, abfd) != SIZEOF_AR_FILE_HDR_BIG)) - return false; + return FALSE; - return true; + return TRUE; } -boolean +bfd_boolean _bfd_xcoff_write_archive_contents (abfd) bfd *abfd; { @@ -2550,7 +2580,7 @@ _bfd_xcoff_write_archive_contents (abfd) int _bfd_xcoff_sizeof_headers (abfd, reloc) bfd *abfd; - boolean reloc ATTRIBUTE_UNUSED; + bfd_boolean reloc ATTRIBUTE_UNUSED; { int size; @@ -2725,7 +2755,7 @@ xcoff_swap_ldrel_out (abfd, src, d) } -boolean +bfd_boolean xcoff_reloc_type_noop (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd ATTRIBUTE_UNUSED; @@ -2739,10 +2769,10 @@ xcoff_reloc_type_noop (input_bfd, input_ bfd_vma *relocation ATTRIBUTE_UNUSED; bfd_byte *contents ATTRIBUTE_UNUSED; { - return true; + return TRUE; } -boolean +bfd_boolean xcoff_reloc_type_fail (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd; @@ -2760,10 +2790,10 @@ xcoff_reloc_type_fail (input_bfd, input_ (_("%s: unsupported relocation type 0x%02x"), bfd_get_filename (input_bfd), (unsigned int) rel->r_type); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } -boolean +bfd_boolean xcoff_reloc_type_pos (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd ATTRIBUTE_UNUSED; @@ -2778,10 +2808,10 @@ xcoff_reloc_type_pos (input_bfd, input_s bfd_byte *contents ATTRIBUTE_UNUSED; { *relocation = val + addend; - return true; + return TRUE; } -boolean +bfd_boolean xcoff_reloc_type_neg (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd ATTRIBUTE_UNUSED; @@ -2796,10 +2826,10 @@ xcoff_reloc_type_neg (input_bfd, input_s bfd_byte *contents ATTRIBUTE_UNUSED; { *relocation = addend - val; - return true; + return TRUE; } -boolean +bfd_boolean xcoff_reloc_type_rel (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd ATTRIBUTE_UNUSED; @@ -2813,7 +2843,7 @@ xcoff_reloc_type_rel (input_bfd, input_s bfd_vma *relocation; bfd_byte *contents ATTRIBUTE_UNUSED; { - howto->pc_relative = true; + howto->pc_relative = TRUE; /* A PC relative reloc includes the section address. */ addend += input_section->vma; @@ -2821,10 +2851,10 @@ xcoff_reloc_type_rel (input_bfd, input_s *relocation = val + addend; *relocation -= (input_section->output_section->vma + input_section->output_offset); - return true; + return TRUE; } -boolean +bfd_boolean xcoff_reloc_type_toc (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd; @@ -2841,7 +2871,7 @@ xcoff_reloc_type_toc (input_bfd, input_s struct xcoff_link_hash_entry *h; if (0 > rel->r_symndx) - return false; + return FALSE; h = obj_xcoff_sym_hashes (input_bfd)[rel->r_symndx]; @@ -2854,7 +2884,7 @@ xcoff_reloc_type_toc (input_bfd, input_s bfd_get_filename (input_bfd), rel->r_vaddr, h->root.root.string); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } BFD_ASSERT ((h->flags & XCOFF_SET_TOC) == 0); @@ -2864,10 +2894,10 @@ xcoff_reloc_type_toc (input_bfd, input_s *relocation = ((val - xcoff_data (output_bfd)->toc) - (sym->n_value - xcoff_data (input_bfd)->toc)); - return true; + return TRUE; } -boolean +bfd_boolean xcoff_reloc_type_ba (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd ATTRIBUTE_UNUSED; @@ -2886,10 +2916,10 @@ xcoff_reloc_type_ba (input_bfd, input_se *relocation = val + addend; - return true; + return TRUE; } -static boolean +static bfd_boolean xcoff_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd; @@ -2906,7 +2936,7 @@ xcoff_reloc_type_br (input_bfd, input_se struct xcoff_link_hash_entry *h; if (0 > rel->r_symndx) - return false; + return FALSE; h = obj_xcoff_sym_hashes (input_bfd)[rel->r_symndx]; @@ -2956,7 +2986,7 @@ xcoff_reloc_type_br (input_bfd, input_se howto->complain_on_overflow = complain_overflow_dont; } - howto->pc_relative = true; + howto->pc_relative = TRUE; howto->src_mask &= ~3; howto->dst_mask = howto->src_mask; @@ -2966,10 +2996,10 @@ xcoff_reloc_type_br (input_bfd, input_se *relocation = val + addend; *relocation -= (input_section->output_section->vma + input_section->output_offset); - return true; + return TRUE; } -boolean +bfd_boolean xcoff_reloc_type_crel (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd ATTRIBUTE_UNUSED; @@ -2983,7 +3013,7 @@ xcoff_reloc_type_crel (input_bfd, input_ bfd_vma *relocation; bfd_byte *contents ATTRIBUTE_UNUSED; { - howto->pc_relative = true; + howto->pc_relative = TRUE; howto->src_mask &= ~3; howto->dst_mask = howto->src_mask; @@ -2993,20 +3023,20 @@ xcoff_reloc_type_crel (input_bfd, input_ *relocation = val + addend; *relocation -= (input_section->output_section->vma + input_section->output_offset); - return true; + return TRUE; } -static boolean +static bfd_boolean xcoff_complain_overflow_dont_func (input_bfd, val, relocation, howto) bfd *input_bfd ATTRIBUTE_UNUSED; bfd_vma val ATTRIBUTE_UNUSED; bfd_vma relocation ATTRIBUTE_UNUSED; struct reloc_howto_struct *howto ATTRIBUTE_UNUSED; { - return false; + return FALSE; } -static boolean +static bfd_boolean xcoff_complain_overflow_bitfield_func (input_bfd, val, relocation, howto) bfd *input_bfd; bfd_vma val; @@ -3054,7 +3084,7 @@ xcoff_complain_overflow_bitfield_func (i ones, we are OK, assuming a signed bitfield. */ ss = (signmask << howto->rightshift) - 1; if ((ss | relocation) != ~ (bfd_vma) 0) - return true; + return TRUE; a &= fieldmask; } @@ -3067,7 +3097,7 @@ xcoff_complain_overflow_bitfield_func (i away from the location at which it is linked. */ if (howto->bitsize + howto->rightshift == bfd_arch_bits_per_address (input_bfd)) - return false; + return FALSE; sum = a + b; if (sum < a || (sum & ~ fieldmask) != 0) @@ -3076,13 +3106,13 @@ xcoff_complain_overflow_bitfield_func (i for signed operands again. Here is the overflow test is as for complain_overflow_signed. */ if (((~ (a ^ b)) & (a ^ sum)) & signmask) - return true; + return TRUE; } - return false; + return FALSE; } -static boolean +static bfd_boolean xcoff_complain_overflow_signed_func (input_bfd, val, relocation, howto) bfd *input_bfd; bfd_vma val; @@ -3109,7 +3139,7 @@ xcoff_complain_overflow_signed_func (inp signmask = ~ (fieldmask >> 1); ss = a & signmask; if (ss != 0 && ss != ((addrmask >> howto->rightshift) & signmask)) - return true; + return TRUE; /* We only need this next bit of code if the sign bit of B is below the sign bit of A. This would only happen if @@ -3139,12 +3169,12 @@ xcoff_complain_overflow_signed_func (inp */ signmask = (fieldmask >> 1) + 1; if (((~ (a ^ b)) & (a ^ sum)) & signmask) - return true; + return TRUE; - return false; + return FALSE; } -static boolean +static bfd_boolean xcoff_complain_overflow_unsigned_func (input_bfd, val, relocation, howto) bfd *input_bfd; bfd_vma val; @@ -3178,9 +3208,9 @@ xcoff_complain_overflow_unsigned_func (i b = (b & addrmask) >> howto->bitpos; sum = (a + b) & addrmask; if ((a | b | sum) & ~ fieldmask) - return true; + return TRUE; - return false; + return FALSE; } /* This is the relocation function for the RS/6000/POWER/PowerPC. @@ -3296,7 +3326,7 @@ xcoff_complain_overflow_unsigned_func (i this is the same as R_POS. */ -boolean +bfd_boolean xcoff_ppc_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) @@ -3338,16 +3368,16 @@ xcoff_ppc_relocate_section (output_bfd, howto.rightshift = 0; howto.bitsize = (rel->r_size & 0x1f) + 1; howto.size = howto.bitsize > 16 ? 2 : 1; - howto.pc_relative = false; + howto.pc_relative = FALSE; howto.bitpos = 0; howto.complain_on_overflow = (rel->r_size & 0x80 ? complain_overflow_signed : complain_overflow_bitfield); howto.special_function = NULL; howto.name = "internal"; - howto.partial_inplace = true; + howto.partial_inplace = TRUE; howto.src_mask = howto.dst_mask = N_ONES (howto.bitsize); - howto.pcrel_offset = false; + howto.pcrel_offset = FALSE; /* symbol */ val = 0; @@ -3400,8 +3430,8 @@ xcoff_ppc_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; /* Don't try to process the reloc. It can't help, and it may generate another error. */ @@ -3414,7 +3444,7 @@ xcoff_ppc_relocate_section (output_bfd, || !((*xcoff_calculate_relocation[rel->r_type]) (input_bfd, input_section, output_bfd, rel, sym, &howto, val, addend, &relocation, contents))) - return false; + return FALSE; /* address */ address = rel->r_vaddr - input_section->vma; @@ -3466,7 +3496,7 @@ xcoff_ppc_relocate_section (output_bfd, if (! ((*info->callbacks->reloc_overflow) (info, name, reloc_type_name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } /* Add RELOCATION to the right bits of VALUE_TO_RELOCATE. */ @@ -3481,10 +3511,10 @@ xcoff_ppc_relocate_section (output_bfd, bfd_put_32 (input_bfd, value_to_relocate, location); } - return true; + return TRUE; } -static boolean +static bfd_boolean _bfd_xcoff_put_ldsymbol_name (abfd, ldinfo, ldsym, name) bfd *abfd ATTRIBUTE_UNUSED; struct xcoff_loader_info *ldinfo; @@ -3513,8 +3543,8 @@ _bfd_xcoff_put_ldsymbol_name (abfd, ldin bfd_realloc ((PTR) ldinfo->strings, newalc)); if (newstrings == NULL) { - ldinfo->failed = true; - return false; + ldinfo->failed = TRUE; + return FALSE; } ldinfo->string_alc = newalc; ldinfo->strings = newstrings; @@ -3528,10 +3558,10 @@ _bfd_xcoff_put_ldsymbol_name (abfd, ldin ldinfo->string_size += len + 3; } - return true; + return TRUE; } -static boolean +static bfd_boolean _bfd_xcoff_put_symbol_name (bfd *abfd, struct bfd_strtab_hash *strtab, struct internal_syment *sym, const char *name) @@ -3542,19 +3572,19 @@ _bfd_xcoff_put_symbol_name (bfd *abfd, s } else { - boolean hash; + bfd_boolean hash; bfd_size_type indx; - hash = true; + hash = TRUE; if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0) - hash = false; - indx = _bfd_stringtab_add (strtab, name, hash, false); + hash = FALSE; + indx = _bfd_stringtab_add (strtab, name, hash, FALSE); if (indx == (bfd_size_type) -1) - return false; + return FALSE; sym->_n._n_n._n_zeroes = 0; sym->_n._n_n._n_offset = STRING_SIZE_SIZE + indx; } - return true; + return TRUE; } static asection * @@ -3591,26 +3621,26 @@ xcoff_create_csect_from_smclas (abfd, au return return_value; } -static boolean +static bfd_boolean xcoff_is_lineno_count_overflow (abfd, value) bfd *abfd ATTRIBUTE_UNUSED; bfd_vma value; { if (0xffff <= value) - return true; + return TRUE; - return false; + return FALSE; } -static boolean +static bfd_boolean xcoff_is_reloc_count_overflow (abfd, value) bfd *abfd ATTRIBUTE_UNUSED; bfd_vma value; { if (0xffff <= value) - return true; + return TRUE; - return false; + return FALSE; } static bfd_vma @@ -3629,12 +3659,12 @@ xcoff_loader_reloc_offset (abfd, ldhdr) return bfd_xcoff_ldhdrsz (abfd) + ldhdr->l_nsyms * bfd_xcoff_ldsymsz (abfd); } -static boolean +static bfd_boolean xcoff_generate_rtinit (abfd, init, fini, rtld) bfd *abfd; const char *init; const char *fini; - boolean rtld; + bfd_boolean rtld; { bfd_byte filehdr_ext[FILHSZ]; bfd_byte scnhdr_ext[SCNHSZ]; @@ -3657,7 +3687,7 @@ xcoff_generate_rtinit (abfd, init, fini char *rtld_name = "__rtld"; if (! bfd_xcoff_rtinit_size (abfd)) - return false; + return FALSE; initsz = (init == NULL ? 0 : 1 + strlen (init)); finisz = (fini == NULL ? 0 : 1 + strlen (fini)); @@ -3712,7 +3742,7 @@ xcoff_generate_rtinit (abfd, init, fini data_buffer = NULL; data_buffer = (bfd_byte *) bfd_zmalloc (data_buffer_size); if (data_buffer == NULL) - return false; + return FALSE; if (initsz) { @@ -3748,7 +3778,7 @@ xcoff_generate_rtinit (abfd, init, fini string_table_size += 4; string_table = (bfd_byte *) bfd_zmalloc (string_table_size); if (string_table == NULL) - return false; + return FALSE; val = string_table_size; bfd_h_put_32 (abfd, val, &string_table[0]); @@ -3909,7 +3939,7 @@ xcoff_generate_rtinit (abfd, init, fini free (data_buffer); data_buffer = NULL; - return true; + return TRUE; } @@ -3918,15 +3948,15 @@ HOWTO (0, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_POS", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* glink @@ -3968,10 +3998,10 @@ static const struct xcoff_backend_data_r RELSZ, LINESZ, FILNMLEN, - true, /* _bfd_coff_long_filenames */ - false, /* _bfd_coff_long_section_names */ + TRUE, /* _bfd_coff_long_filenames */ + FALSE, /* _bfd_coff_long_section_names */ 3, /* _bfd_coff_default_section_alignment_power */ - false, /* _bfd_coff_force_symnames_in_strings */ + FALSE, /* _bfd_coff_force_symnames_in_strings */ 2, /* _bfd_coff_debug_string_prefix_length */ coff_swap_filehdr_in, coff_swap_aouthdr_in, @@ -4110,11 +4140,11 @@ const bfd_target rs6000coff_vec = /* Copy */ _bfd_xcoff_copy_private_bfd_data, - ((boolean (*) (bfd *, bfd *)) bfd_true), - ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), - ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), - ((boolean (*) (bfd *, flagword)) bfd_true), - ((boolean (*) (bfd *, void * )) bfd_true), + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true), + ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), + ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), + ((bfd_boolean (*) (bfd *, flagword)) bfd_true), + ((bfd_boolean (*) (bfd *, void * )) bfd_true), /* Core */ coff_core_file_failing_command, @@ -4124,7 +4154,7 @@ const bfd_target rs6000coff_vec = /* Archive */ _bfd_xcoff_slurp_armap, bfd_false, - ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), + ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), bfd_dont_truncate_arname, _bfd_xcoff_write_armap, _bfd_xcoff_read_ar_hdr, @@ -4210,10 +4240,10 @@ static const struct xcoff_backend_data_r RELSZ, LINESZ, FILNMLEN, - true, /* _bfd_coff_long_filenames */ - false, /* _bfd_coff_long_section_names */ + TRUE, /* _bfd_coff_long_filenames */ + FALSE, /* _bfd_coff_long_section_names */ 3, /* _bfd_coff_default_section_alignment_power */ - false, /* _bfd_coff_force_symnames_in_strings */ + FALSE, /* _bfd_coff_force_symnames_in_strings */ 2, /* _bfd_coff_debug_string_prefix_length */ coff_swap_filehdr_in, coff_swap_aouthdr_in, @@ -4352,11 +4382,11 @@ const bfd_target pmac_xcoff_vec = /* Copy */ _bfd_xcoff_copy_private_bfd_data, - ((boolean (*) (bfd *, bfd *)) bfd_true), - ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), - ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), - ((boolean (*) (bfd *, flagword)) bfd_true), - ((boolean (*) (bfd *, void * )) bfd_true), + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true), + ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), + ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), + ((bfd_boolean (*) (bfd *, flagword)) bfd_true), + ((bfd_boolean (*) (bfd *, void * )) bfd_true), /* Core */ coff_core_file_failing_command, @@ -4366,7 +4396,7 @@ const bfd_target pmac_xcoff_vec = /* Archive */ _bfd_xcoff_slurp_armap, bfd_false, - ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), + ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), bfd_dont_truncate_arname, _bfd_xcoff_write_armap, _bfd_xcoff_read_ar_hdr, diff -uprN binutils-2.13.90.0.16/bfd/coff-sh.c binutils-2.13.90.0.18/bfd/coff-sh.c --- binutils-2.13.90.0.16/bfd/coff-sh.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/bfd/coff-sh.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Hitachi Super-H COFF binaries. - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Cygnus Support. Written by Steve Chamberlain, . @@ -33,10 +33,10 @@ Foundation, Inc., 59 Temple Place - Suit #include "coff/pe.h" #ifndef COFF_IMAGE_WITH_PE -static boolean sh_align_load_span +static bfd_boolean sh_align_load_span PARAMS ((bfd *, asection *, bfd_byte *, - boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), - PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *)); + bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), + PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *)); #define _bfd_sh_align_load_span sh_align_load_span #endif @@ -48,23 +48,24 @@ static boolean sh_align_load_span static bfd_reloc_status_type sh_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static long get_symbol_value PARAMS ((asymbol *)); -static boolean sh_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); -static boolean sh_relax_delete_bytes +static bfd_boolean sh_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean sh_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); #ifndef COFF_IMAGE_WITH_PE static const struct sh_opcode *sh_insn_info PARAMS ((unsigned int)); #endif -static boolean sh_align_loads - PARAMS ((bfd *, asection *, struct internal_reloc *, bfd_byte *, boolean *)); -static boolean sh_swap_insns +static bfd_boolean sh_align_loads + PARAMS ((bfd *, asection *, struct internal_reloc *, bfd_byte *, + bfd_boolean *)); +static bfd_boolean sh_swap_insns PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma)); -static boolean sh_relocate_section +static bfd_boolean sh_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); static bfd_byte *sh_coff_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); + bfd_byte *, bfd_boolean, asymbol **)); static reloc_howto_type * sh_coff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); #ifdef COFF_WITH_PE @@ -84,10 +85,10 @@ static reloc_howto_type * sh_coff_reloc_ #define COFF_LONG_FILENAMES #ifdef COFF_WITH_PE -static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); -/* Return true if this relocation should +static bfd_boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); +/* Return TRUE if this relocation should appear in the output .reloc section. */ -static boolean in_reloc_p (abfd, howto) +static bfd_boolean in_reloc_p (abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type * howto; { @@ -107,15 +108,15 @@ static reloc_howto_type sh_coff_howtos[] 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_imm32ce", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #else EMPTY_HOWTO (2), #endif @@ -131,15 +132,15 @@ static reloc_howto_type sh_coff_howtos[] 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_pcdisp8by2", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (11), /* R_SH_PCDISP8 */ @@ -147,15 +148,15 @@ static reloc_howto_type sh_coff_howtos[] 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_pcdisp12by2", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xfff, /* src_mask */ 0xfff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (13), @@ -163,15 +164,15 @@ static reloc_howto_type sh_coff_howtos[] 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_imm32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (15), #ifdef COFF_WITH_PE @@ -179,15 +180,15 @@ static reloc_howto_type sh_coff_howtos[] 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "rva32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #else EMPTY_HOWTO (16), /* R_SH_IMM8 */ #endif @@ -201,169 +202,169 @@ static reloc_howto_type sh_coff_howtos[] 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_pcrelimm8by2", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_SH_PCRELIMM8BY4, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_pcrelimm8by4", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_SH_IMM16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_imm16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_SWITCH16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_switch16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_SWITCH32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_switch32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_USES, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_uses", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_COUNT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_count", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_ALIGN, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_align", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_CODE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_code", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_DATA, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_data", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_LABEL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_label", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_SWITCH8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_reloc, /* special_function */ "r_switch8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; #define SH_COFF_HOWTO_COUNT (sizeof sh_coff_howtos / sizeof sh_coff_howtos[0]) @@ -689,26 +690,26 @@ sh_reloc (abfd, reloc_entry, symbol_in, align load and store instructions on four byte boundaries if we can, by swapping them with one of the adjacent instructions. */ -static boolean +static bfd_boolean sh_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { struct internal_reloc *internal_relocs; struct internal_reloc *free_relocs = NULL; - boolean have_code; + bfd_boolean have_code; struct internal_reloc *irel, *irelend; bfd_byte *contents = NULL; bfd_byte *free_contents = NULL; - *again = false; + *again = FALSE; if (link_info->relocateable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -717,14 +718,14 @@ sh_relax_section (abfd, sec, link_info, internal_relocs = (_bfd_coff_read_internal_relocs (abfd, sec, link_info->keep_memory, - (bfd_byte *) NULL, false, + (bfd_byte *) NULL, FALSE, (struct internal_reloc *) NULL)); if (internal_relocs == NULL) goto error_return; if (! link_info->keep_memory) free_relocs = internal_relocs; - have_code = false; + have_code = FALSE; irelend = internal_relocs + sec->reloc_count; for (irel = internal_relocs; irel < irelend; irel++) @@ -736,7 +737,7 @@ sh_relax_section (abfd, sec, link_info, bfd_signed_vma foff; if (irel->r_type == R_SH_CODE) - have_code = true; + have_code = TRUE; if (irel->r_type != R_SH_USES) continue; @@ -902,14 +903,14 @@ sh_relax_section (abfd, sec, link_info, } coff_section_data (abfd, sec)->relocs = internal_relocs; - coff_section_data (abfd, sec)->keep_relocs = true; + coff_section_data (abfd, sec)->keep_relocs = TRUE; free_relocs = NULL; coff_section_data (abfd, sec)->contents = contents; - coff_section_data (abfd, sec)->keep_contents = true; + coff_section_data (abfd, sec)->keep_contents = TRUE; free_contents = NULL; - obj_coff_keep_syms (abfd) = true; + obj_coff_keep_syms (abfd) = TRUE; /* Replace the jsr with a bsr. */ @@ -965,7 +966,7 @@ sh_relax_section (abfd, sec, link_info, /* That will change things, so, just in case it permits some other function call to come within range, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; /* Now check whether we got a COUNT reloc. */ if (irelcount >= irelend) @@ -1005,7 +1006,7 @@ sh_relax_section (abfd, sec, link_info, byte boundaries. */ if (have_code) { - boolean swapped; + bfd_boolean swapped; /* Get the section contents. */ if (contents == NULL) @@ -1040,14 +1041,14 @@ sh_relax_section (abfd, sec, link_info, } coff_section_data (abfd, sec)->relocs = internal_relocs; - coff_section_data (abfd, sec)->keep_relocs = true; + coff_section_data (abfd, sec)->keep_relocs = TRUE; free_relocs = NULL; coff_section_data (abfd, sec)->contents = contents; - coff_section_data (abfd, sec)->keep_contents = true; + coff_section_data (abfd, sec)->keep_contents = TRUE; free_contents = NULL; - obj_coff_keep_syms (abfd) = true; + obj_coff_keep_syms (abfd) = TRUE; } } @@ -1076,19 +1077,19 @@ sh_relax_section (abfd, sec, link_info, } } - return true; + return TRUE; error_return: if (free_relocs != NULL) free (free_relocs); if (free_contents != NULL) free (free_contents); - return false; + return FALSE; } /* Delete some bytes from a section while relaxing. */ -static boolean +static bfd_boolean sh_relax_delete_bytes (abfd, sec, addr, count) bfd *abfd; asection *sec; @@ -1151,7 +1152,7 @@ sh_relax_delete_bytes (abfd, sec, addr, struct internal_syment sym; int off, adjust, oinsn; bfd_signed_vma voff = 0; - boolean overflow; + bfd_boolean overflow; /* Get the new reloc address. */ nraddr = irel->r_vaddr - sec->vma; @@ -1313,7 +1314,7 @@ sh_relax_delete_bytes (abfd, sec, addr, if (adjust != 0) { oinsn = insn; - overflow = false; + overflow = FALSE; switch (irel->r_type) { default: @@ -1324,14 +1325,14 @@ sh_relax_delete_bytes (abfd, sec, addr, case R_SH_PCRELIMM8BY2: insn += adjust / 2; if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr); break; case R_SH_PCDISP: insn += adjust / 2; if ((oinsn & 0xf000) != (insn & 0xf000)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr); break; @@ -1345,21 +1346,21 @@ sh_relax_delete_bytes (abfd, sec, addr, ++insn; } if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr); break; case R_SH_SWITCH8: voff += adjust; if (voff < 0 || voff >= 0xff) - overflow = true; + overflow = TRUE; bfd_put_8 (abfd, (bfd_vma) voff, contents + nraddr); break; case R_SH_SWITCH16: voff += adjust; if (voff < - 0x8000 || voff >= 0x8000) - overflow = true; + overflow = TRUE; bfd_put_signed_16 (abfd, (bfd_vma) voff, contents + nraddr); break; @@ -1379,7 +1380,7 @@ sh_relax_delete_bytes (abfd, sec, addr, ("%s: 0x%lx: fatal: reloc overflow while relaxing", bfd_archive_filename (abfd), (unsigned long) irel->r_vaddr)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } @@ -1401,13 +1402,13 @@ sh_relax_delete_bytes (abfd, sec, addr, continue; /* We always cache the relocs. Perhaps, if info->keep_memory is - false, we should free them, if we are permitted to, when we + FALSE, we should free them, if we are permitted to, when we leave sh_coff_relax_section. */ internal_relocs = (_bfd_coff_read_internal_relocs - (abfd, o, true, (bfd_byte *) NULL, false, + (abfd, o, TRUE, (bfd_byte *) NULL, FALSE, (struct internal_reloc *) NULL)); if (internal_relocs == NULL) - return false; + return FALSE; ocontents = NULL; irelscanend = internal_relocs + o->reloc_count; @@ -1443,16 +1444,16 @@ sh_relax_delete_bytes (abfd, sec, addr, else { /* We always cache the section contents. - Perhaps, if info->keep_memory is false, we + Perhaps, if info->keep_memory is FALSE, we should free them, if we are permitted to, when we leave sh_coff_relax_section. */ ocontents = (bfd_byte *) bfd_malloc (o->_raw_size); if (ocontents == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, o, ocontents, (file_ptr) 0, o->_raw_size)) - return false; + return FALSE; coff_section_data (abfd, o)->contents = ocontents; } } @@ -1463,7 +1464,7 @@ sh_relax_delete_bytes (abfd, sec, addr, bfd_put_32 (abfd, val - count, ocontents + irelscan->r_vaddr - o->vma); - coff_section_data (abfd, o)->keep_contents = true; + coff_section_data (abfd, o)->keep_contents = TRUE; } } } @@ -1479,7 +1480,7 @@ sh_relax_delete_bytes (abfd, sec, addr, ("%s: fatal: generic symbols retrieved before relaxing", bfd_archive_filename (abfd))); bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* Adjust all the symbols. */ @@ -1532,7 +1533,7 @@ sh_relax_delete_bytes (abfd, sec, addr, } } - return true; + return TRUE; } /* This is yet another version of the SH opcode table, used to rapidly @@ -1647,22 +1648,22 @@ struct sh_opcode #define SETSAS_REG(x) USESAS_REG (x) #ifndef COFF_IMAGE_WITH_PE -static boolean sh_insn_uses_reg +static bfd_boolean sh_insn_uses_reg PARAMS ((unsigned int, const struct sh_opcode *, unsigned int)); -static boolean sh_insn_sets_reg +static bfd_boolean sh_insn_sets_reg PARAMS ((unsigned int, const struct sh_opcode *, unsigned int)); -static boolean sh_insn_uses_or_sets_reg +static bfd_boolean sh_insn_uses_or_sets_reg PARAMS ((unsigned int, const struct sh_opcode *, unsigned int)); -static boolean sh_insn_uses_freg +static bfd_boolean sh_insn_uses_freg PARAMS ((unsigned int, const struct sh_opcode *, unsigned int)); -static boolean sh_insn_sets_freg +static bfd_boolean sh_insn_sets_freg PARAMS ((unsigned int, const struct sh_opcode *, unsigned int)); -static boolean sh_insn_uses_or_sets_freg +static bfd_boolean sh_insn_uses_or_sets_freg PARAMS ((unsigned int, const struct sh_opcode *, unsigned int)); -static boolean sh_insns_conflict +static bfd_boolean sh_insns_conflict PARAMS ((unsigned int, const struct sh_opcode *, unsigned int, const struct sh_opcode *)); -static boolean sh_load_use +static bfd_boolean sh_load_use PARAMS ((unsigned int, const struct sh_opcode *, unsigned int, const struct sh_opcode *)); #endif @@ -2166,21 +2167,21 @@ sh_insn_info (insn) /* See whether an instruction uses or sets a general purpose register */ -static boolean +static bfd_boolean sh_insn_uses_or_sets_reg (insn, op, reg) unsigned int insn; const struct sh_opcode *op; unsigned int reg; { if (sh_insn_uses_reg (insn, op, reg)) - return true; + return TRUE; return sh_insn_sets_reg (insn, op, reg); } /* See whether an instruction uses a general purpose register. */ -static boolean +static bfd_boolean sh_insn_uses_reg (insn, op, reg) unsigned int insn; const struct sh_opcode *op; @@ -2192,24 +2193,24 @@ sh_insn_uses_reg (insn, op, reg) if ((f & USES1) != 0 && USES1_REG (insn) == reg) - return true; + return TRUE; if ((f & USES2) != 0 && USES2_REG (insn) == reg) - return true; + return TRUE; if ((f & USESR0) != 0 && reg == 0) - return true; + return TRUE; if ((f & USESAS) && reg == USESAS_REG (insn)) - return true; + return TRUE; if ((f & USESR8) && reg == 8) - return true; + return TRUE; - return false; + return FALSE; } /* See whether an instruction sets a general purpose register. */ -static boolean +static bfd_boolean sh_insn_sets_reg (insn, op, reg) unsigned int insn; const struct sh_opcode *op; @@ -2221,36 +2222,36 @@ sh_insn_sets_reg (insn, op, reg) if ((f & SETS1) != 0 && SETS1_REG (insn) == reg) - return true; + return TRUE; if ((f & SETS2) != 0 && SETS2_REG (insn) == reg) - return true; + return TRUE; if ((f & SETSR0) != 0 && reg == 0) - return true; + return TRUE; if ((f & SETSAS) && reg == SETSAS_REG (insn)) - return true; + return TRUE; - return false; + return FALSE; } /* See whether an instruction uses or sets a floating point register */ -static boolean +static bfd_boolean sh_insn_uses_or_sets_freg (insn, op, reg) unsigned int insn; const struct sh_opcode *op; unsigned int reg; { if (sh_insn_uses_freg (insn, op, reg)) - return true; + return TRUE; return sh_insn_sets_freg (insn, op, reg); } /* See whether an instruction uses a floating point register. */ -static boolean +static bfd_boolean sh_insn_uses_freg (insn, op, freg) unsigned int insn; const struct sh_opcode *op; @@ -2271,20 +2272,20 @@ sh_insn_uses_freg (insn, op, freg) if ((f & USESF1) != 0 && (USESF1_REG (insn) & 0xe) == (freg & 0xe)) - return true; + return TRUE; if ((f & USESF2) != 0 && (USESF2_REG (insn) & 0xe) == (freg & 0xe)) - return true; + return TRUE; if ((f & USESF0) != 0 && freg == 0) - return true; + return TRUE; - return false; + return FALSE; } /* See whether an instruction sets a floating point register. */ -static boolean +static bfd_boolean sh_insn_sets_freg (insn, op, freg) unsigned int insn; const struct sh_opcode *op; @@ -2305,17 +2306,17 @@ sh_insn_sets_freg (insn, op, freg) if ((f & SETSF1) != 0 && (SETSF1_REG (insn) & 0xe) == (freg & 0xe)) - return true; + return TRUE; - return false; + return FALSE; } /* See whether instructions I1 and I2 conflict, assuming I1 comes before I2. OP1 and OP2 are the corresponding sh_opcode structures. - This should return true if there is a conflict, or false if the + This should return TRUE if there is a conflict, or FALSE if the instructions can be swapped safely. */ -static boolean +static bfd_boolean sh_insns_conflict (i1, op1, i2, op2) unsigned int i1; const struct sh_opcode *op1; @@ -2331,57 +2332,57 @@ sh_insns_conflict (i1, op1, i2, op2) FIXME: shouldn't test raw opcodes here. */ if (((i1 & 0xf0ff) == 0x4066 && (i2 & 0xf000) == 0xf000) || ((i2 & 0xf0ff) == 0x4066 && (i1 & 0xf000) == 0xf000)) - return true; + return TRUE; if ((f1 & (BRANCH | DELAY)) != 0 || (f2 & (BRANCH | DELAY)) != 0) - return true; + return TRUE; if (((f1 | f2) & SETSSP) && (f1 & (SETSSP | USESSP)) && (f2 & (SETSSP | USESSP))) - return true; + return TRUE; if ((f1 & SETS1) != 0 && sh_insn_uses_or_sets_reg (i2, op2, SETS1_REG (i1))) - return true; + return TRUE; if ((f1 & SETS2) != 0 && sh_insn_uses_or_sets_reg (i2, op2, SETS2_REG (i1))) - return true; + return TRUE; if ((f1 & SETSR0) != 0 && sh_insn_uses_or_sets_reg (i2, op2, 0)) - return true; + return TRUE; if ((f1 & SETSAS) && sh_insn_uses_or_sets_reg (i2, op2, SETSAS_REG (i1))) - return true; + return TRUE; if ((f1 & SETSF1) != 0 && sh_insn_uses_or_sets_freg (i2, op2, SETSF1_REG (i1))) - return true; + return TRUE; if ((f2 & SETS1) != 0 && sh_insn_uses_or_sets_reg (i1, op1, SETS1_REG (i2))) - return true; + return TRUE; if ((f2 & SETS2) != 0 && sh_insn_uses_or_sets_reg (i1, op1, SETS2_REG (i2))) - return true; + return TRUE; if ((f2 & SETSR0) != 0 && sh_insn_uses_or_sets_reg (i1, op1, 0)) - return true; + return TRUE; if ((f2 & SETSAS) && sh_insn_uses_or_sets_reg (i1, op1, SETSAS_REG (i2))) - return true; + return TRUE; if ((f2 & SETSF1) != 0 && sh_insn_uses_or_sets_freg (i1, op1, SETSF1_REG (i2))) - return true; + return TRUE; /* The instructions do not conflict. */ - return false; + return FALSE; } /* I1 is a load instruction, and I2 is some other instruction. Return - true if I1 loads a register which I2 uses. */ + TRUE if I1 loads a register which I2 uses. */ -static boolean +static bfd_boolean sh_load_use (i1, op1, i2, op2) unsigned int i1; const struct sh_opcode *op1; @@ -2393,7 +2394,7 @@ sh_load_use (i1, op1, i2, op2) f1 = op1->flags; if ((f1 & LOAD) == 0) - return false; + return FALSE; /* If both SETS1 and SETSSP are set, that means a load to a special register using postincrement addressing mode, which we don't care @@ -2401,17 +2402,17 @@ sh_load_use (i1, op1, i2, op2) if ((f1 & SETS1) != 0 && (f1 & SETSSP) == 0 && sh_insn_uses_reg (i2, op2, (i1 & 0x0f00) >> 8)) - return true; + return TRUE; if ((f1 & SETSR0) != 0 && sh_insn_uses_reg (i2, op2, 0)) - return true; + return TRUE; if ((f1 & SETSF1) != 0 && sh_insn_uses_freg (i2, op2, (i1 & 0x0f00) >> 8)) - return true; + return TRUE; - return false; + return FALSE; } /* Try to align loads and stores within a span of memory. This is @@ -2422,24 +2423,24 @@ sh_load_use (i1, op1, i2, op2) passed to SWAP. PLABEL is a pointer to the current label in a sorted list of labels; LABEL_END is the end of the list. START and STOP are the range of memory to examine. If a swap is made, - *PSWAPPED is set to true. */ + *PSWAPPED is set to TRUE. */ #ifdef COFF_WITH_PE static #endif -boolean +bfd_boolean _bfd_sh_align_load_span (abfd, sec, contents, swap, relocs, plabel, label_end, start, stop, pswapped) bfd *abfd; asection *sec; bfd_byte *contents; - boolean (*swap) PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma)); + bfd_boolean (*swap) PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma)); PTR relocs; bfd_vma **plabel; bfd_vma *label_end; bfd_vma start; bfd_vma stop; - boolean *pswapped; + bfd_boolean *pswapped; { int dsp = (abfd->arch_info->mach == bfd_mach_sh_dsp || abfd->arch_info->mach == bfd_mach_sh3_dsp); @@ -2449,7 +2450,7 @@ _bfd_sh_align_load_span (abfd, sec, cont desirable. In fact, it is counter-productive, since it interferes with the schedules generated by the compiler. */ if (abfd->arch_info->mach == bfd_mach_sh4) - return true; + return TRUE; /* If we are linking sh[3]-dsp code, swap the FPU instructions for DSP instructions. */ @@ -2523,14 +2524,14 @@ _bfd_sh_align_load_span (abfd, sec, cont && (prev_op->flags & (LOAD | STORE)) == 0 && ! sh_insns_conflict (prev_insn, prev_op, insn, op)) { - boolean ok; + bfd_boolean ok; /* The load/store instruction does not have a label, and there is a previous instruction; PREV_INSN is not itself a load/store instruction, and PREV_INSN and INSN do not conflict. */ - ok = true; + ok = TRUE; if (i >= start + 4) { @@ -2545,7 +2546,7 @@ _bfd_sh_align_load_span (abfd, sec, cont can not swap. */ if (prev2_op == NULL || (prev2_op->flags & DELAY) != 0) - ok = false; + ok = FALSE; /* If the instruction before PREV_INSN is a load, and it sets a register which INSN uses, then @@ -2555,14 +2556,14 @@ _bfd_sh_align_load_span (abfd, sec, cont if (ok && (prev2_op->flags & LOAD) != 0 && sh_load_use (prev2_insn, prev2_op, insn, op)) - ok = false; + ok = FALSE; } if (ok) { if (! (*swap) (abfd, sec, relocs, contents, i - 2)) - return false; - *pswapped = true; + return FALSE; + *pswapped = TRUE; continue; } } @@ -2584,12 +2585,12 @@ _bfd_sh_align_load_span (abfd, sec, cont && (next_op->flags & (LOAD | STORE)) == 0 && ! sh_insns_conflict (insn, op, next_insn, next_op)) { - boolean ok; + bfd_boolean ok; /* NEXT_INSN is not itself a load/store instruction, and it does not conflict with INSN. */ - ok = true; + ok = TRUE; /* If PREV_INSN is a load, and it sets a register which NEXT_INSN uses, then putting NEXT_INSN @@ -2598,7 +2599,7 @@ _bfd_sh_align_load_span (abfd, sec, cont if (prev_op != NULL && (prev_op->flags & LOAD) != 0 && sh_load_use (prev_insn, prev_op, next_insn, next_op)) - ok = false; + ok = FALSE; /* If INSN is a load, and it sets a register which the insn after NEXT_INSN uses, then doing the @@ -2620,21 +2621,21 @@ _bfd_sh_align_load_span (abfd, sec, cont next2_op = sh_insn_info (next2_insn); if ((next2_op->flags & (LOAD | STORE)) == 0 && sh_load_use (insn, op, next2_insn, next2_op)) - ok = false; + ok = FALSE; } if (ok) { if (! (*swap) (abfd, sec, relocs, contents, i)) - return false; - *pswapped = true; + return FALSE; + *pswapped = TRUE; continue; } } } } - return true; + return TRUE; } #endif /* not COFF_IMAGE_WITH_PE */ @@ -2643,20 +2644,20 @@ _bfd_sh_align_load_span (abfd, sec, cont this is desirable. This sets *PSWAPPED if some instruction was swapped. */ -static boolean +static bfd_boolean sh_align_loads (abfd, sec, internal_relocs, contents, pswapped) bfd *abfd; asection *sec; struct internal_reloc *internal_relocs; bfd_byte *contents; - boolean *pswapped; + bfd_boolean *pswapped; { struct internal_reloc *irel, *irelend; bfd_vma *labels = NULL; bfd_vma *label, *label_end; bfd_size_type amt; - *pswapped = false; + *pswapped = FALSE; irelend = internal_relocs + sec->reloc_count; @@ -2706,17 +2707,17 @@ sh_align_loads (abfd, sec, internal_relo free (labels); - return true; + return TRUE; error_return: if (labels != NULL) free (labels); - return false; + return FALSE; } /* Swap two SH instructions. */ -static boolean +static bfd_boolean sh_swap_insns (abfd, sec, relocs, contents, addr) bfd *abfd; asection *sec; @@ -2784,10 +2785,10 @@ sh_swap_insns (abfd, sec, relocs, conten { bfd_byte *loc; unsigned short insn, oinsn; - boolean overflow; + bfd_boolean overflow; loc = contents + irel->r_vaddr - sec->vma; - overflow = false; + overflow = FALSE; switch (type) { default: @@ -2799,7 +2800,7 @@ sh_swap_insns (abfd, sec, relocs, conten oinsn = insn; insn += add / 2; if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, loc); break; @@ -2808,7 +2809,7 @@ sh_swap_insns (abfd, sec, relocs, conten oinsn = insn; insn += add / 2; if ((oinsn & 0xf000) != (insn & 0xf000)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, loc); break; @@ -2825,7 +2826,7 @@ sh_swap_insns (abfd, sec, relocs, conten oinsn = insn; insn += add / 2; if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, loc); } @@ -2838,18 +2839,18 @@ sh_swap_insns (abfd, sec, relocs, conten ("%s: 0x%lx: fatal: reloc overflow while relaxing", bfd_archive_filename (abfd), (unsigned long) irel->r_vaddr)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } } - return true; + return TRUE; } /* This is a modification of _bfd_coff_generic_relocate_section, which will handle SH relaxing. */ -static boolean +static bfd_boolean sh_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -2902,7 +2903,7 @@ sh_relocate_section (output_bfd, info, i ("%s: illegal symbol index %ld in relocs", bfd_archive_filename (input_bfd), symndx); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } h = obj_coff_sym_hashes (input_bfd)[symndx]; sym = syms + symndx; @@ -2924,7 +2925,7 @@ sh_relocate_section (output_bfd, info, i if (howto == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } #ifdef COFF_WITH_PE @@ -2972,8 +2973,8 @@ sh_relocate_section (output_bfd, info, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -3010,12 +3011,12 @@ sh_relocate_section (output_bfd, info, i if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } } } - return true; + return TRUE; } /* This is a version of bfd_generic_get_relocated_section_contents @@ -3028,7 +3029,7 @@ sh_coff_get_relocated_section_contents ( struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { asection *input_section = link_order->u.indirect.section; @@ -3063,8 +3064,8 @@ sh_coff_get_relocated_section_contents ( goto error_return; internal_relocs = (_bfd_coff_read_internal_relocs - (input_bfd, input_section, false, (bfd_byte *) NULL, - false, (struct internal_reloc *) NULL)); + (input_bfd, input_section, FALSE, (bfd_byte *) NULL, + FALSE, (struct internal_reloc *) NULL)); if (internal_relocs == NULL) goto error_return; @@ -3154,7 +3155,7 @@ CREATE_LITTLE_COFF_TARGET_VEC (TARGET_SY #ifndef TARGET_SHL_SYM static const bfd_target * coff_small_object_p PARAMS ((bfd *)); -static boolean coff_small_new_section_hook PARAMS ((bfd *, asection *)); +static bfd_boolean coff_small_new_section_hook PARAMS ((bfd *, asection *)); /* Some people want versions of the SH COFF target which do not align to 16 byte boundaries. We implement that by adding a couple of new target vectors. These are just like the ones above, but they @@ -3183,20 +3184,20 @@ coff_small_object_p (abfd) /* Set the section alignment for the small versions. */ -static boolean +static bfd_boolean coff_small_new_section_hook (abfd, section) bfd *abfd; asection *section; { if (! coff_new_section_hook (abfd, section)) - return false; + return FALSE; /* We must align to at least a four byte boundary, because longword accesses must be on a four byte boundary. */ if (section->alignment_power == COFF_DEFAULT_SECTION_ALIGNMENT_POWER) section->alignment_power = 2; - return true; + return TRUE; } /* This is copied from bfd_coff_std_swap_table so that we can change @@ -3211,20 +3212,20 @@ static const bfd_coff_backend_data bfd_c coff_swap_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif 2, #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_DEBUG_STRING_WIDE_PREFIX 4, diff -uprN binutils-2.13.90.0.16/bfd/coff-sparc.c binutils-2.13.90.0.18/bfd/coff-sparc.c --- binutils-2.13.90.0.16/bfd/coff-sparc.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-sparc.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Sparc COFF files. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. @@ -103,30 +103,30 @@ bfd_coff_generic_reloc (abfd, reloc_entr static reloc_howto_type coff_sparc_howto_table[] = { - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_8, 0,0, 8,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_8", false,0,0x000000ff,true), - HOWTO(R_SPARC_16, 0,1,16,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_32, 0,2,32,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_32", false,0,0xffffffff,true), - HOWTO(R_SPARC_DISP8, 0,0, 8,true, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP8", false,0,0x000000ff,true), - HOWTO(R_SPARC_DISP16, 0,1,16,true, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_DISP32, 0,2,32,true, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP32", false,0,0x00ffffff,true), - HOWTO(R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_WDISP30", false,0,0x3fffffff,true), - HOWTO(R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_WDISP22", false,0,0x003fffff,true), - HOWTO(R_SPARC_HI22, 10,2,22,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_HI22", false,0,0x003fffff,true), - HOWTO(R_SPARC_22, 0,2,22,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_22", false,0,0x003fffff,true), - HOWTO(R_SPARC_13, 0,2,13,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_13", false,0,0x00001fff,true), - HOWTO(R_SPARC_LO10, 0,2,10,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_LO10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT10, 0,2,10,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT13, 0,2,13,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT13", false,0,0x00001fff,true), - HOWTO(R_SPARC_GOT22, 10,2,22,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT22", false,0,0x003fffff,true), - HOWTO(R_SPARC_PC10, 0,2,10,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC10", false,0,0x000003ff,true), - HOWTO(R_SPARC_PC22, 0,2,22,false,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC22", false,0,0x003fffff,true), - HOWTO(R_SPARC_WPLT30, 0,0,00,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_WPLT30", false,0,0x00000000,true), - HOWTO(R_SPARC_COPY, 0,0,00,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_COPY", false,0,0x00000000,true), - HOWTO(R_SPARC_GLOB_DAT,0,0,00,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_GLOB_DAT",false,0,0x00000000,true), - HOWTO(R_SPARC_JMP_SLOT,0,0,00,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_JMP_SLOT",false,0,0x00000000,true), - HOWTO(R_SPARC_RELATIVE,0,0,00,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_RELATIVE",false,0,0x00000000,true), - HOWTO(R_SPARC_UA32, 0,0,00,false,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_UA32", false,0,0x00000000,true), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_8, 0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_8", FALSE,0,0x000000ff,TRUE), + HOWTO(R_SPARC_16, 0,1,16,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_16", FALSE,0,0x0000ffff,TRUE), + HOWTO(R_SPARC_32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_32", FALSE,0,0xffffffff,TRUE), + HOWTO(R_SPARC_DISP8, 0,0, 8,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP8", FALSE,0,0x000000ff,TRUE), + HOWTO(R_SPARC_DISP16, 0,1,16,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP16", FALSE,0,0x0000ffff,TRUE), + HOWTO(R_SPARC_DISP32, 0,2,32,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_DISP32", FALSE,0,0x00ffffff,TRUE), + HOWTO(R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE), + HOWTO(R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed, bfd_coff_generic_reloc,"R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_HI22, 10,2,22,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_HI22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_22, 0,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_13, 0,2,13,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_13", FALSE,0,0x00001fff,TRUE), + HOWTO(R_SPARC_LO10, 0,2,10,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_LO10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_GOT10, 0,2,10,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_GOT13, 0,2,13,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT13", FALSE,0,0x00001fff,TRUE), + HOWTO(R_SPARC_GOT22, 10,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_GOT22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_PC10, 0,2,10,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_PC22, 0,2,22,FALSE,0,complain_overflow_bitfield,bfd_coff_generic_reloc,"R_SPARC_PC22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_WPLT30, 0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_WPLT30", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_COPY, 0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_COPY", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_GLOB_DAT,0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_JMP_SLOT,0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_RELATIVE,0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_UA32, 0,0,00,FALSE,0,complain_overflow_dont, bfd_coff_generic_reloc,"R_SPARC_UA32", FALSE,0,0x00000000,TRUE), }; struct coff_reloc_map { diff -uprN binutils-2.13.90.0.16/bfd/coff-stgo32.c binutils-2.13.90.0.18/bfd/coff-stgo32.c --- binutils-2.13.90.0.16/bfd/coff-stgo32.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/coff-stgo32.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Intel 386 COFF files (DJGPP variant with a stub). - Copyright 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Robert Hoehne. This file is part of BFD, the Binary File Descriptor library. @@ -93,7 +93,7 @@ create_go32_stub PARAMS ((bfd *)); #define COFF_ADJUST_AUX_OUT_PRE adjust_aux_out_pre #define COFF_ADJUST_AUX_OUT_POST adjust_aux_out_post -static boolean +static bfd_boolean go32_stubbed_coff_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *)); #define coff_bfd_copy_private_bfd_data go32_stubbed_coff_bfd_copy_private_bfd_data @@ -392,22 +392,22 @@ stub_end: /* If ibfd was a stubbed coff image, copy the stub from that bfd to the new obfd. */ -static boolean +static bfd_boolean go32_stubbed_coff_bfd_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { /* Check if both are the same targets. */ if (ibfd->xvec != obfd->xvec) - return true; + return TRUE; /* Check if both have a valid stub. */ if (bfd_coff_go32stub (ibfd) == NULL || bfd_coff_go32stub (obfd) == NULL) - return true; + return TRUE; /* Now copy the stub. */ memcpy (bfd_coff_go32stub (obfd), bfd_coff_go32stub (ibfd), STUBSIZE); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/coff-tic30.c binutils-2.13.90.0.18/bfd/coff-tic30.c --- binutils-2.13.90.0.16/bfd/coff-tic30.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-tic30.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for TMS320C30 coff binaries. - Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au) This file is part of BFD, the Binary File Descriptor library. @@ -37,16 +37,16 @@ reloc_howto_type * tic30_coff_reloc_type reloc_howto_type tic30_coff_howto_table[] = { - HOWTO (R_TIC30_ABS16, 2, 1, 16, false, 0, 0, NULL, - "16", false, 0x0000FFFF, 0x0000FFFF, false), - HOWTO (R_TIC30_ABS24, 2, 2, 24, false, 8, complain_overflow_bitfield, NULL, - "24", false, 0xFFFFFF00, 0xFFFFFF00, false), - HOWTO (R_TIC30_LDP, 18, 0, 24, false, 0, complain_overflow_bitfield, NULL, - "LDP", false, 0x00FF0000, 0x000000FF, false), - HOWTO (R_TIC30_ABS32, 2, 2, 32, false, 0, complain_overflow_bitfield, NULL, - "32", false, 0xFFFFFFFF, 0xFFFFFFFF, false), - HOWTO (R_TIC30_PC16, 2, 1, 16, true, 0, complain_overflow_signed, NULL, - "PCREL", false, 0x0000FFFF, 0x0000FFFF, false), + HOWTO (R_TIC30_ABS16, 2, 1, 16, FALSE, 0, 0, NULL, + "16", FALSE, 0x0000FFFF, 0x0000FFFF, FALSE), + HOWTO (R_TIC30_ABS24, 2, 2, 24, FALSE, 8, complain_overflow_bitfield, NULL, + "24", FALSE, 0xFFFFFF00, 0xFFFFFF00, FALSE), + HOWTO (R_TIC30_LDP, 18, 0, 24, FALSE, 0, complain_overflow_bitfield, NULL, + "LDP", FALSE, 0x00FF0000, 0x000000FF, FALSE), + HOWTO (R_TIC30_ABS32, 2, 2, 32, FALSE, 0, complain_overflow_bitfield, NULL, + "32", FALSE, 0xFFFFFFFF, 0xFFFFFFFF, FALSE), + HOWTO (R_TIC30_PC16, 2, 1, 16, TRUE, 0, complain_overflow_signed, NULL, + "PCREL", FALSE, 0x0000FFFF, 0x0000FFFF, FALSE), EMPTY_HOWTO (-1) }; diff -uprN binutils-2.13.90.0.16/bfd/coff-tic4x.c binutils-2.13.90.0.18/bfd/coff-tic4x.c --- binutils-2.13.90.0.16/bfd/coff-tic4x.c Thu Nov 14 09:37:55 2002 +++ binutils-2.13.90.0.18/bfd/coff-tic4x.c Mon Dec 16 12:22:51 2002 @@ -31,11 +31,11 @@ #undef F_LSYMS #define F_LSYMS F_LSYMS_TICOFF -static boolean ticoff0_bad_format_hook +static bfd_boolean ticoff0_bad_format_hook PARAMS ((bfd *, PTR )); -static boolean ticoff1_bad_format_hook +static bfd_boolean ticoff1_bad_format_hook PARAMS ((bfd *, PTR )); -static boolean ticoff_bfd_is_local_label_name +static bfd_boolean ticoff_bfd_is_local_label_name PARAMS ((bfd *, const char *)); static bfd_reloc_status_type tic4x_relocation PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char ** )); @@ -49,7 +49,7 @@ static void tic4x_reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection * )); -static boolean +static bfd_boolean ticoff0_bad_format_hook (abfd, filehdr) bfd *abfd ATTRIBUTE_UNUSED; PTR filehdr; @@ -57,12 +57,12 @@ ticoff0_bad_format_hook (abfd, filehdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (COFF0_BADMAG (*internal_f)) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean ticoff1_bad_format_hook (abfd, filehdr) bfd *abfd ATTRIBUTE_UNUSED; PTR filehdr; @@ -70,21 +70,21 @@ ticoff1_bad_format_hook (abfd, filehdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (COFF1_BADMAG (*internal_f)) - return false; + return FALSE; - return true; + return TRUE; } /* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local labels. */ -static boolean +static bfd_boolean ticoff_bfd_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; { if (TICOFF_LOCAL_LABEL_P(name)) - return true; - return false; + return TRUE; + return FALSE; } #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name @@ -100,7 +100,7 @@ ticoff_bfd_is_local_label_name (abfd, na #include "coffcode.h" static bfd_reloc_status_type -tic4x_relocation (abfd, reloc_entry, symbol, data, input_section, +tic4x_relocation (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message) bfd *abfd ATTRIBUTE_UNUSED; arelent *reloc_entry; @@ -109,7 +109,7 @@ tic4x_relocation (abfd, reloc_entry, sym asection *input_section; bfd *output_bfd; char **error_message ATTRIBUTE_UNUSED; -{ +{ if (output_bfd != (bfd *) NULL) { /* This is a partial relocation, and we want to apply the @@ -121,22 +121,22 @@ tic4x_relocation (abfd, reloc_entry, sym return bfd_reloc_continue; } -reloc_howto_type tic4x_howto_table[] = +reloc_howto_type tic4x_howto_table[] = { - HOWTO(R_RELWORD, 0, 2, 16, false, 0, complain_overflow_signed, tic4x_relocation, "RELWORD", true, 0x0000ffff, 0x0000ffff, false), - HOWTO(R_REL24, 0, 2, 24, false, 0, complain_overflow_bitfield, tic4x_relocation, "REL24", true, 0x00ffffff, 0x00ffffff, false), - HOWTO(R_RELLONG, 0, 2, 32, false, 0, complain_overflow_dont, tic4x_relocation, "RELLONG", true, 0xffffffff, 0xffffffff, false), - HOWTO(R_PCRWORD, 0, 2, 16, true, 0, complain_overflow_signed, tic4x_relocation, "PCRWORD", true, 0x0000ffff, 0x0000ffff, false), - HOWTO(R_PCR24, 0, 2, 24, true, 0, complain_overflow_signed, tic4x_relocation, "PCR24", true, 0x00ffffff, 0x00ffffff, false), - HOWTO(R_PARTLS16, 0, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTLS16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO(R_PARTMS8, 16, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "PARTMS8", true, 0x0000ffff, 0x0000ffff, false), - HOWTO(R_RELWORD, 0, 2, 16, false, 0, complain_overflow_signed, tic4x_relocation, "ARELWORD", true, 0x0000ffff, 0x0000ffff, false), - HOWTO(R_REL24, 0, 2, 24, false, 0, complain_overflow_signed, tic4x_relocation, "AREL24", true, 0x00ffffff, 0x00ffffff, false), - HOWTO(R_RELLONG, 0, 2, 32, false, 0, complain_overflow_signed, tic4x_relocation, "ARELLONG", true, 0xffffffff, 0xffffffff, false), - HOWTO(R_PCRWORD, 0, 2, 16, true, 0, complain_overflow_signed, tic4x_relocation, "APCRWORD", true, 0x0000ffff, 0x0000ffff, false), - HOWTO(R_PCR24, 0, 2, 24, true, 0, complain_overflow_signed, tic4x_relocation, "APCR24", true, 0x00ffffff, 0x00ffffff, false), - HOWTO(R_PARTLS16, 0, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTLS16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO(R_PARTMS8, 16, 2, 16, false, 0, complain_overflow_dont, tic4x_relocation, "APARTMS8", true, 0x0000ffff, 0x0000ffff, false), + HOWTO(R_RELWORD, 0, 2, 16, FALSE, 0, complain_overflow_signed, tic4x_relocation, "RELWORD", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO(R_REL24, 0, 2, 24, FALSE, 0, complain_overflow_bitfield, tic4x_relocation, "REL24", TRUE, 0x00ffffff, 0x00ffffff, FALSE), + HOWTO(R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_dont, tic4x_relocation, "RELLONG", TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_PCRWORD, 0, 2, 16, TRUE, 0, complain_overflow_signed, tic4x_relocation, "PCRWORD", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO(R_PCR24, 0, 2, 24, TRUE, 0, complain_overflow_signed, tic4x_relocation, "PCR24", TRUE, 0x00ffffff, 0x00ffffff, FALSE), + HOWTO(R_PARTLS16, 0, 2, 16, FALSE, 0, complain_overflow_dont, tic4x_relocation, "PARTLS16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO(R_PARTMS8, 16, 2, 16, FALSE, 0, complain_overflow_dont, tic4x_relocation, "PARTMS8", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO(R_RELWORD, 0, 2, 16, FALSE, 0, complain_overflow_signed, tic4x_relocation, "ARELWORD", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO(R_REL24, 0, 2, 24, FALSE, 0, complain_overflow_signed, tic4x_relocation, "AREL24", TRUE, 0x00ffffff, 0x00ffffff, FALSE), + HOWTO(R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_signed, tic4x_relocation, "ARELLONG", TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_PCRWORD, 0, 2, 16, TRUE, 0, complain_overflow_signed, tic4x_relocation, "APCRWORD", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO(R_PCR24, 0, 2, 24, TRUE, 0, complain_overflow_signed, tic4x_relocation, "APCR24", TRUE, 0x00ffffff, 0x00ffffff, FALSE), + HOWTO(R_PARTLS16, 0, 2, 16, FALSE, 0, complain_overflow_dont, tic4x_relocation, "APARTLS16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO(R_PARTMS8, 16, 2, 16, FALSE, 0, complain_overflow_dont, tic4x_relocation, "APARTMS8", TRUE, 0x0000ffff, 0x0000ffff, FALSE), }; #define HOWTO_SIZE (sizeof(tic4x_howto_table) / sizeof(tic4x_howto_table[0])) @@ -153,7 +153,7 @@ tic4x_coff_reloc_type_lookup (abfd, code { unsigned int type; unsigned int i; - + switch (code) { case BFD_RELOC_32: type = R_RELLONG; break; @@ -166,7 +166,7 @@ tic4x_coff_reloc_type_lookup (abfd, code default: return NULL; } - + for (i = 0; i < HOWTO_SIZE; i++) { if (tic4x_howto_table[i].type == type) @@ -238,7 +238,7 @@ tic4x_reloc_processing (relent, reloc, s asymbol *ptr; relent->address = reloc->r_vaddr; - + if (reloc->r_symndx != -1) { if (reloc->r_symndx < 0 || reloc->r_symndx >= obj_conv_table_size (abfd)) @@ -261,26 +261,26 @@ tic4x_reloc_processing (relent, reloc, s relent->sym_ptr_ptr = section->symbol_ptr_ptr; ptr = *(relent->sym_ptr_ptr); } - + /* The symbols definitions that we have read in have been relocated as if their sections started at 0. But the offsets refering to the symbols in the raw data have not been modified, so we have to have a negative addend to compensate. - + Note that symbols which used to be common must be left alone. */ - + /* Calculate any reloc addend by looking at the symbol. */ CALC_ADDEND (abfd, ptr, *reloc, relent); - + relent->address -= section->vma; /* !! relent->section = (asection *) NULL; */ - + /* Fill in the relent->howto field from reloc->r_type. */ tic4x_lookup_howto (relent, reloc); } -static const bfd_coff_backend_data ticoff0_swap_table = +static const bfd_coff_backend_data ticoff0_swap_table = { coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in, coff_SWAP_aux_out, coff_SWAP_sym_out, @@ -289,19 +289,19 @@ static const bfd_coff_backend_data ticof coff_SWAP_scnhdr_out, FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_DEBUG_STRING_WIDE_PREFIX 4, @@ -321,7 +321,7 @@ static const bfd_coff_backend_data ticof }; /* COFF1 differs in section header size. */ -static const bfd_coff_backend_data ticoff1_swap_table = +static const bfd_coff_backend_data ticoff1_swap_table = { coff_SWAP_aux_in, coff_SWAP_sym_in, coff_SWAP_lineno_in, coff_SWAP_aux_out, coff_SWAP_sym_out, @@ -330,19 +330,19 @@ static const bfd_coff_backend_data ticof coff_SWAP_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_DEBUG_STRING_WIDE_PREFIX 4, diff -uprN binutils-2.13.90.0.16/bfd/coff-tic54x.c binutils-2.13.90.0.18/bfd/coff-tic54x.c --- binutils-2.13.90.0.16/bfd/coff-tic54x.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-tic54x.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for TMS320C54X coff binaries. - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Timothy Wall (twall@cygnus.com) This file is part of BFD, the Binary File Descriptor library. @@ -30,19 +30,32 @@ #undef F_LSYMS #define F_LSYMS F_LSYMS_TICOFF -static void tic54x_reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); -static bfd_reloc_status_type tic54x_relocation PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean tic54x_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); -static reloc_howto_type * coff_tic54x_rtype_to_howto PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); -static bfd_vma tic54x_getl32 PARAMS ((const bfd_byte *)); -static void tic54x_putl32 PARAMS ((bfd_vma, bfd_byte *)); -static bfd_signed_vma tic54x_getl_signed_32 PARAMS ((const bfd_byte *)); -static boolean tic54x_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -static reloc_howto_type * tic54x_coff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static void tic54x_lookup_howto PARAMS ((arelent *, struct internal_reloc *)); -static boolean ticoff0_bad_format_hook PARAMS ((bfd *, PTR)); -static boolean ticoff1_bad_format_hook PARAMS ((bfd *, PTR)); -static boolean ticoff_bfd_is_local_label_name PARAMS ((bfd *, const char *)); +static void tic54x_reloc_processing + PARAMS ((arelent *, struct internal_reloc *, asymbol **, bfd *, asection *)); +static bfd_reloc_status_type tic54x_relocation + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_boolean tic54x_set_section_contents + PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); +static reloc_howto_type *coff_tic54x_rtype_to_howto + PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); +static bfd_vma tic54x_getl32 + PARAMS ((const bfd_byte *)); +static void tic54x_putl32 + PARAMS ((bfd_vma, bfd_byte *)); +static bfd_signed_vma tic54x_getl_signed_32 + PARAMS ((const bfd_byte *)); +static bfd_boolean tic54x_set_arch_mach + PARAMS ((bfd *, enum bfd_architecture, unsigned long)); +static reloc_howto_type * tic54x_coff_reloc_type_lookup + PARAMS ((bfd *, bfd_reloc_code_real_type)); +static void tic54x_lookup_howto + PARAMS ((arelent *, struct internal_reloc *)); +static bfd_boolean ticoff0_bad_format_hook + PARAMS ((bfd *, PTR)); +static bfd_boolean ticoff1_bad_format_hook + PARAMS ((bfd *, PTR)); +static bfd_boolean ticoff_bfd_is_local_label_name + PARAMS ((bfd *, const char *)); /* 32-bit operations The octet order is screwy. words are LSB first (LS octet, actually), but @@ -125,7 +138,7 @@ bfd_ticoff_get_section_load_page (sect) /* Set the architecture appropriately. Allow unkown architectures (e.g. binary). */ -static boolean +static bfd_boolean tic54x_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; @@ -135,7 +148,7 @@ tic54x_set_arch_mach (abfd, arch, machin arch = bfd_arch_tic54x; else if (arch != bfd_arch_tic54x) - return false; + return FALSE; return bfd_default_set_arch_mach (abfd, arch, machine); } @@ -170,59 +183,59 @@ reloc_howto_type tic54x_howto_table[] = /* NORMAL BANK */ /* 16-bit direct reference to symbol's address. */ - HOWTO (R_RELWORD,0,1,16,false,0,complain_overflow_dont, - tic54x_relocation,"REL16",false,0xFFFF,0xFFFF,false), + HOWTO (R_RELWORD,0,1,16,FALSE,0,complain_overflow_dont, + tic54x_relocation,"REL16",FALSE,0xFFFF,0xFFFF,FALSE), /* 7 LSBs of an address */ - HOWTO (R_PARTLS7,0,1,7,false,0,complain_overflow_dont, - tic54x_relocation,"LS7",false,0x007F,0x007F,false), + HOWTO (R_PARTLS7,0,1,7,FALSE,0,complain_overflow_dont, + tic54x_relocation,"LS7",FALSE,0x007F,0x007F,FALSE), /* 9 MSBs of an address */ /* TI assembler doesn't shift its encoding, and is thus incompatible */ - HOWTO (R_PARTMS9,7,1,9,false,0,complain_overflow_dont, - tic54x_relocation,"MS9",false,0x01FF,0x01FF,false), + HOWTO (R_PARTMS9,7,1,9,FALSE,0,complain_overflow_dont, + tic54x_relocation,"MS9",FALSE,0x01FF,0x01FF,FALSE), /* 23-bit relocation */ - HOWTO (R_EXTWORD,0,2,23,false,0,complain_overflow_dont, - tic54x_relocation,"RELEXT",false,0x7FFFFF,0x7FFFFF,false), + HOWTO (R_EXTWORD,0,2,23,FALSE,0,complain_overflow_dont, + tic54x_relocation,"RELEXT",FALSE,0x7FFFFF,0x7FFFFF,FALSE), /* 16 bits of 23-bit extended address */ - HOWTO (R_EXTWORD16,0,1,16,false,0,complain_overflow_dont, - tic54x_relocation,"RELEXT16",false,0x7FFFFF,0x7FFFFF,false), + HOWTO (R_EXTWORD16,0,1,16,FALSE,0,complain_overflow_dont, + tic54x_relocation,"RELEXT16",FALSE,0x7FFFFF,0x7FFFFF,FALSE), /* upper 7 bits of 23-bit extended address */ - HOWTO (R_EXTWORDMS7,16,1,7,false,0,complain_overflow_dont, - tic54x_relocation,"RELEXTMS7",false,0x7F,0x7F,false), + HOWTO (R_EXTWORDMS7,16,1,7,FALSE,0,complain_overflow_dont, + tic54x_relocation,"RELEXTMS7",FALSE,0x7F,0x7F,FALSE), /* ABSOLUTE BANK */ /* 16-bit direct reference to symbol's address, absolute */ - HOWTO (R_RELWORD,0,1,16,false,0,complain_overflow_dont, - tic54x_relocation,"AREL16",false,0xFFFF,0xFFFF,false), + HOWTO (R_RELWORD,0,1,16,FALSE,0,complain_overflow_dont, + tic54x_relocation,"AREL16",FALSE,0xFFFF,0xFFFF,FALSE), /* 7 LSBs of an address, absolute */ - HOWTO (R_PARTLS7,0,1,7,false,0,complain_overflow_dont, - tic54x_relocation,"ALS7",false,0x007F,0x007F,false), + HOWTO (R_PARTLS7,0,1,7,FALSE,0,complain_overflow_dont, + tic54x_relocation,"ALS7",FALSE,0x007F,0x007F,FALSE), /* 9 MSBs of an address, absolute */ /* TI assembler doesn't shift its encoding, and is thus incompatible */ - HOWTO (R_PARTMS9,7,1,9,false,0,complain_overflow_dont, - tic54x_relocation,"AMS9",false,0x01FF,0x01FF,false), + HOWTO (R_PARTMS9,7,1,9,FALSE,0,complain_overflow_dont, + tic54x_relocation,"AMS9",FALSE,0x01FF,0x01FF,FALSE), /* 23-bit direct reference, absolute */ - HOWTO (R_EXTWORD,0,2,23,false,0,complain_overflow_dont, - tic54x_relocation,"ARELEXT",false,0x7FFFFF,0x7FFFFF,false), + HOWTO (R_EXTWORD,0,2,23,FALSE,0,complain_overflow_dont, + tic54x_relocation,"ARELEXT",FALSE,0x7FFFFF,0x7FFFFF,FALSE), /* 16 bits of 23-bit extended address, absolute */ - HOWTO (R_EXTWORD16,0,1,16,false,0,complain_overflow_dont, - tic54x_relocation,"ARELEXT16",false,0x7FFFFF,0x7FFFFF,false), + HOWTO (R_EXTWORD16,0,1,16,FALSE,0,complain_overflow_dont, + tic54x_relocation,"ARELEXT16",FALSE,0x7FFFFF,0x7FFFFF,FALSE), /* upper 7 bits of 23-bit extended address, absolute */ - HOWTO (R_EXTWORDMS7,16,1,7,false,0,complain_overflow_dont, - tic54x_relocation,"ARELEXTMS7",false,0x7F,0x7F,false), + HOWTO (R_EXTWORDMS7,16,1,7,FALSE,0,complain_overflow_dont, + tic54x_relocation,"ARELEXTMS7",FALSE,0x7F,0x7F,FALSE), /* 32-bit relocation exclusively for stabs */ - HOWTO (R_RELLONG,0,2,32,false,0,complain_overflow_dont, - tic54x_relocation,"STAB",false,0xFFFFFFFF,0xFFFFFFFF,false), + HOWTO (R_RELLONG,0,2,32,FALSE,0,complain_overflow_dont, + tic54x_relocation,"STAB",FALSE,0xFFFFFFFF,0xFFFFFFFF,FALSE), }; #define coff_bfd_reloc_type_lookup tic54x_coff_reloc_type_lookup @@ -310,7 +323,7 @@ coff_tic54x_rtype_to_howto (abfd, sec, r return genrel.howto; } -static boolean +static bfd_boolean ticoff0_bad_format_hook (abfd, filehdr) bfd * abfd ATTRIBUTE_UNUSED; PTR filehdr; @@ -318,12 +331,12 @@ ticoff0_bad_format_hook (abfd, filehdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (COFF0_BADMAG (*internal_f)) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean ticoff1_bad_format_hook (abfd, filehdr) bfd * abfd ATTRIBUTE_UNUSED; PTR filehdr; @@ -331,22 +344,22 @@ ticoff1_bad_format_hook (abfd, filehdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (COFF1_BADMAG (*internal_f)) - return false; + return FALSE; - return true; + return TRUE; } /* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local labels. */ -static boolean +static bfd_boolean ticoff_bfd_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; { if (TICOFF_LOCAL_LABEL_P(name)) - return true; - return false; + return TRUE; + return FALSE; } #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name @@ -358,7 +371,7 @@ ticoff_bfd_is_local_label_name (abfd, na #define BADMAG(x) COFF2_BADMAG(x) #include "coffcode.h" -static boolean +static bfd_boolean tic54x_set_section_contents (abfd, section, location, offset, bytes_to_do) bfd *abfd; sec_ptr section; @@ -432,19 +445,19 @@ static const bfd_coff_backend_data ticof coff_SWAP_scnhdr_out, FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_DEBUG_STRING_WIDE_PREFIX 4, @@ -473,20 +486,20 @@ static const bfd_coff_backend_data ticof coff_SWAP_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif COFF_DEFAULT_SECTION_ALIGNMENT_POWER, #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_DEBUG_STRING_WIDE_PREFIX 4, diff -uprN binutils-2.13.90.0.16/bfd/coff-tic80.c binutils-2.13.90.0.18/bfd/coff-tic80.c --- binutils-2.13.90.0.16/bfd/coff-tic80.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-tic80.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Texas Instruments TMS320C80 Multimedia Video Processor (MVP). - Copyright 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1996, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Fred Fish (fnf@cygnus.com) @@ -48,7 +48,7 @@ static bfd_reloc_status_type glob16_relo PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type local16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean coff_tic80_relocate_section +static bfd_boolean coff_tic80_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); static reloc_howto_type * coff_tic80_rtype_to_howto @@ -63,295 +63,295 @@ static reloc_howto_type tic80_howto_tabl 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ NULL, /* special_function */ "RELLONG", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_MPPCR, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ NULL, /* special_function */ "MPPCR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_ABS, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ NULL, /* special_function */ "ABS", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPBASE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppbase_reloc, /* special_function */ "PPBASE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPLBASE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppbase_reloc, /* special_function */ "PPLBASE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PP15, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob15_reloc, /* special_function */ "PP15", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1ffc0, /* src_mask */ 0x1ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PP15W, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob15_reloc, /* special_function */ "PP15W", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1ffc0, /* src_mask */ 0x1ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PP15H, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob15_reloc, /* special_function */ "PP15H", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1ffc0, /* src_mask */ 0x1ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PP16B, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob16_reloc, /* special_function */ "PP16B", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffc0, /* src_mask */ 0x3ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPL15, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "PPL15", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x7fff, /* src_mask */ 0x7fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPL15W, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "PPL15W", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x7fff, /* src_mask */ 0x7fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPL15H, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "PPL15H", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x7fff, /* src_mask */ 0x7fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPL16B, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ local16_reloc, /* special_function */ "PPL16B", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPN15, /* type */ 0, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob15_reloc, /* special_function */ "PPN15", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1ffc0, /* src_mask */ 0x1ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPN15W, /* type */ 2, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob15_reloc, /* special_function */ "PPN15W", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1ffc0, /* src_mask */ 0x1ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPN15H, /* type */ 1, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob15_reloc, /* special_function */ "PPN15H", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1ffc0, /* src_mask */ 0x1ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPN16B, /* type */ 0, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ glob16_reloc, /* special_function */ "PPN16B", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffc0, /* src_mask */ 0x3ffc0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPLN15, /* type */ 0, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "PPLN15", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x7fff, /* src_mask */ 0x7fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPLN15W, /* type */ 2, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "PPLN15W", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x7fff, /* src_mask */ 0x7fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPLN15H, /* type */ 1, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "PPLN15H", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x7fff, /* src_mask */ 0x7fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_PPLN16B, /* type */ 0, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ local16_reloc, /* special_function */ "PPLN16B", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; /* Special relocation functions, used when the output file is not @@ -485,7 +485,7 @@ coff_tic80_rtype_to_howto (abfd, sec, re /* We need a special relocation routine to handle the PP relocs. Most of this is a copy of _bfd_coff_generic_relocate_section. */ -static boolean +static bfd_boolean coff_tic80_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) @@ -540,7 +540,7 @@ coff_tic80_relocate_section (output_bfd, howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h, sym, &addend); if (howto == NULL) - return false; + return FALSE; val = 0; @@ -580,8 +580,8 @@ coff_tic80_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -687,7 +687,7 @@ coff_tic80_relocate_section (output_bfd, bfd_archive_filename (input_bfd), (unsigned long) rel->r_vaddr, bfd_get_section_name (input_bfd, input_section)); - return false; + return FALSE; case bfd_reloc_overflow: { const char *name; @@ -701,17 +701,17 @@ coff_tic80_relocate_section (output_bfd, { name = _bfd_coff_internal_syment_name (input_bfd, sym, buf); if (name == NULL) - return false; + return FALSE; } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } } } - return true; + return TRUE; } #define TIC80COFF 1 /* Customize coffcode.h */ diff -uprN binutils-2.13.90.0.16/bfd/coff-w65.c binutils-2.13.90.0.18/bfd/coff-w65.c --- binutils-2.13.90.0.16/bfd/coff-w65.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/coff-w65.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,6 @@ /* BFD back-end for WDC 65816 COFF binaries. - Copyright 1995, 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 1996, 1997, 1999, 2000, 2001, 2002 + Free Software Foundation, Inc. Written by Steve Chamberlain, . This file is part of BFD, the Binary File Descriptor library. @@ -35,16 +36,16 @@ static void w65_reloc16_extra_cases PARA #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) static reloc_howto_type howto_table[] = { - HOWTO (R_W65_ABS8, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "abs8", true, 0x000000ff, 0x000000ff, false), - HOWTO (R_W65_ABS16, 1, 0, 16, false, 0, complain_overflow_bitfield, 0, "abs16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_W65_ABS24, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "abs24", true, 0x00ffffff, 0x00ffffff, false), - HOWTO (R_W65_ABS8S8, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, ">abs8", true, 0x000000ff, 0x000000ff, false), - HOWTO (R_W65_ABS8S16, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "^abs8", true, 0x000000ff, 0x000000ff, false), - HOWTO (R_W65_ABS16S8, 1, 0, 16, false, 0, complain_overflow_bitfield, 0, ">abs16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_W65_ABS16S16,1, 0, 16, false, 0, complain_overflow_bitfield, 0, "^abs16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_W65_PCR8, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "pcrel8", true, 0x000000ff, 0x000000ff, true), - HOWTO (R_W65_PCR16, 1, 0, 16, false, 0, complain_overflow_bitfield, 0, "pcrel16", true, 0x0000ffff, 0x0000ffff, true), - HOWTO (R_W65_DP, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "dp", true, 0x000000ff, 0x000000ff, false), + HOWTO (R_W65_ABS8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "abs8", TRUE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (R_W65_ABS16, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_W65_ABS24, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "abs24", TRUE, 0x00ffffff, 0x00ffffff, FALSE), + HOWTO (R_W65_ABS8S8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, ">abs8", TRUE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (R_W65_ABS8S16, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "^abs8", TRUE, 0x000000ff, 0x000000ff, FALSE), + HOWTO (R_W65_ABS16S8, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, ">abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_W65_ABS16S16,1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "^abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_W65_PCR8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "pcrel8", TRUE, 0x000000ff, 0x000000ff, TRUE), + HOWTO (R_W65_PCR16, 1, 0, 16, FALSE, 0, complain_overflow_bitfield, 0, "pcrel16", TRUE, 0x0000ffff, 0x0000ffff, TRUE), + HOWTO (R_W65_DP, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "dp", TRUE, 0x000000ff, 0x000000ff, FALSE), }; /* Turn a howto into a reloc number. */ diff -uprN binutils-2.13.90.0.16/bfd/coff-we32k.c binutils-2.13.90.0.18/bfd/coff-we32k.c --- binutils-2.13.90.0.16/bfd/coff-we32k.c Fri Mar 9 11:15:32 2001 +++ binutils-2.13.90.0.18/bfd/coff-we32k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,6 @@ /* BFD back-end for we32k COFF files. - Copyright 1992, 1993, 1994, 1999, 2000 Free Software Foundation, Inc. + Copyright 1992, 1993, 1994, 1999, 2000, 2002 + Free Software Foundation, Inc. Contributed by Brendan Kehoe (brendan@cs.widener.edu). This file is part of BFD, the Binary File Descriptor library. @@ -35,7 +36,7 @@ static reloc_howto_type howto_table[] = EMPTY_HOWTO (3), EMPTY_HOWTO (4), EMPTY_HOWTO (5), - HOWTO(R_DIR32, 0, 2, 32, false, 0,complain_overflow_bitfield, 0, "dir32", true, 0xffffffff,0xffffffff, false), + HOWTO(R_DIR32, 0, 2, 32, FALSE, 0,complain_overflow_bitfield, 0, "dir32", TRUE, 0xffffffff,0xffffffff, FALSE), EMPTY_HOWTO (7), EMPTY_HOWTO (010), EMPTY_HOWTO (011), @@ -44,12 +45,12 @@ static reloc_howto_type howto_table[] = EMPTY_HOWTO (014), EMPTY_HOWTO (015), EMPTY_HOWTO (016), - HOWTO(R_RELBYTE, 0, 0, 8, false, 0, complain_overflow_bitfield, 0, "8", true, 0x000000ff,0x000000ff, false), - HOWTO(R_RELWORD, 0, 1, 16, false, 0, complain_overflow_bitfield, 0, "16", true, 0x0000ffff,0x0000ffff, false), - HOWTO(R_RELLONG, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "32", true, 0xffffffff,0xffffffff, false), - HOWTO(R_PCRBYTE, 0, 0, 8, true, 0, complain_overflow_signed, 0, "DISP8", true, 0x000000ff,0x000000ff, false), - HOWTO(R_PCRWORD, 0, 1, 16, true, 0, complain_overflow_signed, 0, "DISP16", true, 0x0000ffff,0x0000ffff, false), - HOWTO(R_PCRLONG, 0, 2, 32, true, 0, complain_overflow_signed, 0, "DISP32", true, 0xffffffff,0xffffffff, false), + HOWTO(R_RELBYTE, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, 0, "8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO(R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO(R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "32", TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO(R_PCRBYTE, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, "DISP8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO(R_PCRWORD, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO(R_PCRLONG, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "DISP32", TRUE, 0xffffffff,0xffffffff, FALSE), }; /* Turn a howto into a reloc nunmber */ diff -uprN binutils-2.13.90.0.16/bfd/coff-z8k.c binutils-2.13.90.0.18/bfd/coff-z8k.c --- binutils-2.13.90.0.16/bfd/coff-z8k.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/bfd/coff-z8k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Zilog Z800n COFF binaries. - Copyright 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001 + Copyright 1992, 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Cygnus Support. Written by Steve Chamberlain, . @@ -36,40 +36,40 @@ static int coff_z8k_select_reloc PARAMS #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) static reloc_howto_type r_imm32 = -HOWTO (R_IMM32, 0, 2, 32, false, 0, - complain_overflow_bitfield, 0, "r_imm32", true, 0xffffffff, - 0xffffffff, false); +HOWTO (R_IMM32, 0, 2, 32, FALSE, 0, + complain_overflow_bitfield, 0, "r_imm32", TRUE, 0xffffffff, + 0xffffffff, FALSE); static reloc_howto_type r_imm4l = -HOWTO (R_IMM4L, 0, 0, 4, false, 0, - complain_overflow_bitfield, 0, "r_imm4l", true, 0xf, 0xf, false); +HOWTO (R_IMM4L, 0, 0, 4, FALSE, 0, + complain_overflow_bitfield, 0, "r_imm4l", TRUE, 0xf, 0xf, FALSE); static reloc_howto_type r_da = -HOWTO (R_IMM16, 0, 1, 16, false, 0, - complain_overflow_bitfield, 0, "r_da", true, 0x0000ffff, 0x0000ffff, - false); +HOWTO (R_IMM16, 0, 1, 16, FALSE, 0, + complain_overflow_bitfield, 0, "r_da", TRUE, 0x0000ffff, 0x0000ffff, + FALSE); static reloc_howto_type r_imm8 = -HOWTO (R_IMM8, 0, 0, 8, false, 0, - complain_overflow_bitfield, 0, "r_imm8", true, 0x000000ff, 0x000000ff, - false); +HOWTO (R_IMM8, 0, 0, 8, FALSE, 0, + complain_overflow_bitfield, 0, "r_imm8", TRUE, 0x000000ff, 0x000000ff, + FALSE); static reloc_howto_type r_rel16 = -HOWTO (R_REL16, 0, 1, 16, false, 0, - complain_overflow_bitfield, 0, "r_rel16", true, 0x0000ffff, 0x0000ffff, - true); +HOWTO (R_REL16, 0, 1, 16, FALSE, 0, + complain_overflow_bitfield, 0, "r_rel16", TRUE, 0x0000ffff, 0x0000ffff, + TRUE); static reloc_howto_type r_jr = -HOWTO (R_JR, 0, 0, 8, true, 0, complain_overflow_signed, 0, - "r_jr", true, 0, 0, true); +HOWTO (R_JR, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0, + "r_jr", TRUE, 0, 0, TRUE); static reloc_howto_type r_disp7 = -HOWTO (R_DISP7, 0, 0, 7, true, 0, complain_overflow_bitfield, 0, - "r_disp7", true, 0, 0, true); +HOWTO (R_DISP7, 0, 0, 7, TRUE, 0, complain_overflow_bitfield, 0, + "r_disp7", TRUE, 0, 0, TRUE); static reloc_howto_type r_callr = -HOWTO (R_CALLR, 0, 1, 12, true, 0, complain_overflow_signed, 0, - "r_callr", true, 0xfff, 0xfff, true); +HOWTO (R_CALLR, 0, 1, 12, TRUE, 0, complain_overflow_signed, 0, + "r_callr", TRUE, 0xfff, 0xfff, TRUE); /* Turn a howto into a reloc number */ diff -uprN binutils-2.13.90.0.16/bfd/coff64-rs6000.c binutils-2.13.90.0.18/bfd/coff64-rs6000.c --- binutils-2.13.90.0.16/bfd/coff64-rs6000.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/coff64-rs6000.c Tue Jan 21 10:21:32 2003 @@ -82,39 +82,56 @@ #define coff_SWAP_lineno_in _bfd_xcoff64_swap_lineno_in #define coff_SWAP_lineno_out _bfd_xcoff64_swap_lineno_out -static void _bfd_xcoff64_swap_lineno_in PARAMS ((bfd *, PTR, PTR)); -static unsigned int _bfd_xcoff64_swap_lineno_out PARAMS ((bfd *, PTR, PTR)); -static boolean _bfd_xcoff64_put_symbol_name +static void _bfd_xcoff64_swap_lineno_in + PARAMS ((bfd *, PTR, PTR)); +static unsigned int _bfd_xcoff64_swap_lineno_out + PARAMS ((bfd *, PTR, PTR)); +static bfd_boolean _bfd_xcoff64_put_symbol_name PARAMS ((bfd *, struct bfd_strtab_hash *, struct internal_syment *, const char *)); -static boolean _bfd_xcoff64_put_ldsymbol_name +static bfd_boolean _bfd_xcoff64_put_ldsymbol_name PARAMS ((bfd *, struct xcoff_loader_info *, struct internal_ldsym *, const char *)); -static void _bfd_xcoff64_swap_sym_in PARAMS ((bfd *, PTR, PTR)); -static unsigned int _bfd_xcoff64_swap_sym_out PARAMS ((bfd *, PTR, PTR)); +static void _bfd_xcoff64_swap_sym_in + PARAMS ((bfd *, PTR, PTR)); +static unsigned int _bfd_xcoff64_swap_sym_out + PARAMS ((bfd *, PTR, PTR)); static void _bfd_xcoff64_swap_aux_in PARAMS ((bfd *, PTR, int, int, int, int, PTR)); static unsigned int _bfd_xcoff64_swap_aux_out PARAMS ((bfd *, PTR, int, int, int, int, PTR)); -static void xcoff64_swap_reloc_in PARAMS ((bfd *, PTR, PTR)); -static unsigned int xcoff64_swap_reloc_out PARAMS ((bfd *, PTR, PTR)); -extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *)); -extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *)); +static void xcoff64_swap_reloc_in + PARAMS ((bfd *, PTR, PTR)); +static unsigned int xcoff64_swap_reloc_out + PARAMS ((bfd *, PTR, PTR)); +extern bfd_boolean _bfd_xcoff_mkobject + PARAMS ((bfd *)); +extern bfd_boolean _bfd_xcoff_copy_private_bfd_data + PARAMS ((bfd *, bfd *)); +extern bfd_boolean _bfd_xcoff_is_local_label_name + PARAMS ((bfd *, const char *)); extern void xcoff64_rtype2howto PARAMS ((arelent *, struct internal_reloc *)); extern reloc_howto_type * xcoff64_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *)); -extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *)); -extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *)); -extern int _bfd_xcoff_stat_arch_elt PARAMS ((bfd *, struct stat *)); -extern boolean _bfd_xcoff_write_armap +extern bfd_boolean _bfd_xcoff_slurp_armap + PARAMS ((bfd *)); +extern PTR _bfd_xcoff_read_ar_hdr + PARAMS ((bfd *)); +extern bfd *_bfd_xcoff_openr_next_archived_file + PARAMS ((bfd *, bfd *)); +extern int _bfd_xcoff_stat_arch_elt + PARAMS ((bfd *, struct stat *)); +extern bfd_boolean _bfd_xcoff_write_armap PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); -extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *)); -extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, boolean)); -extern void _bfd_xcoff_swap_sym_in PARAMS ((bfd *, PTR, PTR)); -extern unsigned int _bfd_xcoff_swap_sym_out PARAMS ((bfd *, PTR, PTR)); +extern bfd_boolean _bfd_xcoff_write_archive_contents + PARAMS ((bfd *)); +extern int _bfd_xcoff_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +extern void _bfd_xcoff_swap_sym_in + PARAMS ((bfd *, PTR, PTR)); +extern unsigned int _bfd_xcoff_swap_sym_out + PARAMS ((bfd *, PTR, PTR)); extern void _bfd_xcoff_swap_aux_in PARAMS ((bfd *, PTR, int, int, int, int, PTR)); extern unsigned int _bfd_xcoff_swap_aux_out @@ -131,31 +148,40 @@ static void xcoff64_swap_ldrel_in PARAMS ((bfd *, const PTR, struct internal_ldrel *)); static void xcoff64_swap_ldrel_out PARAMS ((bfd *, const struct internal_ldrel *, PTR d)); -static boolean xcoff64_write_object_contents PARAMS ((bfd *)); -static boolean xcoff64_ppc_relocate_section +static bfd_boolean xcoff64_write_object_contents + PARAMS ((bfd *)); +static bfd_boolean xcoff64_ppc_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); -static boolean xcoff64_slurp_armap PARAMS ((bfd *)); -static const bfd_target *xcoff64_archive_p PARAMS ((bfd *)); -static bfd *xcoff64_openr_next_archived_file PARAMS ((bfd *, bfd *)); -static int xcoff64_sizeof_headers PARAMS ((bfd *, boolean)); +static bfd_boolean xcoff64_slurp_armap + PARAMS ((bfd *)); +static const bfd_target *xcoff64_archive_p + PARAMS ((bfd *)); +static bfd *xcoff64_openr_next_archived_file + PARAMS ((bfd *, bfd *)); +static int xcoff64_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); static asection *xcoff64_create_csect_from_smclas PARAMS ((bfd *, union internal_auxent *, const char *)); -static boolean xcoff64_is_lineno_count_overflow PARAMS ((bfd *, bfd_vma)); -static boolean xcoff64_is_reloc_count_overflow PARAMS ((bfd *, bfd_vma)); +static bfd_boolean xcoff64_is_lineno_count_overflow + PARAMS ((bfd *, bfd_vma)); +static bfd_boolean xcoff64_is_reloc_count_overflow + PARAMS ((bfd *, bfd_vma)); static bfd_vma xcoff64_loader_symbol_offset PARAMS ((bfd *, struct internal_ldhdr *)); static bfd_vma xcoff64_loader_reloc_offset PARAMS ((bfd *, struct internal_ldhdr *)); -static boolean xcoff64_generate_rtinit - PARAMS ((bfd *, const char *, const char *, boolean)); -static boolean xcoff64_bad_format_hook PARAMS ((bfd *, PTR )); +static bfd_boolean xcoff64_generate_rtinit + PARAMS ((bfd *, const char *, const char *, bfd_boolean)); +static bfd_boolean xcoff64_bad_format_hook + PARAMS ((bfd *, PTR )); /* Relocation functions */ -static boolean xcoff64_reloc_type_br PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +static bfd_boolean xcoff64_reloc_type_br + PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean (*xcoff64_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION]) +bfd_boolean (*xcoff64_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION]) PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)) = { xcoff_reloc_type_pos, /* R_POS (0x00) */ @@ -212,11 +238,14 @@ boolean (*xcoff64_calculate_relocation[X #define coff_bfd_is_local_label_name _bfd_xcoff_is_local_label_name #define coff_bfd_reloc_type_lookup xcoff64_reloc_type_lookup #ifdef AIX_CORE -extern const bfd_target * rs6000coff_core_p PARAMS ((bfd *abfd)); -extern boolean rs6000coff_core_file_matches_executable_p +extern const bfd_target * rs6000coff_core_p + PARAMS ((bfd *abfd)); +extern bfd_boolean rs6000coff_core_file_matches_executable_p PARAMS ((bfd *cbfd, bfd *ebfd)); -extern char *rs6000coff_core_file_failing_command PARAMS ((bfd *abfd)); -extern int rs6000coff_core_file_failing_signal PARAMS ((bfd *abfd)); +extern char *rs6000coff_core_file_failing_command + PARAMS ((bfd *abfd)); +extern int rs6000coff_core_file_failing_signal + PARAMS ((bfd *abfd)); #define CORE_FILE_P rs6000coff_core_p #define coff_core_file_failing_command \ rs6000coff_core_file_failing_command @@ -496,33 +525,33 @@ _bfd_xcoff64_swap_aux_out (abfd, inp, ty return bfd_coff_auxesz (abfd); } -static boolean +static bfd_boolean _bfd_xcoff64_put_symbol_name (abfd, strtab, sym, name) bfd *abfd; struct bfd_strtab_hash *strtab; struct internal_syment *sym; const char *name; { - boolean hash; + bfd_boolean hash; bfd_size_type indx; - hash = true; + hash = TRUE; if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0) - hash = false; + hash = FALSE; - indx = _bfd_stringtab_add (strtab, name, hash, false); + indx = _bfd_stringtab_add (strtab, name, hash, FALSE); if (indx == (bfd_size_type) -1) - return false; + return FALSE; sym->_n._n_n._n_zeroes = 0; sym->_n._n_n._n_offset = STRING_SIZE_SIZE + indx; - return true; + return TRUE; } -static boolean +static bfd_boolean _bfd_xcoff64_put_ldsymbol_name (abfd, ldinfo, ldsym, name) bfd *abfd ATTRIBUTE_UNUSED; struct xcoff_loader_info *ldinfo; @@ -547,8 +576,8 @@ _bfd_xcoff64_put_ldsymbol_name (abfd, ld bfd_realloc ((PTR) ldinfo->strings, newalc)); if (newstrings == NULL) { - ldinfo->failed = true; - return false; + ldinfo->failed = TRUE; + return FALSE; } ldinfo->string_alc = newalc; ldinfo->strings = newstrings; @@ -561,7 +590,7 @@ _bfd_xcoff64_put_ldsymbol_name (abfd, ld ldsym->_l._l_l._l_offset = ldinfo->string_size + 2; ldinfo->string_size += len + 3; - return true; + return TRUE; } /* Routines to swap information in the XCOFF .loader section. If we @@ -720,20 +749,20 @@ xcoff64_swap_ldrel_out (abfd, src, d) bfd_put_32 (abfd, src->l_symndx, dst->l_symndx); } -static boolean +static bfd_boolean xcoff64_write_object_contents (abfd) bfd *abfd; { asection *current; - boolean hasrelocs = false; - boolean haslinno = false; + bfd_boolean hasrelocs = FALSE; + bfd_boolean haslinno = FALSE; file_ptr scn_base; file_ptr reloc_base; file_ptr lineno_base; file_ptr sym_base; unsigned long reloc_size = 0; unsigned long lnno_size = 0; - boolean long_section_names; + bfd_boolean long_section_names; asection *text_sec = ((void *) 0); asection *data_sec = ((void *) 0); asection *bss_sec = ((void *) 0); @@ -745,7 +774,7 @@ xcoff64_write_object_contents (abfd) if (! abfd->output_has_begun) { if (! bfd_coff_compute_section_file_positions (abfd)) - return false; + return FALSE; } /* Work out the size of the reloc and linno areas. */ @@ -801,9 +830,9 @@ xcoff64_write_object_contents (abfd) internal_f.f_nscns = 0; if (bfd_seek (abfd, scn_base, SEEK_SET) != 0) - return false; + return FALSE; - long_section_names = false; + long_section_names = FALSE; for (current = abfd->sections; current != NULL; current = current->next) { struct internal_scnhdr section; @@ -836,9 +865,9 @@ xcoff64_write_object_contents (abfd) section.s_nlnno = current->lineno_count; if (current->reloc_count != 0) - hasrelocs = true; + hasrelocs = TRUE; if (current->lineno_count != 0) - haslinno = true; + haslinno = TRUE; section.s_flags = sec_to_styp_flags (current->name, current->flags); @@ -858,7 +887,7 @@ xcoff64_write_object_contents (abfd) amount = bfd_coff_scnhsz (abfd); if (bfd_coff_swap_scnhdr_out (abfd, §ion, &buff) == 0 || bfd_bwrite ((PTR) (&buff), amount, abfd) != amount) - return false; + return FALSE; } internal_f.f_timdat = 0; @@ -909,14 +938,14 @@ xcoff64_write_object_contents (abfd) int firstundef; if (!coff_renumber_symbols (abfd, &firstundef)) - return false; + return FALSE; coff_mangle_symbols (abfd); if (! coff_write_symbols (abfd)) - return false; + return FALSE; if (! coff_write_linenumbers (abfd)) - return false; + return FALSE; if (! coff_write_relocs (abfd, firstundef)) - return false; + return FALSE; internal_f.f_symptr = sym_base; internal_f.f_nsyms = bfd_get_symcount (abfd); @@ -1028,7 +1057,7 @@ xcoff64_write_object_contents (abfd) } if (bfd_seek (abfd, (file_ptr) 0, 0) != 0) - return false; + return FALSE; { char * buff; @@ -1036,7 +1065,7 @@ xcoff64_write_object_contents (abfd) buff = bfd_malloc (amount); if (buff == NULL) - return false; + return FALSE; bfd_coff_swap_filehdr_out (abfd, (PTR) &internal_f, (PTR) buff); amount = bfd_bwrite ((PTR) buff, amount, abfd); @@ -1044,7 +1073,7 @@ xcoff64_write_object_contents (abfd) free (buff); if (amount != bfd_coff_filhsz (abfd)) - return false; + return FALSE; } if (abfd->flags & EXEC_P) @@ -1054,7 +1083,7 @@ xcoff64_write_object_contents (abfd) buff = bfd_malloc (amount); if (buff == NULL) - return false; + return FALSE; bfd_coff_swap_aouthdr_out (abfd, (PTR) &internal_a, (PTR) buff); amount = bfd_bwrite ((PTR) buff, amount, abfd); @@ -1062,13 +1091,13 @@ xcoff64_write_object_contents (abfd) free (buff); if (amount != bfd_coff_aoutsz (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean xcoff64_reloc_type_br (input_bfd, input_section, output_bfd, rel, sym, howto, val, addend, relocation, contents) bfd *input_bfd; @@ -1085,7 +1114,7 @@ xcoff64_reloc_type_br (input_bfd, input_ struct xcoff_link_hash_entry *h; if (0 > rel->r_symndx) - return false; + return FALSE; h = obj_xcoff_sym_hashes (input_bfd)[rel->r_symndx]; @@ -1133,7 +1162,7 @@ xcoff64_reloc_type_br (input_bfd, input_ howto->complain_on_overflow = complain_overflow_dont; } - howto->pc_relative = true; + howto->pc_relative = TRUE; howto->src_mask &= ~3; howto->dst_mask = howto->src_mask; @@ -1143,13 +1172,13 @@ xcoff64_reloc_type_br (input_bfd, input_ *relocation = val + addend; *relocation -= (input_section->output_section->vma + input_section->output_offset); - return true; + return TRUE; } /* This is the relocation function for the PowerPC64. See xcoff_ppc_relocation_section for more information. */ -boolean +bfd_boolean xcoff64_ppc_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) @@ -1191,16 +1220,16 @@ xcoff64_ppc_relocate_section (output_bfd howto.rightshift = 0; howto.bitsize = (rel->r_size & 0x3f) + 1; howto.size = howto.bitsize > 16 ? (howto.bitsize > 32 ? 4 : 2) : 1; - howto.pc_relative = false; + howto.pc_relative = FALSE; howto.bitpos = 0; howto.complain_on_overflow = (rel->r_size & 0x80 ? complain_overflow_signed : complain_overflow_bitfield); howto.special_function = NULL; howto.name = "internal"; - howto.partial_inplace = true; + howto.partial_inplace = TRUE; howto.src_mask = howto.dst_mask = N_ONES (howto.bitsize); - howto.pcrel_offset = false; + howto.pcrel_offset = FALSE; /* symbol */ val = 0; @@ -1252,8 +1281,8 @@ xcoff64_ppc_relocate_section (output_bfd { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; /* Don't try to process the reloc. It can't help, and it may generate another error. */ @@ -1263,10 +1292,10 @@ xcoff64_ppc_relocate_section (output_bfd } if (rel->r_type >= XCOFF_MAX_CALCULATE_RELOCATION - || ((*xcoff64_calculate_relocation[rel->r_type]) + || !((*xcoff64_calculate_relocation[rel->r_type]) (input_bfd, input_section, output_bfd, rel, sym, &howto, val, addend, &relocation, contents))) - return false; + return FALSE; /* address */ address = rel->r_vaddr - input_section->vma; @@ -1320,7 +1349,7 @@ xcoff64_ppc_relocate_section (output_bfd if (! ((*info->callbacks->reloc_overflow) (info, name, reloc_type_name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } /* Add RELOCATION to the right bits of VALUE_TO_RELOCATE. */ @@ -1337,7 +1366,7 @@ xcoff64_ppc_relocate_section (output_bfd bfd_put_64 (input_bfd, value_to_relocate, location); } - return true; + return TRUE; } @@ -1354,105 +1383,105 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_POS_64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit relocation, but store negative value. */ HOWTO (R_NEG, /* type */ 0, /* rightshift */ -4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_NEG", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative relocation. */ HOWTO (R_REL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_REL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit TOC relative relocation. */ HOWTO (R_TOC, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TOC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* I don't really know what this is. */ HOWTO (R_RTB, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RTB", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* External TOC relative symbol. */ HOWTO (R_GL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_GL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Local TOC relative symbol. */ HOWTO (R_TCL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TCL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (7), @@ -1461,15 +1490,15 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_BA_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (9), @@ -1478,15 +1507,15 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_BR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (0xb), @@ -1495,30 +1524,30 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Load address. */ HOWTO (R_RLA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RLA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (0xe), @@ -1527,15 +1556,15 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "R_REF", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (0x10), EMPTY_HOWTO (0x11), @@ -1545,209 +1574,209 @@ reloc_howto_type xcoff64_howto_table[] = 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TRL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* TOC relative load address. */ HOWTO (R_TRLA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TRLA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable relative branch. */ HOWTO (R_RRTBI, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RRTBI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable absolute branch. */ HOWTO (R_RRTBA, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RRTBA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable call absolute indirect. */ HOWTO (R_CAI, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_CAI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable call relative. */ HOWTO (R_CREL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_CREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBA, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBAC, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBAC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch relative. */ HOWTO (R_RBR, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_RBR_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03fffffc, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBRC, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBRC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_POS, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_POS_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit Non modifiable absolute branch. */ HOWTO (R_BA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_BA_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xfffc, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch relative. */ HOWTO (R_RBR, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_RBR_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (R_RBA, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBA_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -1817,7 +1846,7 @@ xcoff64_reloc_type_lookup (abfd, code) /* Read in the armap of an XCOFF archive. */ -static boolean +static bfd_boolean xcoff64_slurp_armap (abfd) bfd *abfd; { @@ -1835,40 +1864,40 @@ xcoff64_slurp_armap (abfd) if (xcoff_ardata (abfd) == NULL) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } off = bfd_scan_vma (xcoff_ardata_big (abfd)->symoff64, (const char **) NULL, 10); if (off == 0) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } if (bfd_seek (abfd, off, SEEK_SET) != 0) - return false; + return FALSE; /* The symbol table starts with a normal archive header. */ if (bfd_bread ((PTR) &hdr, (bfd_size_type) SIZEOF_AR_HDR_BIG, abfd) != SIZEOF_AR_HDR_BIG) - return false; + return FALSE; /* Skip the name (normally empty). */ namlen = strtol (hdr.namlen, (char **) NULL, 10); pos = ((namlen + 1) & ~(size_t) 1) + SXCOFFARFMAG; if (bfd_seek (abfd, pos, SEEK_CUR) != 0) - return false; + return FALSE; sz = bfd_scan_vma (hdr.size, (const char **) NULL, 10); /* Read in the entire symbol table. */ contents = (bfd_byte *) bfd_alloc (abfd, sz); if (contents == NULL) - return false; + return FALSE; if (bfd_bread ((PTR) contents, sz, abfd) != sz) - return false; + return FALSE; /* The symbol table starts with an eight byte count. */ c = H_GET_64 (abfd, contents); @@ -1876,13 +1905,13 @@ xcoff64_slurp_armap (abfd) if (c * 8 >= sz) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } amt = c; amt *= sizeof (carsym); bfd_ardata (abfd)->symdefs = (carsym *) bfd_alloc (abfd, amt); if (bfd_ardata (abfd)->symdefs == NULL) - return false; + return FALSE; /* After the count comes a list of eight byte file offsets. */ for (i = 0, arsym = bfd_ardata (abfd)->symdefs, p = contents + 8; @@ -1899,15 +1928,15 @@ xcoff64_slurp_armap (abfd) if (p >= cend) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } arsym->name = (char *) p; } bfd_ardata (abfd)->symdef_count = c; - bfd_has_map (abfd) = true; + bfd_has_map (abfd) = TRUE; - return true; + return TRUE; } @@ -1990,7 +2019,7 @@ xcoff64_openr_next_archived_file (archiv bfd *archive; bfd *last_file; { - file_ptr filestart; + bfd_vma filestart; if ((xcoff_ardata (archive) == NULL) || ! xcoff_big_format_p (archive)) @@ -2019,7 +2048,7 @@ xcoff64_openr_next_archived_file (archiv return NULL; } - return _bfd_get_elt_at_filepos (archive, filestart); + return _bfd_get_elt_at_filepos (archive, (file_ptr) filestart); } /* We can't use the usual coff_sizeof_headers routine, because AIX @@ -2029,7 +2058,7 @@ xcoff64_openr_next_archived_file (archiv static int xcoff64_sizeof_headers (abfd, reloc) bfd *abfd; - boolean reloc ATTRIBUTE_UNUSED; + bfd_boolean reloc ATTRIBUTE_UNUSED; { int size; @@ -2085,20 +2114,20 @@ xcoff64_create_csect_from_smclas (abfd, return return_value; } -static boolean +static bfd_boolean xcoff64_is_lineno_count_overflow (abfd, value) bfd *abfd ATTRIBUTE_UNUSED; bfd_vma value ATTRIBUTE_UNUSED; { - return false; + return FALSE; } -static boolean +static bfd_boolean xcoff64_is_reloc_count_overflow (abfd, value) bfd *abfd ATTRIBUTE_UNUSED; bfd_vma value ATTRIBUTE_UNUSED; { - return false; + return FALSE; } static bfd_vma @@ -2117,7 +2146,7 @@ xcoff64_loader_reloc_offset (abfd, ldhdr return (ldhdr->l_rldoff); } -static boolean +static bfd_boolean xcoff64_bad_format_hook (abfd, filehdr) bfd * abfd; PTR filehdr; @@ -2126,20 +2155,20 @@ xcoff64_bad_format_hook (abfd, filehdr) /* Check flavor first. */ if (bfd_get_flavour (abfd) != bfd_target_xcoff_flavour) - return false; + return FALSE; if (bfd_xcoff_magic_number (abfd) != internal_f->f_magic) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean xcoff64_generate_rtinit (abfd, init, fini, rtld) bfd *abfd; const char *init; const char *fini; - boolean rtld; + bfd_boolean rtld; { bfd_byte filehdr_ext[FILHSZ]; bfd_byte scnhdr_ext[SCNHSZ * 3]; @@ -2166,7 +2195,7 @@ xcoff64_generate_rtinit (abfd, init, fin char *rtld_name = "__rtld"; if (! bfd_xcoff_rtinit_size (abfd)) - return false; + return FALSE; initsz = (init == NULL ? 0 : 1 + strlen (init)); finisz = (fini == NULL ? 0 : 1 + strlen (fini)); @@ -2255,7 +2284,7 @@ xcoff64_generate_rtinit (abfd, init, fin data_buffer = NULL; data_buffer = (bfd_byte *) bfd_zmalloc (data_buffer_size); if (data_buffer == NULL) - return false; + return FALSE; if (initsz) { @@ -2291,7 +2320,7 @@ xcoff64_generate_rtinit (abfd, init, fin string_table = (bfd_byte *) bfd_zmalloc (string_table_size); if (string_table == NULL) - return false; + return FALSE; val = string_table_size; bfd_put_32 (abfd, val, &string_table[0]); @@ -2455,7 +2484,7 @@ xcoff64_generate_rtinit (abfd, init, fin free (data_buffer); data_buffer = NULL; - return true; + return TRUE; } /* The typical dynamic reloc. */ @@ -2465,15 +2494,15 @@ HOWTO (0, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_POS", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ static unsigned long xcoff64_glink_code[10] = { @@ -2510,10 +2539,10 @@ static const struct xcoff_backend_data_r RELSZ, LINESZ, FILNMLEN, - true, /* _bfd_coff_long_filenames */ - false, /* _bfd_coff_long_section_names */ + TRUE, /* _bfd_coff_long_filenames */ + FALSE, /* _bfd_coff_long_section_names */ 3, /* _bfd_coff_default_section_alignment_power */ - true, /* _bfd_coff_force_symnames_in_strings */ + TRUE, /* _bfd_coff_force_symnames_in_strings */ 4, /* _bfd_coff_debug_string_prefix_length */ coff_swap_filehdr_in, coff_swap_aouthdr_in, @@ -2652,11 +2681,11 @@ const bfd_target rs6000coff64_vec = /* Copy */ _bfd_xcoff_copy_private_bfd_data, - ((boolean (*) (bfd *, bfd *)) bfd_true), - ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), - ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), - ((boolean (*) (bfd *, flagword)) bfd_true), - ((boolean (*) (bfd *, void * )) bfd_true), + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true), + ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), + ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), + ((bfd_boolean (*) (bfd *, flagword)) bfd_true), + ((bfd_boolean (*) (bfd *, void * )) bfd_true), /* Core */ coff_core_file_failing_command, @@ -2666,7 +2695,7 @@ const bfd_target rs6000coff64_vec = /* Archive */ xcoff64_slurp_armap, bfd_false, - ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), + ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), bfd_dont_truncate_arname, _bfd_xcoff_write_armap, _bfd_xcoff_read_ar_hdr, @@ -2723,10 +2752,14 @@ const bfd_target rs6000coff64_vec = (void *) &bfd_xcoff_backend_data, }; -extern const bfd_target *xcoff64_core_p PARAMS ((bfd *)); -extern boolean xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -extern char *xcoff64_core_file_failing_command PARAMS ((bfd *)); -extern int xcoff64_core_file_failing_signal PARAMS ((bfd *)); +extern const bfd_target *xcoff64_core_p + PARAMS ((bfd *)); +extern bfd_boolean xcoff64_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); +extern char *xcoff64_core_file_failing_command + PARAMS ((bfd *)); +extern int xcoff64_core_file_failing_signal + PARAMS ((bfd *)); /* AIX 5 */ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data = @@ -2750,10 +2783,10 @@ static const struct xcoff_backend_data_r RELSZ, LINESZ, FILNMLEN, - true, /* _bfd_coff_long_filenames */ - false, /* _bfd_coff_long_section_names */ + TRUE, /* _bfd_coff_long_filenames */ + FALSE, /* _bfd_coff_long_section_names */ 3, /* _bfd_coff_default_section_alignment_power */ - true, /* _bfd_coff_force_symnames_in_strings */ + TRUE, /* _bfd_coff_force_symnames_in_strings */ 4, /* _bfd_coff_debug_string_prefix_length */ coff_swap_filehdr_in, coff_swap_aouthdr_in, @@ -2891,11 +2924,11 @@ const bfd_target aix5coff64_vec = /* Copy */ _bfd_xcoff_copy_private_bfd_data, - ((boolean (*) (bfd *, bfd *)) bfd_true), - ((boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), - ((boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), - ((boolean (*) (bfd *, flagword)) bfd_true), - ((boolean (*) (bfd *, void * )) bfd_true), + ((bfd_boolean (*) (bfd *, bfd *)) bfd_true), + ((bfd_boolean (*) (bfd *, asection *, bfd *, asection *)) bfd_true), + ((bfd_boolean (*) (bfd *, asymbol *, bfd *, asymbol *)) bfd_true), + ((bfd_boolean (*) (bfd *, flagword)) bfd_true), + ((bfd_boolean (*) (bfd *, void * )) bfd_true), /* Core */ xcoff64_core_file_failing_command, @@ -2905,7 +2938,7 @@ const bfd_target aix5coff64_vec = /* Archive */ xcoff64_slurp_armap, bfd_false, - ((boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), + ((bfd_boolean (*) (bfd *, char **, bfd_size_type *, const char **)) bfd_false), bfd_dont_truncate_arname, _bfd_xcoff_write_armap, _bfd_xcoff_read_ar_hdr, diff -uprN binutils-2.13.90.0.16/bfd/coffcode.h binutils-2.13.90.0.18/bfd/coffcode.h --- binutils-2.13.90.0.16/bfd/coffcode.h Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/coffcode.h Tue Jan 21 10:21:32 2003 @@ -296,7 +296,7 @@ CODE_FRAGMENT . struct lineno_cache_entry *lineno; . . {* Have the line numbers been relocated yet ? *} -. boolean done_lineno; +. bfd_boolean done_lineno; .} coff_symbol_type; */ @@ -309,42 +309,58 @@ CODE_FRAGMENT #define STRING_SIZE_SIZE (4) -static long sec_to_styp_flags PARAMS ((const char *, flagword)); -static boolean styp_to_sec_flags +static long sec_to_styp_flags + PARAMS ((const char *, flagword)); +static bfd_boolean styp_to_sec_flags PARAMS ((bfd *, PTR, const char *, asection *, flagword *)); -static boolean coff_bad_format_hook PARAMS ((bfd *, PTR)); +static bfd_boolean coff_bad_format_hook + PARAMS ((bfd *, PTR)); static void coff_set_custom_section_alignment PARAMS ((bfd *, asection *, const struct coff_section_alignment_entry *, const unsigned int)); -static boolean coff_new_section_hook PARAMS ((bfd *, asection *)); -static boolean coff_set_arch_mach_hook PARAMS ((bfd *, PTR)); -static boolean coff_write_relocs PARAMS ((bfd *, int)); -static boolean coff_set_flags +static bfd_boolean coff_new_section_hook + PARAMS ((bfd *, asection *)); +static bfd_boolean coff_set_arch_mach_hook + PARAMS ((bfd *, PTR)); +static bfd_boolean coff_write_relocs + PARAMS ((bfd *, int)); +static bfd_boolean coff_set_flags PARAMS ((bfd *, unsigned int *, unsigned short *)); -static boolean coff_set_arch_mach +static bfd_boolean coff_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)) ATTRIBUTE_UNUSED; -static boolean coff_compute_section_file_positions PARAMS ((bfd *)); -static boolean coff_write_object_contents PARAMS ((bfd *)) ATTRIBUTE_UNUSED; -static boolean coff_set_section_contents +static bfd_boolean coff_compute_section_file_positions + PARAMS ((bfd *)); +static bfd_boolean coff_write_object_contents + PARAMS ((bfd *)) ATTRIBUTE_UNUSED; +static bfd_boolean coff_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static PTR buy_and_read PARAMS ((bfd *, file_ptr, bfd_size_type)); -static boolean coff_slurp_line_table PARAMS ((bfd *, asection *)); -static boolean coff_slurp_symbol_table PARAMS ((bfd *)); +static PTR buy_and_read + PARAMS ((bfd *, file_ptr, bfd_size_type)); +static bfd_boolean coff_slurp_line_table + PARAMS ((bfd *, asection *)); +static bfd_boolean coff_slurp_symbol_table + PARAMS ((bfd *)); static enum coff_symbol_classification coff_classify_symbol PARAMS ((bfd *, struct internal_syment *)); -static boolean coff_slurp_reloc_table PARAMS ((bfd *, asection *, asymbol **)); +static bfd_boolean coff_slurp_reloc_table + PARAMS ((bfd *, asection *, asymbol **)); static long coff_canonicalize_reloc PARAMS ((bfd *, asection *, arelent **, asymbol **)); #ifndef coff_mkobject_hook -static PTR coff_mkobject_hook PARAMS ((bfd *, PTR, PTR)); +static PTR coff_mkobject_hook + PARAMS ((bfd *, PTR, PTR)); #endif #ifdef COFF_WITH_PE -static flagword handle_COMDAT PARAMS ((bfd *, flagword, PTR, const char *, asection *)); +static flagword handle_COMDAT + PARAMS ((bfd *, flagword, PTR, const char *, asection *)); #endif #ifdef COFF_IMAGE_WITH_PE -static boolean coff_read_word PARAMS ((bfd *, unsigned int *)); -static unsigned int coff_compute_checksum PARAMS ((bfd *)); -static boolean coff_apply_checksum PARAMS ((bfd *)); +static bfd_boolean coff_read_word + PARAMS ((bfd *, unsigned int *)); +static unsigned int coff_compute_checksum + PARAMS ((bfd *)); +static bfd_boolean coff_apply_checksum + PARAMS ((bfd *)); #endif /* void warning(); */ @@ -564,7 +580,7 @@ sec_to_styp_flags (sec_name, sec_flags) #ifndef COFF_WITH_PE -static boolean +static bfd_boolean styp_to_sec_flags (abfd, hdr, name, section, flags_ptr) bfd *abfd ATTRIBUTE_UNUSED; PTR hdr; @@ -699,10 +715,10 @@ styp_to_sec_flags (abfd, hdr, name, sect #endif if (flags_ptr == NULL) - return false; + return FALSE; * flags_ptr = sec_flags; - return true; + return TRUE; } #else /* COFF_WITH_PE */ @@ -973,7 +989,7 @@ handle_COMDAT (abfd, sec_flags, hdr, nam required information. FIXME: Is the COMDAT symbol index used for any purpose other than objdump? */ -static boolean +static bfd_boolean styp_to_sec_flags (abfd, hdr, name, section, flags_ptr) bfd *abfd; PTR hdr; @@ -984,7 +1000,7 @@ styp_to_sec_flags (abfd, hdr, name, sect struct internal_scnhdr *internal_s = (struct internal_scnhdr *) hdr; long styp_flags = internal_s->s_flags; flagword sec_flags; - boolean result = true; + bfd_boolean result = TRUE; /* Assume read only unless IMAGE_SCN_MEM_WRITE is specified. */ sec_flags = SEC_READONLY; @@ -1085,7 +1101,7 @@ styp_to_sec_flags (abfd, hdr, name, sect (*_bfd_error_handler) (_("%s (%s): Section flag %s (0x%x) ignored"), bfd_archive_filename (abfd), name, unhandled, flag); - result = false; + result = FALSE; } } @@ -1173,10 +1189,10 @@ Special entry points for gdb to swap in . unsigned int _bfd_relsz; . unsigned int _bfd_linesz; . unsigned int _bfd_filnmlen; -. boolean _bfd_coff_long_filenames; -. boolean _bfd_coff_long_section_names; +. bfd_boolean _bfd_coff_long_filenames; +. bfd_boolean _bfd_coff_long_section_names; . unsigned int _bfd_coff_default_section_alignment_power; -. boolean _bfd_coff_force_symnames_in_strings; +. bfd_boolean _bfd_coff_force_symnames_in_strings; . unsigned int _bfd_coff_debug_string_prefix_length; . . void (*_bfd_coff_swap_filehdr_in) @@ -1191,32 +1207,32 @@ Special entry points for gdb to swap in . void (*_bfd_coff_swap_reloc_in) . PARAMS ((bfd *abfd, PTR, PTR)); . -. boolean (*_bfd_coff_bad_format_hook) +. bfd_boolean (*_bfd_coff_bad_format_hook) . PARAMS ((bfd *, PTR)); . -. boolean (*_bfd_coff_set_arch_mach_hook) +. bfd_boolean (*_bfd_coff_set_arch_mach_hook) . PARAMS ((bfd *, PTR)); . . PTR (*_bfd_coff_mkobject_hook) . PARAMS ((bfd *, PTR, PTR)); . -. boolean (*_bfd_styp_to_sec_flags_hook) +. bfd_boolean (*_bfd_styp_to_sec_flags_hook) . PARAMS ((bfd *, PTR, const char *, asection *, flagword *)); . . void (*_bfd_set_alignment_hook) . PARAMS ((bfd *, asection *, PTR)); . -. boolean (*_bfd_coff_slurp_symbol_table) +. bfd_boolean (*_bfd_coff_slurp_symbol_table) . PARAMS ((bfd *)); . -. boolean (*_bfd_coff_symname_in_debug) +. bfd_boolean (*_bfd_coff_symname_in_debug) . PARAMS ((bfd *, struct internal_syment *)); . -. boolean (*_bfd_coff_pointerize_aux_hook) +. bfd_boolean (*_bfd_coff_pointerize_aux_hook) . PARAMS ((bfd *, combined_entry_type *, combined_entry_type *, . unsigned int, combined_entry_type *)); . -. boolean (*_bfd_coff_print_aux) +. bfd_boolean (*_bfd_coff_print_aux) . PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *, . combined_entry_type *, unsigned int)); . @@ -1231,13 +1247,13 @@ Special entry points for gdb to swap in . enum coff_symbol_classification (*_bfd_coff_classify_symbol) . PARAMS ((bfd *, struct internal_syment *)); . -. boolean (*_bfd_coff_compute_section_file_positions) +. bfd_boolean (*_bfd_coff_compute_section_file_positions) . PARAMS ((bfd *)); . -. boolean (*_bfd_coff_start_final_link) +. bfd_boolean (*_bfd_coff_start_final_link) . PARAMS ((bfd *, struct bfd_link_info *)); . -. boolean (*_bfd_coff_relocate_section) +. bfd_boolean (*_bfd_coff_relocate_section) . PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, . struct internal_reloc *, struct internal_syment *, asection **)); . @@ -1246,19 +1262,19 @@ Special entry points for gdb to swap in . struct coff_link_hash_entry *, struct internal_syment *, . bfd_vma *)); . -. boolean (*_bfd_coff_adjust_symndx) +. bfd_boolean (*_bfd_coff_adjust_symndx) . PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, -. struct internal_reloc *, boolean *)); +. struct internal_reloc *, bfd_boolean *)); . -. boolean (*_bfd_coff_link_add_one_symbol) +. bfd_boolean (*_bfd_coff_link_add_one_symbol) . PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, -. asection *, bfd_vma, const char *, boolean, boolean, +. asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, . struct bfd_link_hash_entry **)); . -. boolean (*_bfd_coff_link_output_has_begun) +. bfd_boolean (*_bfd_coff_link_output_has_begun) . PARAMS ((bfd *, struct coff_final_link_info *)); . -. boolean (*_bfd_coff_final_link_postscript) +. bfd_boolean (*_bfd_coff_final_link_postscript) . PARAMS ((bfd *, struct coff_final_link_info *)); . .} bfd_coff_backend_data; @@ -1394,7 +1410,7 @@ Special entry points for gdb to swap in /* See whether the magic number matches. */ -static boolean +static bfd_boolean coff_bad_format_hook (abfd, filehdr) bfd * abfd ATTRIBUTE_UNUSED; PTR filehdr; @@ -1402,7 +1418,7 @@ coff_bad_format_hook (abfd, filehdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (BADMAG (*internal_f)) - return false; + return FALSE; /* if the optional header is NULL or not the correct size then quit; the only difference I can see between m88k dgux headers (MC88DMAGIC) @@ -1415,10 +1431,10 @@ coff_bad_format_hook (abfd, filehdr) #if defined(M88) || defined(I960) if (internal_f->f_opthdr != 0 && bfd_coff_aoutsz (abfd) != internal_f->f_opthdr) - return false; + return FALSE; #endif - return true; + return TRUE; } /* Check whether this section uses an alignment other than the @@ -1487,7 +1503,7 @@ static const unsigned int coff_section_a /* Initialize a section structure with information peculiar to this particular implementation of COFF. */ -static boolean +static bfd_boolean coff_new_section_hook (abfd, section) bfd * abfd; asection * section; @@ -1514,7 +1530,7 @@ coff_new_section_hook (abfd, section) amt = sizeof (combined_entry_type) * 10; native = (combined_entry_type *) bfd_zalloc (abfd, amt); if (native == NULL) - return false; + return FALSE; /* We don't need to set up n_name, n_value, or n_scnum in the native symbol information, since they'll be overriden by the BFD symbol @@ -1531,7 +1547,7 @@ coff_new_section_hook (abfd, section) coff_section_alignment_table, coff_section_alignment_table_size); - return true; + return TRUE; } #ifdef COFF_ALIGN_IN_SECTION_HEADER @@ -1703,9 +1719,9 @@ coff_set_alignment_hook (abfd, section, #ifndef coff_mkobject -static boolean coff_mkobject PARAMS ((bfd *)); +static bfd_boolean coff_mkobject PARAMS ((bfd *)); -static boolean +static bfd_boolean coff_mkobject (abfd) bfd * abfd; { @@ -1714,7 +1730,7 @@ coff_mkobject (abfd) abfd->tdata.coff_obj_data = (struct coff_tdata *) bfd_zalloc (abfd, amt); if (abfd->tdata.coff_obj_data == 0) - return false; + return FALSE; coff = coff_data (abfd); coff->symbols = (coff_symbol_type *) NULL; coff->conversion_table = (unsigned int *) NULL; @@ -1724,7 +1740,7 @@ coff_mkobject (abfd) /* make_abs_section(abfd);*/ - return true; + return TRUE; } #endif @@ -1778,7 +1794,7 @@ coff_mkobject_hook (abfd, filehdr, aouth # else xcoff->xcoff64 = 0; # endif - xcoff->full_aouthdr = true; + xcoff->full_aouthdr = TRUE; xcoff->toc = internal_a->o_toc; xcoff->sntoc = internal_a->o_sntoc; xcoff->snentry = internal_a->o_snentry; @@ -1815,7 +1831,7 @@ coff_mkobject_hook (abfd, filehdr, aouth would be target independent and would also be much more successful at linking together COFF files for different architectures. */ -static boolean +static bfd_boolean coff_set_arch_mach_hook (abfd, filehdr) bfd *abfd; PTR filehdr; @@ -1917,7 +1933,7 @@ coff_set_arch_mach_hook (abfd, filehdr) machine = bfd_mach_z8002; break; default: - return false; + return FALSE; } break; #endif @@ -1996,7 +2012,7 @@ coff_set_arch_mach_hook (abfd, filehdr) || bfd_bread (buf, amt, abfd) != amt) { free (buf); - return false; + return FALSE; } bfd_coff_swap_sym_in (abfd, (PTR) buf, (PTR) &sym); if (sym.n_sclass == C_FILE) @@ -2112,6 +2128,7 @@ coff_set_arch_mach_hook (abfd, filehdr) /* this TI COFF section should be used by all new TI COFF v0 targets */ case TICOFF0MAGIC: arch = TICOFF_TARGET_ARCH; + machine = TICOFF_TARGET_MACHINE_GET (internal_f->f_flags); break; #endif #endif @@ -2126,6 +2143,7 @@ coff_set_arch_mach_hook (abfd, filehdr) #ifdef TI_TARGET_ID case TI_TARGET_ID: arch = TICOFF_TARGET_ARCH; + machine = TICOFF_TARGET_MACHINE_GET (internal_f->f_flags); break; #endif default: @@ -2162,15 +2180,15 @@ coff_set_arch_mach_hook (abfd, filehdr) } bfd_default_set_arch_mach (abfd, arch, machine); - return true; + return TRUE; } #ifdef SYMNAME_IN_DEBUG -static boolean symname_in_debug_hook +static bfd_boolean symname_in_debug_hook PARAMS ((bfd *, struct internal_syment *)); -static boolean +static bfd_boolean symname_in_debug_hook (abfd, sym) bfd * abfd ATTRIBUTE_UNUSED; struct internal_syment *sym; @@ -2181,7 +2199,7 @@ symname_in_debug_hook (abfd, sym) #else #define symname_in_debug_hook \ - (boolean (*) PARAMS ((bfd *, struct internal_syment *))) bfd_false + (bfd_boolean (*) PARAMS ((bfd *, struct internal_syment *))) bfd_false #endif @@ -2193,12 +2211,12 @@ symname_in_debug_hook (abfd, sym) /* Handle the csect auxent of a C_EXT or C_HIDEXT symbol. */ -static boolean coff_pointerize_aux_hook +static bfd_boolean coff_pointerize_aux_hook PARAMS ((bfd *, combined_entry_type *, combined_entry_type *, unsigned int, combined_entry_type *)); /*ARGSUSED*/ -static boolean +static bfd_boolean coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux) bfd *abfd ATTRIBUTE_UNUSED; combined_entry_type *table_base; @@ -2218,14 +2236,14 @@ coff_pointerize_aux_hook (abfd, table_ba aux->fix_scnlen = 1; } - /* Return true to indicate that the caller should not do any + /* Return TRUE to indicate that the caller should not do any further work on this auxent. */ - return true; + return TRUE; } - /* Return false to indicate that this auxent should be handled by + /* Return FALSE to indicate that this auxent should be handled by the caller. */ - return false; + return FALSE; } #else @@ -2233,12 +2251,12 @@ coff_pointerize_aux_hook (abfd, table_ba /* We don't want to pointerize bal entries. */ -static boolean coff_pointerize_aux_hook +static bfd_boolean coff_pointerize_aux_hook PARAMS ((bfd *, combined_entry_type *, combined_entry_type *, unsigned int, combined_entry_type *)); /*ARGSUSED*/ -static boolean +static bfd_boolean coff_pointerize_aux_hook (abfd, table_base, symbol, indaux, aux) bfd *abfd ATTRIBUTE_UNUSED; combined_entry_type *table_base ATTRIBUTE_UNUSED; @@ -2246,7 +2264,7 @@ coff_pointerize_aux_hook (abfd, table_ba unsigned int indaux; combined_entry_type *aux ATTRIBUTE_UNUSED; { - /* Return true if we don't want to pointerize this aux entry, which + /* Return TRUE if we don't want to pointerize this aux entry, which is the case for the lastfirst aux entry for a C_LEAFPROC symbol. */ return (indaux == 1 && (symbol->u.syment.n_sclass == C_LEAFPROC @@ -2261,13 +2279,13 @@ coff_pointerize_aux_hook (abfd, table_ba #endif /* ! I960 */ #endif /* ! RS6000COFF_C */ -/* Print an aux entry. This returns true if it has printed it. */ +/* Print an aux entry. This returns TRUE if it has printed it. */ -static boolean coff_print_aux +static bfd_boolean coff_print_aux PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *, combined_entry_type *, unsigned int)); -static boolean +static bfd_boolean coff_print_aux (abfd, file, table_base, symbol, aux, indaux) bfd *abfd ATTRIBUTE_UNUSED; FILE *file ATTRIBUTE_UNUSED; @@ -2314,12 +2332,12 @@ coff_print_aux (abfd, file, table_base, (unsigned int) aux->u.auxent.x_csect.x_smclas, aux->u.auxent.x_csect.x_stab, (unsigned int) aux->u.auxent.x_csect.x_snstab); - return true; + return TRUE; } #endif - /* Return false to indicate that no special action was taken. */ - return false; + /* Return FALSE to indicate that no special action was taken. */ + return FALSE; } /* @@ -2358,7 +2376,7 @@ compare_arelent_ptr (x, y) #endif /* TARG_AUX */ -static boolean +static bfd_boolean coff_write_relocs (abfd, first_undef) bfd * abfd; int first_undef; @@ -2382,14 +2400,14 @@ coff_write_relocs (abfd, first_undef) amt *= sizeof (arelent *); p = (arelent **) bfd_malloc (amt); if (p == NULL && s->reloc_count > 0) - return false; + return FALSE; memcpy (p, s->orelocation, (size_t) amt); qsort (p, s->reloc_count, sizeof (arelent *), compare_arelent_ptr); } #endif if (bfd_seek (abfd, s->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; #ifdef COFF_WITH_PE if (obj_pe (abfd) && s->reloc_count >= 0xffff) @@ -2402,7 +2420,7 @@ coff_write_relocs (abfd, first_undef) coff_swap_reloc_out (abfd, &n, &dst); if (bfd_bwrite ((PTR) & dst, (bfd_size_type) bfd_coff_relsz (abfd), abfd) != bfd_coff_relsz (abfd)) - return false; + return FALSE; } #endif @@ -2482,7 +2500,7 @@ coff_write_relocs (abfd, first_undef) coff_swap_reloc_out (abfd, &n, &dst); if (bfd_bwrite ((PTR) & dst, (bfd_size_type) bfd_coff_relsz (abfd), abfd) != bfd_coff_relsz (abfd)) - return false; + return FALSE; } #ifdef TARG_AUX @@ -2491,13 +2509,13 @@ coff_write_relocs (abfd, first_undef) #endif } - return true; + return TRUE; } /* Set flags and magic number of a coff file from architecture and machine - type. Result is true if we can represent the arch&type, false if not. */ + type. Result is TRUE if we can represent the arch&type, FALSE if not. */ -static boolean +static bfd_boolean coff_set_flags (abfd, magicp, flagsp) bfd * abfd; unsigned int *magicp ATTRIBUTE_UNUSED; @@ -2517,9 +2535,9 @@ coff_set_flags (abfd, magicp, flagsp) *flagsp = F_Z8002; break; default: - return false; + return FALSE; } - return true; + return TRUE; #endif #ifdef I960ROMAGIC @@ -2559,10 +2577,10 @@ coff_set_flags (abfd, magicp, flagsp) flags = F_I960HX; break; default: - return false; + return FALSE; } *flagsp = flags; - return true; + return TRUE; } break; #endif @@ -2570,7 +2588,7 @@ coff_set_flags (abfd, magicp, flagsp) #ifdef TIC30MAGIC case bfd_arch_tic30: *magicp = TIC30MAGIC; - return true; + return TRUE; #endif #ifdef TICOFF_DEFAULT_MAGIC @@ -2593,16 +2611,17 @@ coff_set_flags (abfd, magicp, flagsp) *magicp = TICOFF2MAGIC; break; default: - return false; + return FALSE; } } - return true; + TICOFF_TARGET_MACHINE_SET (flagsp, bfd_get_mach (abfd)); + return TRUE; #endif #ifdef TIC80_ARCH_MAGIC case bfd_arch_tic80: *magicp = TIC80_ARCH_MAGIC; - return true; + return TRUE; #endif #ifdef ARMMAGIC case bfd_arch_arm: @@ -2640,12 +2659,12 @@ coff_set_flags (abfd, magicp, flagsp) case bfd_mach_arm_5TE: * flagsp |= F_ARM_5; break; case bfd_mach_arm_XScale: * flagsp |= F_ARM_5; break; } - return true; + return TRUE; #endif #ifdef PPCMAGIC case bfd_arch_powerpc: *magicp = PPCMAGIC; - return true; + return TRUE; break; #endif #ifdef I386MAGIC @@ -2655,19 +2674,19 @@ coff_set_flags (abfd, magicp, flagsp) /* Just overwrite the usual value if we're doing Lynx. */ *magicp = LYNXCOFFMAGIC; #endif - return true; + return TRUE; break; #endif #ifdef I860MAGIC case bfd_arch_i860: *magicp = I860MAGIC; - return true; + return TRUE; break; #endif #ifdef IA64MAGIC case bfd_arch_ia64: *magicp = IA64MAGIC; - return true; + return TRUE; break; #endif #ifdef MC68MAGIC @@ -2686,14 +2705,14 @@ coff_set_flags (abfd, magicp, flagsp) /* Just overwrite the usual value if we're doing Lynx. */ *magicp = LYNXCOFFMAGIC; #endif - return true; + return TRUE; break; #endif #ifdef MC88MAGIC case bfd_arch_m88k: *magicp = MC88OMAGIC; - return true; + return TRUE; break; #endif #ifdef H8300MAGIC @@ -2702,13 +2721,13 @@ coff_set_flags (abfd, magicp, flagsp) { case bfd_mach_h8300: *magicp = H8300MAGIC; - return true; + return TRUE; case bfd_mach_h8300h: *magicp = H8300HMAGIC; - return true; + return TRUE; case bfd_mach_h8300s: *magicp = H8300SMAGIC; - return true; + return TRUE; } break; #endif @@ -2723,14 +2742,14 @@ coff_set_flags (abfd, magicp, flagsp) else *magicp = SH_ARCH_MAGIC_LITTLE; #endif - return true; + return TRUE; break; #endif #ifdef MIPS_ARCH_MAGIC_WINCE case bfd_arch_mips: *magicp = MIPS_ARCH_MAGIC_WINCE; - return true; + return TRUE; break; #endif @@ -2741,14 +2760,14 @@ coff_set_flags (abfd, magicp, flagsp) /* Just overwrite the usual value if we're doing Lynx. */ *magicp = LYNXCOFFMAGIC; #endif - return true; + return TRUE; break; #endif #ifdef H8500MAGIC case bfd_arch_h8500: *magicp = H8500MAGIC; - return true; + return TRUE; break; #endif #ifdef A29K_MAGIC_BIG @@ -2757,14 +2776,14 @@ coff_set_flags (abfd, magicp, flagsp) *magicp = A29K_MAGIC_BIG; else *magicp = A29K_MAGIC_LITTLE; - return true; + return TRUE; break; #endif #ifdef WE32KMAGIC case bfd_arch_we32k: *magicp = WE32KMAGIC; - return true; + return TRUE; break; #endif @@ -2775,20 +2794,20 @@ coff_set_flags (abfd, magicp, flagsp) #endif BFD_ASSERT (bfd_get_flavour (abfd) == bfd_target_xcoff_flavour); *magicp = bfd_xcoff_magic_number (abfd); - return true; + return TRUE; break; #endif #ifdef MCOREMAGIC case bfd_arch_mcore: * magicp = MCOREMAGIC; - return true; + return TRUE; #endif #ifdef W65MAGIC case bfd_arch_w65: *magicp = W65MAGIC; - return true; + return TRUE; #endif #ifdef OR32_MAGIC_BIG @@ -2797,19 +2816,19 @@ coff_set_flags (abfd, magicp, flagsp) * magicp = OR32_MAGIC_BIG; else * magicp = OR32_MAGIC_LITTLE; - return true; + return TRUE; #endif default: /* Unknown architecture. */ - /* Fall through to "return false" below, to avoid + /* Fall through to "return FALSE" below, to avoid "statement never reached" errors on the one below. */ break; } - return false; + return FALSE; } -static boolean +static bfd_boolean coff_set_arch_mach (abfd, arch, machine) bfd * abfd; enum bfd_architecture arch; @@ -2819,13 +2838,13 @@ coff_set_arch_mach (abfd, arch, machine) unsigned short dummy2; if (! bfd_default_set_arch_mach (abfd, arch, machine)) - return false; + return FALSE; if (arch != bfd_arch_unknown && ! coff_set_flags (abfd, &dummy1, &dummy2)) - return false; /* We can't represent this type */ + return FALSE; /* We can't represent this type */ - return true; /* We're easy ... */ + return TRUE; /* We're easy ... */ } #ifdef COFF_IMAGE_WITH_PE @@ -2862,14 +2881,14 @@ sort_by_secaddr (arg1, arg2) #undef ALIGN_SECTIONS_IN_FILE #endif -static boolean +static bfd_boolean coff_compute_section_file_positions (abfd) bfd * abfd; { asection *current; asection *previous = (asection *) NULL; file_ptr sofar = bfd_coff_filhsz (abfd); - boolean align_adjust; + bfd_boolean align_adjust; #ifdef ALIGN_SECTIONS_IN_FILE file_ptr old_sofar; #endif @@ -2975,7 +2994,7 @@ coff_compute_section_file_positions (abf amt = sizeof (struct asection *) * (count + 1); section_list = bfd_malloc (amt); if (section_list == NULL) - return false; + return FALSE; i = 0; for (current = abfd->sections; current != NULL; current = current->next) @@ -3028,7 +3047,7 @@ coff_compute_section_file_positions (abf } #endif /* ! COFF_IMAGE_WITH_PE */ - align_adjust = false; + align_adjust = FALSE; for (current = abfd->sections; current != (asection *) NULL; current = current->next) @@ -3041,7 +3060,7 @@ coff_compute_section_file_positions (abf bfd_size_type amt = sizeof (struct coff_section_tdata); current->used_by_bfd = (PTR) bfd_zalloc (abfd, amt); if (current->used_by_bfd == NULL) - return false; + return FALSE; } if (pei_section_data (abfd, current) == NULL) { @@ -3049,7 +3068,7 @@ coff_compute_section_file_positions (abf coff_section_data (abfd, current)->tdata = (PTR) bfd_zalloc (abfd, amt); if (coff_section_data (abfd, current)->tdata == NULL) - return false; + return FALSE; } if (pei_section_data (abfd, current)->virt_size == 0) pei_section_data (abfd, current)->virt_size = current->_raw_size; @@ -3079,14 +3098,14 @@ coff_compute_section_file_positions (abf #ifdef RS6000COFF_C /* AIX loader checks the text section alignment of (vma - filepos) So even though the filepos may be aligned wrt the o_algntext, for - AIX executables, this check fails. This shows up when an native + AIX executables, this check fails. This shows up when a native AIX executable is stripped with gnu strip because the default vma of native is 0x10000150 but default for gnu is 0x10000140. Gnu - stripped gnu excutable passes this check because the filepos is + stripped gnu excutable passes this check because the filepos is 0x0140. This problem also show up with 64 bit shared objects. The data section must also be aligned. */ - if (!strcmp (current->name, _TEXT) - || !strcmp (current->name, _DATA)) + if (!strcmp (current->name, _TEXT) + || !strcmp (current->name, _DATA)) { bfd_vma pad; bfd_vma align; @@ -3095,8 +3114,8 @@ coff_compute_section_file_positions (abf align = 1 << current->alignment_power; pad = abs (current->vma - sofar) % align; - - if (pad) + + if (pad) { pad = align - pad; sofar += pad; @@ -3158,7 +3177,7 @@ coff_compute_section_file_positions (abf _raw_size, in case the caller only writes out data to the unaligned _raw_size. */ if (pei_section_data (abfd, current)->virt_size < current->_raw_size) - align_adjust = true; + align_adjust = TRUE; #endif #ifdef _LIB @@ -3184,7 +3203,7 @@ coff_compute_section_file_positions (abf b = 0; if (bfd_seek (abfd, sofar - 1, SEEK_SET) != 0 || bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1) - return false; + return FALSE; } /* Make sure the relocations are aligned. We don't need to make @@ -3193,9 +3212,9 @@ coff_compute_section_file_positions (abf sofar = BFD_ALIGN (sofar, 1 << COFF_DEFAULT_SECTION_ALIGNMENT_POWER); obj_relocbase (abfd) = sofar; - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; - return true; + return TRUE; } #if 0 @@ -3207,7 +3226,7 @@ coff_compute_section_file_positions (abf /* If .file, .text, .data, .bss symbols are missing, add them. */ /* @@ Should we only be adding missing symbols, or overriding the aux values for existing section symbols? */ -static boolean +static bfd_boolean coff_add_missing_symbols (abfd) bfd *abfd; { @@ -3251,13 +3270,13 @@ coff_add_missing_symbols (abfd) need_file = 0; if (!need_text && !need_data && !need_bss && !need_file) - return true; + return TRUE; nsyms += need_text + need_data + need_bss + need_file; amt = nsyms; amt *= sizeof (asymbol *); sympp2 = (asymbol **) bfd_alloc (abfd, amt); if (!sympp2) - return false; + return FALSE; memcpy (sympp2, sympp, i * sizeof (asymbol *)); if (need_file) { @@ -3272,7 +3291,7 @@ coff_add_missing_symbols (abfd) sympp2[i++] = coff_section_symbol (abfd, _BSS); BFD_ASSERT (i == nsyms); bfd_set_symtab (abfd, sympp2, nsyms); - return true; + return TRUE; } #endif /* 0 */ @@ -3282,7 +3301,7 @@ coff_add_missing_symbols (abfd) static unsigned int pelength; static unsigned int peheader; -static boolean +static bfd_boolean coff_read_word (abfd, value) bfd *abfd; unsigned int *value; @@ -3294,7 +3313,7 @@ coff_read_word (abfd, value) if (status < 1) { *value = 0; - return false; + return FALSE; } if (status == 1) @@ -3304,14 +3323,14 @@ coff_read_word (abfd, value) pelength += (unsigned int) status; - return true; + return TRUE; } static unsigned int coff_compute_checksum (abfd) bfd *abfd; { - boolean more_data; + bfd_boolean more_data; file_ptr filepos; unsigned int value; unsigned int total; @@ -3335,7 +3354,7 @@ coff_compute_checksum (abfd) return (0xffff & (total + (total >> 0x10))); } -static boolean +static bfd_boolean coff_apply_checksum (abfd) bfd *abfd; { @@ -3343,51 +3362,51 @@ coff_apply_checksum (abfd) unsigned int checksum = 0; if (bfd_seek (abfd, 0x3c, SEEK_SET) != 0) - return false; + return FALSE; if (!coff_read_word (abfd, &peheader)) - return false; + return FALSE; if (bfd_seek (abfd, peheader + 0x58, SEEK_SET) != 0) - return false; + return FALSE; checksum = 0; bfd_bwrite (&checksum, (bfd_size_type) 4, abfd); if (bfd_seek (abfd, peheader, SEEK_SET) != 0) - return false; + return FALSE; computed = coff_compute_checksum (abfd); checksum = computed + pelength; if (bfd_seek (abfd, peheader + 0x58, SEEK_SET) != 0) - return false; + return FALSE; bfd_bwrite (&checksum, (bfd_size_type) 4, abfd); - return true; + return TRUE; } #endif /* COFF_IMAGE_WITH_PE */ /* SUPPRESS 558 */ /* SUPPRESS 529 */ -static boolean +static bfd_boolean coff_write_object_contents (abfd) bfd * abfd; { asection *current; - boolean hasrelocs = false; - boolean haslinno = false; - boolean hasdebug = false; + bfd_boolean hasrelocs = FALSE; + bfd_boolean haslinno = FALSE; + bfd_boolean hasdebug = FALSE; file_ptr scn_base; file_ptr reloc_base; file_ptr lineno_base; file_ptr sym_base; unsigned long reloc_size = 0, reloc_count = 0; unsigned long lnno_size = 0; - boolean long_section_names; + bfd_boolean long_section_names; asection *text_sec = NULL; asection *data_sec = NULL; asection *bss_sec = NULL; @@ -3407,7 +3426,7 @@ coff_write_object_contents (abfd) if (! abfd->output_has_begun) { if (! coff_compute_section_file_positions (abfd)) - return false; + return FALSE; } reloc_base = obj_relocbase (abfd); @@ -3479,21 +3498,21 @@ coff_write_object_contents (abfd) } if (bfd_seek (abfd, scn_base, SEEK_SET) != 0) - return false; + return FALSE; - long_section_names = false; + long_section_names = FALSE; for (current = abfd->sections; current != NULL; current = current->next) { struct internal_scnhdr section; - boolean is_reloc_section = false; + bfd_boolean is_reloc_section = FALSE; #ifdef COFF_IMAGE_WITH_PE if (strcmp (current->name, ".reloc") == 0) { - is_reloc_section = true; - hasrelocs = true; + is_reloc_section = TRUE; + hasrelocs = TRUE; pe_data (abfd)->has_reloc_section = 1; } #endif @@ -3514,7 +3533,7 @@ coff_write_object_contents (abfd) memset (section.s_name, 0, SCNNMLEN); sprintf (section.s_name, "/%lu", (unsigned long) string_size); string_size += len + 1; - long_section_names = true; + long_section_names = TRUE; } } #endif @@ -3565,13 +3584,13 @@ coff_write_object_contents (abfd) #ifndef COFF_IMAGE_WITH_PE /* In PEI, relocs come in the .reloc section. */ if (current->reloc_count != 0) - hasrelocs = true; + hasrelocs = TRUE; #endif if (current->lineno_count != 0) - haslinno = true; + haslinno = TRUE; if ((current->flags & SEC_DEBUGGING) != 0 && ! is_reloc_section) - hasdebug = true; + hasdebug = TRUE; #ifdef RS6000COFF_C #ifndef XCOFF64 @@ -3628,7 +3647,7 @@ coff_write_object_contents (abfd) if (coff_swap_scnhdr_out (abfd, §ion, &buff) == 0 || bfd_bwrite ((PTR) &buff, amt, abfd) != amt) - return false; + return FALSE; } #ifdef COFF_WITH_PE @@ -3752,7 +3771,7 @@ coff_write_object_contents (abfd) amt = bfd_coff_scnhsz (abfd); if (coff_swap_scnhdr_out (abfd, &scnhdr, &buff) == 0 || bfd_bwrite ((PTR) &buff, amt, abfd) != amt) - return false; + return FALSE; } } #endif @@ -3971,17 +3990,17 @@ coff_write_object_contents (abfd) int firstundef; #if 0 if (!coff_add_missing_symbols (abfd)) - return false; + return FALSE; #endif if (!coff_renumber_symbols (abfd, &firstundef)) - return false; + return FALSE; coff_mangle_symbols (abfd); if (! coff_write_symbols (abfd)) - return false; + return FALSE; if (! coff_write_linenumbers (abfd)) - return false; + return FALSE; if (! coff_write_relocs (abfd, firstundef)) - return false; + return FALSE; } #ifdef COFF_LONG_SECTION_NAMES else if (long_section_names && ! obj_coff_strings_written (abfd)) @@ -3989,7 +4008,7 @@ coff_write_object_contents (abfd) /* If we have long section names we have to write out the string table even if there are no symbols. */ if (! coff_write_symbols (abfd)) - return false; + return FALSE; } #endif #ifdef COFF_IMAGE_WITH_PE @@ -4005,7 +4024,7 @@ coff_write_object_contents (abfd) (file_ptr) BFD_ALIGN (sym_base, COFF_PAGE_SIZE) - 1, SEEK_SET) != 0 || bfd_bwrite (&b, (bfd_size_type) 1, abfd) != 1) - return false; + return FALSE; } #endif #endif @@ -4124,7 +4143,7 @@ coff_write_object_contents (abfd) /* now write them */ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; { char * buff; @@ -4132,7 +4151,7 @@ coff_write_object_contents (abfd) buff = bfd_malloc (amount); if (buff == NULL) - return false; + return FALSE; bfd_coff_swap_filehdr_out (abfd, (PTR) &internal_f, (PTR) buff); amount = bfd_bwrite ((PTR) buff, amount, abfd); @@ -4140,7 +4159,7 @@ coff_write_object_contents (abfd) free (buff); if (amount != bfd_coff_filhsz (abfd)) - return false; + return FALSE; } if (abfd->flags & EXEC_P) @@ -4152,7 +4171,7 @@ coff_write_object_contents (abfd) buff = bfd_malloc (amount); if (buff == NULL) - return false; + return FALSE; coff_swap_aouthdr_out (abfd, (PTR) &internal_a, (PTR) buff); amount = bfd_bwrite ((PTR) buff, amount, abfd); @@ -4160,11 +4179,11 @@ coff_write_object_contents (abfd) free (buff); if (amount != bfd_coff_aoutsz (abfd)) - return false; + return FALSE; #ifdef COFF_IMAGE_WITH_PE if (! coff_apply_checksum (abfd)) - return false; + return FALSE; #endif } #ifdef RS6000COFF_C @@ -4180,14 +4199,14 @@ coff_write_object_contents (abfd) else size = SMALL_AOUTSZ; if (bfd_bwrite ((PTR) &buff, (bfd_size_type) size, abfd) != size) - return false; + return FALSE; } #endif - return true; + return TRUE; } -static boolean +static bfd_boolean coff_set_section_contents (abfd, section, location, offset, count) bfd * abfd; sec_ptr section; @@ -4198,7 +4217,7 @@ coff_set_section_contents (abfd, section if (! abfd->output_has_begun) /* set by bfd.c handler */ { if (! coff_compute_section_file_positions (abfd)) - return false; + return FALSE; } #if defined(_LIB) && !defined(TARG_AUX) @@ -4244,18 +4263,18 @@ coff_set_section_contents (abfd, section /* Don't write out bss sections - one way to do this is to see if the filepos has not been set. */ if (section->filepos == 0) - return true; + return TRUE; if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0) - return false; + return FALSE; if (count == 0) - return true; + return TRUE; return bfd_bwrite (location, count, abfd) == count; } #if 0 -static boolean +static bfd_boolean coff_close_and_cleanup (abfd) bfd *abfd; { @@ -4264,19 +4283,19 @@ coff_close_and_cleanup (abfd) { case bfd_archive: if (!_bfd_write_archive_contents (abfd)) - return false; + return FALSE; break; case bfd_object: if (!coff_write_object_contents (abfd)) - return false; + return FALSE; break; default: bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* We depend on bfd_close to free all the memory on the objalloc. */ - return true; + return TRUE; } #endif @@ -4320,7 +4339,7 @@ SUBSUBSECTION */ -static boolean +static bfd_boolean coff_slurp_line_table (abfd, asect) bfd *abfd; asection *asect; @@ -4336,7 +4355,7 @@ coff_slurp_line_table (abfd, asect) amt = ((bfd_size_type) asect->lineno_count + 1) * sizeof (alent); lineno_cache = (alent *) bfd_alloc (abfd, amt); if (lineno_cache == NULL) - return false; + return FALSE; else { unsigned int counter = 0; @@ -4351,11 +4370,11 @@ coff_slurp_line_table (abfd, asect) if (cache_ptr->line_number == 0) { - boolean warned; + bfd_boolean warned; bfd_signed_vma symndx; coff_symbol_type *sym; - warned = false; + warned = FALSE; symndx = dst.l_addr.l_symndx; if (symndx < 0 || (bfd_vma) symndx >= obj_raw_syment_count (abfd)) @@ -4364,7 +4383,7 @@ coff_slurp_line_table (abfd, asect) (_("%s: warning: illegal symbol index %ld in line numbers"), bfd_archive_filename (abfd), dst.l_addr.l_symndx); symndx = 0; - warned = true; + warned = TRUE; } /* FIXME: We should not be casting between ints and pointers like this. */ @@ -4396,14 +4415,14 @@ coff_slurp_line_table (abfd, asect) } asect->lineno = lineno_cache; /* FIXME, free native_lineno here, or use alloca or something. */ - return true; + return TRUE; } /* Slurp in the symbol table, converting it to generic form. Note that if coff_relocate_section is defined, the linker will read symbols via coff_link_add_symbols, rather than via this routine. */ -static boolean +static bfd_boolean coff_slurp_symbol_table (abfd) bfd * abfd; { @@ -4415,12 +4434,12 @@ coff_slurp_symbol_table (abfd) unsigned int number_of_symbols = 0; if (obj_symbols (abfd)) - return true; + return TRUE; /* Read in the symbol table */ if ((native_symbols = coff_get_normalized_symtab (abfd)) == NULL) { - return (false); + return FALSE; } /* on error */ /* Allocate enough room for all the symbols in cached form */ @@ -4428,14 +4447,14 @@ coff_slurp_symbol_table (abfd) amt *= sizeof (coff_symbol_type); cached_area = (coff_symbol_type *) bfd_alloc (abfd, amt); if (cached_area == NULL) - return false; + return FALSE; amt = obj_raw_syment_count (abfd); amt *= sizeof (unsigned int); table_ptr = (unsigned int *) bfd_alloc (abfd, amt); if (table_ptr == NULL) - return false; + return FALSE; else { coff_symbol_type *dst = cached_area; @@ -4453,7 +4472,7 @@ coff_slurp_symbol_table (abfd) dst->symbol.section = coff_section_from_bfd_index (abfd, src->u.syment.n_scnum); dst->symbol.flags = 0; - dst->done_lineno = false; + dst->done_lineno = FALSE; switch (src->u.syment.n_sclass) { @@ -4767,7 +4786,7 @@ coff_slurp_symbol_table (abfd) p = p->next; } } - return true; + return TRUE; } /* coff_slurp_symbol_table() */ /* Classify a COFF symbol. A couple of targets have globally visible @@ -4919,7 +4938,7 @@ SUBSUBSECTION } #endif -static boolean +static bfd_boolean coff_slurp_reloc_table (abfd, asect, symbols) bfd * abfd; sec_ptr asect; @@ -4932,20 +4951,20 @@ coff_slurp_reloc_table (abfd, asect, sym bfd_size_type amt; if (asect->relocation) - return true; + return TRUE; if (asect->reloc_count == 0) - return true; + return TRUE; if (asect->flags & SEC_CONSTRUCTOR) - return true; + return TRUE; if (!coff_slurp_symbol_table (abfd)) - return false; + return FALSE; amt = (bfd_size_type) bfd_coff_relsz (abfd) * asect->reloc_count; native_relocs = (RELOC *) buy_and_read (abfd, asect->rel_filepos, amt); amt = (bfd_size_type) asect->reloc_count * sizeof (arelent); reloc_cache = (arelent *) bfd_alloc (abfd, amt); if (reloc_cache == NULL) - return false; + return FALSE; for (idx = 0; idx < asect->reloc_count; idx++) { @@ -5011,12 +5030,12 @@ coff_slurp_reloc_table (abfd, asect, sym (_("%s: illegal relocation type %d at address 0x%lx"), bfd_archive_filename (abfd), dst.r_type, (long) dst.r_vaddr); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } asect->relocation = reloc_cache; - return true; + return TRUE; } #ifndef coff_rtype_to_howto @@ -5193,10 +5212,10 @@ dummy_reloc16_extra_cases (abfd, link_in #ifndef coff_link_output_has_begun -static boolean coff_link_output_has_begun +static bfd_boolean coff_link_output_has_begun PARAMS ((bfd *, struct coff_final_link_info *)); -static boolean +static bfd_boolean coff_link_output_has_begun (abfd, info) bfd * abfd; struct coff_final_link_info * info ATTRIBUTE_UNUSED; @@ -5207,15 +5226,15 @@ coff_link_output_has_begun (abfd, info) #ifndef coff_final_link_postscript -static boolean coff_final_link_postscript +static bfd_boolean coff_final_link_postscript PARAMS ((bfd *, struct coff_final_link_info *)); -static boolean +static bfd_boolean coff_final_link_postscript (abfd, pfinfo) bfd * abfd ATTRIBUTE_UNUSED; struct coff_final_link_info * pfinfo ATTRIBUTE_UNUSED; { - return true; + return TRUE; } #endif @@ -5271,20 +5290,20 @@ static const bfd_coff_backend_data bfd_c coff_SWAP_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif COFF_DEFAULT_SECTION_ALIGNMENT_POWER, #ifdef COFF_FORCE_SYMBOLS_IN_STRINGS - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_DEBUG_STRING_WIDE_PREFIX 4, diff -uprN binutils-2.13.90.0.16/bfd/coffgen.c binutils-2.13.90.0.18/bfd/coffgen.c --- binutils-2.13.90.0.16/bfd/coffgen.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/coffgen.c Mon Dec 16 12:22:51 2002 @@ -46,19 +46,19 @@ Foundation, Inc., 59 Temple Place - Suit static void coff_fix_symbol_name PARAMS ((bfd *, asymbol *, combined_entry_type *, bfd_size_type *, asection **, bfd_size_type *)); -static boolean coff_write_symbol +static bfd_boolean coff_write_symbol PARAMS ((bfd *, asymbol *, combined_entry_type *, bfd_vma *, bfd_size_type *, asection **, bfd_size_type *)); -static boolean coff_write_alien_symbol +static bfd_boolean coff_write_alien_symbol PARAMS ((bfd *, asymbol *, bfd_vma *, bfd_size_type *, asection **, bfd_size_type *)); -static boolean coff_write_native_symbol +static bfd_boolean coff_write_native_symbol PARAMS ((bfd *, coff_symbol_type *, bfd_vma *, bfd_size_type *, asection **, bfd_size_type *)); static void coff_pointerize_aux PARAMS ((bfd *, combined_entry_type *, combined_entry_type *, unsigned int, combined_entry_type *)); -static boolean make_a_section_from_file +static bfd_boolean make_a_section_from_file PARAMS ((bfd *, struct internal_scnhdr *, unsigned int)); static const bfd_target *coff_real_object_p PARAMS ((bfd *, unsigned, struct internal_filehdr *, @@ -74,7 +74,7 @@ static char *copy_name /* Take a section header read from a coff file (in HOST byte order), and make a BFD "section" out of it. This is used by ECOFF. */ -static boolean +static bfd_boolean make_a_section_from_file (abfd, hdr, target_index) bfd *abfd; struct internal_scnhdr *hdr; @@ -82,7 +82,7 @@ make_a_section_from_file (abfd, hdr, tar { asection *return_section; char *name; - boolean result = true; + bfd_boolean result = TRUE; flagword flags; name = NULL; @@ -103,14 +103,14 @@ make_a_section_from_file (abfd, hdr, tar { strings = _bfd_coff_read_string_table (abfd); if (strings == NULL) - return false; + return FALSE; /* FIXME: For extra safety, we should make sure that strindex does not run us past the end, but right now we don't know the length of the string table. */ strings += strindex; name = bfd_alloc (abfd, (bfd_size_type) strlen (strings) + 1); if (name == NULL) - return false; + return FALSE; strcpy (name, strings); } } @@ -120,14 +120,14 @@ make_a_section_from_file (abfd, hdr, tar /* Assorted wastage to null-terminate the name, thanks AT&T! */ name = bfd_alloc (abfd, (bfd_size_type) sizeof (hdr->s_name) + 1); if (name == NULL) - return false; + return FALSE; strncpy (name, (char *) &hdr->s_name[0], sizeof (hdr->s_name)); name[sizeof (hdr->s_name)] = 0; } return_section = bfd_make_section_anyway (abfd, name); if (return_section == NULL) - return false; + return FALSE; return_section->vma = hdr->s_vaddr; return_section->lma = hdr->s_paddr; @@ -147,7 +147,7 @@ make_a_section_from_file (abfd, hdr, tar if (! bfd_coff_styp_to_sec_flags_hook (abfd, hdr, name, return_section, & flags)) - result = false; + result = FALSE; return_section->flags = flags; @@ -423,12 +423,12 @@ _bfd_coff_internal_syment_name (abfd, sy } /* Read in and swap the relocs. This returns a buffer holding the - relocs for section SEC in file ABFD. If CACHE is true and + relocs for section SEC in file ABFD. If CACHE is TRUE and INTERNAL_RELOCS is NULL, the relocs read in will be saved in case the function is called again. If EXTERNAL_RELOCS is not NULL, it is a buffer large enough to hold the unswapped relocs. If INTERNAL_RELOCS is not NULL, it is a buffer large enough to hold - the swapped relocs. If REQUIRE_INTERNAL is true, then the return + the swapped relocs. If REQUIRE_INTERNAL is TRUE, then the return value must be INTERNAL_RELOCS. The function returns NULL on error. */ struct internal_reloc * @@ -436,9 +436,9 @@ _bfd_coff_read_internal_relocs (abfd, se require_internal, internal_relocs) bfd *abfd; asection *sec; - boolean cache; + bfd_boolean cache; bfd_byte *external_relocs; - boolean require_internal; + bfd_boolean require_internal; struct internal_reloc *internal_relocs; { bfd_size_type relsz; @@ -565,7 +565,7 @@ coff_count_linenumbers (abfd) do { asection * sec = q->symbol.section->output_section; - + /* Do not try to update fields in read-only sections. */ if (! bfd_is_const_section (sec)) sec->lineno_count ++; @@ -656,7 +656,7 @@ fixup_symbol_value (abfd, coff_symbol_pt chain, and that the last one points to the first external symbol. We do that here too. */ -boolean +bfd_boolean coff_renumber_symbols (bfd_ptr, first_undef) bfd *bfd_ptr; int *first_undef; @@ -685,7 +685,7 @@ coff_renumber_symbols (bfd_ptr, first_un amt = sizeof (asymbol *) * ((bfd_size_type) symbol_count + 1); newsyms = (asymbol **) bfd_alloc (bfd_ptr, amt); if (!newsyms) - return false; + return FALSE; bfd_ptr->outsymbols = newsyms; for (i = 0; i < symbol_count; i++) if ((symbol_ptr_ptr[i]->flags & BSF_NOT_AT_END) != 0 @@ -748,7 +748,7 @@ coff_renumber_symbols (bfd_ptr, first_un } obj_conv_table_size (bfd_ptr) = native_index; - return true; + return TRUE; } /* Run thorough the symbol table again, and fix it so that all @@ -943,7 +943,7 @@ coff_fix_symbol_name (abfd, symbol, nati /* Write a symbol out to a COFF file. */ -static boolean +static bfd_boolean coff_write_symbol (abfd, symbol, native, written, string_size_p, debug_string_section_p, debug_string_size_p) bfd *abfd; @@ -988,10 +988,10 @@ coff_write_symbol (abfd, symbol, native, symesz = bfd_coff_symesz (abfd); buf = bfd_alloc (abfd, symesz); if (!buf) - return false; + return FALSE; bfd_coff_swap_sym_out (abfd, &native->u.syment, buf); if (bfd_bwrite (buf, symesz, abfd) != symesz) - return false; + return FALSE; bfd_release (abfd, buf); if (native->u.syment.n_numaux > 0) @@ -1002,7 +1002,7 @@ coff_write_symbol (abfd, symbol, native, auxesz = bfd_coff_auxesz (abfd); buf = bfd_alloc (abfd, auxesz); if (!buf) - return false; + return FALSE; for (j = 0; j < native->u.syment.n_numaux; j++) { bfd_coff_swap_aux_out (abfd, @@ -1013,7 +1013,7 @@ coff_write_symbol (abfd, symbol, native, native->u.syment.n_numaux, buf); if (bfd_bwrite (buf, auxesz, abfd) != auxesz) - return false; + return FALSE; } bfd_release (abfd, buf); } @@ -1022,14 +1022,14 @@ coff_write_symbol (abfd, symbol, native, set_index (symbol, *written); *written += numaux + 1; - return true; + return TRUE; } /* Write out a symbol to a COFF file that does not come from a COFF file originally. This symbol may have been created by the linker, or we may be linking a non COFF file to a COFF file. */ -static boolean +static bfd_boolean coff_write_alien_symbol (abfd, symbol, written, string_size_p, debug_string_section_p, debug_string_size_p) bfd *abfd; @@ -1062,7 +1062,7 @@ coff_write_alien_symbol (abfd, symbol, w format. So, we just ignore them. We must clobber the symbol name to keep it from being put in the string table. */ symbol->name = ""; - return true; + return TRUE; } else { @@ -1097,7 +1097,7 @@ coff_write_alien_symbol (abfd, symbol, w /* Write a native symbol to a COFF file. */ -static boolean +static bfd_boolean coff_write_native_symbol (abfd, symbol, written, string_size_p, debug_string_section_p, debug_string_size_p) bfd *abfd; @@ -1153,7 +1153,7 @@ coff_write_native_symbol (abfd, symbol, #endif count++; } - symbol->done_lineno = true; + symbol->done_lineno = TRUE; if (! bfd_is_const_section (symbol->symbol.section->output_section)) symbol->symbol.section->output_section->moving_line_filepos += @@ -1167,7 +1167,7 @@ coff_write_native_symbol (abfd, symbol, /* Write out the COFF symbols. */ -boolean +bfd_boolean coff_write_symbols (abfd) bfd *abfd; { @@ -1203,7 +1203,7 @@ coff_write_symbols (abfd) /* Seek to the right place */ if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0) - return false; + return FALSE; /* Output all the symbols we have */ @@ -1219,14 +1219,14 @@ coff_write_symbols (abfd) if (!coff_write_alien_symbol (abfd, symbol, &written, &string_size, &debug_string_section, &debug_string_size)) - return false; + return FALSE; } else { if (!coff_write_native_symbol (abfd, c_symbol, &written, &string_size, &debug_string_section, &debug_string_size)) - return false; + return FALSE; } } @@ -1246,7 +1246,7 @@ coff_write_symbols (abfd) #endif if (bfd_bwrite ((PTR) buffer, (bfd_size_type) sizeof (buffer), abfd) != sizeof (buffer)) - return false; + return FALSE; /* Handle long section names. This code must handle section names just as they are handled in coff_write_object_contents. */ @@ -1263,7 +1263,7 @@ coff_write_symbols (abfd) { if (bfd_bwrite (o->name, (bfd_size_type) (len + 1), abfd) != len + 1) - return false; + return FALSE; } } } @@ -1304,7 +1304,7 @@ coff_write_symbols (abfd) if (bfd_coff_force_symnames_in_strings (abfd)) { if (bfd_bwrite (".file", (bfd_size_type) 6, abfd) != 6) - return false; + return FALSE; } maxlen = bfd_coff_filnmlen (abfd); } @@ -1315,7 +1315,7 @@ coff_write_symbols (abfd) { if (bfd_bwrite ((PTR) (q->name), (bfd_size_type) name_length + 1, abfd) != name_length + 1) - return false; + return FALSE; } } } @@ -1334,7 +1334,7 @@ coff_write_symbols (abfd) #endif if (bfd_bwrite ((PTR) buffer, (bfd_size_type) STRING_SIZE_SIZE, abfd) != STRING_SIZE_SIZE) - return false; + return FALSE; } /* Make sure the .debug section was created to be the correct size. @@ -1348,10 +1348,10 @@ coff_write_symbols (abfd) 1 << debug_string_section->alignment_power) == bfd_section_size (abfd, debug_string_section)))); - return true; + return TRUE; } -boolean +bfd_boolean coff_write_linenumbers (abfd) bfd *abfd; { @@ -1362,14 +1362,14 @@ coff_write_linenumbers (abfd) linesz = bfd_coff_linesz (abfd); buff = bfd_alloc (abfd, linesz); if (!buff) - return false; + return FALSE; for (s = abfd->sections; s != (asection *) NULL; s = s->next) { if (s->lineno_count) { asymbol **q = abfd->outsymbols; if (bfd_seek (abfd, s->line_filepos, SEEK_SET) != 0) - return false; + return FALSE; /* Find all the linenumbers in this section */ while (*q) { @@ -1389,7 +1389,7 @@ coff_write_linenumbers (abfd) bfd_coff_swap_lineno_out (abfd, &out, buff); if (bfd_bwrite (buff, (bfd_size_type) linesz, abfd) != linesz) - return false; + return FALSE; l++; while (l->line_number) { @@ -1398,7 +1398,7 @@ coff_write_linenumbers (abfd) bfd_coff_swap_lineno_out (abfd, &out, buff); if (bfd_bwrite (buff, (bfd_size_type) linesz, abfd) != linesz) - return false; + return FALSE; l++; } } @@ -1408,7 +1408,7 @@ coff_write_linenumbers (abfd) } } bfd_release (abfd, buff); - return true; + return TRUE; } alent * @@ -1585,7 +1585,7 @@ copy_name (abfd, name, maxlen) /* Read in the external symbols. */ -boolean +bfd_boolean _bfd_coff_get_external_symbols (abfd) bfd *abfd; { @@ -1594,7 +1594,7 @@ _bfd_coff_get_external_symbols (abfd) PTR syms; if (obj_coff_external_syms (abfd) != NULL) - return true; + return TRUE; symesz = bfd_coff_symesz (abfd); @@ -1602,19 +1602,19 @@ _bfd_coff_get_external_symbols (abfd) syms = (PTR) bfd_malloc (size); if (syms == NULL && size != 0) - return false; + return FALSE; if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0 || bfd_bread (syms, size, abfd) != size) { if (syms != NULL) free (syms); - return false; + return FALSE; } obj_coff_external_syms (abfd) = syms; - return true; + return TRUE; } /* Read in the external strings. The strings are not loaded until @@ -1689,7 +1689,7 @@ _bfd_coff_read_string_table (abfd) /* Free up the external symbols and strings read from a COFF file. */ -boolean +bfd_boolean _bfd_coff_free_symbols (abfd) bfd *abfd; { @@ -1705,7 +1705,7 @@ _bfd_coff_free_symbols (abfd) free (obj_coff_strings (abfd)); obj_coff_strings (abfd) = NULL; } - return true; + return TRUE; } /* Read a symbol table into freshly bfd_allocated memory, swap it, and @@ -1777,7 +1777,7 @@ coff_get_normalized_symtab (abfd) } /* Free the raw symbols, but not the strings (if we have them). */ - obj_coff_keep_strings (abfd) = true; + obj_coff_keep_strings (abfd) = TRUE; if (! _bfd_coff_free_symbols (abfd)) return NULL; @@ -1909,7 +1909,7 @@ coff_make_empty_symbol (abfd) new->symbol.section = 0; new->native = 0; new->lineno = (alent *) NULL; - new->done_lineno = false; + new->done_lineno = FALSE; new->symbol.the_bfd = abfd; return &new->symbol; } @@ -1935,7 +1935,7 @@ coff_bfd_make_debug_symbol (abfd, ptr, s new->symbol.section = bfd_abs_section_ptr; new->symbol.flags = BSF_DEBUGGING; new->lineno = (alent *) NULL; - new->done_lineno = false; + new->done_lineno = FALSE; new->symbol.the_bfd = abfd; return &new->symbol; } @@ -1957,7 +1957,7 @@ coff_get_symbol_info (abfd, symbol, ret) /* Return the COFF syment for a symbol. */ -boolean +bfd_boolean bfd_coff_get_syment (abfd, symbol, psyment) bfd *abfd; asymbol *symbol; @@ -1969,7 +1969,7 @@ bfd_coff_get_syment (abfd, symbol, psyme if (csym == NULL || csym->native == NULL) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } *psyment = csym->native->u.syment; @@ -1980,12 +1980,12 @@ bfd_coff_get_syment (abfd, symbol, psyme /* FIXME: We should handle fix_line here. */ - return true; + return TRUE; } /* Return the COFF auxent for a symbol. */ -boolean +bfd_boolean bfd_coff_get_auxent (abfd, symbol, indx, pauxent) bfd *abfd; asymbol *symbol; @@ -2002,7 +2002,7 @@ bfd_coff_get_auxent (abfd, symbol, indx, || indx >= csym->native->u.syment.n_numaux) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } ent = csym->native + indx + 1; @@ -2024,7 +2024,7 @@ bfd_coff_get_auxent (abfd, symbol, indx, ((combined_entry_type *) pauxent->x_csect.x_scnlen.p - obj_raw_syments (abfd)); - return true; + return TRUE; } /* Print out information about COFF symbol. */ @@ -2191,19 +2191,19 @@ coff_print_symbol (abfd, filep, symbol, function for the is_local_label_name entry point, but some may override it. */ -boolean +bfd_boolean _bfd_coff_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; { - return (boolean) (name[0] == '.' && name[1] == 'L'); + return name[0] == '.' && name[1] == 'L'; } /* Provided a BFD, a section and an offset (in bytes, not octets) into the section, calculate and return the name of the source file and the line nearest to the wanted location. */ -boolean +bfd_boolean coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd; @@ -2214,7 +2214,7 @@ coff_find_nearest_line (abfd, section, s const char **functionname_ptr; unsigned int *line_ptr; { - boolean found; + bfd_boolean found; unsigned int i; unsigned int line_base; coff_data_type *cof = coff_data (abfd); @@ -2231,17 +2231,17 @@ coff_find_nearest_line (abfd, section, s &found, filename_ptr, functionname_ptr, line_ptr, &coff_data(abfd)->line_info)) - return false; + return FALSE; if (found) - return true; + return TRUE; /* Also try examining DWARF2 debugging information. */ if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr, 0, &coff_data(abfd)->dwarf2_find_line_info)) - return true; + return TRUE; *filename_ptr = 0; *functionname_ptr = 0; @@ -2249,15 +2249,15 @@ coff_find_nearest_line (abfd, section, s /* Don't try and find line numbers in a non coff file */ if (!bfd_family_coff (abfd)) - return false; + return FALSE; if (cof == NULL) - return false; + return FALSE; /* Find the first C_FILE symbol. */ p = cof->raw_syments; if (!p) - return false; + return FALSE; pend = p + cof->raw_syment_count; while (p < pend) @@ -2410,13 +2410,13 @@ coff_find_nearest_line (abfd, section, s sec_data->line_base = line_base; } - return true; + return TRUE; } int coff_sizeof_headers (abfd, reloc) bfd *abfd; - boolean reloc; + bfd_boolean reloc; { size_t size; @@ -2434,7 +2434,7 @@ coff_sizeof_headers (abfd, reloc) } /* Change the class of a coff symbol held by BFD. */ -boolean +bfd_boolean bfd_coff_set_symbol_class (abfd, symbol, class) bfd * abfd; asymbol * symbol; @@ -2446,7 +2446,7 @@ bfd_coff_set_symbol_class (abfd, symbol, if (csym == NULL) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } else if (csym->native == NULL) { @@ -2460,7 +2460,7 @@ bfd_coff_set_symbol_class (abfd, symbol, native = (combined_entry_type *) bfd_zalloc (abfd, amt); if (native == NULL) - return false; + return FALSE; native->u.syment.n_type = T_NULL; native->u.syment.n_sclass = class; @@ -2496,5 +2496,5 @@ bfd_coff_set_symbol_class (abfd, symbol, csym->native->u.syment.n_sclass = class; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/cofflink.c binutils-2.13.90.0.18/bfd/cofflink.c --- binutils-2.13.90.0.16/bfd/cofflink.c Mon Oct 7 23:07:59 2002 +++ binutils-2.13.90.0.18/bfd/cofflink.c Mon Dec 16 12:22:51 2002 @@ -28,25 +28,29 @@ Foundation, Inc., 59 Temple Place - Suit #include "coff/internal.h" #include "libcoff.h" -static boolean coff_link_add_object_symbols +static bfd_boolean coff_link_add_object_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean coff_link_check_archive_element - PARAMS ((bfd *, struct bfd_link_info *, boolean *)); -static boolean coff_link_check_ar_symbols - PARAMS ((bfd *, struct bfd_link_info *, boolean *)); -static boolean coff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static char *dores_com PARAMS ((char *, bfd *, int)); -static char *get_name PARAMS ((char *, char **)); +static bfd_boolean coff_link_check_archive_element + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean coff_link_check_ar_symbols + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean coff_link_add_symbols + PARAMS ((bfd *, struct bfd_link_info *)); +static char *dores_com + PARAMS ((char *, bfd *, int)); +static char *get_name + PARAMS ((char *, char **)); static int process_embedded_commands PARAMS ((bfd *, struct bfd_link_info *, bfd *)); -static void mark_relocs PARAMS ((struct coff_final_link_info *, bfd *)); +static void mark_relocs + PARAMS ((struct coff_final_link_info *, bfd *)); -/* Return true if SYM is a weak, external symbol. */ +/* Return TRUE if SYM is a weak, external symbol. */ #define IS_WEAK_EXTERNAL(abfd, sym) \ ((sym).n_sclass == C_WEAKEXT \ || (obj_pe (abfd) && (sym).n_sclass == C_NT_WEAK)) -/* Return true if SYM is an external symbol. */ +/* Return TRUE if SYM is an external symbol. */ #define IS_EXTERNAL(abfd, sym) \ ((sym).n_sclass == C_EXT || IS_WEAK_EXTERNAL (abfd, sym)) @@ -98,7 +102,7 @@ _bfd_coff_link_hash_newfunc (entry, tabl /* Initialize a COFF linker hash table. */ -boolean +bfd_boolean _bfd_coff_link_hash_table_init (table, abfd, newfunc) struct coff_link_hash_table *table; bfd *abfd; @@ -166,7 +170,7 @@ _bfd_coff_debug_merge_hash_newfunc (entr /* Given a COFF BFD, add symbols to the global hash table as appropriate. */ -boolean +bfd_boolean _bfd_coff_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -180,28 +184,28 @@ _bfd_coff_link_add_symbols (abfd, info) (abfd, info, coff_link_check_archive_element)); default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } } /* Add symbols from a COFF object file. */ -static boolean +static bfd_boolean coff_link_add_object_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { if (! _bfd_coff_get_external_symbols (abfd)) - return false; + return FALSE; if (! coff_link_add_symbols (abfd, info)) - return false; + return FALSE; if (! info->keep_memory) { if (! _bfd_coff_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Check a single archive element to see if we need to include it in @@ -209,47 +213,47 @@ coff_link_add_object_symbols (abfd, info needed in the link or not. This is called via _bfd_generic_link_add_archive_symbols. */ -static boolean +static bfd_boolean coff_link_check_archive_element (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { if (! _bfd_coff_get_external_symbols (abfd)) - return false; + return FALSE; if (! coff_link_check_ar_symbols (abfd, info, pneeded)) - return false; + return FALSE; if (*pneeded) { if (! coff_link_add_symbols (abfd, info)) - return false; + return FALSE; } if (! info->keep_memory || ! *pneeded) { if (! _bfd_coff_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Look through the symbols to see if this object file should be included in the link. */ -static boolean +static bfd_boolean coff_link_check_ar_symbols (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { bfd_size_type symesz; bfd_byte *esym; bfd_byte *esym_end; - *pneeded = false; + *pneeded = FALSE; symesz = bfd_coff_symesz (abfd); esym = (bfd_byte *) obj_coff_external_syms (abfd); @@ -274,8 +278,8 @@ coff_link_check_ar_symbols (abfd, info, name = _bfd_coff_internal_syment_name (abfd, &sym, buf); if (name == NULL) - return false; - h = bfd_link_hash_lookup (info->hash, name, false, false, true); + return FALSE; + h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); /* auto import */ if (!h && info->pei386_auto_import) @@ -283,8 +287,8 @@ coff_link_check_ar_symbols (abfd, info, if (!strncmp (name,"__imp_", 6)) { h = - bfd_link_hash_lookup (info->hash, name + 6, false, false, - true); + bfd_link_hash_lookup (info->hash, name + 6, FALSE, FALSE, + TRUE); } } /* We are only interested in symbols that are currently @@ -295,9 +299,9 @@ coff_link_check_ar_symbols (abfd, info, && h->type == bfd_link_hash_undefined) { if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } } @@ -305,12 +309,12 @@ coff_link_check_ar_symbols (abfd, info, } /* We do not need this object file. */ - return true; + return TRUE; } /* Add all the symbols from an object file to the hash table. */ -static boolean +static bfd_boolean coff_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -318,8 +322,8 @@ coff_link_add_symbols (abfd, info) unsigned int n_tmask = coff_data (abfd)->local_n_tmask; unsigned int n_btshft = coff_data (abfd)->local_n_btshft; unsigned int n_btmask = coff_data (abfd)->local_n_btmask; - boolean keep_syms; - boolean default_copy; + bfd_boolean keep_syms; + bfd_boolean default_copy; bfd_size_type symcount; struct coff_link_hash_entry **sym_hash; bfd_size_type symesz; @@ -330,12 +334,12 @@ coff_link_add_symbols (abfd, info) /* Keep the symbols during this function, in case the linker needs to read the generic symbols in order to report an error message. */ keep_syms = obj_coff_keep_syms (abfd); - obj_coff_keep_syms (abfd) = true; + obj_coff_keep_syms (abfd) = TRUE; if (info->keep_memory) - default_copy = false; + default_copy = FALSE; else - default_copy = true; + default_copy = TRUE; symcount = obj_raw_syment_count (abfd); @@ -355,7 +359,7 @@ coff_link_add_symbols (abfd, info) { struct internal_syment sym; enum coff_symbol_classification classification; - boolean copy; + bfd_boolean copy; bfd_coff_swap_sym_in (abfd, (PTR) esym, (PTR) &sym); @@ -367,7 +371,7 @@ coff_link_add_symbols (abfd, info) flagword flags; asection *section; bfd_vma value; - boolean addit; + bfd_boolean addit; /* This symbol is externally visible. */ @@ -380,7 +384,7 @@ coff_link_add_symbols (abfd, info) copy = default_copy; if (sym._n._n_n._n_zeroes != 0 || sym._n._n_n._n_offset == 0) - copy = true; + copy = TRUE; value = sym.n_value; @@ -415,7 +419,7 @@ coff_link_add_symbols (abfd, info) if (IS_WEAK_EXTERNAL (abfd, sym)) flags = BSF_WEAK; - addit = true; + addit = TRUE; /* In the PE format, section symbols actually refer to the start of the output section. We handle them specially @@ -423,7 +427,7 @@ coff_link_add_symbols (abfd, info) if (obj_pe (abfd) && (flags & BSF_SECTION_SYM) != 0) { *sym_hash = coff_link_hash_lookup (coff_hash_table (info), - name, false, copy, false); + name, FALSE, copy, FALSE); if (*sym_hash != NULL) { if (((*sym_hash)->coff_link_hash_flags @@ -434,7 +438,7 @@ coff_link_add_symbols (abfd, info) ("Warning: symbol `%s' is both section and non-section", name); - addit = false; + addit = FALSE; } } @@ -469,20 +473,20 @@ coff_link_add_symbols (abfd, info) { if (*sym_hash == NULL) *sym_hash = coff_link_hash_lookup (coff_hash_table (info), - name, false, copy, false); + name, FALSE, copy, FALSE); if (*sym_hash != NULL && (*sym_hash)->root.type == bfd_link_hash_defined && (*sym_hash)->root.u.def.section->comdat != NULL && strcmp ((*sym_hash)->root.u.def.section->comdat->name, section->comdat->name) == 0) - addit = false; + addit = FALSE; } if (addit) { if (! (bfd_coff_link_add_one_symbol (info, abfd, name, flags, section, value, - (const char *) NULL, copy, false, + (const char *) NULL, copy, FALSE, (struct bfd_link_hash_entry **) sym_hash))) goto error_return; } @@ -634,24 +638,24 @@ coff_link_add_symbols (abfd, info) obj_coff_keep_syms (abfd) = keep_syms; - return true; + return TRUE; error_return: obj_coff_keep_syms (abfd) = keep_syms; - return false; + return FALSE; } /* Do the final link step. */ -boolean +bfd_boolean _bfd_coff_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; { bfd_size_type symesz; struct coff_final_link_info finfo; - boolean debug_merge_allocated; - boolean long_section_names; + bfd_boolean debug_merge_allocated; + bfd_boolean long_section_names; asection *o; struct bfd_link_order *p; bfd_size_type max_sym_count; @@ -684,8 +688,8 @@ _bfd_coff_final_link (abfd, info) finfo.contents = NULL; finfo.external_relocs = NULL; finfo.internal_relocs = NULL; - finfo.global_to_static = false; - debug_merge_allocated = false; + finfo.global_to_static = FALSE; + debug_merge_allocated = FALSE; coff_data (abfd)->link_info = info; @@ -695,7 +699,7 @@ _bfd_coff_final_link (abfd, info) if (! coff_debug_merge_hash_table_init (&finfo.debug_merge)) goto error_return; - debug_merge_allocated = true; + debug_merge_allocated = TRUE; /* Compute the file positions for all the sections. */ if (! abfd->output_has_begun) @@ -712,7 +716,7 @@ _bfd_coff_final_link (abfd, info) max_lineno_count = 0; max_reloc_count = 0; - long_section_names = false; + long_section_names = FALSE; for (o = abfd->sections; o != NULL; o = o->next) { o->reloc_count = 0; @@ -729,7 +733,7 @@ _bfd_coff_final_link (abfd, info) link. This will normally be every section. We need to do this so that we can identify any sections which the linker has decided to not include. */ - sec->linker_mark = true; + sec->linker_mark = TRUE; if (info->strip == strip_none || info->strip == strip_some) @@ -770,11 +774,11 @@ _bfd_coff_final_link (abfd, info) table. This must correspond to the code in coff_write_object_contents which puts the string index into the s_name field of the section header. That is why - we pass hash as false. */ - if (_bfd_stringtab_add (finfo.strtab, o->name, false, false) + we pass hash as FALSE. */ + if (_bfd_stringtab_add (finfo.strtab, o->name, FALSE, FALSE) == (bfd_size_type) -1) goto error_return; - long_section_names = true; + long_section_names = TRUE; } } @@ -861,7 +865,7 @@ _bfd_coff_final_link (abfd, info) { size_t sz; - sub->output_has_begun = false; + sub->output_has_begun = FALSE; sz = obj_raw_syment_count (sub); if (sz > max_sym_count) max_sym_count = sz; @@ -922,7 +926,7 @@ _bfd_coff_final_link (abfd, info) { if (! _bfd_coff_link_input_bfd (&finfo, sub)) goto error_return; - sub->output_has_begun = true; + sub->output_has_begun = TRUE; } } else if (p->type == bfd_section_reloc_link_order @@ -945,7 +949,7 @@ _bfd_coff_final_link (abfd, info) /* Free up the buffers used by _bfd_coff_link_input_bfd. */ coff_debug_merge_hash_table_free (&finfo.debug_merge); - debug_merge_allocated = false; + debug_merge_allocated = FALSE; if (finfo.internal_syms != NULL) { @@ -998,7 +1002,7 @@ _bfd_coff_final_link (abfd, info) pos = obj_sym_filepos (abfd) + finfo.last_file_index * symesz; if (bfd_seek (abfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo.outsyms, symesz, abfd) != symesz) - return false; + return FALSE; } /* If doing task linking (ld --task-link) then make a pass through the @@ -1006,7 +1010,7 @@ _bfd_coff_final_link (abfd, info) static. */ if (info->task_link) { - finfo.failed = false; + finfo.failed = FALSE; coff_link_hash_traverse (coff_hash_table (info), _bfd_coff_write_task_globals, (PTR) &finfo); @@ -1015,7 +1019,7 @@ _bfd_coff_final_link (abfd, info) } /* Write out the global symbols. */ - finfo.failed = false; + finfo.failed = FALSE; coff_link_hash_traverse (coff_hash_table (info), _bfd_coff_write_global_sym, (PTR) &finfo); @@ -1094,7 +1098,7 @@ _bfd_coff_final_link (abfd, info) if (coff_hash_table (info)->stab_info != NULL) { if (! _bfd_write_stab_strings (abfd, &coff_hash_table (info)->stab_info)) - return false; + return FALSE; } /* Write out the string table. */ @@ -1104,7 +1108,7 @@ _bfd_coff_final_link (abfd, info) pos = obj_sym_filepos (abfd) + obj_raw_syment_count (abfd) * symesz; if (bfd_seek (abfd, pos, SEEK_SET) != 0) - return false; + return FALSE; #if STRING_SIZE_SIZE == 4 H_PUT_32 (abfd, @@ -1116,12 +1120,12 @@ _bfd_coff_final_link (abfd, info) if (bfd_bwrite (strbuf, (bfd_size_type) STRING_SIZE_SIZE, abfd) != STRING_SIZE_SIZE) - return false; + return FALSE; if (! _bfd_stringtab_emit (abfd, finfo.strtab)) - return false; + return FALSE; - obj_coff_strings_written (abfd) = true; + obj_coff_strings_written (abfd) = TRUE; } _bfd_stringtab_free (finfo.strtab); @@ -1130,7 +1134,7 @@ _bfd_coff_final_link (abfd, info) not try to write out the symbols. */ bfd_get_symcount (abfd) = 0; - return true; + return TRUE; error_return: if (debug_merge_allocated) @@ -1168,7 +1172,7 @@ _bfd_coff_final_link (abfd, info) free (finfo.internal_relocs); if (external_relocs != NULL) free (external_relocs); - return false; + return FALSE; } /* parse out a -heap , line */ @@ -1328,7 +1332,7 @@ mark_relocs (finfo, input_bfd) /* Read in the relocs. */ internal_relocs = _bfd_coff_read_internal_relocs - (input_bfd, a, false, + (input_bfd, a, FALSE, finfo->external_relocs, finfo->info->relocateable, (finfo->info->relocateable @@ -1357,7 +1361,7 @@ mark_relocs (finfo, input_bfd) /* Link an input file into the linker output file. This function handles all the sections and relocations of the input file at once. */ -boolean +bfd_boolean _bfd_coff_link_input_bfd (finfo, input_bfd) struct coff_final_link_info *finfo; bfd *input_bfd; @@ -1367,13 +1371,13 @@ _bfd_coff_link_input_bfd (finfo, input_b #if 0 unsigned int n_btmask = coff_data (input_bfd)->local_n_btmask; #endif - boolean (*adjust_symndx) PARAMS ((bfd *, struct bfd_link_info *, bfd *, - asection *, struct internal_reloc *, - boolean *)); + bfd_boolean (*adjust_symndx) + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, + struct internal_reloc *, bfd_boolean *)); bfd *output_bfd; const char *strings; bfd_size_type syment_base; - boolean copy, hash; + bfd_boolean copy, hash; bfd_size_type isymesz; bfd_size_type osymesz; bfd_size_type linesz; @@ -1397,15 +1401,15 @@ _bfd_coff_link_input_bfd (finfo, input_b linesz = bfd_coff_linesz (input_bfd); BFD_ASSERT (linesz == bfd_coff_linesz (output_bfd)); - copy = false; + copy = FALSE; if (! finfo->info->keep_memory) - copy = true; - hash = true; + copy = TRUE; + hash = TRUE; if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0) - hash = false; + hash = FALSE; if (! _bfd_coff_get_external_symbols (input_bfd)) - return false; + return FALSE; esym = (bfd_byte *) obj_coff_external_syms (input_bfd); esym_end = esym + obj_raw_syment_count (input_bfd) * isymesz; @@ -1418,7 +1422,7 @@ _bfd_coff_link_input_bfd (finfo, input_b if (coff_data (output_bfd)->pe) { if (! process_embedded_commands (output_bfd, finfo->info, input_bfd)) - return false; + return FALSE; } /* If we are going to perform relocations and also strip/discard some symbols @@ -1438,9 +1442,9 @@ _bfd_coff_link_input_bfd (finfo, input_b { struct internal_syment isym; enum coff_symbol_classification classification; - boolean skip; - boolean global; - boolean dont_skip_symbol; + bfd_boolean skip; + bfd_boolean global; + bfd_boolean dont_skip_symbol; int add; bfd_coff_swap_sym_in (input_bfd, (PTR) esym, (PTR) isymp); @@ -1476,17 +1480,17 @@ _bfd_coff_link_input_bfd (finfo, input_b && finfo->info->relocateable) dont_skip_symbol = *indexp; else - dont_skip_symbol = false; + dont_skip_symbol = FALSE; *indexp = -1; - skip = false; - global = false; + skip = FALSE; + global = FALSE; add = 1 + isym.n_numaux; /* If we are stripping all symbols, we want to skip this one. */ if (finfo->info->strip == strip_all && ! dont_skip_symbol) - skip = true; + skip = TRUE; if (! skip) { @@ -1501,22 +1505,22 @@ _bfd_coff_link_input_bfd (finfo, input_b end of the symbol table, so skip them for now. Locally defined function symbols, however, are an exception, and are not moved to the end. */ - global = true; + global = TRUE; if (! ISFCN (isym.n_type)) - skip = true; + skip = TRUE; break; case COFF_SYMBOL_UNDEFINED: /* Undefined symbols are left for the end. */ - global = true; - skip = true; + global = TRUE; + skip = TRUE; break; case COFF_SYMBOL_LOCAL: /* This is a local symbol. Skip it if we are discarding local symbols. */ if (finfo->info->discard == discard_all && ! dont_skip_symbol) - skip = true; + skip = TRUE; break; } } @@ -1530,7 +1534,7 @@ _bfd_coff_link_input_bfd (finfo, input_b && isym.n_numaux > 0) { if ((*secpp)->output_section == bfd_abs_section_ptr) - skip = true; + skip = TRUE; } #endif @@ -1552,7 +1556,7 @@ _bfd_coff_link_input_bfd (finfo, input_b || isym.n_sclass == C_REGPARM || isym.n_sclass == C_FIELD || isym.n_sclass == C_EOS)))) - skip = true; + skip = TRUE; /* If some symbols are stripped based on the name, work out the name and decide whether to skip this symbol. */ @@ -1565,16 +1569,16 @@ _bfd_coff_link_input_bfd (finfo, input_b name = _bfd_coff_internal_syment_name (input_bfd, &isym, buf); if (name == NULL) - return false; + return FALSE; if (! dont_skip_symbol && ((finfo->info->strip == strip_some - && (bfd_hash_lookup (finfo->info->keep_hash, name, false, - false) == NULL)) + && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, + FALSE) == NULL)) || (! global && finfo->info->discard == discard_l && bfd_is_local_label_name (input_bfd, name)))) - skip = true; + skip = TRUE; } /* If this is an enum, struct, or union tag, see if we have @@ -1598,7 +1602,7 @@ _bfd_coff_link_input_bfd (finfo, input_b name = _bfd_coff_internal_syment_name (input_bfd, &isym, buf); if (name == NULL) - return false; + return FALSE; /* Ignore fake names invented by compiler; treat them all as the same name. */ @@ -1608,9 +1612,9 @@ _bfd_coff_link_input_bfd (finfo, input_b name = ""; mh = coff_debug_merge_hash_lookup (&finfo->debug_merge, name, - true, true); + TRUE, TRUE); if (mh == NULL) - return false; + return FALSE; /* Allocate memory to hold type information. If this turns out to be a duplicate, we pass this address to @@ -1618,7 +1622,7 @@ _bfd_coff_link_input_bfd (finfo, input_b amt = sizeof (struct coff_debug_merge_type); mt = (struct coff_debug_merge_type *) bfd_alloc (input_bfd, amt); if (mt == NULL) - return false; + return FALSE; mt->class = isym.n_sclass; /* Pick up the aux entry, which points to the end of the tag @@ -1646,17 +1650,17 @@ _bfd_coff_link_input_bfd (finfo, input_b *epp = ((struct coff_debug_merge_element *) bfd_alloc (input_bfd, amt)); if (*epp == NULL) - return false; + return FALSE; elename = _bfd_coff_internal_syment_name (input_bfd, islp, elebuf); if (elename == NULL) - return false; + return FALSE; amt = strlen (elename) + 1; name_copy = (char *) bfd_alloc (input_bfd, amt); if (name_copy == NULL) - return false; + return FALSE; strcpy (name_copy, elename); (*epp)->name = name_copy; @@ -1740,7 +1744,7 @@ _bfd_coff_link_input_bfd (finfo, input_b bfd_release (input_bfd, (PTR) mt); *indexp = mtl->indx; add = (eslend - esym) / isymesz; - skip = true; + skip = TRUE; } } } @@ -1764,10 +1768,10 @@ _bfd_coff_link_input_bfd (finfo, input_b name = _bfd_coff_internal_syment_name (input_bfd, &isym, (char *) NULL); if (name == NULL) - return false; + return FALSE; indx = _bfd_stringtab_add (finfo->strtab, name, hash, copy); if (indx == (bfd_size_type) -1) - return false; + return FALSE; isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx; } @@ -1866,7 +1870,7 @@ _bfd_coff_link_input_bfd (finfo, input_b pos += finfo->last_file_index * osymesz; if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite (outsym, osymesz, output_bfd) != osymesz) - return false; + return FALSE; } } @@ -1899,7 +1903,7 @@ _bfd_coff_link_input_bfd (finfo, input_b /* This can happen if there were errors earlier in the link. */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } h->indx = output_index; } @@ -1995,13 +1999,13 @@ _bfd_coff_link_input_bfd (finfo, input_b { strings = _bfd_coff_read_string_table (input_bfd); if (strings == NULL) - return false; + return FALSE; } filename = strings + auxp->x_file.x_n.x_offset; indx = _bfd_stringtab_add (finfo->strtab, filename, hash, copy); if (indx == (bfd_size_type) -1) - return false; + return FALSE; auxp->x_file.x_n.x_offset = STRING_SIZE_SIZE + indx; } } @@ -2105,7 +2109,7 @@ _bfd_coff_link_input_bfd (finfo, input_b if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || (bfd_bwrite (outsym, osymesz, output_bfd) != osymesz)) - return false; + return FALSE; } } @@ -2151,7 +2155,7 @@ _bfd_coff_link_input_bfd (finfo, input_b bfd_byte *eline; bfd_byte *elineend; bfd_byte *oeline; - boolean skipping; + bfd_boolean skipping; file_ptr pos; bfd_size_type amt; @@ -2171,13 +2175,13 @@ _bfd_coff_link_input_bfd (finfo, input_b if (bfd_seek (input_bfd, o->line_filepos, SEEK_SET) != 0 || bfd_bread (finfo->linenos, linesz * o->lineno_count, input_bfd) != linesz * o->lineno_count) - return false; + return FALSE; offset = o->output_section->vma + o->output_offset - o->vma; eline = finfo->linenos; oeline = finfo->linenos; elineend = eline + linesz * o->lineno_count; - skipping = false; + skipping = FALSE; for (; eline < elineend; eline += linesz) { struct internal_lineno iline; @@ -2203,7 +2207,7 @@ _bfd_coff_link_input_bfd (finfo, input_b with symbol #0) will fail. We can't regain the space in the output file, but at least they're dense. */ - skipping = true; + skipping = TRUE; } else { @@ -2243,7 +2247,7 @@ _bfd_coff_link_input_bfd (finfo, input_b is.n_numaux, auxptr); } - skipping = false; + skipping = FALSE; } iline.l_addr.l_symndx = indx; @@ -2262,7 +2266,7 @@ _bfd_coff_link_input_bfd (finfo, input_b amt = oeline - finfo->linenos; if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo->linenos, amt, output_bfd) != amt) - return false; + return FALSE; o->output_section->lineno_count += amt / linesz; } @@ -2292,7 +2296,7 @@ _bfd_coff_link_input_bfd (finfo, input_b amt = outsym - finfo->outsyms; if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt) - return false; + return FALSE; BFD_ASSERT ((obj_raw_syment_count (output_bfd) + (outsym - finfo->outsyms) / osymesz) @@ -2325,7 +2329,7 @@ _bfd_coff_link_input_bfd (finfo, input_b bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, o))); bfd_set_error (bfd_error_no_contents); - return false; + return FALSE; } continue; @@ -2338,7 +2342,7 @@ _bfd_coff_link_input_bfd (finfo, input_b { if (! bfd_get_section_contents (input_bfd, o, finfo->contents, (file_ptr) 0, o->_raw_size)) - return false; + return FALSE; contents = finfo->contents; } @@ -2351,14 +2355,14 @@ _bfd_coff_link_input_bfd (finfo, input_b /* Read in the relocs. */ target_index = o->output_section->target_index; internal_relocs = (_bfd_coff_read_internal_relocs - (input_bfd, o, false, finfo->external_relocs, + (input_bfd, o, FALSE, finfo->external_relocs, finfo->info->relocateable, (finfo->info->relocateable ? (finfo->section_info[target_index].relocs + o->output_section->reloc_count) : finfo->internal_relocs))); if (internal_relocs == NULL) - return false; + return FALSE; /* Call processor specific code to relocate the section contents. */ @@ -2368,7 +2372,7 @@ _bfd_coff_link_input_bfd (finfo, input_b internal_relocs, finfo->internal_syms, finfo->sec_ptrs)) - return false; + return FALSE; if (finfo->info->relocateable) { @@ -2384,7 +2388,7 @@ _bfd_coff_link_input_bfd (finfo, input_b for (; irel < irelend; irel++, rel_hash++) { struct coff_link_hash_entry *h; - boolean adjusted; + bfd_boolean adjusted; *rel_hash = NULL; @@ -2400,7 +2404,7 @@ _bfd_coff_link_input_bfd (finfo, input_b if (! (*adjust_symndx) (output_bfd, finfo->info, input_bfd, o, irel, &adjusted)) - return false; + return FALSE; if (adjusted) continue; } @@ -2446,12 +2450,12 @@ _bfd_coff_link_input_bfd (finfo, input_b name = (_bfd_coff_internal_syment_name (input_bfd, is, buf)); if (name == NULL) - return false; + return FALSE; if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, name, input_bfd, o, irel->r_vaddr))) - return false; + return FALSE; } } } @@ -2468,29 +2472,29 @@ _bfd_coff_link_input_bfd (finfo, input_b ? o->_cooked_size : o->_raw_size); if (! bfd_set_section_contents (output_bfd, o->output_section, contents, loc, amt)) - return false; + return FALSE; } else { if (! (_bfd_write_section_stabs (output_bfd, &coff_hash_table (finfo->info)->stab_info, o, &secdata->stab_info, contents))) - return false; + return FALSE; } } if (! finfo->info->keep_memory) { if (! _bfd_coff_free_symbols (input_bfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Write out a global symbol. Called via coff_link_hash_traverse. */ -boolean +bfd_boolean _bfd_coff_write_global_sym (h, data) struct coff_link_hash_entry *h; PTR data; @@ -2508,19 +2512,19 @@ _bfd_coff_write_global_sym (h, data) { h = (struct coff_link_hash_entry *) h->root.u.i.link; if (h->root.type == bfd_link_hash_new) - return true; + return TRUE; } if (h->indx >= 0) - return true; + return TRUE; if (h->indx != -2 && (finfo->info->strip == strip_all || (finfo->info->strip == strip_some && (bfd_hash_lookup (finfo->info->keep_hash, - h->root.root.string, false, false) + h->root.root.string, FALSE, FALSE) == NULL)))) - return true; + return TRUE; switch (h->root.type) { @@ -2528,7 +2532,7 @@ _bfd_coff_write_global_sym (h, data) case bfd_link_hash_new: case bfd_link_hash_warning: abort (); - return false; + return FALSE; case bfd_link_hash_undefined: case bfd_link_hash_undefweak: @@ -2560,25 +2564,25 @@ _bfd_coff_write_global_sym (h, data) case bfd_link_hash_indirect: /* Just ignore these. They can't be handled anyhow. */ - return true; + return TRUE; } if (strlen (h->root.root.string) <= SYMNMLEN) strncpy (isym._n._n_name, h->root.root.string, SYMNMLEN); else { - boolean hash; + bfd_boolean hash; bfd_size_type indx; - hash = true; + hash = TRUE; if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0) - hash = false; + hash = FALSE; indx = _bfd_stringtab_add (finfo->strtab, h->root.root.string, hash, - false); + FALSE); if (indx == (bfd_size_type) -1) { - finfo->failed = true; - return false; + finfo->failed = TRUE; + return FALSE; } isym._n._n_n._n_zeroes = 0; isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx; @@ -2597,7 +2601,7 @@ _bfd_coff_write_global_sym (h, data) if (finfo->global_to_static) { if (! IS_EXTERNAL (output_bfd, isym)) - return true; + return TRUE; isym.n_sclass = C_STAT; } @@ -2621,8 +2625,8 @@ _bfd_coff_write_global_sym (h, data) if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo->outsyms, symesz, output_bfd) != symesz) { - finfo->failed = true; - return false; + finfo->failed = TRUE; + return FALSE; } h->indx = obj_raw_syment_count (output_bfd); @@ -2691,27 +2695,27 @@ _bfd_coff_write_global_sym (h, data) (PTR) finfo->outsyms); if (bfd_bwrite (finfo->outsyms, symesz, output_bfd) != symesz) { - finfo->failed = true; - return false; + finfo->failed = TRUE; + return FALSE; } ++obj_raw_syment_count (output_bfd); } - return true; + return TRUE; } /* Write out task global symbols, converting them to statics. Called via coff_link_hash_traverse. Calls bfd_coff_write_global_sym to do the dirty work, if the symbol we are processing needs conversion. */ -boolean +bfd_boolean _bfd_coff_write_task_globals (h, data) struct coff_link_hash_entry *h; PTR data; { struct coff_final_link_info *finfo = (struct coff_final_link_info *) data; - boolean rtnval = true; - boolean save_global_to_static; + bfd_boolean rtnval = TRUE; + bfd_boolean save_global_to_static; if (h->root.type == bfd_link_hash_warning) h = (struct coff_link_hash_entry *) h->root.u.i.link; @@ -2723,7 +2727,7 @@ _bfd_coff_write_task_globals (h, data) case bfd_link_hash_defined: case bfd_link_hash_defweak: save_global_to_static = finfo->global_to_static; - finfo->global_to_static = true; + finfo->global_to_static = TRUE; rtnval = _bfd_coff_write_global_sym (h, data); finfo->global_to_static = save_global_to_static; break; @@ -2736,7 +2740,7 @@ _bfd_coff_write_task_globals (h, data) /* Handle a link order which is supposed to generate a reloc. */ -boolean +bfd_boolean _bfd_coff_reloc_link_order (output_bfd, finfo, output_section, link_order) bfd *output_bfd; struct coff_final_link_info *finfo; @@ -2751,7 +2755,7 @@ _bfd_coff_reloc_link_order (output_bfd, if (howto == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (link_order->u.reloc.p->addend != 0) @@ -2759,13 +2763,13 @@ _bfd_coff_reloc_link_order (output_bfd, bfd_size_type size; bfd_byte *buf; bfd_reloc_status_type rstat; - boolean ok; + bfd_boolean ok; file_ptr loc; size = bfd_get_reloc_size (howto); buf = (bfd_byte *) bfd_zmalloc (size); if (buf == NULL) - return false; + return FALSE; rstat = _bfd_relocate_contents (howto, output_bfd, (bfd_vma) link_order->u.reloc.p->addend,\ @@ -2788,7 +2792,7 @@ _bfd_coff_reloc_link_order (output_bfd, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) { free (buf); - return false; + return FALSE; } break; } @@ -2797,7 +2801,7 @@ _bfd_coff_reloc_link_order (output_bfd, loc, size); free (buf); if (! ok) - return false; + return FALSE; } /* Store the reloc information in the right place. It will get @@ -2830,7 +2834,7 @@ _bfd_coff_reloc_link_order (output_bfd, h = ((struct coff_link_hash_entry *) bfd_wrapped_link_hash_lookup (output_bfd, finfo->info, link_order->u.reloc.p->u.name, - false, false, true)); + FALSE, FALSE, TRUE)); if (h != NULL) { if (h->indx >= 0) @@ -2849,7 +2853,7 @@ _bfd_coff_reloc_link_order (output_bfd, if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, link_order->u.reloc.p->u.name, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) - return false; + return FALSE; irel->r_symndx = 0; } } @@ -2864,13 +2868,13 @@ _bfd_coff_reloc_link_order (output_bfd, ++output_section->reloc_count; - return true; + return TRUE; } /* A basic reloc handling routine which may be used by processors with simple relocs. */ -boolean +bfd_boolean _bfd_coff_generic_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) @@ -2911,7 +2915,7 @@ _bfd_coff_generic_relocate_section (outp (*_bfd_error_handler) ("%s: illegal symbol index %ld in relocs", bfd_archive_filename (input_bfd), symndx); - return false; + return FALSE; } else { @@ -2932,7 +2936,7 @@ _bfd_coff_generic_relocate_section (outp howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h, sym, &addend); if (howto == NULL) - return false; + return FALSE; /* If we are doing a relocateable link, then we can just ignore a PC relative reloc that is pcrel_offset. It will already @@ -2987,8 +2991,8 @@ _bfd_coff_generic_relocate_section (outp { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -3013,7 +3017,7 @@ _bfd_coff_generic_relocate_section (outp != sizeof (long)) { bfd_set_error (bfd_error_system_call); - return false; + return FALSE; } } } @@ -3035,7 +3039,7 @@ _bfd_coff_generic_relocate_section (outp bfd_archive_filename (input_bfd), (unsigned long) rel->r_vaddr, bfd_get_section_name (input_bfd, input_section)); - return false; + return FALSE; case bfd_reloc_overflow: { const char *name; @@ -3049,15 +3053,15 @@ _bfd_coff_generic_relocate_section (outp { name = _bfd_coff_internal_syment_name (input_bfd, sym, buf); if (name == NULL) - return false; + return FALSE; } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_vaddr - input_section->vma))) - return false; + return FALSE; } } } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/config.bfd binutils-2.13.90.0.18/bfd/config.bfd --- binutils-2.13.90.0.16/bfd/config.bfd Thu Nov 14 09:37:55 2002 +++ binutils-2.13.90.0.18/bfd/config.bfd Tue Jan 21 10:21:32 2003 @@ -374,6 +374,9 @@ case "${targ}" in targ_defvec=bfd_elf32_i386_vec targ_selvecs=i386coff_vec ;; + i[3456]86-*-aros*) + targ_defvec=bfd_elf32_i386_vec + ;; i[3456]86-*-chorus*) targ_defvec=bfd_elf32_i386_vec ;; @@ -553,6 +556,10 @@ case "${targ}" in targ_defvec=bfd_elf32_ip2k_vec ;; + iq2000-*-elf) + targ_defvec=bfd_elf32_iq2000_vec + ;; + m32r-*-*) targ_defvec=bfd_elf32_m32r_vec ;; @@ -807,6 +814,10 @@ case "${targ}" in targ_defvec=bfd_elf32_mn10300_vec ;; + msp430-*-*) + targ_defvec=bfd_elf32_msp430_vec + ;; + ns32k-pc532-mach* | ns32k-pc532-ux*) targ_defvec=pc532machaout_vec targ_underscore=yes diff -uprN binutils-2.13.90.0.16/bfd/config.in binutils-2.13.90.0.18/bfd/config.in --- binutils-2.13.90.0.16/bfd/config.in Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/bfd/config.in Tue Jan 21 10:21:32 2003 @@ -25,6 +25,9 @@ /* Define to `long' if doesn't define. */ #undef off_t +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE + /* Define to `unsigned' if doesn't define. */ #undef size_t diff -uprN binutils-2.13.90.0.16/bfd/configure binutils-2.13.90.0.18/bfd/configure --- binutils-2.13.90.0.16/bfd/configure Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/configure Tue Jan 21 10:21:32 2003 @@ -723,49 +723,249 @@ test "$host_alias" != "$target_alias" && NONENONEs,x,x, && program_prefix=${target_alias}- +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:730: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi - echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 -echo "configure:729: checking for strerror in -lcposix" >&5 -ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:760: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - ac_save_LIBS="$LIBS" -LIBS="-lcposix $LIBS" -cat > conftest.$ac_ext <&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:811: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:843: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 854 "configure" #include "confdefs.h" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror(); -int main() { -strerror() -; return 0; } +main(){return(0);} EOF -if { (eval echo configure:748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" +if { (eval echo configure:859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:885: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:890: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:918: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no fi rm -f conftest* -LIBS="$ac_save_LIBS" fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 +echo "configure:950: checking for POSIXized ISC" >&5 +if test -d /etc/conf/kconfig.d && + grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 +then echo "$ac_t""yes" 1>&6 - LIBS="$LIBS -lcposix" + ISC=yes # If later tests want to check for ISC. + cat >> confdefs.h <<\EOF +#define _POSIX_SOURCE 1 +EOF + + if test "$GCC" = yes; then + CC="$CC -posix" + else + CC="$CC -Xp" + fi else echo "$ac_t""no" 1>&6 + ISC= fi - - # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -779,7 +979,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:783: checking for a BSD compatible install" >&5 +echo "configure:983: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -832,7 +1032,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:836: checking whether build environment is sane" >&5 +echo "configure:1036: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -889,7 +1089,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:893: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:1093: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -918,7 +1118,7 @@ fi PACKAGE=bfd -VERSION=2.13.90.0.16 +VERSION=2.13.90.0.18 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } @@ -935,7 +1135,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:939: checking for working aclocal" >&5 +echo "configure:1139: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -948,7 +1148,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:952: checking for working autoconf" >&5 +echo "configure:1152: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -961,7 +1161,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:965: checking for working automake" >&5 +echo "configure:1165: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -974,7 +1174,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:978: checking for working autoheader" >&5 +echo "configure:1178: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -987,7 +1187,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:991: checking for working makeinfo" >&5 +echo "configure:1191: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1022,7 +1222,7 @@ fi # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1026: checking for $ac_word" >&5 +echo "configure:1226: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1054,7 +1254,7 @@ fi # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1058: checking for $ac_word" >&5 +echo "configure:1258: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1086,7 +1286,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1090: checking for $ac_word" >&5 +echo "configure:1290: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1189,228 +1389,6 @@ else enable_fast_install=yes fi -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1196: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1226: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - if test -z "$CC"; then - case "`uname -s`" in - *win32* | *WIN32*) - # Extract the first word of "cl", so it can be a program name with args. -set dummy cl; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1277: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="cl" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - ;; - esac - fi - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1309: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -cat > conftest.$ac_ext << EOF - -#line 1320 "configure" -#include "confdefs.h" - -main(){return(0);} -EOF -if { (eval echo configure:1325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - ac_cv_prog_cc_works=yes - # If we can't run a trivial program, we are probably using a cross compiler. - if (./conftest; exit) 2>/dev/null; then - ac_cv_prog_cc_cross=no - else - ac_cv_prog_cc_cross=yes - fi -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_prog_cc_works=no -fi -rm -fr conftest* -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -if test $ac_cv_prog_cc_works = no; then - { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } -fi -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1351: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 -echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 -cross_compiling=$ac_cv_prog_cc_cross - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1356: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -else - GCC= -fi - -ac_test_CFLAGS="${CFLAGS+set}" -ac_save_CFLAGS="$CFLAGS" -CFLAGS= -echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1384: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no -fi -rm -f conftest* - -fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi - # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" @@ -1423,7 +1401,7 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1427: checking for ld used by GCC" >&5 +echo "configure:1405: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -1453,10 +1431,10 @@ echo "configure:1427: checking for ld us esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1457: checking for GNU ld" >&5 +echo "configure:1435: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1460: checking for non-GNU ld" >&5 +echo "configure:1438: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1491,7 +1469,7 @@ else fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1495: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1473: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1508,7 +1486,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 -echo "configure:1512: checking for $LD option to reload object files" >&5 +echo "configure:1490: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1520,7 +1498,7 @@ reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1524: checking for BSD-compatible nm" >&5 +echo "configure:1502: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1558,7 +1536,7 @@ NM="$lt_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1562: checking whether ln -s works" >&5 +echo "configure:1540: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1579,7 +1557,7 @@ else fi echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:1583: checking how to recognise dependant libraries" >&5 +echo "configure:1561: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1746,13 +1724,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:1750: checking for object suffix" >&5 +echo "configure:1728: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:1756: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1734: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -1772,7 +1750,7 @@ ac_objext=$ac_cv_objext echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1776: checking for executable suffix" >&5 +echo "configure:1754: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1782,7 +1760,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -1809,7 +1787,7 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 -echo "configure:1813: checking for ${ac_tool_prefix}file" >&5 +echo "configure:1791: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1871,7 +1849,7 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 -echo "configure:1875: checking for file" >&5 +echo "configure:1853: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1942,7 +1920,7 @@ esac # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1946: checking for $ac_word" >&5 +echo "configure:1924: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1974,7 +1952,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1978: checking for $ac_word" >&5 +echo "configure:1956: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2009,7 +1987,7 @@ fi # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2013: checking for $ac_word" >&5 +echo "configure:1991: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2041,7 +2019,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2045: checking for $ac_word" >&5 +echo "configure:2023: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2108,8 +2086,8 @@ test x"$pic_mode" = xno && libtool_flags case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 2112 "configure"' > conftest.$ac_ext - if { (eval echo configure:2113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 2090 "configure"' > conftest.$ac_ext + if { (eval echo configure:2091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -2128,7 +2106,7 @@ case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo configure:2132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:2110: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *ELF-32*) HPUX_IA64_MODE="32" @@ -2146,7 +2124,7 @@ ia64-*-hpux*) SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:2150: checking whether the C compiler needs -belf" >&5 +echo "configure:2128: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2159,14 +2137,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else @@ -2342,7 +2320,7 @@ if test x"$silent" != x"yes" && test x"$ fi fi WARN_CFLAGS="" -if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then +if test "x${build_warnings}" != x && test "x$GCC" = xyes ; then WARN_CFLAGS="${build_warnings}" fi @@ -2356,7 +2334,7 @@ if test -z "$target" ; then fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:2360: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:2338: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -2379,13 +2357,13 @@ fi echo $ac_n "checking whether to install libbfd""... $ac_c" 1>&6 -echo "configure:2383: checking whether to install libbfd" >&5 +echo "configure:2361: checking whether to install libbfd" >&5 # Check whether --enable-install-libbfd or --disable-install-libbfd was given. if test "${enable_install_libbfd+set}" = set; then enableval="$enable_install_libbfd" install_libbfd_p=$enableval else - if test "${host}" = "${target}" -o "$enable_shared" = "yes"; then + if test "${host}" = "${target}" || test "$enable_shared" = "yes"; then install_libbfd_p=yes else install_libbfd_p=no @@ -2416,7 +2394,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:2420: checking for executable suffix" >&5 +echo "configure:2398: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2426,7 +2404,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:2430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:2408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -2456,7 +2434,7 @@ bfd_default_target_size=32 # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2460: checking for $ac_word" >&5 +echo "configure:2438: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2486,7 +2464,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2490: checking for $ac_word" >&5 +echo "configure:2468: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2537,7 +2515,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2541: checking for $ac_word" >&5 +echo "configure:2519: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2569,7 +2547,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2573: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2551: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2580,12 +2558,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 2584 "configure" +#line 2562 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2611,12 +2589,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2615: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2593: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2620: checking whether we are using GNU C" >&5 +echo "configure:2598: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2625,7 +2603,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2629: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2607: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2644,7 +2622,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2648: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2626: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2678,7 +2656,7 @@ fi ALL_LINGUAS="fr tr ja es sv da" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2682: checking how to run the C preprocessor" >&5 +echo "configure:2660: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2693,13 +2671,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2703: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2681: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2710,13 +2688,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2727,13 +2705,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2737: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2760,7 +2738,7 @@ echo "$ac_t""$CPP" 1>&6 # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2764: checking for $ac_word" >&5 +echo "configure:2742: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2788,12 +2766,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2792: checking for ANSI C header files" >&5 +echo "configure:2770: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2801,7 +2779,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2805: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2783: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2818,7 +2796,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2836,7 +2814,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2857,7 +2835,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2868,7 +2846,7 @@ if (XOR (islower (i), ISLOWER (i)) || to exit (0); } EOF -if { (eval echo configure:2872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -2892,12 +2870,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2896: checking for working const" >&5 +echo "configure:2874: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2928: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2967,21 +2945,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2971: checking for inline" >&5 +echo "configure:2949: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2963: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3007,12 +2985,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3011: checking for off_t" >&5 +echo "configure:2989: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3040,12 +3018,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3044: checking for size_t" >&5 +echo "configure:3022: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3075,19 +3053,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:3079: checking for working alloca.h" >&5 +echo "configure:3057: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:3091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -3108,12 +3086,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:3112: checking for alloca" >&5 +echo "configure:3090: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -3173,12 +3151,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:3177: checking whether alloca needs Cray hooks" >&5 +echo "configure:3155: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3207: checking for $ac_func" >&5 +echo "configure:3185: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3258,7 +3236,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:3262: checking stack direction for C alloca" >&5 +echo "configure:3240: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3266,7 +3244,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3267: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -3310,17 +3288,17 @@ for ac_hdr in stdlib.h unistd.h sys/stat do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3314: checking for $ac_hdr" >&5 +echo "configure:3292: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3349,12 +3327,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3353: checking for $ac_func" >&5 +echo "configure:3331: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3402,7 +3380,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3406: checking for working mmap" >&5 +echo "configure:3384: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3410,7 +3388,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -3591,17 +3569,17 @@ unistd.h values.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3595: checking for $ac_hdr" >&5 +echo "configure:3573: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3605: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3631,12 +3609,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3635: checking for $ac_func" >&5 +echo "configure:3613: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3688,12 +3666,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3692: checking for $ac_func" >&5 +echo "configure:3670: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3750,19 +3728,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3754: checking for LC_MESSAGES" >&5 +echo "configure:3732: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -3783,7 +3761,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3787: checking whether NLS is requested" >&5 +echo "configure:3765: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -3803,7 +3781,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:3807: checking whether included gettext is requested" >&5 +echo "configure:3785: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -3822,17 +3800,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:3826: checking for libintl.h" >&5 +echo "configure:3804: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3836: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3814: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3849,19 +3827,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:3853: checking for gettext in libc" >&5 +echo "configure:3831: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -3877,7 +3855,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:3881: checking for bindtextdomain in -lintl" >&5 +echo "configure:3859: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3885,7 +3863,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3912,19 +3890,19 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:3916: checking for gettext in libintl" >&5 +echo "configure:3894: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libintl=yes else @@ -3952,7 +3930,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3956: checking for $ac_word" >&5 +echo "configure:3934: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3986,12 +3964,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3990: checking for $ac_func" >&5 +echo "configure:3968: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4041,7 +4019,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4045: checking for $ac_word" >&5 +echo "configure:4023: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4077,7 +4055,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4081: checking for $ac_word" >&5 +echo "configure:4059: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4109,7 +4087,7 @@ else fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -4149,7 +4127,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4153: checking for $ac_word" >&5 +echo "configure:4131: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4183,7 +4161,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4187: checking for $ac_word" >&5 +echo "configure:4165: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4219,7 +4197,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4223: checking for $ac_word" >&5 +echo "configure:4201: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4309,7 +4287,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4313: checking for catalogs to be installed" >&5 +echo "configure:4291: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4337,17 +4315,17 @@ echo "configure:4313: checking for catal if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:4341: checking for linux/version.h" >&5 +echo "configure:4319: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4351: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4425,7 +4403,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:4429: checking for a BSD compatible install" >&5 +echo "configure:4407: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4508,7 +4486,7 @@ if test "x$cross_compiling" = "xno"; the EXEEXT_FOR_BUILD='$(EXEEXT)' else echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6 -echo "configure:4512: checking for build system executable suffix" >&5 +echo "configure:4490: checking for build system executable suffix" >&5 if eval "test \"`echo '$''{'bfd_cv_build_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4536,17 +4514,17 @@ for ac_hdr in stddef.h string.h strings. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4540: checking for $ac_hdr" >&5 +echo "configure:4518: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4576,17 +4554,17 @@ for ac_hdr in fcntl.h sys/file.h sys/tim do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4580: checking for $ac_hdr" >&5 +echo "configure:4558: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4590: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4568: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4613,12 +4591,12 @@ fi done echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:4617: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:4595: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4627,7 +4605,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:4631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -4652,12 +4630,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/di do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:4656: checking for $ac_hdr that defines DIR" >&5 +echo "configure:4634: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -4665,7 +4643,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:4669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -4690,7 +4668,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:4694: checking for opendir in -ldir" >&5 +echo "configure:4672: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4698,7 +4676,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4731,7 +4709,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:4735: checking for opendir in -lx" >&5 +echo "configure:4713: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4739,7 +4717,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4775,12 +4753,12 @@ fi for ac_func in fcntl getpagesize setitimer sysconf fdopen getuid getgid do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4779: checking for $ac_func" >&5 +echo "configure:4757: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4838,12 +4816,12 @@ EOF esac echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6 -echo "configure:4842: checking whether strstr must be declared" >&5 +echo "configure:4820: checking whether strstr must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4864,7 +4842,7 @@ int main() { char *(*pfn) = (char *(*)) strstr ; return 0; } EOF -if { (eval echo configure:4868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4846: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_strstr=no else @@ -4885,12 +4863,12 @@ EOF fi echo $ac_n "checking whether malloc must be declared""... $ac_c" 1>&6 -echo "configure:4889: checking whether malloc must be declared" >&5 +echo "configure:4867: checking whether malloc must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4911,7 +4889,7 @@ int main() { char *(*pfn) = (char *(*)) malloc ; return 0; } EOF -if { (eval echo configure:4915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_malloc=no else @@ -4932,12 +4910,12 @@ EOF fi echo $ac_n "checking whether realloc must be declared""... $ac_c" 1>&6 -echo "configure:4936: checking whether realloc must be declared" >&5 +echo "configure:4914: checking whether realloc must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_realloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4958,7 +4936,7 @@ int main() { char *(*pfn) = (char *(*)) realloc ; return 0; } EOF -if { (eval echo configure:4962: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_realloc=no else @@ -4979,12 +4957,12 @@ EOF fi echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6 -echo "configure:4983: checking whether free must be declared" >&5 +echo "configure:4961: checking whether free must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5005,7 +4983,7 @@ int main() { char *(*pfn) = (char *(*)) free ; return 0; } EOF -if { (eval echo configure:5009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_free=no else @@ -5026,12 +5004,12 @@ EOF fi echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6 -echo "configure:5030: checking whether getenv must be declared" >&5 +echo "configure:5008: checking whether getenv must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5052,7 +5030,7 @@ int main() { char *(*pfn) = (char *(*)) getenv ; return 0; } EOF -if { (eval echo configure:5056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5034: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_getenv=no else @@ -5239,16 +5217,16 @@ if test "${target}" = "${host}"; then # Not all versions of AIX with -DAIX_CORE_DUMPX_CORE # have c_impl as a member of struct core_dumpx echo $ac_n "checking for c_impl in struct core_dumpx""... $ac_c" 1>&6 -echo "configure:5243: checking for c_impl in struct core_dumpx" >&5 +echo "configure:5221: checking for c_impl in struct core_dumpx" >&5 cat > conftest.$ac_ext < int main() { struct core_dumpx c; c.c_impl = 0; ; return 0; } EOF -if { (eval echo configure:5252: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5230: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_ST_C_IMPL 1 @@ -5316,17 +5294,17 @@ rm -f conftest* do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5320: checking for $ac_hdr" >&5 +echo "configure:5298: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5330: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5308: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5354,12 +5332,12 @@ done if test "$ac_cv_header_sys_procfs_h" = yes; then echo $ac_n "checking for prstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5358: checking for prstatus_t in sys/procfs.h" >&5 +echo "configure:5336: checking for prstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prstatus_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5350: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prstatus_t=yes else @@ -5390,12 +5368,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prstatus_t" 1>&6 echo $ac_n "checking for prstatus32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5394: checking for prstatus32_t in sys/procfs.h" >&5 +echo "configure:5372: checking for prstatus32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prstatus32_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5386: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prstatus32_t=yes else @@ -5426,12 +5404,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prstatus32_t" 1>&6 echo $ac_n "checking for prstatus_t.pr_who in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5430: checking for prstatus_t.pr_who in sys/procfs.h" >&5 +echo "configure:5408: checking for prstatus_t.pr_who in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5422: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who=yes else @@ -5462,12 +5440,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_prstatus_t_pr_who" 1>&6 echo $ac_n "checking for prstatus32_t.pr_who in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5466: checking for prstatus32_t.pr_who in sys/procfs.h" >&5 +echo "configure:5444: checking for prstatus32_t.pr_who in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who=yes else @@ -5498,12 +5476,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_prstatus32_t_pr_who" 1>&6 echo $ac_n "checking for pstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5502: checking for pstatus_t in sys/procfs.h" >&5 +echo "configure:5480: checking for pstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_pstatus_t=yes else @@ -5534,12 +5512,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus_t" 1>&6 echo $ac_n "checking for pxstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5538: checking for pxstatus_t in sys/procfs.h" >&5 +echo "configure:5516: checking for pxstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pxstatus_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5530: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_pxstatus_t=yes else @@ -5570,12 +5548,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_pxstatus_t" 1>&6 echo $ac_n "checking for pstatus32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5574: checking for pstatus32_t in sys/procfs.h" >&5 +echo "configure:5552: checking for pstatus32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_pstatus32_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5566: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_pstatus32_t=yes else @@ -5606,12 +5584,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_pstatus32_t" 1>&6 echo $ac_n "checking for prpsinfo_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5610: checking for prpsinfo_t in sys/procfs.h" >&5 +echo "configure:5588: checking for prpsinfo_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prpsinfo_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prpsinfo_t=yes else @@ -5642,12 +5620,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prpsinfo_t" 1>&6 echo $ac_n "checking for prpsinfo32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5646: checking for prpsinfo32_t in sys/procfs.h" >&5 +echo "configure:5624: checking for prpsinfo32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_prpsinfo32_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5638: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_prpsinfo32_t=yes else @@ -5678,12 +5656,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_prpsinfo32_t" 1>&6 echo $ac_n "checking for psinfo_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5682: checking for psinfo_t in sys/procfs.h" >&5 +echo "configure:5660: checking for psinfo_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psinfo_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5674: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_psinfo_t=yes else @@ -5714,12 +5692,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_psinfo_t" 1>&6 echo $ac_n "checking for psinfo32_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5718: checking for psinfo32_t in sys/procfs.h" >&5 +echo "configure:5696: checking for psinfo32_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_psinfo32_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5710: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_psinfo32_t=yes else @@ -5750,12 +5728,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_psinfo32_t" 1>&6 echo $ac_n "checking for lwpstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5754: checking for lwpstatus_t in sys/procfs.h" >&5 +echo "configure:5732: checking for lwpstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpstatus_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5746: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_lwpstatus_t=yes else @@ -5786,12 +5764,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpstatus_t" 1>&6 echo $ac_n "checking for lwpxstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5790: checking for lwpxstatus_t in sys/procfs.h" >&5 +echo "configure:5768: checking for lwpxstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_lwpxstatus_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_lwpxstatus_t=yes else @@ -5822,12 +5800,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_lwpxstatus_t" 1>&6 echo $ac_n "checking for lwpstatus_t.pr_context in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5826: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5 +echo "configure:5804: checking for lwpstatus_t.pr_context in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5818: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context=yes else @@ -5858,12 +5836,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_context" 1>&6 echo $ac_n "checking for lwpstatus_t.pr_reg in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5862: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5 +echo "configure:5840: checking for lwpstatus_t.pr_reg in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5854: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg=yes else @@ -5894,12 +5872,12 @@ EOF echo "$ac_t""$bfd_cv_have_sys_procfs_type_member_lwpstatus_t_pr_reg" 1>&6 echo $ac_n "checking for win32_pstatus_t in sys/procfs.h""... $ac_c" 1>&6 -echo "configure:5898: checking for win32_pstatus_t in sys/procfs.h" >&5 +echo "configure:5876: checking for win32_pstatus_t in sys/procfs.h" >&5 if eval "test \"`echo '$''{'bfd_cv_have_sys_procfs_type_win32_pstatus_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_have_sys_procfs_type_win32_pstatus_t=yes else @@ -5961,7 +5939,7 @@ case "${host}" in fi ;; *) - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | tail -1` + x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` if test -n "$x"; then WIN32LIBADD="-L../libiberty/pic -liberty" fi @@ -6110,6 +6088,7 @@ do bfd_elf32_ia64_big_vec) tb="$tb elf32-ia64.lo elf32.lo $elf" ;; bfd_elf32_ia64_hpux_big_vec) tb="$tb elf32-ia64.lo elf32.lo $elf";; bfd_elf32_ip2k_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; + bfd_elf32_iq2000_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_littlearm_oabi_vec) tb="$tb elfarm-oabi.lo elf32.lo $elf" ;; @@ -6124,6 +6103,7 @@ do bfd_elf32_mcore_little_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;; bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;; bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;; + bfd_elf32_msp430_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;; bfd_elf32_nbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf32_nlittlemips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf32_ntradbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; @@ -6374,10 +6354,10 @@ case ${host64}-${target64}-${want64} in if test -n "$GCC" ; then bad_64bit_gcc=no; echo $ac_n "checking for gcc version with buggy 64-bit support""... $ac_c" 1>&6 -echo "configure:6378: checking for gcc version with buggy 64-bit support" >&5 +echo "configure:6358: checking for gcc version with buggy 64-bit support" >&5 # Add more tests for gcc versions with non-working 64-bit support here. cat > conftest.$ac_ext <&6 -echo "configure:6427: checking for $ac_hdr" >&5 +echo "configure:6407: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6437: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6417: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6462,12 +6442,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6466: checking for $ac_func" >&5 +echo "configure:6446: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6515,7 +6495,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:6519: checking for working mmap" >&5 +echo "configure:6499: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6523,7 +6503,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -6701,12 +6681,12 @@ fi for ac_func in madvise mprotect do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6705: checking for $ac_func" >&5 +echo "configure:6685: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6909,6 +6889,7 @@ s%@build_alias@%$build_alias%g s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g +s%@CC@%$CC%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g s%@INSTALL_DATA@%$INSTALL_DATA%g @@ -6924,7 +6905,6 @@ s%@bfd_version@%$bfd_version%g s%@bfd_version_string@%$bfd_version_string%g s%@AR@%$AR%g s%@RANLIB@%$RANLIB%g -s%@CC@%$CC%g s%@LN_S@%$LN_S%g s%@OBJEXT@%$OBJEXT%g s%@EXEEXT@%$EXEEXT%g diff -uprN binutils-2.13.90.0.16/bfd/configure.host binutils-2.13.90.0.18/bfd/configure.host --- binutils-2.13.90.0.16/bfd/configure.host Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/configure.host Tue Jan 21 10:21:32 2003 @@ -32,6 +32,10 @@ hppa*-*-osf*) HDEFINES=-DHOST_HPPAOSF ; ia64-*-linux*) host64=true; HOST_64BIT_TYPE=long ;; ia64-*-aix*) host64=true; HOST_64BIT_TYPE=long ;; +ia64-*-hpux*) host64=true + HOST_64BIT_TYPE="long long"; + HOST_U_64BIT_TYPE="unsigned long long"; + ;; i[3456]86-sequent-bsd*) HDEFINES=-Dshared=genshared ;; i[3456]86-sequent-sysv4*) ;; diff -uprN binutils-2.13.90.0.16/bfd/configure.in binutils-2.13.90.0.18/bfd/configure.in --- binutils-2.13.90.0.16/bfd/configure.in Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/configure.in Tue Jan 21 10:21:32 2003 @@ -7,7 +7,7 @@ AC_INIT(libbfd.c) AC_CANONICAL_SYSTEM AC_ISC_POSIX -AM_INIT_AUTOMAKE(bfd, 2.13.90.0.16) +AM_INIT_AUTOMAKE(bfd, 2.13.90.0.18) # Uncomment the next line to remove the date from the reported bfd version #is_release=y @@ -80,7 +80,7 @@ if test x"$silent" != x"yes" && test x"$ echo "Setting warning flags = $build_warnings" 6>&1 fi])dnl WARN_CFLAGS="" -if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then +if test "x${build_warnings}" != x && test "x$GCC" = xyes ; then WARN_CFLAGS="${build_warnings}" fi AC_SUBST(WARN_CFLAGS) @@ -440,7 +440,7 @@ case "${host}" in ;; *) changequote(,)dnl - x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | tail -1` + x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'` changequote([,])dnl if test -n "$x"; then WIN32LIBADD="-L../libiberty/pic -liberty" @@ -590,6 +590,7 @@ do bfd_elf32_ia64_big_vec) tb="$tb elf32-ia64.lo elf32.lo $elf" ;; bfd_elf32_ia64_hpux_big_vec) tb="$tb elf32-ia64.lo elf32.lo $elf";; bfd_elf32_ip2k_vec) tb="$tb elf32-ip2k.lo elf32.lo $elf" ;; + bfd_elf32_iq2000_vec) tb="$tb elf32-iq2000.lo elf32.lo $elf" ;; bfd_elf32_little_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;; bfd_elf32_littlearc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;; bfd_elf32_littlearm_oabi_vec) tb="$tb elfarm-oabi.lo elf32.lo $elf" ;; @@ -604,6 +605,7 @@ do bfd_elf32_mcore_little_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;; bfd_elf32_mn10200_vec) tb="$tb elf-m10200.lo elf32.lo $elf" ;; bfd_elf32_mn10300_vec) tb="$tb elf-m10300.lo elf32.lo $elf" ;; + bfd_elf32_msp430_vec) tb="$tb elf32-msp430.lo elf32.lo $elf" ;; bfd_elf32_nbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf32_nlittlemips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; bfd_elf32_ntradbigmips_vec) tb="$tb elfn32-mips.lo elfxx-mips.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;; diff -uprN binutils-2.13.90.0.16/bfd/corefile.c binutils-2.13.90.0.18/bfd/corefile.c --- binutils-2.13.90.0.16/bfd/corefile.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.18/bfd/corefile.c Mon Dec 16 12:22:51 2002 @@ -83,21 +83,21 @@ FUNCTION core_file_matches_executable_p SYNOPSIS - boolean core_file_matches_executable_p + bfd_boolean core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd); DESCRIPTION - Return <> if the core file attached to @var{core_bfd} + Return <> if the core file attached to @var{core_bfd} was generated by a run of the executable file attached to - @var{exec_bfd}, <> otherwise. + @var{exec_bfd}, <> otherwise. */ -boolean +bfd_boolean core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd, *exec_bfd; { if ((core_bfd->format != bfd_core) || (exec_bfd->format != bfd_object)) { bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } return BFD_SEND (core_bfd, _core_file_matches_executable_p, diff -uprN binutils-2.13.90.0.16/bfd/cpu-a29k.c binutils-2.13.90.0.18/bfd/cpu-a29k.c --- binutils-2.13.90.0.16/bfd/cpu-a29k.c Fri Mar 9 11:15:43 2001 +++ binutils-2.13.90.0.18/bfd/cpu-a29k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the AMD 29000 architecture. - Copyright 1992, 2000 Free Software Foundation, Inc. + Copyright 1992, 2000, 2002 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_a29k_arch = "a29k", "a29k", 4, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-alpha.c binutils-2.13.90.0.18/bfd/cpu-alpha.c --- binutils-2.13.90.0.16/bfd/cpu-alpha.c Fri Mar 9 11:15:43 2001 +++ binutils-2.13.90.0.18/bfd/cpu-alpha.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Alpha architecture. - Copyright 1992, 1993, 1998, 2000 Free Software Foundation, Inc. + Copyright 1992, 1993, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -42,10 +42,10 @@ Foundation, Inc., 59 Temple Place - Suit /* These exist only so that we can resonably disassemble PALcode. */ static const bfd_arch_info_type arch_info_struct[] = { - N (64, 64, bfd_mach_alpha_ev4, "alpha:ev4", false, NN(1)), - N (64, 64, bfd_mach_alpha_ev5, "alpha:ev5", false, NN(2)), - N (64, 64, bfd_mach_alpha_ev6, "alpha:ev6", false, 0), + N (64, 64, bfd_mach_alpha_ev4, "alpha:ev4", FALSE, NN(1)), + N (64, 64, bfd_mach_alpha_ev5, "alpha:ev5", FALSE, NN(2)), + N (64, 64, bfd_mach_alpha_ev6, "alpha:ev6", FALSE, 0), }; const bfd_arch_info_type bfd_alpha_arch = - N (64, 64, 0, "alpha", true, NN(0)); + N (64, 64, 0, "alpha", TRUE, NN(0)); diff -uprN binutils-2.13.90.0.16/bfd/cpu-arc.c binutils-2.13.90.0.18/bfd/cpu-arc.c --- binutils-2.13.90.0.16/bfd/cpu-arc.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/cpu-arc.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the ARC processor - Copyright 1994, 1995, 1997, 2001 Free Software Foundation, Inc. + Copyright 1994, 1995, 1997, 2001, 2002 Free Software Foundation, Inc. Contributed by Doug Evans (dje@cygnus.com). This file is part of BFD, the Binary File Descriptor library. @@ -40,15 +40,15 @@ Foundation, Inc., 59 Temple Place - Suit static const bfd_arch_info_type arch_info_struct[] = { - ARC ( bfd_mach_arc_5, "arc5", false, &arch_info_struct[1] ), - ARC ( bfd_mach_arc_5, "base", false, &arch_info_struct[2] ), - ARC ( bfd_mach_arc_6, "arc6", false, &arch_info_struct[3] ), - ARC ( bfd_mach_arc_7, "arc7", false, &arch_info_struct[4] ), - ARC ( bfd_mach_arc_8, "arc8", false, NULL ), + ARC ( bfd_mach_arc_5, "arc5", FALSE, &arch_info_struct[1] ), + ARC ( bfd_mach_arc_5, "base", FALSE, &arch_info_struct[2] ), + ARC ( bfd_mach_arc_6, "arc6", FALSE, &arch_info_struct[3] ), + ARC ( bfd_mach_arc_7, "arc7", FALSE, &arch_info_struct[4] ), + ARC ( bfd_mach_arc_8, "arc8", FALSE, NULL ), }; const bfd_arch_info_type bfd_arc_arch = - ARC ( bfd_mach_arc_6, "arc", true, &arch_info_struct[0] ); + ARC ( bfd_mach_arc_6, "arc", TRUE, &arch_info_struct[0] ); /* Utility routines. */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-arm.c binutils-2.13.90.0.18/bfd/cpu-arm.c --- binutils-2.13.90.0.16/bfd/cpu-arm.c Thu Mar 7 11:52:36 2002 +++ binutils-2.13.90.0.18/bfd/cpu-arm.c Mon Dec 16 12:22:51 2002 @@ -24,7 +24,7 @@ static const bfd_arch_info_type * compatible PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); -static boolean scan +static bfd_boolean scan PARAMS ((const struct bfd_arch_info *, const char *)); /* This routine is provided two arch_infos and works out which ARM @@ -98,7 +98,7 @@ processors[] = { bfd_mach_arm_XScale, "xscale" } }; -static boolean +static bfd_boolean scan (info, string) const struct bfd_arch_info * info; const char * string; @@ -107,7 +107,7 @@ scan (info, string) /* First test for an exact match. */ if (strcasecmp (string, info->printable_name) == 0) - return true; + return TRUE; /* Next check for a processor name instead of an Architecture name. */ for (i = sizeof (processors) / sizeof (processors[0]); i--;) @@ -117,13 +117,13 @@ scan (info, string) } if (i != -1 && info->mach == processors [i].mach) - return true; + return TRUE; /* Finally check for the default architecture. */ if (strcasecmp (string, "arm") == 0) return info->the_default; - return false; + return FALSE; } #define N(number, print, default, next) \ @@ -131,17 +131,17 @@ scan (info, string) static const bfd_arch_info_type arch_info_struct[] = { - N (bfd_mach_arm_2, "armv2", false, & arch_info_struct[1]), - N (bfd_mach_arm_2a, "armv2a", false, & arch_info_struct[2]), - N (bfd_mach_arm_3, "armv3", false, & arch_info_struct[3]), - N (bfd_mach_arm_3M, "armv3m", false, & arch_info_struct[4]), - N (bfd_mach_arm_4, "armv4", false, & arch_info_struct[5]), - N (bfd_mach_arm_4T, "armv4t", false, & arch_info_struct[6]), - N (bfd_mach_arm_5, "armv5", false, & arch_info_struct[7]), - N (bfd_mach_arm_5T, "armv5t", false, & arch_info_struct[8]), - N (bfd_mach_arm_5TE, "armv5te", false, & arch_info_struct[9]), - N (bfd_mach_arm_XScale, "xscale", false, NULL) + N (bfd_mach_arm_2, "armv2", FALSE, & arch_info_struct[1]), + N (bfd_mach_arm_2a, "armv2a", FALSE, & arch_info_struct[2]), + N (bfd_mach_arm_3, "armv3", FALSE, & arch_info_struct[3]), + N (bfd_mach_arm_3M, "armv3m", FALSE, & arch_info_struct[4]), + N (bfd_mach_arm_4, "armv4", FALSE, & arch_info_struct[5]), + N (bfd_mach_arm_4T, "armv4t", FALSE, & arch_info_struct[6]), + N (bfd_mach_arm_5, "armv5", FALSE, & arch_info_struct[7]), + N (bfd_mach_arm_5T, "armv5t", FALSE, & arch_info_struct[8]), + N (bfd_mach_arm_5TE, "armv5te", FALSE, & arch_info_struct[9]), + N (bfd_mach_arm_XScale, "xscale", FALSE, NULL) }; const bfd_arch_info_type bfd_arm_arch = - N (0, "arm", true, & arch_info_struct[0]); + N (0, "arm", TRUE, & arch_info_struct[0]); diff -uprN binutils-2.13.90.0.16/bfd/cpu-avr.c binutils-2.13.90.0.18/bfd/cpu-avr.c --- binutils-2.13.90.0.16/bfd/cpu-avr.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/cpu-avr.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for the AVR architecture. - Copyright 1999, 2000 Free Software Foundation, Inc. + Copyright 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by Denis Chertykov This file is part of BFD, the Binary File Descriptor library. @@ -44,23 +44,23 @@ static const bfd_arch_info_type *compati static const bfd_arch_info_type arch_info_struct[] = { /* AT90S1200, ATtiny1x, ATtiny28 */ - N (16, bfd_mach_avr1, "avr:1", false, & arch_info_struct[1]), + N (16, bfd_mach_avr1, "avr:1", FALSE, & arch_info_struct[1]), /* AT90S2xxx, AT90S4xxx, AT90S8xxx, ATtiny22 */ - N (16, bfd_mach_avr2, "avr:2", false, & arch_info_struct[2]), + N (16, bfd_mach_avr2, "avr:2", FALSE, & arch_info_struct[2]), /* ATmega103, ATmega603 */ - N (22, bfd_mach_avr3, "avr:3", false, & arch_info_struct[3]), + N (22, bfd_mach_avr3, "avr:3", FALSE, & arch_info_struct[3]), /* ATmega83, ATmega85 */ - N (16, bfd_mach_avr4, "avr:4", false, & arch_info_struct[4]), + N (16, bfd_mach_avr4, "avr:4", FALSE, & arch_info_struct[4]), /* ATmega161, ATmega163, ATmega32, AT94K */ - N (22, bfd_mach_avr5, "avr:5", false, NULL) + N (22, bfd_mach_avr5, "avr:5", FALSE, NULL) }; const bfd_arch_info_type bfd_avr_arch = - N (16, bfd_mach_avr2, "avr", true, & arch_info_struct[0]); + N (16, bfd_mach_avr2, "avr", TRUE, & arch_info_struct[0]); /* This routine is provided two arch_infos and works out which AVR machine which would be compatible with both and returns a pointer diff -uprN binutils-2.13.90.0.16/bfd/cpu-cris.c binutils-2.13.90.0.18/bfd/cpu-cris.c --- binutils-2.13.90.0.16/bfd/cpu-cris.c Fri Mar 9 11:15:43 2001 +++ binutils-2.13.90.0.18/bfd/cpu-cris.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* BFD support for the Axis CRIS architecture. - Copyright 2000 Free Software Foundation, Inc. + Copyright 2000, 2002 Free Software Foundation, Inc. Contributed by Axis Communications AB. Written by Hans-Peter Nilsson. @@ -38,12 +38,12 @@ bfd_cris_arch = "cris", /* The printable name is the same. */ 1, /* Section alignment power; each section is aligned to (only) 2^1 bytes. */ - true, /* This is the default "machine", since + TRUE, /* This is the default "machine", since there's only one. */ bfd_default_compatible, /* A default function for testing "machine" compatibility of two bfd_arch_info_type. */ - bfd_default_scan, /* Check if an bfd_arch_info_type is a + bfd_default_scan, /* Check if a bfd_arch_info_type is a match. */ NULL /* Pointer to next bfd_arch_info_type in the same family. */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-d10v.c binutils-2.13.90.0.18/bfd/cpu-d10v.c --- binutils-2.13.90.0.16/bfd/cpu-d10v.c Fri Mar 9 11:15:43 2001 +++ binutils-2.13.90.0.18/bfd/cpu-d10v.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the D10V processor - Copyright 1996, 1999, 2000 Free Software Foundation, Inc. + Copyright 1996, 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by Martin Hunt (hunt@cygnus.com). This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ static const bfd_arch_info_type d10v_ts3 "d10v", "d10v:ts3", 4, /* section alignment power */ - false, + FALSE, bfd_default_compatible, bfd_default_scan, 0, @@ -48,7 +48,7 @@ static const bfd_arch_info_type d10v_ts2 "d10v", "d10v:ts2", 4, /* section alignment power */ - false, + FALSE, bfd_default_compatible, bfd_default_scan, &d10v_ts3_info, @@ -64,7 +64,7 @@ const bfd_arch_info_type bfd_d10v_arch = "d10v", "d10v", 4, /* section alignment power */ - true, + TRUE, bfd_default_compatible, bfd_default_scan, &d10v_ts2_info, diff -uprN binutils-2.13.90.0.16/bfd/cpu-d30v.c binutils-2.13.90.0.18/bfd/cpu-d30v.c --- binutils-2.13.90.0.16/bfd/cpu-d30v.c Thu Jun 3 11:01:53 1999 +++ binutils-2.13.90.0.18/bfd/cpu-d30v.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Mitsubishi D30V processor - Copyright 1997 Free Software Foundation, Inc. + Copyright 1997, 2002 Free Software Foundation, Inc. Contributed by Martin Hunt (hunt@cygnus.com). This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_d30v_arch = "d30v", "d30v", 4, /* section alignment power */ - true, + TRUE, bfd_default_compatible, bfd_default_scan, 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-dlx.c binutils-2.13.90.0.18/bfd/cpu-dlx.c --- binutils-2.13.90.0.16/bfd/cpu-dlx.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/cpu-dlx.c Mon Dec 16 12:22:51 2002 @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_dlx_arch = "dlx", "dlx", 4, - true, /* The one and only. */ + TRUE, /* The one and only. */ bfd_default_compatible, bfd_default_scan , 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-fr30.c binutils-2.13.90.0.18/bfd/cpu-fr30.c --- binutils-2.13.90.0.16/bfd/cpu-fr30.c Fri Mar 9 11:15:43 2001 +++ binutils-2.13.90.0.18/bfd/cpu-fr30.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the FR30 processor. - Copyright 1998 Free Software Foundation, Inc. + Copyright 1998, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_fr30_arch = "fr30", /* architecture name */ "fr30", /* printable name */ 4, /* section align power */ - true, /* the default ? */ + TRUE, /* the default ? */ bfd_default_compatible, /* architecture comparison fn */ bfd_default_scan, /* string to architecture convert fn */ NULL /* next in list */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-frv.c binutils-2.13.90.0.18/bfd/cpu-frv.c --- binutils-2.13.90.0.16/bfd/cpu-frv.c Tue Jun 18 21:41:58 2002 +++ binutils-2.13.90.0.18/bfd/cpu-frv.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the FRV processor. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -45,20 +45,20 @@ enum { } static const bfd_arch_info_type arch_info_300 - = FRV_ARCH (bfd_mach_fr300, "fr300", false, (bfd_arch_info_type *)0); + = FRV_ARCH (bfd_mach_fr300, "fr300", FALSE, (bfd_arch_info_type *)0); static const bfd_arch_info_type arch_info_400 - = FRV_ARCH (bfd_mach_fr400, "fr400", false, &arch_info_300); + = FRV_ARCH (bfd_mach_fr400, "fr400", FALSE, &arch_info_300); static const bfd_arch_info_type arch_info_500 - = FRV_ARCH (bfd_mach_fr500, "fr500", false, &arch_info_400); + = FRV_ARCH (bfd_mach_fr500, "fr500", FALSE, &arch_info_400); static const bfd_arch_info_type arch_info_simple - = FRV_ARCH (bfd_mach_frvsimple, "simple", false, &arch_info_500); + = FRV_ARCH (bfd_mach_frvsimple, "simple", FALSE, &arch_info_500); static const bfd_arch_info_type arch_info_tomcat - = FRV_ARCH (bfd_mach_frvtomcat, "tomcat", false, &arch_info_simple); + = FRV_ARCH (bfd_mach_frvtomcat, "tomcat", FALSE, &arch_info_simple); const bfd_arch_info_type bfd_frv_arch - = FRV_ARCH (bfd_mach_frv, "frv", true, &arch_info_tomcat); + = FRV_ARCH (bfd_mach_frv, "frv", TRUE, &arch_info_tomcat); diff -uprN binutils-2.13.90.0.16/bfd/cpu-h8300.c binutils-2.13.90.0.18/bfd/cpu-h8300.c --- binutils-2.13.90.0.16/bfd/cpu-h8300.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/cpu-h8300.c Mon Dec 16 12:22:51 2002 @@ -23,35 +23,35 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "libbfd.h" -static boolean h8300_scan +static bfd_boolean h8300_scan PARAMS ((const struct bfd_arch_info *, const char *)); static const bfd_arch_info_type * compatible PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); -static boolean +static bfd_boolean h8300_scan (info, string) const struct bfd_arch_info *info; const char *string; { if (*string != 'h' && *string != 'H') - return false; + return FALSE; string++; if (*string != '8') - return false; + return FALSE; string++; if (*string == '/') string++; if (*string != '3') - return false; + return FALSE; string++; if (*string != '0') - return false; + return FALSE; string++; if (*string != '0') - return false; + return FALSE; string++; if (*string == '-') string++; @@ -107,7 +107,7 @@ static const bfd_arch_info_type h8300s_i "h8300s", /* arch_name */ "h8300s", /* printable name */ 1, - false, /* the default machine */ + FALSE, /* the default machine */ compatible, h8300_scan, 0 @@ -123,7 +123,7 @@ static const bfd_arch_info_type h8300h_i "h8300h", /* arch_name */ "h8300h", /* printable name */ 1, - false, /* the default machine */ + FALSE, /* the default machine */ compatible, h8300_scan, &h8300s_info_struct @@ -139,7 +139,7 @@ const bfd_arch_info_type bfd_h8300_arch "h8300", /* arch_name */ "h8300", /* printable name */ 1, - true, /* the default machine */ + TRUE, /* the default machine */ compatible, h8300_scan, &h8300h_info_struct diff -uprN binutils-2.13.90.0.16/bfd/cpu-h8500.c binutils-2.13.90.0.18/bfd/cpu-h8500.c --- binutils-2.13.90.0.16/bfd/cpu-h8500.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/cpu-h8500.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for the H8/500 architecture. - Copyright 1993, 1995, 2000, 2001 Free Software Foundation, Inc. + Copyright 1993, 1995, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -22,7 +22,8 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "libbfd.h" -static boolean scan_mach PARAMS ((const struct bfd_arch_info *, const char *)); +static bfd_boolean scan_mach + PARAMS ((const struct bfd_arch_info *, const char *)); #if 0 /* @@ -119,15 +120,15 @@ howto8_pcrel_callback (abfd, reloc_entry } static reloc_howto_type howto_16 - = NEWHOWTO(howto16_callback,"abs16",1,false,false); + = NEWHOWTO (howto16_callback, "abs16", 1, FALSE, FALSE); static reloc_howto_type howto_8 - = NEWHOWTO(howto8_callback,"abs8",0,false,false); + = NEWHOWTO (howto8_callback, "abs8", 0, FALSE, FALSE); static reloc_howto_type howto_8_FFnn - = NEWHOWTO(howto8_FFnn_callback,"ff00+abs8",0,false,false); + = NEWHOWTO (howto8_FFnn_callback, "ff00+abs8", 0, FALSE, FALSE); static reloc_howto_type howto_8_pcrel - = NEWHOWTO(howto8_pcrel_callback,"pcrel8",0,false,true); + = NEWHOWTO (howto8_pcrel_callback, "pcrel8", 0, FALSE, TRUE); static reloc_howto_type * local_bfd_reloc_type_lookup (arch, code) @@ -148,16 +149,20 @@ local_bfd_reloc_type_lookup (arch, code) } #endif -static boolean +static bfd_boolean scan_mach (info, string) const struct bfd_arch_info *info ATTRIBUTE_UNUSED; const char *string; { - if (strcmp(string,"h8/500") == 0) return true; - if (strcmp(string,"H8/500") == 0) return true; - if (strcmp(string,"h8500") == 0) return true; - if (strcmp(string,"H8500") == 0) return true; - return false; + if (strcmp (string,"h8/500") == 0) + return TRUE; + if (strcmp (string,"H8/500") == 0) + return TRUE; + if (strcmp (string,"h8500") == 0) + return TRUE; + if (strcmp (string,"H8500") == 0) + return TRUE; + return FALSE; } #if 0 /* not used currently */ @@ -185,7 +190,7 @@ const bfd_arch_info_type bfd_h8500_arch "h8500", /* arch_name */ "h8500", /* printable name */ 1, - true, /* the default machine */ + TRUE, /* the default machine */ bfd_default_compatible, scan_mach, 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-hppa.c binutils-2.13.90.0.18/bfd/cpu-hppa.c --- binutils-2.13.90.0.16/bfd/cpu-hppa.c Fri Mar 9 11:15:43 2001 +++ binutils-2.13.90.0.18/bfd/cpu-hppa.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,6 @@ /* BFD support for the HP Precision Architecture architecture. - Copyright 1992, 1995, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright 1992, 1995, 1998, 1999, 2000, 2002 + Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +32,7 @@ static const bfd_arch_info_type bfd_hppa "hppa", "hppa1.0", 3, - true, /* Unless we use 1.1 specific features */ + TRUE, /* Unless we use 1.1 specific features */ bfd_default_compatible, bfd_default_scan , 0, @@ -48,7 +49,7 @@ static const bfd_arch_info_type bfd_hppa "hppa", "hppa2.0", 3, - false, /* Unless we use 1.1 specific features */ + FALSE, /* Unless we use 1.1 specific features */ bfd_default_compatible, bfd_default_scan , &bfd_hppa10_arch, @@ -65,7 +66,7 @@ static const bfd_arch_info_type bfd_hppa "hppa", "hppa2.0w", 3, - false, /* Unless we use 1.1 specific features */ + FALSE, /* Unless we use 1.1 specific features */ bfd_default_compatible, bfd_default_scan , &bfd_hppa20_arch, @@ -81,7 +82,7 @@ const bfd_arch_info_type bfd_hppa_arch = "hppa", "hppa1.1", 3, - false, /* 1.1 specific features used */ + FALSE, /* 1.1 specific features used */ bfd_default_compatible, bfd_default_scan , &bfd_hppa20w_arch, diff -uprN binutils-2.13.90.0.16/bfd/cpu-i370.c binutils-2.13.90.0.18/bfd/cpu-i370.c --- binutils-2.13.90.0.16/bfd/cpu-i370.c Fri Apr 5 10:03:49 2002 +++ binutils-2.13.90.0.18/bfd/cpu-i370.c Mon Dec 16 12:22:51 2002 @@ -36,7 +36,7 @@ static const bfd_arch_info_type arch_inf "i370", "i370:360", 3, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, &arch_info_struct[1] @@ -50,7 +50,7 @@ static const bfd_arch_info_type arch_inf "i370", "i370:370", 3, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, 0 @@ -67,7 +67,7 @@ const bfd_arch_info_type bfd_i370_arch = "i370", "i370:common", 3, - true, /* the default */ + TRUE, /* the default */ bfd_default_compatible, bfd_default_scan, &arch_info_struct[0] diff -uprN binutils-2.13.90.0.16/bfd/cpu-i386.c binutils-2.13.90.0.18/bfd/cpu-i386.c --- binutils-2.13.90.0.16/bfd/cpu-i386.c Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.18/bfd/cpu-i386.c Mon Dec 16 12:22:51 2002 @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_i386_arch_i "i386:intel", "i386:intel", 3, - true, + TRUE, bfd_default_compatible, bfd_default_scan , 0, @@ -47,7 +47,7 @@ const bfd_arch_info_type bfd_x86_64_arch "i386:intel", "i386:x86-64:intel", 3, - true, + TRUE, bfd_default_compatible, bfd_default_scan , &bfd_i386_arch_intel_syntax, @@ -62,7 +62,7 @@ static const bfd_arch_info_type i8086_ar "i8086", "i8086", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan , &bfd_x86_64_arch_intel_syntax, @@ -78,7 +78,7 @@ const bfd_arch_info_type bfd_x86_64_arch "i386", "i386:x86-64", 3, - true, + TRUE, bfd_default_compatible, bfd_default_scan , &i8086_arch, @@ -94,7 +94,7 @@ const bfd_arch_info_type bfd_i386_arch = "i386", "i386", 3, - true, + TRUE, bfd_default_compatible, bfd_default_scan , &bfd_x86_64_arch diff -uprN binutils-2.13.90.0.16/bfd/cpu-i860.c binutils-2.13.90.0.18/bfd/cpu-i860.c --- binutils-2.13.90.0.16/bfd/cpu-i860.c Sat Jul 29 10:01:17 2000 +++ binutils-2.13.90.0.18/bfd/cpu-i860.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Intel 860 architecture. - Copyright 1992, 1995, 2000 Free Software Foundation, Inc. + Copyright 1992, 1995, 2000, 2002 Free Software Foundation, Inc. Created mostly by substituting "860" for "386" in cpu-i386.c Harry Dolan , October 1995 @@ -33,7 +33,7 @@ const bfd_arch_info_type bfd_i860_arch = "i860", /* Architecture name */ "i860", /* Printable name */ 3, /* Section alignment exponent */ - true, /* Is this the default architecture? */ + TRUE, /* Is this the default architecture? */ bfd_default_compatible, bfd_default_scan, 0, /* Next in list */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-i960.c binutils-2.13.90.0.18/bfd/cpu-i960.c --- binutils-2.13.90.0.16/bfd/cpu-i960.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/cpu-i960.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for the i960 architecture. - Copyright 1990, 1991, 1993, 1994, 1996, 1999, 2000, 2001 + Copyright 1990, 1991, 1993, 1994, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support. @@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "libbfd.h" -static boolean scan_960_mach +static bfd_boolean scan_960_mach PARAMS ((const bfd_arch_info_type *, const char *)); static const bfd_arch_info_type *compatible PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); @@ -32,13 +32,13 @@ static const bfd_arch_info_type *compati could possibly refer to the i960 machine pointed at in the info_struct pointer */ -static boolean +static bfd_boolean scan_960_mach (ap, string) const bfd_arch_info_type *ap; const char *string; { unsigned long machine; - int fail_because_not_80960 = false; + int fail_because_not_80960 = FALSE; /* Look for the string i960 at the front of the string. */ if (strncasecmp ("i960", string, 4) == 0) @@ -51,7 +51,7 @@ scan_960_mach (ap, string) /* "i960:*" is valid, anything else is not. */ if (* string != ':') - return false; + return FALSE; string ++; } @@ -61,16 +61,16 @@ scan_960_mach (ap, string) { string += 5; - /* Sett his to true here. If a correct matching postfix - is detected below it will be reset to false. */ - fail_because_not_80960 = true; + /* Set this to TRUE here. If a correct matching postfix + is detected below it will be reset to FALSE. */ + fail_because_not_80960 = TRUE; } /* No match, can't be us. */ else - return false; + return FALSE; if (* string == '\0') - return false; + return FALSE; if (string[0] == 'c' && string[1] == 'o' && string[2] == 'r' && string[3] == 'e' && string[4] == '\0') @@ -80,19 +80,19 @@ scan_960_mach (ap, string) else if (strcasecmp (string, "kb_sb") == 0) machine = bfd_mach_i960_kb_sb; else if (string[1] == '\0' || string[2] != '\0') /* rest are 2-char. */ - return false; + return FALSE; else if (string[0] == 'k' && string[1] == 'b') - { machine = bfd_mach_i960_kb_sb; fail_because_not_80960 = false; } + { machine = bfd_mach_i960_kb_sb; fail_because_not_80960 = FALSE; } else if (string[0] == 's' && string[1] == 'b') machine = bfd_mach_i960_kb_sb; else if (string[0] == 'm' && string[1] == 'c') - { machine = bfd_mach_i960_mc; fail_because_not_80960 = false; } + { machine = bfd_mach_i960_mc; fail_because_not_80960 = FALSE; } else if (string[0] == 'x' && string[1] == 'a') machine = bfd_mach_i960_xa; else if (string[0] == 'c' && string[1] == 'a') - { machine = bfd_mach_i960_ca; fail_because_not_80960 = false; } + { machine = bfd_mach_i960_ca; fail_because_not_80960 = FALSE; } else if (string[0] == 'k' && string[1] == 'a') - { machine = bfd_mach_i960_ka_sa; fail_because_not_80960 = false; } + { machine = bfd_mach_i960_ka_sa; fail_because_not_80960 = FALSE; } else if (string[0] == 's' && string[1] == 'a') machine = bfd_mach_i960_ka_sa; else if (string[0] == 'j' && string[1] == 'x') @@ -100,15 +100,15 @@ scan_960_mach (ap, string) else if (string[0] == 'h' && string[1] == 'x') machine = bfd_mach_i960_hx; else - return false; + return FALSE; if (fail_because_not_80960) - return false; + return FALSE; if (machine == ap->mach) - return true; + return TRUE; - return false; + return FALSE; } /* This routine is provided two arch_infos and works out the i960 @@ -169,14 +169,14 @@ compatible (a,b) static const bfd_arch_info_type arch_info_struct[] = { - N(bfd_mach_i960_ka_sa,"i960:ka_sa",false, &arch_info_struct[1]), - N(bfd_mach_i960_kb_sb,"i960:kb_sb",false, &arch_info_struct[2]), - N(bfd_mach_i960_mc, "i960:mc", false, &arch_info_struct[3]), - N(bfd_mach_i960_xa, "i960:xa", false, &arch_info_struct[4]), - N(bfd_mach_i960_ca, "i960:ca", false, &arch_info_struct[5]), - N(bfd_mach_i960_jx, "i960:jx", false, &arch_info_struct[6]), - N(bfd_mach_i960_hx, "i960:hx", false, 0), + N(bfd_mach_i960_ka_sa,"i960:ka_sa",FALSE, &arch_info_struct[1]), + N(bfd_mach_i960_kb_sb,"i960:kb_sb",FALSE, &arch_info_struct[2]), + N(bfd_mach_i960_mc, "i960:mc", FALSE, &arch_info_struct[3]), + N(bfd_mach_i960_xa, "i960:xa", FALSE, &arch_info_struct[4]), + N(bfd_mach_i960_ca, "i960:ca", FALSE, &arch_info_struct[5]), + N(bfd_mach_i960_jx, "i960:jx", FALSE, &arch_info_struct[6]), + N(bfd_mach_i960_hx, "i960:hx", FALSE, 0), }; const bfd_arch_info_type bfd_i960_arch = - N(bfd_mach_i960_core, "i960:core", true, &arch_info_struct[0]); + N(bfd_mach_i960_core, "i960:core", TRUE, &arch_info_struct[0]); diff -uprN binutils-2.13.90.0.16/bfd/cpu-ia64-opc.c binutils-2.13.90.0.18/bfd/cpu-ia64-opc.c --- binutils-2.13.90.0.16/bfd/cpu-ia64-opc.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/cpu-ia64-opc.c Mon Dec 16 12:22:51 2002 @@ -418,6 +418,7 @@ const struct ia64_operand elf64_ia64_ope { /* constants: */ { CST, ins_const, ext_const, "NIL", {{ 0, 0}}, 0, "" }, + { CST, ins_const, ext_const, "ar.csd", {{ 0, 0}}, 0, "ar.csd" }, { CST, ins_const, ext_const, "ar.ccv", {{ 0, 0}}, 0, "ar.ccv" }, { CST, ins_const, ext_const, "ar.pfs", {{ 0, 0}}, 0, "ar.pfs" }, { CST, ins_const, ext_const, "1", {{ 0, 0}}, 0, "1" }, @@ -586,4 +587,7 @@ const struct ia64_operand elf64_ia64_ope "a branch target" }, { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0, /* TGT64 */ "a branch target" }, + + { ABS, ins_const, ext_const, 0, {{0, 0}}, 0, /* LDXMOV */ + "ldxmov target" }, }; diff -uprN binutils-2.13.90.0.16/bfd/cpu-ia64.c binutils-2.13.90.0.18/bfd/cpu-ia64.c --- binutils-2.13.90.0.16/bfd/cpu-ia64.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-ia64.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the ia64 architecture. - Copyright 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by David Mosberger-Tang This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_ia64_elf32_ "ia64", "ia64-elf32", 3, /* log2 of section alignment */ - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , 0, @@ -48,7 +48,7 @@ const bfd_arch_info_type bfd_ia64_arch = "ia64", "ia64-elf64", 3, /* log2 of section alignment */ - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , &bfd_ia64_elf32_arch, diff -uprN binutils-2.13.90.0.16/bfd/cpu-ip2k.c binutils-2.13.90.0.18/bfd/cpu-ip2k.c --- binutils-2.13.90.0.16/bfd/cpu-ip2k.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/bfd/cpu-ip2k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Scenix IP2xxx processor. - Copyright (C) 2000, 2002 Free Software Foundation, Inc. + Copyright 2000, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_ip2k_nonext "ip2k", /* Architecture name. */ "ip2022", /* Machine name. */ 1, /* Section align power. */ - false, /* The default ? */ + FALSE, /* The default ? */ bfd_default_compatible, /* Architecture comparison fn. */ bfd_default_scan, /* String to architecture convert fn. */ NULL /* Next in list. */ @@ -47,7 +47,7 @@ const bfd_arch_info_type bfd_ip2k_arch = "ip2k", /* Architecture name. */ "ip2022ext", /* Machine name. */ 1, /* Section align power. */ - true, /* The default ? */ + TRUE, /* The default ? */ bfd_default_compatible, /* Architecture comparison fn. */ bfd_default_scan, /* String to architecture convert fn. */ & bfd_ip2k_nonext_arch /* Next in list. */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-iq2000.c binutils-2.13.90.0.18/bfd/cpu-iq2000.c --- binutils-2.13.90.0.16/bfd/cpu-iq2000.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/bfd/cpu-iq2000.c Tue Jan 21 10:21:32 2003 @@ -0,0 +1,57 @@ +/* BFD support for the Vitesse IQ2000 processor. + Copyright (C) 2003 Free Software Foundation, Inc. + +This file is part of BFD, the Binary File Descriptor library. + +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. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libbfd.h" + +static const bfd_arch_info_type arch_info_struct[] = +{ + 32, /* bits per word */ + 32, /* bits per address */ + 8, /* bits per byte */ + bfd_arch_iq2000, /* architecture */ + bfd_mach_iq10, /* machine */ + "iq2000", /* architecture name */ + "iq10", /* printable name */ + 3, /* section align power */ + FALSE, /* the default ? */ + bfd_default_compatible, /* architecture comparison fn */ + bfd_default_scan, /* string to architecture convert fn */ + NULL /* next in list */ +}; + +const bfd_arch_info_type bfd_iq2000_arch = +{ + 32, /* bits per word */ + 32, /* bits per address */ + 8, /* bits per byte */ + bfd_arch_iq2000, /* architecture */ + bfd_mach_iq2000, /* machine */ + "iq2000", /* architecture name */ + "iq2000", /* printable name */ + 3, /* section align power */ + TRUE, /* the default ? */ + bfd_default_compatible, /* architecture comparison fn */ + bfd_default_scan, /* string to architecture convert fn */ + &arch_info_struct[0], /* next in list */ +}; + + + diff -uprN binutils-2.13.90.0.16/bfd/cpu-m10200.c binutils-2.13.90.0.18/bfd/cpu-m10200.c --- binutils-2.13.90.0.16/bfd/cpu-m10200.c Thu Jun 3 11:01:53 1999 +++ binutils-2.13.90.0.18/bfd/cpu-m10200.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Matsushita 10200 processor - Copyright 1996, 1997 Free Software Foundation, Inc. + Copyright 1996, 1997, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_mn10200_arc "mn10200", "mn10200", 2, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-m10300.c binutils-2.13.90.0.18/bfd/cpu-m10300.c --- binutils-2.13.90.0.16/bfd/cpu-m10300.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-m10300.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Matsushita 10300 processor - Copyright 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright 1996, 1997, 1999, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_am33_arch = "am33", "am33", 2, - false, + FALSE, bfd_default_compatible, bfd_default_scan, 0, @@ -47,7 +47,7 @@ const bfd_arch_info_type bfd_mn10300_arc "mn10300", "mn10300", 2, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan, &bfd_am33_arch, diff -uprN binutils-2.13.90.0.16/bfd/cpu-m32r.c binutils-2.13.90.0.18/bfd/cpu-m32r.c --- binutils-2.13.90.0.16/bfd/cpu-m32r.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-m32r.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the M32R processor. - Copyright 1996, 1999, 2000 Free Software Foundation, Inc. + Copyright 1996, 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -29,11 +29,11 @@ Foundation, Inc., 59 Temple Place - Suit static const bfd_arch_info_type arch_info_struct[] = { - N (bfd_mach_m32rx, "m32rx", false, NULL) + N (bfd_mach_m32rx, "m32rx", FALSE, NULL) }; #undef NEXT #define NEXT &arch_info_struct[0] const bfd_arch_info_type bfd_m32r_arch = - N (bfd_mach_m32r, "m32r", true, NEXT); + N (bfd_mach_m32r, "m32r", TRUE, NEXT); diff -uprN binutils-2.13.90.0.16/bfd/cpu-m68hc11.c binutils-2.13.90.0.18/bfd/cpu-m68hc11.c --- binutils-2.13.90.0.16/bfd/cpu-m68hc11.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-m68hc11.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Motorola 68HC11 processor - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_m68hc11_arc "m68hc11", "m68hc11", 4, /* section alignment power */ - true, + TRUE, bfd_default_compatible, bfd_default_scan, 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-m68hc12.c binutils-2.13.90.0.18/bfd/cpu-m68hc12.c --- binutils-2.13.90.0.16/bfd/cpu-m68hc12.c Thu Nov 16 15:35:03 2000 +++ binutils-2.13.90.0.18/bfd/cpu-m68hc12.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Motorola 68HC12 processor - Copyright 1999, 2000 Free Software Foundation, Inc. + Copyright 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_m68hc12_arc "m68hc12", "m68hc12", 4, /* section alignment power */ - true, + TRUE, bfd_default_compatible, bfd_default_scan, 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-m68k.c binutils-2.13.90.0.18/bfd/cpu-m68k.c --- binutils-2.13.90.0.16/bfd/cpu-m68k.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-m68k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for architectures. - Copyright 1990, 1991, 1992, 1993, 1994, 1997, 1998, 2000, 2001 + Copyright 1990, 1991, 1992, 1993, 1994, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support. @@ -28,19 +28,19 @@ Foundation, Inc., 59 Temple Place - Suit static const bfd_arch_info_type arch_info_struct[] = { - N(bfd_mach_m68000, "m68k:68000", false, &arch_info_struct[1]), - N(bfd_mach_m68008, "m68k:68008", false, &arch_info_struct[2]), - N(bfd_mach_m68010, "m68k:68010", false, &arch_info_struct[3]), - N(bfd_mach_m68020, "m68k:68020", false, &arch_info_struct[4]), - N(bfd_mach_m68030, "m68k:68030", false, &arch_info_struct[5]), - N(bfd_mach_m68040, "m68k:68040", false, &arch_info_struct[6]), - N(bfd_mach_cpu32, "m68k:cpu32", false, &arch_info_struct[7]), - N(bfd_mach_mcf5200,"m68k:5200", false, &arch_info_struct[8]), - N(bfd_mach_mcf5206e,"m68k:5206e",false, &arch_info_struct[9]), - N(bfd_mach_mcf5307, "m68k:5307", false, &arch_info_struct[10]), - N(bfd_mach_mcf5407, "m68k:5407", false, &arch_info_struct[11]), - N(bfd_mach_m68060, "m68k:68060", false, 0), + N(bfd_mach_m68000, "m68k:68000", FALSE, &arch_info_struct[1]), + N(bfd_mach_m68008, "m68k:68008", FALSE, &arch_info_struct[2]), + N(bfd_mach_m68010, "m68k:68010", FALSE, &arch_info_struct[3]), + N(bfd_mach_m68020, "m68k:68020", FALSE, &arch_info_struct[4]), + N(bfd_mach_m68030, "m68k:68030", FALSE, &arch_info_struct[5]), + N(bfd_mach_m68040, "m68k:68040", FALSE, &arch_info_struct[6]), + N(bfd_mach_cpu32, "m68k:cpu32", FALSE, &arch_info_struct[7]), + N(bfd_mach_mcf5200,"m68k:5200", FALSE, &arch_info_struct[8]), + N(bfd_mach_mcf5206e,"m68k:5206e",FALSE, &arch_info_struct[9]), + N(bfd_mach_mcf5307, "m68k:5307", FALSE, &arch_info_struct[10]), + N(bfd_mach_mcf5407, "m68k:5407", FALSE, &arch_info_struct[11]), + N(bfd_mach_m68060, "m68k:68060", FALSE, 0), }; const bfd_arch_info_type bfd_m68k_arch = - N(0, "m68k", true, &arch_info_struct[0]); + N(0, "m68k", TRUE, &arch_info_struct[0]); diff -uprN binutils-2.13.90.0.16/bfd/cpu-m88k.c binutils-2.13.90.0.18/bfd/cpu-m88k.c --- binutils-2.13.90.0.16/bfd/cpu-m88k.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-m88k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* bfd back-end for m88k support - Copyright 1990, 1991, 1994, 2000 Free Software Foundation, Inc. + Copyright 1990, 1991, 1994, 2000, 2002 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_m88k_arch = "m88k", "m88k:88100", 3, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-mcore.c binutils-2.13.90.0.18/bfd/cpu-mcore.c --- binutils-2.13.90.0.16/bfd/cpu-mcore.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-mcore.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for Motorola's MCore architecture - Copyright 1993, 1999 Free Software Foundation, Inc. + Copyright 1993, 1999, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_mcore_arch "MCore", /* Architecture name */ "MCore", /* Printable name */ 3, /* Section align power */ - true, /* Is this the default architecture ? */ + TRUE, /* Is this the default architecture ? */ bfd_default_compatible, /* Architecture comparison function */ bfd_default_scan, /* String to architecture conversion */ NULL /* Next in list */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-mips.c binutils-2.13.90.0.18/bfd/cpu-mips.c --- binutils-2.13.90.0.16/bfd/cpu-mips.c Wed Oct 2 10:17:19 2002 +++ binutils-2.13.90.0.18/bfd/cpu-mips.c Tue Jan 21 10:21:32 2003 @@ -82,6 +82,7 @@ enum I_mips16, I_mips5, I_mipsisa32, + I_mipsisa32r2, I_mipsisa64, I_sb1, }; @@ -90,29 +91,30 @@ enum static const bfd_arch_info_type arch_info_struct[] = { - N (32, 32, bfd_mach_mips3000, "mips:3000", false, NN(I_mips3000)), - N (32, 32, bfd_mach_mips3900, "mips:3900", false, NN(I_mips3900)), - N (64, 64, bfd_mach_mips4000, "mips:4000", false, NN(I_mips4000)), - N (64, 64, bfd_mach_mips4010, "mips:4010", false, NN(I_mips4010)), - N (64, 64, bfd_mach_mips4100, "mips:4100", false, NN(I_mips4100)), - N (64, 64, bfd_mach_mips4111, "mips:4111", false, NN(I_mips4111)), - N (64, 64, bfd_mach_mips4120, "mips:4120", false, NN(I_mips4120)), - N (64, 64, bfd_mach_mips4300, "mips:4300", false, NN(I_mips4300)), - N (64, 64, bfd_mach_mips4400, "mips:4400", false, NN(I_mips4400)), - N (64, 64, bfd_mach_mips4600, "mips:4600", false, NN(I_mips4600)), - N (64, 64, bfd_mach_mips4650, "mips:4650", false, NN(I_mips4650)), - N (64, 64, bfd_mach_mips5000, "mips:5000", false, NN(I_mips5000)), - N (64, 64, bfd_mach_mips5400, "mips:5400", false, NN(I_mips5400)), - N (64, 64, bfd_mach_mips5500, "mips:5500", false, NN(I_mips5500)), - N (32, 32, bfd_mach_mips6000, "mips:6000", false, NN(I_mips6000)), - N (64, 64, bfd_mach_mips8000, "mips:8000", false, NN(I_mips8000)), - N (64, 64, bfd_mach_mips10000,"mips:10000", false, NN(I_mips10000)), - N (64, 64, bfd_mach_mips12000,"mips:12000", false, NN(I_mips12000)), - N (64, 64, bfd_mach_mips16, "mips:16", false, NN(I_mips16)), - N (64, 64, bfd_mach_mips5, "mips:mips5", false, NN(I_mips5)), - N (32, 32, bfd_mach_mipsisa32, "mips:isa32", false, NN(I_mipsisa32)), - N (64, 64, bfd_mach_mipsisa64, "mips:isa64", false, NN(I_mipsisa64)), - N (64, 64, bfd_mach_mips_sb1, "mips:sb1", false, 0), + N (32, 32, bfd_mach_mips3000, "mips:3000", FALSE, NN(I_mips3000)), + N (32, 32, bfd_mach_mips3900, "mips:3900", FALSE, NN(I_mips3900)), + N (64, 64, bfd_mach_mips4000, "mips:4000", FALSE, NN(I_mips4000)), + N (64, 64, bfd_mach_mips4010, "mips:4010", FALSE, NN(I_mips4010)), + N (64, 64, bfd_mach_mips4100, "mips:4100", FALSE, NN(I_mips4100)), + N (64, 64, bfd_mach_mips4111, "mips:4111", FALSE, NN(I_mips4111)), + N (64, 64, bfd_mach_mips4120, "mips:4120", FALSE, NN(I_mips4120)), + N (64, 64, bfd_mach_mips4300, "mips:4300", FALSE, NN(I_mips4300)), + N (64, 64, bfd_mach_mips4400, "mips:4400", FALSE, NN(I_mips4400)), + N (64, 64, bfd_mach_mips4600, "mips:4600", FALSE, NN(I_mips4600)), + N (64, 64, bfd_mach_mips4650, "mips:4650", FALSE, NN(I_mips4650)), + N (64, 64, bfd_mach_mips5000, "mips:5000", FALSE, NN(I_mips5000)), + N (64, 64, bfd_mach_mips5400, "mips:5400", FALSE, NN(I_mips5400)), + N (64, 64, bfd_mach_mips5500, "mips:5500", FALSE, NN(I_mips5500)), + N (32, 32, bfd_mach_mips6000, "mips:6000", FALSE, NN(I_mips6000)), + N (64, 64, bfd_mach_mips8000, "mips:8000", FALSE, NN(I_mips8000)), + N (64, 64, bfd_mach_mips10000,"mips:10000", FALSE, NN(I_mips10000)), + N (64, 64, bfd_mach_mips12000,"mips:12000", FALSE, NN(I_mips12000)), + N (64, 64, bfd_mach_mips16, "mips:16", FALSE, NN(I_mips16)), + N (64, 64, bfd_mach_mips5, "mips:mips5", FALSE, NN(I_mips5)), + N (32, 32, bfd_mach_mipsisa32, "mips:isa32", FALSE, NN(I_mipsisa32)), + N (32, 32, bfd_mach_mipsisa32r2,"mips:isa32r2", FALSE, NN(I_mipsisa32r2)), + N (64, 64, bfd_mach_mipsisa64, "mips:isa64", FALSE, NN(I_mipsisa64)), + N (64, 64, bfd_mach_mips_sb1, "mips:sb1", FALSE, 0), }; /* The default architecture is mips:3000, but with a machine number of @@ -120,4 +122,4 @@ static const bfd_arch_info_type arch_inf of mips, and an explicit setting of mips:3000. */ const bfd_arch_info_type bfd_mips_arch = -N (32, 32, 0, "mips", true, &arch_info_struct[0]); +N (32, 32, 0, "mips", TRUE, &arch_info_struct[0]); diff -uprN binutils-2.13.90.0.16/bfd/cpu-mmix.c binutils-2.13.90.0.18/bfd/cpu-mmix.c --- binutils-2.13.90.0.16/bfd/cpu-mmix.c Fri Nov 16 14:05:51 2001 +++ binutils-2.13.90.0.18/bfd/cpu-mmix.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for MMIX. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. Contributed by Hans-Peter Nilsson (hp@bitrange.com) This file is part of BFD, the Binary File Descriptor library. @@ -34,7 +34,7 @@ bfd_mmix_arch = "mmix", /* Architecture name. */ "mmix", /* Printable name. */ 3, /* Section align power. */ - true, /* This is the default architecture. */ + TRUE, /* This is the default architecture. */ bfd_default_compatible, /* Architecture comparison function. */ bfd_default_scan, /* String to architecture conversion. */ NULL /* Next in list. */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-msp430.c binutils-2.13.90.0.18/bfd/cpu-msp430.c --- binutils-2.13.90.0.16/bfd/cpu-msp430.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/bfd/cpu-msp430.c Tue Jan 21 10:21:32 2003 @@ -0,0 +1,107 @@ +/* BFD library support routines for the MSP architecture. + Copyright (C) 2002 Free Software Foundation, Inc. + Contributed by Dmitry Diky + + This file is part of BFD, the Binary File Descriptor library. + + 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. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libbfd.h" + +static const bfd_arch_info_type *compatible + PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); + +#define N(addr_bits, machine, print, default, next) \ +{ \ + 16, /* 16 bits in a word. */ \ + addr_bits, /* Bits in an address. */ \ + 8, /* 8 bits in a byte. */ \ + bfd_arch_msp430, \ + machine, /* Machine number. */ \ + "msp430", /* Architecture name. */ \ + print, /* Printable name. */ \ + 1, /* Section align power. */ \ + default, /* The default machine. */ \ + compatible, \ + bfd_default_scan, \ + next \ +} + +static const bfd_arch_info_type arch_info_struct[] = +{ + /* msp430x11x. */ + N (16, bfd_mach_msp11, "msp:11", FALSE, & arch_info_struct[1]), + + /* msp430x12x. */ + N (16, bfd_mach_msp12, "msp:12", FALSE, & arch_info_struct[2]), + + /* msp430x13x. */ + N (16, bfd_mach_msp13, "msp:13", FALSE, & arch_info_struct[3]), + + /* msp430x14x. */ + N (16, bfd_mach_msp14, "msp:14", FALSE, & arch_info_struct[4]), + + /* msp430x31x. */ + N (16, bfd_mach_msp31, "msp:31", FALSE, & arch_info_struct[5]), + + /* msp430x32x. */ + N (16, bfd_mach_msp32, "msp:32", FALSE, & arch_info_struct[6]), + + /* msp430x33x. */ + N (16, bfd_mach_msp33, "msp:33", FALSE, & arch_info_struct[7]), + + /* msp430x41x. */ + N (16, bfd_mach_msp41, "msp:41", FALSE, & arch_info_struct[8]), + + /* msp430x43x. */ + N (16, bfd_mach_msp43, "msp:43", FALSE, & arch_info_struct[9]), + + /* msp430x44x. */ + N (16, bfd_mach_msp43, "msp:44", FALSE, & arch_info_struct[10]), + + /* msp430x15x. */ + N (16, bfd_mach_msp15, "msp:15", FALSE, & arch_info_struct[11]), + + /* msp430x16x. */ + N (16, bfd_mach_msp16, "msp:16", FALSE, & arch_info_struct[12]), + + /* msp430x11x1. */ + N (16, bfd_mach_msp110, "msp:110", FALSE, NULL) + +}; + +const bfd_arch_info_type bfd_msp430_arch = + N (16, bfd_mach_msp14, "msp:14", TRUE, & arch_info_struct[0]); + +/* This routine is provided two arch_infos and works out which MSP + machine which would be compatible with both and returns a pointer + to its info structure. */ + +static const bfd_arch_info_type * +compatible (a,b) + const bfd_arch_info_type * a; + const bfd_arch_info_type * b; +{ + /* If a & b are for different architectures we can do nothing. */ + if (a->arch != b->arch) + return NULL; + + if (a->mach <= b->mach) + return b; + + return a; +} diff -uprN binutils-2.13.90.0.16/bfd/cpu-ns32k.c binutils-2.13.90.0.18/bfd/cpu-ns32k.c --- binutils-2.13.90.0.16/bfd/cpu-ns32k.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/bfd/cpu-ns32k.c Mon Dec 16 12:22:51 2002 @@ -30,11 +30,11 @@ static const bfd_arch_info_type arch_info_struct[] = { - N(32532,"ns32k:32532",true, 0), /* The word ns32k will match this too. */ + N(32532,"ns32k:32532",TRUE, 0), /* The word ns32k will match this too. */ }; const bfd_arch_info_type bfd_ns32k_arch = - N(32032,"ns32k:32032",false, &arch_info_struct[0]); + N(32032,"ns32k:32032",FALSE, &arch_info_struct[0]); static bfd_reloc_status_type do_ns32k_reloc PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *, @@ -232,16 +232,16 @@ do_ns32k_reloc (abfd, reloc_entry, symbo of the location within the section. Some targets arrange for the addend to be the negative of the position of the location within the section; for example, i386-aout does this. For - i386-aout, pcrel_offset is false. Some other targets do not + i386-aout, pcrel_offset is FALSE. Some other targets do not include the position of the location; for example, m88kbcs, - or ELF. For those targets, pcrel_offset is true. + or ELF. For those targets, pcrel_offset is TRUE. If we are producing relocateable output, then we must ensure that this reloc will be correctly computed when the final - relocation is done. If pcrel_offset is false we want to wind + relocation is done. If pcrel_offset is FALSE we want to wind up with the negative of the location within the section, which means we must adjust the existing addend by the change - in the location within the section. If pcrel_offset is true + in the location within the section. If pcrel_offset is TRUE we do not want to adjust the existing addend at all. FIXME: This seems logical to me, but for the case of @@ -594,7 +594,7 @@ _bfd_do_ns32k_reloc_contents (howto, inp { int size; bfd_vma x; - boolean overflow; + bfd_boolean overflow; /* If the size is negative, negate RELOCATION. This isn't very general. */ @@ -622,7 +622,7 @@ _bfd_do_ns32k_reloc_contents (howto, inp which we don't check for. We must either check at every single operation, which would be tedious, or we must do the computations in a type larger than bfd_vma, which would be inefficient. */ - overflow = false; + overflow = FALSE; if (howto->complain_on_overflow != complain_overflow_dont) { bfd_vma check; @@ -697,7 +697,7 @@ _bfd_do_ns32k_reloc_contents (howto, inp if (signed_check > reloc_signed_max || signed_check < reloc_signed_min) - overflow = true; + overflow = TRUE; } break; case complain_overflow_unsigned: @@ -709,7 +709,7 @@ _bfd_do_ns32k_reloc_contents (howto, inp (((1 << (howto->bitsize - 1)) - 1) << 1) | 1; if (check > reloc_unsigned_max) - overflow = true; + overflow = TRUE; } break; case complain_overflow_bitfield: @@ -722,7 +722,7 @@ _bfd_do_ns32k_reloc_contents (howto, inp if ((check & ~reloc_bits) != 0 && (((bfd_vma) signed_check & ~reloc_bits) != (-(bfd_vma) 1 & ~reloc_bits))) - overflow = true; + overflow = TRUE; } break; default: @@ -818,9 +818,9 @@ _bfd_ns32k_final_link_relocate (howto, i location we are relocating. Some targets (e.g., i386-aout) arrange for the contents of the section to be the negative of the offset of the location within the section; for such targets - pcrel_offset is false. Other targets (e.g., m88kbcs or ELF) + pcrel_offset is FALSE. Other targets (e.g., m88kbcs or ELF) simply leave the contents of the section as zero; for such - targets pcrel_offset is true. If pcrel_offset is false we do not + targets pcrel_offset is TRUE. If pcrel_offset is FALSE we do not need to subtract out the offset of the location within the section (which is just ADDRESS). */ if (howto->pc_relative) diff -uprN binutils-2.13.90.0.16/bfd/cpu-openrisc.c binutils-2.13.90.0.18/bfd/cpu-openrisc.c --- binutils-2.13.90.0.16/bfd/cpu-openrisc.c Tue Apr 24 09:12:01 2001 +++ binutils-2.13.90.0.18/bfd/cpu-openrisc.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the OpenRISC architecture. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. Contributed by Johan Rydberg, jrydberg@opencores.org This file is part of BFD, the Binary File Descriptor library. @@ -39,4 +39,4 @@ Foundation, Inc., 59 Temple Place - Suit } const bfd_arch_info_type bfd_openrisc_arch = - N (32, 32, 0, "openrisc", true, 0); + N (32, 32, 0, "openrisc", TRUE, 0); diff -uprN binutils-2.13.90.0.16/bfd/cpu-or32.c binutils-2.13.90.0.18/bfd/cpu-or32.c --- binutils-2.13.90.0.16/bfd/cpu-or32.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/cpu-or32.c Mon Dec 16 12:22:51 2002 @@ -32,8 +32,8 @@ const bfd_arch_info_type bfd_or32_arch = "or32", "or32", 4, - true, /* The one and only. */ - bfd_default_compatible, + TRUE, /* The one and only. */ + bfd_default_compatible, bfd_default_scan , 0, }; diff -uprN binutils-2.13.90.0.16/bfd/cpu-pdp11.c binutils-2.13.90.0.18/bfd/cpu-pdp11.c --- binutils-2.13.90.0.16/bfd/cpu-pdp11.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/cpu-pdp11.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for PDP-11 support. - Copyright 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_pdp11_arch "pdp11", "pdp11", 1, /* aligment = 16 bit */ - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-pj.c binutils-2.13.90.0.18/bfd/cpu-pj.c --- binutils-2.13.90.0.16/bfd/cpu-pj.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/cpu-pj.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for the Pico Java architecture. - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Transmeta. sac@pobox.com This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_pj_arch = "pj", /* arch_name */ "pj", /* printable name */ 1, - true, /* the default machine */ + TRUE, /* the default machine */ bfd_default_compatible, bfd_default_scan, 0 diff -uprN binutils-2.13.90.0.16/bfd/cpu-powerpc.c binutils-2.13.90.0.18/bfd/cpu-powerpc.c --- binutils-2.13.90.0.16/bfd/cpu-powerpc.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/cpu-powerpc.c Mon Dec 16 12:22:51 2002 @@ -61,7 +61,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:common64", 3, - true, /* default for 64 bit target */ + TRUE, /* default for 64 bit target */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[1] @@ -77,7 +77,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:common", 3, - false, + FALSE, powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[2], @@ -93,7 +93,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:common", 3, - true, /* default for 32 bit target */ + TRUE, /* default for 32 bit target */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[1], @@ -109,7 +109,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:common64", 3, - false, + FALSE, powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[2] @@ -124,7 +124,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:603", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[3] @@ -138,7 +138,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:EC603e", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[4] @@ -152,7 +152,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:604", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[5] @@ -166,7 +166,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:403", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[6] @@ -180,7 +180,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:601", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[7] @@ -194,7 +194,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:620", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[8] @@ -208,7 +208,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:630", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[9] @@ -222,7 +222,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:a35", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[10] @@ -236,7 +236,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:rs64ii", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[11] @@ -250,7 +250,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:rs64iii", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[12] @@ -264,7 +264,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:7400", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[13] @@ -278,7 +278,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:e500", 3, - false, + FALSE, powerpc_compatible, bfd_default_scan, &bfd_powerpc_archs[14] @@ -292,7 +292,7 @@ const bfd_arch_info_type bfd_powerpc_arc "powerpc", "powerpc:MPC8XX", 3, - false, /* not the default */ + FALSE, /* not the default */ powerpc_compatible, bfd_default_scan, 0 diff -uprN binutils-2.13.90.0.16/bfd/cpu-rs6000.c binutils-2.13.90.0.18/bfd/cpu-rs6000.c --- binutils-2.13.90.0.16/bfd/cpu-rs6000.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/cpu-rs6000.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,6 @@ /* BFD back-end for rs6000 support - Copyright 1990, 1991, 1993, 1995, 2000 Free Software Foundation, Inc. + Copyright 1990, 1991, 1993, 1995, 2000, 2002 + Free Software Foundation, Inc. FIXME: Can someone provide a transliteration of this name into ASCII? Using the following chars caused a compiler warning on HIUX (so I replaced them with octal escapes), and isn't useful without an understanding of what @@ -64,7 +65,7 @@ static const bfd_arch_info_type arch_inf "rs6000", "rs6000:rs1", 3, - false, /* not the default */ + FALSE, /* not the default */ rs6000_compatible, bfd_default_scan, &arch_info_struct[1] @@ -78,7 +79,7 @@ static const bfd_arch_info_type arch_inf "rs6000", "rs6000:rsc", 3, - false, /* not the default */ + FALSE, /* not the default */ rs6000_compatible, bfd_default_scan, &arch_info_struct[2] @@ -92,7 +93,7 @@ static const bfd_arch_info_type arch_inf "rs6000", "rs6000:rs2", 3, - false, /* not the default */ + FALSE, /* not the default */ rs6000_compatible, bfd_default_scan, 0 @@ -109,7 +110,7 @@ const bfd_arch_info_type bfd_rs6000_arch "rs6000", "rs6000:6000", 3, - true, /* the default */ + TRUE, /* the default */ rs6000_compatible, bfd_default_scan, &arch_info_struct[0] diff -uprN binutils-2.13.90.0.16/bfd/cpu-s390.c binutils-2.13.90.0.18/bfd/cpu-s390.c --- binutils-2.13.90.0.16/bfd/cpu-s390.c Fri Apr 5 10:03:49 2002 +++ binutils-2.13.90.0.18/bfd/cpu-s390.c Mon Dec 16 12:22:51 2002 @@ -33,7 +33,7 @@ const bfd_arch_info_type bfd_s390_64_arc "s390", "s390:64-bit", 3, /* section alignment power */ - true, /* the default */ + TRUE, /* the default */ bfd_default_compatible, bfd_default_scan, NULL @@ -49,7 +49,7 @@ const bfd_arch_info_type bfd_s390_arch = "s390", "s390:31-bit", 3, /* section alignment power */ - true, /* the default */ + TRUE, /* the default */ bfd_default_compatible, bfd_default_scan, &bfd_s390_64_arch diff -uprN binutils-2.13.90.0.16/bfd/cpu-sh.c binutils-2.13.90.0.18/bfd/cpu-sh.c --- binutils-2.13.90.0.16/bfd/cpu-sh.c Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.18/bfd/cpu-sh.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for the Hitachi-SH architecture. - Copyright 1993, 1994, 1997, 1998, 2000, 2001 + Copyright 1993, 1994, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support. @@ -60,7 +60,7 @@ static const bfd_arch_info_type arch_inf "sh", /* arch_name */ "sh2", /* printable name */ 1, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, SH2_NEXT @@ -74,7 +74,7 @@ static const bfd_arch_info_type arch_inf "sh", /* arch_name */ "sh-dsp", /* printable name */ 1, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, SH_DSP_NEXT @@ -88,7 +88,7 @@ static const bfd_arch_info_type arch_inf "sh", /* arch_name */ "sh3", /* printable name */ 1, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, SH3_NEXT @@ -102,7 +102,7 @@ static const bfd_arch_info_type arch_inf "sh", /* arch_name */ "sh3-dsp", /* printable name */ 1, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, SH3_DSP_NEXT @@ -116,7 +116,7 @@ static const bfd_arch_info_type arch_inf "sh", /* arch_name */ "sh3e", /* printable name */ 1, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, SH3E_NEXT @@ -130,7 +130,7 @@ static const bfd_arch_info_type arch_inf "sh", /* arch_name */ "sh4", /* printable name */ 1, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, SH4_NEXT @@ -144,7 +144,7 @@ static const bfd_arch_info_type arch_inf "sh", /* arch_name */ "sh5", /* printable name */ 1, - false, /* not the default */ + FALSE, /* not the default */ bfd_default_compatible, bfd_default_scan, SH64_NEXT @@ -161,7 +161,7 @@ const bfd_arch_info_type bfd_sh_arch = "sh", /* arch_name */ "sh", /* printable name */ 1, - true, /* the default machine */ + TRUE, /* the default machine */ bfd_default_compatible, bfd_default_scan, SH_NEXT diff -uprN binutils-2.13.90.0.16/bfd/cpu-sparc.c binutils-2.13.90.0.18/bfd/cpu-sparc.c --- binutils-2.13.90.0.16/bfd/cpu-sparc.c Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.18/bfd/cpu-sparc.c Mon Dec 16 12:22:51 2002 @@ -33,7 +33,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:sparclet", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[1], @@ -47,7 +47,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:sparclite", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[2], @@ -61,7 +61,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:v8plus", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[3], @@ -75,7 +75,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:v8plusa", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[4], @@ -89,7 +89,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:sparclite_le", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[5], @@ -103,7 +103,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:v9", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[6], @@ -117,7 +117,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:v9a", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[7], @@ -131,7 +131,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:v8plusb", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, &arch_info_struct[8], @@ -145,7 +145,7 @@ static const bfd_arch_info_type arch_inf "sparc", "sparc:v9b", 3, - false, + FALSE, bfd_default_compatible, bfd_default_scan, 0, @@ -162,7 +162,7 @@ const bfd_arch_info_type bfd_sparc_arch "sparc", "sparc", 3, - true, /* the default */ + TRUE, /* the default */ bfd_default_compatible, bfd_default_scan, &arch_info_struct[0], diff -uprN binutils-2.13.90.0.16/bfd/cpu-tic30.c binutils-2.13.90.0.18/bfd/cpu-tic30.c --- binutils-2.13.90.0.16/bfd/cpu-tic30.c Thu Jun 3 11:01:53 1999 +++ binutils-2.13.90.0.18/bfd/cpu-tic30.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Texas Instruments TMS320C30 architecture. - Copyright 1998 Free Software Foundation, Inc. + Copyright 1998, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_tic30_arch "tic30", "tms320c30", 2, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan, 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-tic4x.c binutils-2.13.90.0.18/bfd/cpu-tic4x.c --- binutils-2.13.90.0.16/bfd/cpu-tic4x.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/cpu-tic4x.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* bfd back-end for TMS320C[34]x support - Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc. + Copyright 1996, 1997, 2002 Free Software Foundation, Inc. Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz) @@ -23,11 +23,11 @@ #include "sysdep.h" #include "libbfd.h" -static boolean c4x_scan +static bfd_boolean c4x_scan PARAMS ((const struct bfd_arch_info *, const char * )); -static boolean +static bfd_boolean c4x_scan (info, string) const struct bfd_arch_info *info; const char *string; @@ -39,14 +39,14 @@ c4x_scan (info, string) if (*string == 'C' || *string == 'c') string++; if (string[1] < '0' && string[1] > '9') - return false; + return FALSE; if (*string == '3') return (info->mach == bfd_mach_c3x); else if (*string == '4') return info->mach == bfd_mach_c4x; - return false; + return FALSE; } @@ -60,8 +60,8 @@ const bfd_arch_info_type bfd_tic3x_arch "c3x", /* Architecture name. */ "tms320c3x", /* Printable name. */ 0, /* Alignment power. */ - false, /* Not the default architecture. */ - bfd_default_compatible, + FALSE, /* Not the default architecture. */ + bfd_default_compatible, c4x_scan, 0 }; @@ -76,8 +76,8 @@ const bfd_arch_info_type bfd_tic4x_arch "c4x", /* Architecture name. */ "tms320c4x", /* Printable name. */ 0, /* Alignment power. */ - true, /* The default architecture. */ - bfd_default_compatible, + TRUE, /* The default architecture. */ + bfd_default_compatible, c4x_scan, &bfd_tic3x_arch, }; diff -uprN binutils-2.13.90.0.16/bfd/cpu-tic54x.c binutils-2.13.90.0.18/bfd/cpu-tic54x.c --- binutils-2.13.90.0.16/bfd/cpu-tic54x.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-tic54x.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the Texas Instruments TMS320C54X architecture. - Copyright 1999, 2000 Free Software Foundation, Inc. + Copyright 1999, 2000, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_tic54x_arch "tic54x", "tms320c54x", 1, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan, 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-tic80.c binutils-2.13.90.0.18/bfd/cpu-tic80.c --- binutils-2.13.90.0.16/bfd/cpu-tic80.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-tic80.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* bfd back-end for TI TMS320C80 (MVP) support - Copyright 1996 Free Software Foundation, Inc. + Copyright 1996, 2002 Free Software Foundation, Inc. Written by Fred Fish at Cygnus support (fnf@cygnus.com) This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_tic80_arch "tic80", /* architecture name */ "tic80", /* printable name */ 2, /* section alignment power */ - true, /* default machine for architecture */ + TRUE, /* default machine for architecture */ bfd_default_compatible, bfd_default_scan , NULL, /* Pointer to next in chain */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-v850.c binutils-2.13.90.0.18/bfd/cpu-v850.c --- binutils-2.13.90.0.16/bfd/cpu-v850.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/cpu-v850.c Mon Dec 16 12:22:51 2002 @@ -30,11 +30,11 @@ static const bfd_arch_info_type arch_info_struct[] = { - N (bfd_mach_v850e, "v850e", false, NULL) + N (bfd_mach_v850e, "v850e", FALSE, NULL) }; #undef NEXT #define NEXT & arch_info_struct[0] const bfd_arch_info_type bfd_v850_arch = - N (bfd_mach_v850, "v850", true, NEXT); + N (bfd_mach_v850, "v850", TRUE, NEXT); diff -uprN binutils-2.13.90.0.16/bfd/cpu-vax.c binutils-2.13.90.0.18/bfd/cpu-vax.c --- binutils-2.13.90.0.16/bfd/cpu-vax.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-vax.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* bfd back-end for vax support - Copyright 1990, 1991, 1994, 2000 Free Software Foundation, Inc. + Copyright 1990, 1991, 1994, 2000, 2002 Free Software Foundation, Inc. Written by Steve Chamberlain of Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_vax_arch = "vax", "vax", 3, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-w65.c binutils-2.13.90.0.18/bfd/cpu-w65.c --- binutils-2.13.90.0.16/bfd/cpu-w65.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/cpu-w65.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD library support routines for the WDC 65816 architecture. - Copyright 1995, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -22,17 +22,19 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "libbfd.h" -static boolean scan_mach +static bfd_boolean scan_mach PARAMS ((const struct bfd_arch_info *, const char *)); -static boolean +static bfd_boolean scan_mach (info, string) const struct bfd_arch_info *info ATTRIBUTE_UNUSED; const char *string; { - if (strcmp(string,"w65") == 0) return true; - if (strcmp(string,"w65816") == 0) return true; - return false; + if (strcmp(string,"w65") == 0) + return TRUE; + if (strcmp(string,"w65816") == 0) + return TRUE; + return FALSE; } const bfd_arch_info_type bfd_w65_arch = @@ -45,7 +47,7 @@ const bfd_arch_info_type bfd_w65_arch = "w65", /* arch_name */ "w65", /* printable name */ 1, - true, /* the default machine */ + TRUE, /* the default machine */ bfd_default_compatible, scan_mach, 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-we32k.c binutils-2.13.90.0.18/bfd/cpu-we32k.c --- binutils-2.13.90.0.16/bfd/cpu-we32k.c Fri Mar 9 11:15:44 2001 +++ binutils-2.13.90.0.18/bfd/cpu-we32k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* bfd back-end for we32k support - Copyright 1992, 2000 Free Software Foundation, Inc. + Copyright 1992, 2000, 2002 Free Software Foundation, Inc. Contributed by Brendan Kehoe (brendan@cs.widener.edu). This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ const bfd_arch_info_type bfd_we32k_arch "we32k", "we32k:32000", 3, - true, /* the one and only */ + TRUE, /* the one and only */ bfd_default_compatible, bfd_default_scan , 0, diff -uprN binutils-2.13.90.0.16/bfd/cpu-xstormy16.c binutils-2.13.90.0.18/bfd/cpu-xstormy16.c --- binutils-2.13.90.0.16/bfd/cpu-xstormy16.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/cpu-xstormy16.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD support for the XSTORMY16 processor. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,7 +31,7 @@ const bfd_arch_info_type bfd_xstormy16_a "xstormy16", /* architecture name */ "xstormy16", /* printable name */ 2, /* section align power */ - true, /* the default ? */ + TRUE, /* the default ? */ bfd_default_compatible, /* architecture comparison fn */ bfd_default_scan, /* string to architecture convert fn */ NULL /* next in list */ diff -uprN binutils-2.13.90.0.16/bfd/cpu-z8k.c binutils-2.13.90.0.18/bfd/cpu-z8k.c --- binutils-2.13.90.0.16/bfd/cpu-z8k.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/cpu-z8k.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,6 @@ /* BFD library support routines for the Z800n architecture. - Copyright 1992, 1993, 1994, 2000, 2001 Free Software Foundation, Inc. + Copyright 1992, 1993, 1994, 2000, 2001, 2002 + Free Software Foundation, Inc. Hacked by Steve Chamberlain of Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -120,15 +121,15 @@ howto8_pcrel_callback (abfd, reloc_entry } static reloc_howto_type howto_16 -= NEWHOWTO (howto16_callback, "abs16", 1, false, false); += NEWHOWTO (howto16_callback, "abs16", 1, FALSE, FALSE); static reloc_howto_type howto_8 -= NEWHOWTO (howto8_callback, "abs8", 0, false, false); += NEWHOWTO (howto8_callback, "abs8", 0, FALSE, FALSE); static reloc_howto_type howto_8_FFnn -= NEWHOWTO (howto8_FFnn_callback, "ff00+abs8", 0, false, false); += NEWHOWTO (howto8_FFnn_callback, "ff00+abs8", 0, FALSE, FALSE); static reloc_howto_type howto_8_pcrel -= NEWHOWTO (howto8_pcrel_callback, "pcrel8", 0, false, true); += NEWHOWTO (howto8_pcrel_callback, "pcrel8", 0, FALSE, TRUE); static reloc_howto_type * local_bfd_reloc_type_lookup (arch, code) @@ -166,12 +167,12 @@ compatible (a, b) static const bfd_arch_info_type arch_info_struct[] = { - { 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, false, + { 32, 16, 8, bfd_arch_z8k, bfd_mach_z8002, "z8k", "z8002", 1, FALSE, compatible, bfd_default_scan, 0 } }; const bfd_arch_info_type bfd_z8k_arch = { - 32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, true, + 32, 32, 8, bfd_arch_z8k, bfd_mach_z8001, "z8k", "z8001", 1, TRUE, compatible, bfd_default_scan, &arch_info_struct[0] }; diff -uprN binutils-2.13.90.0.16/bfd/doc/bfdint.texi binutils-2.13.90.0.18/bfd/doc/bfdint.texi --- binutils-2.13.90.0.16/bfd/doc/bfdint.texi Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/doc/bfdint.texi Tue Jan 21 10:21:32 2003 @@ -1611,7 +1611,7 @@ called @file{@var{cpu}.h}. This file sh information which may be needed outside of the BFD code. In particular it should use the @samp{START_RELOC_NUMBERS}, @samp{RELOC_NUMBER}, @samp{FAKE_RELOC}, @samp{EMPTY_RELOC} and @samp{END_RELOC_NUMBERS} -macros to create a table mapping the number used to indentify a +macros to create a table mapping the number used to identify a relocation to a name describing that relocation. While not a BFD component, you probably also want to make the binutils @@ -1788,7 +1788,7 @@ The implementation within BFD of a parti set of functions which appear in a particular target vector. @item BFD -The BFD library itself. Also, each object file, archive, or exectable +The BFD library itself. Also, each object file, archive, or executable opened by the BFD library has the type @samp{bfd *}, and is sometimes referred to as a bfd. diff -uprN binutils-2.13.90.0.16/bfd/dwarf1.c binutils-2.13.90.0.18/bfd/dwarf1.c --- binutils-2.13.90.0.16/bfd/dwarf1.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/dwarf1.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* DWARF 1 find nearest line (_bfd_dwarf1_find_nearest_line). - Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Gavin Romig-Koch of Cygnus Solutions (gavin@cygnus.com). @@ -126,15 +126,17 @@ struct linenumber { /* Find the form of an attr, from the attr field. */ #define FORM_FROM_ATTR(attr) ((attr) & 0xF) /* Implicitly specified */ -static struct dwarf1_unit *alloc_dwarf1_unit PARAMS ((struct dwarf1_debug *)); +static struct dwarf1_unit *alloc_dwarf1_unit + PARAMS ((struct dwarf1_debug *)); static struct dwarf1_func *alloc_dwarf1_func PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *)); -static boolean parse_die PARAMS ((bfd *, struct die_info *, char *, char *)); -static boolean parse_line_table +static bfd_boolean parse_die + PARAMS ((bfd *, struct die_info *, char *, char *)); +static bfd_boolean parse_line_table PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *)); -static boolean parse_functions_in_unit +static bfd_boolean parse_functions_in_unit PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *)); -static boolean dwarf1_unit_find_nearest_line +static bfd_boolean dwarf1_unit_find_nearest_line PARAMS ((struct dwarf1_debug *, struct dwarf1_unit *, unsigned long, const char **, const char **, unsigned int *)); @@ -176,9 +178,9 @@ alloc_dwarf1_func (stash, aUnit) 'abfd' must be the bfd from which the section that 'aDiePtr' points to was pulled from. - Return false if the die is invalidly formatted; true otherwise. */ + Return FALSE if the die is invalidly formatted; TRUE otherwise. */ -static boolean +static bfd_boolean parse_die (abfd, aDieInfo, aDiePtr, aDiePtrEnd) bfd* abfd; struct die_info* aDieInfo; @@ -195,12 +197,12 @@ parse_die (abfd, aDieInfo, aDiePtr, aDie xptr += 4; if (aDieInfo->length == 0 || (this_die + aDieInfo->length) >= aDiePtrEnd) - return false; + return FALSE; if (aDieInfo->length < 6) { /* Just padding bytes. */ aDieInfo->tag = TAG_padding; - return true; + return TRUE; } /* Then the tag. */ @@ -259,14 +261,14 @@ parse_die (abfd, aDieInfo, aDiePtr, aDie } } - return true; + return TRUE; } /* Parse a dwarf1 line number table for 'aUnit->stmt_list_offset' - into 'aUnit->linenumber_table'. Return false if an error - occurs; true otherwise. */ + into 'aUnit->linenumber_table'. Return FALSE if an error + occurs; TRUE otherwise. */ -static boolean +static bfd_boolean parse_line_table (stash, aUnit) struct dwarf1_debug* stash; struct dwarf1_unit* aUnit; @@ -281,19 +283,19 @@ parse_line_table (stash, aUnit) msec = bfd_get_section_by_name (stash->abfd, ".line"); if (! msec) - return false; + return FALSE; size = bfd_get_section_size_before_reloc (msec); stash->line_section = (char *) bfd_alloc (stash->abfd, size); if (! stash->line_section) - return false; + return FALSE; if (! bfd_get_section_contents (stash->abfd, msec, stash->line_section, (bfd_vma) 0, size)) { stash->line_section = 0; - return false; + return FALSE; } stash->line_section_end = stash->line_section + size; @@ -341,15 +343,15 @@ parse_line_table (stash, aUnit) } } - return true; + return TRUE; } /* Parse each function die in a compilation unit 'aUnit'. The first child die of 'aUnit' should be in 'aUnit->first_child', the result is placed in 'aUnit->func_list'. - Return false if error; true otherwise. */ + Return FALSE if error; TRUE otherwise. */ -static boolean +static bfd_boolean parse_functions_in_unit (stash, aUnit) struct dwarf1_debug* stash; struct dwarf1_unit* aUnit; @@ -365,7 +367,7 @@ parse_functions_in_unit (stash, aUnit) if (! parse_die (stash->abfd, &eachDieInfo, eachDie, stash->debug_section_end)) - return false; + return FALSE; if (eachDieInfo.tag == TAG_global_subroutine || eachDieInfo.tag == TAG_subroutine @@ -386,13 +388,13 @@ parse_functions_in_unit (stash, aUnit) break; } - return true; + return TRUE; } /* Find the nearest line to 'addr' in 'aUnit'. Return whether we found the line (or a function) without error. */ -static boolean +static bfd_boolean dwarf1_unit_find_nearest_line (stash, aUnit, addr, filename_ptr, functionname_ptr, linenumber_ptr) @@ -403,8 +405,8 @@ dwarf1_unit_find_nearest_line (stash, aU const char **functionname_ptr; unsigned int *linenumber_ptr; { - int line_p = false; - int func_p = false; + int line_p = FALSE; + int func_p = FALSE; if (aUnit->low_pc <= addr && addr < aUnit->high_pc) { @@ -416,13 +418,13 @@ dwarf1_unit_find_nearest_line (stash, aU if (! aUnit->linenumber_table) { if (! parse_line_table (stash, aUnit)) - return false; + return FALSE; } if (! aUnit->func_list) { if (! parse_functions_in_unit (stash, aUnit)) - return false; + return FALSE; } for (i = 0; i < aUnit->line_count; i++) @@ -432,7 +434,7 @@ dwarf1_unit_find_nearest_line (stash, aU { *filename_ptr = aUnit->name; *linenumber_ptr = aUnit->linenumber_table[i].linenumber; - line_p = true; + line_p = TRUE; break; } } @@ -445,7 +447,7 @@ dwarf1_unit_find_nearest_line (stash, aU && addr < eachFunc->high_pc) { *functionname_ptr = eachFunc->name; - func_p = true; + func_p = TRUE; break; } } @@ -456,9 +458,9 @@ dwarf1_unit_find_nearest_line (stash, aU } /* The DWARF 1 version of find_nearest line. - Return true if the line is found without error. */ + Return TRUE if the line is found without error. */ -boolean +bfd_boolean _bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, linenumber_ptr) bfd *abfd; @@ -489,7 +491,7 @@ _bfd_dwarf1_find_nearest_line (abfd, sec = (struct dwarf1_debug *) bfd_zalloc (abfd, size); if (! stash) - return false; + return FALSE; msec = bfd_get_section_by_name (abfd, ".debug"); if (! msec) @@ -497,20 +499,20 @@ _bfd_dwarf1_find_nearest_line (abfd, sec /* No dwarf1 info. Note that at this point the stash has been allocated, but contains zeros, this lets future calls to this function fail quicker. */ - return false; + return FALSE; } size = bfd_get_section_size_before_reloc (msec); stash->debug_section = (char *) bfd_alloc (abfd, size); if (! stash->debug_section) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, msec, stash->debug_section, (bfd_vma) 0, size)) { stash->debug_section = 0; - return false; + return FALSE; } stash->debug_section_end = stash->debug_section + size; @@ -522,7 +524,7 @@ _bfd_dwarf1_find_nearest_line (abfd, sec or that an error occured while setting up the stash. */ if (! stash->debug_section) - return false; + return FALSE; /* Look at the previously parsed units to see if any contain the addr. */ @@ -541,7 +543,7 @@ _bfd_dwarf1_find_nearest_line (abfd, sec if (! parse_die (stash->abfd, &aDieInfo, stash->currentDie, stash->debug_section_end)) - return false; + return FALSE; if (aDieInfo.tag == TAG_compile_unit) { @@ -578,7 +580,7 @@ _bfd_dwarf1_find_nearest_line (abfd, sec stash->currentDie += aDieInfo.length; } - return false; + return FALSE; } /* EOF */ diff -uprN binutils-2.13.90.0.16/bfd/dwarf2.c binutils-2.13.90.0.18/bfd/dwarf2.c --- binutils-2.13.90.0.16/bfd/dwarf2.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/dwarf2.c Mon Dec 16 12:22:51 2002 @@ -157,7 +157,7 @@ struct comp_unit /* The DW_AT_comp_dir attribute. */ char* comp_dir; - /* True if there is a line number table associated with this comp. unit. */ + /* TRUE if there is a line number table associated with this comp. unit. */ int stmtlist; /* The offset into .debug_line of the line number table. */ @@ -239,19 +239,19 @@ static char *concat_filename PARAMS ((st static void arange_add PARAMS ((struct comp_unit *, bfd_vma, bfd_vma)); static struct line_info_table *decode_line_info PARAMS ((struct comp_unit *, struct dwarf2_debug *)); -static boolean lookup_address_in_line_info_table +static bfd_boolean lookup_address_in_line_info_table PARAMS ((struct line_info_table *, bfd_vma, struct funcinfo *, const char **, unsigned int *)); -static boolean lookup_address_in_function_table +static bfd_boolean lookup_address_in_function_table PARAMS ((struct funcinfo *, bfd_vma, struct funcinfo **, const char **)); -static boolean scan_unit_for_functions PARAMS ((struct comp_unit *)); +static bfd_boolean scan_unit_for_functions PARAMS ((struct comp_unit *)); static bfd_vma find_rela_addend PARAMS ((bfd *, asection *, bfd_size_type, asymbol**)); static struct comp_unit *parse_comp_unit PARAMS ((bfd *, struct dwarf2_debug *, bfd_vma, unsigned int)); -static boolean comp_unit_contains_address +static bfd_boolean comp_unit_contains_address PARAMS ((struct comp_unit *, bfd_vma)); -static boolean comp_unit_find_nearest_line +static bfd_boolean comp_unit_find_nearest_line PARAMS ((struct comp_unit *, bfd_vma, const char **, const char **, unsigned int *, struct dwarf2_debug *)); static asection *find_debug_info PARAMS ((bfd *, asection *)); @@ -1310,11 +1310,11 @@ decode_line_info (unit, stash) return table; } -/* If ADDR is within TABLE set the output parameters and return true, - otherwise return false. The output parameters, FILENAME_PTR and +/* If ADDR is within TABLE set the output parameters and return TRUE, + otherwise return FALSE. The output parameters, FILENAME_PTR and LINENUMBER_PTR, are pointers to the objects to be filled in. */ -static boolean +static bfd_boolean lookup_address_in_line_info_table (table, addr, function, filename_ptr, linenumber_ptr) struct line_info_table* table; @@ -1329,7 +1329,7 @@ lookup_address_in_line_info_table (table *filename_ptr = NULL; if (!next_line) - return false; + return FALSE; each_line = next_line->prev_line; @@ -1343,10 +1343,10 @@ lookup_address_in_line_info_table (table /* If we have an address match, save this info. This allows us to return as good as results as possible for strange debugging info. */ - boolean addr_match = false; + bfd_boolean addr_match = FALSE; if (each_line->address <= addr && addr <= next_line->address) { - addr_match = true; + addr_match = TRUE; /* If this line appears to span functions, and addr is in the later function, return the first line of that function instead @@ -1367,7 +1367,7 @@ lookup_address_in_line_info_table (table } if (addr_match && !each_line->end_sequence) - return true; /* we have definitely found what we want */ + return TRUE; /* we have definitely found what we want */ next_line = each_line; each_line = each_line->prev_line; @@ -1383,17 +1383,17 @@ lookup_address_in_line_info_table (table { *filename_ptr = next_line->filename; *linenumber_ptr = next_line->line; - return true; + return TRUE; } - return false; + return FALSE; } /* Function table functions. */ -/* If ADDR is within TABLE, set FUNCTIONNAME_PTR, and return true. */ +/* If ADDR is within TABLE, set FUNCTIONNAME_PTR, and return TRUE. */ -static boolean +static bfd_boolean lookup_address_in_function_table (table, addr, function_ptr, functionname_ptr) struct funcinfo* table; @@ -1411,11 +1411,11 @@ lookup_address_in_function_table (table, { *functionname_ptr = each_func->name; *function_ptr = each_func; - return true; + return TRUE; } } - return false; + return FALSE; } /* DWARF2 Compilation unit functions. */ @@ -1423,7 +1423,7 @@ lookup_address_in_function_table (table, /* Scan over each die in a comp. unit looking for functions to add to the function table. */ -static boolean +static bfd_boolean scan_unit_for_functions (unit) struct comp_unit *unit; { @@ -1454,7 +1454,7 @@ scan_unit_for_functions (unit) (*_bfd_error_handler) (_("Dwarf Error: Could not find abbrev number %u."), abbrev_number); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (abbrev->tag == DW_TAG_subprogram) @@ -1518,7 +1518,7 @@ scan_unit_for_functions (unit) nesting_level++; } - return true; + return TRUE; } /* Look for a RELA relocation to be applied on OFFSET of section SEC, @@ -1727,9 +1727,9 @@ parse_comp_unit (abfd, stash, unit_lengt return unit; } -/* Return true if UNIT contains the address given by ADDR. */ +/* Return TRUE if UNIT contains the address given by ADDR. */ -static boolean +static bfd_boolean comp_unit_contains_address (unit, addr) struct comp_unit* unit; bfd_vma addr; @@ -1737,18 +1737,18 @@ comp_unit_contains_address (unit, addr) struct arange *arange; if (unit->error) - return false; + return FALSE; arange = &unit->arange; do { if (addr >= arange->low && addr < arange->high) - return true; + return TRUE; arange = arange->next; } while (arange); - return false; + return FALSE; } /* If UNIT contains ADDR, set the output parameters to the values for @@ -1756,10 +1756,10 @@ comp_unit_contains_address (unit, addr) FUNCTIONNAME_PTR, and LINENUMBER_PTR, are pointers to the objects to be filled in. - Return true of UNIT contains ADDR, and no errors were encountered; - false otherwise. */ + Return TRUE if UNIT contains ADDR, and no errors were encountered; + FALSE otherwise. */ -static boolean +static bfd_boolean comp_unit_find_nearest_line (unit, addr, filename_ptr, functionname_ptr, linenumber_ptr, stash) struct comp_unit* unit; @@ -1769,19 +1769,19 @@ comp_unit_find_nearest_line (unit, addr, unsigned int *linenumber_ptr; struct dwarf2_debug *stash; { - boolean line_p; - boolean func_p; + bfd_boolean line_p; + bfd_boolean func_p; struct funcinfo *function; if (unit->error) - return false; + return FALSE; if (! unit->line_table) { if (! unit->stmtlist) { unit->error = 1; - return false; + return FALSE; } unit->line_table = decode_line_info (unit, stash); @@ -1789,14 +1789,14 @@ comp_unit_find_nearest_line (unit, addr, if (! unit->line_table) { unit->error = 1; - return false; + return FALSE; } if (unit->first_child_die_ptr < unit->end_ptr && ! scan_unit_for_functions (unit)) { unit->error = 1; - return false; + return FALSE; } } @@ -1806,7 +1806,7 @@ comp_unit_find_nearest_line (unit, addr, line_p = lookup_address_in_line_info_table (unit->line_table, addr, function, filename_ptr, linenumber_ptr); - return (boolean) (line_p || func_p); + return line_p || func_p; } /* Locate a section in a BFD containing debugging info. The search starts @@ -1847,13 +1847,13 @@ find_debug_info (abfd, after_sec) return NULL; } -/* The DWARF2 version of find_nearest line. Return true if the line +/* The DWARF2 version of find_nearest line. Return TRUE if the line is found without error. ADDR_SIZE is the number of bytes in the initial .debug_info length field and in the abbreviation offset. You may use zero to indicate that the default value should be used. */ -boolean +bfd_boolean _bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, linenumber_ptr, addr_size, pinfo) @@ -1901,7 +1901,7 @@ _bfd_dwarf2_find_nearest_line (abfd, sec stash = (struct dwarf2_debug*) bfd_zalloc (abfd, amt); if (! stash) - return false; + return FALSE; *pinfo = (PTR) stash; @@ -1910,7 +1910,7 @@ _bfd_dwarf2_find_nearest_line (abfd, sec /* No dwarf2 info. Note that at this point the stash has been allocated, but contains zeros, this lets future calls to this function fail quicker. */ - return false; + return FALSE; /* There can be more than one DWARF2 info section in a BFD these days. Read them all in and produce one large stash. We do this in two @@ -1922,7 +1922,7 @@ _bfd_dwarf2_find_nearest_line (abfd, sec stash->info_ptr = (char *) bfd_alloc (abfd, total_size); if (stash->info_ptr == NULL) - return false; + return FALSE; stash->info_ptr_end = stash->info_ptr; @@ -1971,7 +1971,7 @@ _bfd_dwarf2_find_nearest_line (abfd, sec /* A null info_ptr indicates that there is no dwarf2 info (or that an error occured while setting up the stash). */ if (! stash->info_ptr) - return false; + return FALSE; /* Check the previously read comp. units first. */ for (each = stash->all_comp_units; each; each = each->next_unit) @@ -1984,7 +1984,7 @@ _bfd_dwarf2_find_nearest_line (abfd, sec while (stash->info_ptr < stash->info_ptr_end) { bfd_vma length; - boolean found; + bfd_boolean found; unsigned int offset_size = addr_size; if (addr_size == 4) @@ -2047,11 +2047,11 @@ _bfd_dwarf2_find_nearest_line (abfd, sec linenumber_ptr, stash); if (found) - return true; + return TRUE; } } } } - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/bfd/ecoff.c binutils-2.13.90.0.18/bfd/ecoff.c --- binutils-2.13.90.0.16/bfd/ecoff.c Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/bfd/ecoff.c Mon Dec 16 12:22:51 2002 @@ -46,19 +46,32 @@ /* Prototypes for static functions. */ -static int ecoff_get_magic PARAMS ((bfd *)); -static long ecoff_sec_to_styp_flags PARAMS ((const char *, flagword)); -static boolean ecoff_slurp_symbolic_header PARAMS ((bfd *)); -static boolean ecoff_set_symbol_info PARAMS ((bfd *, SYMR *, asymbol *, int, int)); -static void ecoff_emit_aggregate PARAMS ((bfd *, FDR *, char *, RNDXR *, long, const char *)); -static char *ecoff_type_to_string PARAMS ((bfd *, FDR *, unsigned int)); -static boolean ecoff_slurp_reloc_table PARAMS ((bfd *, asection *, asymbol **)); -static int ecoff_sort_hdrs PARAMS ((const PTR, const PTR)); -static boolean ecoff_compute_section_file_positions PARAMS ((bfd *)); -static bfd_size_type ecoff_compute_reloc_file_positions PARAMS ((bfd *)); -static boolean ecoff_get_extr PARAMS ((asymbol *, EXTR *)); -static void ecoff_set_index PARAMS ((asymbol *, bfd_size_type)); -static unsigned int ecoff_armap_hash PARAMS ((const char *, unsigned int *, unsigned int, unsigned int)); +static int ecoff_get_magic + PARAMS ((bfd *)); +static long ecoff_sec_to_styp_flags + PARAMS ((const char *, flagword)); +static bfd_boolean ecoff_slurp_symbolic_header + PARAMS ((bfd *)); +static bfd_boolean ecoff_set_symbol_info + PARAMS ((bfd *, SYMR *, asymbol *, int, int)); +static void ecoff_emit_aggregate + PARAMS ((bfd *, FDR *, char *, RNDXR *, long, const char *)); +static char *ecoff_type_to_string + PARAMS ((bfd *, FDR *, unsigned int)); +static bfd_boolean ecoff_slurp_reloc_table + PARAMS ((bfd *, asection *, asymbol **)); +static int ecoff_sort_hdrs + PARAMS ((const PTR, const PTR)); +static bfd_boolean ecoff_compute_section_file_positions + PARAMS ((bfd *)); +static bfd_size_type ecoff_compute_reloc_file_positions + PARAMS ((bfd *)); +static bfd_boolean ecoff_get_extr + PARAMS ((asymbol *, EXTR *)); +static void ecoff_set_index + PARAMS ((asymbol *, bfd_size_type)); +static unsigned int ecoff_armap_hash + PARAMS ((const char *, unsigned int *, unsigned int, unsigned int)); /* This stuff is somewhat copied from coffcode.h. */ @@ -90,7 +103,7 @@ static asection bfd_debug_section = /* Create an ECOFF object. */ -boolean +bfd_boolean _bfd_ecoff_mkobject (abfd) bfd *abfd; { @@ -98,9 +111,9 @@ _bfd_ecoff_mkobject (abfd) abfd->tdata.ecoff_obj_data = (struct ecoff_tdata *) bfd_zalloc (abfd, amt); if (abfd->tdata.ecoff_obj_data == NULL) - return false; + return FALSE; - return true; + return TRUE; } /* This is a hook called by coff_real_object_p to create any backend @@ -151,7 +164,7 @@ _bfd_ecoff_mkobject_hook (abfd, filehdr, /* Initialize a new section. */ -boolean +bfd_boolean _bfd_ecoff_new_section_hook (abfd, section) bfd *abfd ATTRIBUTE_UNUSED; asection *section; @@ -182,7 +195,7 @@ _bfd_ecoff_new_section_hook (abfd, secti uncertain about .init on some systems and I don't know how shared libraries work. */ - return true; + return TRUE; } /* Determine the machine architecture and type. This is called from @@ -190,7 +203,7 @@ _bfd_ecoff_new_section_hook (abfd, secti below. This could be an ECOFF backend routine, with one version for each target, but there aren't all that many ECOFF targets. */ -boolean +bfd_boolean _bfd_ecoff_set_arch_mach_hook (abfd, filehdr) bfd *abfd; PTR filehdr; @@ -360,7 +373,7 @@ ecoff_sec_to_styp_flags (name, flags) /* Get the BFD flags to use for a section. */ -boolean +bfd_boolean _bfd_ecoff_styp_to_sec_flags (abfd, hdr, name, section, flags_ptr) bfd *abfd ATTRIBUTE_UNUSED; PTR hdr; @@ -425,12 +438,12 @@ _bfd_ecoff_styp_to_sec_flags (abfd, hdr, sec_flags |= SEC_ALLOC | SEC_LOAD; * flags_ptr = sec_flags; - return true; + return TRUE; } /* Read in the symbolic header for an ECOFF object file. */ -static boolean +static bfd_boolean ecoff_slurp_symbolic_header (abfd) bfd *abfd; { @@ -442,13 +455,13 @@ ecoff_slurp_symbolic_header (abfd) /* See if we've already read it in. */ if (ecoff_data (abfd)->debug_info.symbolic_header.magic == backend->debug_swap.sym_magic) - return true; + return TRUE; /* See whether there is a symbolic header. */ if (ecoff_data (abfd)->sym_filepos == 0) { bfd_get_symcount (abfd) = 0; - return true; + return TRUE; } /* At this point bfd_get_symcount (abfd) holds the number of symbols @@ -459,7 +472,7 @@ ecoff_slurp_symbolic_header (abfd) if (bfd_get_symcount (abfd) != external_hdr_size) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Read the symbolic information header. */ @@ -485,18 +498,18 @@ ecoff_slurp_symbolic_header (abfd) if (raw != NULL) free (raw); - return true; + return TRUE; error_return: if (raw != NULL) free (raw); - return false; + return FALSE; } /* Read in and swap the important symbolic information for an ECOFF object file. This is called by gdb via the read_debug_info entry point in the backend structure. */ -boolean +bfd_boolean _bfd_ecoff_slurp_symbolic_info (abfd, ignore, debug) bfd *abfd; asection *ignore ATTRIBUTE_UNUSED; @@ -521,15 +534,15 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ig /* Check whether we've already gotten it, and whether there's any to get. */ if (ecoff_data (abfd)->raw_syments != (PTR) NULL) - return true; + return TRUE; if (ecoff_data (abfd)->sym_filepos == 0) { bfd_get_symcount (abfd) = 0; - return true; + return TRUE; } if (! ecoff_slurp_symbolic_header (abfd)) - return false; + return FALSE; internal_symhdr = &debug->symbolic_header; @@ -569,11 +582,11 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ig if (raw_size == 0) { ecoff_data (abfd)->sym_filepos = 0; - return true; + return TRUE; } raw = (PTR) bfd_alloc (abfd, raw_size); if (raw == NULL) - return false; + return FALSE; pos = ecoff_data (abfd)->sym_filepos; pos += backend->debug_swap.external_hdr_size; @@ -581,7 +594,7 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ig || bfd_bread (raw, raw_size, abfd) != raw_size) { bfd_release (abfd, raw); - return false; + return FALSE; } ecoff_data (abfd)->raw_syments = raw; @@ -620,7 +633,7 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ig amt *= sizeof (struct fdr); debug->fdr = (struct fdr *) bfd_alloc (abfd, amt); if (debug->fdr == NULL) - return false; + return FALSE; external_fdr_size = backend->debug_swap.external_fdr_size; fdr_ptr = debug->fdr; fraw_src = (char *) debug->external_fdr; @@ -628,7 +641,7 @@ _bfd_ecoff_slurp_symbolic_info (abfd, ig for (; fraw_src < fraw_end; fraw_src += external_fdr_size, fdr_ptr++) (*backend->debug_swap.swap_fdr_in) (abfd, (PTR) fraw_src, fdr_ptr); - return true; + return TRUE; } /* ECOFF symbol table routines. The ECOFF symbol table is described @@ -657,7 +670,7 @@ _bfd_ecoff_make_empty_symbol (abfd) return (asymbol *) NULL; new->symbol.section = (asection *) NULL; new->fdr = (FDR *) NULL; - new->local = false; + new->local = FALSE; new->native = NULL; new->symbol.the_bfd = abfd; return &new->symbol; @@ -665,7 +678,7 @@ _bfd_ecoff_make_empty_symbol (abfd) /* Set the BFD flags and section for an ECOFF symbol. */ -static boolean +static bfd_boolean ecoff_set_symbol_info (abfd, ecoff_sym, asym, ext, weak) bfd *abfd; SYMR *ecoff_sym; @@ -691,12 +704,12 @@ ecoff_set_symbol_info (abfd, ecoff_sym, if (ECOFF_IS_STAB (ecoff_sym)) { asym->flags = BSF_DEBUGGING; - return true; + return TRUE; } break; default: asym->flags = BSF_DEBUGGING; - return true; + return TRUE; } if (weak) @@ -877,7 +890,7 @@ ecoff_set_symbol_info (abfd, ecoff_sym, amt = strlen (name) + 1; copy = (char *) bfd_alloc (abfd, amt); if (!copy) - return false; + return FALSE; strcpy (copy, name); section = bfd_make_section (abfd, copy); } @@ -886,7 +899,7 @@ ecoff_set_symbol_info (abfd, ecoff_sym, amt = sizeof (arelent_chain); reloc_chain = (arelent_chain *) bfd_alloc (abfd, amt); if (!reloc_chain) - return false; + return FALSE; reloc_chain->relent.sym_ptr_ptr = bfd_get_section (asym)->symbol_ptr_ptr; reloc_chain->relent.address = section->_raw_size; @@ -919,12 +932,12 @@ ecoff_set_symbol_info (abfd, ecoff_sym, break; } } - return true; + return TRUE; } /* Read an ECOFF symbol table. */ -boolean +bfd_boolean _bfd_ecoff_slurp_symbol_table (abfd) bfd *abfd; { @@ -947,20 +960,20 @@ _bfd_ecoff_slurp_symbol_table (abfd) /* If we've already read in the symbol table, do nothing. */ if (ecoff_data (abfd)->canonical_symbols != NULL) - return true; + return TRUE; /* Get the symbolic information. */ if (! _bfd_ecoff_slurp_symbolic_info (abfd, (asection *) NULL, &ecoff_data (abfd)->debug_info)) - return false; + return FALSE; if (bfd_get_symcount (abfd) == 0) - return true; + return TRUE; internal_size = bfd_get_symcount (abfd); internal_size *= sizeof (ecoff_symbol_type); internal = (ecoff_symbol_type *) bfd_alloc (abfd, internal_size); if (internal == NULL) - return false; + return FALSE; internal_ptr = internal; eraw_src = (char *) ecoff_data (abfd)->debug_info.external_ext; @@ -977,14 +990,14 @@ _bfd_ecoff_slurp_symbol_table (abfd) if (!ecoff_set_symbol_info (abfd, &internal_esym.asym, &internal_ptr->symbol, 1, internal_esym.weakext)) - return false; + return FALSE; /* The alpha uses a negative ifd field for section symbols. */ if (internal_esym.ifd >= 0) internal_ptr->fdr = (ecoff_data (abfd)->debug_info.fdr + internal_esym.ifd); else internal_ptr->fdr = NULL; - internal_ptr->local = false; + internal_ptr->local = FALSE; internal_ptr->native = (PTR) eraw_src; } @@ -1012,16 +1025,16 @@ _bfd_ecoff_slurp_symbol_table (abfd) + internal_sym.iss); if (!ecoff_set_symbol_info (abfd, &internal_sym, &internal_ptr->symbol, 0, 0)) - return false; + return FALSE; internal_ptr->fdr = fdr_ptr; - internal_ptr->local = true; + internal_ptr->local = TRUE; internal_ptr->native = (PTR) lraw_src; } } ecoff_data (abfd)->canonical_symbols = internal; - return true; + return TRUE; } /* Return the amount of space needed for the canonical symbols. */ @@ -1443,7 +1456,7 @@ _bfd_ecoff_get_symbol_info (abfd, symbol /* Return whether this is a local label. */ -boolean +bfd_boolean _bfd_ecoff_bfd_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -1642,7 +1655,7 @@ _bfd_ecoff_print_symbol (abfd, filep, sy /* Read in the relocs for a section. */ -static boolean +static bfd_boolean ecoff_slurp_reloc_table (abfd, section, symbols) bfd *abfd; asection *section; @@ -1659,10 +1672,10 @@ ecoff_slurp_reloc_table (abfd, section, if (section->relocation != (arelent *) NULL || section->reloc_count == 0 || (section->flags & SEC_CONSTRUCTOR) != 0) - return true; + return TRUE; if (! _bfd_ecoff_slurp_symbol_table (abfd)) - return false; + return FALSE; amt = section->reloc_count; amt *= sizeof (arelent); @@ -1673,11 +1686,11 @@ ecoff_slurp_reloc_table (abfd, section, external_relocs = (char *) bfd_alloc (abfd, amt); if (internal_relocs == (arelent *) NULL || external_relocs == (char *) NULL) - return false; + return FALSE; if (bfd_seek (abfd, section->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bread (external_relocs, amt, abfd) != amt) - return false; + return FALSE; for (i = 0, rptr = internal_relocs; i < section->reloc_count; i++, rptr++) { @@ -1747,7 +1760,7 @@ ecoff_slurp_reloc_table (abfd, section, section->relocation = internal_relocs; - return true; + return TRUE; } /* Get a canonical list of relocs. */ @@ -1795,7 +1808,7 @@ _bfd_ecoff_canonicalize_reloc (abfd, sec and return the name of the source file and the line nearest to the wanted location. */ -boolean +bfd_boolean _bfd_ecoff_find_nearest_line (abfd, section, ignore_symbols, offset, filename_ptr, functionname_ptr, retline_ptr) bfd *abfd; @@ -1814,7 +1827,7 @@ _bfd_ecoff_find_nearest_line (abfd, sect /* Make sure we have the FDR's. */ if (! _bfd_ecoff_slurp_symbolic_info (abfd, (asection *) NULL, debug_info) || bfd_get_symcount (abfd) == 0) - return false; + return FALSE; if (ecoff_data (abfd)->find_line_info == NULL) { @@ -1822,7 +1835,7 @@ _bfd_ecoff_find_nearest_line (abfd, sect ecoff_data (abfd)->find_line_info = (struct ecoff_find_line *) bfd_zalloc (abfd, amt); if (ecoff_data (abfd)->find_line_info == NULL) - return false; + return FALSE; } line_info = ecoff_data (abfd)->find_line_info; @@ -1844,7 +1857,7 @@ _bfd_ecoff_find_nearest_line (abfd, sect the symbol table, so this function only handles the other debugging information. */ -boolean +bfd_boolean _bfd_ecoff_bfd_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -1854,13 +1867,13 @@ _bfd_ecoff_bfd_copy_private_bfd_data (ib register int i; asymbol **sym_ptr_ptr; size_t c; - boolean local; + bfd_boolean local; /* We only want to copy information over if both BFD's use ECOFF format. */ if (bfd_get_flavour (ibfd) != bfd_target_ecoff_flavour || bfd_get_flavour (obfd) != bfd_target_ecoff_flavour) - return true; + return TRUE; /* Copy the GP value and the register masks. */ ecoff_data (obfd)->gp = ecoff_data (ibfd)->gp; @@ -1876,15 +1889,15 @@ _bfd_ecoff_bfd_copy_private_bfd_data (ib c = bfd_get_symcount (obfd); sym_ptr_ptr = bfd_get_outsymbols (obfd); if (c == 0 || sym_ptr_ptr == (asymbol **) NULL) - return true; + return TRUE; /* See if there are any local symbols. */ - local = false; + local = FALSE; for (; c > 0; c--, sym_ptr_ptr++) { if (ecoffsymbol (*sym_ptr_ptr)->local) { - local = true; + local = TRUE; break; } } @@ -1947,14 +1960,14 @@ _bfd_ecoff_bfd_copy_private_bfd_data (ib } } - return true; + return TRUE; } /* Set the architecture. The supported architecture is stored in the backend pointer. We always set the architecture anyhow, since many callers ignore the return value. */ -boolean +bfd_boolean _bfd_ecoff_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; @@ -1969,7 +1982,7 @@ _bfd_ecoff_set_arch_mach (abfd, arch, ma int _bfd_ecoff_sizeof_headers (abfd, reloc) bfd *abfd; - boolean reloc ATTRIBUTE_UNUSED; + bfd_boolean reloc ATTRIBUTE_UNUSED; { asection *current; int c; @@ -1989,7 +2002,7 @@ _bfd_ecoff_sizeof_headers (abfd, reloc) /* Get the contents of a section. */ -boolean +bfd_boolean _bfd_ecoff_get_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -2033,7 +2046,7 @@ ecoff_sort_hdrs (arg1, arg2) /* Calculate the file position for each section, and set reloc_filepos. */ -static boolean +static bfd_boolean ecoff_compute_section_file_positions (abfd) bfd *abfd; { @@ -2042,12 +2055,12 @@ ecoff_compute_section_file_positions (ab asection *current; unsigned int i; file_ptr old_sofar; - boolean rdata_in_text; - boolean first_data, first_nonalloc; + bfd_boolean rdata_in_text; + bfd_boolean first_data, first_nonalloc; const bfd_vma round = ecoff_backend (abfd)->round; bfd_size_type amt; - sofar = _bfd_ecoff_sizeof_headers (abfd, false); + sofar = _bfd_ecoff_sizeof_headers (abfd, FALSE); file_sofar = sofar; /* Sort the sections by VMA. */ @@ -2055,7 +2068,7 @@ ecoff_compute_section_file_positions (ab amt *= sizeof (asection *); sorted_hdrs = (asection **) bfd_malloc (amt); if (sorted_hdrs == NULL) - return false; + return FALSE; for (current = abfd->sections, i = 0; current != NULL; current = current->next, i++) @@ -2079,15 +2092,15 @@ ecoff_compute_section_file_positions (ab && strcmp (current->name, _PDATA) != 0 && strcmp (current->name, _RCONST) != 0) { - rdata_in_text = false; + rdata_in_text = FALSE; break; } } } ecoff_data (abfd)->rdata_in_text = rdata_in_text; - first_data = true; - first_nonalloc = true; + first_data = TRUE; + first_nonalloc = TRUE; for (i = 0; i < abfd->section_count; i++) { unsigned int alignment_power; @@ -2120,7 +2133,7 @@ ecoff_compute_section_file_positions (ab { sofar = (sofar + round - 1) &~ (round - 1); file_sofar = (file_sofar + round - 1) &~ (round - 1); - first_data = false; + first_data = FALSE; } else if (strcmp (current->name, _LIB) == 0) { @@ -2138,7 +2151,7 @@ ecoff_compute_section_file_positions (ab /* Skip up to the next page for an unallocated section, such as the .comment section on the Alpha. This leaves room for the .bss section. */ - first_nonalloc = false; + first_nonalloc = FALSE; sofar = (sofar + round - 1) &~ (round - 1); file_sofar = (file_sofar + round - 1) &~ (round - 1); } @@ -2177,7 +2190,7 @@ ecoff_compute_section_file_positions (ab ecoff_data (abfd)->reloc_filepos = file_sofar; - return true; + return TRUE; } /* Determine the location of the relocs for all the sections in the @@ -2199,7 +2212,7 @@ ecoff_compute_reloc_file_positions (abfd { if (! ecoff_compute_section_file_positions (abfd)) abort (); - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; } reloc_base = ecoff_data (abfd)->reloc_filepos; @@ -2239,7 +2252,7 @@ ecoff_compute_reloc_file_positions (abfd /* Set the contents of a section. */ -boolean +bfd_boolean _bfd_ecoff_set_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -2250,11 +2263,11 @@ _bfd_ecoff_set_section_contents (abfd, s file_ptr pos; /* This must be done first, because bfd_set_section_contents is - going to set output_has_begun to true. */ + going to set output_has_begun to TRUE. */ if (! abfd->output_has_begun) { if (! ecoff_compute_section_file_positions (abfd)) - return false; + return FALSE; } /* Handle the .lib section specially so that Irix 4 shared libraries @@ -2275,14 +2288,14 @@ _bfd_ecoff_set_section_contents (abfd, s } if (count == 0) - return true; + return TRUE; pos = section->filepos + offset; if (bfd_seek (abfd, pos, SEEK_SET) != 0 || bfd_bwrite (location, count, abfd) != count) - return false; + return FALSE; - return true; + return TRUE; } /* Get the GP value for an ECOFF file. This is a hook used by @@ -2305,7 +2318,7 @@ bfd_ecoff_get_gp_value (abfd) /* Set the GP value for an ECOFF file. This is a hook used by the assembler. */ -boolean +bfd_boolean bfd_ecoff_set_gp_value (abfd, gp_value) bfd *abfd; bfd_vma gp_value; @@ -2314,18 +2327,18 @@ bfd_ecoff_set_gp_value (abfd, gp_value) || bfd_get_format (abfd) != bfd_object) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } ecoff_data (abfd)->gp = gp_value; - return true; + return TRUE; } /* Set the register masks for an ECOFF file. This is a hook used by the assembler. */ -boolean +bfd_boolean bfd_ecoff_set_regmasks (abfd, gprmask, fprmask, cprmask) bfd *abfd; unsigned long gprmask; @@ -2338,7 +2351,7 @@ bfd_ecoff_set_regmasks (abfd, gprmask, f || bfd_get_format (abfd) != bfd_object) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } tdata = ecoff_data (abfd); @@ -2352,13 +2365,13 @@ bfd_ecoff_set_regmasks (abfd, gprmask, f tdata->cprmask[i] = cprmask[i]; } - return true; + return TRUE; } /* Get ECOFF EXTR information for an external symbol. This function is passed to bfd_ecoff_debug_externals. */ -static boolean +static bfd_boolean ecoff_get_extr (sym, esym) asymbol *sym; EXTR *esym; @@ -2373,7 +2386,7 @@ ecoff_get_extr (sym, esym) if ((sym->flags & BSF_DEBUGGING) != 0 || (sym->flags & BSF_LOCAL) != 0 || (sym->flags & BSF_SECTION_SYM) != 0) - return false; + return FALSE; esym->jmptbl = 0; esym->cobol_main = 0; @@ -2385,13 +2398,13 @@ ecoff_get_extr (sym, esym) esym->asym.sc = scAbs; esym->asym.reserved = 0; esym->asym.index = indexNil; - return true; + return TRUE; } ecoff_sym_ptr = ecoffsymbol (sym); if (ecoff_sym_ptr->local) - return false; + return FALSE; input_bfd = bfd_asymbol_bfd (sym); (*(ecoff_backend (input_bfd)->debug_swap.swap_ext_in)) @@ -2417,7 +2430,7 @@ ecoff_get_extr (sym, esym) esym->ifd = input_debug->ifdmap[esym->ifd]; } - return true; + return TRUE; } /* Set the external symbol index. This routine is passed to @@ -2433,7 +2446,7 @@ ecoff_set_index (sym, indx) /* Write out an ECOFF file. */ -boolean +bfd_boolean _bfd_ecoff_write_object_contents (abfd) bfd *abfd; { @@ -2445,13 +2458,11 @@ _bfd_ecoff_write_object_contents (abfd) const bfd_size_type external_hdr_size = backend->debug_swap.external_hdr_size; const bfd_size_type external_reloc_size = backend->external_reloc_size; - void (* const adjust_reloc_out) PARAMS ((bfd *, - const arelent *, - struct internal_reloc *)) + void (* const adjust_reloc_out) + PARAMS ((bfd *, const arelent *, struct internal_reloc *)) = backend->adjust_reloc_out; - void (* const swap_reloc_out) PARAMS ((bfd *, - const struct internal_reloc *, - PTR)) + void (* const swap_reloc_out) + PARAMS ((bfd *, const struct internal_reloc *, PTR)) = backend->swap_reloc_out; struct ecoff_debug_info * const debug = &ecoff_data (abfd)->debug_info; HDRR * const symhdr = &debug->symbolic_header; @@ -2460,10 +2471,10 @@ _bfd_ecoff_write_object_contents (abfd) bfd_size_type reloc_size; bfd_size_type text_size; bfd_vma text_start; - boolean set_text_start; + bfd_boolean set_text_start; bfd_size_type data_size; bfd_vma data_start; - boolean set_data_start; + bfd_boolean set_data_start; bfd_size_type bss_size; PTR buff = NULL; PTR reloc_buff = NULL; @@ -2485,14 +2496,14 @@ _bfd_ecoff_write_object_contents (abfd) } if ((abfd->flags & D_PAGED) != 0) - text_size = _bfd_ecoff_sizeof_headers (abfd, false); + text_size = _bfd_ecoff_sizeof_headers (abfd, FALSE); else text_size = 0; text_start = 0; - set_text_start = false; + set_text_start = FALSE; data_size = 0; data_start = 0; - set_data_start = false; + set_data_start = FALSE; bss_size = 0; /* Write section headers to the file. */ @@ -2588,7 +2599,7 @@ _bfd_ecoff_write_object_contents (abfd) if (! set_text_start || text_start > vma) { text_start = vma; - set_text_start = true; + set_text_start = TRUE; } } else if ((section.s_flags & STYP_RDATA) != 0 @@ -2604,7 +2615,7 @@ _bfd_ecoff_write_object_contents (abfd) if (! set_data_start || data_start > vma) { data_start = vma; - set_data_start = true; + set_data_start = TRUE; } } else if ((section.s_flags & STYP_BSS) != 0 @@ -2870,13 +2881,13 @@ _bfd_ecoff_write_object_contents (abfd) bfd_release (abfd, reloc_buff); if (buff != NULL) free (buff); - return true; + return TRUE; error_return: if (reloc_buff != NULL) bfd_release (abfd, reloc_buff); if (buff != NULL) free (buff); - return false; + return FALSE; } /* Archive handling. ECOFF uses what appears to be a unique type of @@ -2949,7 +2960,7 @@ ecoff_armap_hash (s, rehash, size, hlog) /* Read in the armap. */ -boolean +bfd_boolean _bfd_ecoff_slurp_armap (abfd) bfd *abfd; { @@ -2968,12 +2979,12 @@ _bfd_ecoff_slurp_armap (abfd) /* Get the name of the first element. */ i = bfd_bread ((PTR) nextname, (bfd_size_type) 16, abfd); if (i == 0) - return true; + return TRUE; if (i != 16) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) - return false; + return FALSE; /* Irix 4.0.5F apparently can use either an ECOFF armap or a standard COFF armap. We could move the ECOFF armap stuff into @@ -2995,8 +3006,8 @@ _bfd_ecoff_slurp_armap (abfd) || strncmp (nextname + ARMAP_END_INDEX, ARMAP_END, sizeof ARMAP_END - 1) != 0) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } /* Make sure we have the right byte ordering. */ @@ -3006,27 +3017,27 @@ _bfd_ecoff_slurp_armap (abfd) ^ (bfd_big_endian (abfd)))) { bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } /* Read in the armap. */ ardata = bfd_ardata (abfd); mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd); if (mapdata == (struct areltdata *) NULL) - return false; + return FALSE; parsed_size = mapdata->parsed_size; bfd_release (abfd, (PTR) mapdata); raw_armap = (char *) bfd_alloc (abfd, parsed_size); if (raw_armap == (char *) NULL) - return false; + return FALSE; if (bfd_bread ((PTR) raw_armap, parsed_size, abfd) != parsed_size) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_malformed_archive); bfd_release (abfd, (PTR) raw_armap); - return false; + return FALSE; } ardata->tdata = (PTR) raw_armap; @@ -3086,7 +3097,7 @@ _bfd_ecoff_slurp_armap (abfd) amt *= sizeof (struct symdef); symdef_ptr = (struct symdef *) bfd_alloc (abfd, amt); if (!symdef_ptr) - return false; + return FALSE; ardata->symdefs = (carsym *) symdef_ptr; @@ -3108,14 +3119,14 @@ _bfd_ecoff_slurp_armap (abfd) /* Pad to an even boundary. */ ardata->first_file_filepos += ardata->first_file_filepos % 2; - bfd_has_map (abfd) = true; + bfd_has_map (abfd) = TRUE; - return true; + return TRUE; } /* Write out an armap. */ -boolean +bfd_boolean _bfd_ecoff_write_armap (abfd, elength, map, orl_count, stridx) bfd *abfd; unsigned int elength; @@ -3199,15 +3210,15 @@ _bfd_ecoff_write_armap (abfd, elength, m if (bfd_bwrite ((PTR) &hdr, (bfd_size_type) sizeof (struct ar_hdr), abfd) != sizeof (struct ar_hdr)) - return false; + return FALSE; H_PUT_32 (abfd, hashsize, temp); if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; hashtable = (bfd_byte *) bfd_zalloc (abfd, symdefsize); if (!hashtable) - return false; + return FALSE; current = abfd->archive_head; last_elt = current; @@ -3252,21 +3263,21 @@ _bfd_ecoff_write_armap (abfd, elength, m } if (bfd_bwrite ((PTR) hashtable, symdefsize, abfd) != symdefsize) - return false; + return FALSE; bfd_release (abfd, hashtable); /* Now write the strings. */ H_PUT_32 (abfd, stringsize, temp); if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; for (i = 0; i < orl_count; i++) { bfd_size_type len; len = strlen (*map[i].name) + 1; if (bfd_bwrite ((PTR) (*map[i].name), len, abfd) != len) - return false; + return FALSE; } /* The spec sez this should be a newline. But in order to be @@ -3274,10 +3285,10 @@ _bfd_ecoff_write_armap (abfd, elength, m if (padit) { if (bfd_bwrite ("", (bfd_size_type) 1, abfd) != 1) - return false; + return FALSE; } - return true; + return TRUE; } /* See whether this BFD is an archive. If it is, read in the armap @@ -3343,7 +3354,7 @@ _bfd_ecoff_archive_p (abfd) first = bfd_openr_next_archived_file (abfd, (bfd *) NULL); if (first != NULL) { - first->target_defaulted = false; + first->target_defaulted = FALSE; if (bfd_check_format (first, bfd_object) && first->xvec != abfd->xvec) { @@ -3372,13 +3383,13 @@ static struct bfd_hash_entry *ecoff_link PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table, const char *string)); -static boolean ecoff_link_add_archive_symbols +static bfd_boolean ecoff_link_add_archive_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean ecoff_link_check_archive_element - PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded)); -static boolean ecoff_link_add_object_symbols +static bfd_boolean ecoff_link_check_archive_element + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); +static bfd_boolean ecoff_link_add_object_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean ecoff_link_add_externals +static bfd_boolean ecoff_link_add_externals PARAMS ((bfd *, struct bfd_link_info *, PTR, char *)); /* Routine to create an entry in an ECOFF link hash table. */ @@ -3449,7 +3460,7 @@ _bfd_ecoff_bfd_link_hash_table_create (a #define ecoff_link_hash_traverse(table, func, info) \ (bfd_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ (info))) /* Get the ECOFF link hash table from the info structure. This is @@ -3460,7 +3471,7 @@ _bfd_ecoff_bfd_link_hash_table_create (a /* Given an ECOFF BFD, add symbols to the global hash table as appropriate. */ -boolean +bfd_boolean _bfd_ecoff_bfd_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3473,7 +3484,7 @@ _bfd_ecoff_bfd_link_add_symbols (abfd, i return ecoff_link_add_archive_symbols (abfd, info); default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } } @@ -3484,7 +3495,7 @@ _bfd_ecoff_bfd_link_add_symbols (abfd, i already have a hash table, so there is no reason to construct another one. */ -static boolean +static bfd_boolean ecoff_link_add_archive_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3502,9 +3513,9 @@ ecoff_link_add_archive_symbols (abfd, in { /* An empty archive is a special case. */ if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL) - return true; + return TRUE; bfd_set_error (bfd_error_no_armap); - return false; + return FALSE; } /* If we don't have any raw data for this archive, as can happen on @@ -3582,10 +3593,10 @@ ecoff_link_add_archive_symbols (abfd, in || strcmp (name, h->root.string) != 0) { unsigned int srch; - boolean found; + bfd_boolean found; /* That was the wrong symbol. Try rehashing. */ - found = false; + found = FALSE; for (srch = (hash + rehash) & (armap_count - 1); srch != hash; srch = (srch + rehash) & (armap_count - 1)) @@ -3597,7 +3608,7 @@ ecoff_link_add_archive_symbols (abfd, in if (name[0] == h->root.string[0] && strcmp (name, h->root.string) == 0) { - found = true; + found = TRUE; break; } } @@ -3613,33 +3624,33 @@ ecoff_link_add_archive_symbols (abfd, in element = (*backend->get_elt_at_filepos) (abfd, (file_ptr) file_offset); if (element == (bfd *) NULL) - return false; + return FALSE; if (! bfd_check_format (element, bfd_object)) - return false; + return FALSE; /* Unlike the generic linker, we know that this element provides a definition for an undefined symbol and we know that we want to include it. We don't need to check anything. */ if (! (*info->callbacks->add_archive_element) (info, element, name)) - return false; + return FALSE; if (! ecoff_link_add_object_symbols (element, info)) - return false; + return FALSE; pundef = &(*pundef)->next; } - return true; + return TRUE; } /* This is called if we used _bfd_generic_link_add_archive_symbols because we were not dealing with an ECOFF archive. */ -static boolean +static bfd_boolean ecoff_link_check_archive_element (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { const struct ecoff_backend_data * const backend = ecoff_backend (abfd); void (* const swap_ext_in) PARAMS ((bfd *, PTR, EXTR *)) @@ -3652,7 +3663,7 @@ ecoff_link_check_archive_element (abfd, char *ext_ptr; char *ext_end; - *pneeded = false; + *pneeded = FALSE; if (! ecoff_slurp_symbolic_header (abfd)) goto error_return; @@ -3690,7 +3701,7 @@ ecoff_link_check_archive_element (abfd, for (; ext_ptr < ext_end; ext_ptr += external_ext_size) { EXTR esym; - boolean def; + bfd_boolean def; const char *name; struct bfd_link_hash_entry *h; @@ -3716,10 +3727,10 @@ ecoff_link_check_archive_element (abfd, case scInit: case scFini: case scRConst: - def = true; + def = TRUE; break; default: - def = false; + def = FALSE; break; } @@ -3727,7 +3738,7 @@ ecoff_link_check_archive_element (abfd, continue; name = ssext + esym.asym.iss; - h = bfd_link_hash_lookup (info->hash, name, false, false, true); + h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); /* Unlike the generic linker, we do not pull in elements because of common symbols. */ @@ -3741,7 +3752,7 @@ ecoff_link_check_archive_element (abfd, if (! ecoff_link_add_externals (abfd, info, external_ext, ssext)) goto error_return; - *pneeded = true; + *pneeded = TRUE; goto successful_return; } @@ -3750,19 +3761,19 @@ ecoff_link_check_archive_element (abfd, free (external_ext); if (ssext != NULL) free (ssext); - return true; + return TRUE; error_return: if (external_ext != NULL) free (external_ext); if (ssext != NULL) free (ssext); - return false; + return FALSE; } /* Add symbols from an ECOFF object file to the global linker hash table. */ -static boolean +static bfd_boolean ecoff_link_add_object_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3772,14 +3783,14 @@ ecoff_link_add_object_symbols (abfd, inf PTR external_ext = NULL; bfd_size_type esize; char *ssext = NULL; - boolean result; + bfd_boolean result; if (! ecoff_slurp_symbolic_header (abfd)) - return false; + return FALSE; /* If there are no symbols, we don't want it. */ if (bfd_get_symcount (abfd) == 0) - return true; + return TRUE; symhdr = &ecoff_data (abfd)->debug_info.symbolic_header; @@ -3816,7 +3827,7 @@ ecoff_link_add_object_symbols (abfd, inf free (ssext); if (external_ext != NULL) free (external_ext); - return false; + return FALSE; } /* Add the external symbols of an object file to the global linker @@ -3825,7 +3836,7 @@ ecoff_link_add_object_symbols (abfd, inf explicitly save any information we may need later on in the link. We do not want to read the external symbol information again. */ -static boolean +static bfd_boolean ecoff_link_add_externals (abfd, info, external_ext, ssext) bfd *abfd; struct bfd_link_info *info; @@ -3848,7 +3859,7 @@ ecoff_link_add_externals (abfd, info, ex amt *= sizeof (struct bfd_link_hash_entry *); sym_hash = (struct bfd_link_hash_entry **) bfd_alloc (abfd, amt); if (!sym_hash) - return false; + return FALSE; ecoff_data (abfd)->sym_hashes = (struct ecoff_link_hash_entry **) sym_hash; ext_ptr = (char *) external_ext; @@ -3856,7 +3867,7 @@ ecoff_link_add_externals (abfd, info, ex for (; ext_ptr < ext_end; ext_ptr += external_ext_size, sym_hash++) { EXTR esym; - boolean skip; + bfd_boolean skip; bfd_vma value; asection *section; const char *name; @@ -3867,7 +3878,7 @@ ecoff_link_add_externals (abfd, info, ex (*swap_ext_in) (abfd, (PTR) ext_ptr, &esym); /* Skip debugging symbols. */ - skip = false; + skip = FALSE; switch (esym.asym.st) { case stGlobal: @@ -3877,7 +3888,7 @@ ecoff_link_add_externals (abfd, info, ex case stStaticProc: break; default: - skip = true; + skip = TRUE; break; } @@ -3983,8 +3994,8 @@ ecoff_link_add_externals (abfd, info, ex if (! (_bfd_generic_link_add_one_symbol (info, abfd, name, (flagword) (esym.weakext ? BSF_WEAK : BSF_GLOBAL), - section, value, (const char *) NULL, true, true, sym_hash))) - return false; + section, value, (const char *) NULL, TRUE, TRUE, sym_hash))) + return FALSE; h = (struct ecoff_link_hash_entry *) *sym_hash; @@ -4024,20 +4035,20 @@ ecoff_link_add_externals (abfd, info, ex } } - return true; + return TRUE; } /* ECOFF final link routines. */ -static boolean ecoff_final_link_debug_accumulate +static bfd_boolean ecoff_final_link_debug_accumulate PARAMS ((bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *, PTR handle)); -static boolean ecoff_link_write_external +static bfd_boolean ecoff_link_write_external PARAMS ((struct ecoff_link_hash_entry *, PTR)); -static boolean ecoff_indirect_link_order +static bfd_boolean ecoff_indirect_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); -static boolean ecoff_reloc_link_order +static bfd_boolean ecoff_reloc_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); @@ -4054,7 +4065,7 @@ struct extsym_info processes all the link order information. This may cause it to close and reopen some input BFDs; I'll see how bad this is. */ -boolean +bfd_boolean _bfd_ecoff_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -4101,14 +4112,14 @@ _bfd_ecoff_bfd_final_link (abfd, info) handle = bfd_ecoff_debug_init (abfd, debug, &backend->debug_swap, info); if (handle == (PTR) NULL) - return false; + return FALSE; /* Accumulate the debugging symbols from each input BFD. */ for (input_bfd = info->input_bfds; input_bfd != (bfd *) NULL; input_bfd = input_bfd->link_next) { - boolean ret; + bfd_boolean ret; if (bfd_get_flavour (input_bfd) == bfd_target_ecoff_flavour) { @@ -4125,7 +4136,7 @@ _bfd_ecoff_bfd_final_link (abfd, info) debug, &backend->debug_swap, input_bfd, info); if (! ret) - return false; + return FALSE; /* Combine the register masks. */ ecoff_data (abfd)->gprmask |= ecoff_data (input_bfd)->gprmask; @@ -4169,7 +4180,7 @@ _bfd_ecoff_bfd_final_link (abfd, info) if (! bfd_ecoff_write_accumulated_debug (handle, abfd, debug, &backend->debug_swap, info, ecoff_data (abfd)->sym_filepos)) - return false; + return FALSE; bfd_ecoff_debug_free (handle, abfd, debug, &backend->debug_swap, info); @@ -4187,7 +4198,7 @@ _bfd_ecoff_bfd_final_link (abfd, info) { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && h->type == bfd_link_hash_defined) ecoff_data (abfd)->gp = (h->u.def.value @@ -4230,34 +4241,34 @@ _bfd_ecoff_bfd_final_link (abfd, info) == bfd_target_ecoff_flavour)) { if (! ecoff_indirect_link_order (abfd, info, o, p)) - return false; + return FALSE; } else if (p->type == bfd_section_reloc_link_order || p->type == bfd_symbol_reloc_link_order) { if (! ecoff_reloc_link_order (abfd, info, o, p)) - return false; + return FALSE; } else { if (! _bfd_default_link_order (abfd, info, o, p)) - return false; + return FALSE; } } } bfd_get_symcount (abfd) = symhdr->iextMax + symhdr->isymMax; - ecoff_data (abfd)->linker = true; + ecoff_data (abfd)->linker = TRUE; - return true; + return TRUE; } /* Accumulate the debugging information for an input BFD into the output BFD. This must read in the symbolic information of the input BFD. */ -static boolean +static bfd_boolean ecoff_final_link_debug_accumulate (output_bfd, input_bfd, info, handle) bfd *output_bfd; bfd *input_bfd; @@ -4268,7 +4279,7 @@ ecoff_final_link_debug_accumulate (outpu const struct ecoff_debug_swap * const swap = &ecoff_backend (input_bfd)->debug_swap; HDRR *symhdr = &debug->symbolic_header; - boolean ret; + bfd_boolean ret; #define READ(ptr, offset, count, size, type) \ if (symhdr->count == 0) \ @@ -4279,13 +4290,13 @@ ecoff_final_link_debug_accumulate (outpu debug->ptr = (type) bfd_malloc (amt); \ if (debug->ptr == NULL) \ { \ - ret = false; \ + ret = FALSE; \ goto return_something; \ } \ if (bfd_seek (input_bfd, (file_ptr) symhdr->offset, SEEK_SET) != 0 \ || bfd_bread (debug->ptr, amt, input_bfd) != amt) \ { \ - ret = false; \ + ret = FALSE; \ goto return_something; \ } \ } @@ -4356,37 +4367,37 @@ ecoff_final_link_debug_accumulate (outpu /* Put out information for an external symbol. These come only from the hash table. */ -static boolean +static bfd_boolean ecoff_link_write_external (h, data) struct ecoff_link_hash_entry *h; PTR data; { struct extsym_info *einfo = (struct extsym_info *) data; bfd *output_bfd = einfo->abfd; - boolean strip; + bfd_boolean strip; if (h->root.type == bfd_link_hash_warning) { h = (struct ecoff_link_hash_entry *) h->root.u.i.link; if (h->root.type == bfd_link_hash_new) - return true; + return TRUE; } /* We need to check if this symbol is being stripped. */ if (h->root.type == bfd_link_hash_undefined || h->root.type == bfd_link_hash_undefweak) - strip = false; + strip = FALSE; else if (einfo->info->strip == strip_all || (einfo->info->strip == strip_some && bfd_hash_lookup (einfo->info->keep_hash, h->root.root.string, - false, false) == NULL)) - strip = true; + FALSE, FALSE) == NULL)) + strip = TRUE; else - strip = false; + strip = FALSE; if (strip || h->written) - return true; + return TRUE; if (h->abfd == (bfd *) NULL) { @@ -4484,7 +4495,7 @@ ecoff_link_write_external (h, data) case bfd_link_hash_indirect: /* We ignore these symbols, since the indirected symbol is already in the hash table. */ - return true; + return TRUE; } /* bfd_ecoff_debug_one_external uses iextMax to keep track of the @@ -4500,7 +4511,7 @@ ecoff_link_write_external (h, data) /* Relocate and write an ECOFF section into an ECOFF output file. */ -static boolean +static bfd_boolean ecoff_indirect_link_order (output_bfd, info, output_section, link_order) bfd *output_bfd; struct bfd_link_info *info; @@ -4521,7 +4532,7 @@ ecoff_indirect_link_order (output_bfd, i BFD_ASSERT ((output_section->flags & SEC_HAS_CONTENTS) != 0); if (link_order->size == 0) - return true; + return TRUE; input_section = link_order->u.indirect.section; input_bfd = input_section->owner; @@ -4610,14 +4621,14 @@ ecoff_indirect_link_order (output_bfd, i free (contents); if (external_relocs != NULL && section_tdata == NULL) free (external_relocs); - return true; + return TRUE; error_return: if (contents != NULL) free (contents); if (external_relocs != NULL && section_tdata == NULL) free (external_relocs); - return false; + return FALSE; } /* Generate a reloc when linking an ECOFF file. This is a reloc @@ -4625,7 +4636,7 @@ ecoff_indirect_link_order (output_bfd, i is used to build constructor and destructor tables when linking with -Ur. */ -static boolean +static bfd_boolean ecoff_reloc_link_order (output_bfd, info, output_section, link_order) bfd *output_bfd; struct bfd_link_info *info; @@ -4639,7 +4650,7 @@ ecoff_reloc_link_order (output_bfd, info struct internal_reloc in; bfd_size_type external_reloc_size; bfd_byte *rbuf; - boolean ok; + bfd_boolean ok; file_ptr pos; type = link_order->type; @@ -4654,7 +4665,7 @@ ecoff_reloc_link_order (output_bfd, info if (rel.howto == 0) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (type == bfd_section_reloc_link_order) @@ -4670,7 +4681,7 @@ ecoff_reloc_link_order (output_bfd, info actually against the section. */ h = bfd_wrapped_link_hash_lookup (output_bfd, info, link_order->u.reloc.p->u.name, - false, false, false); + FALSE, FALSE, FALSE); if (h != NULL && (h->type == bfd_link_hash_defined || h->type == bfd_link_hash_defweak)) @@ -4704,7 +4715,7 @@ ecoff_reloc_link_order (output_bfd, info size = bfd_get_reloc_size (rel.howto); buf = (bfd_byte *) bfd_zmalloc (size); if (buf == (bfd_byte *) NULL) - return false; + return FALSE; rstat = _bfd_relocate_contents (rel.howto, output_bfd, (bfd_vma) addend, buf); switch (rstat) @@ -4724,7 +4735,7 @@ ecoff_reloc_link_order (output_bfd, info (asection *) NULL, (bfd_vma) 0))) { free (buf); - return false; + return FALSE; } break; } @@ -4732,7 +4743,7 @@ ecoff_reloc_link_order (output_bfd, info (file_ptr) link_order->offset, size); free (buf); if (! ok) - return false; + return FALSE; } rel.addend = 0; @@ -4749,7 +4760,7 @@ ecoff_reloc_link_order (output_bfd, info h = ((struct ecoff_link_hash_entry *) bfd_wrapped_link_hash_lookup (output_bfd, info, link_order->u.reloc.p->u.name, - false, false, true)); + FALSE, FALSE, TRUE)); if (h != (struct ecoff_link_hash_entry *) NULL && h->indx != -1) in.r_symndx = h->indx; @@ -4758,7 +4769,7 @@ ecoff_reloc_link_order (output_bfd, info if (! ((*info->callbacks->unattached_reloc) (info, link_order->u.reloc.p->u.name, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) - return false; + return FALSE; in.r_symndx = 0; } in.r_extern = 1; @@ -4810,7 +4821,7 @@ ecoff_reloc_link_order (output_bfd, info external_reloc_size = ecoff_backend (output_bfd)->external_reloc_size; rbuf = (bfd_byte *) bfd_malloc (external_reloc_size); if (rbuf == (bfd_byte *) NULL) - return false; + return FALSE; (*ecoff_backend (output_bfd)->swap_reloc_out) (output_bfd, &in, (PTR) rbuf); diff -uprN binutils-2.13.90.0.16/bfd/ecofflink.c binutils-2.13.90.0.18/bfd/ecofflink.c --- binutils-2.13.90.0.16/bfd/ecofflink.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/ecofflink.c Mon Dec 16 12:22:51 2002 @@ -3,21 +3,21 @@ Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support, . -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -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. */ + 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. */ #include "bfd.h" #include "sysdep.h" @@ -32,24 +32,25 @@ Foundation, Inc., 59 Temple Place - Suit #include "libcoff.h" #include "libecoff.h" -static boolean ecoff_add_bytes PARAMS ((char **buf, char **bufend, - size_t need)); +static bfd_boolean ecoff_add_bytes + PARAMS ((char **buf, char **bufend, size_t need)); static struct bfd_hash_entry *string_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static void ecoff_align_debug PARAMS ((bfd *abfd, - struct ecoff_debug_info *debug, - const struct ecoff_debug_swap *swap)); -static boolean ecoff_write_symhdr PARAMS ((bfd *, struct ecoff_debug_info *, - const struct ecoff_debug_swap *, - file_ptr where)); -static int cmp_fdrtab_entry PARAMS ((const PTR, const PTR)); -static boolean mk_fdrtab PARAMS ((bfd *, - struct ecoff_debug_info * const, - const struct ecoff_debug_swap * const, - struct ecoff_find_line *)); -static long fdrtab_lookup PARAMS ((struct ecoff_find_line *, bfd_vma)); -static boolean lookup_line +static void ecoff_align_debug + PARAMS ((bfd *abfd, struct ecoff_debug_info *debug, + const struct ecoff_debug_swap *swap)); +static bfd_boolean ecoff_write_symhdr + PARAMS ((bfd *, struct ecoff_debug_info *, const struct ecoff_debug_swap *, + file_ptr where)); +static int cmp_fdrtab_entry + PARAMS ((const PTR, const PTR)); +static bfd_boolean mk_fdrtab + PARAMS ((bfd *, struct ecoff_debug_info * const, + const struct ecoff_debug_swap * const, struct ecoff_find_line *)); +static long fdrtab_lookup + PARAMS ((struct ecoff_find_line *, bfd_vma)); +static bfd_boolean lookup_line PARAMS ((bfd *, struct ecoff_debug_info * const, const struct ecoff_debug_swap * const, struct ecoff_find_line *)); @@ -253,7 +254,7 @@ _bfd_ecoff_swap_rndx_out (bigend, intern /* Add bytes to a buffer. Return success. */ -static boolean +static bfd_boolean ecoff_add_bytes (buf, bufend, need) char **buf; char **bufend; @@ -274,10 +275,10 @@ ecoff_add_bytes (buf, bufend, need) } newbuf = (char *) bfd_realloc (*buf, (bfd_size_type) have + want); if (newbuf == NULL) - return false; + return FALSE; *buf = newbuf; *bufend = *buf + have + want; - return true; + return TRUE; } /* We keep a hash table which maps strings to numbers. We use it to @@ -347,7 +348,7 @@ struct shuffle /* The length of the information. */ unsigned long size; /* Whether this information comes from a file or not. */ - boolean filep; + bfd_boolean filep; union { struct @@ -400,12 +401,11 @@ struct accumulate /* Add a file entry to a shuffle list. */ -static boolean add_file_shuffle PARAMS ((struct accumulate *, - struct shuffle **, - struct shuffle **, bfd *, file_ptr, - unsigned long)); +static bfd_boolean add_file_shuffle + PARAMS ((struct accumulate *, struct shuffle **, struct shuffle **, + bfd *, file_ptr, unsigned long)); -static boolean +static bfd_boolean add_file_shuffle (ainfo, head, tail, input_bfd, offset, size) struct accumulate *ainfo; struct shuffle **head; @@ -425,7 +425,7 @@ add_file_shuffle (ainfo, head, tail, inp (*tail)->size += size; if ((*tail)->size > ainfo->largest_file_shuffle) ainfo->largest_file_shuffle = (*tail)->size; - return true; + return TRUE; } n = (struct shuffle *) objalloc_alloc (ainfo->memory, @@ -433,11 +433,11 @@ add_file_shuffle (ainfo, head, tail, inp if (!n) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } n->next = NULL; n->size = size; - n->filep = true; + n->filep = TRUE; n->u.file.input_bfd = input_bfd; n->u.file.offset = offset; if (*head == (struct shuffle *) NULL) @@ -447,17 +447,16 @@ add_file_shuffle (ainfo, head, tail, inp *tail = n; if (size > ainfo->largest_file_shuffle) ainfo->largest_file_shuffle = size; - return true; + return TRUE; } /* Add a memory entry to a shuffle list. */ -static boolean add_memory_shuffle PARAMS ((struct accumulate *, - struct shuffle **head, - struct shuffle **tail, - bfd_byte *data, unsigned long size)); +static bfd_boolean add_memory_shuffle + PARAMS ((struct accumulate *, struct shuffle **head, struct shuffle **tail, + bfd_byte *data, unsigned long size)); -static boolean +static bfd_boolean add_memory_shuffle (ainfo, head, tail, data, size) struct accumulate *ainfo; struct shuffle **head; @@ -472,18 +471,18 @@ add_memory_shuffle (ainfo, head, tail, d if (!n) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } n->next = NULL; n->size = size; - n->filep = false; + n->filep = FALSE; n->u.memory = (PTR) data; if (*head == (struct shuffle *) NULL) *head = n; if (*tail != (struct shuffle *) NULL) (*tail)->next = n; *tail = n; - return true; + return TRUE; } /* Initialize the FDR hash table. This returns a handle which is then @@ -576,7 +575,7 @@ bfd_ecoff_debug_free (handle, output_bfd linker information structure. HANDLE is returned by bfd_ecoff_debug_init. */ -boolean +bfd_boolean bfd_ecoff_debug_accumulate (handle, output_bfd, output_debug, output_swap, input_bfd, input_debug, input_swap, info) @@ -672,10 +671,10 @@ bfd_ecoff_debug_accumulate (handle, outp if (!input_debug->ifdmap || !rfd_out) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } if (!add_memory_shuffle (ainfo, &ainfo->rfd, &ainfo->rfd_end, rfd_out, sz)) - return false; + return FALSE; copied = 0; @@ -716,13 +715,13 @@ bfd_ecoff_debug_accumulate (handle, outp lookup = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 20); if (lookup == NULL) - return false; + return FALSE; sprintf (lookup, "%s %lx %lx", name, fdr.csym, fdr.caux); - fh = string_hash_lookup (&ainfo->fdr_hash, lookup, true, true); + fh = string_hash_lookup (&ainfo->fdr_hash, lookup, TRUE, TRUE); free (lookup); if (fh == (struct string_hash_entry *) NULL) - return false; + return FALSE; if (fh->val != -1) { @@ -773,10 +772,10 @@ bfd_ecoff_debug_accumulate (handle, outp if (!fdr_out) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } if (!add_memory_shuffle (ainfo, &ainfo->fdr, &ainfo->fdr_end, fdr_out, sz)) - return false; + return FALSE; for (fdr_ptr = fdr_start, i = 0; fdr_ptr < fdr_end; fdr_ptr += fdr_add, i++) @@ -786,7 +785,7 @@ bfd_ecoff_debug_accumulate (handle, outp bfd_byte *sym_out; bfd_byte *lraw_src; bfd_byte *lraw_end; - boolean fgotfilename; + bfd_boolean fgotfilename; if (input_debug->ifdmap[i] < output_symhdr->ifdMax) { @@ -822,17 +821,17 @@ bfd_ecoff_debug_accumulate (handle, outp /* Swap in the local symbols, adjust their values, and swap them out again. */ - fgotfilename = false; + fgotfilename = FALSE; sz = fdr.csym * external_sym_size; sym_out = (bfd_byte *) objalloc_alloc (ainfo->memory, sz); if (!sym_out) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } if (!add_memory_shuffle (ainfo, &ainfo->sym, &ainfo->sym_end, sym_out, sz)) - return false; + return FALSE; lraw_src = ((bfd_byte *) input_debug->external_sym + fdr.isymBase * input_swap->external_sym_size); lraw_end = lraw_src + fdr.csym * input_swap->external_sym_size; @@ -884,13 +883,13 @@ bfd_ecoff_debug_accumulate (handle, outp prevent us from easily merging different FDR's. */ if (! info->relocateable) { - boolean ffilename; + bfd_boolean ffilename; const char *name; if (! fgotfilename && internal_sym.iss == fdr.rss) - ffilename = true; + ffilename = TRUE; else - ffilename = false; + ffilename = FALSE; /* Hash the name into the string table. */ name = input_debug->ss + fdr.issBase + internal_sym.iss; @@ -900,9 +899,9 @@ bfd_ecoff_debug_accumulate (handle, outp { struct string_hash_entry *sh; - sh = string_hash_lookup (&ainfo->str_hash, name, true, true); + sh = string_hash_lookup (&ainfo->str_hash, name, TRUE, TRUE); if (sh == (struct string_hash_entry *) NULL) - return false; + return FALSE; if (sh->val == -1) { sh->val = output_symhdr->issMax; @@ -920,7 +919,7 @@ bfd_ecoff_debug_accumulate (handle, outp if (ffilename) { fdr.rss = internal_sym.iss; - fgotfilename = true; + fgotfilename = TRUE; } } @@ -942,7 +941,7 @@ bfd_ecoff_debug_accumulate (handle, outp file_ptr pos = input_symhdr->cbLineOffset + fdr.cbLineOffset; if (!add_file_shuffle (ainfo, &ainfo->line, &ainfo->line_end, input_bfd, pos, (unsigned long) fdr.cbLine)) - return false; + return FALSE; fdr.ilineBase = output_symhdr->ilineMax; fdr.cbLineOffset = output_symhdr->cbLine; output_symhdr->ilineMax += fdr.cline; @@ -955,7 +954,7 @@ bfd_ecoff_debug_accumulate (handle, outp if (!add_file_shuffle (ainfo, &ainfo->aux, &ainfo->aux_end, input_bfd, pos, fdr.caux * sizeof (union aux_ext))) - return false; + return FALSE; fdr.iauxBase = output_symhdr->iauxMax; output_symhdr->iauxMax += fdr.caux; } @@ -974,7 +973,7 @@ bfd_ecoff_debug_accumulate (handle, outp file_ptr pos = input_symhdr->cbSsOffset + fdr.issBase; if (!add_file_shuffle (ainfo, &ainfo->ss, &ainfo->ss_end, input_bfd, pos, (unsigned long) fdr.cbSs)) - return false; + return FALSE; fdr.issBase = output_symhdr->issMax; output_symhdr->issMax += fdr.cbSs; } @@ -994,7 +993,7 @@ bfd_ecoff_debug_accumulate (handle, outp unsigned long size = fdr.cpd * external_pdr_size; if (!add_file_shuffle (ainfo, &ainfo->pdr, &ainfo->pdr_end, input_bfd, pos, size)) - return false; + return FALSE; } BFD_ASSERT (external_opt_size == input_swap->external_opt_size); if (fdr.copt > 0) @@ -1004,7 +1003,7 @@ bfd_ecoff_debug_accumulate (handle, outp unsigned long size = fdr.copt * external_opt_size; if (!add_file_shuffle (ainfo, &ainfo->opt, &ainfo->opt_end, input_bfd, pos, size)) - return false; + return FALSE; } } else @@ -1027,11 +1026,11 @@ bfd_ecoff_debug_accumulate (handle, outp if (!out) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } if (!add_memory_shuffle (ainfo, &ainfo->pdr, &ainfo->pdr_end, out, sz)) - return false; + return FALSE; for (; in < end; in += insz, out += outsz) { PDR pdr; @@ -1068,11 +1067,11 @@ bfd_ecoff_debug_accumulate (handle, outp if (!out) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } if (!add_memory_shuffle (ainfo, &ainfo->opt, &ainfo->opt_end, out, sz)) - return false; + return FALSE; for (; in < end; in += insz, out += outsz) { OPTR opt; @@ -1104,16 +1103,15 @@ bfd_ecoff_debug_accumulate (handle, outp ++output_symhdr->ifdMax; } - return true; + return TRUE; } /* Add a string to the debugging information we are accumulating. Return the offset from the fdr string base. */ -static long ecoff_add_string PARAMS ((struct accumulate *, - struct bfd_link_info *, - struct ecoff_debug_info *, - FDR *fdr, const char *string)); +static long ecoff_add_string + PARAMS ((struct accumulate *, struct bfd_link_info *, + struct ecoff_debug_info *, FDR *fdr, const char *string)); static long ecoff_add_string (ainfo, info, debug, fdr, string) @@ -1142,7 +1140,7 @@ ecoff_add_string (ainfo, info, debug, fd { struct string_hash_entry *sh; - sh = string_hash_lookup (&ainfo->str_hash, string, true, true); + sh = string_hash_lookup (&ainfo->str_hash, string, TRUE, TRUE); if (sh == (struct string_hash_entry *) NULL) return -1; if (sh->val == -1) @@ -1164,7 +1162,7 @@ ecoff_add_string (ainfo, info, debug, fd /* Add debugging information from a non-ECOFF file. */ -boolean +bfd_boolean bfd_ecoff_debug_accumulate_other (handle, output_bfd, output_debug, output_swap, input_bfd, info) PTR handle; @@ -1203,19 +1201,19 @@ bfd_ecoff_debug_accumulate_other (handle fdr.rss = ecoff_add_string (ainfo, info, output_debug, &fdr, bfd_archive_filename (input_bfd)); if (fdr.rss == -1) - return false; + return FALSE; fdr.isymBase = output_symhdr->isymMax; /* Get the local symbols from the input BFD. */ symsize = bfd_get_symtab_upper_bound (input_bfd); if (symsize < 0) - return false; + return FALSE; symbols = (asymbol **) bfd_alloc (output_bfd, (bfd_size_type) symsize); if (symbols == (asymbol **) NULL) - return false; + return FALSE; symcount = bfd_canonicalize_symtab (input_bfd, symbols); if (symcount < 0) - return false; + return FALSE; sym_end = symbols + symcount; /* Handle the local symbols. Any external symbols are handled @@ -1233,7 +1231,7 @@ bfd_ecoff_debug_accumulate_other (handle (*sym_ptr)->name); if (internal_sym.iss == -1) - return false; + return FALSE; if (bfd_is_com_section ((*sym_ptr)->section) || bfd_is_und_section ((*sym_ptr)->section)) internal_sym.value = (*sym_ptr)->value; @@ -1250,7 +1248,7 @@ bfd_ecoff_debug_accumulate_other (handle if (!external_sym) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } (*swap_sym_out) (output_bfd, &internal_sym, external_sym); add_memory_shuffle (ainfo, &ainfo->sym, &ainfo->sym_end, @@ -1271,7 +1269,7 @@ bfd_ecoff_debug_accumulate_other (handle if (!external_fdr) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } (*output_swap->swap_fdr_out) (output_bfd, &fdr, external_fdr); add_memory_shuffle (ainfo, &ainfo->fdr, &ainfo->fdr_end, @@ -1280,7 +1278,7 @@ bfd_ecoff_debug_accumulate_other (handle ++output_symhdr->ifdMax; - return true; + return TRUE; } /* Set up ECOFF debugging information for the external symbols. @@ -1288,14 +1286,14 @@ bfd_ecoff_debug_accumulate_other (handle probably be changed to use a shuffle structure. The assembler uses this interface, so that must be changed to do something else. */ -boolean +bfd_boolean bfd_ecoff_debug_externals (abfd, debug, swap, relocateable, get_extr, set_index) bfd *abfd; struct ecoff_debug_info *debug; const struct ecoff_debug_swap *swap; - boolean relocateable; - boolean (*get_extr) PARAMS ((asymbol *, EXTR *)); + bfd_boolean relocateable; + bfd_boolean (*get_extr) PARAMS ((asymbol *, EXTR *)); void (*set_index) PARAMS ((asymbol *, bfd_size_type)); { HDRR * const symhdr = &debug->symbolic_header; @@ -1304,7 +1302,7 @@ bfd_ecoff_debug_externals (abfd, debug, sym_ptr_ptr = bfd_get_outsymbols (abfd); if (sym_ptr_ptr == NULL) - return true; + return TRUE; for (c = bfd_get_symcount (abfd); c > 0; c--, sym_ptr_ptr++) { @@ -1349,15 +1347,15 @@ bfd_ecoff_debug_externals (abfd, debug, if (! bfd_ecoff_debug_one_external (abfd, debug, swap, sym_ptr->name, &esym)) - return false; + return FALSE; } - return true; + return TRUE; } /* Add a single external symbol to the debugging information. */ -boolean +bfd_boolean bfd_ecoff_debug_one_external (abfd, debug, swap, name, esym) bfd *abfd; struct ecoff_debug_info *debug; @@ -1379,7 +1377,7 @@ bfd_ecoff_debug_one_external (abfd, debu if (! ecoff_add_bytes ((char **) &debug->ssext, (char **) &debug->ssext_end, symhdr->issExtMax + namelen + 1)) - return false; + return FALSE; } if ((size_t) ((char *) debug->external_ext_end - (char *) debug->external_ext) @@ -1388,7 +1386,7 @@ bfd_ecoff_debug_one_external (abfd, debu if (! ecoff_add_bytes ((char **) &debug->external_ext, (char **) &debug->external_ext_end, (symhdr->iextMax + 1) * (size_t) external_ext_size)) - return false; + return FALSE; } esym->asym.iss = symhdr->issExtMax; @@ -1402,7 +1400,7 @@ bfd_ecoff_debug_one_external (abfd, debu strcpy (debug->ssext + symhdr->issExtMax, name); symhdr->issExtMax += namelen + 1; - return true; + return TRUE; } /* Align the ECOFF debugging information. */ @@ -1503,7 +1501,7 @@ bfd_ecoff_debug_size (abfd, debug, swap) going to be placed at. This assumes that the counts are set correctly. */ -static boolean +static bfd_boolean ecoff_write_symhdr (abfd, debug, swap, where) bfd *abfd; struct ecoff_debug_info *debug; @@ -1517,7 +1515,7 @@ ecoff_write_symhdr (abfd, debug, swap, w /* Go to the right location in the file. */ if (bfd_seek (abfd, where, SEEK_SET) != 0) - return false; + return FALSE; where += swap->external_hdr_size; @@ -1557,11 +1555,11 @@ ecoff_write_symhdr (abfd, debug, swap, w if (buff != NULL) free (buff); - return true; + return TRUE; error_return: if (buff != NULL) free (buff); - return false; + return FALSE; } /* Write out the ECOFF debugging information. This function assumes @@ -1570,7 +1568,7 @@ ecoff_write_symhdr (abfd, debug, swap, w information to. This function fills in the file offsets in the symbolic header. */ -boolean +bfd_boolean bfd_ecoff_write_debug (abfd, debug, swap, where) bfd *abfd; struct ecoff_debug_info *debug; @@ -1580,14 +1578,14 @@ bfd_ecoff_write_debug (abfd, debug, swap HDRR * const symhdr = &debug->symbolic_header; if (! ecoff_write_symhdr (abfd, debug, swap, where)) - return false; + return FALSE; #define WRITE(ptr, count, size, offset) \ BFD_ASSERT (symhdr->offset == 0 \ || (bfd_vma) bfd_tell (abfd) == symhdr->offset); \ if (bfd_bwrite ((PTR) debug->ptr, (bfd_size_type) size * symhdr->count, abfd)\ != size * symhdr->count) \ - return false; + return FALSE; WRITE (line, cbLine, sizeof (unsigned char), cbLineOffset); WRITE (external_dnr, idnMax, swap->external_dnr_size, cbDnOffset); @@ -1603,16 +1601,16 @@ bfd_ecoff_write_debug (abfd, debug, swap WRITE (external_ext, iextMax, swap->external_ext_size, cbExtOffset); #undef WRITE - return true; + return TRUE; } /* Write out a shuffle list. */ -static boolean ecoff_write_shuffle PARAMS ((bfd *, - const struct ecoff_debug_swap *, - struct shuffle *, PTR space)); +static bfd_boolean ecoff_write_shuffle + PARAMS ((bfd *, const struct ecoff_debug_swap *, struct shuffle *, + PTR space)); -static boolean +static bfd_boolean ecoff_write_shuffle (abfd, swap, shuffle, space) bfd *abfd; const struct ecoff_debug_swap *swap; @@ -1629,7 +1627,7 @@ ecoff_write_shuffle (abfd, swap, shuffle { if (bfd_bwrite (l->u.memory, (bfd_size_type) l->size, abfd) != l->size) - return false; + return FALSE; } else { @@ -1637,7 +1635,7 @@ ecoff_write_shuffle (abfd, swap, shuffle || bfd_bread (space, (bfd_size_type) l->size, l->u.file.input_bfd) != l->size || bfd_bwrite (space, (bfd_size_type) l->size, abfd) != l->size) - return false; + return FALSE; } total += l->size; } @@ -1650,23 +1648,23 @@ ecoff_write_shuffle (abfd, swap, shuffle i = swap->debug_align - (total & (swap->debug_align - 1)); s = (bfd_byte *) bfd_zmalloc ((bfd_size_type) i); if (s == NULL && i != 0) - return false; + return FALSE; if (bfd_bwrite ((PTR) s, (bfd_size_type) i, abfd) != i) { free (s); - return false; + return FALSE; } free (s); } - return true; + return TRUE; } /* Write out debugging information using accumulated linker information. */ -boolean +bfd_boolean bfd_ecoff_write_accumulated_debug (handle, abfd, debug, swap, info, where) PTR handle; bfd *abfd; @@ -1784,12 +1782,12 @@ bfd_ecoff_write_accumulated_debug (handl if (space != NULL) free (space); - return true; + return TRUE; error_return: if (space != NULL) free (space); - return false; + return FALSE; } /* Handle the find_nearest_line function for both ECOFF and MIPS ELF @@ -1820,7 +1818,7 @@ cmp_fdrtab_entry (leftp, rightp) table will be sorted by address so we can look it up via binary search. */ -static boolean +static bfd_boolean mk_fdrtab (abfd, debug_info, debug_swap, line_info) bfd *abfd; struct ecoff_debug_info * const debug_info; @@ -1831,27 +1829,26 @@ mk_fdrtab (abfd, debug_info, debug_swap, FDR *fdr_ptr; FDR *fdr_start; FDR *fdr_end; - boolean stabs; + bfd_boolean stabs; long len; bfd_size_type amt; fdr_start = debug_info->fdr; fdr_end = fdr_start + debug_info->symbolic_header.ifdMax; - /* First, let's see how long the table needs to be: */ + /* First, let's see how long the table needs to be. */ for (len = 0, fdr_ptr = fdr_start; fdr_ptr < fdr_end; fdr_ptr++) { - if (fdr_ptr->cpd == 0) /* skip FDRs that have no PDRs */ + if (fdr_ptr->cpd == 0) /* Skip FDRs that have no PDRs. */ continue; ++len; } - /* Now, create and fill in the table: */ - + /* Now, create and fill in the table. */ amt = (bfd_size_type) len * sizeof (struct ecoff_fdrtab_entry); line_info->fdrtab = (struct ecoff_fdrtab_entry*) bfd_zalloc (abfd, amt); if (line_info->fdrtab == NULL) - return false; + return FALSE; line_info->fdrtab_len = len; tab = line_info->fdrtab; @@ -1863,39 +1860,53 @@ mk_fdrtab (abfd, debug_info, debug_swap, /* Check whether this file has stabs debugging information. In a file with stabs debugging information, the second local symbol is named @stabs. */ - stabs = false; + stabs = FALSE; if (fdr_ptr->csym >= 2) { char *sym_ptr; SYMR sym; sym_ptr = ((char *) debug_info->external_sym - + (fdr_ptr->isymBase + 1)*debug_swap->external_sym_size); + + (fdr_ptr->isymBase + 1) * debug_swap->external_sym_size); (*debug_swap->swap_sym_in) (abfd, sym_ptr, &sym); if (strcmp (debug_info->ss + fdr_ptr->issBase + sym.iss, STABS_SYMBOL) == 0) - stabs = true; + stabs = TRUE; } if (!stabs) { - bfd_size_type external_pdr_size; - char *pdr_ptr; - PDR pdr; - - external_pdr_size = debug_swap->external_pdr_size; - - pdr_ptr = ((char *) debug_info->external_pdr - + fdr_ptr->ipdFirst * external_pdr_size); - (*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr); + /* eraxxon: There are at least two problems with this computation: + 1) PDRs do *not* contain offsets but full vma's; and typically the + address of the first PDR is the address of the FDR, which will + make (most) of the results of the original computation 0! + 2) Once in a wacky while, the Compaq compiler generated PDR + addresses do not equal the FDR vma, but they (the PDR address) + are still vma's and not offsets. Cf. comments in + 'lookup_line'. */ +#if 0 + bfd_size_type external_pdr_size; + char *pdr_ptr; + PDR pdr; + + external_pdr_size = debug_swap->external_pdr_size; + + pdr_ptr = ((char *) debug_info->external_pdr + + fdr_ptr->ipdFirst * external_pdr_size); + (*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr); /* The address of the first PDR is the offset of that procedure relative to the beginning of file FDR. */ - tab->base_addr = fdr_ptr->adr - pdr.adr; + tab->base_addr = fdr_ptr->adr - pdr.adr; +#else + /* The address of the first PDR is the offset of that + procedure relative to the beginning of file FDR. */ + tab->base_addr = fdr_ptr->adr; +#endif } else { /* XXX I don't know about stabs, so this is a guess - (davidm@cs.arizona.edu): */ + (davidm@cs.arizona.edu). */ tab->base_addr = fdr_ptr->adr; } tab->fdr = fdr_ptr; @@ -1909,7 +1920,7 @@ mk_fdrtab (abfd, debug_info, debug_swap, qsort ((PTR) line_info->fdrtab, (size_t) len, sizeof (struct ecoff_fdrtab_entry), cmp_fdrtab_entry); - return true; + return TRUE; } /* Return index of first FDR that covers to OFFSET. */ @@ -1939,14 +1950,22 @@ fdrtab_lookup (line_info, offset) else low = mid + 1; } + + /* eraxxon: at this point 'offset' is either lower than the lowest entry or + higher than the highest entry. In the former case high = low = mid = 0; + we want to return -1. In the latter case, low = high and mid = low - 1; + we want to return the index of the highest entry. Only in former case + will the following 'catch-all' test be true. */ ++mid; - /* last entry is catch-all for all higher addresses: */ + /* Last entry is catch-all for all higher addresses. */ if (offset < tab[mid].base_addr) return -1; find_min: + /* eraxxon: There may be multiple FDRs in the table with the + same base_addr; make sure that we are at the first one. */ while (mid > 0 && tab[mid - 1].base_addr == tab[mid].base_addr) --mid; @@ -1956,7 +1975,7 @@ fdrtab_lookup (line_info, offset) /* Look up a line given an address, storing the information in LINE_INFO->cache. */ -static boolean +static bfd_boolean lookup_line (abfd, debug_info, debug_swap, line_info) bfd *abfd; struct ecoff_debug_info * const debug_info; @@ -1965,30 +1984,101 @@ lookup_line (abfd, debug_info, debug_swa { struct ecoff_fdrtab_entry *tab; bfd_vma offset; - boolean stabs; + bfd_boolean stabs; FDR *fdr_ptr; int i; + /* eraxxon: note that 'offset' is the full vma, not a section offset. */ offset = line_info->cache.start; /* Build FDR table (sorted by object file's base-address) if we don't have it already. */ if (line_info->fdrtab == NULL && !mk_fdrtab (abfd, debug_info, debug_swap, line_info)) - return false; + return FALSE; tab = line_info->fdrtab; - /* find first FDR for address OFFSET */ + /* Find first FDR for address OFFSET. */ i = fdrtab_lookup (line_info, offset); if (i < 0) - return false; /* no FDR, no fun... */ + return FALSE; /* no FDR, no fun... */ + + /* eraxxon: 'fdrtab_lookup' doesn't give what we want, at least for Compaq's + C++ compiler 6.2. Consider three FDRs with starting addresses of x, y, + and z, respectively, such that x < y < z. Assume further that + y < 'offset' < z. It is possble at times that the PDR for 'offset' is + associated with FDR x and *not* with FDR y. Erg!! + + From a binary dump of my C++ test case 'moo' using Compaq's coffobjanl + (output format has been edited for our purposes): + + FDR [2]: (main.C): First instruction: 0x12000207c + PDR [5] for File [2]: LoopTest__Xv <0x1200020a0> (a) + PDR [7] for File [2]: foo__Xv <0x120002168> + FDR [1]: (-1): First instruction: 0x1200020e8 + PDR [3] for File [1]: <0x120001ad0> (b) + FDR [6]: (-1): First instruction: 0x1200026f0 + + (a) In the case of PDR5, the vma is such that the first few instructions + of the procedure can be found. But since the size of this procedure is + 160b, the vma will soon cross into the 'address space' of FDR1 and no + debugging info will be found. How repugnant! + + (b) It is also possible for a PDR to have a *lower* vma than its associated + FDR; see FDR1 and PDR3. Gross! + + Since the FDRs that are causing so much havok (in this case) 1) do not + describe actual files (fdr.rss == -1), and 2) contain only compiler + genarated routines, I thought a simple fix would be to exclude them from + the FDR table in 'mk_fdrtab'. But, besides not knowing for certain + whether this would be correct, it creates an additional problem. If we + happen to ask for source file info on a compiler generated (procedure) + symbol -- which is still in the symbol table -- the result can be + information from a real procedure! This is because compiler generated + procedures with vma's higher than the last FDR in the fdr table will be + associated with a PDR from this FDR, specifically the PDR with the + highest vma. This wasn't a problem before, because each procedure had a + PDR. (Yes, this problem could be eliminated if we kept the size of the + last PDR around, but things are already getting ugly). + + Probably, a better solution would be to have a sorted PDR table. Each + PDR would have a pointer to its FDR so file information could still be + obtained. A FDR table could still be constructed if necessary -- since + it only contains pointers, not much extra memory would be used -- but + the PDR table would be searched to locate debugging info. + + There is still at least one remaining issue. Sometimes a FDR can have a + bogus name, but contain PDRs that should belong to another FDR with a + real name. E.g: + + FDR [3]: 0000000120001b50 (/home/.../Array.H~alt~deccxx_5E5A62AD) + PDR [a] for File [3]: 0000000120001b50 + PDR [b] for File [3]: 0000000120001cf0 + PDR [c] for File [3]: 0000000120001dc8 + PDR [d] for File [3]: 0000000120001e40 + PDR [e] for File [3]: 0000000120001eb8 + PDR [f] for File [3]: 0000000120001f4c + FDR [4]: 0000000120001b50 (/home/.../Array.H) + + Here, FDR4 has the correct name, but should (seemingly) contain PDRa-f. + The symbol table for PDR4 does contain symbols for PDRa-f, but so does + the symbol table for FDR3. However the former is different; perhaps this + can be detected easily. (I'm not sure at this point.) This problem only + seems to be associated with files with templates. I am assuming the idea + is that there is a 'fake' FDR (with PDRs) for each differently typed set + of templates that must be generated. Currently, FDR4 is completely + excluded from the FDR table in 'mk_fdrtab' because it contains no PDRs. + + Since I don't have time to prepare a real fix for this right now, be + prepared for 'A Horrible Hack' to force the inspection of all non-stabs + FDRs. It's coming... */ fdr_ptr = tab[i].fdr; /* Check whether this file has stabs debugging information. In a file with stabs debugging information, the second local symbol is named @stabs. */ - stabs = false; + stabs = FALSE; if (fdr_ptr->csym >= 2) { char *sym_ptr; @@ -1999,7 +2089,7 @@ lookup_line (abfd, debug_info, debug_swa (*debug_swap->swap_sym_in) (abfd, sym_ptr, &sym); if (strcmp (debug_info->ss + fdr_ptr->issBase + sym.iss, STABS_SYMBOL) == 0) - stabs = true; + stabs = TRUE; } if (!stabs) @@ -2008,7 +2098,7 @@ lookup_line (abfd, debug_info, debug_swa char *pdr_ptr; char *best_pdr = NULL; FDR *best_fdr; - bfd_vma best_dist = ~(bfd_vma) 0; + bfd_signed_vma best_dist = -1; PDR pdr; unsigned char *line_ptr; unsigned char *line_end; @@ -2070,14 +2160,29 @@ lookup_line (abfd, debug_info, debug_swa considerably, which is undesirable. */ external_pdr_size = debug_swap->external_pdr_size; - /* Make offset relative to object file's start-address: */ +#if 0 /* eraxxon: PDR addresses (pdr.adr) are not relative to FDRs! + Leave 'offset' alone. */ + /* Make offset relative to object file's start-address. */ offset -= tab[i].base_addr; +#endif + /* eraxxon: The Horrible Hack: Because of the problems above, set 'i' + to 0 so we look through all FDRs. + + Because FDR's without any symbols are assumed to be non-stabs, + searching through all FDRs may cause the following code to try to + read stabs FDRs as ECOFF ones. However, I don't think this will + harm anything. */ + i = 0; + /* Search FDR list starting at tab[i] for the PDR that best matches OFFSET. Normally, the FDR list is only one entry long. */ best_fdr = NULL; do { - bfd_vma dist, min_dist = 0; + /* eraxxon: 'dist' and 'min_dist' can be negative now + because we iterate over every FDR rather than just ones + with a base address less than or equal to 'offset'. */ + bfd_signed_vma dist = -1, min_dist = -1; char *pdr_hold; char *pdr_end; @@ -2100,7 +2205,10 @@ lookup_line (abfd, debug_info, debug_swa if (offset >= (pdr.adr - 0x10 * pdr.prof)) { dist = offset - (pdr.adr - 0x10 * pdr.prof); - if (!pdr_hold || dist < min_dist) + + /* eraxxon: 'dist' can be negative now. Note that + 'min_dist' can be negative if 'pdr_hold' below is NULL. */ + if (!pdr_hold || (dist >= 0 && dist < min_dist)) { min_dist = dist; pdr_hold = pdr_ptr; @@ -2108,21 +2216,22 @@ lookup_line (abfd, debug_info, debug_swa } } - if (!best_pdr || min_dist < best_dist) + if (!best_pdr || (min_dist >= 0 && min_dist < best_dist)) { - best_dist = min_dist; + best_dist = (bfd_vma) min_dist; best_fdr = fdr_ptr; best_pdr = pdr_hold; } - /* continue looping until base_addr of next entry is different: */ + /* Continue looping until base_addr of next entry is different. */ } - while (++i < line_info->fdrtab_len - && tab[i].base_addr == tab[i - 1].base_addr); + /* eraxxon: We want to iterate over all FDRs. + See previous comment about 'fdrtab_lookup'. */ + while (++i < line_info->fdrtab_len); if (!best_fdr || !best_pdr) - return false; /* shouldn't happen... */ + return FALSE; /* Shouldn't happen... */ - /* phew, finally we got something that we can hold onto: */ + /* Phew, finally we got something that we can hold onto. */ fdr_ptr = best_fdr; pdr_ptr = best_pdr; (*debug_swap->swap_pdr_in) (abfd, (PTR) pdr_ptr, &pdr); @@ -2132,7 +2241,7 @@ lookup_line (abfd, debug_info, debug_swa number entries. */ line_end = debug_info->line + fdr_ptr->cbLineOffset + fdr_ptr->cbLine; - /* Make offset relative to procedure entry: */ + /* Make offset relative to procedure entry. */ offset -= pdr.adr - 0x10 * pdr.prof; lineno = pdr.lnLow; line_ptr = debug_info->line + fdr_ptr->cbLineOffset + pdr.cbLineOffset; @@ -2213,8 +2322,8 @@ lookup_line (abfd, debug_info, debug_swa const char *line_file_name; bfd_vma low_func_vma; bfd_vma low_line_vma; - boolean past_line; - boolean past_fn; + bfd_boolean past_line; + bfd_boolean past_fn; char *sym_ptr, *sym_ptr_end; size_t len, funclen; char *buffer = NULL; @@ -2240,8 +2349,8 @@ lookup_line (abfd, debug_info, debug_swa line_file_name = NULL; low_func_vma = 0; low_line_vma = 0; - past_line = false; - past_fn = false; + past_line = FALSE; + past_fn = FALSE; external_sym_size = debug_swap->external_sym_size; @@ -2291,7 +2400,7 @@ lookup_line (abfd, debug_info, debug_swa case N_FUN: if (sym.value > offset) - past_fn = true; + past_fn = TRUE; else if (sym.value >= low_func_vma) { low_func_vma = sym.value; @@ -2304,7 +2413,7 @@ lookup_line (abfd, debug_info, debug_swa else if (sym.st == stLabel && sym.index != indexNil) { if (sym.value > offset) - past_line = true; + past_line = TRUE; else if (sym.value >= low_line_vma) { low_line_vma = sym.value; @@ -2336,7 +2445,7 @@ lookup_line (abfd, debug_info, debug_swa free (line_info->find_buffer); buffer = (char *) bfd_malloc ((bfd_size_type) len); if (buffer == NULL) - return false; + return FALSE; line_info->find_buffer = buffer; } @@ -2364,12 +2473,12 @@ lookup_line (abfd, debug_info, debug_swa } } - return true; + return TRUE; } /* Do the work of find_nearest_line. */ -boolean +bfd_boolean _bfd_ecoff_locate_line (abfd, section, offset, debug_info, debug_swap, line_info, filename_ptr, functionname_ptr, retline_ptr) bfd *abfd; @@ -2395,7 +2504,7 @@ _bfd_ecoff_locate_line (abfd, section, o if (! lookup_line (abfd, debug_info, debug_swap, line_info)) { line_info->cache.sect = NULL; - return false; + return FALSE; } } @@ -2403,7 +2512,7 @@ _bfd_ecoff_locate_line (abfd, section, o *functionname_ptr = line_info->cache.functionname; *retline_ptr = line_info->cache.line_num; - return true; + return TRUE; } /* These routines copy symbolic information into a memory buffer. @@ -2416,9 +2525,10 @@ _bfd_ecoff_locate_line (abfd, section, o /* Collect a shuffle into a memory buffer. */ -static boolean ecoff_collect_shuffle PARAMS ((struct shuffle *, bfd_byte *)); +static bfd_boolean ecoff_collect_shuffle + PARAMS ((struct shuffle *, bfd_byte *)); -static boolean +static bfd_boolean ecoff_collect_shuffle (l, buff) struct shuffle *l; bfd_byte *buff; @@ -2435,18 +2545,18 @@ ecoff_collect_shuffle (l, buff) if (bfd_seek (l->u.file.input_bfd, l->u.file.offset, SEEK_SET) != 0 || (bfd_bread (buff, (bfd_size_type) l->size, l->u.file.input_bfd) != l->size)) - return false; + return FALSE; } total += l->size; buff += l->size; } - return true; + return TRUE; } /* Copy PDR information into a memory buffer. */ -boolean +bfd_boolean _bfd_ecoff_get_accumulated_pdr (handle, buff) PTR handle; bfd_byte *buff; @@ -2458,7 +2568,7 @@ _bfd_ecoff_get_accumulated_pdr (handle, /* Copy symbol information into a memory buffer. */ -boolean +bfd_boolean _bfd_ecoff_get_accumulated_sym (handle, buff) PTR handle; bfd_byte *buff; @@ -2470,7 +2580,7 @@ _bfd_ecoff_get_accumulated_sym (handle, /* Copy the string table into a memory buffer. */ -boolean +bfd_boolean _bfd_ecoff_get_accumulated_ss (handle, buff) PTR handle; bfd_byte *buff; @@ -2497,5 +2607,5 @@ _bfd_ecoff_get_accumulated_ss (handle, b buff += len + 1; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/efi-app-ia32.c binutils-2.13.90.0.18/bfd/efi-app-ia32.c --- binutils-2.13.90.0.16/bfd/efi-app-ia32.c Fri Apr 6 15:31:52 2001 +++ binutils-2.13.90.0.18/bfd/efi-app-ia32.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Intel IA-32 EFI application files. - Copyright 1999, 2000 Free Software Foundation, Inc. + Copyright 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by David Mosberger This file is part of BFD, the Binary File Descriptor library. @@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suit #define TARGET_NAME "efi-app-ia32" #define COFF_IMAGE_WITH_PE #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define TARGET_UNDERSCORE '_' #define COFF_LONG_SECTION_NAMES #define PEI_TARGET_SUBSYSTEM IMAGE_SUBSYSTEM_EFI_APPLICATION diff -uprN binutils-2.13.90.0.16/bfd/efi-app-ia64.c binutils-2.13.90.0.18/bfd/efi-app-ia64.c --- binutils-2.13.90.0.16/bfd/efi-app-ia64.c Fri Mar 9 11:15:46 2001 +++ binutils-2.13.90.0.18/bfd/efi-app-ia64.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* BFD back-end for HP/Intel IA-64 EFI application files. - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by David Mosberger This file is part of BFD, the Binary File Descriptor library. @@ -26,7 +26,7 @@ Foundation, Inc., 59 Temple Place - Suit #define COFF_IMAGE_WITH_PE #define COFF_WITH_PE #define COFF_WITH_pep -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define TARGET_UNDERSCORE '_' #define COFF_LONG_SECTION_NAMES #define PEI_TARGET_SUBSYSTEM IMAGE_SUBSYSTEM_EFI_APPLICATION diff -uprN binutils-2.13.90.0.16/bfd/elf-bfd.h binutils-2.13.90.0.18/bfd/elf-bfd.h --- binutils-2.13.90.0.16/bfd/elf-bfd.h Thu Nov 14 09:37:55 2002 +++ binutils-2.13.90.0.18/bfd/elf-bfd.h Mon Dec 16 12:22:51 2002 @@ -139,7 +139,7 @@ struct elf_link_hash_entry and track a size while the symbol is still undefined. It is indexed via offset/sizeof(target_void_pointer). */ size_t vtable_entries_size; - boolean *vtable_entries_used; + bfd_boolean *vtable_entries_used; /* Virtual table derivation info. */ struct elf_link_hash_entry *vtable_parent; @@ -305,7 +305,7 @@ struct eh_frame_hdr_info /* TRUE if .eh_frame_hdr should contain the sorted search table. We build it if we successfully read all .eh_frame input sections and recognize them. */ - boolean table; + bfd_boolean table; }; /* Cached start, size and alignment of PT_TLS segment. */ @@ -324,7 +324,7 @@ struct elf_link_hash_table /* Whether we have created the special dynamic sections required when linking against or generating a shared object. */ - boolean dynamic_sections_created; + bfd_boolean dynamic_sections_created; /* The BFD used to hold special sections created by the linker. This will be the first BFD found which requires these sections to @@ -391,14 +391,14 @@ struct elf_link_hash_table #define elf_link_hash_traverse(table, func, info) \ (bfd_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ (info))) /* Get the ELF linker hash table from a link_info structure. */ #define elf_hash_table(p) ((struct elf_link_hash_table *) ((p)->hash)) -/* Returns true if the hash table is a struct elf_link_hash_table. */ +/* Returns TRUE if the hash table is a struct elf_link_hash_table. */ #define is_elf_hash_table(p) \ ((p)->hash->type == bfd_link_elf_hash_table) @@ -424,12 +424,15 @@ struct elf_size_info { /* The number of internal relocations to allocate per external relocation entry. */ unsigned char int_rels_per_ext_rel; + /* We use some fixed size arrays. This should be large enough to + handle all back-ends. */ +#define MAX_INT_RELS_PER_EXT_REL 3 unsigned char arch_size, file_align; unsigned char elfclass, ev_current; int (*write_out_phdrs) PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int)); - boolean (*write_shdrs_and_ehdr) + bfd_boolean (*write_shdrs_and_ehdr) PARAMS ((bfd *)); void (*write_relocs) PARAMS ((bfd *, asection *, PTR)); @@ -437,39 +440,34 @@ struct elf_size_info { PARAMS ((bfd *, const PTR, const PTR, Elf_Internal_Sym *)); void (*swap_symbol_out) PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR)); - boolean (*slurp_reloc_table) - PARAMS ((bfd *, asection *, asymbol **, boolean)); + bfd_boolean (*slurp_reloc_table) + PARAMS ((bfd *, asection *, asymbol **, bfd_boolean)); long (*slurp_symbol_table) - PARAMS ((bfd *, asymbol **, boolean)); + PARAMS ((bfd *, asymbol **, bfd_boolean)); void (*swap_dyn_in) PARAMS ((bfd *, const PTR, Elf_Internal_Dyn *)); void (*swap_dyn_out) PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR)); - /* This function, if defined, is called to swap in a REL - relocation. If an external relocation corresponds to more than - one internal relocation, then all relocations are swapped in at - once. */ + /* This function is called to swap in a REL relocation. If an + external relocation corresponds to more than one internal + relocation, then all relocations are swapped in at once. */ void (*swap_reloc_in) - PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rel *)); + PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); - /* This function, if defined, is called to swap out a REL - relocation. */ + /* This function is called to swap out a REL relocation. */ void (*swap_reloc_out) - PARAMS ((bfd *, const Elf_Internal_Rel *, bfd_byte *)); + PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); - /* This function, if defined, is called to swap in a RELA - relocation. If an external relocation corresponds to more than - one internal relocation, then all relocations are swapped in at - once. */ + /* This function is called to swap in a RELA relocation. If an + external relocation corresponds to more than one internal + relocation, then all relocations are swapped in at once. */ void (*swap_reloca_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); - /* This function, if defined, is called to swap out a RELA - relocation. */ + /* This function is called to swap out a RELA relocation. */ void (*swap_reloca_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); - }; #define elf_symbol_from(ABFD,S) \ @@ -493,7 +491,7 @@ struct elf_reloc_cookie size_t locsymcount; size_t extsymoff; struct elf_link_hash_entry **sym_hashes; - boolean bad_symtab; + bfd_boolean bad_symtab; }; /* The level of IRIX compatibility we're striving for. */ @@ -523,14 +521,14 @@ struct elf_backend_data /* A function to translate an ELF REL relocation to a BFD arelent structure. */ void (*elf_info_to_howto_rel) - PARAMS ((bfd *, arelent *, Elf_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); /* A function to determine whether a symbol is global when partitioning the symbol table into local and global symbols. This should be NULL for most targets, in which case the correct thing will be done. MIPS ELF, at least on the Irix 5, has special requirements. */ - boolean (*elf_backend_sym_is_global) + bfd_boolean (*elf_backend_sym_is_global) PARAMS ((bfd *, asymbol *)); /* The remaining functions are hooks which are called only if they @@ -540,9 +538,9 @@ struct elf_backend_data particular BFD format is relevant for an object file, and to permit the backend to set any global information it wishes. When this is called elf_elfheader is set, but anything else should be - used with caution. If this returns false, the check_format + used with caution. If this returns FALSE, the check_format routine will return a bfd_error_wrong_format error. */ - boolean (*elf_backend_object_p) + bfd_boolean (*elf_backend_object_p) PARAMS ((bfd *)); /* A function to do additional symbol processing when reading the @@ -553,7 +551,7 @@ struct elf_backend_data /* A function to do additional symbol processing after reading the entire ELF symbol table. */ - boolean (*elf_backend_symbol_table_processing) + bfd_boolean (*elf_backend_symbol_table_processing) PARAMS ((bfd *, elf_symbol_type *, unsigned int)); /* A function to set the type of the info field. Processor-specific @@ -565,35 +563,35 @@ struct elf_backend_data just before writing it out. This is used to set the flags and type fields for some sections, or to actually write out data for unusual sections. */ - boolean (*elf_backend_section_processing) - PARAMS ((bfd *, Elf32_Internal_Shdr *)); + bfd_boolean (*elf_backend_section_processing) + PARAMS ((bfd *, Elf_Internal_Shdr *)); /* A function to handle unusual section types when creating BFD sections from ELF sections. */ - boolean (*elf_backend_section_from_shdr) - PARAMS ((bfd *, Elf32_Internal_Shdr *, const char *)); + bfd_boolean (*elf_backend_section_from_shdr) + PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); /* A function to convert machine dependent section header flags to BFD internal section header flags. */ - boolean (*elf_backend_section_flags) - PARAMS ((flagword *, Elf32_Internal_Shdr *)); + bfd_boolean (*elf_backend_section_flags) + PARAMS ((flagword *, Elf_Internal_Shdr *)); /* A function to handle unusual program segment types when creating BFD sections from ELF program segments. */ - boolean (*elf_backend_section_from_phdr) - PARAMS ((bfd *, Elf32_Internal_Phdr *, int)); + bfd_boolean (*elf_backend_section_from_phdr) + PARAMS ((bfd *, Elf_Internal_Phdr *, int)); /* A function to set up the ELF section header for a BFD section in preparation for writing it out. This is where the flags and type fields are set for unusual sections. */ - boolean (*elf_backend_fake_sections) - PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *)); + bfd_boolean (*elf_backend_fake_sections) + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); /* A function to get the ELF section index for a BFD section. If - this returns true, the section was found. If it is a normal ELF + this returns TRUE, the section was found. If it is a normal ELF section, *RETVAL should be left unchanged. If it is not a normal ELF section *RETVAL should be set to the SHN_xxxx index. */ - boolean (*elf_backend_section_from_bfd_section) + bfd_boolean (*elf_backend_section_from_bfd_section) PARAMS ((bfd *, asection *, int *retval)); /* If this field is not NULL, it is called by the add_symbols phase @@ -604,14 +602,14 @@ struct elf_backend_data handling all processor dependent symbol bindings and section indices, and must set at least *FLAGS and *SEC for each processor dependent case; failure to do so will cause a link error. */ - boolean (*elf_add_symbol_hook) + bfd_boolean (*elf_add_symbol_hook) PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *, const char **name, flagword *flags, asection **sec, bfd_vma *value)); /* If this field is not NULL, it is called by the elf_link_output_sym phase of a link for each symbol which will appear in the object file. */ - boolean (*elf_backend_link_output_symbol_hook) + bfd_boolean (*elf_backend_link_output_symbol_hook) PARAMS ((bfd *, struct bfd_link_info *info, const char *, Elf_Internal_Sym *, asection *)); @@ -623,7 +621,7 @@ struct elf_backend_data created, and this function may modify the section flags if desired. This function will normally create the .got and .plt sections, but different backends have different requirements. */ - boolean (*elf_backend_create_dynamic_sections) + bfd_boolean (*elf_backend_create_dynamic_sections) PARAMS ((bfd *abfd, struct bfd_link_info *info)); /* The CHECK_RELOCS function is called by the add_symbols phase of @@ -636,7 +634,7 @@ struct elf_backend_data relocs are always passed as Rela structures; if the section actually uses Rel structures, the r_addend field will always be zero. */ - boolean (*check_relocs) + bfd_boolean (*check_relocs) PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *o, const Elf_Internal_Rela *relocs)); @@ -652,14 +650,14 @@ struct elf_backend_data the link can deal with. This will normally involve adding an entry to the .plt or .got or some such section, and setting the symbol to point to that. */ - boolean (*elf_backend_adjust_dynamic_symbol) + bfd_boolean (*elf_backend_adjust_dynamic_symbol) PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *h)); /* The ALWAYS_SIZE_SECTIONS function is called by the backend linker after all the linker input files have been seen but before the section sizes have been set. This is called after ADJUST_DYNAMIC_SYMBOL, but before SIZE_DYNAMIC_SECTIONS. */ - boolean (*elf_backend_always_size_sections) + bfd_boolean (*elf_backend_always_size_sections) PARAMS ((bfd *output_bfd, struct bfd_link_info *info)); /* The SIZE_DYNAMIC_SECTIONS function is called by the ELF backend @@ -672,7 +670,7 @@ struct elf_backend_data .dynstr and .hash sections. This function must handle the .interp section and any sections created by the CREATE_DYNAMIC_SECTIONS entry point. */ - boolean (*elf_backend_size_dynamic_sections) + bfd_boolean (*elf_backend_size_dynamic_sections) PARAMS ((bfd *output_bfd, struct bfd_link_info *info)); /* The RELOCATE_SECTION function is called by the ELF backend linker @@ -703,7 +701,7 @@ struct elf_backend_data going to be the section symbol corresponding to the output section, which means that the addend must be adjusted accordingly. */ - boolean (*elf_backend_relocate_section) + bfd_boolean (*elf_backend_relocate_section) PARAMS ((bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd, asection *input_section, bfd_byte *contents, Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, @@ -716,7 +714,7 @@ struct elf_backend_data dynamic sections. Note that FINISH_DYNAMIC_SYMBOL is called on all .dynsym symbols, while ADJUST_DYNAMIC_SYMBOL is only called on those symbols which are defined by a dynamic object. */ - boolean (*elf_backend_finish_dynamic_symbol) + bfd_boolean (*elf_backend_finish_dynamic_symbol) PARAMS ((bfd *output_bfd, struct bfd_link_info *info, struct elf_link_hash_entry *h, Elf_Internal_Sym *sym)); @@ -724,7 +722,7 @@ struct elf_backend_data linker just before it writes all the dynamic sections out to the output file. The FINISH_DYNAMIC_SYMBOL will have been called on all dynamic symbols. */ - boolean (*elf_backend_finish_dynamic_sections) + bfd_boolean (*elf_backend_finish_dynamic_sections) PARAMS ((bfd *output_bfd, struct bfd_link_info *info)); /* A function to do any beginning processing needed for the ELF file @@ -733,10 +731,10 @@ struct elf_backend_data PARAMS ((bfd *, struct bfd_link_info *)); /* A function to do any final processing needed for the ELF file - before writing it out. The LINKER argument is true if this BFD + before writing it out. The LINKER argument is TRUE if this BFD was created by the ELF backend linker. */ void (*elf_backend_final_write_processing) - PARAMS ((bfd *, boolean linker)); + PARAMS ((bfd *, bfd_boolean linker)); /* This function is called by get_program_header_size. It should return the number of additional program segments which this BFD @@ -746,7 +744,7 @@ struct elf_backend_data /* This function is called to modify an existing segment map in a backend specific fashion. */ - boolean (*elf_backend_modify_segment_map) + bfd_boolean (*elf_backend_modify_segment_map) PARAMS ((bfd *)); /* This function is called during section gc to discover the section a @@ -758,7 +756,7 @@ struct elf_backend_data /* This function, if defined, is called during the sweep phase of gc in order that a backend might update any data structures it might be maintaining. */ - boolean (*gc_sweep_hook) + bfd_boolean (*gc_sweep_hook) PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *o, const Elf_Internal_Rela *relocs)); @@ -778,9 +776,9 @@ struct elf_backend_data global symbols converted to locals are emited into the symtab section. It allows the backend to emit special global symbols not handled in the hash table. */ - boolean (*elf_backend_output_arch_syms) + bfd_boolean (*elf_backend_output_arch_syms) PARAMS ((bfd *, struct bfd_link_info *, PTR, - boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *))); + bfd_boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *))); /* Copy any information related to dynamic linking from a pre-existing symbol to a newly created symbol. Also called to copy flags and @@ -794,11 +792,11 @@ struct elf_backend_data /* Modify any information related to dynamic linking such that the symbol is not exported. */ void (*elf_backend_hide_symbol) - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); /* Emit relocations. Overrides default routine for emitting relocs, except during a relocatable link, or if all relocs are being emitted. */ - boolean (*elf_backend_emit_relocs) + bfd_boolean (*elf_backend_emit_relocs) PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *)); /* Count relocations. Not called for relocatable links @@ -808,12 +806,12 @@ struct elf_backend_data /* This function, if defined, is called when an NT_PRSTATUS note is found in a core file. */ - boolean (*elf_backend_grok_prstatus) + bfd_boolean (*elf_backend_grok_prstatus) PARAMS ((bfd *, Elf_Internal_Note *)); /* This function, if defined, is called when an NT_PSINFO or NT_PRPSINFO note is found in a core file. */ - boolean (*elf_backend_grok_psinfo) + bfd_boolean (*elf_backend_grok_psinfo) PARAMS ((bfd *, Elf_Internal_Note *)); /* Functions to print VMAs. Special code to handle 64 bit ELF files. */ @@ -828,17 +826,17 @@ struct elf_backend_data /* This function, if defined, removes information about discarded functions from other sections which mention them. */ - boolean (*elf_backend_discard_info) + bfd_boolean (*elf_backend_discard_info) PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *)); /* This function, if defined, signals that the function above has removed the discarded relocations for this section. */ - boolean (*elf_backend_ignore_discarded_relocs) + bfd_boolean (*elf_backend_ignore_discarded_relocs) PARAMS ((asection *)); /* This function, if defined, may write out the given section. - Returns true if it did so and false if the caller should. */ - boolean (*elf_backend_write_section) + Returns TRUE if it did so and FALSE if the caller should. */ + bfd_boolean (*elf_backend_write_section) PARAMS ((bfd *, asection *, bfd_byte *)); /* The level of IRIX compatibility we're striving for. @@ -847,7 +845,7 @@ struct elf_backend_data PARAMS ((bfd *)); reloc_howto_type *(*elf_backend_mips_rtype_to_howto) - PARAMS ((unsigned int, boolean)); + PARAMS ((unsigned int, bfd_boolean)); /* The swapping table to use when dealing with ECOFF information. Used for the MIPS ELF .mdebug section. */ @@ -868,14 +866,14 @@ struct elf_backend_data bfd_vma got_header_size; bfd_vma plt_header_size; - /* This is true if the linker should act like collect and gather - global constructors and destructors by name. This is true for + /* This is TRUE if the linker should act like collect and gather + global constructors and destructors by name. This is TRUE for MIPS ELF because the Irix 5 tools can not handle the .init section. */ unsigned collect : 1; - /* This is true if the linker should ignore changes to the type of a - symbol. This is true for MIPS ELF because some Irix 5 objects + /* This is TRUE if the linker should ignore changes to the type of a + symbol. This is TRUE for MIPS ELF because some Irix 5 objects record undefined functions as STT_OBJECT although the definitions are STT_FUNC. */ unsigned type_change_ok : 1; @@ -902,7 +900,7 @@ struct elf_backend_data backend relocate_section routine for relocatable linking. */ unsigned rela_normal : 1; - /* True if addresses "naturally" sign extend. This is used when + /* TRUE if addresses "naturally" sign extend. This is used when swapping in from Elf32 when BFD64. */ unsigned sign_extend_vma : 1; @@ -1011,7 +1009,7 @@ struct bfd_elf_section_data #define elf_next_in_group(sec) (elf_section_data(sec)->next_in_group) #define elf_linkonce_p(sec) (elf_section_data(sec)->linkonce_p) -/* Return true if section has been discarded. */ +/* Return TRUE if section has been discarded. */ #define elf_discarded_section(sec) \ (!bfd_is_abs_section(sec) \ && bfd_is_abs_section((sec)->output_section) \ @@ -1050,7 +1048,7 @@ typedef struct elf_linker_section bfd_vma hole_offset; /* current offset for the hole */ bfd_vma max_hole_offset; /* maximum offset for the hole */ elf_linker_section_enum_t which; /* which section this is */ - boolean hole_written_p; /* whether the hole has been initialized */ + bfd_boolean hole_written_p; /* whether the hole has been initialized */ unsigned int alignment; /* alignment for the section */ flagword flags; /* flags to use to create the section */ } elf_linker_section_t; @@ -1064,7 +1062,7 @@ typedef struct elf_linker_section_pointe bfd_vma offset; /* offset of pointer from beginning of section */ bfd_vma addend; /* addend used */ elf_linker_section_enum_t which; /* which linker section this is */ - boolean written_address_p; /* whether address was written yet */ + bfd_boolean written_address_p; /* whether address was written yet */ } elf_linker_section_pointers_t; /* Some private data is stashed away for future use using the tdata pointer @@ -1115,9 +1113,9 @@ struct elf_obj_tdata char* core_program; char* core_command; - /* This is set to true if the object was created by the backend + /* This is set to TRUE if the object was created by the backend linker. */ - boolean linker; + bfd_boolean linker; /* A mapping from external symbols to entries in the linker hash table, used when linking. This is indexed by the symbol index @@ -1164,7 +1162,7 @@ struct elf_obj_tdata this BFD appears to be screwed up. If it is, we ignore the sh_info field in the symbol table header, and always read all the symbols. */ - boolean bad_symtab; + bfd_boolean bad_symtab; /* Records the result of `get_program_header_size'. */ bfd_size_type program_header_size; @@ -1194,7 +1192,7 @@ struct elf_obj_tdata asection *eh_frame_hdr; /* Used to determine if the e_flags field has been initialized */ - boolean flags_init; + bfd_boolean flags_init; /* Number of symbol version definitions we are about to emit. */ unsigned int cverdefs; @@ -1279,9 +1277,9 @@ extern Elf_Internal_Sym *bfd_elf_get_elf PARAMS ((bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, PTR, Elf_External_Sym_Shndx *)); -extern boolean _bfd_elf_copy_private_bfd_data +extern bfd_boolean _bfd_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -extern boolean _bfd_elf_print_private_bfd_data +extern bfd_boolean _bfd_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); extern void bfd_elf_print_symbol PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); @@ -1312,15 +1310,15 @@ extern unsigned long bfd_elf_hash extern bfd_reloc_status_type bfd_elf_generic_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -extern boolean bfd_elf_mkobject +extern bfd_boolean bfd_elf_mkobject PARAMS ((bfd *)); -extern boolean bfd_elf_mkcorefile +extern bfd_boolean bfd_elf_mkcorefile PARAMS ((bfd *)); extern Elf_Internal_Shdr *bfd_elf_find_section PARAMS ((bfd *, char *)); -extern boolean _bfd_elf_make_section_from_shdr +extern bfd_boolean _bfd_elf_make_section_from_shdr PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); -extern boolean _bfd_elf_make_section_from_phdr +extern bfd_boolean _bfd_elf_make_section_from_phdr PARAMS ((bfd *, Elf_Internal_Phdr *, int, const char *)); extern struct bfd_hash_entry *_bfd_elf_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); @@ -1330,31 +1328,31 @@ extern void _bfd_elf_link_hash_copy_indi PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); extern void _bfd_elf_link_hash_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); -extern boolean _bfd_elf_link_hash_table_init + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); +extern bfd_boolean _bfd_elf_link_hash_table_init PARAMS ((struct elf_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *))); -extern boolean _bfd_elf_slurp_version_tables +extern bfd_boolean _bfd_elf_slurp_version_tables PARAMS ((bfd *)); -extern boolean _bfd_elf_merge_sections +extern bfd_boolean _bfd_elf_merge_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf_discard_group +extern bfd_boolean bfd_elf_discard_group PARAMS ((bfd *, struct sec *)); extern void bfd_elf_set_group_contents PARAMS ((bfd *, asection *, PTR)); extern void _bfd_elf_link_just_syms PARAMS ((asection *, struct bfd_link_info *)); -extern boolean _bfd_elf_copy_private_symbol_data +extern bfd_boolean _bfd_elf_copy_private_symbol_data PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); -extern boolean _bfd_elf_copy_private_section_data +extern bfd_boolean _bfd_elf_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); -extern boolean _bfd_elf_write_object_contents +extern bfd_boolean _bfd_elf_write_object_contents PARAMS ((bfd *)); -extern boolean _bfd_elf_write_corefile_contents +extern bfd_boolean _bfd_elf_write_corefile_contents PARAMS ((bfd *)); -extern boolean _bfd_elf_set_section_contents +extern bfd_boolean _bfd_elf_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); extern long _bfd_elf_get_symtab_upper_bound PARAMS ((bfd *)); @@ -1376,31 +1374,31 @@ extern asymbol *_bfd_elf_make_empty_symb PARAMS ((bfd *)); extern void _bfd_elf_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -extern boolean _bfd_elf_is_local_label_name +extern bfd_boolean _bfd_elf_is_local_label_name PARAMS ((bfd *, const char *)); extern alent *_bfd_elf_get_lineno PARAMS ((bfd *, asymbol *)); -extern boolean _bfd_elf_set_arch_mach +extern bfd_boolean _bfd_elf_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -extern boolean _bfd_elf_find_nearest_line +extern bfd_boolean _bfd_elf_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); #define _bfd_elf_read_minisymbols _bfd_generic_read_minisymbols #define _bfd_elf_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol extern int _bfd_elf_sizeof_headers - PARAMS ((bfd *, boolean)); -extern boolean _bfd_elf_new_section_hook + PARAMS ((bfd *, bfd_boolean)); +extern bfd_boolean _bfd_elf_new_section_hook PARAMS ((bfd *, asection *)); -extern boolean _bfd_elf_init_reloc_shdr - PARAMS ((bfd *, Elf_Internal_Shdr *, asection *, boolean)); +extern bfd_boolean _bfd_elf_init_reloc_shdr + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *, bfd_boolean)); /* If the target doesn't have reloc handling written yet: */ extern void _bfd_elf_no_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -extern boolean bfd_section_from_shdr +extern bfd_boolean bfd_section_from_shdr PARAMS ((bfd *, unsigned int shindex)); -extern boolean bfd_section_from_phdr +extern bfd_boolean bfd_section_from_phdr PARAMS ((bfd *, Elf_Internal_Phdr *, int)); extern int _bfd_elf_symbol_from_bfd_symbol @@ -1410,7 +1408,7 @@ extern asection *bfd_section_from_r_symn PARAMS ((bfd *, struct sym_sec_cache *, asection *, unsigned long)); extern asection *bfd_section_from_elf_index PARAMS ((bfd *, unsigned int)); -extern boolean _bfd_elf_create_dynamic_sections +extern bfd_boolean _bfd_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); extern struct bfd_strtab_hash *_bfd_elf_stringtab_init PARAMS ((void)); @@ -1420,7 +1418,7 @@ extern struct elf_strtab_hash * _bfd_elf extern void _bfd_elf_strtab_free PARAMS ((struct elf_strtab_hash *)); extern bfd_size_type _bfd_elf_strtab_add - PARAMS ((struct elf_strtab_hash *, const char *, boolean)); + PARAMS ((struct elf_strtab_hash *, const char *, bfd_boolean)); extern void _bfd_elf_strtab_addref PARAMS ((struct elf_strtab_hash *, bfd_size_type)); extern void _bfd_elf_strtab_delref @@ -1431,47 +1429,47 @@ extern bfd_size_type _bfd_elf_strtab_siz PARAMS ((struct elf_strtab_hash *)); extern bfd_size_type _bfd_elf_strtab_offset PARAMS ((struct elf_strtab_hash *, bfd_size_type)); -extern boolean _bfd_elf_strtab_emit +extern bfd_boolean _bfd_elf_strtab_emit PARAMS ((bfd *, struct elf_strtab_hash *)); extern void _bfd_elf_strtab_finalize PARAMS ((struct elf_strtab_hash *)); -extern boolean _bfd_elf_discard_section_eh_frame +extern bfd_boolean _bfd_elf_discard_section_eh_frame PARAMS ((bfd *, struct bfd_link_info *, asection *, - boolean (*) (bfd_vma, PTR), struct elf_reloc_cookie *)); -extern boolean _bfd_elf_discard_section_eh_frame_hdr + bfd_boolean (*) (bfd_vma, PTR), struct elf_reloc_cookie *)); +extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr PARAMS ((bfd *, struct bfd_link_info *)); extern bfd_vma _bfd_elf_eh_frame_section_offset PARAMS ((bfd *, asection *, bfd_vma)); -extern boolean _bfd_elf_write_section_eh_frame +extern bfd_boolean _bfd_elf_write_section_eh_frame PARAMS ((bfd *, struct bfd_link_info *, asection *, bfd_byte *)); -extern boolean _bfd_elf_write_section_eh_frame_hdr +extern bfd_boolean _bfd_elf_write_section_eh_frame_hdr PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf_maybe_strip_eh_frame_hdr +extern bfd_boolean _bfd_elf_maybe_strip_eh_frame_hdr PARAMS ((struct bfd_link_info *)); -extern boolean _bfd_elf_link_record_dynamic_symbol +extern bfd_boolean _bfd_elf_link_record_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); extern long _bfd_elf_link_lookup_local_dynindx PARAMS ((struct bfd_link_info *, bfd *, long)); -extern boolean _bfd_elf_compute_section_file_positions +extern bfd_boolean _bfd_elf_compute_section_file_positions PARAMS ((bfd *, struct bfd_link_info *)); extern void _bfd_elf_assign_file_positions_for_relocs PARAMS ((bfd *)); extern file_ptr _bfd_elf_assign_file_position_for_section - PARAMS ((Elf_Internal_Shdr *, file_ptr, boolean)); + PARAMS ((Elf_Internal_Shdr *, file_ptr, bfd_boolean)); -extern boolean _bfd_elf_validate_reloc +extern bfd_boolean _bfd_elf_validate_reloc PARAMS ((bfd *, arelent *)); -extern boolean _bfd_elf_create_dynamic_sections +extern bfd_boolean _bfd_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf_create_got_section +extern bfd_boolean _bfd_elf_create_got_section PARAMS ((bfd *, struct bfd_link_info *)); extern unsigned long _bfd_elf_link_renumber_dynsyms PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elfcore_make_pseudosection +extern bfd_boolean _bfd_elfcore_make_pseudosection PARAMS ((bfd *, char *, size_t, ufile_ptr)); extern char *_bfd_elfcore_strndup PARAMS ((bfd *, char *, size_t)); @@ -1484,25 +1482,25 @@ extern elf_linker_section_pointers_t *_b PARAMS ((elf_linker_section_pointers_t *, bfd_vma, elf_linker_section_enum_t)); -extern boolean bfd_elf32_create_pointer_linker_section +extern bfd_boolean bfd_elf32_create_pointer_linker_section PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *, - struct elf_link_hash_entry *, const Elf32_Internal_Rela *)); + struct elf_link_hash_entry *, const Elf_Internal_Rela *)); extern bfd_vma bfd_elf32_finish_pointer_linker_section PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *, struct elf_link_hash_entry *, bfd_vma, - const Elf32_Internal_Rela *, int)); + const Elf_Internal_Rela *, int)); -extern boolean bfd_elf64_create_pointer_linker_section +extern bfd_boolean bfd_elf64_create_pointer_linker_section PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *, - struct elf_link_hash_entry *, const Elf64_Internal_Rela *)); + struct elf_link_hash_entry *, const Elf_Internal_Rela *)); extern bfd_vma bfd_elf64_finish_pointer_linker_section PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *, struct elf_link_hash_entry *, bfd_vma, - const Elf64_Internal_Rela *, int)); + const Elf_Internal_Rela *, int)); -extern boolean _bfd_elf_make_linker_section_rela +extern bfd_boolean _bfd_elf_make_linker_section_rela PARAMS ((bfd *, elf_linker_section_t *, int)); extern const bfd_target *bfd_elf32_object_p @@ -1513,12 +1511,12 @@ extern char *bfd_elf32_core_file_failing PARAMS ((bfd *)); extern int bfd_elf32_core_file_failing_signal PARAMS ((bfd *)); -extern boolean bfd_elf32_core_file_matches_executable_p +extern bfd_boolean bfd_elf32_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -extern boolean bfd_elf32_bfd_link_add_symbols +extern bfd_boolean bfd_elf32_bfd_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf32_bfd_final_link +extern bfd_boolean bfd_elf32_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); extern void bfd_elf32_swap_symbol_in @@ -1526,13 +1524,13 @@ extern void bfd_elf32_swap_symbol_in extern void bfd_elf32_swap_symbol_out PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR)); extern void bfd_elf32_swap_reloc_in - PARAMS ((bfd *, const Elf32_External_Rel *, Elf_Internal_Rel *)); + PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); extern void bfd_elf32_swap_reloc_out - PARAMS ((bfd *, const Elf_Internal_Rel *, Elf32_External_Rel *)); + PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); extern void bfd_elf32_swap_reloca_in - PARAMS ((bfd *, const Elf32_External_Rela *, Elf_Internal_Rela *)); + PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); extern void bfd_elf32_swap_reloca_out - PARAMS ((bfd *, const Elf_Internal_Rela *, Elf32_External_Rela *)); + PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); extern void bfd_elf32_swap_phdr_in PARAMS ((bfd *, const Elf32_External_Phdr *, Elf_Internal_Phdr *)); extern void bfd_elf32_swap_phdr_out @@ -1542,21 +1540,21 @@ extern void bfd_elf32_swap_dyn_in extern void bfd_elf32_swap_dyn_out PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR)); extern long bfd_elf32_slurp_symbol_table - PARAMS ((bfd *, asymbol **, boolean)); -extern boolean bfd_elf32_write_shdrs_and_ehdr + PARAMS ((bfd *, asymbol **, bfd_boolean)); +extern bfd_boolean bfd_elf32_write_shdrs_and_ehdr PARAMS ((bfd *)); extern int bfd_elf32_write_out_phdrs PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int)); extern void bfd_elf32_write_relocs PARAMS ((bfd *, asection *, PTR)); -extern boolean bfd_elf32_slurp_reloc_table - PARAMS ((bfd *, asection *, asymbol **, boolean)); -extern boolean bfd_elf32_add_dynamic_entry +extern bfd_boolean bfd_elf32_slurp_reloc_table + PARAMS ((bfd *, asection *, asymbol **, bfd_boolean)); +extern bfd_boolean bfd_elf32_add_dynamic_entry PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma)); -extern boolean bfd_elf32_link_create_dynamic_sections +extern bfd_boolean bfd_elf32_link_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); extern Elf_Internal_Rela *_bfd_elf32_link_read_relocs - PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, boolean)); + PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, bfd_boolean)); extern const bfd_target *bfd_elf64_object_p PARAMS ((bfd *)); @@ -1566,11 +1564,11 @@ extern char *bfd_elf64_core_file_failing PARAMS ((bfd *)); extern int bfd_elf64_core_file_failing_signal PARAMS ((bfd *)); -extern boolean bfd_elf64_core_file_matches_executable_p +extern bfd_boolean bfd_elf64_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -extern boolean bfd_elf64_bfd_link_add_symbols +extern bfd_boolean bfd_elf64_bfd_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean bfd_elf64_bfd_final_link +extern bfd_boolean bfd_elf64_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); extern void bfd_elf64_swap_symbol_in @@ -1578,13 +1576,13 @@ extern void bfd_elf64_swap_symbol_in extern void bfd_elf64_swap_symbol_out PARAMS ((bfd *, const Elf_Internal_Sym *, PTR, PTR)); extern void bfd_elf64_swap_reloc_in - PARAMS ((bfd *, const Elf64_External_Rel *, Elf_Internal_Rel *)); + PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); extern void bfd_elf64_swap_reloc_out - PARAMS ((bfd *, const Elf_Internal_Rel *, Elf64_External_Rel *)); + PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); extern void bfd_elf64_swap_reloca_in - PARAMS ((bfd *, const Elf64_External_Rela *, Elf_Internal_Rela *)); + PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); extern void bfd_elf64_swap_reloca_out - PARAMS ((bfd *, const Elf_Internal_Rela *, Elf64_External_Rela *)); + PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); extern void bfd_elf64_swap_phdr_in PARAMS ((bfd *, const Elf64_External_Phdr *, Elf_Internal_Phdr *)); extern void bfd_elf64_swap_phdr_out @@ -1594,21 +1592,21 @@ extern void bfd_elf64_swap_dyn_in extern void bfd_elf64_swap_dyn_out PARAMS ((bfd *, const Elf_Internal_Dyn *, PTR)); extern long bfd_elf64_slurp_symbol_table - PARAMS ((bfd *, asymbol **, boolean)); -extern boolean bfd_elf64_write_shdrs_and_ehdr + PARAMS ((bfd *, asymbol **, bfd_boolean)); +extern bfd_boolean bfd_elf64_write_shdrs_and_ehdr PARAMS ((bfd *)); extern int bfd_elf64_write_out_phdrs PARAMS ((bfd *, const Elf_Internal_Phdr *, unsigned int)); extern void bfd_elf64_write_relocs PARAMS ((bfd *, asection *, PTR)); -extern boolean bfd_elf64_slurp_reloc_table - PARAMS ((bfd *, asection *, asymbol **, boolean)); -extern boolean bfd_elf64_add_dynamic_entry +extern bfd_boolean bfd_elf64_slurp_reloc_table + PARAMS ((bfd *, asection *, asymbol **, bfd_boolean)); +extern bfd_boolean bfd_elf64_add_dynamic_entry PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma)); -extern boolean bfd_elf64_link_create_dynamic_sections +extern bfd_boolean bfd_elf64_link_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); extern Elf_Internal_Rela *_bfd_elf64_link_read_relocs - PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, boolean)); + PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, bfd_boolean)); #define bfd_elf32_link_record_dynamic_symbol \ _bfd_elf_link_record_dynamic_symbol @@ -1622,37 +1620,37 @@ extern int elf_link_record_local_dynamic #define _bfd_elf64_link_record_local_dynamic_symbol \ elf_link_record_local_dynamic_symbol -extern boolean _bfd_elf_close_and_cleanup +extern bfd_boolean _bfd_elf_close_and_cleanup PARAMS ((bfd *)); extern bfd_reloc_status_type _bfd_elf_rel_vtable_reloc_fn PARAMS ((bfd *, arelent *, struct symbol_cache_entry *, PTR, asection *, bfd *, char **)); -extern boolean _bfd_elf32_gc_sections +extern bfd_boolean _bfd_elf32_gc_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf32_gc_common_finalize_got_offsets +extern bfd_boolean _bfd_elf32_gc_common_finalize_got_offsets PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf32_gc_common_final_link +extern bfd_boolean _bfd_elf32_gc_common_final_link PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf32_gc_record_vtinherit +extern bfd_boolean _bfd_elf32_gc_record_vtinherit PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma)); -extern boolean _bfd_elf32_gc_record_vtentry +extern bfd_boolean _bfd_elf32_gc_record_vtentry PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma)); -extern boolean _bfd_elf64_gc_sections +extern bfd_boolean _bfd_elf64_gc_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf64_gc_common_finalize_got_offsets +extern bfd_boolean _bfd_elf64_gc_common_finalize_got_offsets PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf64_gc_common_final_link +extern bfd_boolean _bfd_elf64_gc_common_final_link PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_elf64_gc_record_vtinherit +extern bfd_boolean _bfd_elf64_gc_record_vtinherit PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma)); -extern boolean _bfd_elf64_gc_record_vtentry +extern bfd_boolean _bfd_elf64_gc_record_vtentry PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma)); -extern boolean _bfd_elf32_reloc_symbol_deleted_p +extern bfd_boolean _bfd_elf32_reloc_symbol_deleted_p PARAMS ((bfd_vma, PTR)); -extern boolean _bfd_elf64_reloc_symbol_deleted_p +extern bfd_boolean _bfd_elf64_reloc_symbol_deleted_p PARAMS ((bfd_vma, PTR)); /* Exported interface for writing elf corefile notes. */ @@ -1673,7 +1671,7 @@ extern char *elfcore_write_lwpstatus /* SH ELF specific routine. */ -extern boolean _sh_elf_set_mach_from_flags +extern bfd_boolean _sh_elf_set_mach_from_flags PARAMS ((bfd *)); #endif /* _LIBELF_H_ */ diff -uprN binutils-2.13.90.0.16/bfd/elf-eh-frame.c binutils-2.13.90.0.18/bfd/elf-eh-frame.c --- binutils-2.13.90.0.16/bfd/elf-eh-frame.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/elf-eh-frame.c Mon Dec 16 12:22:51 2002 @@ -161,7 +161,7 @@ read_value (abfd, buf, width) return value; } - + /* Store a width sized value to memory. */ static void @@ -210,16 +210,16 @@ int cie_compare (c1, c2) /* This function is called for each input file before the .eh_frame section is relocated. It discards duplicate CIEs and FDEs for discarded - functions. The function returns true iff any entries have been + functions. The function returns TRUE iff any entries have been deleted. */ -boolean +bfd_boolean _bfd_elf_discard_section_eh_frame (abfd, info, sec, reloc_symbol_deleted_p, cookie) bfd *abfd; struct bfd_link_info *info; asection *sec; - boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR)); + bfd_boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR)); struct elf_reloc_cookie *cookie; { bfd_byte *ehbuf = NULL, *buf; @@ -238,7 +238,7 @@ _bfd_elf_discard_section_eh_frame (abfd, if (sec->_raw_size == 0) { /* This file does not contain .eh_frame information. */ - return false; + return FALSE; } if ((sec->output_section != NULL @@ -246,7 +246,7 @@ _bfd_elf_discard_section_eh_frame (abfd, { /* At least one of the sections is being discarded from the link, so we should just ignore them. */ - return false; + return FALSE; } htab = elf_hash_table (info); @@ -268,7 +268,7 @@ _bfd_elf_discard_section_eh_frame (abfd, { /* Empty .eh_frame section. */ free (ehbuf); - return false; + return FALSE; } /* If .eh_frame section size doesn't fit into int, we cannot handle @@ -578,7 +578,7 @@ _bfd_elf_discard_section_eh_frame (abfd, which we cannot turn into PC relative, don't create the binary search table, since it is affected by runtime relocations. */ - hdr_info->table = false; + hdr_info->table = FALSE; } cie_usage_count++; hdr_info->fde_count++; @@ -663,16 +663,16 @@ free_no_table: free (ehbuf); if (sec_info) free (sec_info); - hdr_info->table = false; + hdr_info->table = FALSE; hdr_info->last_cie.hdr.length = 0; - return false; + return FALSE; } /* This function is called for .eh_frame_hdr section after _bfd_elf_discard_section_eh_frame has been called on all .eh_frame input sections. It finalizes the size of .eh_frame_hdr section. */ -boolean +bfd_boolean _bfd_elf_discard_section_eh_frame_hdr (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -685,7 +685,7 @@ _bfd_elf_discard_section_eh_frame_hdr (a hdr_info = &htab->eh_info; sec = hdr_info->hdr_sec; if (sec == NULL) - return false; + return FALSE; sec->_cooked_size = EH_FRAME_HDR_SIZE; if (hdr_info->table) @@ -694,7 +694,7 @@ _bfd_elf_discard_section_eh_frame_hdr (a /* Request program headers to be recalculated. */ elf_tdata (abfd)->program_header_size = 0; elf_tdata (abfd)->eh_frame_hdr = sec; - return true; + return TRUE; } /* This function is called from size_dynamic_sections. @@ -702,7 +702,7 @@ _bfd_elf_discard_section_eh_frame_hdr (a because later on it is too late for calling _bfd_strip_section_from_output, since dynamic symbol table has been sized. */ -boolean +bfd_boolean _bfd_elf_maybe_strip_eh_frame_hdr (info) struct bfd_link_info *info; { @@ -714,12 +714,12 @@ _bfd_elf_maybe_strip_eh_frame_hdr (info) htab = elf_hash_table (info); hdr_info = &htab->eh_info; if (hdr_info->hdr_sec == NULL) - return true; + return TRUE; if (bfd_is_abs_section (hdr_info->hdr_sec->output_section)) { hdr_info->hdr_sec = NULL; - return true; + return TRUE; } abfd = NULL; @@ -737,11 +737,11 @@ _bfd_elf_maybe_strip_eh_frame_hdr (info) { _bfd_strip_section_from_output (info, hdr_info->hdr_sec); hdr_info->hdr_sec = NULL; - return true; + return TRUE; } - hdr_info->table = true; - return true; + hdr_info->table = TRUE; + return TRUE; } /* Adjust an address in the .eh_frame section. Given OFFSET within @@ -809,7 +809,7 @@ _bfd_elf_eh_frame_section_offset (output /* Write out .eh_frame section. This is called with the relocated contents. */ -boolean +bfd_boolean _bfd_elf_write_section_eh_frame (abfd, info, sec, contents) bfd *abfd; struct bfd_link_info *info; @@ -954,7 +954,7 @@ _bfd_elf_write_section_eh_frame (abfd, i unsigned int width; buf = contents + sec_info->entry[i].offset; - /* Skip length. */ + /* Skip length. */ buf += 4; bfd_put_32 (abfd, sec_info->entry[i].new_offset + 4 - cie_offset, buf); @@ -1088,7 +1088,7 @@ vma_compare (a, b) FDE initial_location field and FDE address, sorted by increasing initial_loc) */ -boolean +bfd_boolean _bfd_elf_write_section_eh_frame_hdr (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1104,18 +1104,18 @@ _bfd_elf_write_section_eh_frame_hdr (abf hdr_info = &htab->eh_info; sec = hdr_info->hdr_sec; if (sec == NULL) - return true; + return TRUE; size = EH_FRAME_HDR_SIZE; if (hdr_info->array && hdr_info->array_count == hdr_info->fde_count) size += 4 + hdr_info->fde_count * 8; contents = bfd_malloc (size); if (contents == NULL) - return false; + return FALSE; eh_frame_sec = bfd_get_section_by_name (abfd, ".eh_frame"); if (eh_frame_sec == NULL) - return false; + return FALSE; memset (contents, 0, EH_FRAME_HDR_SIZE); contents[0] = 1; /* Version */ diff -uprN binutils-2.13.90.0.16/bfd/elf-hppa.h binutils-2.13.90.0.18/bfd/elf-hppa.h --- binutils-2.13.90.0.16/bfd/elf-hppa.h Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf-hppa.h Mon Dec 16 12:22:51 2002 @@ -28,7 +28,6 @@ Foundation, Inc., 59 Temple Place - Suit #if ARCH_SIZE == 64 #define ELF_R_TYPE(X) ELF64_R_TYPE(X) #define ELF_R_SYM(X) ELF64_R_SYM(X) -#define elf_hppa_internal_shdr Elf64_Internal_Shdr #define elf_hppa_reloc_final_type elf64_hppa_reloc_final_type #define _bfd_elf_hppa_gen_reloc_type _bfd_elf64_hppa_gen_reloc_type #define elf_hppa_relocate_section elf64_hppa_relocate_section @@ -38,7 +37,6 @@ Foundation, Inc., 59 Temple Place - Suit #if ARCH_SIZE == 32 #define ELF_R_TYPE(X) ELF32_R_TYPE(X) #define ELF_R_SYM(X) ELF32_R_SYM(X) -#define elf_hppa_internal_shdr Elf32_Internal_Shdr #define elf_hppa_reloc_final_type elf32_hppa_reloc_final_type #define _bfd_elf_hppa_gen_reloc_type _bfd_elf32_hppa_gen_reloc_type #define elf_hppa_relocate_section elf32_hppa_relocate_section @@ -50,47 +48,47 @@ static void elf_hppa_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void elf_hppa_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static reloc_howto_type * elf_hppa_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static boolean elf_hppa_is_local_label_name +static bfd_boolean elf_hppa_is_local_label_name PARAMS ((bfd *, const char *)); -static boolean elf_hppa_fake_sections - PARAMS ((bfd *abfd, elf_hppa_internal_shdr *, asection *)); +static bfd_boolean elf_hppa_fake_sections + PARAMS ((bfd *abfd, Elf_Internal_Shdr *, asection *)); static void elf_hppa_final_write_processing - PARAMS ((bfd *, boolean)); + PARAMS ((bfd *, bfd_boolean)); static int hppa_unwind_entry_compare PARAMS ((const PTR, const PTR)); -static boolean elf_hppa_sort_unwind +static bfd_boolean elf_hppa_sort_unwind PARAMS ((bfd *)); #if ARCH_SIZE == 64 -static boolean elf_hppa_add_symbol_hook +static bfd_boolean elf_hppa_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean elf_hppa_unmark_useless_dynamic_symbols +static bfd_boolean elf_hppa_unmark_useless_dynamic_symbols PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_hppa_remark_useless_dynamic_symbols +static bfd_boolean elf_hppa_remark_useless_dynamic_symbols PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_hppa_is_dynamic_loader_symbol +static bfd_boolean elf_hppa_is_dynamic_loader_symbol PARAMS ((const char *)); static void elf_hppa_record_segment_addrs PARAMS ((bfd *, asection *, PTR)); -static boolean elf_hppa_final_link +static bfd_boolean elf_hppa_final_link PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_hppa_relocate_section +static bfd_boolean elf_hppa_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -108,506 +106,506 @@ static int elf_hppa_relocate_insn static reloc_howto_type elf_hppa_howto_table[ELF_HOWTO_TABLE_SIZE] = { - { R_PARISC_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_NONE", false, 0, 0, false }, + { R_PARISC_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_NONE", FALSE, 0, 0, FALSE }, /* The values in DIR32 are to placate the check in _bfd_stab_section_find_nearest_line. */ - { R_PARISC_DIR32, 0, 2, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR32", false, 0, 0xffffffff, false }, - { R_PARISC_DIR21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR21L", false, 0, 0, false }, - { R_PARISC_DIR17R, 0, 0, 17, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR17R", false, 0, 0, false }, - { R_PARISC_DIR17F, 0, 0, 17, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR17F", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DIR14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14R", false, 0, 0, false }, - { R_PARISC_DIR14F, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14F", false, 0, 0, false }, + { R_PARISC_DIR32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR32", FALSE, 0, 0xffffffff, FALSE }, + { R_PARISC_DIR21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR21L", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR17R, 0, 0, 17, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR17R", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR17F, 0, 0, 17, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR17F", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR14R", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR14F", FALSE, 0, 0, FALSE }, /* 8 */ - { R_PARISC_PCREL12F, 0, 0, 12, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL12F", false, 0, 0, false }, - { R_PARISC_PCREL32, 0, 0, 32, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL32", false, 0, 0, false }, - { R_PARISC_PCREL21L, 0, 0, 21, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL21L", false, 0, 0, false }, - { R_PARISC_PCREL17R, 0, 0, 17, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL17R", false, 0, 0, false }, - { R_PARISC_PCREL17F, 0, 0, 17, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL17F", false, 0, 0, false }, - { R_PARISC_PCREL17C, 0, 0, 17, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL17C", false, 0, 0, false }, - { R_PARISC_PCREL14R, 0, 0, 14, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14R", false, 0, 0, false }, - { R_PARISC_PCREL14F, 0, 0, 14, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14F", false, 0, 0, false }, + { R_PARISC_PCREL12F, 0, 0, 12, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL12F", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL32, 0, 0, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL32", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL21L, 0, 0, 21, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL21L", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL17R, 0, 0, 17, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL17R", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL17F, 0, 0, 17, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL17F", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL17C, 0, 0, 17, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL17C", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL14R, 0, 0, 14, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL14R", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL14F, 0, 0, 14, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL14F", FALSE, 0, 0, FALSE }, /* 16 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DPREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL21L", false, 0, 0, false }, - { R_PARISC_DPREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14WR", false, 0, 0, false }, - { R_PARISC_DPREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14DR", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DPREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14R", false, 0, 0, false }, - { R_PARISC_DPREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DPREL14F", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DPREL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DPREL21L", FALSE, 0, 0, FALSE }, + { R_PARISC_DPREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DPREL14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_DPREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DPREL14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DPREL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DPREL14R", FALSE, 0, 0, FALSE }, + { R_PARISC_DPREL14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DPREL14F", FALSE, 0, 0, FALSE }, /* 24 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DLTREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL21L", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DLTREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14R", false, 0, 0, false }, - { R_PARISC_DLTREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14F", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTREL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTREL21L", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTREL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTREL14R", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTREL14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTREL14F", FALSE, 0, 0, FALSE }, /* 32 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DLTIND21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND21L", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DLTIND14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14R", false, 0, 0, false }, - { R_PARISC_DLTIND14F, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14F", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTIND21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTIND21L", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTIND14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTIND14R", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTIND14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTIND14F", FALSE, 0, 0, FALSE }, /* 40 */ - { R_PARISC_SETBASE, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SETBASE", false, 0, 0, false }, - { R_PARISC_SECREL32, 0, 0, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SECREL32", false, 0, 0, false }, - { R_PARISC_BASEREL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL21L", false, 0, 0, false }, - { R_PARISC_BASEREL17R, 0, 0, 17, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL17R", false, 0, 0, false }, - { R_PARISC_BASEREL17F, 0, 0, 17, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL17F", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_BASEREL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14R", false, 0, 0, false }, - { R_PARISC_BASEREL14F, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14F", false, 0, 0, false }, + { R_PARISC_SETBASE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_SETBASE", FALSE, 0, 0, FALSE }, + { R_PARISC_SECREL32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_SECREL32", FALSE, 0, 0, FALSE }, + { R_PARISC_BASEREL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_BASEREL21L", FALSE, 0, 0, FALSE }, + { R_PARISC_BASEREL17R, 0, 0, 17, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_BASEREL17R", FALSE, 0, 0, FALSE }, + { R_PARISC_BASEREL17F, 0, 0, 17, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_BASEREL17F", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_BASEREL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_BASEREL14R", FALSE, 0, 0, FALSE }, + { R_PARISC_BASEREL14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_BASEREL14F", FALSE, 0, 0, FALSE }, /* 48 */ - { R_PARISC_SEGBASE, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SEGBASE", false, 0, 0, false }, - { R_PARISC_SEGREL32, 0, 0, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SEGREL32", false, 0, 0, false }, - { R_PARISC_PLTOFF21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF21L", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_PLTOFF14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14R", false, 0, 0, false }, - { R_PARISC_PLTOFF14F, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14F", false, 0, 0, false }, + { R_PARISC_SEGBASE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_SEGBASE", FALSE, 0, 0, FALSE }, + { R_PARISC_SEGREL32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_SEGREL32", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF21L", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF14R", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF14F", FALSE, 0, 0, FALSE }, /* 56 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR32, 0, 0, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR32", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR21L", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14R", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR32", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR21L", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14R", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 64 */ - { R_PARISC_FPTR64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_FPTR64", false, 0, 0, false }, - { R_PARISC_PLABEL32, 0, 0, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLABEL32", false, 0, 0, false }, - { R_PARISC_PLABEL21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLABEL21L", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_PLABEL14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLABEL14R", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_FPTR64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_FPTR64", FALSE, 0, 0, FALSE }, + { R_PARISC_PLABEL32, 0, 0, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLABEL32", FALSE, 0, 0, FALSE }, + { R_PARISC_PLABEL21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLABEL21L", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_PLABEL14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLABEL14R", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 72 */ - { R_PARISC_PCREL64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL64", false, 0, 0, false }, - { R_PARISC_PCREL22C, 0, 0, 22, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL22C", false, 0, 0, false }, - { R_PARISC_PCREL22F, 0, 0, 22, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL22F", false, 0, 0, false }, - { R_PARISC_PCREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14WR", false, 0, 0, false }, - { R_PARISC_PCREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL14DR", false, 0, 0, false }, - { R_PARISC_PCREL16F, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL16F", false, 0, 0, false }, - { R_PARISC_PCREL16WF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL16WF", false, 0, 0, false }, - { R_PARISC_PCREL16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PCREL16DF", false, 0, 0, false }, + { R_PARISC_PCREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL64", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL22C, 0, 0, 22, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL22C", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL22F, 0, 0, 22, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL22F", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL16F", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL16WF", FALSE, 0, 0, FALSE }, + { R_PARISC_PCREL16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PCREL16DF", FALSE, 0, 0, FALSE }, /* 80 */ - { R_PARISC_DIR64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR64", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DIR14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14WR", false, 0, 0, false }, - { R_PARISC_DIR14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR14DR", false, 0, 0, false }, - { R_PARISC_DIR16F, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR16F", false, 0, 0, false }, - { R_PARISC_DIR16WF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR16WF", false, 0, 0, false }, - { R_PARISC_DIR16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DIR16DF", false, 0, 0, false }, + { R_PARISC_DIR64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR64", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR16F", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR16WF", FALSE, 0, 0, FALSE }, + { R_PARISC_DIR16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DIR16DF", FALSE, 0, 0, FALSE }, /* 88 */ - { R_PARISC_GPREL64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL64", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DLTREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14WR", false, 0, 0, false }, - { R_PARISC_DLTREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTREL14DR", false, 0, 0, false }, - { R_PARISC_GPREL16F, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL16F", false, 0, 0, false }, - { R_PARISC_GPREL16WF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL16WF", false, 0, 0, false }, - { R_PARISC_GPREL16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_GPREL16DF", false, 0, 0, false }, + { R_PARISC_GPREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_GPREL64", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTREL14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTREL14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_GPREL16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_GPREL16F", FALSE, 0, 0, FALSE }, + { R_PARISC_GPREL16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_GPREL16WF", FALSE, 0, 0, FALSE }, + { R_PARISC_GPREL16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_GPREL16DF", FALSE, 0, 0, FALSE }, /* 96 */ - { R_PARISC_LTOFF64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF64", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_DLTIND14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14WR", false, 0, 0, false }, - { R_PARISC_DLTIND14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_DLTIND14DR", false, 0, 0, false }, - { R_PARISC_LTOFF16F, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF16F", false, 0, 0, false }, - { R_PARISC_LTOFF16WF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", false, 0, 0, false }, - { R_PARISC_LTOFF16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", false, 0, 0, false }, + { R_PARISC_LTOFF64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF64", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTIND14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTIND14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_DLTIND14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_DLTIND14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF16F", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF16DF", FALSE, 0, 0, FALSE }, /* 104 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_BASEREL14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14WR", false, 0, 0, false }, - { R_PARISC_BASEREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_BASEREL14DR", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_BASEREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_BASEREL14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_BASEREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_BASEREL14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 112 */ - { R_PARISC_SEGREL64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_SEGREL64", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_PLTOFF14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14WR", false, 0, 0, false }, - { R_PARISC_PLTOFF14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF14DR", false, 0, 0, false }, - { R_PARISC_PLTOFF16F, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF16F", false, 0, 0, false }, - { R_PARISC_PLTOFF16WF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF16WF", false, 0, 0, false }, - { R_PARISC_PLTOFF16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_PLTOFF16DF", false, 0, 0, false }, + { R_PARISC_SEGREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_SEGREL64", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF16F", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF16WF", FALSE, 0, 0, FALSE }, + { R_PARISC_PLTOFF16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_PLTOFF16DF", FALSE, 0, 0, FALSE }, /* 120 */ - { R_PARISC_LTOFF_FPTR64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14WR", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14DR", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR16F, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16F", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR16WF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16WF", false, 0, 0, false }, - { R_PARISC_LTOFF_FPTR16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_LTOFF_FPTR64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16F", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_FPTR16WF", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_FPTR16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 128 */ - { R_PARISC_COPY, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_COPY", false, 0, 0, false }, - { R_PARISC_IPLT, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_IPLT", false, 0, 0, false }, - { R_PARISC_EPLT, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_EPLT", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_COPY, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_COPY", FALSE, 0, 0, FALSE }, + { R_PARISC_IPLT, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_IPLT", FALSE, 0, 0, FALSE }, + { R_PARISC_EPLT, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_EPLT", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 136 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 144 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 152 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_TPREL32, 0, 0, 32, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL32", false, 0, 0, false }, - { R_PARISC_TPREL21L, 0, 0, 21, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL21L", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_TPREL14R, 0, 0, 14, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL14R", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL32, 0, 0, 32, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_TPREL32", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL21L, 0, 0, 21, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_TPREL21L", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL14R, 0, 0, 14, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_TPREL14R", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 160 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_LTOFF_TP21L, 0, 0, 21, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP21L", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_LTOFF_TP14R, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_LTOFF_TP14F, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14F", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP21L, 0, 0, 21, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP21L", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP14R, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP14F, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14F", FALSE, 0, 0, FALSE }, /* 168 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 176 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 184 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 192 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 200 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 208 */ - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, /* 216 */ - { R_PARISC_TPREL64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL64", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_TPREL14WR, 0, 0, 14, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL14WR", false, 0, 0, false }, - { R_PARISC_TPREL14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL14DR", false, 0, 0, false }, - { R_PARISC_TPREL16F, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL16F", false, 0, 0, false }, - { R_PARISC_TPREL16WF, 0, 0, 16, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_TPREL16WF", false, 0, 0, false }, - { R_PARISC_TPREL16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_TPREL16DF", false, 0, 0, false }, + { R_PARISC_TPREL64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_TPREL64", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL14WR, 0, 0, 14, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_TPREL14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_TPREL14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL16F, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_TPREL16F", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL16WF, 0, 0, 16, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_TPREL16WF", FALSE, 0, 0, FALSE }, + { R_PARISC_TPREL16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_TPREL16DF", FALSE, 0, 0, FALSE }, /* 224 */ - { R_PARISC_LTOFF_TP64, 0, 0, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP64", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_UNIMPLEMENTED, 0, 0, 0, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", false, 0, 0, false }, - { R_PARISC_LTOFF_TP14WR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14WR", false, 0, 0, false }, - { R_PARISC_LTOFF_TP14DR, 0, 0, 14, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14DR", false, 0, 0, false }, - { R_PARISC_LTOFF_TP16F, 0, 0, 16, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16F", false, 0, 0, false }, - { R_PARISC_LTOFF_TP16WF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16WF", false, 0, 0, false }, - { R_PARISC_LTOFF_TP16DF, 0, 0, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16DF", false, 0, 0, false }, + { R_PARISC_LTOFF_TP64, 0, 0, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP64", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_UNIMPLEMENTED, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_UNIMPLEMENTED", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP14WR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14WR", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP14DR, 0, 0, 14, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP14DR", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP16F, 0, 0, 16, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16F", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP16WF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16WF", FALSE, 0, 0, FALSE }, + { R_PARISC_LTOFF_TP16DF, 0, 0, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_PARISC_LTOFF_TP16DF", FALSE, 0, 0, FALSE }, /* 232 */ - { R_PARISC_GNU_VTENTRY, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_GNU_VTENTRY", false, 0, 0, false }, - { R_PARISC_GNU_VTINHERIT, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_PARISC_GNU_VTINHERIT", false, 0, 0, false }, + { R_PARISC_GNU_VTENTRY, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_GNU_VTENTRY", FALSE, 0, 0, FALSE }, + { R_PARISC_GNU_VTINHERIT, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_PARISC_GNU_VTINHERIT", FALSE, 0, 0, FALSE }, }; #define OFFSET_14R_FROM_21L 4 @@ -937,7 +935,7 @@ static void elf_hppa_info_to_howto_rel (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf_Internal_Rel *elf_reloc; + Elf_Internal_Rela *elf_reloc; { BFD_ASSERT (ELF_R_TYPE(elf_reloc->r_info) < (unsigned int) R_PARISC_UNIMPLEMENTED); @@ -960,9 +958,9 @@ elf_hppa_reloc_type_lookup (abfd, code) return NULL; } -/* Return true if SYM represents a local label symbol. */ +/* Return TRUE if SYM represents a local label symbol. */ -static boolean +static bfd_boolean elf_hppa_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -975,10 +973,10 @@ elf_hppa_is_local_label_name (abfd, name /* Set the correct type for an ELF section. We do this by the section name, which is a hack, but ought to work. */ -static boolean +static bfd_boolean elf_hppa_fake_sections (abfd, hdr, sec) bfd *abfd; - elf_hppa_internal_shdr *hdr; + Elf_Internal_Shdr *hdr; asection *sec; { register const char *name; @@ -1015,13 +1013,13 @@ elf_hppa_fake_sections (abfd, hdr, sec) /* I have no idea if this is really necessary or what it means. */ hdr->sh_entsize = 4; } - return true; + return TRUE; } static void elf_hppa_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { int mach = bfd_get_mach (abfd); @@ -1072,7 +1070,7 @@ hppa_unwind_entry_compare (a, b) return av < bv ? -1 : av > bv ? 1 : 0; } -static boolean elf_hppa_sort_unwind (abfd) +static bfd_boolean elf_hppa_sort_unwind (abfd) bfd *abfd; { asection *s; @@ -1090,18 +1088,18 @@ static boolean elf_hppa_sort_unwind (abf size = s->_raw_size; contents = bfd_malloc (size); if (contents == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, s, contents, (file_ptr) 0, size)) - return false; + return FALSE; qsort (contents, (size_t) (size / 16), 16, hppa_unwind_entry_compare); if (! bfd_set_section_contents (abfd, s, contents, (file_ptr) 0, size)) - return false; + return FALSE; } - return true; + return TRUE; } #if ARCH_SIZE == 64 @@ -1109,7 +1107,7 @@ static boolean elf_hppa_sort_unwind (abf file. HP's libraries define symbols with HP specific section indices, which we have to handle. */ -static boolean +static bfd_boolean elf_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1136,10 +1134,10 @@ elf_hppa_add_symbol_hook (abfd, info, sy break; } - return true; + return TRUE; } -static boolean +static bfd_boolean elf_hppa_unmark_useless_dynamic_symbols (h, data) struct elf_link_hash_entry *h; PTR data; @@ -1172,10 +1170,10 @@ elf_hppa_unmark_useless_dynamic_symbols h->elf_link_hash_flags |= 0x8000; } - return true; + return TRUE; } -static boolean +static bfd_boolean elf_hppa_remark_useless_dynamic_symbols (h, data) struct elf_link_hash_entry *h; PTR data; @@ -1209,10 +1207,10 @@ elf_hppa_remark_useless_dynamic_symbols h->elf_link_hash_flags &= ~0x8000; } - return true; + return TRUE; } -static boolean +static bfd_boolean elf_hppa_is_dynamic_loader_symbol (name) const char * name; { @@ -1259,12 +1257,12 @@ elf_hppa_record_segment_addrs (abfd, sec We use this hook to (possibly) provide a value for __gp, then we fall back to the generic ELF final link routine. */ -static boolean +static bfd_boolean elf_hppa_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; { - boolean retval; + bfd_boolean retval; struct elf64_hppa_link_hash_table *hppa_info = elf64_hppa_hash_table (info); if (! info->relocateable) @@ -1276,8 +1274,8 @@ elf_hppa_final_link (abfd, info) by one of the objects being linked. First try to find the symbol in the hash table. If that fails, just compute the value __gp should have had. */ - gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", false, - false, false); + gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", FALSE, + FALSE, FALSE); if (gp) { @@ -1315,7 +1313,7 @@ elf_hppa_final_link (abfd, info) if (!sec || (sec->flags & SEC_EXCLUDE)) sec = bfd_get_section_by_name (abfd, ".data"); if (!sec || (sec->flags & SEC_EXCLUDE)) - return false; + return FALSE; gp_val = sec->output_offset + sec->output_section->vma; } @@ -1361,7 +1359,7 @@ elf_hppa_final_link (abfd, info) /* Relocate an HPPA ELF section. */ -static boolean +static bfd_boolean elf_hppa_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1379,7 +1377,7 @@ elf_hppa_relocate_section (output_bfd, i struct elf64_hppa_link_hash_table *hppa_info; if (info->relocateable) - return true; + return TRUE; hppa_info = elf64_hppa_hash_table (info); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1406,7 +1404,7 @@ elf_hppa_relocate_section (output_bfd, i if (r_type < 0 || r_type >= (int) R_PARISC_UNIMPLEMENTED) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* This is a final link. */ @@ -1426,7 +1424,7 @@ elf_hppa_relocate_section (output_bfd, i dyn_name = get_dyn_name (input_section, h, rel, &dynh_buf, &dynh_buflen); dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table, - dyn_name, false, false); + dyn_name, FALSE, FALSE); } else @@ -1449,7 +1447,7 @@ elf_hppa_relocate_section (output_bfd, i dyn_name = get_dyn_name (input_section, h, rel, &dynh_buf, &dynh_buflen); dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table, - dyn_name, false, false); + dyn_name, FALSE, FALSE); /* If we have a relocation against a symbol defined in a shared library and we have not created an entry in the @@ -1478,14 +1476,14 @@ elf_hppa_relocate_section (output_bfd, i if (info->symbolic) (*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, false); + input_section, rel->r_offset, FALSE); /* If this symbol has an entry in the PA64 dynamic hash table, then get it. */ dyn_name = get_dyn_name (input_section, h, rel, &dynh_buf, &dynh_buflen); dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table, - dyn_name, false, false); + dyn_name, FALSE, FALSE); if (dyn_h == NULL) { @@ -1508,8 +1506,8 @@ elf_hppa_relocate_section (output_bfd, i { if (!((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; break; } } @@ -1523,7 +1521,7 @@ elf_hppa_relocate_section (output_bfd, i symtab_hdr->sh_link, sym->st_name); if (sym_name == NULL) - return false; + return FALSE; if (*sym_name == '\0') sym_name = bfd_section_name (input_bfd, sym_sec); } @@ -1544,13 +1542,13 @@ elf_hppa_relocate_section (output_bfd, i if (!((*info->callbacks->reloc_overflow) (info, sym_name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* Compute the value for a relocation (REL) during a final link stage, diff -uprN binutils-2.13.90.0.16/bfd/elf-m10200.c binutils-2.13.90.0.18/bfd/elf-m10200.c --- binutils-2.13.90.0.16/bfd/elf-m10200.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf-m10200.c Mon Dec 16 12:22:51 2002 @@ -26,24 +26,24 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void mn10200_info_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean mn10200_elf_relax_delete_bytes + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean mn10200_elf_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); -static boolean mn10200_elf_symbol_address_p +static bfd_boolean mn10200_elf_symbol_address_p PARAMS ((bfd *, asection *, Elf_Internal_Sym *, bfd_vma)); static bfd_reloc_status_type mn10200_elf_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *, bfd_byte *, bfd_vma, bfd_vma, bfd_vma, struct bfd_link_info *, asection *, int)); -static boolean mn10200_elf_relocate_section -PARAMS (( bfd *, struct bfd_link_info *, bfd *, asection *, - bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, - asection **)); -static boolean mn10200_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); +static bfd_boolean mn10200_elf_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, + bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, + asection **)); +static bfd_boolean mn10200_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); static bfd_byte * mn10200_elf_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); + bfd_byte *, bfd_boolean, asymbol **)); enum reloc_type { R_MN10200_NONE = 0, @@ -63,114 +63,114 @@ static reloc_howto_type elf_mn10200_howt 0, 2, 16, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_NONE", - false, + FALSE, 0, 0, - false), + FALSE), /* Standard 32 bit reloc. */ HOWTO (R_MN10200_32, 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_32", - false, + FALSE, 0xffffffff, 0xffffffff, - false), + FALSE), /* Standard 16 bit reloc. */ HOWTO (R_MN10200_16, 0, 1, 16, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_16", - false, + FALSE, 0xffff, 0xffff, - false), + FALSE), /* Standard 8 bit reloc. */ HOWTO (R_MN10200_8, 0, 0, 8, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_8", - false, + FALSE, 0xff, 0xff, - false), + FALSE), /* Standard 24 bit reloc. */ HOWTO (R_MN10200_24, 0, 2, 24, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_24", - false, + FALSE, 0xffffff, 0xffffff, - false), + FALSE), /* Simple 8 pc-relative reloc. */ HOWTO (R_MN10200_PCREL8, 0, 0, 8, - true, + TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_PCREL8", - false, + FALSE, 0xff, 0xff, - true), + TRUE), /* Simple 16 pc-relative reloc. */ HOWTO (R_MN10200_PCREL16, 0, 1, 16, - true, + TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_PCREL16", - false, + FALSE, 0xffff, 0xffff, - true), + TRUE), /* Simple 32bit pc-relative reloc with a 1 byte adjustment to get the pc-relative offset correct. */ HOWTO (R_MN10200_PCREL24, 0, 2, 24, - true, + TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10200_PCREL24", - false, + FALSE, 0xffffff, 0xffffff, - true), + TRUE), }; struct mn10200_reloc_map { @@ -213,7 +213,7 @@ static void mn10200_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -327,7 +327,7 @@ mn10200_elf_final_link_relocate (howto, } /* Relocate an MN10200 ELF section. */ -static boolean +static bfd_boolean mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -344,7 +344,7 @@ mn10200_elf_relocate_section (output_bfd Elf_Internal_Rela *rel, *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -395,8 +395,8 @@ mn10200_elf_relocate_section (output_bfd { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -428,14 +428,14 @@ mn10200_elf_relocate_section (output_bfd if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (! ((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - rel->r_offset, true))) - return false; + rel->r_offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -458,13 +458,13 @@ mn10200_elf_relocate_section (output_bfd if (!((*info->callbacks->warning) (info, msg, name, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; } } } - return true; + return TRUE; } /* This function handles relaxing for the mn10200. @@ -496,12 +496,12 @@ mn10200_elf_relocate_section (output_bfd We don't handle imm16->imm8 or d16->d8 as they're very rare and somewhat more difficult to support. */ -static boolean +static bfd_boolean mn10200_elf_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; @@ -510,7 +510,7 @@ mn10200_elf_relax_section (abfd, sec, li Elf_Internal_Sym *isymbuf = NULL; /* Assume nothing changes. */ - *again = false; + *again = FALSE; /* We don't have to do anything for a relocateable link, if this section does not have relocs, or if this is not a @@ -519,7 +519,7 @@ mn10200_elf_relax_section (abfd, sec, li || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -679,7 +679,7 @@ mn10200_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } } @@ -726,7 +726,7 @@ mn10200_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } } @@ -879,7 +879,7 @@ mn10200_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } /* Try to turn a 24bit immediate, displacement or absolute address @@ -942,7 +942,7 @@ mn10200_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; /* mov imm24,an -> mov imm16,an @@ -993,7 +993,7 @@ mn10200_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; /* cmp imm24,dn -> cmp imm16,dn @@ -1094,7 +1094,7 @@ mn10200_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; /* movb (abs24),dn ->movbu (abs16),dn extxb bn */ @@ -1125,7 +1125,7 @@ mn10200_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; } } @@ -1160,7 +1160,7 @@ mn10200_elf_relax_section (abfd, sec, li && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL @@ -1173,12 +1173,12 @@ mn10200_elf_relax_section (abfd, sec, li && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } /* Delete some bytes from a section while relaxing. */ -static boolean +static bfd_boolean mn10200_elf_relax_delete_bytes (abfd, sec, addr, count) bfd *abfd; asection *sec; @@ -1253,12 +1253,12 @@ mn10200_elf_relax_delete_bytes (abfd, se } } - return true; + return TRUE; } -/* Return true if a symbol exists at the given address, else return - false. */ -static boolean +/* Return TRUE if a symbol exists at the given address, else return + FALSE. */ +static bfd_boolean mn10200_elf_symbol_address_p (abfd, sec, isym, addr) bfd *abfd; asection *sec; @@ -1280,7 +1280,7 @@ mn10200_elf_symbol_address_p (abfd, sec, { if (isym->st_shndx == sec_shndx && isym->st_value == addr) - return true; + return TRUE; } symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym) @@ -1294,10 +1294,10 @@ mn10200_elf_symbol_address_p (abfd, sec, || sym_hash->root.type == bfd_link_hash_defweak) && sym_hash->root.u.def.section == sec && sym_hash->root.u.def.value == addr) - return true; + return TRUE; } - return false; + return FALSE; } /* This is a version of bfd_generic_get_relocated_section_contents @@ -1310,7 +1310,7 @@ mn10200_elf_get_relocated_section_conten struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -1344,7 +1344,7 @@ mn10200_elf_get_relocated_section_conten internal_relocs = (_bfd_elf32_link_read_relocs (input_bfd, input_section, (PTR) NULL, - (Elf_Internal_Rela *) NULL, false)); + (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; diff -uprN binutils-2.13.90.0.16/bfd/elf-m10300.c binutils-2.13.90.0.18/bfd/elf-m10300.c --- binutils-2.13.90.0.16/bfd/elf-m10300.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf-m10300.c Mon Dec 16 12:22:51 2002 @@ -28,19 +28,22 @@ static bfd_reloc_status_type mn10300_elf PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *, bfd_byte *, bfd_vma, bfd_vma, bfd_vma, struct bfd_link_info *, asection *, int)); -static boolean mn10300_elf_relocate_section +static bfd_boolean mn10300_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean mn10300_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); +static bfd_boolean mn10300_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); static bfd_byte * mn10300_elf_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); -static unsigned long elf_mn10300_mach PARAMS ((flagword)); - -void _bfd_mn10300_elf_final_write_processing PARAMS ((bfd *, boolean)); -boolean _bfd_mn10300_elf_object_p PARAMS ((bfd *)); -boolean _bfd_mn10300_elf_merge_private_bfd_data PARAMS ((bfd *,bfd *)); + bfd_byte *, bfd_boolean, asymbol **)); +static unsigned long elf_mn10300_mach + PARAMS ((flagword)); +void _bfd_mn10300_elf_final_write_processing + PARAMS ((bfd *, bfd_boolean)); +bfd_boolean _bfd_mn10300_elf_object_p + PARAMS ((bfd *)); +bfd_boolean _bfd_mn10300_elf_merge_private_bfd_data + PARAMS ((bfd *,bfd *)); struct elf32_mn10300_link_hash_entry { /* The basic elf link hash table entry. */ @@ -104,7 +107,7 @@ struct elf32_mn10300_link_hash_table { #define elf32_mn10300_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) static struct bfd_hash_entry *elf32_mn10300_link_hash_newfunc @@ -117,18 +120,18 @@ static void elf32_mn10300_link_hash_tabl static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void mn10300_info_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean mn10300_elf_check_relocs + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean mn10300_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *mn10300_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *info, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean mn10300_elf_relax_delete_bytes +static bfd_boolean mn10300_elf_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); -static boolean mn10300_elf_symbol_address_p -PARAMS ((bfd *, asection *, Elf_Internal_Sym *, bfd_vma)); -static boolean elf32_mn10300_finish_hash_table_entry +static bfd_boolean mn10300_elf_symbol_address_p + PARAMS ((bfd *, asection *, Elf_Internal_Sym *, bfd_vma)); +static bfd_boolean elf32_mn10300_finish_hash_table_entry PARAMS ((struct bfd_hash_entry *, PTR)); static void compute_function_info PARAMS ((bfd *, struct elf32_mn10300_link_hash_entry *, @@ -140,144 +143,144 @@ static reloc_howto_type elf_mn10300_howt 0, 2, 16, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_NONE", - false, + FALSE, 0, 0, - false), + FALSE), /* Standard 32 bit reloc. */ HOWTO (R_MN10300_32, 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_32", - false, + FALSE, 0xffffffff, 0xffffffff, - false), + FALSE), /* Standard 16 bit reloc. */ HOWTO (R_MN10300_16, 0, 1, 16, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_16", - false, + FALSE, 0xffff, 0xffff, - false), + FALSE), /* Standard 8 bit reloc. */ HOWTO (R_MN10300_8, 0, 0, 8, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_8", - false, + FALSE, 0xff, 0xff, - false), + FALSE), /* Standard 32bit pc-relative reloc. */ HOWTO (R_MN10300_PCREL32, 0, 2, 32, - true, + TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_PCREL32", - false, + FALSE, 0xffffffff, 0xffffffff, - true), + TRUE), /* Standard 16bit pc-relative reloc. */ HOWTO (R_MN10300_PCREL16, 0, 1, 16, - true, + TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_PCREL16", - false, + FALSE, 0xffff, 0xffff, - true), + TRUE), /* Standard 8 pc-relative reloc. */ HOWTO (R_MN10300_PCREL8, 0, 0, 8, - true, + TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_PCREL8", - false, + FALSE, 0xff, 0xff, - true), + TRUE), /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_MN10300_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_MN10300_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_MN10300_GNU_VTENTRY, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_MN10300_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Standard 24 bit reloc. */ HOWTO (R_MN10300_24, 0, 2, 24, - false, + FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_MN10300_24", - false, + FALSE, 0xffffff, 0xffffff, - false), + FALSE), }; struct mn10300_reloc_map { @@ -322,7 +325,7 @@ static void mn10300_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -335,7 +338,7 @@ mn10300_info_to_howto (abfd, cache_ptr, Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean mn10300_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -348,7 +351,7 @@ mn10300_elf_check_relocs (abfd, info, se const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -374,19 +377,19 @@ mn10300_elf_check_relocs (abfd, info, se Reconstruct it for later use during GC. */ case R_MN10300_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_MN10300_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -531,7 +534,7 @@ mn10300_elf_final_link_relocate (howto, } /* Relocate an MN10300 ELF section. */ -static boolean +static bfd_boolean mn10300_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -548,7 +551,7 @@ mn10300_elf_relocate_section (output_bfd Elf_Internal_Rela *rel, *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; sym_hashes = (struct elf32_mn10300_link_hash_entry **) @@ -605,8 +608,8 @@ mn10300_elf_relocate_section (output_bfd { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -638,14 +641,14 @@ mn10300_elf_relocate_section (output_bfd if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (! ((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - rel->r_offset, true))) - return false; + rel->r_offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -668,17 +671,17 @@ mn10300_elf_relocate_section (output_bfd if (!((*info->callbacks->warning) (info, msg, name, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; } } } - return true; + return TRUE; } /* Finish initializing one hash table entry. */ -static boolean +static bfd_boolean elf32_mn10300_finish_hash_table_entry (gen_entry, in_args) struct bfd_hash_entry *gen_entry; PTR in_args ATTRIBUTE_UNUSED; @@ -694,7 +697,7 @@ elf32_mn10300_finish_hash_table_entry (g /* If we already know we want to convert "call" to "calls" for calls to this symbol, then return now. */ if (entry->flags == MN10300_CONVERT_CALL_TO_CALLS) - return true; + return TRUE; /* If there are no named calls to this symbol, or there's nothing we can move from the function itself into the "call" instruction, then @@ -706,7 +709,7 @@ elf32_mn10300_finish_hash_table_entry (g /* Make a note that we should convert "call" instructions to "calls" instructions for calls to this symbol. */ entry->flags |= MN10300_CONVERT_CALL_TO_CALLS; - return true; + return TRUE; } /* We may be able to move some instructions from the function itself into @@ -729,7 +732,7 @@ elf32_mn10300_finish_hash_table_entry (g entry->flags |= MN10300_CONVERT_CALL_TO_CALLS; /* This routine never fails. */ - return true; + return TRUE; } /* This function handles relaxing for the mn10300. @@ -771,12 +774,12 @@ elf32_mn10300_finish_hash_table_entry (g We don't handle imm16->imm8 or d16->d8 as they're very rare and somewhat more difficult to support. */ -static boolean +static bfd_boolean mn10300_elf_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs = NULL; @@ -787,7 +790,7 @@ mn10300_elf_relax_section (abfd, sec, li asection *section = sec; /* Assume nothing changes. */ - *again = false; + *again = FALSE; /* We need a pointer to the mn10300 specific hash table. */ hash_table = elf32_mn10300_hash_table (link_info); @@ -928,7 +931,7 @@ mn10300_elf_relax_section (abfd, sec, li elftab = &hash_table->static_hash_table->root; hash = ((struct elf32_mn10300_link_hash_entry *) elf_link_hash_lookup (elftab, sym_name, - true, true, false)); + TRUE, TRUE, FALSE)); free (new_name); } else @@ -1011,7 +1014,7 @@ mn10300_elf_relax_section (abfd, sec, li elftab = &hash_table->static_hash_table->root; hash = ((struct elf32_mn10300_link_hash_entry *) elf_link_hash_lookup (elftab, sym_name, - true, true, false)); + TRUE, TRUE, FALSE)); free (new_name); compute_function_info (input_bfd, hash, isym->st_value, contents); @@ -1191,7 +1194,7 @@ mn10300_elf_relax_section (abfd, sec, li elftab = &hash_table->static_hash_table->root; sym_hash = ((struct elf32_mn10300_link_hash_entry *) elf_link_hash_lookup (elftab, sym_name, - false, false, false)); + FALSE, FALSE, FALSE)); free (new_name); if (sym_hash == NULL) @@ -1230,7 +1233,7 @@ mn10300_elf_relax_section (abfd, sec, li /* Something changed. Not strictly necessary, but may lead to more relaxing opportunities. */ - *again = true; + *again = TRUE; } } @@ -1283,7 +1286,7 @@ mn10300_elf_relax_section (abfd, sec, li /* Something changed. Not strictly necessary, but may lead to more relaxing opportunities. */ - *again = true; + *again = TRUE; } } @@ -1338,7 +1341,7 @@ mn10300_elf_relax_section (abfd, sec, li || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -1387,7 +1390,7 @@ mn10300_elf_relax_section (abfd, sec, li } } - /* Read this BFD's symbols if we haven't done so already. */ + /* Read this BFD's symbols if we haven't done so already. */ if (isymbuf == NULL && symtab_hdr->sh_info != 0) { isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents; @@ -1435,7 +1438,7 @@ mn10300_elf_relax_section (abfd, sec, li h = (struct elf32_mn10300_link_hash_entry *) elf_link_hash_lookup (&hash_table->static_hash_table->root, - sym_name, false, false, false); + sym_name, FALSE, FALSE, FALSE); free (new_name); } else @@ -1509,7 +1512,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } } else if (h) @@ -1573,7 +1576,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } } @@ -1616,7 +1619,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } } else if (h) @@ -1673,7 +1676,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } } @@ -1813,7 +1816,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } /* Try to turn a 24 immediate, displacement or absolute address @@ -1876,7 +1879,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; } } @@ -1947,7 +1950,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; } } @@ -2024,7 +2027,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; } else if ((code & 0xf0) == 0x80 @@ -2069,7 +2072,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; /* mov am,(abs32) -> mov am,(abs16) @@ -2107,7 +2110,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; } else if ((code & 0xf0) < 0xf0) @@ -2171,7 +2174,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; /* mov (abs32),an -> mov (abs16),an @@ -2232,7 +2235,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; } else if (code == 0xfe) @@ -2259,7 +2262,7 @@ mn10300_elf_relax_section (abfd, sec, li /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; break; } } @@ -2294,7 +2297,7 @@ mn10300_elf_relax_section (abfd, sec, li && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL @@ -2307,7 +2310,7 @@ mn10300_elf_relax_section (abfd, sec, li && elf_section_data (section)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } /* Compute the stack size and movm arguments for the function @@ -2412,7 +2415,7 @@ compute_function_info (abfd, hash, addr, /* Delete some bytes from a section while relaxing. */ -static boolean +static bfd_boolean mn10300_elf_relax_delete_bytes (abfd, sec, addr, count) bfd *abfd; asection *sec; @@ -2486,12 +2489,12 @@ mn10300_elf_relax_delete_bytes (abfd, se } } - return true; + return TRUE; } -/* Return true if a symbol exists at the given address, else return - false. */ -static boolean +/* Return TRUE if a symbol exists at the given address, else return + FALSE. */ +static bfd_boolean mn10300_elf_symbol_address_p (abfd, sec, isym, addr) bfd *abfd; asection *sec; @@ -2513,7 +2516,7 @@ mn10300_elf_symbol_address_p (abfd, sec, { if (isym->st_shndx == sec_shndx && isym->st_value == addr) - return true; + return TRUE; } symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym) @@ -2527,10 +2530,10 @@ mn10300_elf_symbol_address_p (abfd, sec, || sym_hash->root.type == bfd_link_hash_defweak) && sym_hash->root.u.def.section == sec && sym_hash->root.u.def.value == addr) - return true; + return TRUE; } - return false; + return FALSE; } /* This is a version of bfd_generic_get_relocated_section_contents @@ -2543,7 +2546,7 @@ mn10300_elf_get_relocated_section_conten struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -2576,7 +2579,7 @@ mn10300_elf_get_relocated_section_conten internal_relocs = (_bfd_elf32_link_read_relocs (input_bfd, input_section, (PTR) NULL, - (Elf_Internal_Rela *) NULL, false)); + (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; @@ -2672,9 +2675,9 @@ elf32_mn10300_link_hash_newfunc (entry, { ret->direct_calls = 0; ret->stack_size = 0; + ret->movm_args = 0; ret->movm_stack_size = 0; ret->flags = 0; - ret->movm_args = 0; } return (struct bfd_hash_entry *) ret; @@ -2757,7 +2760,7 @@ elf_mn10300_mach (flags) void _bfd_mn10300_elf_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { unsigned long val; @@ -2777,36 +2780,36 @@ _bfd_mn10300_elf_final_write_processing elf_elfheader (abfd)->e_flags |= val; } -boolean +bfd_boolean _bfd_mn10300_elf_object_p (abfd) bfd *abfd; { bfd_default_set_arch_mach (abfd, bfd_arch_mn10300, elf_mn10300_mach (elf_elfheader (abfd)->e_flags)); - return true; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -boolean +bfd_boolean _bfd_mn10300_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) && bfd_get_mach (obfd) < bfd_get_mach (ibfd)) { if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd))) - return false; + return FALSE; } - return true; + return TRUE; } #define TARGET_LITTLE_SYM bfd_elf32_mn10300_vec diff -uprN binutils-2.13.90.0.16/bfd/elf-strtab.c binutils-2.13.90.0.18/bfd/elf-strtab.c --- binutils-2.13.90.0.16/bfd/elf-strtab.c Tue Jun 18 21:41:58 2002 +++ binutils-2.13.90.0.18/bfd/elf-strtab.c Mon Dec 16 12:22:51 2002 @@ -148,7 +148,7 @@ bfd_size_type _bfd_elf_strtab_add (tab, str, copy) struct elf_strtab_hash *tab; const char *str; - boolean copy; + bfd_boolean copy; { register struct elf_strtab_hash_entry *entry; @@ -159,7 +159,7 @@ _bfd_elf_strtab_add (tab, str, copy) BFD_ASSERT (tab->sec_size == 0); entry = (struct elf_strtab_hash_entry *) - bfd_hash_lookup (&tab->table, str, true, copy); + bfd_hash_lookup (&tab->table, str, TRUE, copy); if (entry == NULL) return (bfd_size_type) -1; @@ -243,7 +243,7 @@ _bfd_elf_strtab_offset (tab, idx) return tab->array[idx]->u.index; } -boolean +bfd_boolean _bfd_elf_strtab_emit (abfd, tab) register bfd *abfd; struct elf_strtab_hash *tab; @@ -251,7 +251,7 @@ _bfd_elf_strtab_emit (abfd, tab) bfd_size_type off = 1, i; if (bfd_bwrite ("", 1, abfd) != 1) - return false; + return FALSE; for (i = 1; i < tab->size; ++i) { @@ -265,13 +265,13 @@ _bfd_elf_strtab_emit (abfd, tab) continue; if (bfd_bwrite ((PTR) str, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; off += len; } BFD_ASSERT (off == tab->sec_size); - return true; + return TRUE; } /* Compare two elf_strtab_hash_entry structures. This is called via qsort. */ diff -uprN binutils-2.13.90.0.16/bfd/elf.c binutils-2.13.90.0.18/bfd/elf.c --- binutils-2.13.90.0.16/bfd/elf.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/elf.c Tue Jan 21 10:21:32 2003 @@ -15,7 +15,7 @@ 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 + along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* SECTION @@ -41,39 +41,62 @@ #include "libiberty.h" static INLINE struct elf_segment_map *make_mapping - PARAMS ((bfd *, asection **, unsigned int, unsigned int, boolean)); -static boolean map_sections_to_segments PARAMS ((bfd *)); -static int elf_sort_sections PARAMS ((const PTR, const PTR)); -static boolean assign_file_positions_for_segments PARAMS ((bfd *)); -static boolean assign_file_positions_except_relocs PARAMS ((bfd *)); -static boolean prep_headers PARAMS ((bfd *)); -static boolean swap_out_syms PARAMS ((bfd *, struct bfd_strtab_hash **, int)); -static boolean copy_private_bfd_data PARAMS ((bfd *, bfd *)); -static char *elf_read PARAMS ((bfd *, file_ptr, bfd_size_type)); -static const char *group_signature PARAMS ((bfd *, Elf_Internal_Shdr *)); -static boolean setup_group PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); -static void merge_sections_remove_hook PARAMS ((bfd *, asection *)); -static void elf_fake_sections PARAMS ((bfd *, asection *, PTR)); -static boolean assign_section_numbers PARAMS ((bfd *)); -static INLINE int sym_is_global PARAMS ((bfd *, asymbol *)); -static boolean elf_map_symbols PARAMS ((bfd *)); -static bfd_size_type get_program_header_size PARAMS ((bfd *)); -static boolean elfcore_read_notes PARAMS ((bfd *, file_ptr, bfd_size_type)); -static boolean elf_find_function PARAMS ((bfd *, asection *, asymbol **, - bfd_vma, const char **, - const char **)); -static int elfcore_make_pid PARAMS ((bfd *)); -static boolean elfcore_maybe_make_sect PARAMS ((bfd *, char *, asection *)); -static boolean elfcore_make_note_pseudosection PARAMS ((bfd *, char *, - Elf_Internal_Note *)); -static boolean elfcore_grok_prfpreg PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean elfcore_grok_prxfpreg PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean elfcore_grok_note PARAMS ((bfd *, Elf_Internal_Note *)); - -static boolean elfcore_netbsd_get_lwpid PARAMS ((Elf_Internal_Note *, int *)); -static boolean elfcore_grok_netbsd_procinfo PARAMS ((bfd *, - Elf_Internal_Note *)); -static boolean elfcore_grok_netbsd_note PARAMS ((bfd *, Elf_Internal_Note *)); + PARAMS ((bfd *, asection **, unsigned int, unsigned int, bfd_boolean)); +static bfd_boolean map_sections_to_segments + PARAMS ((bfd *)); +static int elf_sort_sections + PARAMS ((const PTR, const PTR)); +static bfd_boolean assign_file_positions_for_segments + PARAMS ((bfd *)); +static bfd_boolean assign_file_positions_except_relocs + PARAMS ((bfd *)); +static bfd_boolean prep_headers + PARAMS ((bfd *)); +static bfd_boolean swap_out_syms + PARAMS ((bfd *, struct bfd_strtab_hash **, int)); +static bfd_boolean copy_private_bfd_data + PARAMS ((bfd *, bfd *)); +static char *elf_read + PARAMS ((bfd *, file_ptr, bfd_size_type)); +static const char *group_signature + PARAMS ((bfd *, Elf_Internal_Shdr *)); +static bfd_boolean setup_group + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); +static void merge_sections_remove_hook + PARAMS ((bfd *, asection *)); +static void elf_fake_sections + PARAMS ((bfd *, asection *, PTR)); +static bfd_boolean assign_section_numbers + PARAMS ((bfd *)); +static INLINE int sym_is_global + PARAMS ((bfd *, asymbol *)); +static bfd_boolean elf_map_symbols + PARAMS ((bfd *)); +static bfd_size_type get_program_header_size + PARAMS ((bfd *)); +static bfd_boolean elfcore_read_notes + PARAMS ((bfd *, file_ptr, bfd_size_type)); +static bfd_boolean elf_find_function + PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **)); +static int elfcore_make_pid + PARAMS ((bfd *)); +static bfd_boolean elfcore_maybe_make_sect + PARAMS ((bfd *, char *, asection *)); +static bfd_boolean elfcore_make_note_pseudosection + PARAMS ((bfd *, char *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_prfpreg + PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_prxfpreg + PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_note + PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_netbsd_get_lwpid + PARAMS ((Elf_Internal_Note *, int *)); +static bfd_boolean elfcore_grok_netbsd_procinfo + PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_netbsd_note + PARAMS ((bfd *, Elf_Internal_Note *)); /* Swap version information in and out. The version information is currently size independent. If that ever changes, this code will @@ -270,7 +293,7 @@ elf_read (abfd, offset, size) return buf; } -boolean +bfd_boolean bfd_elf_mkobject (abfd) bfd *abfd; { @@ -279,14 +302,14 @@ bfd_elf_mkobject (abfd) bfd_size_type amt = sizeof (struct elf_obj_tdata); elf_tdata (abfd) = (struct elf_obj_tdata *) bfd_zalloc (abfd, amt); if (elf_tdata (abfd) == 0) - return false; + return FALSE; /* Since everything is done at close time, do we need any initialization? */ - return true; + return TRUE; } -boolean +bfd_boolean bfd_elf_mkcorefile (abfd) bfd *abfd; { @@ -501,7 +524,7 @@ group_signature (abfd, ghdr) /* Set next_in_group list pointer, and group name for NEWSECT. */ -static boolean +static bfd_boolean setup_group (abfd, hdr, newsect) bfd *abfd; Elf_Internal_Shdr *hdr; @@ -537,7 +560,7 @@ setup_group (abfd, hdr, newsect) bfd_size_type amt = num_group * sizeof (Elf_Internal_Shdr *); elf_tdata (abfd)->group_sect_ptr = bfd_alloc (abfd, amt); if (elf_tdata (abfd)->group_sect_ptr == NULL) - return false; + return FALSE; num_group = 0; for (i = 0; i < shnum; i++) @@ -560,7 +583,7 @@ setup_group (abfd, hdr, newsect) || bfd_seek (abfd, shdr->sh_offset, SEEK_SET) != 0 || (bfd_bread (shdr->contents, shdr->sh_size, abfd) != shdr->sh_size)) - return false; + return FALSE; /* Translate raw contents, a flag word followed by an array of elf section indices all in target byte order, @@ -637,7 +660,7 @@ setup_group (abfd, hdr, newsect) gname = group_signature (abfd, shdr); if (gname == NULL) - return false; + return FALSE; elf_group_name (newsect) = gname; /* Start a circular list with one element. */ @@ -660,10 +683,10 @@ setup_group (abfd, hdr, newsect) (*_bfd_error_handler) (_("%s: no group info for section %s"), bfd_archive_filename (abfd), newsect->name); } - return true; + return TRUE; } -boolean +bfd_boolean bfd_elf_discard_group (abfd, group) bfd *abfd ATTRIBUTE_UNUSED; asection *group; @@ -679,13 +702,13 @@ bfd_elf_discard_group (abfd, group) if (s == first) break; } - return true; + return TRUE; } /* Make a BFD section from an ELF section. We store a pointer to the BFD section in the bfd_section field of the header. */ -boolean +bfd_boolean _bfd_elf_make_section_from_shdr (abfd, hdr, name) bfd *abfd; Elf_Internal_Shdr *hdr; @@ -699,12 +722,12 @@ _bfd_elf_make_section_from_shdr (abfd, h { BFD_ASSERT (strcmp (name, bfd_get_section_name (abfd, hdr->bfd_section)) == 0); - return true; + return TRUE; } newsect = bfd_make_section_anyway (abfd, name); if (newsect == NULL) - return false; + return FALSE; newsect->filepos = hdr->sh_offset; @@ -712,7 +735,7 @@ _bfd_elf_make_section_from_shdr (abfd, h || ! bfd_set_section_size (abfd, newsect, hdr->sh_size) || ! bfd_set_section_alignment (abfd, newsect, bfd_log2 ((bfd_vma) hdr->sh_addralign))) - return false; + return FALSE; flags = SEC_NO_FLAGS; if (hdr->sh_type != SHT_NOBITS) @@ -740,7 +763,7 @@ _bfd_elf_make_section_from_shdr (abfd, h } if (hdr->sh_flags & SHF_GROUP) if (!setup_group (abfd, hdr, newsect)) - return false; + return FALSE; if ((hdr->sh_flags & SHF_TLS) != 0) flags |= SEC_THREAD_LOCAL; @@ -777,10 +800,10 @@ _bfd_elf_make_section_from_shdr (abfd, h bed = get_elf_backend_data (abfd); if (bed->elf_backend_section_flags) if (! bed->elf_backend_section_flags (&flags, hdr)) - return false; + return FALSE; if (! bfd_set_section_flags (abfd, newsect, flags)) - return false; + return FALSE; if ((flags & SEC_ALLOC) != 0) { @@ -851,7 +874,7 @@ _bfd_elf_make_section_from_shdr (abfd, h hdr->bfd_section = newsect; elf_section_data (newsect)->this_hdr = *hdr; - return true; + return TRUE; } /* @@ -955,17 +978,17 @@ merge_sections_remove_hook (abfd, sec) /* Finish SHF_MERGE section merging. */ -boolean +bfd_boolean _bfd_elf_merge_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; { if (!is_elf_hash_table (info)) - return false; + return FALSE; if (elf_hash_table (info)->merge_info) _bfd_merge_sections (abfd, elf_hash_table (info)->merge_info, merge_sections_remove_hook); - return true; + return TRUE; } void @@ -984,14 +1007,14 @@ _bfd_elf_link_just_syms (sec, info) /* Copy the program header and other data from one object module to another. */ -boolean +bfd_boolean _bfd_elf_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; BFD_ASSERT (!elf_flags_init (obfd) || (elf_elfheader (obfd)->e_flags @@ -999,13 +1022,13 @@ _bfd_elf_copy_private_bfd_data (ibfd, ob elf_gp (obfd) = elf_gp (ibfd); elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; - elf_flags_init (obfd) = true; - return true; + elf_flags_init (obfd) = TRUE; + return TRUE; } /* Print out the program headers. */ -boolean +bfd_boolean _bfd_elf_print_private_bfd_data (abfd, farg) bfd *abfd; PTR farg; @@ -1094,14 +1117,14 @@ _bfd_elf_print_private_bfd_data (abfd, f Elf_Internal_Dyn dyn; const char *name; char ab[20]; - boolean stringp; + bfd_boolean stringp; (*swap_dyn_in) (abfd, (PTR) extdyn, &dyn); if (dyn.d_tag == DT_NULL) break; - stringp = false; + stringp = FALSE; switch (dyn.d_tag) { default: @@ -1109,7 +1132,7 @@ _bfd_elf_print_private_bfd_data (abfd, f name = ab; break; - case DT_NEEDED: name = "NEEDED"; stringp = true; break; + case DT_NEEDED: name = "NEEDED"; stringp = TRUE; break; case DT_PLTRELSZ: name = "PLTRELSZ"; break; case DT_PLTGOT: name = "PLTGOT"; break; case DT_HASH: name = "HASH"; break; @@ -1122,8 +1145,8 @@ _bfd_elf_print_private_bfd_data (abfd, f case DT_SYMENT: name = "SYMENT"; break; case DT_INIT: name = "INIT"; break; case DT_FINI: name = "FINI"; break; - case DT_SONAME: name = "SONAME"; stringp = true; break; - case DT_RPATH: name = "RPATH"; stringp = true; break; + case DT_SONAME: name = "SONAME"; stringp = TRUE; break; + case DT_RPATH: name = "RPATH"; stringp = TRUE; break; case DT_SYMBOLIC: name = "SYMBOLIC"; break; case DT_REL: name = "REL"; break; case DT_RELSZ: name = "RELSZ"; break; @@ -1137,7 +1160,7 @@ _bfd_elf_print_private_bfd_data (abfd, f case DT_FINI_ARRAY: name = "FINI_ARRAY"; break; case DT_INIT_ARRAYSZ: name = "INIT_ARRAYSZ"; break; case DT_FINI_ARRAYSZ: name = "FINI_ARRAYSZ"; break; - case DT_RUNPATH: name = "RUNPATH"; stringp = true; break; + case DT_RUNPATH: name = "RUNPATH"; stringp = TRUE; break; case DT_FLAGS: name = "FLAGS"; break; case DT_PREINIT_ARRAY: name = "PREINIT_ARRAY"; break; case DT_PREINIT_ARRAYSZ: name = "PREINIT_ARRAYSZ"; break; @@ -1149,9 +1172,9 @@ _bfd_elf_print_private_bfd_data (abfd, f case DT_POSFLAG_1: name = "POSFLAG_1"; break; case DT_SYMINSZ: name = "SYMINSZ"; break; case DT_SYMINENT: name = "SYMINENT"; break; - case DT_CONFIG: name = "CONFIG"; stringp = true; break; - case DT_DEPAUDIT: name = "DEPAUDIT"; stringp = true; break; - case DT_AUDIT: name = "AUDIT"; stringp = true; break; + case DT_CONFIG: name = "CONFIG"; stringp = TRUE; break; + case DT_DEPAUDIT: name = "DEPAUDIT"; stringp = TRUE; break; + case DT_AUDIT: name = "AUDIT"; stringp = TRUE; break; case DT_PLTPAD: name = "PLTPAD"; break; case DT_MOVETAB: name = "MOVETAB"; break; case DT_SYMINFO: name = "SYMINFO"; break; @@ -1163,9 +1186,9 @@ _bfd_elf_print_private_bfd_data (abfd, f case DT_VERDEFNUM: name = "VERDEFNUM"; break; case DT_VERNEED: name = "VERNEED"; break; case DT_VERNEEDNUM: name = "VERNEEDNUM"; break; - case DT_AUXILIARY: name = "AUXILIARY"; stringp = true; break; + case DT_AUXILIARY: name = "AUXILIARY"; stringp = TRUE; break; case DT_USED: name = "USED"; break; - case DT_FILTER: name = "FILTER"; stringp = true; break; + case DT_FILTER: name = "FILTER"; stringp = TRUE; break; } fprintf (f, " %-11s ", name); @@ -1192,7 +1215,7 @@ _bfd_elf_print_private_bfd_data (abfd, f || (elf_dynverref (abfd) != 0 && elf_tdata (abfd)->verref == NULL)) { if (! _bfd_elf_slurp_version_tables (abfd)) - return false; + return FALSE; } if (elf_dynverdef (abfd) != 0) @@ -1234,12 +1257,12 @@ _bfd_elf_print_private_bfd_data (abfd, f } } - return true; + return TRUE; error_return: if (dynbuf != NULL) free (dynbuf); - return false; + return FALSE; } /* Display ELF-specific fields of a symbol. */ @@ -1474,7 +1497,7 @@ void _bfd_elf_link_hash_hide_symbol (info, h, force_local) struct bfd_link_info *info; struct elf_link_hash_entry *h; - boolean force_local; + bfd_boolean force_local; { h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; @@ -1492,17 +1515,17 @@ _bfd_elf_link_hash_hide_symbol (info, h, /* Initialize an ELF linker hash table. */ -boolean +bfd_boolean _bfd_elf_link_hash_table_init (table, abfd, newfunc) struct elf_link_hash_table *table; bfd *abfd; - struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, - struct bfd_hash_table *, - const char *)); + struct bfd_hash_entry *(*newfunc) + PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, + const char *)); { - boolean ret; + bfd_boolean ret; - table->dynamic_sections_created = false; + table->dynamic_sections_created = FALSE; table->dynobj = NULL; /* Make sure can_refcount is extended to the width and signedness of init_refcount before we subtract one from it. */ @@ -1618,7 +1641,7 @@ bfd_elf_get_dt_soname (abfd) /* Get the list of DT_NEEDED entries from a BFD. This is a hook for the ELF linker emulation code. */ -boolean +bfd_boolean bfd_elf_get_bfd_needed_list (abfd, pneeded) bfd *abfd; struct bfd_link_needed_list **pneeded; @@ -1635,11 +1658,11 @@ bfd_elf_get_bfd_needed_list (abfd, pneed if (bfd_get_flavour (abfd) != bfd_target_elf_flavour || bfd_get_format (abfd) != bfd_object) - return true; + return TRUE; s = bfd_get_section_by_name (abfd, ".dynamic"); if (s == NULL || s->_raw_size == 0) - return true; + return TRUE; dynbuf = (bfd_byte *) bfd_malloc (s->_raw_size); if (dynbuf == NULL) @@ -1694,12 +1717,12 @@ bfd_elf_get_bfd_needed_list (abfd, pneed free (dynbuf); - return true; + return TRUE; error_return: if (dynbuf != NULL) free (dynbuf); - return false; + return FALSE; } /* Allocate an ELF string table--force the first byte to be zero. */ @@ -1714,7 +1737,7 @@ _bfd_elf_stringtab_init () { bfd_size_type loc; - loc = _bfd_stringtab_add (ret, "", true, false); + loc = _bfd_stringtab_add (ret, "", TRUE, FALSE); BFD_ASSERT (loc == 0 || loc == (bfd_size_type) -1); if (loc == (bfd_size_type) -1) { @@ -1729,7 +1752,7 @@ _bfd_elf_stringtab_init () /* Create a new bfd section from an ELF section header. */ -boolean +bfd_boolean bfd_section_from_shdr (abfd, shindex) bfd *abfd; unsigned int shindex; @@ -1745,7 +1768,7 @@ bfd_section_from_shdr (abfd, shindex) { case SHT_NULL: /* Inactive section. Throw it away. */ - return true; + return TRUE; case SHT_PROGBITS: /* Normal section with contents. */ case SHT_NOBITS: /* .bss section. */ @@ -1758,7 +1781,7 @@ bfd_section_from_shdr (abfd, shindex) case SHT_DYNAMIC: /* Dynamic linking information. */ if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; if (elf_elfsections (abfd)[hdr->sh_link]->sh_type != SHT_STRTAB) { Elf_Internal_Shdr *dynsymhdr; @@ -1791,7 +1814,7 @@ bfd_section_from_shdr (abfd, shindex) case SHT_SYMTAB: /* A symbol table */ if (elf_onesymtab (abfd) == shindex) - return true; + return TRUE; BFD_ASSERT (hdr->sh_entsize == bed->s->sizeof_sym); BFD_ASSERT (elf_onesymtab (abfd) == 0); @@ -1809,13 +1832,13 @@ bfd_section_from_shdr (abfd, shindex) if ((hdr->sh_flags & SHF_ALLOC) != 0 && (abfd->flags & DYNAMIC) != 0 && ! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; - return true; + return TRUE; case SHT_DYNSYM: /* A dynamic symbol table */ if (elf_dynsymtab (abfd) == shindex) - return true; + return TRUE; BFD_ASSERT (hdr->sh_entsize == bed->s->sizeof_sym); BFD_ASSERT (elf_dynsymtab (abfd) == 0); @@ -1830,26 +1853,26 @@ bfd_section_from_shdr (abfd, shindex) case SHT_SYMTAB_SHNDX: /* Symbol section indices when >64k sections */ if (elf_symtab_shndx (abfd) == shindex) - return true; + return TRUE; /* Get the associated symbol table. */ if (! bfd_section_from_shdr (abfd, hdr->sh_link) || hdr->sh_link != elf_onesymtab (abfd)) - return false; + return FALSE; elf_symtab_shndx (abfd) = shindex; elf_tdata (abfd)->symtab_shndx_hdr = *hdr; elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->symtab_shndx_hdr; - return true; + return TRUE; case SHT_STRTAB: /* A string table */ if (hdr->bfd_section != NULL) - return true; + return TRUE; if (ehdr->e_shstrndx == shindex) { elf_tdata (abfd)->shstrtab_hdr = *hdr; elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->shstrtab_hdr; - return true; + return TRUE; } { unsigned int i, num_sec; @@ -1861,13 +1884,13 @@ bfd_section_from_shdr (abfd, shindex) if (hdr2->sh_link == shindex) { if (! bfd_section_from_shdr (abfd, i)) - return false; + return FALSE; if (elf_onesymtab (abfd) == i) { elf_tdata (abfd)->strtab_hdr = *hdr; elf_elfsections (abfd)[shindex] = &elf_tdata (abfd)->strtab_hdr; - return true; + return TRUE; } if (elf_dynsymtab (abfd) == i) { @@ -1947,7 +1970,7 @@ bfd_section_from_shdr (abfd, shindex) /* Get the symbol table. */ if (elf_elfsections (abfd)[hdr->sh_link]->sh_type == SHT_SYMTAB && ! bfd_section_from_shdr (abfd, hdr->sh_link)) - return false; + return FALSE; /* If this reloc section does not use the main symbol table we don't treat it as a reloc section. BFD can't adequately @@ -1959,10 +1982,10 @@ bfd_section_from_shdr (abfd, shindex) return _bfd_elf_make_section_from_shdr (abfd, hdr, name); if (! bfd_section_from_shdr (abfd, hdr->sh_info)) - return false; + return FALSE; target_sect = bfd_section_from_elf_index (abfd, hdr->sh_info); if (target_sect == NULL) - return false; + return FALSE; if ((target_sect->flags & SEC_RELOC) == 0 || target_sect->reloc_count == 0) @@ -1987,7 +2010,7 @@ bfd_section_from_shdr (abfd, shindex) elf_section_data (target_sect)->use_rela_p = (hdr->sh_type == SHT_RELA); abfd->flags |= HAS_RELOC; - return true; + return TRUE; } break; @@ -2010,7 +2033,7 @@ bfd_section_from_shdr (abfd, shindex) break; case SHT_SHLIB: - return true; + return TRUE; case SHT_GROUP: /* We need a BFD section for objcopy and relocatable linking, @@ -2018,9 +2041,9 @@ bfd_section_from_shdr (abfd, shindex) name. */ name = group_signature (abfd, hdr); if (name == NULL) - return false; + return FALSE; if (!_bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; if (hdr->contents != NULL) { Elf_Internal_Group *idx = (Elf_Internal_Group *) hdr->contents; @@ -2050,7 +2073,7 @@ bfd_section_from_shdr (abfd, shindex) break; } - return true; + return TRUE; } /* Return the section for the local symbol specified by ABFD, R_SYMNDX. @@ -2107,7 +2130,7 @@ bfd_section_from_elf_index (abfd, index) return elf_elfsections (abfd)[index]->bfd_section; } -boolean +bfd_boolean _bfd_elf_new_section_hook (abfd, sec) bfd *abfd; asection *sec; @@ -2117,14 +2140,14 @@ _bfd_elf_new_section_hook (abfd, sec) sdata = (struct bfd_elf_section_data *) bfd_zalloc (abfd, amt); if (!sdata) - return false; + return FALSE; sec->used_by_bfd = (PTR) sdata; /* Indicate whether or not this section should use RELA relocations. */ sdata->use_rela_p = get_elf_backend_data (abfd)->default_use_rela_p; - return true; + return TRUE; } /* Create a new bfd section from an ELF program header. @@ -2149,7 +2172,7 @@ _bfd_elf_new_section_hook (abfd, sec) */ -boolean +bfd_boolean _bfd_elf_make_section_from_phdr (abfd, hdr, index, typename) bfd *abfd; Elf_Internal_Phdr *hdr; @@ -2169,11 +2192,11 @@ _bfd_elf_make_section_from_phdr (abfd, h len = strlen (namebuf) + 1; name = bfd_alloc (abfd, (bfd_size_type) len); if (!name) - return false; + return FALSE; memcpy (name, namebuf, len); newsect = bfd_make_section (abfd, name); if (newsect == NULL) - return false; + return FALSE; newsect->vma = hdr->p_vaddr; newsect->lma = hdr->p_paddr; newsect->_raw_size = hdr->p_filesz; @@ -2201,11 +2224,11 @@ _bfd_elf_make_section_from_phdr (abfd, h len = strlen (namebuf) + 1; name = bfd_alloc (abfd, (bfd_size_type) len); if (!name) - return false; + return FALSE; memcpy (name, namebuf, len); newsect = bfd_make_section (abfd, name); if (newsect == NULL) - return false; + return FALSE; newsect->vma = hdr->p_vaddr + hdr->p_filesz; newsect->lma = hdr->p_paddr + hdr->p_filesz; newsect->_raw_size = hdr->p_memsz - hdr->p_filesz; @@ -2219,10 +2242,10 @@ _bfd_elf_make_section_from_phdr (abfd, h newsect->flags |= SEC_READONLY; } - return true; + return TRUE; } -boolean +bfd_boolean bfd_section_from_phdr (abfd, hdr, index) bfd *abfd; Elf_Internal_Phdr *hdr; @@ -2246,10 +2269,10 @@ bfd_section_from_phdr (abfd, hdr, index) case PT_NOTE: if (! _bfd_elf_make_section_from_phdr (abfd, hdr, index, "note")) - return false; + return FALSE; if (! elfcore_read_notes (abfd, (file_ptr) hdr->p_offset, hdr->p_filesz)) - return false; - return true; + return FALSE; + return TRUE; case PT_SHLIB: return _bfd_elf_make_section_from_phdr (abfd, hdr, index, "shlib"); @@ -2269,15 +2292,15 @@ bfd_section_from_phdr (abfd, hdr, index) } /* Initialize REL_HDR, the section-header for new section, containing - relocations against ASECT. If USE_RELA_P is true, we use RELA + relocations against ASECT. If USE_RELA_P is TRUE, we use RELA relocations; otherwise, we use REL relocations. */ -boolean +bfd_boolean _bfd_elf_init_reloc_shdr (abfd, rel_hdr, asect, use_rela_p) bfd *abfd; Elf_Internal_Shdr *rel_hdr; asection *asect; - boolean use_rela_p; + bfd_boolean use_rela_p; { char *name; struct elf_backend_data *bed = get_elf_backend_data (abfd); @@ -2285,13 +2308,13 @@ _bfd_elf_init_reloc_shdr (abfd, rel_hdr, name = bfd_alloc (abfd, amt); if (name == NULL) - return false; + return FALSE; sprintf (name, "%s%s", use_rela_p ? ".rela" : ".rel", asect->name); rel_hdr->sh_name = (unsigned int) _bfd_elf_strtab_add (elf_shstrtab (abfd), name, - false); + FALSE); if (rel_hdr->sh_name == (unsigned int) -1) - return false; + return FALSE; rel_hdr->sh_type = use_rela_p ? SHT_RELA : SHT_REL; rel_hdr->sh_entsize = (use_rela_p ? bed->s->sizeof_rela @@ -2302,7 +2325,7 @@ _bfd_elf_init_reloc_shdr (abfd, rel_hdr, rel_hdr->sh_size = 0; rel_hdr->sh_offset = 0; - return true; + return TRUE; } /* Set up an ELF internal section header for a section. */ @@ -2314,7 +2337,7 @@ elf_fake_sections (abfd, asect, failedpt PTR failedptrarg; { struct elf_backend_data *bed = get_elf_backend_data (abfd); - boolean *failedptr = (boolean *) failedptrarg; + bfd_boolean *failedptr = (bfd_boolean *) failedptrarg; Elf_Internal_Shdr *this_hdr; if (*failedptr) @@ -2327,10 +2350,10 @@ elf_fake_sections (abfd, asect, failedpt this_hdr = &elf_section_data (asect)->this_hdr; this_hdr->sh_name = (unsigned long) _bfd_elf_strtab_add (elf_shstrtab (abfd), - asect->name, false); + asect->name, FALSE); if (this_hdr->sh_name == (unsigned long) -1) { - *failedptr = true; + *failedptr = TRUE; return; } @@ -2457,7 +2480,7 @@ elf_fake_sections (abfd, asect, failedpt if (asect->_raw_size == 0 && (asect->flags & SEC_HAS_CONTENTS) == 0) { struct bfd_link_order *o; - + this_hdr->sh_size = 0; for (o = asect->link_order_head; o != NULL; o = o->next) if (this_hdr->sh_size < o->offset + o->size) @@ -2470,7 +2493,7 @@ elf_fake_sections (abfd, asect, failedpt /* Check for processor-specific section types. */ if (bed->elf_backend_fake_sections && !(*bed->elf_backend_fake_sections) (abfd, this_hdr, asect)) - *failedptr = true; + *failedptr = TRUE; /* If the section has relocs, set up a section header for the SHT_REL[A] section. If two relocation sections are required for @@ -2481,7 +2504,7 @@ elf_fake_sections (abfd, asect, failedpt &elf_section_data (asect)->rel_hdr, asect, elf_section_data (asect)->use_rela_p)) - *failedptr = true; + *failedptr = TRUE; } /* Fill in the contents of a SHT_GROUP section. */ @@ -2492,12 +2515,12 @@ bfd_elf_set_group_contents (abfd, sec, f asection *sec; PTR failedptrarg; { - boolean *failedptr = (boolean *) failedptrarg; + bfd_boolean *failedptr = (bfd_boolean *) failedptrarg; unsigned long symindx; asection *elt, *first; unsigned char *loc; struct bfd_link_order *l; - boolean gas; + bfd_boolean gas; if (elf_section_data (sec)->this_hdr.sh_type != SHT_GROUP || *failedptr) @@ -2519,17 +2542,17 @@ bfd_elf_set_group_contents (abfd, sec, f elf_section_data (sec)->this_hdr.sh_info = symindx; /* The contents won't be allocated for "ld -r" or objcopy. */ - gas = true; + gas = TRUE; if (sec->contents == NULL) { - gas = false; + gas = FALSE; sec->contents = bfd_alloc (abfd, sec->_raw_size); /* Arrange for the section to be written out. */ elf_section_data (sec)->this_hdr.contents = sec->contents; if (sec->contents == NULL) { - *failedptr = true; + *failedptr = TRUE; return; } } @@ -2595,7 +2618,7 @@ bfd_elf_set_group_contents (abfd, sec, f too. The link/info pointers for the standard section types are filled in here too, while we're at it. */ -static boolean +static bfd_boolean assign_section_numbers (abfd) bfd *abfd; { @@ -2657,9 +2680,9 @@ assign_section_numbers (abfd) t->symtab_shndx_section = section_number++; t->symtab_shndx_hdr.sh_name = (unsigned int) _bfd_elf_strtab_add (elf_shstrtab (abfd), - ".symtab_shndx", false); + ".symtab_shndx", FALSE); if (t->symtab_shndx_hdr.sh_name == (unsigned int) -1) - return false; + return FALSE; } if (section_number == SHN_LORESERVE) section_number += SHN_HIRESERVE + 1 - SHN_LORESERVE; @@ -2680,14 +2703,14 @@ assign_section_numbers (abfd) amt = section_number * sizeof (Elf_Internal_Shdr *); i_shdrp = (Elf_Internal_Shdr **) bfd_zalloc (abfd, amt); if (i_shdrp == NULL) - return false; + return FALSE; amt = sizeof (Elf_Internal_Shdr); i_shdrp[0] = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt); if (i_shdrp[0] == NULL) { bfd_release (abfd, i_shdrp); - return false; + return FALSE; } elf_elfsections (abfd) = i_shdrp; @@ -2771,7 +2794,7 @@ assign_section_numbers (abfd) len = strlen (sec->name); alc = (char *) bfd_malloc ((bfd_size_type) (len - 2)); if (alc == NULL) - return false; + return FALSE; memcpy (alc, sec->name, len - 3); alc[len - 3] = '\0'; s = bfd_get_section_by_name (abfd, alc); @@ -2820,7 +2843,7 @@ assign_section_numbers (abfd) else i_shdrp[secn]->sh_name = _bfd_elf_strtab_offset (elf_shstrtab (abfd), i_shdrp[secn]->sh_name); - return true; + return TRUE; } /* Map symbol from it's internal number to the external number, moving @@ -2841,7 +2864,7 @@ sym_is_global (abfd, sym) || bfd_is_com_section (bfd_get_section (sym))); } -static boolean +static bfd_boolean elf_map_symbols (abfd) bfd *abfd; { @@ -2873,7 +2896,7 @@ elf_map_symbols (abfd) amt = max_index * sizeof (asymbol *); sect_syms = (asymbol **) bfd_zalloc (abfd, amt); if (sect_syms == NULL) - return false; + return FALSE; elf_section_syms (abfd) = sect_syms; elf_num_section_syms (abfd) = max_index; @@ -2948,7 +2971,7 @@ elf_map_symbols (abfd) new_syms = (asymbol **) bfd_alloc (abfd, amt); if (new_syms == NULL) - return false; + return FALSE; for (idx = 0; idx < symcount; idx++) { @@ -2983,13 +3006,14 @@ elf_map_symbols (abfd) elf_num_locals (abfd) = num_locals; elf_num_globals (abfd) = num_globals; - return true; + return TRUE; } /* Align to the maximum file alignment that could be required for any ELF data structure. */ -static INLINE file_ptr align_file_position PARAMS ((file_ptr, int)); +static INLINE file_ptr align_file_position + PARAMS ((file_ptr, int)); static INLINE file_ptr align_file_position (off, align) file_ptr off; @@ -3005,7 +3029,7 @@ INLINE file_ptr _bfd_elf_assign_file_position_for_section (i_shdrp, offset, align) Elf_Internal_Shdr *i_shdrp; file_ptr offset; - boolean align; + bfd_boolean align; { if (align) { @@ -3027,37 +3051,37 @@ _bfd_elf_assign_file_position_for_sectio otherwise prepare to begin writing out the ELF file. If LINK_INFO is not NULL, this is being called by the ELF backend linker. */ -boolean +bfd_boolean _bfd_elf_compute_section_file_positions (abfd, link_info) bfd *abfd; struct bfd_link_info *link_info; { struct elf_backend_data *bed = get_elf_backend_data (abfd); - boolean failed; + bfd_boolean failed; struct bfd_strtab_hash *strtab; Elf_Internal_Shdr *shstrtab_hdr; if (abfd->output_has_begun) - return true; + return TRUE; /* Do any elf backend specific processing first. */ if (bed->elf_backend_begin_write_processing) (*bed->elf_backend_begin_write_processing) (abfd, link_info); if (! prep_headers (abfd)) - return false; + return FALSE; /* Post process the headers if necessary. */ if (bed->elf_backend_post_process_headers) (*bed->elf_backend_post_process_headers) (abfd, link_info); - failed = false; + failed = FALSE; bfd_map_over_sections (abfd, elf_fake_sections, &failed); if (failed) - return false; + return FALSE; if (!assign_section_numbers (abfd)) - return false; + return FALSE; /* The backend linker builds symbol table information itself. */ if (link_info == NULL && bfd_get_symcount (abfd) > 0) @@ -3066,14 +3090,14 @@ _bfd_elf_compute_section_file_positions int relocatable_p = ! (abfd->flags & (EXEC_P | DYNAMIC)); if (! swap_out_syms (abfd, &strtab, relocatable_p)) - return false; + return FALSE; } if (link_info == NULL) { bfd_map_over_sections (abfd, bfd_elf_set_group_contents, &failed); if (failed) - return false; + return FALSE; } shstrtab_hdr = &elf_tdata (abfd)->shstrtab_hdr; @@ -3089,7 +3113,7 @@ _bfd_elf_compute_section_file_positions shstrtab_hdr->sh_addralign = 1; if (!assign_file_positions_except_relocs (abfd)) - return false; + return FALSE; if (link_info == NULL && bfd_get_symcount (abfd) > 0) { @@ -3099,14 +3123,14 @@ _bfd_elf_compute_section_file_positions off = elf_tdata (abfd)->next_file_pos; hdr = &elf_tdata (abfd)->symtab_hdr; - off = _bfd_elf_assign_file_position_for_section (hdr, off, true); + off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE); hdr = &elf_tdata (abfd)->symtab_shndx_hdr; if (hdr->sh_size != 0) - off = _bfd_elf_assign_file_position_for_section (hdr, off, true); + off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE); hdr = &elf_tdata (abfd)->strtab_hdr; - off = _bfd_elf_assign_file_position_for_section (hdr, off, true); + off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE); elf_tdata (abfd)->next_file_pos = off; @@ -3114,13 +3138,13 @@ _bfd_elf_compute_section_file_positions out. */ if (bfd_seek (abfd, hdr->sh_offset, SEEK_SET) != 0 || ! _bfd_stringtab_emit (abfd, strtab)) - return false; + return FALSE; _bfd_stringtab_free (strtab); } - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; - return true; + return TRUE; } /* Create a mapping from a set of sections to a program segment. */ @@ -3131,7 +3155,7 @@ make_mapping (abfd, sections, from, to, asection **sections; unsigned int from; unsigned int to; - boolean phdr; + bfd_boolean phdr; { struct elf_segment_map *m; unsigned int i; @@ -3161,7 +3185,7 @@ make_mapping (abfd, sections, from, to, /* Set up a mapping from BFD sections to program segments. */ -static boolean +static bfd_boolean map_sections_to_segments (abfd) bfd *abfd; { @@ -3176,18 +3200,18 @@ map_sections_to_segments (abfd) unsigned int phdr_index; bfd_vma maxpagesize; asection **hdrpp; - boolean phdr_in_segment = true; - boolean writable; + bfd_boolean phdr_in_segment = TRUE; + bfd_boolean writable; int tls_count = 0; asection *first_tls = NULL; asection *dynsec, *eh_frame_hdr; bfd_size_type amt; if (elf_tdata (abfd)->segment_map != NULL) - return true; + return TRUE; if (bfd_count_sections (abfd) == 0) - return true; + return TRUE; /* Select the allocated sections, and sort them. */ @@ -3254,7 +3278,7 @@ map_sections_to_segments (abfd) last_hdr = NULL; phdr_index = 0; maxpagesize = get_elf_backend_data (abfd)->maxpagesize; - writable = false; + writable = FALSE; dynsec = bfd_get_section_by_name (abfd, ".dynamic"); if (dynsec != NULL && (dynsec->flags & SEC_LOAD) == 0) @@ -3274,13 +3298,13 @@ map_sections_to_segments (abfd) if ((abfd->flags & D_PAGED) == 0 || sections[0]->lma < phdr_size || sections[0]->lma % maxpagesize < phdr_size % maxpagesize) - phdr_in_segment = false; + phdr_in_segment = FALSE; } for (i = 0, hdrpp = sections; i < count; i++, hdrpp++) { asection *hdr; - boolean new_segment; + bfd_boolean new_segment; hdr = *hdrpp; @@ -3291,35 +3315,35 @@ map_sections_to_segments (abfd) { /* If we don't have a segment yet, then we don't need a new one (we build the last one after this loop). */ - new_segment = false; + new_segment = FALSE; } else if (last_hdr->lma - last_hdr->vma != hdr->lma - hdr->vma) { /* If this section has a different relation between the virtual address and the load address, then we need a new segment. */ - new_segment = true; + new_segment = TRUE; } else if (BFD_ALIGN (last_hdr->lma + last_hdr->_raw_size, maxpagesize) < BFD_ALIGN (hdr->lma, maxpagesize)) { /* If putting this section in this segment would force us to skip a page in the segment, then we need a new segment. */ - new_segment = true; + new_segment = TRUE; } else if ((last_hdr->flags & SEC_LOAD) == 0 && (hdr->flags & SEC_LOAD) != 0) { /* We don't want to put a loadable section after a nonloadable section in the same segment. */ - new_segment = true; + new_segment = TRUE; } else if ((abfd->flags & D_PAGED) == 0) { /* If the file is not demand paged, which means that we don't require the sections to be correctly aligned in the file, then there is no other reason for a new segment. */ - new_segment = false; + new_segment = FALSE; } else if (! writable && (hdr->flags & SEC_READONLY) == 0 @@ -3334,18 +3358,18 @@ map_sections_to_segments (abfd) only case in which the new section is not on the same page as the previous section is when the previous section ends precisely on a page boundary. */ - new_segment = true; + new_segment = TRUE; } else { /* Otherwise, we can use the same segment. */ - new_segment = false; + new_segment = FALSE; } if (! new_segment) { if ((hdr->flags & SEC_READONLY) == 0) - writable = true; + writable = TRUE; last_hdr = hdr; continue; } @@ -3361,13 +3385,13 @@ map_sections_to_segments (abfd) pm = &m->next; if ((hdr->flags & SEC_READONLY) == 0) - writable = true; + writable = TRUE; else - writable = false; + writable = FALSE; last_hdr = hdr; phdr_index = i; - phdr_in_segment = false; + phdr_in_segment = FALSE; } /* Create a final PT_LOAD program segment. */ @@ -3477,12 +3501,12 @@ map_sections_to_segments (abfd) sections = NULL; elf_tdata (abfd)->segment_map = mfirst; - return true; + return TRUE; error_return: if (sections != NULL) free (sections); - return false; + return FALSE; } /* Sort sections by address. */ @@ -3494,6 +3518,7 @@ elf_sort_sections (arg1, arg2) { const asection *sec1 = *(const asection **) arg1; const asection *sec2 = *(const asection **) arg2; + bfd_size_type size1, size2; /* Sort by LMA first, since this is the address used to place the section into a segment. */ @@ -3511,7 +3536,7 @@ elf_sort_sections (arg1, arg2) /* Put !SEC_LOAD sections after SEC_LOAD ones. */ -#define TOEND(x) (((x)->flags & SEC_LOAD) == 0) +#define TOEND(x) (((x)->flags & (SEC_LOAD|SEC_THREAD_LOCAL)) == 0) if (TOEND (sec1)) { @@ -3533,9 +3558,12 @@ elf_sort_sections (arg1, arg2) /* Sort by size, to put zero sized sections before others at the same address. */ - if (sec1->_raw_size < sec2->_raw_size) + size1 = (sec1->flags & SEC_LOAD) ? sec1->_raw_size : 0; + size2 = (sec2->flags & SEC_LOAD) ? sec2->_raw_size : 0; + + if (size1 < size2) return -1; - if (sec1->_raw_size > sec2->_raw_size) + if (size1 > size2) return 1; return sec1->target_index - sec2->target_index; @@ -3545,7 +3573,7 @@ elf_sort_sections (arg1, arg2) sections to segments. This function also sets up some fields in the file header, and writes out the program headers. */ -static boolean +static bfd_boolean assign_file_positions_for_segments (abfd) bfd *abfd; { @@ -3563,7 +3591,7 @@ assign_file_positions_for_segments (abfd if (elf_tdata (abfd)->segment_map == NULL) { if (! map_sections_to_segments (abfd)) - return false; + return FALSE; } else { @@ -3600,7 +3628,7 @@ assign_file_positions_for_segments (abfd if (bed->elf_backend_modify_segment_map) { if (! (*bed->elf_backend_modify_segment_map) (abfd)) - return false; + return FALSE; } count = 0; @@ -3612,7 +3640,7 @@ assign_file_positions_for_segments (abfd elf_elfheader (abfd)->e_phnum = count; if (count == 0) - return true; + return TRUE; /* If we already counted the number of program segments, make sure that we allocated enough space. This happens when SIZEOF_HEADERS @@ -3624,7 +3652,7 @@ assign_file_positions_for_segments (abfd (_("%s: Not enough room for program headers (allocated %u, need %u)"), bfd_get_filename (abfd), alloc, count)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (alloc == 0) @@ -3633,7 +3661,7 @@ assign_file_positions_for_segments (abfd amt = alloc * sizeof (Elf_Internal_Phdr); phdrs = (Elf_Internal_Phdr *) bfd_alloc (abfd, amt); if (phdrs == NULL) - return false; + return FALSE; off = bed->s->sizeof_ehdr; off += alloc * bed->s->sizeof_phdr; @@ -3729,7 +3757,7 @@ assign_file_positions_for_segments (abfd (_("%s: Not enough room for program headers, try linking with -N"), bfd_get_filename (abfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } p->p_vaddr -= off; @@ -3816,9 +3844,15 @@ assign_file_positions_for_segments (abfd bfd_vma adjust = sec->lma - (p->p_paddr + p->p_memsz); p->p_memsz += adjust; - off += adjust; - voff += adjust; - if ((flags & SEC_LOAD) != 0) + if (p->p_type == PT_LOAD + || (p->p_type == PT_NOTE + && bfd_get_format (abfd) == bfd_core)) + { + off += adjust; + voff += adjust; + } + if ((flags & SEC_LOAD) != 0 + || (flags & SEC_THREAD_LOCAL) != 0) p->p_filesz += adjust; } @@ -3856,7 +3890,7 @@ Error: First section in segment (%s) sta bfd_section_name (abfd, sec), sec->lma, p->p_paddr); - return false; + return FALSE; } p->p_memsz += adjust; off += adjust; @@ -3875,7 +3909,9 @@ Error: First section in segment (%s) sta || (flags & SEC_HAS_CONTENTS) != 0) off += sec->_raw_size; - if ((flags & SEC_ALLOC) != 0) + if ((flags & SEC_ALLOC) != 0 + && ((flags & SEC_LOAD) != 0 + || (flags & SEC_THREAD_LOCAL) == 0)) voff += sec->_raw_size; } @@ -3902,6 +3938,9 @@ Error: First section in segment (%s) sta } else { + if ((sec->flags & SEC_LOAD) != 0 + || (sec->flags & SEC_THREAD_LOCAL) == 0 + || p->p_type == PT_TLS) p->p_memsz += sec->_raw_size; if ((flags & SEC_LOAD) != 0) @@ -3979,9 +4018,9 @@ Error: First section in segment (%s) sta /* Write out the program headers. */ if (bfd_seek (abfd, (bfd_signed_vma) bed->s->sizeof_ehdr, SEEK_SET) != 0 || bed->s->write_out_phdrs (abfd, phdrs, alloc) != 0) - return false; + return FALSE; - return true; + return TRUE; } /* Get the size of the program header. @@ -4090,7 +4129,7 @@ get_program_header_size (abfd) We also don't set the positions of the .symtab and .strtab here. */ -static boolean +static bfd_boolean assign_file_positions_except_relocs (abfd) bfd *abfd; { @@ -4127,7 +4166,7 @@ assign_file_positions_except_relocs (abf hdr->sh_offset = -1; } else - off = _bfd_elf_assign_file_position_for_section (hdr, off, true); + off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE); if (i == SHN_LORESERVE - 1) { @@ -4144,7 +4183,7 @@ assign_file_positions_except_relocs (abf /* Assign file positions for the loaded sections based on the assignment of sections to segments. */ if (! assign_file_positions_for_segments (abfd)) - return false; + return FALSE; /* Assign file positions for the other sections. */ @@ -4170,7 +4209,7 @@ assign_file_positions_except_relocs (abf else off += (hdr->sh_addr - off) % hdr->sh_addralign; off = _bfd_elf_assign_file_position_for_section (hdr, off, - false); + FALSE); } else if (hdr->sh_type == SHT_REL || hdr->sh_type == SHT_RELA @@ -4179,7 +4218,7 @@ assign_file_positions_except_relocs (abf || hdr == i_shdrpp[tdata->strtab_section]) hdr->sh_offset = -1; else - off = _bfd_elf_assign_file_position_for_section (hdr, off, true); + off = _bfd_elf_assign_file_position_for_section (hdr, off, TRUE); if (i == SHN_LORESERVE - 1) { @@ -4196,10 +4235,10 @@ assign_file_positions_except_relocs (abf elf_tdata (abfd)->next_file_pos = off; - return true; + return TRUE; } -static boolean +static bfd_boolean prep_headers (abfd) bfd *abfd; { @@ -4214,7 +4253,7 @@ prep_headers (abfd) shstrtab = _bfd_elf_strtab_init (); if (shstrtab == NULL) - return false; + return FALSE; elf_shstrtab (abfd) = shstrtab; @@ -4292,17 +4331,17 @@ prep_headers (abfd) } elf_tdata (abfd)->symtab_hdr.sh_name = - (unsigned int) _bfd_elf_strtab_add (shstrtab, ".symtab", false); + (unsigned int) _bfd_elf_strtab_add (shstrtab, ".symtab", FALSE); elf_tdata (abfd)->strtab_hdr.sh_name = - (unsigned int) _bfd_elf_strtab_add (shstrtab, ".strtab", false); + (unsigned int) _bfd_elf_strtab_add (shstrtab, ".strtab", FALSE); elf_tdata (abfd)->shstrtab_hdr.sh_name = - (unsigned int) _bfd_elf_strtab_add (shstrtab, ".shstrtab", false); + (unsigned int) _bfd_elf_strtab_add (shstrtab, ".shstrtab", FALSE); if (elf_tdata (abfd)->symtab_hdr.sh_name == (unsigned int) -1 || elf_tdata (abfd)->symtab_hdr.sh_name == (unsigned int) -1 || elf_tdata (abfd)->shstrtab_hdr.sh_name == (unsigned int) -1) - return false; + return FALSE; - return true; + return TRUE; } /* Assign file positions for all the reloc sections which are not part @@ -4326,34 +4365,34 @@ _bfd_elf_assign_file_positions_for_reloc shdrp = *shdrpp; if ((shdrp->sh_type == SHT_REL || shdrp->sh_type == SHT_RELA) && shdrp->sh_offset == -1) - off = _bfd_elf_assign_file_position_for_section (shdrp, off, true); + off = _bfd_elf_assign_file_position_for_section (shdrp, off, TRUE); } elf_tdata (abfd)->next_file_pos = off; } -boolean +bfd_boolean _bfd_elf_write_object_contents (abfd) bfd *abfd; { struct elf_backend_data *bed = get_elf_backend_data (abfd); Elf_Internal_Ehdr *i_ehdrp; Elf_Internal_Shdr **i_shdrp; - boolean failed; + bfd_boolean failed; unsigned int count, num_sec; if (! abfd->output_has_begun && ! _bfd_elf_compute_section_file_positions (abfd, (struct bfd_link_info *) NULL)) - return false; + return FALSE; i_shdrp = elf_elfsections (abfd); i_ehdrp = elf_elfheader (abfd); - failed = false; + failed = FALSE; bfd_map_over_sections (abfd, bed->s->write_relocs, &failed); if (failed) - return false; + return FALSE; _bfd_elf_assign_file_positions_for_relocs (abfd); @@ -4369,7 +4408,7 @@ _bfd_elf_write_object_contents (abfd) if (bfd_seek (abfd, i_shdrp[count]->sh_offset, SEEK_SET) != 0 || bfd_bwrite (i_shdrp[count]->contents, amt, abfd) != amt) - return false; + return FALSE; } if (count == SHN_LORESERVE - 1) count += SHN_HIRESERVE + 1 - SHN_LORESERVE; @@ -4378,7 +4417,7 @@ _bfd_elf_write_object_contents (abfd) /* Write out the section header names. */ if (bfd_seek (abfd, elf_tdata (abfd)->shstrtab_hdr.sh_offset, SEEK_SET) != 0 || ! _bfd_elf_strtab_emit (abfd, elf_shstrtab (abfd))) - return false; + return FALSE; if (bed->elf_backend_final_write_processing) (*bed->elf_backend_final_write_processing) (abfd, @@ -4387,7 +4426,7 @@ _bfd_elf_write_object_contents (abfd) return bed->s->write_shdrs_and_ehdr (abfd); } -boolean +bfd_boolean _bfd_elf_write_corefile_contents (abfd) bfd *abfd; { @@ -4505,31 +4544,31 @@ _bfd_elf_symbol_from_bfd_symbol (abfd, a /* Copy private BFD data. This copies any program header information. */ -static boolean +static bfd_boolean copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { - Elf_Internal_Ehdr * iehdr; - struct elf_segment_map * map; - struct elf_segment_map * map_first; - struct elf_segment_map ** pointer_to_map; - Elf_Internal_Phdr * segment; - asection * section; - unsigned int i; - unsigned int num_segments; - boolean phdr_included = false; - bfd_vma maxpagesize; - struct elf_segment_map * phdr_adjust_seg = NULL; - unsigned int phdr_adjust_num = 0; - struct elf_backend_data * bed; + Elf_Internal_Ehdr *iehdr; + struct elf_segment_map *map; + struct elf_segment_map *map_first; + struct elf_segment_map **pointer_to_map; + Elf_Internal_Phdr *segment; + asection *section; + unsigned int i; + unsigned int num_segments; + bfd_boolean phdr_included = FALSE; + bfd_vma maxpagesize; + struct elf_segment_map *phdr_adjust_seg = NULL; + unsigned int phdr_adjust_num = 0; + struct elf_backend_data *bed; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; if (elf_tdata (ibfd)->phdr == NULL) - return true; + return TRUE; bed = get_elf_backend_data (ibfd); iehdr = elf_elfheader (ibfd); @@ -4545,18 +4584,23 @@ copy_private_bfd_data (ibfd, obfd) (start + (segment->p_memsz > segment->p_filesz \ ? segment->p_memsz : segment->p_filesz)) - /* Returns true if the given section is contained within +#define SECTION_SIZE(section, segment) \ + (((section->flags & (SEC_HAS_CONTENTS | SEC_THREAD_LOCAL)) \ + != SEC_THREAD_LOCAL || segment->p_type == PT_TLS) \ + ? section->_raw_size : 0) + + /* Returns TRUE if the given section is contained within the given segment. VMA addresses are compared. */ #define IS_CONTAINED_BY_VMA(section, segment) \ (section->vma >= segment->p_vaddr \ - && (section->vma + section->_raw_size \ + && (section->vma + SECTION_SIZE (section, segment) \ <= (SEGMENT_END (segment, segment->p_vaddr)))) - /* Returns true if the given section is contained within + /* Returns TRUE if the given section is contained within the given segment. LMA addresses are compared. */ #define IS_CONTAINED_BY_LMA(section, segment, base) \ (section->lma >= base \ - && (section->lma + section->_raw_size \ + && (section->lma + SECTION_SIZE (section, segment) \ <= SEGMENT_END (segment, base))) /* Special case: corefile "NOTE" section containing regs, prpsinfo etc. */ @@ -4588,7 +4632,9 @@ copy_private_bfd_data (ibfd, obfd) if that is set for the segment and the VMA otherwise, 2. It is an allocated segment, 3. There is an output section associated with it, - 4. The section has not already been allocated to a previous segment. */ + 4. The section has not already been allocated to a previous segment. + 5. PT_TLS segment includes only SHF_TLS sections. + 6. SHF_TLS sections are only in PT_TLS or PT_LOAD segments. */ #define INCLUDE_SECTION_IN_SEGMENT(section, segment, bed) \ ((((segment->p_paddr \ ? IS_CONTAINED_BY_LMA (section, segment, segment->p_paddr) \ @@ -4596,20 +4642,25 @@ copy_private_bfd_data (ibfd, obfd) && (section->flags & SEC_ALLOC) != 0) \ || IS_COREFILE_NOTE (segment, section)) \ && section->output_section != NULL \ + && (segment->p_type != PT_TLS \ + || (section->flags & SEC_THREAD_LOCAL)) \ + && (segment->p_type == PT_LOAD \ + || segment->p_type == PT_TLS \ + || (section->flags & SEC_THREAD_LOCAL) == 0) \ && ! section->segment_mark) - /* Returns true iff seg1 starts after the end of seg2. */ + /* Returns TRUE iff seg1 starts after the end of seg2. */ #define SEGMENT_AFTER_SEGMENT(seg1, seg2) \ (seg1->p_vaddr >= SEGMENT_END (seg2, seg2->p_vaddr)) - /* Returns true iff seg1 and seg2 overlap. */ + /* Returns TRUE iff seg1 and seg2 overlap. */ #define SEGMENT_OVERLAPS(seg1, seg2) \ (!(SEGMENT_AFTER_SEGMENT (seg1, seg2) \ || SEGMENT_AFTER_SEGMENT (seg2, seg1))) /* Initialise the segment mark field. */ for (section = ibfd->sections; section != NULL; section = section->next) - section->segment_mark = false; + section->segment_mark = FALSE; /* Scan through the segments specified in the program header of the input BFD. For this first scan we look for overlaps @@ -4714,7 +4765,7 @@ copy_private_bfd_data (ibfd, obfd) amt += ((bfd_size_type) section_count - 1) * sizeof (asection *); map = (struct elf_segment_map *) bfd_alloc (obfd, amt); if (map == NULL) - return false; + return FALSE; /* Initialise the fields of the segment map. Default to using the physical address of the segment in the input BFD. */ @@ -4741,7 +4792,7 @@ copy_private_bfd_data (ibfd, obfd) + iehdr->e_phnum * iehdr->e_phentsize))); if (segment->p_type == PT_LOAD && map->includes_phdrs) - phdr_included = true; + phdr_included = TRUE; } if (section_count == 0) @@ -4795,7 +4846,7 @@ copy_private_bfd_data (ibfd, obfd) amt = section_count * sizeof (asection *); sections = (asection **) bfd_malloc (amt); if (sections == NULL) - return false; + return FALSE; /* Step One: Scan for segment vs section LMA conflicts. Also add the sections to the section array allocated above. @@ -4976,7 +5027,7 @@ copy_private_bfd_data (ibfd, obfd) map->sections[map->count++] = output_section; ++isec; sections[j] = NULL; - section->segment_mark = true; + section->segment_mark = TRUE; } else if (suggested_lma == 0) suggested_lma = output_section->lma; @@ -4997,7 +5048,7 @@ copy_private_bfd_data (ibfd, obfd) amt += ((bfd_size_type) section_count - 1) * sizeof (asection *); map = (struct elf_segment_map *) bfd_alloc (obfd, amt); if (map == NULL) - return false; + return FALSE; /* Initialise the fields of the segment map. Set the physical physical address to the LMA of the first section that has @@ -5073,6 +5124,7 @@ copy_private_bfd_data (ibfd, obfd) #endif #undef SEGMENT_END +#undef SECTION_SIZE #undef IS_CONTAINED_BY_VMA #undef IS_CONTAINED_BY_LMA #undef IS_COREFILE_NOTE @@ -5080,13 +5132,13 @@ copy_private_bfd_data (ibfd, obfd) #undef INCLUDE_SECTION_IN_SEGMENT #undef SEGMENT_AFTER_SEGMENT #undef SEGMENT_OVERLAPS - return true; + return TRUE; } /* Copy private section information. This copies over the entsize field, and sometimes the info field. */ -boolean +bfd_boolean _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec) bfd *ibfd; asection *isec; @@ -5097,7 +5149,7 @@ _bfd_elf_copy_private_section_data (ibfd if (ibfd->xvec->flavour != bfd_target_elf_flavour || obfd->xvec->flavour != bfd_target_elf_flavour) - return true; + return TRUE; if (elf_tdata (obfd)->segment_map == NULL && elf_tdata (ibfd)->phdr != NULL) { @@ -5113,7 +5165,7 @@ _bfd_elf_copy_private_section_data (ibfd if (s == NULL) { if (! copy_private_bfd_data (ibfd, obfd)) - return false; + return FALSE; } } @@ -5137,7 +5189,7 @@ _bfd_elf_copy_private_section_data (ibfd elf_section_data (osec)->use_rela_p = elf_section_data (isec)->use_rela_p; - return true; + return TRUE; } /* Copy private symbol information. If this symbol is in a section @@ -5152,7 +5204,7 @@ _bfd_elf_copy_private_section_data (ibfd #define MAP_SHSTRTAB (SHN_HIOS + 4) #define MAP_SYM_SHNDX (SHN_HIOS + 5) -boolean +bfd_boolean _bfd_elf_copy_private_symbol_data (ibfd, isymarg, obfd, osymarg) bfd *ibfd; asymbol *isymarg; @@ -5163,7 +5215,7 @@ _bfd_elf_copy_private_symbol_data (ibfd, if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; isym = elf_symbol_from (ibfd, isymarg); osym = elf_symbol_from (obfd, osymarg); @@ -5188,12 +5240,12 @@ _bfd_elf_copy_private_symbol_data (ibfd, osym->internal_elf_sym.st_shndx = shndx; } - return true; + return TRUE; } /* Swap out the symbols. */ -static boolean +static bfd_boolean swap_out_syms (abfd, sttp, relocatable_p) bfd *abfd; struct bfd_strtab_hash **sttp; @@ -5212,12 +5264,12 @@ swap_out_syms (abfd, sttp, relocatable_p bfd_size_type amt; if (!elf_map_symbols (abfd)) - return false; + return FALSE; /* Dump out the symtabs. */ stt = _bfd_elf_stringtab_init (); if (stt == NULL) - return false; + return FALSE; bed = get_elf_backend_data (abfd); symcount = bfd_get_symcount (abfd); @@ -5234,7 +5286,7 @@ swap_out_syms (abfd, sttp, relocatable_p amt = (bfd_size_type) (1 + symcount) * bed->s->sizeof_sym; outbound_syms = bfd_alloc (abfd, amt); if (outbound_syms == NULL) - return false; + return FALSE; symtab_hdr->contents = (PTR) outbound_syms; outbound_shndx = NULL; @@ -5244,7 +5296,7 @@ swap_out_syms (abfd, sttp, relocatable_p amt = (bfd_size_type) (1 + symcount) * sizeof (Elf_External_Sym_Shndx); outbound_shndx = bfd_zalloc (abfd, amt); if (outbound_shndx == NULL) - return false; + return FALSE; symtab_shndx_hdr->contents = outbound_shndx; symtab_shndx_hdr->sh_type = SHT_SYMTAB_SHNDX; symtab_shndx_hdr->sh_size = amt; @@ -5286,9 +5338,9 @@ swap_out_syms (abfd, sttp, relocatable_p { sym.st_name = (unsigned long) _bfd_stringtab_add (stt, syms[idx]->name, - true, false); + TRUE, FALSE); if (sym.st_name == (unsigned long) -1) - return false; + return FALSE; } type_ptr = elf_symbol_from (abfd, syms[idx]); @@ -5448,7 +5500,7 @@ swap_out_syms (abfd, sttp, relocatable_p symstrtab_hdr->sh_info = 0; symstrtab_hdr->sh_addralign = 1; - return true; + return TRUE; } /* Return the number of bytes required to hold the symtab vector. @@ -5516,7 +5568,7 @@ _bfd_elf_canonicalize_reloc (abfd, secti unsigned int i; struct elf_backend_data *bed = get_elf_backend_data (abfd); - if (! bed->s->slurp_reloc_table (abfd, section, symbols, false)) + if (! bed->s->slurp_reloc_table (abfd, section, symbols, FALSE)) return -1; tblptr = section->relocation; @@ -5534,7 +5586,7 @@ _bfd_elf_get_symtab (abfd, alocation) asymbol **alocation; { struct elf_backend_data *bed = get_elf_backend_data (abfd); - long symcount = bed->s->slurp_symbol_table (abfd, alocation, false); + long symcount = bed->s->slurp_symbol_table (abfd, alocation, FALSE); if (symcount >= 0) bfd_get_symcount (abfd) = symcount; @@ -5547,7 +5599,7 @@ _bfd_elf_canonicalize_dynamic_symtab (ab asymbol **alocation; { struct elf_backend_data *bed = get_elf_backend_data (abfd); - long symcount = bed->s->slurp_symbol_table (abfd, alocation, true); + long symcount = bed->s->slurp_symbol_table (abfd, alocation, TRUE); if (symcount >= 0) bfd_get_dynamic_symcount (abfd) = symcount; @@ -5598,7 +5650,8 @@ _bfd_elf_canonicalize_dynamic_reloc (abf arelent **storage; asymbol **syms; { - boolean (*slurp_relocs) PARAMS ((bfd *, asection *, asymbol **, boolean)); + bfd_boolean (*slurp_relocs) + PARAMS ((bfd *, asection *, asymbol **, bfd_boolean)); asection *s; long ret; @@ -5619,7 +5672,7 @@ _bfd_elf_canonicalize_dynamic_reloc (abf arelent *p; long count, i; - if (! (*slurp_relocs) (abfd, s, syms, true)) + if (! (*slurp_relocs) (abfd, s, syms, TRUE)) return -1; count = s->_raw_size / elf_section_data (s)->this_hdr.sh_entsize; p = s->relocation; @@ -5636,7 +5689,7 @@ _bfd_elf_canonicalize_dynamic_reloc (abf /* Read in the version information. */ -boolean +bfd_boolean _bfd_elf_slurp_version_tables (abfd) bfd *abfd; { @@ -5823,12 +5876,12 @@ _bfd_elf_slurp_version_tables (abfd) contents = NULL; } - return true; + return TRUE; error_return: if (contents == NULL) free (contents); - return false; + return FALSE; } asymbol * @@ -5861,19 +5914,19 @@ _bfd_elf_get_symbol_info (ignore_abfd, s use this function for the is_local_label_name entry point, but some override it. */ -boolean +bfd_boolean _bfd_elf_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; { /* Normal local symbols start with ``.L''. */ if (name[0] == '.' && name[1] == 'L') - return true; + return TRUE; /* At least some SVR4 compilers (e.g., UnixWare 2.1 cc) generate DWARF debugging symbols starting with ``..''. */ if (name[0] == '.' && name[1] == '.') - return true; + return TRUE; /* gcc will sometimes generate symbols beginning with ``_.L_'' when emitting DWARF debugging output. I suspect this is actually a @@ -5882,9 +5935,9 @@ _bfd_elf_is_local_label_name (abfd, name underscore to be emitted on some ELF targets). For ease of use, we treat such symbols as local. */ if (name[0] == '_' && name[1] == '.' && name[2] == 'L' && name[3] == '_') - return true; + return TRUE; - return false; + return FALSE; } alent * @@ -5896,7 +5949,7 @@ _bfd_elf_get_lineno (ignore_abfd, symbol return NULL; } -boolean +bfd_boolean _bfd_elf_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; @@ -5907,7 +5960,7 @@ _bfd_elf_set_arch_mach (abfd, arch, mach if (arch != get_elf_backend_data (abfd)->arch && arch != bfd_arch_unknown && get_elf_backend_data (abfd)->arch != bfd_arch_unknown) - return false; + return FALSE; return bfd_default_set_arch_mach (abfd, arch, machine); } @@ -5915,7 +5968,7 @@ _bfd_elf_set_arch_mach (abfd, arch, mach /* Find the function to a particular section and offset, for error reporting. */ -static boolean +static bfd_boolean elf_find_function (abfd, section, symbols, offset, filename_ptr, functionname_ptr) bfd *abfd ATTRIBUTE_UNUSED; @@ -5964,20 +6017,20 @@ elf_find_function (abfd, section, symbol } if (func == NULL) - return false; + return FALSE; if (filename_ptr) *filename_ptr = filename; if (functionname_ptr) *functionname_ptr = bfd_asymbol_name (func); - return true; + return TRUE; } /* Find the nearest line to a particular section and offset, for error reporting. */ -boolean +bfd_boolean _bfd_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd; @@ -5988,7 +6041,7 @@ _bfd_elf_find_nearest_line (abfd, sectio const char **functionname_ptr; unsigned int *line_ptr; { - boolean found; + bfd_boolean found; if (_bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, @@ -5999,7 +6052,7 @@ _bfd_elf_find_nearest_line (abfd, sectio *filename_ptr ? NULL : filename_ptr, functionname_ptr); - return true; + return TRUE; } if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, @@ -6012,32 +6065,32 @@ _bfd_elf_find_nearest_line (abfd, sectio *filename_ptr ? NULL : filename_ptr, functionname_ptr); - return true; + return TRUE; } if (! _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, &found, filename_ptr, functionname_ptr, line_ptr, &elf_tdata (abfd)->line_info)) - return false; + return FALSE; if (found && (*functionname_ptr || *line_ptr)) - return true; + return TRUE; if (symbols == NULL) - return false; + return FALSE; if (! elf_find_function (abfd, section, symbols, offset, filename_ptr, functionname_ptr)) - return false; + return FALSE; *line_ptr = 0; - return true; + return TRUE; } int _bfd_elf_sizeof_headers (abfd, reloc) bfd *abfd; - boolean reloc; + bfd_boolean reloc; { int ret; @@ -6047,7 +6100,7 @@ _bfd_elf_sizeof_headers (abfd, reloc) return ret; } -boolean +bfd_boolean _bfd_elf_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -6061,15 +6114,15 @@ _bfd_elf_set_section_contents (abfd, sec if (! abfd->output_has_begun && ! (_bfd_elf_compute_section_file_positions (abfd, (struct bfd_link_info *) NULL))) - return false; + return FALSE; hdr = &elf_section_data (section)->this_hdr; pos = hdr->sh_offset + offset; if (bfd_seek (abfd, pos, SEEK_SET) != 0 || bfd_bwrite (location, count, abfd) != count) - return false; + return FALSE; - return true; + return TRUE; } void @@ -6081,20 +6134,9 @@ _bfd_elf_no_info_to_howto (abfd, cache_p abort (); } -#if 0 -void -_bfd_elf_no_info_to_howto_rel (abfd, cache_ptr, dst) - bfd *abfd; - arelent *cache_ptr; - Elf_Internal_Rel *dst; -{ - abort (); -} -#endif - /* Try to convert a non-ELF reloc into an ELF one. */ -boolean +bfd_boolean _bfd_elf_validate_reloc (abfd, areloc) bfd *abfd; arelent *areloc; @@ -6180,17 +6222,17 @@ _bfd_elf_validate_reloc (abfd, areloc) goto fail; } - return true; + return TRUE; fail: (*_bfd_error_handler) (_("%s: unsupported relocation type %s"), bfd_archive_filename (abfd), areloc->howto->name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } -boolean +bfd_boolean _bfd_elf_close_and_cleanup (abfd) bfd *abfd; { @@ -6245,7 +6287,7 @@ elfcore_make_pid (abfd) reference to NAME, so you shouldn't deallocate or overwrite it. */ -static boolean +static bfd_boolean elfcore_maybe_make_sect (abfd, name, sect) bfd *abfd; char *name; @@ -6254,17 +6296,17 @@ elfcore_maybe_make_sect (abfd, name, sec asection *sect2; if (bfd_get_section_by_name (abfd, name) != NULL) - return true; + return TRUE; sect2 = bfd_make_section (abfd, name); if (sect2 == NULL) - return false; + return FALSE; sect2->_raw_size = sect->_raw_size; sect2->filepos = sect->filepos; sect2->flags = sect->flags; sect2->alignment_power = sect->alignment_power; - return true; + return TRUE; } /* Create a pseudosection containing SIZE bytes at FILEPOS. This @@ -6274,7 +6316,7 @@ elfcore_maybe_make_sect (abfd, name, sec - For the multi-threaded case, a section named "NAME/PID", where PID is elfcore_make_pid (abfd). Both pseudosections have identical contents. */ -boolean +bfd_boolean _bfd_elfcore_make_pseudosection (abfd, name, size, filepos) bfd *abfd; char *name; @@ -6292,12 +6334,12 @@ _bfd_elfcore_make_pseudosection (abfd, n len = strlen (buf) + 1; threaded_name = bfd_alloc (abfd, (bfd_size_type) len); if (threaded_name == NULL) - return false; + return FALSE; memcpy (threaded_name, buf, len); sect = bfd_make_section (abfd, threaded_name); if (sect == NULL) - return false; + return FALSE; sect->_raw_size = size; sect->filepos = filepos; sect->flags = SEC_HAS_CONTENTS; @@ -6313,9 +6355,10 @@ _bfd_elfcore_make_pseudosection (abfd, n */ #if defined (HAVE_PRSTATUS_T) -static boolean elfcore_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_prstatus + PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean +static bfd_boolean elfcore_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6378,7 +6421,7 @@ elfcore_grok_prstatus (abfd, note) { /* Fail - we don't know how to handle any other note size (ie. data object type). */ - return true; + return TRUE; } /* Make a ".reg/999" section and a ".reg" section. */ @@ -6388,7 +6431,7 @@ elfcore_grok_prstatus (abfd, note) #endif /* defined (HAVE_PRSTATUS_T) */ /* Create a pseudosection containing the exact contents of NOTE. */ -static boolean +static bfd_boolean elfcore_make_note_pseudosection (abfd, name, note) bfd *abfd; char *name; @@ -6402,7 +6445,7 @@ elfcore_make_note_pseudosection (abfd, n but it doesn't matter, because we don't have to pick this data structure apart. */ -static boolean +static bfd_boolean elfcore_grok_prfpreg (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6414,7 +6457,7 @@ elfcore_grok_prfpreg (abfd, note) type of 5 (NT_PRXFPREG). Just include the whole note's contents literally. */ -static boolean +static bfd_boolean elfcore_grok_prxfpreg (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6466,9 +6509,10 @@ _bfd_elfcore_strndup (abfd, start, max) } #if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) -static boolean elfcore_grok_psinfo PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_psinfo + PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean +static bfd_boolean elfcore_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6509,7 +6553,7 @@ elfcore_grok_psinfo (abfd, note) { /* Fail - we don't know how to handle any other note size (ie. data object type). */ - return true; + return TRUE; } /* Note that for some reason, a spurious space is tacked @@ -6524,14 +6568,15 @@ elfcore_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } #endif /* defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) */ #if defined (HAVE_PSTATUS_T) -static boolean elfcore_grok_pstatus PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_pstatus + PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean +static bfd_boolean elfcore_grok_pstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6563,14 +6608,15 @@ elfcore_grok_pstatus (abfd, note) lwpstatus_t in pstat.pr_lwp, but we'll catch it all in an NT_LWPSTATUS note, presumably. */ - return true; + return TRUE; } #endif /* defined (HAVE_PSTATUS_T) */ #if defined (HAVE_LWPSTATUS_T) -static boolean elfcore_grok_lwpstatus PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elfcore_grok_lwpstatus + PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean +static bfd_boolean elfcore_grok_lwpstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6586,7 +6632,7 @@ elfcore_grok_lwpstatus (abfd, note) && note->descsz != sizeof (lwpxstatus_t) #endif ) - return true; + return TRUE; memcpy (&lwpstat, note->descdata, sizeof (lwpstat)); @@ -6599,12 +6645,12 @@ elfcore_grok_lwpstatus (abfd, note) len = strlen (buf) + 1; name = bfd_alloc (abfd, (bfd_size_type) len); if (name == NULL) - return false; + return FALSE; memcpy (name, buf, len); sect = bfd_make_section (abfd, name); if (sect == NULL) - return false; + return FALSE; #if defined (HAVE_LWPSTATUS_T_PR_CONTEXT) sect->_raw_size = sizeof (lwpstat.pr_context.uc_mcontext.gregs); @@ -6621,7 +6667,7 @@ elfcore_grok_lwpstatus (abfd, note) sect->alignment_power = 2; if (!elfcore_maybe_make_sect (abfd, ".reg", sect)) - return false; + return FALSE; /* Make a ".reg2/999" section */ @@ -6629,12 +6675,12 @@ elfcore_grok_lwpstatus (abfd, note) len = strlen (buf) + 1; name = bfd_alloc (abfd, (bfd_size_type) len); if (name == NULL) - return false; + return FALSE; memcpy (name, buf, len); sect = bfd_make_section (abfd, name); if (sect == NULL) - return false; + return FALSE; #if defined (HAVE_LWPSTATUS_T_PR_CONTEXT) sect->_raw_size = sizeof (lwpstat.pr_context.uc_mcontext.fpregs); @@ -6655,7 +6701,7 @@ elfcore_grok_lwpstatus (abfd, note) #endif /* defined (HAVE_LWPSTATUS_T) */ #if defined (HAVE_WIN32_PSTATUS_T) -static boolean +static bfd_boolean elfcore_grok_win32pstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6667,7 +6713,7 @@ elfcore_grok_win32pstatus (abfd, note) win32_pstatus_t pstatus; if (note->descsz < sizeof (pstatus)) - return true; + return TRUE; memcpy (&pstatus, note->descdata, sizeof (pstatus)); @@ -6686,13 +6732,13 @@ elfcore_grok_win32pstatus (abfd, note) len = strlen (buf) + 1; name = bfd_alloc (abfd, (bfd_size_type) len); if (name == NULL) - return false; + return FALSE; memcpy (name, buf, len); sect = bfd_make_section (abfd, name); if (sect == NULL) - return false; + return FALSE; sect->_raw_size = sizeof (pstatus.data.thread_info.thread_context); sect->filepos = (note->descpos @@ -6703,7 +6749,7 @@ elfcore_grok_win32pstatus (abfd, note) if (pstatus.data.thread_info.is_active_thread) if (! elfcore_maybe_make_sect (abfd, ".reg", sect)) - return false; + return FALSE; break; case NOTE_INFO_MODULE: @@ -6713,14 +6759,14 @@ elfcore_grok_win32pstatus (abfd, note) len = strlen (buf) + 1; name = bfd_alloc (abfd, (bfd_size_type) len); if (name == NULL) - return false; + return FALSE; memcpy (name, buf, len); sect = bfd_make_section (abfd, name); if (sect == NULL) - return false; + return FALSE; sect->_raw_size = note->descsz; sect->filepos = note->descpos; @@ -6729,14 +6775,14 @@ elfcore_grok_win32pstatus (abfd, note) break; default: - return true; + return TRUE; } - return true; + return TRUE; } #endif /* HAVE_WIN32_PSTATUS_T */ -static boolean +static bfd_boolean elfcore_grok_note (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6746,16 +6792,16 @@ elfcore_grok_note (abfd, note) switch (note->type) { default: - return true; + return TRUE; case NT_PRSTATUS: if (bed->elf_backend_grok_prstatus) if ((*bed->elf_backend_grok_prstatus) (abfd, note)) - return true; + return TRUE; #if defined (HAVE_PRSTATUS_T) return elfcore_grok_prstatus (abfd, note); #else - return true; + return TRUE; #endif #if defined (HAVE_PSTATUS_T) @@ -6781,22 +6827,22 @@ elfcore_grok_note (abfd, note) && strcmp (note->namedata, "LINUX") == 0) return elfcore_grok_prxfpreg (abfd, note); else - return true; + return TRUE; case NT_PRPSINFO: case NT_PSINFO: if (bed->elf_backend_grok_psinfo) if ((*bed->elf_backend_grok_psinfo) (abfd, note)) - return true; + return TRUE; #if defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) return elfcore_grok_psinfo (abfd, note); #else - return true; + return TRUE; #endif } } -static boolean +static bfd_boolean elfcore_netbsd_get_lwpid (note, lwpidp) Elf_Internal_Note *note; int *lwpidp; @@ -6807,12 +6853,12 @@ elfcore_netbsd_get_lwpid (note, lwpidp) if (cp != NULL) { *lwpidp = atoi(cp + 1); - return true; + return TRUE; } - return false; + return FALSE; } -static boolean +static bfd_boolean elfcore_grok_netbsd_procinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6830,10 +6876,10 @@ elfcore_grok_netbsd_procinfo (abfd, note elf_tdata (abfd)->core_command = _bfd_elfcore_strndup (abfd, note->descdata + 0x7c, 31); - return true; + return TRUE; } -static boolean +static bfd_boolean elfcore_grok_netbsd_note (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -6859,7 +6905,7 @@ elfcore_grok_netbsd_note (abfd, note) understand it. */ if (note->type < NT_NETBSDCORE_FIRSTMACH) - return true; + return TRUE; switch (bfd_get_arch (abfd)) @@ -6878,7 +6924,7 @@ elfcore_grok_netbsd_note (abfd, note) return elfcore_make_note_pseudosection (abfd, ".reg2", note); default: - return true; + return TRUE; } /* On all other arch's, PT_GETREGS == mach+1 and @@ -6894,7 +6940,7 @@ elfcore_grok_netbsd_note (abfd, note) return elfcore_make_note_pseudosection (abfd, ".reg2", note); default: - return true; + return TRUE; } } /* NOTREACHED */ @@ -7092,7 +7138,7 @@ elfcore_write_prxfpreg (abfd, buf, bufsi note_name, NT_PRXFPREG, xfpregs, size); } -static boolean +static bfd_boolean elfcore_read_notes (abfd, offset, size) bfd *abfd; file_ptr offset; @@ -7102,20 +7148,20 @@ elfcore_read_notes (abfd, offset, size) char *p; if (size <= 0) - return true; + return TRUE; if (bfd_seek (abfd, offset, SEEK_SET) != 0) - return false; + return FALSE; buf = bfd_malloc (size); if (buf == NULL) - return false; + return FALSE; if (bfd_bread (buf, size, abfd) != size) { error: free (buf); - return false; + return FALSE; } p = buf; @@ -7149,7 +7195,7 @@ elfcore_read_notes (abfd, offset, size) } free (buf); - return true; + return TRUE; } /* Providing external access to the ELF program header table. */ diff -uprN binutils-2.13.90.0.16/bfd/elf32-arc.c binutils-2.13.90.0.18/bfd/elf32-arc.c --- binutils-2.13.90.0.16/bfd/elf32-arc.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-arc.c Mon Dec 16 12:22:51 2002 @@ -29,11 +29,11 @@ static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void arc_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); -static boolean arc_elf_object_p + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean arc_elf_object_p PARAMS ((bfd *)); static void arc_elf_final_write_processing - PARAMS ((bfd *, boolean)); + PARAMS ((bfd *, bfd_boolean)); static bfd_reloc_status_type arc_elf_b22_pcrel PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); @@ -49,60 +49,60 @@ static reloc_howto_type elf_arc_howto_ta 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARC_NONE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 32 bit relocation. */ HOWTO (R_ARC_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARC_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 26 bit absolute branch, right shifted by 2. */ HOWTO (R_ARC_B26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARC_B26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00ffffff, /* src_mask */ 0x00ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 22 bit branch; bits 21-2 are stored in bits 26-7. */ HOWTO (R_ARC_B22_PCREL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 22, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 7, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ arc_elf_b22_pcrel, /* special_function */ "R_ARC_B22_PCREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x07ffff80, /* src_mask */ 0x07ffff80, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to ARC ELF reloc types. */ @@ -142,7 +142,7 @@ static void arc_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -153,7 +153,7 @@ arc_info_to_howto_rel (abfd, cache_ptr, /* Set the right machine number for an ARC ELF file. */ -static boolean +static bfd_boolean arc_elf_object_p (abfd) bfd *abfd; { @@ -189,7 +189,7 @@ arc_elf_object_p (abfd) static void arc_elf_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { unsigned long val; @@ -226,7 +226,7 @@ arc_elf_b22_pcrel (abfd, reloc_entry, sy { /* If linking, back up the final symbol address by the address of the reloc. This cannot be accomplished by setting the pcrel_offset - field to true, as bfd_install_relocation will detect this and refuse + field to TRUE, as bfd_install_relocation will detect this and refuse to install the offset in the first place, but bfd_perform_relocation will still insist on removing it. */ if (output_bfd == (bfd *) NULL) diff -uprN binutils-2.13.90.0.16/bfd/elf32-arm.h binutils-2.13.90.0.18/bfd/elf32-arm.h --- binutils-2.13.90.0.16/bfd/elf32-arm.h Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf32-arm.h Mon Dec 16 12:22:51 2002 @@ -24,13 +24,13 @@ typedef unsigned long int insn32; typedef unsigned short int insn16; -static boolean elf32_arm_set_private_flags +static bfd_boolean elf32_arm_set_private_flags PARAMS ((bfd *, flagword)); -static boolean elf32_arm_copy_private_bfd_data +static bfd_boolean elf32_arm_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean elf32_arm_merge_private_bfd_data +static bfd_boolean elf32_arm_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean elf32_arm_print_private_bfd_data +static bfd_boolean elf32_arm_print_private_bfd_data PARAMS ((bfd *, PTR)); static int elf32_arm_get_symbol_type PARAMS (( Elf_Internal_Sym *, int)); @@ -54,29 +54,29 @@ static int elf32_arm_to_thumb_stub static int elf32_thumb_to_arm_stub PARAMS ((struct bfd_link_info *, const char *, bfd *, bfd *, asection *, bfd_byte *, asection *, bfd_vma, bfd_signed_vma, bfd_vma)); -static boolean elf32_arm_relocate_section +static bfd_boolean elf32_arm_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static asection * elf32_arm_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_arm_gc_sweep_hook +static bfd_boolean elf32_arm_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_arm_check_relocs +static bfd_boolean elf32_arm_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_arm_find_nearest_line +static bfd_boolean elf32_arm_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); -static boolean elf32_arm_adjust_dynamic_symbol +static bfd_boolean elf32_arm_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean elf32_arm_size_dynamic_sections +static bfd_boolean elf32_arm_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf32_arm_finish_dynamic_symbol +static bfd_boolean elf32_arm_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_arm_finish_dynamic_sections +static bfd_boolean elf32_arm_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static struct bfd_hash_entry * elf32_arm_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); @@ -92,11 +92,11 @@ static void record_arm_to_thumb_glue PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); static void record_thumb_to_arm_glue PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -boolean bfd_elf32_arm_allocate_interworking_sections +bfd_boolean bfd_elf32_arm_allocate_interworking_sections PARAMS ((struct bfd_link_info *)); -boolean bfd_elf32_arm_get_bfd_for_interworking +bfd_boolean bfd_elf32_arm_get_bfd_for_interworking PARAMS ((bfd *, struct bfd_link_info *)); -boolean bfd_elf32_arm_process_before_allocation +bfd_boolean bfd_elf32_arm_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *, int)); #endif @@ -170,14 +170,14 @@ struct elf32_arm_link_hash_entry }; /* Declare this now that the above structures are defined. */ -static boolean elf32_arm_discard_copies +static bfd_boolean elf32_arm_discard_copies PARAMS ((struct elf32_arm_link_hash_entry *, PTR)); /* Traverse an arm ELF linker hash table. */ #define elf32_arm_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the ARM elf linker hash table from a link_info structure. */ @@ -285,7 +285,7 @@ find_thumb_glue (link_info, name, input_ sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name); hash = elf_link_hash_lookup - (&(hash_table)->root, tmp_name, false, false, true); + (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE); if (hash == NULL) /* xgettext:c-format */ @@ -320,7 +320,7 @@ find_arm_glue (link_info, name, input_bf sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name); myh = elf_link_hash_lookup - (&(hash_table)->root, tmp_name, false, false, true); + (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE); if (myh == NULL) /* xgettext:c-format */ @@ -368,7 +368,7 @@ static const insn16 t2a2_noop_insn = 0x4 static const insn32 t2a3_b_insn = 0xea000000; #ifndef ELFARM_NABI_C_INCLUDED -boolean +bfd_boolean bfd_elf32_arm_allocate_interworking_sections (info) struct bfd_link_info * info; { @@ -412,7 +412,7 @@ bfd_elf32_arm_allocate_interworking_sect s->contents = foo; } - return true; + return TRUE; } static void @@ -446,7 +446,7 @@ record_arm_to_thumb_glue (link_info, h) sprintf (tmp_name, ARM2THUMB_GLUE_ENTRY_NAME, name); myh = elf_link_hash_lookup - (&(globals)->root, tmp_name, false, false, true); + (&(globals)->root, tmp_name, FALSE, FALSE, TRUE); if (myh != NULL) { @@ -462,7 +462,7 @@ record_arm_to_thumb_glue (link_info, h) val = globals->arm_glue_size + 1; _bfd_generic_link_add_one_symbol (link_info, globals->bfd_of_glue_owner, tmp_name, BSF_GLOBAL, s, val, - NULL, true, false, &bh); + NULL, TRUE, FALSE, &bh); free (tmp_name); @@ -503,7 +503,7 @@ record_thumb_to_arm_glue (link_info, h) sprintf (tmp_name, THUMB2ARM_GLUE_ENTRY_NAME, name); myh = elf_link_hash_lookup - (&(hash_table)->root, tmp_name, false, false, true); + (&(hash_table)->root, tmp_name, FALSE, FALSE, TRUE); if (myh != NULL) { @@ -516,7 +516,7 @@ record_thumb_to_arm_glue (link_info, h) val = hash_table->thumb_glue_size + 1; _bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner, tmp_name, BSF_GLOBAL, s, val, - NULL, true, false, &bh); + NULL, TRUE, FALSE, &bh); /* If we mark it 'Thumb', the disassembler will do a better job. */ myh = (struct elf_link_hash_entry *) bh; @@ -540,7 +540,7 @@ record_thumb_to_arm_glue (link_info, h) val = hash_table->thumb_glue_size + 4, _bfd_generic_link_add_one_symbol (link_info, hash_table->bfd_of_glue_owner, tmp_name, BSF_LOCAL, s, val, - NULL, true, false, &bh); + NULL, TRUE, FALSE, &bh); free (tmp_name); @@ -552,7 +552,7 @@ record_thumb_to_arm_glue (link_info, h) /* Add the glue sections to ABFD. This function is called from the linker scripts in ld/emultempl/{armelf}.em. */ -boolean +bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -563,7 +563,7 @@ bfd_elf32_arm_add_glue_sections_to_bfd ( /* If we are only performing a partial link do not bother adding the glue. */ if (info->relocateable) - return true; + return TRUE; sec = bfd_get_section_by_name (abfd, ARM2THUMB_GLUE_SECTION_NAME); @@ -579,7 +579,7 @@ bfd_elf32_arm_add_glue_sections_to_bfd ( if (sec == NULL || !bfd_set_section_flags (abfd, sec, flags) || !bfd_set_section_alignment (abfd, sec, 2)) - return false; + return FALSE; /* Set the gc mark to prevent the section from being removed by garbage collection, despite the fact that no relocs refer to this section. */ @@ -597,19 +597,19 @@ bfd_elf32_arm_add_glue_sections_to_bfd ( if (sec == NULL || !bfd_set_section_flags (abfd, sec, flags) || !bfd_set_section_alignment (abfd, sec, 2)) - return false; + return FALSE; sec->gc_mark = 1; } - return true; + return TRUE; } /* Select a BFD to be used to hold the sections used by the glue code. This function is called from the linker scripts in ld/emultempl/ {armelf/pe}.em */ -boolean +bfd_boolean bfd_elf32_arm_get_bfd_for_interworking (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -619,22 +619,22 @@ bfd_elf32_arm_get_bfd_for_interworking ( /* If we are only performing a partial link do not bother getting a bfd to hold the glue. */ if (info->relocateable) - return true; + return TRUE; globals = elf32_arm_hash_table (info); BFD_ASSERT (globals != NULL); if (globals->bfd_of_glue_owner != NULL) - return true; + return TRUE; /* Save the bfd for later use. */ globals->bfd_of_glue_owner = abfd; - return true; + return TRUE; } -boolean +bfd_boolean bfd_elf32_arm_process_before_allocation (abfd, link_info, no_pipeline_knowledge) bfd *abfd; struct bfd_link_info *link_info; @@ -651,7 +651,7 @@ bfd_elf32_arm_process_before_allocation /* If we are only performing a partial link do not bother to construct any glue. */ if (link_info->relocateable) - return true; + return TRUE; /* Here we have a bfd that is to be included on the link. We have a hook to do reloc rummaging, before section sizes are nailed down. */ @@ -666,7 +666,7 @@ bfd_elf32_arm_process_before_allocation sec = abfd->sections; if (sec == NULL) - return true; + return TRUE; for (; sec != NULL; sec = sec->next) { @@ -678,7 +678,7 @@ bfd_elf32_arm_process_before_allocation /* Load the relocs. */ internal_relocs = _bfd_elf32_link_read_relocs (abfd, sec, (PTR) NULL, - (Elf_Internal_Rela *) NULL, false); + (Elf_Internal_Rela *) NULL, FALSE); if (internal_relocs == NULL) goto error_return; @@ -769,7 +769,7 @@ bfd_elf32_arm_process_before_allocation internal_relocs = NULL; } - return true; + return TRUE; error_return: if (contents != NULL @@ -779,7 +779,7 @@ error_return: && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } #endif @@ -864,7 +864,7 @@ elf32_thumb_to_arm_stub (info, name, inp myh = find_thumb_glue (info, name, input_bfd); if (myh == NULL) - return false; + return FALSE; globals = elf32_arm_hash_table (info); @@ -893,7 +893,7 @@ elf32_thumb_to_arm_stub (info, name, inp (_(" first occurrence: %s: thumb call to arm"), bfd_archive_filename (input_bfd)); - return false; + return FALSE; } --my_offset; @@ -942,7 +942,7 @@ elf32_thumb_to_arm_stub (info, name, inp (bfd_vma) insert_thumb_branch (tmp, ret_offset), hit_data - input_section->vma); - return true; + return TRUE; } /* Arm code calling a Thumb function. */ @@ -970,7 +970,7 @@ elf32_arm_to_thumb_stub (info, name, inp myh = find_arm_glue (info, name, input_bfd); if (myh == NULL) - return false; + return FALSE; globals = elf32_arm_hash_table (info); @@ -1030,7 +1030,7 @@ elf32_arm_to_thumb_stub (info, name, inp bfd_put_32 (output_bfd, (bfd_vma) tmp, hit_data - input_section->vma); - return true; + return TRUE; } /* Perform a relocation as part of a final link. */ @@ -1128,8 +1128,9 @@ elf32_arm_final_link_relocate (howto, in || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)))) { - Elf_Internal_Rel outrel; - boolean skip, relocate; + Elf_Internal_Rela outrel; + bfd_byte *loc; + bfd_boolean skip, relocate; if (sreloc == NULL) { @@ -1151,16 +1152,16 @@ elf32_arm_final_link_relocate (howto, in BFD_ASSERT (sreloc != NULL); } - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -1170,7 +1171,7 @@ elf32_arm_final_link_relocate (howto, in { BFD_ASSERT (h != NULL && h->dynindx != -1); if ((input_section->flags & SEC_ALLOC) == 0) - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_PC24); } else @@ -1180,23 +1181,21 @@ elf32_arm_final_link_relocate (howto, in && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE); } else { BFD_ASSERT (h->dynindx != -1); if ((input_section->flags & SEC_ALLOC) == 0) - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_ABS32); } } - bfd_elf32_swap_reloc_out (output_bfd, &outrel, - (((Elf32_External_Rel *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel); + bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); /* If this reloc is against an external symbol, we do not want to fiddle with the addend. Otherwise, we need to include the symbol @@ -1390,13 +1389,13 @@ elf32_arm_final_link_relocate (howto, in case R_ARM_THM_PC22: /* Thumb BL (branch long instruction). */ { - bfd_vma relocation; - boolean overflow = false; - bfd_vma upper_insn = bfd_get_16 (input_bfd, hit_data); - bfd_vma lower_insn = bfd_get_16 (input_bfd, hit_data + 2); + bfd_vma relocation; + bfd_boolean overflow = FALSE; + bfd_vma upper_insn = bfd_get_16 (input_bfd, hit_data); + bfd_vma lower_insn = bfd_get_16 (input_bfd, hit_data + 2); bfd_signed_vma reloc_signed_max = ((1 << (howto->bitsize - 1)) - 1) >> howto->rightshift; bfd_signed_vma reloc_signed_min = ~ reloc_signed_max; - bfd_vma check; + bfd_vma check; bfd_signed_vma signed_check; #if USE_REL @@ -1473,7 +1472,7 @@ elf32_arm_final_link_relocate (howto, in /* Assumes two's complement. */ if (signed_check > reloc_signed_max || signed_check < reloc_signed_min) - overflow = true; + overflow = TRUE; #ifndef OLD_ARM_ABI if (r_type == R_ARM_THM_XPC22 @@ -1657,7 +1656,8 @@ elf32_arm_final_link_relocate (howto, in if (info->shared) { asection * srelgot; - Elf_Internal_Rel outrel; + Elf_Internal_Rela outrel; + bfd_byte *loc; srelgot = bfd_get_section_by_name (dynobj, ".rel.got"); BFD_ASSERT (srelgot != NULL); @@ -1666,11 +1666,9 @@ elf32_arm_final_link_relocate (howto, in + sgot->output_offset + off); outrel.r_info = ELF32_R_INFO (0, R_ARM_RELATIVE); - bfd_elf32_swap_reloc_out (output_bfd, &outrel, - (((Elf32_External_Rel *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = srelgot->contents; + loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rel); + bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); } local_got_offsets[r_symndx] |= 1; @@ -1816,27 +1814,27 @@ arm_add_to_rel (abfd, address, howto, in #endif /* USE_REL */ /* Relocate an ARM ELF section. */ -static boolean +static bfd_boolean elf32_arm_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) - bfd * output_bfd; - struct bfd_link_info * info; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * relocs; - Elf_Internal_Sym * local_syms; - asection ** local_sections; + bfd *output_bfd; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; { - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; - const char * name; + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; + const char *name; #if !USE_REL if (info->relocateable) - return true; + return TRUE; #endif symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; @@ -1863,12 +1861,7 @@ elf32_arm_relocate_section (output_bfd, || r_type == R_ARM_GNU_VTINHERIT) continue; -#if USE_REL - elf32_arm_info_to_howto (input_bfd, & bfd_reloc, - (Elf_Internal_Rel *) rel); -#else elf32_arm_info_to_howto (input_bfd, & bfd_reloc, rel); -#endif howto = bfd_reloc.howto; #if USE_REL @@ -1921,7 +1914,7 @@ elf32_arm_relocate_section (output_bfd, bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, howto->name); - return false; + return FALSE; } value = bfd_get_32 (input_bfd, contents + rel->r_offset); @@ -2040,7 +2033,7 @@ elf32_arm_relocate_section (output_bfd, input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } @@ -2076,14 +2069,14 @@ elf32_arm_relocate_section (output_bfd, && (!((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset)))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (!((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - rel->r_offset, true))) - return false; + rel->r_offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -2106,17 +2099,17 @@ elf32_arm_relocate_section (output_bfd, if (!((*info->callbacks->warning) (info, msg, name, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; } } } - return true; + return TRUE; } /* Function to keep ARM specific flags in the ELF header. */ -static boolean +static bfd_boolean elf32_arm_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -2139,15 +2132,15 @@ Warning: Clearing the interworking flag else { elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; + elf_flags_init (abfd) = TRUE; } - return true; + return TRUE; } /* Copy backend specific data from one object module to another. */ -static boolean +static bfd_boolean elf32_arm_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -2157,7 +2150,7 @@ elf32_arm_copy_private_bfd_data (ibfd, o if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; @@ -2168,11 +2161,11 @@ elf32_arm_copy_private_bfd_data (ibfd, o { /* Cannot mix APCS26 and APCS32 code. */ if ((in_flags & EF_ARM_APCS_26) != (out_flags & EF_ARM_APCS_26)) - return false; + return FALSE; /* Cannot mix float APCS and non-float APCS code. */ if ((in_flags & EF_ARM_APCS_FLOAT) != (out_flags & EF_ARM_APCS_FLOAT)) - return false; + return FALSE; /* If the src and dest have different interworking flags then turn off the interworking bit. */ @@ -2193,32 +2186,32 @@ Warning: Clearing the interworking flag } elf_elfheader (obfd)->e_flags = in_flags; - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; - return true; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean elf32_arm_merge_private_bfd_data (ibfd, obfd) bfd * ibfd; bfd * obfd; { flagword out_flags; flagword in_flags; - boolean flags_compatible = true; - boolean null_input_bfd = true; + bfd_boolean flags_compatible = TRUE; + bfd_boolean null_input_bfd = TRUE; asection *sec; /* Check if we have the same endianess. */ if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; /* The input BFD must have had its flags initialised. */ /* The following seems bogus to me -- The flags are initialized in @@ -2239,21 +2232,21 @@ elf32_arm_merge_private_bfd_data (ibfd, to the default values. */ if (bfd_get_arch_info (ibfd)->the_default && elf_elfheader (ibfd)->e_flags == 0) - return true; + return TRUE; - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = in_flags; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) && bfd_get_arch_info (obfd)->the_default) return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd)); - return true; + return TRUE; } /* Identical flags must be compatible. */ if (in_flags == out_flags) - return true; + return TRUE; /* Check to see if the input BFD actually contains any sections. If not, its flags may not have been initialised either, but it cannot @@ -2264,12 +2257,12 @@ elf32_arm_merge_private_bfd_data (ibfd, if (strcmp (sec->name, ".glue_7") && strcmp (sec->name, ".glue_7t")) { - null_input_bfd = false; + null_input_bfd = FALSE; break; } } if (null_input_bfd) - return true; + return TRUE; /* Complain about various flag mismatches. */ if (EF_ARM_EABI_VERSION (in_flags) != EF_ARM_EABI_VERSION (out_flags)) @@ -2280,7 +2273,7 @@ ERROR: %s is compiled for EABI version % (in_flags & EF_ARM_EABIMASK) >> 24, bfd_get_filename (obfd), (out_flags & EF_ARM_EABIMASK) >> 24); - return false; + return FALSE; } /* Not sure what needs to be checked for EABI versions >= 1. */ @@ -2294,7 +2287,7 @@ ERROR: %s is compiled for APCS-%d, where in_flags & EF_ARM_APCS_26 ? 26 : 32, bfd_get_filename (obfd), out_flags & EF_ARM_APCS_26 ? 26 : 32); - flags_compatible = false; + flags_compatible = FALSE; } if ((in_flags & EF_ARM_APCS_FLOAT) != (out_flags & EF_ARM_APCS_FLOAT)) @@ -2310,7 +2303,7 @@ ERROR: %s passes floats in integer regis bfd_archive_filename (ibfd), bfd_get_filename (obfd)); - flags_compatible = false; + flags_compatible = FALSE; } if ((in_flags & EF_ARM_VFP_FLOAT) != (out_flags & EF_ARM_VFP_FLOAT)) @@ -2326,7 +2319,7 @@ ERROR: %s uses FPA instructions, whereas bfd_archive_filename (ibfd), bfd_get_filename (obfd)); - flags_compatible = false; + flags_compatible = FALSE; } #ifdef EF_ARM_SOFT_FLOAT @@ -2351,7 +2344,7 @@ ERROR: %s uses hardware FP, whereas %s u bfd_archive_filename (ibfd), bfd_get_filename (obfd)); - flags_compatible = false; + flags_compatible = FALSE; } } #endif @@ -2381,7 +2374,7 @@ Warning: %s does not support interworkin /* Display the flags field. */ -static boolean +static bfd_boolean elf32_arm_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -2489,7 +2482,7 @@ elf32_arm_print_private_bfd_data (abfd, fputc ('\n', file); - return true; + return TRUE; } static int @@ -2557,7 +2550,7 @@ elf32_arm_gc_mark_hook (sec, info, rel, /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf32_arm_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -2565,29 +2558,29 @@ elf32_arm_gc_sweep_hook (abfd, info, sec const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* We don't support garbage collection of GOT and PLT relocs yet. */ - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. */ -static boolean +static bfd_boolean elf32_arm_check_relocs (abfd, info, sec, relocs) - bfd * abfd; - struct bfd_link_info * info; - asection * sec; - const Elf_Internal_Rela * relocs; + bfd *abfd; + struct bfd_link_info *info; + asection *sec; + const Elf_Internal_Rela *relocs; { - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - struct elf_link_hash_entry ** sym_hashes_end; - const Elf_Internal_Rela * rel; - const Elf_Internal_Rela * rel_end; - bfd * dynobj; - asection * sgot, *srelgot, *sreloc; - bfd_vma * local_got_offsets; + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + struct elf_link_hash_entry **sym_hashes_end; + const Elf_Internal_Rela *rel; + const Elf_Internal_Rela *rel_end; + bfd *dynobj; + asection *sgot, *srelgot, *sreloc; + bfd_vma *local_got_offsets; if (info->relocateable) - return true; + return TRUE; sgot = srelgot = sreloc = NULL; @@ -2624,7 +2617,7 @@ elf32_arm_check_relocs (abfd, info, sec, case R_ARM_GOTPC: elf_hash_table (info)->dynobj = dynobj = abfd; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; break; default: @@ -2661,7 +2654,7 @@ elf32_arm_check_relocs (abfd, info, sec, | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } @@ -2676,7 +2669,7 @@ elf32_arm_check_relocs (abfd, info, sec, /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; srelgot->_raw_size += sizeof (Elf32_External_Rel); } @@ -2693,7 +2686,7 @@ elf32_arm_check_relocs (abfd, info, sec, size *= sizeof (bfd_vma); local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size); if (local_got_offsets == NULL) - return false; + return FALSE; elf_local_got_offsets (abfd) = local_got_offsets; for (i = 0; i < symtab_hdr->sh_info; i++) local_got_offsets[i] = (bfd_vma) -1; @@ -2765,7 +2758,7 @@ elf32_arm_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rel", 4) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -2784,7 +2777,7 @@ elf32_arm_check_relocs (abfd, info, sec, if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } if (sec->flags & SEC_READONLY) info->flags |= DF_TEXTREL; @@ -2816,7 +2809,7 @@ elf32_arm_check_relocs (abfd, info, sec, p = ((struct elf32_arm_pcrel_relocs_copied *) bfd_alloc (dynobj, (bfd_size_type) sizeof * p)); if (p == NULL) - return false; + return FALSE; p->next = eh->pcrel_relocs_copied; eh->pcrel_relocs_copied = p; p->section = sreloc; @@ -2832,59 +2825,59 @@ elf32_arm_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_ARM_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_ARM_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* Find the nearest line to a particular section and offset, for error reporting. This code is a duplicate of the code in elf.c, except that it also accepts STT_ARM_TFUNC as a symbol that names a function. */ -static boolean +static bfd_boolean elf32_arm_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) - bfd * abfd; - asection * section; - asymbol ** symbols; - bfd_vma offset; - const char ** filename_ptr; - const char ** functionname_ptr; - unsigned int * line_ptr; -{ - boolean found; - const char * filename; - asymbol * func; - bfd_vma low_func; - asymbol ** p; + bfd *abfd; + asection *section; + asymbol **symbols; + bfd_vma offset; + const char **filename_ptr; + const char **functionname_ptr; + unsigned int *line_ptr; +{ + bfd_boolean found; + const char *filename; + asymbol *func; + bfd_vma low_func; + asymbol **p; if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr, 0, &elf_tdata (abfd)->dwarf2_find_line_info)) - return true; + return TRUE; if (! _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, &found, filename_ptr, functionname_ptr, line_ptr, &elf_tdata (abfd)->line_info)) - return false; + return FALSE; if (found) - return true; + return TRUE; if (symbols == NULL) - return false; + return FALSE; filename = NULL; func = NULL; @@ -2921,13 +2914,13 @@ elf32_arm_find_nearest_line } if (func == NULL) - return false; + return FALSE; *filename_ptr = filename; *functionname_ptr = bfd_asymbol_name (func); *line_ptr = 0; - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -2936,7 +2929,7 @@ elf32_arm_find_nearest_line change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf32_arm_adjust_dynamic_symbol (info, h) struct bfd_link_info * info; struct elf_link_hash_entry * h; @@ -2980,14 +2973,14 @@ elf32_arm_adjust_dynamic_symbol (info, h instead. */ BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0); h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; - return true; + return TRUE; } /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_get_section_by_name (dynobj, ".plt"); @@ -3027,7 +3020,7 @@ elf32_arm_adjust_dynamic_symbol (info, h BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf32_External_Rel); - return true; + return TRUE; } /* If this is a weak symbol, and there is a real definition, the @@ -3039,7 +3032,7 @@ elf32_arm_adjust_dynamic_symbol (info, h || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -3050,7 +3043,7 @@ elf32_arm_adjust_dynamic_symbol (info, h For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -3090,7 +3083,7 @@ elf32_arm_adjust_dynamic_symbol (info, h if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -3100,20 +3093,20 @@ elf32_arm_adjust_dynamic_symbol (info, h /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf32_arm_size_dynamic_sections (output_bfd, info) bfd * output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info * info; { bfd * dynobj; asection * s; - boolean plt; - boolean relocs; + bfd_boolean plt; + bfd_boolean relocs; dynobj = elf_hash_table (info)->dynobj; BFD_ASSERT (dynobj != NULL); @@ -3153,12 +3146,12 @@ elf32_arm_size_dynamic_sections (output_ /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - plt = false; - relocs = false; + plt = FALSE; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char * name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -3167,7 +3160,7 @@ elf32_arm_size_dynamic_sections (output_ of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strcmp (name, ".plt") == 0) { @@ -3175,12 +3168,12 @@ elf32_arm_size_dynamic_sections (output_ { /* Strip this section if we don't need it; see the comment below. */ - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strncmp (name, ".rel", 4) == 0) @@ -3196,14 +3189,14 @@ elf32_arm_size_dynamic_sections (output_ adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { /* Remember whether there are any reloc sections other than .rel.plt. */ if (strcmp (name, ".rel.plt") != 0) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -3225,7 +3218,7 @@ elf32_arm_size_dynamic_sections (output_ /* Allocate memory for the section contents. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -3241,7 +3234,7 @@ elf32_arm_size_dynamic_sections (output_ if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (plt) @@ -3250,7 +3243,7 @@ elf32_arm_size_dynamic_sections (output_ || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_REL) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -3258,19 +3251,19 @@ elf32_arm_size_dynamic_sections (output_ if ( !add_dynamic_entry (DT_REL, 0) || !add_dynamic_entry (DT_RELSZ, 0) || !add_dynamic_entry (DT_RELENT, sizeof (Elf32_External_Rel))) - return false; + return FALSE; } if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; info->flags |= DF_TEXTREL; } } #undef add_synamic_entry - return true; + return TRUE; } /* This function is called via elf32_arm_link_hash_traverse if we are @@ -3280,7 +3273,7 @@ elf32_arm_size_dynamic_sections (output_ check_relocs routine, but we won't fill them in in the relocate_section routine. */ -static boolean +static bfd_boolean elf32_arm_discard_copies (h, ignore) struct elf32_arm_link_hash_entry * h; PTR ignore ATTRIBUTE_UNUSED; @@ -3292,18 +3285,18 @@ elf32_arm_discard_copies (h, ignore) /* We only discard relocs for symbols defined in a regular object. */ if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - return true; + return TRUE; for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) s->section->_raw_size -= s->count * sizeof (Elf32_External_Rel); - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf32_arm_finish_dynamic_symbol (output_bfd, info, h, sym) bfd * output_bfd; struct bfd_link_info * info; @@ -3321,7 +3314,8 @@ elf32_arm_finish_dynamic_symbol (output_ asection * srel; bfd_vma plt_index; bfd_vma got_offset; - Elf_Internal_Rel rel; + Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -3371,9 +3365,8 @@ elf32_arm_finish_dynamic_symbol (output_ + sgot->output_offset + got_offset); rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_JUMP_SLOT); - bfd_elf32_swap_reloc_out (output_bfd, &rel, - ((Elf32_External_Rel *) srel->contents - + plt_index)); + loc = srel->contents + plt_index * sizeof (Elf32_External_Rel); + bfd_elf32_swap_reloc_out (output_bfd, &rel, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -3394,7 +3387,8 @@ elf32_arm_finish_dynamic_symbol (output_ { asection * sgot; asection * srel; - Elf_Internal_Rel rel; + Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -3420,16 +3414,15 @@ elf32_arm_finish_dynamic_symbol (output_ rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_GLOB_DAT); } - bfd_elf32_swap_reloc_out (output_bfd, &rel, - ((Elf32_External_Rel *) srel->contents - + srel->reloc_count)); - ++srel->reloc_count; + loc = srel->contents + srel->reloc_count++ * sizeof (Elf32_External_Rel); + bfd_elf32_swap_reloc_out (output_bfd, &rel, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection * s; - Elf_Internal_Rel rel; + Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ BFD_ASSERT (h->dynindx != -1 @@ -3444,10 +3437,8 @@ elf32_arm_finish_dynamic_symbol (output_ + h->root.u.def.section->output_section->vma + h->root.u.def.section->output_offset); rel.r_info = ELF32_R_INFO (h->dynindx, R_ARM_COPY); - bfd_elf32_swap_reloc_out (output_bfd, &rel, - ((Elf32_External_Rel *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rel); + bfd_elf32_swap_reloc_out (output_bfd, &rel, loc); } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ @@ -3455,12 +3446,12 @@ elf32_arm_finish_dynamic_symbol (output_ || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf32_arm_finish_dynamic_sections (output_bfd, info) bfd * output_bfd; struct bfd_link_info * info; @@ -3557,12 +3548,12 @@ elf32_arm_finish_dynamic_sections (outpu struct elf_link_hash_entry * eh; eh = elf_link_hash_lookup (elf_hash_table (info), name, - false, false, true); + FALSE, FALSE, TRUE); if (eh != (struct elf_link_hash_entry *) NULL && ELF_ST_TYPE (eh->type) == STT_ARM_TFUNC) { dyn.d_un.d_val |= 1; - bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); + bfd_elf32_swap_dyn_out (output_bfd, &dyn, dyncon); } } break; @@ -3598,7 +3589,7 @@ elf32_arm_finish_dynamic_sections (outpu elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; - return true; + return TRUE; } static void diff -uprN binutils-2.13.90.0.16/bfd/elf32-avr.c binutils-2.13.90.0.18/bfd/elf32-avr.c --- binutils-2.13.90.0.16/bfd/elf32-avr.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-avr.c Mon Dec 16 12:22:51 2002 @@ -27,24 +27,24 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void avr_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static asection *elf32_avr_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_avr_gc_sweep_hook +static bfd_boolean elf32_avr_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_avr_check_relocs +static bfd_boolean elf32_avr_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static bfd_reloc_status_type avr_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); -static boolean elf32_avr_relocate_section +static bfd_boolean elf32_avr_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static void bfd_elf_avr_final_write_processing PARAMS ((bfd *, boolean)); -static boolean elf32_avr_object_p PARAMS ((bfd *)); +static void bfd_elf_avr_final_write_processing PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean elf32_avr_object_p PARAMS ((bfd *)); static reloc_howto_type elf_avr_howto_table[] = { @@ -52,283 +52,283 @@ static reloc_howto_type elf_avr_howto_ta 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_AVR_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 7 bit PC relative relocation. */ HOWTO (R_AVR_7_PCREL, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 7, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 3, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_7_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 13 bit PC relative relocation. */ HOWTO (R_AVR_13_PCREL, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 13, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_13_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfff, /* src_mask */ 0xfff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 16 bit absolute relocation. */ HOWTO (R_AVR_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit absolute relocation for command address. */ HOWTO (R_AVR_16_PM, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_16_PM", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A low 8 bit absolute relocation of 16 bit address. For LDI command. */ HOWTO (R_AVR_LO8_LDI, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_LO8_LDI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A high 8 bit absolute relocation of 16 bit address. For LDI command. */ HOWTO (R_AVR_HI8_LDI, /* type */ 8, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HI8_LDI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A high 6 bit absolute relocation of 22 bit address. For LDI command. */ HOWTO (R_AVR_HH8_LDI, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HH8_LDI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A negative low 8 bit absolute relocation of 16 bit address. For LDI command. */ HOWTO (R_AVR_LO8_LDI_NEG, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_LO8_LDI_NEG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A hegative high 8 bit absolute relocation of 16 bit address. For LDI command. */ HOWTO (R_AVR_HI8_LDI_NEG, /* type */ 8, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HI8_LDI_NEG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A hegative high 6 bit absolute relocation of 22 bit address. For LDI command. */ HOWTO (R_AVR_HH8_LDI_NEG, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HH8_LDI_NEG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A low 8 bit absolute relocation of 24 bit program memory address. For LDI command. */ HOWTO (R_AVR_LO8_LDI_PM, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_LO8_LDI_PM", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A high 8 bit absolute relocation of 16 bit program memory address. For LDI command. */ HOWTO (R_AVR_HI8_LDI_PM, /* type */ 9, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HI8_LDI_PM", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A high 8 bit absolute relocation of 24 bit program memory address. For LDI command. */ HOWTO (R_AVR_HH8_LDI_PM, /* type */ 17, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HH8_LDI_PM", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A low 8 bit absolute relocation of a negative 24 bit program memory address. For LDI command. */ HOWTO (R_AVR_LO8_LDI_PM_NEG, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_LO8_LDI_PM_NEG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A high 8 bit absolute relocation of a negative 16 bit program memory address. For LDI command. */ HOWTO (R_AVR_HI8_LDI_PM_NEG, /* type */ 9, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HI8_LDI_PM_NEG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A high 8 bit absolute relocation of a negative 24 bit program memory address. For LDI command. */ HOWTO (R_AVR_HH8_LDI_PM_NEG, /* type */ 17, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_HH8_LDI_PM_NEG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Relocation for CALL command in ATmega. */ HOWTO (R_AVR_CALL, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 23, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_AVR_CALL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; /* Map BFD reloc types to AVR ELF reloc types. */ @@ -386,7 +386,7 @@ static void avr_info_to_howto_rela (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -428,7 +428,7 @@ elf32_avr_gc_mark_hook (sec, info, rel, return NULL; } -static boolean +static bfd_boolean elf32_avr_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -436,14 +436,14 @@ elf32_avr_gc_sweep_hook (abfd, info, sec const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* We don't use got and plt entries for avr. */ - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean elf32_avr_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -456,7 +456,7 @@ elf32_avr_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -477,7 +477,7 @@ elf32_avr_check_relocs (abfd, info, sec, h = sym_hashes[r_symndx - symtab_hdr->sh_info]; } - return true; + return TRUE; } /* Perform a single relocation. By default we use the standard BFD @@ -702,7 +702,7 @@ avr_final_link_relocate (howto, input_bf } /* Relocate an AVR ELF section. */ -static boolean +static bfd_boolean elf32_avr_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -720,7 +720,7 @@ elf32_avr_relocate_section (output_bfd, Elf_Internal_Rela * relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -782,8 +782,8 @@ elf32_avr_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -805,7 +805,7 @@ elf32_avr_relocate_section (output_bfd, case bfd_reloc_undefined: r = info->callbacks->undefined_symbol - (info, name, input_bfd, input_section, rel->r_offset, true); + (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; case bfd_reloc_outofrange: @@ -830,11 +830,11 @@ elf32_avr_relocate_section (output_bfd, (info, msg, name, input_bfd, input_section, rel->r_offset); if (! r) - return false; + return FALSE; } } - return true; + return TRUE; } /* The final processing done just before writing out a AVR ELF object @@ -844,7 +844,7 @@ elf32_avr_relocate_section (output_bfd, static void bfd_elf_avr_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { unsigned long val; @@ -879,7 +879,7 @@ bfd_elf_avr_final_write_processing (abfd /* Set the right machine number. */ -static boolean +static bfd_boolean elf32_avr_object_p (abfd) bfd *abfd; { diff -uprN binutils-2.13.90.0.16/bfd/elf32-cris.c binutils-2.13.90.0.18/bfd/elf32-cris.c --- binutils-2.13.90.0.16/bfd/elf32-cris.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf32-cris.c Mon Dec 16 12:22:51 2002 @@ -31,15 +31,15 @@ static reloc_howto_type * cris_reloc_typ PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void cris_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean cris_elf_grok_prstatus +static bfd_boolean cris_elf_grok_prstatus PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static boolean cris_elf_grok_psinfo +static bfd_boolean cris_elf_grok_psinfo PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static boolean cris_elf_relocate_section +static bfd_boolean cris_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -47,7 +47,7 @@ static bfd_reloc_status_type cris_final_ PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); -static boolean cris_elf_gc_sweep_hook +static bfd_boolean cris_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -55,42 +55,42 @@ static asection * cris_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean cris_elf_object_p PARAMS ((bfd *)); +static bfd_boolean cris_elf_object_p PARAMS ((bfd *)); -static void cris_elf_final_write_processing PARAMS ((bfd *, boolean)); +static void cris_elf_final_write_processing PARAMS ((bfd *, bfd_boolean)); -static boolean cris_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); +static bfd_boolean cris_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); -static boolean cris_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); +static bfd_boolean cris_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); struct elf_cris_link_hash_entry; -static boolean elf_cris_discard_excess_dso_dynamics +static bfd_boolean elf_cris_discard_excess_dso_dynamics PARAMS ((struct elf_cris_link_hash_entry *, PTR)); -static boolean elf_cris_discard_excess_program_dynamics +static bfd_boolean elf_cris_discard_excess_program_dynamics PARAMS ((struct elf_cris_link_hash_entry *, PTR)); -static boolean elf_cris_adjust_gotplt_to_got +static bfd_boolean elf_cris_adjust_gotplt_to_got PARAMS ((struct elf_cris_link_hash_entry *, PTR)); -static boolean elf_cris_try_fold_plt_to_got +static bfd_boolean elf_cris_try_fold_plt_to_got PARAMS ((struct elf_cris_link_hash_entry *, PTR)); static struct bfd_hash_entry *elf_cris_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *elf_cris_link_hash_table_create PARAMS ((bfd *)); -static boolean elf_cris_adjust_dynamic_symbol +static bfd_boolean elf_cris_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean cris_elf_check_relocs +static bfd_boolean cris_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf_cris_size_dynamic_sections +static bfd_boolean elf_cris_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_cris_finish_dynamic_symbol +static bfd_boolean elf_cris_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_cris_finish_dynamic_sections +static bfd_boolean elf_cris_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static void elf_cris_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); static enum elf_reloc_type_class elf_cris_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); @@ -101,135 +101,135 @@ static reloc_howto_type cris_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit absolute relocation. */ HOWTO (R_CRIS_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit absolute relocation. */ HOWTO (R_CRIS_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. */ HOWTO (R_CRIS_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit PC-relative relocation. */ HOWTO (R_CRIS_8_PCREL, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_8_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000, /* src_mask */ 0x00ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 16 bit PC-relative relocation. */ HOWTO (R_CRIS_16_PCREL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 32 bit PC-relative relocation. */ HOWTO (R_CRIS_32_PCREL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_32_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_CRIS_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_CRIS_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage. */ HOWTO (R_CRIS_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_CRIS_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* This is used only by the dynamic linker. The symbol should exist both in the object being run and in some shared library. The @@ -240,45 +240,45 @@ static reloc_howto_type cris_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_COPY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_CRIS_32, but used when setting global offset table entries. */ HOWTO (R_CRIS_GLOB_DAT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_GLOB_DAT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Marks a procedure linkage table entry for a symbol. */ HOWTO (R_CRIS_JUMP_SLOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_JUMP_SLOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used only by the dynamic linker. When the object is run, this longword is set to the load address of the object, plus the @@ -287,44 +287,44 @@ static reloc_howto_type cris_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_RELATIVE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_CRIS_32, but referring to the GOT table entry for the symbol. */ HOWTO (R_CRIS_16_GOT, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_16_GOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_CRIS_32_GOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_32_GOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_CRIS_32_GOT, but referring to (and requesting a) PLT part of the GOT table for the symbol. */ @@ -332,29 +332,29 @@ static reloc_howto_type cris_elf_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_16_GOTPLT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_CRIS_32_GOTPLT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_32_GOTPLT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32-bit offset from GOT to (local const) symbol: no GOT entry should be necessary. */ @@ -362,15 +362,15 @@ static reloc_howto_type cris_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_32_GOTREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32-bit offset from GOT to entry for this symbol in PLT and request to create PLT entry for symbol. */ @@ -378,15 +378,15 @@ static reloc_howto_type cris_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_32_PLT_GOTREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32-bit offset from PC (location after the relocation) + addend to entry for this symbol in PLT and request to create PLT entry for @@ -395,15 +395,15 @@ static reloc_howto_type cris_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_CRIS_32_PLT_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true) /* pcrel_offset */ + TRUE) /* pcrel_offset */ }; /* Map BFD reloc types to CRIS ELF reloc types. */ @@ -458,7 +458,7 @@ static void cris_info_to_howto_rela (abfd, cache_ptr, dst) bfd * abfd ATTRIBUTE_UNUSED; arelent * cache_ptr; - Elf32_Internal_Rela * dst; + Elf_Internal_Rela * dst; { unsigned int r_type; @@ -469,7 +469,7 @@ cris_info_to_howto_rela (abfd, cache_ptr /* Support for core dump NOTE sections. */ -static boolean +static bfd_boolean cris_elf_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -480,7 +480,7 @@ cris_elf_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 214: /* Linux/CRIS */ /* pr_cursig */ @@ -501,7 +501,7 @@ cris_elf_grok_prstatus (abfd, note) raw_size, note->descpos + offset); } -static boolean +static bfd_boolean cris_elf_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -509,7 +509,7 @@ cris_elf_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 124: /* Linux/CRIS elf_prpsinfo */ elf_tdata (abfd)->core_program @@ -530,7 +530,7 @@ cris_elf_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } /* The name of the dynamic interpreter. This is put in the .interp @@ -659,7 +659,7 @@ struct elf_cris_link_hash_table #define elf_cris_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the CRIS ELF linker hash table from a link_info structure. */ @@ -777,30 +777,30 @@ cris_final_link_relocate (howto, input_b /* Relocate an CRIS ELF section. See elf32-fr30.c, from where this was copied, for further comments. */ -static boolean +static bfd_boolean cris_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) - bfd * output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * relocs; - Elf_Internal_Sym * local_syms; - asection ** local_sections; + bfd *output_bfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; { bfd *dynobj; - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; bfd_vma *local_got_offsets; asection *sgot; asection *splt; asection *sreloc; - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; local_got_offsets = elf_local_got_offsets (input_bfd); @@ -820,15 +820,15 @@ cris_elf_relocate_section (output_bfd, i for (rel = relocs; rel < relend; rel ++) { - reloc_howto_type * howto; - unsigned long r_symndx; - Elf_Internal_Sym * sym; - asection * sec; - struct elf_link_hash_entry * h; - bfd_vma relocation; - bfd_reloc_status_type r; - const char * symname = NULL; - int r_type; + reloc_howto_type *howto; + unsigned long r_symndx; + Elf_Internal_Sym *sym; + asection *sec; + struct elf_link_hash_entry *h; + bfd_vma relocation; + bfd_reloc_status_type r; + const char *symname = NULL; + int r_type; r_type = ELF32_R_TYPE (rel->r_info); @@ -859,7 +859,7 @@ cris_elf_relocate_section (output_bfd, i /* It seems this can happen with erroneous or unsupported input (mixing a.out and elf in an archive, for example.) */ if (sym_hashes == NULL) - return false; + return FALSE; h = sym_hashes [r_symndx - symtab_hdr->sh_info]; @@ -934,7 +934,7 @@ cris_elf_relocate_section (output_bfd, i symname, bfd_get_section_name (input_bfd, input_section)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } else if (h->root.type == bfd_link_hash_undefweak) @@ -951,7 +951,7 @@ cris_elf_relocate_section (output_bfd, i input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } @@ -1001,7 +1001,7 @@ cris_elf_relocate_section (output_bfd, i do; this is probably an internal error. But it is true that we didn't like that particular input. */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Fall through. */ @@ -1079,22 +1079,21 @@ cris_elf_relocate_section (output_bfd, i if (info->shared) { - asection *srelgot; + asection *s; Elf_Internal_Rela outrel; + bfd_byte *loc; - srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); - BFD_ASSERT (srelgot != NULL); + s = bfd_get_section_by_name (dynobj, ".rela.got"); + BFD_ASSERT (s != NULL); outrel.r_offset = (sgot->output_section->vma + sgot->output_offset + off); outrel.r_info = ELF32_R_INFO (0, R_CRIS_RELATIVE); outrel.r_addend = relocation; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } local_got_offsets[r_symndx] |= 1; @@ -1125,7 +1124,7 @@ cris_elf_relocate_section (output_bfd, i bfd_get_section_name (input_bfd, input_section)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } break; @@ -1141,7 +1140,7 @@ cris_elf_relocate_section (output_bfd, i symname, bfd_get_section_name (input_bfd, input_section)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* This can happen if we get a link error with the input ELF @@ -1155,7 +1154,7 @@ cris_elf_relocate_section (output_bfd, i cris_elf_howto_table[r_type].name, bfd_get_section_name (input_bfd, input_section)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* This relocation is like a PC-relative one, except the @@ -1237,7 +1236,8 @@ cris_elf_relocate_section (output_bfd, i & ELF_LINK_HASH_DEF_REGULAR) == 0))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_byte *loc; + bfd_boolean skip, relocate; /* When generating a shared object, these relocations are copied into the output file to be resolved at run @@ -1252,7 +1252,7 @@ cris_elf_relocate_section (output_bfd, i elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -1273,20 +1273,20 @@ cris_elf_relocate_section (output_bfd, i name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -1307,7 +1307,7 @@ cris_elf_relocate_section (output_bfd, i { if (r_type == R_CRIS_32) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (0, R_CRIS_RELATIVE); outrel.r_addend = relocation + rel->r_addend; } @@ -1329,7 +1329,7 @@ cris_elf_relocate_section (output_bfd, i else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -1345,11 +1345,9 @@ cris_elf_relocate_section (output_bfd, i } } - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); /* This reloc will be computed at runtime, so there's no need to do anything now, except for R_CRIS_32 relocations @@ -1379,7 +1377,7 @@ cris_elf_relocate_section (output_bfd, i case bfd_reloc_undefined: r = info->callbacks->undefined_symbol (info, symname, input_bfd, input_section, rel->r_offset, - true); + TRUE); break; case bfd_reloc_outofrange: @@ -1404,17 +1402,17 @@ cris_elf_relocate_section (output_bfd, i (info, msg, symname, input_bfd, input_section, rel->r_offset); if (! r) - return false; + return FALSE; } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf_cris_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -1437,7 +1435,8 @@ elf_cris_finish_dynamic_symbol (output_b bfd_vma gotplt_offset = ((struct elf_cris_link_hash_entry *) h)->gotplt_offset; Elf_Internal_Rela rela; - boolean has_gotplt = gotplt_offset != 0; + bfd_byte *loc; + bfd_boolean has_gotplt = gotplt_offset != 0; /* Get the index in the procedure linkage table which corresponds to this symbol. This is the index of this symbol @@ -1517,9 +1516,8 @@ elf_cris_finish_dynamic_symbol (output_b + got_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_CRIS_JUMP_SLOT); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + gotplt_index)); + loc = srela->contents + gotplt_index * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) @@ -1554,6 +1552,7 @@ elf_cris_finish_dynamic_symbol (output_b asection *sgot; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; bfd_byte *where; /* This symbol has an entry in the global offset table. Set it up. */ @@ -1587,16 +1586,16 @@ elf_cris_finish_dynamic_symbol (output_b rela.r_addend = 0; } - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + srela->reloc_count)); - ++srela->reloc_count; + loc = srela->contents; + loc += srela->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection *s; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -1613,10 +1612,8 @@ elf_cris_finish_dynamic_symbol (output_b + h->root.u.def.section->output_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_CRIS_COPY); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ @@ -1624,12 +1621,12 @@ elf_cris_finish_dynamic_symbol (output_b || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf_cris_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -1749,7 +1746,7 @@ elf_cris_finish_dynamic_sections (output elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -1757,11 +1754,11 @@ elf_cris_finish_dynamic_sections (output static asection * cris_elf_gc_mark_hook (sec, info, rel, h, sym) - asection * sec; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - Elf_Internal_Rela * rel; - struct elf_link_hash_entry * h; - Elf_Internal_Sym * sym; + asection *sec; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + Elf_Internal_Rela *rel; + struct elf_link_hash_entry *h; + Elf_Internal_Sym *sym; { if (h != NULL) { @@ -1794,12 +1791,12 @@ cris_elf_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean cris_elf_gc_sweep_hook (abfd, info, sec, relocs) - bfd * abfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - asection * sec ATTRIBUTE_UNUSED; - const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + asection *sec ATTRIBUTE_UNUSED; + const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; @@ -1817,7 +1814,7 @@ cris_elf_gc_sweep_hook (abfd, info, sec, dynobj = elf_hash_table (info)->dynobj; if (dynobj == NULL) - return true; + return TRUE; sgot = bfd_get_section_by_name (dynobj, ".got"); srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); @@ -1895,7 +1892,7 @@ cris_elf_gc_sweep_hook (abfd, info, sec, } } - return true; + return TRUE; } /* Make sure we emit a GOT entry if the symbol was supposed to have a PLT @@ -1905,7 +1902,7 @@ cris_elf_gc_sweep_hook (abfd, info, sec, or elf_cris_size_dynamic_sections if no dynamic sections will be created (we're only linking static objects). */ -static boolean +static bfd_boolean elf_cris_adjust_gotplt_to_got (h, p) struct elf_cris_link_hash_entry *h; PTR p; @@ -1920,7 +1917,7 @@ elf_cris_adjust_gotplt_to_got (h, p) /* If nobody wanted a GOTPLT with this symbol, we're done. */ if (h->gotplt_refcount <= 0) - return true; + return TRUE; if (h->root.got.refcount > 0) { @@ -1953,7 +1950,7 @@ elf_cris_adjust_gotplt_to_got (h, p) srelgot->_raw_size += sizeof (Elf32_External_Rela); } - return true; + return TRUE; } /* Try to fold PLT entries with GOT entries. There are two cases when we @@ -1974,7 +1971,7 @@ elf_cris_adjust_gotplt_to_got (h, p) version scripts. The differing cases are handled by elf_cris_hide_symbol. */ -static boolean +static bfd_boolean elf_cris_try_fold_plt_to_got (h, p) struct elf_cris_link_hash_entry *h; PTR p; @@ -1985,7 +1982,7 @@ elf_cris_try_fold_plt_to_got (h, p) other reference so there's nothing to do. Likewise if there are no PLT references; GOTPLT references included. */ if (h->root.got.refcount <= 0 || h->root.plt.refcount <= 0) - return true; + return TRUE; /* GOTPLT relocs are supposed to be included into the PLT refcount. */ BFD_ASSERT (h->gotplt_refcount <= h->root.plt.refcount); @@ -1995,13 +1992,13 @@ elf_cris_try_fold_plt_to_got (h, p) /* The only PLT references are GOTPLT references, and there are GOT references. Convert PLT to GOT references. */ if (! elf_cris_adjust_gotplt_to_got (h, info)) - return false; + return FALSE; /* Clear the PLT references, so no PLT will be created. */ h->root.plt.offset = (bfd_vma) -1; } - return true; + return TRUE; } /* Our own version of hide_symbol, so that we can adjust a GOTPLT reloc @@ -2012,7 +2009,7 @@ static void elf_cris_hide_symbol (info, h, force_local) struct bfd_link_info *info; struct elf_link_hash_entry *h; - boolean force_local; + bfd_boolean force_local; { elf_cris_adjust_gotplt_to_got ((struct elf_cris_link_hash_entry *) h, info); @@ -2025,7 +2022,7 @@ elf_cris_hide_symbol (info, h, force_loc change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf_cris_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -2080,21 +2077,21 @@ elf_cris_adjust_dynamic_symbol (info, h) PLT entry, get rid of the PLT. */ if (! elf_cris_try_fold_plt_to_got ((struct elf_cris_link_hash_entry *) h, info)) - return false; + return FALSE; /* GC or folding may have rendered this entry unused. */ if (h->plt.refcount <= 0) { h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; h->plt.offset = (bfd_vma) -1; - return true; + return TRUE; } /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_get_section_by_name (dynobj, ".plt"); @@ -2138,7 +2135,7 @@ elf_cris_adjust_dynamic_symbol (info, h) /* Make room for this entry. */ s->_raw_size += PLT_ENTRY_SIZE; - return true; + return TRUE; } /* No GOT reference for this symbol; prepare for an ordinary PLT. */ @@ -2163,7 +2160,7 @@ elf_cris_adjust_dynamic_symbol (info, h) BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf32_External_Rela); - return true; + return TRUE; } /* Reinitialize the plt offset now that it is not used as a reference @@ -2179,7 +2176,7 @@ elf_cris_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -2190,12 +2187,12 @@ elf_cris_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -2239,7 +2236,7 @@ elf_cris_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (!bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -2249,12 +2246,12 @@ elf_cris_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. */ -static boolean +static bfd_boolean cris_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -2272,7 +2269,7 @@ cris_elf_check_relocs (abfd, info, sec, asection *sreloc; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -2320,7 +2317,7 @@ cris_elf_check_relocs (abfd, info, sec, /* Create the .got section, so we can assume it's always present whenever there's a dynobj. */ if (!_bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; } break; @@ -2359,7 +2356,7 @@ cris_elf_check_relocs (abfd, info, sec, | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } /* Fall through. */ @@ -2380,7 +2377,7 @@ cris_elf_check_relocs (abfd, info, sec, amt *= sizeof (bfd_signed_vma); local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, amt)); if (local_got_refcounts == NULL) - return false; + return FALSE; local_got_refcounts++; elf_local_got_refcounts (abfd) = local_got_refcounts; @@ -2418,7 +2415,7 @@ cris_elf_check_relocs (abfd, info, sec, if (h->dynindx == -1) { if (!bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* Allocate space in the .got section. */ @@ -2569,7 +2566,7 @@ cris_elf_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -2588,7 +2585,7 @@ cris_elf_check_relocs (abfd, info, sec, | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } if (sec->flags & SEC_READONLY) info->flags |= DF_TEXTREL; @@ -2620,7 +2617,7 @@ cris_elf_check_relocs (abfd, info, sec, p = ((struct elf_cris_pcrel_relocs_copied *) bfd_alloc (dynobj, (bfd_size_type) sizeof *p)); if (p == NULL) - return false; + return FALSE; p->next = eh->pcrel_relocs_copied; eh->pcrel_relocs_copied = p; p->section = sreloc; @@ -2635,37 +2632,37 @@ cris_elf_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_CRIS_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_CRIS_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; default: /* Other relocs do not appear here. */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf_cris_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean plt; - boolean relocs; + bfd_boolean plt; + bfd_boolean relocs; dynobj = elf_hash_table (info)->dynobj; BFD_ASSERT (dynobj != NULL); @@ -2717,12 +2714,12 @@ elf_cris_size_dynamic_sections (output_b /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - plt = false; - relocs = false; + plt = FALSE; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -2731,7 +2728,7 @@ elf_cris_size_dynamic_sections (output_b of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strcmp (name, ".plt") == 0) { @@ -2739,12 +2736,12 @@ elf_cris_size_dynamic_sections (output_b { /* Strip this section if we don't need it; see the comment below. */ - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strncmp (name, ".rela", 5) == 0) @@ -2760,14 +2757,14 @@ elf_cris_size_dynamic_sections (output_b adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { /* Remember whether there are any reloc sections other than .rela.plt. */ if (strcmp (name, ".rela.plt") != 0) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -2793,7 +2790,7 @@ elf_cris_size_dynamic_sections (output_b this will make entries have the type R_CRIS_NONE. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -2809,7 +2806,7 @@ elf_cris_size_dynamic_sections (output_b if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (plt) @@ -2818,7 +2815,7 @@ elf_cris_size_dynamic_sections (output_b || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -2826,19 +2823,19 @@ elf_cris_size_dynamic_sections (output_b if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; } if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; info->flags |= DF_TEXTREL; } } #undef add_dynamic_entry - return true; + return TRUE; } /* This function is called via elf_cris_link_hash_traverse if we are @@ -2850,7 +2847,7 @@ elf_cris_size_dynamic_sections (output_b check_relocs routine, but we won't fill them in in the relocate_section routine. */ -static boolean +static bfd_boolean elf_cris_discard_excess_dso_dynamics (h, inf) struct elf_cris_link_hash_entry *h; PTR inf; @@ -2872,14 +2869,14 @@ elf_cris_discard_excess_dso_dynamics (h, s->section->_raw_size -= s->count * sizeof (Elf32_External_Rela); } - return true; + return TRUE; } /* This function is called via elf_cris_link_hash_traverse if we are *not* creating a shared object. We discard space for relocs for symbols put in the .got, but which we found we do not have to resolve at run-time. */ -static boolean +static bfd_boolean elf_cris_discard_excess_program_dynamics (h, inf) struct elf_cris_link_hash_entry *h; PTR inf; @@ -2927,13 +2924,13 @@ elf_cris_discard_excess_program_dynamics } } - return true; + return TRUE; } /* Reject a file depending on presence and expectation of prefixed underscores on symbols. */ -static boolean +static bfd_boolean cris_elf_object_p (abfd) bfd *abfd; { @@ -2948,7 +2945,7 @@ cris_elf_object_p (abfd) static void cris_elf_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { if (bfd_get_symbol_leading_char (abfd) == '_') elf_elfheader (abfd)->e_flags |= EF_CRIS_UNDERSCORE; @@ -2958,7 +2955,7 @@ cris_elf_final_write_processing (abfd, l /* Display the flags field. */ -static boolean +static bfd_boolean cris_elf_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -2975,12 +2972,12 @@ cris_elf_print_private_bfd_data (abfd, p fprintf (file, _(" [symbols have a _ prefix]")); fputc ('\n', file); - return true; + return TRUE; } /* Don't mix files with and without a leading underscore. */ -static boolean +static bfd_boolean cris_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -2988,19 +2985,19 @@ cris_elf_merge_private_bfd_data (ibfd, o flagword old_flags, new_flags; if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; if (! elf_flags_init (obfd)) { /* This happens when ld starts out with a 'blank' output file. */ - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; /* Set flags according to current bfd_target. */ - cris_elf_final_write_processing (obfd, false); + cris_elf_final_write_processing (obfd, FALSE); } old_flags = elf_elfheader (obfd)->e_flags; @@ -3015,10 +3012,10 @@ cris_elf_merge_private_bfd_data (ibfd, o : _("%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"), bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/elf32-d10v.c binutils-2.13.90.0.18/bfd/elf32-d10v.c --- binutils-2.13.90.0.16/bfd/elf32-d10v.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-d10v.c Mon Dec 16 12:22:51 2002 @@ -27,17 +27,17 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void d10v_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static asection * elf32_d10v_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_d10v_gc_sweep_hook +static bfd_boolean elf32_d10v_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_d10v_check_relocs +static bfd_boolean elf32_d10v_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_d10v_relocate_section +static bfd_boolean elf32_d10v_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -52,15 +52,15 @@ static reloc_howto_type elf_d10v_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D10V_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An PC Relative 10-bit relocation, shifted by 2 */ /* right container */ @@ -68,15 +68,15 @@ static reloc_howto_type elf_d10v_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 7, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D10V_10_PCREL_R", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* An PC Relative 10-bit relocation, shifted by 2 */ /* left container */ @@ -84,105 +84,105 @@ static reloc_howto_type elf_d10v_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 7, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 15, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D10V_10_PCREL_L", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x07f8000, /* src_mask */ 0x07f8000, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 16 bit absolute relocation */ HOWTO (R_D10V_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D10V_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 18 bit absolute relocation, right shifted 2 */ HOWTO (R_D10V_18, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D10V_18", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 18 bit relocation, right shifted by 2 */ HOWTO (R_D10V_18_PCREL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 15, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D10V_18_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 32 bit absolute relocation */ HOWTO (R_D10V_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D10V_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_D10V_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_D10V_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_D10V_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_D10V_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to D10V ELF reloc types. */ @@ -230,7 +230,7 @@ static void d10v_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -276,7 +276,7 @@ elf32_d10v_gc_mark_hook (sec, info, rel, return NULL; } -static boolean +static bfd_boolean elf32_d10v_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -284,14 +284,14 @@ elf32_d10v_gc_sweep_hook (abfd, info, se const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* we don't use got and plt entries for d10v */ - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean elf32_d10v_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -304,7 +304,7 @@ elf32_d10v_check_relocs (abfd, info, sec const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -330,23 +330,23 @@ elf32_d10v_check_relocs (abfd, info, sec Reconstruct it for later use during GC. */ case R_D10V_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_D10V_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* Relocate a D10V ELF section. */ -static boolean +static bfd_boolean elf32_d10v_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -437,8 +437,8 @@ elf32_d10v_relocate_section (output_bfd, { if (!((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -467,14 +467,14 @@ elf32_d10v_relocate_section (output_bfd, if (!((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (!((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - rel->r_offset, true))) - return false; + rel->r_offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -497,13 +497,13 @@ elf32_d10v_relocate_section (output_bfd, if (!((*info->callbacks->warning) (info, msg, name, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; } } } - return true; + return TRUE; } #define ELF_ARCH bfd_arch_d10v #define ELF_MACHINE_CODE EM_D10V diff -uprN binutils-2.13.90.0.16/bfd/elf32-d30v.c binutils-2.13.90.0.18/bfd/elf32-d30v.c --- binutils-2.13.90.0.16/bfd/elf32-d30v.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/elf32-d30v.c Mon Dec 16 12:22:51 2002 @@ -28,9 +28,9 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void d30v_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void d30v_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static bfd_reloc_status_type bfd_elf_d30v_reloc PARAMS (( bfd *abfd, arelent *reloc_entry, @@ -55,195 +55,195 @@ static reloc_howto_type elf_d30v_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D30V_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 6 bit absolute relocation */ HOWTO (R_D30V_6, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D30V_6", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3f, /* src_mask */ 0x3f, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 9 bit relocation, right shifted by 3 */ HOWTO (R_D30V_9_PCREL, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_d30v_reloc_21, /* special_function */ "R_D30V_9_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3f, /* src_mask */ 0x3f, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 9 bit relocation, right shifted by 3 */ HOWTO (R_D30V_9_PCREL_R, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_d30v_reloc_21, /* special_function */ "R_D30V_9_PCREL_R", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3f, /* src_mask */ 0x3f, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* An absolute 15 bit relocation, right shifted by 3 */ HOWTO (R_D30V_15, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D30V_15", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfff, /* src_mask */ 0xfff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 15 bit relocation, right shifted by 3 */ HOWTO (R_D30V_15_PCREL, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_d30v_reloc_21, /* special_function */ "R_D30V_15_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfff, /* src_mask */ 0xfff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 15 bit relocation, right shifted by 3 */ HOWTO (R_D30V_15_PCREL_R, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_d30v_reloc_21, /* special_function */ "R_D30V_15_PCREL_R", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfff, /* src_mask */ 0xfff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* An absolute 21 bit relocation, right shifted by 3 */ HOWTO (R_D30V_21, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 18, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_D30V_21", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3ffff, /* src_mask */ 0x3ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 21 bit relocation, right shifted by 3 */ HOWTO (R_D30V_21_PCREL, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 18, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_d30v_reloc_21, /* special_function */ "R_D30V_21_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3ffff, /* src_mask */ 0x3ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 21 bit relocation, right shifted by 3, in the Right container */ HOWTO (R_D30V_21_PCREL_R, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 18, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_d30v_reloc_21, /* special_function */ "R_D30V_21_PCREL_R", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3ffff, /* src_mask */ 0x3ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A D30V 32 bit absolute relocation */ HOWTO (R_D30V_32, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_d30v_reloc, /* special_function */ "R_D30V_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 32 bit relocation */ HOWTO (R_D30V_32_PCREL, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_d30v_reloc, /* special_function */ "R_D30V_32_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A regular 32 bit absolute relocation */ HOWTO (R_D30V_32_NORMAL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_D30V_32_NORMAL", /* name */ - false, /* partial_inplace */ + "R_D30V_32_NORMAL", /* name */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -522,7 +522,7 @@ static void d30v_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -537,7 +537,7 @@ static void d30v_info_to_howto_rela (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; diff -uprN binutils-2.13.90.0.16/bfd/elf32-dlx.c binutils-2.13.90.0.18/bfd/elf32-dlx.c --- binutils-2.13.90.0.16/bfd/elf32-dlx.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.18/bfd/elf32-dlx.c Mon Dec 16 12:22:51 2002 @@ -25,12 +25,13 @@ int set_dlx_skip_hi16_flag PARAMS ((int)); -static boolean elf32_dlx_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); +static bfd_boolean elf32_dlx_check_relocs + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); static void elf32_dlx_info_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void elf32_dlx_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static bfd_reloc_status_type elf32_dlx_relocate16 PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type elf32_dlx_relocate26 @@ -57,45 +58,45 @@ static reloc_howto_type dlx_elf_howto_ta 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_DLX_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 8 bit relocation. */ HOWTO (R_DLX_RELOC_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_DLX_RELOC_8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit relocation. */ HOWTO (R_DLX_RELOC_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_DLX_RELOC_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #if 0 /* 26 bit jump address. */ @@ -103,17 +104,17 @@ static reloc_howto_type dlx_elf_howto_ta 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ /* This needs complex overflow detection, because the upper four bits must match the PC + 4. */ bfd_elf_generic_reloc, /* special_function */ "R_DLX_RELOC_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffffff, /* src_mask */ 0x3ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #endif /* 32 bit relocation. */ @@ -121,45 +122,45 @@ static reloc_howto_type dlx_elf_howto_ta 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_DLX_RELOC_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_DLX_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ NULL, /* special_function */ "R_DLX_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_DLX_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn,/* special_function */ "R_DLX_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; /* 16 bit offset for pc-relative branches. */ @@ -168,15 +169,15 @@ HOWTO (R_DLX_RELOC_16_PCREL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ elf32_dlx_relocate16, /* special_function */ "R_DLX_RELOC_16_PCREL",/* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* 26 bit offset for pc-relative branches. */ static reloc_howto_type elf_dlx_gnu_rel26_s2 = @@ -184,15 +185,15 @@ HOWTO (R_DLX_RELOC_26_PCREL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ elf32_dlx_relocate26, /* special_function */ "R_DLX_RELOC_26_PCREL",/* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* High 16 bits of symbol value. */ static reloc_howto_type elf_dlx_reloc_16_hi = @@ -200,15 +201,15 @@ HOWTO (R_DLX_RELOC_16_HI, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_dlx_elf_hi16_reloc,/* special_function */ "R_DLX_RELOC_16_HI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xFFFF, /* src_mask */ 0xffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* Low 16 bits of symbol value. */ static reloc_howto_type elf_dlx_reloc_16_lo = @@ -216,15 +217,15 @@ HOWTO (R_DLX_RELOC_16_LO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_DLX_RELOC_16_LO", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* The gas default beheaver is not to preform the %hi modifier so that the @@ -519,7 +520,7 @@ static const struct elf_reloc_map dlx_re Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean elf32_dlx_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -532,7 +533,7 @@ elf32_dlx_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -558,19 +559,19 @@ elf32_dlx_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_DLX_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_DLX_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* Given a BFD reloc type, return a howto structure. */ @@ -632,7 +633,7 @@ static void elf32_dlx_info_to_howto (abfd, cache_ptr, dst) bfd * abfd ATTRIBUTE_UNUSED; arelent * cache_ptr ATTRIBUTE_UNUSED; - Elf32_Internal_Rela * dst ATTRIBUTE_UNUSED; + Elf_Internal_Rela * dst ATTRIBUTE_UNUSED; { abort (); } @@ -641,7 +642,7 @@ static void elf32_dlx_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; diff -uprN binutils-2.13.90.0.16/bfd/elf32-fr30.c binutils-2.13.90.0.18/bfd/elf32-fr30.c --- binutils-2.13.90.0.16/bfd/elf32-fr30.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-fr30.c Mon Dec 16 12:22:51 2002 @@ -31,20 +31,20 @@ static bfd_reloc_status_type fr30_elf_i3 static reloc_howto_type * fr30_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void fr30_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean fr30_elf_relocate_section + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean fr30_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static bfd_reloc_status_type fr30_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); -static boolean fr30_elf_gc_sweep_hook +static bfd_boolean fr30_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection * fr30_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean fr30_elf_check_relocs +static bfd_boolean fr30_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -55,194 +55,194 @@ static reloc_howto_type fr30_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FR30_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit absolute relocation. */ HOWTO (R_FR30_8, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 4, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FR30_8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000, /* src_mask */ 0x0ff0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 20 bit absolute relocation. */ HOWTO (R_FR30_20, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 20, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ fr30_elf_i20_reloc, /* special_function */ "R_FR30_20", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x00f0ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. */ HOWTO (R_FR30_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FR30_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00000000, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit into 48 bits absolute relocation. */ HOWTO (R_FR30_48, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ fr30_elf_i32_reloc, /* special_function */ "R_FR30_48", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00000000, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 6 bit absolute relocation. */ HOWTO (R_FR30_6_IN_4, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 4, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FR30_6_IN_4", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000, /* src_mask */ 0x00f0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit absolute relocation. */ HOWTO (R_FR30_8_IN_8, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 4, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc,/* special_function */ "R_FR30_8_IN_8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000, /* src_mask */ 0x0ff0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 9 bit absolute relocation. */ HOWTO (R_FR30_9_IN_8, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 9, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 4, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc,/* special_function */ "R_FR30_9_IN_8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000, /* src_mask */ 0x0ff0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 10 bit absolute relocation. */ HOWTO (R_FR30_10_IN_8, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 10, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 4, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc,/* special_function */ "R_FR30_10_IN_8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000, /* src_mask */ 0x0ff0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A PC relative 9 bit relocation, right shifted by 1. */ HOWTO (R_FR30_9_PCREL, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 9, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FR30_9_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A PC relative 12 bit relocation, right shifted by 1. */ HOWTO (R_FR30_12_PCREL, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FR30_12_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000, /* src_mask */ 0x07ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_FR30_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_FR30_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_FR30_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_FR30_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* Utility to actually perform an R_FR30_20 reloc. */ @@ -250,15 +250,15 @@ static reloc_howto_type fr30_elf_howto_t static bfd_reloc_status_type fr30_elf_i20_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message) - bfd * abfd; - arelent * reloc_entry; - asymbol * symbol; - PTR data; - asection * input_section; - bfd * output_bfd; - char ** error_message ATTRIBUTE_UNUSED; + bfd *abfd; + arelent *reloc_entry; + asymbol *symbol; + PTR data; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; { - bfd_vma relocation; + bfd_vma relocation; unsigned long x; /* This part is from bfd_elf_generic_reloc. */ @@ -296,15 +296,15 @@ fr30_elf_i20_reloc (abfd, reloc_entry, s static bfd_reloc_status_type fr30_elf_i32_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message) - bfd * abfd; - arelent * reloc_entry; - asymbol * symbol; - PTR data; - asection * input_section; - bfd * output_bfd; - char ** error_message ATTRIBUTE_UNUSED; + bfd *abfd; + arelent *reloc_entry; + asymbol *symbol; + PTR data; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; { - bfd_vma relocation; + bfd_vma relocation; /* This part is from bfd_elf_generic_reloc. */ if (output_bfd != (bfd *) NULL @@ -358,7 +358,7 @@ static const struct fr30_reloc_map fr30_ static reloc_howto_type * fr30_reloc_type_lookup (abfd, code) - bfd * abfd ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; bfd_reloc_code_real_type code; { unsigned int i; @@ -375,9 +375,9 @@ fr30_reloc_type_lookup (abfd, code) static void fr30_info_to_howto_rela (abfd, cache_ptr, dst) - bfd * abfd ATTRIBUTE_UNUSED; - arelent * cache_ptr; - Elf32_Internal_Rela * dst; + bfd *abfd ATTRIBUTE_UNUSED; + arelent *cache_ptr; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -390,17 +390,18 @@ fr30_info_to_howto_rela (abfd, cache_ptr routines, but a few relocs, we have to do them ourselves. */ static bfd_reloc_status_type -fr30_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation) - reloc_howto_type * howto; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * rel; - bfd_vma relocation; +fr30_final_link_relocate (howto, input_bfd, input_section, contents, rel, + relocation) + reloc_howto_type *howto; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *rel; + bfd_vma relocation; { bfd_reloc_status_type r = bfd_reloc_ok; - bfd_vma x; - bfd_signed_vma srel; + bfd_vma x; + bfd_signed_vma srel; switch (howto->type) { @@ -497,25 +498,25 @@ fr30_final_link_relocate (howto, input_b section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) - bfd * output_bfd; - struct bfd_link_info * info; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * relocs; - Elf_Internal_Sym * local_syms; - asection ** local_sections; -{ - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; + bfd *output_bfd; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; +{ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -523,15 +524,15 @@ fr30_elf_relocate_section (output_bfd, i for (rel = relocs; rel < relend; rel ++) { - reloc_howto_type * howto; - unsigned long r_symndx; - Elf_Internal_Sym * sym; - asection * sec; - struct elf_link_hash_entry * h; - bfd_vma relocation; - bfd_reloc_status_type r; - const char * name = NULL; - int r_type; + reloc_howto_type *howto; + unsigned long r_symndx; + Elf_Internal_Sym *sym; + asection *sec; + struct elf_link_hash_entry *h; + bfd_vma relocation; + bfd_reloc_status_type r; + const char *name = NULL; + int r_type; r_type = ELF32_R_TYPE (rel->r_info); @@ -598,8 +599,8 @@ fr30_elf_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; #if 0 fprintf (stderr, "unknown: name: %s\n", name); #endif @@ -625,7 +626,7 @@ fr30_elf_relocate_section (output_bfd, i case bfd_reloc_undefined: r = info->callbacks->undefined_symbol (info, name, input_bfd, input_section, rel->r_offset, - true); + TRUE); break; case bfd_reloc_outofrange: @@ -650,11 +651,11 @@ fr30_elf_relocate_section (output_bfd, i (info, msg, name, input_bfd, input_section, rel->r_offset); if (! r) - return false; + return FALSE; } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -662,11 +663,11 @@ fr30_elf_relocate_section (output_bfd, i static asection * fr30_elf_gc_mark_hook (sec, info, rel, h, sym) - asection * sec; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - Elf_Internal_Rela * rel; - struct elf_link_hash_entry * h; - Elf_Internal_Sym * sym; + asection *sec; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + Elf_Internal_Rela *rel; + struct elf_link_hash_entry *h; + Elf_Internal_Sym * sym; { if (h != NULL) { @@ -699,21 +700,21 @@ fr30_elf_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean fr30_elf_gc_sweep_hook (abfd, info, sec, relocs) - bfd * abfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - asection * sec ATTRIBUTE_UNUSED; - const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + asection *sec ATTRIBUTE_UNUSED; + const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean fr30_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -726,7 +727,7 @@ fr30_elf_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -752,19 +753,19 @@ fr30_elf_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_FR30_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_FR30_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } #define ELF_ARCH bfd_arch_fr30 diff -uprN binutils-2.13.90.0.16/bfd/elf32-frv.c binutils-2.13.90.0.18/bfd/elf32-frv.c --- binutils-2.13.90.0.16/bfd/elf32-frv.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-frv.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* FRV-specific support for 32-bit ELF. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -31,35 +31,51 @@ static bfd_reloc_status_type elf32_frv_r static bfd_reloc_status_type elf32_frv_relocate_label24 PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); static bfd_reloc_status_type elf32_frv_relocate_gprel12 - PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); + PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, + bfd_byte *, bfd_vma)); static bfd_reloc_status_type elf32_frv_relocate_gprelu12 - PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); + PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, + bfd_byte *, bfd_vma)); static bfd_reloc_status_type elf32_frv_relocate_gprello - PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); + PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, + bfd_byte *, bfd_vma)); static bfd_reloc_status_type elf32_frv_relocate_gprelhi - PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); + PARAMS ((struct bfd_link_info *, bfd *, asection *, Elf_Internal_Rela *, + bfd_byte *, bfd_vma)); static reloc_howto_type *frv_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static void frv_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean elf32_frv_relocate_section - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf32_frv_add_symbol_hook - PARAMS (( bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); +static void frv_info_to_howto_rela + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean elf32_frv_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); +static bfd_boolean elf32_frv_add_symbol_hook + PARAMS (( bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, + const char **, flagword *, asection **, bfd_vma *)); static bfd_reloc_status_type frv_final_link_relocate - PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); -static boolean elf32_frv_gc_sweep_hook - PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); + PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, bfd_vma)); +static bfd_boolean elf32_frv_gc_sweep_hook + PARAMS ((bfd *, struct bfd_link_info *, asection *, const + Elf_Internal_Rela *)); static asection * elf32_frv_gc_mark_hook - PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_frv_check_relocs - PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static int elf32_frv_machine PARAMS ((bfd *)); -static boolean elf32_frv_object_p PARAMS ((bfd *)); -static boolean frv_elf_set_private_flags PARAMS ((bfd *, flagword)); -static boolean frv_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean frv_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean frv_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *)); +static bfd_boolean elf32_frv_check_relocs + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); +static int elf32_frv_machine + PARAMS ((bfd *)); +static bfd_boolean elf32_frv_object_p + PARAMS ((bfd *)); +static bfd_boolean frv_elf_set_private_flags + PARAMS ((bfd *, flagword)); +static bfd_boolean frv_elf_copy_private_bfd_data + PARAMS ((bfd *, bfd *)); +static bfd_boolean frv_elf_merge_private_bfd_data + PARAMS ((bfd *, bfd *)); +static bfd_boolean frv_elf_print_private_bfd_data + PARAMS ((bfd *, PTR)); static reloc_howto_type elf32_frv_howto_table [] = { @@ -68,158 +84,158 @@ static reloc_howto_type elf32_frv_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. */ HOWTO (R_FRV_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit pc-relative relocation. */ HOWTO (R_FRV_LABEL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_LABEL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 24-bit pc-relative relocation. */ HOWTO (R_FRV_LABEL24, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_LABEL24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x7e03ffff, /* src_mask */ 0x7e03ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_FRV_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_FRV_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_FRV_GPREL12, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_GPREL12", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfff, /* src_mask */ 0xfff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_FRV_GPRELU12, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_GPRELU12", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfff, /* src_mask */ 0x3f03f, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_FRV_GPREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_GPREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_FRV_GPRELHI, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_GPRELHI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_FRV_GPRELLO, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_FRV_GPRELLO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* GNU extension to record C++ vtable hierarchy. */ @@ -228,15 +244,15 @@ static reloc_howto_type elf32_frv_vtinhe 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_FRV_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extension to record C++ vtable member usage. */ static reloc_howto_type elf32_frv_vtentry_howto = @@ -244,15 +260,15 @@ static reloc_howto_type elf32_frv_vtentr 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_FRV_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* Map BFD reloc types to FRV ELF reloc types. */ #if 0 @@ -283,7 +299,8 @@ static const struct frv_reloc_map frv_re /* Handle an FRV small data reloc. */ static bfd_reloc_status_type -elf32_frv_relocate_gprel12 (info, input_bfd, input_section, relocation, contents, value) +elf32_frv_relocate_gprel12 (info, input_bfd, input_section, relocation, + contents, value) struct bfd_link_info *info; bfd *input_bfd; asection *input_section; @@ -295,7 +312,7 @@ elf32_frv_relocate_gprel12 (info, input_ bfd_vma gp; struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE); gp = (h->u.def.value + h->u.def.section->output_section->vma @@ -321,7 +338,8 @@ elf32_frv_relocate_gprel12 (info, input_ /* Handle an FRV small data reloc. for the u12 field. */ static bfd_reloc_status_type -elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, relocation, contents, value) +elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, relocation, + contents, value) struct bfd_link_info *info; bfd *input_bfd; asection *input_section; @@ -334,12 +352,12 @@ elf32_frv_relocate_gprelu12 (info, input struct bfd_link_hash_entry *h; bfd_vma mask; - h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE); gp = (h->u.def.value + h->u.def.section->output_section->vma + h->u.def.section->output_offset); - + value -= input_section->output_section->vma; value -= (gp - input_section->output_section->vma); @@ -423,7 +441,7 @@ elf32_frv_relocate_label24 (input_bfd, i /* The format for the call instruction is: - 0 000000 0001111 000000000000000000 + 0 000000 0001111 000000000000000000 label6 opcode label18 The branch calculation is: pc + (4*label24) @@ -453,7 +471,8 @@ elf32_frv_relocate_label24 (input_bfd, i } static bfd_reloc_status_type -elf32_frv_relocate_gprelhi (info, input_bfd, input_section, relocation, contents, value) +elf32_frv_relocate_gprelhi (info, input_bfd, input_section, relocation, + contents, value) struct bfd_link_info *info; bfd *input_bfd; asection *input_section; @@ -465,7 +484,7 @@ elf32_frv_relocate_gprelhi (info, input_ bfd_vma gp; struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE); gp = (h->u.def.value + h->u.def.section->output_section->vma @@ -487,7 +506,8 @@ elf32_frv_relocate_gprelhi (info, input_ } static bfd_reloc_status_type -elf32_frv_relocate_gprello (info, input_bfd, input_section, relocation, contents, value) +elf32_frv_relocate_gprello (info, input_bfd, input_section, relocation, + contents, value) struct bfd_link_info *info; bfd *input_bfd; asection *input_section; @@ -499,7 +519,7 @@ elf32_frv_relocate_gprello (info, input_ bfd_vma gp; struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE); gp = (h->u.def.value + h->u.def.section->output_section->vma @@ -523,7 +543,7 @@ elf32_frv_relocate_gprello (info, input_ static reloc_howto_type * frv_reloc_type_lookup (abfd, code) - bfd * abfd ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; bfd_reloc_code_real_type code; { switch (code) @@ -533,7 +553,7 @@ frv_reloc_type_lookup (abfd, code) case BFD_RELOC_NONE: return &elf32_frv_howto_table[ (int) R_FRV_NONE]; - + case BFD_RELOC_32: case BFD_RELOC_CTOR: return &elf32_frv_howto_table[ (int) R_FRV_32]; @@ -579,9 +599,9 @@ frv_reloc_type_lookup (abfd, code) static void frv_info_to_howto_rela (abfd, cache_ptr, dst) - bfd * abfd ATTRIBUTE_UNUSED; - arelent * cache_ptr; - Elf32_Internal_Rela * dst; + bfd *abfd ATTRIBUTE_UNUSED; + arelent *cache_ptr; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -606,13 +626,14 @@ frv_info_to_howto_rela (abfd, cache_ptr, routines, but a few relocs, we have to do them ourselves. */ static bfd_reloc_status_type -frv_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation) - reloc_howto_type * howto; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * rel; - bfd_vma relocation; +frv_final_link_relocate (howto, input_bfd, input_section, contents, rel, + relocation) + reloc_howto_type *howto; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *rel; + bfd_vma relocation; { return _bfd_final_link_relocate (howto, input_bfd, input_section, contents, rel->r_offset, relocation, @@ -650,25 +671,25 @@ frv_final_link_relocate (howto, input_bf section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) - bfd * output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * relocs; - Elf_Internal_Sym * local_syms; - asection ** local_sections; -{ - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; + bfd *output_bfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; +{ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -676,29 +697,29 @@ elf32_frv_relocate_section (output_bfd, for (rel = relocs; rel < relend; rel ++) { - reloc_howto_type * howto; - unsigned long r_symndx; - Elf_Internal_Sym * sym; - asection * sec; - struct elf_link_hash_entry * h; - bfd_vma relocation; - bfd_reloc_status_type r; - const char * name = NULL; - int r_type; - + reloc_howto_type *howto; + unsigned long r_symndx; + Elf_Internal_Sym *sym; + asection *sec; + struct elf_link_hash_entry *h; + bfd_vma relocation; + bfd_reloc_status_type r; + const char * name = NULL; + int r_type; + r_type = ELF32_R_TYPE (rel->r_info); - + if ( r_type == R_FRV_GNU_VTINHERIT || r_type == R_FRV_GNU_VTENTRY) continue; - + /* This is a final link. */ r_symndx = ELF32_R_SYM (rel->r_info); howto = elf32_frv_howto_table + ELF32_R_TYPE (rel->r_info); h = NULL; sym = NULL; sec = NULL; - + if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -706,7 +727,7 @@ elf32_frv_relocate_section (output_bfd, relocation = (sec->output_section->vma + sec->output_offset + sym->st_value); - + name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name); name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; @@ -714,13 +735,13 @@ elf32_frv_relocate_section (output_bfd, else { h = sym_hashes [r_symndx - symtab_hdr->sh_info]; - + while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; name = h->root.root.string; - + if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) { @@ -737,12 +758,12 @@ elf32_frv_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } - + if (r_type == R_FRV_HI16) r = elf32_frv_relocate_hi16 (input_bfd, rel, contents, relocation); @@ -750,22 +771,28 @@ elf32_frv_relocate_section (output_bfd, r = elf32_frv_relocate_lo16 (input_bfd, rel, contents, relocation); else if (r_type == R_FRV_LABEL24) - r = elf32_frv_relocate_label24 (input_bfd, input_section, rel, contents, relocation); + r = elf32_frv_relocate_label24 (input_bfd, input_section, rel, + contents, relocation); else if (r_type == R_FRV_GPREL12) - r = elf32_frv_relocate_gprel12 (info, input_bfd, input_section, rel, contents, relocation); + r = elf32_frv_relocate_gprel12 (info, input_bfd, input_section, rel, + contents, relocation); else if (r_type == R_FRV_GPRELU12) - r = elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, rel, contents, relocation); + r = elf32_frv_relocate_gprelu12 (info, input_bfd, input_section, rel, + contents, relocation); else if (r_type == R_FRV_GPRELLO) - r = elf32_frv_relocate_gprello (info, input_bfd, input_section, rel, contents, relocation); + r = elf32_frv_relocate_gprello (info, input_bfd, input_section, rel, + contents, relocation); else if (r_type == R_FRV_GPRELHI) - r = elf32_frv_relocate_gprelhi (info, input_bfd, input_section, rel, contents, relocation); + r = elf32_frv_relocate_gprelhi (info, input_bfd, input_section, rel, + contents, relocation); else - r = frv_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation); + r = frv_final_link_relocate (howto, input_bfd, input_section, contents, + rel, relocation); if (r != bfd_reloc_ok) { @@ -778,12 +805,12 @@ elf32_frv_relocate_section (output_bfd, (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset); break; - + case bfd_reloc_undefined: r = info->callbacks->undefined_symbol - (info, name, input_bfd, input_section, rel->r_offset, true); + (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; - + case bfd_reloc_outofrange: msg = _("internal error: out of range error"); break; @@ -806,11 +833,11 @@ elf32_frv_relocate_section (output_bfd, (info, msg, name, input_bfd, input_section, rel->r_offset); if (! r) - return false; + return FALSE; } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -818,11 +845,11 @@ elf32_frv_relocate_section (output_bfd, static asection * elf32_frv_gc_mark_hook (sec, info, rel, h, sym) - asection * sec; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - Elf_Internal_Rela * rel; - struct elf_link_hash_entry * h; - Elf_Internal_Sym * sym; + asection *sec; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + Elf_Internal_Rela *rel; + struct elf_link_hash_entry *h; + Elf_Internal_Sym *sym; { if (h != NULL) { @@ -855,21 +882,21 @@ elf32_frv_gc_mark_hook (sec, info, rel, /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf32_frv_gc_sweep_hook (abfd, info, sec, relocs) - bfd * abfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - asection * sec ATTRIBUTE_UNUSED; - const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + asection *sec ATTRIBUTE_UNUSED; + const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Hook called by the linker routine which adds symbols from an object file. We use it to put .comm items in .scomm, and not .comm. */ -static boolean +static bfd_boolean elf32_frv_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -895,20 +922,20 @@ elf32_frv_add_symbol_hook (abfd, info, s || !bfd_set_section_flags (abfd, scomm, (SEC_ALLOC | SEC_IS_COMMON | SEC_LINKER_CREATED))) - return false; + return FALSE; } *secp = scomm; *valp = sym->st_size; } - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ - -static boolean + +static bfd_boolean elf32_frv_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -919,47 +946,47 @@ elf32_frv_check_relocs (abfd, info, sec, struct elf_link_hash_entry **sym_hashes, **sym_hashes_end; const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; - + if (info->relocateable) - return true; - + return TRUE; + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); sym_hashes_end = sym_hashes + symtab_hdr->sh_size/sizeof(Elf32_External_Sym); if (!elf_bad_symtab (abfd)) sym_hashes_end -= symtab_hdr->sh_info; - + rel_end = relocs + sec->reloc_count; for (rel = relocs; rel < rel_end; rel++) { struct elf_link_hash_entry *h; unsigned long r_symndx; - + r_symndx = ELF32_R_SYM (rel->r_info); if (r_symndx < symtab_hdr->sh_info) h = NULL; else h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - + switch (ELF32_R_TYPE (rel->r_info)) { /* This relocation describes the C++ object vtable hierarchy. Reconstruct it for later use during GC. */ case R_FRV_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; - + /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_FRV_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - - return true; + + return TRUE; } @@ -984,56 +1011,56 @@ elf32_frv_machine (abfd) /* Set the right machine number for a FRV ELF file. */ -static boolean +static bfd_boolean elf32_frv_object_p (abfd) bfd *abfd; { bfd_default_set_arch_mach (abfd, bfd_arch_frv, elf32_frv_machine (abfd)); - return true; + return TRUE; } /* Function to set the ELF flag bits. */ -static boolean +static bfd_boolean frv_elf_set_private_flags (abfd, flags) bfd *abfd; flagword flags; { elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Copy backend specific data from one object module to another. */ -static boolean +static bfd_boolean frv_elf_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; BFD_ASSERT (!elf_flags_init (obfd) || elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags); elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; - elf_flags_init (obfd) = true; - return true; + elf_flags_init (obfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean frv_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { flagword old_flags, old_partial; flagword new_flags, new_partial; - boolean error = false; + bfd_boolean error = FALSE; char new_opt[80]; char old_opt[80]; @@ -1049,7 +1076,7 @@ frv_elf_merge_private_bfd_data (ibfd, ob if (!elf_flags_init (obfd)) /* First call, no flags set. */ { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; old_flags = new_flags; } @@ -1191,7 +1218,7 @@ frv_elf_merge_private_bfd_data (ibfd, ob { old_flags &= ~ EF_FRV_PIC_FLAGS; #ifndef FRV_NO_PIC_ERROR - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: compiled with %s and linked with modules that use non-pic relocations"), bfd_get_filename (ibfd), @@ -1237,11 +1264,11 @@ frv_elf_merge_private_bfd_data (ibfd, ob case EF_FRV_CPU_TOMCAT: strcat (old_opt, " -mcpu=tomcat"); break; } } - + /* Print out any mismatches from above. */ if (new_opt[0]) { - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: compiled with %s and linked with modules compiled with %s"), bfd_get_filename (ibfd), new_opt, old_opt); @@ -1253,7 +1280,7 @@ frv_elf_merge_private_bfd_data (ibfd, ob if (new_partial != old_partial) { old_flags |= new_partial; - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"), bfd_get_filename (ibfd), (long)new_partial, (long)old_partial); @@ -1277,7 +1304,7 @@ frv_elf_merge_private_bfd_data (ibfd, ob } -boolean +bfd_boolean frv_elf_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -1347,7 +1374,7 @@ frv_elf_print_private_bfd_data (abfd, pt fprintf (file, " -G0"); fputc ('\n', file); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/elf32-gen.c binutils-2.13.90.0.18/bfd/elf32-gen.c --- binutils-2.13.90.0.16/bfd/elf32-gen.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/elf32-gen.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,6 @@ /* Generic support for 32-bit ELF - Copyright 1993, 1995, 1998, 1999, 2001 Free Software Foundation, Inc. + Copyright 1993, 1995, 1998, 1999, 2001, 2002 + Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -30,28 +31,28 @@ static reloc_howto_type dummy = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "UNKNOWN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ static void elf_generic_info_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void elf_generic_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); -static boolean elf32_generic_link_add_symbols + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean elf32_generic_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); static void elf_generic_info_to_howto (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf32_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; + Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; { bfd_reloc->howto = &dummy; } @@ -60,12 +61,12 @@ static void elf_generic_info_to_howto_rel (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf32_Internal_Rel *elf_reloc ATTRIBUTE_UNUSED; + Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; { bfd_reloc->howto = &dummy; } -static boolean +static bfd_boolean elf32_generic_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -84,7 +85,7 @@ elf32_generic_link_add_symbols (abfd, in ehdrp->e_machine); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } return bfd_elf32_bfd_link_add_symbols (abfd, info); diff -uprN binutils-2.13.90.0.16/bfd/elf32-h8300.c binutils-2.13.90.0.18/bfd/elf32-h8300.c --- binutils-2.13.90.0.16/bfd/elf32-h8300.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/elf32-h8300.c Mon Dec 16 12:22:51 2002 @@ -29,29 +29,29 @@ static reloc_howto_type *elf32_h8_reloc_ static void elf32_h8_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void elf32_h8_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static unsigned long elf32_h8_mach PARAMS ((flagword)); static void elf32_h8_final_write_processing - PARAMS ((bfd *, boolean)); -static boolean elf32_h8_object_p + PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean elf32_h8_object_p PARAMS ((bfd *)); -static boolean elf32_h8_merge_private_bfd_data +static bfd_boolean elf32_h8_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean elf32_h8_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); -static boolean elf32_h8_relax_delete_bytes +static bfd_boolean elf32_h8_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean elf32_h8_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); -static boolean elf32_h8_symbol_address_p +static bfd_boolean elf32_h8_symbol_address_p PARAMS ((bfd *, asection *, bfd_vma)); static bfd_byte *elf32_h8_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); + bfd_byte *, bfd_boolean, asymbol **)); static bfd_reloc_status_type elf32_h8_final_link_relocate PARAMS ((unsigned long, bfd *, bfd *, asection *, bfd_byte *, bfd_vma, bfd_vma, bfd_vma, struct bfd_link_info *, asection *, int)); -static boolean elf32_h8_relocate_section +static bfd_boolean elf32_h8_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -67,155 +67,155 @@ static reloc_howto_type h8_elf_howto_tab 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ special, /* special_function */ "R_H8_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR32_X (R_H8_NONE_X + 1) HOWTO (R_H8_DIR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR16_X (R_H8_DIR32_X + 1) HOWTO (R_H8_DIR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR8_X (R_H8_DIR16_X + 1) HOWTO (R_H8_DIR8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x000000ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR16A8_X (R_H8_DIR8_X + 1) HOWTO (R_H8_DIR16A8, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR16A8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR16R8_X (R_H8_DIR16A8_X + 1) HOWTO (R_H8_DIR16R8, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR16R8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR24A8_X (R_H8_DIR16R8_X + 1) HOWTO (R_H8_DIR24A8, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR24A8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff000000, /* src_mask */ 0x00ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR24R8_X (R_H8_DIR24A8_X + 1) HOWTO (R_H8_DIR24R8, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR24R8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff000000, /* src_mask */ 0x00ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_DIR32A16_X (R_H8_DIR24R8_X + 1) HOWTO (R_H8_DIR32A16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ special, /* special_function */ "R_H8_DIR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #define R_H8_PCREL16_X (R_H8_DIR32A16_X + 1) HOWTO (R_H8_PCREL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ special, /* special_function */ "R_H8_PCREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ #define R_H8_PCREL8_X (R_H8_PCREL16_X + 1) HOWTO (R_H8_PCREL8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ special, /* special_function */ "R_H8_PCREL8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ }; /* This structure is used to map BFD reloc codes to H8 ELF relocs. */ @@ -261,7 +261,7 @@ static void elf32_h8_info_to_howto (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf32_Internal_Rela *elf_reloc; + Elf_Internal_Rela *elf_reloc; { unsigned int r; unsigned int i; @@ -280,7 +280,7 @@ static void elf32_h8_info_to_howto_rel (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf32_Internal_Rel *elf_reloc ATTRIBUTE_UNUSED; + Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; { unsigned int r; @@ -410,7 +410,7 @@ elf32_h8_final_link_relocate (r_type, in } /* Relocate an H8 ELF section. */ -static boolean +static bfd_boolean elf32_h8_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -427,7 +427,7 @@ elf32_h8_relocate_section (output_bfd, i Elf_Internal_Rela *rel, *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -476,8 +476,8 @@ elf32_h8_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -514,14 +514,14 @@ elf32_h8_relocate_section (output_bfd, i if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (! ((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - rel->r_offset, true))) - return false; + rel->r_offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -544,13 +544,13 @@ elf32_h8_relocate_section (output_bfd, i if (!((*info->callbacks->warning) (info, msg, name, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; } } } - return true; + return TRUE; } /* Object files encode the specific H8 model they were compiled @@ -583,7 +583,7 @@ elf32_h8_mach (flags) static void elf32_h8_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { unsigned long val; @@ -610,37 +610,37 @@ elf32_h8_final_write_processing (abfd, l /* Return nonzero if ABFD represents a valid H8 ELF object file; also record the encoded machine type found in the ELF flags. */ -static boolean +static bfd_boolean elf32_h8_object_p (abfd) bfd *abfd; { bfd_default_set_arch_mach (abfd, bfd_arch_h8300, elf32_h8_mach (elf_elfheader (abfd)->e_flags)); - return true; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. The only data we need to copy at this time is the architecture/machine information. */ -static boolean +static bfd_boolean elf32_h8_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) && bfd_get_mach (obfd) < bfd_get_mach (ibfd)) { if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd))) - return false; + return FALSE; } - return true; + return TRUE; } /* This function handles relaxing for the H8.. @@ -660,12 +660,12 @@ elf32_h8_merge_private_bfd_data (ibfd, o mov.[bwl]:24/32 -> mov.[bwl]:16 2 bytes */ -static boolean +static bfd_boolean elf32_h8_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; @@ -676,7 +676,7 @@ elf32_h8_relax_section (abfd, sec, link_ static Elf_Internal_Rela *last_reloc = NULL; /* Assume nothing changes. */ - *again = false; + *again = FALSE; /* We don't have to do anything for a relocateable link, if this section does not have relocs, or if this is not a @@ -685,7 +685,7 @@ elf32_h8_relax_section (abfd, sec, link_ || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -840,7 +840,7 @@ elf32_h8_relax_section (abfd, sec, link_ Only perform this optimisation for jumps (code 0x5a) not subroutine calls, as otherwise it could transform: - + mov.w r0,r0 beq .L1 jsr @_bar @@ -905,7 +905,7 @@ elf32_h8_relax_section (abfd, sec, link_ 4)) goto error_return; - *again = true; + *again = TRUE; break; } } @@ -928,7 +928,7 @@ elf32_h8_relax_section (abfd, sec, link_ /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } break; } @@ -991,7 +991,7 @@ elf32_h8_relax_section (abfd, sec, link_ /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } break; } @@ -1049,7 +1049,7 @@ elf32_h8_relax_section (abfd, sec, link_ /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } break; } @@ -1106,7 +1106,7 @@ elf32_h8_relax_section (abfd, sec, link_ /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } } @@ -1147,7 +1147,7 @@ elf32_h8_relax_section (abfd, sec, link_ /* That will change things, so, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; } break; } @@ -1182,7 +1182,7 @@ elf32_h8_relax_section (abfd, sec, link_ && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL @@ -1194,12 +1194,12 @@ elf32_h8_relax_section (abfd, sec, link_ if (internal_relocs != NULL && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } /* Delete some bytes from a section while relaxing. */ -static boolean +static bfd_boolean elf32_h8_relax_delete_bytes (abfd, sec, addr, count) bfd *abfd; asection *sec; @@ -1275,12 +1275,12 @@ elf32_h8_relax_delete_bytes (abfd, sec, } } - return true; + return TRUE; } -/* Return true if a symbol exists at the given address, else return - false. */ -static boolean +/* Return TRUE if a symbol exists at the given address, else return + FALSE. */ +static bfd_boolean elf32_h8_symbol_address_p (abfd, sec, addr) bfd *abfd; asection *sec; @@ -1304,7 +1304,7 @@ elf32_h8_symbol_address_p (abfd, sec, ad { if (isym->st_shndx == sec_shndx && isym->st_value == addr) - return true; + return TRUE; } symcount = (symtab_hdr->sh_size / sizeof (Elf32_External_Sym) @@ -1318,10 +1318,10 @@ elf32_h8_symbol_address_p (abfd, sec, ad || sym_hash->root.type == bfd_link_hash_defweak) && sym_hash->root.u.def.section == sec && sym_hash->root.u.def.value == addr) - return true; + return TRUE; } - return false; + return FALSE; } /* This is a version of bfd_generic_get_relocated_section_contents @@ -1334,7 +1334,7 @@ elf32_h8_get_relocated_section_contents struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -1367,7 +1367,7 @@ elf32_h8_get_relocated_section_contents internal_relocs = (_bfd_elf32_link_read_relocs (input_bfd, input_section, (PTR) NULL, - (Elf_Internal_Rela *) NULL, false)); + (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; diff -uprN binutils-2.13.90.0.16/bfd/elf32-hppa.c binutils-2.13.90.0.18/bfd/elf32-hppa.c --- binutils-2.13.90.0.16/bfd/elf32-hppa.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/elf32-hppa.c Tue Jan 21 10:21:32 2003 @@ -310,27 +310,27 @@ static enum elf32_hppa_stub_type hppa_ty PARAMS ((asection *, const Elf_Internal_Rela *, struct elf32_hppa_link_hash_entry *, bfd_vma)); -static boolean hppa_build_one_stub +static bfd_boolean hppa_build_one_stub PARAMS ((struct bfd_hash_entry *, PTR)); -static boolean hppa_size_one_stub +static bfd_boolean hppa_size_one_stub PARAMS ((struct bfd_hash_entry *, PTR)); /* BFD and elf backend functions. */ -static boolean elf32_hppa_object_p PARAMS ((bfd *)); +static bfd_boolean elf32_hppa_object_p PARAMS ((bfd *)); -static boolean elf32_hppa_add_symbol_hook +static bfd_boolean elf32_hppa_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean elf32_hppa_create_dynamic_sections +static bfd_boolean elf32_hppa_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static void elf32_hppa_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); -static boolean elf32_hppa_check_relocs +static bfd_boolean elf32_hppa_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -338,41 +338,41 @@ static asection *elf32_hppa_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_hppa_gc_sweep_hook +static bfd_boolean elf32_hppa_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static void elf32_hppa_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); -static boolean elf32_hppa_adjust_dynamic_symbol +static bfd_boolean elf32_hppa_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean mark_PIC_calls +static bfd_boolean mark_PIC_calls PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean allocate_plt_static +static bfd_boolean allocate_plt_static PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean allocate_dynrelocs +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean clobber_millicode_symbols +static bfd_boolean clobber_millicode_symbols PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *)); -static boolean elf32_hppa_size_dynamic_sections +static bfd_boolean elf32_hppa_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static void group_sections - PARAMS ((struct elf32_hppa_link_hash_table *, bfd_size_type, boolean)); + PARAMS ((struct elf32_hppa_link_hash_table *, bfd_size_type, bfd_boolean)); static int get_local_syms PARAMS ((bfd *, bfd *, struct bfd_link_info *)); -static boolean elf32_hppa_final_link +static bfd_boolean elf32_hppa_final_link PARAMS ((bfd *, struct bfd_link_info *)); static void hppa_record_segment_addr @@ -383,18 +383,18 @@ static bfd_reloc_status_type final_link_ bfd_vma, struct elf32_hppa_link_hash_table *, asection *, struct elf32_hppa_link_hash_entry *)); -static boolean elf32_hppa_relocate_section +static bfd_boolean elf32_hppa_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf32_hppa_finish_dynamic_symbol +static bfd_boolean elf32_hppa_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); static enum elf_reloc_type_class elf32_hppa_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean elf32_hppa_finish_dynamic_sections +static bfd_boolean elf32_hppa_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static void elf32_hppa_post_process_headers @@ -614,7 +614,7 @@ hppa_get_stub_entry (input_section, sym_ return NULL; stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table, - stub_name, false, false); + stub_name, FALSE, FALSE); if (hash != NULL) hash->stub_cache = stub_entry; @@ -666,7 +666,7 @@ hppa_add_stub (stub_name, section, htab) /* Enter this entry into the linker stub hash table. */ stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table, stub_name, - true, false); + TRUE, FALSE); if (stub_entry == NULL) { (*_bfd_error_handler) (_("%s: cannot create stub entry %s"), @@ -776,7 +776,7 @@ hppa_type_of_stub (input_sec, rel, hash, #define LDW_R1_DLT LDW_R1_DP #endif -static boolean +static bfd_boolean hppa_build_one_stub (gen_entry, in_arg) struct bfd_hash_entry *gen_entry; PTR in_arg; @@ -960,7 +960,7 @@ hppa_build_one_stub (gen_entry, in_arg) (long) stub_entry->stub_offset, stub_entry->root.string); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } val = hppa_field_adjust (sym_value, (bfd_signed_vma) -8, e_fsel) >> 2; @@ -985,11 +985,11 @@ hppa_build_one_stub (gen_entry, in_arg) default: BFD_FAIL (); - return false; + return FALSE; } stub_sec->_raw_size += size; - return true; + return TRUE; } #undef LDIL_R1 @@ -1017,7 +1017,7 @@ hppa_build_one_stub (gen_entry, in_arg) /* As above, but don't actually build the stub. Just bump offset so we know stub section sizes. */ -static boolean +static bfd_boolean hppa_size_one_stub (gen_entry, in_arg) struct bfd_hash_entry *gen_entry; PTR in_arg; @@ -1045,13 +1045,13 @@ hppa_size_one_stub (gen_entry, in_arg) } stub_entry->stub_sec->_raw_size += size; - return true; + return TRUE; } /* Return nonzero if ABFD represents an HPPA ELF32 file. Additionally we set the default architecture and machine. */ -static boolean +static bfd_boolean elf32_hppa_object_p (abfd) bfd *abfd; { @@ -1062,12 +1062,12 @@ elf32_hppa_object_p (abfd) if (strcmp (bfd_get_target (abfd), "elf32-hppa-linux") == 0) { if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX) - return false; + return FALSE; } else { if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_HPUX) - return false; + return FALSE; } flags = i_ehdrp->e_flags; @@ -1082,13 +1082,13 @@ elf32_hppa_object_p (abfd) case EFA_PARISC_2_0 | EF_PARISC_WIDE: return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25); } - return true; + return TRUE; } /* Undo the generic ELF code's subtraction of section->vma from the value of each external symbol. */ -static boolean +static bfd_boolean elf32_hppa_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1099,13 +1099,13 @@ elf32_hppa_add_symbol_hook (abfd, info, bfd_vma *valp; { *valp += (*secp)->vma; - return true; + return TRUE; } /* Create the .plt and .got sections, and set up our hash table short-cuts to various dynamic sections. */ -static boolean +static bfd_boolean elf32_hppa_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1115,11 +1115,11 @@ elf32_hppa_create_dynamic_sections (abfd /* Don't try to create the .plt and .got twice. */ htab = hppa_link_hash_table (info); if (htab->splt != NULL) - return true; + return TRUE; /* Call the generic code to do most of the work. */ if (! _bfd_elf_create_dynamic_sections (abfd, info)) - return false; + return FALSE; htab->splt = bfd_get_section_by_name (abfd, ".plt"); htab->srelplt = bfd_get_section_by_name (abfd, ".rela.plt"); @@ -1135,12 +1135,12 @@ elf32_hppa_create_dynamic_sections (abfd | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (abfd, htab->srelgot, 2)) - return false; + return FALSE; htab->sdynbss = bfd_get_section_by_name (abfd, ".dynbss"); htab->srelbss = bfd_get_section_by_name (abfd, ".rela.bss"); - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -1199,7 +1199,7 @@ elf32_hppa_copy_indirect_symbol (bed, di table, and dynamic reloc sections. At this point we haven't necessarily read all the input files. */ -static boolean +static bfd_boolean elf32_hppa_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -1215,7 +1215,7 @@ elf32_hppa_check_relocs (abfd, info, sec asection *stubreloc; if (info->relocateable) - return true; + return TRUE; htab = hppa_link_hash_table (info); symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -1341,7 +1341,7 @@ elf32_hppa_check_relocs (abfd, info, sec bfd_archive_filename (abfd), elf_hppa_howto_table[r_type].name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Fall through. */ @@ -1374,7 +1374,7 @@ elf32_hppa_check_relocs (abfd, info, sec case R_PARISC_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, &h->elf, rel->r_offset)) - return false; + return FALSE; continue; /* This relocation describes which C++ vtable entries are actually @@ -1382,7 +1382,7 @@ elf32_hppa_check_relocs (abfd, info, sec case R_PARISC_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, &h->elf, rel->r_addend)) - return false; + return FALSE; continue; default: @@ -1399,7 +1399,7 @@ elf32_hppa_check_relocs (abfd, info, sec if (htab->elf.dynobj == NULL) htab->elf.dynobj = abfd; if (!elf32_hppa_create_dynamic_sections (htab->elf.dynobj, info)) - return false; + return FALSE; } if (h != NULL) @@ -1425,7 +1425,7 @@ elf32_hppa_check_relocs (abfd, info, sec local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; } local_got_refcounts[r_symndx] += 1; @@ -1472,7 +1472,7 @@ elf32_hppa_check_relocs (abfd, info, sec local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; } local_plt_refcounts = (local_got_refcounts @@ -1553,7 +1553,7 @@ elf32_hppa_check_relocs (abfd, info, sec (_("Could not find relocation section for %s"), sec->name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (htab->elf.dynobj == NULL) @@ -1573,7 +1573,7 @@ elf32_hppa_check_relocs (abfd, info, sec if (sreloc == NULL || !bfd_set_section_flags (dynobj, sreloc, flags) || !bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; @@ -1595,7 +1595,7 @@ elf32_hppa_check_relocs (abfd, info, sec s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf32_hppa_dyn_reloc_entry **) &elf_section_data (s)->local_dynrel); @@ -1608,7 +1608,7 @@ elf32_hppa_check_relocs (abfd, info, sec bfd_alloc (htab->elf.dynobj, (bfd_size_type) sizeof *p)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -1627,7 +1627,7 @@ elf32_hppa_check_relocs (abfd, info, sec } } - return true; + return TRUE; } /* Return the section that should be marked against garbage collection @@ -1673,7 +1673,7 @@ elf32_hppa_gc_mark_hook (sec, info, rel, /* Update the got and plt entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf32_hppa_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1701,7 +1701,7 @@ elf32_hppa_gc_sweep_hook (abfd, info, se htab = hppa_link_hash_table (info); dynobj = htab->elf.dynobj; if (dynobj == NULL) - return true; + return TRUE; relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; rel++) @@ -1805,7 +1805,7 @@ elf32_hppa_gc_sweep_hook (abfd, info, se break; } - return true; + return TRUE; } /* Our own version of hide_symbol, so that we can keep plt entries for @@ -1815,7 +1815,7 @@ static void elf32_hppa_hide_symbol (info, h, force_local) struct bfd_link_info *info; struct elf_link_hash_entry *h; - boolean force_local; + bfd_boolean force_local; { if (force_local) { @@ -1852,7 +1852,7 @@ elf32_hppa_hide_symbol (info, h, force_l change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf32_hppa_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1896,7 +1896,7 @@ elf32_hppa_adjust_dynamic_symbol (info, } } - return true; + return TRUE; } else h->plt.offset = (bfd_vma) -1; @@ -1911,7 +1911,7 @@ elf32_hppa_adjust_dynamic_symbol (info, abort (); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1922,12 +1922,12 @@ elf32_hppa_adjust_dynamic_symbol (info, For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; eh = (struct elf32_hppa_link_hash_entry *) h; for (p = eh->dyn_relocs; p != NULL; p = p->next) @@ -1942,7 +1942,7 @@ elf32_hppa_adjust_dynamic_symbol (info, if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -1980,7 +1980,7 @@ elf32_hppa_adjust_dynamic_symbol (info, if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1990,14 +1990,14 @@ elf32_hppa_adjust_dynamic_symbol (info, /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Called via elf_link_hash_traverse to create .plt entries for an application that uses statically linked PIC functions. Similar to the first part of elf32_hppa_adjust_dynamic_symbol. */ -static boolean +static bfd_boolean mark_PIC_calls (h, inf) struct elf_link_hash_entry *h; PTR inf ATTRIBUTE_UNUSED; @@ -2012,19 +2012,19 @@ mark_PIC_calls (h, inf) { h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; - return true; + return TRUE; } h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; ((struct elf32_hppa_link_hash_entry *) h)->pic_call = 1; - return true; + return TRUE; } /* Allocate space in the .plt for entries that won't have relocations. ie. pic_call and plabel entries. */ -static boolean +static bfd_boolean allocate_plt_static (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -2034,7 +2034,7 @@ allocate_plt_static (h, inf) asection *s; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; @@ -2060,7 +2060,7 @@ allocate_plt_static (h, inf) && h->type != STT_PARISC_MILLI) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) @@ -2092,13 +2092,13 @@ allocate_plt_static (h, inf) h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - return true; + return TRUE; } /* Allocate space in .plt, .got and associated reloc sections for global syms. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -2110,7 +2110,7 @@ allocate_dynrelocs (h, inf) struct elf32_hppa_dyn_reloc_entry *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; @@ -2141,7 +2141,7 @@ allocate_dynrelocs (h, inf) && h->type != STT_PARISC_MILLI) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -2160,7 +2160,7 @@ allocate_dynrelocs (h, inf) eh = (struct elf32_hppa_link_hash_entry *) h; if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* If this is a -Bsymbolic shared link, then we need to discard all space allocated for dynamic pc-relative relocs against symbols @@ -2207,7 +2207,7 @@ allocate_dynrelocs (h, inf) && h->type != STT_PARISC_MILLI) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -2217,7 +2217,7 @@ allocate_dynrelocs (h, inf) } eh->dyn_relocs = NULL; - return true; + return TRUE; keep: ; } @@ -2229,7 +2229,7 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela); } - return true; + return TRUE; } /* This function is called via elf_link_hash_traverse to force @@ -2239,7 +2239,7 @@ allocate_dynrelocs (h, inf) for all dynamic symbols. Arguably, this is a bug in elf_adjust_dynamic_symbol. */ -static boolean +static bfd_boolean clobber_millicode_symbols (h, info) struct elf_link_hash_entry *h; struct bfd_link_info *info; @@ -2250,14 +2250,14 @@ clobber_millicode_symbols (h, info) if (h->type == STT_PARISC_MILLI && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { - elf32_hppa_hide_symbol (info, h, true); + elf32_hppa_hide_symbol (info, h, TRUE); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -2280,15 +2280,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf32_hppa_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -2297,7 +2297,7 @@ elf32_hppa_size_dynamic_sections (output bfd *dynobj; bfd *ibfd; asection *s; - boolean relocs; + bfd_boolean relocs; htab = hppa_link_hash_table (info); dynobj = htab->elf.dynobj; @@ -2433,7 +2433,7 @@ elf32_hppa_size_dynamic_sections (output /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -2465,7 +2465,7 @@ elf32_hppa_size_dynamic_sections (output /* Remember whether there are any reloc sections other than .rela.plt. */ if (s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -2497,7 +2497,7 @@ elf32_hppa_size_dynamic_sections (output we may not fill in all the reloc sections. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (htab->elf.dynamic_sections_created) @@ -2510,7 +2510,7 @@ elf32_hppa_size_dynamic_sections (output bfd_elf32_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) if (!add_dynamic_entry (DT_PLTGOT, 0)) - return false; + return FALSE; /* Add some entries to the .dynamic section. We fill in the values later, in elf32_hppa_finish_dynamic_sections, but we @@ -2520,7 +2520,7 @@ elf32_hppa_size_dynamic_sections (output if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->srelplt->_raw_size != 0) @@ -2528,7 +2528,7 @@ elf32_hppa_size_dynamic_sections (output if (!add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -2536,7 +2536,7 @@ elf32_hppa_size_dynamic_sections (output if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -2547,13 +2547,13 @@ elf32_hppa_size_dynamic_sections (output if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* External entry points for sizing and building linker stubs. */ @@ -2673,7 +2673,7 @@ static void group_sections (htab, stub_group_size, stubs_always_before_branch) struct elf32_hppa_link_hash_table *htab; bfd_size_type stub_group_size; - boolean stubs_always_before_branch; + bfd_boolean stubs_always_before_branch; { asection **list = htab->input_list + htab->top_index; do @@ -2839,7 +2839,7 @@ get_local_syms (output_bfd, input_bfd, i stub_name = hash->elf.root.root.string; stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table, stub_name, - false, false); + FALSE, FALSE); if (stub_entry == NULL) { stub_entry = hppa_add_stub (stub_name, sec, htab); @@ -2872,20 +2872,20 @@ get_local_syms (output_bfd, input_bfd, i PC-relative calls to a target that is unreachable with a "bl" instruction. */ -boolean +bfd_boolean elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size, add_stub_section, layout_sections_again) bfd *output_bfd; bfd *stub_bfd; struct bfd_link_info *info; - boolean multi_subspace; + bfd_boolean multi_subspace; bfd_signed_vma group_size; asection * (*add_stub_section) PARAMS ((const char *, asection *)); void (*layout_sections_again) PARAMS ((void)); { bfd_size_type stub_group_size; - boolean stubs_always_before_branch; - boolean stub_changed; + bfd_boolean stubs_always_before_branch; + bfd_boolean stub_changed; struct elf32_hppa_link_hash_table *htab = hppa_link_hash_table (info); /* Stash our params away. */ @@ -2915,14 +2915,14 @@ elf32_hppa_size_stubs (output_bfd, stub_ default: if (htab->all_local_syms) goto error_ret_free_local; - return false; + return FALSE; case 0: - stub_changed = false; + stub_changed = FALSE; break; case 1: - stub_changed = true; + stub_changed = TRUE; break; } @@ -3089,7 +3089,7 @@ elf32_hppa_size_stubs (output_bfd, stub_ stub_entry = hppa_stub_hash_lookup (&htab->stub_hash_table, stub_name, - false, false); + FALSE, FALSE); if (stub_entry != NULL) { /* The proper stub has already been created. */ @@ -3115,7 +3115,7 @@ elf32_hppa_size_stubs (output_bfd, stub_ stub_entry->stub_type = hppa_stub_long_branch_shared; } stub_entry->h = hash; - stub_changed = true; + stub_changed = TRUE; } /* We're done with the internal relocs, free them. */ @@ -3141,21 +3141,21 @@ elf32_hppa_size_stubs (output_bfd, stub_ /* Ask the linker to do its stuff. */ (*htab->layout_sections_again) (); - stub_changed = false; + stub_changed = FALSE; } free (htab->all_local_syms); - return true; + return TRUE; error_ret_free_local: free (htab->all_local_syms); - return false; + return FALSE; } /* For a final link, this function is called after we have sized the stubs to provide a value for __gp. */ -boolean +bfd_boolean elf32_hppa_set_gp (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3166,7 +3166,7 @@ elf32_hppa_set_gp (abfd, info) struct elf32_hppa_link_hash_table *htab; htab = hppa_link_hash_table (info); - h = bfd_link_hash_lookup (&htab->elf.root, "$global$", false, false, false); + h = bfd_link_hash_lookup (&htab->elf.root, "$global$", FALSE, FALSE, FALSE); if (h != NULL && (h->type == bfd_link_hash_defined @@ -3242,7 +3242,7 @@ elf32_hppa_set_gp (abfd, info) gp_val += sec->output_section->vma + sec->output_offset; elf_gp (abfd) = gp_val; - return true; + return TRUE; } /* Build all the stubs associated with the current output file. The @@ -3251,7 +3251,7 @@ elf32_hppa_set_gp (abfd, info) functions here. This function is called via hppaelf_finish in the linker. */ -boolean +bfd_boolean elf32_hppa_build_stubs (info) struct bfd_link_info *info; { @@ -3271,7 +3271,7 @@ elf32_hppa_build_stubs (info) size = stub_sec->_raw_size; stub_sec->contents = (unsigned char *) bfd_zalloc (htab->stub_bfd, size); if (stub_sec->contents == NULL && size != 0) - return false; + return FALSE; stub_sec->_raw_size = 0; } @@ -3279,19 +3279,19 @@ elf32_hppa_build_stubs (info) table = &htab->stub_hash_table; bfd_hash_traverse (table, hppa_build_one_stub, info); - return true; + return TRUE; } /* Perform a final link. */ -static boolean +static bfd_boolean elf32_hppa_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; { /* Invoke the regular ELF linker to do all the work. */ if (!bfd_elf32_bfd_final_link (abfd, info)) - return false; + return FALSE; /* If we're producing a final executable, sort the contents of the unwind section. */ @@ -3416,15 +3416,14 @@ final_link_relocate (input_section, cont case R_PARISC_DPREL14R: case R_PARISC_DPREL14F: /* For all the DP relative relocations, we need to examine the symbol's - section. If it's a code section, then "data pointer relative" makes - no sense. In that case we don't adjust the "value", and for 21 bit - addil instructions, we change the source addend register from %dp to - %r0. This situation commonly arises when a variable's "constness" + section. If it has no section or if it's a code section, then + "data pointer relative" makes no sense. In that case we don't + adjust the "value", and for 21 bit addil instructions, we change the + source addend register from %dp to %r0. This situation commonly + arises for undefined weak symbols and when a variable's "constness" is declared differently from the way the variable is defined. For instance: "extern int foo" with foo defined as "const int foo". */ - if (sym_sec == NULL) - break; - if ((sym_sec->flags & SEC_CODE) != 0) + if (sym_sec == NULL || (sym_sec->flags & SEC_CODE) != 0) { if ((insn & ((0x3f << 26) | (0x1f << 21))) == (((int) OP_ADDIL << 26) | (27 << 21))) @@ -3594,7 +3593,7 @@ final_link_relocate (input_section, cont /* Relocate an HPPA ELF section. */ -static boolean +static bfd_boolean elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -3613,7 +3612,7 @@ elf32_hppa_relocate_section (output_bfd, Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -3633,14 +3632,14 @@ elf32_hppa_relocate_section (output_bfd, bfd_vma relocation; bfd_reloc_status_type r; const char *sym_name; - boolean plabel; - boolean warned_undef; + bfd_boolean plabel; + bfd_boolean warned_undef; r_type = ELF32_R_TYPE (rel->r_info); if (r_type >= (unsigned int) R_PARISC_UNIMPLEMENTED) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (r_type == (unsigned int) R_PARISC_GNU_VTENTRY || r_type == (unsigned int) R_PARISC_GNU_VTINHERIT) @@ -3651,7 +3650,7 @@ elf32_hppa_relocate_section (output_bfd, h = NULL; sym = NULL; sym_sec = NULL; - warned_undef = false; + warned_undef = FALSE; if (r_symndx < symtab_hdr->sh_info) { /* This is a local symbol, h defaults to NULL. */ @@ -3693,18 +3692,18 @@ elf32_hppa_relocate_section (output_bfd, { if (!((*info->callbacks->undefined_symbol) (info, h->elf.root.root.string, input_bfd, - input_section, rel->r_offset, false))) - return false; - warned_undef = true; + input_section, rel->r_offset, FALSE))) + return FALSE; + warned_undef = TRUE; } } else { if (!((*info->callbacks->undefined_symbol) (info, h->elf.root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; - warned_undef = true; + input_section, rel->r_offset, TRUE))) + return FALSE; + warned_undef = TRUE; } } @@ -3719,13 +3718,13 @@ elf32_hppa_relocate_section (output_bfd, case R_PARISC_DLTIND21L: { bfd_vma off; - boolean do_got = 0; + bfd_boolean do_got = 0; /* Relocation is to the entry for this symbol in the global offset table. */ if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->elf.got.offset; dyn = htab->elf.dynamic_sections_created; @@ -3774,16 +3773,16 @@ elf32_hppa_relocate_section (output_bfd, In this case it is relative to the base of the object because the symbol index is zero. */ Elf_Internal_Rela outrel; - asection *srelgot = htab->srelgot; - Elf32_External_Rela *loc; + bfd_byte *loc; + asection *s = htab->srelgot; outrel.r_offset = (off + htab->sgot->output_offset + htab->sgot->output_section->vma); outrel.r_info = ELF32_R_INFO (0, R_PARISC_DIR32); outrel.r_addend = relocation; - loc = (Elf32_External_Rela *) srelgot->contents; - loc += srelgot->reloc_count++; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } else @@ -3814,7 +3813,7 @@ elf32_hppa_relocate_section (output_bfd, if (htab->elf.dynamic_sections_created) { bfd_vma off; - boolean do_plt = 0; + bfd_boolean do_plt = 0; /* If we have a global symbol with a PLT slot, then redirect this relocation to it. */ @@ -3864,16 +3863,16 @@ elf32_hppa_relocate_section (output_bfd, /* Output a dynamic IPLT relocation for this PLT entry. */ Elf_Internal_Rela outrel; - asection *srelplt = htab->srelplt; - Elf32_External_Rela *loc; + bfd_byte *loc; + asection *s = htab->srelplt; outrel.r_offset = (off + htab->splt->output_offset + htab->splt->output_section->vma); outrel.r_info = ELF32_R_INFO (0, R_PARISC_IPLT); outrel.r_addend = relocation; - loc = (Elf32_External_Rela *) srelplt->contents; - loc += srelplt->reloc_count++; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } else @@ -3956,9 +3955,9 @@ elf32_hppa_relocate_section (output_bfd, || h->elf.root.type == bfd_link_hash_undefined))) { Elf_Internal_Rela outrel; - boolean skip; + bfd_boolean skip; asection *sreloc; - Elf32_External_Rela *loc; + bfd_byte *loc; /* When generating a shared object, these relocations are copied into the output file to be resolved at run @@ -4027,8 +4026,8 @@ elf32_hppa_relocate_section (output_bfd, if (sreloc == NULL) abort (); - loc = (Elf32_External_Rela *) sreloc->contents; - loc += sreloc->reloc_count++; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } break; @@ -4051,7 +4050,7 @@ elf32_hppa_relocate_section (output_bfd, symtab_hdr->sh_link, sym->st_name); if (sym_name == NULL) - return false; + return FALSE; if (*sym_name == '\0') sym_name = bfd_section_name (input_bfd, sym_sec); } @@ -4070,7 +4069,7 @@ elf32_hppa_relocate_section (output_bfd, howto->name, sym_name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } else @@ -4078,17 +4077,17 @@ elf32_hppa_relocate_section (output_bfd, if (!((*info->callbacks->reloc_overflow) (info, sym_name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -4126,7 +4125,7 @@ elf32_hppa_finish_dynamic_symbol (output if (! ((struct elf32_hppa_link_hash_entry *) h)->pic_call) { Elf_Internal_Rela rel; - Elf32_External_Rela *loc; + bfd_byte *loc; /* Create a dynamic IPLT relocation for this entry. */ rel.r_offset = (h->plt.offset @@ -4145,8 +4144,8 @@ elf32_hppa_finish_dynamic_symbol (output rel.r_addend = value; } - loc = (Elf32_External_Rela *) htab->srelplt->contents; - loc += htab->srelplt->reloc_count++; + loc = htab->srelplt->contents; + loc += htab->srelplt->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (htab->splt->output_section->owner, &rel, loc); } @@ -4171,7 +4170,7 @@ elf32_hppa_finish_dynamic_symbol (output if (h->got.offset != (bfd_vma) -1) { Elf_Internal_Rela rel; - Elf32_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -4204,8 +4203,8 @@ elf32_hppa_finish_dynamic_symbol (output rel.r_addend = 0; } - loc = (Elf32_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); } @@ -4213,7 +4212,7 @@ elf32_hppa_finish_dynamic_symbol (output { asection *s; Elf_Internal_Rela rel; - Elf32_External_Rela *loc; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -4229,7 +4228,7 @@ elf32_hppa_finish_dynamic_symbol (output + h->root.u.def.section->output_section->vma); rel.r_addend = 0; rel.r_info = ELF32_R_INFO (h->dynindx, R_PARISC_COPY); - loc = (Elf32_External_Rela *) s->contents + s->reloc_count++; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); } @@ -4241,7 +4240,7 @@ elf32_hppa_finish_dynamic_symbol (output sym->st_shndx = SHN_ABS; } - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -4267,7 +4266,7 @@ elf32_hppa_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf32_hppa_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -4314,23 +4313,28 @@ elf32_hppa_finish_dynamic_sections (outp case DT_PLTRELSZ: s = htab->srelplt; - if (s->_cooked_size != 0) - dyn.d_un.d_val = s->_cooked_size; - else - dyn.d_un.d_val = s->_raw_size; + dyn.d_un.d_val = s->_raw_size; break; case DT_RELASZ: /* Don't count procedure linkage table relocs in the overall reloc count. */ - if (htab->srelplt != NULL) - { - s = htab->srelplt->output_section; - if (s->_cooked_size != 0) - dyn.d_un.d_val -= s->_cooked_size; - else - dyn.d_un.d_val -= s->_raw_size; - } + s = htab->srelplt; + if (s == NULL) + continue; + dyn.d_un.d_val -= s->_raw_size; + break; + + case DT_RELA: + /* We may not be using the standard ELF linker script. + If .rela.plt is the first .rela section, we adjust + DT_RELA to not include it. */ + s = htab->srelplt; + if (s == NULL) + continue; + if (dyn.d_un.d_ptr != s->output_section->vma + s->output_offset) + continue; + dyn.d_un.d_ptr += s->_raw_size; break; } @@ -4377,12 +4381,12 @@ elf32_hppa_finish_dynamic_sections (outp { (*_bfd_error_handler) (_(".got section not immediately after .plt section")); - return false; + return FALSE; } } } - return true; + return TRUE; } /* Tweak the OSABI field of the elf header. */ diff -uprN binutils-2.13.90.0.16/bfd/elf32-hppa.h binutils-2.13.90.0.18/bfd/elf32-hppa.h --- binutils-2.13.90.0.16/bfd/elf32-hppa.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/bfd/elf32-hppa.h Mon Dec 16 12:22:51 2002 @@ -4,8 +4,8 @@ in the Stratus FTX/Golf Object File Format (SED-1762) dated February 1994. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000 - Free Software Foundation, Inc. + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, + 2002 Free Software Foundation, Inc. Written by: @@ -42,15 +42,15 @@ int elf32_hppa_setup_section_lists void elf32_hppa_next_input_section PARAMS ((struct bfd_link_info *, asection *)); -boolean elf32_hppa_size_stubs - PARAMS ((bfd *, bfd *, struct bfd_link_info *, boolean, bfd_signed_vma, +bfd_boolean elf32_hppa_size_stubs + PARAMS ((bfd *, bfd *, struct bfd_link_info *, bfd_boolean, bfd_signed_vma, asection * (*) PARAMS ((const char *, asection *)), void (*) PARAMS ((void)))); -boolean elf32_hppa_set_gp +bfd_boolean elf32_hppa_set_gp PARAMS ((bfd *, struct bfd_link_info *)); -boolean elf32_hppa_build_stubs +bfd_boolean elf32_hppa_build_stubs PARAMS ((struct bfd_link_info *)); elf_hppa_reloc_type elf32_hppa_reloc_final_type diff -uprN binutils-2.13.90.0.16/bfd/elf32-i370.c binutils-2.13.90.0.18/bfd/elf32-i370.c --- binutils-2.13.90.0.16/bfd/elf32-i370.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/elf32-i370.c Mon Dec 16 12:22:51 2002 @@ -43,150 +43,150 @@ static reloc_howto_type i370_elf_howto_r 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 31 bit relocation. */ HOWTO (R_I370_ADDR31, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 31, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_ADDR31", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x7fffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 32 bit relocation. */ HOWTO (R_I370_ADDR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_ADDR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 16 bit relocation. */ HOWTO (R_I370_ADDR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_ADDR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 31-bit PC relative */ HOWTO (R_I370_REL31, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 31, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_REL31", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x7fffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32-bit PC relative */ HOWTO (R_I370_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A standard 12 bit relocation. */ HOWTO (R_I370_ADDR12, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_ADDR12", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 12-bit PC relative */ HOWTO (R_I370_REL12, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_REL12", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A standard 8 bit relocation. */ HOWTO (R_I370_ADDR8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_ADDR8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 8-bit PC relative */ HOWTO (R_I370_REL8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_REL8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* This is used only by the dynamic linker. The symbol should exist both in the object being run and in some shared library. The @@ -197,15 +197,15 @@ static reloc_howto_type i370_elf_howto_r 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_COPY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used only by the dynamic linker. When the object is run, this longword is set to the load address of the object, plus the @@ -214,25 +214,26 @@ static reloc_howto_type i370_elf_howto_r 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_I370_RELATIVE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; -static void i370_elf_howto_init PARAMS ((void)); +static void i370_elf_howto_init + PARAMS ((void)); static reloc_howto_type *i370_elf_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); - -static void i370_elf_info_to_howto PARAMS ((bfd *abfd, arelent *cache_ptr, - Elf32_Internal_Rela *dst)); -static boolean i370_elf_set_private_flags PARAMS ((bfd *, flagword)); +static void i370_elf_info_to_howto + PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)); +static bfd_boolean i370_elf_set_private_flags + PARAMS ((bfd *, flagword)); /* Initialize the i370_elf_howto_table, so that linear accesses can be done. */ @@ -275,47 +276,36 @@ i370_elf_reloc_type_lookup (abfd, code) return i370_elf_howto_table[ (int)i370_reloc ]; }; -static boolean i370_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); - -static boolean i370_elf_relocate_section PARAMS ((bfd *, - struct bfd_link_info *info, - bfd *, - asection *, - bfd_byte *, - Elf_Internal_Rela *relocs, - Elf_Internal_Sym *local_syms, - asection **)); +static bfd_boolean i370_elf_merge_private_bfd_data + PARAMS ((bfd *, bfd *)); +static bfd_boolean i370_elf_relocate_section + PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, + asection **)); static void i370_elf_post_process_headers PARAMS ((bfd *, struct bfd_link_info *)); - -static boolean i370_elf_create_dynamic_sections PARAMS ((bfd *, - struct bfd_link_info *)); - -static boolean i370_elf_section_from_shdr PARAMS ((bfd *, - Elf32_Internal_Shdr *, - const char *)); -static boolean i370_elf_fake_sections PARAMS ((bfd *, - Elf32_Internal_Shdr *, - asection *)); +static bfd_boolean i370_elf_create_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean i370_elf_section_from_shdr + PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); +static bfd_boolean i370_elf_fake_sections + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); #if 0 static elf_linker_section_t *i370_elf_create_linker_section - PARAMS ((bfd *abfd, - struct bfd_link_info *info, + PARAMS ((bfd *abfd, struct bfd_link_info *info, enum elf_linker_section_enum)); #endif -static boolean i370_elf_check_relocs PARAMS ((bfd *, - struct bfd_link_info *, - asection *, - const Elf_Internal_Rela *)); - -static boolean i370_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, - struct elf_link_hash_entry *)); - -static boolean i370_elf_adjust_dynindx PARAMS ((struct elf_link_hash_entry *, PTR)); - -static boolean i370_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); - -static boolean i370_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean i370_elf_check_relocs + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); +static bfd_boolean i370_elf_adjust_dynamic_symbol + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); +static bfd_boolean i370_elf_adjust_dynindx + PARAMS ((struct elf_link_hash_entry *, PTR)); +static bfd_boolean i370_elf_size_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean i370_elf_finish_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); /* The name of the dynamic interpreter. This is put in the .interp section. */ @@ -328,7 +318,7 @@ static void i370_elf_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { if (!i370_elf_howto_table[ R_I370_ADDR31 ]) /* Initialize howto table */ i370_elf_howto_init (); @@ -341,7 +331,7 @@ i370_elf_info_to_howto (abfd, cache_ptr, * why are we bothering with them ??? */ /* Function to set whether a module needs the -mrelocatable bit set. */ -static boolean +static bfd_boolean i370_elf_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -350,13 +340,13 @@ i370_elf_set_private_flags (abfd, flags) || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking */ -static boolean +static bfd_boolean i370_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -366,13 +356,13 @@ i370_elf_merge_private_bfd_data (ibfd, o if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; if (!elf_flags_init (obfd)) /* First call, no flags set */ { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = new_flags; } @@ -386,10 +376,10 @@ i370_elf_merge_private_bfd_data (ibfd, o bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } /* Handle an i370 specific section when reading an object file. This @@ -399,17 +389,17 @@ i370_elf_merge_private_bfd_data (ibfd, o * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_section_from_shdr (abfd, hdr, name) bfd *abfd; - Elf32_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; const char *name; { asection *newsect; flagword flags; if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; newsect = hdr->bfd_section; flags = bfd_get_section_flags (abfd, newsect); @@ -420,7 +410,7 @@ i370_elf_section_from_shdr (abfd, hdr, n flags |= SEC_SORT_ENTRIES; bfd_set_section_flags (abfd, newsect, flags); - return true; + return TRUE; } /* Set up any other section flags and such that may be necessary. */ @@ -429,10 +419,10 @@ i370_elf_section_from_shdr (abfd, hdr, n * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_fake_sections (abfd, shdr, asect) bfd *abfd ATTRIBUTE_UNUSED; - Elf32_Internal_Shdr *shdr; + Elf_Internal_Shdr *shdr; asection *asect; { if ((asect->flags & SEC_EXCLUDE) != 0) @@ -441,7 +431,7 @@ i370_elf_fake_sections (abfd, shdr, asec if ((asect->flags & SEC_SORT_ENTRIES) != 0) shdr->sh_type = SHT_ORDERED; - return true; + return TRUE; } #if 0 @@ -473,7 +463,7 @@ i370_elf_create_linker_section (abfd, in defaults = zero_section; defaults.which = which; - defaults.hole_written_p = false; + defaults.hole_written_p = FALSE; defaults.alignment = 2; /* Both of these sections are (technically) created by the user @@ -530,7 +520,7 @@ i370_elf_create_linker_section (abfd, in * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -539,7 +529,7 @@ i370_elf_create_dynamic_sections (abfd, flagword flags; if (!_bfd_elf_create_dynamic_sections(abfd, info)) - return false; + return FALSE; flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); @@ -547,7 +537,7 @@ i370_elf_create_dynamic_sections (abfd, s = bfd_make_section (abfd, ".dynsbss"); if (s == NULL || ! bfd_set_section_flags (abfd, s, SEC_ALLOC)) - return false; + return FALSE; if (! info->shared) { @@ -555,7 +545,7 @@ i370_elf_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; } /* xxx beats me, seem to need a rela.text ... */ @@ -563,8 +553,8 @@ i370_elf_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; - return true; + return FALSE; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -577,7 +567,7 @@ i370_elf_create_dynamic_sections (abfd, * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -615,7 +605,7 @@ i370_elf_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -626,7 +616,7 @@ i370_elf_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -677,7 +667,7 @@ i370_elf_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -687,7 +677,7 @@ i370_elf_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Increment the index of a dynamic symbol by a given amount. Called @@ -697,7 +687,7 @@ i370_elf_adjust_dynamic_symbol (info, h) * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_adjust_dynindx (h, cparg) struct elf_link_hash_entry *h; PTR cparg; @@ -716,7 +706,7 @@ i370_elf_adjust_dynindx (h, cparg) if (h->dynindx != -1) h->dynindx += *cp; - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ @@ -725,16 +715,16 @@ i370_elf_adjust_dynindx (h, cparg) * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean plt; - boolean relocs; - boolean reltext; + bfd_boolean plt; + bfd_boolean relocs; + bfd_boolean reltext; #ifdef DEBUG fprintf (stderr, "i370_elf_size_dynamic_sections called\n"); @@ -777,13 +767,13 @@ i370_elf_size_dynamic_sections (output_b /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - plt = false; - relocs = false; - reltext = false; + plt = FALSE; + relocs = FALSE; + reltext = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -791,7 +781,7 @@ i370_elf_size_dynamic_sections (output_b /* It's OK to base decisions on the section name, because none of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strcmp (name, ".plt") == 0) { @@ -799,12 +789,12 @@ i370_elf_size_dynamic_sections (output_b { /* Strip this section if we don't need it; see the comment below. */ - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strncmp (name, ".rela", 5) == 0) @@ -820,7 +810,7 @@ i370_elf_size_dynamic_sections (output_b adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { @@ -828,7 +818,7 @@ i370_elf_size_dynamic_sections (output_b const char *outname; /* Remember whether there are any relocation sections. */ - relocs = true; + relocs = TRUE; /* If this relocation section applies to a read only section, then we probably need a DT_TEXTREL entry. */ @@ -838,7 +828,7 @@ i370_elf_size_dynamic_sections (output_b if (target != NULL && (target->flags & SEC_READONLY) != 0 && (target->flags & SEC_ALLOC) != 0) - reltext = true; + reltext = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -873,7 +863,7 @@ i370_elf_size_dynamic_sections (output_b /* Allocate memory for the section contents. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -889,7 +879,7 @@ i370_elf_size_dynamic_sections (output_b if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (plt) @@ -898,7 +888,7 @@ i370_elf_size_dynamic_sections (output_b || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -906,13 +896,13 @@ i370_elf_size_dynamic_sections (output_b if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; } if (reltext) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; info->flags |= DF_TEXTREL; } } @@ -955,7 +945,7 @@ i370_elf_size_dynamic_sections (output_b elf_hash_table (info)->dynsymcount += c; } - return true; + return TRUE; } /* Look through the relocs for a section during the first phase, and @@ -966,7 +956,7 @@ i370_elf_size_dynamic_sections (output_b * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -982,7 +972,7 @@ i370_elf_check_relocs (abfd, info, sec, asection *sreloc; if (info->relocateable) - return true; + return TRUE; #ifdef DEBUG fprintf (stderr, "i370_elf_check_relocs called for section %s in %s\n", @@ -1026,7 +1016,7 @@ i370_elf_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), name + 5) == 0); @@ -1044,7 +1034,7 @@ i370_elf_check_relocs (abfd, info, sec, if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } } @@ -1059,7 +1049,7 @@ i370_elf_check_relocs (abfd, info, sec, } } - return true; + return TRUE; } /* Finish up the dynamic sections. */ @@ -1068,7 +1058,7 @@ i370_elf_check_relocs (abfd, info, sec, * just enough to allow glibc-2.1 ld.so to compile & link. */ -static boolean +static bfd_boolean i370_elf_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -1097,16 +1087,16 @@ i370_elf_finish_dynamic_sections (output { Elf_Internal_Dyn dyn; const char *name; - boolean size; + bfd_boolean size; bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn); switch (dyn.d_tag) { - case DT_PLTGOT: name = ".plt"; size = false; break; - case DT_PLTRELSZ: name = ".rela.plt"; size = true; break; - case DT_JMPREL: name = ".rela.plt"; size = false; break; - default: name = NULL; size = false; break; + case DT_PLTGOT: name = ".plt"; size = FALSE; break; + case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break; + case DT_JMPREL: name = ".rela.plt"; size = FALSE; break; + default: name = NULL; size = FALSE; break; } if (name != NULL) @@ -1198,7 +1188,7 @@ i370_elf_finish_dynamic_sections (output maxdindx + 1; } - return true; + return TRUE; } /* The RELOCATE_SECTION function is called by the ELF backend linker @@ -1230,9 +1220,9 @@ i370_elf_finish_dynamic_sections (output section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean i370_elf_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) + contents, relocs, local_syms, local_sections) bfd *output_bfd; struct bfd_link_info *info; bfd *input_bfd; @@ -1242,17 +1232,17 @@ i370_elf_relocate_section (output_bfd, i Elf_Internal_Sym *local_syms; asection **local_sections; { - Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; + Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd); - bfd *dynobj = elf_hash_table (info)->dynobj; - Elf_Internal_Rela *rel = relocs; - Elf_Internal_Rela *relend = relocs + input_section->reloc_count; - asection *sreloc = NULL; + bfd *dynobj = elf_hash_table (info)->dynobj; + Elf_Internal_Rela *rel = relocs; + Elf_Internal_Rela *relend = relocs + input_section->reloc_count; + asection *sreloc = NULL; bfd_vma *local_got_offsets; - boolean ret = true; + bfd_boolean ret = TRUE; if (info->relocateable) - return true; + return TRUE; #ifdef DEBUG fprintf (stderr, "i370_elf_relocate_section called for %s section %s, %ld relocations%s\n", @@ -1290,7 +1280,7 @@ i370_elf_relocate_section (output_bfd, i (int) r_type); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } @@ -1349,8 +1339,8 @@ i370_elf_relocate_section (output_bfd, i input_bfd, input_section, rel->r_offset, - true); - ret = false; + TRUE); + ret = FALSE; continue; } } @@ -1364,7 +1354,7 @@ i370_elf_relocate_section (output_bfd, i (int) r_type, sym_name); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; case (int)R_I370_NONE: @@ -1388,6 +1378,7 @@ i370_elf_relocate_section (output_bfd, i && r_symndx != 0) { Elf_Internal_Rela outrel; + bfd_byte *loc; int skip; #ifdef DEBUG @@ -1409,7 +1400,7 @@ i370_elf_relocate_section (output_bfd, i elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -1469,7 +1460,7 @@ i370_elf_relocate_section (output_bfd, i else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -1493,11 +1484,9 @@ i370_elf_relocate_section (output_bfd, i } } - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); /* This reloc will be computed at runtime, so there's no need to do anything now, unless this is a RELATIVE @@ -1518,7 +1507,7 @@ i370_elf_relocate_section (output_bfd, i sym_name); bfd_set_error (bfd_error_invalid_operation); - ret = false; + ret = FALSE; continue; } @@ -1542,7 +1531,7 @@ i370_elf_relocate_section (output_bfd, i if (r != bfd_reloc_ok) { - ret = false; + ret = FALSE; switch (r) { default: @@ -1637,7 +1626,8 @@ i370_elf_post_process_headers (abfd, lin #define elf_backend_post_process_headers i370_elf_post_process_headers -static int i370_noop PARAMS ((void)); +static int i370_noop + PARAMS ((void)); static int i370_noop () { @@ -1647,16 +1637,16 @@ static int i370_noop () /* we need to define these at least as no-ops to link glibc ld.so */ #define elf_backend_add_symbol_hook \ - (boolean (*) PARAMS ((bfd *, struct bfd_link_info *, \ - const Elf_Internal_Sym *, const char **, flagword *, \ - asection **, bfd_vma *))) i370_noop + (bfd_boolean (*) \ + PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, \ + const char **, flagword *, asection **, bfd_vma *))) i370_noop #define elf_backend_finish_dynamic_symbol \ - (boolean (*) PARAMS ((bfd *, struct bfd_link_info *, \ - struct elf_link_hash_entry *, \ - Elf_Internal_Sym *))) i370_noop + (bfd_boolean (*) \ + PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, \ + Elf_Internal_Sym *))) i370_noop #define elf_backend_additional_program_headers \ - (int (*) PARAMS ((bfd *))) i370_noop + (int (*) PARAMS ((bfd *))) i370_noop #define elf_backend_modify_segment_map \ - (boolean (*) PARAMS ((bfd *))) i370_noop + (bfd_boolean (*) PARAMS ((bfd *))) i370_noop #include "elf32-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf32-i386.c binutils-2.13.90.0.18/bfd/elf32-i386.c --- binutils-2.13.90.0.16/bfd/elf32-i386.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf32-i386.c Tue Jan 21 10:21:32 2003 @@ -1,22 +1,22 @@ /* Intel 80386/80486-specific support for 32-bit ELF - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -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. */ + 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. */ #include "bfd.h" #include "sysdep.h" @@ -27,106 +27,106 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *elf_i386_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf_i386_info_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void elf_i386_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); -static boolean elf_i386_is_local_label_name + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean elf_i386_is_local_label_name PARAMS ((bfd *, const char *)); -static boolean elf_i386_grok_prstatus +static bfd_boolean elf_i386_grok_prstatus PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static boolean elf_i386_grok_psinfo +static bfd_boolean elf_i386_grok_psinfo PARAMS ((bfd *abfd, Elf_Internal_Note *note)); static struct bfd_hash_entry *link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *elf_i386_link_hash_table_create PARAMS ((bfd *)); -static boolean create_got_section - PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf_i386_create_dynamic_sections - PARAMS((bfd *, struct bfd_link_info *)); +static bfd_boolean create_got_section + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean elf_i386_create_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); static void elf_i386_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); static int elf_i386_tls_transition PARAMS ((struct bfd_link_info *, int, int)); -static boolean elf_i386_mkobject - PARAMS((bfd *)); -static boolean elf_i386_object_p - PARAMS((bfd *)); -static boolean elf_i386_check_relocs +static bfd_boolean elf_i386_mkobject + PARAMS ((bfd *)); +static bfd_boolean elf_i386_object_p + PARAMS ((bfd *)); +static bfd_boolean elf_i386_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *elf_i386_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_i386_gc_sweep_hook +static bfd_boolean elf_i386_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf_i386_adjust_dynamic_symbol +static bfd_boolean elf_i386_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean allocate_dynrelocs +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_i386_fake_sections - PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *)); -static boolean elf_i386_size_dynamic_sections +static bfd_boolean elf_i386_fake_sections + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); +static bfd_boolean elf_i386_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static bfd_vma dtpoff_base PARAMS ((struct bfd_link_info *)); static bfd_vma tpoff PARAMS ((struct bfd_link_info *, bfd_vma)); -static boolean elf_i386_relocate_section +static bfd_boolean elf_i386_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf_i386_finish_dynamic_symbol +static bfd_boolean elf_i386_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); static enum elf_reloc_type_class elf_i386_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean elf_i386_finish_dynamic_sections +static bfd_boolean elf_i386_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -#define USE_REL 1 /* 386 uses REL relocations instead of RELA */ +#define USE_REL 1 /* 386 uses REL relocations instead of RELA. */ #include "elf/i386.h" static reloc_howto_type elf_howto_table[]= { - HOWTO(R_386_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield, + HOWTO(R_386_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_NONE", - true, 0x00000000, 0x00000000, false), - HOWTO(R_386_32, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0x00000000, 0x00000000, FALSE), + HOWTO(R_386_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_32", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_PC32, 0, 2, 32, true, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_PC32", - true, 0xffffffff, 0xffffffff, true), - HOWTO(R_386_GOT32, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, TRUE), + HOWTO(R_386_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_GOT32", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_PLT32, 0, 2, 32, true, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_PLT32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_PLT32", - true, 0xffffffff, 0xffffffff, true), - HOWTO(R_386_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, TRUE), + HOWTO(R_386_COPY, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_COPY", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_GLOB_DAT, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_GLOB_DAT, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_GLOB_DAT", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_JUMP_SLOT, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_JUMP_SLOT, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_JUMP_SLOT", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_RELATIVE, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_RELATIVE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_RELATIVE", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_GOTOFF, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_GOTOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_GOTOFF", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_GOTPC, 0, 2, 32, true, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_GOTPC, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_GOTPC", - true, 0xffffffff, 0xffffffff, true), + TRUE, 0xffffffff, 0xffffffff, TRUE), /* We have a gap in the reloc numbers here. R_386_standard counts the number up to this point, and @@ -136,58 +136,58 @@ static reloc_howto_type elf_howto_table[ #define R_386_ext_offset ((unsigned int) R_386_TLS_TPOFF - R_386_standard) /* These relocs are a GNU extension. */ - HOWTO(R_386_TLS_TPOFF, 0, 2, 32, false, 0, complain_overflow_bitfield, + HOWTO(R_386_TLS_TPOFF, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_TPOFF", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_IE, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_IE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_IE", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_GOTIE, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_GOTIE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_GOTIE", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_LE, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_LE, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_LE", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_GD, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_GD, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_GD", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_LDM, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_LDM, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_LDM", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_16, 0, 1, 16, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_16", - true, 0xffff, 0xffff, false), - HOWTO(R_386_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield, + TRUE, 0xffff, 0xffff, FALSE), + HOWTO(R_386_PC16, 0, 1, 16, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_PC16", - true, 0xffff, 0xffff, true), - HOWTO(R_386_8, 0, 0, 8, false, 0, complain_overflow_bitfield, + TRUE, 0xffff, 0xffff, TRUE), + HOWTO(R_386_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_8", - true, 0xff, 0xff, false), - HOWTO(R_386_PC8, 0, 0, 8, true, 0, complain_overflow_signed, + TRUE, 0xff, 0xff, FALSE), + HOWTO(R_386_PC8, 0, 0, 8, TRUE, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_386_PC8", - true, 0xff, 0xff, true), + TRUE, 0xff, 0xff, TRUE), #define R_386_ext ((unsigned int) R_386_PC8 + 1 - R_386_ext_offset) #define R_386_tls_offset ((unsigned int) R_386_TLS_LDO_32 - R_386_ext) /* These are common with Solaris TLS implementation. */ - HOWTO(R_386_TLS_LDO_32, 0, 2, 32, false, 0, complain_overflow_bitfield, + HOWTO(R_386_TLS_LDO_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_LDO_32", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_IE_32, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_IE_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_IE_32", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_LE_32, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_LE_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_LE_32", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_DTPMOD32, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_DTPMOD32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_DTPMOD32", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_DTPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_DTPOFF32", - true, 0xffffffff, 0xffffffff, false), - HOWTO(R_386_TLS_TPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield, + TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO(R_386_TLS_TPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_386_TLS_TPOFF32", - true, 0xffffffff, 0xffffffff, false), + TRUE, 0xffffffff, 0xffffffff, FALSE), /* Another gap. */ #define R_386_tls ((unsigned int) R_386_TLS_TPOFF32 + 1 - R_386_tls_offset) @@ -198,30 +198,30 @@ static reloc_howto_type elf_howto_table[ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_386_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage. */ HOWTO (R_386_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_386_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ #define R_386_vt ((unsigned int) R_386_GNU_VTENTRY + 1 - R_386_vt_offset) @@ -374,9 +374,9 @@ elf_i386_reloc_type_lookup (abfd, code) static void elf_i386_info_to_howto (abfd, cache_ptr, dst) - bfd *abfd ATTRIBUTE_UNUSED; - arelent *cache_ptr ATTRIBUTE_UNUSED; - Elf32_Internal_Rela *dst ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; + arelent *cache_ptr ATTRIBUTE_UNUSED; + Elf_Internal_Rela *dst ATTRIBUTE_UNUSED; { abort (); } @@ -385,7 +385,7 @@ static void elf_i386_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type = ELF32_R_TYPE (dst->r_info); unsigned int indx; @@ -411,19 +411,19 @@ elf_i386_info_to_howto_rel (abfd, cache_ If so, we should move the .X recognition into _bfd_elf_is_local_label_name. */ -static boolean +static bfd_boolean elf_i386_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == '.' && name[1] == 'X') - return true; + return TRUE; return _bfd_elf_is_local_label_name (abfd, name); } /* Support for core dump NOTE sections. */ -static boolean +static bfd_boolean elf_i386_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -434,7 +434,7 @@ elf_i386_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 144: /* Linux/i386 */ /* pr_cursig */ @@ -455,7 +455,7 @@ elf_i386_grok_prstatus (abfd, note) raw_size, note->descpos + offset); } -static boolean +static bfd_boolean elf_i386_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -463,7 +463,7 @@ elf_i386_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 124: /* Linux/i386 elf_prpsinfo */ elf_tdata (abfd)->core_program @@ -484,7 +484,7 @@ elf_i386_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } /* Functions for the i386 ELF linker. @@ -611,18 +611,18 @@ struct elf_i386_obj_tdata #define elf_i386_local_got_tls_type(abfd) \ (elf_i386_tdata (abfd)->local_got_tls_type) -static boolean +static bfd_boolean elf_i386_mkobject (abfd) bfd *abfd; { bfd_size_type amt = sizeof (struct elf_i386_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); if (abfd->tdata.any == NULL) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean elf_i386_object_p (abfd) bfd *abfd; { @@ -631,10 +631,10 @@ elf_i386_object_p (abfd) bfd_size_type amt = sizeof (struct elf_i386_obj_tdata); new_tdata = bfd_zalloc (abfd, amt); if (new_tdata == NULL) - return false; + return FALSE; new_tdata->root = *abfd->tdata.elf_obj_data; abfd->tdata.any = new_tdata; - return true; + return TRUE; } /* i386 ELF linker hash table. */ @@ -733,7 +733,7 @@ elf_i386_link_hash_table_create (abfd) /* Create .got, .gotplt, and .rel.got sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean create_got_section (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -741,7 +741,7 @@ create_got_section (dynobj, info) struct elf_i386_link_hash_table *htab; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; htab = elf_i386_hash_table (info); htab->sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -756,15 +756,15 @@ create_got_section (dynobj, info) | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2)) - return false; - return true; + return FALSE; + return TRUE; } /* Create .plt, .rel.plt, .got, .got.plt, .rel.got, .dynbss, and .rel.bss sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean elf_i386_create_dynamic_sections (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -773,10 +773,10 @@ elf_i386_create_dynamic_sections (dynobj htab = elf_i386_hash_table (info); if (!htab->sgot && !create_got_section (dynobj, info)) - return false; + return FALSE; if (!_bfd_elf_create_dynamic_sections (dynobj, info)) - return false; + return FALSE; htab->splt = bfd_get_section_by_name (dynobj, ".plt"); htab->srelplt = bfd_get_section_by_name (dynobj, ".rel.plt"); @@ -788,7 +788,7 @@ elf_i386_create_dynamic_sections (dynobj || (!info->shared && !htab->srelbss)) abort (); - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -878,7 +878,7 @@ elf_i386_tls_transition (info, r_type, i calculate needed space in the global offset table, procedure linkage table, and dynamic reloc sections. */ -static boolean +static bfd_boolean elf_i386_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -893,7 +893,7 @@ elf_i386_check_relocs (abfd, info, sec, asection *sreloc; if (info->relocateable) - return true; + return TRUE; htab = elf_i386_hash_table (info); symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -916,7 +916,7 @@ elf_i386_check_relocs (abfd, info, sec, (*_bfd_error_handler) (_("%s: bad symbol index: %d"), bfd_archive_filename (abfd), r_symndx); - return false; + return FALSE; } if (r_symndx < symtab_hdr->sh_info) @@ -1000,7 +1000,7 @@ elf_i386_check_relocs (abfd, info, sec, local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; elf_i386_local_got_tls_type (abfd) = (char *) (local_got_refcounts + symtab_hdr->sh_info); @@ -1025,7 +1025,7 @@ elf_i386_check_relocs (abfd, info, sec, (_("%s: `%s' accessed both as normal and thread local symbol"), bfd_archive_filename (abfd), h ? h->root.root.string : ""); - return false; + return FALSE; } } @@ -1047,7 +1047,7 @@ elf_i386_check_relocs (abfd, info, sec, if (htab->elf.dynobj == NULL) htab->elf.dynobj = abfd; if (!create_got_section (htab->elf.dynobj, info)) - return false; + return FALSE; } if (r_type != R_386_TLS_IE) break; @@ -1058,7 +1058,7 @@ elf_i386_check_relocs (abfd, info, sec, if (!info->shared) break; info->flags |= DF_STATIC_TLS; - /* Fall through */ + /* Fall through */ case R_386_32: case R_386_PC32: @@ -1128,7 +1128,7 @@ elf_i386_check_relocs (abfd, info, sec, name = bfd_elf_string_from_elf_section (abfd, strndx, shnam); if (name == NULL) - return false; + return FALSE; if (strncmp (name, ".rel", 4) != 0 || strcmp (bfd_get_section_name (abfd, sec), @@ -1156,7 +1156,7 @@ elf_i386_check_relocs (abfd, info, sec, if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; } @@ -1177,7 +1177,7 @@ elf_i386_check_relocs (abfd, info, sec, s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf_i386_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -1190,7 +1190,7 @@ elf_i386_check_relocs (abfd, info, sec, p = ((struct elf_i386_dyn_relocs *) bfd_alloc (htab->elf.dynobj, amt)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -1208,14 +1208,14 @@ elf_i386_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_386_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_386_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; default: @@ -1223,7 +1223,7 @@ elf_i386_check_relocs (abfd, info, sec, } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -1268,7 +1268,7 @@ elf_i386_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf_i386_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -1371,7 +1371,7 @@ elf_i386_gc_sweep_hook (abfd, info, sec, break; } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -1380,7 +1380,7 @@ elf_i386_gc_sweep_hook (abfd, info, sec, change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf_i386_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1413,7 +1413,7 @@ elf_i386_adjust_dynamic_symbol (info, h) h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - return true; + return TRUE; } else /* It's possible that we incorrectly decided a .plt reloc was @@ -1432,7 +1432,7 @@ elf_i386_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1443,18 +1443,18 @@ elf_i386_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* If -z nocopyreloc was given, we won't generate them either. */ if (info->nocopyreloc) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } eh = (struct elf_i386_link_hash_entry *) h; @@ -1470,7 +1470,7 @@ elf_i386_adjust_dynamic_symbol (info, h) if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -1506,7 +1506,7 @@ elf_i386_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1516,7 +1516,7 @@ elf_i386_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* This is the condition under which elf_i386_finish_dynamic_symbol @@ -1533,7 +1533,7 @@ elf_i386_adjust_dynamic_symbol (info, h) /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1544,7 +1544,7 @@ allocate_dynrelocs (h, inf) struct elf_i386_dyn_relocs *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) /* When warning symbols are created, they **replace** the "real" @@ -1564,7 +1564,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) @@ -1622,7 +1622,7 @@ allocate_dynrelocs (h, inf) else if (h->got.refcount > 0) { asection *s; - boolean dyn; + bfd_boolean dyn; int tls_type = elf_i386_hash_entry(h)->tls_type; /* Make sure this symbol is output as a dynamic symbol. @@ -1631,7 +1631,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -1661,7 +1661,7 @@ allocate_dynrelocs (h, inf) eh = (struct elf_i386_link_hash_entry *) h; if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* In the shared -Bsymbolic case, discard space allocated for dynamic pc-relative relocs against symbols which turn out to be @@ -1707,7 +1707,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -1728,12 +1728,12 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf32_External_Rel); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1756,15 +1756,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf_i386_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -1772,7 +1772,7 @@ elf_i386_size_dynamic_sections (output_b struct elf_i386_link_hash_table *htab; bfd *dynobj; asection *s; - boolean relocs; + bfd_boolean relocs; bfd *ibfd; htab = elf_i386_hash_table (info); @@ -1885,7 +1885,7 @@ elf_i386_size_dynamic_sections (output_b /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -1901,7 +1901,7 @@ elf_i386_size_dynamic_sections (output_b else if (strncmp (bfd_get_section_name (dynobj, s), ".rel", 4) == 0) { if (s->_raw_size != 0 && s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1936,7 +1936,7 @@ elf_i386_size_dynamic_sections (output_b of garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } if (htab->elf.dynamic_sections_created) @@ -1952,7 +1952,7 @@ elf_i386_size_dynamic_sections (output_b if (! info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->splt->_raw_size != 0) @@ -1961,7 +1961,7 @@ elf_i386_size_dynamic_sections (output_b || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_REL) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -1969,7 +1969,7 @@ elf_i386_size_dynamic_sections (output_b if (!add_dynamic_entry (DT_REL, 0) || !add_dynamic_entry (DT_RELSZ, 0) || !add_dynamic_entry (DT_RELENT, sizeof (Elf32_External_Rel))) - return false; + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -1980,22 +1980,22 @@ elf_i386_size_dynamic_sections (output_b if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* Set the correct type for an x86 ELF section. We do this by the section name, which is a hack, but ought to work. */ -static boolean +static bfd_boolean elf_i386_fake_sections (abfd, hdr, sec) bfd *abfd ATTRIBUTE_UNUSED; - Elf32_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; asection *sec; { register const char *name; @@ -2021,7 +2021,7 @@ elf_i386_fake_sections (abfd, hdr, sec) if (strcmp (name, ".reloc") == 0) hdr->sh_type = SHT_PROGBITS; - return true; + return TRUE; } /* Return the base VMA address which should be subtracted from real addresses @@ -2058,7 +2058,7 @@ tpoff (info, address) /* Relocate an i386 ELF section. */ -static boolean +static bfd_boolean elf_i386_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -2094,7 +2094,7 @@ elf_i386_relocate_section (output_bfd, i asection *sec; bfd_vma off; bfd_vma relocation; - boolean unresolved_reloc; + bfd_boolean unresolved_reloc; bfd_reloc_status_type r; unsigned int indx; int tls_type; @@ -2111,7 +2111,7 @@ elf_i386_relocate_section (output_bfd, i >= R_386_tls - R_386_ext)) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = elf_howto_table + indx; @@ -2164,7 +2164,7 @@ elf_i386_relocate_section (output_bfd, i h = NULL; sym = NULL; sec = NULL; - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -2252,7 +2252,7 @@ elf_i386_relocate_section (output_bfd, i relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; else relocation = (h->root.u.def.value + sec->output_section->vma @@ -2272,7 +2272,7 @@ elf_i386_relocate_section (output_bfd, i input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; } } @@ -2286,7 +2286,7 @@ elf_i386_relocate_section (output_bfd, i if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; dyn = htab->elf.dynamic_sections_created; @@ -2319,7 +2319,7 @@ elf_i386_relocate_section (output_bfd, i } } else - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -2340,20 +2340,20 @@ elf_i386_relocate_section (output_bfd, i if (info->shared) { - asection *srelgot; - Elf_Internal_Rel outrel; - Elf32_External_Rel *loc; + asection *s; + Elf_Internal_Rela outrel; + bfd_byte *loc; - srelgot = htab->srelgot; - if (srelgot == NULL) + s = htab->srelgot; + if (s == NULL) abort (); outrel.r_offset = (htab->sgot->output_section->vma + htab->sgot->output_offset + off); outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE); - loc = (Elf32_External_Rel *) srelgot->contents; - loc += srelgot->reloc_count++; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); } @@ -2382,7 +2382,7 @@ elf_i386_relocate_section (output_bfd, i case R_386_GOTPC: /* Use global offset table as symbol value. */ relocation = htab->sgot->output_section->vma; - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_386_PLT32: @@ -2406,7 +2406,7 @@ elf_i386_relocate_section (output_bfd, i relocation = (htab->splt->output_section->vma + htab->splt->output_offset + h->plt.offset); - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_386_32: @@ -2436,25 +2436,25 @@ elf_i386_relocate_section (output_bfd, i || h->root.type == bfd_link_hash_undefweak || h->root.type == bfd_link_hash_undefined))) { - Elf_Internal_Rel outrel; - boolean skip, relocate; + Elf_Internal_Rela outrel; + bfd_byte *loc; + bfd_boolean skip, relocate; asection *sreloc; - Elf32_External_Rel *loc; /* When generating a shared object, these relocations are copied into the output file to be resolved at run time. */ - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -2471,7 +2471,7 @@ elf_i386_relocate_section (output_bfd, i else { /* This symbol is local, or marked to become local. */ - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (0, R_386_RELATIVE); } @@ -2479,8 +2479,8 @@ elf_i386_relocate_section (output_bfd, i if (sreloc == NULL) abort (); - loc = (Elf32_External_Rel *) sreloc->contents; - loc += sreloc->reloc_count++; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); /* If this reloc is against an external symbol, we do @@ -2495,9 +2495,9 @@ elf_i386_relocate_section (output_bfd, i case R_386_TLS_IE: if (info->shared) { - Elf_Internal_Rel outrel; + Elf_Internal_Rela outrel; + bfd_byte *loc; asection *sreloc; - Elf32_External_Rel *loc; outrel.r_offset = rel->r_offset + input_section->output_section->vma @@ -2506,8 +2506,8 @@ elf_i386_relocate_section (output_bfd, i sreloc = elf_section_data (input_section)->sreloc; if (sreloc == NULL) abort (); - loc = (Elf32_External_Rel *) sreloc->contents; - loc += sreloc->reloc_count++; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); } /* Fall through */ @@ -2726,8 +2726,8 @@ elf_i386_relocate_section (output_bfd, i off &= ~1; else { - Elf_Internal_Rel outrel; - Elf32_External_Rel *loc; + Elf_Internal_Rela outrel; + bfd_byte *loc; int dr_type, indx; if (htab->srelgot == NULL) @@ -2753,8 +2753,8 @@ elf_i386_relocate_section (output_bfd, i bfd_put_32 (output_bfd, 0, htab->sgot->contents + off); outrel.r_info = ELF32_R_INFO (indx, dr_type); - loc = (Elf32_External_Rel *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); if (r_type == R_386_TLS_GD) @@ -2774,9 +2774,8 @@ elf_i386_relocate_section (output_bfd, i R_386_TLS_DTPOFF32); outrel.r_offset += 4; htab->srelgot->reloc_count++; - loc++; - bfd_elf32_swap_reloc_out (output_bfd, &outrel, - loc); + loc += sizeof (Elf32_External_Rel); + bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); } } else if (tls_type == GOT_TLS_IE_BOTH) @@ -2787,7 +2786,7 @@ elf_i386_relocate_section (output_bfd, i outrel.r_info = ELF32_R_INFO (indx, R_386_TLS_TPOFF); outrel.r_offset += 4; htab->srelgot->reloc_count++; - loc++; + loc += sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); } @@ -2807,7 +2806,7 @@ elf_i386_relocate_section (output_bfd, i relocation += 4; if (r_type == R_386_TLS_IE) relocation += htab->sgot->output_section->vma; - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -2906,8 +2905,8 @@ elf_i386_relocate_section (output_bfd, i off &= ~1; else { - Elf_Internal_Rel outrel; - Elf32_External_Rel *loc; + Elf_Internal_Rela outrel; + bfd_byte *loc; if (htab->srelgot == NULL) abort (); @@ -2920,13 +2919,13 @@ elf_i386_relocate_section (output_bfd, i bfd_put_32 (output_bfd, 0, htab->sgot->contents + off + 4); outrel.r_info = ELF32_R_INFO (0, R_386_TLS_DTPMOD32); - loc = (Elf32_External_Rel *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); htab->tls_ldm_got.offset |= 1; } relocation = htab->sgot->output_offset + off; - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_386_TLS_LDO_32: @@ -2941,9 +2940,9 @@ elf_i386_relocate_section (output_bfd, i case R_386_TLS_LE: if (info->shared) { - Elf_Internal_Rel outrel; + Elf_Internal_Rela outrel; asection *sreloc; - Elf32_External_Rel *loc; + bfd_byte *loc; int indx; outrel.r_offset = rel->r_offset @@ -2960,8 +2959,8 @@ elf_i386_relocate_section (output_bfd, i sreloc = elf_section_data (input_section)->sreloc; if (sreloc == NULL) abort (); - loc = (Elf32_External_Rel *) sreloc->contents; - loc += sreloc->reloc_count++; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc); if (indx) continue; @@ -2993,7 +2992,7 @@ elf_i386_relocate_section (output_bfd, i bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, h->root.root.string); - return false; + return FALSE; } r = _bfd_final_link_relocate (howto, input_bfd, input_section, @@ -3012,7 +3011,7 @@ elf_i386_relocate_section (output_bfd, i symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } @@ -3022,7 +3021,7 @@ elf_i386_relocate_section (output_bfd, i if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } else { @@ -3031,18 +3030,18 @@ elf_i386_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, name, (int) r); - return false; + return FALSE; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf_i386_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -3057,8 +3056,8 @@ elf_i386_finish_dynamic_symbol (output_b { bfd_vma plt_index; bfd_vma got_offset; - Elf_Internal_Rel rel; - Elf32_External_Rel *loc; + Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -3117,7 +3116,7 @@ elf_i386_finish_dynamic_symbol (output_b + htab->sgotplt->output_offset + got_offset); rel.r_info = ELF32_R_INFO (h->dynindx, R_386_JUMP_SLOT); - loc = (Elf32_External_Rel *) htab->srelplt->contents + plt_index; + loc = htab->srelplt->contents + plt_index * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &rel, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) @@ -3135,8 +3134,8 @@ elf_i386_finish_dynamic_symbol (output_b && elf_i386_hash_entry(h)->tls_type != GOT_TLS_GD && (elf_i386_hash_entry(h)->tls_type & GOT_TLS_IE) == 0) { - Elf_Internal_Rel rel; - Elf32_External_Rel *loc; + Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -3170,15 +3169,15 @@ elf_i386_finish_dynamic_symbol (output_b rel.r_info = ELF32_R_INFO (h->dynindx, R_386_GLOB_DAT); } - loc = (Elf32_External_Rel *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &rel, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { - Elf_Internal_Rel rel; - Elf32_External_Rel *loc; + Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -3192,8 +3191,8 @@ elf_i386_finish_dynamic_symbol (output_b + h->root.u.def.section->output_section->vma + h->root.u.def.section->output_offset); rel.r_info = ELF32_R_INFO (h->dynindx, R_386_COPY); - loc = (Elf32_External_Rel *) htab->srelbss->contents; - loc += htab->srelbss->reloc_count++; + loc = htab->srelbss->contents; + loc += htab->srelbss->reloc_count++ * sizeof (Elf32_External_Rel); bfd_elf32_swap_reloc_out (output_bfd, &rel, loc); } @@ -3202,7 +3201,7 @@ elf_i386_finish_dynamic_symbol (output_b || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -3227,7 +3226,7 @@ elf_i386_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf_i386_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -3266,15 +3265,13 @@ elf_i386_finish_dynamic_sections (output break; case DT_JMPREL: - dyn.d_un.d_ptr = htab->srelplt->output_section->vma; + s = htab->srelplt; + dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; break; case DT_PLTRELSZ: - s = htab->srelplt->output_section; - if (s->_cooked_size != 0) - dyn.d_un.d_val = s->_cooked_size; - else - dyn.d_un.d_val = s->_raw_size; + s = htab->srelplt; + dyn.d_un.d_val = s->_raw_size; break; case DT_RELSZ: @@ -3283,18 +3280,23 @@ elf_i386_finish_dynamic_sections (output included in the overall relocs (DT_REL). This is what Solaris does. However, UnixWare can not handle that case. Therefore, we override the DT_RELSZ entry - here to make it not include the JMPREL relocs. Since - the linker script arranges for .rel.plt to follow all - other relocation sections, we don't have to worry - about changing the DT_REL entry. */ - if (htab->srelplt != NULL) - { - s = htab->srelplt->output_section; - if (s->_cooked_size != 0) - dyn.d_un.d_val -= s->_cooked_size; - else - dyn.d_un.d_val -= s->_raw_size; - } + here to make it not include the JMPREL relocs. */ + s = htab->srelplt; + if (s == NULL) + continue; + dyn.d_un.d_val -= s->_raw_size; + break; + + case DT_REL: + /* We may not be using the standard ELF linker script. + If .rel.plt is the first .rel section, we adjust + DT_REL to not include it. */ + s = htab->srelplt; + if (s == NULL) + continue; + if (dyn.d_un.d_ptr != s->output_section->vma + s->output_offset) + continue; + dyn.d_un.d_ptr += s->_raw_size; break; } @@ -3345,7 +3347,7 @@ elf_i386_finish_dynamic_sections (output elf_section_data (htab->sgotplt->output_section)->this_hdr.sh_entsize = 4; } - return true; + return TRUE; } #define TARGET_LITTLE_SYM bfd_elf32_i386_vec @@ -3421,11 +3423,8 @@ elf_i386_post_process_headers (abfd, lin } #undef elf_backend_post_process_headers -#define elf_backend_post_process_headers elf_i386_post_process_headers - -#define elf32_bed elf32_i386_fbsd_bed +#define elf_backend_post_process_headers elf_i386_post_process_headers +#undef elf32_bed +#define elf32_bed elf32_i386_fbsd_bed #include "elf32-target.h" - -#undef elf_backend_post_process_headers -#undef elf32_bed diff -uprN binutils-2.13.90.0.16/bfd/elf32-i860.c binutils-2.13.90.0.18/bfd/elf32-i860.c --- binutils-2.13.90.0.16/bfd/elf32-i860.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-i860.c Mon Dec 16 12:22:51 2002 @@ -34,7 +34,7 @@ static reloc_howto_type *elf32_i860_relo PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void elf32_i860_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static bfd_reloc_status_type elf32_i860_relocate_splitn PARAMS ((bfd *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); @@ -48,7 +48,7 @@ static bfd_reloc_status_type elf32_i860_ static bfd_reloc_status_type elf32_i860_relocate_highadj PARAMS ((bfd *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); -static boolean elf32_i860_relocate_section +static bfd_boolean elf32_i860_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -56,7 +56,7 @@ static bfd_reloc_status_type i860_final_ PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); -static boolean elf32_i860_is_local_label_name +static bfd_boolean elf32_i860_is_local_label_name PARAMS ((bfd *, const char *)); /* This howto table is preliminary. */ @@ -67,480 +67,480 @@ static reloc_howto_type elf32_i860_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32-bit absolute relocation. */ HOWTO (R_860_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_COPY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_COPY", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_GLOB_DAT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_GLOB_DAT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_JUMP_SLOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_JUMP_SLOT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_RELATIVE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_RELATIVE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 26-bit PC-relative relocation. */ HOWTO (R_860_PC26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_PC26", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3ffffff, /* src_mask */ 0x3ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_PLT26, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_PLT26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 16-bit PC-relative relocation. */ HOWTO (R_860_PC16, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_PC16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x1f07ff, /* src_mask */ 0x1f07ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_LOW0, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOW0", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_SPLIT0, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_SPLIT0", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x1f07ff, /* src_mask */ 0x1f07ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOW1, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOW1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfffe, /* src_mask */ 0xfffe, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_SPLIT1, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_SPLIT1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x1f07fe, /* src_mask */ 0x1f07fe, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOW2, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOW2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfffc, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_SPLIT2, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_SPLIT2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x1f07fc, /* src_mask */ 0x1f07fc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOW3, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOW3", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfff8, /* src_mask */ 0xfff8, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOGOT0, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOGOT0", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_SPGOT0, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_SPGOT0", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_LOGOT1, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOGOT1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_SPGOT1, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_SPGOT1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_LOGOTOFF0, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOGOTOFF0", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_SPGOTOFF0, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_SPGOTOFF0", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOGOTOFF1, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOGOTOFF1", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_SPGOTOFF1, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_SPGOTOFF1", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOGOTOFF2, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOGOTOFF2", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOGOTOFF3, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOGOTOFF3", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_LOPC, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_LOPC", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_HIGHADJ, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_HIGHADJ", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_HAGOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_HAGOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_HAGOTOFF, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_HAGOTOFF", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_HAPC, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_HAPC", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_HIGH, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_HIGH", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_860_HIGOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_HIGOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_860_HIGOTOFF, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_860_HIGOTOFF", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; static unsigned char elf_code_to_howto_index[R_860_max + 1]; @@ -694,7 +694,7 @@ static void elf32_i860_info_to_howto_rela (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf64_Internal_Rela *elf_reloc; + Elf_Internal_Rela *elf_reloc; { bfd_reloc->howto = lookup_howto ((unsigned) ELF32_R_TYPE (elf_reloc->r_info)); @@ -859,25 +859,25 @@ i860_final_link_relocate (howto, input_b going to be the section symbol corresponding to the output section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean elf32_i860_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) - bfd * output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * relocs; - Elf_Internal_Sym * local_syms; - asection ** local_sections; + bfd *output_bfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; { - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -946,8 +946,8 @@ elf32_i860_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -1021,7 +1021,7 @@ elf32_i860_relocate_section (output_bfd, case bfd_reloc_undefined: r = info->callbacks->undefined_symbol - (info, name, input_bfd, input_section, rel->r_offset, true); + (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; case bfd_reloc_outofrange: @@ -1046,11 +1046,11 @@ elf32_i860_relocate_section (output_bfd, (info, msg, name, input_bfd, input_section, rel->r_offset); if (! r) - return false; + return FALSE; } } - return true; + return TRUE; } /* Return whether a symbol name implies a local label. SVR4/860 compilers @@ -1058,13 +1058,13 @@ elf32_i860_relocate_section (output_bfd, function prolog. These should be local. ??? Do any other SVR4 compilers have this convention? If so, this should be added to the generic routine. */ -static boolean +static bfd_boolean elf32_i860_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == '.' && name[1] == 'e' && name[2] == 'p' && name[3] == '.') - return true; + return TRUE; return _bfd_elf_is_local_label_name (abfd, name); } diff -uprN binutils-2.13.90.0.16/bfd/elf32-i960.c binutils-2.13.90.0.18/bfd/elf32-i960.c --- binutils-2.13.90.0.16/bfd/elf32-i960.c Wed Aug 22 08:52:09 2001 +++ binutils-2.13.90.0.18/bfd/elf32-i960.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* Intel 860 specific support for 32-bit ELF - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -28,9 +28,9 @@ static bfd_reloc_status_type elf32_i960_ static reloc_howto_type *elf32_i960_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf32_i960_info_to_howto - PARAMS ((bfd *, arelent *cache_ptr, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *cache_ptr, Elf_Internal_Rela *)); static void elf32_i960_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); #define USE_REL 1 @@ -40,16 +40,16 @@ static void elf32_i960_info_to_howto_rel static reloc_howto_type elf_howto_table[]= { - HOWTO(R_960_NONE, 0, 0, 0, false, 0, complain_overflow_bitfield, - elf32_i960_relocate, "R_960_NONE", true, - 0x00000000, 0x00000000, false), + HOWTO(R_960_NONE, 0, 0, 0, FALSE, 0, complain_overflow_bitfield, + elf32_i960_relocate, "R_960_NONE", TRUE, + 0x00000000, 0x00000000, FALSE), EMPTY_HOWTO (1), - HOWTO (R_960_32, 0, 2, 32, false, 0, complain_overflow_bitfield, - elf32_i960_relocate, "R_960_32", true, - 0xffffffff, 0xffffffff, false), - HOWTO (R_960_IP24, 0, 2, 24, true, 0, complain_overflow_signed, - elf32_i960_relocate, "R_960_IP24 ", true, - 0x00ffffff, 0x00ffffff, false), + HOWTO (R_960_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + elf32_i960_relocate, "R_960_32", TRUE, + 0xffffffff, 0xffffffff, FALSE), + HOWTO (R_960_IP24, 0, 2, 24, TRUE, 0, complain_overflow_signed, + elf32_i960_relocate, "R_960_IP24 ", TRUE, + 0x00ffffff, 0x00ffffff, FALSE), EMPTY_HOWTO (4), EMPTY_HOWTO (5), EMPTY_HOWTO (6), @@ -77,7 +77,7 @@ static void elf32_i960_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr ATTRIBUTE_UNUSED; - Elf32_Internal_Rela *dst ATTRIBUTE_UNUSED; + Elf_Internal_Rela *dst ATTRIBUTE_UNUSED; { abort (); } @@ -86,7 +86,7 @@ static void elf32_i960_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { enum elf_i960_reloc_type type; diff -uprN binutils-2.13.90.0.16/bfd/elf32-ip2k.c binutils-2.13.90.0.18/bfd/elf32-ip2k.c --- binutils-2.13.90.0.16/bfd/elf32-ip2k.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-ip2k.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* Ubicom IP2xxx specific support for 32-bit ELF - Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -33,119 +33,151 @@ struct misc Elf_Internal_Sym * isymbuf; }; +struct ip2k_opcode +{ + unsigned short opcode; + unsigned short mask; +}; + /* Prototypes. */ -static reloc_howto_type * ip2k_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static void ip2k_info_to_howto_rela PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static asection * ip2k_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean ip2k_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static bfd_vma symbol_value PARAMS ((bfd *, Elf_Internal_Shdr *, Elf32_Internal_Sym *, Elf_Internal_Rela *)); -static void adjust_all_relocations PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, int, int)); -static boolean ip2k_elf_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); -static boolean ip2k_elf_relax_add_bytes PARAMS ((bfd *, asection *, bfd_vma, const bfd_byte *, int, int)); -static boolean add_page_insn PARAMS ((bfd *, asection *, Elf_Internal_Rela *, struct misc *)); -static boolean ip2k_elf_relax_section PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); -static boolean relax_switch_dispatch_tables_pass1 PARAMS ((bfd *, asection *, bfd_vma, struct misc *)); -static boolean unrelax_dispatch_table_entries PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, boolean *, struct misc *)); -static boolean unrelax_switch_dispatch_tables_passN PARAMS ((bfd *, asection *, bfd_vma, boolean *, struct misc *)); -static boolean is_switch_128_dispatch_table_p PARAMS ((bfd *, bfd_vma, boolean, struct misc *)); -static boolean is_switch_256_dispatch_table_p PARAMS ((bfd *, bfd_vma, boolean, struct misc *)); -static boolean ip2k_elf_relax_section_pass1 PARAMS ((bfd *, asection *, boolean *, struct misc *)); -static boolean ip2k_elf_relax_section_passN PARAMS ((bfd *, asection *, boolean *, boolean *, struct misc *)); -static bfd_reloc_status_type ip2k_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); -static boolean ip2k_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); - -#define IS_OPCODE(CODE0,CODE1,OPCODE) \ - ((CODE0) == (OPCODE)[0] && (CODE1) == (OPCODE)[1]) +static reloc_howto_type *ip2k_reloc_type_lookup + PARAMS ((bfd *, bfd_reloc_code_real_type)); +static int ip2k_is_opcode + PARAMS ((bfd_byte *, const struct ip2k_opcode *)); +static bfd_vma symbol_value + PARAMS ((bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, + Elf_Internal_Rela *)); +static void ip2k_get_mem + PARAMS ((bfd *, bfd_byte *, int, bfd_byte *)); +static bfd_vma ip2k_nominal_page_bits + PARAMS ((bfd *, asection *, bfd_vma, bfd_byte *)); +static bfd_boolean ip2k_test_page_insn + PARAMS ((bfd *, asection *, Elf_Internal_Rela *, struct misc *)); +static bfd_boolean ip2k_delete_page_insn + PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_boolean *, struct misc *)); +static int ip2k_is_switch_table_128 + PARAMS ((bfd *, asection *, bfd_vma, bfd_byte *)); +static bfd_boolean ip2k_relax_switch_table_128 + PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_boolean *, struct misc *)); +static int ip2k_is_switch_table_256 + PARAMS ((bfd *, asection *, bfd_vma, bfd_byte *)); +static bfd_boolean ip2k_relax_switch_table_256 + PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_boolean *, struct misc *)); +static bfd_boolean ip2k_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean ip2k_elf_relax_section_page + PARAMS ((bfd *, asection *, bfd_boolean *, struct misc *, unsigned long, unsigned long)); +static void adjust_all_relocations + PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, int, int)); +static bfd_boolean ip2k_elf_relax_delete_bytes + PARAMS ((bfd *, asection *, bfd_vma, int)); +static void ip2k_info_to_howto_rela + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_reloc_status_type ip2k_final_link_relocate + PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, bfd_vma)); +static bfd_boolean ip2k_elf_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); +static asection *ip2k_elf_gc_mark_hook + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *)); +static bfd_boolean ip2k_elf_gc_sweep_hook + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); -#define PAGE_INSN_0 0x00 -#define PAGE_INSN_1 0x10 +static bfd_boolean ip2k_relaxed = FALSE; -static const bfd_byte page_opcode[] = +static const struct ip2k_opcode ip2k_page_opcode[] = { - PAGE_INSN_0, PAGE_INSN_1 + {0x0010, 0xFFF8}, /* page */ + {0x0000, 0x0000}, }; -#define IS_PAGE_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, page_opcode) +#define IS_PAGE_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_page_opcode) -#define JMP_INSN_0 0xE0 -#define JMP_INSN_1 0x00 - -static const bfd_byte jmp_opcode[] = +static const struct ip2k_opcode ip2k_jmp_opcode[] = { - JMP_INSN_0, JMP_INSN_1 + {0xE000, 0xE000}, /* jmp */ + {0x0000, 0x0000}, }; -#define IS_JMP_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, jmp_opcode) - -#define CALL_INSN_0 0xC0 -#define CALL_INSN_1 0x00 +#define IS_JMP_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_jmp_opcode) -static const bfd_byte call_opcode[] = +static const struct ip2k_opcode ip2k_call_opcode[] = { - CALL_INSN_0, CALL_INSN_1 + {0xC000, 0xE000}, /* call */ + {0x0000, 0x0000}, }; -#define IS_CALL_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, call_opcode) +#define IS_CALL_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_call_opcode) -#define ADD_PCL_W_INSN_0 0x1E -#define ADD_PCL_W_INSN_1 0x09 - -static const bfd_byte add_pcl_w_opcode[] = +static const struct ip2k_opcode ip2k_snc_opcode[] = { - ADD_PCL_W_INSN_0, ADD_PCL_W_INSN_1 + {0xA00B, 0xFFFF}, /* snc */ + {0x0000, 0x0000}, }; -#define IS_ADD_PCL_W_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, add_pcl_w_opcode) - -#define ADD_W_WREG_INSN_0 0x1C -#define ADD_W_WREG_INSN_1 0x0A +#define IS_SNC_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_snc_opcode) -static const bfd_byte add_w_wreg_opcode[] = +static const struct ip2k_opcode ip2k_inc_1sp_opcode[] = { - ADD_W_WREG_INSN_0, ADD_W_WREG_INSN_1 + {0x2B81, 0xFFFF}, /* inc 1(SP) */ + {0x0000, 0x0000}, }; -#define IS_ADD_W_WREG_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, add_w_wreg_opcode) - -#define SNC_INSN_0 0xA0 -#define SNC_INSN_1 0x0B +#define IS_INC_1SP_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_inc_1sp_opcode) -static const bfd_byte snc_opcode[] = +static const struct ip2k_opcode ip2k_add_2sp_w_opcode[] = { - SNC_INSN_0, SNC_INSN_1 + {0x1F82, 0xFFFF}, /* add 2(SP),w */ + {0x0000, 0x0000}, }; -#define IS_SNC_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, snc_opcode) +#define IS_ADD_2SP_W_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_add_2sp_w_opcode) -#define INC_1_SP_INSN_0 0x2B -#define INC_1_SP_INSN_1 0x81 - -static const bfd_byte inc_1_sp_opcode[] = +static const struct ip2k_opcode ip2k_add_w_wreg_opcode[] = { - INC_1_SP_INSN_0, INC_1_SP_INSN_1 + {0x1C0A, 0xFFFF}, /* add w,wreg */ + {0x1E0A, 0xFFFF}, /* add wreg,w */ + {0x0000, 0x0000}, }; -#define IS_INC_1_SP_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, inc_1_sp_opcode) +#define IS_ADD_W_WREG_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_add_w_wreg_opcode) -#define ADD_2_SP_W_INSN_0 0x1F -#define ADD_2_SP_W_INSN_1 0x82 +static const struct ip2k_opcode ip2k_add_pcl_w_opcode[] = +{ + {0x1E09, 0xFFFF}, /* add pcl,w */ + {0x0000, 0x0000}, +}; + +#define IS_ADD_PCL_W_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_add_pcl_w_opcode) -static const bfd_byte add_2_sp_w_opcode[] = +static const struct ip2k_opcode ip2k_skip_opcodes[] = { - ADD_2_SP_W_INSN_0, ADD_2_SP_W_INSN_1 + {0xB000, 0xF000}, /* sb */ + {0xA000, 0xF000}, /* snb */ + {0x7600, 0xFE00}, /* cse/csne #lit */ + {0x5800, 0xFC00}, /* incsnz */ + {0x4C00, 0xFC00}, /* decsnz */ + {0x4000, 0xFC00}, /* cse/csne */ + {0x3C00, 0xFC00}, /* incsz */ + {0x2C00, 0xFC00}, /* decsz */ + {0x0000, 0x0000}, }; -#define IS_ADD_2_SP_W_OPCODE(CODE0,CODE1) \ - IS_OPCODE (CODE0, CODE1, add_2_sp_w_opcode) +#define IS_SKIP_OPCODE(code) \ + ip2k_is_opcode (code, ip2k_skip_opcodes) -/* Relocation tables. */ +/* Relocation tables. */ static reloc_howto_type ip2k_elf_howto_table [] = { #define IP2K_HOWTO(t,rs,s,bs,pr,bp,name,sm,dm) \ @@ -158,44 +190,44 @@ static reloc_howto_type ip2k_elf_howto_t complain_overflow_dont,/* complain_on_overflow */ \ bfd_elf_generic_reloc,/* special_function */ \ name, /* name */ \ - false, /* partial_inplace */ \ + FALSE, /* partial_inplace */ \ sm, /* src_mask */ \ dm, /* dst_mask */ \ pr) /* pcrel_offset */ - /* This reloc does nothing. */ - IP2K_HOWTO (R_IP2K_NONE, 0,2,32, false, 0, "R_IP2K_NONE", 0, 0), + /* This reloc does nothing. */ + IP2K_HOWTO (R_IP2K_NONE, 0,2,32, FALSE, 0, "R_IP2K_NONE", 0, 0), /* A 16 bit absolute relocation. */ - IP2K_HOWTO (R_IP2K_16, 0,1,16, false, 0, "R_IP2K_16", 0, 0xffff), + IP2K_HOWTO (R_IP2K_16, 0,1,16, FALSE, 0, "R_IP2K_16", 0, 0xffff), /* A 32 bit absolute relocation. */ - IP2K_HOWTO (R_IP2K_32, 0,2,32, false, 0, "R_IP2K_32", 0, 0xffffffff), + IP2K_HOWTO (R_IP2K_32, 0,2,32, FALSE, 0, "R_IP2K_32", 0, 0xffffffff), /* A 8-bit data relocation for the FR9 field. Ninth bit is computed specially. */ - IP2K_HOWTO (R_IP2K_FR9, 0,1,9, false, 0, "R_IP2K_FR9", 0, 0x00ff), + IP2K_HOWTO (R_IP2K_FR9, 0,1,9, FALSE, 0, "R_IP2K_FR9", 0, 0x00ff), /* A 4-bit data relocation. */ - IP2K_HOWTO (R_IP2K_BANK, 8,1,4, false, 0, "R_IP2K_BANK", 0, 0x000f), + IP2K_HOWTO (R_IP2K_BANK, 8,1,4, FALSE, 0, "R_IP2K_BANK", 0, 0x000f), /* A 13-bit insn relocation - word address => right-shift 1 bit extra. */ - IP2K_HOWTO (R_IP2K_ADDR16CJP, 1,1,13, false, 0, "R_IP2K_ADDR16CJP", 0, 0x1fff), + IP2K_HOWTO (R_IP2K_ADDR16CJP, 1,1,13, FALSE, 0, "R_IP2K_ADDR16CJP", 0, 0x1fff), /* A 3-bit insn relocation - word address => right-shift 1 bit extra. */ - IP2K_HOWTO (R_IP2K_PAGE3, 14,1,3, false, 0, "R_IP2K_PAGE3", 0, 0x0007), + IP2K_HOWTO (R_IP2K_PAGE3, 14,1,3, FALSE, 0, "R_IP2K_PAGE3", 0, 0x0007), /* Two 8-bit data relocations. */ - IP2K_HOWTO (R_IP2K_LO8DATA, 0,1,8, false, 0, "R_IP2K_LO8DATA", 0, 0x00ff), - IP2K_HOWTO (R_IP2K_HI8DATA, 8,1,8, false, 0, "R_IP2K_HI8DATA", 0, 0x00ff), + IP2K_HOWTO (R_IP2K_LO8DATA, 0,1,8, FALSE, 0, "R_IP2K_LO8DATA", 0, 0x00ff), + IP2K_HOWTO (R_IP2K_HI8DATA, 8,1,8, FALSE, 0, "R_IP2K_HI8DATA", 0, 0x00ff), /* Two 8-bit insn relocations. word address => right-shift 1 bit extra. */ - IP2K_HOWTO (R_IP2K_LO8INSN, 1,1,8, false, 0, "R_IP2K_LO8INSN", 0, 0x00ff), - IP2K_HOWTO (R_IP2K_HI8INSN, 9,1,8, false, 0, "R_IP2K_HI8INSN", 0, 0x00ff), + IP2K_HOWTO (R_IP2K_LO8INSN, 1,1,8, FALSE, 0, "R_IP2K_LO8INSN", 0, 0x00ff), + IP2K_HOWTO (R_IP2K_HI8INSN, 9,1,8, FALSE, 0, "R_IP2K_HI8INSN", 0, 0x00ff), /* Special 1 bit relocation for SKIP instructions. */ - IP2K_HOWTO (R_IP2K_PC_SKIP, 1,1,1, false, 12, "R_IP2K_PC_SKIP", 0xfffe, 0x1000), + IP2K_HOWTO (R_IP2K_PC_SKIP, 1,1,1, FALSE, 12, "R_IP2K_PC_SKIP", 0xfffe, 0x1000), /* 16 bit word address. */ - IP2K_HOWTO (R_IP2K_TEXT, 1,1,16, false, 0, "R_IP2K_TEXT", 0, 0xffff), + IP2K_HOWTO (R_IP2K_TEXT, 1,1,16, FALSE, 0, "R_IP2K_TEXT", 0, 0xffff), /* A 7-bit offset relocation for the FR9 field. Eigth and ninth bit comes from insn. */ - IP2K_HOWTO (R_IP2K_FR_OFFSET, 0,1,9, false, 0, "R_IP2K_FR_OFFSET", 0x180, 0x007f), + IP2K_HOWTO (R_IP2K_FR_OFFSET, 0,1,9, FALSE, 0, "R_IP2K_FR_OFFSET", 0x180, 0x007f), /* Bits 23:16 of an address. */ - IP2K_HOWTO (R_IP2K_EX8DATA, 16,1,8, false, 0, "R_IP2K_EX8DATA", 0, 0x00ff), + IP2K_HOWTO (R_IP2K_EX8DATA, 16,1,8, FALSE, 0, "R_IP2K_EX8DATA", 0, 0x00ff), }; -/* Map BFD reloc types to IP2K ELF reloc types. */ +/* Map BFD reloc types to IP2K ELF reloc types. */ static reloc_howto_type * ip2k_reloc_type_lookup (abfd, code) bfd * abfd ATTRIBUTE_UNUSED; @@ -204,7 +236,7 @@ ip2k_reloc_type_lookup (abfd, code) /* Note that the ip2k_elf_howto_table is indxed by the R_ constants. Thus, the order that the howto records appear in the table *must* match the order of the relocation types defined in - include/elf/ip2k.h. */ + include/elf/ip2k.h. */ switch (code) { @@ -239,13 +271,42 @@ ip2k_reloc_type_lookup (abfd, code) case BFD_RELOC_IP2K_EX8DATA: return &ip2k_elf_howto_table[ (int) R_IP2K_EX8DATA]; default: - /* Pacify gcc -Wall. */ + /* Pacify gcc -Wall. */ return NULL; } return NULL; } -#define PAGENO(ABSADDR) ((ABSADDR) & 0x1C000) +static void +ip2k_get_mem (abfd, addr, length, ptr) + bfd *abfd ATTRIBUTE_UNUSED; + bfd_byte *addr; + int length; + bfd_byte *ptr; +{ + while (length --) + * ptr ++ = bfd_get_8 (abfd, addr ++); +} + +static bfd_boolean +ip2k_is_opcode (code, opcodes) + bfd_byte *code; + const struct ip2k_opcode *opcodes; +{ + unsigned short insn = (code[0] << 8) | code[1]; + + while (opcodes->mask != 0) + { + if ((insn & opcodes->mask) == opcodes->opcode) + return TRUE; + + opcodes ++; + } + + return FALSE; +} + +#define PAGENO(ABSADDR) ((ABSADDR) & 0xFFFFC000) #define BASEADDR(SEC) ((SEC)->output_section->vma + (SEC)->output_offset) #define UNDEFINED_SYMBOL (~(bfd_vma)0) @@ -256,8 +317,8 @@ static bfd_vma symbol_value (abfd, symtab_hdr, isymbuf, irel) bfd *abfd; Elf_Internal_Shdr *symtab_hdr; - Elf32_Internal_Sym *isymbuf; - Elf_Internal_Rela *irel; + Elf_Internal_Sym *isymbuf; + Elf_Internal_Rela *irel; { if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info) { @@ -293,10 +354,119 @@ symbol_value (abfd, symtab_hdr, isymbuf, } } +/* Returns the expected page state for the given instruction not including + the effect of page instructions. */ + +static bfd_vma +ip2k_nominal_page_bits (abfd, sec, addr, contents) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; + bfd_vma addr; + bfd_byte *contents; +{ + bfd_vma page = PAGENO (BASEADDR (sec) + addr); + + /* Check if section flows into this page. If not then the page + bits are assumed to match the PC. This will be true unless + the user has a page instruction without a call/jump, in which + case they are on their own. */ + if (PAGENO (BASEADDR (sec)) == page) + return page; + + /* Section flows across page boundary. The page bits should match + the PC unless there is a possible flow from the previous page, + in which case it is not possible to determine the value of the + page bits. */ + while (PAGENO (BASEADDR (sec) + addr - 2) == page) + { + bfd_byte code[2]; + + addr -= 2; + ip2k_get_mem (abfd, contents + addr, 2, code); + if (!IS_PAGE_OPCODE (code)) + continue; + + /* Found a page instruction, check if jump table. */ + if (ip2k_is_switch_table_128 (abfd, sec, addr, contents) != -1) + /* Jump table => page is conditional. */ + continue; + + if (ip2k_is_switch_table_256 (abfd, sec, addr, contents) != -1) + /* Jump table => page is conditional. */ + continue; + + /* Found a page instruction, check if conditional. */ + if (addr >= 2) + { + ip2k_get_mem (abfd, contents + addr - 2, 2, code); + if (IS_SKIP_OPCODE (code)) + /* Page is conditional. */ + continue; + } + + /* Unconditional page instruction => page bits should be correct. */ + return page; + } + + /* Flow from previous page => page bits are impossible to determine. */ + return 0; +} + +static bfd_boolean +ip2k_test_page_insn (abfd, sec, irel, misc) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; + Elf_Internal_Rela *irel; + struct misc *misc; +{ + bfd_vma symval; + + /* Get the value of the symbol referred to by the reloc. */ + symval = symbol_value (abfd, misc->symtab_hdr, misc->isymbuf, irel); + if (symval == UNDEFINED_SYMBOL) + /* This appears to be a reference to an undefined + symbol. Just ignore it--it will be caught by the + regular reloc processing. */ + return FALSE; + + /* Test if we can delete this page instruction. */ + if (PAGENO (symval + irel->r_addend) != + ip2k_nominal_page_bits (abfd, sec, irel->r_offset, misc->contents)) + return FALSE; + + return TRUE; +} + +static bfd_boolean +ip2k_delete_page_insn (abfd, sec, irel, again, misc) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; + Elf_Internal_Rela *irel; + bfd_boolean *again; + struct misc *misc; +{ + /* Note that we've changed the relocs, section contents, etc. */ + elf_section_data (sec)->relocs = misc->irelbase; + elf_section_data (sec)->this_hdr.contents = misc->contents; + misc->symtab_hdr->contents = (bfd_byte *) misc->isymbuf; + + /* Fix the relocation's type. */ + irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_IP2K_NONE); + + /* Delete the PAGE insn. */ + if (!ip2k_elf_relax_delete_bytes (abfd, sec, irel->r_offset, 2)) + return FALSE; + + /* Modified => will need to iterate relaxation again. */ + *again = TRUE; + + return TRUE; +} + /* Determine if the instruction sequence matches that for the prologue of a switch dispatch table with fewer than 128 entries. - + sc page $nnn0 jmp $nnn0 @@ -310,7 +480,7 @@ symbol_value (abfd, symtab_hdr, isymbuf, ... page $nnnN jmp $nnnN - + After relaxation. sc page $nnn0 @@ -322,55 +492,123 @@ symbol_value (abfd, symtab_hdr, isymbuf, ... jmp $nnnN */ -static boolean -is_switch_128_dispatch_table_p (abfd, addr, relaxed, misc) - bfd *abfd ATTRIBUTE_UNUSED; +static int +ip2k_is_switch_table_128 (abfd, sec, addr, contents) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; bfd_vma addr; - boolean relaxed; - struct misc *misc; + bfd_byte *contents; { - bfd_byte code0, code1; + bfd_byte code[4]; + int index = 0; + + /* Check current page-jmp. */ + if (addr + 4 > sec->_cooked_size) + return -1; + + ip2k_get_mem (abfd, contents + addr, 4, code); + + if ((! IS_PAGE_OPCODE (code + 0)) + || (! IS_JMP_OPCODE (code + 2))) + return -1; + + /* Search back. */ + while (1) + { + if (addr < 4) + return -1; - if (addr < (3 * 2)) - return false; + /* Check previous 2 instructions. */ + ip2k_get_mem (abfd, contents + addr - 4, 4, code); + if ((IS_ADD_W_WREG_OPCODE (code + 0)) + && (IS_ADD_PCL_W_OPCODE (code + 2))) + return index; + + if ((! IS_PAGE_OPCODE (code + 0)) + || (! IS_JMP_OPCODE (code + 2))) + return -1; - code0 = bfd_get_8 (abfd, misc->contents + addr - 2); - code1 = bfd_get_8 (abfd, misc->contents + addr - 1); + index++; + addr -= 4; + } +} + +static bfd_boolean +ip2k_relax_switch_table_128 (abfd, sec, irel, again, misc) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; + Elf_Internal_Rela *irel; + bfd_boolean *again; + struct misc *misc; +{ + Elf_Internal_Rela *irelend = misc->irelbase + sec->reloc_count; + Elf_Internal_Rela *ireltest = irel; + bfd_byte code[4]; + bfd_vma addr; + + /* Test all page instructions. */ + addr = irel->r_offset; + while (1) + { + if (addr + 4 > sec->_cooked_size) + break; + + ip2k_get_mem (abfd, misc->contents + addr, 4, code); + if ((! IS_PAGE_OPCODE (code + 0)) + || (! IS_JMP_OPCODE (code + 2))) + break; + + /* Validate relocation entry (every entry should have a matching + relocation entry). */ + if (ireltest >= irelend) + { + _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information.")); + return FALSE; + } - /* Is it ADD PCL,W */ - if (! IS_ADD_PCL_W_OPCODE (code0, code1)) - return false; + if (ireltest->r_offset != addr) + { + _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information.")); + return FALSE; + } - code0 = bfd_get_8 (abfd, misc->contents + addr - 4); - code1 = bfd_get_8 (abfd, misc->contents + addr - 3); + if (! ip2k_test_page_insn (abfd, sec, ireltest, misc)) + /* Un-removable page insn => nothing can be done. */ + return TRUE; - if (relaxed) - /* Is it ADD W,WREG */ - return ! IS_ADD_W_WREG_OPCODE (code0, code1); + addr += 4; + ireltest += 2; + } - else + /* Relaxable. Adjust table header. */ + ip2k_get_mem (abfd, misc->contents + irel->r_offset - 4, 4, code); + if ((! IS_ADD_W_WREG_OPCODE (code + 0)) + || (! IS_ADD_PCL_W_OPCODE (code + 2))) { - /* Is it ADD W,WREG */ - if (! IS_ADD_W_WREG_OPCODE (code0, code1)) - return false; + _bfd_error_handler (_("ip2k relaxer: switch table header corrupt.")); + return FALSE; + } + + if (!ip2k_elf_relax_delete_bytes (abfd, sec, irel->r_offset - 4, 2)) + return FALSE; - code0 = bfd_get_8 (abfd, misc->contents + addr - 6); - code1 = bfd_get_8 (abfd, misc->contents + addr - 5); + *again = TRUE; - /* Is it JMP $nnnn */ - if (! IS_JMP_OPCODE (code0, code1)) - return false; + /* Delete all page instructions in table. */ + while (irel < ireltest) + { + if (!ip2k_delete_page_insn (abfd, sec, irel, again, misc)) + return FALSE; + irel += 2; } - /* It looks like we've found the prologue for - a 1-127 entry switch dispatch table. */ - return true; + return TRUE; } /* Determine if the instruction sequence matches that for the prologue switch dispatch table with fewer than 256 entries but more than 127. - + Before relaxation. push %lo8insn(label) ; Push address of table push %hi8insn(label) @@ -391,7 +629,7 @@ is_switch_128_dispatch_table_p (abfd, ad ... page $nnnN jmp $nnnN - + After relaxation. push %lo8insn(label) ; Push address of table push %hi8insn(label) @@ -407,392 +645,192 @@ is_switch_128_dispatch_table_p (abfd, ad ... jmp $nnnN */ -static boolean -is_switch_256_dispatch_table_p (abfd, addr, relaxed, misc) +static int +ip2k_is_switch_table_256 (abfd, sec, addr, contents) bfd *abfd ATTRIBUTE_UNUSED; - bfd_vma addr; - boolean relaxed; - struct misc *misc; -{ - bfd_byte code0, code1; - - if (addr < (8 * 2)) - return false; - - code0 = bfd_get_8 (abfd, misc->contents + addr - 2); - code1 = bfd_get_8 (abfd, misc->contents + addr - 1); - - /* Is it INC 1(SP). */ - if (! IS_INC_1_SP_OPCODE (code0, code1)) - return false; - - code0 = bfd_get_8 (abfd, misc->contents + addr - 4); - code1 = bfd_get_8 (abfd, misc->contents + addr - 3); - - /* Is it SNC. */ - if (! IS_SNC_OPCODE (code0, code1)) - return false; - - code0 = bfd_get_8 (abfd, misc->contents + addr - 6); - code1 = bfd_get_8 (abfd, misc->contents + addr - 5); - - /* Is it ADD 2(SP),W. */ - if (! IS_ADD_2_SP_W_OPCODE (code0, code1)) - return false; - - code0 = bfd_get_8 (abfd, misc->contents + addr - 8); - code1 = bfd_get_8 (abfd, misc->contents + addr - 7); - - if (relaxed) - /* Is it INC 1(SP). */ - return ! IS_INC_1_SP_OPCODE (code0, code1); - - else - { - /* Is it INC 1(SP). */ - if (! IS_INC_1_SP_OPCODE (code0, code1)) - return false; - - code0 = bfd_get_8 (abfd, misc->contents + addr - 10); - code1 = bfd_get_8 (abfd, misc->contents + addr - 9); - - /* Is it SNC. */ - if (! IS_SNC_OPCODE (code0, code1)) - return false; - - code0 = bfd_get_8 (abfd, misc->contents + addr - 12); - code1 = bfd_get_8 (abfd, misc->contents + addr - 11); - - /* Is it ADD W,WREG. */ - if (! IS_ADD_W_WREG_OPCODE (code0, code1)) - return false; - } - - /* It looks like we've found the prologue for - a 128-255 entry switch dispatch table. */ - return true; -} - -static boolean -relax_switch_dispatch_tables_pass1 (abfd, sec, addr, misc) - bfd *abfd; asection *sec; bfd_vma addr; - struct misc *misc; + bfd_byte *contents; { - if (addr + 3 < sec->_cooked_size) + bfd_byte code[16]; + int index = 0; + + /* Check current page-jmp. */ + if (addr + 4 > sec->_cooked_size) + return -1; + + ip2k_get_mem (abfd, contents + addr, 4, code); + if ((! IS_PAGE_OPCODE (code + 0)) + || (! IS_JMP_OPCODE (code + 2))) + return -1; + + /* Search back. */ + while (1) { - bfd_byte code0 = bfd_get_8 (abfd, misc->contents + addr + 2); - bfd_byte code1 = bfd_get_8 (abfd, misc->contents + addr + 3); + if (addr < 16) + return -1; - if (IS_JMP_OPCODE (code0, code1) - && is_switch_128_dispatch_table_p (abfd, addr, false, misc)) - { - /* Delete ADD W,WREG from prologue. */ - ip2k_elf_relax_delete_bytes (abfd, sec, addr - (2 * 2), (1 * 2)); - return true; - } + /* Check previous 8 instructions. */ + ip2k_get_mem (abfd, contents + addr - 16, 16, code); + if ((IS_ADD_W_WREG_OPCODE (code + 0)) + && (IS_SNC_OPCODE (code + 2)) + && (IS_INC_1SP_OPCODE (code + 4)) + && (IS_ADD_2SP_W_OPCODE (code + 6)) + && (IS_SNC_OPCODE (code + 8)) + && (IS_INC_1SP_OPCODE (code + 10)) + && (IS_PAGE_OPCODE (code + 12)) + && (IS_JMP_OPCODE (code + 14))) + return index; + + if ((IS_ADD_W_WREG_OPCODE (code + 2)) + && (IS_SNC_OPCODE (code + 4)) + && (IS_INC_1SP_OPCODE (code + 6)) + && (IS_ADD_2SP_W_OPCODE (code + 8)) + && (IS_SNC_OPCODE (code + 10)) + && (IS_INC_1SP_OPCODE (code + 12)) + && (IS_JMP_OPCODE (code + 14))) + return index; + + if ((! IS_PAGE_OPCODE (code + 0)) + || (! IS_JMP_OPCODE (code + 2))) + return -1; - if (IS_JMP_OPCODE (code0, code1) - && is_switch_256_dispatch_table_p (abfd, addr, false, misc)) - { - /* Delete ADD W,WREG; SNC ; INC 1(SP) from prologue. */ - ip2k_elf_relax_delete_bytes (abfd, sec, addr - 6 * 2, 3 * 2); - return true; - } + index++; + addr -= 4; } - - return true; } -static boolean -unrelax_dispatch_table_entries (abfd, sec, first, last, changed, misc) - bfd *abfd; +static bfd_boolean +ip2k_relax_switch_table_256 (abfd, sec, irel, again, misc) + bfd *abfd ATTRIBUTE_UNUSED; asection *sec; - bfd_vma first; - bfd_vma last; - boolean *changed; + Elf_Internal_Rela *irel; + bfd_boolean *again; struct misc *misc; { - bfd_vma addr = first; + Elf_Internal_Rela *irelend = misc->irelbase + sec->reloc_count; + Elf_Internal_Rela *ireltest = irel; + bfd_byte code[12]; + bfd_vma addr; + + /* Test all page instructions. */ + addr = irel->r_offset; - while (addr < last) + while (1) { - bfd_byte code0 = bfd_get_8 (abfd, misc->contents + addr); - bfd_byte code1 = bfd_get_8 (abfd, misc->contents + addr + 1); + if (addr + 4 > sec->_cooked_size) + break; - /* We are only expecting to find PAGE or JMP insns - in the dispatch table. If we find anything else - something has gone wrong failed the relaxation - which will cause the link to be aborted. */ - - if (IS_PAGE_OPCODE (code0, code1)) - /* Skip the PAGE and JMP insns. */ - addr += 4; - else if (IS_JMP_OPCODE (code0, code1)) - { - Elf_Internal_Rela * irelend = misc->irelbase - + sec->reloc_count; - Elf_Internal_Rela * irel; - - /* Find the relocation entry. */ - for (irel = misc->irelbase; irel < irelend; irel++) - { - if (irel->r_offset == addr - && ELF32_R_TYPE (irel->r_info) == R_IP2K_ADDR16CJP) - { - if (! add_page_insn (abfd, sec, irel, misc)) - /* Something has gone wrong. */ - return false; - - *changed = true; - break; - } - } - - /* If we fell off the end something has gone wrong. */ - if (irel >= irelend) - /* Something has gone wrong. */ - return false; - - /* Skip the PAGE and JMP isns. */ - addr += 4; - /* Acount for the new PAGE insn. */ - last += 2; - } - else - /* Something has gone wrong. */ - return false; - } + ip2k_get_mem (abfd, misc->contents + addr, 4, code); - return true; -} + if ((! IS_PAGE_OPCODE (code + 0)) + || (! IS_JMP_OPCODE (code + 2))) + break; -static boolean -unrelax_switch_dispatch_tables_passN (abfd, sec, addr, changed, misc) - bfd *abfd; - asection *sec; - bfd_vma addr; - boolean *changed; - struct misc *misc; -{ - if (2 <= addr && (addr + 3) < sec->_cooked_size) - { - bfd_byte code0 = bfd_get_8 (abfd, misc->contents + addr - 2); - bfd_byte code1 = bfd_get_8 (abfd, misc->contents + addr - 1); - - if (IS_PAGE_OPCODE (code0, code1)) - { - addr -= 2; - code0 = bfd_get_8 (abfd, misc->contents + addr + 2); - code1 = bfd_get_8 (abfd, misc->contents + addr + 3); - } - else - { - code0 = bfd_get_8 (abfd, misc->contents + addr); - code1 = bfd_get_8 (abfd, misc->contents + addr + 1); - } - - if (IS_JMP_OPCODE (code0, code1) - && is_switch_128_dispatch_table_p (abfd, addr, true, misc)) + /* Validate relocation entry (every entry should have a matching + relocation entry). */ + if (ireltest >= irelend) { - bfd_vma first = addr; - bfd_vma last = first; - boolean relaxed = true; - - /* On the final pass we must check if *all* entries in the - dispatch table are relaxed. If *any* are not relaxed - then we must unrelax *all* the entries in the dispach - table and also unrelax the dispatch table prologue. */ - - /* Find the last entry in the dispach table. */ - while (last < sec->_cooked_size) - { - code0 = bfd_get_8 (abfd, misc->contents + last); - code1 = bfd_get_8 (abfd, misc->contents + last + 1); - - if (IS_PAGE_OPCODE (code0, code1)) - relaxed = false; - else if (! IS_JMP_OPCODE (code0, code1)) - break; - - last += 2; - } - - /* We should have found the end of the dispatch table - before reaching the end of the section. If we've have - reached the end then fail the relaxation which will - cause the link to be aborted. */ - if (last >= sec->_cooked_size) - /* Something has gone wrong. */ - return false; - - /* If we found an unrelaxed entry then - unlrelax all the switch table entries. */ - if (! relaxed ) - { - if (! unrelax_dispatch_table_entries (abfd, sec, first, - last, changed, misc)) - /* Something has gone wrong. */ - return false; - - if (! is_switch_128_dispatch_table_p (abfd, addr, true, misc)) - /* Something has gone wrong. */ - return false; - - /* Unrelax the prologue. */ - - /* Insert an ADD W,WREG insnstruction. */ - if (! ip2k_elf_relax_add_bytes (abfd, sec, - addr - 2, - add_w_wreg_opcode, - sizeof (add_w_wreg_opcode), - 0)) - /* Something has gone wrong. */ - return false; - } - - return true; + _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information.")); + return FALSE; } - if (IS_JMP_OPCODE (code0, code1) - && is_switch_256_dispatch_table_p (abfd, addr, true, misc)) + if (ireltest->r_offset != addr) { - bfd_vma first = addr; - bfd_vma last; - boolean relaxed = true; - - /* On the final pass we must check if *all* entries in the - dispatch table are relaxed. If *any* are not relaxed - then we must unrelax *all* the entries in the dispach - table and also unrelax the dispatch table prologue. */ + _bfd_error_handler (_("ip2k relaxer: switch table without complete matching relocation information.")); + return FALSE; + } + + if (!ip2k_test_page_insn (abfd, sec, ireltest, misc)) + /* Un-removable page insn => nothing can be done. */ + return TRUE; + + addr += 4; + ireltest += 2; + } - /* Note the 1st PAGE/JMP instructions are part of the - prologue and can safely be relaxed. */ + /* Relaxable. Adjust table header. */ + ip2k_get_mem (abfd, misc->contents + irel->r_offset - 4, 2, code); + if (IS_PAGE_OPCODE (code)) + addr = irel->r_offset - 16; + else + addr = irel->r_offset - 14; - code0 = bfd_get_8 (abfd, misc->contents + first); - code1 = bfd_get_8 (abfd, misc->contents + first + 1); + ip2k_get_mem (abfd, misc->contents + addr, 12, code); + if ((!IS_ADD_W_WREG_OPCODE (code + 0)) + || (!IS_SNC_OPCODE (code + 2)) + || (!IS_INC_1SP_OPCODE (code + 4)) + || (!IS_ADD_2SP_W_OPCODE (code + 6)) + || (!IS_SNC_OPCODE (code + 8)) + || (!IS_INC_1SP_OPCODE (code + 10))) + { + _bfd_error_handler (_("ip2k relaxer: switch table header corrupt.")); + return FALSE; + } - if (IS_PAGE_OPCODE (code0, code1)) - { - first += 2; - code0 = bfd_get_8 (abfd, misc->contents + first); - code1 = bfd_get_8 (abfd, misc->contents + first + 1); - } + /* Delete first 3 opcodes. */ + if (!ip2k_elf_relax_delete_bytes (abfd, sec, addr + 0, 6)) + return FALSE; - if (! IS_JMP_OPCODE (code0, code1)) - /* Something has gone wrong. */ - return false; - - first += 2; - last = first; - - /* Find the last entry in the dispach table. */ - while (last < sec->_cooked_size) - { - code0 = bfd_get_8 (abfd, misc->contents + last); - code1 = bfd_get_8 (abfd, misc->contents + last + 1); - - if (IS_PAGE_OPCODE (code0, code1)) - relaxed = false; - else if (! IS_JMP_OPCODE (code0, code1)) - break; - - last += 2; - } - - /* We should have found the end of the dispatch table - before reaching the end of the section. If we have - reached the end of the section then fail the - relaxation. */ - if (last >= sec->_cooked_size) - return false; - - /* If we found an unrelaxed entry then - unrelax all the switch table entries. */ - if (! relaxed) - { - if (! unrelax_dispatch_table_entries (abfd, sec, first, - last, changed, misc)) - return false; - - if (! is_switch_256_dispatch_table_p (abfd, addr, true, misc)) - return false; - - /* Unrelax the prologue. */ - - /* Insert an INC 1(SP) insnstruction. */ - if (! ip2k_elf_relax_add_bytes (abfd, sec, - addr - 6, - inc_1_sp_opcode, - sizeof (inc_1_sp_opcode), - 0)) - return false; - - /* Insert an SNC insnstruction. */ - if (! ip2k_elf_relax_add_bytes (abfd, sec, - addr - 6, - snc_opcode, - sizeof (snc_opcode), - 0)) - return false; - - /* Insert an ADD W,WREG insnstruction. */ - if (! ip2k_elf_relax_add_bytes (abfd, sec, - addr - 6, - add_w_wreg_opcode, - sizeof (add_w_wreg_opcode), - 0)) - return false; - } + *again = TRUE; - return true; - } + /* Delete all page instructions in table. */ + while (irel < ireltest) + { + if (!ip2k_delete_page_insn (abfd, sec, irel, again, misc)) + return FALSE; + irel += 2; } - return true; + return TRUE; } -/* This function handles relaxing for the ip2k. */ +/* This function handles relaxing for the ip2k. + + Principle: Start with the first page and remove page instructions that + are not require on this first page. By removing page instructions more + code will fit into this page - repeat until nothing more can be achieved + for this page. Move on to the next page. + + Processing the pages one at a time from the lowest page allows a removal + only policy to be used - pages can be removed but are never reinserted. */ -static boolean +static bfd_boolean ip2k_elf_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; bfd_byte *contents = NULL; Elf_Internal_Sym *isymbuf = NULL; static asection * first_section = NULL; - static asection * last_section = NULL; - static boolean changed = false; - static boolean final_pass = false; + static unsigned long search_addr; + static unsigned long page_start = 0; + static unsigned long page_end = 0; static unsigned int pass = 0; + static bfd_boolean new_pass = FALSE; + static bfd_boolean changed = FALSE; struct misc misc; asection *stab; /* Assume nothing changes. */ - *again = false; + *again = FALSE; if (first_section == NULL) - first_section = sec; + { + ip2k_relaxed = TRUE; + first_section = sec; + } if (first_section == sec) { - changed = false; pass++; + new_pass = TRUE; } - /* If we make too many passes then it's a sign that - something is wrong and we fail the relaxation. - Note if everything is working correctly then the - relaxation should converge reasonably quickly. */ - if (pass == 4096) - return false; - /* We don't have to do anything for a relocatable link, if this section does not have relocs, or if this is not a code section. */ @@ -800,10 +838,7 @@ ip2k_elf_relax_section (abfd, sec, link_ || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) - return true; - - if (pass == 1) - last_section = sec; + return TRUE; /* If this is the first time we have been called for this section, initialise the cooked size. */ @@ -849,7 +884,7 @@ ip2k_elf_relax_section (abfd, sec, link_ goto error_return; } } - + /* Read this BFD's symbols cached copy if it exists. */ if (isymbuf == NULL && symtab_hdr->sh_info != 0) { @@ -866,63 +901,55 @@ ip2k_elf_relax_section (abfd, sec, link_ misc.isymbuf = isymbuf; misc.irelbase = internal_relocs; misc.contents = contents; - - /* This is where all the relaxation actually get done. */ - if (pass == 1) + /* This is where all the relaxation actually get done. */ + if ((pass == 1) || (new_pass && !changed)) { - /* On the first pass we remove *all* page instructions and - relax the prolog for switch dispatch tables. This gets - us to the starting point for subsequent passes where - we add page instructions back in as needed. */ + /* On the first pass we simply search for the lowest page that + we havn't relaxed yet. Note that the pass count is reset + each time a page is complete in order to move on to the next page. + If we can't find any more pages then we are finished. */ + if (new_pass) + { + pass = 1; + new_pass = FALSE; + changed = TRUE; /* Pre-initialize to break out of pass 1. */ + search_addr = 0xFFFFFFFF; + } - if (! ip2k_elf_relax_section_pass1 (abfd, sec, again, &misc)) - goto error_return; + if ((BASEADDR (sec) + sec->_cooked_size < search_addr) + && (BASEADDR (sec) + sec->_cooked_size > page_end)) + { + if (BASEADDR (sec) <= page_end) + search_addr = page_end + 1; + else + search_addr = BASEADDR (sec); - changed |= *again; + /* Found a page => more work to do. */ + *again = TRUE; + } } else { - /* Add page instructions back in as needed but we ignore - the issue with sections (functions) crossing a page - boundary until we have converged to an approximate - solution (i.e. nothing has changed on this relaxation - pass) and we then know roughly where the page boundaries - will end up. - - After we have have converged to an approximate solution - we set the final pass flag and continue relaxing. On these - final passes if a section (function) cross page boundary - we will add *all* the page instructions back into such - sections. - - After adding *all* page instructions back into a section - which crosses a page bounbdary we reset the final pass flag - so the we will again interate until we find a new approximate - solution which is closer to the final solution. */ - - if (! ip2k_elf_relax_section_passN (abfd, sec, again, &final_pass, - &misc)) - goto error_return; - - changed |= *again; + if (new_pass) + { + new_pass = FALSE; + changed = FALSE; + page_start = PAGENO (search_addr); + page_end = page_start | 0x00003FFF; + } - /* If nothing has changed on this relaxation - pass restart the final relaxaton pass. */ - if (! changed && last_section == sec) + /* Only process sections in range. */ + if ((BASEADDR (sec) + sec->_cooked_size >= page_start) + && (BASEADDR (sec) <= page_end)) { - /* If this was the final pass and we didn't reset - the final pass flag then we are done, otherwise - do another final pass. */ - if (! final_pass) - { - final_pass = true; - *again = true; - } + if (!ip2k_elf_relax_section_page (abfd, sec, &changed, &misc, page_start, page_end)) + return FALSE; } + *again = TRUE; } - /* Perform some house keeping after relaxing the section. */ + /* Perform some house keeping after relaxing the section. */ if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf) @@ -949,7 +976,7 @@ ip2k_elf_relax_section (abfd, sec, link_ && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL @@ -961,177 +988,77 @@ ip2k_elf_relax_section (abfd, sec, link_ if (internal_relocs != NULL && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } -/* This function handles relaxation during the first pass. */ +/* This function handles relaxation of a section in a specific page. */ -static boolean -ip2k_elf_relax_section_pass1 (abfd, sec, again, misc) +static bfd_boolean +ip2k_elf_relax_section_page (abfd, sec, again, misc, page_start, page_end) bfd *abfd; asection *sec; - boolean *again; - struct misc * misc; + bfd_boolean *again; + struct misc *misc; + unsigned long page_start; + unsigned long page_end; { Elf_Internal_Rela *irelend = misc->irelbase + sec->reloc_count; Elf_Internal_Rela *irel; - + int switch_table_128; + int switch_table_256; + /* Walk thru the section looking for relaxation opertunities. */ for (irel = misc->irelbase; irel < irelend; irel++) { - if (ELF32_R_TYPE (irel->r_info) == (int) R_IP2K_PAGE3) - { - bfd_byte code0 = bfd_get_8 (abfd, - misc->contents + irel->r_offset); - bfd_byte code1 = bfd_get_8 (abfd, - misc->contents + irel->r_offset + 1); - - /* Verify that this is the PAGE opcode. */ - if (IS_PAGE_OPCODE (code0, code1)) - { - /* Note that we've changed the relocs, section contents, etc. */ - elf_section_data (sec)->relocs = misc->irelbase; - elf_section_data (sec)->this_hdr.contents = misc->contents; - misc->symtab_hdr->contents = (bfd_byte *) misc->isymbuf; - - /* Handle switch dispatch tables/prologues. */ - if (! relax_switch_dispatch_tables_pass1 (abfd, sec, - irel->r_offset, misc)) - return false; - - /* Fix the relocation's type. */ - irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), - R_IP2K_NONE); - - /* Delete the PAGE insn. */ - if (! ip2k_elf_relax_delete_bytes (abfd, sec, - irel->r_offset, - sizeof (page_opcode))) - return false; - - /* That will change things, so, we should relax again. - Note that this is not required, and it may be slow. */ - *again = true; - } - } - } + if (ELF32_R_TYPE (irel->r_info) != (int) R_IP2K_PAGE3) + /* Ignore non page instructions. */ + continue; + + if (BASEADDR (sec) + irel->r_offset < page_start) + /* Ignore page instructions on earlier page - they have + already been processed. Remember that there is code flow + that crosses a page boundary. */ + continue; + + if (BASEADDR (sec) + irel->r_offset > page_end) + /* Flow beyond end of page => nothing more to do for this page. */ + return TRUE; + + /* Detect switch tables. */ + switch_table_128 = ip2k_is_switch_table_128 (abfd, sec, irel->r_offset, misc->contents); + switch_table_256 = ip2k_is_switch_table_256 (abfd, sec, irel->r_offset, misc->contents); + + if ((switch_table_128 > 0) || (switch_table_256 > 0)) + /* If the index is greater than 0 then it has already been processed. */ + continue; - return true; -} - -/* This function handles relaxation for 2nd and subsequent passes. */ + if (switch_table_128 == 0) + { + if (!ip2k_relax_switch_table_128 (abfd, sec, irel, again, misc)) + return FALSE; -static boolean -ip2k_elf_relax_section_passN (abfd, sec, again, final_pass, misc) - bfd *abfd; - asection *sec; - boolean *again; - boolean *final_pass; - struct misc * misc; -{ - Elf_Internal_Rela *irelend = misc->irelbase + sec->reloc_count; - Elf_Internal_Rela *irel; - boolean add_all; + continue; + } - /* If we are on the final relaxation pass and the section crosses - then set a flag to indicate that *all* page instructions need - to be added back into this section. */ - if (*final_pass) - { - add_all = (PAGENO (BASEADDR (sec)) - != PAGENO (BASEADDR (sec) + sec->_cooked_size)); - - /* If this section crosses a page boundary set the crossed - page boundary flag. */ - if (add_all) - sec->userdata = sec; - else + if (switch_table_256 == 0) { - /* If the section had previously crossed a page boundary - but on this pass does not then reset crossed page - boundary flag and rerun the 1st relaxation pass on - this section. */ - if (sec->userdata) - { - sec->userdata = NULL; - if (! ip2k_elf_relax_section_pass1 (abfd, sec, again, misc)) - return false; - } + if (!ip2k_relax_switch_table_256 (abfd, sec, irel, again, misc)) + return FALSE; + + continue; } - } - else - add_all = false; - /* Walk thru the section looking for call/jmp - instructions which need a page instruction. */ - for (irel = misc->irelbase; irel < irelend; irel++) - { - if (ELF32_R_TYPE (irel->r_info) == (int) R_IP2K_ADDR16CJP) - { - /* Get the value of the symbol referred to by the reloc. */ - bfd_vma symval = symbol_value (abfd, misc->symtab_hdr, misc->isymbuf, - irel); - bfd_byte code0, code1; - - if (symval == UNDEFINED_SYMBOL) - { - /* This appears to be a reference to an undefined - symbol. Just ignore it--it will be caught by the - regular reloc processing. */ - continue; - } + /* Simple relax. */ + if (ip2k_test_page_insn (abfd, sec, irel, misc)) + { + if (!ip2k_delete_page_insn (abfd, sec, irel, again, misc)) + return FALSE; - /* For simplicity of coding, we are going to modify the section - contents, the section relocs, and the BFD symbol table. We - must tell the rest of the code not to free up this - information. It would be possible to instead create a table - of changes which have to be made, as is done in coff-mips.c; - that would be more work, but would require less memory when - the linker is run. */ - - /* Get the opcode. */ - code0 = bfd_get_8 (abfd, misc->contents + irel->r_offset); - code1 = bfd_get_8 (abfd, misc->contents + irel->r_offset + 1); - - if (IS_JMP_OPCODE (code0, code1) || IS_CALL_OPCODE (code0, code1)) - { - if (*final_pass) - { - if (! unrelax_switch_dispatch_tables_passN (abfd, sec, - irel->r_offset, - again, misc)) - return false; - - if (*again) - add_all = false; - } - - code0 = bfd_get_8 (abfd, misc->contents + irel->r_offset - 2); - code1 = bfd_get_8 (abfd, misc->contents + irel->r_offset - 1); - - if (! IS_PAGE_OPCODE (code0, code1)) - { - bfd_vma value = symval + irel->r_addend; - bfd_vma addr = BASEADDR (sec) + irel->r_offset; - - if (add_all || PAGENO (addr) != PAGENO (value)) - { - if (! add_page_insn (abfd, sec, irel, misc)) - return false; - - /* That will have changed things, so, we must relax again. */ - *again = true; - } - } - } - } + continue; + } } - - /* If anything changed reset the final pass flag. */ - if (*again) - *final_pass = false; - return true; + return TRUE; } /* Parts of a Stabs entry. */ @@ -1162,9 +1089,10 @@ adjust_all_relocations (abfd, sec, addr, struct elf_link_hash_entry **sym_hashes; struct elf_link_hash_entry **end_hashes; unsigned int symcount; - + asection *stab; + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; - isymbuf = (Elf32_Internal_Sym *) symtab_hdr->contents; + isymbuf = (Elf_Internal_Sym *) symtab_hdr->contents; shndx = _bfd_elf_section_from_bfd_section (abfd, sec); @@ -1204,6 +1132,132 @@ adjust_all_relocations (abfd, sec, addr, irel->r_offset += count; } + /* Now fix the stab relocations. */ + stab = bfd_get_section_by_name (abfd, ".stab"); + if (stab) + { + bfd_byte *stabcontents, *stabend, *stabp; + + irelbase = elf_section_data (stab)->relocs; + irelend = irelbase + stab->reloc_count; + + /* Pull out the contents of the stab section. */ + if (elf_section_data (stab)->this_hdr.contents != NULL) + stabcontents = elf_section_data (stab)->this_hdr.contents; + else + { + stabcontents = (bfd_byte *) bfd_alloc (abfd, stab->_raw_size); + if (stabcontents == NULL) + return; + + if (! bfd_get_section_contents (abfd, stab, stabcontents, + (file_ptr) 0, stab->_raw_size)) + return; + + /* We need to remember this. */ + elf_section_data (stab)->this_hdr.contents = stabcontents; + } + + stabend = stabcontents + stab->_raw_size; + + for (irel = irelbase; irel < irelend; irel++) + { + if (ELF32_R_TYPE (irel->r_info) != R_IP2K_NONE) + { + /* Get the value of the symbol referred to by the reloc. */ + if (ELF32_R_SYM (irel->r_info) < symtab_hdr->sh_info) + { + asection *sym_sec; + + /* A local symbol. */ + isym = isymbuf + ELF32_R_SYM (irel->r_info); + sym_sec = bfd_section_from_elf_index (abfd, isym->st_shndx); + + if (sym_sec == sec) + { + const char *name; + unsigned long strx; + unsigned char type, other; + unsigned short desc; + bfd_vma value; + bfd_vma baseaddr = BASEADDR (sec); + bfd_vma symval = BASEADDR (sym_sec) + isym->st_value + + irel->r_addend; + + if ((baseaddr + addr) <= symval + && symval <= (baseaddr + endaddr)) + irel->r_addend += count; + + /* Go hunt up a function and fix its line info if needed. */ + stabp = stabcontents + irel->r_offset - 8; + + /* Go pullout the stab entry. */ + strx = bfd_h_get_32 (abfd, stabp + STRDXOFF); + type = bfd_h_get_8 (abfd, stabp + TYPEOFF); + other = bfd_h_get_8 (abfd, stabp + OTHEROFF); + desc = bfd_h_get_16 (abfd, stabp + DESCOFF); + value = bfd_h_get_32 (abfd, stabp + VALOFF); + + name = bfd_get_stab_name (type); + + if (strcmp (name, "FUN") == 0) + { + int function_adjusted = 0; + + if (symval > (baseaddr + addr)) + /* Not in this function. */ + continue; + + /* Hey we got a function hit. */ + stabp += STABSIZE; + for (;stabp < stabend; stabp += STABSIZE) + { + /* Go pullout the stab entry. */ + strx = bfd_h_get_32 (abfd, stabp + STRDXOFF); + type = bfd_h_get_8 (abfd, stabp + TYPEOFF); + other = bfd_h_get_8 (abfd, stabp + OTHEROFF); + desc = bfd_h_get_16 (abfd, stabp + DESCOFF); + value = bfd_h_get_32 (abfd, stabp + VALOFF); + + name = bfd_get_stab_name (type); + + if (strcmp (name, "FUN") == 0) + { + /* Hit another function entry. */ + if (function_adjusted) + { + /* Adjust the value. */ + value += count; + + /* We need to put it back. */ + bfd_h_put_32 (abfd, value,stabp + VALOFF); + } + + /* And then bale out. */ + break; + } + + if (strcmp (name, "SLINE") == 0) + { + /* Got a line entry. */ + if ((baseaddr + addr) <= (symval + value)) + { + /* Adjust the line entry. */ + value += count; + + /* We need to put it back. */ + bfd_h_put_32 (abfd, value,stabp + VALOFF); + function_adjusted = 1; + } + } + } + } + } + } + } + } + } + /* When adding an instruction back it is sometimes necessary to move any global or local symbol that was referencing the first instruction of the moved block to refer to the first instruction of the inserted block. @@ -1230,106 +1284,23 @@ adjust_all_relocations (abfd, sec, addr, for (; sym_hashes < end_hashes; sym_hashes++) { struct elf_link_hash_entry *sym_hash = *sym_hashes; + if ((sym_hash->root.type == bfd_link_hash_defined || sym_hash->root.type == bfd_link_hash_defweak) && sym_hash->root.u.def.section == sec) { if (addr <= sym_hash->root.u.def.value && sym_hash->root.u.def.value < endaddr) - { - sym_hash->root.u.def.value += count; - } + sym_hash->root.u.def.value += count; } } return; } -static boolean -add_page_insn (abfd, sec, irel, misc) - bfd *abfd; - asection *sec; - Elf_Internal_Rela *irel; - struct misc *misc; -{ - /* Note that we've changed the relocs, section contents, etc. */ - elf_section_data (sec)->relocs = misc->irelbase; - elf_section_data (sec)->this_hdr.contents = misc->contents; - misc->symtab_hdr->contents = (bfd_byte *) misc->isymbuf; - - /* Add the PAGE insn. */ - if (! ip2k_elf_relax_add_bytes (abfd, sec, irel->r_offset, - page_opcode, - sizeof (page_opcode), - sizeof (page_opcode))) - return false; - else - { - Elf32_Internal_Rela * jrel = irel - 1; - - /* Add relocation for PAGE insn added. */ - if (ELF32_R_TYPE (jrel->r_info) != R_IP2K_NONE) - { - bfd_byte code0, code1; - char *msg = NULL; - - /* Get the opcode. */ - code0 = bfd_get_8 (abfd, misc->contents + irel->r_offset); - code1 = bfd_get_8 (abfd, misc->contents + irel->r_offset + 1); - - if (IS_JMP_OPCODE (code0, code1)) - msg = "\tJMP instruction missing a preceeding PAGE instruction in %s\n\n"; - - else if (IS_CALL_OPCODE (code0, code1)) - msg = "\tCALL instruction missing a preceeding PAGE instruction in %s\n\n"; - - if (msg) - { - fprintf (stderr, "\n\t *** LINKER RELAXATION failure ***\n"); - fprintf (stderr, msg, sec->owner->filename); - } - - return false; - } - - jrel->r_addend = irel->r_addend; - jrel->r_offset = irel->r_offset - sizeof (page_opcode); - jrel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), - R_IP2K_PAGE3); - } - - return true; -} - -/* Insert bytes into a section while relaxing. */ - -static boolean -ip2k_elf_relax_add_bytes (abfd, sec, addr, bytes, count, noadj) - bfd *abfd; - asection *sec; - bfd_vma addr; - const bfd_byte *bytes; - int count; - int noadj; -{ - bfd_byte *contents = elf_section_data (sec)->this_hdr.contents; - bfd_vma endaddr = sec->_cooked_size; - - /* Make room to insert the bytes. */ - memmove (contents + addr + count, contents + addr, endaddr - addr); - - /* Insert the bytes into the section. */ - memcpy (contents + addr, bytes, count); - - sec->_cooked_size += count; - - adjust_all_relocations (abfd, sec, addr, endaddr, count, noadj); - return true; -} - /* Delete some bytes from a section while relaxing. */ -static boolean +static bfd_boolean ip2k_elf_relax_delete_bytes (abfd, sec, addr, count) bfd *abfd; asection *sec; @@ -1346,7 +1317,7 @@ ip2k_elf_relax_delete_bytes (abfd, sec, sec->_cooked_size -= count; adjust_all_relocations (abfd, sec, addr + count, endaddr, -count, 0); - return true; + return TRUE; } /* -------------------------------------------------------------------- */ @@ -1360,7 +1331,7 @@ static void ip2k_info_to_howto_rela (abfd, cache_ptr, dst) bfd * abfd ATTRIBUTE_UNUSED; arelent * cache_ptr; - Elf32_Internal_Rela * dst; + Elf_Internal_Rela * dst; { unsigned int r_type; @@ -1386,8 +1357,9 @@ ip2k_final_link_relocate (howto, input_b Elf_Internal_Rela * rel; bfd_vma relocation; { - bfd_reloc_status_type r = bfd_reloc_ok; + static bfd_vma page_addr = 0; + bfd_reloc_status_type r = bfd_reloc_ok; switch (howto->type) { /* Handle data space relocations. */ @@ -1405,8 +1377,45 @@ ip2k_final_link_relocate (howto, input_b break; /* Handle insn space relocations. */ - case R_IP2K_ADDR16CJP: case R_IP2K_PAGE3: + page_addr = BASEADDR (input_section) + rel->r_offset; + if ((relocation & IP2K_INSN_MASK) == IP2K_INSN_VALUE) + relocation &= ~IP2K_INSN_MASK; + else + r = bfd_reloc_notsupported; + break; + + case R_IP2K_ADDR16CJP: + if (BASEADDR (input_section) + rel->r_offset != page_addr + 2) + { + /* No preceeding page instruction, verify that it isn't needed. */ + if (PAGENO (relocation + rel->r_addend) != + ip2k_nominal_page_bits (input_bfd, input_section, + rel->r_offset, contents)) + _bfd_error_handler (_("ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."), + BASEADDR (input_section) + rel->r_offset, + relocation + rel->r_addend); + } + else if (ip2k_relaxed) + { + /* Preceeding page instruction. Verify that the page instruction is + really needed. One reason for the relaxation to miss a page is if + the section is not marked as executable. */ + if (!ip2k_is_switch_table_128 (input_bfd, input_section, rel->r_offset - 2, contents) && + !ip2k_is_switch_table_256 (input_bfd, input_section, rel->r_offset - 2, contents) && + (PAGENO (relocation + rel->r_addend) == + ip2k_nominal_page_bits (input_bfd, input_section, + rel->r_offset - 2, contents))) + _bfd_error_handler (_("ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."), + page_addr, + relocation + rel->r_addend); + } + if ((relocation & IP2K_INSN_MASK) == IP2K_INSN_VALUE) + relocation &= ~IP2K_INSN_MASK; + else + r = bfd_reloc_notsupported; + break; + case R_IP2K_LO8INSN: case R_IP2K_HI8INSN: case R_IP2K_PC_SKIP: @@ -1467,25 +1476,25 @@ ip2k_final_link_relocate (howto, input_b section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean ip2k_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) - bfd * output_bfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * relocs; - Elf_Internal_Sym * local_syms; - asection ** local_sections; -{ - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; + bfd *output_bfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; +{ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -1502,7 +1511,7 @@ ip2k_elf_relocate_section (output_bfd, i bfd_reloc_status_type r; const char * name = NULL; int r_type; - + /* This is a final link. */ r_type = ELF32_R_TYPE (rel->r_info); r_symndx = ELF32_R_SYM (rel->r_info); @@ -1510,13 +1519,13 @@ ip2k_elf_relocate_section (output_bfd, i h = NULL; sym = NULL; sec = NULL; - + if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; sec = local_sections [r_symndx]; relocation = BASEADDR (sec) + sym->st_value; - + name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name); name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; @@ -1524,30 +1533,30 @@ ip2k_elf_relocate_section (output_bfd, i else { h = sym_hashes [r_symndx - symtab_hdr->sh_info]; - + while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; name = h->root.root.string; - + if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) { sec = h->root.u.def.section; relocation = h->root.u.def.value + BASEADDR (sec); } + else if (h->root.type == bfd_link_hash_undefweak) - { - relocation = 0; - } + relocation = 0; + else { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, rel->r_offset, (! info->shared || info->no_undefined)))) - return false; + return FALSE; relocation = 0; } } @@ -1567,12 +1576,12 @@ ip2k_elf_relocate_section (output_bfd, i (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset); break; - + case bfd_reloc_undefined: r = info->callbacks->undefined_symbol - (info, name, input_bfd, input_section, rel->r_offset, true); + (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; - + case bfd_reloc_outofrange: msg = _("internal error: out of range error"); break; @@ -1598,11 +1607,11 @@ ip2k_elf_relocate_section (output_bfd, i (info, msg, name, input_bfd, input_section, rel->r_offset); if (! r) - return false; + return FALSE; } } - return true; + return TRUE; } static asection * @@ -1617,7 +1626,7 @@ ip2k_elf_gc_mark_hook (sec, info, rel, h { switch (ELF32_R_TYPE (rel->r_info)) { -#if 0 +#if 0 case R_IP2K_GNU_VTINHERIT: case R_IP2K_GNU_VTENTRY: break; @@ -1644,35 +1653,29 @@ ip2k_elf_gc_mark_hook (sec, info, rel, h && ELF_ST_BIND (sym->st_info) != STB_LOCAL) && ! ((sym->st_shndx <= 0 || sym->st_shndx >= SHN_LORESERVE) && sym->st_shndx != SHN_COMMON)) - { - return bfd_section_from_elf_index (sec->owner, sym->st_shndx); - } + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); } return NULL; } -static boolean +static bfd_boolean ip2k_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { - /* we don't use got and plt entries for ip2k */ - return true; + /* We don't use got and plt entries for ip2k. */ + return TRUE; } - -/* -------------------------------------------------------------------- */ - - #define TARGET_BIG_SYM bfd_elf32_ip2k_vec #define TARGET_BIG_NAME "elf32-ip2k" #define ELF_ARCH bfd_arch_ip2k #define ELF_MACHINE_CODE EM_IP2K #define ELF_MACHINE_ALT1 EM_IP2K_OLD -#define ELF_MAXPAGESIZE 1 /* No pages on the IP2K */ +#define ELF_MAXPAGESIZE 1 /* No pages on the IP2K. */ #define elf_info_to_howto_rel NULL #define elf_info_to_howto ip2k_info_to_howto_rela @@ -1681,12 +1684,10 @@ ip2k_elf_gc_sweep_hook (abfd, info, sec, #define elf_backend_rela_normal 1 #define elf_backend_gc_mark_hook ip2k_elf_gc_mark_hook #define elf_backend_gc_sweep_hook ip2k_elf_gc_sweep_hook - #define elf_backend_relocate_section ip2k_elf_relocate_section #define elf_symbol_leading_char '_' #define bfd_elf32_bfd_reloc_type_lookup ip2k_reloc_type_lookup #define bfd_elf32_bfd_relax_section ip2k_elf_relax_section - #include "elf32-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf32-iq2000.c binutils-2.13.90.0.18/bfd/elf32-iq2000.c --- binutils-2.13.90.0.16/bfd/elf32-iq2000.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/bfd/elf32-iq2000.c Tue Jan 21 10:21:32 2003 @@ -0,0 +1,974 @@ +/* IQ2000-specific support for 32-bit ELF. + Copyright (C) 2003 Free Software Foundation, Inc. + +This file is part of BFD, the Binary File Descriptor library. + +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. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libbfd.h" +#include "elf-bfd.h" +#include "elf/iq2000.h" + +/* Forward declarations. */ + +/* Private relocation functions. */ +static bfd_reloc_status_type iq2000_elf_relocate_hi16 PARAMS ((bfd *, Elf_Internal_Rela *, bfd_byte *, bfd_vma)); +static reloc_howto_type * iq2000_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); +static void iq2000_info_to_howto_rela PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean iq2000_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); +static bfd_reloc_status_type iq2000_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); +static bfd_boolean iq2000_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); +static asection * iq2000_elf_gc_mark_hook PARAMS ((asection *sec, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); +static reloc_howto_type * iq2000_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); +static int elf32_iq2000_machine PARAMS ((bfd *)); +static bfd_boolean iq2000_elf_object_p PARAMS ((bfd *)); +static bfd_boolean iq2000_elf_set_private_flags PARAMS ((bfd *, flagword)); +static bfd_boolean iq2000_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *)); +static bfd_boolean iq2000_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); +static bfd_boolean iq2000_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); +static bfd_boolean iq2000_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); +static bfd_reloc_status_type iq2000_elf_howto_hi16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + + +static reloc_howto_type iq2000_elf_howto_table [] = +{ + /* This reloc does nothing. */ + + HOWTO (R_IQ2000_NONE, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_NONE", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 16 bit absolute relocation. */ + HOWTO (R_IQ2000_16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_16", /* name */ + FALSE, /* partial_inplace */ + 0x0000, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 32 bit absolute relocation. */ + HOWTO (R_IQ2000_32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 31, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_32", /* name */ + FALSE, /* partial_inplace */ + 0x00000000, /* src_mask */ + 0x7fffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* 26 bit branch address. */ + HOWTO (R_IQ2000_26, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 26, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + /* This needs complex overflow + detection, because the upper four + bits must match the PC. */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_26", /* name */ + FALSE, /* partial_inplace */ + 0x00000000, /* src_mask */ + 0x03ffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* 16 bit PC relative reference. */ + HOWTO (R_IQ2000_PC16, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_PC16", /* name */ + FALSE, /* partial_inplace */ + 0x0000, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* high 16 bits of symbol value. */ + HOWTO (R_IQ2000_HI16, /* type */ + 16, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 15, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + iq2000_elf_howto_hi16_reloc, /* special_function */ + "R_IQ2000_HI16", /* name */ + FALSE, /* partial_inplace */ + 0x0000, /* src_mask */ + 0x7fff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* Low 16 bits of symbol value. */ + HOWTO (R_IQ2000_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_LO16", /* name */ + FALSE, /* partial_inplace */ + 0x0000, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* 16-bit jump offset. */ + HOWTO (R_IQ2000_OFFSET_16, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_OFFSET_16", /* name */ + FALSE, /* partial_inplace */ + 0x0000, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* 21-bit jump offset. */ + HOWTO (R_IQ2000_OFFSET_21, /* type */ + 2, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 21, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_OFFSET_21", /* name */ + FALSE, /* partial_inplace */ + 0x000000, /* src_mask */ + 0x1fffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* unsigned high 16 bits of value. */ + HOWTO (R_IQ2000_OFFSET_21, /* type */ + 16, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_UHI16", /* name */ + FALSE, /* partial_inplace */ + 0x0000, /* src_mask */ + 0x7fff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 32 bit absolute debug relocation. */ + HOWTO (R_IQ2000_32_DEBUG, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_IQ2000_32", /* name */ + FALSE, /* partial_inplace */ + 0x00000000, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + +}; + +/* GNU extension to record C++ vtable hierarchy. */ +static reloc_howto_type iq2000_elf_vtinherit_howto = + HOWTO (R_IQ2000_GNU_VTINHERIT, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + NULL, /* special_function */ + "R_IQ2000_GNU_VTINHERIT", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE); /* pcrel_offset */ + +/* GNU extension to record C++ vtable member usage. */ +static reloc_howto_type iq2000_elf_vtentry_howto = + HOWTO (R_IQ2000_GNU_VTENTRY, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + NULL, /* special_function */ + "R_IQ2000_GNU_VTENTRY", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE); /* pcrel_offset */ + + +/* Map BFD reloc types to IQ2000 ELF reloc types. */ + +struct iq2000_reloc_map +{ + bfd_reloc_code_real_type bfd_reloc_val; + unsigned int iq2000_reloc_val; +}; + +static const struct iq2000_reloc_map iq2000_reloc_map [] = +{ + { BFD_RELOC_NONE, R_IQ2000_NONE }, + { BFD_RELOC_16, R_IQ2000_16 }, + { BFD_RELOC_32, R_IQ2000_32 }, + { BFD_RELOC_MIPS_JMP, R_IQ2000_26 }, + { BFD_RELOC_16_PCREL_S2, R_IQ2000_PC16 }, + { BFD_RELOC_HI16, R_IQ2000_HI16 }, + { BFD_RELOC_LO16, R_IQ2000_LO16 }, + { BFD_RELOC_IQ2000_OFFSET_16,R_IQ2000_OFFSET_16 }, + { BFD_RELOC_IQ2000_OFFSET_21,R_IQ2000_OFFSET_21 }, + { BFD_RELOC_IQ2000_UHI16, R_IQ2000_UHI16 }, + { BFD_RELOC_VTABLE_INHERIT, R_IQ2000_GNU_VTINHERIT }, + { BFD_RELOC_VTABLE_ENTRY, R_IQ2000_GNU_VTENTRY }, +}; + +static bfd_reloc_status_type +iq2000_elf_howto_hi16_reloc (abfd, + reloc_entry, + symbol, + data, + input_section, + output_bfd, + error_message) + bfd *abfd ATTRIBUTE_UNUSED; + arelent *reloc_entry; + asymbol *symbol; + PTR data; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; +{ + bfd_reloc_status_type ret; + bfd_vma relocation; + + /* If we're relocating, and this an external symbol, we don't want + to change anything. */ + if (output_bfd != (bfd *) NULL + && (symbol->flags & BSF_SECTION_SYM) == 0 + && reloc_entry->addend == 0) + { + reloc_entry->address += input_section->output_offset; + return bfd_reloc_ok; + } + + if (bfd_is_com_section (symbol->section)) + relocation = 0; + else + relocation = symbol->value; + + relocation += symbol->section->output_section->vma; + relocation += symbol->section->output_offset; + relocation += reloc_entry->addend; + + /* if %lo will have sign-extension, compensate by add 0x10000 to hi portion */ + if (relocation & 0x8000) + reloc_entry->addend += 0x10000; + + /* Now do the reloc in the usual way. */ + ret = bfd_elf_generic_reloc (abfd, reloc_entry, symbol, data, + input_section, output_bfd, error_message); + + /* put it back the way it was */ + if (relocation & 0x8000) + reloc_entry->addend -= 0x10000; + + return ret; +} + +static bfd_reloc_status_type +iq2000_elf_relocate_hi16 (input_bfd, relhi, contents, value) + bfd *input_bfd; + Elf_Internal_Rela *relhi; + bfd_byte *contents; + bfd_vma value; +{ + bfd_vma insn; + + insn = bfd_get_32 (input_bfd, contents + relhi->r_offset); + + value += relhi->r_addend; + value &= 0x7fffffff; /* mask off top-bit which is Harvard mask bit */ + + /* if top-bit of %lo value is on, this means that %lo will + sign-propagate and so we compensate by adding 1 to %hi value */ + if (value & 0x8000) + value += 0x10000; + + value >>= 16; + insn = ((insn & ~0xFFFF) | value); + + bfd_put_32 (input_bfd, insn, contents + relhi->r_offset); + return bfd_reloc_ok; +} + +static reloc_howto_type * +iq2000_reloc_type_lookup (abfd, code) + bfd * abfd ATTRIBUTE_UNUSED; + bfd_reloc_code_real_type code; +{ + /* Note that the iq2000_elf_howto_table is indxed by the R_ + constants. Thus, the order that the howto records appear in the + table *must* match the order of the relocation types defined in + include/elf/iq2000.h. */ + + switch (code) + { + case BFD_RELOC_NONE: + return &iq2000_elf_howto_table[ (int) R_IQ2000_NONE]; + case BFD_RELOC_16: + return &iq2000_elf_howto_table[ (int) R_IQ2000_16]; + case BFD_RELOC_32: + return &iq2000_elf_howto_table[ (int) R_IQ2000_32]; + case BFD_RELOC_MIPS_JMP: + return &iq2000_elf_howto_table[ (int) R_IQ2000_26]; + case BFD_RELOC_IQ2000_OFFSET_16: + return &iq2000_elf_howto_table[ (int) R_IQ2000_OFFSET_16]; + case BFD_RELOC_IQ2000_OFFSET_21: + return &iq2000_elf_howto_table[ (int) R_IQ2000_OFFSET_21]; + case BFD_RELOC_16_PCREL_S2: + return &iq2000_elf_howto_table[ (int) R_IQ2000_PC16]; + case BFD_RELOC_HI16: + return &iq2000_elf_howto_table[ (int) R_IQ2000_HI16]; + case BFD_RELOC_IQ2000_UHI16: + return &iq2000_elf_howto_table[ (int) R_IQ2000_UHI16]; + case BFD_RELOC_LO16: + return &iq2000_elf_howto_table[ (int) R_IQ2000_LO16]; + case BFD_RELOC_VTABLE_INHERIT: + return &iq2000_elf_vtinherit_howto; + case BFD_RELOC_VTABLE_ENTRY: + return &iq2000_elf_vtentry_howto; + default: + /* Pacify gcc -Wall. */ + return NULL; + } + return NULL; +} + + +/* Perform a single relocation. By default we use the standard BFD + routines. */ + +static bfd_reloc_status_type +iq2000_final_link_relocate (howto, input_bfd, input_section, contents, rel, relocation) + reloc_howto_type * howto; + bfd * input_bfd; + asection * input_section; + bfd_byte * contents; + Elf_Internal_Rela * rel; + bfd_vma relocation; +{ + return _bfd_final_link_relocate (howto, input_bfd, input_section, + contents, rel->r_offset, + relocation, rel->r_addend); +} + +/* Set the howto pointer for a IQ2000 ELF reloc. */ + +static void +iq2000_info_to_howto_rela (abfd, cache_ptr, dst) + bfd * abfd ATTRIBUTE_UNUSED; + arelent * cache_ptr; + Elf_Internal_Rela * dst; +{ + unsigned int r_type; + + r_type = ELF32_R_TYPE (dst->r_info); + switch (r_type) + { + case R_IQ2000_GNU_VTINHERIT: + cache_ptr->howto = & iq2000_elf_vtinherit_howto; + break; + + case R_IQ2000_GNU_VTENTRY: + cache_ptr->howto = & iq2000_elf_vtentry_howto; + break; + + default: + cache_ptr->howto = & iq2000_elf_howto_table [r_type]; + break; + } +} + +/* Look through the relocs for a section during the first phase. + Since we don't do .gots or .plts, we just need to consider the + virtual table relocs for gc. */ + +static bfd_boolean +iq2000_elf_check_relocs (abfd, info, sec, relocs) + bfd *abfd; + struct bfd_link_info *info; + asection *sec; + const Elf_Internal_Rela *relocs; +{ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes, **sym_hashes_end; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *rel_end; + + if (info->relocateable) + return TRUE; + + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; + sym_hashes = elf_sym_hashes (abfd); + sym_hashes_end = sym_hashes + symtab_hdr->sh_size/sizeof(Elf32_External_Sym); + if (!elf_bad_symtab (abfd)) + sym_hashes_end -= symtab_hdr->sh_info; + + rel_end = relocs + sec->reloc_count; + for (rel = relocs; rel < rel_end; rel++) + { + struct elf_link_hash_entry *h; + unsigned long r_symndx; + + r_symndx = ELF32_R_SYM (rel->r_info); + if (r_symndx < symtab_hdr->sh_info) + h = NULL; + else + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + + switch (ELF32_R_TYPE (rel->r_info)) + { + /* This relocation describes the C++ object vtable hierarchy. + Reconstruct it for later use during GC. */ + case R_IQ2000_GNU_VTINHERIT: + if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) + return FALSE; + break; + + /* This relocation describes which C++ vtable entries are actually + used. Record for later use during GC. */ + case R_IQ2000_GNU_VTENTRY: + if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) + return FALSE; + break; + + case R_IQ2000_32: + /* For debug section, change to special harvard-aware relocations */ + if (memcmp (sec->name, ".debug", 6) == 0 + || memcmp (sec->name, ".stab", 5) == 0 + || memcmp (sec->name, ".eh_frame", 9) == 0) + rel->r_info = ELF32_R_INFO (ELF32_R_SYM (rel->r_info), R_IQ2000_32_DEBUG); + break; + } + } + return TRUE; +} + + +/* Relocate a IQ2000 ELF section. + There is some attempt to make this function usable for many architectures, + both USE_REL and USE_RELA ['twould be nice if such a critter existed], + if only to serve as a learning tool. + + The RELOCATE_SECTION function is called by the new ELF backend linker + to handle the relocations for a section. + + The relocs are always passed as Rela structures; if the section + actually uses Rel structures, the r_addend field will always be + zero. + + This function is responsible for adjusting the section contents as + necessary, and (if using Rela relocs and generating a relocateable + output file) adjusting the reloc addend as necessary. + + This function does not have to worry about setting the reloc + address or the reloc symbol index. + + LOCAL_SYMS is a pointer to the swapped in local symbols. + + LOCAL_SECTIONS is an array giving the section in the input file + corresponding to the st_shndx field of each local symbol. + + The global hash table entry for the global symbols can be found + via elf_sym_hashes (input_bfd). + + When generating relocateable output, this function must handle + STB_LOCAL/STT_SECTION symbols specially. The output symbol is + going to be the section symbol corresponding to the output + section, which means that the addend must be adjusted + accordingly. */ + +static bfd_boolean +iq2000_elf_relocate_section (output_bfd, info, input_bfd, input_section, + contents, relocs, local_syms, local_sections) + bfd * output_bfd ATTRIBUTE_UNUSED; + struct bfd_link_info * info; + bfd * input_bfd; + asection * input_section; + bfd_byte * contents; + Elf_Internal_Rela * relocs; + Elf_Internal_Sym * local_syms; + asection ** local_sections; +{ + Elf_Internal_Shdr * symtab_hdr; + struct elf_link_hash_entry ** sym_hashes; + Elf_Internal_Rela * rel; + Elf_Internal_Rela * relend; + + symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; + sym_hashes = elf_sym_hashes (input_bfd); + relend = relocs + input_section->reloc_count; + + for (rel = relocs; rel < relend; rel ++) + { + reloc_howto_type * howto; + unsigned long r_symndx; + Elf_Internal_Sym * sym; + asection * sec; + struct elf_link_hash_entry * h; + bfd_vma relocation; + bfd_reloc_status_type r; + const char * name = NULL; + int r_type; + + r_type = ELF32_R_TYPE (rel->r_info); + + if ( r_type == R_IQ2000_GNU_VTINHERIT + || r_type == R_IQ2000_GNU_VTENTRY) + continue; + + r_symndx = ELF32_R_SYM (rel->r_info); + + /* This is a final link. */ + howto = iq2000_elf_howto_table + ELF32_R_TYPE (rel->r_info); + h = NULL; + sym = NULL; + sec = NULL; + + if (r_symndx < symtab_hdr->sh_info) + { + sym = local_syms + r_symndx; + sec = local_sections [r_symndx]; + relocation = (sec->output_section->vma + + sec->output_offset + + sym->st_value); + + name = bfd_elf_string_from_elf_section + (input_bfd, symtab_hdr->sh_link, sym->st_name); + name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; +#ifdef DEBUG + fprintf (stderr, "local: sec: %s, sym: %s (%d), value: %x + %x + %x addend %x\n", + sec->name, name, sym->st_name, + sec->output_section->vma, sec->output_offset, + sym->st_value, rel->r_addend); +#endif + } + else + { + h = sym_hashes [r_symndx]; + + while (h->root.type == bfd_link_hash_indirect + || h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + name = h->root.root.string; + + if (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + { + sec = h->root.u.def.section; + relocation = (h->root.u.def.value + + sec->output_section->vma + + sec->output_offset); +#ifdef DEBUG + fprintf (stderr, + "defined: sec: %s, name: %s, value: %x + %x + %x gives: %x\n", + sec->name, name, h->root.u.def.value, + sec->output_section->vma, sec->output_offset, relocation); +#endif + } + else if (h->root.type == bfd_link_hash_undefweak) + { +#ifdef DEBUG + fprintf (stderr, "undefined: sec: %s, name: %s\n", + sec->name, name); +#endif + relocation = 0; + } + else + { + if (! ((*info->callbacks->undefined_symbol) + (info, h->root.root.string, input_bfd, + input_section, rel->r_offset, + (!info->shared || info->no_undefined)))) + return FALSE; +#ifdef DEBUG + fprintf (stderr, "unknown: name: %s\n", name); +#endif + relocation = 0; + } + } + + switch (r_type) + { + case R_IQ2000_HI16: + r = iq2000_elf_relocate_hi16 (input_bfd, rel, contents, relocation); + break; + + case R_IQ2000_PC16: + rel->r_addend -= 4; + /* Fall through. */ + + default: + r = iq2000_final_link_relocate (howto, input_bfd, input_section, + contents, rel, relocation); + break; + } + + if (r != bfd_reloc_ok) + { + const char * msg = (const char *) NULL; + + switch (r) + { + case bfd_reloc_overflow: + r = info->callbacks->reloc_overflow + (info, name, howto->name, (bfd_vma) 0, + input_bfd, input_section, rel->r_offset); + break; + + case bfd_reloc_undefined: + r = info->callbacks->undefined_symbol + (info, name, input_bfd, input_section, rel->r_offset, TRUE); + break; + + case bfd_reloc_outofrange: + msg = _("internal error: out of range error"); + break; + + case bfd_reloc_notsupported: + msg = _("internal error: unsupported relocation error"); + break; + + case bfd_reloc_dangerous: + msg = _("internal error: dangerous relocation"); + break; + + default: + msg = _("internal error: unknown error"); + break; + } + + if (msg) + r = info->callbacks->warning + (info, msg, name, input_bfd, input_section, rel->r_offset); + + if (! r) + return FALSE; + } + } + + return TRUE; +} + + +/* Update the got entry reference counts for the section being + removed. */ + +static bfd_boolean +iq2000_elf_gc_sweep_hook (abfd, info, sec, relocs) + bfd * abfd ATTRIBUTE_UNUSED; + struct bfd_link_info * info ATTRIBUTE_UNUSED; + asection * sec ATTRIBUTE_UNUSED; + const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED; +{ + return TRUE; +} + +/* Return the section that should be marked against GC for a given + relocation. */ + +static asection * +iq2000_elf_gc_mark_hook (sec, info, rel, h, sym) + asection * sec; + struct bfd_link_info * info ATTRIBUTE_UNUSED; + Elf_Internal_Rela * rel; + struct elf_link_hash_entry * h; + Elf_Internal_Sym * sym; +{ + if (h != NULL) + { + switch (ELF32_R_TYPE (rel->r_info)) + { + case R_IQ2000_GNU_VTINHERIT: + case R_IQ2000_GNU_VTENTRY: + break; + + default: + switch (h->root.type) + { + case bfd_link_hash_defined: + case bfd_link_hash_defweak: + return h->root.u.def.section; + + case bfd_link_hash_common: + return h->root.u.c.p->section; + + default: + break; + } + } + } + else + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); + + return NULL; +} + + +/* Return the MACH for an e_flags value. */ + +static int +elf32_iq2000_machine (abfd) + bfd *abfd; +{ + switch (elf_elfheader (abfd)->e_flags & EF_IQ2000_CPU_MASK) + { + case EF_IQ2000_CPU_IQ2000: return bfd_mach_iq2000; + case EF_IQ2000_CPU_IQ10: return bfd_mach_iq10; + } + + return bfd_mach_iq2000; +} + + +/* Function to set the ELF flag bits. */ + +static bfd_boolean +iq2000_elf_set_private_flags (abfd, flags) + bfd *abfd; + flagword flags; +{ + elf_elfheader (abfd)->e_flags = flags; + elf_flags_init (abfd) = TRUE; + return TRUE; +} + +/* Copy backend specific data from one object module to another. */ + +static bfd_boolean +iq2000_elf_copy_private_bfd_data (ibfd, obfd) + bfd *ibfd; + bfd *obfd; +{ + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour + || bfd_get_flavour (obfd) != bfd_target_elf_flavour) + return TRUE; + + BFD_ASSERT (!elf_flags_init (obfd) + || elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags); + + elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; + elf_flags_init (obfd) = TRUE; + return TRUE; +} + +/* Merge backend specific data from an object file to the output + object file when linking. */ + +static bfd_boolean +iq2000_elf_merge_private_bfd_data (ibfd, obfd) + bfd *ibfd; + bfd *obfd; +{ + flagword old_flags, old_partial; + flagword new_flags, new_partial; + bfd_boolean error = FALSE; + char new_opt[80]; + char old_opt[80]; + + new_opt[0] = old_opt[0] = '\0'; + new_flags = elf_elfheader (ibfd)->e_flags; + old_flags = elf_elfheader (obfd)->e_flags; + +#ifdef DEBUG + (*_bfd_error_handler) ("old_flags = 0x%.8lx, new_flags = 0x%.8lx, init = %s, filename = %s", + old_flags, new_flags, elf_flags_init (obfd) ? "yes" : "no", + bfd_get_filename (ibfd)); +#endif + + if (!elf_flags_init (obfd)) + { + /* First call, no flags set. */ + elf_flags_init (obfd) = TRUE; + elf_elfheader (obfd)->e_flags = new_flags; + } + + else if (new_flags == old_flags) + /* Compatible flags are ok. */ + ; + + else /* Possibly incompatible flags. */ + { + /* Warn if different cpu is used (allow a specific cpu to override + the generic cpu). */ + new_partial = (new_flags & EF_IQ2000_CPU_MASK); + old_partial = (old_flags & EF_IQ2000_CPU_MASK); + if (new_partial == old_partial) + ; + + else + { + switch (new_partial) + { + default: strcat (new_opt, " -m2000"); break; + case EF_IQ2000_CPU_IQ2000: strcat (new_opt, " -m2000"); break; + case EF_IQ2000_CPU_IQ10: strcat (new_opt, " -m10"); break; + } + + switch (old_partial) + { + default: strcat (old_opt, " -m2000"); break; + case EF_IQ2000_CPU_IQ2000: strcat (old_opt, " -m2000"); break; + case EF_IQ2000_CPU_IQ10: strcat (old_opt, " -m10"); break; + } + } + + /* Print out any mismatches from above. */ + if (new_opt[0]) + { + error = TRUE; + (*_bfd_error_handler) + (_("%s: compiled with %s and linked with modules compiled with %s"), + bfd_get_filename (ibfd), new_opt, old_opt); + } + + new_flags &= ~ EF_IQ2000_ALL_FLAGS; + old_flags &= ~ EF_IQ2000_ALL_FLAGS; + + /* Warn about any other mismatches. */ + if (new_flags != old_flags) + { + error = TRUE; + (*_bfd_error_handler) + (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"), + bfd_get_filename (ibfd), (long)new_flags, (long)old_flags); + } + } + + if (error) + bfd_set_error (bfd_error_bad_value); + + return !error; +} + + +static bfd_boolean +iq2000_elf_print_private_bfd_data (abfd, ptr) + bfd *abfd; + PTR ptr; +{ + FILE *file = (FILE *) ptr; + flagword flags; + + BFD_ASSERT (abfd != NULL && ptr != NULL); + + /* Print normal ELF private data. */ + _bfd_elf_print_private_bfd_data (abfd, ptr); + + flags = elf_elfheader (abfd)->e_flags; + fprintf (file, _("private flags = 0x%lx:"), (long)flags); + + switch (flags & EF_IQ2000_CPU_MASK) + { + default: break; + case EF_IQ2000_CPU_IQ2000: fprintf (file, " -m2000"); break; + case EF_IQ2000_CPU_IQ10: fprintf (file, " -m10"); break; + } + + fputc ('\n', file); +} + +static +bfd_boolean +iq2000_elf_object_p (abfd) + bfd *abfd; +{ + /* Irix 5 and 6 is broken. Object file symbol tables are not always + sorted correctly such that local symbols precede global symbols, + and the sh_info field in the symbol table is not always right. */ + elf_bad_symtab (abfd) = TRUE; + + bfd_default_set_arch_mach (abfd, bfd_arch_iq2000, + elf32_iq2000_machine (abfd)); + return TRUE; +} + + +#define ELF_ARCH bfd_arch_iq2000 +#define ELF_MACHINE_CODE EM_IQ2000 +#define ELF_MAXPAGESIZE 0x1000 + +#define TARGET_BIG_SYM bfd_elf32_iq2000_vec +#define TARGET_BIG_NAME "elf32-iq2000" + +#define elf_info_to_howto_rel NULL +#define elf_info_to_howto iq2000_info_to_howto_rela +#define elf_backend_relocate_section iq2000_elf_relocate_section +#define elf_backend_gc_mark_hook iq2000_elf_gc_mark_hook +#define elf_backend_gc_sweep_hook iq2000_elf_gc_sweep_hook +#define elf_backend_check_relocs iq2000_elf_check_relocs +#define elf_backend_object_p iq2000_elf_object_p +#define elf_backend_rela_normal 1 + +#define elf_backend_can_gc_sections 1 + +#define bfd_elf32_bfd_reloc_type_lookup iq2000_reloc_type_lookup +#define bfd_elf32_bfd_set_private_flags iq2000_elf_set_private_flags +#define bfd_elf32_bfd_copy_private_bfd_data iq2000_elf_copy_private_bfd_data +#define bfd_elf32_bfd_merge_private_bfd_data iq2000_elf_merge_private_bfd_data +#define bfd_elf32_bfd_print_private_bfd_data iq2000_elf_print_private_bfd_data + +#include "elf32-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf32-m32r.c binutils-2.13.90.0.18/bfd/elf32-m32r.c --- binutils-2.13.90.0.16/bfd/elf32-m32r.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-m32r.c Mon Dec 16 12:22:51 2002 @@ -43,37 +43,37 @@ static bfd_reloc_status_type m32r_elf_sd static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void m32r_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); -boolean _bfd_m32r_elf_section_from_bfd_section + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +bfd_boolean _bfd_m32r_elf_section_from_bfd_section PARAMS ((bfd *, asection *, int *)); void _bfd_m32r_elf_symbol_processing PARAMS ((bfd *, asymbol *)); -static boolean m32r_elf_add_symbol_hook +static bfd_boolean m32r_elf_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean m32r_elf_relocate_section +static bfd_boolean m32r_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); #if 0 /* not yet */ -static boolean m32r_elf_relax_delete_bytes +static bfd_boolean m32r_elf_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); #endif static bfd_reloc_status_type m32r_elf_final_sda_base PARAMS ((bfd *, struct bfd_link_info *, const char **, bfd_vma *)); -static boolean m32r_elf_object_p +static bfd_boolean m32r_elf_object_p PARAMS ((bfd *)); static void m32r_elf_final_write_processing - PARAMS ((bfd *, boolean)); -static boolean m32r_elf_set_private_flags + PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean m32r_elf_set_private_flags PARAMS ((bfd *, flagword)); -static boolean m32r_elf_merge_private_bfd_data +static bfd_boolean m32r_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean m32r_elf_print_private_bfd_data +static bfd_boolean m32r_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); -static boolean m32r_elf_gc_sweep_hook +static bfd_boolean m32r_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean m32r_elf_check_relocs +static bfd_boolean m32r_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -101,60 +101,60 @@ static reloc_howto_type m32r_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M32R_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit absolute relocation. */ HOWTO (R_M32R_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ m32r_elf_generic_reloc,/* special_function */ "R_M32R_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. */ HOWTO (R_M32R_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ m32r_elf_generic_reloc,/* special_function */ "R_M32R_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 24 bit address. */ HOWTO (R_M32R_24, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ m32r_elf_generic_reloc,/* special_function */ "R_M32R_24", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffff, /* src_mask */ 0xffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An PC Relative 10-bit relocation, shifted by 2. This reloc is complicated because relocations are relative to pc & -4. @@ -168,30 +168,30 @@ static reloc_howto_type m32r_elf_howto_t 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 10, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ m32r_elf_10_pcrel_reloc, /* special_function */ "R_M32R_10_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 18 bit relocation, right shifted by 2. */ HOWTO (R_M32R_18_PCREL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M32R_18_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 26 bit relocation, right shifted by 2. */ /* ??? It's not clear whether this should have partial_inplace set or not. @@ -202,105 +202,105 @@ static reloc_howto_type m32r_elf_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M32R_26_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffff, /* src_mask */ 0xffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* High 16 bits of address when lower 16 is or'd in. */ HOWTO (R_M32R_HI16_ULO, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m32r_elf_hi16_reloc, /* special_function */ "R_M32R_HI16_ULO", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of address when lower 16 is added in. */ HOWTO (R_M32R_HI16_SLO, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m32r_elf_hi16_reloc, /* special_function */ "R_M32R_HI16_SLO", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Lower 16 bits of address. */ HOWTO (R_M32R_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m32r_elf_lo16_reloc, /* special_function */ "R_M32R_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Small data area 16 bits offset. */ HOWTO (R_M32R_SDA16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ m32r_elf_sda16_reloc, /* special_function */ "R_M32R_SDA16", /* name */ - true, /* partial_inplace */ /* FIXME: correct? */ + TRUE, /* partial_inplace */ /* FIXME: correct? */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_M32R_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_M32R_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_M32R_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_M32R_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -571,7 +571,7 @@ m32r_elf_lo16_reloc (input_bfd, reloc_en /* Now do the LO16 reloc in the usual way. ??? It would be nice to call bfd_elf_generic_reloc here, - but we have partial_inplace == TRUE. bfd_elf_generic_reloc will + but we have partial_inplace set. bfd_elf_generic_reloc will pass the handling back to bfd_install_relocation which will install a section relative addend which is wrong. */ return m32r_elf_generic_reloc (input_bfd, reloc_entry, symbol, data, @@ -609,7 +609,7 @@ m32r_elf_generic_reloc (input_bfd, reloc /* Now do the reloc in the usual way. ??? It would be nice to call bfd_elf_generic_reloc here, - but we have partial_inplace == TRUE. bfd_elf_generic_reloc will + but we have partial_inplace set. bfd_elf_generic_reloc will pass the handling back to bfd_install_relocation which will install a section relative addend which is wrong. */ @@ -756,7 +756,7 @@ static void m32r_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -768,7 +768,7 @@ m32r_info_to_howto_rel (abfd, cache_ptr, /* Given a BFD section, try to locate the corresponding ELF section index. */ -boolean +bfd_boolean _bfd_m32r_elf_section_from_bfd_section (abfd, sec, retval) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; @@ -777,9 +777,9 @@ _bfd_m32r_elf_section_from_bfd_section ( if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0) { *retval = SHN_M32R_SCOMMON; - return true; + return TRUE; } - return false; + return FALSE; } /* M32R ELF uses two common sections. One is the usual one, and the other @@ -830,7 +830,7 @@ _bfd_m32r_elf_symbol_processing (abfd, a We also keep watching for whether we need to create the sdata special linker sections. */ -static boolean +static bfd_boolean m32r_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -863,13 +863,13 @@ m32r_elf_add_symbol_hook (abfd, info, sy s = bfd_make_section_anyway (abfd, ".sdata"); if (s == NULL) - return false; + return FALSE; bfd_set_section_flags (abfd, s, flags); bfd_set_section_alignment (abfd, s, 2); } bh = bfd_link_hash_lookup (info->hash, "_SDA_BASE_", - false, false, false); + FALSE, FALSE, FALSE); if ((bh == NULL || bh->type == bfd_link_hash_undefined) && !(_bfd_generic_link_add_one_symbol (info, @@ -879,10 +879,10 @@ m32r_elf_add_symbol_hook (abfd, info, sy s, (bfd_vma) 32768, (const char *) NULL, - false, + FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->type = STT_OBJECT; } @@ -896,7 +896,7 @@ m32r_elf_add_symbol_hook (abfd, info, sy break; } - return true; + return TRUE; } /* We have to figure out the SDA_BASE value, so that we can adjust the @@ -916,7 +916,7 @@ m32r_elf_final_sda_base (output_bfd, inf { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (info->hash, "_SDA_BASE_", false, false, true); + h = bfd_link_hash_lookup (info->hash, "_SDA_BASE_", FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && h->type == bfd_link_hash_defined) elf_gp (output_bfd) = (h->u.def.value @@ -968,7 +968,7 @@ m32r_elf_final_sda_base (output_bfd, inf section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean m32r_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -984,11 +984,11 @@ m32r_elf_relocate_section (output_bfd, i struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd); Elf_Internal_Rela *rel, *relend; /* Assume success. */ - boolean ret = true; + bfd_boolean ret = TRUE; #if !USE_REL if (info->relocateable) - return true; + return TRUE; #endif rel = relocs; @@ -1019,7 +1019,7 @@ m32r_elf_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), (int) r_type); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } @@ -1143,8 +1143,8 @@ m32r_elf_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, offset, true))) - return false; + input_section, offset, TRUE))) + return FALSE; relocation = 0; } } @@ -1211,7 +1211,7 @@ m32r_elf_relocate_section (output_bfd, i &sda_base); if (r != bfd_reloc_ok) { - ret = false; + ret = FALSE; goto check_reloc; } @@ -1229,7 +1229,7 @@ m32r_elf_relocate_section (output_bfd, i m32r_elf_howto_table[(int) r_type].name, bfd_get_section_name (abfd, sec)); /*bfd_set_error (bfd_error_bad_value); ??? why? */ - ret = false; + ret = FALSE; continue; } } @@ -1269,14 +1269,14 @@ m32r_elf_relocate_section (output_bfd, i if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, offset))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (! ((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - offset, true))) - return false; + offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -1299,7 +1299,7 @@ m32r_elf_relocate_section (output_bfd, i if (!((*info->callbacks->warning) (info, errmsg, name, input_bfd, input_section, offset))) - return false; + return FALSE; break; } } @@ -1331,12 +1331,12 @@ m32r_elf_relocate_section (output_bfd, i When the chip supports parallel 16 bit insns, things may change. */ -static boolean +static bfd_boolean m32r_elf_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; /* The Rela structures are used here because that's what @@ -1348,7 +1348,7 @@ m32r_elf_relax_section (abfd, sec, link_ Elf_Internal_Sym *isymbuf = NULL; /* Assume nothing changes. */ - *again = false; + *again = FALSE; /* We don't have to do anything for a relocateable link, if this section does not have relocs, or if this is not a @@ -1358,7 +1358,7 @@ m32r_elf_relax_section (abfd, sec, link_ || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0 || 0 /* FIXME: check SHF_M32R_CAN_RELAX */) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -1608,7 +1608,7 @@ m32r_elf_relax_section (abfd, sec, link_ /* That will change things, so we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; continue; } @@ -1644,7 +1644,7 @@ m32r_elf_relax_section (abfd, sec, link_ && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL @@ -1657,12 +1657,12 @@ m32r_elf_relax_section (abfd, sec, link_ && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } /* Delete some bytes from a section while relaxing. */ -static boolean +static bfd_boolean m32r_elf_relax_delete_bytes (abfd, sec, addr, count) bfd *abfd; asection *sec; @@ -1736,7 +1736,7 @@ m32r_elf_relax_delete_bytes (abfd, sec, } } - return true; + return TRUE; } /* This is a version of bfd_generic_get_relocated_section_contents @@ -1749,7 +1749,7 @@ m32r_elf_get_relocated_section_contents struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -1783,7 +1783,7 @@ m32r_elf_get_relocated_section_contents internal_relocs = (_bfd_elf32_link_read_relocs (input_bfd, input_section, (PTR) NULL, - (Elf_Internal_Rela *) NULL, false)); + (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; @@ -1854,7 +1854,7 @@ m32r_elf_get_relocated_section_contents #endif /* #if 0 */ /* Set the right machine number. */ -static boolean +static bfd_boolean m32r_elf_object_p (abfd) bfd *abfd; { @@ -1864,14 +1864,14 @@ m32r_elf_object_p (abfd) case E_M32R_ARCH: (void) bfd_default_set_arch_mach (abfd, bfd_arch_m32r, bfd_mach_m32r); break; case E_M32RX_ARCH: (void) bfd_default_set_arch_mach (abfd, bfd_arch_m32r, bfd_mach_m32rx); break; } - return true; + return TRUE; } /* Store the machine number in the flags field. */ static void m32r_elf_final_write_processing (abfd, linker) - bfd * abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd *abfd; + bfd_boolean linker ATTRIBUTE_UNUSED; { unsigned long val; @@ -1887,32 +1887,32 @@ m32r_elf_final_write_processing (abfd, l } /* Function to keep M32R specific file flags. */ -static boolean +static bfd_boolean m32r_elf_set_private_flags (abfd, flags) - bfd * abfd; + bfd *abfd; flagword flags; { BFD_ASSERT (!elf_flags_init (abfd) || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean m32r_elf_merge_private_bfd_data (ibfd, obfd) - bfd * ibfd; - bfd * obfd; + bfd *ibfd; + bfd *obfd; { flagword out_flags; flagword in_flags; if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; @@ -1926,9 +1926,9 @@ m32r_elf_merge_private_bfd_data (ibfd, o unitialised values, which surprise surprise, correspond to the default values. */ if (bfd_get_arch_info (ibfd)->the_default) - return true; + return TRUE; - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = in_flags; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) @@ -1937,12 +1937,12 @@ m32r_elf_merge_private_bfd_data (ibfd, o return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd)); } - return true; + return TRUE; } /* Check flag compatibility. */ if (in_flags == out_flags) - return true; + return TRUE; if ((in_flags & EF_M32R_ARCH) != (out_flags & EF_M32R_ARCH)) { @@ -1953,18 +1953,18 @@ m32r_elf_merge_private_bfd_data (ibfd, o bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } - return true; + return TRUE; } /* Display the flags field */ -static boolean +static bfd_boolean m32r_elf_print_private_bfd_data (abfd, ptr) - bfd * abfd; - PTR ptr; + bfd *abfd; + PTR ptr; { FILE * file = (FILE *) ptr; @@ -1983,7 +1983,7 @@ m32r_elf_print_private_bfd_data (abfd, p fputc ('\n', file); - return true; + return TRUE; } asection * @@ -2023,7 +2023,7 @@ m32r_elf_gc_mark_hook (sec, info, rel, h return NULL; } -static boolean +static bfd_boolean m32r_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -2031,14 +2031,14 @@ m32r_elf_gc_sweep_hook (abfd, info, sec, const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* we don't use got and plt entries for m32r */ - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean m32r_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -2051,7 +2051,7 @@ m32r_elf_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -2077,19 +2077,19 @@ m32r_elf_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_M32R_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_M32R_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; } } - return true; + return TRUE; } #define ELF_ARCH bfd_arch_m32r diff -uprN binutils-2.13.90.0.16/bfd/elf32-m68hc11.c binutils-2.13.90.0.18/bfd/elf32-m68hc11.c --- binutils-2.13.90.0.16/bfd/elf32-m68hc11.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-m68hc11.c Mon Dec 16 12:22:51 2002 @@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void m68hc11_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static bfd_reloc_status_type m68hc11_elf_ignore_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); @@ -38,17 +38,17 @@ static bfd_reloc_status_type m68hc11_elf static asection *elf32_m68hc11_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_m68hc11_gc_sweep_hook +static bfd_boolean elf32_m68hc11_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_m68hc11_check_relocs +static bfd_boolean elf32_m68hc11_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_m68hc11_relocate_section +static bfd_boolean elf32_m68hc11_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean m68hc11_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); +static bfd_boolean m68hc11_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); static void m68hc11_elf_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); static void m68hc11_relax_group @@ -57,9 +57,9 @@ static void m68hc11_relax_group static int compare_reloc PARAMS ((const void *, const void *)); -boolean _bfd_m68hc11_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -boolean _bfd_m68hc11_elf_set_private_flags PARAMS ((bfd *, flagword)); -boolean _bfd_m68hc11_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); +bfd_boolean _bfd_m68hc11_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); +bfd_boolean _bfd_m68hc11_elf_set_private_flags PARAMS ((bfd *, flagword)); +bfd_boolean _bfd_m68hc11_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); /* Use REL instead of RELA to save space */ #define USE_REL 1 @@ -75,90 +75,90 @@ static reloc_howto_type elf_m68hc11_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit absolute relocation */ HOWTO (R_M68HC11_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit absolute relocation (upper address) */ HOWTO (R_M68HC11_HI8, /* type */ 8, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_HI8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit absolute relocation (upper address) */ HOWTO (R_M68HC11_LO8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_LO8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit PC-rel relocation */ HOWTO (R_M68HC11_PCREL_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_PCREL_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit absolute relocation */ HOWTO (R_M68HC11_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont /*bitfield */ , /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. This one is never used for the code relocation. It's used by gas for -gstabs generation. */ @@ -166,120 +166,120 @@ static reloc_howto_type elf_m68hc11_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 3 bit absolute relocation */ HOWTO (R_M68HC11_3B, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 3, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_4B", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x003, /* src_mask */ 0x003, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit PC-rel relocation */ HOWTO (R_M68HC11_PCREL_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_PCREL_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_M68HC11_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_M68HC11_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_M68HC11_GNU_VTENTRY, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_M68HC11_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 24 bit relocation */ HOWTO (R_M68HC11_24, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ - + FALSE), /* pcrel_offset */ + /* A 16-bit low relocation */ HOWTO (R_M68HC11_LO16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A page relocation */ HOWTO (R_M68HC11_PAGE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC11_PAGE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (14), EMPTY_HOWTO (15), @@ -287,36 +287,36 @@ static reloc_howto_type elf_m68hc11_howt EMPTY_HOWTO (17), EMPTY_HOWTO (18), EMPTY_HOWTO (19), - + /* Mark beginning of a jump instruction (any form). */ HOWTO (R_M68HC11_RL_JUMP, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m68hc11_elf_ignore_reloc, /* special_function */ "R_M68HC11_RL_JUMP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Mark beginning of Gcc relaxation group instruction. */ HOWTO (R_M68HC11_RL_GROUP, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m68hc11_elf_ignore_reloc, /* special_function */ "R_M68HC11_RL_GROUP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ }; /* Map BFD reloc types to M68HC11 ELF reloc types. */ @@ -392,7 +392,7 @@ static void m68hc11_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -434,7 +434,7 @@ elf32_m68hc11_gc_mark_hook (sec, info, r return NULL; } -static boolean +static bfd_boolean elf32_m68hc11_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -442,10 +442,10 @@ elf32_m68hc11_gc_sweep_hook (abfd, info, const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* We don't use got and plt entries for 68hc11/68hc12. */ - return true; + return TRUE; } -struct m68hc11_direct_relax +struct m68hc11_direct_relax { const char *name; unsigned char code; @@ -629,15 +629,15 @@ m68hc11_relax_group (abfd, sec, contents /* This function handles relaxing for the 68HC11. - + and somewhat more difficult to support. */ -static boolean +static bfd_boolean m68hc11_elf_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Shdr *shndx_hdr; @@ -653,7 +653,7 @@ m68hc11_elf_relax_section (abfd, sec, li Elf_Internal_Sym *isymbuf = NULL; /* Assume nothing changes. */ - *again = false; + *again = FALSE; /* We don't have to do anything for a relocateable link, if this section does not have relocs, or if this is not a @@ -662,7 +662,7 @@ m68hc11_elf_relax_section (abfd, sec, li || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0 || (sec->flags & SEC_CODE) == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -745,7 +745,7 @@ m68hc11_elf_relax_section (abfd, sec, li prev_insn_branch = 0; prev_insn_group = 0; - + /* Do nothing if this reloc is the last byte in the section. */ if (irel->r_offset == sec->_cooked_size) continue; @@ -829,7 +829,7 @@ m68hc11_elf_relax_section (abfd, sec, li { prev_insn_branch = 0; prev_insn_group = 0; - + /* Do nothing if this reloc is the last byte in the section. */ if (irel->r_offset == sec->_cooked_size) continue; @@ -864,7 +864,7 @@ m68hc11_elf_relax_section (abfd, sec, li prev_insn_branch = 0; continue; } - + value = symval; /* Try to turn a far branch to a near branch. */ if (ELF32_R_TYPE (irel->r_info) == (int) R_M68HC11_16 @@ -910,7 +910,7 @@ m68hc11_elf_relax_section (abfd, sec, li irel->r_offset - 1, 3); } prev_insn_branch = 0; - *again = true; + *again = TRUE; } /* Try to turn a 16 bit address into a 8 bit page0 address. */ @@ -933,7 +933,7 @@ m68hc11_elf_relax_section (abfd, sec, li if (prev_insn_group) { unsigned long old_sec_size = sec->_cooked_size; - + /* Note that we've changed the reldection contents, etc. */ elf_section_data (sec)->relocs = internal_relocs; free_relocs = NULL; @@ -952,10 +952,10 @@ m68hc11_elf_relax_section (abfd, sec, li irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_M68HC11_NONE); if (sec->_cooked_size != old_sec_size) - *again = true; + *again = TRUE; continue; } - + /* Get the opcode. */ code = bfd_get_8 (abfd, contents + irel->r_offset - 1); rinfo = find_relaxable_insn (code); @@ -989,7 +989,7 @@ m68hc11_elf_relax_section (abfd, sec, li R_M68HC11_8); /* That will change things, so, we should relax again. */ - *again = true; + *again = TRUE; } else if (ELF32_R_TYPE (irel->r_info) == R_M68HC11_16) { @@ -1013,10 +1013,10 @@ m68hc11_elf_relax_section (abfd, sec, li /* Note that we've changed the reldection contents, etc. */ elf_section_data (sec)->relocs = internal_relocs; free_relocs = NULL; - + elf_section_data (sec)->this_hdr.contents = contents; free_contents = NULL; - + symtab_hdr->contents = (bfd_byte *) isymbuf; free_extsyms = NULL; @@ -1031,7 +1031,7 @@ m68hc11_elf_relax_section (abfd, sec, li m68hc11_elf_relax_delete_bytes (abfd, sec, irel->r_offset + 1, 1); /* That will change things, so, we should relax again. */ - *again = true; + *again = TRUE; } } } @@ -1068,7 +1068,7 @@ m68hc11_elf_relax_section (abfd, sec, li free_extsyms = NULL; } - return true; + return TRUE; error_return: if (free_relocs != NULL) @@ -1077,7 +1077,7 @@ m68hc11_elf_relax_section (abfd, sec, li free (free_contents); if (free_extsyms != NULL) free (free_extsyms); - return false; + return FALSE; } /* Delete some bytes from a section while relaxing. */ @@ -1116,7 +1116,7 @@ m68hc11_elf_relax_delete_bytes (abfd, se (size_t) (toaddr - addr - count)); sec->_cooked_size -= count; - + /* Adjust all the relocs. */ for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++) { @@ -1194,7 +1194,7 @@ m68hc11_elf_relax_delete_bytes (abfd, se offset = bfd_get_8 (abfd, contents + irel->r_offset + branch_pos); raddr += old_offset; raddr += ((unsigned short) offset | ((offset & 0x80) ? 0xff00 : 0)); - if (irel->r_offset < addr && raddr >= addr) + if (irel->r_offset < addr && raddr > addr) { offset -= count; bfd_put_8 (abfd, offset, contents + irel->r_offset + branch_pos); @@ -1209,7 +1209,7 @@ m68hc11_elf_relax_delete_bytes (abfd, se /*printf ("Not adjusted 0x%04x [0x%4x 0x%4x]\n", raddr, irel->r_offset, addr);*/ } - + break; } } @@ -1247,7 +1247,7 @@ m68hc11_elf_relax_delete_bytes (abfd, se Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean elf32_m68hc11_check_relocs (abfd, info, sec, relocs) bfd * abfd; struct bfd_link_info * info; @@ -1261,7 +1261,7 @@ elf32_m68hc11_check_relocs (abfd, info, const Elf_Internal_Rela * rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -1289,23 +1289,23 @@ elf32_m68hc11_check_relocs (abfd, info, Reconstruct it for later use during GC. */ case R_M68HC11_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_M68HC11_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* Relocate a 68hc11/68hc12 ELF section. */ -static boolean +static bfd_boolean elf32_m68hc11_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -1398,8 +1398,8 @@ elf32_m68hc11_relocate_section (output_b { if (!((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -1428,14 +1428,14 @@ elf32_m68hc11_relocate_section (output_b if (!((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (!((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - rel->r_offset, true))) - return false; + rel->r_offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -1458,20 +1458,20 @@ elf32_m68hc11_relocate_section (output_b if (!((*info->callbacks->warning) (info, msg, name, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; } } } - return true; + return TRUE; } /* Set and control ELF flags in ELF header. */ -boolean +bfd_boolean _bfd_m68hc11_elf_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -1480,29 +1480,29 @@ _bfd_m68hc11_elf_set_private_flags (abfd || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -boolean +bfd_boolean _bfd_m68hc11_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { flagword old_flags; flagword new_flags; - boolean ok = true; + bfd_boolean ok = TRUE; /* Check if we have the same endianess */ - if (_bfd_generic_verify_endian_match (ibfd, obfd) == false) - return false; + if (!_bfd_generic_verify_endian_match (ibfd, obfd)) + return FALSE; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; new_flags = elf_elfheader (ibfd)->e_flags; elf_elfheader (obfd)->e_flags |= new_flags & EF_M68HC11_ABI; @@ -1510,7 +1510,7 @@ _bfd_m68hc11_elf_merge_private_bfd_data if (! elf_flags_init (obfd)) { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = new_flags; elf_elfheader (obfd)->e_ident[EI_CLASS] = elf_elfheader (ibfd)->e_ident[EI_CLASS]; @@ -1520,10 +1520,10 @@ _bfd_m68hc11_elf_merge_private_bfd_data { if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd))) - return false; + return FALSE; } - return true; + return TRUE; } /* Check ABI compatibility. */ @@ -1533,7 +1533,7 @@ _bfd_m68hc11_elf_merge_private_bfd_data (_("%s: linking files compiled for 16-bit integers (-mshort) " "and others for 32-bit integers"), bfd_archive_filename (ibfd)); - ok = false; + ok = FALSE; } if ((new_flags & E_M68HC11_F64) != (old_flags & E_M68HC11_F64)) { @@ -1541,7 +1541,7 @@ _bfd_m68hc11_elf_merge_private_bfd_data (_("%s: linking files compiled for 32-bit double (-fshort-double) " "and others for 64-bit double"), bfd_archive_filename (ibfd)); - ok = false; + ok = FALSE; } new_flags &= ~EF_M68HC11_ABI; old_flags &= ~EF_M68HC11_ABI; @@ -1553,19 +1553,19 @@ _bfd_m68hc11_elf_merge_private_bfd_data (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"), bfd_archive_filename (ibfd), (unsigned long) new_flags, (unsigned long) old_flags); - ok = false; + ok = FALSE; } if (! ok) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } -boolean +bfd_boolean _bfd_m68hc11_elf_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -1597,7 +1597,7 @@ _bfd_m68hc11_elf_print_private_bfd_data fputc ('\n', file); - return true; + return TRUE; } /* Below is the only difference between elf32-m68hc12.c and elf32-m68hc11.c. diff -uprN binutils-2.13.90.0.16/bfd/elf32-m68hc12.c binutils-2.13.90.0.18/bfd/elf32-m68hc12.c --- binutils-2.13.90.0.16/bfd/elf32-m68hc12.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-m68hc12.c Mon Dec 16 12:22:51 2002 @@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void m68hc11_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static bfd_reloc_status_type m68hc11_elf_ignore_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); @@ -43,13 +43,15 @@ static bfd_vma m68hc12_phys_page PARAMS static asection *elf32_m68hc11_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_m68hc11_gc_sweep_hook +static bfd_boolean elf32_m68hc11_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -boolean _bfd_m68hc12_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -boolean _bfd_m68hc12_elf_set_private_flags PARAMS ((bfd *, flagword)); -boolean _bfd_m68hc12_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); +static bfd_boolean m68hc12_elf_set_mach_from_flags PARAMS ((bfd *)); + +bfd_boolean _bfd_m68hc12_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); +bfd_boolean _bfd_m68hc12_elf_set_private_flags PARAMS ((bfd *, flagword)); +bfd_boolean _bfd_m68hc12_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); @@ -120,7 +122,7 @@ boolean _bfd_m68hc12_elf_print_private_b The 'call _foo' must be relocated with page 3 and 16-bit address - mapped at 0x8000. + mapped at 0x8000. The 3-bit and 16-bit PC rel relocation is only used by 68HC12. */ static reloc_howto_type elf_m68hc11_howto_table[] = { @@ -129,90 +131,90 @@ static reloc_howto_type elf_m68hc11_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit absolute relocation */ HOWTO (R_M68HC11_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit absolute relocation (upper address) */ HOWTO (R_M68HC11_HI8, /* type */ 8, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_HI8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit absolute relocation (upper address) */ HOWTO (R_M68HC11_LO8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_LO8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 8 bit PC-rel relocation */ HOWTO (R_M68HC11_PCREL_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_PCREL_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit absolute relocation */ HOWTO (R_M68HC11_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont /*bitfield */ , /* complain_on_overflow */ m68hc12_elf_special_reloc, /* special_function */ "R_M68HC12_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. This one is never used for the code relocation. It's used by gas for -gstabs generation. */ @@ -220,120 +222,120 @@ static reloc_howto_type elf_m68hc11_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 3 bit absolute relocation */ HOWTO (R_M68HC11_3B, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 3, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_4B", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x003, /* src_mask */ 0x003, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit PC-rel relocation */ HOWTO (R_M68HC11_PCREL_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_M68HC12_PCREL_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_M68HC11_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_M68HC11_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_M68HC11_GNU_VTENTRY, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_M68HC11_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 24 bit relocation */ HOWTO (R_M68HC11_24, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m68hc12_elf_special_reloc, /* special_function */ "R_M68HC12_24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ - + FALSE), /* pcrel_offset */ + /* A 16-bit low relocation */ HOWTO (R_M68HC11_LO16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m68hc12_elf_special_reloc,/* special_function */ "R_M68HC12_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A page relocation */ HOWTO (R_M68HC11_PAGE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m68hc12_elf_special_reloc,/* special_function */ "R_M68HC12_PAGE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ff, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (14), EMPTY_HOWTO (15), @@ -341,36 +343,36 @@ static reloc_howto_type elf_m68hc11_howt EMPTY_HOWTO (17), EMPTY_HOWTO (18), EMPTY_HOWTO (19), - + /* Mark beginning of a jump instruction (any form). */ HOWTO (R_M68HC11_RL_JUMP, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m68hc11_elf_ignore_reloc, /* special_function */ "R_M68HC12_RL_JUMP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Mark beginning of Gcc relaxation group instruction. */ HOWTO (R_M68HC11_RL_GROUP, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ m68hc11_elf_ignore_reloc, /* special_function */ "R_M68HC12_RL_GROUP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ }; /* Map BFD reloc types to M68HC11 ELF reloc types. */ @@ -495,7 +497,7 @@ m68hc12_elf_special_reloc (abfd, reloc_e bfd_vma phys_page; bfd_vma insn_page; bfd_vma insn_addr; - + if (output_bfd != (bfd *) NULL && (symbol->flags & BSF_SECTION_SYM) == 0 && (! reloc_entry->howto->partial_inplace @@ -551,7 +553,7 @@ m68hc12_elf_special_reloc (abfd, reloc_e "the normal address space"); return bfd_reloc_dangerous; } - + case R_M68HC11_LO16: bfd_put_16 (abfd, phys_addr, (bfd_byte*) data + reloc_entry->address); break; @@ -569,7 +571,7 @@ m68hc12_elf_special_reloc (abfd, reloc_e abort (); break; } - + return bfd_reloc_ok; } @@ -579,7 +581,7 @@ static void m68hc11_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -621,7 +623,7 @@ elf32_m68hc11_gc_mark_hook (sec, info, r return NULL; } -static boolean +static bfd_boolean elf32_m68hc11_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -629,13 +631,37 @@ elf32_m68hc11_gc_sweep_hook (abfd, info, const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* We don't use got and plt entries for 68hc11/68hc12. */ - return true; + return TRUE; } +static bfd_boolean +m68hc12_elf_set_mach_from_flags (abfd) + bfd *abfd; +{ + flagword flags = elf_elfheader (abfd)->e_flags; + + switch (flags & EF_M68HC11_MACH_MASK) + { + case EF_M68HC12_MACH: + bfd_default_set_arch_mach (abfd, bfd_arch_m68hc12, bfd_mach_m6812); + break; + case EF_M68HCS12_MACH: + bfd_default_set_arch_mach (abfd, bfd_arch_m68hc12, bfd_mach_m6812s); + break; + case EF_M68HC11_GENERIC: + bfd_default_set_arch_mach (abfd, bfd_arch_m68hc12, + bfd_mach_m6812_default); + break; + default: + return FALSE; + } + return TRUE; +} + /* Set and control ELF flags in ELF header. */ -boolean +bfd_boolean _bfd_m68hc12_elf_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -644,37 +670,36 @@ _bfd_m68hc12_elf_set_private_flags (abfd || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return m68hc12_elf_set_mach_from_flags (abfd); } /* Merge backend specific data from an object file to the output object file when linking. */ -boolean +bfd_boolean _bfd_m68hc12_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { flagword old_flags; flagword new_flags; - boolean ok = true; + bfd_boolean ok = TRUE; /* Check if we have the same endianess */ - if (_bfd_generic_verify_endian_match (ibfd, obfd) == false) - return false; + if (!_bfd_generic_verify_endian_match (ibfd, obfd)) + return FALSE; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; new_flags = elf_elfheader (ibfd)->e_flags; - elf_elfheader (obfd)->e_flags |= new_flags & EF_M68HC11_ABI; old_flags = elf_elfheader (obfd)->e_flags; if (! elf_flags_init (obfd)) { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = new_flags; elf_elfheader (obfd)->e_ident[EI_CLASS] = elf_elfheader (ibfd)->e_ident[EI_CLASS]; @@ -684,10 +709,10 @@ _bfd_m68hc12_elf_merge_private_bfd_data { if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd))) - return false; + return FALSE; } - return true; + return TRUE; } /* Check ABI compatibility. */ @@ -697,7 +722,7 @@ _bfd_m68hc12_elf_merge_private_bfd_data (_("%s: linking files compiled for 16-bit integers (-mshort) " "and others for 32-bit integers"), bfd_archive_filename (ibfd)); - ok = false; + ok = FALSE; } if ((new_flags & E_M68HC11_F64) != (old_flags & E_M68HC11_F64)) { @@ -705,31 +730,45 @@ _bfd_m68hc12_elf_merge_private_bfd_data (_("%s: linking files compiled for 32-bit double (-fshort-double) " "and others for 64-bit double"), bfd_archive_filename (ibfd)); - ok = false; + ok = FALSE; + } + + /* Processor compatibility. */ + if (!EF_M68HC11_CAN_MERGE_MACH (new_flags, old_flags)) + { + (*_bfd_error_handler) + (_("%s: linking files compiled for HCS12 with " + "others compiled for HC12"), + bfd_archive_filename (ibfd)); + ok = FALSE; } - new_flags &= ~EF_M68HC11_ABI; - old_flags &= ~EF_M68HC11_ABI; + new_flags = ((new_flags & ~EF_M68HC11_MACH_MASK) + | (EF_M68HC11_MERGE_MACH (new_flags, old_flags))); + + elf_elfheader (obfd)->e_flags = new_flags; /* Warn about any other mismatches */ + new_flags &= ~(EF_M68HC11_ABI | EF_M68HC11_MACH_MASK); + old_flags &= ~(EF_M68HC11_ABI | EF_M68HC11_MACH_MASK); if (new_flags != old_flags) { (*_bfd_error_handler) (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"), bfd_archive_filename (ibfd), (unsigned long) new_flags, (unsigned long) old_flags); - ok = false; + ok = FALSE; } if (! ok) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } -boolean +bfd_boolean _bfd_m68hc12_elf_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -750,17 +789,19 @@ _bfd_m68hc12_elf_print_private_bfd_data fprintf (file, _("[abi=16-bit int,")); if (elf_elfheader (abfd)->e_flags & E_M68HC11_F64) - fprintf (file, _(" 64-bit double]")); + fprintf (file, _(" 64-bit double,")); else - fprintf (file, _(" 32-bit double]")); + fprintf (file, _(" 32-bit double,")); + if (elf_elfheader (abfd)->e_flags & EF_M68HCS12_MACH) + fprintf (file, _(" cpu=HCS12]")); + else + fprintf (file, _(" cpu=HC12]")); fputc ('\n', file); - return true; + return TRUE; } -/* Below is the only difference between elf32-m68hc12.c and elf32-m68hc11.c. - The Motorola spec says to use a different Elf machine code. */ #define ELF_ARCH bfd_arch_m68hc12 #define ELF_MACHINE_CODE EM_68HC12 #define ELF_MAXPAGESIZE 0x1000 @@ -772,7 +813,7 @@ _bfd_m68hc12_elf_print_private_bfd_data #define elf_info_to_howto_rel m68hc11_info_to_howto_rel #define elf_backend_gc_mark_hook elf32_m68hc11_gc_mark_hook #define elf_backend_gc_sweep_hook elf32_m68hc11_gc_sweep_hook -#define elf_backend_object_p 0 +#define elf_backend_object_p m68hc12_elf_set_mach_from_flags #define elf_backend_final_write_processing 0 /* Disabled as this backend uses the generic linker. */ #define elf_backend_can_gc_sections 0 diff -uprN binutils-2.13.90.0.16/bfd/elf32-m68k.c binutils-2.13.90.0.18/bfd/elf32-m68k.c --- binutils-2.13.90.0.16/bfd/elf32-m68k.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-m68k.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* Motorola 68k series support for 32-bit ELF - Copyright 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -28,94 +28,94 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void rtype_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static struct bfd_hash_entry *elf_m68k_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *elf_m68k_link_hash_table_create PARAMS ((bfd *)); -static boolean elf_m68k_check_relocs +static bfd_boolean elf_m68k_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *elf_m68k_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_m68k_gc_sweep_hook +static bfd_boolean elf_m68k_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf_m68k_adjust_dynamic_symbol +static bfd_boolean elf_m68k_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean elf_m68k_size_dynamic_sections +static bfd_boolean elf_m68k_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_m68k_relocate_section +static bfd_boolean elf_m68k_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf_m68k_finish_dynamic_symbol +static bfd_boolean elf_m68k_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_m68k_finish_dynamic_sections +static bfd_boolean elf_m68k_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf32_m68k_set_private_flags +static bfd_boolean elf32_m68k_set_private_flags PARAMS ((bfd *, flagword)); -static boolean elf32_m68k_merge_private_bfd_data +static bfd_boolean elf32_m68k_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean elf32_m68k_print_private_bfd_data +static bfd_boolean elf32_m68k_print_private_bfd_data PARAMS ((bfd *, PTR)); static enum elf_reloc_type_class elf32_m68k_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); static reloc_howto_type howto_table[] = { - HOWTO(R_68K_NONE, 0, 0, 0, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_NONE", false, 0, 0x00000000,false), - HOWTO(R_68K_32, 0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_32", false, 0, 0xffffffff,false), - HOWTO(R_68K_16, 0, 1,16, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_16", false, 0, 0x0000ffff,false), - HOWTO(R_68K_8, 0, 0, 8, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_8", false, 0, 0x000000ff,false), - HOWTO(R_68K_PC32, 0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32", false, 0, 0xffffffff,true), - HOWTO(R_68K_PC16, 0, 1,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC16", false, 0, 0x0000ffff,true), - HOWTO(R_68K_PC8, 0, 0, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC8", false, 0, 0x000000ff,true), - HOWTO(R_68K_GOT32, 0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32", false, 0, 0xffffffff,true), - HOWTO(R_68K_GOT16, 0, 1,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16", false, 0, 0x0000ffff,true), - HOWTO(R_68K_GOT8, 0, 0, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8", false, 0, 0x000000ff,true), - HOWTO(R_68K_GOT32O, 0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O", false, 0, 0xffffffff,false), - HOWTO(R_68K_GOT16O, 0, 1,16, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16O", false, 0, 0x0000ffff,false), - HOWTO(R_68K_GOT8O, 0, 0, 8, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8O", false, 0, 0x000000ff,false), - HOWTO(R_68K_PLT32, 0, 2,32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32", false, 0, 0xffffffff,true), - HOWTO(R_68K_PLT16, 0, 1,16, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16", false, 0, 0x0000ffff,true), - HOWTO(R_68K_PLT8, 0, 0, 8, true, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8", false, 0, 0x000000ff,true), - HOWTO(R_68K_PLT32O, 0, 2,32, false,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O", false, 0, 0xffffffff,false), - HOWTO(R_68K_PLT16O, 0, 1,16, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16O", false, 0, 0x0000ffff,false), - HOWTO(R_68K_PLT8O, 0, 0, 8, false,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8O", false, 0, 0x000000ff,false), - HOWTO(R_68K_COPY, 0, 0, 0, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_COPY", false, 0, 0xffffffff,false), - HOWTO(R_68K_GLOB_DAT, 0, 2,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_GLOB_DAT", false, 0, 0xffffffff,false), - HOWTO(R_68K_JMP_SLOT, 0, 2,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_JMP_SLOT", false, 0, 0xffffffff,false), - HOWTO(R_68K_RELATIVE, 0, 2,32, false,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_RELATIVE", false, 0, 0xffffffff,false), + HOWTO(R_68K_NONE, 0, 0, 0, FALSE,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_NONE", FALSE, 0, 0x00000000,FALSE), + HOWTO(R_68K_32, 0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_32", FALSE, 0, 0xffffffff,FALSE), + HOWTO(R_68K_16, 0, 1,16, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_16", FALSE, 0, 0x0000ffff,FALSE), + HOWTO(R_68K_8, 0, 0, 8, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_8", FALSE, 0, 0x000000ff,FALSE), + HOWTO(R_68K_PC32, 0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PC32", FALSE, 0, 0xffffffff,TRUE), + HOWTO(R_68K_PC16, 0, 1,16, TRUE, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC16", FALSE, 0, 0x0000ffff,TRUE), + HOWTO(R_68K_PC8, 0, 0, 8, TRUE, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PC8", FALSE, 0, 0x000000ff,TRUE), + HOWTO(R_68K_GOT32, 0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32", FALSE, 0, 0xffffffff,TRUE), + HOWTO(R_68K_GOT16, 0, 1,16, TRUE, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16", FALSE, 0, 0x0000ffff,TRUE), + HOWTO(R_68K_GOT8, 0, 0, 8, TRUE, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8", FALSE, 0, 0x000000ff,TRUE), + HOWTO(R_68K_GOT32O, 0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_GOT32O", FALSE, 0, 0xffffffff,FALSE), + HOWTO(R_68K_GOT16O, 0, 1,16, FALSE,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT16O", FALSE, 0, 0x0000ffff,FALSE), + HOWTO(R_68K_GOT8O, 0, 0, 8, FALSE,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_GOT8O", FALSE, 0, 0x000000ff,FALSE), + HOWTO(R_68K_PLT32, 0, 2,32, TRUE, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32", FALSE, 0, 0xffffffff,TRUE), + HOWTO(R_68K_PLT16, 0, 1,16, TRUE, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16", FALSE, 0, 0x0000ffff,TRUE), + HOWTO(R_68K_PLT8, 0, 0, 8, TRUE, 0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8", FALSE, 0, 0x000000ff,TRUE), + HOWTO(R_68K_PLT32O, 0, 2,32, FALSE,0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_68K_PLT32O", FALSE, 0, 0xffffffff,FALSE), + HOWTO(R_68K_PLT16O, 0, 1,16, FALSE,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT16O", FALSE, 0, 0x0000ffff,FALSE), + HOWTO(R_68K_PLT8O, 0, 0, 8, FALSE,0, complain_overflow_signed, bfd_elf_generic_reloc, "R_68K_PLT8O", FALSE, 0, 0x000000ff,FALSE), + HOWTO(R_68K_COPY, 0, 0, 0, FALSE,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_COPY", FALSE, 0, 0xffffffff,FALSE), + HOWTO(R_68K_GLOB_DAT, 0, 2,32, FALSE,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_GLOB_DAT", FALSE, 0, 0xffffffff,FALSE), + HOWTO(R_68K_JMP_SLOT, 0, 2,32, FALSE,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_JMP_SLOT", FALSE, 0, 0xffffffff,FALSE), + HOWTO(R_68K_RELATIVE, 0, 2,32, FALSE,0, complain_overflow_dont, bfd_elf_generic_reloc, "R_68K_RELATIVE", FALSE, 0, 0xffffffff,FALSE), /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_68K_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_68K_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), + FALSE), /* GNU extension to record C++ vtable member usage */ HOWTO (R_68K_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_68K_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), + FALSE), }; static void @@ -277,11 +277,14 @@ struct elf_m68k_link_hash_entry struct elf_m68k_link_hash_table { struct elf_link_hash_table root; + + /* Small local sym to section mapping cache. */ + struct sym_sec_cache sym_sec; }; /* Declare this now that the above structures are defined. */ -static boolean elf_m68k_discard_copies +static bfd_boolean elf_m68k_discard_copies PARAMS ((struct elf_m68k_link_hash_entry *, PTR)); /* Traverse an m68k ELF linker hash table. */ @@ -289,7 +292,7 @@ static boolean elf_m68k_discard_copies #define elf_m68k_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the m68k ELF linker hash table from a link_info structure. */ @@ -349,23 +352,25 @@ elf_m68k_link_hash_table_create (abfd) return NULL; } + ret->sym_sec.abfd = NULL; + return &ret->root.root; } /* Keep m68k-specific flags in the ELF header */ -static boolean +static bfd_boolean elf32_m68k_set_private_flags (abfd, flags) bfd *abfd; flagword flags; { elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean elf32_m68k_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -375,22 +380,22 @@ elf32_m68k_merge_private_bfd_data (ibfd, if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; if (!elf_flags_init (obfd)) { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = in_flags; } - return true; + return TRUE; } /* Display the flags field */ -static boolean +static bfd_boolean elf32_m68k_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -415,13 +420,13 @@ elf32_m68k_print_private_bfd_data (abfd, fputc ('\n', file); - return true; + return TRUE; } /* Look through the relocs for a section during the first phase, and allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean elf_m68k_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -439,7 +444,7 @@ elf_m68k_check_relocs (abfd, info, sec, asection *sreloc; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -482,7 +487,7 @@ elf_m68k_check_relocs (abfd, info, sec, /* Create the .got section. */ elf_hash_table (info)->dynobj = dynobj = abfd; if (!_bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; } if (sgot == NULL) @@ -507,7 +512,7 @@ elf_m68k_check_relocs (abfd, info, sec, | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } @@ -516,10 +521,11 @@ elf_m68k_check_relocs (abfd, info, sec, if (h->got.refcount == 0) { /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) + if (h->dynindx == -1 + && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (!bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* Allocate space in the .got section. */ @@ -541,7 +547,7 @@ elf_m68k_check_relocs (abfd, info, sec, local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; } if (local_got_refcounts[r_symndx] == 0) @@ -589,14 +595,15 @@ elf_m68k_check_relocs (abfd, info, sec, local symbol. FIXME: does it? How to handle it if it does make sense? */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) + if (h->dynindx == -1 + && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (!bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; @@ -620,6 +627,7 @@ elf_m68k_check_relocs (abfd, info, sec, && (sec->flags & SEC_ALLOC) != 0 && h != NULL && (!info->symbolic + || h->root.type == bfd_link_hash_defweak || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0))) { @@ -660,7 +668,7 @@ elf_m68k_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -679,32 +687,55 @@ elf_m68k_check_relocs (abfd, info, sec, | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } - if (sec->flags & SEC_READONLY) - info->flags |= DF_TEXTREL; } + if (sec->flags & SEC_READONLY + /* Don't set DF_TEXTREL yet for PC relative + relocations, they might be discarded later. */ + && !(ELF32_R_TYPE (rel->r_info) == R_68K_PC8 + || ELF32_R_TYPE (rel->r_info) == R_68K_PC16 + || ELF32_R_TYPE (rel->r_info) == R_68K_PC32)) + info->flags |= DF_TEXTREL; + sreloc->_raw_size += sizeof (Elf32_External_Rela); - /* If we are linking with -Bsymbolic, we count the number of - PC relative relocations we have entered for this symbol, - so that we can discard them again if the symbol is later - defined by a regular object. Note that this function is - only called if we are using an m68kelf linker hash table, - which means that h is really a pointer to an + /* We count the number of PC relative relocations we have + entered for this symbol, so that we can discard them + again if, in the -Bsymbolic case, the symbol is later + defined by a regular object, or, in the normal shared + case, the symbol is forced to be local. Note that this + function is only called if we are using an m68kelf linker + hash table, which means that h is really a pointer to an elf_m68k_link_hash_entry. */ - if ((ELF32_R_TYPE (rel->r_info) == R_68K_PC8 - || ELF32_R_TYPE (rel->r_info) == R_68K_PC16 - || ELF32_R_TYPE (rel->r_info) == R_68K_PC32) - && info->symbolic) + if (ELF32_R_TYPE (rel->r_info) == R_68K_PC8 + || ELF32_R_TYPE (rel->r_info) == R_68K_PC16 + || ELF32_R_TYPE (rel->r_info) == R_68K_PC32) { - struct elf_m68k_link_hash_entry *eh; struct elf_m68k_pcrel_relocs_copied *p; + struct elf_m68k_pcrel_relocs_copied **head; - eh = (struct elf_m68k_link_hash_entry *) h; + if (h != NULL) + { + struct elf_m68k_link_hash_entry *eh + = (struct elf_m68k_link_hash_entry *) h; + head = &eh->pcrel_relocs_copied; + } + else + { + asection *s; + s = (bfd_section_from_r_symndx + (abfd, &elf_m68k_hash_table (info)->sym_sec, + sec, r_symndx)); + if (s == NULL) + return FALSE; - for (p = eh->pcrel_relocs_copied; p != NULL; p = p->next) + head = ((struct elf_m68k_pcrel_relocs_copied **) + &elf_section_data (s)->local_dynrel); + } + + for (p = *head; p != NULL; p = p->next) if (p->section == sreloc) break; @@ -713,9 +744,9 @@ elf_m68k_check_relocs (abfd, info, sec, p = ((struct elf_m68k_pcrel_relocs_copied *) bfd_alloc (dynobj, (bfd_size_type) sizeof *p)); if (p == NULL) - return false; - p->next = eh->pcrel_relocs_copied; - eh->pcrel_relocs_copied = p; + return FALSE; + p->next = *head; + *head = p; p->section = sreloc; p->count = 0; } @@ -730,14 +761,14 @@ elf_m68k_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_68K_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_68K_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; default: @@ -745,7 +776,7 @@ elf_m68k_check_relocs (abfd, info, sec, } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -790,7 +821,7 @@ elf_m68k_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf_m68k_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -813,7 +844,7 @@ elf_m68k_gc_sweep_hook (abfd, info, sec, dynobj = elf_hash_table (info)->dynobj; if (dynobj == NULL) - return true; + return TRUE; sgot = bfd_get_section_by_name (dynobj, ".got"); srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); @@ -886,7 +917,7 @@ elf_m68k_gc_sweep_hook (abfd, info, sec, } } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -895,7 +926,7 @@ elf_m68k_gc_sweep_hook (abfd, info, sec, change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf_m68k_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -938,7 +969,7 @@ elf_m68k_adjust_dynamic_symbol (info, h) reloc instead. */ BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0); h->plt.offset = (bfd_vma) -1; - return true; + return TRUE; } /* GC may have rendered this entry unused. */ @@ -946,14 +977,15 @@ elf_m68k_adjust_dynamic_symbol (info, h) { h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; h->plt.offset = (bfd_vma) -1; - return true; + return TRUE; } /* Make sure this symbol is output as a dynamic symbol. */ - if (h->dynindx == -1) + if (h->dynindx == -1 + && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_get_section_by_name (dynobj, ".plt"); @@ -1002,7 +1034,7 @@ elf_m68k_adjust_dynamic_symbol (info, h) BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf32_External_Rela); - return true; + return TRUE; } /* Reinitialize the plt offset now that it is not used as a reference @@ -1018,7 +1050,7 @@ elf_m68k_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1029,7 +1061,7 @@ elf_m68k_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -1070,7 +1102,7 @@ elf_m68k_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (!bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1080,20 +1112,20 @@ elf_m68k_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf_m68k_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean plt; - boolean relocs; + bfd_boolean plt; + bfd_boolean relocs; dynobj = elf_hash_table (info)->dynobj; BFD_ASSERT (dynobj != NULL); @@ -1121,24 +1153,26 @@ elf_m68k_size_dynamic_sections (output_b s->_raw_size = 0; } - /* If this is a -Bsymbolic shared link, then we need to discard all PC - relative relocs against symbols defined in a regular object. We - allocated space for them in the check_relocs routine, but we will not - fill them in in the relocate_section routine. */ - if (info->shared && info->symbolic) + /* If this is a -Bsymbolic shared link, then we need to discard all + PC relative relocs against symbols defined in a regular object. + For the normal shared case we discard the PC relative relocs + against symbols that have become local due to visibility changes. + We allocated space for them in the check_relocs routine, but we + will not fill them in in the relocate_section routine. */ + if (info->shared) elf_m68k_link_hash_traverse (elf_m68k_hash_table (info), elf_m68k_discard_copies, - (PTR) NULL); + (PTR) info); /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - plt = false; - relocs = false; + plt = FALSE; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -1147,7 +1181,7 @@ elf_m68k_size_dynamic_sections (output_b of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strcmp (name, ".plt") == 0) { @@ -1155,12 +1189,12 @@ elf_m68k_size_dynamic_sections (output_b { /* Strip this section if we don't need it; see the comment below. */ - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strncmp (name, ".rela", 5) == 0) @@ -1176,11 +1210,11 @@ elf_m68k_size_dynamic_sections (output_b adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1207,7 +1241,7 @@ elf_m68k_size_dynamic_sections (output_b contents to zero. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -1223,7 +1257,7 @@ elf_m68k_size_dynamic_sections (output_b if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (plt) @@ -1232,7 +1266,7 @@ elf_m68k_size_dynamic_sections (output_b || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -1240,49 +1274,70 @@ elf_m68k_size_dynamic_sections (output_b if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; } if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } #undef add_dynamic_entry - return true; + return TRUE; } /* This function is called via elf_m68k_link_hash_traverse if we are - creating a shared object with -Bsymbolic. It discards the space - allocated to copy PC relative relocs against symbols which are defined - in regular objects. We allocated space for them in the check_relocs - routine, but we won't fill them in in the relocate_section routine. */ + creating a shared object. In the -Bsymbolic case it discards the + space allocated to copy PC relative relocs against symbols which + are defined in regular objects. For the normal shared case, it + discards space for pc-relative relocs that have become local due to + symbol visibility changes. We allocated space for them in the + check_relocs routine, but we won't fill them in in the + relocate_section routine. + + We also check whether any of the remaining relocations apply + against a readonly section, and set the DF_TEXTREL flag in this + case. */ -static boolean -elf_m68k_discard_copies (h, ignore) +static bfd_boolean +elf_m68k_discard_copies (h, inf) struct elf_m68k_link_hash_entry *h; - PTR ignore ATTRIBUTE_UNUSED; + PTR inf; { + struct bfd_link_info *info = (struct bfd_link_info *) inf; struct elf_m68k_pcrel_relocs_copied *s; if (h->root.root.type == bfd_link_hash_warning) h = (struct elf_m68k_link_hash_entry *) h->root.root.u.i.link; - /* We only discard relocs for symbols defined in a regular object. */ - if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - return true; + if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0 + || (!info->symbolic + && (h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0)) + { + if ((info->flags & DF_TEXTREL) == 0) + { + /* Look for relocations against read-only sections. */ + for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) + if ((s->section->flags & SEC_READONLY) != 0) + { + info->flags |= DF_TEXTREL; + break; + } + } + return TRUE; + } for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) s->section->_raw_size -= s->count * sizeof (Elf32_External_Rela); - return true; + return TRUE; } /* Relocate an M68K ELF section. */ -static boolean +static bfd_boolean elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1305,7 +1360,7 @@ elf_m68k_relocate_section (output_bfd, i Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1333,7 +1388,7 @@ elf_m68k_relocate_section (output_bfd, i if (r_type < 0 || r_type >= (int) R_68K_max) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = howto_table + r_type; @@ -1422,7 +1477,7 @@ elf_m68k_relocate_section (output_bfd, i input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } @@ -1503,22 +1558,21 @@ elf_m68k_relocate_section (output_bfd, i if (info->shared) { - asection *srelgot; + asection *s; Elf_Internal_Rela outrel; + bfd_byte *loc; - srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); - BFD_ASSERT (srelgot != NULL); + s = bfd_get_section_by_name (dynobj, ".rela.got"); + BFD_ASSERT (s != NULL); outrel.r_offset = (sgot->output_section->vma + sgot->output_offset + off); outrel.r_info = ELF32_R_INFO (0, R_68K_RELATIVE); outrel.r_addend = relocation; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } local_got_offsets[r_symndx] |= 1; @@ -1592,7 +1646,9 @@ elf_m68k_relocate_section (output_bfd, i case R_68K_PC8: case R_68K_PC16: case R_68K_PC32: - if (h == NULL) + if (h == NULL + || (info->shared + && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)) break; /* Fall through. */ case R_68K_8: @@ -1609,7 +1665,8 @@ elf_m68k_relocate_section (output_bfd, i & ELF_LINK_HASH_DEF_REGULAR) == 0))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_byte *loc; + bfd_boolean skip, relocate; /* When generating a shared object, these relocations are copied into the output file to be resolved at run @@ -1624,7 +1681,7 @@ elf_m68k_relocate_section (output_bfd, i elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -1635,16 +1692,16 @@ elf_m68k_relocate_section (output_bfd, i BFD_ASSERT (sreloc != NULL); } - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -1665,7 +1722,7 @@ elf_m68k_relocate_section (output_bfd, i { if (r_type == R_68K_32) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (0, R_68K_RELATIVE); outrel.r_addend = relocation + rel->r_addend; } @@ -1687,7 +1744,7 @@ elf_m68k_relocate_section (output_bfd, i else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -1703,11 +1760,9 @@ elf_m68k_relocate_section (output_bfd, i } } - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); /* This reloc will be computed at runtime, so there's no need to do anything now, except for R_68K_32 @@ -1751,27 +1806,27 @@ elf_m68k_relocate_section (output_bfd, i symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } if (!(info->callbacks->reloc_overflow (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf_m68k_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -1791,6 +1846,7 @@ elf_m68k_finish_dynamic_symbol (output_b bfd_vma plt_index; bfd_vma got_offset; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -1863,9 +1919,8 @@ elf_m68k_finish_dynamic_symbol (output_b + got_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_68K_JMP_SLOT); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + plt_index)); + loc = srela->contents + plt_index * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -1880,6 +1935,7 @@ elf_m68k_finish_dynamic_symbol (output_b asection *sgot; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -1914,16 +1970,16 @@ elf_m68k_finish_dynamic_symbol (output_b rela.r_addend = 0; } - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + srela->reloc_count)); - ++srela->reloc_count; + loc = srela->contents; + loc += srela->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection *s; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -1940,10 +1996,8 @@ elf_m68k_finish_dynamic_symbol (output_b + h->root.u.def.section->output_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_68K_COPY); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ @@ -1951,12 +2005,12 @@ elf_m68k_finish_dynamic_symbol (output_b || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf_m68k_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2090,7 +2144,7 @@ elf_m68k_finish_dynamic_sections (output elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; - return true; + return TRUE; } /* Given a .data section and a .emreloc in-memory section, store @@ -2100,7 +2154,7 @@ elf_m68k_finish_dynamic_sections (output after the add_symbols entry point has been called for all the objects, and before the final_link entry point is called. */ -boolean +bfd_boolean bfd_m68k_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg) bfd *abfd; struct bfd_link_info *info; @@ -2120,7 +2174,7 @@ bfd_m68k_elf32_create_embedded_relocs (a *errmsg = NULL; if (datasec->reloc_count == 0) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -2205,7 +2259,7 @@ bfd_m68k_elf32_create_embedded_relocs (a if (internal_relocs != NULL && elf_section_data (datasec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf) @@ -2213,7 +2267,7 @@ error_return: if (internal_relocs != NULL && elf_section_data (datasec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } static enum elf_reloc_type_class diff -uprN binutils-2.13.90.0.16/bfd/elf32-mcore.c binutils-2.13.90.0.18/bfd/elf32-mcore.c --- binutils-2.13.90.0.16/bfd/elf32-mcore.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-mcore.c Mon Dec 16 12:22:51 2002 @@ -36,23 +36,23 @@ static void mcore_elf_howto_init static reloc_howto_type * mcore_elf_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void mcore_elf_info_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean mcore_elf_set_private_flags + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean mcore_elf_set_private_flags PARAMS ((bfd *, flagword)); -static boolean mcore_elf_merge_private_bfd_data +static bfd_boolean mcore_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); static bfd_reloc_status_type mcore_elf_unsupported_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean mcore_elf_relocate_section +static bfd_boolean mcore_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static asection * mcore_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean mcore_elf_gc_sweep_hook +static bfd_boolean mcore_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean mcore_elf_check_relocs +static bfd_boolean mcore_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -65,30 +65,30 @@ static reloc_howto_type mcore_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ NULL, /* special_function */ "R_MCORE_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 32 bit relocation. */ HOWTO (R_MCORE_ADDR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "ADDR32", /* name *//* For compatability with coff/pe port. */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 8 bits + 2 zero bits; jmpi/jsri/lrw instructions. Should not appear in object files. */ @@ -96,15 +96,15 @@ static reloc_howto_type mcore_elf_howto_ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mcore_elf_unsupported_reloc, /* special_function */ "R_MCORE_PCRELIMM8BY4",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* bsr/bt/bf/br instructions; 11 bits + 1 zero bit Span 2k instructions == 4k bytes. @@ -113,45 +113,45 @@ static reloc_howto_type mcore_elf_howto_ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MCORE_PCRELIMM11BY2",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0, /* src_mask */ 0x7ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 4 bits + 1 zero bit; 'loopt' instruction only; unsupported. */ HOWTO (R_MCORE_PCRELIMM4BY2, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 4, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mcore_elf_unsupported_reloc,/* special_function */ "R_MCORE_PCRELIMM4BY2",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32-bit pc-relative. Eventually this will help support PIC code. */ HOWTO (R_MCORE_PCREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MCORE_PCREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Like PCRELIMM11BY2, this relocation indicates that there is a 'jsri' at the specified address. There is a separate relocation @@ -164,59 +164,59 @@ static reloc_howto_type mcore_elf_howto_ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MCORE_PCRELJSR_IMM11BY2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0, /* src_mask */ 0x7ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_MCORE_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_MCORE_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_MCORE_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_MCORE_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_MCORE_RELATIVE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ NULL, /* special_function */ "R_MCORE_RELATIVE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; #ifndef NUM_ELEM @@ -275,7 +275,7 @@ static void mcore_elf_info_to_howto (abfd, cache_ptr, dst) bfd * abfd ATTRIBUTE_UNUSED; arelent * cache_ptr; - Elf32_Internal_Rela * dst; + Elf_Internal_Rela * dst; { if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4]) /* Initialize howto table if needed */ mcore_elf_howto_init (); @@ -286,7 +286,7 @@ mcore_elf_info_to_howto (abfd, cache_ptr } /* Function to set whether a module needs the -mrelocatable bit set. */ -static boolean +static bfd_boolean mcore_elf_set_private_flags (abfd, flags) bfd * abfd; flagword flags; @@ -295,13 +295,13 @@ mcore_elf_set_private_flags (abfd, flags || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean mcore_elf_merge_private_bfd_data (ibfd, obfd) bfd * ibfd; bfd * obfd; @@ -311,18 +311,18 @@ mcore_elf_merge_private_bfd_data (ibfd, /* Check if we have the same endianess */ if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; if (! elf_flags_init (obfd)) /* First call, no flags set */ { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = new_flags; } else if (new_flags == old_flags) /* Compatible flags are ok */ @@ -332,7 +332,7 @@ mcore_elf_merge_private_bfd_data (ibfd, /* FIXME */ } - return true; + return TRUE; } /* Don't pretend we can deal with unsupported relocs. */ @@ -387,9 +387,9 @@ mcore_elf_unsupported_reloc (abfd, reloc section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean mcore_elf_relocate_section (output_bfd, info, input_bfd, input_section, - contents, relocs, local_syms, local_sections) + contents, relocs, local_syms, local_sections) bfd * output_bfd; struct bfd_link_info * info; bfd * input_bfd; @@ -399,11 +399,11 @@ mcore_elf_relocate_section (output_bfd, Elf_Internal_Sym * local_syms; asection ** local_sections; { - Elf_Internal_Shdr * symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; + Elf_Internal_Shdr * symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; struct elf_link_hash_entry ** sym_hashes = elf_sym_hashes (input_bfd); - Elf_Internal_Rela * rel = relocs; - Elf_Internal_Rela * relend = relocs + input_section->reloc_count; - boolean ret = true; + Elf_Internal_Rela * rel = relocs; + Elf_Internal_Rela * relend = relocs + input_section->reloc_count; + bfd_boolean ret = TRUE; #ifdef DEBUG fprintf (stderr, @@ -415,7 +415,7 @@ mcore_elf_relocate_section (output_bfd, #endif if (info->relocateable) - return true; + return TRUE; if (! mcore_elf_howto_table [R_MCORE_PCRELIMM8BY4]) /* Initialize howto table if needed */ mcore_elf_howto_init (); @@ -443,7 +443,7 @@ mcore_elf_relocate_section (output_bfd, (int) r_type); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } @@ -459,7 +459,7 @@ mcore_elf_relocate_section (output_bfd, (int)r_type); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } @@ -490,10 +490,10 @@ mcore_elf_relocate_section (output_bfd, { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; - ret = false; + ret = FALSE; continue; } } @@ -527,7 +527,7 @@ mcore_elf_relocate_section (output_bfd, if (r != bfd_reloc_ok) { - ret = false; + ret = FALSE; switch (r) { @@ -610,35 +610,35 @@ mcore_elf_gc_mark_hook (sec, info, rel, /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean mcore_elf_gc_sweep_hook (abfd, info, sec, relocs) - bfd * abfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - asection * sec ATTRIBUTE_UNUSED; + bfd * abfd ATTRIBUTE_UNUSED; + struct bfd_link_info * info ATTRIBUTE_UNUSED; + asection * sec ATTRIBUTE_UNUSED; const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean mcore_elf_check_relocs (abfd, info, sec, relocs) bfd * abfd; struct bfd_link_info * info; asection * sec; const Elf_Internal_Rela * relocs; { - Elf_Internal_Shdr * symtab_hdr; + Elf_Internal_Shdr * symtab_hdr; struct elf_link_hash_entry ** sym_hashes; struct elf_link_hash_entry ** sym_hashes_end; - const Elf_Internal_Rela * rel; - const Elf_Internal_Rela * rel_end; + const Elf_Internal_Rela * rel; + const Elf_Internal_Rela * rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -666,19 +666,19 @@ mcore_elf_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_MCORE_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_MCORE_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } #define TARGET_BIG_SYM bfd_elf32_mcore_big_vec diff -uprN binutils-2.13.90.0.16/bfd/elf32-mips.c binutils-2.13.90.0.18/bfd/elf32-mips.c --- binutils-2.13.90.0.16/bfd/elf32-mips.c Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.18/bfd/elf32-mips.c Mon Dec 16 12:22:51 2002 @@ -60,25 +60,28 @@ static bfd_reloc_status_type mips32_64bi static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static reloc_howto_type *mips_elf32_rtype_to_howto - PARAMS ((unsigned int, boolean)); + PARAMS ((unsigned int, bfd_boolean)); static void mips_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void mips_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean mips_elf_sym_is_global PARAMS ((bfd *, asymbol *)); -static boolean mips_elf32_object_p PARAMS ((bfd *)); -static boolean mips_elf_is_local_label_name + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean mips_elf_sym_is_global + PARAMS ((bfd *, asymbol *)); +static bfd_boolean mips_elf32_object_p + PARAMS ((bfd *)); +static bfd_boolean mips_elf_is_local_label_name PARAMS ((bfd *, const char *)); static bfd_reloc_status_type mips16_jump_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips16_gprel_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips_elf_final_gp - PARAMS ((bfd *, asymbol *, boolean, char **, bfd_vma *)); -static boolean mips_elf_assign_gp PARAMS ((bfd *, bfd_vma *)); -static boolean elf32_mips_grok_prstatus + PARAMS ((bfd *, asymbol *, bfd_boolean, char **, bfd_vma *)); +static bfd_boolean mips_elf_assign_gp + PARAMS ((bfd *, bfd_vma *)); +static bfd_boolean elf32_mips_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean elf32_mips_grok_psinfo +static bfd_boolean elf32_mips_grok_psinfo PARAMS ((bfd *, Elf_Internal_Note *)); static irix_compat_t elf32_mips_irix_compat PARAMS ((bfd *)); @@ -110,67 +113,67 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit relocation. */ HOWTO (R_MIPS_16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit relocation. */ HOWTO (R_MIPS_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit symbol relative relocation. */ HOWTO (R_MIPS_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_REL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 26 bit jump address. */ HOWTO (R_MIPS_26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -178,130 +181,130 @@ static reloc_howto_type elf_mips_howto_t bits must match the PC + 4. */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03ffffff, /* src_mask */ 0x03ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of symbol value. */ HOWTO (R_MIPS_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_hi16_reloc, /* special_function */ "R_MIPS_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of symbol value. */ HOWTO (R_MIPS_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_lo16_reloc, /* special_function */ "R_MIPS_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GP relative reference. */ HOWTO (R_MIPS_GPREL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ _bfd_mips_elf32_gprel16_reloc, /* special_function */ "R_MIPS_GPREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to literal section. */ HOWTO (R_MIPS_LITERAL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ _bfd_mips_elf32_gprel16_reloc, /* special_function */ "R_MIPS_LITERAL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to global offset table. */ HOWTO (R_MIPS_GOT16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_got16_reloc, /* special_function */ "R_MIPS_GOT16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative reference. */ HOWTO (R_MIPS_PC16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_PC16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit call through global offset table. */ HOWTO (R_MIPS_CALL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit GP relative reference. */ HOWTO (R_MIPS_GPREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_gprel32_reloc, /* special_function */ "R_MIPS_GPREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The remaining relocs are defined on Irix 5, although they are not defined by the ABI. */ @@ -314,15 +317,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT5", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000007c0, /* src_mask */ 0x000007c0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 6 bit shift field. */ /* FIXME: This is not handled correctly; a special function is @@ -331,120 +334,120 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT6", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000007c4, /* src_mask */ 0x000007c4, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit relocation. */ HOWTO (R_MIPS_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips32_64bit_reloc, /* special_function */ "R_MIPS_64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement in the global offset table. */ HOWTO (R_MIPS_GOT_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_DISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement to page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_PAGE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_PAGE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Offset from page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_OFST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_OFST", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit subtraction. Used in the N32 ABI. */ HOWTO (R_MIPS_SUB, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SUB", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used to cause the linker to insert and delete instructions? */ EMPTY_HOWTO (R_MIPS_INSERT_A), @@ -456,75 +459,75 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHER", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Get the highest value of a 64 bit addend. */ HOWTO (R_MIPS_HIGHEST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHEST", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Section displacement. */ HOWTO (R_MIPS_SCN_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SCN_DISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (R_MIPS_REL16), EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE), @@ -537,15 +540,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_JALR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x00000000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* The reloc used for BFD_RELOC_CTOR when doing a 64 bit link. This @@ -555,15 +558,15 @@ static reloc_howto_type elf_mips_ctor64_ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips32_64bit_reloc, /* special_function */ "R_MIPS_64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* The reloc used for the mips16 jump instruction. */ static reloc_howto_type elf_mips16_jump_howto = @@ -571,7 +574,7 @@ static reloc_howto_type elf_mips16_jump_ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -579,10 +582,10 @@ static reloc_howto_type elf_mips16_jump_ bits must match the PC. */ mips16_jump_reloc, /* special_function */ "R_MIPS16_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffffff, /* src_mask */ 0x3ffffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* The reloc used for the mips16 gprel instruction. */ static reloc_howto_type elf_mips16_gprel_howto = @@ -590,15 +593,15 @@ static reloc_howto_type elf_mips16_gprel 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips16_gprel_reloc, /* special_function */ "R_MIPS16_GPREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x07ff001f, /* src_mask */ 0x07ff001f, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extensions for embedded-pic. */ /* High 16 bits of symbol value, pc-relative. */ @@ -607,15 +610,15 @@ static reloc_howto_type elf_mips_gnu_rel 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_hi16_reloc, /* special_function */ "R_MIPS_GNU_REL_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* Low 16 bits of symbol value, pc-relative. */ static reloc_howto_type elf_mips_gnu_rel_lo16 = @@ -623,15 +626,15 @@ static reloc_howto_type elf_mips_gnu_rel 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_lo16_reloc, /* special_function */ "R_MIPS_GNU_REL_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* 16 bit offset for pc-relative branches. */ static reloc_howto_type elf_mips_gnu_rel16_s2 = @@ -639,15 +642,15 @@ static reloc_howto_type elf_mips_gnu_rel 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GNU_REL16_S2", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* 64 bit pc-relative. */ static reloc_howto_type elf_mips_gnu_pcrel64 = @@ -655,15 +658,15 @@ static reloc_howto_type elf_mips_gnu_pcr 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_PC64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* 32 bit pc-relative. */ static reloc_howto_type elf_mips_gnu_pcrel32 = @@ -671,15 +674,15 @@ static reloc_howto_type elf_mips_gnu_pcr 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_PC32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ static reloc_howto_type elf_mips_gnu_vtinherit_howto = @@ -687,15 +690,15 @@ static reloc_howto_type elf_mips_gnu_vti 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_MIPS_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ static reloc_howto_type elf_mips_gnu_vtentry_howto = @@ -703,15 +706,15 @@ static reloc_howto_type elf_mips_gnu_vte 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_MIPS_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* Do a R_MIPS_HI16 relocation. This has to be done in combination with a R_MIPS_LO16 reloc, because there is a carry from the LO16 to @@ -768,17 +771,17 @@ mips_elf_hi16_reloc (abfd, reloc_entry, if (strcmp (bfd_asymbol_name (symbol), "_gp_disp") == 0) { - boolean relocateable; + bfd_boolean relocateable; bfd_vma gp; if (ret == bfd_reloc_undefined) abort (); if (output_bfd != NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -902,7 +905,7 @@ mips_elf_lo16_reloc (abfd, reloc_entry, /* FIXME: Does this case ever occur? */ - ret = mips_elf_final_gp (output_bfd, symbol, true, error_message, &gp); + ret = mips_elf_final_gp (output_bfd, symbol, TRUE, error_message, &gp); if (ret != bfd_reloc_ok) return ret; @@ -969,10 +972,10 @@ mips_elf_got16_reloc (abfd, reloc_entry, abort (); } -/* Set the GP value for OUTPUT_BFD. Returns false if this is a +/* Set the GP value for OUTPUT_BFD. Returns FALSE if this is a dangerous relocation. */ -static boolean +static bfd_boolean mips_elf_assign_gp (output_bfd, pgp) bfd *output_bfd; bfd_vma *pgp; @@ -984,7 +987,7 @@ mips_elf_assign_gp (output_bfd, pgp) /* If we've already figured out what GP will be, just return it. */ *pgp = _bfd_get_gp_value (output_bfd); if (*pgp) - return true; + return TRUE; count = bfd_get_symcount (output_bfd); sym = bfd_get_outsymbols (output_bfd); @@ -1014,10 +1017,10 @@ mips_elf_assign_gp (output_bfd, pgp) /* Only get the error once. */ *pgp = 4; _bfd_set_gp_value (output_bfd, *pgp); - return false; + return FALSE; } - return true; + return TRUE; } /* We have to figure out the gp value, so that we can adjust the @@ -1030,7 +1033,7 @@ static bfd_reloc_status_type mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp) bfd *output_bfd; asymbol *symbol; - boolean relocateable; + bfd_boolean relocateable; char **error_message; bfd_vma *pgp; { @@ -1080,7 +1083,7 @@ _bfd_mips_elf32_gprel16_reloc (abfd, rel bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1097,10 +1100,10 @@ _bfd_mips_elf32_gprel16_reloc (abfd, rel } if (output_bfd != (bfd *) NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1117,9 +1120,9 @@ _bfd_mips_elf32_gprel16_reloc (abfd, rel /* Do a R_MIPS_GPREL32 relocation. This is a 32 bit value which must become the offset from the gp register. */ -static bfd_reloc_status_type gprel32_with_gp PARAMS ((bfd *, asymbol *, - arelent *, asection *, - boolean, PTR, bfd_vma)); +static bfd_reloc_status_type gprel32_with_gp + PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR, + bfd_vma)); static bfd_reloc_status_type mips_elf_gprel32_reloc (abfd, reloc_entry, symbol, data, input_section, @@ -1132,7 +1135,7 @@ mips_elf_gprel32_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1151,12 +1154,12 @@ mips_elf_gprel32_reloc (abfd, reloc_entr if (output_bfd != (bfd *) NULL) { - relocateable = true; + relocateable = TRUE; gp = _bfd_get_gp_value (output_bfd); } else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; ret = mips_elf_final_gp (output_bfd, symbol, relocateable, @@ -1176,7 +1179,7 @@ gprel32_with_gp (abfd, symbol, reloc_ent asymbol *symbol; arelent *reloc_entry; asection *input_section; - boolean relocateable; + bfd_boolean relocateable; PTR data; bfd_vma gp; { @@ -1290,13 +1293,13 @@ mips16_jump_reloc (abfd, reloc_entry, sy /* FIXME. */ { - static boolean warned; + static bfd_boolean warned; if (! warned) (*_bfd_error_handler) (_("Linking mips16 objects into %s format is not supported"), bfd_get_target (input_section->output_section->owner)); - warned = true; + warned = TRUE; } return bfd_reloc_undefined; @@ -1315,7 +1318,7 @@ mips16_gprel_reloc (abfd, reloc_entry, s bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; unsigned short extend, insn; @@ -1334,10 +1337,10 @@ mips16_gprel_reloc (abfd, reloc_entry, s } if (output_bfd != NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1464,12 +1467,12 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, c } } -/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure. */ +/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static reloc_howto_type * mips_elf32_rtype_to_howto (r_type, rela_p) unsigned int r_type; - boolean rela_p ATTRIBUTE_UNUSED; + bfd_boolean rela_p ATTRIBUTE_UNUSED; { switch (r_type) { @@ -1497,18 +1500,18 @@ mips_elf32_rtype_to_howto (r_type, rela_ } } -/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure. */ +/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static void mips_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = mips_elf32_rtype_to_howto (r_type, false); + cache_ptr->howto = mips_elf32_rtype_to_howto (r_type, FALSE); /* The addend for a GPREL16 or LITERAL relocation comes from the GP value for the object file. We get the addend now, rather than @@ -1520,21 +1523,18 @@ mips_info_to_howto_rel (abfd, cache_ptr, cache_ptr->addend = elf_gp (abfd); } -/* Given a MIPS Elf32_Internal_Rela, fill in an arelent structure. */ +/* Given a MIPS Elf_Internal_Rela, fill in an arelent structure. */ static void mips_info_to_howto_rela (abfd, cache_ptr, dst) bfd *abfd; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { - /* Since an Elf32_Internal_Rel is an initial prefix of an - Elf32_Internal_Rela, we can just use mips_info_to_howto_rel - above. */ - mips_info_to_howto_rel (abfd, cache_ptr, (Elf32_Internal_Rel *) dst); + mips_info_to_howto_rel (abfd, cache_ptr, dst); /* If we ever need to do any extra processing with dst->r_addend - (the field omitted in an Elf32_Internal_Rel) we can do it here. */ + (the field omitted in an Elf_Internal_Rel) we can do it here. */ } /* Determine whether a symbol is global for the purposes of splitting @@ -1543,7 +1543,7 @@ mips_info_to_howto_rela (abfd, cache_ptr symbols. On most ELF targets the split is between static symbols and externally visible symbols. */ -static boolean +static bfd_boolean mips_elf_sym_is_global (abfd, sym) bfd *abfd ATTRIBUTE_UNUSED; asymbol *sym; @@ -1558,7 +1558,7 @@ mips_elf_sym_is_global (abfd, sym) /* Set the right machine number for a MIPS ELF file. */ -static boolean +static bfd_boolean mips_elf32_object_p (abfd) bfd *abfd; { @@ -1568,26 +1568,26 @@ mips_elf32_object_p (abfd) sorted correctly such that local symbols precede global symbols, and the sh_info field in the symbol table is not always right. */ if (SGI_COMPAT (abfd)) - elf_bad_symtab (abfd) = true; + elf_bad_symtab (abfd) = TRUE; if (ABI_N32_P (abfd)) - return false; + return FALSE; mach = _bfd_elf_mips_mach (elf_elfheader (abfd)->e_flags); bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach); - return true; + return TRUE; } /* MIPS ELF local labels start with '$', not 'L'. */ -static boolean +static bfd_boolean mips_elf_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == '$') - return true; + return TRUE; /* On Irix 6, the labels go back to starting with '.', so we accept the generic ELF local label syntax as well. */ @@ -1595,7 +1595,7 @@ mips_elf_is_local_label_name (abfd, name } /* Support for core dump NOTE sections. */ -static boolean +static bfd_boolean elf32_mips_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -1606,7 +1606,7 @@ elf32_mips_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 256: /* Linux/MIPS */ /* pr_cursig */ @@ -1627,7 +1627,7 @@ elf32_mips_grok_prstatus (abfd, note) raw_size, note->descpos + offset); } -static boolean +static bfd_boolean elf32_mips_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -1635,7 +1635,7 @@ elf32_mips_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 128: /* Linux/MIPS elf_prpsinfo */ elf_tdata (abfd)->core_program @@ -1656,7 +1656,7 @@ elf32_mips_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } /* Depending on the target vector we generate some version of Irix @@ -1679,7 +1679,7 @@ elf32_mips_irix_compat (abfd) after the add_symbols entry point has been called for all the objects, and before the final_link entry point is called. */ -boolean +bfd_boolean bfd_mips_elf32_create_embedded_relocs (abfd, info, datasec, relsec, errmsg) bfd *abfd; struct bfd_link_info *info; @@ -1698,7 +1698,7 @@ bfd_mips_elf32_create_embedded_relocs (a *errmsg = NULL; if (datasec->reloc_count == 0) - return true; + return TRUE; /* Read this BFD's symbols if we haven't done so already, or get the cached copy if it exists. */ @@ -1797,7 +1797,7 @@ bfd_mips_elf32_create_embedded_relocs (a if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf) free (isymbuf); - return true; + return TRUE; error_return: if (internal_relocs != NULL @@ -1806,7 +1806,7 @@ bfd_mips_elf32_create_embedded_relocs (a if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf) free (isymbuf); - return false; + return FALSE; } /* ECOFF swapping routines. These are used when dealing with the @@ -1858,9 +1858,9 @@ static const struct ecoff_debug_swap mip a value of 0x1000, and we are compatible. */ #define ELF_MAXPAGESIZE 0x1000 -#define elf_backend_collect true -#define elf_backend_type_change_ok true -#define elf_backend_can_gc_sections true +#define elf_backend_collect TRUE +#define elf_backend_type_change_ok TRUE +#define elf_backend_can_gc_sections TRUE #define elf_info_to_howto mips_info_to_howto_rela #define elf_info_to_howto_rel mips_info_to_howto_rel #define elf_backend_sym_is_global mips_elf_sym_is_global @@ -1907,7 +1907,7 @@ static const struct ecoff_debug_swap mip #define elf_backend_may_use_rel_p 1 #define elf_backend_may_use_rela_p 0 #define elf_backend_default_use_rela_p 0 -#define elf_backend_sign_extend_vma true +#define elf_backend_sign_extend_vma TRUE #define elf_backend_discard_info _bfd_mips_elf_discard_info #define elf_backend_ignore_discarded_relocs \ diff -uprN binutils-2.13.90.0.16/bfd/elf32-msp430.c binutils-2.13.90.0.18/bfd/elf32-msp430.c --- binutils-2.13.90.0.16/bfd/elf32-msp430.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/bfd/elf32-msp430.c Tue Jan 21 10:21:32 2003 @@ -0,0 +1,720 @@ +/* MSP430-specific support for 32-bit ELF + Copyright (C) 2002 Free Software Foundation, Inc. + Contributed by Dmitry Diky + + This file is part of BFD, the Binary File Descriptor library. + + 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. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libiberty.h" +#include "libbfd.h" +#include "elf-bfd.h" +#include "elf/msp430.h" + +static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup + PARAMS ((bfd *, bfd_reloc_code_real_type)); + +static void msp430_info_to_howto_rela + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); + +static asection *elf32_msp430_gc_mark_hook + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *)); + +static bfd_boolean elf32_msp430_gc_sweep_hook + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); + +static bfd_boolean elf32_msp430_check_relocs + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); + +static bfd_reloc_status_type msp430_final_link_relocate + PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, bfd_vma)); + +static bfd_boolean elf32_msp430_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); + +static void bfd_elf_msp430_final_write_processing + PARAMS ((bfd *, bfd_boolean)); + +static bfd_boolean elf32_msp430_object_p + PARAMS ((bfd *)); + +static void elf32_msp430_post_process_headers + PARAMS ((bfd *, struct bfd_link_info *)); + +/* Use RELA instead of REL. */ +#undef USE_REL + +static reloc_howto_type elf_msp430_howto_table[] = +{ + HOWTO (R_MSP430_NONE, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_MSP430_NONE", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MSP430_32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_MSP430_32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 13 bit PC relative relocation. */ + HOWTO (R_MSP430_10_PCREL, /* type */ + 1, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 10, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_MSP430_13_PCREL", /* name */ + FALSE, /* partial_inplace */ + 0xfff, /* src_mask */ + 0xfff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* A 16 bit absolute relocation. */ + HOWTO (R_MSP430_16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_MSP430_16", /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 16 bit absolute relocation for command address. */ + HOWTO (R_MSP430_16_PCREL, /* type */ + 1, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_MSP430_16_PCREL", /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE), /* pcrel_offset */ + + /* A 16 bit absolute relocation, byte operations. */ + HOWTO (R_MSP430_16_BYTE, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_MSP430_16_BYTE", /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 16 bit absolute relocation for command address. */ + HOWTO (R_MSP430_16_PCREL_BYTE,/* type */ + 1, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + TRUE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_MSP430_16_PCREL_BYTE", /* name */ + FALSE, /* partial_inplace */ + 0xffff, /* src_mask */ + 0xffff, /* dst_mask */ + TRUE) /* pcrel_offset */ +}; + +/* Map BFD reloc types to MSP430 ELF reloc types. */ + +struct msp430_reloc_map +{ + bfd_reloc_code_real_type bfd_reloc_val; + unsigned int elf_reloc_val; +}; + +static const struct msp430_reloc_map msp430_reloc_map[] = + { + {BFD_RELOC_NONE, R_MSP430_NONE}, + {BFD_RELOC_32, R_MSP430_32}, + {BFD_RELOC_MSP430_10_PCREL, R_MSP430_10_PCREL}, + {BFD_RELOC_16, R_MSP430_16_BYTE}, + {BFD_RELOC_MSP430_16_PCREL, R_MSP430_16_PCREL}, + {BFD_RELOC_MSP430_16, R_MSP430_16}, + {BFD_RELOC_MSP430_16_PCREL_BYTE, R_MSP430_16_PCREL_BYTE}, + {BFD_RELOC_MSP430_16_BYTE, R_MSP430_16_BYTE} + }; + +static reloc_howto_type * +bfd_elf32_bfd_reloc_type_lookup (abfd, code) + bfd *abfd ATTRIBUTE_UNUSED; + bfd_reloc_code_real_type code; +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE (msp430_reloc_map); i++) + if (msp430_reloc_map[i].bfd_reloc_val == code) + return &elf_msp430_howto_table[msp430_reloc_map[i].elf_reloc_val]; + + return NULL; +} + +/* Set the howto pointer for an MSP430 ELF reloc. */ + +static void +msp430_info_to_howto_rela (abfd, cache_ptr, dst) + bfd *abfd ATTRIBUTE_UNUSED; + arelent *cache_ptr; + Elf_Internal_Rela *dst; +{ + unsigned int r_type; + + r_type = ELF32_R_TYPE (dst->r_info); + BFD_ASSERT (r_type < (unsigned int) R_MSP430_max); + cache_ptr->howto = &elf_msp430_howto_table[r_type]; +} + +static asection * +elf32_msp430_gc_mark_hook (sec, info, rel, h, sym) + asection *sec; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + Elf_Internal_Rela *rel; + struct elf_link_hash_entry *h; + Elf_Internal_Sym *sym; +{ + if (h != NULL) + { + switch (ELF32_R_TYPE (rel->r_info)) + { + default: + switch (h->root.type) + { + case bfd_link_hash_defined: + case bfd_link_hash_defweak: + return h->root.u.def.section; + + case bfd_link_hash_common: + return h->root.u.c.p->section; + + default: + break; + } + } + } + else + return bfd_section_from_elf_index (sec->owner, sym->st_shndx); + + return NULL; +} + +static bfd_boolean +elf32_msp430_gc_sweep_hook (abfd, info, sec, relocs) + bfd *abfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + asection *sec ATTRIBUTE_UNUSED; + const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; +{ + /* We don't use got and plt entries for msp430. */ + return TRUE; +} + +/* Look through the relocs for a section during the first phase. + Since we don't do .gots or .plts, we just need to consider the + virtual table relocs for gc. */ + +static bfd_boolean +elf32_msp430_check_relocs (abfd, info, sec, relocs) + bfd *abfd; + struct bfd_link_info *info; + asection *sec; + const Elf_Internal_Rela *relocs; +{ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes, **sym_hashes_end; + const Elf_Internal_Rela *rel; + const Elf_Internal_Rela *rel_end; + + if (info->relocateable) + return TRUE; + + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; + sym_hashes = elf_sym_hashes (abfd); + sym_hashes_end = + sym_hashes + symtab_hdr->sh_size / sizeof (Elf32_External_Sym); + if (!elf_bad_symtab (abfd)) + sym_hashes_end -= symtab_hdr->sh_info; + + rel_end = relocs + sec->reloc_count; + for (rel = relocs; rel < rel_end; rel++) + { + struct elf_link_hash_entry *h; + unsigned long r_symndx; + + r_symndx = ELF32_R_SYM (rel->r_info); + if (r_symndx < symtab_hdr->sh_info) + h = NULL; + else + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + } + + return TRUE; +} + +/* Perform a single relocation. By default we use the standard BFD + routines, but a few relocs, we have to do them ourselves. */ + +static bfd_reloc_status_type +msp430_final_link_relocate (howto, input_bfd, input_section, + contents, rel, relocation) + reloc_howto_type *howto; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *rel; + bfd_vma relocation; +{ + bfd_reloc_status_type r = bfd_reloc_ok; + bfd_vma x; + bfd_signed_vma srel; + + switch (howto->type) + { + case R_MSP430_10_PCREL: + contents += rel->r_offset; + srel = (bfd_signed_vma) relocation; + srel += rel->r_addend; + srel -= rel->r_offset; + srel -= 2; /* Branch instructions add 2 to the PC... */ + srel -= (input_section->output_section->vma + + input_section->output_offset); + + if (srel & 1) + return bfd_reloc_outofrange; + + /* MSP430 addresses commands as words. */ + srel >>= 1; + + /* Check for an overflow. */ + if (srel < -512 || srel > 511) + return bfd_reloc_overflow; + + x = bfd_get_16 (input_bfd, contents); + x = (x & 0xfc00) | (srel & 0x3ff); + bfd_put_16 (input_bfd, x, contents); + break; + + case R_MSP430_16_PCREL: + contents += rel->r_offset; + srel = (bfd_signed_vma) relocation; + srel += rel->r_addend; + srel -= rel->r_offset; + /* Only branch instructions add 2 to the PC... */ + srel -= (input_section->output_section->vma + + input_section->output_offset); + + if (srel & 1) + return bfd_reloc_outofrange; + + bfd_put_16 (input_bfd, srel & 0xffff, contents); + break; + + case R_MSP430_16_PCREL_BYTE: + contents += rel->r_offset; + srel = (bfd_signed_vma) relocation; + srel += rel->r_addend; + srel -= rel->r_offset; + /* Only branch instructions add 2 to the PC... */ + srel -= (input_section->output_section->vma + + input_section->output_offset); + + bfd_put_16 (input_bfd, srel & 0xffff, contents); + break; + + case R_MSP430_16_BYTE: + contents += rel->r_offset; + srel = (bfd_signed_vma) relocation; + srel += rel->r_addend; + bfd_put_16 (input_bfd, srel & 0xffff, contents); + break; + + case R_MSP430_16: + contents += rel->r_offset; + srel = (bfd_signed_vma) relocation; + srel += rel->r_addend; + + if (srel & 1) + return bfd_reloc_notsupported; + + bfd_put_16 (input_bfd, srel & 0xffff, contents); + break; + + default: + r = _bfd_final_link_relocate (howto, input_bfd, input_section, + contents, rel->r_offset, + relocation, rel->r_addend); + } + + return r; +} + +/* Relocate an MSP430 ELF section. */ + +static bfd_boolean +elf32_msp430_relocate_section (output_bfd, info, input_bfd, input_section, + contents, relocs, local_syms, local_sections) + bfd *output_bfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; +{ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; + + symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; + sym_hashes = elf_sym_hashes (input_bfd); + relend = relocs + input_section->reloc_count; + + for (rel = relocs; rel < relend; rel++) + { + reloc_howto_type *howto; + unsigned long r_symndx; + Elf_Internal_Sym *sym; + asection *sec; + struct elf_link_hash_entry *h; + bfd_vma relocation; + bfd_reloc_status_type r; + const char *name = NULL; + int r_type; + + /* This is a final link. */ + + r_type = ELF32_R_TYPE (rel->r_info); + r_symndx = ELF32_R_SYM (rel->r_info); + howto = elf_msp430_howto_table + ELF32_R_TYPE (rel->r_info); + h = NULL; + sym = NULL; + sec = NULL; + + if (r_symndx < symtab_hdr->sh_info) + { + sym = local_syms + r_symndx; + sec = local_sections[r_symndx]; + relocation = _bfd_elf_rela_local_sym (output_bfd, sym, sec, rel); + + name = bfd_elf_string_from_elf_section + (input_bfd, symtab_hdr->sh_link, sym->st_name); + name = (name == NULL) ? bfd_section_name (input_bfd, sec) : name; + } + else + { + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + + while (h->root.type == bfd_link_hash_indirect + || h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + name = h->root.root.string; + + if (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + { + sec = h->root.u.def.section; + relocation = (h->root.u.def.value + + sec->output_section->vma + sec->output_offset); + } + else if (h->root.type == bfd_link_hash_undefweak) + { + relocation = 0; + } + else + { + if (!((*info->callbacks->undefined_symbol) + (info, h->root.root.string, input_bfd, + input_section, rel->r_offset, TRUE))) + return FALSE; + relocation = 0; + } + } + + r = msp430_final_link_relocate (howto, input_bfd, input_section, + contents, rel, relocation); + + if (r != bfd_reloc_ok) + { + const char *msg = (const char *) NULL; + + switch (r) + { + case bfd_reloc_overflow: + r = info->callbacks->reloc_overflow + (info, name, howto->name, (bfd_vma) 0, + input_bfd, input_section, rel->r_offset); + break; + + case bfd_reloc_undefined: + r = info->callbacks->undefined_symbol + (info, name, input_bfd, input_section, rel->r_offset, TRUE); + break; + + case bfd_reloc_outofrange: + msg = _("internal error: out of range error"); + break; + + case bfd_reloc_notsupported: + msg = _("internal error: unsupported relocation error"); + break; + + case bfd_reloc_dangerous: + msg = _("internal error: dangerous relocation"); + break; + + default: + msg = _("internal error: unknown error"); + break; + } + + if (msg) + r = info->callbacks->warning + (info, msg, name, input_bfd, input_section, rel->r_offset); + + if (!r) + return FALSE; + } + + } + + return TRUE; +} + +/* The final processing done just before writing out a MSP430 ELF object + file. This gets the MSP430 architecture right based on the machine + number. */ + +static void +bfd_elf_msp430_final_write_processing (abfd, linker) + bfd *abfd; + bfd_boolean linker ATTRIBUTE_UNUSED; +{ + unsigned long val; + + switch (bfd_get_mach (abfd)) + { + default: + case bfd_mach_msp12: + val = E_MSP430_MACH_MSP430x12; + break; + + case bfd_mach_msp110: + val = E_MSP430_MACH_MSP430x11x1; + break; + + case bfd_mach_msp11: + val = E_MSP430_MACH_MSP430x11; + break; + + case bfd_mach_msp13: + val = E_MSP430_MACH_MSP430x13; + break; + + case bfd_mach_msp14: + val = E_MSP430_MACH_MSP430x14; + break; + + case bfd_mach_msp41: + val = E_MSP430_MACH_MSP430x41; + break; + + case bfd_mach_msp43: + val = E_MSP430_MACH_MSP430x43; + break; + + case bfd_mach_msp44: + val = E_MSP430_MACH_MSP430x44; + break; + + case bfd_mach_msp31: + val = E_MSP430_MACH_MSP430x31; + break; + + case bfd_mach_msp32: + val = E_MSP430_MACH_MSP430x32; + break; + + case bfd_mach_msp33: + val = E_MSP430_MACH_MSP430x33; + break; + + case bfd_mach_msp15: + val = E_MSP430_MACH_MSP430x15; + break; + + case bfd_mach_msp16: + val = E_MSP430_MACH_MSP430x16; + break; + } + + elf_elfheader (abfd)->e_machine = EM_MSP430; + elf_elfheader (abfd)->e_flags &= ~EF_MSP430_MACH; + elf_elfheader (abfd)->e_flags |= val; +} + +/* Set the right machine number. */ + +static bfd_boolean +elf32_msp430_object_p (abfd) + bfd *abfd; +{ + int e_set = bfd_mach_msp14; + + if (elf_elfheader (abfd)->e_machine == EM_MSP430 + || elf_elfheader (abfd)->e_machine == EM_MSP430_OLD) + { + int e_mach = elf_elfheader (abfd)->e_flags & EF_MSP430_MACH; + + switch (e_mach) + { + default: + case E_MSP430_MACH_MSP430x12: + e_set = bfd_mach_msp12; + break; + + case E_MSP430_MACH_MSP430x11: + e_set = bfd_mach_msp11; + break; + + case E_MSP430_MACH_MSP430x11x1: + e_set = bfd_mach_msp110; + break; + + case E_MSP430_MACH_MSP430x13: + e_set = bfd_mach_msp13; + break; + + case E_MSP430_MACH_MSP430x14: + e_set = bfd_mach_msp14; + break; + + case E_MSP430_MACH_MSP430x41: + e_set = bfd_mach_msp41; + break; + + case E_MSP430_MACH_MSP430x31: + e_set = bfd_mach_msp31; + break; + + case E_MSP430_MACH_MSP430x32: + e_set = bfd_mach_msp32; + break; + + case E_MSP430_MACH_MSP430x33: + e_set = bfd_mach_msp33; + break; + + case E_MSP430_MACH_MSP430x43: + e_set = bfd_mach_msp43; + break; + + case E_MSP430_MACH_MSP430x44: + e_set = bfd_mach_msp44; + break; + + case E_MSP430_MACH_MSP430x15: + e_set = bfd_mach_msp15; + break; + + case E_MSP430_MACH_MSP430x16: + e_set = bfd_mach_msp16; + break; + } + } + + return bfd_default_set_arch_mach (abfd, bfd_arch_msp430, e_set); +} + +static void +elf32_msp430_post_process_headers (abfd, link_info) + bfd *abfd; + struct bfd_link_info *link_info ATTRIBUTE_UNUSED; +{ + Elf_Internal_Ehdr *i_ehdrp; /* ELF file header, internal form. */ + + i_ehdrp = elf_elfheader (abfd); + +#ifndef ELFOSABI_STANDALONE +#define ELFOSABI_STANDALONE 255 +#endif + + i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_STANDALONE; +} + + +#define ELF_ARCH bfd_arch_msp430 +#define ELF_MACHINE_CODE EM_MSP430 +#define ELF_MACHINE_ALT1 EM_MSP430_OLD +#define ELF_MAXPAGESIZE 1 + +#define TARGET_LITTLE_SYM bfd_elf32_msp430_vec +#define TARGET_LITTLE_NAME "elf32-msp430" + +#define elf_info_to_howto msp430_info_to_howto_rela +#define elf_info_to_howto_rel NULL +#define elf_backend_relocate_section elf32_msp430_relocate_section +#define elf_backend_gc_mark_hook elf32_msp430_gc_mark_hook +#define elf_backend_gc_sweep_hook elf32_msp430_gc_sweep_hook +#define elf_backend_check_relocs elf32_msp430_check_relocs +#define elf_backend_can_gc_sections 1 +#define elf_backend_final_write_processing bfd_elf_msp430_final_write_processing +#define elf_backend_object_p elf32_msp430_object_p +#define elf_backend_post_process_headers elf32_msp430_post_process_headers + +#include "elf32-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf32-openrisc.c binutils-2.13.90.0.18/bfd/elf32-openrisc.c --- binutils-2.13.90.0.16/bfd/elf32-openrisc.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-openrisc.c Mon Dec 16 12:22:51 2002 @@ -30,26 +30,26 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *openrisc_reloc_type_lookup PARAMS ((bfd * , bfd_reloc_code_real_type)); static void openrisc_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean openrisc_elf_relocate_section + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean openrisc_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static bfd_reloc_status_type openrisc_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma)); -static boolean openrisc_elf_gc_sweep_hook +static bfd_boolean openrisc_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection * openrisc_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean openrisc_elf_check_relocs +static bfd_boolean openrisc_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean openrisc_elf_object_p +static bfd_boolean openrisc_elf_object_p PARAMS ((bfd *)); static void openrisc_elf_final_write_processing - PARAMS ((bfd *, boolean)); + PARAMS ((bfd *, bfd_boolean)); static reloc_howto_type openrisc_elf_howto_table[] = @@ -59,148 +59,148 @@ static reloc_howto_type openrisc_elf_how 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A PC relative 26 bit relocation, right shifted by 2. */ HOWTO (R_OPENRISC_INSN_REL_26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_INSN_REL_26", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x03ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A absolute 26 bit relocation, right shifted by 2. */ HOWTO (R_OPENRISC_INSN_ABS_26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_INSN_ABS_26", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x03ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_OPENRISC_LO_16_IN_INSN, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_LO_16_IN_INSN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_OPENRISC_HI_16_IN_INSN, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_HI_16_IN_INSN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit absolute relocation. */ HOWTO (R_OPENRISC_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_8", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000, /* src_mask */ 0x00ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit absolute relocation. */ HOWTO (R_OPENRISC_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. */ HOWTO (R_OPENRISC_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OPENRISC_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00000000, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_OPENRISC_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_OPENRISC_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_OPENRISC_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_OPENRISC_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to OpenRISC ELF reloc types. */ @@ -246,7 +246,7 @@ static void openrisc_info_to_howto_rela (abfd, cache_ptr, dst) bfd * abfd ATTRIBUTE_UNUSED; arelent * cache_ptr; - Elf32_Internal_Rela * dst; + Elf_Internal_Rela * dst; { unsigned int r_type; @@ -318,7 +318,7 @@ openrisc_final_link_relocate (howto, inp section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean openrisc_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -336,7 +336,7 @@ openrisc_elf_relocate_section (output_bf Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -406,8 +406,8 @@ openrisc_elf_relocate_section (output_bf { if (!((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -429,7 +429,7 @@ openrisc_elf_relocate_section (output_bf case bfd_reloc_undefined: r = info->callbacks->undefined_symbol - (info, name, input_bfd, input_section, rel->r_offset, true); + (info, name, input_bfd, input_section, rel->r_offset, TRUE); break; case bfd_reloc_outofrange: @@ -454,11 +454,11 @@ openrisc_elf_relocate_section (output_bf (info, msg, name, input_bfd, input_section, rel->r_offset); if (!r) - return false; + return FALSE; } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -503,21 +503,21 @@ openrisc_elf_gc_mark_hook (sec, info, re /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean openrisc_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean openrisc_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -530,7 +530,7 @@ openrisc_elf_check_relocs (abfd, info, s const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -557,24 +557,24 @@ openrisc_elf_check_relocs (abfd, info, s Reconstruct it for later use during GC. */ case R_OPENRISC_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_OPENRISC_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* Set the right machine number. */ -static boolean +static bfd_boolean openrisc_elf_object_p (abfd) bfd *abfd; { @@ -584,7 +584,7 @@ openrisc_elf_object_p (abfd) (void) bfd_default_set_arch_mach (abfd, bfd_arch_openrisc, 0); break; } - return true; + return TRUE; } /* Store the machine number in the flags field. */ @@ -592,7 +592,7 @@ openrisc_elf_object_p (abfd) static void openrisc_elf_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { unsigned long val; diff -uprN binutils-2.13.90.0.16/bfd/elf32-or32.c binutils-2.13.90.0.18/bfd/elf32-or32.c --- binutils-2.13.90.0.16/bfd/elf32-or32.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-or32.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* OR32-specific support for 32-bit ELF - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. Contributed by Ivan Guzvinec This file is part of BFD, the Binary File Descriptor library. @@ -25,16 +25,26 @@ #include "elf/or32.h" #include "libiberty.h" -static reloc_howto_type * bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static void or32_info_to_howto_rel PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); -static boolean or32_elf_object_p PARAMS ((bfd *)); -static void or32_elf_final_write_processing PARAMS ((bfd *, boolean)); -static bfd_reloc_status_type or32_elf_32_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static bfd_reloc_status_type or32_elf_16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static bfd_reloc_status_type or32_elf_8_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static bfd_reloc_status_type or32_elf_const_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static bfd_reloc_status_type or32_elf_consth_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static bfd_reloc_status_type or32_elf_jumptarg_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup + PARAMS ((bfd *, bfd_reloc_code_real_type)); +static void or32_info_to_howto_rel + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean or32_elf_object_p + PARAMS ((bfd *)); +static void or32_elf_final_write_processing + PARAMS ((bfd *, bfd_boolean)); +static bfd_reloc_status_type or32_elf_32_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_reloc_status_type or32_elf_16_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_reloc_status_type or32_elf_8_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_reloc_status_type or32_elf_const_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_reloc_status_type or32_elf_consth_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static bfd_reloc_status_type or32_elf_jumptarg_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); /* Try to minimize the amount of space occupied by relocation tables on the ROM (not that the ROM won't be swamped by other ELF overhead). */ @@ -47,135 +57,135 @@ static reloc_howto_type elf_or32_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_OR32_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 32 bit relocation. */ HOWTO (R_OR32_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ or32_elf_32_reloc, /* special_function */ "R_OR32_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 16 bit relocation. */ HOWTO (R_OR32_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ or32_elf_16_reloc, /* special_function */ "R_OR32_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 8 bit relocation. */ HOWTO (R_OR32_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ or32_elf_8_reloc, /* special_function */ "R_OR32_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard low 16 bit relocation. */ HOWTO (R_OR32_CONST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ or32_elf_const_reloc, /* special_function */ "R_OR32_CONST", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard high 16 bit relocation. */ HOWTO (R_OR32_CONSTH, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ or32_elf_consth_reloc, /* special_function */ "R_OR32_CONSTH", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff0000, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard branch relocation. */ HOWTO (R_OR32_JUMPTARG, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 28, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ or32_elf_jumptarg_reloc,/* special_function */ "R_OR32_JUMPTARG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x03ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_OR32_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_OR32_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage. */ HOWTO (R_OR32_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_OR32_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* Map BFD reloc types to OR32 ELF reloc types. */ @@ -221,7 +231,7 @@ static void or32_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -232,12 +242,12 @@ or32_info_to_howto_rel (abfd, cache_ptr, /* Set the right machine number for an OR32 ELF file. */ -static boolean +static bfd_boolean or32_elf_object_p (abfd) bfd *abfd; { (void) bfd_default_set_arch_mach (abfd, bfd_arch_or32, 0); - return true; + return TRUE; } /* The final processing done just before writing out an OR32 ELF object file. @@ -246,7 +256,7 @@ or32_elf_object_p (abfd) static void or32_elf_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { int mach; unsigned long val; diff -uprN binutils-2.13.90.0.16/bfd/elf32-pj.c binutils-2.13.90.0.18/bfd/elf32-pj.c --- binutils-2.13.90.0.16/bfd/elf32-pj.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/elf32-pj.c Mon Dec 16 12:22:51 2002 @@ -1,5 +1,5 @@ /* picoJava specific support for 32-bit ELF - Copyright 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Steve Chamberlan of Transmeta (sac@pobox.com). This file is part of BFD, the Binary File Descriptor library. @@ -32,7 +32,7 @@ static reloc_howto_type *pj_elf_reloc_ty static void pj_elf_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void pj_elf_final_write_processing - PARAMS ((bfd *, boolean)); + PARAMS ((bfd *, bfd_boolean)); static reloc_howto_type pj_elf_howto_table[] = { @@ -41,76 +41,76 @@ static reloc_howto_type pj_elf_howto_tab 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ pj_elf_reloc, /* special_function */ "R_PJ_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ - /* 32 bit absolute relocation. Setting partial_inplace to true and + /* 32 bit absolute relocation. Setting partial_inplace to TRUE and src_mask to a non-zero value is similar to the COFF toolchain. */ HOWTO (R_PJ_DATA_DIR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ pj_elf_reloc, /* special_function */ "R_PJ_DIR32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative relocation. */ HOWTO (R_PJ_CODE_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ pj_elf_reloc, /* special_function */ "R_PJ_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit PC relative relocation. */ HOWTO (R_PJ_CODE_REL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overf6w */ pj_elf_reloc, /* special_function */ "R_PJ_REL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (4), EMPTY_HOWTO (5), HOWTO (R_PJ_CODE_DIR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ pj_elf_reloc, /* special_function */ "R_PJ_CODE_DIR32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (7), EMPTY_HOWTO (8), @@ -123,60 +123,59 @@ static reloc_howto_type pj_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ pj_elf_reloc, /* special_function */ "R_PJ_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_PJ_CODE_HI16, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ pj_elf_reloc, /* special_function */ "R_PJ_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_PJ_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_PJ_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_PJ_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_PJ_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ - + FALSE), /* pcrel_offset */ }; /* This function is used for normal relocs. This is like the COFF @@ -329,7 +328,7 @@ pj_elf_info_to_howto (abfd, cache_ptr, d static void pj_elf_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { elf_elfheader (abfd)->e_flags |= EF_PICOJAVA_ARCH; elf_elfheader (abfd)->e_flags |= EF_PICOJAVA_GNUCALLS; diff -uprN binutils-2.13.90.0.16/bfd/elf32-ppc.c binutils-2.13.90.0.18/bfd/elf32-ppc.c --- binutils-2.13.90.0.16/bfd/elf32-ppc.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf32-ppc.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* PowerPC-specific support for 32-bit ELF - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. @@ -33,88 +33,81 @@ Foundation, Inc., 59 Temple Place - Suit /* RELA relocations are used here. */ +static struct bfd_hash_entry *ppc_elf_link_hash_newfunc + PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table, + const char *string)); +static struct bfd_link_hash_table *ppc_elf_link_hash_table_create + PARAMS ((bfd *abfd)); +static void ppc_elf_copy_indirect_symbol + PARAMS ((struct elf_backend_data *bed, struct elf_link_hash_entry *dir, + struct elf_link_hash_entry *ind)); static reloc_howto_type *ppc_elf_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void ppc_elf_info_to_howto - PARAMS ((bfd *abfd, arelent *cache_ptr, Elf32_Internal_Rela *dst)); -static void ppc_elf_howto_init PARAMS ((void)); -static int ppc_elf_sort_rela PARAMS ((const PTR, const PTR)); -static boolean ppc_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); + PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)); +static void ppc_elf_howto_init + PARAMS ((void)); +static int ppc_elf_sort_rela + PARAMS ((const PTR, const PTR)); +static bfd_boolean ppc_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); static bfd_reloc_status_type ppc_elf_addr16_ha_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean ppc_elf_object_p PARAMS ((bfd *)); -static boolean ppc_elf_set_private_flags PARAMS ((bfd *, flagword)); -static boolean ppc_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); - -static int ppc_elf_additional_program_headers PARAMS ((bfd *)); -static boolean ppc_elf_modify_segment_map PARAMS ((bfd *)); - +static bfd_boolean ppc_elf_object_p + PARAMS ((bfd *)); +static bfd_boolean ppc_elf_set_private_flags + PARAMS ((bfd *, flagword)); +static bfd_boolean ppc_elf_merge_private_bfd_data + PARAMS ((bfd *, bfd *)); +static int ppc_elf_additional_program_headers + PARAMS ((bfd *)); +static bfd_boolean ppc_elf_modify_segment_map + PARAMS ((bfd *)); static asection *ppc_elf_create_got PARAMS ((bfd *, struct bfd_link_info *)); -static boolean ppc_elf_create_dynamic_sections +static bfd_boolean ppc_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); - -static boolean ppc_elf_section_from_shdr PARAMS ((bfd *, - Elf32_Internal_Shdr *, - const char *)); -static boolean ppc_elf_fake_sections - PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *)); - +static bfd_boolean ppc_elf_section_from_shdr + PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); +static bfd_boolean ppc_elf_fake_sections + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); static elf_linker_section_t *ppc_elf_create_linker_section - PARAMS ((bfd *abfd, - struct bfd_link_info *info, + PARAMS ((bfd *abfd, struct bfd_link_info *info, enum elf_linker_section_enum)); - -static boolean ppc_elf_check_relocs PARAMS ((bfd *, - struct bfd_link_info *, - asection *, - const Elf_Internal_Rela *)); - -static asection * ppc_elf_gc_mark_hook PARAMS ((asection *sec, - struct bfd_link_info *info, - Elf_Internal_Rela *rel, - struct elf_link_hash_entry *h, - Elf_Internal_Sym *sym)); - -static boolean ppc_elf_gc_sweep_hook PARAMS ((bfd *abfd, - struct bfd_link_info *info, - asection *sec, - const Elf_Internal_Rela *relocs)); - -static boolean ppc_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, - struct elf_link_hash_entry *)); - -static boolean ppc_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); - -static boolean ppc_elf_relocate_section PARAMS ((bfd *, - struct bfd_link_info *info, - bfd *, - asection *, - bfd_byte *, - Elf_Internal_Rela *relocs, - Elf_Internal_Sym *local_syms, - asection **)); - -static boolean ppc_elf_add_symbol_hook PARAMS ((bfd *, - struct bfd_link_info *, - const Elf_Internal_Sym *, - const char **, - flagword *, - asection **, - bfd_vma *)); - -static boolean ppc_elf_finish_dynamic_symbol PARAMS ((bfd *, - struct bfd_link_info *, - struct elf_link_hash_entry *, - Elf_Internal_Sym *)); - -static boolean ppc_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean ppc_elf_check_relocs + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); +static asection * ppc_elf_gc_mark_hook + PARAMS ((asection *sec, struct bfd_link_info *info, Elf_Internal_Rela *rel, + struct elf_link_hash_entry *h, Elf_Internal_Sym *sym)); +static bfd_boolean ppc_elf_gc_sweep_hook + PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec, + const Elf_Internal_Rela *relocs)); +static bfd_boolean ppc_elf_adjust_dynamic_symbol + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); +static bfd_boolean allocate_dynrelocs + PARAMS ((struct elf_link_hash_entry *, PTR)); +static bfd_boolean readonly_dynrelocs + PARAMS ((struct elf_link_hash_entry *, PTR)); +static bfd_boolean ppc_elf_size_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean ppc_elf_relocate_section + PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, + asection **)); +static bfd_boolean ppc_elf_add_symbol_hook + PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, + const char **, flagword *, asection **, bfd_vma *)); +static bfd_boolean ppc_elf_finish_dynamic_symbol + PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, + Elf_Internal_Sym *)); +static bfd_boolean ppc_elf_finish_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); static enum elf_reloc_type_class ppc_elf_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean ppc_elf_grok_prstatus +static bfd_boolean ppc_elf_grok_prstatus PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static boolean ppc_elf_grok_psinfo +static bfd_boolean ppc_elf_grok_psinfo PARAMS ((bfd *abfd, Elf_Internal_Note *note)); #define BRANCH_PREDICT_BIT 0x200000 /* branch prediction bit for branch taken relocs */ @@ -153,6 +146,149 @@ static boolean ppc_elf_grok_psinfo || ELF_ST_VISIBILITY (H->other) != STV_DEFAULT) \ && (H->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0) +/* The PPC linker needs to keep track of the number of relocs that it + decides to copy as dynamic relocs in check_relocs for each symbol. + This is so that it can later discard them if they are found to be + unnecessary. We store the information in a field extending the + regular ELF linker hash table. */ + +struct ppc_elf_dyn_relocs +{ + struct ppc_elf_dyn_relocs *next; + + /* The input section of the reloc. */ + asection *sec; + + /* Total number of relocs copied for the input section. */ + bfd_size_type count; +}; + +/* PPC ELF linker hash entry. */ + +struct ppc_elf_link_hash_entry +{ + struct elf_link_hash_entry root; + + /* Track dynamic relocs copied for this symbol. */ + struct ppc_elf_dyn_relocs *dyn_relocs; +}; + +#define ppc_elf_hash_entry(ent) ((struct ppc_elf_link_hash_entry *) (ent)) + +/* PPC ELF linker hash table. */ + +struct ppc_elf_link_hash_table +{ + struct elf_link_hash_table root; + + /* Small local sym to section mapping cache. */ + struct sym_sec_cache sym_sec; +}; + +/* Get the PPC ELF linker hash table from a link_info structure. */ + +#define ppc_elf_hash_table(p) \ + ((struct ppc_elf_link_hash_table *) (p)->hash) + +/* Create an entry in a PPC ELF linker hash table. */ + +static struct bfd_hash_entry * +ppc_elf_link_hash_newfunc (entry, table, string) + struct bfd_hash_entry *entry; + struct bfd_hash_table *table; + const char *string; +{ + /* Allocate the structure if it has not already been allocated by a + subclass. */ + if (entry == NULL) + { + entry = bfd_hash_allocate (table, + sizeof (struct ppc_elf_link_hash_entry)); + if (entry == NULL) + return entry; + } + + /* Call the allocation method of the superclass. */ + entry = _bfd_elf_link_hash_newfunc (entry, table, string); + if (entry != NULL) + ppc_elf_hash_entry (entry)->dyn_relocs = NULL; + + return entry; +} + +/* Create a PPC ELF linker hash table. */ + +static struct bfd_link_hash_table * +ppc_elf_link_hash_table_create (abfd) + bfd *abfd; +{ + struct ppc_elf_link_hash_table *ret; + + ret = ((struct ppc_elf_link_hash_table *) + bfd_malloc (sizeof (struct ppc_elf_link_hash_table))); + if (ret == NULL) + return NULL; + + if (! _bfd_elf_link_hash_table_init (&ret->root, abfd, + ppc_elf_link_hash_newfunc)) + { + free (ret); + return NULL; + } + + ret->sym_sec.abfd = NULL; + + return &ret->root.root; +} + +/* Copy the extra info we tack onto an elf_link_hash_entry. */ + +static void +ppc_elf_copy_indirect_symbol (bed, dir, ind) + struct elf_backend_data *bed; + struct elf_link_hash_entry *dir, *ind; +{ + struct ppc_elf_link_hash_entry *edir, *eind; + + edir = (struct ppc_elf_link_hash_entry *) dir; + eind = (struct ppc_elf_link_hash_entry *) ind; + + if (eind->dyn_relocs != NULL) + { + if (edir->dyn_relocs != NULL) + { + struct ppc_elf_dyn_relocs **pp; + struct ppc_elf_dyn_relocs *p; + + if (ind->root.type == bfd_link_hash_indirect) + abort (); + + /* Add reloc counts against the weak sym to the strong sym + list. Merge any entries against the same section. */ + for (pp = &eind->dyn_relocs; (p = *pp) != NULL; ) + { + struct ppc_elf_dyn_relocs *q; + + for (q = edir->dyn_relocs; q != NULL; q = q->next) + if (q->sec == p->sec) + { + q->count += p->count; + *pp = p->next; + break; + } + if (q == NULL) + pp = &p->next; + } + *pp = edir->dyn_relocs; + } + + edir->dyn_relocs = eind->dyn_relocs; + eind->dyn_relocs = NULL; + } + + _bfd_elf_link_hash_copy_indirect (bed, dir, ind); +} + static reloc_howto_type *ppc_elf_howto_table[(int) R_PPC_max]; static reloc_howto_type ppc_elf_howto_raw[] = { @@ -161,30 +297,30 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 32 bit relocation. */ HOWTO (R_PPC_ADDR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 26 bit branch; the lower two bits must be zero. FIXME: we don't check that, we just clear them. */ @@ -192,60 +328,60 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 16 bit relocation. */ HOWTO (R_PPC_ADDR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit relocation without overflow. */ HOWTO (R_PPC_ADDR16_LO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high order 16 bits of an address. */ HOWTO (R_PPC_ADDR16_HI, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high order 16 bits of an address, plus 1 if the contents of the low 16 bits, treated as a signed number, is negative. */ @@ -253,15 +389,15 @@ static reloc_howto_type ppc_elf_howto_ra 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc_elf_addr16_ha_reloc, /* special_function */ "R_PPC_ADDR16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 16 bit branch; the lower two bits must be zero. FIXME: we don't check that, we just clear them. */ @@ -269,15 +405,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR14", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 16 bit branch, for which bit 10 should be set to indicate that the branch is expected to be taken. The lower two @@ -286,15 +422,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR14_BRTAKEN",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 16 bit branch, for which bit 10 should be set to indicate that the branch is not expected to be taken. The lower @@ -303,45 +439,45 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_ADDR14_BRNTAKEN",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 26 bit branch; the lower two bits must be zero. */ HOWTO (R_PPC_REL24, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_REL24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 16 bit branch; the lower two bits must be zero. */ HOWTO (R_PPC_REL14, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_REL14", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 16 bit branch. Bit 10 should be set to indicate that the branch is expected to be taken. The lower two bits must be @@ -350,15 +486,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_REL14_BRTAKEN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 16 bit branch. Bit 10 should be set to indicate that the branch is not expected to be taken. The lower two bits must @@ -367,15 +503,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_REL14_BRNTAKEN",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Like R_PPC_ADDR16, but referring to the GOT table entry for the symbol. */ @@ -383,15 +519,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_GOT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_ADDR16_LO, but referring to the GOT table entry for the symbol. */ @@ -399,15 +535,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_GOT16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_ADDR16_HI, but referring to the GOT table entry for the symbol. */ @@ -415,15 +551,15 @@ static reloc_howto_type ppc_elf_howto_ra 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_GOT16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_ADDR16_HA, but referring to the GOT table entry for the symbol. */ @@ -431,15 +567,15 @@ static reloc_howto_type ppc_elf_howto_ra 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc_elf_addr16_ha_reloc, /* special_function */ "R_PPC_GOT16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_REL24, but referring to the procedure linkage table entry for the symbol. */ @@ -447,15 +583,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_PLTREL24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* This is used only by the dynamic linker. The symbol should exist both in the object being run and in some shared library. The @@ -466,15 +602,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_COPY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_ADDR32, but used when setting global offset table entries. */ @@ -482,30 +618,30 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_GLOB_DAT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Marks a procedure linkage table entry for a symbol. */ HOWTO (R_PPC_JMP_SLOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_JMP_SLOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used only by the dynamic linker. When the object is run, this longword is set to the load address of the object, plus the @@ -514,15 +650,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_RELATIVE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_REL24, but uses the value of the symbol within the object rather than the final value. Normally used for @@ -531,60 +667,60 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_LOCAL24PC", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Like R_PPC_ADDR32, but may be unaligned. */ HOWTO (R_PPC_UADDR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_UADDR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_ADDR16, but may be unaligned. */ HOWTO (R_PPC_UADDR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_UADDR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32-bit PC relative */ HOWTO (R_PPC_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32-bit relocation to the symbol's procedure linkage table. FIXME: not supported. */ @@ -592,15 +728,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_PLT32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32-bit PC relative relocation to the symbol's procedure linkage table. FIXME: not supported. */ @@ -608,15 +744,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_PLTREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Like R_PPC_ADDR16_LO, but referring to the PLT table entry for the symbol. */ @@ -624,15 +760,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_PLT16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_ADDR16_HI, but referring to the PLT table entry for the symbol. */ @@ -640,15 +776,15 @@ static reloc_howto_type ppc_elf_howto_ra 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_PLT16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC_ADDR16_HA, but referring to the PLT table entry for the symbol. */ @@ -656,15 +792,15 @@ static reloc_howto_type ppc_elf_howto_ra 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc_elf_addr16_ha_reloc, /* special_function */ "R_PPC_PLT16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A sign-extended 16 bit value relative to _SDA_BASE_, for use with small data items. */ @@ -672,75 +808,75 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_SDAREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16-bit section relative relocation. */ HOWTO (R_PPC_SECTOFF, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_SECTOFF", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16-bit lower half section relative relocation. */ HOWTO (R_PPC_SECTOFF_LO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_SECTOFF_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16-bit upper half section relative relocation. */ HOWTO (R_PPC_SECTOFF_HI, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_SECTOFF_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16-bit upper half adjusted section relative relocation. */ HOWTO (R_PPC_SECTOFF_HA, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc_elf_addr16_ha_reloc, /* special_function */ "R_PPC_SECTOFF_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The remaining relocs are from the Embedded ELF ABI, and are not in the SVR4 ELF ABI. */ @@ -750,60 +886,60 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_NADDR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit value resulting from the addend minus the symbol */ HOWTO (R_PPC_EMB_NADDR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_NADDR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit value resulting from the addend minus the symbol */ HOWTO (R_PPC_EMB_NADDR16_LO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_ADDR16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high order 16 bits of the addend minus the symbol */ HOWTO (R_PPC_EMB_NADDR16_HI, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_NADDR16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high order 16 bits of the result of the addend minus the address, plus 1 if the contents of the low 16 bits, treated as a signed number, @@ -812,15 +948,15 @@ static reloc_howto_type ppc_elf_howto_ra 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc_elf_addr16_ha_reloc, /* special_function */ "R_PPC_EMB_NADDR16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit value resulting from allocating a 4 byte word to hold an address in the .sdata section, and returning the offset from @@ -829,15 +965,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_SDAI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit value resulting from allocating a 4 byte word to hold an address in the .sdata2 section, and returning the offset from @@ -846,15 +982,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_SDA2I16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A sign-extended 16 bit value relative to _SDA2_BASE_, for use with small data items. */ @@ -862,15 +998,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_SDA2REL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Relocate against either _SDA_BASE_ or _SDA2_BASE_, filling in the 16 bit signed offset from the appropriate base, and filling in the register @@ -879,15 +1015,15 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_SDA21", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Relocation not handled: R_PPC_EMB_MRKREF */ /* Relocation not handled: R_PPC_EMB_RELSEC16 */ @@ -903,60 +1039,60 @@ static reloc_howto_type ppc_elf_howto_ra 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_EMB_RELSDA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_PPC_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_PPC_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_PPC_GNU_VTENTRY, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_PPC_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Phony reloc to handle AIX style TOC entries */ HOWTO (R_PPC_TOC16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC_TOC16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* Initialize the ppc_elf_howto_table, so that linear accesses can be done. */ @@ -1010,12 +1146,12 @@ ppc_elf_sort_rela (arg1, arg2) return ((*rela1)->r_offset - (*rela2)->r_offset); } -static boolean +static bfd_boolean ppc_elf_relax_section (abfd, isec, link_info, again) bfd *abfd; asection *isec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { #define PAGESIZE 0x1000 @@ -1027,7 +1163,7 @@ ppc_elf_relax_section (abfd, isec, link_ int comb_curr, comb_count; /* We never have to do this more than once per input section. */ - *again = false; + *again = FALSE; /* If needed, initialize this section's cooked size. */ if (isec->_cooked_size == 0) @@ -1038,7 +1174,7 @@ ppc_elf_relax_section (abfd, isec, link_ if (link_info->mpc860c0 && (isec->flags & SEC_CODE) && isec->_cooked_size) { bfd_vma dot, end_page, end_section; - boolean section_modified; + bfd_boolean section_modified; /* Get the section contents. */ /* Get cached copy if it exists. */ @@ -1116,7 +1252,7 @@ ppc_elf_relax_section (abfd, isec, link_ end_section = isec->vma + isec->_cooked_size; dot = end_page = (isec->vma | (PAGESIZE - 1)) + 1; dot -= link_info->mpc860c0; - section_modified = false; + section_modified = FALSE; if (dot < isec->vma) /* Increment the start position if this section */ dot = isec->vma; /* begins in the middle of its first EOP region. */ for (; @@ -1129,11 +1265,11 @@ ppc_elf_relax_section (abfd, isec, link_ { bfd_vma isec_offset; unsigned long insn; - boolean skip, modified; + bfd_boolean skip, modified; /* Don't process this word if there is a relocation for it and the relocation indicates the word is not a conditional branch. */ - skip = false; + skip = FALSE; isec_offset = dot - isec->vma; for (; comb_currr_offset; if (r_offset >= isec_offset) { - if (r_offset == isec_offset) skip = true; + if (r_offset == isec_offset) skip = TRUE; break; } } @@ -1153,7 +1289,7 @@ ppc_elf_relax_section (abfd, isec, link_ #define BO2(insn) ((insn) & 0x00800000) #define BO4(insn) ((insn) & 0x00200000) insn = (unsigned long) bfd_get_32 (abfd, contents + isec_offset); - modified = false; + modified = FALSE; if ((insn & 0xFc000000) == 0x40000000) { /* Instruction is BCx */ @@ -1170,7 +1306,7 @@ ppc_elf_relax_section (abfd, isec, link_ if (target > dot) { insn |= 0x00200000; /* set the prediction bit */ - modified = true; + modified = TRUE; } } } @@ -1184,7 +1320,7 @@ ppc_elf_relax_section (abfd, isec, link_ Since we can't tell statically if it will branch forward, always set the prediction bit. */ insn |= 0x00200000; /* set the prediction bit */ - modified = true; + modified = TRUE; } } else if ((insn & 0xFc00Fffe) == 0x4c000020) @@ -1197,7 +1333,7 @@ ppc_elf_relax_section (abfd, isec, link_ Since we can't tell statically if it will branch forward, always set the prediction bit. */ insn |= 0x00200000; /* set the prediction bit */ - modified = true; + modified = TRUE; } } #undef BO0 @@ -1206,7 +1342,7 @@ ppc_elf_relax_section (abfd, isec, link_ if (modified) { bfd_put_32 (abfd, (bfd_vma) insn, contents + isec_offset); - section_modified = true; + section_modified = TRUE; } } } @@ -1241,7 +1377,7 @@ ppc_elf_relax_section (abfd, isec, link_ free_contents = NULL; } - return true; + return TRUE; error_return: if (rela_comb != NULL) @@ -1250,7 +1386,7 @@ error_return: free (free_relocs); if (free_contents != NULL) free (free_contents); - return false; + return FALSE; } static reloc_howto_type * @@ -1333,7 +1469,7 @@ static void ppc_elf_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { if (!ppc_elf_howto_table[R_PPC_ADDR32]) /* Initialize howto table if needed. */ @@ -1384,7 +1520,7 @@ ppc_elf_addr16_ha_reloc (abfd, reloc_ent /* Fix bad default arch selected for a 32 bit input bfd when the default is 64 bit. */ -static boolean +static bfd_boolean ppc_elf_object_p (abfd) bfd *abfd; { @@ -1399,12 +1535,12 @@ ppc_elf_object_p (abfd) BFD_ASSERT (abfd->arch_info->bits_per_word == 32); } } - return true; + return TRUE; } /* Function to set whether a module needs the -mrelocatable bit set. */ -static boolean +static bfd_boolean ppc_elf_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -1413,34 +1549,34 @@ ppc_elf_set_private_flags (abfd, flags) || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking */ -static boolean +static bfd_boolean ppc_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { flagword old_flags; flagword new_flags; - boolean error; + bfd_boolean error; /* Check if we have the same endianess */ if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; if (!elf_flags_init (obfd)) /* First call, no flags set */ { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = new_flags; } @@ -1451,11 +1587,11 @@ ppc_elf_merge_private_bfd_data (ibfd, ob { /* Warn about -mrelocatable mismatch. Allow -mrelocatable-lib to be linked with either. */ - error = false; + error = FALSE; if ((new_flags & EF_PPC_RELOCATABLE) != 0 && (old_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0) { - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: compiled with -mrelocatable and linked with modules compiled normally"), bfd_archive_filename (ibfd)); @@ -1463,7 +1599,7 @@ ppc_elf_merge_private_bfd_data (ibfd, ob else if ((new_flags & (EF_PPC_RELOCATABLE | EF_PPC_RELOCATABLE_LIB)) == 0 && (old_flags & EF_PPC_RELOCATABLE) != 0) { - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: compiled normally and linked with modules compiled with -mrelocatable"), bfd_archive_filename (ibfd)); @@ -1489,7 +1625,7 @@ ppc_elf_merge_private_bfd_data (ibfd, ob /* Warn about any other mismatches */ if (new_flags != old_flags) { - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"), bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags); @@ -1498,27 +1634,27 @@ ppc_elf_merge_private_bfd_data (ibfd, ob if (error) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } - return true; + return TRUE; } /* Handle a PowerPC specific section when reading an object file. This is called when elfcode.h finds a section with an unknown type. */ -static boolean +static bfd_boolean ppc_elf_section_from_shdr (abfd, hdr, name) bfd *abfd; - Elf32_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; const char *name; { asection *newsect; flagword flags; if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; newsect = hdr->bfd_section; flags = bfd_get_section_flags (abfd, newsect); @@ -1529,15 +1665,15 @@ ppc_elf_section_from_shdr (abfd, hdr, na flags |= SEC_SORT_ENTRIES; bfd_set_section_flags (abfd, newsect, flags); - return true; + return TRUE; } /* Set up any other section flags and such that may be necessary. */ -static boolean +static bfd_boolean ppc_elf_fake_sections (abfd, shdr, asect) bfd *abfd ATTRIBUTE_UNUSED; - Elf32_Internal_Shdr *shdr; + Elf_Internal_Shdr *shdr; asection *asect; { if ((asect->flags & SEC_EXCLUDE) != 0) @@ -1546,7 +1682,7 @@ ppc_elf_fake_sections (abfd, shdr, asect if ((asect->flags & SEC_SORT_ENTRIES) != 0) shdr->sh_type = SHT_ORDERED; - return true; + return TRUE; } /* Create a special linker section */ @@ -1572,7 +1708,7 @@ ppc_elf_create_linker_section (abfd, inf defaults = zero_section; defaults.which = which; - defaults.hole_written_p = false; + defaults.hole_written_p = FALSE; defaults.alignment = 2; /* Both of these sections are (technically) created by the user @@ -1649,11 +1785,11 @@ ppc_elf_additional_program_headers (abfd /* Modify the segment map if needed. */ -static boolean +static bfd_boolean ppc_elf_modify_segment_map (abfd) bfd *abfd ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* The powerpc .got has a blrl instruction in it. Mark it executable. */ @@ -1684,7 +1820,7 @@ ppc_elf_create_got (abfd, info) to output sections (just like _bfd_elf_create_dynamic_sections has to create .dynbss and .rela.bss). */ -static boolean +static bfd_boolean ppc_elf_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1693,10 +1829,10 @@ ppc_elf_create_dynamic_sections (abfd, i flagword flags; if (!ppc_elf_create_got (abfd, info)) - return false; + return FALSE; if (!_bfd_elf_create_dynamic_sections (abfd, info)) - return false; + return FALSE; flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); @@ -1704,7 +1840,7 @@ ppc_elf_create_dynamic_sections (abfd, i s = bfd_make_section (abfd, ".dynsbss"); if (s == NULL || ! bfd_set_section_flags (abfd, s, SEC_ALLOC)) - return false; + return FALSE; if (! info->shared) { @@ -1712,7 +1848,7 @@ ppc_elf_create_dynamic_sections (abfd, i if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; } s = bfd_get_section_by_name (abfd, ".plt"); @@ -1729,7 +1865,7 @@ ppc_elf_create_dynamic_sections (abfd, i change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean ppc_elf_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1779,14 +1915,14 @@ ppc_elf_adjust_dynamic_symbol (info, h) all uses of the symbol, not just those to the GOT or PLT. */ h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; - return true; + return TRUE; } /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } BFD_ASSERT (h->dynindx != -1); @@ -1833,7 +1969,7 @@ ppc_elf_adjust_dynamic_symbol (info, h) BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf32_External_Rela); - return true; + return TRUE; } else h->plt.offset = (bfd_vma) -1; @@ -1847,7 +1983,7 @@ ppc_elf_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1858,7 +1994,7 @@ ppc_elf_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -1909,7 +2045,7 @@ ppc_elf_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1919,20 +2055,80 @@ ppc_elf_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } +/* Allocate space in associated reloc sections for dynamic relocs. */ + +static bfd_boolean +allocate_dynrelocs (h, info) + struct elf_link_hash_entry *h; + PTR info ATTRIBUTE_UNUSED; +{ + struct ppc_elf_dyn_relocs *p; + + if (h->root.type == bfd_link_hash_indirect) + return TRUE; + + if (h->root.type == bfd_link_hash_warning) + /* When warning symbols are created, they **replace** the "real" + entry in the hash table, thus we never get to see the real + symbol in a hash traversal. So look at it now. */ + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + for (p = ppc_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next) + { + asection *sreloc = elf_section_data (p->sec)->sreloc; + sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela); + } + + return TRUE; +} + +/* Find any dynamic relocs that apply to read-only sections. */ + +static bfd_boolean +readonly_dynrelocs (h, info) + struct elf_link_hash_entry *h; + PTR info; +{ + struct ppc_elf_dyn_relocs *p; + + if (h->root.type == bfd_link_hash_indirect) + return TRUE; + + if (h->root.type == bfd_link_hash_warning) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + + for (p = ppc_elf_hash_entry (h)->dyn_relocs; p != NULL; p = p->next) + { + asection *s = p->sec->output_section; + + if (s != NULL + && ((s->flags & (SEC_READONLY | SEC_ALLOC)) + == (SEC_READONLY | SEC_ALLOC))) + { + ((struct bfd_link_info *) info)->flags |= DF_TEXTREL; + + /* Not an error, just cut short the traversal. */ + return FALSE; + } + } + return TRUE; +} + /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean ppc_elf_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean plt; - boolean relocs; + bfd_boolean plt; + bfd_boolean relocs; + bfd *ibfd; #ifdef DEBUG fprintf (stderr, "ppc_elf_size_dynamic_sections called\n"); @@ -1972,15 +2168,54 @@ ppc_elf_size_dynamic_sections (output_bf } } + /* Allocate space for local sym dynamic relocs. */ + for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link_next) + { + if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour) + continue; + + for (s = ibfd->sections; s != NULL; s = s->next) + { + struct ppc_elf_dyn_relocs *p; + + for (p = ((struct ppc_elf_dyn_relocs *) + elf_section_data (s)->local_dynrel); + p != NULL; + p = p->next) + { + if (!bfd_is_abs_section (p->sec) + && bfd_is_abs_section (p->sec->output_section)) + { + /* Input section has been discarded, either because + it is a copy of a linkonce section or due to + linker script /DISCARD/, so we'll be discarding + the relocs too. */ + } + else if (p->count != 0) + { + elf_section_data (p->sec)->sreloc->_raw_size + += p->count * sizeof (Elf32_External_Rela); + if ((p->sec->output_section->flags + & (SEC_READONLY | SEC_ALLOC)) + == (SEC_READONLY | SEC_ALLOC)) + info->flags |= DF_TEXTREL; + } + } + } + } + + /* Allocate space for global sym dynamic relocs. */ + elf_link_hash_traverse (elf_hash_table (info), allocate_dynrelocs, NULL); + /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - plt = false; - relocs = false; + plt = FALSE; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -1989,7 +2224,7 @@ ppc_elf_size_dynamic_sections (output_bf of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strcmp (name, ".plt") == 0) { @@ -1997,12 +2232,12 @@ ppc_elf_size_dynamic_sections (output_bf { /* Strip this section if we don't need it; see the comment below. */ - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strncmp (name, ".rela", 5) == 0) @@ -2018,12 +2253,12 @@ ppc_elf_size_dynamic_sections (output_bf adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { /* Remember whether there are any relocation sections. */ - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -2047,7 +2282,7 @@ ppc_elf_size_dynamic_sections (output_bf /* Allocate memory for the section contents. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -2063,7 +2298,7 @@ ppc_elf_size_dynamic_sections (output_bf if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (plt) @@ -2072,7 +2307,7 @@ ppc_elf_size_dynamic_sections (output_bf || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -2080,26 +2315,31 @@ ppc_elf_size_dynamic_sections (output_bf if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; } + /* If any dynamic relocs apply to a read-only section, then we + need a DT_TEXTREL entry. */ + if ((info->flags & DF_TEXTREL) == 0) + elf_link_hash_traverse (elf_hash_table (info), readonly_dynrelocs, + (PTR) info); + if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; - info->flags |= DF_TEXTREL; + return FALSE; } } #undef add_dynamic_entry - return true; + return TRUE; } /* Look through the relocs for a section during the first phase, and allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean ppc_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -2119,7 +2359,7 @@ ppc_elf_check_relocs (abfd, info, sec, r asection *srelgot = NULL; if (info->relocateable) - return true; + return TRUE; #ifdef DEBUG fprintf (stderr, "ppc_elf_check_relocs called for section %s in %s\n", @@ -2134,14 +2374,14 @@ ppc_elf_check_relocs (abfd, info, sec, r { sdata = ppc_elf_create_linker_section (abfd, info, LINKER_SECTION_SDATA); if (!sdata) - return false; + return FALSE; } if ((sdata2 = elf_linker_section (abfd, LINKER_SECTION_SDATA2)) == NULL) { sdata2 = ppc_elf_create_linker_section (abfd, info, LINKER_SECTION_SDATA2); if (!sdata2) - return false; + return FALSE; } dynobj = elf_hash_table (info)->dynobj; @@ -2178,7 +2418,7 @@ ppc_elf_check_relocs (abfd, info, sec, r elf_hash_table (info)->dynobj = dynobj = abfd; sgot = ppc_elf_create_got (dynobj, info); if (sgot == NULL) - return false; + return FALSE; } } @@ -2197,7 +2437,7 @@ ppc_elf_check_relocs (abfd, info, sec, r elf_hash_table (info)->dynobj = dynobj = abfd; sgot = ppc_elf_create_got (dynobj, info); if (sgot == NULL) - return false; + return FALSE; } if (srelgot == NULL @@ -2216,7 +2456,7 @@ ppc_elf_check_relocs (abfd, info, sec, r | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } @@ -2227,7 +2467,7 @@ ppc_elf_check_relocs (abfd, info, sec, r /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) if (!bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; /* Allocate space in the .got. */ sgot->_raw_size += 4; @@ -2248,7 +2488,7 @@ ppc_elf_check_relocs (abfd, info, sec, r local_got_refcounts = (bfd_signed_vma *) bfd_zalloc (abfd, size); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; } if (local_got_refcounts[r_symndx] == 0) @@ -2272,7 +2512,7 @@ ppc_elf_check_relocs (abfd, info, sec, r ((*_bfd_error_handler) (_("%s: relocation %s cannot be used when making a shared object"), bfd_archive_filename (abfd), "R_PPC_EMB_SDAI16")); - return false; + return FALSE; } if (srelgot == NULL && (h != NULL || info->shared)) @@ -2290,12 +2530,12 @@ ppc_elf_check_relocs (abfd, info, sec, r | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } if (!bfd_elf32_create_pointer_linker_section (abfd, info, sdata, h, rel)) - return false; + return FALSE; break; @@ -2306,7 +2546,7 @@ ppc_elf_check_relocs (abfd, info, sec, r ((*_bfd_error_handler) (_("%s: relocation %s cannot be used when making a shared object"), bfd_archive_filename (abfd), "R_PPC_EMB_SDA2I16")); - return false; + return FALSE; } if (srelgot == NULL && (h != NULL || info->shared)) @@ -2324,12 +2564,12 @@ ppc_elf_check_relocs (abfd, info, sec, r | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } if (!bfd_elf32_create_pointer_linker_section (abfd, info, sdata2, h, rel)) - return false; + return FALSE; break; @@ -2342,7 +2582,7 @@ ppc_elf_check_relocs (abfd, info, sec, r (_("%s: relocation %s cannot be used when making a shared object"), bfd_archive_filename (abfd), ppc_elf_howto_table[(int) ELF32_R_TYPE (rel->r_info)]->name)); - return false; + return FALSE; } break; @@ -2365,14 +2605,14 @@ ppc_elf_check_relocs (abfd, info, sec, r /* It does not make sense to have a procedure linkage table entry for a local symbol. */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; h->plt.refcount++; @@ -2395,14 +2635,14 @@ ppc_elf_check_relocs (abfd, info, sec, r Reconstruct it for later use during GC. */ case R_PPC_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_PPC_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; /* When creating a shared object, we must copy these @@ -2424,6 +2664,9 @@ ppc_elf_check_relocs (abfd, info, sec, r && ((sec->flags & SEC_DEBUGGING) == 0 || (sec->flags & SEC_ALLOC) != 0)) { + struct ppc_elf_dyn_relocs *p; + struct ppc_elf_dyn_relocs **head; + #ifdef DEBUG fprintf (stderr, "ppc_elf_check_relocs need to create relocation for %s\n", (h && h->root.root.string) ? h->root.root.string : ""); @@ -2437,7 +2680,7 @@ ppc_elf_check_relocs (abfd, info, sec, r elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -2456,27 +2699,55 @@ ppc_elf_check_relocs (abfd, info, sec, r if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } - if (sec->flags & SEC_READONLY) - info->flags |= DF_TEXTREL; + elf_section_data (sec)->sreloc = sreloc; + } + + /* If this is a global symbol, we count the number of + relocations we need for this symbol. */ + if (h != NULL) + { + head = &ppc_elf_hash_entry (h)->dyn_relocs; } + else + { + /* Track dynamic relocs needed for local syms too. + We really need local syms available to do this + easily. Oh well. */ + + asection *s; + s = (bfd_section_from_r_symndx + (abfd, &ppc_elf_hash_table (info)->sym_sec, + sec, r_symndx)); + if (s == NULL) + return FALSE; - sreloc->_raw_size += sizeof (Elf32_External_Rela); + head = ((struct ppc_elf_dyn_relocs **) + &elf_section_data (s)->local_dynrel); + } + + p = *head; + if (p == NULL || p->sec != sec) + { + p = ((struct ppc_elf_dyn_relocs *) + bfd_alloc (elf_hash_table (info)->dynobj, sizeof *p)); + if (p == NULL) + return FALSE; + p->next = *head; + *head = p; + p->sec = sec; + p->count = 0; + } - /* FIXME: We should here do what the m68k and i386 - backends do: if the reloc is pc-relative, record it - in case it turns out that the reloc is unnecessary - because the symbol is forced local by versioning or - we are linking with -Bdynamic. Fortunately this - case is not frequent. */ + p->count++; } break; } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -2521,7 +2792,7 @@ ppc_elf_gc_mark_hook (sec, info, rel, h, /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean ppc_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -2535,6 +2806,8 @@ ppc_elf_gc_sweep_hook (abfd, info, sec, unsigned long r_symndx; struct elf_link_hash_entry *h; + elf_section_data (sec)->local_dynrel = NULL; + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); local_got_refcounts = elf_local_got_refcounts (abfd); @@ -2573,19 +2846,36 @@ ppc_elf_gc_sweep_hook (abfd, info, sec, if (h->plt.refcount > 0) h->plt.refcount--; } - break; + /* Fall through */ default: + r_symndx = ELF32_R_SYM (rel->r_info); + if (r_symndx >= symtab_hdr->sh_info) + { + struct ppc_elf_dyn_relocs **pp, *p; + + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + + for (pp = &ppc_elf_hash_entry (h)->dyn_relocs; + (p = *pp) != NULL; + pp = &p->next) + if (p->sec == sec) + { + if (--p->count == 0) + *pp = p->next; + break; + } + } break; } - return true; + return TRUE; } /* Hook called by the linker routine which adds symbols from an object file. We use it to put .comm items in .sbss, and not .bss. */ -static boolean +static bfd_boolean ppc_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -2616,7 +2906,7 @@ ppc_elf_add_symbol_hook (abfd, info, sym amt = sizeof (asection); sdata->bss_section = (asection *) bfd_zalloc (abfd, amt); if (sdata->bss_section == NULL) - return false; + return FALSE; sdata->bss_section->name = sdata->bss_name; sdata->bss_section->flags = SEC_IS_COMMON; sdata->bss_section->output_section = sdata->bss_section; @@ -2627,7 +2917,7 @@ ppc_elf_add_symbol_hook (abfd, info, sym (asymbol **) bfd_zalloc (abfd, amt); if (sdata->bss_section->symbol == NULL || sdata->bss_section->symbol_ptr_ptr == NULL) - return false; + return FALSE; sdata->bss_section->symbol->name = sdata->bss_name; sdata->bss_section->symbol->flags = BSF_SECTION_SYM; sdata->bss_section->symbol->section = sdata->bss_section; @@ -2638,13 +2928,13 @@ ppc_elf_add_symbol_hook (abfd, info, sym *valp = sym->st_size; } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean ppc_elf_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -2666,6 +2956,7 @@ ppc_elf_finish_dynamic_symbol (output_bf asection *splt; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; bfd_vma reloc_index; #ifdef DEBUG @@ -2694,9 +2985,8 @@ ppc_elf_finish_dynamic_symbol (output_bf reloc_index = (h->plt.offset - PLT_INITIAL_ENTRY_SIZE) / PLT_SLOT_SIZE; if (reloc_index > PLT_NUM_SINGLE_ENTRIES) reloc_index -= (reloc_index - PLT_NUM_SINGLE_ENTRIES) / 2; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + reloc_index)); + loc = srela->contents + reloc_index * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -2718,6 +3008,7 @@ ppc_elf_finish_dynamic_symbol (output_bf asection *sgot; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -2750,16 +3041,16 @@ ppc_elf_finish_dynamic_symbol (output_bf } bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + h->got.offset); - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + srela->reloc_count)); - ++srela->reloc_count; + loc = srela->contents; + loc += srela->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection *s; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbols needs a copy reloc. Set it up. */ @@ -2782,10 +3073,8 @@ ppc_elf_finish_dynamic_symbol (output_bf + h->root.u.def.section->output_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_PPC_COPY); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } #ifdef DEBUG @@ -2798,12 +3087,12 @@ ppc_elf_finish_dynamic_symbol (output_bf || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean ppc_elf_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2832,16 +3121,16 @@ ppc_elf_finish_dynamic_sections (output_ { Elf_Internal_Dyn dyn; const char *name; - boolean size; + bfd_boolean size; bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn); switch (dyn.d_tag) { - case DT_PLTGOT: name = ".plt"; size = false; break; - case DT_PLTRELSZ: name = ".rela.plt"; size = true; break; - case DT_JMPREL: name = ".rela.plt"; size = false; break; - default: name = NULL; size = false; break; + case DT_PLTGOT: name = ".plt"; size = FALSE; break; + case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break; + case DT_JMPREL: name = ".rela.plt"; size = FALSE; break; + default: name = NULL; size = FALSE; break; } if (name != NULL) @@ -2885,7 +3174,7 @@ ppc_elf_finish_dynamic_sections (output_ elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; } - return true; + return TRUE; } /* The RELOCATE_SECTION function is called by the ELF backend linker @@ -2917,7 +3206,7 @@ ppc_elf_finish_dynamic_sections (output_ section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean ppc_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -2929,20 +3218,26 @@ ppc_elf_relocate_section (output_bfd, in Elf_Internal_Sym *local_syms; asection **local_sections; { - Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; + Elf_Internal_Shdr *symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (input_bfd); - bfd *dynobj = elf_hash_table (info)->dynobj; - elf_linker_section_t *sdata = (dynobj) ? elf_linker_section (dynobj, LINKER_SECTION_SDATA) : NULL; - elf_linker_section_t *sdata2 = (dynobj) ? elf_linker_section (dynobj, LINKER_SECTION_SDATA2) : NULL; - Elf_Internal_Rela *rel = relocs; - Elf_Internal_Rela *relend = relocs + input_section->reloc_count; - asection *sreloc = NULL; + bfd *dynobj = elf_hash_table (info)->dynobj; + elf_linker_section_t *sdata = NULL; + elf_linker_section_t *sdata2 = NULL; + Elf_Internal_Rela *rel = relocs; + Elf_Internal_Rela *relend = relocs + input_section->reloc_count; + asection *sreloc = NULL; asection *splt; asection *sgot; bfd_vma *local_got_offsets; - boolean ret = true; + bfd_boolean ret = TRUE; long insn; + if (dynobj) + { + sdata = elf_linker_section (dynobj, LINKER_SECTION_SDATA); + sdata2 = elf_linker_section (dynobj, LINKER_SECTION_SDATA2); + } + #ifdef DEBUG fprintf (stderr, "ppc_elf_relocate_section called for %s section %s, %ld relocations%s\n", bfd_archive_filename (input_bfd), @@ -2952,7 +3247,7 @@ ppc_elf_relocate_section (output_bfd, in #endif if (info->relocateable) - return true; + return TRUE; if (!ppc_elf_howto_table[R_PPC_ADDR32]) /* Initialize howto table if needed. */ @@ -2991,7 +3286,7 @@ ppc_elf_relocate_section (output_bfd, in (int) r_type); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } @@ -3117,7 +3412,7 @@ ppc_elf_relocate_section (output_bfd, in (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other)))) - return false; + return FALSE; relocation = 0; } } @@ -3130,7 +3425,7 @@ ppc_elf_relocate_section (output_bfd, in (int) r_type, sym_name); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; case (int) R_PPC_NONE: @@ -3150,8 +3445,8 @@ ppc_elf_relocate_section (output_bfd, in input_bfd, input_section, rel->r_offset, - true)) - return false; + TRUE)) + return FALSE; continue; } break; @@ -3185,6 +3480,7 @@ ppc_elf_relocate_section (output_bfd, in || (input_section->flags & SEC_ALLOC) != 0)) { Elf_Internal_Rela outrel; + bfd_byte *loc; int skip; #ifdef DEBUG @@ -3205,7 +3501,7 @@ ppc_elf_relocate_section (output_bfd, in elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -3238,11 +3534,10 @@ ppc_elf_relocate_section (output_bfd, in } else { + outrel.r_addend = relocation + rel->r_addend; + if (r_type == R_PPC_ADDR32) - { - outrel.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE); - outrel.r_addend = relocation + rel->r_addend; - } + outrel.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE); else { long indx; @@ -3256,17 +3551,23 @@ ppc_elf_relocate_section (output_bfd, in == bfd_link_hash_defweak)); sec = h->root.u.def.section; } - if (sec != NULL && bfd_is_abs_section (sec)) + + if (bfd_is_abs_section (sec)) indx = 0; else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { asection *osec; + /* We are turning this relocation into one + against a section symbol. It would be + proper to subtract the symbol's value, + osec->vma, from the emitted reloc addend, + but ld.so expects buggy relocs. */ osec = sec->output_section; indx = elf_section_data (osec)->dynindx; BFD_ASSERT (indx > 0); @@ -3281,15 +3582,12 @@ ppc_elf_relocate_section (output_bfd, in } outrel.r_info = ELF32_R_INFO (indx, r_type); - outrel.r_addend = relocation + rel->r_addend; } } - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); if (skip == -1) continue; @@ -3405,6 +3703,7 @@ ppc_elf_relocate_section (output_bfd, in { asection *srelgot; Elf_Internal_Rela outrel; + bfd_byte *loc; /* We need to generate a R_PPC_RELATIVE reloc for the dynamic linker. */ @@ -3416,11 +3715,9 @@ ppc_elf_relocate_section (output_bfd, in + off); outrel.r_info = ELF32_R_INFO (0, R_PPC_RELATIVE); outrel.r_addend = relocation; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = srelgot->contents; + loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); relocation = 0; } @@ -3430,6 +3727,8 @@ ppc_elf_relocate_section (output_bfd, in relocation = sgot->output_offset + off - 4; } + if (r_type == R_PPC_GOT16_HA) + addend += ((relocation + addend) & 0x8000) << 1; break; /* Indirect .sdata relocation */ @@ -3521,7 +3820,7 @@ ppc_elf_relocate_section (output_bfd, in name); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } addend -= (sdata2->sym_hash->root.u.def.value @@ -3539,7 +3838,7 @@ ppc_elf_relocate_section (output_bfd, in BFD_ASSERT (sec != (asection *) 0); name = bfd_get_section_name (abfd, sec->output_section); - if (((strncmp (name, ".sdata", 6) == 0 + if (((strncmp (name, ".sdata", 6) == 0 && (name[6] == 0 || name[6] == '.')) || (strncmp (name, ".sbss", 5) == 0 && (name[5] == 0 || name[5] == '.')))) @@ -3574,7 +3873,7 @@ ppc_elf_relocate_section (output_bfd, in name); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } @@ -3639,7 +3938,7 @@ ppc_elf_relocate_section (output_bfd, in sym_name); bfd_set_error (bfd_error_invalid_operation); - ret = false; + ret = FALSE; continue; case (int) R_PPC_GNU_VTINHERIT: @@ -3706,10 +4005,10 @@ ppc_elf_relocate_section (output_bfd, in input_bfd, input_section, offset)) - return false; + return FALSE; } else - ret = false; + ret = FALSE; } #ifdef DEBUG @@ -3739,7 +4038,7 @@ ppc_elf_reloc_type_class (rela) } /* Support for core dump NOTE sections */ -static boolean +static bfd_boolean ppc_elf_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -3750,7 +4049,7 @@ ppc_elf_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 268: /* Linux/PPC */ /* pr_cursig */ @@ -3771,7 +4070,7 @@ ppc_elf_grok_prstatus (abfd, note) raw_size, note->descpos + offset); } -static boolean +static bfd_boolean ppc_elf_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -3779,7 +4078,7 @@ ppc_elf_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 128: /* Linux/PPC elf_prpsinfo */ elf_tdata (abfd)->core_program @@ -3800,7 +4099,310 @@ ppc_elf_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; +} + +/* Very simple linked list structure for recording apuinfo values. */ +typedef struct apuinfo_list +{ + struct apuinfo_list * next; + unsigned long value; +} +apuinfo_list; + +static apuinfo_list * head; + +static void apuinfo_list_init PARAMS ((void)); +static void apuinfo_list_add PARAMS ((unsigned long)); +static unsigned apuinfo_list_length PARAMS ((void)); +static unsigned long apuinfo_list_element PARAMS ((unsigned long)); +static void apuinfo_list_finish PARAMS ((void)); + +extern void ppc_elf_begin_write_processing + PARAMS ((bfd *, struct bfd_link_info *)); +extern void ppc_elf_final_write_processing + PARAMS ((bfd *, bfd_boolean)); +extern bfd_boolean ppc_elf_write_section + PARAMS ((bfd *, asection *, bfd_byte *)); + + + +static void +apuinfo_list_init PARAMS ((void)) +{ + head = NULL; +} + +static void +apuinfo_list_add (value) + unsigned long value; +{ + apuinfo_list * entry = head; + + while (entry != NULL) + { + if (entry->value == value) + return; + entry = entry->next; + } + + entry = bfd_malloc (sizeof (* entry)); + if (entry == NULL) + return; + + entry->value = value; + entry->next = head; + head = entry; +} + +static unsigned +apuinfo_list_length PARAMS ((void)) +{ + apuinfo_list * entry; + unsigned long count; + + for (entry = head, count = 0; + entry; + entry = entry->next) + ++ count; + + return count; +} + +static inline unsigned long +apuinfo_list_element (number) + unsigned long number; +{ + apuinfo_list * entry; + + for (entry = head; + entry && number --; + entry = entry->next) + ; + + return entry ? entry->value : 0; +} + +static void +apuinfo_list_finish PARAMS ((void)) +{ + apuinfo_list * entry; + + for (entry = head; entry;) + { + apuinfo_list * next = entry->next; + free (entry); + entry = next; + } + + head = NULL; +} + +#define APUINFO_SECTION_NAME ".PPC.EMB.apuinfo" +#define APUINFO_LABEL "APUinfo" + +/* Scan the input BFDs and create a linked list of + the APUinfo values that will need to be emitted. */ + +void +ppc_elf_begin_write_processing (abfd, link_info) + bfd *abfd; + struct bfd_link_info *link_info; +{ + bfd * ibfd; + asection * asec; + char * buffer; + unsigned num_input_sections; + bfd_size_type output_section_size; + unsigned i; + unsigned num_entries; + unsigned long offset; + unsigned long length; + const char * error_message = NULL; + + if (link_info == NULL) + return; + + /* Scan the input bfds, looking for apuinfo sections. */ + num_input_sections = 0; + output_section_size = 0; + + for (ibfd = link_info->input_bfds; ibfd; ibfd = ibfd->link_next) + { + asec = bfd_get_section_by_name (ibfd, APUINFO_SECTION_NAME); + if (asec) + { + ++ num_input_sections; + output_section_size += asec->_raw_size; + } + } + + /* We need at least one input sections + in order to make merging worthwhile. */ + if (num_input_sections < 1) + return; + + /* Just make sure that the output section exists as well. */ + asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME); + if (asec == NULL) + return; + + /* Allocate a buffer for the contents of the input sections. */ + buffer = bfd_malloc (output_section_size); + if (buffer == NULL) + return; + + offset = 0; + apuinfo_list_init (); + + /* Read in the input sections contents. */ + for (ibfd = link_info->input_bfds; ibfd; ibfd = ibfd->link_next) + { + unsigned long datum; + char * ptr; + + + asec = bfd_get_section_by_name (ibfd, APUINFO_SECTION_NAME); + if (asec == NULL) + continue; + + length = asec->_raw_size; + if (length < 24) + { + error_message = _("corrupt or empty %s section in %s"); + goto fail; + } + + if (bfd_seek (ibfd, asec->filepos, SEEK_SET) != 0 + || (bfd_bread (buffer + offset, length, ibfd) != length)) + { + error_message = _("unable to read in %s section from %s"); + goto fail; + } + + /* Process the contents of the section. */ + ptr = buffer + offset; + error_message = _("corrupt %s section in %s"); + + /* Verify the contents of the header. Note - we have to + extract the values this way in order to allow for a + host whose endian-ness is different from the target. */ + datum = bfd_get_32 (ibfd, ptr); + if (datum != sizeof APUINFO_LABEL) + goto fail; + + datum = bfd_get_32 (ibfd, ptr + 8); + if (datum != 0x2) + goto fail; + + if (strcmp (ptr + 12, APUINFO_LABEL) != 0) + goto fail; + + /* Get the number of apuinfo entries. */ + datum = bfd_get_32 (ibfd, ptr + 4); + if ((datum * 4 + 20) != length) + goto fail; + + /* Make sure that we do not run off the end of the section. */ + if (offset + length > output_section_size) + goto fail; + + /* Scan the apuinfo section, building a list of apuinfo numbers. */ + for (i = 0; i < datum; i++) + apuinfo_list_add (bfd_get_32 (ibfd, ptr + 20 + (i * 4))); + + /* Update the offset. */ + offset += length; + } + + error_message = NULL; + + /* Compute the size of the output section. */ + num_entries = apuinfo_list_length (); + output_section_size = 20 + num_entries * 4; + + asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME); + + if (! bfd_set_section_size (abfd, asec, output_section_size)) + ibfd = abfd, + error_message = _("warning: unable to set size of %s section in %s"); + + fail: + free (buffer); + + if (error_message) + _bfd_error_handler (error_message, APUINFO_SECTION_NAME, + bfd_archive_filename (ibfd)); +} + + +/* Prevent the output section from accumulating the input sections' + contents. We have already stored this in our linked list structure. */ + +bfd_boolean +ppc_elf_write_section (abfd, asec, contents) + bfd * abfd ATTRIBUTE_UNUSED; + asection * asec; + bfd_byte * contents ATTRIBUTE_UNUSED; +{ + return apuinfo_list_length () && strcmp (asec->name, APUINFO_SECTION_NAME) == 0; +} + + +/* Finally we can generate the output section. */ + +void +ppc_elf_final_write_processing (abfd, linker) + bfd * abfd; + bfd_boolean linker ATTRIBUTE_UNUSED; +{ + bfd_byte * buffer; + asection * asec; + unsigned i; + unsigned num_entries; + bfd_size_type length; + + asec = bfd_get_section_by_name (abfd, APUINFO_SECTION_NAME); + if (asec == NULL) + return; + + if (apuinfo_list_length () == 0) + return; + + length = asec->_raw_size; + if (length < 20) + return; + + buffer = bfd_malloc (length); + if (buffer == NULL) + { + _bfd_error_handler (_("failed to allocate space for new APUinfo section.")); + return; + } + + /* Create the apuinfo header. */ + num_entries = apuinfo_list_length (); + bfd_put_32 (abfd, sizeof APUINFO_LABEL, buffer); + bfd_put_32 (abfd, num_entries, buffer + 4); + bfd_put_32 (abfd, 0x2, buffer + 8); + strcpy (buffer + 12, APUINFO_LABEL); + + length = 20; + for (i = 0; i < num_entries; i++) + { + bfd_put_32 (abfd, apuinfo_list_element (i), buffer + length); + length += 4; + } + + if (length != asec->_raw_size) + _bfd_error_handler (_("failed to compute new APUinfo section.")); + + if (! bfd_set_section_contents (abfd, asec, buffer, (file_ptr) 0, length)) + _bfd_error_handler (_("failed to install new APUinfo section.")); + + free (buffer); + + apuinfo_list_finish (); } #define TARGET_LITTLE_SYM bfd_elf32_powerpcle_vec @@ -3833,6 +4435,7 @@ ppc_elf_grok_psinfo (abfd, note) #define bfd_elf32_bfd_reloc_type_lookup ppc_elf_reloc_type_lookup #define bfd_elf32_bfd_set_private_flags ppc_elf_set_private_flags #define bfd_elf32_bfd_final_link _bfd_elf32_gc_common_final_link +#define bfd_elf32_bfd_link_hash_table_create ppc_elf_link_hash_table_create #define elf_backend_object_p ppc_elf_object_p #define elf_backend_gc_mark_hook ppc_elf_gc_mark_hook @@ -3841,6 +4444,7 @@ ppc_elf_grok_psinfo (abfd, note) #define elf_backend_relocate_section ppc_elf_relocate_section #define elf_backend_create_dynamic_sections ppc_elf_create_dynamic_sections #define elf_backend_check_relocs ppc_elf_check_relocs +#define elf_backend_copy_indirect_symbol ppc_elf_copy_indirect_symbol #define elf_backend_adjust_dynamic_symbol ppc_elf_adjust_dynamic_symbol #define elf_backend_add_symbol_hook ppc_elf_add_symbol_hook #define elf_backend_size_dynamic_sections ppc_elf_size_dynamic_sections @@ -3852,5 +4456,8 @@ ppc_elf_grok_psinfo (abfd, note) #define elf_backend_grok_prstatus ppc_elf_grok_prstatus #define elf_backend_grok_psinfo ppc_elf_grok_psinfo #define elf_backend_reloc_type_class ppc_elf_reloc_type_class +#define elf_backend_begin_write_processing ppc_elf_begin_write_processing +#define elf_backend_final_write_processing ppc_elf_final_write_processing +#define elf_backend_write_section ppc_elf_write_section #include "elf32-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf32-s390.c binutils-2.13.90.0.18/bfd/elf32-s390.c --- binutils-2.13.90.0.16/bfd/elf32-s390.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/elf32-s390.c Tue Jan 21 10:21:32 2003 @@ -29,48 +29,53 @@ static reloc_howto_type *elf_s390_reloc_ PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf_s390_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean elf_s390_is_local_label_name +static bfd_boolean elf_s390_is_local_label_name PARAMS ((bfd *, const char *)); static struct bfd_hash_entry *link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *elf_s390_link_hash_table_create PARAMS ((bfd *)); -static boolean create_got_section +static bfd_boolean create_got_section PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf_s390_create_dynamic_sections +static bfd_boolean elf_s390_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf_s390_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); -static boolean elf_s390_check_relocs +static bfd_boolean elf_s390_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *elf_s390_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_s390_gc_sweep_hook +static bfd_boolean elf_s390_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf_s390_adjust_dynamic_symbol +struct elf_s390_link_hash_entry; +static void elf_s390_adjust_gotplt + PARAMS ((struct elf_s390_link_hash_entry *)); +static bfd_boolean elf_s390_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean allocate_dynrelocs +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_s390_size_dynamic_sections +static bfd_boolean elf_s390_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_s390_relocate_section +static bfd_boolean elf_s390_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf_s390_finish_dynamic_symbol +static bfd_boolean elf_s390_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); static enum elf_reloc_type_class elf_s390_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean elf_s390_finish_dynamic_sections +static bfd_boolean elf_s390_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_s390_object_p PARAMS ((bfd *)); -static boolean elf_s390_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elf_s390_object_p + PARAMS ((bfd *)); +static bfd_boolean elf_s390_grok_prstatus + PARAMS ((bfd *, Elf_Internal_Note *)); #include "elf/s390.h" @@ -82,45 +87,88 @@ static reloc_howto_type elf_howto_table[ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_390_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ - HOWTO(R_390_8, 0, 0, 8, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_8", false, 0,0x000000ff, false), - HOWTO(R_390_12, 0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_12", false, 0,0x00000fff, false), - HOWTO(R_390_16, 0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_16", false, 0,0x0000ffff, false), - HOWTO(R_390_32, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_32", false, 0,0xffffffff, false), - HOWTO(R_390_PC32, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32", false, 0,0xffffffff, true), - HOWTO(R_390_GOT12, 0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_GOT12", false, 0,0x00000fff, false), - HOWTO(R_390_GOT32, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32", false, 0,0xffffffff, false), - HOWTO(R_390_PLT32, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32", false, 0,0xffffffff, true), - HOWTO(R_390_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_COPY", false, 0,0xffffffff, false), - HOWTO(R_390_GLOB_DAT, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GLOB_DAT",false, 0,0xffffffff, false), - HOWTO(R_390_JMP_SLOT, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_JMP_SLOT",false, 0,0xffffffff, false), - HOWTO(R_390_RELATIVE, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_RELATIVE",false, 0,0xffffffff, false), - HOWTO(R_390_GOTOFF, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTOFF", false, 0,0xffffffff, false), - HOWTO(R_390_GOTPC, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPC", false, 0,0xffffffff, true), - HOWTO(R_390_GOT16, 0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT16", false, 0,0x0000ffff, false), - HOWTO(R_390_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16", false, 0,0x0000ffff, true), - HOWTO(R_390_PC16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16DBL", false, 0,0x0000ffff, true), - HOWTO(R_390_PLT16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT16DBL", false, 0,0x0000ffff, true), - HOWTO(R_390_PC32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32DBL", false, 0,0xffffffff, true), - HOWTO(R_390_PLT32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32DBL", false, 0,0xffffffff, true), - HOWTO(R_390_GOTPCDBL, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPCDBL", false, 0,0xffffffff, true), - HOWTO(R_390_GOTENT, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTENT", false, 0,0xffffffff, true), + HOWTO(R_390_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_8", FALSE, 0,0x000000ff, FALSE), + HOWTO(R_390_12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_390_12", FALSE, 0,0x00000fff, FALSE), + HOWTO(R_390_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_32", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC32", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_390_GOT12", FALSE, 0,0x00000fff, FALSE), + HOWTO(R_390_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOT32", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_PLT32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLT32", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_COPY, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_COPY", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_GLOB_DAT, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GLOB_DAT", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_JMP_SLOT, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_JMP_SLOT", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_RELATIVE, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_RELATIVE", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_GOTOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTOFF32", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_GOTPC, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPC", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_GOT16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOT16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_PC16, 0, 1, 16, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC16", FALSE, 0,0x0000ffff, TRUE), + HOWTO(R_390_PC16DBL, 1, 1, 16, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC16DBL", FALSE, 0,0x0000ffff, TRUE), + HOWTO(R_390_PLT16DBL, 1, 1, 16, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLT16DBL", FALSE, 0,0x0000ffff, TRUE), + HOWTO(R_390_PC32DBL, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC32DBL", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_PLT32DBL, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLT32DBL", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_GOTPCDBL, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPCDBL", FALSE, 0,0xffffffff, TRUE), + EMPTY_HOWTO (R_390_64), /* Empty entry for R_390_64. */ + EMPTY_HOWTO (R_390_PC64), /* Empty entry for R_390_PC64. */ + EMPTY_HOWTO (R_390_GOT64), /* Empty entry for R_390_GOT64. */ + EMPTY_HOWTO (R_390_PLT64), /* Empty entry for R_390_PLT64. */ + HOWTO(R_390_GOTENT, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTENT", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_GOTOFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTOFF16", FALSE, 0,0x0000ffff, FALSE), + EMPTY_HOWTO (R_390_GOTOFF64), /* Empty entry for R_390_GOTOFF64. */ + HOWTO(R_390_GOTPLT12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_390_GOTPLT12", FALSE, 0,0x00000fff, FALSE), + HOWTO(R_390_GOTPLT16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPLT16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_GOTPLT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPLT32", FALSE, 0,0xffffffff, FALSE), + EMPTY_HOWTO (R_390_GOTPLT64), /* Empty entry for R_390_GOTPLT64. */ + HOWTO(R_390_GOTPLTENT, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPLTENT",FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_PLTOFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLTOFF16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_PLTOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLTOFF32", FALSE, 0,0xffffffff, FALSE), + EMPTY_HOWTO (R_390_PLTOFF64), /* Empty entry for R_390_PLTOFF64. */ }; /* GNU extension to record C++ vtable hierarchy. */ static reloc_howto_type elf32_s390_vtinherit_howto = - HOWTO (R_390_GNU_VTINHERIT, 0,2,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false); + HOWTO (R_390_GNU_VTINHERIT, 0,2,0,FALSE,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", FALSE,0, 0, FALSE); static reloc_howto_type elf32_s390_vtentry_howto = - HOWTO (R_390_GNU_VTENTRY, 0,2,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false); + HOWTO (R_390_GNU_VTENTRY, 0,2,0,FALSE,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", FALSE,0,0, FALSE); static reloc_howto_type * elf_s390_reloc_type_lookup (abfd, code) @@ -158,7 +206,7 @@ elf_s390_reloc_type_lookup (abfd, code) case BFD_RELOC_390_RELATIVE: return &elf_howto_table[(int) R_390_RELATIVE]; case BFD_RELOC_32_GOTOFF: - return &elf_howto_table[(int) R_390_GOTOFF]; + return &elf_howto_table[(int) R_390_GOTOFF32]; case BFD_RELOC_390_GOTPC: return &elf_howto_table[(int) R_390_GOTPC]; case BFD_RELOC_390_GOT16: @@ -177,6 +225,20 @@ elf_s390_reloc_type_lookup (abfd, code) return &elf_howto_table[(int) R_390_GOTPCDBL]; case BFD_RELOC_390_GOTENT: return &elf_howto_table[(int) R_390_GOTENT]; + case BFD_RELOC_16_GOTOFF: + return &elf_howto_table[(int) R_390_GOTOFF16]; + case BFD_RELOC_390_GOTPLT12: + return &elf_howto_table[(int) R_390_GOTPLT12]; + case BFD_RELOC_390_GOTPLT16: + return &elf_howto_table[(int) R_390_GOTPLT16]; + case BFD_RELOC_390_GOTPLT32: + return &elf_howto_table[(int) R_390_GOTPLT32]; + case BFD_RELOC_390_GOTPLTENT: + return &elf_howto_table[(int) R_390_GOTPLTENT]; + case BFD_RELOC_390_PLTOFF16: + return &elf_howto_table[(int) R_390_PLTOFF16]; + case BFD_RELOC_390_PLTOFF32: + return &elf_howto_table[(int) R_390_PLTOFF32]; case BFD_RELOC_VTABLE_INHERIT: return &elf32_s390_vtinherit_howto; case BFD_RELOC_VTABLE_ENTRY: @@ -212,13 +274,13 @@ elf_s390_info_to_howto (abfd, cache_ptr, } } -static boolean +static bfd_boolean elf_s390_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == '.' && (name[1] == 'X' || name[1] == 'L')) - return true; + return TRUE; return _bfd_elf_is_local_label_name (abfd, name); } @@ -411,6 +473,9 @@ struct elf_s390_link_hash_entry /* Track dynamic relocs copied for this symbol. */ struct elf_s390_dyn_relocs *dyn_relocs; + + /* Number of GOTPLT references for a function. */ + bfd_signed_vma gotplt_refcount; }; /* s390 ELF linker hash table. */ @@ -463,6 +528,7 @@ link_hash_newfunc (entry, table, string) eh = (struct elf_s390_link_hash_entry *) entry; eh->dyn_relocs = NULL; + eh->gotplt_refcount = 0; } return entry; @@ -502,7 +568,7 @@ elf_s390_link_hash_table_create (abfd) /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean create_got_section (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -510,7 +576,7 @@ create_got_section (dynobj, info) struct elf_s390_link_hash_table *htab; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; htab = elf_s390_hash_table (info); htab->sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -525,15 +591,15 @@ create_got_section (dynobj, info) | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2)) - return false; - return true; + return FALSE; + return TRUE; } /* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and .rela.bss sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean elf_s390_create_dynamic_sections (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -542,10 +608,10 @@ elf_s390_create_dynamic_sections (dynobj htab = elf_s390_hash_table (info); if (!htab->sgot && !create_got_section (dynobj, info)) - return false; + return FALSE; if (!_bfd_elf_create_dynamic_sections (dynobj, info)) - return false; + return FALSE; htab->splt = bfd_get_section_by_name (dynobj, ".plt"); htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt"); @@ -557,7 +623,7 @@ elf_s390_create_dynamic_sections (dynobj || (!info->shared && !htab->srelbss)) abort (); - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -613,7 +679,7 @@ elf_s390_copy_indirect_symbol (bed, dir, allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean elf_s390_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -626,13 +692,15 @@ elf_s390_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; asection *sreloc; + bfd_signed_vma *local_got_refcounts; if (info->relocateable) - return true; + return TRUE; htab = elf_s390_hash_table (info); symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); + local_got_refcounts = elf_local_got_refcounts (abfd); sreloc = NULL; @@ -649,7 +717,7 @@ elf_s390_check_relocs (abfd, info, sec, (*_bfd_error_handler) (_("%s: bad symbol index: %d"), bfd_archive_filename (abfd), r_symndx); - return false; + return FALSE; } if (r_symndx < symtab_hdr->sh_info) @@ -657,40 +725,34 @@ elf_s390_check_relocs (abfd, info, sec, else h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + /* Create got section and local_got_refcounts array if they + are needed. */ switch (ELF32_R_TYPE (rel->r_info)) { case R_390_GOT12: - case R_390_GOT16: + case R_390_GOT16: case R_390_GOT32: case R_390_GOTENT: - /* This symbol requires a global offset table entry. */ - if (h != NULL) + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLTENT: + if (h == NULL + && local_got_refcounts == NULL) { - h->got.refcount += 1; - } - else - { - bfd_signed_vma *local_got_refcounts; - - /* This is a global offset table entry for a local symbol. */ - local_got_refcounts = elf_local_got_refcounts (abfd); + bfd_size_type size; + + size = symtab_hdr->sh_info; + size *= sizeof (bfd_signed_vma); + local_got_refcounts = ((bfd_signed_vma *) + bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - { - bfd_size_type size; - - size = symtab_hdr->sh_info; - size *= sizeof (bfd_signed_vma); - local_got_refcounts = ((bfd_signed_vma *) - bfd_zalloc (abfd, size)); - if (local_got_refcounts == NULL) - return false; - elf_local_got_refcounts (abfd) = local_got_refcounts; - } - local_got_refcounts[r_symndx] += 1; + return FALSE; + elf_local_got_refcounts (abfd) = local_got_refcounts; } - /* Fall through */ - - case R_390_GOTOFF: + /* Fall through. */ + case R_390_GOTOFF16: + case R_390_GOTOFF32: case R_390_GOTPC: case R_390_GOTPCDBL: if (htab->sgot == NULL) @@ -698,13 +760,35 @@ elf_s390_check_relocs (abfd, info, sec, if (htab->elf.dynobj == NULL) htab->elf.dynobj = abfd; if (!create_got_section (htab->elf.dynobj, info)) - return false; + return FALSE; } + } + + switch (ELF32_R_TYPE (rel->r_info)) + { + case R_390_GOT12: + case R_390_GOT16: + case R_390_GOT32: + case R_390_GOTENT: + /* This symbol requires a global offset table entry. */ + if (h != NULL) + h->got.refcount += 1; + else + local_got_refcounts[r_symndx] += 1; + break; + + case R_390_GOTOFF16: + case R_390_GOTOFF32: + case R_390_GOTPC: + case R_390_GOTPCDBL: + /* Got is created, nothing to be done. */ break; case R_390_PLT16DBL: case R_390_PLT32DBL: case R_390_PLT32: + case R_390_PLTOFF16: + case R_390_PLTOFF32: /* This symbol requires a procedure linkage table entry. We actually build the entry in adjust_dynamic_symbol, because this might be a case of linking PIC code which is @@ -714,11 +798,33 @@ elf_s390_check_relocs (abfd, info, sec, /* If this is a local symbol, we resolve it directly without creating a procedure linkage table entry. */ - if (h == NULL) - continue; + if (h != NULL) + { + h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + h->plt.refcount += 1; + } + break; - h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; - h->plt.refcount += 1; + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLTENT: + /* This symbol requires either a procedure linkage table entry + or an entry in the local got. We actually build the entry + in adjust_dynamic_symbol because whether this is really a + global reference can change and with it the fact if we have + to create a plt entry or a local got entry. To be able to + make a once global symbol a local one we have to keep track + of the number of gotplt references that exist for this + symbol. */ + if (h != NULL) + { + ((struct elf_s390_link_hash_entry *) h)->gotplt_refcount++; + h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + h->plt.refcount += 1; + } + else + local_got_refcounts[r_symndx] += 1; break; case R_390_8: @@ -798,7 +904,7 @@ elf_s390_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; if (strncmp (name, ".rela", 5) != 0 || strcmp (bfd_get_section_name (abfd, sec), @@ -826,7 +932,7 @@ elf_s390_check_relocs (abfd, info, sec, if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; } @@ -847,7 +953,7 @@ elf_s390_check_relocs (abfd, info, sec, s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf_s390_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -860,7 +966,7 @@ elf_s390_check_relocs (abfd, info, sec, p = ((struct elf_s390_dyn_relocs *) bfd_alloc (htab->elf.dynobj, amt)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -881,14 +987,14 @@ elf_s390_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_390_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_390_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; default: @@ -896,7 +1002,7 @@ elf_s390_check_relocs (abfd, info, sec, } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -941,7 +1047,7 @@ elf_s390_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf_s390_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -963,84 +1069,131 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; rel++) - switch (ELF32_R_TYPE (rel->r_info)) - { - case R_390_GOT12: - case R_390_GOT16: - case R_390_GOT32: - case R_390_GOTOFF: - case R_390_GOTPC: - case R_390_GOTPCDBL: - case R_390_GOTENT: - r_symndx = ELF32_R_SYM (rel->r_info); - if (r_symndx >= symtab_hdr->sh_info) - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - if (h->got.refcount > 0) - h->got.refcount -= 1; - } - else if (local_got_refcounts != NULL) - { - if (local_got_refcounts[r_symndx] > 0) - local_got_refcounts[r_symndx] -= 1; - } - break; - - case R_390_8: - case R_390_12: - case R_390_16: - case R_390_32: - case R_390_PC16: - case R_390_PC16DBL: - case R_390_PC32DBL: - case R_390_PC32: - r_symndx = ELF32_R_SYM (rel->r_info); - if (r_symndx >= symtab_hdr->sh_info) - { - struct elf_s390_link_hash_entry *eh; - struct elf_s390_dyn_relocs **pp; - struct elf_s390_dyn_relocs *p; - - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + { + r_symndx = ELF32_R_SYM (rel->r_info); - if (!info->shared && h->plt.refcount > 0) - h->plt.refcount -= 1; + if (r_symndx < symtab_hdr->sh_info) + h = NULL; + else + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - eh = (struct elf_s390_link_hash_entry *) h; + switch (ELF32_R_TYPE (rel->r_info)) + { + case R_390_GOT12: + case R_390_GOT16: + case R_390_GOT32: + case R_390_GOTOFF16: + case R_390_GOTOFF32: + case R_390_GOTPC: + case R_390_GOTPCDBL: + case R_390_GOTENT: + if (h != NULL) + { + if (h->got.refcount > 0) + h->got.refcount -= 1; + } + else if (local_got_refcounts != NULL) + { + if (local_got_refcounts[r_symndx] > 0) + local_got_refcounts[r_symndx] -= 1; + } + break; + + case R_390_PLT16DBL: + case R_390_PLT32DBL: + case R_390_PLT32: + case R_390_PLTOFF16: + case R_390_PLTOFF32: + if (h != NULL) + { + if (h->plt.refcount > 0) + h->plt.refcount -= 1; + } + break; - for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) - if (p->sec == sec) + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLTENT: + if (h != NULL) + { + if (h->plt.refcount > 0) { - if (ELF32_R_TYPE (rel->r_info) == R_390_PC16 - || ELF32_R_TYPE (rel->r_info) == R_390_PC16DBL - || ELF32_R_TYPE (rel->r_info) == R_390_PC32DBL - || ELF32_R_TYPE (rel->r_info) == R_390_PC32) - p->pc_count -= 1; - p->count -= 1; - if (p->count == 0) - *pp = p->next; - break; + ((struct elf_s390_link_hash_entry *) h)->gotplt_refcount--; + h->plt.refcount -= 1; } - } - break; + } + else if (local_got_refcounts != NULL) + { + if (local_got_refcounts[r_symndx] > 0) + local_got_refcounts[r_symndx] -= 1; + } + break; - case R_390_PLT16DBL: - case R_390_PLT32DBL: - case R_390_PLT32: - r_symndx = ELF32_R_SYM (rel->r_info); - if (r_symndx >= symtab_hdr->sh_info) - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - if (h->plt.refcount > 0) - h->plt.refcount -= 1; - } - break; + case R_390_8: + case R_390_12: + case R_390_16: + case R_390_32: + case R_390_PC16: + case R_390_PC16DBL: + case R_390_PC32DBL: + case R_390_PC32: + if (h != NULL) + { + struct elf_s390_link_hash_entry *eh; + struct elf_s390_dyn_relocs **pp; + struct elf_s390_dyn_relocs *p; + + if (!info->shared && h->plt.refcount > 0) + h->plt.refcount -= 1; + + eh = (struct elf_s390_link_hash_entry *) h; + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) + if (p->sec == sec) + { + if (ELF32_R_TYPE (rel->r_info) == R_390_PC16 + || ELF32_R_TYPE (rel->r_info) == R_390_PC16DBL + || ELF32_R_TYPE (rel->r_info) == R_390_PC32DBL + || ELF32_R_TYPE (rel->r_info) == R_390_PC32) + p->pc_count -= 1; + p->count -= 1; + if (p->count == 0) + *pp = p->next; + break; + } + } + break; + + default: + break; + } + } - default: - break; - } + return TRUE; +} - return true; +/* Make sure we emit a GOT entry if the symbol was supposed to have a PLT + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, + or elf_s390_size_dynamic_sections if no dynamic sections will be + created (we're only linking static objects). */ + +static void +elf_s390_adjust_gotplt (h) + struct elf_s390_link_hash_entry *h; +{ + if (h->elf.root.type == bfd_link_hash_warning) + h = (struct elf_s390_link_hash_entry *) h->elf.root.u.i.link; + + if (h->gotplt_refcount <= 0) + return; + + /* We simply add the number of gotplt references to the number + * of got references for this symbol. */ + h->elf.got.refcount += h->gotplt_refcount; + h->gotplt_refcount = -1; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -1049,7 +1202,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf_s390_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1080,9 +1233,10 @@ elf_s390_adjust_dynamic_symbol (info, h) linkage table, and we can just do a PC32 reloc instead. */ h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + elf_s390_adjust_gotplt((struct elf_s390_link_hash_entry *) h); } - return true; + return TRUE; } else /* It's possible that we incorrectly decided a .plt reloc was @@ -1101,7 +1255,7 @@ elf_s390_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1112,18 +1266,18 @@ elf_s390_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* If -z nocopyreloc was given, we won't generate them either. */ if (info->nocopyreloc) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } eh = (struct elf_s390_link_hash_entry *) h; @@ -1139,7 +1293,7 @@ elf_s390_adjust_dynamic_symbol (info, h) if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -1175,7 +1329,7 @@ elf_s390_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1185,7 +1339,7 @@ elf_s390_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* This is the condition under which elf_s390_finish_dynamic_symbol @@ -1202,7 +1356,7 @@ elf_s390_adjust_dynamic_symbol (info, h) /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1213,9 +1367,12 @@ allocate_dynrelocs (h, inf) struct elf_s390_dyn_relocs *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) + /* When warning symbols are created, they **replace** the "real" + entry in the hash table, thus we never get to see the real + symbol in a hash traversal. So look at it now. */ h = (struct elf_link_hash_entry *) h->root.u.i.link; info = (struct bfd_link_info *) inf; @@ -1230,7 +1387,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) @@ -1270,18 +1427,20 @@ allocate_dynrelocs (h, inf) { h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + elf_s390_adjust_gotplt((struct elf_s390_link_hash_entry *) h); } } else { h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + elf_s390_adjust_gotplt((struct elf_s390_link_hash_entry *) h); } if (h->got.refcount > 0) { asection *s; - boolean dyn; + bfd_boolean dyn; /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -1289,7 +1448,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -1304,7 +1463,7 @@ allocate_dynrelocs (h, inf) eh = (struct elf_s390_link_hash_entry *) h; if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* In the shared -Bsymbolic case, discard space allocated for dynamic pc-relative relocs against symbols which turn out to be @@ -1350,7 +1509,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -1371,12 +1530,12 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1399,15 +1558,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf_s390_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -1415,7 +1574,7 @@ elf_s390_size_dynamic_sections (output_b struct elf_s390_link_hash_table *htab; bfd *dynobj; asection *s; - boolean relocs; + bfd_boolean relocs; bfd *ibfd; htab = elf_s390_hash_table (info); @@ -1505,7 +1664,7 @@ elf_s390_size_dynamic_sections (output_b /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -1521,7 +1680,7 @@ elf_s390_size_dynamic_sections (output_b else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0) { if (s->_raw_size != 0 && s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1556,7 +1715,7 @@ elf_s390_size_dynamic_sections (output_b of garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } if (htab->elf.dynamic_sections_created) @@ -1572,7 +1731,7 @@ elf_s390_size_dynamic_sections (output_b if (! info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->splt->_raw_size != 0) @@ -1581,7 +1740,7 @@ elf_s390_size_dynamic_sections (output_b || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -1589,7 +1748,7 @@ elf_s390_size_dynamic_sections (output_b if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -1600,18 +1759,18 @@ elf_s390_size_dynamic_sections (output_b if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* Relocate a 390 ELF section. */ -static boolean +static bfd_boolean elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1631,7 +1790,7 @@ elf_s390_relocate_section (output_bfd, i Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; htab = elf_s390_hash_table (info); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1642,7 +1801,7 @@ elf_s390_relocate_section (output_bfd, i relend = relocs + input_section->reloc_count; for (; rel < relend; rel++) { - int r_type; + unsigned int r_type; reloc_howto_type *howto; unsigned long r_symndx; struct elf_link_hash_entry *h; @@ -1650,25 +1809,27 @@ elf_s390_relocate_section (output_bfd, i asection *sec; bfd_vma off; bfd_vma relocation; - boolean unresolved_reloc; + bfd_boolean unresolved_reloc; bfd_reloc_status_type r; r_type = ELF32_R_TYPE (rel->r_info); if (r_type == (int) R_390_GNU_VTINHERIT || r_type == (int) R_390_GNU_VTENTRY) continue; - if (r_type < 0 || r_type >= (int) R_390_max) + if (r_type >= (int) R_390_max) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = elf_howto_table + r_type; r_symndx = ELF32_R_SYM (rel->r_info); + + /* This is a final link. */ h = NULL; sym = NULL; sec = NULL; - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -1692,7 +1853,7 @@ elf_s390_relocate_section (output_bfd, i relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; relocation = 0; } else @@ -1714,13 +1875,46 @@ elf_s390_relocate_section (output_bfd, i input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } switch (r_type) { + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLTENT: + /* There are three cases for a GOTPLT relocation. 1) The + relocation is against the jump slot entry of a plt that + will get emitted to the output file. 2) The relocation + is against the jump slot of a plt entry that has been + removed. elf_s390_adjust_gotplt has created a GOT entry + as replacement. 3) The relocation is against a local symbol. + Cases 2) and 3) are the same as the GOT relocation code + so we just have to test for case 1 and fall through for + the other two. */ + if (h != NULL && h->plt.offset != (bfd_vma) -1) + { + bfd_vma plt_index; + + /* Calc. index no. + Current offset - size first entry / entry size. */ + plt_index = (h->plt.offset - PLT_FIRST_ENTRY_SIZE) / + PLT_ENTRY_SIZE; + + /* Offset in GOT is PLT index plus GOT headers(3) times 4, + addr & GOT addr. */ + relocation = (plt_index + 3) * GOT_ENTRY_SIZE; + unresolved_reloc = FALSE; + + if (r_type == R_390_GOTPLTENT) + relocation += htab->sgot->output_section->vma; + break; + } + /* Fall through. */ + case R_390_GOT12: case R_390_GOT16: case R_390_GOT32: @@ -1732,7 +1926,7 @@ elf_s390_relocate_section (output_bfd, i if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; dyn = htab->elf.dynamic_sections_created; @@ -1765,7 +1959,7 @@ elf_s390_relocate_section (output_bfd, i } } else - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -1788,7 +1982,7 @@ elf_s390_relocate_section (output_bfd, i { asection *srelgot; Elf_Internal_Rela outrel; - Elf32_External_Rela *loc; + bfd_byte *loc; srelgot = htab->srelgot; if (srelgot == NULL) @@ -1799,8 +1993,8 @@ elf_s390_relocate_section (output_bfd, i + off); outrel.r_info = ELF32_R_INFO (0, R_390_RELATIVE); outrel.r_addend = relocation; - loc = (Elf32_External_Rela *) srelgot->contents; - loc += srelgot->reloc_count++; + loc = srelgot->contents; + loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } @@ -1819,12 +2013,14 @@ elf_s390_relocate_section (output_bfd, i * between the start of the GOT and the symbols entry. We * add the vma of the GOT to get the correct value. */ - if (r_type == R_390_GOTENT) + if ( r_type == R_390_GOTENT + || r_type == R_390_GOTPLTENT) relocation += htab->sgot->output_section->vma; break; - case R_390_GOTOFF: + case R_390_GOTOFF16: + case R_390_GOTOFF32: /* Relocation is relative to the start of the global offset table. */ @@ -1840,7 +2036,7 @@ elf_s390_relocate_section (output_bfd, i case R_390_GOTPCDBL: /* Use global offset table as symbol value. */ relocation = htab->sgot->output_section->vma; - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_390_PLT16DBL: @@ -1866,7 +2062,29 @@ elf_s390_relocate_section (output_bfd, i relocation = (htab->splt->output_section->vma + htab->splt->output_offset + h->plt.offset); - unresolved_reloc = false; + unresolved_reloc = FALSE; + break; + + case R_390_PLTOFF16: + case R_390_PLTOFF32: + /* Relocation is to the entry for this symbol in the + procedure linkage table relative to the start of the GOT. */ + + /* For local symbols or if we didn't make a PLT entry for + this symbol resolve the symbol directly. */ + if ( h == NULL + || h->plt.offset == (bfd_vma) -1 + || htab->splt == NULL) + { + relocation -= htab->sgot->output_section->vma; + break; + } + + relocation = (htab->splt->output_section->vma + + htab->splt->output_offset + + h->plt.offset + - htab->sgot->output_section->vma); + unresolved_reloc = FALSE; break; case R_390_8: @@ -1905,24 +2123,24 @@ elf_s390_relocate_section (output_bfd, i || h->root.type == bfd_link_hash_undefined))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_boolean skip, relocate; asection *sreloc; - Elf32_External_Rela *loc; + bfd_byte *loc; /* When generating a shared object, these relocations are copied into the output file to be resolved at run time. */ - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -1945,7 +2163,7 @@ elf_s390_relocate_section (output_bfd, i else { /* This symbol is local, or marked to become local. */ - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (0, R_390_RELATIVE); outrel.r_addend = relocation + rel->r_addend; } @@ -1954,8 +2172,8 @@ elf_s390_relocate_section (output_bfd, i if (sreloc == NULL) abort (); - loc = (Elf32_External_Rela *) sreloc->contents; - loc += sreloc->reloc_count++; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); /* If this reloc is against an external symbol, we do @@ -2000,7 +2218,7 @@ elf_s390_relocate_section (output_bfd, i symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } @@ -2011,7 +2229,7 @@ elf_s390_relocate_section (output_bfd, i if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } else { @@ -2020,18 +2238,18 @@ elf_s390_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, name, (int) r); - return false; + return FALSE; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -2047,7 +2265,7 @@ elf_s390_finish_dynamic_symbol (output_b bfd_vma plt_index; bfd_vma got_offset; Elf_Internal_Rela rela; - Elf32_External_Rela *loc; + bfd_byte *loc; bfd_vma relative_offset; /* This symbol has an entry in the procedure linkage table. Set @@ -2167,7 +2385,7 @@ elf_s390_finish_dynamic_symbol (output_b + got_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_390_JMP_SLOT); rela.r_addend = 0; - loc = (Elf32_External_Rela *) htab->srelplt->contents + plt_index; + loc = htab->srelplt->contents + plt_index * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) @@ -2184,7 +2402,7 @@ elf_s390_finish_dynamic_symbol (output_b if (h->got.offset != (bfd_vma) -1) { Elf_Internal_Rela rela; - Elf32_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -2221,15 +2439,15 @@ elf_s390_finish_dynamic_symbol (output_b rela.r_addend = 0; } - loc = (Elf32_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { Elf_Internal_Rela rela; - Elf32_External_Rela *loc; + bfd_byte *loc; /* This symbols needs a copy reloc. Set it up. */ @@ -2244,8 +2462,8 @@ elf_s390_finish_dynamic_symbol (output_b + h->root.u.def.section->output_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_390_COPY); rela.r_addend = 0; - loc = (Elf32_External_Rela *) htab->srelbss->contents; - loc += htab->srelbss->reloc_count++; + loc = htab->srelbss->contents; + loc += htab->srelbss->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } @@ -2255,7 +2473,7 @@ elf_s390_finish_dynamic_symbol (output_b || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -2280,7 +2498,7 @@ elf_s390_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf_s390_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2394,17 +2612,17 @@ elf_s390_finish_dynamic_sections (output elf_section_data (htab->sgotplt->output_section) ->this_hdr.sh_entsize = 4; } - return true; + return TRUE; } -static boolean +static bfd_boolean elf_s390_object_p (abfd) bfd *abfd; { return bfd_default_set_arch_mach (abfd, bfd_arch_s390, bfd_mach_s390_31); } -static boolean +static bfd_boolean elf_s390_grok_prstatus (abfd, note) bfd * abfd; Elf_Internal_Note * note; @@ -2415,7 +2633,7 @@ elf_s390_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 224: /* S/390 Linux. */ /* pr_cursig */ diff -uprN binutils-2.13.90.0.16/bfd/elf32-sh.c binutils-2.13.90.0.18/bfd/elf32-sh.c --- binutils-2.13.90.0.16/bfd/elf32-sh.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf32-sh.c Tue Jan 21 10:21:32 2003 @@ -1,23 +1,23 @@ /* Hitachi SH specific support for 32-bit ELF - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Ian Lance Taylor, Cygnus Support. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -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. */ + 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. */ #include "bfd.h" #include "sysdep.h" @@ -34,80 +34,80 @@ static reloc_howto_type *sh_elf_reloc_ty PARAMS ((bfd *, bfd_reloc_code_real_type)); static void sh_elf_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean sh_elf_set_private_flags +static bfd_boolean sh_elf_set_private_flags PARAMS ((bfd *, flagword)); -static boolean sh_elf_copy_private_data +static bfd_boolean sh_elf_copy_private_data PARAMS ((bfd *, bfd *)); -static boolean sh_elf_merge_private_data +static bfd_boolean sh_elf_merge_private_data PARAMS ((bfd *, bfd *)); -static boolean sh_elf_set_mach_from_flags +static bfd_boolean sh_elf_set_mach_from_flags PARAMS ((bfd *)); -static boolean sh_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); -static boolean sh_elf_relax_delete_bytes +static bfd_boolean sh_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean sh_elf_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, int)); -static boolean sh_elf_align_loads - PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, boolean *)); -static boolean sh_elf_swap_insns +static bfd_boolean sh_elf_align_loads + PARAMS ((bfd *, asection *, Elf_Internal_Rela *, bfd_byte *, bfd_boolean *)); +static bfd_boolean sh_elf_swap_insns PARAMS ((bfd *, asection *, PTR, bfd_byte *, bfd_vma)); -static boolean sh_elf_relocate_section +static bfd_boolean sh_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static bfd_byte *sh_elf_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); + bfd_byte *, bfd_boolean, asymbol **)); static void sh_elf_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); static int sh_elf_optimized_tls_reloc PARAMS ((struct bfd_link_info *, int, int)); -static boolean sh_elf_mkobject - PARAMS((bfd *)); -static boolean sh_elf_object_p - PARAMS((bfd *)); -static boolean sh_elf_check_relocs +static bfd_boolean sh_elf_mkobject + PARAMS ((bfd *)); +static bfd_boolean sh_elf_object_p + PARAMS ((bfd *)); +static bfd_boolean sh_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static struct bfd_hash_entry *sh_elf_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *sh_elf_link_hash_table_create PARAMS ((bfd *)); -static boolean sh_elf_adjust_dynamic_symbol +static bfd_boolean sh_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean sh_elf_size_dynamic_sections +static bfd_boolean sh_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean sh_elf_finish_dynamic_symbol +static bfd_boolean sh_elf_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean sh_elf_finish_dynamic_sections +static bfd_boolean sh_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static bfd_reloc_status_type sh_elf_reloc_loop PARAMS ((int, bfd *, asection *, bfd_byte *, bfd_vma, asection *, bfd_vma, bfd_vma)); -static boolean create_got_section - PARAMS((bfd *, struct bfd_link_info *)); -static boolean sh_elf_create_dynamic_sections +static bfd_boolean create_got_section + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean sh_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static bfd_vma dtpoff_base PARAMS ((struct bfd_link_info *)); static asection * sh_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean sh_elf_gc_sweep_hook +static bfd_boolean sh_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean allocate_dynrelocs +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); static enum elf_reloc_type_class sh_elf_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); #ifdef INCLUDE_SHMEDIA inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *)); #endif -static boolean elf32_shlin_grok_prstatus +static bfd_boolean elf32_shlin_grok_prstatus PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static boolean elf32_shlin_grok_psinfo +static bfd_boolean elf32_shlin_grok_psinfo PARAMS ((bfd *abfd, Elf_Internal_Note *note)); /* The name of the dynamic interpreter. This is put in the .interp @@ -122,106 +122,106 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ - /* 32 bit absolute relocation. Setting partial_inplace to true and + /* 32 bit absolute relocation. Setting partial_inplace to TRUE and src_mask to a non-zero value is similar to the COFF toolchain. */ HOWTO (R_SH_DIR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_elf_reloc, /* special_function */ "R_SH_DIR32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative relocation. */ HOWTO (R_SH_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_REL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit PC relative branch divided by 2. */ HOWTO (R_SH_DIR8WPN, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_DIR8WPN", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 12 bit PC relative branch divided by 2. */ HOWTO (R_SH_IND12W, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_elf_reloc, /* special_function */ "R_SH_IND12W", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xfff, /* src_mask */ 0xfff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit unsigned PC relative divided by 4. */ HOWTO (R_SH_DIR8WPL, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_DIR8WPL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit unsigned PC relative divided by 2. */ HOWTO (R_SH_DIR8WPZ, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_DIR8WPZ", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit GBR relative. FIXME: This only makes sense if we have some special symbol for the GBR relative area, and that is not @@ -230,15 +230,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_DIR8BP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit GBR relative divided by 2. FIXME: This only makes sense if we have some special symbol for the GBR relative area, and that @@ -247,15 +247,15 @@ static reloc_howto_type sh_elf_howto_tab 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_DIR8W", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit GBR relative divided by 4. FIXME: This only makes sense if we have some special symbol for the GBR relative area, and that @@ -264,15 +264,15 @@ static reloc_howto_type sh_elf_howto_tab 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_DIR8L", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (10), EMPTY_HOWTO (11), @@ -302,15 +302,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_SWITCH16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 32 bit switch table entry. This is generated for an expression such as ``.long L1 - L2''. The offset holds the difference @@ -319,15 +319,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_SWITCH32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Indicates a .uses pseudo-op. The compiler will generate .uses pseudo-ops when it finds a function call which can be relaxed. @@ -337,15 +337,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_USES", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* The assembler will generate this reloc for addresses referred to by the register loads associated with USES relocs. The offset @@ -355,15 +355,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_COUNT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Indicates an alignment statement. The offset field is the power of 2 to which subsequent portions of the object file must be @@ -372,15 +372,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_ALIGN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* The assembler will generate this reloc before a block of instructions. A section should be processed as assumining it @@ -389,15 +389,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_CODE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* The assembler will generate this reloc after a block of instructions when it sees data that is not instructions. */ @@ -405,15 +405,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_DATA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* The assembler generates this reloc for each label within a block of instructions. This permits the linker to avoid swapping @@ -422,15 +422,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_LABEL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* An 8 bit switch table entry. This is generated for an expression such as ``.word L1 - L2''. The offset holds the difference @@ -439,75 +439,75 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_SWITCH8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_SH_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_SH_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_SH_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_SH_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 8 bit PC relative divided by 2 - but specified in a very odd way. */ HOWTO (R_SH_LOOP_START, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_LOOP_START", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit PC relative divided by 2 - but specified in a very odd way. */ HOWTO (R_SH_LOOP_END, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_LOOP_END", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (38), EMPTY_HOWTO (39), @@ -523,105 +523,105 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR5U", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in SHARI, SHLLI et al. */ HOWTO (R_SH_DIR6U, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR6U", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in BxxI, LDHI.L et al. */ HOWTO (R_SH_DIR6S, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR6S", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in ADDI, ANDI et al. */ HOWTO (R_SH_DIR10S, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 10, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10S", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in LD.UW, ST.W et al. */ HOWTO (R_SH_DIR10SW, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10SW", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_DIR10SL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10SL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_DIR10SQ, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 13, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10SQ", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #else EMPTY_HOWTO (45), @@ -730,113 +730,113 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_GD_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_TLS_LD_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_LD_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_TLS_LDO_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_LDO_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_TLS_IE_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_IE_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_TLS_LE_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_LE_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_TLS_DTPMOD32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_DTPMOD32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_TLS_DTPOFF32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_DTPOFF32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_TLS_TPOFF32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_TLS_TPOFF32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (152), EMPTY_HOWTO (153), @@ -851,127 +851,127 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_GOT32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_PLT32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_PLT32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_SH_COPY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_COPY", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_GLOB_DAT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_GLOB_DAT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_JMP_SLOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_JMP_SLOT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_RELATIVE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_RELATIVE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_GOTOFF, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_GOTOFF", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_GOTPC, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_GOTPC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_SH_GOTPLT32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* */ "R_SH_GOTPLT32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ #ifdef INCLUDE_SHMEDIA /* Used in MOVI and SHORI (x & 65536). */ @@ -979,416 +979,416 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOT_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOT_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOT_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTPLT_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTPLT_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTPLT_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_PLT_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_PLT_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_PLT_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_PLT_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTOFF_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTOFF_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTOFF_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTPC_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTPC_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTPC_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTPC_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_GOT10BY4, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT10BY4", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_GOTPLT10BY4, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT10BY4", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_GOT10BY8, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 13, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT10BY8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_GOTPLT10BY8, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 13, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT10BY8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_COPY64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_COPY64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_GLOB_DAT64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GLOB_DAT64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_JMP_SLOT64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_JMP_SLOT64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_RELATIVE64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_RELATIVE64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (197), EMPTY_HOWTO (198), @@ -1449,15 +1449,15 @@ static reloc_howto_type sh_elf_howto_tab 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf_ignore_reloc, /* special_function */ "R_SH_SHMEDIA_CODE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The assembler will generate this reloc at a PTA or PTB instruction, and the linker checks the right type of target, or changes a PTA to a @@ -1466,195 +1466,195 @@ static reloc_howto_type sh_elf_howto_tab 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 18, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PT_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in unexpanded MOVI. */ HOWTO (R_SH_IMMS16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMMS16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in SHORI. */ HOWTO (R_SH_IMMU16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMMU16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_IMM_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x - $) & 65536). */ HOWTO (R_SH_IMM_LOW16_PCREL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_LOW16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_IMM_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 16) & 65536). */ HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDLOW16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_IMM_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 32) & 65536). */ HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDHI16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_IMM_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 48) & 65536). */ HOWTO (R_SH_IMM_HI16_PCREL, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_HI16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* For the .uaquad pseudo. */ HOWTO (R_SH_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* For the .uaquad pseudo, (x - $). */ HOWTO (R_SH_64_PCREL, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_64_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ #endif }; @@ -2014,32 +2014,32 @@ sh_elf_info_to_howto (abfd, cache_ptr, d values; in coff-sh.c they come from include/coff/sh.h, whereas here they come from enum elf_sh_reloc_type in include/elf/sh.h. */ -static boolean +static bfd_boolean sh_elf_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; - boolean have_code; + bfd_boolean have_code; Elf_Internal_Rela *irel, *irelend; bfd_byte *contents = NULL; Elf_Internal_Sym *isymbuf = NULL; - *again = false; + *again = FALSE; if (link_info->relocateable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) - return true; + return TRUE; #ifdef INCLUDE_SHMEDIA if (elf_section_data (sec)->this_hdr.sh_flags & (SHF_SH5_ISA32 | SHF_SH5_ISA32_MIXED)) { - return true; + return TRUE; } #endif @@ -2056,7 +2056,7 @@ sh_elf_relax_section (abfd, sec, link_in if (internal_relocs == NULL) goto error_return; - have_code = false; + have_code = FALSE; irelend = internal_relocs + sec->reloc_count; for (irel = internal_relocs; irel < irelend; irel++) @@ -2067,7 +2067,7 @@ sh_elf_relax_section (abfd, sec, link_in bfd_signed_vma foff; if (ELF32_R_TYPE (irel->r_info) == (int) R_SH_CODE) - have_code = true; + have_code = TRUE; if (ELF32_R_TYPE (irel->r_info) != (int) R_SH_USES) continue; @@ -2279,7 +2279,7 @@ sh_elf_relax_section (abfd, sec, link_in /* That will change things, so, just in case it permits some other function call to come within range, we should relax again. Note that this is not required, and it may be slow. */ - *again = true; + *again = TRUE; /* Now check whether we got a COUNT reloc. */ if (irelcount >= irelend) @@ -2318,7 +2318,7 @@ sh_elf_relax_section (abfd, sec, link_in byte boundaries. */ if (have_code) { - boolean swapped; + bfd_boolean swapped; /* Get the section contents. */ if (contents == NULL) @@ -2377,7 +2377,7 @@ sh_elf_relax_section (abfd, sec, link_in && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL @@ -2390,14 +2390,14 @@ sh_elf_relax_section (abfd, sec, link_in && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } /* Delete some bytes from a section while relaxing. FIXME: There is a lot of duplication between this function and sh_relax_delete_bytes in coff-sh.c. */ -static boolean +static bfd_boolean sh_elf_relax_delete_bytes (abfd, sec, addr, count) bfd *abfd; asection *sec; @@ -2467,7 +2467,7 @@ sh_elf_relax_delete_bytes (abfd, sec, ad int insn = 0; int off, adjust, oinsn; bfd_signed_vma voff = 0; - boolean overflow; + bfd_boolean overflow; /* Get the new reloc address. */ nraddr = irel->r_offset; @@ -2619,7 +2619,7 @@ sh_elf_relax_delete_bytes (abfd, sec, ad if (adjust != 0) { oinsn = insn; - overflow = false; + overflow = FALSE; switch ((enum elf_sh_reloc_type) ELF32_R_TYPE (irel->r_info)) { default: @@ -2630,14 +2630,14 @@ sh_elf_relax_delete_bytes (abfd, sec, ad case R_SH_DIR8WPZ: insn += adjust / 2; if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr); break; case R_SH_IND12W: insn += adjust / 2; if ((oinsn & 0xf000) != (insn & 0xf000)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr); break; @@ -2651,21 +2651,21 @@ sh_elf_relax_delete_bytes (abfd, sec, ad ++insn; } if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, contents + nraddr); break; case R_SH_SWITCH8: voff += adjust; if (voff < 0 || voff >= 0xff) - overflow = true; + overflow = TRUE; bfd_put_8 (abfd, voff, contents + nraddr); break; case R_SH_SWITCH16: voff += adjust; if (voff < - 0x8000 || voff >= 0x8000) - overflow = true; + overflow = TRUE; bfd_put_signed_16 (abfd, (bfd_vma) voff, contents + nraddr); break; @@ -2685,7 +2685,7 @@ sh_elf_relax_delete_bytes (abfd, sec, ad (_("%s: 0x%lx: fatal: reloc overflow while relaxing"), bfd_archive_filename (abfd), (unsigned long) irel->r_offset)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } @@ -2707,13 +2707,13 @@ sh_elf_relax_delete_bytes (abfd, sec, ad continue; /* We always cache the relocs. Perhaps, if info->keep_memory is - false, we should free them, if we are permitted to, when we + FALSE, we should free them, if we are permitted to, when we leave sh_coff_relax_section. */ internal_relocs = (_bfd_elf32_link_read_relocs (abfd, o, (PTR) NULL, (Elf_Internal_Rela *) NULL, - true)); + TRUE)); if (internal_relocs == NULL) - return false; + return FALSE; ocontents = NULL; irelscanend = internal_relocs + o->reloc_count; @@ -2732,16 +2732,16 @@ sh_elf_relax_delete_bytes (abfd, sec, ad else { /* We always cache the section contents. - Perhaps, if info->keep_memory is false, we + Perhaps, if info->keep_memory is FALSE, we should free them, if we are permitted to, when we leave sh_coff_relax_section. */ ocontents = (bfd_byte *) bfd_malloc (o->_raw_size); if (ocontents == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, o, ocontents, (file_ptr) 0, o->_raw_size)) - return false; + return FALSE; elf_section_data (o)->this_hdr.contents = ocontents; } } @@ -2790,16 +2790,16 @@ sh_elf_relax_delete_bytes (abfd, sec, ad else { /* We always cache the section contents. - Perhaps, if info->keep_memory is false, we + Perhaps, if info->keep_memory is FALSE, we should free them, if we are permitted to, when we leave sh_coff_relax_section. */ ocontents = (bfd_byte *) bfd_malloc (o->_raw_size); if (ocontents == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, o, ocontents, (file_ptr) 0, o->_raw_size)) - return false; + return FALSE; elf_section_data (o)->this_hdr.contents = ocontents; } } @@ -2858,26 +2858,26 @@ sh_elf_relax_delete_bytes (abfd, sec, ad } } - return true; + return TRUE; } /* Look for loads and stores which we can align to four byte boundaries. This is like sh_align_loads in coff-sh.c. */ -static boolean +static bfd_boolean sh_elf_align_loads (abfd, sec, internal_relocs, contents, pswapped) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; Elf_Internal_Rela *internal_relocs; bfd_byte *contents ATTRIBUTE_UNUSED; - boolean *pswapped; + bfd_boolean *pswapped; { Elf_Internal_Rela *irel, *irelend; bfd_vma *labels = NULL; bfd_vma *label, *label_end; bfd_size_type amt; - *pswapped = false; + *pswapped = FALSE; irelend = internal_relocs + sec->reloc_count; @@ -2928,17 +2928,17 @@ sh_elf_align_loads (abfd, sec, internal_ free (labels); - return true; + return TRUE; error_return: if (labels != NULL) free (labels); - return false; + return FALSE; } /* Swap two SH instructions. This is like sh_swap_insns in coff-sh.c. */ -static boolean +static bfd_boolean sh_elf_swap_insns (abfd, sec, relocs, contents, addr) bfd *abfd; asection *sec; @@ -3007,10 +3007,10 @@ sh_elf_swap_insns (abfd, sec, relocs, co { bfd_byte *loc; unsigned short insn, oinsn; - boolean overflow; + bfd_boolean overflow; loc = contents + irel->r_offset; - overflow = false; + overflow = FALSE; switch (type) { default: @@ -3022,7 +3022,7 @@ sh_elf_swap_insns (abfd, sec, relocs, co oinsn = insn; insn += add / 2; if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, loc); break; @@ -3031,7 +3031,7 @@ sh_elf_swap_insns (abfd, sec, relocs, co oinsn = insn; insn += add / 2; if ((oinsn & 0xf000) != (insn & 0xf000)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, loc); break; @@ -3048,7 +3048,7 @@ sh_elf_swap_insns (abfd, sec, relocs, co oinsn = insn; insn += add / 2; if ((oinsn & 0xff00) != (insn & 0xff00)) - overflow = true; + overflow = TRUE; bfd_put_16 (abfd, (bfd_vma) insn, loc); } @@ -3061,12 +3061,12 @@ sh_elf_swap_insns (abfd, sec, relocs, co (_("%s: 0x%lx: fatal: reloc overflow while relaxing"), bfd_archive_filename (abfd), (unsigned long) irel->r_offset)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } } - return true; + return TRUE; } #ifdef INCLUDE_SHMEDIA @@ -3525,8 +3525,8 @@ struct elf_sh_link_hash_entry GOT_UNKNOWN = 0, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE } tls_type; - /* If true, R_SH_TLS_TPOFF32 relocation is generated. */ - boolean tls_tpoff32; + /* If TRUE, R_SH_TLS_TPOFF32 relocation is generated. */ + bfd_boolean tls_tpoff32; }; #define sh_elf_hash_entry(ent) ((struct elf_sh_link_hash_entry *)(ent)) @@ -3548,17 +3548,17 @@ struct sh_elf_obj_tdata /* Override the generic function because we need to store sh_elf_obj_tdata as the specific tdata. */ -static boolean +static bfd_boolean sh_elf_mkobject (abfd) bfd *abfd; { bfd_size_type amt = sizeof (struct sh_elf_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); if (abfd->tdata.any == NULL) - return false; - return true; + return FALSE; + return TRUE; } - + /* sh ELF linker hash table. */ struct elf_sh_link_hash_table @@ -3590,7 +3590,7 @@ struct elf_sh_link_hash_table #define sh_elf_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the sh ELF linker hash table from a link_info structure. */ @@ -3630,7 +3630,7 @@ sh_elf_link_hash_newfunc (entry, table, ret->datalabel_got.refcount = ret->root.got.refcount; #endif ret->tls_type = GOT_UNKNOWN; - ret->tls_tpoff32 = false; + ret->tls_tpoff32 = FALSE; } return (struct bfd_hash_entry *) ret; @@ -3672,7 +3672,7 @@ sh_elf_link_hash_table_create (abfd) /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean create_got_section (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -3680,7 +3680,7 @@ create_got_section (dynobj, info) struct elf_sh_link_hash_table *htab; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; htab = sh_elf_hash_table (info); htab->sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -3698,13 +3698,13 @@ create_got_section (dynobj, info) | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, htab->srelgot, 2)) - return false; - return true; + return FALSE; + return TRUE; } /* Create dynamic sections when linking against a dynamic object. */ -static boolean +static bfd_boolean sh_elf_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3727,7 +3727,7 @@ sh_elf_create_dynamic_sections (abfd, in default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } htab = sh_elf_hash_table (info); @@ -3750,7 +3750,7 @@ sh_elf_create_dynamic_sections (abfd, in if (s == NULL || ! bfd_set_section_flags (abfd, s, pltflags) || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment)) - return false; + return FALSE; if (bed->want_plt_sym) { @@ -3761,9 +3761,9 @@ sh_elf_create_dynamic_sections (abfd, in if (! (_bfd_generic_link_add_one_symbol (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; @@ -3771,7 +3771,7 @@ sh_elf_create_dynamic_sections (abfd, in if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_make_section (abfd, @@ -3780,10 +3780,10 @@ sh_elf_create_dynamic_sections (abfd, in if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; if (! create_got_section (abfd, info)) - return false; + return FALSE; { const char *secname; @@ -3805,7 +3805,7 @@ sh_elf_create_dynamic_sections (abfd, in if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; } } @@ -3821,7 +3821,7 @@ sh_elf_create_dynamic_sections (abfd, in htab->sdynbss = s; if (s == NULL || ! bfd_set_section_flags (abfd, s, SEC_ALLOC)) - return false; + return FALSE; /* The .rel[a].bss section holds copy relocs. This section is not normally needed. We need to create it here, though, so that the @@ -3843,11 +3843,11 @@ sh_elf_create_dynamic_sections (abfd, in if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; } } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -3856,7 +3856,7 @@ sh_elf_create_dynamic_sections (abfd, in change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean sh_elf_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -3903,7 +3903,7 @@ sh_elf_adjust_dynamic_symbol (info, h) h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - return true; + return TRUE; } else h->plt.offset = (bfd_vma) -1; @@ -3917,7 +3917,7 @@ sh_elf_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -3928,18 +3928,18 @@ sh_elf_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* If -z nocopyreloc was given, we won't generate them either. */ if (info->nocopyreloc) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } eh = (struct elf_sh_link_hash_entry *) h; @@ -3956,7 +3956,7 @@ sh_elf_adjust_dynamic_symbol (info, h) if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -3998,7 +3998,7 @@ sh_elf_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -4008,7 +4008,7 @@ sh_elf_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* This is the condition under which sh_elf_finish_dynamic_symbol @@ -4025,7 +4025,7 @@ sh_elf_adjust_dynamic_symbol (info, h) /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -4036,7 +4036,7 @@ allocate_dynrelocs (h, inf) struct elf_sh_dyn_relocs *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) /* When warning symbols are created, they **replace** the "real" @@ -4068,7 +4068,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) @@ -4119,7 +4119,7 @@ allocate_dynrelocs (h, inf) if (h->got.refcount > 0) { asection *s; - boolean dyn; + bfd_boolean dyn; int tls_type = sh_elf_hash_entry (h)->tls_type; /* Make sure this symbol is output as a dynamic symbol. @@ -4128,7 +4128,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -4155,7 +4155,7 @@ allocate_dynrelocs (h, inf) if (eh->datalabel_got.refcount > 0) { asection *s; - boolean dyn; + bfd_boolean dyn; /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -4163,7 +4163,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -4178,7 +4178,7 @@ allocate_dynrelocs (h, inf) #endif if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* In the shared -Bsymbolic case, discard space allocated for dynamic pc-relative relocs against symbols which turn out to be @@ -4227,7 +4227,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -4248,12 +4248,12 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf32_External_Rela); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -4276,15 +4276,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean sh_elf_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -4292,7 +4292,7 @@ sh_elf_size_dynamic_sections (output_bfd struct elf_sh_link_hash_table *htab; bfd *dynobj; asection *s; - boolean relocs; + bfd_boolean relocs; bfd *ibfd; htab = sh_elf_hash_table (info); @@ -4400,7 +4400,7 @@ sh_elf_size_dynamic_sections (output_bfd /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -4416,7 +4416,7 @@ sh_elf_size_dynamic_sections (output_bfd else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0) { if (s->_raw_size != 0 && s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -4451,7 +4451,7 @@ sh_elf_size_dynamic_sections (output_bfd of garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } if (htab->root.dynamic_sections_created) @@ -4467,7 +4467,7 @@ sh_elf_size_dynamic_sections (output_bfd if (! info->shared) { if (! add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->splt->_raw_size != 0) @@ -4476,7 +4476,7 @@ sh_elf_size_dynamic_sections (output_bfd || ! add_dynamic_entry (DT_PLTRELSZ, 0) || ! add_dynamic_entry (DT_PLTREL, DT_RELA) || ! add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -4485,7 +4485,7 @@ sh_elf_size_dynamic_sections (output_bfd || ! add_dynamic_entry (DT_RELASZ, 0) || ! add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -4496,18 +4496,18 @@ sh_elf_size_dynamic_sections (output_bfd if ((info->flags & DF_TEXTREL) != 0) { if (! add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* Relocate an SH ELF section. */ -static boolean +static bfd_boolean sh_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -4586,7 +4586,7 @@ sh_elf_relocate_section (output_bfd, inf && r_type <= (int) R_SH_LAST_INVALID_RELOC_2)) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = sh_elf_howto_table + r_type; @@ -4668,7 +4668,7 @@ sh_elf_relocate_section (output_bfd, inf bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, howto->name); - return false; + return FALSE; } addend = bfd_get_32 (input_bfd, contents + rel->r_offset); @@ -4704,7 +4704,7 @@ sh_elf_relocate_section (output_bfd, inf if (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) { - boolean dyn; + bfd_boolean dyn; dyn = htab->root.dynamic_sections_created; sec = h->root.u.def.section; @@ -4753,6 +4753,13 @@ sh_elf_relocate_section (output_bfd, inf || ((input_section->flags & SEC_DEBUGGING) != 0 && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0))) + /* Dynamic relocs are not propagated for SEC_DEBUGGING + sections because such sections are not SEC_ALLOC and + thus ld.so will not process them. */ + || (sec->output_section == NULL + && ((input_section->flags & SEC_DEBUGGING) != 0 + && (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_DYNAMIC) != 0)) || (sec->output_section == NULL && (sh_elf_hash_entry (h)->tls_type == GOT_TLS_IE || sh_elf_hash_entry (h)->tls_type == GOT_TLS_GD))) @@ -4763,7 +4770,7 @@ sh_elf_relocate_section (output_bfd, inf (_("%s: unresolvable relocation against symbol `%s' from %s section"), bfd_archive_filename (input_bfd), h->root.root.string, bfd_get_section_name (input_bfd, input_section)); - return false; + return FALSE; } else relocation = ((h->root.u.def.value @@ -4789,7 +4796,7 @@ sh_elf_relocate_section (output_bfd, inf input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } @@ -4838,7 +4845,7 @@ sh_elf_relocate_section (output_bfd, inf bfd_archive_filename (input_section->owner), (unsigned long) rel->r_offset)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } relocation -= 4; goto final_link_relocate; @@ -4853,7 +4860,7 @@ sh_elf_relocate_section (output_bfd, inf goto final_link_relocate; #endif bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; case R_SH_DIR32: case R_SH_REL32: @@ -4868,7 +4875,8 @@ sh_elf_relocate_section (output_bfd, inf & ELF_LINK_HASH_DEF_REGULAR) == 0)))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_byte *loc; + bfd_boolean skip, relocate; /* When generating a shared object, these relocations are copied into the output file to be resolved at run @@ -4883,7 +4891,7 @@ sh_elf_relocate_section (output_bfd, inf elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -4894,16 +4902,16 @@ sh_elf_relocate_section (output_bfd, inf BFD_ASSERT (sreloc != NULL); } - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -4925,7 +4933,7 @@ sh_elf_relocate_section (output_bfd, inf && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (0, R_SH_RELATIVE); outrel.r_addend = relocation + bfd_get_32 (input_bfd, @@ -4941,11 +4949,9 @@ sh_elf_relocate_section (output_bfd, inf } } - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); /* If this reloc is against an external symbol, we do not want to fiddle with the addend. Otherwise, we @@ -5008,7 +5014,7 @@ sh_elf_relocate_section (output_bfd, inf if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; #ifdef INCLUDE_SHMEDIA @@ -5099,6 +5105,7 @@ sh_elf_relocate_section (output_bfd, inf if (info->shared) { Elf_Internal_Rela outrel; + bfd_byte *loc; if (srelgot == NULL) { @@ -5112,11 +5119,9 @@ sh_elf_relocate_section (output_bfd, inf + off); outrel.r_info = ELF32_R_INFO (0, R_SH_RELATIVE); outrel.r_addend = relocation; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = srelgot->contents; + loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } #ifdef INCLUDE_SHMEDIA @@ -5266,12 +5271,13 @@ sh_elf_relocate_section (output_bfd, inf unsigned short insn; int indx; Elf_Internal_Rela outrel; + bfd_byte *loc; if (ELF32_R_TYPE (rel->r_info) == R_SH_TLS_GD_32) { /* GD->LE transition: mov.l 1f,r4; mova 2f,r0; mov.l 2f,r1; add r0,r1; - jsr @r1; add r12,r4; bra 3f; nop; .align 2; + jsr @r1; add r12,r4; bra 3f; nop; .align 2; 1: .long x$TLSGD; 2: .long __tls_get_addr@PLT; 3: We change it into: mov.l 1f,r4; stc gbr,r0; add r4,r0; nop; @@ -5351,7 +5357,7 @@ sh_elf_relocate_section (output_bfd, inf elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -5371,12 +5377,10 @@ sh_elf_relocate_section (output_bfd, inf outrel.r_addend = relocation - dtpoff_base (info); else outrel.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); continue; } @@ -5399,7 +5403,7 @@ sh_elf_relocate_section (output_bfd, inf else { Elf_Internal_Rela outrel; - Elf32_External_Rela *loc; + bfd_byte *loc; int dr_type, indx; if (srelgot == NULL) @@ -5419,8 +5423,8 @@ sh_elf_relocate_section (output_bfd, inf else outrel.r_addend = 0; outrel.r_info = ELF32_R_INFO (indx, dr_type); - loc = (Elf32_External_Rela *) srelgot->contents; - loc += srelgot->reloc_count++; + loc = srelgot->contents; + loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); if (r_type == R_SH_TLS_GD_32) @@ -5438,9 +5442,8 @@ sh_elf_relocate_section (output_bfd, inf outrel.r_offset += 4; outrel.r_addend = 0; srelgot->reloc_count++; - loc++; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - loc); + loc += sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } } @@ -5571,7 +5574,7 @@ sh_elf_relocate_section (output_bfd, inf else { Elf_Internal_Rela outrel; - Elf32_External_Rela *loc; + bfd_byte *loc; srelgot = htab->srelgot; if (srelgot == NULL) @@ -5581,8 +5584,8 @@ sh_elf_relocate_section (output_bfd, inf + sgot->output_offset + off); outrel.r_addend = 0; outrel.r_info = ELF32_R_INFO (0, R_SH_TLS_DTPMOD32); - loc = (Elf32_External_Rela *) srelgot->contents; - loc += srelgot->reloc_count++; + loc = srelgot->contents; + loc += srelgot->reloc_count++ * sizeof (Elf32_External_Rela); bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); htab->tls_ldm_got.offset |= 1; } @@ -5597,6 +5600,7 @@ sh_elf_relocate_section (output_bfd, inf { int indx; Elf_Internal_Rela outrel; + bfd_byte *loc; if (sreloc == NULL) { @@ -5607,7 +5611,7 @@ sh_elf_relocate_section (output_bfd, inf elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -5627,12 +5631,10 @@ sh_elf_relocate_section (output_bfd, inf outrel.r_addend = relocation - dtpoff_base (info); else outrel.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); continue; } else @@ -5645,6 +5647,7 @@ sh_elf_relocate_section (output_bfd, inf { int indx; Elf_Internal_Rela outrel; + bfd_byte *loc; if (sreloc == NULL) { @@ -5655,7 +5658,7 @@ sh_elf_relocate_section (output_bfd, inf elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -5675,12 +5678,10 @@ sh_elf_relocate_section (output_bfd, inf outrel.r_addend = relocation - dtpoff_base (info); else outrel.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); continue; } } @@ -5704,21 +5705,21 @@ sh_elf_relocate_section (output_bfd, inf name = (bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name)); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* This is a version of bfd_generic_get_relocated_section_contents @@ -5731,7 +5732,7 @@ sh_elf_get_relocated_section_contents (o struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -5764,7 +5765,7 @@ sh_elf_get_relocated_section_contents (o internal_relocs = (_bfd_elf32_link_read_relocs (input_bfd, input_section, (PTR) NULL, - (Elf_Internal_Rela *) NULL, false)); + (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; @@ -5888,7 +5889,7 @@ sh_elf_gc_mark_hook (sec, info, rel, h, /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean sh_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -6076,7 +6077,7 @@ sh_elf_gc_sweep_hook (abfd, info, sec, r } } - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -6176,7 +6177,7 @@ sh_elf_optimized_tls_reloc (info, r_type Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean sh_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -6201,7 +6202,7 @@ sh_elf_check_relocs (abfd, info, sec, re sreloc = NULL; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -6287,7 +6288,7 @@ sh_elf_check_relocs (abfd, info, sec, re if (dynobj == NULL) htab->root.dynobj = dynobj = abfd; if (! create_got_section (dynobj, info)) - return false; + return FALSE; break; default: @@ -6301,14 +6302,14 @@ sh_elf_check_relocs (abfd, info, sec, re Reconstruct it for later use during GC. */ case R_SH_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_SH_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; force_got: @@ -6345,8 +6346,8 @@ sh_elf_check_relocs (abfd, info, sec, re #ifdef INCLUDE_SHMEDIA if (seen_stt_datalabel) { - struct elf_sh_link_hash_entry *eh = - (struct elf_sh_link_hash_entry *)h; + struct elf_sh_link_hash_entry *eh + = (struct elf_sh_link_hash_entry *) h; eh->datalabel_got.refcount += 1; } @@ -6377,7 +6378,7 @@ sh_elf_check_relocs (abfd, info, sec, re local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; #ifdef INCLUDE_SHMEDIA /* Take care of both the datalabel and codelabel local @@ -6410,7 +6411,7 @@ sh_elf_check_relocs (abfd, info, sec, re (*_bfd_error_handler) (_("%s: `%s' accessed both as normal and thread local symbol"), bfd_archive_filename (abfd), h->root.root.string); - return false; + return FALSE; } } @@ -6539,7 +6540,7 @@ sh_elf_check_relocs (abfd, info, sec, re elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -6558,7 +6559,7 @@ sh_elf_check_relocs (abfd, info, sec, re if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } if (sec->flags & SEC_READONLY) info->flags |= DF_TEXTREL; @@ -6577,7 +6578,7 @@ sh_elf_check_relocs (abfd, info, sec, re s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf_sh_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -6589,7 +6590,7 @@ sh_elf_check_relocs (abfd, info, sec, re bfd_size_type amt = sizeof (*p); p = ((struct elf_sh_dyn_relocs *) bfd_alloc (dynobj, amt)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -6609,7 +6610,7 @@ sh_elf_check_relocs (abfd, info, sec, re { (*_bfd_error_handler) (_("%s: TLS local exec code cannot be linked into shared objects"), bfd_archive_filename (abfd)); - return false; + return FALSE; } if (ELF32_R_TYPE (rel->r_info) == R_SH_TLS_LD_32) @@ -6636,7 +6637,7 @@ sh_elf_check_relocs (abfd, info, sec, re elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -6655,7 +6656,7 @@ sh_elf_check_relocs (abfd, info, sec, re if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; if (sec->flags & SEC_READONLY) @@ -6674,7 +6675,7 @@ sh_elf_check_relocs (abfd, info, sec, re s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf_sh_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -6686,7 +6687,7 @@ sh_elf_check_relocs (abfd, info, sec, re bfd_size_type amt = sizeof (*p); p = ((struct elf_sh_dyn_relocs *) bfd_alloc (dynobj, amt)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -6696,7 +6697,7 @@ sh_elf_check_relocs (abfd, info, sec, re p->count += 1; if (h) - sh_elf_hash_entry (h)->tls_tpoff32 = true; + sh_elf_hash_entry (h)->tls_tpoff32 = TRUE; } break; @@ -6705,11 +6706,11 @@ sh_elf_check_relocs (abfd, info, sec, re } } - return true; + return TRUE; } #ifndef sh_elf_set_mach_from_flags -static boolean +static bfd_boolean sh_elf_set_mach_from_flags (abfd) bfd *abfd; { @@ -6740,16 +6741,16 @@ sh_elf_set_mach_from_flags (abfd) bfd_default_set_arch_mach (abfd, bfd_arch_sh, bfd_mach_sh4); break; default: - return false; + return FALSE; } - return true; + return TRUE; } #endif /* not sh_elf_set_mach_from_flags */ #ifndef sh_elf_set_private_flags /* Function to keep SH specific file flags. */ -static boolean +static bfd_boolean sh_elf_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -6758,7 +6759,7 @@ sh_elf_set_private_flags (abfd, flags) || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; + elf_flags_init (abfd) = TRUE; return sh_elf_set_mach_from_flags (abfd); } #endif /* not sh_elf_set_private_flags */ @@ -6766,14 +6767,14 @@ sh_elf_set_private_flags (abfd, flags) #ifndef sh_elf_copy_private_data /* Copy backend specific data from one object module to another */ -static boolean +static bfd_boolean sh_elf_copy_private_data (ibfd, obfd) bfd * ibfd; bfd * obfd; { if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; return sh_elf_set_private_flags (obfd, elf_elfheader (ibfd)->e_flags); } @@ -6783,7 +6784,7 @@ sh_elf_copy_private_data (ibfd, obfd) /* This routine checks for linking big and little endian objects together, and for linking sh-dsp with sh3e / sh4 objects. */ -static boolean +static bfd_boolean sh_elf_merge_private_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -6791,16 +6792,16 @@ sh_elf_merge_private_data (ibfd, obfd) flagword old_flags, new_flags; if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; if (! elf_flags_init (obfd)) { /* This happens when ld starts out with a 'blank' output file. */ - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = EF_SH1; } old_flags = elf_elfheader (obfd)->e_flags; @@ -6814,7 +6815,7 @@ sh_elf_merge_private_data (ibfd, obfd) EF_SH_HAS_DSP (new_flags) ? "dsp" : "floating point", EF_SH_HAS_DSP (new_flags) ? "floating point" : "dsp"); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } elf_elfheader (obfd)->e_flags = EF_SH_MERGE_MACH (old_flags, new_flags); @@ -6826,29 +6827,29 @@ sh_elf_merge_private_data (ibfd, obfd) as the specific tdata. We set also the machine architecture from flags here. */ -static boolean +static bfd_boolean sh_elf_object_p (abfd) bfd *abfd; { struct sh_elf_obj_tdata *new_tdata; bfd_size_type amt = sizeof (struct sh_elf_obj_tdata); - if (sh_elf_set_mach_from_flags (abfd) == false) - return false; + if (!sh_elf_set_mach_from_flags (abfd)) + return FALSE; /* Allocate our special target data. */ new_tdata = bfd_zalloc (abfd, amt); if (new_tdata == NULL) - return false; + return FALSE; new_tdata->root = *abfd->tdata.elf_obj_data; abfd->tdata.any = new_tdata; - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean sh_elf_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -6870,6 +6871,7 @@ sh_elf_finish_dynamic_symbol (output_bfd bfd_vma plt_index; bfd_vma got_offset; Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -6989,9 +6991,8 @@ sh_elf_finish_dynamic_symbol (output_bfd #ifdef GOT_BIAS rel.r_addend = GOT_BIAS; #endif - bfd_elf32_swap_reloca_out (output_bfd, &rel, - ((Elf32_External_Rela *) srel->contents - + plt_index)); + loc = srel->contents + plt_index * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -7008,6 +7009,7 @@ sh_elf_finish_dynamic_symbol (output_bfd asection *sgot; asection *srel; Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -7043,10 +7045,9 @@ sh_elf_finish_dynamic_symbol (output_bfd rel.r_addend = 0; } - bfd_elf32_swap_reloca_out (output_bfd, &rel, - ((Elf32_External_Rela *) srel->contents - + srel->reloc_count)); - ++srel->reloc_count; + loc = srel->contents; + loc += srel->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); } #ifdef INCLUDE_SHMEDIA @@ -7059,6 +7060,7 @@ sh_elf_finish_dynamic_symbol (output_bfd asection *sgot; asection *srel; Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has a datalabel entry in the global offset table. Set it up. */ @@ -7095,10 +7097,9 @@ sh_elf_finish_dynamic_symbol (output_bfd rel.r_addend = 0; } - bfd_elf32_swap_reloca_out (output_bfd, &rel, - ((Elf32_External_Rela *) srel->contents - + srel->reloc_count)); - ++srel->reloc_count; + loc = srel->contents; + loc += srel->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); } } #endif @@ -7107,6 +7108,7 @@ sh_elf_finish_dynamic_symbol (output_bfd { asection *s; Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -7123,10 +7125,8 @@ sh_elf_finish_dynamic_symbol (output_bfd + h->root.u.def.section->output_offset); rel.r_info = ELF32_R_INFO (h->dynindx, R_SH_COPY); rel.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rel, - ((Elf32_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rel, loc); } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ @@ -7134,12 +7134,12 @@ sh_elf_finish_dynamic_symbol (output_bfd || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean sh_elf_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -7192,7 +7192,7 @@ sh_elf_finish_dynamic_sections (output_b struct elf_link_hash_entry *h; h = elf_link_hash_lookup (&htab->root, name, - false, false, true); + FALSE, FALSE, TRUE); if (h != NULL && (h->other & STO_SH5_ISA32)) { dyn.d_un.d_val |= 1; @@ -7308,7 +7308,7 @@ sh_elf_finish_dynamic_sections (output_b elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; } - return true; + return TRUE; } static enum elf_reloc_type_class @@ -7328,8 +7328,8 @@ sh_elf_reloc_type_class (rela) } } -/* Support for Linux core dump NOTE sections */ -static boolean +/* Support for Linux core dump NOTE sections. */ +static bfd_boolean elf32_shlin_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -7340,7 +7340,7 @@ elf32_shlin_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 168: /* Linux/SH */ /* pr_cursig */ @@ -7361,7 +7361,7 @@ elf32_shlin_grok_prstatus (abfd, note) raw_size, note->descpos + offset); } -static boolean +static bfd_boolean elf32_shlin_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -7369,7 +7369,7 @@ elf32_shlin_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 124: /* Linux/SH elf_prpsinfo */ elf_tdata (abfd)->core_program @@ -7390,7 +7390,7 @@ elf32_shlin_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } #define TARGET_BIG_SYM bfd_elf32_sh_vec @@ -7462,12 +7462,11 @@ elf32_shlin_grok_psinfo (abfd, note) #define ELF_MAXPAGESIZE 0x10000 #undef elf_symbol_leading_char #define elf_symbol_leading_char 0 - +#undef elf32_bed #define elf32_bed elf32_sh_nbsd_bed #include "elf32-target.h" -#undef elf32_bed /* Linux support. */ #undef TARGET_BIG_SYM @@ -7483,13 +7482,9 @@ elf32_shlin_grok_psinfo (abfd, note) #define elf_backend_grok_prstatus elf32_shlin_grok_prstatus #undef elf_backend_grok_psinfo #define elf_backend_grok_psinfo elf32_shlin_grok_psinfo - +#undef elf32_bed #define elf32_bed elf32_sh_lin_bed #include "elf32-target.h" -#undef elf_backend_grok_prstatus -#undef elf_backend_grok_psinfo -#undef elf32_bed - #endif /* INCLUDE_SHMEDIA */ diff -uprN binutils-2.13.90.0.16/bfd/elf32-sh64-com.c binutils-2.13.90.0.18/bfd/elf32-sh64-com.c --- binutils-2.13.90.0.16/bfd/elf32-sh64-com.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf32-sh64-com.c Mon Dec 16 12:22:51 2002 @@ -1,18 +1,18 @@ /* Hitachi SH64-specific support for 32-bit ELF - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. - + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + This file is part of BFD, the Binary File Descriptor library. - + 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. */ @@ -26,7 +26,7 @@ #include "elf/sh.h" #include "../opcodes/sh64-opc.h" -static boolean sh64_address_in_cranges +static bfd_boolean sh64_address_in_cranges PARAMS ((asection *cranges, bfd_vma, sh64_elf_crange *)); /* Ordering functions of a crange, for the qsort and bsearch calls and for @@ -100,7 +100,7 @@ _bfd_sh64_crange_bsearch_cmpl (p1, p2) section. Return FALSE if not found, and TRUE if found, and the region filled into RANGEP if non-NULL. */ -static boolean +static bfd_boolean sh64_address_in_cranges (cranges, addr, rangep) asection *cranges; bfd_vma addr; @@ -113,11 +113,11 @@ sh64_address_in_cranges (cranges, addr, /* If the size is not a multiple of the cranges entry size, then something is badly wrong. */ if ((cranges_size % SH64_CRANGE_SIZE) != 0) - return false; + return FALSE; /* If this section has relocations, then we can't do anything sane. */ if (bfd_get_section_flags (cranges->owner, cranges) & SEC_RELOC) - return false; + return FALSE; /* Has some kind soul (or previous call) left processed, sorted contents for us? */ @@ -130,7 +130,7 @@ sh64_address_in_cranges (cranges, addr, = bfd_malloc (cranges->_cooked_size != 0 ? cranges->_cooked_size : cranges->_raw_size); if (cranges_contents == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (cranges->owner, cranges, cranges_contents, (file_ptr) 0, @@ -183,16 +183,16 @@ sh64_address_in_cranges (cranges, addr, rangep->cr_size = cr_size; rangep->cr_type = cr_type; - return true; + return TRUE; } /* There is a .cranges section, but it does not have a descriptor matching this address. */ - return false; + return FALSE; error_return: free (cranges_contents); - return false; + return FALSE; } /* Determine what ADDR points to in SEC, and fill in a range descriptor in @@ -215,7 +215,7 @@ sh64_get_contents_type (sec, addr, range rangep->cr_type = CRT_NONE; } else - return false; + return FALSE; /* If none of the pertinent bits are set, then it's a SHcompact (or at least not SHmedia). */ @@ -254,7 +254,7 @@ sh64_get_contents_type (sec, addr, range /* This is a simpler exported interface for the benefit of gdb et al. */ -boolean +bfd_boolean sh64_address_is_shmedia (sec, addr) asection *sec; bfd_vma addr; diff -uprN binutils-2.13.90.0.16/bfd/elf32-sh64.c binutils-2.13.90.0.18/bfd/elf32-sh64.c --- binutils-2.13.90.0.16/bfd/elf32-sh64.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf32-sh64.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* Hitachi SH64-specific support for 32-bit ELF - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -37,28 +37,35 @@ struct sh64_find_section_vma_data bfd_vma addr; }; -static boolean sh64_elf_copy_private_data PARAMS ((bfd *, bfd *)); -static boolean sh64_elf_merge_private_data PARAMS ((bfd *, bfd *)); -static boolean sh64_elf_fake_sections PARAMS ((bfd *, Elf_Internal_Shdr *, - asection *)); -static boolean sh64_elf_set_private_flags PARAMS ((bfd *, flagword)); -static boolean sh64_elf_set_mach_from_flags PARAMS ((bfd *)); -static boolean shmedia_prepare_reloc +static bfd_boolean sh64_elf_copy_private_data + PARAMS ((bfd *, bfd *)); +static bfd_boolean sh64_elf_merge_private_data + PARAMS ((bfd *, bfd *)); +static bfd_boolean sh64_elf_fake_sections + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); +static bfd_boolean sh64_elf_set_private_flags + PARAMS ((bfd *, flagword)); +static bfd_boolean sh64_elf_set_mach_from_flags + PARAMS ((bfd *)); +static bfd_boolean shmedia_prepare_reloc PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_byte *, const Elf_Internal_Rela *, bfd_vma *)); -static int sh64_elf_get_symbol_type PARAMS ((Elf_Internal_Sym *, int)); -static boolean sh64_elf_add_symbol_hook +static int sh64_elf_get_symbol_type + PARAMS ((Elf_Internal_Sym *, int)); +static bfd_boolean sh64_elf_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean sh64_elf_link_output_symbol_hook +static bfd_boolean sh64_elf_link_output_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *)); -static boolean sh64_backend_section_from_shdr +static bfd_boolean sh64_backend_section_from_shdr PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); -static void sh64_elf_final_write_processing PARAMS ((bfd *, boolean)); -static boolean sh64_bfd_elf_copy_private_section_data +static void sh64_elf_final_write_processing + PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean sh64_bfd_elf_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); -static void sh64_find_section_for_address PARAMS ((bfd *, asection *, PTR)); +static void sh64_find_section_for_address + PARAMS ((bfd *, asection *, PTR)); /* Let elf32-sh.c handle the "bfd_" definitions, so we only have to intrude with an #ifndef around the function definition. */ @@ -85,9 +92,9 @@ static void sh64_find_section_for_addres sh64_bfd_elf_copy_private_section_data /* This COFF-only function (only compiled with COFF support, making - ELF-only chains problematic) returns true early for SH4, so let's just - define it true here. */ -#define _bfd_sh_align_load_span(a,b,c,d,e,f,g,h,i,j) true + ELF-only chains problematic) returns TRUE early for SH4, so let's just + define it TRUE here. */ +#define _bfd_sh_align_load_span(a,b,c,d,e,f,g,h,i,j) TRUE #define GOT_BIAS (-((long)-32768)) #define INCLUDE_SHMEDIA @@ -96,7 +103,7 @@ static void sh64_find_section_for_addres /* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections, and pass through SHT_SH5_CR_SORTED on a sorted .cranges section. */ -boolean +bfd_boolean sh64_elf_fake_sections (output_bfd, elf_section_hdr, asect) bfd *output_bfd ATTRIBUTE_UNUSED; Elf_Internal_Shdr *elf_section_hdr; @@ -113,10 +120,10 @@ sh64_elf_fake_sections (output_bfd, elf_ SH64_CRANGES_SECTION_NAME) == 0) elf_section_hdr->sh_type = SHT_SH5_CR_SORTED; - return true; + return TRUE; } -static boolean +static bfd_boolean sh64_elf_set_mach_from_flags (abfd) bfd *abfd; { @@ -133,7 +140,7 @@ sh64_elf_set_mach_from_flags (abfd) default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } /* We also need to set SEC_DEBUGGING on an incoming .cranges section. @@ -146,29 +153,29 @@ sh64_elf_set_mach_from_flags (abfd) && ! bfd_set_section_flags (abfd, cranges, bfd_get_section_flags (abfd, cranges) | SEC_DEBUGGING)) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean sh64_elf_copy_private_data (ibfd, obfd) bfd * ibfd; bfd * obfd; { if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; BFD_ASSERT (!elf_flags_init (obfd) || (elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags)); elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; - return true; + return TRUE; } -static boolean +static bfd_boolean sh64_elf_merge_private_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -176,11 +183,11 @@ sh64_elf_merge_private_data (ibfd, obfd) flagword old_flags, new_flags; if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; if (bfd_get_arch_size (ibfd) != bfd_get_arch_size (obfd)) { @@ -198,7 +205,7 @@ sh64_elf_merge_private_data (ibfd, obfd) (*_bfd_error_handler) (msg, bfd_get_filename (ibfd), bfd_get_filename (obfd)); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } old_flags = elf_elfheader (obfd)->e_flags; @@ -206,7 +213,7 @@ sh64_elf_merge_private_data (ibfd, obfd) if (! elf_flags_init (obfd)) { /* This happens when ld starts out with a 'blank' output file. */ - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = old_flags = new_flags; } /* We don't allow linking in non-SH64 code. */ @@ -216,7 +223,7 @@ sh64_elf_merge_private_data (ibfd, obfd) ("%s: uses non-SH64 instructions while previous modules use SH64 instructions", bfd_get_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* I can't think of anything sane other than old_flags being EF_SH5 and @@ -230,7 +237,7 @@ sh64_elf_merge_private_data (ibfd, obfd) We only recognize SHT_SH5_CR_SORTED, on the .cranges section. */ -boolean +bfd_boolean sh64_backend_section_from_shdr (abfd, hdr, name) bfd *abfd; Elf_Internal_Shdr *hdr; @@ -239,13 +246,13 @@ sh64_backend_section_from_shdr (abfd, hd flagword flags = 0; /* We do like MIPS with a bit switch for recognized types, and returning - false for a recognized section type with an unexpected name. Right + FALSE for a recognized section type with an unexpected name. Right now we only have one recognized type, but that might change. */ switch (hdr->sh_type) { case SHT_SH5_CR_SORTED: if (strcmp (name, SH64_CRANGES_SECTION_NAME) != 0) - return false; + return FALSE; /* We set the SEC_SORT_ENTRIES flag so it can be passed on to sh64_elf_fake_sections, keeping SHT_SH5_CR_SORTED if this object @@ -256,20 +263,20 @@ sh64_backend_section_from_shdr (abfd, hd break; default: - return false; + return FALSE; } if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; if (flags && ! bfd_set_section_flags (abfd, hdr->bfd_section, bfd_get_section_flags (abfd, hdr->bfd_section) | flags)) - return false; + return FALSE; - return true; + return TRUE; } /* In contrast to sh64_backend_section_from_shdr, this is called for all @@ -277,7 +284,7 @@ sh64_backend_section_from_shdr (abfd, hd assembling. We need to set up the sh64_elf_section_data (asection *) structure for the SH64 ELF section flags to be copied correctly. */ -boolean +bfd_boolean sh64_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec) bfd *ibfd; asection *isec; @@ -288,10 +295,10 @@ sh64_bfd_elf_copy_private_section_data ( if (ibfd->xvec->flavour != bfd_target_elf_flavour || obfd->xvec->flavour != bfd_target_elf_flavour) - return true; + return TRUE; if (! _bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)) - return false; + return FALSE; sh64_sec_data = sh64_elf_section_data (isec); if (sh64_sec_data == NULL) @@ -299,7 +306,7 @@ sh64_bfd_elf_copy_private_section_data ( sh64_sec_data = bfd_zmalloc (sizeof (struct sh64_section_data)); if (sh64_sec_data == NULL) - return false; + return FALSE; sh64_sec_data->contents_flags = (elf_section_data (isec)->this_hdr.sh_flags @@ -308,12 +315,12 @@ sh64_bfd_elf_copy_private_section_data ( sh64_elf_section_data (osec) = sh64_sec_data; } - return true; + return TRUE; } /* Function to keep SH64 specific file flags. */ -static boolean +static bfd_boolean sh64_elf_set_private_flags (abfd, flags) bfd * abfd; flagword flags; @@ -322,7 +329,7 @@ sh64_elf_set_private_flags (abfd, flags) || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; + elf_flags_init (abfd) = TRUE; return sh64_elf_set_mach_from_flags (abfd); } @@ -357,7 +364,7 @@ sh64_elf_get_symbol_type (elf_sym, type) or the hash entry, alternatively adding the index to Elf_Internal_Sym (not so good). */ -static boolean +static bfd_boolean sh64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -388,13 +395,13 @@ sh64_elf_add_symbol_hook (abfd, info, sy /* Allocation may fail. */ if (dl_name == NULL) - return false; + return FALSE; strcpy (dl_name, *namep); strcat (dl_name, DATALABEL_SUFFIX); h = (struct elf_link_hash_entry *) - bfd_link_hash_lookup (info->hash, dl_name, false, false, false); + bfd_link_hash_lookup (info->hash, dl_name, FALSE, FALSE, FALSE); if (h == NULL) { @@ -404,11 +411,11 @@ sh64_elf_add_symbol_hook (abfd, info, sy if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name, flags, *secp, *valp, - *namep, false, + *namep, FALSE, bed->collect, &bh)) { free (dl_name); - return false; + return FALSE; } h = (struct elf_link_hash_entry *) bh; @@ -431,7 +438,7 @@ sh64_elf_add_symbol_hook (abfd, info, sy (_("%s: encountered datalabel symbol in input"), bfd_get_filename (abfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Now find the hash-table slot for this entry and fill it in. */ @@ -443,7 +450,7 @@ sh64_elf_add_symbol_hook (abfd, info, sy *namep = NULL; } - return true; + return TRUE; } /* This hook function is called before the linker writes out a global @@ -458,7 +465,7 @@ sh64_elf_add_symbol_hook (abfd, info, sy we don't need to look up and make sure to emit the main symbol for each DataLabel symbol. */ -boolean +bfd_boolean sh64_elf_link_output_symbol_hook (abfd, info, cname, sym, input_sec) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -474,14 +481,14 @@ sh64_elf_link_output_symbol_hook (abfd, name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0; } - return true; + return TRUE; } /* Check a SH64-specific reloc and put the value to relocate to into RELOCATION, ready to pass to _bfd_final_link_relocate. Return FALSE if bad value, TRUE if ok. */ -static boolean +static bfd_boolean shmedia_prepare_reloc (info, abfd, input_section, contents, rel, relocation) struct bfd_link_info *info; @@ -520,7 +527,7 @@ shmedia_prepare_reloc (info, abfd, input && ! ((*info->callbacks->reloc_dangerous) (info, msg, abfd, input_section, rel->r_offset))) - return false; + return FALSE; } else { @@ -534,7 +541,7 @@ shmedia_prepare_reloc (info, abfd, input (*_bfd_error_handler) (_("%s: GAS error: unexpected PTB insn with R_SH_PT_16"), bfd_get_filename (input_section->owner)); - return false; + return FALSE; } /* Change the PTA to a PTB, if destination indicates so. */ @@ -567,7 +574,7 @@ shmedia_prepare_reloc (info, abfd, input break; default: - return false; + return FALSE; } disp = (*relocation & 0xf); @@ -584,10 +591,10 @@ shmedia_prepare_reloc (info, abfd, input (_("%s: error: unaligned relocation type %d at %08x reloc %08x\n"), bfd_get_filename (input_section->owner), ELF32_R_TYPE (rel->r_info), (unsigned)rel->r_offset, (unsigned)relocation); - return false; + return FALSE; } - return true; + return TRUE; } /* Helper function to locate the section holding a certain address. This @@ -634,8 +641,8 @@ sh64_find_section_for_address (abfd, sec static void sh64_elf_final_write_processing (abfd, linker) - bfd * abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd *abfd; + bfd_boolean linker ATTRIBUTE_UNUSED; { bfd_vma ld_generated_cranges_size; asection *cranges @@ -758,13 +765,11 @@ sh64_elf_final_write_processing (abfd, l #define ELF_MAXPAGESIZE 0x10000 #undef elf_symbol_leading_char #define elf_symbol_leading_char 0 - +#undef elf32_bed #define elf32_bed elf32_sh64_nbsd_bed #include "elf32-target.h" -#undef elf32_bed - /* Linux support. */ #undef TARGET_BIG_SYM #define TARGET_BIG_SYM bfd_elf32_sh64blin_vec @@ -774,9 +779,8 @@ sh64_elf_final_write_processing (abfd, l #define TARGET_LITTLE_SYM bfd_elf32_sh64lin_vec #undef TARGET_LITTLE_NAME #define TARGET_LITTLE_NAME "elf32-sh64-linux" - +#undef elf32_bed #define elf32_bed elf32_sh64_lin_bed #include "elf32-target.h" -#undef elf32_bed diff -uprN binutils-2.13.90.0.16/bfd/elf32-sparc.c binutils-2.13.90.0.18/bfd/elf32-sparc.c --- binutils-2.13.90.0.16/bfd/elf32-sparc.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/elf32-sparc.c Mon Dec 16 12:22:51 2002 @@ -30,34 +30,35 @@ static reloc_howto_type *elf32_sparc_rel PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf32_sparc_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean elf32_sparc_check_relocs +static bfd_boolean elf32_sparc_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf32_sparc_adjust_dynamic_symbol +static bfd_boolean elf32_sparc_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean elf32_sparc_size_dynamic_sections +static bfd_boolean elf32_sparc_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf32_sparc_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); -static boolean elf32_sparc_relocate_section +static bfd_boolean elf32_sparc_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean elf32_sparc_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf32_sparc_finish_dynamic_symbol +static bfd_boolean elf32_sparc_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_sparc_finish_dynamic_sections +static bfd_boolean elf32_sparc_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf32_sparc_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean elf32_sparc_object_p +static bfd_boolean elf32_sparc_merge_private_bfd_data + PARAMS ((bfd *, bfd *)); +static bfd_boolean elf32_sparc_object_p PARAMS ((bfd *)); static void elf32_sparc_final_write_processing - PARAMS ((bfd *, boolean)); + PARAMS ((bfd *, bfd_boolean)); static enum elf_reloc_type_class elf32_sparc_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); static asection * elf32_sparc_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf32_sparc_gc_sweep_hook +static bfd_boolean elf32_sparc_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -70,72 +71,72 @@ static bfd_reloc_status_type sparc_elf_w reloc_howto_type _bfd_sparc_elf_howto_table[] = { - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_8, 0,0, 8,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_8", false,0,0x000000ff,true), - HOWTO(R_SPARC_16, 0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_32", false,0,0xffffffff,true), - HOWTO(R_SPARC_DISP8, 0,0, 8,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP8", false,0,0x000000ff,true), - HOWTO(R_SPARC_DISP16, 0,1,16,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_DISP32, 0,2,32,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP32", false,0,0xffffffff,true), - HOWTO(R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP30", false,0,0x3fffffff,true), - HOWTO(R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP22", false,0,0x003fffff,true), - HOWTO(R_SPARC_HI22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HI22", false,0,0x003fffff,true), - HOWTO(R_SPARC_22, 0,2,22,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_22", false,0,0x003fffff,true), - HOWTO(R_SPARC_13, 0,2,13,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_13", false,0,0x00001fff,true), - HOWTO(R_SPARC_LO10, 0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LO10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT10, 0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT13, 0,2,13,false,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_GOT13", false,0,0x00001fff,true), - HOWTO(R_SPARC_GOT22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT22", false,0,0x003fffff,true), - HOWTO(R_SPARC_PC10, 0,2,10,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC10", false,0,0x000003ff,true), - HOWTO(R_SPARC_PC22, 10,2,22,true, 0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PC22", false,0,0x003fffff,true), - HOWTO(R_SPARC_WPLT30, 2,2,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WPLT30", false,0,0x3fffffff,true), - HOWTO(R_SPARC_COPY, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_COPY", false,0,0x00000000,true), - HOWTO(R_SPARC_GLOB_DAT, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GLOB_DAT",false,0,0x00000000,true), - HOWTO(R_SPARC_JMP_SLOT, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_SLOT",false,0,0x00000000,true), - HOWTO(R_SPARC_RELATIVE, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_RELATIVE",false,0,0x00000000,true), - HOWTO(R_SPARC_UA32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA32", false,0,0xffffffff,true), - HOWTO(R_SPARC_PLT32, 0,0,00,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT32", false,0,0xffffffff,true), - HOWTO(R_SPARC_HIPLT22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_HIPLT22", false,0,0x00000000,true), - HOWTO(R_SPARC_LOPLT10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_LOPLT10", false,0,0x00000000,true), - HOWTO(R_SPARC_PCPLT32, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PCPLT32", false,0,0x00000000,true), - HOWTO(R_SPARC_PCPLT22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PCPLT22", false,0,0x00000000,true), - HOWTO(R_SPARC_PCPLT10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PCPLT10", false,0,0x00000000,true), - HOWTO(R_SPARC_10, 0,2,10,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_10", false,0,0x000003ff,true), - HOWTO(R_SPARC_11, 0,2,11,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_11", false,0,0x000007ff,true), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_8, 0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_8", FALSE,0,0x000000ff,TRUE), + HOWTO(R_SPARC_16, 0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_16", FALSE,0,0x0000ffff,TRUE), + HOWTO(R_SPARC_32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_32", FALSE,0,0xffffffff,TRUE), + HOWTO(R_SPARC_DISP8, 0,0, 8,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP8", FALSE,0,0x000000ff,TRUE), + HOWTO(R_SPARC_DISP16, 0,1,16,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP16", FALSE,0,0x0000ffff,TRUE), + HOWTO(R_SPARC_DISP32, 0,2,32,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP32", FALSE,0,0xffffffff,TRUE), + HOWTO(R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE), + HOWTO(R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_HI22, 10,2,22,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HI22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_22, 0,2,22,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_13, 0,2,13,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_13", FALSE,0,0x00001fff,TRUE), + HOWTO(R_SPARC_LO10, 0,2,10,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LO10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_GOT10, 0,2,10,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_GOT13, 0,2,13,FALSE,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_GOT13", FALSE,0,0x00001fff,TRUE), + HOWTO(R_SPARC_GOT22, 10,2,22,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_PC10, 0,2,10,TRUE, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_PC22, 10,2,22,TRUE, 0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PC22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_WPLT30, 2,2,30,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WPLT30", FALSE,0,0x3fffffff,TRUE), + HOWTO(R_SPARC_COPY, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_COPY", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_GLOB_DAT, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_JMP_SLOT, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_RELATIVE, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_UA32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA32", FALSE,0,0xffffffff,TRUE), + HOWTO(R_SPARC_PLT32, 0,0,00,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT32", FALSE,0,0xffffffff,TRUE), + HOWTO(R_SPARC_HIPLT22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_HIPLT22", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_LOPLT10, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_LOPLT10", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PCPLT32, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PCPLT32", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PCPLT22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PCPLT22", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PCPLT10, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PCPLT10", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_10, 0,2,10,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_11, 0,2,11,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_11", FALSE,0,0x000007ff,TRUE), /* These are for sparc64 in a 64 bit environment. Values need to be here because the table is indexed by reloc number. */ - HOWTO(R_SPARC_64, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_64", false,0,0x00000000,true), - HOWTO(R_SPARC_OLO10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_OLO10", false,0,0x00000000,true), - HOWTO(R_SPARC_HH22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_HH22", false,0,0x00000000,true), - HOWTO(R_SPARC_HM10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_HM10", false,0,0x00000000,true), - HOWTO(R_SPARC_LM22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_LM22", false,0,0x00000000,true), - HOWTO(R_SPARC_PC_HH22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PC_HH22", false,0,0x00000000,true), - HOWTO(R_SPARC_PC_HM10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PC_HM10", false,0,0x00000000,true), - HOWTO(R_SPARC_PC_LM22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PC_LM22", false,0,0x00000000,true), + HOWTO(R_SPARC_64, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_64", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_OLO10, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_OLO10", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_HH22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_HH22", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_HM10, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_HM10", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_LM22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_LM22", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PC_HH22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PC_HH22", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PC_HM10, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PC_HM10", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PC_LM22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_PC_LM22", FALSE,0,0x00000000,TRUE), /* End sparc64 in 64 bit environment values. The following are for sparc64 in a 32 bit environment. */ - HOWTO(R_SPARC_WDISP16, 2,2,16,true, 0,complain_overflow_signed, sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", false,0,0x00000000,true), - HOWTO(R_SPARC_WDISP19, 2,2,19,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP19", false,0,0x0007ffff,true), - HOWTO(R_SPARC_UNUSED_42, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_UNUSED_42",false,0,0x00000000,true), - HOWTO(R_SPARC_7, 0,2, 7,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_7", false,0,0x0000007f,true), - HOWTO(R_SPARC_5, 0,2, 5,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_5", false,0,0x0000001f,true), - HOWTO(R_SPARC_6, 0,2, 6,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_6", false,0,0x0000003f,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_UA64, 0,0, 0,false,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_UA64", false,0,0x00000000,true), - HOWTO(R_SPARC_UA16, 0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_REV32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_REV32", false,0,0xffffffff,true), + HOWTO(R_SPARC_WDISP16, 2,2,16,TRUE, 0,complain_overflow_signed, sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_WDISP19, 2,2,19,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP19", FALSE,0,0x0007ffff,TRUE), + HOWTO(R_SPARC_UNUSED_42, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_UNUSED_42",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_7, 0,2, 7,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_7", FALSE,0,0x0000007f,TRUE), + HOWTO(R_SPARC_5, 0,2, 5,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_5", FALSE,0,0x0000001f,TRUE), + HOWTO(R_SPARC_6, 0,2, 6,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_6", FALSE,0,0x0000003f,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_UA64, 0,0, 0,FALSE,0,complain_overflow_dont, sparc_elf_notsupported_reloc, "R_SPARC_UA64", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_UA16, 0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA16", FALSE,0,0x0000ffff,TRUE), + HOWTO(R_SPARC_REV32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_REV32", FALSE,0,0xffffffff,TRUE), }; static reloc_howto_type elf32_sparc_vtinherit_howto = - HOWTO (R_SPARC_GNU_VTINHERIT, 0,2,0,false,0,complain_overflow_dont, NULL, "R_SPARC_GNU_VTINHERIT", false,0, 0, false); + HOWTO (R_SPARC_GNU_VTINHERIT, 0,2,0,FALSE,0,complain_overflow_dont, NULL, "R_SPARC_GNU_VTINHERIT", FALSE,0, 0, FALSE); static reloc_howto_type elf32_sparc_vtentry_howto = - HOWTO (R_SPARC_GNU_VTENTRY, 0,2,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_SPARC_GNU_VTENTRY", false,0,0, false); + HOWTO (R_SPARC_GNU_VTENTRY, 0,2,0,FALSE,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_SPARC_GNU_VTENTRY", FALSE,0,0, FALSE); struct elf_reloc_map { bfd_reloc_code_real_type bfd_reloc_val; @@ -351,7 +352,7 @@ sparc_elf_wdisp16_reloc (abfd, allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean elf32_sparc_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -369,7 +370,7 @@ elf32_sparc_check_relocs (abfd, info, se asection *sreloc; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -404,7 +405,7 @@ elf32_sparc_check_relocs (abfd, info, se /* Create the .got section. */ elf_hash_table (info)->dynobj = dynobj = abfd; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; } if (sgot == NULL) @@ -429,7 +430,7 @@ elf32_sparc_check_relocs (abfd, info, se | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } @@ -446,7 +447,7 @@ elf32_sparc_check_relocs (abfd, info, se if (h->dynindx == -1) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } srelgot->_raw_size += sizeof (Elf32_External_Rela); @@ -464,7 +465,7 @@ elf32_sparc_check_relocs (abfd, info, se size *= sizeof (bfd_vma); local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size); if (local_got_offsets == NULL) - return false; + return FALSE; elf_local_got_offsets (abfd) = local_got_offsets; for (i = 0; i < symtab_hdr->sh_info; i++) local_got_offsets[i] = (bfd_vma) -1; @@ -519,7 +520,7 @@ elf32_sparc_check_relocs (abfd, info, se if (h->dynindx == -1) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; @@ -588,7 +589,7 @@ elf32_sparc_check_relocs (abfd, info, se elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -607,7 +608,7 @@ elf32_sparc_check_relocs (abfd, info, se if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } if (sec->flags & SEC_READONLY) info->flags |= DF_TEXTREL; @@ -620,12 +621,12 @@ elf32_sparc_check_relocs (abfd, info, se case R_SPARC_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; case R_SPARC_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; default: @@ -633,7 +634,7 @@ elf32_sparc_check_relocs (abfd, info, se } } - return true; + return TRUE; } static asection * @@ -674,7 +675,7 @@ elf32_sparc_gc_mark_hook (sec, info, rel } /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf32_sparc_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -732,7 +733,7 @@ elf32_sparc_gc_sweep_hook (abfd, info, s break; } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -741,7 +742,7 @@ elf32_sparc_gc_sweep_hook (abfd, info, s change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf32_sparc_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -793,7 +794,7 @@ elf32_sparc_adjust_dynamic_symbol (info, table, and we can just do a WDISP30 reloc instead. */ h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; - return true; + return TRUE; } s = bfd_get_section_by_name (dynobj, ".plt"); @@ -807,7 +808,7 @@ elf32_sparc_adjust_dynamic_symbol (info, if (s->_raw_size >= 0x400000) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* If this symbol is not defined in a regular file, and we are @@ -833,7 +834,7 @@ elf32_sparc_adjust_dynamic_symbol (info, BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf32_External_Rela); - return true; + return TRUE; } /* If this is a weak symbol, and there is a real definition, the @@ -845,7 +846,7 @@ elf32_sparc_adjust_dynamic_symbol (info, || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -856,12 +857,12 @@ elf32_sparc_adjust_dynamic_symbol (info, For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -902,7 +903,7 @@ elf32_sparc_adjust_dynamic_symbol (info, if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -912,19 +913,19 @@ elf32_sparc_adjust_dynamic_symbol (info, /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf32_sparc_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean relplt; + bfd_boolean relplt; dynobj = elf_hash_table (info)->dynobj; BFD_ASSERT (dynobj != NULL); @@ -961,11 +962,11 @@ elf32_sparc_size_dynamic_sections (outpu /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relplt = false; + relplt = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -974,7 +975,7 @@ elf32_sparc_size_dynamic_sections (outpu of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strncmp (name, ".rela", 5) == 0) { @@ -989,12 +990,12 @@ elf32_sparc_size_dynamic_sections (outpu adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { if (strcmp (name, ".rela.plt") == 0) - relplt = true; + relplt = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1022,7 +1023,7 @@ elf32_sparc_size_dynamic_sections (outpu contents to zero. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -1038,7 +1039,7 @@ elf32_sparc_size_dynamic_sections (outpu if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (relplt) @@ -1047,38 +1048,38 @@ elf32_sparc_size_dynamic_sections (outpu || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; if (info->flags & DF_TEXTREL) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } #undef add_dynamic_entry - return true; + return TRUE; } #define SET_SEC_DO_RELAX(section) do { elf_section_data(section)->tdata = (void *)1; } while (0) #define SEC_DO_RELAX(section) (elf_section_data(section)->tdata == (void *)1) -static boolean +static bfd_boolean elf32_sparc_relax_section (abfd, section, link_info, again) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - boolean *again; + bfd_boolean *again; { - *again = false; + *again = FALSE; SET_SEC_DO_RELAX (section); - return true; + return TRUE; } /* This is the condition under which finish_dynamic_symbol will be called @@ -1094,7 +1095,7 @@ elf32_sparc_relax_section (abfd, section /* Relocate a SPARC ELF section. */ -static boolean +static bfd_boolean elf32_sparc_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1118,7 +1119,7 @@ elf32_sparc_relocate_section (output_bfd Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1146,8 +1147,8 @@ elf32_sparc_relocate_section (output_bfd asection *sec; bfd_vma relocation, off; bfd_reloc_status_type r; - boolean is_plt = false; - boolean unresolved_reloc; + bfd_boolean is_plt = FALSE; + bfd_boolean unresolved_reloc; r_type = ELF32_R_TYPE (rel->r_info); @@ -1158,7 +1159,7 @@ elf32_sparc_relocate_section (output_bfd if (r_type < 0 || r_type >= (int) R_SPARC_max_std) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = _bfd_sparc_elf_howto_table + r_type; @@ -1167,7 +1168,7 @@ elf32_sparc_relocate_section (output_bfd h = NULL; sym = NULL; sec = NULL; - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -1191,7 +1192,7 @@ elf32_sparc_relocate_section (output_bfd relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; else relocation = (h->root.u.def.value + sec->output_section->vma @@ -1211,7 +1212,7 @@ elf32_sparc_relocate_section (output_bfd input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; } } @@ -1230,7 +1231,7 @@ elf32_sparc_relocate_section (output_bfd if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; BFD_ASSERT (off != (bfd_vma) -1); @@ -1265,7 +1266,7 @@ elf32_sparc_relocate_section (output_bfd } } else - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -1284,13 +1285,14 @@ elf32_sparc_relocate_section (output_bfd if (info->shared) { - asection *srelgot; + asection *s; Elf_Internal_Rela outrel; + bfd_byte *loc; /* We need to generate a R_SPARC_RELATIVE reloc for the dynamic linker. */ - srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); - BFD_ASSERT (srelgot != NULL); + s = bfd_get_section_by_name (dynobj, ".rela.got"); + BFD_ASSERT (s != NULL); outrel.r_offset = (sgot->output_section->vma + sgot->output_offset @@ -1298,11 +1300,9 @@ elf32_sparc_relocate_section (output_bfd outrel.r_info = ELF32_R_INFO (0, R_SPARC_RELATIVE); outrel.r_addend = relocation; relocation = 0; - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); } bfd_put_32 (output_bfd, relocation, sgot->contents + off); @@ -1347,11 +1347,11 @@ elf32_sparc_relocate_section (output_bfd relocation = (splt->output_section->vma + splt->output_offset + h->plt.offset); - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_type == R_SPARC_PLT32) { r_type = R_SPARC_32; - is_plt = true; + is_plt = TRUE; goto r_sparc_plt32; } break; @@ -1390,7 +1390,8 @@ elf32_sparc_relocate_section (output_bfd && (input_section->flags & SEC_ALLOC)) { Elf_Internal_Rela outrel; - boolean skip, relocate = false; + bfd_byte *loc; + bfd_boolean skip, relocate = FALSE; /* When generating a shared object, these relocations are copied into the output file to be resolved at run @@ -1405,7 +1406,7 @@ elf32_sparc_relocate_section (output_bfd elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -1416,15 +1417,15 @@ elf32_sparc_relocate_section (output_bfd BFD_ASSERT (sreloc != NULL); } - skip = false; + skip = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -1457,7 +1458,7 @@ elf32_sparc_relocate_section (output_bfd FIXME: Add code tracking needed dynamic relocs as e.g. i386 has. */ if (h->dynindx == -1) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; break; } @@ -1501,7 +1502,7 @@ elf32_sparc_relocate_section (output_bfd else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -1519,7 +1520,7 @@ elf32_sparc_relocate_section (output_bfd (_("%s: probably compiled without -fPIC?"), bfd_archive_filename (input_bfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } @@ -1528,11 +1529,9 @@ elf32_sparc_relocate_section (output_bfd } } - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); /* This reloc will be computed at runtime, so there's no need to do anything now. */ @@ -1704,27 +1703,27 @@ elf32_sparc_relocate_section (output_bfd symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf32_sparc_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -1740,6 +1739,7 @@ elf32_sparc_finish_dynamic_symbol (outpu asection *splt; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -1767,9 +1767,9 @@ elf32_sparc_finish_dynamic_symbol (outpu + h->plt.offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_SPARC_JMP_SLOT); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + h->plt.offset / PLT_ENTRY_SIZE - 4)); + loc = srela->contents; + loc += (h->plt.offset / PLT_ENTRY_SIZE - 4) * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -1791,6 +1791,7 @@ elf32_sparc_finish_dynamic_symbol (outpu asection *sgot; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -1826,16 +1827,16 @@ elf32_sparc_finish_dynamic_symbol (outpu bfd_put_32 (output_bfd, (bfd_vma) 0, sgot->contents + (h->got.offset &~ (bfd_vma) 1)); - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + srela->reloc_count)); - ++srela->reloc_count; + loc = srela->contents; + loc += srela->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection *s; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbols needs a copy reloc. Set it up. */ @@ -1850,10 +1851,8 @@ elf32_sparc_finish_dynamic_symbol (outpu + h->root.u.def.section->output_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_SPARC_COPY); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } /* Mark some specially defined symbols as absolute. */ @@ -1862,12 +1861,12 @@ elf32_sparc_finish_dynamic_symbol (outpu || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf32_sparc_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -1894,16 +1893,16 @@ elf32_sparc_finish_dynamic_sections (out { Elf_Internal_Dyn dyn; const char *name; - boolean size; + bfd_boolean size; bfd_elf32_swap_dyn_in (dynobj, dyncon, &dyn); switch (dyn.d_tag) { - case DT_PLTGOT: name = ".plt"; size = false; break; - case DT_PLTRELSZ: name = ".rela.plt"; size = true; break; - case DT_JMPREL: name = ".rela.plt"; size = false; break; - default: name = NULL; size = false; break; + case DT_PLTGOT: name = ".plt"; size = FALSE; break; + case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break; + case DT_JMPREL: name = ".rela.plt"; size = FALSE; break; + default: name = NULL; size = FALSE; break; } if (name != NULL) @@ -1958,7 +1957,7 @@ elf32_sparc_finish_dynamic_sections (out elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; - return true; + return TRUE; } /* Functions for dealing with the e_flags field. @@ -1971,24 +1970,24 @@ elf32_sparc_finish_dynamic_sections (out /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean elf32_sparc_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { - boolean error; + bfd_boolean error; /* FIXME: This should not be static. */ static unsigned long previous_ibfd_e_flags = (unsigned long) -1; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; - error = false; + error = FALSE; if (bfd_get_mach (ibfd) >= bfd_mach_sparc_v9) { - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: compiled for a 64 bit system and target is 32 bit"), bfd_archive_filename (ibfd)); @@ -2006,22 +2005,22 @@ elf32_sparc_merge_private_bfd_data (ibfd (*_bfd_error_handler) (_("%s: linking little endian files with big endian files"), bfd_archive_filename (ibfd)); - error = true; + error = TRUE; } previous_ibfd_e_flags = elf_elfheader (ibfd)->e_flags & EF_SPARC_LEDATA; if (error) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } /* Set the right machine number. */ -static boolean +static bfd_boolean elf32_sparc_object_p (abfd) bfd *abfd; { @@ -2037,7 +2036,7 @@ elf32_sparc_object_p (abfd) return bfd_default_set_arch_mach (abfd, bfd_arch_sparc, bfd_mach_sparc_v8plus); else - return false; + return FALSE; } else if (elf_elfheader (abfd)->e_flags & EF_SPARC_LEDATA) return bfd_default_set_arch_mach (abfd, bfd_arch_sparc, @@ -2052,7 +2051,7 @@ elf32_sparc_object_p (abfd) static void elf32_sparc_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { switch (bfd_get_mach (abfd)) { diff -uprN binutils-2.13.90.0.16/bfd/elf32-v850.c binutils-2.13.90.0.18/bfd/elf32-v850.c --- binutils-2.13.90.0.16/bfd/elf32-v850.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf32-v850.c Mon Dec 16 12:22:52 2002 @@ -35,52 +35,52 @@ static reloc_howto_type *v850_elf_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void v850_elf_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void v850_elf_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static bfd_reloc_status_type v850_elf_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean v850_elf_is_local_label_name +static bfd_boolean v850_elf_is_local_label_name PARAMS ((bfd *, const char *)); -static boolean v850_elf_relocate_section +static bfd_boolean v850_elf_relocate_section PARAMS((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static bfd_reloc_status_type v850_elf_perform_relocation PARAMS ((bfd *, unsigned int, bfd_vma, bfd_byte *)); -static boolean v850_elf_check_relocs +static bfd_boolean v850_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static void remember_hi16s_reloc PARAMS ((bfd *, bfd_vma, bfd_byte *)); static bfd_byte * find_remembered_hi16s_reloc - PARAMS ((bfd_vma, boolean *)); + PARAMS ((bfd_vma, bfd_boolean *)); static bfd_reloc_status_type v850_elf_final_link_relocate PARAMS ((reloc_howto_type *, bfd *, bfd *, asection *, bfd_byte *, bfd_vma, bfd_vma, bfd_vma, struct bfd_link_info *, asection *, int)); -static boolean v850_elf_object_p +static bfd_boolean v850_elf_object_p PARAMS ((bfd *)); -static boolean v850_elf_fake_sections - PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *)); +static bfd_boolean v850_elf_fake_sections + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); static void v850_elf_final_write_processing - PARAMS ((bfd *, boolean)); -static boolean v850_elf_set_private_flags + PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean v850_elf_set_private_flags PARAMS ((bfd *, flagword)); -static boolean v850_elf_merge_private_bfd_data +static bfd_boolean v850_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean v850_elf_print_private_bfd_data +static bfd_boolean v850_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); -static boolean v850_elf_section_from_bfd_section +static bfd_boolean v850_elf_section_from_bfd_section PARAMS ((bfd *, asection *, int *)); static void v850_elf_symbol_processing PARAMS ((bfd *, asymbol *)); -static boolean v850_elf_add_symbol_hook +static bfd_boolean v850_elf_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean v850_elf_link_output_symbol_hook +static bfd_boolean v850_elf_link_output_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *)); -static boolean v850_elf_section_from_shdr +static bfd_boolean v850_elf_section_from_shdr PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); -static boolean v850_elf_gc_sweep_hook +static bfd_boolean v850_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection * v850_elf_gc_mark_hook @@ -89,10 +89,10 @@ static asection * v850_elf_gc_mark_hook Elf_Internal_Sym *)); static bfd_reloc_status_type v850_elf_ignore_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean v850_elf_relax_delete_bytes +static bfd_boolean v850_elf_relax_delete_bytes PARAMS ((bfd *, asection *, bfd_vma, bfd_vma, int)); -static boolean v850_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); +static bfd_boolean v850_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); /* Note: It is REQUIRED that the 'type' value of each entry in this array match the index of the entry in the array. */ @@ -103,375 +103,375 @@ static reloc_howto_type v850_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_V850_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A PC relative 9 bit branch. */ HOWTO (R_V850_9_PCREL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_9_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ffffff, /* src_mask */ 0x00ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A PC relative 22 bit branch. */ HOWTO (R_V850_22_PCREL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 22, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 7, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_22_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x07ffff80, /* src_mask */ 0x07ffff80, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* High 16 bits of symbol value. */ HOWTO (R_V850_HI16_S, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_HI16_S", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of symbol value. */ HOWTO (R_V850_HI16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of symbol value. */ HOWTO (R_V850_LO16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Simple 32bit reloc. */ HOWTO (R_V850_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Simple 16bit reloc. */ HOWTO (R_V850_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_V850_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Simple 8bit reloc. */ HOWTO (R_V850_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_V850_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xff, /* src_mask */ 0xff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit offset from the short data area pointer. */ HOWTO (R_V850_SDA_16_16_OFFSET, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_SDA_16_16_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 15 bit offset from the short data area pointer. */ HOWTO (R_V850_SDA_15_16_OFFSET, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 1, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_SDA_15_16_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfffe, /* src_mask */ 0xfffe, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit offset from the zero data area pointer. */ HOWTO (R_V850_ZDA_16_16_OFFSET, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_ZDA_16_16_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 15 bit offset from the zero data area pointer. */ HOWTO (R_V850_ZDA_15_16_OFFSET, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 1, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_ZDA_15_16_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfffe, /* src_mask */ 0xfffe, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 6 bit offset from the tiny data area pointer. */ HOWTO (R_V850_TDA_6_8_OFFSET, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 1, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_TDA_6_8_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x7e, /* src_mask */ 0x7e, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 8 bit offset from the tiny data area pointer. */ HOWTO (R_V850_TDA_7_8_OFFSET, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_TDA_7_8_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x7f, /* src_mask */ 0x7f, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 7 bit offset from the tiny data area pointer. */ HOWTO (R_V850_TDA_7_7_OFFSET, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 7, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_TDA_7_7_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x7f, /* src_mask */ 0x7f, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit offset from the tiny data area pointer! */ HOWTO (R_V850_TDA_16_16_OFFSET, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_TDA_16_16_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xfff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 5 bit offset from the tiny data area pointer. */ HOWTO (R_V850_TDA_4_5_OFFSET, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_TDA_4_5_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0f, /* src_mask */ 0x0f, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 4 bit offset from the tiny data area pointer. */ HOWTO (R_V850_TDA_4_4_OFFSET, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 4, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_TDA_4_4_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0f, /* src_mask */ 0x0f, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit offset from the short data area pointer. */ HOWTO (R_V850_SDA_16_16_SPLIT_OFFSET, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_SDA_16_16_SPLIT_OFFSET",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfffe0020, /* src_mask */ 0xfffe0020, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit offset from the zero data area pointer. */ HOWTO (R_V850_ZDA_16_16_SPLIT_OFFSET, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_ZDA_16_16_SPLIT_OFFSET",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xfffe0020, /* src_mask */ 0xfffe0020, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 6 bit offset from the call table base pointer. */ HOWTO (R_V850_CALLT_6_7_OFFSET, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 7, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_CALLT_6_7_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3f, /* src_mask */ 0x3f, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit offset from the call table base pointer. */ HOWTO (R_V850_CALLT_16_16_OFFSET, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ v850_elf_reloc, /* special_function */ "R_V850_CALLT_16_16_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_V850_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_V850_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_V850_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_V850_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Indicates a .longcall pseudo-op. The compiler will generate a .longcall pseudo-op when it finds a function call which can be relaxed. */ @@ -479,15 +479,15 @@ static reloc_howto_type v850_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ v850_elf_ignore_reloc, /* special_function */ "R_V850_LONGCALL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Indicates a .longjump pseudo-op. The compiler will generate a .longjump pseudo-op when it finds a branch which can be relaxed. */ @@ -495,29 +495,29 @@ static reloc_howto_type v850_elf_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ v850_elf_ignore_reloc, /* special_function */ "R_V850_LONGJUMP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_V850_ALIGN, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ v850_elf_ignore_reloc, /* special_function */ "R_V850_ALIGN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ }; /* Map BFD reloc types to V850 ELF reloc types. */ @@ -567,8 +567,8 @@ static const struct v850_elf_reloc_map v static reloc_howto_type * v850_elf_reloc_type_lookup (abfd, code) - bfd * abfd ATTRIBUTE_UNUSED; - bfd_reloc_code_real_type code; + bfd *abfd ATTRIBUTE_UNUSED; + bfd_reloc_code_real_type code; { unsigned int i; @@ -589,9 +589,9 @@ v850_elf_reloc_type_lookup (abfd, code) static void v850_elf_info_to_howto_rel (abfd, cache_ptr, dst) - bfd * abfd ATTRIBUTE_UNUSED; - arelent * cache_ptr; - Elf32_Internal_Rel * dst; + bfd *abfd ATTRIBUTE_UNUSED; + arelent *cache_ptr; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -603,9 +603,9 @@ v850_elf_info_to_howto_rel (abfd, cache_ /* Set the howto pointer for a V850 ELF reloc (type RELA). */ static void v850_elf_info_to_howto_rela (abfd, cache_ptr, dst) - bfd * abfd ATTRIBUTE_UNUSED; - arelent * cache_ptr; - Elf32_Internal_Rela *dst; + bfd *abfd ATTRIBUTE_UNUSED; + arelent * cache_ptr; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -618,14 +618,14 @@ v850_elf_info_to_howto_rela (abfd, cache allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean v850_elf_check_relocs (abfd, info, sec, relocs) - bfd * abfd; - struct bfd_link_info * info; - asection * sec; - const Elf_Internal_Rela * relocs; + bfd *abfd; + struct bfd_link_info *info; + asection *sec; + const Elf_Internal_Rela *relocs; { - boolean ret = true; + bfd_boolean ret = TRUE; bfd *dynobj; Elf_Internal_Shdr *symtab_hdr; struct elf_link_hash_entry **sym_hashes; @@ -637,7 +637,7 @@ v850_elf_check_relocs (abfd, info, sec, const char *common = (const char *)0; if (info->relocateable) - return true; + return TRUE; #ifdef DEBUG fprintf (stderr, "v850_elf_check_relocs called for section %s in %s\n", @@ -683,14 +683,14 @@ v850_elf_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_V850_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_V850_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; case R_V850_SDA_16_16_SPLIT_OFFSET: @@ -756,7 +756,7 @@ v850_elf_check_relocs (abfd, info, sec, bfd_set_error (bfd_error_bad_value); h->other |= V850_OTHER_ERROR; - ret = false; + ret = FALSE; } } @@ -788,7 +788,7 @@ v850_elf_check_relocs (abfd, info, sec, more than once, as the second attempted retry failed. In the current version, the entry is not deleted, instead we set - the field 'found' to true. If a second lookup matches the same + the field 'found' to TRUE. If a second lookup matches the same entry, then we know that the hi16s reloc has already been updated and does not need to be updated a second time. @@ -798,23 +798,23 @@ v850_elf_check_relocs (abfd, info, sec, typedef struct hi16s_location { - bfd_vma addend; - bfd_byte * address; + bfd_vma addend; + bfd_byte *address; unsigned long counter; - boolean found; - struct hi16s_location * next; + bfd_boolean found; + struct hi16s_location *next; } hi16s_location; -static hi16s_location * previous_hi16s; -static hi16s_location * free_hi16s; -static unsigned long hi16s_counter; +static hi16s_location *previous_hi16s; +static hi16s_location *free_hi16s; +static unsigned long hi16s_counter; static void remember_hi16s_reloc (abfd, addend, address) - bfd * abfd; - bfd_vma addend; - bfd_byte * address; + bfd *abfd; + bfd_vma addend; + bfd_byte *address; { hi16s_location * entry = NULL; bfd_size_type amt = sizeof (* free_hi16s); @@ -829,7 +829,7 @@ remember_hi16s_reloc (abfd, addend, addr entry->addend = addend; entry->address = address; entry->counter = hi16s_counter ++; - entry->found = false; + entry->found = FALSE; entry->next = previous_hi16s; previous_hi16s = entry; @@ -848,14 +848,14 @@ remember_hi16s_reloc (abfd, addend, addr static bfd_byte * find_remembered_hi16s_reloc (addend, already_found) - bfd_vma addend; - boolean * already_found; + bfd_vma addend; + bfd_boolean *already_found; { - hi16s_location * match = NULL; - hi16s_location * entry; - hi16s_location * previous = NULL; - hi16s_location * prev; - bfd_byte * addr; + hi16s_location *match = NULL; + hi16s_location *entry; + hi16s_location *previous = NULL; + hi16s_location *prev; + bfd_byte *addr; /* Search the table. Record the most recent entry that matches. */ for (entry = previous_hi16s; entry; entry = entry->next) @@ -881,7 +881,7 @@ find_remembered_hi16s_reloc (addend, alr * already_found = match->found; /* Note that this entry has now been used. */ - match->found = true; + match->found = TRUE; return addr; } @@ -1107,8 +1107,8 @@ v850_elf_perform_relocation (abfd, r_typ || (OVERFLOWS (addend, insn) && ((! BIT15_SET (insn)) || (BIT15_SET (addend))))) { - boolean already_updated; - bfd_byte * hi16s_address = find_remembered_hi16s_reloc + bfd_boolean already_updated; + bfd_byte *hi16s_address = find_remembered_hi16s_reloc (addend, & already_updated); /* Amend the matching HI16_S relocation. */ @@ -1308,13 +1308,13 @@ v850_elf_perform_relocation (abfd, r_typ static bfd_reloc_status_type v850_elf_reloc (abfd, reloc, symbol, data, isection, obfd, err) - bfd * abfd ATTRIBUTE_UNUSED; - arelent * reloc; - asymbol * symbol; - PTR data ATTRIBUTE_UNUSED; - asection * isection; - bfd * obfd; - char ** err ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; + arelent *reloc; + asymbol *symbol; + PTR data ATTRIBUTE_UNUSED; + asection *isection; + bfd *obfd; + char **err ATTRIBUTE_UNUSED; { long relocation; @@ -1347,7 +1347,7 @@ v850_elf_reloc (abfd, reloc, symbol, dat /* Work out which section the relocation is targetted at and the initial relocation command value. */ - if (reloc->howto->pc_relative == true) + if (reloc->howto->pc_relative) return bfd_reloc_ok; /* Get symbol value. (Common symbols are special.) */ @@ -1395,13 +1395,13 @@ v850_elf_reloc (abfd, reloc, symbol, dat static bfd_reloc_status_type v850_elf_ignore_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd, error_message) - bfd * abfd ATTRIBUTE_UNUSED; - arelent * reloc_entry; - asymbol * symbol ATTRIBUTE_UNUSED; - PTR data ATTRIBUTE_UNUSED; - asection * input_section; - bfd * output_bfd; - char ** error_message ATTRIBUTE_UNUSED; + bfd *abfd ATTRIBUTE_UNUSED; + arelent *reloc_entry; + asymbol *symbol ATTRIBUTE_UNUSED; + PTR data ATTRIBUTE_UNUSED; + asection *input_section; + bfd *output_bfd; + char **error_message ATTRIBUTE_UNUSED; { if (output_bfd != NULL) reloc_entry->address += input_section->output_offset; @@ -1409,10 +1409,10 @@ v850_elf_ignore_reloc (abfd, reloc_entry return bfd_reloc_ok; } -static boolean +static bfd_boolean v850_elf_is_local_label_name (abfd, name) - bfd * abfd ATTRIBUTE_UNUSED; - const char * name; + bfd *abfd ATTRIBUTE_UNUSED; + const char *name; { return ( (name[0] == '.' && (name[1] == 'L' || name[1] == '.')) || (name[0] == '_' && name[1] == '.' && name[2] == 'L' && name[3] == '_')); @@ -1429,20 +1429,20 @@ static bfd_reloc_status_type v850_elf_final_link_relocate (howto, input_bfd, output_bfd, input_section, contents, offset, value, addend, info, sym_sec, is_local) - reloc_howto_type * howto; - bfd * input_bfd; - bfd * output_bfd ATTRIBUTE_UNUSED; - asection * input_section; - bfd_byte * contents; - bfd_vma offset; - bfd_vma value; - bfd_vma addend; - struct bfd_link_info * info; - asection * sym_sec; - int is_local ATTRIBUTE_UNUSED; + reloc_howto_type *howto; + bfd *input_bfd; + bfd *output_bfd ATTRIBUTE_UNUSED; + asection *input_section; + bfd_byte *contents; + bfd_vma offset; + bfd_vma value; + bfd_vma addend; + struct bfd_link_info *info; + asection *sym_sec; + int is_local ATTRIBUTE_UNUSED; { - unsigned int r_type = howto->type; - bfd_byte * hit_data = contents + offset; + unsigned int r_type = howto->type; + bfd_byte *hit_data = contents + offset; /* Adjust the value according to the relocation. */ switch (r_type) @@ -1494,7 +1494,7 @@ v850_elf_final_link_relocate (howto, inp return bfd_reloc_undefined; /* Get the value of __gp. */ - h = bfd_link_hash_lookup (info->hash, "__gp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "__gp", FALSE, FALSE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) return bfd_reloc_gp_not_found; @@ -1519,7 +1519,7 @@ v850_elf_final_link_relocate (howto, inp struct bfd_link_hash_entry * h; /* Get the value of __ep. */ - h = bfd_link_hash_lookup (info->hash, "__ep", false, false, true); + h = bfd_link_hash_lookup (info->hash, "__ep", FALSE, FALSE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) return bfd_reloc_ep_not_found; @@ -1538,7 +1538,7 @@ v850_elf_final_link_relocate (howto, inp struct bfd_link_hash_entry * h; /* Get the value of __ctbp. */ - h = bfd_link_hash_lookup (info->hash, "__ctbp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "__ctbp", FALSE, FALSE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) return bfd_reloc_ctbp_not_found; @@ -1559,7 +1559,7 @@ v850_elf_final_link_relocate (howto, inp return bfd_reloc_undefined; /* Get the value of __ctbp. */ - h = bfd_link_hash_lookup (info->hash, "__ctbp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "__ctbp", FALSE, FALSE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL || h->type != bfd_link_hash_defined) return bfd_reloc_ctbp_not_found; @@ -1591,25 +1591,25 @@ v850_elf_final_link_relocate (howto, inp /* Relocate an V850 ELF section. */ -static boolean +static bfd_boolean v850_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) - bfd * output_bfd; - struct bfd_link_info * info; - bfd * input_bfd; - asection * input_section; - bfd_byte * contents; - Elf_Internal_Rela * relocs; - Elf_Internal_Sym * local_syms; - asection ** local_sections; -{ - Elf_Internal_Shdr * symtab_hdr; - struct elf_link_hash_entry ** sym_hashes; - Elf_Internal_Rela * rel; - Elf_Internal_Rela * relend; + bfd *output_bfd; + struct bfd_link_info *info; + bfd *input_bfd; + asection *input_section; + bfd_byte *contents; + Elf_Internal_Rela *relocs; + Elf_Internal_Sym *local_syms; + asection **local_sections; +{ + Elf_Internal_Shdr *symtab_hdr; + struct elf_link_hash_entry **sym_hashes; + Elf_Internal_Rela *rel; + Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -1620,7 +1620,7 @@ v850_elf_relocate_section (output_bfd, i (info, "no hash table available", NULL, input_bfd, input_section, (bfd_vma) 0); - return false; + return FALSE; } /* Reset the list of remembered HI16S relocs to empty. */ @@ -1632,14 +1632,14 @@ v850_elf_relocate_section (output_bfd, i relend = relocs + input_section->reloc_count; for (; rel < relend; rel++) { - int r_type; - reloc_howto_type * howto; - unsigned long r_symndx; - Elf_Internal_Sym * sym; - asection * sec; - struct elf_link_hash_entry * h; - bfd_vma relocation; - bfd_reloc_status_type r; + int r_type; + reloc_howto_type *howto; + unsigned long r_symndx; + Elf_Internal_Sym *sym; + asection *sec; + struct elf_link_hash_entry *h; + bfd_vma relocation; + bfd_reloc_status_type r; r_symndx = ELF32_R_SYM (rel->r_info); r_type = ELF32_R_TYPE (rel->r_info); @@ -1702,8 +1702,8 @@ v850_elf_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; #if 0 fprintf (stderr, "unknown: name: %s\n", h->root.root.string); #endif @@ -1739,14 +1739,14 @@ v850_elf_relocate_section (output_bfd, i if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; case bfd_reloc_undefined: if (! ((*info->callbacks->undefined_symbol) (info, name, input_bfd, input_section, - rel->r_offset, true))) - return false; + rel->r_offset, TRUE))) + return FALSE; break; case bfd_reloc_outofrange: @@ -1781,16 +1781,16 @@ v850_elf_relocate_section (output_bfd, i if (!((*info->callbacks->warning) (info, msg, name, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; break; } } } - return true; + return TRUE; } -static boolean +static bfd_boolean v850_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1798,7 +1798,7 @@ v850_elf_gc_sweep_hook (abfd, info, sec, const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* No got and plt entries for v850-elf. */ - return true; + return TRUE; } static asection * @@ -1840,7 +1840,7 @@ v850_elf_gc_mark_hook (sec, info, rel, h /* Set the right machine number. */ -static boolean +static bfd_boolean v850_elf_object_p (abfd) bfd *abfd; { @@ -1854,21 +1854,21 @@ v850_elf_object_p (abfd) bfd_default_set_arch_mach (abfd, bfd_arch_v850, bfd_mach_v850e); break; } - return true; + return TRUE; } /* Store the machine number in the flags field. */ static void v850_elf_final_write_processing (abfd, linker) - bfd * abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd *abfd; + bfd_boolean linker ATTRIBUTE_UNUSED; { unsigned long val; switch (bfd_get_mach (abfd)) { - default: + default: case bfd_mach_v850: val = E_V850_ARCH; break; case bfd_mach_v850e: val = E_V850E_ARCH; break; } @@ -1879,32 +1879,32 @@ v850_elf_final_write_processing (abfd, l /* Function to keep V850 specific file flags. */ -static boolean +static bfd_boolean v850_elf_set_private_flags (abfd, flags) - bfd * abfd; + bfd *abfd; flagword flags; { BFD_ASSERT (!elf_flags_init (abfd) || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean v850_elf_merge_private_bfd_data (ibfd, obfd) - bfd * ibfd; - bfd * obfd; + bfd *ibfd; + bfd *obfd; { flagword out_flags; flagword in_flags; if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; @@ -1918,36 +1918,36 @@ v850_elf_merge_private_bfd_data (ibfd, o unitialised values, which surprise surprise, correspond to the default values. */ if (bfd_get_arch_info (ibfd)->the_default) - return true; + return TRUE; - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = in_flags; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) && bfd_get_arch_info (obfd)->the_default) return bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd)); - return true; + return TRUE; } /* Check flag compatibility. */ if (in_flags == out_flags) - return true; + return TRUE; if ((in_flags & EF_V850_ARCH) != (out_flags & EF_V850_ARCH) && (in_flags & EF_V850_ARCH) != E_V850_ARCH) _bfd_error_handler (_("%s: Architecture mismatch with previous modules"), bfd_archive_filename (ibfd)); - return true; + return TRUE; } /* Display the flags field. */ -static boolean +static bfd_boolean v850_elf_print_private_bfd_data (abfd, ptr) - bfd * abfd; - PTR ptr; + bfd *abfd; + PTR ptr; { FILE * file = (FILE *) ptr; @@ -1967,7 +1967,7 @@ v850_elf_print_private_bfd_data (abfd, p fputc ('\n', file); - return true; + return TRUE; } /* V850 ELF uses four common sections. One is the usual one, and the @@ -1990,11 +1990,11 @@ static asymbol * v850_elf_zcom_symbol_pt /* Given a BFD section, try to locate the corresponding ELF section index. */ -static boolean +static bfd_boolean v850_elf_section_from_bfd_section (abfd, sec, retval) - bfd * abfd ATTRIBUTE_UNUSED; - asection * sec; - int * retval; + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec; + int *retval; { if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0) *retval = SHN_V850_SCOMMON; @@ -2003,17 +2003,17 @@ v850_elf_section_from_bfd_section (abfd, else if (strcmp (bfd_get_section_name (abfd, sec), ".zcommon") == 0) *retval = SHN_V850_ZCOMMON; else - return false; + return FALSE; - return true; + return TRUE; } /* Handle the special V850 section numbers that a symbol may use. */ static void v850_elf_symbol_processing (abfd, asym) - bfd * abfd; - asymbol * asym; + bfd *abfd; + asymbol *asym; { elf_symbol_type * elfsym = (elf_symbol_type *) asym; unsigned int indx; @@ -2106,15 +2106,15 @@ v850_elf_symbol_processing (abfd, asym) /* Hook called by the linker routine which adds symbols from an object file. We must handle the special v850 section numbers here. */ -static boolean +static bfd_boolean v850_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) - bfd * abfd; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - const Elf_Internal_Sym * sym; - const char ** namep ATTRIBUTE_UNUSED; - flagword * flagsp ATTRIBUTE_UNUSED; - asection ** secp; - bfd_vma * valp; + bfd *abfd; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + const Elf_Internal_Sym *sym; + const char **namep ATTRIBUTE_UNUSED; + flagword *flagsp ATTRIBUTE_UNUSED; + asection **secp; + bfd_vma *valp; { unsigned int indx = sym->st_shndx; @@ -2164,16 +2164,16 @@ v850_elf_add_symbol_hook (abfd, info, sy break; } - return true; + return TRUE; } -static boolean +static bfd_boolean v850_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec) - bfd * abfd ATTRIBUTE_UNUSED; - struct bfd_link_info * info ATTRIBUTE_UNUSED; - const char * name ATTRIBUTE_UNUSED; - Elf_Internal_Sym * sym; - asection * input_sec; + bfd *abfd ATTRIBUTE_UNUSED; + struct bfd_link_info *info ATTRIBUTE_UNUSED; + const char *name ATTRIBUTE_UNUSED; + Elf_Internal_Sym *sym; + asection *input_sec; { /* If we see a common symbol, which implies a relocatable link, then if a symbol was in a special common section in an input file, mark @@ -2189,21 +2189,21 @@ v850_elf_link_output_symbol_hook (abfd, sym->st_shndx = SHN_V850_ZCOMMON; } - return true; + return TRUE; } -static boolean +static bfd_boolean v850_elf_section_from_shdr (abfd, hdr, name) - bfd * abfd; - Elf_Internal_Shdr * hdr; - const char * name; + bfd *abfd; + Elf_Internal_Shdr *hdr; + const char *name; { /* There ought to be a place to keep ELF backend specific flags, but at the moment there isn't one. We just keep track of the sections by their name, instead. */ if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; switch (hdr->sh_type) { @@ -2214,20 +2214,20 @@ v850_elf_section_from_shdr (abfd, hdr, n (bfd_get_section_flags (abfd, hdr->bfd_section) | SEC_IS_COMMON))) - return false; + return FALSE; } - return true; + return TRUE; } /* Set the correct type for a V850 ELF section. We do this by the section name, which is a hack, but ought to work. */ -static boolean +static bfd_boolean v850_elf_fake_sections (abfd, hdr, sec) - bfd * abfd ATTRIBUTE_UNUSED; - Elf32_Internal_Shdr * hdr; - asection * sec; + bfd *abfd ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *hdr; + asection *sec; { register const char * name; @@ -2244,31 +2244,31 @@ v850_elf_fake_sections (abfd, hdr, sec) else if (strcmp (name, ".zcommon") == 0) hdr->sh_type = SHT_V850_ZCOMMON; - return true; + return TRUE; } /* Delete some bytes from a section while relaxing. */ -static boolean +static bfd_boolean v850_elf_relax_delete_bytes (abfd, sec, addr, toaddr, count) - bfd * abfd; - asection * sec; - bfd_vma addr; - bfd_vma toaddr; - int count; -{ - Elf_Internal_Shdr * symtab_hdr; - Elf32_External_Sym * extsyms; - Elf32_External_Sym * esym; - Elf32_External_Sym * esymend; - int index; - unsigned int sec_shndx; - bfd_byte * contents; - Elf_Internal_Rela * irel; - Elf_Internal_Rela * irelend; - struct elf_link_hash_entry * sym_hash; - Elf_Internal_Shdr * shndx_hdr; - Elf_External_Sym_Shndx * shndx; + bfd *abfd; + asection *sec; + bfd_vma addr; + bfd_vma toaddr; + int count; +{ + Elf_Internal_Shdr *symtab_hdr; + Elf32_External_Sym *extsyms; + Elf32_External_Sym *esym; + Elf32_External_Sym *esymend; + int index; + unsigned int sec_shndx; + bfd_byte *contents; + Elf_Internal_Rela *irel; + Elf_Internal_Rela *irelend; + struct elf_link_hash_entry *sym_hash; + Elf_Internal_Shdr *shndx_hdr; + Elf_External_Sym_Shndx *shndx; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; extsyms = (Elf32_External_Sym *) symtab_hdr->contents; @@ -2303,7 +2303,7 @@ v850_elf_relax_delete_bytes (abfd, sec, /* Get the new reloc address. */ raddr = irel->r_offset; if ((raddr >= (addr + count) && raddr < toaddr)) - irel->r_offset -= count; + irel->r_offset -= count; if (raddr >= addr && raddr < addr + count) { @@ -2311,7 +2311,7 @@ v850_elf_relax_delete_bytes (abfd, sec, (int) R_V850_NONE); continue; } - + if (ELF32_R_TYPE (irel->r_info) == (int) R_V850_ALIGN) continue; @@ -2319,7 +2319,7 @@ v850_elf_relax_delete_bytes (abfd, sec, extsyms + ELF32_R_SYM (irel->r_info), shndx ? shndx + ELF32_R_SYM (irel->r_info) : NULL, & isym); - + if (isym.st_shndx != sec_shndx) continue; @@ -2358,9 +2358,9 @@ v850_elf_relax_delete_bytes (abfd, sec, sec->output_section->vma, sec->output_offset, irel->r_addend); #endif } - + paddr = symval + irel->r_addend; - + if ( (symval >= addr + count && symval < toaddr) && (paddr < addr + count || paddr >= toaddr)) irel->r_addend += count; @@ -2386,8 +2386,8 @@ v850_elf_relax_delete_bytes (abfd, sec, isym.st_value -= count; if (isym.st_value + isym.st_size >= toaddr) - isym.st_size += count; - + isym.st_size += count; + bfd_elf32_swap_symbol_out (abfd, & isym, esym, shndx); } else if (isym.st_shndx == sec_shndx @@ -2452,13 +2452,13 @@ v850_elf_relax_delete_bytes (abfd, sec, ++ shndx; } - return true; + return TRUE; } #define NOP_OPCODE (0x0000) -#define MOVHI 0x0640 /* 4byte */ +#define MOVHI 0x0640 /* 4byte */ #define MOVHI_MASK 0x07e0 -#define MOVHI_R1(insn) ((insn) & 0x1f) /* 4byte */ +#define MOVHI_R1(insn) ((insn) & 0x1f) /* 4byte */ #define MOVHI_R2(insn) ((insn) >> 11) #define MOVEA 0x0620 /* 2byte */ #define MOVEA_MASK 0x07e0 @@ -2475,31 +2475,31 @@ v850_elf_relax_delete_bytes (abfd, sec, #define JMP_R_MASK 0xFFE0 #define JMP_R1(insn) ((insn) & 0x1f) -static boolean +static bfd_boolean v850_elf_relax_section (abfd, sec, link_info, again) - bfd * abfd; - asection * sec; - struct bfd_link_info * link_info; - boolean * again; -{ - Elf_Internal_Shdr * symtab_hdr; - Elf_Internal_Rela * internal_relocs; - Elf_Internal_Rela * irel; - Elf_Internal_Rela * irelend; - Elf_Internal_Rela * irelalign = NULL; - Elf_Internal_Sym * isymbuf = NULL; - bfd_byte * contents = NULL; - bfd_vma addr = 0; - bfd_vma toaddr; - int align_pad_size = 0; - boolean result = true; + bfd *abfd; + asection *sec; + struct bfd_link_info *link_info; + bfd_boolean *again; +{ + Elf_Internal_Shdr *symtab_hdr; + Elf_Internal_Rela *internal_relocs; + Elf_Internal_Rela *irel; + Elf_Internal_Rela *irelend; + Elf_Internal_Rela *irelalign = NULL; + Elf_Internal_Sym *isymbuf = NULL; + bfd_byte *contents = NULL; + bfd_vma addr = 0; + bfd_vma toaddr; + int align_pad_size = 0; + bfd_boolean result = TRUE; - * again = false; + *again = FALSE; if (link_info->relocateable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -2515,7 +2515,7 @@ v850_elf_relax_section (abfd, sec, link_ goto error_return; irelend = internal_relocs + sec->reloc_count; - + while (addr < sec->_cooked_size) { toaddr = sec->_cooked_size; @@ -2525,7 +2525,7 @@ v850_elf_relax_section (abfd, sec, link_ && irel->r_offset > addr && irel->r_offset < toaddr) toaddr = irel->r_offset; - + #ifdef DEBUG_RELAX fprintf (stderr, "relax region 0x%x to 0x%x align pad %d\n", addr, toaddr, align_pad_size); @@ -2549,7 +2549,7 @@ v850_elf_relax_section (abfd, sec, link_ #endif if (!v850_elf_relax_delete_bytes (abfd, sec, alignmoveto, toaddr, align_pad_size)) - goto error_return; + goto error_return; for (i = BFD_ALIGN (toaddr - align_pad_size, 1); (i + 1) < toaddr; i += 2) @@ -2563,15 +2563,15 @@ v850_elf_relax_section (abfd, sec, link_ for (irel = internal_relocs; irel < irelend; irel++) { - bfd_vma laddr; - bfd_vma addend; - bfd_vma symval; - int insn[5]; - int no_match = -1; - Elf_Internal_Rela * hi_irelfn; - Elf_Internal_Rela * lo_irelfn; - Elf_Internal_Rela * irelcall; - bfd_signed_vma foff; + bfd_vma laddr; + bfd_vma addend; + bfd_vma symval; + int insn[5]; + int no_match = -1; + Elf_Internal_Rela *hi_irelfn; + Elf_Internal_Rela *lo_irelfn; + Elf_Internal_Rela *irelcall; + bfd_signed_vma foff; if (! (irel->r_offset >= addr && irel->r_offset < toaddr && (ELF32_R_TYPE (irel->r_info) == (int) R_V850_LONGCALL @@ -2626,7 +2626,7 @@ v850_elf_relax_section (abfd, sec, link_ insn[2] = bfd_get_32 (abfd, contents + laddr + 8); insn[3] = bfd_get_16 (abfd, contents + laddr + 12); insn[4] = bfd_get_16 (abfd, contents + laddr + 14); - + if ((insn[0] & MOVHI_MASK) != MOVHI || MOVHI_R1 (insn[0]) != 0) no_match = 0; @@ -2667,14 +2667,14 @@ v850_elf_relax_section (abfd, sec, link_ bfd_get_filename (abfd), (unsigned long) irel->r_offset+no_match, insn[no_match])); continue; - } + } /* Get the reloc for the address from which the register is being loaded. This reloc will tell us which function is actually being called. */ for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++) if (hi_irelfn->r_offset == laddr + 2 - && ELF32_R_TYPE (hi_irelfn->r_info) + && ELF32_R_TYPE (hi_irelfn->r_info) == (int) R_V850_HI16_S) break; @@ -2700,7 +2700,7 @@ v850_elf_relax_section (abfd, sec, link_ continue; } - + if (ELF32_R_SYM (irelcall->r_info) < symtab_hdr->sh_info) { Elf_Internal_Sym * isym; @@ -2742,12 +2742,12 @@ v850_elf_relax_section (abfd, sec, link_ /* Get the value of the symbol referred to by the reloc. */ if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info) { - Elf_Internal_Sym * isym; - asection * sym_sec; + Elf_Internal_Sym *isym; + asection *sym_sec; /* A local symbol. */ isym = isymbuf + ELF32_R_SYM (hi_irelfn->r_info); - + if (isym->st_shndx == SHN_UNDEF) sym_sec = bfd_und_section_ptr; else if (isym->st_shndx == SHN_ABS) @@ -2763,7 +2763,7 @@ v850_elf_relax_section (abfd, sec, link_ else { unsigned long indx; - struct elf_link_hash_entry * h; + struct elf_link_hash_entry *h; /* An external symbol. */ indx = ELF32_R_SYM (hi_irelfn->r_info) - symtab_hdr->sh_info; @@ -2812,7 +2812,7 @@ v850_elf_relax_section (abfd, sec, link_ elf_section_data (sec)->relocs = internal_relocs; elf_section_data (sec)->this_hdr.contents = contents; symtab_hdr->contents = (bfd_byte *) isymbuf; - + /* Replace the long call with a jarl. */ irel->r_info = ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_22_PCREL); @@ -2832,7 +2832,7 @@ v850_elf_relax_section (abfd, sec, link_ bfd_put_32 (abfd, 0x00000780 | (JARL_R2 (insn[2])<<11), contents + irel->r_offset); - hi_irelfn->r_info = + hi_irelfn->r_info = ELF32_R_INFO (ELF32_R_SYM (hi_irelfn->r_info), R_V850_NONE); lo_irelfn->r_info = ELF32_R_INFO (ELF32_R_SYM (lo_irelfn->r_info), R_V850_NONE); @@ -2891,7 +2891,7 @@ v850_elf_relax_section (abfd, sec, link_ actually being called. */ for (hi_irelfn = internal_relocs; hi_irelfn < irelend; hi_irelfn ++) if (hi_irelfn->r_offset == laddr + 2 - && ELF32_R_TYPE (hi_irelfn->r_info) == (int) R_V850_HI16_S) + && ELF32_R_TYPE (hi_irelfn->r_info) == (int) R_V850_HI16_S) break; for (lo_irelfn = internal_relocs; lo_irelfn < irelend; lo_irelfn ++) @@ -2908,7 +2908,7 @@ v850_elf_relax_section (abfd, sec, link_ continue; } - + /* Get the value of the symbol referred to by the reloc. */ if (ELF32_R_SYM (hi_irelfn->r_info) < symtab_hdr->sh_info) { @@ -3005,8 +3005,8 @@ v850_elf_relax_section (abfd, sec, link_ /* Replace the long jump with a jr. */ irel->r_info = - ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_V850_22_PCREL); - + ELF32_R_INFO (ELF32_R_SYM (irel->r_info), R_V850_22_PCREL); + irel->r_addend = addend; addend = 0; @@ -3112,7 +3112,7 @@ v850_elf_relax_section (abfd, sec, link_ return result; error_return: - result = false; + result = FALSE; goto finish; } diff -uprN binutils-2.13.90.0.16/bfd/elf32-vax.c binutils-2.13.90.0.18/bfd/elf32-vax.c --- binutils-2.13.90.0.16/bfd/elf32-vax.c Wed Oct 2 10:17:19 2002 +++ binutils-2.13.90.0.18/bfd/elf32-vax.c Tue Jan 21 10:21:32 2003 @@ -29,38 +29,38 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type *reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void rtype_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static struct bfd_hash_entry *elf_vax_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *elf_vax_link_hash_table_create PARAMS ((bfd *)); -static boolean elf_vax_check_relocs +static bfd_boolean elf_vax_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *elf_vax_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_vax_gc_sweep_hook +static bfd_boolean elf_vax_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf_vax_adjust_dynamic_symbol +static bfd_boolean elf_vax_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean elf_vax_size_dynamic_sections +static bfd_boolean elf_vax_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_vax_relocate_section +static bfd_boolean elf_vax_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf_vax_finish_dynamic_symbol +static bfd_boolean elf_vax_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_vax_finish_dynamic_sections +static bfd_boolean elf_vax_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf32_vax_set_private_flags +static bfd_boolean elf32_vax_set_private_flags PARAMS ((bfd *, flagword)); -static boolean elf32_vax_merge_private_bfd_data +static bfd_boolean elf32_vax_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean elf32_vax_print_private_bfd_data +static bfd_boolean elf32_vax_print_private_bfd_data PARAMS ((bfd *, PTR)); static reloc_howto_type howto_table[] = { @@ -68,113 +68,113 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x00000000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_VAX_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_VAX_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_VAX_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x000000ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_VAX_PC32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_PC32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_VAX_PC16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_PC16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_VAX_PC8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_PC8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x000000ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_VAX_GOT32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_GOT32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), @@ -186,15 +186,15 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_PLT32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ EMPTY_HOWTO (-1), EMPTY_HOWTO (-1), @@ -206,87 +206,87 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_COPY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_VAX_GLOB_DAT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_GLOB_DAT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_VAX_JMP_SLOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_JMP_SLOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_VAX_RELATIVE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_VAX_RELATIVE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_VAX_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_VAX_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_VAX_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_VAX_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; static void @@ -414,12 +414,12 @@ struct elf_vax_link_hash_table /* Declare this now that the above structures are defined. */ -static boolean elf_vax_discard_copies +static bfd_boolean elf_vax_discard_copies PARAMS ((struct elf_vax_link_hash_entry *, PTR)); /* Declare this now that the above structures are defined. */ -static boolean elf_vax_instantiate_got_entries +static bfd_boolean elf_vax_instantiate_got_entries PARAMS ((struct elf_link_hash_entry *, PTR)); /* Traverse an VAX ELF linker hash table. */ @@ -427,7 +427,7 @@ static boolean elf_vax_instantiate_got_e #define elf_vax_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the VAX ELF linker hash table from a link_info structure. */ @@ -491,19 +491,19 @@ elf_vax_link_hash_table_create (abfd) } /* Keep vax-specific flags in the ELF header */ -static boolean +static bfd_boolean elf32_vax_set_private_flags (abfd, flags) bfd *abfd; flagword flags; { elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean elf32_vax_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -513,22 +513,22 @@ elf32_vax_merge_private_bfd_data (ibfd, if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; if (!elf_flags_init (obfd)) { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = in_flags; } - return true; + return TRUE; } /* Display the flags field */ -static boolean +static bfd_boolean elf32_vax_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -556,13 +556,13 @@ elf32_vax_print_private_bfd_data (abfd, fputc ('\n', file); - return true; + return TRUE; } /* Look through the relocs for a section during the first phase, and allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean elf_vax_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -579,7 +579,7 @@ elf_vax_check_relocs (abfd, info, sec, r asection *sreloc; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -616,7 +616,7 @@ elf_vax_check_relocs (abfd, info, sec, r /* Create the .got section. */ elf_hash_table (info)->dynobj = dynobj = abfd; if (!_bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; } if (sgot == NULL) @@ -641,7 +641,7 @@ elf_vax_check_relocs (abfd, info, sec, r | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } @@ -752,7 +752,7 @@ elf_vax_check_relocs (abfd, info, sec, r elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -771,7 +771,7 @@ elf_vax_check_relocs (abfd, info, sec, r | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } if (sec->flags & SEC_READONLY) info->flags |= DF_TEXTREL; @@ -783,7 +783,7 @@ elf_vax_check_relocs (abfd, info, sec, r PC relative relocations we have entered for this symbol, so that we can discard them again if the symbol is later defined by a regular object. Note that this function is - only called if we are using an vaxelf linker hash table, + only called if we are using a vaxelf linker hash table, which means that h is really a pointer to an elf_vax_link_hash_entry. */ if ((ELF32_R_TYPE (rel->r_info) == R_VAX_PC8 @@ -805,7 +805,7 @@ elf_vax_check_relocs (abfd, info, sec, r p = ((struct elf_vax_pcrel_relocs_copied *) bfd_alloc (dynobj, (bfd_size_type) sizeof *p)); if (p == NULL) - return false; + return FALSE; p->next = eh->pcrel_relocs_copied; eh->pcrel_relocs_copied = p; p->section = sreloc; @@ -822,14 +822,14 @@ elf_vax_check_relocs (abfd, info, sec, r Reconstruct it for later use during GC. */ case R_VAX_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_VAX_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; default: @@ -837,7 +837,7 @@ elf_vax_check_relocs (abfd, info, sec, r } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -882,7 +882,7 @@ elf_vax_gc_mark_hook (sec, info, rel, h, /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf_vax_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -901,7 +901,7 @@ elf_vax_gc_sweep_hook (abfd, info, sec, dynobj = elf_hash_table (info)->dynobj; if (dynobj == NULL) - return true; + return TRUE; relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; rel++) @@ -939,7 +939,7 @@ elf_vax_gc_sweep_hook (abfd, info, sec, } } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -948,7 +948,7 @@ elf_vax_gc_sweep_hook (abfd, info, sec, change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf_vax_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -991,7 +991,7 @@ elf_vax_adjust_dynamic_symbol (info, h) reloc instead. */ BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0); h->plt.offset = (bfd_vma) -1; - return true; + return TRUE; } /* GC may have rendered this entry unused. */ @@ -999,14 +999,14 @@ elf_vax_adjust_dynamic_symbol (info, h) { h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; h->plt.offset = (bfd_vma) -1; - return true; + return TRUE; } /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_get_section_by_name (dynobj, ".plt"); @@ -1049,7 +1049,7 @@ elf_vax_adjust_dynamic_symbol (info, h) BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf32_External_Rela); - return true; + return TRUE; } /* Reinitialize the plt offset now that it is not used as a reference @@ -1065,7 +1065,7 @@ elf_vax_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1076,7 +1076,7 @@ elf_vax_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -1117,7 +1117,7 @@ elf_vax_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (!bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1127,21 +1127,21 @@ elf_vax_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf_vax_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean plt; - boolean relocs; - boolean reltext; + bfd_boolean plt; + bfd_boolean relocs; + bfd_boolean reltext; dynobj = elf_hash_table (info)->dynobj; BFD_ASSERT (dynobj != NULL); @@ -1184,7 +1184,7 @@ elf_vax_size_dynamic_sections (output_bf elf_vax_discard_copies, (PTR) NULL); - /* If this is a -Bsymbolic shared link or a static link, we need to + /* If this is a -Bsymbolic shared link or a static link, we need to discard all the got entries we've recorded. Otherwise, we need to instantiate (allocate space for them). */ elf_link_hash_traverse (elf_hash_table (info), @@ -1194,13 +1194,13 @@ elf_vax_size_dynamic_sections (output_bf /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - plt = false; - relocs = false; - reltext = false; + plt = FALSE; + relocs = FALSE; + reltext = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -1209,7 +1209,7 @@ elf_vax_size_dynamic_sections (output_bf of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strcmp (name, ".plt") == 0) { @@ -1217,12 +1217,12 @@ elf_vax_size_dynamic_sections (output_bf { /* Strip this section if we don't need it; see the comment below. */ - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strncmp (name, ".rela", 5) == 0) @@ -1238,7 +1238,7 @@ elf_vax_size_dynamic_sections (output_bf adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { @@ -1250,7 +1250,7 @@ elf_vax_size_dynamic_sections (output_bf { const char *outname; - relocs = true; + relocs = TRUE; /* If this relocation section applies to a read only section, then we probably need a DT_TEXTREL @@ -1262,7 +1262,7 @@ elf_vax_size_dynamic_sections (output_bf if (target != NULL && (target->flags & SEC_READONLY) != 0 && (target->flags & SEC_ALLOC) != 0) - reltext = true; + reltext = TRUE; } /* We use the reloc_count field as a counter if we need @@ -1285,7 +1285,7 @@ elf_vax_size_dynamic_sections (output_bf /* Allocate memory for the section contents. */ s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -1301,7 +1301,7 @@ elf_vax_size_dynamic_sections (output_bf if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (plt) @@ -1310,7 +1310,7 @@ elf_vax_size_dynamic_sections (output_bf || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -1318,18 +1318,18 @@ elf_vax_size_dynamic_sections (output_bf if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf32_External_Rela))) - return false; + return FALSE; } if (reltext || (info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } #undef add_dynamic_entry - return true; + return TRUE; } /* This function is called via elf_vax_link_hash_traverse if we are @@ -1339,7 +1339,7 @@ elf_vax_size_dynamic_sections (output_bf routine, but we won't fill them in in the relocate_section routine. */ /*ARGSUSED*/ -static boolean +static bfd_boolean elf_vax_discard_copies (h, ignore) struct elf_vax_link_hash_entry *h; PTR ignore ATTRIBUTE_UNUSED; @@ -1351,12 +1351,12 @@ elf_vax_discard_copies (h, ignore) /* We only discard relocs for symbols defined in a regular object. */ if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - return true; + return TRUE; for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) s->section->_raw_size -= s->count * sizeof (Elf32_External_Rela); - return true; + return TRUE; } /* This function is called via elf_link_hash_traverse. It looks for entries @@ -1367,7 +1367,7 @@ elf_vax_discard_copies (h, ignore) will be reserved for the symbol. */ /*ARGSUSED*/ -static boolean +static bfd_boolean elf_vax_instantiate_got_entries (h, infoptr) struct elf_link_hash_entry *h; PTR infoptr; @@ -1376,14 +1376,14 @@ elf_vax_instantiate_got_entries (h, info bfd *dynobj; asection *sgot; asection *srelgot; - + /* We don't care about non-GOT (and non-PLT) entries. */ if (h->got.refcount <= 0 && h->plt.refcount <= 0) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; if (dynobj == NULL) - return true; + return TRUE; sgot = bfd_get_section_by_name (dynobj, ".got"); srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); @@ -1402,7 +1402,7 @@ elf_vax_instantiate_got_entries (h, info if (h->dynindx == -1) { if (!bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* Allocate space in the .got and .rela.got sections. */ @@ -1410,12 +1410,12 @@ elf_vax_instantiate_got_entries (h, info srelgot->_raw_size += sizeof (Elf32_External_Rela); } - return true; + return TRUE; } /* Relocate an VAX ELF section. */ -static boolean +static bfd_boolean elf_vax_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1441,7 +1441,7 @@ elf_vax_relocate_section (output_bfd, in Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1470,7 +1470,7 @@ elf_vax_relocate_section (output_bfd, in if (r_type < 0 || r_type >= (int) R_VAX_max) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = howto_table + r_type; @@ -1550,7 +1550,7 @@ elf_vax_relocate_section (output_bfd, in input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } @@ -1693,7 +1693,8 @@ elf_vax_relocate_section (output_bfd, in & ELF_LINK_HASH_DEF_REGULAR) == 0))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_byte *loc; + bfd_boolean skip, relocate; /* When generating a shared object, these relocations are copied into the output file to be resolved at run @@ -1708,7 +1709,7 @@ elf_vax_relocate_section (output_bfd, in elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -1719,16 +1720,16 @@ elf_vax_relocate_section (output_bfd, in BFD_ASSERT (sreloc != NULL); } - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -1749,7 +1750,7 @@ elf_vax_relocate_section (output_bfd, in { if (r_type == R_VAX_32) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF32_R_INFO (0, R_VAX_RELATIVE); BFD_ASSERT (bfd_get_signed_32 (input_bfd, &contents[rel->r_offset]) == 0); @@ -1773,7 +1774,7 @@ elf_vax_relocate_section (output_bfd, in else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -1811,11 +1812,9 @@ elf_vax_relocate_section (output_bfd, in outrel.r_addend, bfd_get_section_name (input_bfd, input_section)); } - bfd_elf32_swap_reloca_out (output_bfd, &outrel, - (((Elf32_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &outrel, loc); /* This reloc will be computed at runtime, so there's no need to do anything now, except for R_VAX_32 @@ -1836,7 +1835,7 @@ elf_vax_relocate_section (output_bfd, in break; } - /* VAX PCREL relocations are from the end of relocation, not the start. + /* VAX PCREL relocations are from the end of relocation, not the start. So subtract the difference from the relocation amount since we can't add it to the offset. */ if (howto->pc_relative && howto->pcrel_offset) @@ -1865,27 +1864,27 @@ elf_vax_relocate_section (output_bfd, in symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } if (!(info->callbacks->reloc_overflow (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf_vax_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -1905,6 +1904,7 @@ elf_vax_finish_dynamic_symbol (output_bf bfd_vma got_offset; bfd_vma addend; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -1955,9 +1955,8 @@ elf_vax_finish_dynamic_symbol (output_bf + got_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_VAX_JMP_SLOT); rela.r_addend = addend; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + plt_index)); + loc = srela->contents + plt_index * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -1972,6 +1971,7 @@ elf_vax_finish_dynamic_symbol (output_bf asection *sgot; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -2002,16 +2002,16 @@ elf_vax_finish_dynamic_symbol (output_bf (sgot->contents + (h->got.offset & ~1))); - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) srela->contents - + srela->reloc_count)); - ++srela->reloc_count; + loc = srela->contents; + loc += srela->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection *s; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -2028,10 +2028,8 @@ elf_vax_finish_dynamic_symbol (output_bf + h->root.u.def.section->output_offset); rela.r_info = ELF32_R_INFO (h->dynindx, R_VAX_COPY); rela.r_addend = 0; - bfd_elf32_swap_reloca_out (output_bfd, &rela, - ((Elf32_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf32_External_Rela); + bfd_elf32_swap_reloca_out (output_bfd, &rela, loc); } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ @@ -2039,12 +2037,12 @@ elf_vax_finish_dynamic_symbol (output_bf || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf_vax_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2159,7 +2157,7 @@ elf_vax_finish_dynamic_sections (output_ elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 4; - return true; + return TRUE; } #define TARGET_LITTLE_SYM bfd_elf32_vax_vec diff -uprN binutils-2.13.90.0.16/bfd/elf32-xstormy16.c binutils-2.13.90.0.18/bfd/elf32-xstormy16.c --- binutils-2.13.90.0.16/bfd/elf32-xstormy16.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elf32-xstormy16.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* XSTORMY16-specific support for 32-bit ELF. - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -28,29 +28,29 @@ Foundation, Inc., 59 Temple Place - Suit static reloc_howto_type * xstormy16_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void xstormy16_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static bfd_reloc_status_type xstormy16_elf_24_reloc PARAMS ((bfd *abfd, arelent *reloc_entry, asymbol *symbol, PTR data, asection *input_section, bfd *output_bfd, char **error_message)); -static boolean xstormy16_elf_check_relocs +static bfd_boolean xstormy16_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean xstormy16_relax_plt_check +static bfd_boolean xstormy16_relax_plt_check PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean xstormy16_relax_plt_realloc +static bfd_boolean xstormy16_relax_plt_realloc PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean xstormy16_elf_relax_section +static bfd_boolean xstormy16_elf_relax_section PARAMS ((bfd *abfd, asection *sec, struct bfd_link_info *link_info, - boolean *again)); -static boolean xstormy16_elf_always_size_sections + bfd_boolean *again)); +static bfd_boolean xstormy16_elf_always_size_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean xstormy16_elf_relocate_section +static bfd_boolean xstormy16_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean xstormy16_elf_finish_dynamic_sections +static bfd_boolean xstormy16_elf_finish_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); -static boolean xstormy16_elf_gc_sweep_hook +static bfd_boolean xstormy16_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection * xstormy16_elf_gc_mark_hook @@ -64,150 +64,195 @@ static reloc_howto_type xstormy16_elf_ho 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. */ HOWTO (R_XSTORMY16_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit absolute relocation. */ HOWTO (R_XSTORMY16_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit absolute relocation. */ HOWTO (R_XSTORMY16_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit pc-relative relocation. */ HOWTO (R_XSTORMY16_PC32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_PC32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 16 bit pc-relative relocation. */ HOWTO (R_XSTORMY16_PC16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_PC16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* An 8 bit pc-relative relocation. */ HOWTO (R_XSTORMY16_PC8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_PC8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 12-bit pc-relative relocation suitable for the branch instructions. */ HOWTO (R_XSTORMY16_REL_12, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 1, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_REL_12", /* name */ - true, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0fff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 24-bit absolute relocation suitable for the jump instructions. */ HOWTO (R_XSTORMY16_24, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ xstormy16_elf_24_reloc, /* special_function */ "R_XSTORMY16_24", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0xffff00ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 16 bit absolute relocation to a function pointer. */ HOWTO (R_XSTORMY16_FPTR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_XSTORMY16_FPTR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ + + /* Low order 16 bit value of a high memory address. */ + HOWTO (R_XSTORMY16_LO16, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_XSTORMY16_LO16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* High order 16 bit value of a high memory address. */ + HOWTO (R_XSTORMY16_HI16, /* type */ + 16, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_XSTORMY16_HI16", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0xffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* A 12 bit absolute relocation. */ + HOWTO (R_XSTORMY16_12, /* type */ + 0, /* rightshift */ + 1, /* size (0 = byte, 1 = short, 2 = long) */ + 12, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_XSTORMY16_12", /* name */ + FALSE, /* partial_inplace */ + 0x0000, /* src_mask */ + 0x0fff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; static reloc_howto_type xstormy16_elf_howto_table2 [] = @@ -217,30 +262,30 @@ static reloc_howto_type xstormy16_elf_ho 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_XSTORMY16_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_XSTORMY16_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_XSTORMY16_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -265,6 +310,9 @@ static const reloc_map xstormy16_reloc_m { BFD_RELOC_XSTORMY16_REL_12, R_XSTORMY16_REL_12, xstormy16_elf_howto_table }, { BFD_RELOC_XSTORMY16_24, R_XSTORMY16_24, xstormy16_elf_howto_table }, { BFD_RELOC_XSTORMY16_FPTR16, R_XSTORMY16_FPTR16, xstormy16_elf_howto_table }, + { BFD_RELOC_LO16, R_XSTORMY16_LO16, xstormy16_elf_howto_table }, + { BFD_RELOC_HI16, R_XSTORMY16_HI16, xstormy16_elf_howto_table }, + { BFD_RELOC_XSTORMY16_12, R_XSTORMY16_12, xstormy16_elf_howto_table }, { BFD_RELOC_VTABLE_INHERIT, R_XSTORMY16_GNU_VTINHERIT, xstormy16_elf_howto_table2 }, { BFD_RELOC_VTABLE_ENTRY, R_XSTORMY16_GNU_VTENTRY, xstormy16_elf_howto_table2 }, }; @@ -296,11 +344,11 @@ static void xstormy16_info_to_howto_rela (abfd, cache_ptr, dst) bfd * abfd ATTRIBUTE_UNUSED; arelent * cache_ptr; - Elf32_Internal_Rela * dst; + Elf_Internal_Rela * dst; { unsigned int r_type = ELF32_R_TYPE (dst->r_info); - if (r_type <= (unsigned int) R_XSTORMY16_FPTR16) + if (r_type <= (unsigned int) R_XSTORMY16_12) cache_ptr->howto = &xstormy16_elf_howto_table [r_type]; else if (r_type - R_XSTORMY16_GNU_VTINHERIT <= (unsigned int) R_XSTORMY16_GNU_VTENTRY) @@ -361,7 +409,7 @@ xstormy16_elf_24_reloc (abfd, reloc_entr -relax switch is given, as otherwise we have no idea where the sections will fall in the address space. */ -static boolean +static bfd_boolean xstormy16_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -376,7 +424,7 @@ xstormy16_elf_check_relocs (abfd, info, bfd *dynobj; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata(abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -433,7 +481,7 @@ xstormy16_elf_check_relocs (abfd, info, | SEC_READONLY | SEC_CODE)) || ! bfd_set_section_alignment (dynobj, splt, 1)) - return false; + return FALSE; } } @@ -449,7 +497,7 @@ xstormy16_elf_check_relocs (abfd, info, size = symtab_hdr->sh_info * sizeof (bfd_vma); local_plt_offsets = (bfd_vma *) bfd_alloc (abfd, size); if (local_plt_offsets == NULL) - return false; + return FALSE; elf_local_got_offsets (abfd) = local_plt_offsets; for (i = 0; i < symtab_hdr->sh_info; i++) @@ -469,19 +517,19 @@ xstormy16_elf_check_relocs (abfd, info, Reconstruct it for later use during GC. */ case R_XSTORMY16_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_XSTORMY16_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* A subroutine of xstormy16_elf_relax_section. If the global symbol H @@ -490,10 +538,10 @@ xstormy16_elf_check_relocs (abfd, info, struct relax_plt_data { asection *splt; - boolean *again; + bfd_boolean *again; }; -static boolean +static bfd_boolean xstormy16_relax_plt_check (h, xdata) struct elf_link_hash_entry *h; PTR xdata; @@ -519,17 +567,17 @@ xstormy16_relax_plt_check (h, xdata) { h->plt.offset = -1; data->splt->_cooked_size -= 4; - *data->again = true; + *data->again = TRUE; } } - return true; + return TRUE; } /* A subroutine of xstormy16_elf_relax_section. If the global symbol H previously had a plt entry, give it a new entry offset. */ -static boolean +static bfd_boolean xstormy16_relax_plt_realloc (h, xdata) struct elf_link_hash_entry *h; PTR xdata; @@ -545,33 +593,33 @@ xstormy16_relax_plt_realloc (h, xdata) *entry += 4; } - return true; + return TRUE; } -static boolean +static bfd_boolean xstormy16_elf_relax_section (dynobj, splt, info, again) bfd *dynobj; asection *splt; struct bfd_link_info *info; - boolean *again; + bfd_boolean *again; { struct relax_plt_data relax_plt_data; bfd *ibfd; /* Assume nothing changes. */ - *again = false; + *again = FALSE; if (info->relocateable) - return true; + return TRUE; /* We only relax the .plt section at the moment. */ if (dynobj != elf_hash_table (info)->dynobj || strcmp (splt->name, ".plt") != 0) - return true; + return TRUE; /* Quick check for an empty plt. */ if (splt->_raw_size == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -606,7 +654,7 @@ xstormy16_elf_relax_section (dynobj, spl symtab_hdr->sh_info, 0, NULL, NULL, NULL); if (isymbuf == NULL) - return false; + return FALSE; } for (idx = 0; idx < symtab_hdr->sh_info; ++idx) @@ -635,7 +683,7 @@ xstormy16_elf_relax_section (dynobj, spl { local_plt_offsets[idx] = -1; splt->_cooked_size -= 4; - *again = true; + *again = TRUE; } } @@ -680,10 +728,10 @@ xstormy16_elf_relax_section (dynobj, spl } splt->_raw_size = splt->_cooked_size; - return true; + return TRUE; } -static boolean +static bfd_boolean xstormy16_elf_always_size_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -692,20 +740,20 @@ xstormy16_elf_always_size_sections (outp asection *splt; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; if (dynobj == NULL) - return true; + return TRUE; splt = bfd_get_section_by_name (dynobj, ".plt"); BFD_ASSERT (splt != NULL); splt->contents = (bfd_byte *) bfd_zalloc (dynobj, splt->_raw_size); if (splt->contents == NULL) - return false; + return FALSE; - return true; + return TRUE; } /* Relocate an XSTORMY16 ELF section. @@ -738,7 +786,7 @@ xstormy16_elf_always_size_sections (outp section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean xstormy16_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd * output_bfd ATTRIBUTE_UNUSED; @@ -758,7 +806,7 @@ xstormy16_elf_relocate_section (output_b asection *splt; if (info->relocateable) - return true; + return TRUE; symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); @@ -831,8 +879,8 @@ xstormy16_elf_relocate_section (output_b { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -923,7 +971,7 @@ xstormy16_elf_relocate_section (output_b case bfd_reloc_undefined: r = info->callbacks->undefined_symbol (info, name, input_bfd, input_section, rel->r_offset, - true); + TRUE); break; case bfd_reloc_outofrange: @@ -948,16 +996,16 @@ xstormy16_elf_relocate_section (output_b (info, msg, name, input_bfd, input_section, rel->r_offset); if (! r) - return false; + return FALSE; } } - return true; + return TRUE; } /* This must exist if dynobj is ever set. */ -static boolean +static bfd_boolean xstormy16_elf_finish_dynamic_sections (abfd, info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -980,7 +1028,7 @@ xstormy16_elf_finish_dynamic_sections (a } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -1025,14 +1073,14 @@ xstormy16_elf_gc_mark_hook (sec, info, r /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean xstormy16_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd * abfd ATTRIBUTE_UNUSED; struct bfd_link_info * info ATTRIBUTE_UNUSED; asection * sec ATTRIBUTE_UNUSED; const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED; { - return true; + return TRUE; } #define ELF_ARCH bfd_arch_xstormy16 diff -uprN binutils-2.13.90.0.16/bfd/elf64-alpha.c binutils-2.13.90.0.18/bfd/elf64-alpha.c --- binutils-2.13.90.0.16/bfd/elf64-alpha.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf64-alpha.c Tue Jan 21 10:21:32 2003 @@ -1,23 +1,23 @@ /* Alpha specific support for 64-bit ELF - Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Richard Henderson . -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -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. */ + 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. */ /* We need a published ABI spec for this. Until one comes out, don't assume this'll remain unchanged forever. */ @@ -48,107 +48,111 @@ Foundation, Inc., 59 Temple Place - Suit #include "ecoffswap.h" static int alpha_elf_dynamic_symbol_p - PARAMS((struct elf_link_hash_entry *, struct bfd_link_info *)); + PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *)); static struct bfd_hash_entry * elf64_alpha_link_hash_newfunc - PARAMS((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); + PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table * elf64_alpha_bfd_link_hash_table_create - PARAMS((bfd *)); + PARAMS ((bfd *)); static bfd_reloc_status_type elf64_alpha_reloc_nil - PARAMS((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type elf64_alpha_reloc_bad - PARAMS((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type elf64_alpha_do_reloc_gpdisp - PARAMS((bfd *, bfd_vma, bfd_byte *, bfd_byte *)); + PARAMS ((bfd *, bfd_vma, bfd_byte *, bfd_byte *)); static bfd_reloc_status_type elf64_alpha_reloc_gpdisp - PARAMS((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static reloc_howto_type * elf64_alpha_bfd_reloc_type_lookup - PARAMS((bfd *, bfd_reloc_code_real_type)); + PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf64_alpha_info_to_howto - PARAMS((bfd *, arelent *, Elf64_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean elf64_alpha_mkobject - PARAMS((bfd *)); -static boolean elf64_alpha_object_p - PARAMS((bfd *)); -static boolean elf64_alpha_section_from_shdr - PARAMS((bfd *, Elf64_Internal_Shdr *, const char *)); -static boolean elf64_alpha_section_flags - PARAMS((flagword *, Elf64_Internal_Shdr *)); -static boolean elf64_alpha_fake_sections - PARAMS((bfd *, Elf64_Internal_Shdr *, asection *)); -static boolean elf64_alpha_create_got_section - PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf64_alpha_create_dynamic_sections - PARAMS((bfd *, struct bfd_link_info *)); - -static boolean elf64_alpha_read_ecoff_info - PARAMS((bfd *, asection *, struct ecoff_debug_info *)); -static boolean elf64_alpha_is_local_label_name - PARAMS((bfd *, const char *)); -static boolean elf64_alpha_find_nearest_line - PARAMS((bfd *, asection *, asymbol **, bfd_vma, const char **, - const char **, unsigned int *)); +static bfd_boolean elf64_alpha_mkobject + PARAMS ((bfd *)); +static bfd_boolean elf64_alpha_object_p + PARAMS ((bfd *)); +static bfd_boolean elf64_alpha_section_from_shdr + PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); +static bfd_boolean elf64_alpha_section_flags + PARAMS ((flagword *, Elf_Internal_Shdr *)); +static bfd_boolean elf64_alpha_fake_sections + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); +static bfd_boolean elf64_alpha_create_got_section + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean elf64_alpha_create_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); + +static bfd_boolean elf64_alpha_read_ecoff_info + PARAMS ((bfd *, asection *, struct ecoff_debug_info *)); +static bfd_boolean elf64_alpha_is_local_label_name + PARAMS ((bfd *, const char *)); +static bfd_boolean elf64_alpha_find_nearest_line + PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **, unsigned int *)); #if defined(__STDC__) || defined(ALMOST_STDC) struct alpha_elf_link_hash_entry; #endif -static boolean elf64_alpha_output_extsym - PARAMS((struct alpha_elf_link_hash_entry *, PTR)); +static bfd_boolean elf64_alpha_output_extsym + PARAMS ((struct alpha_elf_link_hash_entry *, PTR)); -static boolean elf64_alpha_can_merge_gots - PARAMS((bfd *, bfd *)); +static bfd_boolean elf64_alpha_can_merge_gots + PARAMS ((bfd *, bfd *)); static void elf64_alpha_merge_gots - PARAMS((bfd *, bfd *)); -static boolean elf64_alpha_calc_got_offsets_for_symbol + PARAMS ((bfd *, bfd *)); +static bfd_boolean elf64_alpha_calc_got_offsets_for_symbol PARAMS ((struct alpha_elf_link_hash_entry *, PTR)); -static void elf64_alpha_calc_got_offsets PARAMS ((struct bfd_link_info *)); -static boolean elf64_alpha_size_got_sections +static void elf64_alpha_calc_got_offsets + PARAMS ((struct bfd_link_info *)); +static bfd_boolean elf64_alpha_size_got_sections PARAMS ((struct bfd_link_info *)); -static boolean elf64_alpha_size_plt_section +static bfd_boolean elf64_alpha_size_plt_section PARAMS ((struct bfd_link_info *)); -static boolean elf64_alpha_size_plt_section_1 +static bfd_boolean elf64_alpha_size_plt_section_1 PARAMS ((struct alpha_elf_link_hash_entry *, PTR)); -static boolean elf64_alpha_always_size_sections +static bfd_boolean elf64_alpha_always_size_sections PARAMS ((bfd *, struct bfd_link_info *)); static int alpha_dynamic_entries_for_reloc PARAMS ((int, int, int)); -static boolean elf64_alpha_calc_dynrel_sizes +static bfd_boolean elf64_alpha_calc_dynrel_sizes PARAMS ((struct alpha_elf_link_hash_entry *, struct bfd_link_info *)); -static boolean elf64_alpha_size_rela_got_section +static bfd_boolean elf64_alpha_size_rela_got_section PARAMS ((struct bfd_link_info *)); -static boolean elf64_alpha_size_rela_got_1 +static bfd_boolean elf64_alpha_size_rela_got_1 PARAMS ((struct alpha_elf_link_hash_entry *, struct bfd_link_info *)); -static boolean elf64_alpha_add_symbol_hook +static bfd_boolean elf64_alpha_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); static struct alpha_elf_got_entry *get_got_entry PARAMS ((bfd *, struct alpha_elf_link_hash_entry *, unsigned long, unsigned long, bfd_vma)); -static boolean elf64_alpha_check_relocs - PARAMS((bfd *, struct bfd_link_info *, asection *sec, +static bfd_boolean elf64_alpha_check_relocs + PARAMS ((bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *)); -static boolean elf64_alpha_adjust_dynamic_symbol - PARAMS((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean elf64_alpha_size_dynamic_sections - PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf64_alpha_relocate_section_r - PARAMS((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf64_alpha_relocate_section - PARAMS((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, +static bfd_boolean elf64_alpha_adjust_dynamic_symbol + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); +static bfd_boolean elf64_alpha_size_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static void elf64_alpha_emit_dynrel + PARAMS ((bfd *, struct bfd_link_info *, asection *, asection *, + bfd_vma, long, long, bfd_vma)); +static bfd_boolean elf64_alpha_relocate_section_r + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); +static bfd_boolean elf64_alpha_relocate_section + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf64_alpha_finish_dynamic_symbol - PARAMS((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, - Elf_Internal_Sym *)); -static boolean elf64_alpha_finish_dynamic_sections - PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf64_alpha_final_link - PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf64_alpha_merge_ind_symbols - PARAMS((struct alpha_elf_link_hash_entry *, PTR)); +static bfd_boolean elf64_alpha_finish_dynamic_symbol + PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, + Elf_Internal_Sym *)); +static bfd_boolean elf64_alpha_finish_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean elf64_alpha_final_link + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean elf64_alpha_merge_ind_symbols + PARAMS ((struct alpha_elf_link_hash_entry *, PTR)); static Elf_Internal_Rela * elf64_alpha_find_reloc_at_ofs PARAMS ((Elf_Internal_Rela *, Elf_Internal_Rela *, bfd_vma, int)); static enum elf_reloc_type_class elf64_alpha_reloc_type_class @@ -179,13 +183,13 @@ struct alpha_elf_link_hash_entry { struct alpha_elf_got_entry *next; - /* which .got subsection? */ + /* Which .got subsection? */ bfd *gotobj; - /* the addend in effect for this entry. */ + /* The addend in effect for this entry. */ bfd_vma addend; - /* the .got offset for this entry. */ + /* The .got offset for this entry. */ int got_offset; /* How many references to this entry? */ @@ -204,22 +208,22 @@ struct alpha_elf_link_hash_entry unsigned char reloc_xlated; } *got_entries; - /* used to count non-got, non-plt relocations for delayed sizing + /* Used to count non-got, non-plt relocations for delayed sizing of relocation sections. */ struct alpha_elf_reloc_entry { struct alpha_elf_reloc_entry *next; - /* which .reloc section? */ + /* Which .reloc section? */ asection *srel; - /* what kind of relocation? */ + /* What kind of relocation? */ unsigned int rtype; - /* is this against read-only section? */ + /* Is this against read-only section? */ unsigned int reltext : 1; - /* how many did we find? */ + /* How many did we find? */ unsigned long count; } *reloc_entries; }; @@ -247,7 +251,7 @@ struct alpha_elf_link_hash_table #define alpha_elf_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the Alpha ELF linker hash table from a link_info structure. */ @@ -268,18 +272,18 @@ alpha_elf_dynamic_symbol_p (h, info) struct bfd_link_info *info; { if (h == NULL) - return false; + return FALSE; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; if (h->dynindx == -1) - return false; + return FALSE; if (h->root.type == bfd_link_hash_undefweak || h->root.type == bfd_link_hash_defweak) - return true; + return TRUE; switch (ELF_ST_VISIBILITY (h->other)) { @@ -287,10 +291,10 @@ alpha_elf_dynamic_symbol_p (h, info) break; case STV_HIDDEN: case STV_INTERNAL: - return false; + return FALSE; case STV_PROTECTED: if (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) - return false; + return FALSE; break; } @@ -298,9 +302,9 @@ alpha_elf_dynamic_symbol_p (h, info) || ((h->elf_link_hash_flags & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)) == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))) - return true; + return TRUE; - return false; + return FALSE; } /* Create an entry in a Alpha ELF linker hash table. */ @@ -399,18 +403,18 @@ struct alpha_elf_obj_tdata #define alpha_elf_tdata(abfd) \ ((struct alpha_elf_obj_tdata *) (abfd)->tdata.any) -static boolean +static bfd_boolean elf64_alpha_mkobject (abfd) bfd *abfd; { bfd_size_type amt = sizeof (struct alpha_elf_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); if (abfd->tdata.any == NULL) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean elf64_alpha_object_p (abfd) bfd *abfd; { @@ -419,7 +423,7 @@ elf64_alpha_object_p (abfd) bfd_size_type amt = sizeof (struct alpha_elf_obj_tdata); new_tdata = bfd_zalloc (abfd, amt); if (new_tdata == NULL) - return false; + return FALSE; new_tdata->root = *abfd->tdata.elf_obj_data; abfd->tdata.any = new_tdata; @@ -440,45 +444,45 @@ static reloc_howto_type elf64_alpha_howt 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ elf64_alpha_reloc_nil, /* special_function */ "NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 32 bit reference to a symbol. */ HOWTO (R_ALPHA_REFLONG, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "REFLONG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit reference to a symbol. */ HOWTO (R_ALPHA_REFQUAD, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "REFQUAD", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit GP relative offset. This is just like REFLONG except that when the value is used the value of the gp register will be @@ -487,30 +491,30 @@ static reloc_howto_type elf64_alpha_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "GPREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used for an instruction that refers to memory off the GP register. */ HOWTO (R_ALPHA_LITERAL, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "ELF_LITERAL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* This reloc only appears immediately following an ELF_LITERAL reloc. It identifies a use of the literal. The symbol index is special: @@ -523,15 +527,15 @@ static reloc_howto_type elf64_alpha_howt 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ elf64_alpha_reloc_nil, /* special_function */ "LITUSE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Load the gp register. This is always used for a ldah instruction which loads the upper 16 bits of the gp register. The symbol @@ -553,90 +557,90 @@ static reloc_howto_type elf64_alpha_howt 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ elf64_alpha_reloc_gpdisp, /* special_function */ "GPDISP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 21 bit branch. */ HOWTO (R_ALPHA_BRADDR, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 21, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "BRADDR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x1fffff, /* src_mask */ 0x1fffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A hint for a jump to a register. */ HOWTO (R_ALPHA_HINT, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 14, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "HINT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x3fff, /* src_mask */ 0x3fff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit PC relative offset. */ HOWTO (R_ALPHA_SREL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32 bit PC relative offset. */ HOWTO (R_ALPHA_SREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 64 bit PC relative offset. */ HOWTO (R_ALPHA_SREL64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Skip 12 - 16; deprecated ECOFF relocs. */ SKIP_HOWTO (12), @@ -650,45 +654,45 @@ static reloc_howto_type elf64_alpha_howt 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "GPRELHIGH", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The low 16 bits of the displacement from GP to the target. */ HOWTO (R_ALPHA_GPRELLOW, 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "GPRELLOW", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16-bit displacement from the GP to the target. */ HOWTO (R_ALPHA_GPREL16, 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "GPREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Skip 20 - 23; deprecated ECOFF relocs. */ SKIP_HOWTO (20), @@ -706,120 +710,120 @@ static reloc_howto_type elf64_alpha_howt 0, 0, 0, - false, + FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "COPY", - false, + FALSE, 0, 0, - true), + TRUE), /* A dynamic relocation for a .got entry. */ HOWTO (R_ALPHA_GLOB_DAT, 0, 0, 0, - false, + FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "GLOB_DAT", - false, + FALSE, 0, 0, - true), + TRUE), /* A dynamic relocation for a .plt entry. */ HOWTO (R_ALPHA_JMP_SLOT, 0, 0, 0, - false, + FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "JMP_SLOT", - false, + FALSE, 0, 0, - true), + TRUE), /* A dynamic relocation to add the base of the DSO to a 64-bit field. */ HOWTO (R_ALPHA_RELATIVE, 0, 0, 0, - false, + FALSE, 0, complain_overflow_dont, bfd_elf_generic_reloc, "RELATIVE", - false, + FALSE, 0, 0, - true), + TRUE), /* A 21 bit branch that adjusts for gp loads. */ HOWTO (R_ALPHA_BRSGP, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 21, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "BRSGP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x1fffff, /* src_mask */ 0x1fffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Creates a tls_index for the symbol in the got. */ HOWTO (R_ALPHA_TLSGD, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "TLSGD", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Creates a tls_index for the (current) module in the got. */ HOWTO (R_ALPHA_TLSLDM, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "TLSLDM", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A dynamic relocation for a DTP module entry. */ HOWTO (R_ALPHA_DTPMOD64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "DTPMOD64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Creates a 64-bit offset in the got for the displacement from DTP to the target. */ @@ -827,75 +831,75 @@ static reloc_howto_type elf64_alpha_howt 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "GOTDTPREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A dynamic relocation for a displacement from DTP to the target. */ HOWTO (R_ALPHA_DTPREL64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "DTPREL64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high 16 bits of the displacement from DTP to the target. */ HOWTO (R_ALPHA_DTPRELHI, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "DTPRELHI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The low 16 bits of the displacement from DTP to the target. */ HOWTO (R_ALPHA_DTPRELLO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "DTPRELLO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16-bit displacement from DTP to the target. */ HOWTO (R_ALPHA_DTPREL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "DTPREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Creates a 64-bit offset in the got for the displacement from TP to the target. */ @@ -903,75 +907,75 @@ static reloc_howto_type elf64_alpha_howt 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "GOTTPREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A dynamic relocation for a displacement from TP to the target. */ HOWTO (R_ALPHA_TPREL64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "TPREL64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high 16 bits of the displacement from TP to the target. */ HOWTO (R_ALPHA_TPRELHI, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "TPRELHI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The low 16 bits of the displacement from TP to the target. */ HOWTO (R_ALPHA_TPRELLO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "TPRELLO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16-bit displacement from TP to the target. */ HOWTO (R_ALPHA_TPREL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "TPREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* A relocation function which doesn't do anything. */ @@ -1165,7 +1169,7 @@ static void elf64_alpha_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf64_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned r_type; @@ -1226,30 +1230,30 @@ struct alpha_relax_info struct alpha_elf_link_hash_entry *h; struct alpha_elf_got_entry **first_gotent; struct alpha_elf_got_entry *gotent; - boolean changed_contents; - boolean changed_relocs; + bfd_boolean changed_contents; + bfd_boolean changed_relocs; unsigned char other; }; -static boolean elf64_alpha_relax_with_lituse +static bfd_boolean elf64_alpha_relax_with_lituse PARAMS((struct alpha_relax_info *info, bfd_vma symval, Elf_Internal_Rela *irel)); static bfd_vma elf64_alpha_relax_opt_call PARAMS((struct alpha_relax_info *info, bfd_vma symval)); -static boolean elf64_alpha_relax_got_load +static bfd_boolean elf64_alpha_relax_got_load PARAMS((struct alpha_relax_info *info, bfd_vma symval, Elf_Internal_Rela *irel, unsigned long)); -static boolean elf64_alpha_relax_gprelhilo +static bfd_boolean elf64_alpha_relax_gprelhilo PARAMS((struct alpha_relax_info *info, bfd_vma symval, - Elf_Internal_Rela *irel, boolean)); -static boolean elf64_alpha_relax_tls_get_addr + Elf_Internal_Rela *irel, bfd_boolean)); +static bfd_boolean elf64_alpha_relax_tls_get_addr PARAMS((struct alpha_relax_info *info, bfd_vma symval, - Elf_Internal_Rela *irel, boolean)); + Elf_Internal_Rela *irel, bfd_boolean)); static struct elf_link_tls_segment *elf64_alpha_relax_find_tls_segment PARAMS((struct alpha_relax_info *, struct elf_link_tls_segment *)); -static boolean elf64_alpha_relax_section +static bfd_boolean elf64_alpha_relax_section PARAMS((bfd *abfd, asection *sec, struct bfd_link_info *link_info, - boolean *again)); + bfd_boolean *again)); static Elf_Internal_Rela * elf64_alpha_find_reloc_at_ofs (rel, relend, offset, type) @@ -1267,7 +1271,7 @@ elf64_alpha_find_reloc_at_ofs (rel, rele return NULL; } -static boolean +static bfd_boolean elf64_alpha_relax_with_lituse (info, symval, irel) struct alpha_relax_info *info; bfd_vma symval; @@ -1276,10 +1280,10 @@ elf64_alpha_relax_with_lituse (info, sym Elf_Internal_Rela *urel, *irelend = info->relend; int flags, count, i; bfd_signed_vma disp; - boolean fits16; - boolean fits32; - boolean lit_reused = false; - boolean all_optimized = true; + bfd_boolean fits16; + bfd_boolean fits32; + bfd_boolean lit_reused = FALSE; + bfd_boolean all_optimized = TRUE; unsigned int lit_insn; lit_insn = bfd_get_32 (info->abfd, info->contents + irel->r_offset); @@ -1289,12 +1293,12 @@ elf64_alpha_relax_with_lituse (info, sym ("%s: %s+0x%lx: warning: LITERAL relocation against unexpected insn", bfd_archive_filename (info->abfd), info->sec->name, (unsigned long) irel->r_offset)); - return true; + return TRUE; } /* Can't relax dynamic symbols. */ if (alpha_elf_dynamic_symbol_p (&info->h->root, info->link_info)) - return true; + return TRUE; /* Summarize how this particular LITERAL is used. */ for (urel = irel+1, flags = count = 0; urel < irelend; ++urel, ++count) @@ -1322,7 +1326,7 @@ elf64_alpha_relax_with_lituse (info, sym default: /* This type is really just a placeholder to note that all uses cannot be optimized, but to still allow some. */ - all_optimized = false; + all_optimized = FALSE; break; case LITUSE_ALPHA_BASE: @@ -1348,11 +1352,11 @@ elf64_alpha_relax_with_lituse (info, sym urel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), R_ALPHA_GPREL16); urel->r_addend = irel->r_addend; - info->changed_relocs = true; + info->changed_relocs = TRUE; bfd_put_32 (info->abfd, (bfd_vma) insn, info->contents + urel->r_offset); - info->changed_contents = true; + info->changed_contents = TRUE; } /* If all mem+byte, we can optimize 32-bit mem displacements. */ @@ -1365,16 +1369,16 @@ elf64_alpha_relax_with_lituse (info, sym lit_insn = (OP_LDAH << 26) | (lit_insn & 0x03ff0000); bfd_put_32 (info->abfd, (bfd_vma) lit_insn, info->contents + irel->r_offset); - lit_reused = true; - info->changed_contents = true; + lit_reused = TRUE; + info->changed_contents = TRUE; urel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), R_ALPHA_GPRELLOW); urel->r_addend = irel->r_addend; - info->changed_relocs = true; + info->changed_relocs = TRUE; } else - all_optimized = false; + all_optimized = FALSE; break; case LITUSE_ALPHA_BYTOFF: @@ -1388,11 +1392,11 @@ elf64_alpha_relax_with_lituse (info, sym urel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE); urel->r_addend = 0; - info->changed_relocs = true; + info->changed_relocs = TRUE; bfd_put_32 (info->abfd, (bfd_vma) insn, info->contents + urel->r_offset); - info->changed_contents = true; + info->changed_contents = TRUE; break; case LITUSE_ALPHA_JSR: @@ -1426,7 +1430,7 @@ elf64_alpha_relax_with_lituse (info, sym if (optdest) urel->r_addend += optdest - symval; else - all_optimized = false; + all_optimized = FALSE; bfd_put_32 (info->abfd, (bfd_vma) insn, info->contents + urel->r_offset); @@ -1438,11 +1442,11 @@ elf64_alpha_relax_with_lituse (info, sym if (xrel) xrel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE); - info->changed_contents = true; - info->changed_relocs = true; + info->changed_contents = TRUE; + info->changed_relocs = TRUE; } else - all_optimized = false; + all_optimized = FALSE; /* Even if the target is not in range for a direct branch, if we share a GP, we can eliminate the gp reload. */ @@ -1470,8 +1474,8 @@ elf64_alpha_relax_with_lituse (info, sym bfd_put_32 (info->abfd, (bfd_vma) INSN_UNOP, p_lda); gpdisp->r_info = ELF64_R_INFO (0, R_ALPHA_NONE); - info->changed_contents = true; - info->changed_relocs = true; + info->changed_contents = TRUE; + info->changed_relocs = TRUE; } } } @@ -1499,15 +1503,15 @@ elf64_alpha_relax_with_lituse (info, sym if (!lit_reused) { irel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE); - info->changed_relocs = true; + info->changed_relocs = TRUE; bfd_put_32 (info->abfd, (bfd_vma) INSN_UNOP, info->contents + irel->r_offset); - info->changed_contents = true; + info->changed_contents = TRUE; } } - return true; + return TRUE; } static bfd_vma @@ -1582,7 +1586,7 @@ elf64_alpha_relax_opt_call (info, symval return symval + 8; } -static boolean +static bfd_boolean elf64_alpha_relax_got_load (info, symval, irel, r_type) struct alpha_relax_info *info; bfd_vma symval; @@ -1602,16 +1606,16 @@ elf64_alpha_relax_got_load (info, symval ("%s: %s+0x%lx: warning: %s relocation against unexpected insn", bfd_archive_filename (info->abfd), info->sec->name, (unsigned long) irel->r_offset, howto->name)); - return true; + return TRUE; } /* Can't relax dynamic symbols. */ if (alpha_elf_dynamic_symbol_p (&info->h->root, info->link_info)) - return true; + return TRUE; /* Can't use local-exec relocations in shared libraries. */ if (r_type == R_ALPHA_GOTTPREL && info->link_info->shared) - return true; + return TRUE; if (r_type == R_ALPHA_LITERAL) disp = symval - info->gp; @@ -1626,7 +1630,7 @@ elf64_alpha_relax_got_load (info, symval } if (disp < -0x8000 || disp >= 0x8000) - return true; + return TRUE; /* Exchange LDQ for LDA. In the case of the TLS relocs, we're loading a constant, so force the base register to be $31. */ @@ -1635,8 +1639,19 @@ elf64_alpha_relax_got_load (info, symval else insn = (OP_LDA << 26) | (insn & (31 << 21)) | (31 << 16); bfd_put_32 (info->abfd, (bfd_vma) insn, info->contents + irel->r_offset); - info->changed_contents = true; + info->changed_contents = TRUE; + /* Reduce the use count on this got entry by one, possibly + eliminating it. */ + if (--info->gotent->use_count == 0) + { + int sz = alpha_got_entry_size (r_type); + alpha_elf_tdata (info->gotobj)->total_got_size -= sz; + if (!info->h) + alpha_elf_tdata (info->gotobj)->local_got_size -= sz; + } + + /* Smash the existing GOT relocation for its 16-bit immediate pair. */ switch (r_type) { case R_ALPHA_LITERAL: @@ -1650,21 +1665,11 @@ elf64_alpha_relax_got_load (info, symval break; default: BFD_ASSERT (0); - return false; + return FALSE; } irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), r_type); - info->changed_relocs = true; - - /* Reduce the use count on this got entry by one, possibly - eliminating it. */ - if (--info->gotent->use_count == 0) - { - int sz = alpha_got_entry_size (r_type); - alpha_elf_tdata (info->gotobj)->total_got_size -= sz; - if (!info->h) - alpha_elf_tdata (info->gotobj)->local_got_size -= sz; - } + info->changed_relocs = TRUE; /* ??? Search forward through this basic block looking for insns that use the target register. Stop after an insn modifying the @@ -1679,15 +1684,15 @@ elf64_alpha_relax_got_load (info, symval This would mean that we'd have to _add_ relocations, the pain of which gives one pause. */ - return true; + return TRUE; } -static boolean +static bfd_boolean elf64_alpha_relax_gprelhilo (info, symval, irel, hi) struct alpha_relax_info *info; bfd_vma symval; Elf_Internal_Rela *irel; - boolean hi; + bfd_boolean hi; { unsigned int insn; bfd_signed_vma disp; @@ -1703,22 +1708,22 @@ elf64_alpha_relax_gprelhilo (info, symva which would indeed be the most efficient way to implement this. */ - return true; + return TRUE; disp = symval - info->gp; if (disp < -0x8000 || disp >= 0x8000) - return true; + return TRUE; if (hi) { /* Nop out the high instruction. */ bfd_put_32 (info->abfd, (bfd_vma) INSN_UNOP, pos); - info->changed_contents = true; + info->changed_contents = TRUE; irel->r_info = ELF64_R_INFO (0, R_ALPHA_NONE); irel->r_addend = 0; - info->changed_relocs = true; + info->changed_relocs = TRUE; } else { @@ -1727,34 +1732,36 @@ elf64_alpha_relax_gprelhilo (info, symva insn = bfd_get_32 (info->abfd, pos); insn = (insn & 0xffe00000) | (29 << 16); bfd_put_32 (info->abfd, (bfd_vma) insn, pos); - info->changed_contents = true; + info->changed_contents = TRUE; irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), R_ALPHA_GPREL16); - info->changed_relocs = true; + info->changed_relocs = TRUE; } - return true; + return TRUE; } -static boolean +static bfd_boolean elf64_alpha_relax_tls_get_addr (info, symval, irel, is_gd) struct alpha_relax_info *info; bfd_vma symval; Elf_Internal_Rela *irel; - boolean is_gd; + bfd_boolean is_gd; { bfd_byte *pos[5]; unsigned int insn; Elf_Internal_Rela *gpdisp, *hint; - boolean dynamic, use_gottprel; + bfd_boolean dynamic, use_gottprel, pos1_unusable; dynamic = alpha_elf_dynamic_symbol_p (&info->h->root, info->link_info); /* ??? For LD relaxation, we need a symbol referencing the beginning of the TLS segment. */ + /* ??? The STN_UNDEF symbol (dynindex 0) works fine for this. Adjust + the code below to expect that. */ if (!is_gd) - return true; + return TRUE; /* If a TLS symbol is accessed using IE at least once, there is no point to use dynamic model for it. */ @@ -1769,39 +1776,44 @@ elf64_alpha_relax_tls_get_addr (info, sy /* Otherwise we must be building an executable to do anything. */ else if (info->link_info->shared) - return true; + return TRUE; /* The TLSGD/TLSLDM relocation must be followed by a LITERAL and the matching LITUSE_TLS relocations. */ if (irel + 2 >= info->relend) - return true; + return TRUE; if (ELF64_R_TYPE (irel[1].r_info) != R_ALPHA_LITERAL || ELF64_R_TYPE (irel[2].r_info) != R_ALPHA_LITUSE || irel[2].r_addend != (is_gd ? LITUSE_ALPHA_TLSGD : LITUSE_ALPHA_TLSLDM)) - return true; + return TRUE; /* There must be a GPDISP relocation positioned immediately after the LITUSE relocation. */ gpdisp = elf64_alpha_find_reloc_at_ofs (info->relocs, info->relend, irel[2].r_offset + 4, R_ALPHA_GPDISP); if (!gpdisp) - return true; + return TRUE; pos[0] = info->contents + irel[0].r_offset; pos[1] = info->contents + irel[1].r_offset; pos[2] = info->contents + irel[2].r_offset; pos[3] = info->contents + gpdisp->r_offset; pos[4] = pos[3] + gpdisp->r_addend; + pos1_unusable = FALSE; - /* Only positions 0 and 1 are allowed to be out of order. */ - if (pos[1] < pos[0]) + /* Generally, the positions are not allowed to be out of order, lest the + modified insn sequence have different register lifetimes. We can make + an exception when pos 1 is adjacent to pos 0. */ + if (pos[1] + 4 == pos[0]) { bfd_byte *tmp = pos[0]; pos[0] = pos[1]; pos[1] = tmp; } - if (pos[1] >= pos[2] || pos[2] >= pos[3] || pos[3] >= pos[4]) - return true; + else if (pos[1] < pos[0]) + pos1_unusable = TRUE; + if (pos[1] >= pos[2] || pos[2] >= pos[3]) + return TRUE; /* Reduce the use count on the LITERAL relocation. Do this before we smash the symndx when we adjust the relocations below. */ @@ -1855,7 +1867,7 @@ elf64_alpha_relax_tls_get_addr (info, sy as appropriate. */ - use_gottprel = false; + use_gottprel = FALSE; switch (!dynamic && !info->link_info->shared) { case 1: @@ -1880,7 +1892,8 @@ elf64_alpha_relax_tls_get_addr (info, sy break; } else if (disp >= -(bfd_signed_vma) 0x80000000 - && disp < (bfd_signed_vma) 0x7fff8000) + && disp < (bfd_signed_vma) 0x7fff8000 + && !pos1_unusable) { insn = (OP_LDAH << 26) | (16 << 21) | (31 << 16); bfd_put_32 (info->abfd, (bfd_vma) insn, pos[0]); @@ -1899,7 +1912,7 @@ elf64_alpha_relax_tls_get_addr (info, sy /* FALLTHRU */ default: - use_gottprel = true; + use_gottprel = TRUE; insn = (OP_LDQ << 26) | (16 << 21) | (29 << 16); bfd_put_32 (info->abfd, (bfd_vma) insn, pos[0]); @@ -1927,8 +1940,8 @@ elf64_alpha_relax_tls_get_addr (info, sy if (hint) hint->r_info = ELF64_R_INFO (0, R_ALPHA_NONE); - info->changed_contents = true; - info->changed_relocs = true; + info->changed_contents = TRUE; + info->changed_relocs = TRUE; /* Reduce the use count on the TLSGD/TLSLDM relocation. */ if (--info->gotent->use_count == 0) @@ -1962,7 +1975,7 @@ elf64_alpha_relax_tls_get_addr (info, sy tprel_gotent = (struct alpha_elf_got_entry *) bfd_alloc (info->abfd, sizeof (struct alpha_elf_got_entry)); if (!tprel_gotent) - return false; + return FALSE; tprel_gotent->next = *info->first_gotent; *info->first_gotent = tprel_gotent; @@ -1979,7 +1992,7 @@ elf64_alpha_relax_tls_get_addr (info, sy } } - return true; + return TRUE; } static struct elf_link_tls_segment * @@ -2029,12 +2042,12 @@ elf64_alpha_relax_find_tls_segment (info return seg; } -static boolean +static bfd_boolean elf64_alpha_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; @@ -2045,12 +2058,12 @@ elf64_alpha_relax_section (abfd, sec, li struct elf_link_tls_segment tls_segment; /* We are not currently changing any sizes, so only one pass. */ - *again = false; + *again = FALSE; if (link_info->relocateable || (sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -2065,7 +2078,7 @@ elf64_alpha_relax_section (abfd, sec, li (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL, link_info->keep_memory)); if (internal_relocs == NULL) - return false; + return FALSE; memset(&info, 0, sizeof (info)); info.abfd = abfd; @@ -2246,11 +2259,11 @@ elf64_alpha_relax_section (abfd, sec, li } if (!elf64_alpha_size_plt_section (link_info)) - return false; + return FALSE; if (!elf64_alpha_size_got_sections (link_info)) - return false; + return FALSE; if (!elf64_alpha_size_rela_got_section (link_info)) - return false; + return FALSE; if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf) @@ -2286,7 +2299,7 @@ elf64_alpha_relax_section (abfd, sec, li *again = info.changed_contents || info.changed_relocs; - return true; + return TRUE; error_return: if (isymbuf != NULL @@ -2298,7 +2311,7 @@ elf64_alpha_relax_section (abfd, sec, li if (internal_relocs != NULL && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } /* PLT/GOT Stuff */ @@ -2322,10 +2335,10 @@ elf64_alpha_relax_section (abfd, sec, li FIXME: We need to handle the SHF_ALPHA_GPREL flag, but I'm not sure how to. */ -static boolean +static bfd_boolean elf64_alpha_section_from_shdr (abfd, hdr, name) bfd *abfd; - Elf64_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; const char *name; { asection *newsect; @@ -2339,14 +2352,14 @@ elf64_alpha_section_from_shdr (abfd, hdr { case SHT_ALPHA_DEBUG: if (strcmp (name, ".mdebug") != 0) - return false; + return FALSE; break; default: - return false; + return FALSE; } if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; newsect = hdr->bfd_section; if (hdr->sh_type == SHT_ALPHA_DEBUG) @@ -2354,32 +2367,32 @@ elf64_alpha_section_from_shdr (abfd, hdr if (! bfd_set_section_flags (abfd, newsect, (bfd_get_section_flags (abfd, newsect) | SEC_DEBUGGING))) - return false; + return FALSE; } - return true; + return TRUE; } /* Convert Alpha specific section flags to bfd internal section flags. */ -static boolean +static bfd_boolean elf64_alpha_section_flags (flags, hdr) flagword *flags; - Elf64_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; { if (hdr->sh_flags & SHF_ALPHA_GPREL) *flags |= SEC_SMALL_DATA; - return true; + return TRUE; } /* Set the correct type for an Alpha ELF section. We do this by the section name, which is a hack, but ought to work. */ -static boolean +static bfd_boolean elf64_alpha_fake_sections (abfd, hdr, sec) bfd *abfd; - Elf64_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; asection *sec; { register const char *name; @@ -2403,13 +2416,13 @@ elf64_alpha_fake_sections (abfd, hdr, se || strcmp (name, ".lit8") == 0) hdr->sh_flags |= SHF_ALPHA_GPREL; - return true; + return TRUE; } /* Hook called by the linker routine which adds symbols from an object file. We use it to put .comm items in .sbss, and not .bss. */ -static boolean +static bfd_boolean elf64_alpha_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -2435,19 +2448,19 @@ elf64_alpha_add_symbol_hook (abfd, info, || !bfd_set_section_flags (abfd, scomm, (SEC_ALLOC | SEC_IS_COMMON | SEC_LINKER_CREATED))) - return false; + return FALSE; } *secp = scomm; *valp = sym->st_size; } - return true; + return TRUE; } /* Create the .got section. */ -static boolean +static bfd_boolean elf64_alpha_create_got_section(abfd, info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -2455,7 +2468,7 @@ elf64_alpha_create_got_section(abfd, inf asection *s; if (bfd_get_section_by_name (abfd, ".got")) - return true; + return TRUE; s = bfd_make_section (abfd, ".got"); if (s == NULL @@ -2464,16 +2477,16 @@ elf64_alpha_create_got_section(abfd, inf | SEC_IN_MEMORY | SEC_LINKER_CREATED)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; alpha_elf_tdata (abfd)->got = s; - return true; + return TRUE; } /* Create all the dynamic sections. */ -static boolean +static bfd_boolean elf64_alpha_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -2492,23 +2505,23 @@ elf64_alpha_create_dynamic_sections (abf | SEC_LINKER_CREATED | SEC_CODE)) || ! bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; /* Define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the .plt section. */ bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; s = bfd_make_section (abfd, ".rela.plt"); if (s == NULL @@ -2518,13 +2531,13 @@ elf64_alpha_create_dynamic_sections (abf | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; /* We may or may not have created a .got section for this object, but we definitely havn't done the rest of the work. */ if (!elf64_alpha_create_got_section (abfd, info)) - return false; + return FALSE; s = bfd_make_section(abfd, ".rela.got"); if (s == NULL @@ -2534,7 +2547,7 @@ elf64_alpha_create_dynamic_sections (abf | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; /* Define the symbol _GLOBAL_OFFSET_TABLE_ at the start of the dynobj's .got section. We don't do this in the linker script @@ -2544,25 +2557,25 @@ elf64_alpha_create_dynamic_sections (abf if (!(_bfd_generic_link_add_one_symbol (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, alpha_elf_tdata(abfd)->got, (bfd_vma) 0, (const char *) NULL, - false, get_elf_backend_data (abfd)->collect, &bh))) - return false; + FALSE, get_elf_backend_data (abfd)->collect, &bh))) + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; elf_hash_table (info)->hgot = h; - return true; + return TRUE; } /* Read ECOFF debugging information from a .mdebug section into a ecoff_debug_info structure. */ -static boolean +static bfd_boolean elf64_alpha_read_ecoff_info (abfd, section, debug) bfd *abfd; asection *section; @@ -2619,7 +2632,7 @@ elf64_alpha_read_ecoff_info (abfd, secti debug->fdr = NULL; debug->adjust = NULL; - return true; + return TRUE; error_return: if (ext_hdr != NULL) @@ -2646,12 +2659,12 @@ elf64_alpha_read_ecoff_info (abfd, secti free (debug->external_rfd); if (debug->external_ext != NULL) free (debug->external_ext); - return false; + return FALSE; } /* Alpha ELF local labels start with '$'. */ -static boolean +static bfd_boolean elf64_alpha_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -2670,7 +2683,7 @@ struct mips_elf_find_line struct ecoff_find_line i; }; -static boolean +static bfd_boolean elf64_alpha_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd; @@ -2687,7 +2700,7 @@ elf64_alpha_find_nearest_line (abfd, sec filename_ptr, functionname_ptr, line_ptr, 0, &elf_tdata (abfd)->dwarf2_find_line_info)) - return true; + return TRUE; msec = bfd_get_section_by_name (abfd, ".mdebug"); if (msec != NULL) @@ -2717,13 +2730,13 @@ elf64_alpha_find_nearest_line (abfd, sec if (fi == NULL) { msec->flags = origflags; - return false; + return FALSE; } if (!elf64_alpha_read_ecoff_info (abfd, msec, &fi->d)) { msec->flags = origflags; - return false; + return FALSE; } /* Swap in the FDR information. */ @@ -2732,7 +2745,7 @@ elf64_alpha_find_nearest_line (abfd, sec if (fi->d.fdr == NULL) { msec->flags = origflags; - return false; + return FALSE; } external_fdr_size = swap->external_fdr_size; fdr_ptr = fi->d.fdr; @@ -2757,7 +2770,7 @@ elf64_alpha_find_nearest_line (abfd, sec line_ptr)) { msec->flags = origflags; - return true; + return TRUE; } msec->flags = origflags; @@ -2778,39 +2791,39 @@ struct extsym_info struct bfd_link_info *info; struct ecoff_debug_info *debug; const struct ecoff_debug_swap *swap; - boolean failed; + bfd_boolean failed; }; -static boolean +static bfd_boolean elf64_alpha_output_extsym (h, data) struct alpha_elf_link_hash_entry *h; PTR data; { struct extsym_info *einfo = (struct extsym_info *) data; - boolean strip; + bfd_boolean strip; asection *sec, *output_section; if (h->root.root.type == bfd_link_hash_warning) h = (struct alpha_elf_link_hash_entry *) h->root.root.u.i.link; if (h->root.indx == -2) - strip = false; + strip = FALSE; else if (((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0 || (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0) && (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0 && (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0) - strip = true; + strip = TRUE; else if (einfo->info->strip == strip_all || (einfo->info->strip == strip_some && bfd_hash_lookup (einfo->info->keep_hash, h->root.root.root.string, - false, false) == NULL)) - strip = true; + FALSE, FALSE) == NULL)) + strip = TRUE; else - strip = false; + strip = FALSE; if (strip) - return true; + return TRUE; if (h->esym.ifd == -2) { @@ -2908,11 +2921,11 @@ elf64_alpha_output_extsym (h, data) h->root.root.root.string, &h->esym)) { - einfo->failed = true; - return false; + einfo->failed = TRUE; + return FALSE; } - return true; + return TRUE; } /* Search for and possibly create a got entry. */ @@ -2996,7 +3009,7 @@ get_got_entry (abfd, h, r_type, r_symndx /* Handle dynamic relocations when doing an Alpha ELF link. */ -static boolean +static bfd_boolean elf64_alpha_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -3009,11 +3022,11 @@ elf64_alpha_check_relocs (abfd, info, se Elf_Internal_Shdr *symtab_hdr; struct alpha_elf_link_hash_entry **sym_hashes; const Elf_Internal_Rela *rel, *relend; - boolean got_created; + bfd_boolean got_created; bfd_size_type amt; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table(info)->dynobj; if (dynobj == NULL) @@ -3023,7 +3036,7 @@ elf64_alpha_check_relocs (abfd, info, se rel_sec_name = NULL; symtab_hdr = &elf_tdata(abfd)->symtab_hdr; sym_hashes = alpha_elf_sym_hashes(abfd); - got_created = false; + got_created = FALSE; relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; ++rel) @@ -3037,7 +3050,7 @@ elf64_alpha_check_relocs (abfd, info, se unsigned long r_symndx, r_type; struct alpha_elf_link_hash_entry *h; unsigned int gotent_flags; - boolean maybe_dynamic; + bfd_boolean maybe_dynamic; unsigned int need; bfd_vma addend; @@ -3059,12 +3072,12 @@ elf64_alpha_check_relocs (abfd, info, se locally or externally defined, as not all of the input files have yet been processed. Do something with what we know, as this may help reduce memory usage and processing time later. */ - maybe_dynamic = false; + maybe_dynamic = FALSE; if (h && ((info->shared && (!info->symbolic || info->allow_shlib_undefined)) || ! (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) || h->root.root.type == bfd_link_hash_defweak)) - maybe_dynamic = true; + maybe_dynamic = TRUE; need = 0; gotent_flags = 0; @@ -3130,7 +3143,7 @@ elf64_alpha_check_relocs (abfd, info, se if (!got_created) { if (!elf64_alpha_create_got_section (abfd, info)) - return false; + return FALSE; /* Make sure the object's gotobj is set to itself so that we default to every object with its own .got. @@ -3148,7 +3161,7 @@ elf64_alpha_check_relocs (abfd, info, se gotent = get_got_entry (abfd, h, r_type, r_symndx, addend); if (!gotent) - return false; + return FALSE; if (gotent_flags) { @@ -3176,7 +3189,7 @@ elf64_alpha_check_relocs (abfd, info, se (abfd, elf_elfheader(abfd)->e_shstrndx, elf_section_data(sec)->rel_hdr.sh_name)); if (rel_sec_name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (rel_sec_name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -3202,7 +3215,7 @@ elf64_alpha_check_relocs (abfd, info, se if (sreloc == NULL || !bfd_set_section_flags (dynobj, sreloc, flags) || !bfd_set_section_alignment (dynobj, sreloc, 3)) - return false; + return FALSE; } } @@ -3225,7 +3238,7 @@ elf64_alpha_check_relocs (abfd, info, se amt = sizeof (struct alpha_elf_reloc_entry); rent = (struct alpha_elf_reloc_entry *) bfd_alloc (abfd, amt); if (!rent) - return false; + return FALSE; rent->srel = sreloc; rent->rtype = r_type; @@ -3251,7 +3264,7 @@ elf64_alpha_check_relocs (abfd, info, se } } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -3260,7 +3273,7 @@ elf64_alpha_check_relocs (abfd, info, se change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf64_alpha_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -3291,7 +3304,7 @@ elf64_alpha_adjust_dynamic_symbol (info, s = bfd_get_section_by_name(dynobj, ".plt"); if (!s && !elf64_alpha_create_dynamic_sections (dynobj, info)) - return false; + return FALSE; /* The first bit of the .plt is reserved. */ if (s->_raw_size == 0) @@ -3316,7 +3329,7 @@ elf64_alpha_adjust_dynamic_symbol (info, BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf64_External_Rela); - return true; + return TRUE; } else h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; @@ -3330,7 +3343,7 @@ elf64_alpha_adjust_dynamic_symbol (info, || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -3338,14 +3351,14 @@ elf64_alpha_adjust_dynamic_symbol (info, symbols even in regular objects, does not need the hackery of a .dynbss section and COPY dynamic relocations. */ - return true; + return TRUE; } /* Symbol versioning can create new symbols, and make our old symbols indirect to the new ones. Consolidate the got and reloc information in these situations. */ -static boolean +static bfd_boolean elf64_alpha_merge_ind_symbols (hi, dummy) struct alpha_elf_link_hash_entry *hi; PTR dummy ATTRIBUTE_UNUSED; @@ -3353,7 +3366,7 @@ elf64_alpha_merge_ind_symbols (hi, dummy struct alpha_elf_link_hash_entry *hs; if (hi->root.root.type != bfd_link_hash_indirect) - return true; + return TRUE; hs = hi; do { hs = (struct alpha_elf_link_hash_entry *)hs->root.root.u.i.link; @@ -3416,12 +3429,12 @@ elf64_alpha_merge_ind_symbols (hi, dummy } hi->reloc_entries = NULL; - return true; + return TRUE; } /* Is it possible to merge two object file's .got tables? */ -static boolean +static bfd_boolean elf64_alpha_can_merge_gots (a, b) bfd *a, *b; { @@ -3430,11 +3443,11 @@ elf64_alpha_can_merge_gots (a, b) /* Trivial quick fallout test. */ if (total + alpha_elf_tdata (b)->total_got_size <= MAX_GOT_SIZE) - return true; + return TRUE; /* By their nature, local .got entries cannot be merged. */ if ((total += alpha_elf_tdata (b)->local_got_size) > MAX_GOT_SIZE) - return false; + return FALSE; /* Failing the common trivial comparison, we must effectively perform the merge. Not actually performing the merge means that @@ -3471,13 +3484,13 @@ elf64_alpha_can_merge_gots (a, b) total += alpha_got_entry_size (be->reloc_type); if (total > MAX_GOT_SIZE) - return false; + return FALSE; global_found:; } } } - return true; + return TRUE; } /* Actually merge two .got tables. */ @@ -3577,7 +3590,7 @@ elf64_alpha_merge_gots (a, b) /* Calculate the offsets for the got entries. */ -static boolean +static bfd_boolean elf64_alpha_calc_got_offsets_for_symbol (h, arg) struct alpha_elf_link_hash_entry *h; PTR arg ATTRIBUTE_UNUSED; @@ -3597,7 +3610,7 @@ elf64_alpha_calc_got_offsets_for_symbol *plge += alpha_got_entry_size (gotent->reloc_type); } - return true; + return TRUE; } static void @@ -3647,7 +3660,7 @@ elf64_alpha_calc_got_offsets (info) /* Constructs the gots. */ -static boolean +static bfd_boolean elf64_alpha_size_got_sections (info) struct bfd_link_info *info; { @@ -3676,7 +3689,7 @@ elf64_alpha_size_got_sections (info) (_("%s: .got subsegment exceeds 64K (size %d)"), bfd_archive_filename (i), alpha_elf_tdata (this_got)->total_got_size); - return false; + return FALSE; } if (got_list == NULL) @@ -3688,7 +3701,7 @@ elf64_alpha_size_got_sections (info) /* Strange degenerate case of no got references. */ if (got_list == NULL) - return true; + return TRUE; alpha_elf_hash_table (info)->got_list = got_list; @@ -3719,13 +3732,13 @@ elf64_alpha_size_got_sections (info) if (1 || something_changed) elf64_alpha_calc_got_offsets (info); - return true; + return TRUE; } /* Called from relax_section to rebuild the PLT in light of potential changes in the function's status. */ -static boolean +static bfd_boolean elf64_alpha_size_plt_section (info) struct bfd_link_info *info; { @@ -3736,7 +3749,7 @@ elf64_alpha_size_plt_section (info) dynobj = elf_hash_table(info)->dynobj; splt = bfd_get_section_by_name(dynobj, ".plt"); if (splt == NULL) - return true; + return TRUE; splt->_raw_size = 0; @@ -3754,10 +3767,10 @@ elf64_alpha_size_plt_section (info) spltrel->_raw_size = entries * sizeof (Elf64_External_Rela); spltrel->_cooked_size = spltrel->_raw_size; - return true; + return TRUE; } -static boolean +static bfd_boolean elf64_alpha_size_plt_section_1 (h, data) struct alpha_elf_link_hash_entry *h; PTR data; @@ -3767,7 +3780,7 @@ elf64_alpha_size_plt_section_1 (h, data) /* If we didn't need an entry before, we still don't. */ if (!(h->root.elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT)) - return true; + return TRUE; /* There must still be a LITERAL got entry for the function. */ for (gotent = h->got_entries; gotent ; gotent = gotent->next) @@ -3790,10 +3803,10 @@ elf64_alpha_size_plt_section_1 (h, data) h->root.plt.offset = -1; } - return true; + return TRUE; } -static boolean +static bfd_boolean elf64_alpha_always_size_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -3801,7 +3814,7 @@ elf64_alpha_always_size_sections (output bfd *i; if (info->relocateable) - return true; + return TRUE; /* First, take care of the indirect symbols created by versioning. */ alpha_elf_link_hash_traverse (alpha_elf_hash_table (info), @@ -3809,7 +3822,7 @@ elf64_alpha_always_size_sections (output NULL); if (!elf64_alpha_size_got_sections (info)) - return false; + return FALSE; /* Allocate space for all of the .got subsections. */ i = alpha_elf_hash_table (info)->got_list; @@ -3820,11 +3833,11 @@ elf64_alpha_always_size_sections (output { s->contents = (bfd_byte *) bfd_zalloc (i, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } } - return true; + return TRUE; } /* The number of dynamic relocations required by a static relocation. */ @@ -3841,18 +3854,16 @@ alpha_dynamic_entries_for_reloc (r_type, case R_ALPHA_TLSLDM: return shared; case R_ALPHA_LITERAL: + case R_ALPHA_GOTTPREL: return dynamic || shared; case R_ALPHA_GOTDTPREL: - case R_ALPHA_GOTTPREL: return dynamic; /* May appear in data sections. */ case R_ALPHA_REFLONG: case R_ALPHA_REFQUAD: - return dynamic || shared; - case R_ALPHA_SREL64: case R_ALPHA_TPREL64: - return dynamic; + return dynamic || shared; /* Everything else is illegal. We'll issue an error during relocate_section. */ @@ -3863,12 +3874,12 @@ alpha_dynamic_entries_for_reloc (r_type, /* Work out the sizes of the dynamic relocation entries. */ -static boolean +static bfd_boolean elf64_alpha_calc_dynrel_sizes (h, info) struct alpha_elf_link_hash_entry *h; struct bfd_link_info *info; { - boolean dynamic; + bfd_boolean dynamic; struct alpha_elf_reloc_entry *relent; unsigned long entries; @@ -3911,12 +3922,12 @@ elf64_alpha_calc_dynrel_sizes (h, info) } } - return true; + return TRUE; } /* Set the sizes of the dynamic relocation sections. */ -static boolean +static bfd_boolean elf64_alpha_size_rela_got_section (info) struct bfd_link_info *info; { @@ -3956,7 +3967,7 @@ elf64_alpha_size_rela_got_section (info) if (!srel) { BFD_ASSERT (entries == 0); - return true; + return TRUE; } srel->_raw_size = sizeof (Elf64_External_Rela) * entries; @@ -3966,18 +3977,18 @@ elf64_alpha_size_rela_got_section (info) srel->_cooked_size = srel->_raw_size; - return true; + return TRUE; } /* Subroutine of elf64_alpha_size_rela_got_section for doing the global symbols. */ -static boolean +static bfd_boolean elf64_alpha_size_rela_got_1 (h, info) struct alpha_elf_link_hash_entry *h; struct bfd_link_info *info; { - boolean dynamic; + bfd_boolean dynamic; struct alpha_elf_got_entry *gotent; unsigned long entries; @@ -4009,19 +4020,19 @@ elf64_alpha_size_rela_got_1 (h, info) srel->_raw_size += sizeof (Elf64_External_Rela) * entries; } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf64_alpha_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean relplt; + bfd_boolean relplt; dynobj = elf_hash_table(info)->dynobj; BFD_ASSERT(dynobj != NULL); @@ -4051,11 +4062,11 @@ elf64_alpha_size_dynamic_sections (outpu /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relplt = false; + relplt = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if (!(s->flags & SEC_LINKER_CREATED)) continue; @@ -4072,7 +4083,7 @@ elf64_alpha_size_dynamic_sections (outpu it is that function which decides whether anything needs to go into these sections. */ - strip = false; + strip = FALSE; if (strncmp (name, ".rela", 5) == 0) { @@ -4081,7 +4092,7 @@ elf64_alpha_size_dynamic_sections (outpu if (!strip) { if (strcmp(name, ".rela.plt") == 0) - relplt = true; + relplt = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -4101,7 +4112,7 @@ elf64_alpha_size_dynamic_sections (outpu /* Allocate memory for the section contents. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } } @@ -4118,7 +4129,7 @@ elf64_alpha_size_dynamic_sections (outpu if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (relplt) @@ -4127,23 +4138,55 @@ elf64_alpha_size_dynamic_sections (outpu || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + return FALSE; if (info->flags & DF_TEXTREL) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } #undef add_dynamic_entry - return true; + return TRUE; +} + +/* Emit a dynamic relocation for (DYNINDX, RTYPE, ADDEND) at (SEC, OFFSET) + into the next available slot in SREL. */ + +static void +elf64_alpha_emit_dynrel (abfd, info, sec, srel, offset, dynindx, rtype, addend) + bfd *abfd; + struct bfd_link_info *info; + asection *sec, *srel; + bfd_vma offset, addend; + long dynindx, rtype; +{ + Elf_Internal_Rela outrel; + bfd_byte *loc; + + BFD_ASSERT (srel != NULL); + + outrel.r_info = ELF64_R_INFO (dynindx, rtype); + outrel.r_addend = addend; + + offset = _bfd_elf_section_offset (abfd, info, sec, offset); + if ((offset | 1) != (bfd_vma) -1) + outrel.r_offset = sec->output_section->vma + sec->output_offset + offset; + else + memset (&outrel, 0, sizeof (outrel)); + + loc = srel->contents; + loc += srel->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (abfd, &outrel, loc); + BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count + <= srel->_cooked_size); } /* Relocate an Alpha ELF section for a relocatable link. @@ -4152,7 +4195,7 @@ elf64_alpha_size_dynamic_sections (outpu symbol, in which case we have to adjust according to where the section symbol winds up in the output section. */ -static boolean +static bfd_boolean elf64_alpha_relocate_section_r (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -4167,7 +4210,7 @@ elf64_alpha_relocate_section_r (output_b unsigned long symtab_hdr_sh_info; Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; - boolean ret_val = true; + bfd_boolean ret_val = TRUE; symtab_hdr_sh_info = elf_tdata (input_bfd)->symtab_hdr.sh_info; @@ -4186,7 +4229,7 @@ elf64_alpha_relocate_section_r (output_b (_("%s: unknown relocation type %d"), bfd_archive_filename (input_bfd), (int)r_type); bfd_set_error (bfd_error_bad_value); - ret_val = false; + ret_val = FALSE; continue; } @@ -4213,7 +4256,7 @@ elf64_alpha_relocate_section_r (output_b /* Relocate an Alpha ELF section. */ -static boolean +static bfd_boolean elf64_alpha_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -4233,7 +4276,7 @@ elf64_alpha_relocate_section (output_bfd bfd *dynobj, *gotobj; bfd_vma gp, tp_base, dtp_base; struct alpha_elf_got_entry **local_got_entries; - boolean ret_val; + bfd_boolean ret_val; const char *section_name; /* Handle relocatable links with a smaller loop. */ @@ -4244,7 +4287,7 @@ elf64_alpha_relocate_section (output_bfd /* This is a final link. */ - ret_val = true; + ret_val = TRUE; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -4303,8 +4346,8 @@ elf64_alpha_relocate_section (output_bfd asection *sec = NULL; bfd_vma value; bfd_vma addend; - boolean dynamic_symbol_p; - boolean undef_weak_ref = false; + bfd_boolean dynamic_symbol_p; + bfd_boolean undef_weak_ref = FALSE; unsigned long r_type; r_type = ELF64_R_TYPE(rel->r_info); @@ -4314,7 +4357,7 @@ elf64_alpha_relocate_section (output_bfd (_("%s: unknown relocation type %d"), bfd_archive_filename (input_bfd), (int)r_type); bfd_set_error (bfd_error_bad_value); - ret_val = false; + ret_val = FALSE; continue; } @@ -4364,7 +4407,7 @@ elf64_alpha_relocate_section (output_bfd } } - dynamic_symbol_p = false; + dynamic_symbol_p = FALSE; } else { @@ -4394,7 +4437,7 @@ elf64_alpha_relocate_section (output_bfd + sec->output_offset); } else if (h->root.root.type == bfd_link_hash_undefweak) - undef_weak_ref = true; + undef_weak_ref = TRUE; else if (info->shared && (!info->symbolic || info->allow_shlib_undefined) && !info->no_undefined @@ -4407,8 +4450,8 @@ elf64_alpha_relocate_section (output_bfd input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->root.other))))) - return false; - ret_val = false; + return FALSE; + ret_val = FALSE; continue; } @@ -4463,25 +4506,9 @@ elf64_alpha_relocate_section (output_bfd RELATIVE reloc, otherwise it will be handled in finish_dynamic_symbol. */ if (info->shared && !dynamic_symbol_p) - { - Elf_Internal_Rela outrel; - - BFD_ASSERT(srelgot != NULL); - - outrel.r_offset = (sgot->output_section->vma - + sgot->output_offset - + gotent->got_offset); - outrel.r_info = ELF64_R_INFO (0, R_ALPHA_RELATIVE); - outrel.r_addend = value; - - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - ((Elf64_External_Rela *) - srelgot->contents) - + srelgot->reloc_count++); - BFD_ASSERT (sizeof (Elf64_External_Rela) - * srelgot->reloc_count - <= srelgot->_cooked_size); - } + elf64_alpha_emit_dynrel (output_bfd, info, sgot, srelgot, + gotent->got_offset, 0, + R_ALPHA_RELATIVE, value); } value = (sgot->output_section->vma @@ -4498,7 +4525,7 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: gp-relative relocation against dynamic symbol %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } BFD_ASSERT(gp != 0); value -= gp; @@ -4510,7 +4537,7 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: gp-relative relocation against dynamic symbol %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } BFD_ASSERT(gp != 0); value -= gp; @@ -4536,7 +4563,7 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: pc-relative relocation against dynamic symbol %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } /* The regular PC-relative stuff measures from the start of the instruction rather than the end. */ @@ -4564,7 +4591,7 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: change in gp: BRSGP %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } /* The symbol should be marked either NOPV or STD_GPLOAD. */ @@ -4594,7 +4621,7 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: !samegp reloc against symbol without .prologue: %s"), bfd_archive_filename (input_bfd), name); - ret_val = false; + ret_val = FALSE; break; } @@ -4606,7 +4633,8 @@ elf64_alpha_relocate_section (output_bfd case R_ALPHA_DTPREL64: case R_ALPHA_TPREL64: { - Elf_Internal_Rela outrel; + long dynindx, dyntype = r_type; + bfd_vma dynaddend; /* Careful here to remember RELATIVE relocations for global variables for symbolic shared objects. */ @@ -4614,8 +4642,8 @@ elf64_alpha_relocate_section (output_bfd if (dynamic_symbol_p) { BFD_ASSERT(h->root.dynindx != -1); - outrel.r_info = ELF64_R_INFO (h->root.dynindx, r_type); - outrel.r_addend = addend; + dynindx = h->root.dynindx; + dynaddend = addend; addend = 0, value = 0; } else if (r_type == R_ALPHA_DTPREL64) @@ -4627,8 +4655,13 @@ elf64_alpha_relocate_section (output_bfd else if (r_type == R_ALPHA_TPREL64) { BFD_ASSERT(tls_segment != NULL); - value -= dtp_base; - goto default_reloc; + if (!info->shared) + { + value -= tp_base; + goto default_reloc; + } + dynindx = 0; + dynaddend = value - dtp_base; } else if (info->shared && r_symndx != 0 @@ -4640,31 +4673,18 @@ elf64_alpha_relocate_section (output_bfd (_("%s: unhandled dynamic relocation against %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } - outrel.r_info = ELF64_R_INFO (0, R_ALPHA_RELATIVE); - outrel.r_addend = value; + dynindx = 0; + dyntype = R_ALPHA_RELATIVE; + dynaddend = value; } else goto default_reloc; - BFD_ASSERT(srel != NULL); - - outrel.r_offset = - _bfd_elf_section_offset (output_bfd, info, input_section, - rel->r_offset); - if ((outrel.r_offset | 1) != (bfd_vma) -1) - outrel.r_offset += (input_section->output_section->vma - + input_section->output_offset); - else - memset (&outrel, 0, sizeof outrel); - - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - ((Elf64_External_Rela *) - srel->contents) - + srel->reloc_count++); - BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count - <= srel->_cooked_size); + elf64_alpha_emit_dynrel (output_bfd, info, input_section, + srel, rel->r_offset, dynindx, + dyntype, dynaddend); } goto default_reloc; @@ -4676,7 +4696,7 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: pc-relative relocation against dynamic symbol %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } /* ??? .eh_frame references to discarded sections will be smashed @@ -4706,26 +4726,9 @@ elf64_alpha_relocate_section (output_bfd DTPMOD64 reloc, otherwise it will be handled in finish_dynamic_symbol. */ if (info->shared && !dynamic_symbol_p) - { - Elf_Internal_Rela outrel; - - BFD_ASSERT(srelgot != NULL); - - outrel.r_offset = (sgot->output_section->vma - + sgot->output_offset - + gotent->got_offset); - /* ??? Proper dynindx here. */ - outrel.r_info = ELF64_R_INFO (0, R_ALPHA_DTPMOD64); - outrel.r_addend = 0; - - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - ((Elf64_External_Rela *) - srelgot->contents) - + srelgot->reloc_count++); - BFD_ASSERT (sizeof (Elf64_External_Rela) - * srelgot->reloc_count - <= srelgot->_cooked_size); - } + elf64_alpha_emit_dynrel (output_bfd, info, sgot, srelgot, + gotent->got_offset, 0, + R_ALPHA_DTPMOD64, 0); if (dynamic_symbol_p || r_type == R_ALPHA_TLSLDM) value = 0; @@ -4752,7 +4755,7 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: dtp-relative relocation against dynamic symbol %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } BFD_ASSERT(tls_segment != NULL); value -= dtp_base; @@ -4768,14 +4771,14 @@ elf64_alpha_relocate_section (output_bfd (*_bfd_error_handler) (_("%s: TLS local exec code cannot be linked into shared objects"), bfd_archive_filename (input_bfd)); - ret_val = false; + ret_val = FALSE; } else if (dynamic_symbol_p) { (*_bfd_error_handler) (_("%s: tp-relative relocation against dynamic symbol %s"), bfd_archive_filename (input_bfd), h->root.root.root.string); - ret_val = false; + ret_val = FALSE; } BFD_ASSERT(tls_segment != NULL); value -= tp_base; @@ -4799,7 +4802,18 @@ elf64_alpha_relocate_section (output_bfd else { BFD_ASSERT(tls_segment != NULL); - value -= (r_type == R_ALPHA_GOTDTPREL ? dtp_base : tp_base); + if (r_type == R_ALPHA_GOTDTPREL) + value -= dtp_base; + else if (!info->shared) + value -= tp_base; + else + { + elf64_alpha_emit_dynrel (output_bfd, info, sgot, srelgot, + gotent->got_offset, 0, + R_ALPHA_TPREL64, + value - dtp_base); + value = 0; + } } bfd_put_64 (output_bfd, value, sgot->contents + gotent->got_offset); @@ -4843,14 +4857,14 @@ elf64_alpha_relocate_section (output_bfd name = (bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name)); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - ret_val = false; + ret_val = FALSE; } break; @@ -4866,7 +4880,7 @@ elf64_alpha_relocate_section (output_bfd /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf64_alpha_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -4880,6 +4894,7 @@ elf64_alpha_finish_dynamic_symbol (outpu /* Fill in the .plt entry for this symbol. */ asection *splt, *sgot, *srel; Elf_Internal_Rela outrel; + bfd_byte *loc; bfd_vma got_addr, plt_addr; bfd_vma plt_index; struct alpha_elf_got_entry *gotent; @@ -4925,9 +4940,8 @@ elf64_alpha_finish_dynamic_symbol (outpu outrel.r_info = ELF64_R_INFO(h->dynindx, R_ALPHA_JMP_SLOT); outrel.r_addend = 0; - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - ((Elf64_External_Rela *)srel->contents - + plt_index)); + loc = srel->contents + plt_index * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); if (!(h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) { @@ -4956,20 +4970,9 @@ elf64_alpha_finish_dynamic_symbol (outpu sgot->contents + gotent->got_offset); if (info->shared) - { - outrel.r_offset = (sgot->output_section->vma - + sgot->output_offset - + gotent->got_offset); - outrel.r_info = ELF64_R_INFO(0, R_ALPHA_RELATIVE); - outrel.r_addend = plt_addr; - - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - ((Elf64_External_Rela *) - srel->contents) - + srel->reloc_count++); - BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count - <= srel->_cooked_size); - } + elf64_alpha_emit_dynrel (output_bfd, info, sgot, srel, + gotent->got_offset, 0, + R_ALPHA_RELATIVE, plt_addr); gotent = gotent->next; } @@ -4980,7 +4983,6 @@ elf64_alpha_finish_dynamic_symbol (outpu { /* Fill in the dynamic relocations for this symbol's .got entries. */ asection *srel; - Elf_Internal_Rela outrel; struct alpha_elf_got_entry *gotent; srel = bfd_get_section_by_name (dynobj, ".rela.got"); @@ -4991,15 +4993,12 @@ elf64_alpha_finish_dynamic_symbol (outpu gotent = gotent->next) { asection *sgot; - int r_type; + long r_type; if (gotent->use_count == 0) continue; sgot = alpha_elf_tdata (gotent->gotobj)->got; - outrel.r_offset = (sgot->output_section->vma - + sgot->output_offset - + gotent->got_offset); r_type = gotent->reloc_type; switch (r_type) @@ -5021,25 +5020,14 @@ elf64_alpha_finish_dynamic_symbol (outpu abort (); } - outrel.r_info = ELF64_R_INFO (h->dynindx, r_type); - outrel.r_addend = gotent->addend; - - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - ((Elf64_External_Rela *)srel->contents - + srel->reloc_count++)); + elf64_alpha_emit_dynrel (output_bfd, info, sgot, srel, + gotent->got_offset, h->dynindx, + r_type, gotent->addend); if (gotent->reloc_type == R_ALPHA_TLSGD) - { - outrel.r_offset += 8; - outrel.r_info = ELF64_R_INFO (h->dynindx, R_ALPHA_DTPREL64); - - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - ((Elf64_External_Rela *)srel->contents - + srel->reloc_count++)); - } - - BFD_ASSERT (sizeof (Elf64_External_Rela) * srel->reloc_count - <= srel->_cooked_size); + elf64_alpha_emit_dynrel (output_bfd, info, sgot, srel, + gotent->got_offset + 8, h->dynindx, + R_ALPHA_DTPREL64, gotent->addend); } } @@ -5049,12 +5037,12 @@ elf64_alpha_finish_dynamic_symbol (outpu || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf64_alpha_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -5136,19 +5124,18 @@ elf64_alpha_finish_dynamic_sections (out bfd_put_64 (output_bfd, (bfd_vma) 0, splt->contents + 16); bfd_put_64 (output_bfd, (bfd_vma) 0, splt->contents + 24); - elf_section_data (splt->output_section)->this_hdr.sh_entsize = - PLT_HEADER_SIZE; + elf_section_data (splt->output_section)->this_hdr.sh_entsize = 0; } } - return true; + return TRUE; } /* We need to use a special link routine to handle the .mdebug section. We need to merge all instances of these sections together, not write them all out sequentially. */ -static boolean +static bfd_boolean elf64_alpha_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -5205,7 +5192,7 @@ elf64_alpha_final_link (abfd, info) mdebug_handle = bfd_ecoff_debug_init (abfd, &debug, swap, info); if (mdebug_handle == (PTR) NULL) - return false; + return FALSE; if (1) { @@ -5244,7 +5231,7 @@ elf64_alpha_final_link (abfd, info) if (! bfd_ecoff_debug_one_external (abfd, &debug, swap, name[i], &esym)) - return false; + return FALSE; } } @@ -5289,12 +5276,12 @@ elf64_alpha_final_link (abfd, info) ecoff_debug_info structure, so we do that now. */ if (!elf64_alpha_read_ecoff_info (input_bfd, input_section, &input_debug)) - return false; + return FALSE; if (! (bfd_ecoff_debug_accumulate (mdebug_handle, abfd, &debug, swap, input_bfd, &input_debug, input_swap, info))) - return false; + return FALSE; /* Loop through the external symbols. For each one with interesting information, try to find the symbol in @@ -5320,7 +5307,7 @@ elf64_alpha_final_link (abfd, info) name = input_debug.ssext + ext.asym.iss; h = alpha_elf_link_hash_lookup (alpha_elf_hash_table (info), - name, false, false, true); + name, FALSE, FALSE, TRUE); if (h == NULL || h->esym.ifd != -2) continue; @@ -5357,12 +5344,12 @@ elf64_alpha_final_link (abfd, info) einfo.info = info; einfo.debug = &debug; einfo.swap = swap; - einfo.failed = false; + einfo.failed = FALSE; elf_link_hash_traverse (elf_hash_table (info), elf64_alpha_output_extsym, (PTR) &einfo); if (einfo.failed) - return false; + return FALSE; /* Set the size of the .mdebug section. */ o->_raw_size = bfd_ecoff_debug_size (abfd, &debug, swap); @@ -5377,7 +5364,7 @@ elf64_alpha_final_link (abfd, info) /* Invoke the regular ELF backend linker to do all the work. */ if (! bfd_elf64_bfd_final_link (abfd, info)) - return false; + return FALSE; /* Now write out the computed sections. */ @@ -5399,7 +5386,7 @@ elf64_alpha_final_link (abfd, info) sgot->contents, (file_ptr) sgot->output_offset, sgot->_raw_size)) - return false; + return FALSE; } } @@ -5409,12 +5396,12 @@ elf64_alpha_final_link (abfd, info) if (! bfd_ecoff_write_accumulated_debug (mdebug_handle, abfd, &debug, swap, info, mdebug_sec->filepos)) - return false; + return FALSE; bfd_ecoff_debug_free (mdebug_handle, abfd, &debug, swap, info); } - return true; + return TRUE; } static enum elf_reloc_type_class @@ -5504,10 +5491,10 @@ static const struct elf_size_info alpha_ bfd_elf64_slurp_symbol_table, bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out, - NULL, - NULL, - NULL, - NULL + bfd_elf64_swap_reloc_in, + bfd_elf64_swap_reloc_out, + bfd_elf64_swap_reloca_in, + bfd_elf64_swap_reloca_out }; #define TARGET_LITTLE_SYM bfd_elf64_alpha_vec @@ -5616,6 +5603,7 @@ elf64_alpha_fbsd_post_process_headers (a #define elf_backend_post_process_headers \ elf64_alpha_fbsd_post_process_headers +#undef elf64_bed #define elf64_bed elf64_alpha_fbsd_bed #include "elf64-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf64-gen.c binutils-2.13.90.0.18/bfd/elf64-gen.c --- binutils-2.13.90.0.16/bfd/elf64-gen.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/elf64-gen.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* Generic support for 64-bit ELF - Copyright 1993, 1995, 1998, 1999, 2001 Free Software Foundation, Inc. + Copyright 1993, 1995, 1998, 1999, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -30,28 +30,28 @@ static reloc_howto_type dummy = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "UNKNOWN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ static void elf_generic_info_to_howto - PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void elf_generic_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf64_Internal_Rel *)); -static boolean elf64_generic_link_add_symbols + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean elf64_generic_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); static void elf_generic_info_to_howto (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf64_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; + Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; { bfd_reloc->howto = &dummy; } @@ -60,12 +60,12 @@ static void elf_generic_info_to_howto_rel (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf64_Internal_Rel *elf_reloc ATTRIBUTE_UNUSED; + Elf_Internal_Rela *elf_reloc ATTRIBUTE_UNUSED; { bfd_reloc->howto = &dummy; } -static boolean +static bfd_boolean elf64_generic_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -84,7 +84,7 @@ elf64_generic_link_add_symbols (abfd, in ehdrp->e_machine); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } return bfd_elf64_bfd_link_add_symbols (abfd, info); diff -uprN binutils-2.13.90.0.16/bfd/elf64-hppa.c binutils-2.13.90.0.18/bfd/elf64-hppa.c --- binutils-2.13.90.0.16/bfd/elf64-hppa.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf64-hppa.c Mon Dec 16 12:22:52 2002 @@ -156,7 +156,7 @@ struct elf64_hppa_link_hash_table typedef struct bfd_hash_entry *(*new_hash_entry_func) PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean elf64_hppa_dyn_hash_table_init +static bfd_boolean elf64_hppa_dyn_hash_table_init PARAMS ((struct elf64_hppa_dyn_hash_table *ht, bfd *abfd, new_hash_entry_func new)); static struct bfd_hash_entry *elf64_hppa_new_dyn_hash_entry @@ -166,10 +166,10 @@ static struct bfd_link_hash_table *elf64 PARAMS ((bfd *abfd)); static struct elf64_hppa_dyn_hash_entry *elf64_hppa_dyn_hash_lookup PARAMS ((struct elf64_hppa_dyn_hash_table *table, const char *string, - boolean create, boolean copy)); + bfd_boolean create, bfd_boolean copy)); static void elf64_hppa_dyn_hash_traverse PARAMS ((struct elf64_hppa_dyn_hash_table *table, - boolean (*func) (struct elf64_hppa_dyn_hash_entry *, PTR), + bfd_boolean (*func) (struct elf64_hppa_dyn_hash_entry *, PTR), PTR info)); static const char *get_dyn_name @@ -180,102 +180,104 @@ static const char *get_dyn_name hash tables and shared functions. */ #include "elf-hppa.h" -static boolean elf64_hppa_object_p +static bfd_boolean elf64_hppa_object_p PARAMS ((bfd *)); -static boolean elf64_hppa_section_from_shdr - PARAMS ((bfd *, Elf64_Internal_Shdr *, const char *)); +static bfd_boolean elf64_hppa_section_from_shdr + PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); static void elf64_hppa_post_process_headers PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf64_hppa_create_dynamic_sections +static bfd_boolean elf64_hppa_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf64_hppa_adjust_dynamic_symbol +static bfd_boolean elf64_hppa_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean elf64_hppa_mark_milli_and_exported_functions +static bfd_boolean elf64_hppa_mark_milli_and_exported_functions PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf64_hppa_size_dynamic_sections +static bfd_boolean elf64_hppa_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf64_hppa_link_output_symbol_hook -PARAMS ((bfd *abfd, struct bfd_link_info *, const char *, - Elf_Internal_Sym *, asection *input_sec)); +static bfd_boolean elf64_hppa_link_output_symbol_hook + PARAMS ((bfd *abfd, struct bfd_link_info *, const char *, + Elf_Internal_Sym *, asection *input_sec)); -static boolean elf64_hppa_finish_dynamic_symbol +static bfd_boolean elf64_hppa_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static int elf64_hppa_additional_program_headers PARAMS ((bfd *)); +static int elf64_hppa_additional_program_headers + PARAMS ((bfd *)); -static boolean elf64_hppa_modify_segment_map PARAMS ((bfd *)); +static bfd_boolean elf64_hppa_modify_segment_map + PARAMS ((bfd *)); static enum elf_reloc_type_class elf64_hppa_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean elf64_hppa_finish_dynamic_sections +static bfd_boolean elf64_hppa_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf64_hppa_check_relocs +static bfd_boolean elf64_hppa_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf64_hppa_dynamic_symbol_p +static bfd_boolean elf64_hppa_dynamic_symbol_p PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *)); -static boolean elf64_hppa_mark_exported_functions +static bfd_boolean elf64_hppa_mark_exported_functions PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf64_hppa_finalize_opd +static bfd_boolean elf64_hppa_finalize_opd PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean elf64_hppa_finalize_dlt +static bfd_boolean elf64_hppa_finalize_dlt PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean allocate_global_data_dlt +static bfd_boolean allocate_global_data_dlt PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean allocate_global_data_plt +static bfd_boolean allocate_global_data_plt PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean allocate_global_data_stub +static bfd_boolean allocate_global_data_stub PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean allocate_global_data_opd +static bfd_boolean allocate_global_data_opd PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean get_reloc_section +static bfd_boolean get_reloc_section PARAMS ((bfd *, struct elf64_hppa_link_hash_table *, asection *)); -static boolean count_dyn_reloc +static bfd_boolean count_dyn_reloc PARAMS ((bfd *, struct elf64_hppa_dyn_hash_entry *, int, asection *, int, bfd_vma, bfd_vma)); -static boolean allocate_dynrel_entries +static bfd_boolean allocate_dynrel_entries PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean elf64_hppa_finalize_dynreloc +static bfd_boolean elf64_hppa_finalize_dynreloc PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); -static boolean get_opd +static bfd_boolean get_opd PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *)); -static boolean get_plt +static bfd_boolean get_plt PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *)); -static boolean get_dlt +static bfd_boolean get_dlt PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *)); -static boolean get_stub +static bfd_boolean get_stub PARAMS ((bfd *, struct bfd_link_info *, struct elf64_hppa_link_hash_table *)); static int elf64_hppa_elf_get_symbol_type PARAMS ((Elf_Internal_Sym *, int)); -static boolean +static bfd_boolean elf64_hppa_dyn_hash_table_init (ht, abfd, new) struct elf64_hppa_dyn_hash_table *ht; bfd *abfd ATTRIBUTE_UNUSED; @@ -345,7 +347,7 @@ static struct elf64_hppa_dyn_hash_entry elf64_hppa_dyn_hash_lookup(table, string, create, copy) struct elf64_hppa_dyn_hash_table *table; const char *string; - boolean create, copy; + bfd_boolean create, copy; { return ((struct elf64_hppa_dyn_hash_entry *) bfd_hash_lookup (&table->root, string, create, copy)); @@ -356,19 +358,19 @@ elf64_hppa_dyn_hash_lookup(table, string static void elf64_hppa_dyn_hash_traverse (table, func, info) struct elf64_hppa_dyn_hash_table *table; - boolean (*func) PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); + bfd_boolean (*func) PARAMS ((struct elf64_hppa_dyn_hash_entry *, PTR)); PTR info; { (bfd_hash_traverse (&table->root, - (boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) func, + (bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) func, info)); } /* Return nonzero if ABFD represents a PA2.0 ELF64 file. Additionally we set the default architecture and machine. */ -static boolean +static bfd_boolean elf64_hppa_object_p (abfd) bfd *abfd; { @@ -379,12 +381,12 @@ elf64_hppa_object_p (abfd) if (strcmp (bfd_get_target (abfd), "elf64-hppa-linux") == 0) { if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX) - return false; + return FALSE; } else { if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_HPUX) - return false; + return FALSE; } flags = i_ehdrp->e_flags; @@ -400,15 +402,15 @@ elf64_hppa_object_p (abfd) return bfd_default_set_arch_mach (abfd, bfd_arch_hppa, 25); } /* Don't be fussy. */ - return true; + return TRUE; } /* Given section type (hdr->sh_type), return a boolean indicating whether or not the section is an elf64-hppa specific section. */ -static boolean +static bfd_boolean elf64_hppa_section_from_shdr (abfd, hdr, name) bfd *abfd; - Elf64_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; const char *name; { asection *newsect; @@ -417,23 +419,23 @@ elf64_hppa_section_from_shdr (abfd, hdr, { case SHT_PARISC_EXT: if (strcmp (name, ".PARISC.archext") != 0) - return false; + return FALSE; break; case SHT_PARISC_UNWIND: if (strcmp (name, ".PARISC.unwind") != 0) - return false; + return FALSE; break; case SHT_PARISC_DOC: case SHT_PARISC_ANNOT: default: - return false; + return FALSE; } if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; newsect = hdr->bfd_section; - return true; + return TRUE; } /* Construct a string for use in the elf64_hppa_dyn_hash_table. The @@ -497,7 +499,7 @@ get_dyn_name (sec, h, rel, pbuf, plen) /* SEC is a section containing relocs for an input BFD when linking; return a suitable section for holding relocs in the output BFD for a link. */ -static boolean +static bfd_boolean get_reloc_section (abfd, hppa_info, sec) bfd *abfd; struct elf64_hppa_link_hash_table *hppa_info; @@ -511,7 +513,7 @@ get_reloc_section (abfd, hppa_info, sec) (abfd, elf_elfheader(abfd)->e_shstrndx, elf_section_data(sec)->rel_hdr.sh_name)); if (srel_name == NULL) - return false; + return FALSE; BFD_ASSERT ((strncmp (srel_name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -537,11 +539,11 @@ get_reloc_section (abfd, hppa_info, sec) | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (dynobj, srel, 3)) - return false; + return FALSE; } hppa_info->other_rel_sec = srel; - return true; + return TRUE; } /* Add a new entry to the list of dynamic relocations against DYN_H. @@ -550,7 +552,7 @@ get_reloc_section (abfd, hppa_info, sec) particular symbol so that we can create FPTR relocations in the output file. */ -static boolean +static bfd_boolean count_dyn_reloc (abfd, dyn_h, type, sec, sec_symndx, offset, addend) bfd *abfd; struct elf64_hppa_dyn_hash_entry *dyn_h; @@ -565,7 +567,7 @@ count_dyn_reloc (abfd, dyn_h, type, sec, rent = (struct elf64_hppa_dyn_reloc_entry *) bfd_alloc (abfd, (bfd_size_type) sizeof (*rent)); if (!rent) - return false; + return FALSE; rent->next = dyn_h->reloc_entries; rent->type = type; @@ -575,13 +577,13 @@ count_dyn_reloc (abfd, dyn_h, type, sec, rent->addend = addend; dyn_h->reloc_entries = rent; - return true; + return TRUE; } /* Scan the RELOCS and record the type of dynamic entries that each referenced symbol needs. */ -static boolean +static bfd_boolean elf64_hppa_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -598,14 +600,14 @@ elf64_hppa_check_relocs (abfd, info, sec int sec_symndx; if (info->relocateable) - return true; + return TRUE; /* If this is the first dynamic object found in the link, create the special sections required for dynamic linking. */ if (! elf_hash_table (info)->dynamic_sections_created) { if (! bfd_elf64_link_create_dynamic_sections (abfd, info)) - return false; + return FALSE; } hppa_info = elf64_hppa_hash_table (info); @@ -639,7 +641,7 @@ elf64_hppa_check_relocs (abfd, info, sec symtab_hdr->sh_info, 0, NULL, NULL, NULL); if (local_syms == NULL) - return false; + return FALSE; } /* Record the highest section index referenced by the local symbols. */ @@ -694,7 +696,7 @@ elf64_hppa_check_relocs (abfd, info, sec /* If we did not find a section symbol for this section, then something went terribly wrong above. */ if (sec_symndx == -1) - return false; + return FALSE; sec_symndx = hppa_info->section_syms[sec_symndx]; } @@ -721,7 +723,7 @@ elf64_hppa_check_relocs (abfd, info, sec struct elf64_hppa_dyn_hash_entry *dyn_h; int need_entry; const char *addr_name; - boolean maybe_dynamic; + bfd_boolean maybe_dynamic; int dynrel_type = R_PARISC_NONE; static reloc_howto_type *howto; @@ -742,12 +744,12 @@ elf64_hppa_check_relocs (abfd, info, sec locally or externally defined, as not all of the input files have yet been processed. Do something with what we know, as this may help reduce memory usage and processing time later. */ - maybe_dynamic = false; + maybe_dynamic = FALSE; if (h && ((info->shared && (!info->symbolic || info->allow_shlib_undefined) ) || ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) || h->root.type == bfd_link_hash_defweak)) - maybe_dynamic = true; + maybe_dynamic = TRUE; howto = elf_hppa_howto_table + ELF64_R_TYPE (rel->r_info); need_entry = 0; @@ -856,7 +858,7 @@ elf64_hppa_check_relocs (abfd, info, sec /* Collect the canonical entry data for this address. */ dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table, - addr_name, true, true); + addr_name, TRUE, TRUE); BFD_ASSERT (dyn_h); /* Stash away enough information to be able to find this symbol @@ -927,18 +929,18 @@ elf64_hppa_check_relocs (abfd, info, sec if (info->shared && dynrel_type == R_PARISC_FPTR64 && ! (_bfd_elf64_link_record_local_dynamic_symbol (info, abfd, sec_symndx))) - return false; + return FALSE; } } if (buf) free (buf); - return true; + return TRUE; err_out: if (buf) free (buf); - return false; + return FALSE; } struct elf64_hppa_allocate_data @@ -949,41 +951,41 @@ struct elf64_hppa_allocate_data /* Should we do dynamic things to this symbol? */ -static boolean +static bfd_boolean elf64_hppa_dynamic_symbol_p (h, info) struct elf_link_hash_entry *h; struct bfd_link_info *info; { if (h == NULL) - return false; + return FALSE; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; if (h->dynindx == -1) - return false; + return FALSE; if (h->root.type == bfd_link_hash_undefweak || h->root.type == bfd_link_hash_defweak) - return true; + return TRUE; if (h->root.root.string[0] == '$' && h->root.root.string[1] == '$') - return false; + return FALSE; if ((info->shared && (!info->symbolic || info->allow_shlib_undefined)) || ((h->elf_link_hash_flags & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)) == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))) - return true; + return TRUE; - return false; + return FALSE; } /* Mark all funtions exported by this file so that we can later allocate entries in .opd for them. */ -static boolean +static bfd_boolean elf64_hppa_mark_exported_functions (h, data) struct elf_link_hash_entry *h; PTR data; @@ -1006,13 +1008,13 @@ elf64_hppa_mark_exported_functions (h, d /* Add this symbol to the PA64 linker hash table. */ dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table, - h->root.root.string, true, true); + h->root.root.string, TRUE, TRUE); BFD_ASSERT (dyn_h); dyn_h->h = h; if (! hppa_info->opd_sec && ! get_opd (hppa_info->root.dynobj, info, hppa_info)) - return false; + return FALSE; dyn_h->want_opd = 1; /* Put a flag here for output_symbol_hook. */ @@ -1020,12 +1022,12 @@ elf64_hppa_mark_exported_functions (h, d h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; } - return true; + return TRUE; } /* Allocate space for a DLT entry. */ -static boolean +static bfd_boolean allocate_global_data_dlt (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -1049,19 +1051,19 @@ allocate_global_data_dlt (dyn_h, data) if (! (_bfd_elf64_link_record_local_dynamic_symbol (x->info, owner, dyn_h->sym_indx))) - return false; + return FALSE; } } dyn_h->dlt_offset = x->ofs; x->ofs += DLT_ENTRY_SIZE; } - return true; + return TRUE; } /* Allocate space for a DLT.PLT entry. */ -static boolean +static bfd_boolean allocate_global_data_plt (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -1082,12 +1084,12 @@ allocate_global_data_plt (dyn_h, data) else dyn_h->want_plt = 0; - return true; + return TRUE; } /* Allocate space for a STUB entry. */ -static boolean +static bfd_boolean allocate_global_data_stub (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -1105,12 +1107,12 @@ allocate_global_data_stub (dyn_h, data) } else dyn_h->want_stub = 0; - return true; + return TRUE; } /* Allocate space for a FPTR entry. */ -static boolean +static bfd_boolean allocate_global_data_opd (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -1153,7 +1155,7 @@ allocate_global_data_opd (dyn_h, data) if (!_bfd_elf64_link_record_local_dynamic_symbol (x->info, owner, dyn_h->sym_indx)) - return false; + return FALSE; } /* This may not be necessary or desirable anymore now that @@ -1171,14 +1173,14 @@ allocate_global_data_opd (dyn_h, data) strcpy (new_name + 1, h->root.root.string); nh = elf_link_hash_lookup (elf_hash_table (x->info), - new_name, true, true, true); + new_name, TRUE, TRUE, TRUE); nh->root.type = h->root.type; nh->root.u.def.value = h->root.u.def.value; nh->root.u.def.section = h->root.u.def.section; if (! bfd_elf64_link_record_dynamic_symbol (x->info, nh)) - return false; + return FALSE; } dyn_h->opd_offset = x->ofs; @@ -1189,7 +1191,7 @@ allocate_global_data_opd (dyn_h, data) else dyn_h->want_opd = 0; } - return true; + return TRUE; } /* HP requires the EI_OSABI field to be filled in. The assignment to @@ -1220,7 +1222,7 @@ elf64_hppa_post_process_headers (abfd, l refers to the fact that these descriptors are used when taking the address of a procedure, thus ensuring a unique address for each procedure. */ -static boolean +static bfd_boolean get_opd (abfd, info, hppa_info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1247,18 +1249,18 @@ get_opd (abfd, info, hppa_info) || !bfd_set_section_alignment (abfd, opd, 3)) { BFD_ASSERT (0); - return false; + return FALSE; } hppa_info->opd_sec = opd; } - return true; + return TRUE; } /* Create the PLT section. */ -static boolean +static bfd_boolean get_plt (abfd, info, hppa_info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1285,18 +1287,18 @@ get_plt (abfd, info, hppa_info) || !bfd_set_section_alignment (abfd, plt, 3)) { BFD_ASSERT (0); - return false; + return FALSE; } hppa_info->plt_sec = plt; } - return true; + return TRUE; } /* Create the DLT section. */ -static boolean +static bfd_boolean get_dlt (abfd, info, hppa_info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1323,18 +1325,18 @@ get_dlt (abfd, info, hppa_info) || !bfd_set_section_alignment (abfd, dlt, 3)) { BFD_ASSERT (0); - return false; + return FALSE; } hppa_info->dlt_sec = dlt; } - return true; + return TRUE; } /* Create the stubs section. */ -static boolean +static bfd_boolean get_stub (abfd, info, hppa_info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1362,13 +1364,13 @@ get_stub (abfd, info, hppa_info) || !bfd_set_section_alignment (abfd, stub, 3)) { BFD_ASSERT (0); - return false; + return FALSE; } hppa_info->stub_sec = stub; } - return true; + return TRUE; } /* Create sections necessary for dynamic linking. This is only a rough @@ -1409,7 +1411,7 @@ get_stub (abfd, info, hppa_info) .rela.opd: EPLT relocations for symbols exported from shared libraries. */ -static boolean +static bfd_boolean elf64_hppa_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1417,16 +1419,16 @@ elf64_hppa_create_dynamic_sections (abfd asection *s; if (! get_stub (abfd, info, elf64_hppa_hash_table (info))) - return false; + return FALSE; if (! get_dlt (abfd, info, elf64_hppa_hash_table (info))) - return false; + return FALSE; if (! get_plt (abfd, info, elf64_hppa_hash_table (info))) - return false; + return FALSE; if (! get_opd (abfd, info, elf64_hppa_hash_table (info))) - return false; + return FALSE; s = bfd_make_section(abfd, ".rela.dlt"); if (s == NULL @@ -1436,7 +1438,7 @@ elf64_hppa_create_dynamic_sections (abfd | SEC_READONLY | SEC_LINKER_CREATED)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; elf64_hppa_hash_table (info)->dlt_rel_sec = s; s = bfd_make_section(abfd, ".rela.plt"); @@ -1447,7 +1449,7 @@ elf64_hppa_create_dynamic_sections (abfd | SEC_READONLY | SEC_LINKER_CREATED)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; elf64_hppa_hash_table (info)->plt_rel_sec = s; s = bfd_make_section(abfd, ".rela.data"); @@ -1458,7 +1460,7 @@ elf64_hppa_create_dynamic_sections (abfd | SEC_READONLY | SEC_LINKER_CREATED)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; elf64_hppa_hash_table (info)->other_rel_sec = s; s = bfd_make_section(abfd, ".rela.opd"); @@ -1469,16 +1471,16 @@ elf64_hppa_create_dynamic_sections (abfd | SEC_READONLY | SEC_LINKER_CREATED)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; elf64_hppa_hash_table (info)->opd_rel_sec = s; - return true; + return TRUE; } /* Allocate dynamic relocations for those symbols that turned out to be dynamic. */ -static boolean +static bfd_boolean allocate_dynrel_entries (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -1486,7 +1488,7 @@ allocate_dynrel_entries (dyn_h, data) struct elf64_hppa_allocate_data *x = (struct elf64_hppa_allocate_data *)data; struct elf64_hppa_link_hash_table *hppa_info; struct elf64_hppa_dyn_reloc_entry *rent; - boolean dynamic_symbol, shared; + bfd_boolean dynamic_symbol, shared; hppa_info = elf64_hppa_hash_table (x->info); dynamic_symbol = elf64_hppa_dynamic_symbol_p (dyn_h->h, x->info); @@ -1495,7 +1497,7 @@ allocate_dynrel_entries (dyn_h, data) /* We may need to allocate relocations for a non-dynamic symbol when creating a shared library. */ if (!dynamic_symbol && !shared) - return true; + return TRUE; /* Take care of the normal data relocations. */ @@ -1515,7 +1517,7 @@ allocate_dynrel_entries (dyn_h, data) || (dyn_h->h->dynindx == -1 && dyn_h->h->type != STT_PARISC_MILLI)) if (!_bfd_elf64_link_record_local_dynamic_symbol (x->info, rent->sec->owner, dyn_h->sym_indx)) - return false; + return FALSE; } /* Take care of the GOT and PLT relocations. */ @@ -1544,13 +1546,13 @@ allocate_dynrel_entries (dyn_h, data) hppa_info->plt_rel_sec->_raw_size += t; } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a regular object. */ -static boolean +static bfd_boolean elf64_hppa_adjust_dynamic_symbol (info, h) struct bfd_link_info *info ATTRIBUTE_UNUSED; struct elf_link_hash_entry *h; @@ -1567,7 +1569,7 @@ elf64_hppa_adjust_dynamic_symbol (info, || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* If this is a reference to a symbol defined by a dynamic object which @@ -1577,7 +1579,7 @@ elf64_hppa_adjust_dynamic_symbol (info, But PA64 code is canonically PIC, so as a rule we can avoid this sort of hackery. */ - return true; + return TRUE; } /* This function is called via elf_link_hash_traverse to mark millicode @@ -1585,7 +1587,7 @@ elf64_hppa_adjust_dynamic_symbol (info, from the dynamic symbol table. If the symbol is not a millicode symbol, elf64_hppa_mark_exported_functions is called. */ -static boolean +static bfd_boolean elf64_hppa_mark_milli_and_exported_functions (h, data) struct elf_link_hash_entry *h; PTR data; @@ -1604,7 +1606,7 @@ elf64_hppa_mark_milli_and_exported_funct _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr, elf->dynstr_index); } - return true; + return TRUE; } return elf64_hppa_mark_exported_functions (h, data); @@ -1613,16 +1615,16 @@ elf64_hppa_mark_milli_and_exported_funct /* Set the final sizes of the dynamic sections and allocate memory for the contents of our special sections. */ -static boolean +static bfd_boolean elf64_hppa_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean plt; - boolean relocs; - boolean reltext; + bfd_boolean plt; + bfd_boolean relocs; + bfd_boolean reltext; struct elf64_hppa_allocate_data data; struct elf64_hppa_link_hash_table *hppa_info; @@ -1703,13 +1705,13 @@ elf64_hppa_size_dynamic_sections (output allocate_dynrel_entries, &data); /* The sizes of all the sections are set. Allocate memory for them. */ - plt = false; - relocs = false; - reltext = false; + plt = FALSE; + relocs = FALSE; + reltext = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -1725,12 +1727,12 @@ elf64_hppa_size_dynamic_sections (output /* Strip this section if we don't need it; see the comment below. */ if (s->_raw_size == 0) { - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strcmp (name, ".dlt") == 0) @@ -1738,7 +1740,7 @@ elf64_hppa_size_dynamic_sections (output /* Strip this section if we don't need it; see the comment below. */ if (s->_raw_size == 0) { - strip = true; + strip = TRUE; } } else if (strcmp (name, ".opd") == 0) @@ -1746,7 +1748,7 @@ elf64_hppa_size_dynamic_sections (output /* Strip this section if we don't need it; see the comment below. */ if (s->_raw_size == 0) { - strip = true; + strip = TRUE; } } else if (strncmp (name, ".rela", 5) == 0) @@ -1769,7 +1771,7 @@ elf64_hppa_size_dynamic_sections (output adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { @@ -1781,7 +1783,7 @@ elf64_hppa_size_dynamic_sections (output { const char *outname; - relocs = true; + relocs = TRUE; /* If this relocation section applies to a read only section, then we probably need a DT_TEXTREL @@ -1794,7 +1796,7 @@ elf64_hppa_size_dynamic_sections (output if (target != NULL && (target->flags & SEC_READONLY) != 0 && (target->flags & SEC_ALLOC) != 0) - reltext = true; + reltext = TRUE; } /* We use the reloc_count field as a counter if we need @@ -1826,7 +1828,7 @@ elf64_hppa_size_dynamic_sections (output { s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } } @@ -1840,7 +1842,7 @@ elf64_hppa_size_dynamic_sections (output if (!add_dynamic_entry (DT_HP_DLD_FLAGS, 0) || !add_dynamic_entry (DT_PLTGOT, 0)) - return false; + return FALSE; /* Add some entries to the .dynamic section. We fill in the values later, in elf64_hppa_finish_dynamic_sections, but we @@ -1852,20 +1854,20 @@ elf64_hppa_size_dynamic_sections (output if (!add_dynamic_entry (DT_DEBUG, 0) || !add_dynamic_entry (DT_HP_DLD_HOOK, 0) || !add_dynamic_entry (DT_HP_LOAD_MAP, 0)) - return false; + return FALSE; } /* Force DT_FLAGS to always be set. Required by HPUX 11.00 patch PHSS_26559. */ if (!add_dynamic_entry (DT_FLAGS, (info)->flags)) - return false; + return FALSE; if (plt) { if (!add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -1873,19 +1875,19 @@ elf64_hppa_size_dynamic_sections (output if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + return FALSE; } if (reltext) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; info->flags |= DF_TEXTREL; } } #undef add_dynamic_entry - return true; + return TRUE; } /* Called after we have output the symbol into the dynamic symbol @@ -1897,7 +1899,7 @@ elf64_hppa_size_dynamic_sections (output the symbols have their expected value in the normal symbol table. Ick. */ -static boolean +static bfd_boolean elf64_hppa_link_output_symbol_hook (abfd, info, name, sym, input_sec) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -1911,12 +1913,12 @@ elf64_hppa_link_output_symbol_hook (abfd /* We may be called with the file symbol or section symbols. They never need munging, so it is safe to ignore them. */ if (!name) - return true; + return TRUE; /* Get the PA dyn_symbol (if any) associated with NAME. */ hppa_info = elf64_hppa_hash_table (info); dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table, - name, false, false); + name, FALSE, FALSE); /* Function symbols for which we created .opd entries *may* have been munged by finish_dynamic_symbol and have to be un-munged here. @@ -1932,13 +1934,13 @@ elf64_hppa_link_output_symbol_hook (abfd sym->st_shndx = dyn_h->st_shndx; } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf64_hppa_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -1951,7 +1953,7 @@ elf64_hppa_finish_dynamic_symbol (output hppa_info = elf64_hppa_hash_table (info); dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table, - h->root.root.string, false, false); + h->root.root.string, FALSE, FALSE); stub = hppa_info->stub_sec; splt = hppa_info->plt_sec; @@ -1991,6 +1993,7 @@ elf64_hppa_finish_dynamic_symbol (output { bfd_vma value; Elf_Internal_Rela rel; + bfd_byte *loc; BFD_ASSERT (splt != NULL && spltrel != NULL) @@ -2029,11 +2032,9 @@ elf64_hppa_finish_dynamic_symbol (output rel.r_info = ELF64_R_INFO (h->dynindx, R_PARISC_IPLT); rel.r_addend = 0; - bfd_elf64_swap_reloca_out (splt->output_section->owner, &rel, - (((Elf64_External_Rela *) - spltrel->contents) - + spltrel->reloc_count)); - spltrel->reloc_count++; + loc = spltrel->contents; + loc += spltrel->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (splt->output_section->owner, &rel, loc); } /* Initialize an external call stub entry if requested. */ @@ -2085,7 +2086,7 @@ elf64_hppa_finish_dynamic_symbol (output (*_bfd_error_handler) (_("stub entry for %s cannot load .plt, dp offset = %ld"), dyn_h->root.string, (long) value); - return false; + return FALSE; } bfd_put_32 (stub->owner, (bfd_vma) insn, @@ -2108,13 +2109,13 @@ elf64_hppa_finish_dynamic_symbol (output stub->contents + dyn_h->stub_offset + 8); } - return true; + return TRUE; } /* The .opd section contains FPTRs for each function this file exports. Initialize the FPTR entries. */ -static boolean +static bfd_boolean elf64_hppa_finalize_opd (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -2156,7 +2157,8 @@ elf64_hppa_finalize_opd (dyn_h, data) had their address taken). */ if (info->shared && dyn_h && dyn_h->want_opd) { - Elf64_Internal_Rela rel; + Elf_Internal_Rela rel; + bfd_byte *loc; int dynindx; /* We may need to do a relocation against a local symbol, in @@ -2211,7 +2213,7 @@ elf64_hppa_finalize_opd (dyn_h, data) strcpy (new_name + 1, h->root.root.string); nh = elf_link_hash_lookup (elf_hash_table (info), - new_name, false, false, false); + new_name, FALSE, FALSE, FALSE); /* All we really want from the new symbol is its dynamic symbol index. */ @@ -2221,20 +2223,18 @@ elf64_hppa_finalize_opd (dyn_h, data) rel.r_addend = 0; rel.r_info = ELF64_R_INFO (dynindx, R_PARISC_EPLT); - bfd_elf64_swap_reloca_out (sopd->output_section->owner, &rel, - (((Elf64_External_Rela *) - sopdrel->contents) - + sopdrel->reloc_count)); - sopdrel->reloc_count++; + loc = sopdrel->contents; + loc += sopdrel->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (sopd->output_section->owner, &rel, loc); } - return true; + return TRUE; } /* The .dlt section contains addresses for items referenced through the dlt. Note that we can have a DLTIND relocation for a local symbol, thus we can not depend on finish_dynamic_symbol to initialize the .dlt. */ -static boolean +static bfd_boolean elf64_hppa_finalize_dlt (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -2291,7 +2291,8 @@ elf64_hppa_finalize_dlt (dyn_h, data) if (dyn_h->want_dlt && (elf64_hppa_dynamic_symbol_p (dyn_h->h, info) || info->shared)) { - Elf64_Internal_Rela rel; + Elf_Internal_Rela rel; + bfd_byte *loc; int dynindx; /* We may need to do a relocation against a local symbol, in @@ -2315,19 +2316,17 @@ elf64_hppa_finalize_dlt (dyn_h, data) rel.r_info = ELF64_R_INFO (dynindx, R_PARISC_DIR64); rel.r_addend = 0; - bfd_elf64_swap_reloca_out (sdlt->output_section->owner, &rel, - (((Elf64_External_Rela *) - sdltrel->contents) - + sdltrel->reloc_count)); - sdltrel->reloc_count++; + loc = sdltrel->contents; + loc += sdltrel->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (sdlt->output_section->owner, &rel, loc); } - return true; + return TRUE; } /* Finalize the dynamic relocations. Specifically the FPTR relocations for dynamic functions used to initialize static data. */ -static boolean +static bfd_boolean elf64_hppa_finalize_dynreloc (dyn_h, data) struct elf64_hppa_dyn_hash_entry *dyn_h; PTR data; @@ -2340,7 +2339,7 @@ elf64_hppa_finalize_dynreloc (dyn_h, dat dynamic_symbol = elf64_hppa_dynamic_symbol_p (dyn_h->h, info); if (!dynamic_symbol && !info->shared) - return true; + return TRUE; if (dyn_h->reloc_entries) { @@ -2362,7 +2361,8 @@ elf64_hppa_finalize_dynreloc (dyn_h, dat for (rent = dyn_h->reloc_entries; rent; rent = rent->next) { - Elf64_Internal_Rela rel; + Elf_Internal_Rela rel; + bfd_byte *loc; /* Allocate one iff we are building a shared library, the relocation isn't a R_PARISC_FPTR64, or we don't want an opd entry. */ @@ -2429,16 +2429,15 @@ elf64_hppa_finalize_dynreloc (dyn_h, dat rel.r_info = ELF64_R_INFO (dynindx, rent->type); + loc = hppa_info->other_rel_sec->contents; + loc += (hppa_info->other_rel_sec->reloc_count++ + * sizeof (Elf64_External_Rela)); bfd_elf64_swap_reloca_out (hppa_info->other_rel_sec->output_section->owner, - &rel, - (((Elf64_External_Rela *) - hppa_info->other_rel_sec->contents) - + hppa_info->other_rel_sec->reloc_count)); - hppa_info->other_rel_sec->reloc_count++; + &rel, loc); } } - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -2464,7 +2463,7 @@ elf64_hppa_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf64_hppa_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2572,7 +2571,7 @@ elf64_hppa_finish_dynamic_sections (outp } } - return true; + return TRUE; } /* Return the number of additional phdrs we will need. @@ -2614,7 +2613,7 @@ elf64_hppa_additional_program_headers (a to guess whether or not we are building a shared library based on the existence of a .interp section. */ -static boolean +static bfd_boolean elf64_hppa_modify_segment_map (abfd) bfd *abfd; { @@ -2632,7 +2631,7 @@ elf64_hppa_modify_segment_map (abfd) m = ((struct elf_segment_map *) bfd_zalloc (abfd, (bfd_size_type) sizeof *m)); if (m == NULL) - return false; + return FALSE; m->p_type = PT_PHDR; m->p_flags = PF_R | PF_X; @@ -2663,7 +2662,7 @@ elf64_hppa_modify_segment_map (abfd) } } - return true; + return TRUE; } /* Called when writing out an object file to decide the type of a @@ -2704,10 +2703,10 @@ const struct elf_size_info hppa64_elf_si bfd_elf64_slurp_symbol_table, bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out, - NULL, - NULL, - NULL, - NULL + bfd_elf64_swap_reloc_in, + bfd_elf64_swap_reloc_out, + bfd_elf64_swap_reloca_in, + bfd_elf64_swap_reloca_out }; #define TARGET_BIG_SYM bfd_elf64_hppa_vec @@ -2772,10 +2771,10 @@ const struct elf_size_info hppa64_elf_si #define elf_backend_want_plt_sym 0 #define elf_backend_got_header_size 0 #define elf_backend_plt_header_size 0 -#define elf_backend_type_change_ok true -#define elf_backend_get_symbol_type elf64_hppa_elf_get_symbol_type -#define elf_backend_reloc_type_class elf64_hppa_reloc_type_class -#define elf_backend_rela_normal 1 +#define elf_backend_type_change_ok TRUE +#define elf_backend_get_symbol_type elf64_hppa_elf_get_symbol_type +#define elf_backend_reloc_type_class elf64_hppa_reloc_type_class +#define elf_backend_rela_normal 1 #include "elf64-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf64-mips.c binutils-2.13.90.0.18/bfd/elf64-mips.c --- binutils-2.13.90.0.16/bfd/elf64-mips.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elf64-mips.c Mon Dec 16 12:22:52 2002 @@ -63,20 +63,20 @@ Foundation, Inc., 59 Temple Place - Suit static void mips_elf64_swap_reloc_in PARAMS ((bfd *, const Elf64_Mips_External_Rel *, - Elf64_Mips_Internal_Rel *)); + Elf64_Mips_Internal_Rela *)); static void mips_elf64_swap_reloca_in PARAMS ((bfd *, const Elf64_Mips_External_Rela *, Elf64_Mips_Internal_Rela *)); static void mips_elf64_swap_reloc_out - PARAMS ((bfd *, const Elf64_Mips_Internal_Rel *, + PARAMS ((bfd *, const Elf64_Mips_Internal_Rela *, Elf64_Mips_External_Rel *)); static void mips_elf64_swap_reloca_out PARAMS ((bfd *, const Elf64_Mips_Internal_Rela *, Elf64_Mips_External_Rela *)); static void mips_elf64_be_swap_reloc_in - PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rel *)); + PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); static void mips_elf64_be_swap_reloc_out - PARAMS ((bfd *, const Elf_Internal_Rel *, bfd_byte *)); + PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); static void mips_elf64_be_swap_reloca_in PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); static void mips_elf64_be_swap_reloca_out @@ -84,17 +84,19 @@ static void mips_elf64_be_swap_reloca_ou static reloc_howto_type *bfd_elf64_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static reloc_howto_type *mips_elf64_rtype_to_howto - PARAMS ((unsigned int, boolean)); + PARAMS ((unsigned int, bfd_boolean)); static void mips_elf64_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf64_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void mips_elf64_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *)); -static long mips_elf64_get_reloc_upper_bound PARAMS ((bfd *, asection *)); -static boolean mips_elf64_slurp_one_reloc_table + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static long mips_elf64_get_reloc_upper_bound + PARAMS ((bfd *, asection *)); +static bfd_boolean mips_elf64_slurp_one_reloc_table PARAMS ((bfd *, asection *, asymbol **, const Elf_Internal_Shdr *)); -static boolean mips_elf64_slurp_reloc_table - PARAMS ((bfd *, asection *, asymbol **, boolean)); -static void mips_elf64_write_relocs PARAMS ((bfd *, asection *, PTR)); +static bfd_boolean mips_elf64_slurp_reloc_table + PARAMS ((bfd *, asection *, asymbol **, bfd_boolean)); +static void mips_elf64_write_relocs + PARAMS ((bfd *, asection *, PTR)); static void mips_elf64_write_rel PARAMS((bfd *, asection *, Elf_Internal_Shdr *, int *, PTR)); static void mips_elf64_write_rela @@ -115,11 +117,18 @@ static bfd_reloc_status_type mips16_jump PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips16_gprel_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean mips_elf64_assign_gp PARAMS ((bfd *, bfd_vma *)); +static bfd_boolean mips_elf64_assign_gp + PARAMS ((bfd *, bfd_vma *)); static bfd_reloc_status_type mips_elf64_final_gp - PARAMS ((bfd *, asymbol *, boolean, char **, bfd_vma *)); -static boolean mips_elf64_object_p PARAMS ((bfd *)); -static irix_compat_t elf64_mips_irix_compat PARAMS ((bfd *)); + PARAMS ((bfd *, asymbol *, bfd_boolean, char **, bfd_vma *)); +static bfd_boolean mips_elf64_object_p + PARAMS ((bfd *)); +static irix_compat_t elf64_mips_irix_compat + PARAMS ((bfd *)); +static bfd_boolean elf64_mips_grok_prstatus + PARAMS ((bfd *, Elf_Internal_Note *)); +static bfd_boolean elf64_mips_grok_psinfo + PARAMS ((bfd *, Elf_Internal_Note *)); extern const bfd_target bfd_elf64_bigmips_vec; extern const bfd_target bfd_elf64_littlemips_vec; @@ -140,67 +149,67 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit relocation. */ HOWTO (R_MIPS_16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit relocation. */ HOWTO (R_MIPS_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit symbol relative relocation. */ HOWTO (R_MIPS_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_REL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 26 bit jump address. */ HOWTO (R_MIPS_26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -208,10 +217,10 @@ static reloc_howto_type mips_elf64_howto bits must match the PC + 4. */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03ffffff, /* src_mask */ 0x03ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* R_MIPS_HI16 and R_MIPS_LO16 are unsupported for NewABI REL. However, the native IRIX6 tools use them, so we try our best. */ @@ -221,120 +230,120 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf64_hi16_reloc, /* special_function */ "R_MIPS_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of symbol value. */ HOWTO (R_MIPS_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GP relative reference. */ HOWTO (R_MIPS_GPREL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf64_gprel16_reloc, /* special_function */ "R_MIPS_GPREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to literal section. */ HOWTO (R_MIPS_LITERAL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf64_literal_reloc, /* special_function */ "R_MIPS_LITERAL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to global offset table. */ HOWTO (R_MIPS_GOT16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf64_got16_reloc, /* special_function */ "R_MIPS_GOT16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative reference. */ HOWTO (R_MIPS_PC16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_PC16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit call through global offset table. */ HOWTO (R_MIPS_CALL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit GP relative reference. */ HOWTO (R_MIPS_GPREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf64_gprel32_reloc, /* special_function */ "R_MIPS_GPREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (13), EMPTY_HOWTO (14), @@ -345,135 +354,135 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT5", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000007c0, /* src_mask */ 0x000007c0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 6 bit shift field. */ HOWTO (R_MIPS_SHIFT6, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_elf64_shift6_reloc, /* special_function */ "R_MIPS_SHIFT6", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000007c4, /* src_mask */ 0x000007c4, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit relocation. */ HOWTO (R_MIPS_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement in the global offset table. */ HOWTO (R_MIPS_GOT_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_DISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement to page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_PAGE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_PAGE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Offset from page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_OFST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_OFST", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit substraction. */ HOWTO (R_MIPS_SUB, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SUB", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction. */ /* FIXME: Not handled correctly. */ @@ -481,15 +490,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_A", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction, and change all relocations to refer to the old instruction at the address. */ @@ -498,15 +507,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_B", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Delete a 32 bit instruction. */ /* FIXME: Not handled correctly. */ @@ -514,15 +523,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_DELETE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The MIPS ELF64 ABI Draft wants us to support these for REL relocations. We don't, because @@ -538,59 +547,59 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Section displacement, used by an associated event location section. */ HOWTO (R_MIPS_SCN_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SCN_DISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_MIPS_REL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_REL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* These two are obsolete. */ EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE), @@ -602,15 +611,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_RELGOT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Protected jump conversion. This is an optimization hint. No relocation is required for correctness. */ @@ -618,15 +627,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_JALR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x00000000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* The relocation table used for SHT_RELA sections. */ @@ -638,67 +647,67 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit relocation. */ HOWTO (R_MIPS_16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit relocation. */ HOWTO (R_MIPS_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit symbol relative relocation. */ HOWTO (R_MIPS_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 26 bit jump address. */ HOWTO (R_MIPS_26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -706,130 +715,130 @@ static reloc_howto_type mips_elf64_howto bits must match the PC + 4. */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_26", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x03ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of symbol value. */ HOWTO (R_MIPS_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of symbol value. */ HOWTO (R_MIPS_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GP relative reference. */ HOWTO (R_MIPS_GPREL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf64_gprel16_reloc, /* special_function */ "R_MIPS_GPREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to literal section. */ HOWTO (R_MIPS_LITERAL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf64_literal_reloc, /* special_function */ "R_MIPS_LITERAL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to global offset table. */ HOWTO (R_MIPS_GOT16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf64_got16_reloc, /* special_function */ "R_MIPS_GOT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative reference. */ HOWTO (R_MIPS_PC16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_PC16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit call through global offset table. */ HOWTO (R_MIPS_CALL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit GP relative reference. */ HOWTO (R_MIPS_GPREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf64_gprel32_reloc, /* special_function */ "R_MIPS_GPREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (13), EMPTY_HOWTO (14), @@ -840,135 +849,135 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT5", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x000007c0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 6 bit shift field. */ HOWTO (R_MIPS_SHIFT6, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_elf64_shift6_reloc, /* special_function */ "R_MIPS_SHIFT6", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x000007c4, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit relocation. */ HOWTO (R_MIPS_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement in the global offset table. */ HOWTO (R_MIPS_GOT_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_DISP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement to page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_PAGE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_PAGE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Offset from page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_OFST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_OFST", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit substraction. */ HOWTO (R_MIPS_SUB, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SUB", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction. */ /* FIXME: Not handled correctly. */ @@ -976,15 +985,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_A", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction, and change all relocations to refer to the old instruction at the address. */ @@ -993,15 +1002,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_B", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Delete a 32 bit instruction. */ /* FIXME: Not handled correctly. */ @@ -1009,104 +1018,104 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_DELETE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Get the higher value of a 64 bit addend. */ HOWTO (R_MIPS_HIGHER, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHER", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Get the highest value of a 64 bit addend. */ HOWTO (R_MIPS_HIGHEST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHEST", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Section displacement, used by an associated event location section. */ HOWTO (R_MIPS_SCN_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_SCN_DISP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_MIPS_REL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_REL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* These two are obsolete. */ EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE), @@ -1118,15 +1127,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_RELGOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Protected jump conversion. This is an optimization hint. No relocation is required for correctness. */ @@ -1134,15 +1143,15 @@ static reloc_howto_type mips_elf64_howto 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MIPS_JALR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x00000000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* The reloc used for the mips16 jump instruction. */ @@ -1151,7 +1160,7 @@ static reloc_howto_type elf_mips16_jump_ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -1159,10 +1168,10 @@ static reloc_howto_type elf_mips16_jump_ bits must match the PC. */ mips16_jump_reloc, /* special_function */ "R_MIPS16_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffffff, /* src_mask */ 0x3ffffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* The reloc used for the mips16 gprel instruction. */ static reloc_howto_type elf_mips16_gprel_howto = @@ -1170,15 +1179,15 @@ static reloc_howto_type elf_mips16_gprel 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips16_gprel_reloc, /* special_function */ "R_MIPS16_GPREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x07ff001f, /* src_mask */ 0x07ff001f, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ static reloc_howto_type elf_mips_gnu_vtinherit_howto = @@ -1186,15 +1195,15 @@ static reloc_howto_type elf_mips_gnu_vti 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_MIPS_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ static reloc_howto_type elf_mips_gnu_vtentry_howto = @@ -1202,15 +1211,15 @@ static reloc_howto_type elf_mips_gnu_vte 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_MIPS_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* Swap in a MIPS 64-bit Rel reloc. */ @@ -1218,7 +1227,7 @@ static void mips_elf64_swap_reloc_in (abfd, src, dst) bfd *abfd; const Elf64_Mips_External_Rel *src; - Elf64_Mips_Internal_Rel *dst; + Elf64_Mips_Internal_Rela *dst; { dst->r_offset = H_GET_64 (abfd, src->r_offset); dst->r_sym = H_GET_32 (abfd, src->r_sym); @@ -1226,6 +1235,7 @@ mips_elf64_swap_reloc_in (abfd, src, dst dst->r_type3 = H_GET_8 (abfd, src->r_type3); dst->r_type2 = H_GET_8 (abfd, src->r_type2); dst->r_type = H_GET_8 (abfd, src->r_type); + dst->r_addend = 0; } /* Swap in a MIPS 64-bit Rela reloc. */ @@ -1250,7 +1260,7 @@ mips_elf64_swap_reloca_in (abfd, src, ds static void mips_elf64_swap_reloc_out (abfd, src, dst) bfd *abfd; - const Elf64_Mips_Internal_Rel *src; + const Elf64_Mips_Internal_Rela *src; Elf64_Mips_External_Rel *dst; { H_PUT_64 (abfd, src->r_offset, dst->r_offset); @@ -1284,9 +1294,9 @@ static void mips_elf64_be_swap_reloc_in (abfd, src, dst) bfd *abfd; const bfd_byte *src; - Elf_Internal_Rel *dst; + Elf_Internal_Rela *dst; { - Elf64_Mips_Internal_Rel mirel; + Elf64_Mips_Internal_Rela mirel; mips_elf64_swap_reloc_in (abfd, (const Elf64_Mips_External_Rel *) src, @@ -1294,10 +1304,13 @@ mips_elf64_be_swap_reloc_in (abfd, src, dst[0].r_offset = mirel.r_offset; dst[0].r_info = ELF64_R_INFO (mirel.r_sym, mirel.r_type); + dst[0].r_addend = 0; dst[1].r_offset = mirel.r_offset; dst[1].r_info = ELF64_R_INFO (mirel.r_ssym, mirel.r_type2); + dst[1].r_addend = 0; dst[2].r_offset = mirel.r_offset; dst[2].r_info = ELF64_R_INFO (STN_UNDEF, mirel.r_type3); + dst[2].r_addend = 0; } /* Swap in a MIPS 64-bit Rela reloc. */ @@ -1330,14 +1343,14 @@ mips_elf64_be_swap_reloca_in (abfd, src, static void mips_elf64_be_swap_reloc_out (abfd, src, dst) bfd *abfd; - const Elf_Internal_Rel *src; + const Elf_Internal_Rela *src; bfd_byte *dst; { - Elf64_Mips_Internal_Rel mirel; + Elf64_Mips_Internal_Rela mirel; mirel.r_offset = src[0].r_offset; BFD_ASSERT(src[0].r_offset == src[1].r_offset); -#if 0 +#if 0 BFD_ASSERT(src[0].r_offset == src[2].r_offset); #endif @@ -1447,10 +1460,10 @@ mips_elf64_got16_reloc (abfd, reloc_entr input_section, output_bfd, error_message); } -/* Set the GP value for OUTPUT_BFD. Returns false if this is a +/* Set the GP value for OUTPUT_BFD. Returns FALSE if this is a dangerous relocation. */ -static boolean +static bfd_boolean mips_elf64_assign_gp (output_bfd, pgp) bfd *output_bfd; bfd_vma *pgp; @@ -1462,7 +1475,7 @@ mips_elf64_assign_gp (output_bfd, pgp) /* If we've already figured out what GP will be, just return it. */ *pgp = _bfd_get_gp_value (output_bfd); if (*pgp) - return true; + return TRUE; count = bfd_get_symcount (output_bfd); sym = bfd_get_outsymbols (output_bfd); @@ -1492,10 +1505,10 @@ mips_elf64_assign_gp (output_bfd, pgp) /* Only get the error once. */ *pgp = 4; _bfd_set_gp_value (output_bfd, *pgp); - return false; + return FALSE; } - return true; + return TRUE; } /* We have to figure out the gp value, so that we can adjust the @@ -1508,7 +1521,7 @@ static bfd_reloc_status_type mips_elf64_final_gp (output_bfd, symbol, relocateable, error_message, pgp) bfd *output_bfd; asymbol *symbol; - boolean relocateable; + bfd_boolean relocateable; char **error_message; bfd_vma *pgp; { @@ -1555,7 +1568,7 @@ mips_elf64_gprel16_reloc (abfd, reloc_en bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1573,10 +1586,10 @@ mips_elf64_gprel16_reloc (abfd, reloc_en } if (output_bfd != (bfd *) NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1603,7 +1616,7 @@ mips_elf64_literal_reloc (abfd, reloc_en bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1620,10 +1633,10 @@ mips_elf64_literal_reloc (abfd, reloc_en /* FIXME: The entries in the .lit8 and .lit4 sections should be merged. */ if (output_bfd != (bfd *) NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1651,7 +1664,7 @@ mips_elf64_gprel32_reloc (abfd, reloc_en bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; bfd_vma relocation; @@ -1672,12 +1685,12 @@ mips_elf64_gprel32_reloc (abfd, reloc_en if (output_bfd != (bfd *) NULL) { - relocateable = true; + relocateable = TRUE; gp = _bfd_get_gp_value (output_bfd); } else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; ret = mips_elf64_final_gp (output_bfd, symbol, relocateable, @@ -1778,13 +1791,13 @@ mips16_jump_reloc (abfd, reloc_entry, sy /* FIXME. */ { - static boolean warned; + static bfd_boolean warned; if (! warned) (*_bfd_error_handler) (_("Linking mips16 objects into %s format is not supported"), bfd_get_target (input_section->output_section->owner)); - warned = true; + warned = TRUE; } return bfd_reloc_undefined; @@ -1803,7 +1816,7 @@ mips16_gprel_reloc (abfd, reloc_entry, s bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; unsigned short extend, insn; @@ -1822,10 +1835,10 @@ mips16_gprel_reloc (abfd, reloc_entry, s } if (output_bfd != NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1947,12 +1960,12 @@ bfd_elf64_bfd_reloc_type_lookup (abfd, c } } -/* Given a MIPS Elf64_Internal_Rel, fill in an arelent structure. */ +/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static reloc_howto_type * mips_elf64_rtype_to_howto (r_type, rela_p) unsigned int r_type; - boolean rela_p; + bfd_boolean rela_p; { switch (r_type) { @@ -1980,7 +1993,7 @@ static void mips_elf64_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr ATTRIBUTE_UNUSED; - Elf64_Internal_Rel *dst ATTRIBUTE_UNUSED; + Elf_Internal_Rela *dst ATTRIBUTE_UNUSED; { BFD_ASSERT (0); } @@ -1989,7 +2002,7 @@ static void mips_elf64_info_to_howto_rela (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr ATTRIBUTE_UNUSED; - Elf64_Internal_Rela *dst ATTRIBUTE_UNUSED; + Elf_Internal_Rela *dst ATTRIBUTE_UNUSED; { BFD_ASSERT (0); } @@ -2007,7 +2020,7 @@ mips_elf64_get_reloc_upper_bound (abfd, /* Read the relocations from one reloc section. */ -static boolean +static bfd_boolean mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, rel_hdr) bfd *abfd; asection *asect; @@ -2025,7 +2038,7 @@ mips_elf64_slurp_one_reloc_table (abfd, allocated = (PTR) bfd_malloc (rel_hdr->sh_size); if (allocated == NULL) - return false; + return FALSE; if (bfd_seek (abfd, rel_hdr->sh_offset, SEEK_SET) != 0 || (bfd_bread (allocated, rel_hdr->sh_size, abfd) != rel_hdr->sh_size)) @@ -2050,7 +2063,7 @@ mips_elf64_slurp_one_reloc_table (abfd, for (i = 0; i < count; i++, native_relocs += entsize) { Elf64_Mips_Internal_Rela rela; - boolean used_sym, used_ssym; + bfd_boolean used_sym, used_ssym; int ir; if (entsize == sizeof (Elf64_Mips_External_Rela)) @@ -2058,25 +2071,14 @@ mips_elf64_slurp_one_reloc_table (abfd, (Elf64_Mips_External_Rela *) native_relocs, &rela); else - { - Elf64_Mips_Internal_Rel rel; - - mips_elf64_swap_reloc_in (abfd, - (Elf64_Mips_External_Rel *) native_relocs, - &rel); - rela.r_offset = rel.r_offset; - rela.r_sym = rel.r_sym; - rela.r_ssym = rel.r_ssym; - rela.r_type3 = rel.r_type3; - rela.r_type2 = rel.r_type2; - rela.r_type = rel.r_type; - rela.r_addend = 0; - } + mips_elf64_swap_reloc_in (abfd, + (Elf64_Mips_External_Rel *) native_relocs, + &rela); /* Each entry represents exactly three actual relocations. */ - used_sym = false; - used_ssym = false; + used_sym = FALSE; + used_ssym = FALSE; for (ir = 0; ir < 3; ir++) { enum elf_mips_reloc_type type; @@ -2124,7 +2126,7 @@ mips_elf64_slurp_one_reloc_table (abfd, relent->sym_ptr_ptr = s->section->symbol_ptr_ptr; } - used_sym = true; + used_sym = TRUE; } else if (! used_ssym) { @@ -2148,7 +2150,7 @@ mips_elf64_slurp_one_reloc_table (abfd, break; } - used_ssym = true; + used_ssym = TRUE; } else relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; @@ -2178,23 +2180,23 @@ mips_elf64_slurp_one_reloc_table (abfd, if (allocated != NULL) free (allocated); - return true; + return TRUE; error_return: if (allocated != NULL) free (allocated); - return false; + return FALSE; } /* Read the relocations. On Irix 6, there can be two reloc sections associated with a single data section. */ -static boolean +static bfd_boolean mips_elf64_slurp_reloc_table (abfd, asect, symbols, dynamic) bfd *abfd; asection *asect; asymbol **symbols; - boolean dynamic; + bfd_boolean dynamic; { bfd_size_type amt; struct bfd_elf_section_data * const d = elf_section_data (asect); @@ -2202,34 +2204,34 @@ mips_elf64_slurp_reloc_table (abfd, asec if (dynamic) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (asect->relocation != NULL || (asect->flags & SEC_RELOC) == 0 || asect->reloc_count == 0) - return true; + return TRUE; /* Allocate space for 3 arelent structures for each Rel structure. */ amt = asect->reloc_count; amt *= 3 * sizeof (arelent); asect->relocation = (arelent *) bfd_alloc (abfd, amt); if (asect->relocation == NULL) - return false; + return FALSE; /* The slurp_one_reloc_table routine increments reloc_count. */ asect->reloc_count = 0; if (! mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, &d->rel_hdr)) - return false; + return FALSE; if (d->rel_hdr2 != NULL) { if (! mips_elf64_slurp_one_reloc_table (abfd, asect, symbols, d->rel_hdr2)) - return false; + return FALSE; } - return true; + return TRUE; } /* Write out the relocations. */ @@ -2240,7 +2242,7 @@ mips_elf64_write_relocs (abfd, sec, data asection *sec; PTR data; { - boolean *failedp = (boolean *) data; + bfd_boolean *failedp = (bfd_boolean *) data; int count; Elf_Internal_Shdr *rel_hdr; unsigned int idx; @@ -2308,7 +2310,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr int *count; PTR data; { - boolean *failedp = (boolean *) data; + bfd_boolean *failedp = (bfd_boolean *) data; Elf64_Mips_External_Rel *ext_rel; unsigned int idx; asymbol *last_sym = 0; @@ -2318,7 +2320,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr rel_hdr->contents = (PTR) bfd_alloc (abfd, rel_hdr->sh_size); if (rel_hdr->contents == NULL) { - *failedp = true; + *failedp = TRUE; return; } @@ -2326,7 +2328,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr for (idx = 0; idx < sec->reloc_count; idx++, ext_rel++) { arelent *ptr; - Elf64_Mips_Internal_Rel int_rel; + Elf64_Mips_Internal_Rela int_rel; asymbol *sym; int n; unsigned int i; @@ -2350,7 +2352,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym); if (n < 0) { - *failedp = true; + *failedp = TRUE; return; } last_sym_idx = n; @@ -2362,7 +2364,7 @@ mips_elf64_write_rel (abfd, sec, rel_hdr if ((*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec && ! _bfd_elf_validate_reloc (abfd, ptr)) { - *failedp = true; + *failedp = TRUE; return; } @@ -2407,7 +2409,7 @@ mips_elf64_write_rela (abfd, sec, rela_h int *count; PTR data; { - boolean *failedp = (boolean *) data; + bfd_boolean *failedp = (bfd_boolean *) data; Elf64_Mips_External_Rela *ext_rela; unsigned int idx; asymbol *last_sym = 0; @@ -2417,7 +2419,7 @@ mips_elf64_write_rela (abfd, sec, rela_h rela_hdr->contents = (PTR) bfd_alloc (abfd, rela_hdr->sh_size); if (rela_hdr->contents == NULL) { - *failedp = true; + *failedp = TRUE; return; } @@ -2449,7 +2451,7 @@ mips_elf64_write_rela (abfd, sec, rela_h n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym); if (n < 0) { - *failedp = true; + *failedp = TRUE; return; } last_sym_idx = n; @@ -2462,7 +2464,7 @@ mips_elf64_write_rela (abfd, sec, rela_h if ((*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec && ! _bfd_elf_validate_reloc (abfd, ptr)) { - *failedp = true; + *failedp = TRUE; return; } @@ -2501,7 +2503,7 @@ mips_elf64_write_rela (abfd, sec, rela_h /* Set the right machine number for a MIPS ELF file. */ -static boolean +static bfd_boolean mips_elf64_object_p (abfd) bfd *abfd; { @@ -2511,11 +2513,11 @@ mips_elf64_object_p (abfd) sorted correctly such that local symbols precede global symbols, and the sh_info field in the symbol table is not always right. */ if (elf64_mips_irix_compat (abfd) != ict_none) - elf_bad_symtab (abfd) = true; + elf_bad_symtab (abfd) = TRUE; mach = _bfd_elf_mips_mach (elf_elfheader (abfd)->e_flags); bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach); - return true; + return TRUE; } /* Depending on the target vector we generate some version of Irix @@ -2531,6 +2533,71 @@ elf64_mips_irix_compat (abfd) return ict_none; } +/* Support for core dump NOTE sections. */ +static bfd_boolean +elf64_mips_grok_prstatus (abfd, note) + bfd *abfd; + Elf_Internal_Note *note; +{ + int offset; + unsigned int raw_size; + + switch (note->descsz) + { + default: + return FALSE; + + case 480: /* Linux/MIPS - N64 kernel */ + /* pr_cursig */ + elf_tdata (abfd)->core_signal = bfd_get_16 (abfd, note->descdata + 12); + + /* pr_pid */ + elf_tdata (abfd)->core_pid = bfd_get_32 (abfd, note->descdata + 32); + + /* pr_reg */ + offset = 112; + raw_size = 360; + + break; + } + + /* Make a ".reg/999" section. */ + return _bfd_elfcore_make_pseudosection (abfd, ".reg", + raw_size, note->descpos + offset); +} + +static bfd_boolean +elf64_mips_grok_psinfo (abfd, note) + bfd *abfd; + Elf_Internal_Note *note; +{ + switch (note->descsz) + { + default: + return FALSE; + + case 136: /* Linux/MIPS - N64 kernel elf_prpsinfo */ + elf_tdata (abfd)->core_program + = _bfd_elfcore_strndup (abfd, note->descdata + 40, 16); + elf_tdata (abfd)->core_command + = _bfd_elfcore_strndup (abfd, note->descdata + 56, 80); + } + + /* Note that for some reason, a spurious space is tacked + onto the end of the args in some (at least one anyway) + implementations, so strip it off if it exists. */ + + { + char *command = elf_tdata (abfd)->core_command; + int n = strlen (command); + + if (0 < n && command[n - 1] == ' ') + command[n - 1] = '\0'; + } + + return TRUE; +} + /* ECOFF swapping routines. These are used when dealing with the .mdebug section, which is in the ECOFF debugging format. */ static const struct ecoff_debug_swap mips_elf64_ecoff_debug_swap = @@ -2617,9 +2684,9 @@ const struct elf_size_info mips_elf64_si FIXME: How does this affect NewABI? */ #define ELF_MAXPAGESIZE 0x1000 -#define elf_backend_collect true -#define elf_backend_type_change_ok true -#define elf_backend_can_gc_sections true +#define elf_backend_collect TRUE +#define elf_backend_type_change_ok TRUE +#define elf_backend_can_gc_sections TRUE #define elf_info_to_howto mips_elf64_info_to_howto_rela #define elf_info_to_howto_rel mips_elf64_info_to_howto_rel #define elf_backend_object_p mips_elf64_object_p @@ -2661,6 +2728,9 @@ const struct elf_size_info mips_elf64_si #define elf_backend_ecoff_debug_swap &mips_elf64_ecoff_debug_swap #define elf_backend_size_info mips_elf64_size_info +#define elf_backend_grok_prstatus elf64_mips_grok_prstatus +#define elf_backend_grok_psinfo elf64_mips_grok_psinfo + #define elf_backend_got_header_size (4 * MIPS_RESERVED_GOTNO) #define elf_backend_plt_header_size 0 @@ -2692,10 +2762,10 @@ const struct elf_size_info mips_elf64_si /* MIPS ELF64 archive functions. */ #define bfd_elf64_archive_functions -extern boolean bfd_elf64_archive_slurp_armap - PARAMS((bfd *)); -extern boolean bfd_elf64_archive_write_armap - PARAMS((bfd *, unsigned int, struct orl *, unsigned int, int)); +extern bfd_boolean bfd_elf64_archive_slurp_armap + PARAMS ((bfd *)); +extern bfd_boolean bfd_elf64_archive_write_armap + PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); #define bfd_elf64_archive_slurp_extended_name_table \ _bfd_archive_coff_slurp_extended_name_table #define bfd_elf64_archive_construct_extended_name_table \ diff -uprN binutils-2.13.90.0.16/bfd/elf64-mmix.c binutils-2.13.90.0.18/bfd/elf64-mmix.c --- binutils-2.13.90.0.16/bfd/elf64-mmix.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/elf64-mmix.c Mon Dec 16 12:22:52 2002 @@ -78,9 +78,9 @@ struct bpo_reloc_request size_t bpo_reloc_no; /* Set when the value is computed. Better than coding "guard values" - into the other members. Is false only for BPO relocs in a GC:ed + into the other members. Is FALSE only for BPO relocs in a GC:ed section. */ - boolean valid; + bfd_boolean valid; }; /* We attach this as elf_section_data (sec)->tdata in the linker-allocated @@ -120,7 +120,7 @@ struct bpo_greg_section_info struct bpo_reloc_request *reloc_request; }; -static boolean mmix_elf_link_output_symbol_hook +static bfd_boolean mmix_elf_link_output_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *)); @@ -131,19 +131,19 @@ static reloc_howto_type *bfd_elf64_bfd_r PARAMS ((bfd *, bfd_reloc_code_real_type)); static void mmix_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static int mmix_elf_sort_relocs PARAMS ((const PTR, const PTR)); -static boolean mmix_elf_check_relocs +static bfd_boolean mmix_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean mmix_elf_check_common_relocs +static bfd_boolean mmix_elf_check_common_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean mmix_elf_relocate_section +static bfd_boolean mmix_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); @@ -151,7 +151,7 @@ static asection * mmix_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean mmix_elf_gc_sweep_hook +static bfd_boolean mmix_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); @@ -162,23 +162,23 @@ static bfd_reloc_status_type mmix_final_ static bfd_reloc_status_type mmix_elf_perform_relocation PARAMS ((asection *, reloc_howto_type *, PTR, bfd_vma, bfd_vma)); -static boolean mmix_elf_section_from_bfd_section +static bfd_boolean mmix_elf_section_from_bfd_section PARAMS ((bfd *, asection *, int *)); -static boolean mmix_elf_add_symbol_hook +static bfd_boolean mmix_elf_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean mmix_elf_is_local_label_name +static bfd_boolean mmix_elf_is_local_label_name PARAMS ((bfd *, const char *)); static int bpo_reloc_request_sort_fn PARAMS ((const PTR, const PTR)); -static boolean mmix_elf_relax_section +static bfd_boolean mmix_elf_relax_section PARAMS ((bfd *abfd, asection *sec, struct bfd_link_info *link_info, - boolean *again)); + bfd_boolean *again)); -extern boolean mmix_elf_final_link PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean mmix_elf_final_link PARAMS ((bfd *, struct bfd_link_info *)); extern void mmix_elf_symbol_processing PARAMS ((bfd *, asymbol *)); @@ -195,195 +195,195 @@ static reloc_howto_type elf_mmix_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit absolute relocation. */ HOWTO (R_MMIX_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 16 bit absolute relocation. */ HOWTO (R_MMIX_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 24 bit absolute relocation. */ HOWTO (R_MMIX_24, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0xffffff, /* src_mask */ 0xffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit absolute relocation. */ HOWTO (R_MMIX_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit relocation. */ HOWTO (R_MMIX_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An 8 bit PC-relative relocation. */ HOWTO (R_MMIX_PC_8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_PC_8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* An 16 bit PC-relative relocation. */ HOWTO (R_MMIX_PC_16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_PC_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* An 24 bit PC-relative relocation. */ HOWTO (R_MMIX_PC_24, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_PC_24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0xffffff, /* src_mask */ 0xffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 32 bit absolute PC-relative relocation. */ HOWTO (R_MMIX_PC_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_PC_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 64 bit PC-relative relocation. */ HOWTO (R_MMIX_PC_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_MMIX_PC_64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_MMIX_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_MMIX_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage. */ HOWTO (R_MMIX_GNU_VTENTRY, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_MMIX_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The GETA relocation is supposed to get any address that could possibly be reached by the GETA instruction. It can silently expand @@ -393,57 +393,57 @@ static reloc_howto_type elf_mmix_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_GETA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_GETA_1, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_GETA_1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_GETA_2, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_GETA_2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_GETA_3, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_GETA_3", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* The conditional branches are supposed to reach any (code) address. It can silently expand to a 64-bit operand, but will emit an error if @@ -453,71 +453,71 @@ static reloc_howto_type elf_mmix_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_CBRANCH", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_CBRANCH_J, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_CBRANCH_J", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_CBRANCH_1, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_CBRANCH_1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_CBRANCH_2, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_CBRANCH_2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_CBRANCH_3, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_CBRANCH_3", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* The PUSHJ instruction can reach any (code) address, as long as it's the beginning of a function (no usable restriction). It can silently @@ -528,57 +528,57 @@ static reloc_howto_type elf_mmix_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_PUSHJ", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_PUSHJ_1, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_PUSHJ_1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_PUSHJ_2, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_PUSHJ_2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_PUSHJ_3, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_PUSHJ_3", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A JMP is supposed to reach any (code) address. By itself, it can reach +-64M; the expansion can reach all 64 bits. Note that the 64M @@ -588,57 +588,57 @@ static reloc_howto_type elf_mmix_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 27, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_JMP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x1ffffff, /* src_mask */ 0x1ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_JMP_1, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 27, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_JMP_1", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x1ffffff, /* src_mask */ 0x1ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_JMP_2, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 27, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_JMP_2", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x1ffffff, /* src_mask */ 0x1ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_MMIX_JMP_3, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 27, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_JMP_3", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x1ffffff, /* src_mask */ 0x1ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* When we don't emit link-time-relaxable code from the assembler, or when relaxation has done all it can do, these relocs are used. For @@ -647,30 +647,30 @@ static reloc_howto_type elf_mmix_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 19, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_ADDR19", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x0100ffff, /* src_mask */ 0x0100ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* For JMP. */ HOWTO (R_MMIX_ADDR27, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 27, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_ADDR27", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ ~0x1ffffff, /* src_mask */ 0x1ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A general register or the value 0..255. If a value, then the instruction (offset -3) needs adjusting. */ @@ -678,30 +678,30 @@ static reloc_howto_type elf_mmix_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_REG_OR_BYTE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A general register. */ HOWTO (R_MMIX_REG, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_REG", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A register plus an index, corresponding to the relocation expression. The sizes must correspond to the valid range of the expression, while @@ -710,15 +710,15 @@ static reloc_howto_type elf_mmix_howto_t 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_BASE_PLUS_OFFSET", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A "magic" relocation for a LOCAL expression, asserting that the expression is less than the number of global registers. No actual @@ -729,15 +729,15 @@ static reloc_howto_type elf_mmix_howto_t 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mmix_elf_reloc, /* special_function */ "R_MMIX_LOCAL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -1063,7 +1063,7 @@ static void mmix_info_to_howto_rela (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf64_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; @@ -1157,7 +1157,7 @@ mmix_elf_reloc (abfd, reloc_entry, symbo /* Relocate an MMIX ELF section. Modified from elf32-fr30.c; look to it for guidance if you're thinking of copying this. */ -static boolean +static bfd_boolean mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -1189,7 +1189,7 @@ mmix_elf_relocate_section (output_bfd, i bfd_reloc_status_type r; const char *name = NULL; int r_type; - boolean undefined_signalled = false; + bfd_boolean undefined_signalled = FALSE; r_type = ELF64_R_TYPE (rel->r_info); @@ -1265,9 +1265,9 @@ mmix_elf_relocate_section (output_bfd, i if (! undefined_signalled && ! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; - undefined_signalled = true; + input_section, rel->r_offset, TRUE))) + return FALSE; + undefined_signalled = TRUE; relocation = 0; } } @@ -1278,7 +1278,7 @@ mmix_elf_relocate_section (output_bfd, i if (r != bfd_reloc_ok) { - boolean check_ok = true; + bfd_boolean check_ok = TRUE; const char * msg = (const char *) NULL; switch (r) @@ -1294,8 +1294,8 @@ mmix_elf_relocate_section (output_bfd, i if (! undefined_signalled) check_ok = info->callbacks->undefined_symbol (info, name, input_bfd, input_section, rel->r_offset, - true); - undefined_signalled = true; + TRUE); + undefined_signalled = TRUE; break; case bfd_reloc_outofrange: @@ -1320,11 +1320,11 @@ mmix_elf_relocate_section (output_bfd, i (info, msg, name, input_bfd, input_section, rel->r_offset); if (! check_ok) - return false; + return FALSE; } } - return true; + return TRUE; } /* Perform a single relocation. By default we use the standard BFD @@ -1565,7 +1565,7 @@ mmix_elf_gc_mark_hook (sec, info, rel, h GC (or section merge) and the point when all input sections must be present. Better to waste some memory and (perhaps) a little time. */ -static boolean +static bfd_boolean mmix_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1579,7 +1579,7 @@ mmix_elf_gc_sweep_hook (abfd, info, sec, /* If no bpodata here, we have nothing to do. */ if (bpodata == NULL) - return true; + return TRUE; allocated_gregs_section = bpodata->bpo_greg_section; @@ -1588,7 +1588,7 @@ mmix_elf_gc_sweep_hook (abfd, info, sec, ->n_bpo_relocs -= bpodata->n_bpo_relocs_this_section; - return true; + return TRUE; } /* Sort register relocs to come before expanding relocs. */ @@ -1628,7 +1628,7 @@ mmix_elf_sort_relocs (p1, p2) /* Subset of mmix_elf_check_relocs, common to ELF and mmo linking. */ -static boolean +static bfd_boolean mmix_elf_check_common_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -1643,7 +1643,7 @@ mmix_elf_check_common_relocs (abfd, inf const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; /* We currently have to abuse this COFF-specific member, since there's no target-machine-dedicated member. There's no alternative outside @@ -1692,12 +1692,12 @@ mmix_elf_check_common_relocs (abfd, inf || !bfd_set_section_alignment (bpo_greg_owner, allocated_gregs_section, 3)) - return false; + return FALSE; gregdata = (struct bpo_greg_section_info *) bfd_zalloc (bpo_greg_owner, sizeof (struct bpo_greg_section_info)); if (gregdata == NULL) - return false; + return FALSE; elf_section_data (allocated_gregs_section)->tdata = gregdata; } else if (gregdata == NULL) @@ -1713,7 +1713,7 @@ mmix_elf_check_common_relocs (abfd, inf sizeof (struct bpo_reloc_section_info) * (sec->reloc_count + 1)); if (bpodata == NULL) - return false; + return FALSE; elf_section_data (sec)->tdata = bpodata; bpodata->first_base_plus_offset_reloc = bpodata->bpo_index @@ -1734,12 +1734,12 @@ mmix_elf_check_common_relocs (abfd, inf } } - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. */ -static boolean +static bfd_boolean mmix_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -1752,7 +1752,7 @@ mmix_elf_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel_end; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -1767,7 +1767,7 @@ mmix_elf_check_relocs (abfd, info, sec, /* Do the common part. */ if (!mmix_elf_check_common_relocs (abfd, info, sec, relocs)) - return false; + return FALSE; rel_end = relocs + sec->reloc_count; for (rel = relocs; rel < rel_end; rel++) @@ -1787,25 +1787,25 @@ mmix_elf_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_MMIX_GNU_VTINHERIT: if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_MMIX_GNU_VTENTRY: if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /* Wrapper for mmix_elf_check_common_relocs, called when linking to mmo. Copied from elf_link_add_object_symbols. */ -boolean +bfd_boolean _bfd_mmix_check_all_relocs (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1815,7 +1815,7 @@ _bfd_mmix_check_all_relocs (abfd, info) for (o = abfd->sections; o != NULL; o = o->next) { Elf_Internal_Rela *internal_relocs; - boolean ok; + bfd_boolean ok; if ((o->flags & SEC_RELOC) == 0 || o->reloc_count == 0 @@ -1829,7 +1829,7 @@ _bfd_mmix_check_all_relocs (abfd, info) (Elf_Internal_Rela *) NULL, info->keep_memory); if (internal_relocs == NULL) - return false; + return FALSE; ok = mmix_elf_check_common_relocs (abfd, info, o, internal_relocs); @@ -1837,17 +1837,17 @@ _bfd_mmix_check_all_relocs (abfd, info) free (internal_relocs); if (! ok) - return false; + return FALSE; } - return true; + return TRUE; } /* Change symbols relative to the reg contents section to instead be to the register section, and scale them down to correspond to the register number. */ -static boolean +static bfd_boolean mmix_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1864,7 +1864,7 @@ mmix_elf_link_output_symbol_hook (abfd, sym->st_shndx = SHN_REGISTER; } - return true; + return TRUE; } /* We fake a register section that holds values that are register numbers. @@ -1913,7 +1913,7 @@ mmix_elf_symbol_processing (abfd, asym) /* Given a BFD section, try to locate the corresponding ELF section index. */ -static boolean +static bfd_boolean mmix_elf_section_from_bfd_section (abfd, sec, retval) bfd * abfd ATTRIBUTE_UNUSED; asection * sec; @@ -1922,9 +1922,9 @@ mmix_elf_section_from_bfd_section (abfd, if (strcmp (bfd_get_section_name (abfd, sec), MMIX_REG_SECTION_NAME) == 0) *retval = SHN_REGISTER; else - return false; + return FALSE; - return true; + return TRUE; } /* Hook called by the linker routine which adds symbols from an object @@ -1934,7 +1934,7 @@ mmix_elf_section_from_bfd_section (abfd, symbols, since otherwise having two with the same value would cause them to be "merged", but with the contents serialized. */ -boolean +bfd_boolean mmix_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1953,9 +1953,9 @@ mmix_elf_add_symbol_hook (abfd, info, sy /* See if we have another one. */ struct bfd_link_hash_entry *h = bfd_link_hash_lookup (info->hash, *namep, - false, - false, - false); + FALSE, + FALSE, + FALSE); if (h != NULL && h->type != bfd_link_hash_undefined) { @@ -1966,16 +1966,16 @@ mmix_elf_add_symbol_hook (abfd, info, sy bfd_get_filename (abfd), *namep, *namep + strlen (MMIX_LOC_SECTION_START_SYMBOL_PREFIX))); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } - return true; + return TRUE; } /* We consider symbols matching "L.*:[0-9]+" to be local symbols. */ -boolean +bfd_boolean mmix_elf_is_local_label_name (abfd, name) bfd *abfd; const char *name; @@ -1985,19 +1985,19 @@ mmix_elf_is_local_label_name (abfd, name /* Also include the default local-label definition. */ if (_bfd_elf_is_local_label_name (abfd, name)) - return true; + return TRUE; if (*name != 'L') - return false; + return FALSE; /* If there's no ":", or more than one, it's not a local symbol. */ colpos = strchr (name, ':'); if (colpos == NULL || strchr (colpos + 1, ':') != NULL) - return false; + return FALSE; /* Check that there are remaining characters and that they are digits. */ if (colpos[1] == 0) - return false; + return FALSE; digits = strspn (colpos + 1, "0123456789"); return digits != 0 && colpos[1 + digits] == 0; @@ -2005,7 +2005,7 @@ mmix_elf_is_local_label_name (abfd, name /* We get rid of the register section here. */ -boolean +bfd_boolean mmix_elf_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -2033,7 +2033,7 @@ mmix_elf_final_link (abfd, info) } if (! bfd_elf64_bfd_final_link (abfd, info)) - return false; + return FALSE; /* Since this section is marked SEC_LINKER_CREATED, it isn't output by the regular linker machinery. We do it here, like other targets with @@ -2048,15 +2048,15 @@ mmix_elf_final_link (abfd, info) greg_section->contents, (file_ptr) greg_section->output_offset, greg_section->_cooked_size)) - return false; + return FALSE; } - return true; + return TRUE; } /* Initialize stuff for the linker-generated GREGs to match R_MMIX_BASE_PLUS_OFFSET relocs seen by the linker. */ -boolean +bfd_boolean _bfd_mmix_prepare_linker_allocated_gregs (abfd, info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -2074,20 +2074,20 @@ _bfd_mmix_prepare_linker_allocated_gregs If there is no such object, there was no R_MMIX_BASE_PLUS_OFFSET. */ bpo_greg_owner = (bfd *) info->base_file; if (bpo_greg_owner == NULL) - return true; + return TRUE; bpo_gregs_section = bfd_get_section_by_name (bpo_greg_owner, MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME); if (bpo_gregs_section == NULL) - return true; + return TRUE; /* We use the target-data handle in the ELF section data. */ gregdata = (struct bpo_greg_section_info *) elf_section_data (bpo_gregs_section)->tdata; if (gregdata == NULL) - return false; + return FALSE; n_gregs = gregdata->n_bpo_relocs; gregdata->n_allocated_bpo_gregs = n_gregs; @@ -2100,7 +2100,7 @@ _bfd_mmix_prepare_linker_allocated_gregs gregs_size = n_gregs * 8; if (!bfd_set_section_size (bpo_greg_owner, bpo_gregs_section, gregs_size)) - return false; + return FALSE; /* Allocate and set up the GREG arrays. They're filled in at relaxation time. Note that we must use the max number ever noted for the array, @@ -2116,7 +2116,7 @@ _bfd_mmix_prepare_linker_allocated_gregs gregdata->n_max_bpo_relocs * sizeof (size_t)); if (bpo_reloc_indexes == NULL) - return false; + return FALSE; /* The default order is an identity mapping. */ for (i = 0; i < gregdata->n_max_bpo_relocs; i++) @@ -2125,13 +2125,13 @@ _bfd_mmix_prepare_linker_allocated_gregs gregdata->reloc_request[i].bpo_reloc_no = i; } - return true; + return TRUE; } /* Fill in contents in the linker allocated gregs. Everything is calculated at this point; we just move the contents into place here. */ -boolean +bfd_boolean _bfd_mmix_finalize_linker_allocated_gregs (abfd, link_info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info; @@ -2149,7 +2149,7 @@ _bfd_mmix_finalize_linker_allocated_greg object, there was no R_MMIX_BASE_PLUS_OFFSET. */ bpo_greg_owner = (bfd *) link_info->base_file; if (bpo_greg_owner == NULL) - return true; + return TRUE; bpo_gregs_section = bfd_get_section_by_name (bpo_greg_owner, @@ -2159,14 +2159,14 @@ _bfd_mmix_finalize_linker_allocated_greg without any R_MMIX_BASE_PLUS_OFFSET seen, there will be no such section. */ if (bpo_gregs_section == NULL) - return true; + return TRUE; /* We use the target-data handle in the ELF section data. */ gregdata = (struct bpo_greg_section_info *) elf_section_data (bpo_gregs_section)->tdata; if (gregdata == NULL) - return false; + return FALSE; n_gregs = gregdata->n_allocated_bpo_gregs; @@ -2176,7 +2176,7 @@ _bfd_mmix_finalize_linker_allocated_greg bpo_gregs_section->contents = contents = bfd_alloc (bpo_greg_owner, bpo_gregs_section->_raw_size); if (contents == NULL) - return false; + return FALSE; /* Sanity check: If these numbers mismatch, some relocation has not been accounted for and the rest of gregdata is probably inconsistent. @@ -2190,7 +2190,7 @@ _bfd_mmix_finalize_linker_allocated_greg Please report this bug."), gregdata->n_remaining_bpo_relocs_this_relaxation_round, gregdata->n_bpo_relocs); - return false; + return FALSE; } for (lastreg = 255, i = 0, j = 0; j < n_gregs; i++) @@ -2202,7 +2202,7 @@ _bfd_mmix_finalize_linker_allocated_greg j++; } - return true; + return TRUE; } /* Sort valid relocs to come before non-valid relocs, then on increasing @@ -2281,8 +2281,8 @@ mmix_dump_bpo_gregs (link_info, pf) for (i = 0; i < gregdata->n_max_bpo_relocs; i++) (*pf) ("%4u (%4u)/%4u#%u: 0x%08lx%08lx r: %3u o: %3u\n", i, - gregdata->bpo_reloc_indexes != NULL - ? gregdata->bpo_reloc_indexes[i] : -1, + (gregdata->bpo_reloc_indexes != NULL + ? gregdata->bpo_reloc_indexes[i] : (size_t) -1), gregdata->reloc_request[i].bpo_reloc_no, gregdata->reloc_request[i].valid, @@ -2300,12 +2300,12 @@ mmix_dump_bpo_gregs (link_info, pf) Symbol- and reloc-reading infrastructure copied from elf-m10200.c. */ -static boolean +static bfd_boolean mmix_elf_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { Elf_Internal_Shdr *symtab_hdr; Elf_Internal_Rela *internal_relocs; @@ -2320,7 +2320,7 @@ mmix_elf_relax_section (abfd, sec, link_ Elf_Internal_Sym *isymbuf = NULL; /* Assume nothing changes. */ - *again = false; + *again = FALSE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -2337,7 +2337,7 @@ mmix_elf_relax_section (abfd, sec, link_ || (sec->flags & SEC_LINKER_CREATED) != 0 /* If no R_MMIX_BASE_PLUS_OFFSET relocs, then nothing to do. */ || bpodata == NULL) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -2425,7 +2425,7 @@ mmix_elf_relax_section (abfd, sec, link_ gregdata->reloc_request[gregdata->bpo_reloc_indexes[bpono]].value = symval + irel->r_addend; - gregdata->reloc_request[gregdata->bpo_reloc_indexes[bpono++]].valid = true; + gregdata->reloc_request[gregdata->bpo_reloc_indexes[bpono++]].valid = TRUE; gregdata->n_remaining_bpo_relocs_this_relaxation_round--; } @@ -2458,7 +2458,7 @@ mmix_elf_relax_section (abfd, sec, link_ { gregdata->bpo_reloc_indexes[gregdata->reloc_request[i].bpo_reloc_no] = i; - *again = true; + *again = TRUE; } /* Allocate register numbers (indexing from 0). Stop at the first @@ -2484,7 +2484,7 @@ mmix_elf_relax_section (abfd, sec, link_ if (gregdata->n_allocated_bpo_gregs != regindex + 1) { gregdata->n_allocated_bpo_gregs = regindex + 1; - *again = true; + *again = TRUE; } bpo_gregs_section->_cooked_size = (regindex + 1) * 8; @@ -2505,7 +2505,7 @@ mmix_elf_relax_section (abfd, sec, link_ && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; error_return: if (isymbuf != NULL && (unsigned char *) isymbuf != symtab_hdr->contents) @@ -2513,7 +2513,7 @@ mmix_elf_relax_section (abfd, sec, link_ if (internal_relocs != NULL && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } #define ELF_ARCH bfd_arch_mmix diff -uprN binutils-2.13.90.0.16/bfd/elf64-ppc.c binutils-2.13.90.0.18/bfd/elf64-ppc.c --- binutils-2.13.90.0.16/bfd/elf64-ppc.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/elf64-ppc.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* PowerPC64-specific support for 64-bit ELF. - Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Linus Nordberg, Swox AB , based on elf32-ppc.c by Ian Lance Taylor. @@ -27,7 +27,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "bfdlink.h" #include "libbfd.h" #include "elf-bfd.h" -#include "elf/ppc.h" +#include "elf/ppc64.h" #include "elf64-ppc.h" static void ppc_howto_init @@ -35,7 +35,7 @@ static void ppc_howto_init static reloc_howto_type *ppc64_elf_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); static void ppc64_elf_info_to_howto - PARAMS ((bfd *abfd, arelent *cache_ptr, Elf64_Internal_Rela *dst)); + PARAMS ((bfd *abfd, arelent *cache_ptr, Elf_Internal_Rela *dst)); static bfd_reloc_status_type ppc64_elf_ha_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type ppc64_elf_brtaken_reloc @@ -52,9 +52,9 @@ static bfd_reloc_status_type ppc64_elf_t PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type ppc64_elf_unhandled_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean ppc64_elf_object_p +static bfd_boolean ppc64_elf_object_p PARAMS ((bfd *)); -static boolean ppc64_elf_merge_private_bfd_data +static bfd_boolean ppc64_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); @@ -124,9 +124,9 @@ static boolean ppc64_elf_merge_private_b #endif #define ONES(n) (((bfd_vma) 1 << ((n) - 1) << 1) - 1) - + /* Relocation HOWTO's. */ -static reloc_howto_type *ppc64_elf_howto_table[(int) R_PPC_max]; +static reloc_howto_type *ppc64_elf_howto_table[(int) R_PPC64_max]; static reloc_howto_type ppc64_elf_howto_raw[] = { /* This reloc does nothing. */ @@ -134,30 +134,30 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 32 bit relocation. */ HOWTO (R_PPC64_ADDR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 26 bit branch; the lower two bits must be zero. FIXME: we don't check that, we just clear them. */ @@ -165,60 +165,60 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x03fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A standard 16 bit relocation. */ HOWTO (R_PPC64_ADDR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit relocation without overflow. */ HOWTO (R_PPC64_ADDR16_LO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Bits 16-31 of an address. */ HOWTO (R_PPC64_ADDR16_HI, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Bits 16-31 of an address, plus 1 if the contents of the low 16 bits, treated as a signed number, is negative. */ @@ -226,15 +226,15 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_ha_reloc, /* special_function */ "R_PPC64_ADDR16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 16 bit branch; the lower two bits must be zero. FIXME: we don't check that, we just clear them. */ @@ -242,15 +242,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR14", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000fffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 16 bit branch, for which bit 10 should be set to indicate that the branch is expected to be taken. The lower two @@ -259,15 +259,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc64_elf_brtaken_reloc, /* special_function */ "R_PPC64_ADDR14_BRTAKEN",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000fffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* An absolute 16 bit branch, for which bit 10 should be set to indicate that the branch is not expected to be taken. The lower @@ -276,45 +276,45 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc64_elf_brtaken_reloc, /* special_function */ "R_PPC64_ADDR14_BRNTAKEN",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000fffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A relative 26 bit branch; the lower two bits must be zero. */ HOWTO (R_PPC64_REL24, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_REL24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x03fffffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 16 bit branch; the lower two bits must be zero. */ HOWTO (R_PPC64_REL14, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_REL14", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000fffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 16 bit branch. Bit 10 should be set to indicate that the branch is expected to be taken. The lower two bits must be @@ -323,15 +323,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_brtaken_reloc, /* special_function */ "R_PPC64_REL14_BRTAKEN", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000fffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A relative 16 bit branch. Bit 10 should be set to indicate that the branch is not expected to be taken. The lower two bits must @@ -340,15 +340,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_brtaken_reloc, /* special_function */ "R_PPC64_REL14_BRNTAKEN",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000fffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Like R_PPC64_ADDR16, but referring to the GOT table entry for the symbol. */ @@ -356,15 +356,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_GOT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16_LO, but referring to the GOT table entry for the symbol. */ @@ -372,15 +372,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_GOT16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16_HI, but referring to the GOT table entry for the symbol. */ @@ -388,15 +388,15 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_GOT16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16_HA, but referring to the GOT table entry for the symbol. */ @@ -404,15 +404,15 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_GOT16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* This is used only by the dynamic linker. The symbol should exist both in the object being run and in some shared library. The @@ -423,15 +423,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 0, /* this one is variable size */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_COPY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR64, but used when setting global offset table entries. */ @@ -439,15 +439,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_GLOB_DAT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Created by the link editor. Marks a procedure linkage table entry for a symbol. */ @@ -455,15 +455,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_JMP_SLOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used only by the dynamic linker. When the object is run, this doubleword64 is set to the load address of the object, plus the @@ -472,76 +472,76 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_RELATIVE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR32, but may be unaligned. */ HOWTO (R_PPC64_UADDR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_UADDR32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16, but may be unaligned. */ HOWTO (R_PPC64_UADDR16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_UADDR16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32-bit PC relative. */ HOWTO (R_PPC64_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ /* FIXME: Verify. Was complain_overflow_bitfield. */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32-bit relocation to the symbol's procedure linkage table. */ HOWTO (R_PPC64_PLT32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLT32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32-bit PC relative relocation to the symbol's procedure linkage table. FIXME: R_PPC64_PLTREL32 not supported. */ @@ -549,15 +549,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_PLTREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Like R_PPC64_ADDR16_LO, but referring to the PLT table entry for the symbol. */ @@ -565,15 +565,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLT16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16_HI, but referring to the PLT table entry for the symbol. */ @@ -581,15 +581,15 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLT16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16_HA, but referring to the PLT table entry for the symbol. */ @@ -597,91 +597,90 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLT16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16-bit section relative relocation. */ HOWTO (R_PPC64_SECTOFF, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc64_elf_sectoff_reloc, /* special_function */ "R_PPC64_SECTOFF", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_SECTOFF, but no overflow warning. */ HOWTO (R_PPC64_SECTOFF_LO, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_sectoff_reloc, /* special_function */ "R_PPC64_SECTOFF_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16-bit upper half section relative relocation. */ HOWTO (R_PPC64_SECTOFF_HI, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_sectoff_reloc, /* special_function */ "R_PPC64_SECTOFF_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16-bit upper half adjusted section relative relocation. */ HOWTO (R_PPC64_SECTOFF_HA, /* type */ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_sectoff_ha_reloc, /* special_function */ "R_PPC64_SECTOFF_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ - /* Like R_PPC64_REL24 without touching the two least significant - bits. Should have been named R_PPC64_REL30! */ - HOWTO (R_PPC64_ADDR30, /* type */ + /* Like R_PPC64_REL24 without touching the two least significant bits. */ + HOWTO (R_PPC64_REL30, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 30, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ - "R_PPC64_ADDR30", /* name */ - false, /* partial_inplace */ + "R_PPC64_REL30", /* name */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffffffc, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Relocs in the 64-bit PowerPC ELF ABI, not in the 32-bit ABI. */ @@ -690,30 +689,30 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The bits 32-47 of an address. */ HOWTO (R_PPC64_ADDR16_HIGHER, /* type */ 32, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR16_HIGHER", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The bits 32-47 of an address, plus 1 if the contents of the low 16 bits, treated as a signed number, is negative. */ @@ -721,30 +720,30 @@ static reloc_howto_type ppc64_elf_howto_ 32, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_ha_reloc, /* special_function */ "R_PPC64_ADDR16_HIGHERA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The bits 48-63 of an address. */ HOWTO (R_PPC64_ADDR16_HIGHEST,/* type */ 48, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR16_HIGHEST", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The bits 48-63 of an address, plus 1 if the contents of the low 16 bits, treated as a signed number, is negative. */ @@ -752,60 +751,60 @@ static reloc_howto_type ppc64_elf_howto_ 48, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_ha_reloc, /* special_function */ "R_PPC64_ADDR16_HIGHESTA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like ADDR64, but may be unaligned. */ HOWTO (R_PPC64_UADDR64, /* type */ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_UADDR64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64-bit relative relocation. */ HOWTO (R_PPC64_REL64, /* type */ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_REL64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 64-bit relocation to the symbol's procedure linkage table. */ HOWTO (R_PPC64_PLT64, /* type */ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLT64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64-bit PC relative relocation to the symbol's procedure linkage table. */ @@ -814,15 +813,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLTREL64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit TOC-relative relocation. */ @@ -831,15 +830,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_toc_reloc, /* special_function */ "R_PPC64_TOC16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit TOC-relative relocation without overflow. */ @@ -848,15 +847,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_toc_reloc, /* special_function */ "R_PPC64_TOC16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit TOC-relative relocation, high 16 bits. */ @@ -865,15 +864,15 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_toc_reloc, /* special_function */ "R_PPC64_TOC16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit TOC-relative relocation, high 16 bits, plus 1 if the contents of the low 16 bits, treated as a signed number, is @@ -884,15 +883,15 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_toc_ha_reloc, /* special_function */ "R_PPC64_TOC16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64-bit relocation; insert value of TOC base (.TOC.). */ @@ -901,15 +900,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 4, /* size (0=byte, 1=short, 2=long, 4=64 bits) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc64_elf_toc64_reloc, /* special_function */ "R_PPC64_TOC", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ONES (64), /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_GOT16, but also informs the link editor that the value to relocate may (!) refer to a PLT entry which the link @@ -924,15 +923,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLTGOT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_PLTGOT16, but without overflow. */ /* FIXME: R_PPC64_PLTGOT16_LO not implemented. */ @@ -940,15 +939,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLTGOT16_LO", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_PLT_GOT16, but using bits 16-31 of the address. */ /* FIXME: R_PPC64_PLTGOT16_HI not implemented. */ @@ -956,15 +955,15 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLTGOT16_HI", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_PLT_GOT16, but using bits 16-31 of the address, plus 1 if the contents of the low 16 bits, treated as a signed number, @@ -974,150 +973,150 @@ static reloc_howto_type ppc64_elf_howto_ 16, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLTGOT16_HA", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16, but for instructions with a DS field. */ HOWTO (R_PPC64_ADDR16_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR16_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_ADDR16_LO, but for instructions with a DS field. */ HOWTO (R_PPC64_ADDR16_LO_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_PPC64_ADDR16_LO_DS",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_GOT16, but for instructions with a DS field. */ HOWTO (R_PPC64_GOT16_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_GOT16_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_GOT16_LO, but for instructions with a DS field. */ HOWTO (R_PPC64_GOT16_LO_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_GOT16_LO_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_PLT16_LO, but for instructions with a DS field. */ HOWTO (R_PPC64_PLT16_LO_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLT16_LO_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_SECTOFF, but for instructions with a DS field. */ HOWTO (R_PPC64_SECTOFF_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ ppc64_elf_sectoff_reloc, /* special_function */ "R_PPC64_SECTOFF_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_SECTOFF_LO, but for instructions with a DS field. */ HOWTO (R_PPC64_SECTOFF_LO_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_sectoff_reloc, /* special_function */ "R_PPC64_SECTOFF_LO_DS",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_TOC16, but for instructions with a DS field. */ HOWTO (R_PPC64_TOC16_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_toc_reloc, /* special_function */ "R_PPC64_TOC16_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_TOC16_LO, but for instructions with a DS field. */ HOWTO (R_PPC64_TOC16_LO_DS, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_toc_reloc, /* special_function */ "R_PPC64_TOC16_LO_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_PLTGOT16, but for instructions with a DS field. */ /* FIXME: R_PPC64_PLTGOT16_DS not implemented. */ @@ -1125,15 +1124,15 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLTGOT16_DS", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Like R_PPC64_PLTGOT16_LO, but for instructions with a DS field. */ /* FIXME: R_PPC64_PLTGOT16_LO not implemented. */ @@ -1141,45 +1140,45 @@ static reloc_howto_type ppc64_elf_howto_ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ ppc64_elf_unhandled_reloc, /* special_function */ "R_PPC64_PLTGOT16_LO_DS",/* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_PPC64_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_PPC64_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage. */ HOWTO (R_PPC64_GNU_VTENTRY, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_PPC64_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -1207,7 +1206,7 @@ ppc64_elf_reloc_type_lookup (abfd, code) bfd *abfd ATTRIBUTE_UNUSED; bfd_reloc_code_real_type code; { - enum elf_ppc_reloc_type ppc_reloc = R_PPC_NONE; + enum elf_ppc64_reloc_type ppc_reloc = R_PPC64_NONE; if (!ppc64_elf_howto_table[R_PPC64_ADDR32]) /* Initialize howto table if needed. */ @@ -1351,7 +1350,7 @@ static void ppc64_elf_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf64_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned int type; @@ -1365,7 +1364,7 @@ ppc64_elf_info_to_howto (abfd, cache_ptr cache_ptr->howto = ppc64_elf_howto_table[type]; } -/* Handle the R_PPC_ADDR16_HA and similar relocs. */ +/* Handle the R_PPC64_ADDR16_HA and similar relocs. */ static bfd_reloc_status_type ppc64_elf_ha_reloc (abfd, reloc_entry, symbol, data, @@ -1404,10 +1403,10 @@ ppc64_elf_brtaken_reloc (abfd, reloc_ent char **error_message; { long insn; - enum elf_ppc_reloc_type r_type; + enum elf_ppc64_reloc_type r_type; bfd_size_type octets; /* Disabled until we sort out how ld should choose 'y' vs 'at'. */ - boolean is_power4 = false; + bfd_boolean is_power4 = FALSE; /* If this is a relocatable link (output_bfd test tells us), just call the generic function. Any adjustment will be done at final @@ -1419,7 +1418,7 @@ ppc64_elf_brtaken_reloc (abfd, reloc_ent octets = reloc_entry->address * bfd_octets_per_byte (abfd); insn = bfd_get_32 (abfd, (bfd_byte *) data + octets); insn &= ~(0x01 << 21); - r_type = (enum elf_ppc_reloc_type) reloc_entry->howto->type; + r_type = (enum elf_ppc64_reloc_type) reloc_entry->howto->type; if (r_type == R_PPC64_ADDR14_BRTAKEN || r_type == R_PPC64_REL14_BRTAKEN) insn |= 0x01 << 21; /* 'y' or 't' bit, lowest bit of BO field. */ @@ -1630,7 +1629,7 @@ ppc64_elf_unhandled_reloc (abfd, reloc_e /* Fix bad default arch selected for a 64 bit input bfd when the default is 32 bit. */ -static boolean +static bfd_boolean ppc64_elf_object_p (abfd) bfd *abfd; { @@ -1645,13 +1644,13 @@ ppc64_elf_object_p (abfd) BFD_ASSERT (abfd->arch_info->bits_per_word == 64); } } - return true; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean ppc64_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -1671,10 +1670,10 @@ ppc64_elf_merge_private_bfd_data (ibfd, (*_bfd_error_handler) (msg, bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } - return true; + return TRUE; } /* The following functions are specific to the ELF linker, while @@ -1771,7 +1770,7 @@ struct ppc_dyn_relocs #define IS_ABSOLUTE_RELOC(RTYPE) \ ((RTYPE) != R_PPC64_REL32 \ && (RTYPE) != R_PPC64_REL64 \ - && (RTYPE) != R_PPC64_ADDR30) + && (RTYPE) != R_PPC64_REL30) /* Section name for stubs is the associated section name plus this string. */ @@ -1946,59 +1945,59 @@ static struct ppc_stub_hash_entry *ppc_g const Elf_Internal_Rela *, struct ppc_link_hash_table *)); static struct ppc_stub_hash_entry *ppc_add_stub PARAMS ((const char *, asection *, struct ppc_link_hash_table *)); -static boolean create_linkage_sections +static bfd_boolean create_linkage_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean create_got_section +static bfd_boolean create_got_section PARAMS ((bfd *, struct bfd_link_info *)); -static boolean ppc64_elf_create_dynamic_sections +static bfd_boolean ppc64_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static void ppc64_elf_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); -static boolean ppc64_elf_check_relocs +static bfd_boolean ppc64_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection * ppc64_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean ppc64_elf_gc_sweep_hook +static bfd_boolean ppc64_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean func_desc_adjust +static bfd_boolean func_desc_adjust PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean ppc64_elf_func_desc_adjust +static bfd_boolean ppc64_elf_func_desc_adjust PARAMS ((bfd *, struct bfd_link_info *)); -static boolean ppc64_elf_adjust_dynamic_symbol +static bfd_boolean ppc64_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); static void ppc64_elf_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); -static boolean allocate_dynrelocs + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); static enum elf_reloc_type_class ppc64_elf_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean ppc64_elf_size_dynamic_sections +static bfd_boolean ppc64_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static INLINE enum ppc_stub_type ppc_type_of_stub PARAMS ((asection *, const Elf_Internal_Rela *, struct ppc_link_hash_entry **, bfd_vma)); static bfd_byte *build_plt_stub PARAMS ((bfd *, bfd_byte *, int, int)); -static boolean ppc_build_one_stub +static bfd_boolean ppc_build_one_stub PARAMS ((struct bfd_hash_entry *, PTR)); -static boolean ppc_size_one_stub +static bfd_boolean ppc_size_one_stub PARAMS ((struct bfd_hash_entry *, PTR)); static void group_sections - PARAMS ((struct ppc_link_hash_table *, bfd_size_type, boolean)); -static boolean ppc64_elf_relocate_section + PARAMS ((struct ppc_link_hash_table *, bfd_size_type, bfd_boolean)); +static bfd_boolean ppc64_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *info, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, asection **)); -static boolean ppc64_elf_finish_dynamic_symbol +static bfd_boolean ppc64_elf_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean ppc64_elf_finish_dynamic_sections +static bfd_boolean ppc64_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); /* Get the ppc64 ELF linker hash table from a link_info structure. */ @@ -2262,7 +2261,7 @@ ppc_get_stub_entry (input_section, sym_s return NULL; stub_entry = ppc_stub_hash_lookup (&htab->stub_hash_table, - stub_name, false, false); + stub_name, FALSE, FALSE); if (h != NULL) h->stub_cache = stub_entry; @@ -2314,7 +2313,7 @@ ppc_add_stub (stub_name, section, htab) /* Enter this entry into the linker stub hash table. */ stub_entry = ppc_stub_hash_lookup (&htab->stub_hash_table, stub_name, - true, false); + TRUE, FALSE); if (stub_entry == NULL) { (*_bfd_error_handler) (_("%s: cannot create stub entry %s"), @@ -2331,7 +2330,7 @@ ppc_add_stub (stub_name, section, htab) /* Create sections for linker generated code. */ -static boolean +static bfd_boolean create_linkage_sections (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -2348,14 +2347,14 @@ create_linkage_sections (dynobj, info) if (htab->sfpr == NULL || ! bfd_set_section_flags (dynobj, htab->sfpr, flags) || ! bfd_set_section_alignment (dynobj, htab->sfpr, 2)) - return false; + return FALSE; /* Create .glink for lazy dynamic linking support. */ htab->sglink = bfd_make_section_anyway (dynobj, ".glink"); if (htab->sglink == NULL || ! bfd_set_section_flags (dynobj, htab->sglink, flags) || ! bfd_set_section_alignment (dynobj, htab->sglink, 2)) - return false; + return FALSE; /* Create .branch_lt for plt_branch stubs. */ flags = (SEC_ALLOC | SEC_LOAD @@ -2364,7 +2363,7 @@ create_linkage_sections (dynobj, info) if (htab->sbrlt == NULL || ! bfd_set_section_flags (dynobj, htab->sbrlt, flags) || ! bfd_set_section_alignment (dynobj, htab->sbrlt, 3)) - return false; + return FALSE; if (info->shared) { @@ -2374,15 +2373,15 @@ create_linkage_sections (dynobj, info) if (!htab->srelbrlt || ! bfd_set_section_flags (dynobj, htab->srelbrlt, flags) || ! bfd_set_section_alignment (dynobj, htab->srelbrlt, 3)) - return false; + return FALSE; } - return true; + return TRUE; } /* Create .got and .rela.got sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean create_got_section (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -2390,7 +2389,7 @@ create_got_section (dynobj, info) struct ppc_link_hash_table *htab; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; htab = ppc_hash_table (info); htab->sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -2404,13 +2403,13 @@ create_got_section (dynobj, info) | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3)) - return false; - return true; + return FALSE; + return TRUE; } /* Create the dynamic sections, and set up shortcuts. */ -static boolean +static bfd_boolean ppc64_elf_create_dynamic_sections (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -2419,10 +2418,10 @@ ppc64_elf_create_dynamic_sections (dynob htab = ppc_hash_table (info); if (!htab->sgot && !create_got_section (dynobj, info)) - return false; + return FALSE; if (!_bfd_elf_create_dynamic_sections (dynobj, info)) - return false; + return FALSE; htab->splt = bfd_get_section_by_name (dynobj, ".plt"); htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt"); @@ -2434,7 +2433,7 @@ ppc64_elf_create_dynamic_sections (dynob || (!info->shared && !htab->srelbss)) abort (); - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -2493,7 +2492,7 @@ ppc64_elf_copy_indirect_symbol (bed, dir /* Set a flag, used by ppc64_elf_gc_mark_hook, on the entry symbol and symbols undefined on the command-line. */ -boolean +bfd_boolean ppc64_elf_mark_entry_syms (info) struct bfd_link_info *info; { @@ -2505,18 +2504,18 @@ ppc64_elf_mark_entry_syms (info) { struct elf_link_hash_entry *h; - h = elf_link_hash_lookup (&htab->elf, sym->name, false, false, false); + h = elf_link_hash_lookup (&htab->elf, sym->name, FALSE, FALSE, FALSE); if (h != NULL) ((struct ppc_link_hash_entry *) h)->is_entry = 1; } - return true; + return TRUE; } /* Look through the relocs for a section during the first phase, and calculate needed space in the global offset table, procedure linkage table, and dynamic reloc sections. */ -static boolean +static bfd_boolean ppc64_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -2532,7 +2531,7 @@ ppc64_elf_check_relocs (abfd, info, sec, asection **opd_sym_map; if (info->relocateable) - return true; + return TRUE; htab = ppc_hash_table (info); symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -2564,7 +2563,7 @@ ppc64_elf_check_relocs (abfd, info, sec, amt = sec->_raw_size * sizeof (union opd_info) / 24; opd_sym_map = (asection **) bfd_zalloc (abfd, amt); if (opd_sym_map == NULL) - return false; + return FALSE; elf_section_data (sec)->tdata = opd_sym_map; } @@ -2572,14 +2571,14 @@ ppc64_elf_check_relocs (abfd, info, sec, htab->elf.dynobj = abfd; if (htab->sfpr == NULL && !create_linkage_sections (htab->elf.dynobj, info)) - return false; + return FALSE; rel_end = relocs + sec->reloc_count; for (rel = relocs; rel < rel_end; rel++) { unsigned long r_symndx; struct elf_link_hash_entry *h; - enum elf_ppc_reloc_type r_type; + enum elf_ppc64_reloc_type r_type; r_symndx = ELF64_R_SYM (rel->r_info); if (r_symndx < symtab_hdr->sh_info) @@ -2587,7 +2586,7 @@ ppc64_elf_check_relocs (abfd, info, sec, else h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); switch (r_type) { /* GOT16 relocations */ @@ -2601,7 +2600,7 @@ ppc64_elf_check_relocs (abfd, info, sec, /* This symbol requires a global offset table entry. */ if (htab->sgot == NULL && !create_got_section (htab->elf.dynobj, info)) - return false; + return FALSE; if (h != NULL) { @@ -2622,7 +2621,7 @@ ppc64_elf_check_relocs (abfd, info, sec, local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; } local_got_refcounts[r_symndx] += 1; @@ -2644,7 +2643,7 @@ ppc64_elf_check_relocs (abfd, info, sec, /* It does not make sense to have a procedure linkage table entry for a local symbol. */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; @@ -2673,14 +2672,14 @@ ppc64_elf_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_PPC64_GNU_VTINHERIT: if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_PPC64_GNU_VTENTRY: if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; case R_PPC64_REL14: @@ -2711,7 +2710,7 @@ ppc64_elf_check_relocs (abfd, info, sec, struct elf_link_hash_entry *fdh; fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1, - false, false, false); + FALSE, FALSE, FALSE); if (fdh != NULL) { ((struct ppc_link_hash_entry *) fdh)->is_func_descriptor = 1; @@ -2723,7 +2722,7 @@ ppc64_elf_check_relocs (abfd, info, sec, if (opd_sym_map != NULL && h == NULL && rel + 1 < rel_end - && ((enum elf_ppc_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info) + && ((enum elf_ppc64_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info) == R_PPC64_TOC)) { asection *s; @@ -2731,14 +2730,15 @@ ppc64_elf_check_relocs (abfd, info, sec, s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; else if (s != sec) opd_sym_map[rel->r_offset / 24] = s; } /* Fall through. */ - case R_PPC64_REL64: + case R_PPC64_REL30: case R_PPC64_REL32: + case R_PPC64_REL64: case R_PPC64_ADDR14: case R_PPC64_ADDR14_BRNTAKEN: case R_PPC64_ADDR14_BRTAKEN: @@ -2753,7 +2753,6 @@ ppc64_elf_check_relocs (abfd, info, sec, case R_PPC64_ADDR16_LO: case R_PPC64_ADDR16_LO_DS: case R_PPC64_ADDR24: - case R_PPC64_ADDR30: case R_PPC64_ADDR32: case R_PPC64_UADDR16: case R_PPC64_UADDR32: @@ -2815,7 +2814,7 @@ ppc64_elf_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; if (strncmp (name, ".rela", 5) != 0 || strcmp (bfd_get_section_name (abfd, sec), @@ -2841,7 +2840,7 @@ ppc64_elf_check_relocs (abfd, info, sec, if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 3)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; } @@ -2862,7 +2861,7 @@ ppc64_elf_check_relocs (abfd, info, sec, s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct ppc_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -2875,7 +2874,7 @@ ppc64_elf_check_relocs (abfd, info, sec, bfd_alloc (htab->elf.dynobj, (bfd_size_type) sizeof *p)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -2894,7 +2893,7 @@ ppc64_elf_check_relocs (abfd, info, sec, } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -2912,10 +2911,10 @@ ppc64_elf_gc_mark_hook (sec, info, rel, if (h != NULL) { - enum elf_ppc_reloc_type r_type; + enum elf_ppc64_reloc_type r_type; struct ppc_link_hash_entry *fdh; - r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); switch (r_type) { case R_PPC64_GNU_VTINHERIT: @@ -2937,7 +2936,7 @@ ppc64_elf_gc_mark_hook (sec, info, rel, /* Function entry syms return NULL if they are in .opd and are not ._start (or others undefined on the ld command line). Thus we avoid marking all function - sections, as all functions are referenced in .opd. */ + sections, as all functions are referenced in .opd. */ else if ((fdh->oh != NULL && ((struct ppc_link_hash_entry *) fdh->oh)->is_entry) || elf_section_data (sec)->tdata == NULL) @@ -2971,7 +2970,7 @@ ppc64_elf_gc_mark_hook (sec, info, rel, /* Update the .got, .plt. and dynamic reloc reference counts for the section being removed. */ -static boolean +static bfd_boolean ppc64_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -2993,11 +2992,11 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec for (rel = relocs; rel < relend; rel++) { unsigned long r_symndx; - enum elf_ppc_reloc_type r_type; + enum elf_ppc64_reloc_type r_type; struct elf_link_hash_entry *h; r_symndx = ELF64_R_SYM (rel->r_info); - r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); switch (r_type) { case R_PPC64_GOT16: @@ -3044,6 +3043,7 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec } break; + case R_PPC64_REL30: case R_PPC64_REL32: case R_PPC64_REL64: if (r_symndx >= symtab_hdr->sh_info) @@ -3081,7 +3081,6 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec case R_PPC64_ADDR16_LO: case R_PPC64_ADDR16_LO_DS: case R_PPC64_ADDR24: - case R_PPC64_ADDR30: case R_PPC64_ADDR32: case R_PPC64_ADDR64: case R_PPC64_UADDR16: @@ -3112,13 +3111,13 @@ ppc64_elf_gc_sweep_hook (abfd, info, sec break; } } - return true; + return TRUE; } /* Called via elf_link_hash_traverse to transfer dynamic linking information on function code symbol entries to their corresponding function descriptor symbol entries. */ -static boolean +static bfd_boolean func_desc_adjust (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -3127,7 +3126,7 @@ func_desc_adjust (h, inf) struct ppc_link_hash_table *htab; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; @@ -3138,25 +3137,25 @@ func_desc_adjust (h, inf) /* If this is a function code symbol, transfer dynamic linking information to the function descriptor symbol. */ if (!((struct ppc_link_hash_entry *) h)->is_func) - return true; + return TRUE; if (h->root.type == bfd_link_hash_undefweak && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR)) - htab->have_undefweak = true; + htab->have_undefweak = TRUE; if (h->plt.refcount > 0 && h->root.root.string[0] == '.' && h->root.root.string[1] != '\0') { struct elf_link_hash_entry *fdh = ((struct ppc_link_hash_entry *) h)->oh; - boolean force_local; + bfd_boolean force_local; /* Find the corresponding function descriptor symbol. Create it as undefined if necessary. */ if (fdh == NULL) fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1, - false, false, true); + FALSE, FALSE, TRUE); if (fdh == NULL && info->shared @@ -3179,9 +3178,9 @@ func_desc_adjust (h, inf) bh = &fdh->root; if ( !(_bfd_generic_link_add_one_symbol (info, abfd, newsym->name, newsym->flags, - newsym->section, newsym->value, NULL, false, false, &bh))) + newsym->section, newsym->value, NULL, FALSE, FALSE, &bh))) { - return false; + return FALSE; } fdh = (struct elf_link_hash_entry *) bh; fdh->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; @@ -3195,7 +3194,7 @@ func_desc_adjust (h, inf) { if (fdh->dynindx == -1) if (! bfd_elf64_link_record_dynamic_symbol (info, fdh)) - return false; + return FALSE; fdh->elf_link_hash_flags |= (h->elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR | ELF_LINK_HASH_REF_DYNAMIC @@ -3229,7 +3228,7 @@ func_desc_adjust (h, inf) _bfd_elf_link_hash_hide_symbol (info, h, force_local); } - return true; + return TRUE; } #define MIN_SAVE_FPR 14 @@ -3239,7 +3238,7 @@ func_desc_adjust (h, inf) this hook to a) provide some gcc support functions, and b) transfer dynamic linking information gathered so far on function code symbol entries, to their corresponding function descriptor symbol entries. */ -static boolean +static bfd_boolean ppc64_elf_func_desc_adjust (obfd, info) bfd *obfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -3256,7 +3255,7 @@ ppc64_elf_func_desc_adjust (obfd, info) if (htab->sfpr == NULL) /* We don't have any relocs. */ - return true; + return TRUE; /* First provide any missing ._savef* and ._restf* functions. */ memcpy (sym, "._savef14", 10); @@ -3264,7 +3263,7 @@ ppc64_elf_func_desc_adjust (obfd, info) { sym[7] = i / 10 + '0'; sym[8] = i % 10 + '0'; - h = elf_link_hash_lookup (&htab->elf, sym, false, false, true); + h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE); if (h != NULL && h->root.type == bfd_link_hash_undefined) { @@ -3284,7 +3283,7 @@ ppc64_elf_func_desc_adjust (obfd, info) { sym[7] = i / 10 + '0'; sym[8] = i % 10 + '0'; - h = elf_link_hash_lookup (&htab->elf, sym, false, false, true); + h = elf_link_hash_lookup (&htab->elf, sym, FALSE, FALSE, TRUE); if (h != NULL && h->root.type == bfd_link_hash_undefined) { @@ -3310,7 +3309,7 @@ ppc64_elf_func_desc_adjust (obfd, info) if (!htab->have_undefweak) { _bfd_strip_section_from_output (info, htab->sfpr); - return true; + return TRUE; } htab->sfpr->_raw_size = 4; @@ -3318,7 +3317,7 @@ ppc64_elf_func_desc_adjust (obfd, info) p = (bfd_byte *) bfd_alloc (htab->elf.dynobj, htab->sfpr->_raw_size); if (p == NULL) - return false; + return FALSE; htab->sfpr->contents = p; for (i = lowest_savef; i <= MAX_SAVE_FPR; i++) @@ -3347,7 +3346,7 @@ ppc64_elf_func_desc_adjust (obfd, info) bfd_put_32 (htab->elf.dynobj, BLR, p); } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -3356,7 +3355,7 @@ ppc64_elf_func_desc_adjust (obfd, info) change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean ppc64_elf_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -3385,7 +3384,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - return true; + return TRUE; } else h->plt.offset = (bfd_vma) -1; @@ -3399,7 +3398,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -3410,12 +3409,12 @@ ppc64_elf_adjust_dynamic_symbol (info, h For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; eh = (struct ppc_link_hash_entry *) h; for (p = eh->dyn_relocs; p != NULL; p = p->next) @@ -3430,7 +3429,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -3443,8 +3442,8 @@ ppc64_elf_adjust_dynamic_symbol (info, h both the dynamic object and the regular object will refer to the same memory location for the variable. */ - /* We must generate a R_PPC_COPY reloc to tell the dynamic linker to - copy the initial value out of the dynamic object and into the + /* We must generate a R_PPC64_COPY reloc to tell the dynamic linker + to copy the initial value out of the dynamic object and into the runtime process image. We need to remember the offset into the .rela.bss section we are going to use. */ if ((h->root.u.def.section->flags & SEC_ALLOC) != 0) @@ -3465,7 +3464,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -3475,7 +3474,7 @@ ppc64_elf_adjust_dynamic_symbol (info, h /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* If given a function descriptor symbol, hide both the function code @@ -3484,7 +3483,7 @@ static void ppc64_elf_hide_symbol (info, h, force_local) struct bfd_link_info *info; struct elf_link_hash_entry *h; - boolean force_local; + bfd_boolean force_local; { _bfd_elf_link_hash_hide_symbol (info, h, force_local); @@ -3511,7 +3510,7 @@ ppc64_elf_hide_symbol (info, h, force_lo save = *p; *(char *) p = '.'; htab = ppc_hash_table (info); - fh = elf_link_hash_lookup (&htab->elf, p, false, false, false); + fh = elf_link_hash_lookup (&htab->elf, p, FALSE, FALSE, FALSE); *(char *) p = save; /* Unfortunately, if it so happens that the string we were @@ -3524,7 +3523,7 @@ ppc64_elf_hide_symbol (info, h, force_lo while (q >= h->root.root.string && *q == *p) --q, --p; if (q < h->root.root.string && *p == '.') - fh = elf_link_hash_lookup (&htab->elf, p, false, false, false); + fh = elf_link_hash_lookup (&htab->elf, p, FALSE, FALSE, FALSE); } if (fh != NULL) { @@ -3537,7 +3536,7 @@ ppc64_elf_hide_symbol (info, h, force_lo } } -boolean +bfd_boolean ppc64_elf_edit_opd (obfd, info) bfd *obfd; struct bfd_link_info *info; @@ -3557,7 +3556,7 @@ ppc64_elf_edit_opd (obfd, info) bfd_vma offset; bfd_size_type amt; long *adjust; - boolean need_edit; + bfd_boolean need_edit; sec = bfd_get_section_by_name (ibfd, ".opd"); if (sec == NULL) @@ -3586,20 +3585,20 @@ ppc64_elf_edit_opd (obfd, info) sym_hashes = elf_sym_hashes (ibfd); /* Read the relocations. */ - relstart = _bfd_elf64_link_read_relocs (obfd, sec, (PTR) NULL, + relstart = _bfd_elf64_link_read_relocs (ibfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL, info->keep_memory); if (relstart == NULL) - return false; + return FALSE; /* First run through the relocs to check they are sane, and to determine whether we need to edit this opd section. */ - need_edit = false; + need_edit = FALSE; offset = 0; relend = relstart + sec->reloc_count; for (rel = relstart; rel < relend; rel++) { - enum elf_ppc_reloc_type r_type; + enum elf_ppc64_reloc_type r_type; unsigned long r_symndx; asection *sym_sec; struct elf_link_hash_entry *h; @@ -3608,7 +3607,7 @@ ppc64_elf_edit_opd (obfd, info) /* .opd contains a regular array of 24 byte entries. We're only interested in the reloc pointing to a function entry point. */ - r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); if (r_type == R_PPC64_TOC) continue; @@ -3617,13 +3616,13 @@ ppc64_elf_edit_opd (obfd, info) (*_bfd_error_handler) (_("%s: unexpected reloc type %u in .opd section"), bfd_archive_filename (ibfd), r_type); - need_edit = false; + need_edit = FALSE; break; } if (rel + 1 >= relend) continue; - r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info); + r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE ((rel + 1)->r_info); if (r_type != R_PPC64_TOC) continue; @@ -3633,11 +3632,11 @@ ppc64_elf_edit_opd (obfd, info) "ld -r" we might have padding in the middle of .opd. Also, there's nothing to prevent someone putting something silly in .opd with the assembler. No .opd - optimization for them! */ + optimization for them! */ (*_bfd_error_handler) (_("%s: .opd is not a regular array of opd entries"), bfd_archive_filename (ibfd)); - need_edit = false; + need_edit = FALSE; break; } @@ -3680,7 +3679,7 @@ ppc64_elf_edit_opd (obfd, info) (_("%s: undefined sym `%s' in .opd section"), bfd_archive_filename (ibfd), h != NULL ? h->root.root.string : ""); - need_edit = false; + need_edit = FALSE; break; } @@ -3693,7 +3692,7 @@ ppc64_elf_edit_opd (obfd, info) which we test for via the output_section. */ if (sym_sec->owner != ibfd || sym_sec->output_section == bfd_abs_section_ptr) - need_edit = true; + need_edit = TRUE; offset += 24; } @@ -3702,7 +3701,7 @@ ppc64_elf_edit_opd (obfd, info) { Elf_Internal_Rela *write_rel; bfd_byte *rptr, *wptr; - boolean skip; + bfd_boolean skip; /* This seems a waste of time as input .opd sections are all zeros as generated by gcc, but I suppose there's no reason @@ -3721,7 +3720,7 @@ ppc64_elf_edit_opd (obfd, info) error_free_rel: if (elf_section_data (sec)->relocs != relstart) free (relstart); - return false; + return FALSE; } sec->contents = loc; sec->flags |= (SEC_IN_MEMORY | SEC_HAS_CONTENTS); @@ -3732,7 +3731,7 @@ ppc64_elf_edit_opd (obfd, info) wptr = sec->contents; rptr = sec->contents; write_rel = relstart; - skip = false; + skip = FALSE; offset = 0; for (rel = relstart; rel < relend; rel++) { @@ -3789,7 +3788,7 @@ ppc64_elf_edit_opd (obfd, info) htab = ppc_hash_table (info); fdh = (struct ppc_link_hash_entry *) elf_link_hash_lookup (&htab->elf, fd_name, - false, false, false); + FALSE, FALSE, FALSE); fdh->is_func_descriptor = 1; fdh->oh = &fh->elf; fh->is_func = 1; @@ -3824,7 +3823,7 @@ ppc64_elf_edit_opd (obfd, info) htab = ppc_hash_table (info); fdh = (struct ppc_link_hash_entry *) elf_link_hash_lookup (&htab->elf, fd_name, - false, false, false); + FALSE, FALSE, FALSE); fdh->is_func_descriptor = 1; fdh->oh = &fh->elf; fh->is_func = 1; @@ -3840,7 +3839,7 @@ ppc64_elf_edit_opd (obfd, info) we'd need to look through the local syms for the function descriptor sym which we don't have at the moment. So keep an - array of adjustments. */ + array of adjustments. */ adjust[rel->r_offset / 24] = wptr - rptr; } @@ -3885,9 +3884,9 @@ ppc64_elf_edit_opd (obfd, info) } } - return true; + return TRUE; } - + /* This is the condition under which ppc64_elf_finish_dynamic_symbol will be called from elflink.h. If elflink.h doesn't call our finish_dynamic_symbol routine, we'll need to do something about @@ -3902,7 +3901,7 @@ ppc64_elf_edit_opd (obfd, info) /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -3914,7 +3913,7 @@ allocate_dynrelocs (h, inf) struct ppc_dyn_relocs *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; @@ -3968,7 +3967,7 @@ allocate_dynrelocs (h, inf) if (h->got.refcount > 0) { - boolean dyn; + bfd_boolean dyn; /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -3976,7 +3975,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -3991,7 +3990,7 @@ allocate_dynrelocs (h, inf) eh = (struct ppc_link_hash_entry *) h; if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* In the shared -Bsymbolic case, discard space allocated for dynamic pc-relative relocs against symbols which turn out to be @@ -4037,7 +4036,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -4058,12 +4057,12 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf64_External_Rela); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -4086,15 +4085,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean ppc64_elf_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -4102,7 +4101,7 @@ ppc64_elf_size_dynamic_sections (output_ struct ppc_link_hash_table *htab; bfd *dynobj; asection *s; - boolean relocs; + bfd_boolean relocs; bfd *ibfd; htab = ppc_hash_table (info); @@ -4192,7 +4191,7 @@ ppc64_elf_size_dynamic_sections (output_ /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -4225,7 +4224,7 @@ ppc64_elf_size_dynamic_sections (output_ else { if (s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -4255,7 +4254,7 @@ ppc64_elf_size_dynamic_sections (output_ of garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } if (htab->elf.dynamic_sections_created) @@ -4271,7 +4270,7 @@ ppc64_elf_size_dynamic_sections (output_ if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->splt != NULL && htab->splt->_raw_size != 0) @@ -4281,14 +4280,14 @@ ppc64_elf_size_dynamic_sections (output_ || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0) || !add_dynamic_entry (DT_PPC64_GLINK, 0)) - return false; + return FALSE; } if (NO_OPD_RELOCS) { if (!add_dynamic_entry (DT_PPC64_OPD, 0) || !add_dynamic_entry (DT_PPC64_OPDSZ, 0)) - return false; + return FALSE; } if (relocs) @@ -4296,7 +4295,7 @@ ppc64_elf_size_dynamic_sections (output_ if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -4307,13 +4306,13 @@ ppc64_elf_size_dynamic_sections (output_ if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* Determine the type of stub needed, if any, for a call. */ @@ -4399,7 +4398,7 @@ build_plt_stub (obfd, p, offset, glink) return p; } -static boolean +static bfd_boolean ppc_build_one_stub (gen_entry, in_arg) struct bfd_hash_entry *gen_entry; PTR in_arg; @@ -4451,13 +4450,13 @@ ppc_build_one_stub (gen_entry, in_arg) case ppc_stub_plt_branch: br_entry = ppc_branch_hash_lookup (&htab->branch_hash_table, stub_entry->root.string + 9, - false, false); + FALSE, FALSE); if (br_entry == NULL) { (*_bfd_error_handler) (_("can't find branch stub `%s'"), stub_entry->root.string + 9); - htab->stub_error = true; - return false; + htab->stub_error = TRUE; + return FALSE; } off = (stub_entry->target_value @@ -4471,7 +4470,7 @@ ppc_build_one_stub (gen_entry, in_arg) { /* Create a reloc for the branch lookup table entry. */ Elf_Internal_Rela rela; - Elf64_External_Rela *r; + bfd_byte *loc; rela.r_offset = (br_entry->offset + htab->sbrlt->output_offset @@ -4479,9 +4478,9 @@ ppc_build_one_stub (gen_entry, in_arg) rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); rela.r_addend = off; - r = (Elf64_External_Rela *) htab->srelbrlt->contents; - r += htab->srelbrlt->reloc_count++; - bfd_elf64_swap_reloca_out (htab->srelbrlt->owner, &rela, r); + loc = htab->srelbrlt->contents; + loc += htab->srelbrlt->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (htab->srelbrlt->owner, &rela, loc); } off = (br_entry->offset @@ -4496,8 +4495,8 @@ ppc_build_one_stub (gen_entry, in_arg) (_("linkage table error against `%s'"), stub_entry->root.string); bfd_set_error (bfd_error_bad_value); - htab->stub_error = true; - return false; + htab->stub_error = TRUE; + return FALSE; } indx = off; @@ -4540,8 +4539,8 @@ ppc_build_one_stub (gen_entry, in_arg) (_("linkage table error against `%s'"), stub_entry->h->elf.root.root.string); bfd_set_error (bfd_error_bad_value); - htab->stub_error = true; - return false; + htab->stub_error = TRUE; + return FALSE; } p = build_plt_stub (stub_bfd, loc, (int) off, 0); @@ -4550,18 +4549,18 @@ ppc_build_one_stub (gen_entry, in_arg) default: BFD_FAIL (); - return false; + return FALSE; } stub_sec->_cooked_size += size; - return true; + return TRUE; } /* As above, but don't actually build the stub. Just bump offset so we know stub section sizes, and select plt_branch stubs where long_branch stubs won't do. */ -static boolean +static bfd_boolean ppc_size_one_stub (gen_entry, in_arg) struct bfd_hash_entry *gen_entry; PTR in_arg; @@ -4606,13 +4605,13 @@ ppc_size_one_stub (gen_entry, in_arg) br_entry = ppc_branch_hash_lookup (&htab->branch_hash_table, stub_entry->root.string + 9, - true, false); + TRUE, FALSE); if (br_entry == NULL) { (*_bfd_error_handler) (_("can't build branch stub `%s'"), stub_entry->root.string + 9); - htab->stub_error = true; - return false; + htab->stub_error = TRUE; + return FALSE; } if (br_entry->iter != htab->stub_iteration) @@ -4627,7 +4626,7 @@ ppc_size_one_stub (gen_entry, in_arg) } stub_entry->stub_sec->_raw_size += size; - return true; + return TRUE; } /* Set up various things so that we can make a list of input sections @@ -4743,7 +4742,7 @@ static void group_sections (htab, stub_group_size, stubs_always_before_branch) struct ppc_link_hash_table *htab; bfd_size_type stub_group_size; - boolean stubs_always_before_branch; + bfd_boolean stubs_always_before_branch; { asection **list = htab->input_list + htab->top_index; do @@ -4813,7 +4812,7 @@ group_sections (htab, stub_group_size, s PC-relative calls to a target that is unreachable with a "bl" instruction. */ -boolean +bfd_boolean ppc64_elf_size_stubs (output_bfd, stub_bfd, info, group_size, add_stub_section, layout_sections_again) bfd *output_bfd; @@ -4824,7 +4823,7 @@ ppc64_elf_size_stubs (output_bfd, stub_b void (*layout_sections_again) PARAMS ((void)); { bfd_size_type stub_group_size; - boolean stubs_always_before_branch; + bfd_boolean stubs_always_before_branch; struct ppc_link_hash_table *htab = ppc_hash_table (info); /* Stash our params away. */ @@ -4851,10 +4850,10 @@ ppc64_elf_size_stubs (output_bfd, stub_b bfd *input_bfd; unsigned int bfd_indx; asection *stub_sec; - boolean stub_changed; + bfd_boolean stub_changed; htab->stub_iteration += 1; - stub_changed = false; + stub_changed = FALSE; for (input_bfd = info->input_bfds, bfd_indx = 0; input_bfd != NULL; @@ -4914,7 +4913,7 @@ ppc64_elf_size_stubs (output_bfd, stub_b r_type = ELF64_R_TYPE (irela->r_info); r_indx = ELF64_R_SYM (irela->r_info); - if (r_type >= (unsigned int) R_PPC_max) + if (r_type >= (unsigned int) R_PPC64_max) { bfd_set_error (bfd_error_bad_value); goto error_ret_free_internal; @@ -5010,7 +5009,7 @@ ppc64_elf_size_stubs (output_bfd, stub_b goto error_ret_free_internal; stub_entry = ppc_stub_hash_lookup (&htab->stub_hash_table, - stub_name, false, false); + stub_name, FALSE, FALSE); if (stub_entry != NULL) { /* The proper stub has already been created. */ @@ -5030,14 +5029,14 @@ ppc64_elf_size_stubs (output_bfd, stub_b && (symtab_hdr->contents != (unsigned char *) local_syms)) free (local_syms); - return false; + return FALSE; } stub_entry->target_value = sym_value; stub_entry->target_section = sym_sec; stub_entry->stub_type = stub_type; stub_entry->h = hash; - stub_changed = true; + stub_changed = TRUE; } /* We're done with the internal relocs, free them. */ @@ -5081,7 +5080,7 @@ ppc64_elf_size_stubs (output_bfd, stub_b the dynamic symbol table is corrupted since the section symbol for the stripped section isn't written. */ - return true; + return TRUE; } /* Called after we have determined section placement. If sections @@ -5145,7 +5144,7 @@ ppc64_elf_toc (obfd) The stubs are kept in a hash table attached to the main linker hash table. This function is called via gldelf64ppc_finish. */ -boolean +bfd_boolean ppc64_elf_build_stubs (info) struct bfd_link_info *info; { @@ -5166,7 +5165,7 @@ ppc64_elf_build_stubs (info) { stub_sec->contents = (bfd_byte *) bfd_zalloc (htab->stub_bfd, size); if (stub_sec->contents == NULL) - return false; + return FALSE; } stub_sec->_cooked_size = 0; } @@ -5217,7 +5216,7 @@ ppc64_elf_build_stubs (info) htab->sbrlt->contents = (bfd_byte *) bfd_zalloc (htab->sbrlt->owner, htab->sbrlt->_raw_size); if (htab->sbrlt->contents == NULL) - return false; + return FALSE; } /* Build the stubs as directed by the stub hash table. */ @@ -5234,7 +5233,7 @@ ppc64_elf_build_stubs (info) if (stub_sec != NULL || htab->sglink->_raw_size != htab->sglink->_cooked_size) { - htab->stub_error = true; + htab->stub_error = TRUE; (*_bfd_error_handler) (_("stubs don't match calculated size")); } @@ -5270,7 +5269,7 @@ ppc64_elf_build_stubs (info) section, which means that the addend must be adjusted accordingly. */ -static boolean +static bfd_boolean ppc64_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -5289,13 +5288,13 @@ ppc64_elf_relocate_section (output_bfd, Elf_Internal_Rela *relend; bfd_vma *local_got_offsets; bfd_vma TOCstart; - boolean ret = true; - boolean is_opd; + bfd_boolean ret = TRUE; + bfd_boolean is_opd; /* Disabled until we sort out how ld should choose 'y' vs 'at'. */ - boolean is_power4 = false; + bfd_boolean is_power4 = FALSE; if (info->relocateable) - return true; + return TRUE; /* Initialize howto table if needed. */ if (!ppc64_elf_howto_table[R_PPC64_ADDR32]) @@ -5312,7 +5311,7 @@ ppc64_elf_relocate_section (output_bfd, relend = relocs + input_section->reloc_count; for (; rel < relend; rel++) { - enum elf_ppc_reloc_type r_type; + enum elf_ppc64_reloc_type r_type; bfd_vma offset; bfd_vma addend; bfd_reloc_status_type r; @@ -5323,14 +5322,14 @@ ppc64_elf_relocate_section (output_bfd, const char *sym_name; unsigned long r_symndx; bfd_vma relocation; - boolean unresolved_reloc; - boolean warned; + bfd_boolean unresolved_reloc; + bfd_boolean warned; long insn; struct ppc_stub_hash_entry *stub_entry; bfd_vma max_br_offset; bfd_vma from; - r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rel->r_info); + r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rel->r_info); r_symndx = ELF64_R_SYM (rel->r_info); offset = rel->r_offset; addend = rel->r_addend; @@ -5339,8 +5338,8 @@ ppc64_elf_relocate_section (output_bfd, sec = (asection *) 0; h = (struct elf_link_hash_entry *) 0; sym_name = (const char *) 0; - unresolved_reloc = false; - warned = false; + unresolved_reloc = FALSE; + warned = FALSE; if (r_type == R_PPC64_TOC) { @@ -5385,7 +5384,7 @@ ppc64_elf_relocate_section (output_bfd, relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; else relocation = (h->root.u.def.value + sec->output_section->vma @@ -5405,8 +5404,8 @@ ppc64_elf_relocate_section (output_bfd, offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; - warned = true; + return FALSE; + warned = TRUE; } } @@ -5465,7 +5464,7 @@ ppc64_elf_relocate_section (output_bfd, && (stub_entry = ppc_get_stub_entry (input_section, sec, fdh, rel, htab)) != NULL) { - boolean can_plt_call = 0; + bfd_boolean can_plt_call = 0; if (offset + 8 <= input_section->_cooked_size) { @@ -5494,7 +5493,7 @@ ppc64_elf_relocate_section (output_bfd, + stub_entry->stub_sec->output_offset + stub_entry->stub_sec->output_section->vma); addend = 0; - unresolved_reloc = false; + unresolved_reloc = FALSE; } } @@ -5533,12 +5532,12 @@ ppc64_elf_relocate_section (output_bfd, bfd_archive_filename (input_bfd), (int) r_type, sym_name); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; case R_PPC64_NONE: - case R_PPC_GNU_VTINHERIT: - case R_PPC_GNU_VTENTRY: + case R_PPC64_GNU_VTINHERIT: + case R_PPC64_GNU_VTENTRY: continue; /* GOT16 relocations. Like an ADDR16 using the symbol's @@ -5561,7 +5560,7 @@ ppc64_elf_relocate_section (output_bfd, if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; dyn = htab->elf.dynamic_sections_created; @@ -5596,7 +5595,7 @@ ppc64_elf_relocate_section (output_bfd, } } else - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -5618,7 +5617,7 @@ ppc64_elf_relocate_section (output_bfd, if (info->shared) { Elf_Internal_Rela outrel; - Elf64_External_Rela *loc; + bfd_byte *loc; /* We need to generate a R_PPC64_RELATIVE reloc for the dynamic linker. */ @@ -5627,8 +5626,9 @@ ppc64_elf_relocate_section (output_bfd, + off); outrel.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); outrel.r_addend = relocation; - loc = (Elf64_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += (htab->srelgot->reloc_count++ + * sizeof (Elf64_External_Rela)); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); } @@ -5671,7 +5671,7 @@ ppc64_elf_relocate_section (output_bfd, relocation = (htab->splt->output_section->vma + htab->splt->output_offset + h->plt.offset); - unresolved_reloc = false; + unresolved_reloc = FALSE; break; /* TOC16 relocs. We want the offset relative to the TOC base, @@ -5706,6 +5706,7 @@ ppc64_elf_relocate_section (output_bfd, /* Relocations that may need to be propagated if this is a dynamic object. */ + case R_PPC64_REL30: case R_PPC64_REL32: case R_PPC64_REL64: case R_PPC64_ADDR14: @@ -5722,7 +5723,6 @@ ppc64_elf_relocate_section (output_bfd, case R_PPC64_ADDR16_LO: case R_PPC64_ADDR16_LO_DS: case R_PPC64_ADDR24: - case R_PPC64_ADDR30: case R_PPC64_ADDR32: case R_PPC64_ADDR64: case R_PPC64_UADDR16: @@ -5761,24 +5761,24 @@ ppc64_elf_relocate_section (output_bfd, || h->root.type == bfd_link_hash_undefined))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_boolean skip, relocate; asection *sreloc; - Elf64_External_Rela *loc; + bfd_byte *loc; /* When generating a dynamic object, these relocations are copied into the output file to be resolved at run time. */ - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); outrel.r_addend = addend; @@ -5800,7 +5800,7 @@ ppc64_elf_relocate_section (output_bfd, or this is an opd section reloc which must point at a local function. */ outrel.r_addend += relocation; - relocate = true; + relocate = TRUE; if (r_type == R_PPC64_ADDR64 || r_type == R_PPC64_TOC) { if (is_opd && h != NULL) @@ -5815,7 +5815,7 @@ ppc64_elf_relocate_section (output_bfd, bug in binutils handling of weak syms.) In these cases we won't use the opd entry in this lib. */ - unresolved_reloc = false; + unresolved_reloc = FALSE; } outrel.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE); } @@ -5828,7 +5828,7 @@ ppc64_elf_relocate_section (output_bfd, else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -5853,8 +5853,8 @@ ppc64_elf_relocate_section (output_bfd, if (sreloc == NULL) abort (); - loc = (Elf64_External_Rela *) sreloc->contents; - loc += sreloc->reloc_count++; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); /* If this reloc is against an external symbol, it will @@ -5889,7 +5889,7 @@ ppc64_elf_relocate_section (output_bfd, ppc64_elf_howto_table[(int) r_type]->name, sym_name); bfd_set_error (bfd_error_invalid_operation); - ret = false; + ret = FALSE; continue; } @@ -5902,6 +5902,8 @@ ppc64_elf_relocate_section (output_bfd, case R_PPC64_ADDR16_HA: case R_PPC64_ADDR16_HIGHERA: case R_PPC64_ADDR16_HIGHESTA: + case R_PPC64_GOT16_HA: + case R_PPC64_PLTGOT16_HA: case R_PPC64_PLT16_HA: case R_PPC64_TOC16_HA: case R_PPC64_SECTOFF_HA: @@ -5932,7 +5934,7 @@ ppc64_elf_relocate_section (output_bfd, bfd_archive_filename (input_bfd), ppc64_elf_howto_table[(int) r_type]->name); bfd_set_error (bfd_error_bad_value); - ret = false; + ret = FALSE; continue; } break; @@ -5979,7 +5981,7 @@ ppc64_elf_relocate_section (output_bfd, bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, h->root.root.string); - ret = false; + ret = FALSE; } r = _bfd_final_link_relocate (ppc64_elf_howto_table[(int) r_type], @@ -6028,7 +6030,7 @@ ppc64_elf_relocate_section (output_bfd, if (!((*info->callbacks->reloc_overflow) (info, name, ppc64_elf_howto_table[(int) r_type]->name, rel->r_addend, input_bfd, input_section, offset))) - return false; + return FALSE; } else { @@ -6037,7 +6039,7 @@ ppc64_elf_relocate_section (output_bfd, bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, name, (int) r); - ret = false; + ret = FALSE; } } } @@ -6048,7 +6050,7 @@ ppc64_elf_relocate_section (output_bfd, /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean ppc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -6065,7 +6067,7 @@ ppc64_elf_finish_dynamic_symbol (output_ && ((struct ppc_link_hash_entry *) h)->is_func_descriptor) { Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -6084,15 +6086,16 @@ ppc64_elf_finish_dynamic_symbol (output_ rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_JMP_SLOT); rela.r_addend = 0; - loc = (Elf64_External_Rela *) htab->srelplt->contents; - loc += (h->plt.offset - PLT_INITIAL_ENTRY_SIZE) / PLT_ENTRY_SIZE; + loc = htab->srelplt->contents; + loc += ((h->plt.offset - PLT_INITIAL_ENTRY_SIZE) / PLT_ENTRY_SIZE + * sizeof (Elf64_External_Rela)); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } if (h->got.offset != (bfd_vma) -1) { Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -6130,15 +6133,15 @@ ppc64_elf_finish_dynamic_symbol (output_ rela.r_addend = 0; } - loc = (Elf64_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -6153,8 +6156,8 @@ ppc64_elf_finish_dynamic_symbol (output_ + h->root.u.def.section->output_offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_PPC64_COPY); rela.r_addend = 0; - loc = (Elf64_External_Rela *) htab->srelbss->contents; - loc += htab->srelbss->reloc_count++; + loc = htab->srelbss->contents; + loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } @@ -6162,7 +6165,7 @@ ppc64_elf_finish_dynamic_symbol (output_ if (strcmp (h->root.root.string, "_DYNAMIC") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -6172,9 +6175,9 @@ static enum elf_reloc_type_class ppc64_elf_reloc_type_class (rela) const Elf_Internal_Rela *rela; { - enum elf_ppc_reloc_type r_type; + enum elf_ppc64_reloc_type r_type; - r_type = (enum elf_ppc_reloc_type) ELF64_R_TYPE (rela->r_info); + r_type = (enum elf_ppc64_reloc_type) ELF64_R_TYPE (rela->r_info); switch (r_type) { case R_PPC64_RELATIVE: @@ -6190,7 +6193,7 @@ ppc64_elf_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean ppc64_elf_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -6225,30 +6228,32 @@ ppc64_elf_finish_dynamic_sections (outpu continue; case DT_PPC64_GLINK: - dyn.d_un.d_ptr = (htab->sglink->output_section->vma - + htab->sglink->output_offset); + s = htab->sglink; + dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; break; case DT_PPC64_OPD: s = bfd_get_section_by_name (output_bfd, ".opd"); - if (s != NULL) - dyn.d_un.d_ptr = s->vma; + if (s == NULL) + continue; + dyn.d_un.d_ptr = s->vma; break; case DT_PPC64_OPDSZ: s = bfd_get_section_by_name (output_bfd, ".opd"); - if (s != NULL) - dyn.d_un.d_val = s->_raw_size; + if (s == NULL) + continue; + dyn.d_un.d_val = s->_raw_size; break; case DT_PLTGOT: - dyn.d_un.d_ptr = (htab->splt->output_section->vma - + htab->splt->output_offset); + s = htab->splt; + dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; break; case DT_JMPREL: - dyn.d_un.d_ptr = (htab->srelplt->output_section->vma - + htab->srelplt->output_offset); + s = htab->srelplt; + dyn.d_un.d_ptr = s->output_section->vma + s->output_offset; break; case DT_PLTRELSZ: @@ -6258,8 +6263,22 @@ ppc64_elf_finish_dynamic_sections (outpu case DT_RELASZ: /* Don't count procedure linkage table relocs in the overall reloc count. */ - if (htab->srelplt != NULL) - dyn.d_un.d_val -= htab->srelplt->_raw_size; + s = htab->srelplt; + if (s == NULL) + continue; + dyn.d_un.d_val -= s->_raw_size; + break; + + case DT_RELA: + /* We may not be using the standard ELF linker script. + If .rela.plt is the first .rela section, we adjust + DT_RELA to not include it. */ + s = htab->srelplt; + if (s == NULL) + continue; + if (dyn.d_un.d_ptr != s->output_section->vma + s->output_offset) + continue; + dyn.d_un.d_ptr += s->_raw_size; break; } @@ -6286,7 +6305,7 @@ ppc64_elf_finish_dynamic_sections (outpu = PLT_ENTRY_SIZE; } - return true; + return TRUE; } #define TARGET_LITTLE_SYM bfd_elf64_powerpcle_vec diff -uprN binutils-2.13.90.0.16/bfd/elf64-ppc.h binutils-2.13.90.0.18/bfd/elf64-ppc.h --- binutils-2.13.90.0.16/bfd/elf64-ppc.h Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/elf64-ppc.h Mon Dec 16 12:22:52 2002 @@ -17,9 +17,9 @@ You should have received a copy of the G along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -boolean ppc64_elf_mark_entry_syms +bfd_boolean ppc64_elf_mark_entry_syms PARAMS ((struct bfd_link_info *)); -boolean ppc64_elf_edit_opd +bfd_boolean ppc64_elf_edit_opd PARAMS ((bfd *, struct bfd_link_info *)); bfd_vma ppc64_elf_toc PARAMS ((bfd *)); @@ -27,8 +27,8 @@ int ppc64_elf_setup_section_lists PARAMS ((bfd *, struct bfd_link_info *)); void ppc64_elf_next_input_section PARAMS ((struct bfd_link_info *, asection *)); -boolean ppc64_elf_size_stubs +bfd_boolean ppc64_elf_size_stubs PARAMS ((bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma, asection *(*) (const char *, asection *), void (*) (void))); -boolean ppc64_elf_build_stubs +bfd_boolean ppc64_elf_build_stubs PARAMS ((struct bfd_link_info *)); diff -uprN binutils-2.13.90.0.16/bfd/elf64-s390.c binutils-2.13.90.0.18/bfd/elf64-s390.c --- binutils-2.13.90.0.16/bfd/elf64-s390.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/elf64-s390.c Tue Jan 21 10:21:32 2003 @@ -29,47 +29,51 @@ static reloc_howto_type *elf_s390_reloc_ PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf_s390_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean elf_s390_is_local_label_name +static bfd_boolean elf_s390_is_local_label_name PARAMS ((bfd *, const char *)); static struct bfd_hash_entry *link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *elf_s390_link_hash_table_create PARAMS ((bfd *)); -static boolean create_got_section +static bfd_boolean create_got_section PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf_s390_create_dynamic_sections +static bfd_boolean elf_s390_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf_s390_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); -static boolean elf_s390_check_relocs +static bfd_boolean elf_s390_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static asection *elf_s390_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf_s390_gc_sweep_hook +static bfd_boolean elf_s390_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean elf_s390_adjust_dynamic_symbol +struct elf_s390_link_hash_entry; +static void elf_s390_adjust_gotplt + PARAMS ((struct elf_s390_link_hash_entry *)); +static bfd_boolean elf_s390_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean allocate_dynrelocs +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_s390_size_dynamic_sections +static bfd_boolean elf_s390_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_s390_relocate_section +static bfd_boolean elf_s390_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf_s390_finish_dynamic_symbol +static bfd_boolean elf_s390_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); static enum elf_reloc_type_class elf_s390_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean elf_s390_finish_dynamic_sections +static bfd_boolean elf_s390_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_s390_object_p PARAMS ((bfd *)); +static bfd_boolean elf_s390_object_p + PARAMS ((bfd *)); #include "elf/s390.h" @@ -84,49 +88,95 @@ static reloc_howto_type elf_howto_table[ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_390_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ - HOWTO(R_390_8, 0, 0, 8, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_8", false, 0,0x000000ff, false), - HOWTO(R_390_12, 0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_12", false, 0,0x00000fff, false), - HOWTO(R_390_16, 0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_16", false, 0,0x0000ffff, false), - HOWTO(R_390_32, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_32", false, 0,0xffffffff, false), - HOWTO(R_390_PC32, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32", false, 0,0xffffffff, true), - HOWTO(R_390_GOT12, 0, 1, 12, false, 0, complain_overflow_dont, bfd_elf_generic_reloc, "R_390_GOT12", false, 0,0x00000fff, false), - HOWTO(R_390_GOT32, 0, 2, 32, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT32", false, 0,0xffffffff, false), - HOWTO(R_390_PLT32, 0, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32", false, 0,0xffffffff, true), - HOWTO(R_390_COPY, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_COPY", false, 0,MINUS_ONE, false), - HOWTO(R_390_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GLOB_DAT",false, 0,MINUS_ONE, false), - HOWTO(R_390_JMP_SLOT, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_JMP_SLOT",false, 0,MINUS_ONE, false), - HOWTO(R_390_RELATIVE, 0, 4, 64, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_RELATIVE",false, 0,MINUS_ONE, false), - HOWTO(R_390_GOTOFF, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTOFF", false, 0,MINUS_ONE, false), - HOWTO(R_390_GOTPC, 0, 4, 64, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPC", false, 0,MINUS_ONE, true), - HOWTO(R_390_GOT16, 0, 1, 16, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT16", false, 0,0x0000ffff, false), - HOWTO(R_390_PC16, 0, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16", false, 0,0x0000ffff, true), - HOWTO(R_390_PC16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC16DBL", false, 0,0x0000ffff, true), - HOWTO(R_390_PLT16DBL, 1, 1, 16, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT16DBL", false, 0,0x0000ffff, true), - HOWTO(R_390_PC32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC32DBL", false, 0,0xffffffff, true), - HOWTO(R_390_PLT32DBL, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT32DBL", false, 0,0xffffffff, true), - HOWTO(R_390_GOTPCDBL, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTPCDBL", false, 0,MINUS_ONE, true), - HOWTO(R_390_64, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_64", false, 0,MINUS_ONE, false), - HOWTO(R_390_PC64, 0, 4, 64, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PC64", false, 0,MINUS_ONE, true), - HOWTO(R_390_GOT64, 0, 4, 64, false, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOT64", false, 0,MINUS_ONE, false), - HOWTO(R_390_PLT64, 0, 4, 64, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_PLT64", false, 0,MINUS_ONE, true), - HOWTO(R_390_GOTENT, 1, 2, 32, true, 0, complain_overflow_bitfield, bfd_elf_generic_reloc, "R_390_GOTENT", false, 0,MINUS_ONE, true), + HOWTO(R_390_8, 0, 0, 8, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_8", FALSE, 0,0x000000ff, FALSE), + HOWTO(R_390_12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_390_12", FALSE, 0,0x00000fff, FALSE), + HOWTO(R_390_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_32", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_PC32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC32", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_GOT12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_390_GOT12", FALSE, 0,0x00000fff, FALSE), + HOWTO(R_390_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOT32", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_PLT32, 0, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLT32", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_COPY, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_COPY", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_GLOB_DAT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GLOB_DAT", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_JMP_SLOT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_JMP_SLOT", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_RELATIVE, 0, 4, 64, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_RELATIVE", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_GOTOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTOFF32", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_GOTPC, 0, 4, 64, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPC", FALSE, 0,MINUS_ONE, TRUE), + HOWTO(R_390_GOT16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOT16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_PC16, 0, 1, 16, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC16", FALSE, 0,0x0000ffff, TRUE), + HOWTO(R_390_PC16DBL, 1, 1, 16, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC16DBL", FALSE, 0,0x0000ffff, TRUE), + HOWTO(R_390_PLT16DBL, 1, 1, 16, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLT16DBL", FALSE, 0,0x0000ffff, TRUE), + HOWTO(R_390_PC32DBL, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC32DBL", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_PLT32DBL, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLT32DBL", FALSE, 0,0xffffffff, TRUE), + HOWTO(R_390_GOTPCDBL, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPCDBL", FALSE, 0,MINUS_ONE, TRUE), + HOWTO(R_390_64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_64", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_PC64, 0, 4, 64, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PC64", FALSE, 0,MINUS_ONE, TRUE), + HOWTO(R_390_GOT64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOT64", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_PLT64, 0, 4, 64, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLT64", FALSE, 0,MINUS_ONE, TRUE), + HOWTO(R_390_GOTENT, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTENT", FALSE, 0,MINUS_ONE, TRUE), + HOWTO(R_390_GOTOFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTOFF16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_GOTOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTOFF64", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_GOTPLT12, 0, 1, 12, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_390_GOTPLT12", FALSE, 0,0x00000fff, FALSE), + HOWTO(R_390_GOTPLT16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPLT16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_GOTPLT32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPLT32", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_GOTPLT64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPLT64", FALSE, 0,MINUS_ONE, FALSE), + HOWTO(R_390_GOTPLTENT, 1, 2, 32, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_GOTPLTENT",FALSE, 0,MINUS_ONE, TRUE), + HOWTO(R_390_PLTOFF16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLTOFF16", FALSE, 0,0x0000ffff, FALSE), + HOWTO(R_390_PLTOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLTOFF32", FALSE, 0,0xffffffff, FALSE), + HOWTO(R_390_PLTOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_390_PLTOFF64", FALSE, 0,MINUS_ONE, FALSE), }; /* GNU extension to record C++ vtable hierarchy. */ static reloc_howto_type elf64_s390_vtinherit_howto = - HOWTO (R_390_GNU_VTINHERIT, 0,4,0,false,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", false,0, 0, false); + HOWTO (R_390_GNU_VTINHERIT, 0,4,0,FALSE,0,complain_overflow_dont, NULL, "R_390_GNU_VTINHERIT", FALSE,0, 0, FALSE); static reloc_howto_type elf64_s390_vtentry_howto = - HOWTO (R_390_GNU_VTENTRY, 0,4,0,false,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", false,0,0, false); + HOWTO (R_390_GNU_VTENTRY, 0,4,0,FALSE,0,complain_overflow_dont, _bfd_elf_rel_vtable_reloc_fn,"R_390_GNU_VTENTRY", FALSE,0,0, FALSE); static reloc_howto_type * elf_s390_reloc_type_lookup (abfd, code) @@ -164,7 +214,7 @@ elf_s390_reloc_type_lookup (abfd, code) case BFD_RELOC_390_RELATIVE: return &elf_howto_table[(int) R_390_RELATIVE]; case BFD_RELOC_32_GOTOFF: - return &elf_howto_table[(int) R_390_GOTOFF]; + return &elf_howto_table[(int) R_390_GOTOFF32]; case BFD_RELOC_390_GOTPC: return &elf_howto_table[(int) R_390_GOTPC]; case BFD_RELOC_390_GOT16: @@ -175,10 +225,6 @@ elf_s390_reloc_type_lookup (abfd, code) return &elf_howto_table[(int) R_390_PC16DBL]; case BFD_RELOC_390_PLT16DBL: return &elf_howto_table[(int) R_390_PLT16DBL]; - case BFD_RELOC_VTABLE_INHERIT: - return &elf64_s390_vtinherit_howto; - case BFD_RELOC_VTABLE_ENTRY: - return &elf64_s390_vtentry_howto; case BFD_RELOC_390_PC32DBL: return &elf_howto_table[(int) R_390_PC32DBL]; case BFD_RELOC_390_PLT32DBL: @@ -195,6 +241,30 @@ elf_s390_reloc_type_lookup (abfd, code) return &elf_howto_table[(int) R_390_PLT64]; case BFD_RELOC_390_GOTENT: return &elf_howto_table[(int) R_390_GOTENT]; + case BFD_RELOC_16_GOTOFF: + return &elf_howto_table[(int) R_390_GOTOFF16]; + case BFD_RELOC_390_GOTOFF64: + return &elf_howto_table[(int) R_390_GOTOFF64]; + case BFD_RELOC_390_GOTPLT12: + return &elf_howto_table[(int) R_390_GOTPLT12]; + case BFD_RELOC_390_GOTPLT16: + return &elf_howto_table[(int) R_390_GOTPLT16]; + case BFD_RELOC_390_GOTPLT32: + return &elf_howto_table[(int) R_390_GOTPLT32]; + case BFD_RELOC_390_GOTPLT64: + return &elf_howto_table[(int) R_390_GOTPLT64]; + case BFD_RELOC_390_GOTPLTENT: + return &elf_howto_table[(int) R_390_GOTPLTENT]; + case BFD_RELOC_390_PLTOFF16: + return &elf_howto_table[(int) R_390_PLTOFF16]; + case BFD_RELOC_390_PLTOFF32: + return &elf_howto_table[(int) R_390_PLTOFF32]; + case BFD_RELOC_390_PLTOFF64: + return &elf_howto_table[(int) R_390_PLTOFF64]; + case BFD_RELOC_VTABLE_INHERIT: + return &elf64_s390_vtinherit_howto; + case BFD_RELOC_VTABLE_ENTRY: + return &elf64_s390_vtentry_howto; default: break; } @@ -226,13 +296,13 @@ elf_s390_info_to_howto (abfd, cache_ptr, } } -static boolean +static bfd_boolean elf_s390_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == '.' && (name[1] == 'X' || name[1] == 'L')) - return true; + return TRUE; return _bfd_elf_is_local_label_name (abfd, name); } @@ -357,6 +427,9 @@ struct elf_s390_link_hash_entry /* Track dynamic relocs copied for this symbol. */ struct elf_s390_dyn_relocs *dyn_relocs; + + /* Number of GOTPLT references for a function. */ + bfd_signed_vma gotplt_refcount; }; /* s390 ELF linker hash table. */ @@ -409,6 +482,7 @@ link_hash_newfunc (entry, table, string) eh = (struct elf_s390_link_hash_entry *) entry; eh->dyn_relocs = NULL; + eh->gotplt_refcount = 0; } return entry; @@ -448,7 +522,7 @@ elf_s390_link_hash_table_create (abfd) /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean create_got_section (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -456,7 +530,7 @@ create_got_section (dynobj, info) struct elf_s390_link_hash_table *htab; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; htab = elf_s390_hash_table (info); htab->sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -471,15 +545,15 @@ create_got_section (dynobj, info) | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3)) - return false; - return true; + return FALSE; + return TRUE; } /* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and .rela.bss sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean elf_s390_create_dynamic_sections (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -488,10 +562,10 @@ elf_s390_create_dynamic_sections (dynobj htab = elf_s390_hash_table (info); if (!htab->sgot && !create_got_section (dynobj, info)) - return false; + return FALSE; if (!_bfd_elf_create_dynamic_sections (dynobj, info)) - return false; + return FALSE; htab->splt = bfd_get_section_by_name (dynobj, ".plt"); htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt"); @@ -503,7 +577,7 @@ elf_s390_create_dynamic_sections (dynobj || (!info->shared && !htab->srelbss)) abort (); - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -559,7 +633,7 @@ elf_s390_copy_indirect_symbol (bed, dir, allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean elf_s390_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -572,13 +646,15 @@ elf_s390_check_relocs (abfd, info, sec, const Elf_Internal_Rela *rel; const Elf_Internal_Rela *rel_end; asection *sreloc; + bfd_signed_vma *local_got_refcounts; if (info->relocateable) - return true; + return TRUE; htab = elf_s390_hash_table (info); symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); + local_got_refcounts = elf_local_got_refcounts (abfd); sreloc = NULL; @@ -595,7 +671,7 @@ elf_s390_check_relocs (abfd, info, sec, (*_bfd_error_handler) (_("%s: bad symbol index: %d"), bfd_archive_filename (abfd), r_symndx); - return false; + return FALSE; } if (r_symndx < symtab_hdr->sh_info) @@ -603,6 +679,48 @@ elf_s390_check_relocs (abfd, info, sec, else h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + /* Create got section and local_got_refcounts array if they + are needed. */ + switch (ELF64_R_TYPE (rel->r_info)) + { + case R_390_GOT12: + case R_390_GOT16: + case R_390_GOT32: + case R_390_GOT64: + case R_390_GOTENT: + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLT64: + case R_390_GOTPLTENT: + if (h == NULL + && local_got_refcounts == NULL) + { + bfd_size_type size; + + size = symtab_hdr->sh_info; + size *= sizeof (bfd_signed_vma); + local_got_refcounts = ((bfd_signed_vma *) + bfd_zalloc (abfd, size)); + if (local_got_refcounts == NULL) + return FALSE; + elf_local_got_refcounts (abfd) = local_got_refcounts; + } + /* Fall through. */ + case R_390_GOTOFF16: + case R_390_GOTOFF32: + case R_390_GOTOFF64: + case R_390_GOTPC: + case R_390_GOTPCDBL: + if (htab->sgot == NULL) + { + if (htab->elf.dynobj == NULL) + htab->elf.dynobj = abfd; + if (!create_got_section (htab->elf.dynobj, info)) + return FALSE; + } + } + switch (ELF64_R_TYPE (rel->r_info)) { case R_390_GOT12: @@ -617,64 +735,72 @@ elf_s390_check_relocs (abfd, info, sec, } else { - bfd_signed_vma *local_got_refcounts; - - /* This is a global offset table entry for a local symbol. */ - local_got_refcounts = elf_local_got_refcounts (abfd); - if (local_got_refcounts == NULL) - { - bfd_size_type size; - - size = symtab_hdr->sh_info; - size *= sizeof (bfd_signed_vma); - local_got_refcounts = ((bfd_signed_vma *) - bfd_zalloc (abfd, size)); - if (local_got_refcounts == NULL) - return false; - elf_local_got_refcounts (abfd) = local_got_refcounts; - } local_got_refcounts[r_symndx] += 1; } /* Fall through */ - case R_390_GOTOFF: + case R_390_GOTOFF16: + case R_390_GOTOFF32: + case R_390_GOTOFF64: case R_390_GOTPC: case R_390_GOTPCDBL: - if (htab->sgot == NULL) - { - if (htab->elf.dynobj == NULL) - htab->elf.dynobj = abfd; - if (!create_got_section (htab->elf.dynobj, info)) - return false; - } + /* Got is created, nothing to be done. */ break; - case R_390_PLT16DBL: + case R_390_PLT16DBL: case R_390_PLT32: case R_390_PLT32DBL: case R_390_PLT64: + case R_390_PLTOFF16: + case R_390_PLTOFF32: + case R_390_PLTOFF64: /* This symbol requires a procedure linkage table entry. We - actually build the entry in adjust_dynamic_symbol, - because this might be a case of linking PIC code which is - never referenced by a dynamic object, in which case we - don't need to generate a procedure linkage table entry - after all. */ + actually build the entry in adjust_dynamic_symbol, + because this might be a case of linking PIC code which is + never referenced by a dynamic object, in which case we + don't need to generate a procedure linkage table entry + after all. */ /* If this is a local symbol, we resolve it directly without - creating a procedure linkage table entry. */ - if (h == NULL) - continue; + creating a procedure linkage table entry. */ + if (h != NULL) + { + h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + h->plt.refcount += 1; + } + break; - h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; - h->plt.refcount += 1; + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLT64: + case R_390_GOTPLTENT: + /* This symbol requires either a procedure linkage table entry + or an entry in the local got. We actually build the entry + in adjust_dynamic_symbol because whether this is really a + global reference can change and with it the fact if we have + to create a plt entry or a local got entry. To be able to + make a once global symbol a local one we have to keep track + of the number of gotplt references that exist for this + symbol. */ + if (h != NULL) + { + ((struct elf_s390_link_hash_entry *) h)->gotplt_refcount++; + h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + h->plt.refcount += 1; + } + else + { + local_got_refcounts[r_symndx] += 1; + } break; - case R_390_8: - case R_390_16: + case R_390_8: + case R_390_16: case R_390_32: case R_390_64: - case R_390_PC16: - case R_390_PC16DBL: + case R_390_PC16: + case R_390_PC16DBL: case R_390_PC32: case R_390_PC32DBL: case R_390_PC64: @@ -749,7 +875,7 @@ elf_s390_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; if (strncmp (name, ".rela", 5) != 0 || strcmp (bfd_get_section_name (abfd, sec), @@ -777,7 +903,7 @@ elf_s390_check_relocs (abfd, info, sec, if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 3)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; } @@ -798,7 +924,7 @@ elf_s390_check_relocs (abfd, info, sec, s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf_s390_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -811,7 +937,7 @@ elf_s390_check_relocs (abfd, info, sec, p = ((struct elf_s390_dyn_relocs *) bfd_alloc (htab->elf.dynobj, amt)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -831,24 +957,24 @@ elf_s390_check_relocs (abfd, info, sec, /* This relocation describes the C++ object vtable hierarchy. Reconstruct it for later use during GC. */ - case R_390_GNU_VTINHERIT: - if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; - break; + case R_390_GNU_VTINHERIT: + if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) + return FALSE; + break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ - case R_390_GNU_VTENTRY: - if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; - break; + case R_390_GNU_VTENTRY: + if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend)) + return FALSE; + break; default: break; } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -893,7 +1019,7 @@ elf_s390_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf_s390_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -915,87 +1041,139 @@ elf_s390_gc_sweep_hook (abfd, info, sec, relend = relocs + sec->reloc_count; for (rel = relocs; rel < relend; rel++) - switch (ELF64_R_TYPE (rel->r_info)) - { - case R_390_GOT12: - case R_390_GOT16: - case R_390_GOT32: - case R_390_GOT64: - case R_390_GOTOFF: - case R_390_GOTPC: - case R_390_GOTPCDBL: - case R_390_GOTENT: - r_symndx = ELF64_R_SYM (rel->r_info); - if (r_symndx >= symtab_hdr->sh_info) - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - if (h->got.refcount > 0) - h->got.refcount -= 1; - } - else if (local_got_refcounts != NULL) - { - if (local_got_refcounts[r_symndx] > 0) - local_got_refcounts[r_symndx] -= 1; - } - break; - - case R_390_8: - case R_390_12: - case R_390_16: - case R_390_32: - case R_390_64: - case R_390_PC16: - case R_390_PC16DBL: - case R_390_PC32: - case R_390_PC32DBL: - case R_390_PC64: - r_symndx = ELF64_R_SYM (rel->r_info); - if (r_symndx >= symtab_hdr->sh_info) - { - struct elf_s390_link_hash_entry *eh; - struct elf_s390_dyn_relocs **pp; - struct elf_s390_dyn_relocs *p; - - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; + { + r_symndx = ELF64_R_SYM (rel->r_info); - if (!info->shared && h->plt.refcount > 0) - h->plt.refcount -= 1; + if (r_symndx < symtab_hdr->sh_info) + h = NULL; + else + h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - eh = (struct elf_s390_link_hash_entry *) h; + switch (ELF64_R_TYPE (rel->r_info)) + { + case R_390_GOT12: + case R_390_GOT16: + case R_390_GOT32: + case R_390_GOT64: + case R_390_GOTOFF16: + case R_390_GOTOFF32: + case R_390_GOTOFF64: + case R_390_GOTPC: + case R_390_GOTPCDBL: + case R_390_GOTENT: + if (h != NULL) + { + if (h->got.refcount > 0) + h->got.refcount -= 1; + } + else if (local_got_refcounts != NULL) + { + if (local_got_refcounts[r_symndx] > 0) + local_got_refcounts[r_symndx] -= 1; + } + break; + + case R_390_PLT16DBL: + case R_390_PLT32: + case R_390_PLT32DBL: + case R_390_PLT64: + case R_390_PLTOFF16: + case R_390_PLTOFF32: + case R_390_PLTOFF64: + if (h != NULL) + { + if (h->plt.refcount > 0) + h->plt.refcount -= 1; + } + break; - for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) - if (p->sec == sec) + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLT64: + case R_390_GOTPLTENT: + if (h != NULL) + { + if (h->plt.refcount > 0) { - if (ELF64_R_TYPE (rel->r_info) == R_390_PC16 - || ELF64_R_TYPE (rel->r_info) == R_390_PC16DBL - || ELF64_R_TYPE (rel->r_info) == R_390_PC32) - p->pc_count -= 1; - p->count -= 1; - if (p->count == 0) - *pp = p->next; - break; + ((struct elf_s390_link_hash_entry *) h)->gotplt_refcount--; + h->plt.refcount -= 1; } - } - break; + } + else if (local_got_refcounts != NULL) + { + if (local_got_refcounts[r_symndx] > 0) + local_got_refcounts[r_symndx] -= 1; + } + break; - case R_390_PLT16DBL: - case R_390_PLT32: - case R_390_PLT32DBL: - case R_390_PLT64: - r_symndx = ELF64_R_SYM (rel->r_info); - if (r_symndx >= symtab_hdr->sh_info) - { - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; - if (h->plt.refcount > 0) - h->plt.refcount -= 1; - } - break; + case R_390_8: + case R_390_12: + case R_390_16: + case R_390_32: + case R_390_64: + case R_390_PC16: + case R_390_PC16DBL: + case R_390_PC32: + case R_390_PC32DBL: + case R_390_PC64: + if (h != NULL) + { + struct elf_s390_link_hash_entry *eh; + struct elf_s390_dyn_relocs **pp; + struct elf_s390_dyn_relocs *p; + + if (!info->shared && h->plt.refcount > 0) + h->plt.refcount -= 1; + + eh = (struct elf_s390_link_hash_entry *) h; + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) + if (p->sec == sec) + { + if (ELF64_R_TYPE (rel->r_info) == R_390_PC16 + || ELF64_R_TYPE (rel->r_info) == R_390_PC16DBL + || ELF64_R_TYPE (rel->r_info) == R_390_PC32 + || ELF64_R_TYPE (rel->r_info) == R_390_PC32DBL + || ELF64_R_TYPE (rel->r_info) == R_390_PC64) + p->pc_count -= 1; + p->count -= 1; + if (p->count == 0) + *pp = p->next; + break; + } + } + break; - default: - break; - } + default: + break; + } + } - return true; + return TRUE; +} + +/* Make sure we emit a GOT entry if the symbol was supposed to have a PLT + entry but we found we will not create any. Called when we find we will + not have any PLT for this symbol, by for example + elf_s390_adjust_dynamic_symbol when we're doing a proper dynamic link, + or elf_s390_size_dynamic_sections if no dynamic sections will be + created (we're only linking static objects). */ + +static void +elf_s390_adjust_gotplt (h) + struct elf_s390_link_hash_entry *h; +{ + if (h->elf.root.type == bfd_link_hash_warning) + h = (struct elf_s390_link_hash_entry *) h->elf.root.u.i.link; + + if (h->gotplt_refcount <= 0) + return; + + /* We simply add the number of gotplt references to the number + * of got references for this symbol. */ + h->elf.got.refcount += h->gotplt_refcount; + h->gotplt_refcount = -1; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -1004,7 +1182,7 @@ elf_s390_gc_sweep_hook (abfd, info, sec, change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf_s390_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1029,15 +1207,16 @@ elf_s390_adjust_dynamic_symbol (info, h) && h->root.type != bfd_link_hash_undefined)) { /* This case can occur if we saw a PLT32 reloc in an input - file, but the symbol was never referred to by a dynamic - object, or if all references were garbage collected. In + file, but the symbol was never referred to by a dynamic + object, or if all references were garbage collected. In such a case, we don't actually need to build a procedure linkage table, and we can just do a PC32 reloc instead. */ h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + elf_s390_adjust_gotplt((struct elf_s390_link_hash_entry *) h); } - return true; + return TRUE; } else /* It's possible that we incorrectly decided a .plt reloc was @@ -1056,7 +1235,7 @@ elf_s390_adjust_dynamic_symbol (info, h) || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1067,18 +1246,18 @@ elf_s390_adjust_dynamic_symbol (info, h) For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* If -z nocopyreloc was given, we won't generate them either. */ if (info->nocopyreloc) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } eh = (struct elf_s390_link_hash_entry *) h; @@ -1094,7 +1273,7 @@ elf_s390_adjust_dynamic_symbol (info, h) if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -1130,7 +1309,7 @@ elf_s390_adjust_dynamic_symbol (info, h) if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1140,7 +1319,7 @@ elf_s390_adjust_dynamic_symbol (info, h) /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* This is the condition under which elf_s390_finish_dynamic_symbol @@ -1157,7 +1336,7 @@ elf_s390_adjust_dynamic_symbol (info, h) /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1168,9 +1347,12 @@ allocate_dynrelocs (h, inf) struct elf_s390_dyn_relocs *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) + /* When warning symbols are created, they **replace** the "real" + entry in the hash table, thus we never get to see the real + symbol in a hash traversal. So look at it now. */ h = (struct elf_link_hash_entry *) h->root.u.i.link; info = (struct bfd_link_info *) inf; @@ -1185,7 +1367,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) @@ -1225,18 +1407,20 @@ allocate_dynrelocs (h, inf) { h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + elf_s390_adjust_gotplt((struct elf_s390_link_hash_entry *) h); } } else { h->plt.offset = (bfd_vma) -1; h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; + elf_s390_adjust_gotplt((struct elf_s390_link_hash_entry *) h); } if (h->got.refcount > 0) { asection *s; - boolean dyn; + bfd_boolean dyn; /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ @@ -1244,7 +1428,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -1259,7 +1443,7 @@ allocate_dynrelocs (h, inf) eh = (struct elf_s390_link_hash_entry *) h; if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* In the shared -Bsymbolic case, discard space allocated for dynamic pc-relative relocs against symbols which turn out to be @@ -1305,7 +1489,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -1326,12 +1510,12 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf64_External_Rela); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1354,15 +1538,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf_s390_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -1370,7 +1554,7 @@ elf_s390_size_dynamic_sections (output_b struct elf_s390_link_hash_table *htab; bfd *dynobj; asection *s; - boolean relocs; + bfd_boolean relocs; bfd *ibfd; htab = elf_s390_hash_table (info); @@ -1460,7 +1644,7 @@ elf_s390_size_dynamic_sections (output_b /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -1476,7 +1660,7 @@ elf_s390_size_dynamic_sections (output_b else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0) { if (s->_raw_size != 0 && s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1511,7 +1695,7 @@ elf_s390_size_dynamic_sections (output_b of garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } if (htab->elf.dynamic_sections_created) @@ -1527,7 +1711,7 @@ elf_s390_size_dynamic_sections (output_b if (! info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->splt->_raw_size != 0) @@ -1536,15 +1720,15 @@ elf_s390_size_dynamic_sections (output_b || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) - { - if (!add_dynamic_entry (DT_RELA, 0) - || !add_dynamic_entry (DT_RELASZ, 0) - || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + { + if (!add_dynamic_entry (DT_RELA, 0) + || !add_dynamic_entry (DT_RELASZ, 0) + || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -1555,18 +1739,18 @@ elf_s390_size_dynamic_sections (output_b if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* Relocate a 390 ELF section. */ -static boolean +static bfd_boolean elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1586,7 +1770,7 @@ elf_s390_relocate_section (output_bfd, i Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; htab = elf_s390_hash_table (info); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1597,7 +1781,7 @@ elf_s390_relocate_section (output_bfd, i relend = relocs + input_section->reloc_count; for (; rel < relend; rel++) { - int r_type; + unsigned int r_type; reloc_howto_type *howto; unsigned long r_symndx; struct elf_link_hash_entry *h; @@ -1605,25 +1789,27 @@ elf_s390_relocate_section (output_bfd, i asection *sec; bfd_vma off; bfd_vma relocation; - boolean unresolved_reloc; + bfd_boolean unresolved_reloc; bfd_reloc_status_type r; r_type = ELF64_R_TYPE (rel->r_info); if (r_type == (int) R_390_GNU_VTINHERIT - || r_type == (int) R_390_GNU_VTENTRY) - continue; - if (r_type < 0 || r_type >= (int) R_390_max) + || r_type == (int) R_390_GNU_VTENTRY) + continue; + if (r_type >= (int) R_390_max) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = elf_howto_table + r_type; r_symndx = ELF64_R_SYM (rel->r_info); + + /* This is a final link. */ h = NULL; sym = NULL; sec = NULL; - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -1647,7 +1833,7 @@ elf_s390_relocate_section (output_bfd, i relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; relocation = 0; } else @@ -1666,103 +1852,137 @@ elf_s390_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, + input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } switch (r_type) { - case R_390_GOT12: - case R_390_GOT16: - case R_390_GOT32: - case R_390_GOT64: - case R_390_GOTENT: - /* Relocation is to the entry for this symbol in the global - offset table. */ + case R_390_GOTPLT12: + case R_390_GOTPLT16: + case R_390_GOTPLT32: + case R_390_GOTPLT64: + case R_390_GOTPLTENT: + /* There are three cases for a GOTPLT relocation. 1) The + relocation is against the jump slot entry of a plt that + will get emitted to the output file. 2) The relocation + is against the jump slot of a plt entry that has been + removed. elf_s390_adjust_gotplt has created a GOT entry + as replacement. 3) The relocation is against a local symbol. + Cases 2) and 3) are the same as the GOT relocation code + so we just have to test for case 1 and fall through for + the other two. */ + if (h != NULL && h->plt.offset != (bfd_vma) -1) + { + bfd_vma plt_index; + + /* Calc. index no. + Current offset - size first entry / entry size. */ + plt_index = (h->plt.offset - PLT_FIRST_ENTRY_SIZE) / + PLT_ENTRY_SIZE; + + /* Offset in GOT is PLT index plus GOT headers(3) times 4, + addr & GOT addr. */ + relocation = (plt_index + 3) * GOT_ENTRY_SIZE; + unresolved_reloc = FALSE; + + if (r_type == R_390_GOTPLTENT) + relocation += htab->sgot->output_section->vma; + break; + } + /* Fall through. */ + + case R_390_GOT12: + case R_390_GOT16: + case R_390_GOT32: + case R_390_GOT64: + case R_390_GOTENT: + /* Relocation is to the entry for this symbol in the global + offset table. */ if (htab->sgot == NULL) abort (); - if (h != NULL) - { - boolean dyn; + if (h != NULL) + { + bfd_boolean dyn; - off = h->got.offset; + off = h->got.offset; dyn = htab->elf.dynamic_sections_created; - if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h) - || (info->shared - && (info->symbolic + if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h) + || (info->shared + && (info->symbolic || h->dynindx == -1 || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)) - && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))) - { - /* This is actually a static link, or it is a - -Bsymbolic link and the symbol is defined - locally, or the symbol was forced to be local - because of a version file. We must initialize - this entry in the global offset table. Since the - offset must always be a multiple of 2, we use the - least significant bit to record whether we have - initialized it already. - - When doing a dynamic link, we create a .rel.got - relocation entry to initialize the value. This - is done in the finish_dynamic_symbol routine. */ - if ((off & 1) != 0) - off &= ~1; - else - { + && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR))) + { + /* This is actually a static link, or it is a + -Bsymbolic link and the symbol is defined + locally, or the symbol was forced to be local + because of a version file. We must initialize + this entry in the global offset table. Since the + offset must always be a multiple of 2, we use the + least significant bit to record whether we have + initialized it already. + + When doing a dynamic link, we create a .rel.got + relocation entry to initialize the value. This + is done in the finish_dynamic_symbol routine. */ + if ((off & 1) != 0) + off &= ~1; + else + { bfd_put_64 (output_bfd, relocation, htab->sgot->contents + off); - h->got.offset |= 1; - } - } + h->got.offset |= 1; + } + } else - unresolved_reloc = false; - } - else - { + unresolved_reloc = FALSE; + } + else + { if (local_got_offsets == NULL) abort (); - off = local_got_offsets[r_symndx]; + off = local_got_offsets[r_symndx]; - /* The offset must always be a multiple of 8. We use - the least significant bit to record whether we have - already generated the necessary reloc. */ - if ((off & 1) != 0) - off &= ~1; - else - { - bfd_put_64 (output_bfd, relocation, + /* The offset must always be a multiple of 8. We use + the least significant bit to record whether we have + already generated the necessary reloc. */ + if ((off & 1) != 0) + off &= ~1; + else + { + bfd_put_64 (output_bfd, relocation, htab->sgot->contents + off); - if (info->shared) - { - asection *srelgot; - Elf_Internal_Rela outrel; - Elf64_External_Rela *loc; + if (info->shared) + { + asection *s; + Elf_Internal_Rela outrel; + bfd_byte *loc; - srelgot = htab->srelgot; - if (srelgot == NULL) + s = htab->srelgot; + if (s == NULL) abort (); - outrel.r_offset = (htab->sgot->output_section->vma - + htab->sgot->output_offset - + off); - outrel.r_info = ELF64_R_INFO (0, R_390_RELATIVE); + outrel.r_offset = (htab->sgot->output_section->vma + + htab->sgot->output_offset + + off); + outrel.r_info = ELF64_R_INFO (0, R_390_RELATIVE); outrel.r_addend = relocation; - loc = (Elf64_External_Rela *) srelgot->contents; - loc += srelgot->reloc_count++; - bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); - } - - local_got_offsets[r_symndx] |= 1; - } - } + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); + } + + local_got_offsets[r_symndx] |= 1; + } + } if (off >= (bfd_vma) -2) abort (); @@ -1775,75 +1995,100 @@ elf_s390_relocate_section (output_bfd, i * between the start of the GOT and the symbols entry. We * add the vma of the GOT to get the correct value. */ - if (r_type == R_390_GOTENT) + if ( r_type == R_390_GOTENT + || r_type == R_390_GOTPLTENT) relocation += htab->sgot->output_section->vma; - break; + break; - case R_390_GOTOFF: - /* Relocation is relative to the start of the global offset - table. */ - - /* Note that sgot->output_offset is not involved in this - calculation. We always want the start of .got. If we - defined _GLOBAL_OFFSET_TABLE in a different way, as is - permitted by the ABI, we might have to change this - calculation. */ - relocation -= htab->sgot->output_section->vma; + case R_390_GOTOFF16: + case R_390_GOTOFF32: + case R_390_GOTOFF64: + /* Relocation is relative to the start of the global offset + table. */ + + /* Note that sgot->output_offset is not involved in this + calculation. We always want the start of .got. If we + defined _GLOBAL_OFFSET_TABLE in a different way, as is + permitted by the ABI, we might have to change this + calculation. */ + relocation -= htab->sgot->output_section->vma; + break; + case R_390_GOTPC: + case R_390_GOTPCDBL: + /* Use global offset table as symbol value. */ + relocation = htab->sgot->output_section->vma; + unresolved_reloc = FALSE; + break; + + case R_390_PLT16DBL: + case R_390_PLT32: + case R_390_PLT32DBL: + case R_390_PLT64: + /* Relocation is to the entry for this symbol in the + procedure linkage table. */ + + /* Resolve a PLT32 reloc against a local symbol directly, + without using the procedure linkage table. */ + if (h == NULL) + break; + + if (h->plt.offset == (bfd_vma) -1 + || htab->splt == NULL) + { + /* We didn't make a PLT entry for this symbol. This + happens when statically linking PIC code, or when + using -Bsymbolic. */ + break; + } + + relocation = (htab->splt->output_section->vma + + htab->splt->output_offset + + h->plt.offset); + unresolved_reloc = FALSE; break; - case R_390_GOTPC: - case R_390_GOTPCDBL: - /* Use global offset table as symbol value. */ - relocation = htab->sgot->output_section->vma; - unresolved_reloc = false; - break; - - case R_390_PLT16DBL: - case R_390_PLT32: - case R_390_PLT32DBL: - case R_390_PLT64: + case R_390_PLTOFF16: + case R_390_PLTOFF32: + case R_390_PLTOFF64: /* Relocation is to the entry for this symbol in the - procedure linkage table. */ - - /* Resolve a PLT32 reloc against a local symbol directly, - without using the procedure linkage table. */ - if (h == NULL) - break; + procedure linkage table relative to the start of the GOT. */ - if (h->plt.offset == (bfd_vma) -1 + /* For local symbols or if we didn't make a PLT entry for + this symbol resolve the symbol directly. */ + if ( h == NULL + || h->plt.offset == (bfd_vma) -1 || htab->splt == NULL) - { - /* We didn't make a PLT entry for this symbol. This - happens when statically linking PIC code, or when - using -Bsymbolic. */ - break; - } + { + relocation -= htab->sgot->output_section->vma; + break; + } relocation = (htab->splt->output_section->vma + htab->splt->output_offset - + h->plt.offset); - unresolved_reloc = false; - break; + + h->plt.offset + - htab->sgot->output_section->vma); + unresolved_reloc = FALSE; + break; - case R_390_8: - case R_390_16: - case R_390_32: - case R_390_64: - case R_390_PC16: - case R_390_PC16DBL: - case R_390_PC32: + case R_390_8: + case R_390_16: + case R_390_32: + case R_390_64: + case R_390_PC16: + case R_390_PC16DBL: + case R_390_PC32: case R_390_PC32DBL: - case R_390_PC64: + case R_390_PC64: /* r_symndx will be zero only for relocs against symbols from removed linkonce sections, or sections discarded by a linker script. */ - if (r_symndx == 0 - || (input_section->flags & SEC_ALLOC) == 0) + if (r_symndx == 0 + || (input_section->flags & SEC_ALLOC) == 0) break; - if ((info->shared + if ((info->shared && ((r_type != R_390_PC16 && r_type != R_390_PC16DBL && r_type != R_390_PC32 @@ -1864,33 +2109,33 @@ elf_s390_relocate_section (output_bfd, i & ELF_LINK_HASH_DEF_REGULAR) == 0) || h->root.type == bfd_link_hash_undefweak || h->root.type == bfd_link_hash_undefined))) - { - Elf_Internal_Rela outrel; - boolean skip, relocate; + { + Elf_Internal_Rela outrel; + bfd_boolean skip, relocate; asection *sreloc; - Elf64_External_Rela *loc; + bfd_byte *loc; - /* When generating a shared object, these relocations - are copied into the output file to be resolved at run - time. */ + /* When generating a shared object, these relocations + are copied into the output file to be resolved at run + time. */ - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; - outrel.r_offset += (input_section->output_section->vma - + input_section->output_offset); + outrel.r_offset += (input_section->output_section->vma + + input_section->output_offset); - if (skip) + if (skip) memset (&outrel, 0, sizeof outrel); - else if (h != NULL + else if (h != NULL && h->dynindx != -1 && (r_type == R_390_PC16 || r_type == R_390_PC16DBL @@ -1901,14 +2146,14 @@ elf_s390_relocate_section (output_bfd, i || !info->symbolic || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)) - { - outrel.r_info = ELF64_R_INFO (h->dynindx, r_type); + { + outrel.r_info = ELF64_R_INFO (h->dynindx, r_type); outrel.r_addend = rel->r_addend; - } - else - { + } + else + { /* This symbol is local, or marked to become local. */ - relocate = true; + relocate = TRUE; outrel.r_info = ELF64_R_INFO (0, R_390_RELATIVE); outrel.r_addend = relocation + rel->r_addend; } @@ -1917,23 +2162,23 @@ elf_s390_relocate_section (output_bfd, i if (sreloc == NULL) abort (); - loc = (Elf64_External_Rela *) sreloc->contents; - loc += sreloc->reloc_count++; - bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); - - /* If this reloc is against an external symbol, we do - not want to fiddle with the addend. Otherwise, we - need to include the symbol value so that it becomes - an addend for the dynamic reloc. */ - if (! relocate) - continue; - } + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); + + /* If this reloc is against an external symbol, we do + not want to fiddle with the addend. Otherwise, we + need to include the symbol value so that it becomes + an addend for the dynamic reloc. */ + if (! relocate) + continue; + } - break; + break; - default: - break; - } + default: + break; + } /* Dynamic relocs are not propagated for SEC_DEBUGGING sections because such sections are not SEC_ALLOC and thus ld.so will @@ -1964,7 +2209,7 @@ elf_s390_relocate_section (output_bfd, i symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } @@ -1975,7 +2220,7 @@ elf_s390_relocate_section (output_bfd, i if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } else { @@ -1984,18 +2229,18 @@ elf_s390_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, name, (int) r); - return false; + return FALSE; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf_s390_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -2011,10 +2256,10 @@ elf_s390_finish_dynamic_symbol (output_b bfd_vma plt_index; bfd_vma got_offset; Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set - it up. */ + it up. */ if (h->dynindx == -1 || htab->splt == NULL @@ -2023,11 +2268,11 @@ elf_s390_finish_dynamic_symbol (output_b abort (); /* Calc. index no. - Current offset - size first entry / entry size. */ + Current offset - size first entry / entry size. */ plt_index = (h->plt.offset - PLT_FIRST_ENTRY_SIZE) / PLT_ENTRY_SIZE; /* Offset in GOT is PLT index plus GOT headers(3) times 8, - addr & GOT addr. */ + addr & GOT addr. */ got_offset = (plt_index + 3) * GOT_ENTRY_SIZE; /* Fill in the blueprint of a PLT. */ @@ -2062,7 +2307,7 @@ elf_s390_finish_dynamic_symbol (output_b htab->splt->contents + h->plt.offset + 28); /* Fill in the entry in the global offset table. - Points to instruction after GOT offset. */ + Points to instruction after GOT offset. */ bfd_put_64 (output_bfd, (htab->splt->output_section->vma + htab->splt->output_offset @@ -2076,7 +2321,7 @@ elf_s390_finish_dynamic_symbol (output_b + got_offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_390_JMP_SLOT); rela.r_addend = 0; - loc = (Elf64_External_Rela *) htab->srelplt->contents + plt_index; + loc = htab->srelplt->contents + plt_index * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) @@ -2093,10 +2338,10 @@ elf_s390_finish_dynamic_symbol (output_b if (h->got.offset != (bfd_vma) -1) { Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it - up. */ + up. */ if (htab->sgot == NULL || htab->srelgot == NULL) abort (); @@ -2115,30 +2360,30 @@ elf_s390_finish_dynamic_symbol (output_b || h->dynindx == -1 || (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL)) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR)) - { + { BFD_ASSERT((h->got.offset & 1) != 0); - rela.r_info = ELF64_R_INFO (0, R_390_RELATIVE); - rela.r_addend = (h->root.u.def.value - + h->root.u.def.section->output_section->vma - + h->root.u.def.section->output_offset); - } + rela.r_info = ELF64_R_INFO (0, R_390_RELATIVE); + rela.r_addend = (h->root.u.def.value + + h->root.u.def.section->output_section->vma + + h->root.u.def.section->output_offset); + } else { BFD_ASSERT((h->got.offset & 1) == 0); bfd_put_64 (output_bfd, (bfd_vma) 0, htab->sgot->contents + h->got.offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_390_GLOB_DAT); - rela.r_addend = 0; - } + rela.r_addend = 0; + } - loc = (Elf64_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbols needs a copy reloc. Set it up. */ @@ -2153,8 +2398,8 @@ elf_s390_finish_dynamic_symbol (output_b + h->root.u.def.section->output_offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_390_COPY); rela.r_addend = 0; - loc = (Elf64_External_Rela *) htab->srelbss->contents; - loc += htab->srelbss->reloc_count++; + loc = htab->srelbss->contents; + loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } @@ -2164,7 +2409,7 @@ elf_s390_finish_dynamic_symbol (output_b || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -2189,7 +2434,7 @@ elf_s390_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf_s390_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2305,10 +2550,10 @@ elf_s390_finish_dynamic_sections (output elf_section_data (htab->sgot->output_section) ->this_hdr.sh_entsize = 8; } - return true; + return TRUE; } -static boolean +static bfd_boolean elf_s390_object_p (abfd) bfd *abfd; { @@ -2331,8 +2576,8 @@ const struct elf_size_info s390_elf64_si sizeof (Elf64_External_Sym), sizeof (Elf64_External_Dyn), sizeof (Elf_External_Note), - 8, /* hash-table entry size */ - 1, /* internal relocations per external relocations */ + 8, /* hash-table entry size */ + 1, /* internal relocations per external relocations */ 64, /* arch_size */ 8, /* file_align */ ELFCLASS64, EV_CURRENT, @@ -2345,10 +2590,10 @@ const struct elf_size_info s390_elf64_si bfd_elf64_slurp_symbol_table, bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out, - NULL, - NULL, - NULL, - NULL + bfd_elf64_swap_reloc_in, + bfd_elf64_swap_reloc_out, + bfd_elf64_swap_reloca_in, + bfd_elf64_swap_reloca_out }; #define TARGET_BIG_SYM bfd_elf64_s390_vec @@ -2388,6 +2633,6 @@ const struct elf_size_info s390_elf64_si #define elf_backend_size_dynamic_sections elf_s390_size_dynamic_sections #define elf_backend_reloc_type_class elf_s390_reloc_type_class -#define elf_backend_object_p elf_s390_object_p +#define elf_backend_object_p elf_s390_object_p #include "elf64-target.h" diff -uprN binutils-2.13.90.0.16/bfd/elf64-sh64.c binutils-2.13.90.0.18/bfd/elf64-sh64.c --- binutils-2.13.90.0.16/bfd/elf64-sh64.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/elf64-sh64.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* Hitachi SH64-specific support for 64-bit ELF - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -99,7 +99,7 @@ struct elf_sh64_link_hash_table #define sh64_elf64_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the sh ELF linker hash table from a link_info structure. */ @@ -107,9 +107,12 @@ struct elf_sh64_link_hash_table #define sh64_elf64_hash_table(p) \ ((struct elf_sh64_link_hash_table *) ((p)->hash)) -static boolean sh_elf64_copy_private_data PARAMS ((bfd *, bfd *)); -static boolean sh_elf64_copy_private_data_internal PARAMS ((bfd *, bfd *)); -static boolean sh_elf64_merge_private_data PARAMS ((bfd *, bfd *)); +static bfd_boolean sh_elf64_copy_private_data + PARAMS ((bfd *, bfd *)); +static bfd_boolean sh_elf64_copy_private_data_internal + PARAMS ((bfd *, bfd *)); +static bfd_boolean sh_elf64_merge_private_data + PARAMS ((bfd *, bfd *)); static bfd_reloc_status_type sh_elf64_ignore_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type sh_elf64_reloc @@ -118,51 +121,57 @@ static reloc_howto_type *sh_elf64_reloc_ PARAMS ((bfd *, bfd_reloc_code_real_type)); static void sh_elf64_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); -static boolean sh_elf64_relocate_section +static bfd_boolean sh_elf64_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); static bfd_byte *sh_elf64_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); -static boolean sh_elf64_set_mach_from_flags PARAMS ((bfd *)); -static boolean sh_elf64_set_private_flags PARAMS ((bfd *, flagword)); + bfd_byte *, bfd_boolean, asymbol **)); +static bfd_boolean sh_elf64_set_mach_from_flags + PARAMS ((bfd *)); +static bfd_boolean sh_elf64_set_private_flags + PARAMS ((bfd *, flagword)); static asection *sh_elf64_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean sh_elf64_gc_sweep_hook +static bfd_boolean sh_elf64_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static boolean sh_elf64_check_relocs +static bfd_boolean sh_elf64_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -static int sh64_elf64_get_symbol_type PARAMS ((Elf_Internal_Sym *, int)); -static boolean sh64_elf64_add_symbol_hook +static int sh64_elf64_get_symbol_type + PARAMS ((Elf_Internal_Sym *, int)); +static bfd_boolean sh64_elf64_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean sh64_elf64_link_output_symbol_hook +static bfd_boolean sh64_elf64_link_output_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *)); -static boolean sh64_elf64_fake_sections +static bfd_boolean sh64_elf64_fake_sections PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); -static void sh64_elf64_final_write_processing PARAMS ((bfd *, boolean)); +static void sh64_elf64_final_write_processing + PARAMS ((bfd *, bfd_boolean)); static struct bfd_hash_entry *sh64_elf64_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *sh64_elf64_link_hash_table_create PARAMS ((bfd *)); -inline static void movi_shori_putval PARAMS ((bfd *, unsigned long, char *)); -inline static void movi_3shori_putval PARAMS ((bfd *, bfd_vma, char *)); -static boolean sh64_elf64_create_dynamic_sections +inline static void movi_shori_putval + PARAMS ((bfd *, unsigned long, char *)); +inline static void movi_3shori_putval + PARAMS ((bfd *, bfd_vma, char *)); +static bfd_boolean sh64_elf64_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean sh64_elf64_adjust_dynamic_symbol +static bfd_boolean sh64_elf64_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *)); -static boolean sh64_elf64_discard_copies +static bfd_boolean sh64_elf64_discard_copies PARAMS ((struct elf_sh64_link_hash_entry *, PTR)); -static boolean sh64_elf64_size_dynamic_sections +static bfd_boolean sh64_elf64_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean sh64_elf64_finish_dynamic_symbol +static bfd_boolean sh64_elf64_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean sh64_elf64_finish_dynamic_sections +static bfd_boolean sh64_elf64_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static reloc_howto_type sh_elf64_howto_table[] = { @@ -171,46 +180,46 @@ static reloc_howto_type sh_elf64_howto_t 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ sh_elf64_ignore_reloc, /* special_function */ "R_SH_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ - /* 32 bit absolute relocation. Setting partial_inplace to true and + /* 32 bit absolute relocation. Setting partial_inplace to TRUE and src_mask to a non-zero value is similar to the COFF toolchain. */ HOWTO (R_SH_DIR32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ sh_elf64_reloc, /* special_function */ "R_SH_DIR32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative relocation. */ HOWTO (R_SH_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ sh_elf64_ignore_reloc, /* special_function */ "R_SH_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* For 32-bit sh, this is R_SH_DIR8WPN. */ EMPTY_HOWTO (3), @@ -261,15 +270,15 @@ static reloc_howto_type sh_elf64_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf64_ignore_reloc, /* special_function */ "R_SH_SWITCH16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 32 bit switch table entry. This is generated for an expression such as ``.long L1 - L2''. The offset holds the difference @@ -278,15 +287,15 @@ static reloc_howto_type sh_elf64_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf64_ignore_reloc, /* special_function */ "R_SH_SWITCH32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* For 32-bit sh, this is R_SH_USES. */ EMPTY_HOWTO (27), @@ -321,45 +330,45 @@ static reloc_howto_type sh_elf64_howto_t 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf64_ignore_reloc, /* special_function */ "R_SH_SWITCH8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ HOWTO (R_SH_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_SH_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ HOWTO (R_SH_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_SH_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* For 32-bit sh, this is R_SH_LOOP_START. */ EMPTY_HOWTO (36), @@ -380,105 +389,105 @@ static reloc_howto_type sh_elf64_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR5U", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in SHARI, SHLLI et al. */ HOWTO (R_SH_DIR6U, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR6U", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in BxxI, LDHI.L et al. */ HOWTO (R_SH_DIR6S, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR6S", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xfc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in ADDI, ANDI et al. */ HOWTO (R_SH_DIR10S, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 10, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10S", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in LD.UW, ST.W et al. */ HOWTO (R_SH_DIR10SW, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10SW", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_DIR10SL, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10SL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_DIR10SQ, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 13, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_DIR10SQ", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (52), EMPTY_HOWTO (53), @@ -608,416 +617,416 @@ static reloc_howto_type sh_elf64_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOT_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOT_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOT_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTPLT_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTPLT_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTPLT_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_PLT_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_PLT_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_PLT_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_PLT_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PLT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTOFF_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTOFF_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTOFF_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTOFF_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_GOTPC_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_GOTPC_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_GOTPC_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_GOTPC_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPC_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_GOT10BY4, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT10BY4", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in LD.L, FLD.S et al. */ HOWTO (R_SH_GOTPLT10BY4, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT10BY4", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_GOT10BY8, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 13, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOT10BY8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in FLD.D, FST.P et al. */ HOWTO (R_SH_GOTPLT10BY8, /* type */ 3, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 13, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GOTPLT10BY8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_COPY64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_COPY64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_GLOB_DAT64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_GLOB_DAT64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_JMP_SLOT64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_JMP_SLOT64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_SH_RELATIVE64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_RELATIVE64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (197), EMPTY_HOWTO (198), @@ -1078,15 +1087,15 @@ static reloc_howto_type sh_elf64_howto_t 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ sh_elf64_ignore_reloc, /* special_function */ "R_SH_SHMEDIA_CODE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The assembler will generate this reloc at a PTA or PTB instruction, and the linker checks the right type of target, or changes a PTA to a @@ -1095,195 +1104,195 @@ static reloc_howto_type sh_elf64_howto_t 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 18, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_PT_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in unexpanded MOVI. */ HOWTO (R_SH_IMMS16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMMS16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in SHORI. */ HOWTO (R_SH_IMMU16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_unsigned, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMMU16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (x & 65536). */ HOWTO (R_SH_IMM_LOW16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_LOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x - $) & 65536). */ HOWTO (R_SH_IMM_LOW16_PCREL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_LOW16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 16) & 65536). */ HOWTO (R_SH_IMM_MEDLOW16, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDLOW16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 16) & 65536). */ HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */ 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDLOW16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 32) & 65536). */ HOWTO (R_SH_IMM_MEDHI16, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDHI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 32) & 65536). */ HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */ 32, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_MEDHI16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* Used in MOVI and SHORI ((x >> 48) & 65536). */ HOWTO (R_SH_IMM_HI16, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used in MOVI and SHORI (((x - $) >> 48) & 65536). */ HOWTO (R_SH_IMM_HI16_PCREL, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_IMM_HI16_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x3fffc00, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* For the .uaquad pseudo. */ HOWTO (R_SH_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* For the .uaquad pseudo, (x - $). */ HOWTO (R_SH_64_PCREL, /* type */ 48, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 10, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_SH_64_PCREL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ ((bfd_vma) 0) - 1, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ }; @@ -1482,7 +1491,7 @@ sh_elf64_info_to_howto (abfd, cache_ptr, See sh_elf_info_to_howto in elf32-sh.c for the original. */ -static boolean +static bfd_boolean sh_elf64_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd ATTRIBUTE_UNUSED; @@ -1549,7 +1558,7 @@ sh_elf64_relocate_section (output_bfd, i && r_type <= (int) R_SH_LAST_INVALID_RELOC_4)) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = sh_elf64_howto_table + r_type; @@ -1605,7 +1614,7 @@ sh_elf64_relocate_section (output_bfd, i bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, howto->name); - return false; + return FALSE; } addend = bfd_get_32 (input_bfd, contents + rel->r_offset); @@ -1680,7 +1689,14 @@ sh_elf64_relocate_section (output_bfd, i sections against symbols defined externally in shared libraries. We can't do anything with them here. */ - || (input_section->flags & SEC_DEBUGGING) != 0))) + || (input_section->flags & SEC_DEBUGGING) != 0)) + /* Dynamic relocs are not propagated for SEC_DEBUGGING + sections because such sections are not SEC_ALLOC and + thus ld.so will not process them. */ + || (sec->output_section == NULL + && ((input_section->flags & SEC_DEBUGGING) != 0 + && (h->elf_link_hash_flags + & ELF_LINK_HASH_DEF_DYNAMIC) != 0))) relocation = 0; else if (sec->output_section == NULL) { @@ -1708,8 +1724,8 @@ sh_elf64_relocate_section (output_bfd, i { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, - input_section, rel->r_offset, true))) - return false; + input_section, rel->r_offset, TRUE))) + return FALSE; relocation = 0; } } @@ -1732,7 +1748,7 @@ sh_elf64_relocate_section (output_bfd, i (_("%s: error: unaligned relocation type %d at %08x reloc %08x\n"), bfd_get_filename (input_bfd), (int)r_type, (unsigned)rel->r_offset, (unsigned)relocation); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } switch ((int)r_type) { @@ -1748,7 +1764,8 @@ sh_elf64_relocate_section (output_bfd, i & ELF_LINK_HASH_DEF_REGULAR) == 0)))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_byte *loc; + bfd_boolean skip, relocate; /* When generating a shared object, these relocations are copied into the output file to be resolved at run @@ -1763,7 +1780,7 @@ sh_elf64_relocate_section (output_bfd, i elf_elfheader (input_bfd)->e_shstrndx, elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (input_bfd, @@ -1774,17 +1791,17 @@ sh_elf64_relocate_section (output_bfd, i BFD_ASSERT (sreloc != NULL); } - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -1806,7 +1823,7 @@ sh_elf64_relocate_section (output_bfd, i && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0)) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF64_R_INFO (0, R_SH_RELATIVE64); outrel.r_addend = relocation + rel->r_addend; } @@ -1818,11 +1835,9 @@ sh_elf64_relocate_section (output_bfd, i } } - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - (((Elf64_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); /* If this reloc is against an external symbol, we do not want to fiddle with the addend. Otherwise, we @@ -1971,22 +1986,21 @@ sh_elf64_relocate_section (output_bfd, i if (info->shared) { - asection *srelgot; + asection *s; Elf_Internal_Rela outrel; + bfd_byte *loc; - srelgot = bfd_get_section_by_name (dynobj, ".rela.got"); - BFD_ASSERT (srelgot != NULL); + s = bfd_get_section_by_name (dynobj, ".rela.got"); + BFD_ASSERT (s != NULL); outrel.r_offset = (sgot->output_section->vma + sgot->output_offset + off); outrel.r_info = ELF64_R_INFO (0, R_SH_RELATIVE64); outrel.r_addend = relocation; - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - (((Elf64_External_Rela *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); } if (rel->r_addend) @@ -2118,7 +2132,7 @@ sh_elf64_relocate_section (output_bfd, i default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } @@ -2140,21 +2154,21 @@ sh_elf64_relocate_section (output_bfd, i name = (bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, sym->st_name)); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* This is a version of bfd_generic_get_relocated_section_contents @@ -2169,7 +2183,7 @@ sh_elf64_get_relocated_section_contents struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { Elf_Internal_Shdr *symtab_hdr; @@ -2214,7 +2228,7 @@ sh_elf64_get_relocated_section_contents internal_relocs = (_bfd_elf64_link_read_relocs (input_bfd, input_section, (PTR) NULL, - (Elf_Internal_Rela *) NULL, false)); + (Elf_Internal_Rela *) NULL, FALSE)); if (internal_relocs == NULL) goto error_return; @@ -2276,7 +2290,7 @@ sh_elf64_get_relocated_section_contents /* Set the SHF_SH5_ISA32 flag for ISA SHmedia code sections. */ -boolean +bfd_boolean sh64_elf64_fake_sections (output_bfd, elf_section_hdr, asect) bfd *output_bfd ATTRIBUTE_UNUSED; Elf_Internal_Shdr *elf_section_hdr; @@ -2286,10 +2300,10 @@ sh64_elf64_fake_sections (output_bfd, el if (bfd_get_section_flags (output_bfd, asect) & SEC_CODE) elf_section_hdr->sh_flags |= SHF_SH5_ISA32; - return true; + return TRUE; } -static boolean +static bfd_boolean sh_elf64_set_mach_from_flags (abfd) bfd *abfd; { @@ -2304,16 +2318,16 @@ sh_elf64_set_mach_from_flags (abfd) default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } - return true; + return TRUE; } /* Function to keep SH64 specific file flags. See sh64_elf_set_private_flags in elf32-sh64.c for the original. */ -static boolean +static bfd_boolean sh_elf64_set_private_flags (abfd, flags) bfd * abfd; flagword flags; @@ -2322,14 +2336,14 @@ sh_elf64_set_private_flags (abfd, flags) || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; + elf_flags_init (abfd) = TRUE; return sh_elf64_set_mach_from_flags (abfd); } /* Copy the SHF_SH5_ISA32 attribute that we keep on all sections with code, to keep attributes the same as for SHmedia in 32-bit ELF. */ -static boolean +static bfd_boolean sh_elf64_copy_private_data_internal (ibfd, obfd) bfd * ibfd; bfd * obfd; @@ -2340,7 +2354,7 @@ sh_elf64_copy_private_data_internal (ibf if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; o_shdrp = elf_elfsections (obfd); for (osec = obfd->sections; osec; osec = osec->next) @@ -2362,7 +2376,7 @@ sh_elf64_copy_private_data_internal (ibf return sh_elf64_set_private_flags (obfd, elf_elfheader (ibfd)->e_flags); } -static boolean +static bfd_boolean sh_elf64_copy_private_data (ibfd, obfd) bfd * ibfd; bfd * obfd; @@ -2370,7 +2384,7 @@ sh_elf64_copy_private_data (ibfd, obfd) return sh_elf64_copy_private_data_internal (ibfd, obfd); } -static boolean +static bfd_boolean sh_elf64_merge_private_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -2378,11 +2392,11 @@ sh_elf64_merge_private_data (ibfd, obfd) flagword old_flags, new_flags; if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if ( bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; if (bfd_get_arch_size (ibfd) != bfd_get_arch_size (obfd)) { @@ -2400,7 +2414,7 @@ sh_elf64_merge_private_data (ibfd, obfd) (*_bfd_error_handler) (msg, bfd_get_filename (ibfd), bfd_get_filename (obfd)); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } old_flags = elf_elfheader (obfd)->e_flags; @@ -2408,7 +2422,7 @@ sh_elf64_merge_private_data (ibfd, obfd) if (! elf_flags_init (obfd)) { /* This happens when ld starts out with a 'blank' output file. */ - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = old_flags = new_flags; } /* We don't allow linking in anything else than SH64 code, and since @@ -2420,7 +2434,7 @@ sh_elf64_merge_private_data (ibfd, obfd) ("%s: does not use the SH64 64-bit ABI as previous modules do", bfd_get_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } sh_elf64_copy_private_data_internal (ibfd, obfd); @@ -2477,7 +2491,7 @@ sh_elf64_gc_mark_hook (sec, info, rel, h /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean sh_elf64_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -2485,14 +2499,14 @@ sh_elf64_gc_sweep_hook (abfd, info, sec, const Elf_Internal_Rela *relocs ATTRIBUTE_UNUSED; { /* No got and plt entries for 64-bit SH at present. */ - return true; + return TRUE; } /* Look through the relocs for a section during the first phase. Since we don't do .gots or .plts, we just need to consider the virtual table relocs for gc. */ -static boolean +static bfd_boolean sh_elf64_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -2514,7 +2528,7 @@ sh_elf64_check_relocs (abfd, info, sec, sreloc = NULL; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; sym_hashes = elf_sym_hashes (abfd); @@ -2564,7 +2578,7 @@ sh_elf64_check_relocs (abfd, info, sec, case R_SH_GOTPC_HI16: elf_hash_table (info)->dynobj = dynobj = abfd; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; break; default: @@ -2578,14 +2592,14 @@ sh_elf64_check_relocs (abfd, info, sec, Reconstruct it for later use during GC. */ case R_SH_GNU_VTINHERIT: if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_SH_GNU_VTENTRY: if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; force_got: @@ -2619,7 +2633,7 @@ sh_elf64_check_relocs (abfd, info, sec, | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, srelgot, 2)) - return false; + return FALSE; } } @@ -2650,7 +2664,7 @@ sh_elf64_check_relocs (abfd, info, sec, if (h->dynindx == -1) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } srelgot->_raw_size += sizeof (Elf64_External_Rela); @@ -2670,7 +2684,7 @@ sh_elf64_check_relocs (abfd, info, sec, size *= 2; local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size); if (local_got_offsets == NULL) - return false; + return FALSE; elf_local_got_offsets (abfd) = local_got_offsets; for (i = 0; i < symtab_hdr->sh_info; i++) local_got_offsets[i] = (bfd_vma) -1; @@ -2733,7 +2747,7 @@ sh_elf64_check_relocs (abfd, info, sec, if (h->dynindx == -1) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; @@ -2801,7 +2815,7 @@ sh_elf64_check_relocs (abfd, info, sec, elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -2820,7 +2834,7 @@ sh_elf64_check_relocs (abfd, info, sec, if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 2)) - return false; + return FALSE; } } @@ -2851,7 +2865,7 @@ sh_elf64_check_relocs (abfd, info, sec, p = ((struct elf_sh64_pcrel_relocs_copied *) bfd_alloc (dynobj, sizeof *p)); if (p == NULL) - return false; + return FALSE; p->next = eh->pcrel_relocs_copied; eh->pcrel_relocs_copied = p; p->section = sreloc; @@ -2866,7 +2880,7 @@ sh_elf64_check_relocs (abfd, info, sec, } } - return true; + return TRUE; } static int @@ -2902,7 +2916,7 @@ sh64_elf64_get_symbol_type (elf_sym, typ or the hash entry, alternatively adding the index to Elf_Internal_Sym (not so good). */ -static boolean +static bfd_boolean sh64_elf64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -2933,13 +2947,13 @@ sh64_elf64_add_symbol_hook (abfd, info, /* Allocation may fail. */ if (dl_name == NULL) - return false; + return FALSE; strcpy (dl_name, *namep); strcat (dl_name, DATALABEL_SUFFIX); h = (struct elf_link_hash_entry *) - bfd_link_hash_lookup (info->hash, dl_name, false, false, false); + bfd_link_hash_lookup (info->hash, dl_name, FALSE, FALSE, FALSE); if (h == NULL) { @@ -2949,11 +2963,11 @@ sh64_elf64_add_symbol_hook (abfd, info, if (! _bfd_generic_link_add_one_symbol (info, abfd, dl_name, flags, *secp, *valp, - *namep, false, + *namep, FALSE, bed->collect, &bh)) { free (dl_name); - return false; + return FALSE; } h = (struct elf_link_hash_entry *) bh; @@ -2976,7 +2990,7 @@ sh64_elf64_add_symbol_hook (abfd, info, (_("%s: encountered datalabel symbol in input"), bfd_get_filename (abfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Now find the hash-table slot for this entry and fill it in. */ @@ -2988,7 +3002,7 @@ sh64_elf64_add_symbol_hook (abfd, info, *namep = NULL; } - return true; + return TRUE; } /* This hook function is called before the linker writes out a global @@ -3003,7 +3017,7 @@ sh64_elf64_add_symbol_hook (abfd, info, we don't need to look up and make sure to emit the main symbol for each DataLabel symbol. */ -static boolean +static bfd_boolean sh64_elf64_link_output_symbol_hook (abfd, info, cname, sym, input_sec) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -3019,7 +3033,7 @@ sh64_elf64_link_output_symbol_hook (abfd name[strlen (name) - strlen (DATALABEL_SUFFIX)] = 0; } - return true; + return TRUE; } /* Set bit 0 on the entry address; it always points to SHmedia code. This @@ -3032,7 +3046,7 @@ sh64_elf64_link_output_symbol_hook (abfd static void sh64_elf64_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { /* FIXME: Perhaps we shouldn't do this if the entry address was supplied numerically, but we currently lack the infrastructure to recognize @@ -3271,7 +3285,7 @@ movi_3shori_putval (output_bfd, value, a /* Create dynamic sections when linking against a dynamic object. */ -static boolean +static bfd_boolean sh64_elf64_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3293,7 +3307,7 @@ sh64_elf64_create_dynamic_sections (abfd default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and @@ -3313,7 +3327,7 @@ sh64_elf64_create_dynamic_sections (abfd if (s == NULL || ! bfd_set_section_flags (abfd, s, pltflags) || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment)) - return false; + return FALSE; if (bed->want_plt_sym) { @@ -3324,8 +3338,8 @@ sh64_elf64_create_dynamic_sections (abfd if (! (_bfd_generic_link_add_one_symbol (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, - (bfd_vma) 0, (const char *) NULL, false, bed->collect, &bh))) - return false; + (bfd_vma) 0, (const char *) NULL, FALSE, bed->collect, &bh))) + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; @@ -3333,7 +3347,7 @@ sh64_elf64_create_dynamic_sections (abfd if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_make_section (abfd, @@ -3341,10 +3355,10 @@ sh64_elf64_create_dynamic_sections (abfd if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; if (! _bfd_elf_create_got_section (abfd, info)) - return false; + return FALSE; { const char *secname; @@ -3366,7 +3380,7 @@ sh64_elf64_create_dynamic_sections (abfd if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; } } @@ -3381,7 +3395,7 @@ sh64_elf64_create_dynamic_sections (abfd s = bfd_make_section (abfd, ".dynbss"); if (s == NULL || ! bfd_set_section_flags (abfd, s, SEC_ALLOC)) - return false; + return FALSE; /* The .rel[a].bss section holds copy relocs. This section is not normally needed. We need to create it here, though, so that the @@ -3402,11 +3416,11 @@ sh64_elf64_create_dynamic_sections (abfd if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; } } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -3415,7 +3429,7 @@ sh64_elf64_create_dynamic_sections (abfd change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean sh64_elf64_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -3453,14 +3467,14 @@ sh64_elf64_adjust_dynamic_symbol (info, a procedure linkage table, and we can just do a REL64 reloc instead. */ BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0); - return true; + return TRUE; } /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_get_section_by_name (dynobj, ".plt"); @@ -3501,7 +3515,7 @@ sh64_elf64_adjust_dynamic_symbol (info, BFD_ASSERT (s != NULL); s->_raw_size += sizeof (Elf64_External_Rela); - return true; + return TRUE; } /* If this is a weak symbol, and there is a real definition, the @@ -3513,7 +3527,7 @@ sh64_elf64_adjust_dynamic_symbol (info, || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -3524,12 +3538,12 @@ sh64_elf64_adjust_dynamic_symbol (info, For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -3570,7 +3584,7 @@ sh64_elf64_adjust_dynamic_symbol (info, if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -3580,7 +3594,7 @@ sh64_elf64_adjust_dynamic_symbol (info, /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* This function is called via sh_elf_link_hash_traverse if we are @@ -3590,7 +3604,7 @@ sh64_elf64_adjust_dynamic_symbol (info, check_relocs routine, but we won't fill them in in the relocate_section routine. */ -static boolean +static bfd_boolean sh64_elf64_discard_copies (h, ignore) struct elf_sh64_link_hash_entry *h; PTR ignore ATTRIBUTE_UNUSED; @@ -3602,26 +3616,26 @@ sh64_elf64_discard_copies (h, ignore) /* We only discard relocs for symbols defined in a regular object. */ if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - return true; + return TRUE; for (s = h->pcrel_relocs_copied; s != NULL; s = s->next) s->section->_raw_size -= s->count * sizeof (Elf64_External_Rela); - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean sh64_elf64_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean plt; - boolean relocs; - boolean reltext; + bfd_boolean plt; + bfd_boolean relocs; + bfd_boolean reltext; dynobj = elf_hash_table (info)->dynobj; BFD_ASSERT (dynobj != NULL); @@ -3661,13 +3675,13 @@ sh64_elf64_size_dynamic_sections (output /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - plt = false; - relocs = false; - reltext = false; + plt = FALSE; + relocs = FALSE; + reltext = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -3676,7 +3690,7 @@ sh64_elf64_size_dynamic_sections (output of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strcmp (name, ".plt") == 0) { @@ -3684,12 +3698,12 @@ sh64_elf64_size_dynamic_sections (output { /* Strip this section if we don't need it; see the comment below. */ - strip = true; + strip = TRUE; } else { /* Remember whether there is a PLT. */ - plt = true; + plt = TRUE; } } else if (strncmp (name, ".rela", 5) == 0) @@ -3705,7 +3719,7 @@ sh64_elf64_size_dynamic_sections (output adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { @@ -3717,7 +3731,7 @@ sh64_elf64_size_dynamic_sections (output { const char *outname; - relocs = true; + relocs = TRUE; /* If this relocation section applies to a read only section, then we probably need a DT_TEXTREL @@ -3730,7 +3744,7 @@ sh64_elf64_size_dynamic_sections (output if (target != NULL && (target->flags & SEC_READONLY) != 0 && (target->flags & SEC_ALLOC) != 0) - reltext = true; + reltext = TRUE; } /* We use the reloc_count field as a counter if we need @@ -3753,7 +3767,7 @@ sh64_elf64_size_dynamic_sections (output /* Allocate memory for the section contents. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -3766,7 +3780,7 @@ sh64_elf64_size_dynamic_sections (output if (! info->shared) { if (! bfd_elf64_add_dynamic_entry (info, DT_DEBUG, 0)) - return false; + return FALSE; } if (plt) @@ -3775,7 +3789,7 @@ sh64_elf64_size_dynamic_sections (output || ! bfd_elf64_add_dynamic_entry (info, DT_PLTRELSZ, 0) || ! bfd_elf64_add_dynamic_entry (info, DT_PLTREL, DT_RELA) || ! bfd_elf64_add_dynamic_entry (info, DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -3784,23 +3798,23 @@ sh64_elf64_size_dynamic_sections (output || ! bfd_elf64_add_dynamic_entry (info, DT_RELASZ, 0) || ! bfd_elf64_add_dynamic_entry (info, DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + return FALSE; } if (reltext) { if (! bfd_elf64_add_dynamic_entry (info, DT_TEXTREL, 0)) - return false; + return FALSE; } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean sh64_elf64_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -3820,6 +3834,7 @@ sh64_elf64_finish_dynamic_symbol (output bfd_vma plt_index; bfd_vma got_offset; Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -3908,9 +3923,8 @@ sh64_elf64_finish_dynamic_symbol (output rel.r_info = ELF64_R_INFO (h->dynindx, R_SH_JMP_SLOT64); rel.r_addend = 0; rel.r_addend = GOT_BIAS; - bfd_elf64_swap_reloca_out (output_bfd, &rel, - ((Elf64_External_Rela *) srel->contents - + plt_index)); + loc = srel->contents + plt_index * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &rel, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -3925,6 +3939,7 @@ sh64_elf64_finish_dynamic_symbol (output asection *sgot; asection *srel; Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -3958,16 +3973,16 @@ sh64_elf64_finish_dynamic_symbol (output rel.r_addend = 0; } - bfd_elf64_swap_reloca_out (output_bfd, &rel, - ((Elf64_External_Rela *) srel->contents - + srel->reloc_count)); - ++srel->reloc_count; + loc = srel->contents; + loc += srel->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &rel, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection *s; Elf_Internal_Rela rel; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -3984,10 +3999,9 @@ sh64_elf64_finish_dynamic_symbol (output + h->root.u.def.section->output_offset); rel.r_info = ELF64_R_INFO (h->dynindx, R_SH_COPY64); rel.r_addend = 0; - bfd_elf64_swap_reloca_out (output_bfd, &rel, - ((Elf64_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &rel, loc); } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. */ @@ -3995,12 +4009,12 @@ sh64_elf64_finish_dynamic_symbol (output || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean sh64_elf64_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -4048,7 +4062,7 @@ sh64_elf64_finish_dynamic_sections (outp if (dyn.d_un.d_val != 0) { h = elf_link_hash_lookup (elf_hash_table (info), name, - false, false, true); + FALSE, FALSE, TRUE); if (h != NULL && (h->other & STO_SH5_ISA32)) { dyn.d_un.d_val |= 1; @@ -4155,7 +4169,7 @@ sh64_elf64_finish_dynamic_sections (outp elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 8; - return true; + return TRUE; } #define TARGET_BIG_SYM bfd_elf64_sh64_vec diff -uprN binutils-2.13.90.0.16/bfd/elf64-sparc.c binutils-2.13.90.0.18/bfd/elf64-sparc.c --- binutils-2.13.90.0.16/bfd/elf64-sparc.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/elf64-sparc.c Mon Dec 16 12:22:52 2002 @@ -51,49 +51,49 @@ static bfd_vma sparc64_elf_plt_entry_off static bfd_vma sparc64_elf_plt_ptr_offset PARAMS ((bfd_vma, bfd_vma)); -static boolean sparc64_elf_check_relocs +static bfd_boolean sparc64_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *)); -static boolean sparc64_elf_adjust_dynamic_symbol +static bfd_boolean sparc64_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean sparc64_elf_size_dynamic_sections +static bfd_boolean sparc64_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static int sparc64_elf_get_symbol_type PARAMS (( Elf_Internal_Sym *, int)); -static boolean sparc64_elf_add_symbol_hook +static bfd_boolean sparc64_elf_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -static boolean sparc64_elf_output_arch_syms +static bfd_boolean sparc64_elf_output_arch_syms PARAMS ((bfd *, struct bfd_link_info *, PTR, - boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *))); + bfd_boolean (*) (PTR, const char *, Elf_Internal_Sym *, asection *))); static void sparc64_elf_symbol_processing PARAMS ((bfd *, asymbol *)); -static boolean sparc64_elf_merge_private_bfd_data +static bfd_boolean sparc64_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -static boolean sparc64_elf_fake_sections - PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *)); +static bfd_boolean sparc64_elf_fake_sections + PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); static const char *sparc64_elf_print_symbol_all PARAMS ((bfd *, PTR, asymbol *)); -static boolean sparc64_elf_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); -static boolean sparc64_elf_relocate_section +static bfd_boolean sparc64_elf_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean sparc64_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean sparc64_elf_finish_dynamic_symbol +static bfd_boolean sparc64_elf_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean sparc64_elf_finish_dynamic_sections +static bfd_boolean sparc64_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean sparc64_elf_object_p PARAMS ((bfd *)); +static bfd_boolean sparc64_elf_object_p PARAMS ((bfd *)); static long sparc64_elf_get_reloc_upper_bound PARAMS ((bfd *, asection *)); static long sparc64_elf_get_dynamic_reloc_upper_bound PARAMS ((bfd *)); -static boolean sparc64_elf_slurp_one_reloc_table - PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, asymbol **, boolean)); -static boolean sparc64_elf_slurp_reloc_table - PARAMS ((bfd *, asection *, asymbol **, boolean)); +static bfd_boolean sparc64_elf_slurp_one_reloc_table + PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, asymbol **, bfd_boolean)); +static bfd_boolean sparc64_elf_slurp_reloc_table + PARAMS ((bfd *, asection *, asymbol **, bfd_boolean)); static long sparc64_elf_canonicalize_dynamic_reloc PARAMS ((bfd *, arelent **, asymbol **)); static void sparc64_elf_write_relocs PARAMS ((bfd *, asection *, PTR)); @@ -113,65 +113,65 @@ static bfd_reloc_status_type sparc_elf_l static reloc_howto_type sparc64_elf_howto_table[] = { - HOWTO(R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", false,0,0x00000000,true), - HOWTO(R_SPARC_8, 0,0, 8,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_8", false,0,0x000000ff,true), - HOWTO(R_SPARC_16, 0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_32", false,0,0xffffffff,true), - HOWTO(R_SPARC_DISP8, 0,0, 8,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP8", false,0,0x000000ff,true), - HOWTO(R_SPARC_DISP16, 0,1,16,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP16", false,0,0x0000ffff,true), - HOWTO(R_SPARC_DISP32, 0,2,32,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP32", false,0,0xffffffff,true), - HOWTO(R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP30", false,0,0x3fffffff,true), - HOWTO(R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP22", false,0,0x003fffff,true), - HOWTO(R_SPARC_HI22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HI22", false,0,0x003fffff,true), - HOWTO(R_SPARC_22, 0,2,22,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_22", false,0,0x003fffff,true), - HOWTO(R_SPARC_13, 0,2,13,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_13", false,0,0x00001fff,true), - HOWTO(R_SPARC_LO10, 0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LO10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT10, 0,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT10", false,0,0x000003ff,true), - HOWTO(R_SPARC_GOT13, 0,2,13,false,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_GOT13", false,0,0x00001fff,true), - HOWTO(R_SPARC_GOT22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT22", false,0,0x003fffff,true), - HOWTO(R_SPARC_PC10, 0,2,10,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC10", false,0,0x000003ff,true), - HOWTO(R_SPARC_PC22, 10,2,22,true, 0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PC22", false,0,0x003fffff,true), - HOWTO(R_SPARC_WPLT30, 2,2,30,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WPLT30", false,0,0x3fffffff,true), - HOWTO(R_SPARC_COPY, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_COPY", false,0,0x00000000,true), - HOWTO(R_SPARC_GLOB_DAT, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GLOB_DAT",false,0,0x00000000,true), - HOWTO(R_SPARC_JMP_SLOT, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_SLOT",false,0,0x00000000,true), - HOWTO(R_SPARC_RELATIVE, 0,0,00,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_RELATIVE",false,0,0x00000000,true), - HOWTO(R_SPARC_UA32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA32", false,0,0xffffffff,true), + HOWTO(R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_8, 0,0, 8,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_8", FALSE,0,0x000000ff,TRUE), + HOWTO(R_SPARC_16, 0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_16", FALSE,0,0x0000ffff,TRUE), + HOWTO(R_SPARC_32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_32", FALSE,0,0xffffffff,TRUE), + HOWTO(R_SPARC_DISP8, 0,0, 8,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP8", FALSE,0,0x000000ff,TRUE), + HOWTO(R_SPARC_DISP16, 0,1,16,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP16", FALSE,0,0x0000ffff,TRUE), + HOWTO(R_SPARC_DISP32, 0,2,32,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP32", FALSE,0,0xffffffff,TRUE), + HOWTO(R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE), + HOWTO(R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_HI22, 10,2,22,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HI22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_22, 0,2,22,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_13, 0,2,13,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_13", FALSE,0,0x00001fff,TRUE), + HOWTO(R_SPARC_LO10, 0,2,10,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LO10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_GOT10, 0,2,10,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_GOT13, 0,2,13,FALSE,0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_GOT13", FALSE,0,0x00001fff,TRUE), + HOWTO(R_SPARC_GOT22, 10,2,22,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GOT22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_PC10, 0,2,10,TRUE, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_PC22, 10,2,22,TRUE, 0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PC22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_WPLT30, 2,2,30,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WPLT30", FALSE,0,0x3fffffff,TRUE), + HOWTO(R_SPARC_COPY, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_COPY", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_GLOB_DAT, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_JMP_SLOT, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_RELATIVE, 0,0,00,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_UA32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA32", FALSE,0,0xffffffff,TRUE), #ifndef SPARC64_OLD_RELOCS - HOWTO(R_SPARC_PLT32, 0,2,32,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT32", false,0,0xffffffff,true), + HOWTO(R_SPARC_PLT32, 0,2,32,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT32", FALSE,0,0xffffffff,TRUE), /* These aren't implemented yet. */ - HOWTO(R_SPARC_HIPLT22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_HIPLT22", false,0,0x00000000,true), - HOWTO(R_SPARC_LOPLT10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_LOPLT10", false,0,0x00000000,true), - HOWTO(R_SPARC_PCPLT32, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT32", false,0,0x00000000,true), - HOWTO(R_SPARC_PCPLT22, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT22", false,0,0x00000000,true), - HOWTO(R_SPARC_PCPLT10, 0,0,00,false,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT10", false,0,0x00000000,true), + HOWTO(R_SPARC_HIPLT22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_HIPLT22", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_LOPLT10, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_LOPLT10", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PCPLT32, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT32", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PCPLT22, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT22", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_PCPLT10, 0,0,00,FALSE,0,complain_overflow_dont, sparc_elf_notsup_reloc, "R_SPARC_PCPLT10", FALSE,0,0x00000000,TRUE), #endif - HOWTO(R_SPARC_10, 0,2,10,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_10", false,0,0x000003ff,true), - HOWTO(R_SPARC_11, 0,2,11,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_11", false,0,0x000007ff,true), - HOWTO(R_SPARC_64, 0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_64", false,0,MINUS_ONE, true), - HOWTO(R_SPARC_OLO10, 0,2,13,false,0,complain_overflow_signed, sparc_elf_notsup_reloc, "R_SPARC_OLO10", false,0,0x00001fff,true), - HOWTO(R_SPARC_HH22, 42,2,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_HH22", false,0,0x003fffff,true), - HOWTO(R_SPARC_HM10, 32,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HM10", false,0,0x000003ff,true), - HOWTO(R_SPARC_LM22, 10,2,22,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LM22", false,0,0x003fffff,true), - HOWTO(R_SPARC_PC_HH22, 42,2,22,true, 0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_PC_HH22", false,0,0x003fffff,true), - HOWTO(R_SPARC_PC_HM10, 32,2,10,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_HM10", false,0,0x000003ff,true), - HOWTO(R_SPARC_PC_LM22, 10,2,22,true, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_LM22", false,0,0x003fffff,true), - HOWTO(R_SPARC_WDISP16, 2,2,16,true, 0,complain_overflow_signed, sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", false,0,0x00000000,true), - HOWTO(R_SPARC_WDISP19, 2,2,19,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP19", false,0,0x0007ffff,true), - HOWTO(R_SPARC_UNUSED_42, 0,0, 0,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_UNUSED_42",false,0,0x00000000,true), - HOWTO(R_SPARC_7, 0,2, 7,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_7", false,0,0x0000007f,true), - HOWTO(R_SPARC_5, 0,2, 5,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_5", false,0,0x0000001f,true), - HOWTO(R_SPARC_6, 0,2, 6,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_6", false,0,0x0000003f,true), - HOWTO(R_SPARC_DISP64, 0,4,64,true, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP64", false,0,MINUS_ONE, true), - HOWTO(R_SPARC_PLT64, 0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT64", false,0,MINUS_ONE, true), - HOWTO(R_SPARC_HIX22, 0,4, 0,false,0,complain_overflow_bitfield,sparc_elf_hix22_reloc, "R_SPARC_HIX22", false,0,MINUS_ONE, false), - HOWTO(R_SPARC_LOX10, 0,4, 0,false,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_LOX10", false,0,MINUS_ONE, false), - HOWTO(R_SPARC_H44, 22,2,22,false,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_H44", false,0,0x003fffff,false), - HOWTO(R_SPARC_M44, 12,2,10,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_M44", false,0,0x000003ff,false), - HOWTO(R_SPARC_L44, 0,2,13,false,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_L44", false,0,0x00000fff,false), - HOWTO(R_SPARC_REGISTER, 0,4, 0,false,0,complain_overflow_bitfield,sparc_elf_notsup_reloc, "R_SPARC_REGISTER",false,0,MINUS_ONE, false), - HOWTO(R_SPARC_UA64, 0,4,64,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA64", false,0,MINUS_ONE, true), - HOWTO(R_SPARC_UA16, 0,1,16,false,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA16", false,0,0x0000ffff,true) + HOWTO(R_SPARC_10, 0,2,10,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_11, 0,2,11,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_11", FALSE,0,0x000007ff,TRUE), + HOWTO(R_SPARC_64, 0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_64", FALSE,0,MINUS_ONE, TRUE), + HOWTO(R_SPARC_OLO10, 0,2,13,FALSE,0,complain_overflow_signed, sparc_elf_notsup_reloc, "R_SPARC_OLO10", FALSE,0,0x00001fff,TRUE), + HOWTO(R_SPARC_HH22, 42,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_HH22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_HM10, 32,2,10,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_HM10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_LM22, 10,2,22,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_LM22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_PC_HH22, 42,2,22,TRUE, 0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_PC_HH22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_PC_HM10, 32,2,10,TRUE, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_HM10", FALSE,0,0x000003ff,TRUE), + HOWTO(R_SPARC_PC_LM22, 10,2,22,TRUE, 0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_PC_LM22", FALSE,0,0x003fffff,TRUE), + HOWTO(R_SPARC_WDISP16, 2,2,16,TRUE, 0,complain_overflow_signed, sparc_elf_wdisp16_reloc,"R_SPARC_WDISP16", FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_WDISP19, 2,2,19,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_WDISP19", FALSE,0,0x0007ffff,TRUE), + HOWTO(R_SPARC_UNUSED_42, 0,0, 0,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_UNUSED_42",FALSE,0,0x00000000,TRUE), + HOWTO(R_SPARC_7, 0,2, 7,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_7", FALSE,0,0x0000007f,TRUE), + HOWTO(R_SPARC_5, 0,2, 5,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_5", FALSE,0,0x0000001f,TRUE), + HOWTO(R_SPARC_6, 0,2, 6,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_6", FALSE,0,0x0000003f,TRUE), + HOWTO(R_SPARC_DISP64, 0,4,64,TRUE, 0,complain_overflow_signed, bfd_elf_generic_reloc, "R_SPARC_DISP64", FALSE,0,MINUS_ONE, TRUE), + HOWTO(R_SPARC_PLT64, 0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_PLT64", FALSE,0,MINUS_ONE, TRUE), + HOWTO(R_SPARC_HIX22, 0,4, 0,FALSE,0,complain_overflow_bitfield,sparc_elf_hix22_reloc, "R_SPARC_HIX22", FALSE,0,MINUS_ONE, FALSE), + HOWTO(R_SPARC_LOX10, 0,4, 0,FALSE,0,complain_overflow_dont, sparc_elf_lox10_reloc, "R_SPARC_LOX10", FALSE,0,MINUS_ONE, FALSE), + HOWTO(R_SPARC_H44, 22,2,22,FALSE,0,complain_overflow_unsigned,bfd_elf_generic_reloc, "R_SPARC_H44", FALSE,0,0x003fffff,FALSE), + HOWTO(R_SPARC_M44, 12,2,10,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_M44", FALSE,0,0x000003ff,FALSE), + HOWTO(R_SPARC_L44, 0,2,13,FALSE,0,complain_overflow_dont, bfd_elf_generic_reloc, "R_SPARC_L44", FALSE,0,0x00000fff,FALSE), + HOWTO(R_SPARC_REGISTER, 0,4, 0,FALSE,0,complain_overflow_bitfield,sparc_elf_notsup_reloc, "R_SPARC_REGISTER",FALSE,0,MINUS_ONE, FALSE), + HOWTO(R_SPARC_UA64, 0,4,64,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA64", FALSE,0,MINUS_ONE, TRUE), + HOWTO(R_SPARC_UA16, 0,1,16,FALSE,0,complain_overflow_bitfield,bfd_elf_generic_reloc, "R_SPARC_UA16", FALSE,0,0x0000ffff,TRUE) }; struct elf_reloc_map { @@ -255,7 +255,7 @@ static void sparc64_elf_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf64_Internal_Rela *dst; + Elf_Internal_Rela *dst; { BFD_ASSERT (ELF64_R_TYPE_ID (dst->r_info) < (unsigned int) R_SPARC_max_std); cache_ptr->howto = &sparc64_elf_howto_table[ELF64_R_TYPE_ID (dst->r_info)]; @@ -285,13 +285,13 @@ sparc64_elf_get_dynamic_reloc_upper_boun has secondary addend in ELF64_R_TYPE_DATA. We handle it as two relocations for the same location, R_SPARC_LO10 and R_SPARC_13. */ -static boolean +static bfd_boolean sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr, symbols, dynamic) bfd *abfd; asection *asect; Elf_Internal_Shdr *rel_hdr; asymbol **symbols; - boolean dynamic; + bfd_boolean dynamic; { PTR allocated = NULL; bfd_byte *native_relocs; @@ -323,7 +323,7 @@ sparc64_elf_slurp_one_reloc_table (abfd, { Elf_Internal_Rela rela; - bfd_elf64_swap_reloca_in (abfd, (Elf64_External_Rela *) native_relocs, &rela); + bfd_elf64_swap_reloca_in (abfd, native_relocs, &rela); /* The address of an ELF reloc is section relative for an object file, and absolute for an executable file or shared library. @@ -371,22 +371,22 @@ sparc64_elf_slurp_one_reloc_table (abfd, if (allocated != NULL) free (allocated); - return true; + return TRUE; error_return: if (allocated != NULL) free (allocated); - return false; + return FALSE; } /* Read in and swap the external relocs. */ -static boolean +static bfd_boolean sparc64_elf_slurp_reloc_table (abfd, asect, symbols, dynamic) bfd *abfd; asection *asect; asymbol **symbols; - boolean dynamic; + bfd_boolean dynamic; { struct bfd_elf_section_data * const d = elf_section_data (asect); Elf_Internal_Shdr *rel_hdr; @@ -394,13 +394,13 @@ sparc64_elf_slurp_reloc_table (abfd, ase bfd_size_type amt; if (asect->relocation != NULL) - return true; + return TRUE; if (! dynamic) { if ((asect->flags & SEC_RELOC) == 0 || asect->reloc_count == 0) - return true; + return TRUE; rel_hdr = &d->rel_hdr; rel_hdr2 = d->rel_hdr2; @@ -415,7 +415,7 @@ sparc64_elf_slurp_reloc_table (abfd, ase dynamic symbol table, and in that case bfd_section_from_shdr in elf.c does not update the RELOC_COUNT. */ if (asect->_raw_size == 0) - return true; + return TRUE; rel_hdr = &d->this_hdr; asect->reloc_count = NUM_SHDR_ENTRIES (rel_hdr); @@ -426,21 +426,21 @@ sparc64_elf_slurp_reloc_table (abfd, ase amt *= 2 * sizeof (arelent); asect->relocation = (arelent *) bfd_alloc (abfd, amt); if (asect->relocation == NULL) - return false; + return FALSE; /* The sparc64_elf_slurp_one_reloc_table routine increments reloc_count. */ asect->reloc_count = 0; if (!sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr, symbols, dynamic)) - return false; + return FALSE; if (rel_hdr2 && !sparc64_elf_slurp_one_reloc_table (abfd, asect, rel_hdr2, symbols, dynamic)) - return false; + return FALSE; - return true; + return TRUE; } /* Canonicalize the dynamic relocation entries. Note that we return @@ -476,7 +476,7 @@ sparc64_elf_canonicalize_dynamic_reloc ( arelent *p; long count, i; - if (! sparc64_elf_slurp_reloc_table (abfd, s, syms, true)) + if (! sparc64_elf_slurp_reloc_table (abfd, s, syms, TRUE)) return -1; count = s->reloc_count; p = s->relocation; @@ -499,7 +499,7 @@ sparc64_elf_write_relocs (abfd, sec, dat asection *sec; PTR data; { - boolean *failedp = (boolean *) data; + bfd_boolean *failedp = (bfd_boolean *) data; Elf_Internal_Shdr *rela_hdr; Elf64_External_Rela *outbound_relocas, *src_rela; unsigned int idx, count; @@ -550,7 +550,7 @@ sparc64_elf_write_relocs (abfd, sec, dat rela_hdr->contents = (PTR) bfd_alloc (abfd, rela_hdr->sh_size); if (rela_hdr->contents == NULL) { - *failedp = true; + *failedp = TRUE; return; } @@ -590,7 +590,7 @@ sparc64_elf_write_relocs (abfd, sec, dat n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym); if (n < 0) { - *failedp = true; + *failedp = TRUE; return; } last_sym_idx = n; @@ -600,7 +600,7 @@ sparc64_elf_write_relocs (abfd, sec, dat && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec && ! _bfd_elf_validate_reloc (abfd, ptr)) { - *failedp = true; + *failedp = TRUE; return; } @@ -626,7 +626,7 @@ sparc64_elf_write_relocs (abfd, sec, dat dst_rela.r_info = ELF64_R_INFO (n, ptr->howto->type); dst_rela.r_addend = ptr->addend; - bfd_elf64_swap_reloca_out (abfd, &dst_rela, src_rela); + bfd_elf64_swap_reloca_out (abfd, &dst_rela, (bfd_byte *) src_rela); ++src_rela; } } @@ -714,7 +714,7 @@ init_insn_reloc (abfd, return bfd_reloc_ok; } - /* This works because partial_inplace is false. */ + /* This works because partial_inplace is FALSE. */ if (output_bfd != NULL) return bfd_reloc_continue; @@ -994,7 +994,7 @@ sparc64_elf_plt_ptr_offset (index, max) allocate space in the global offset table or procedure linkage table. */ -static boolean +static bfd_boolean sparc64_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -1012,7 +1012,7 @@ sparc64_elf_check_relocs (abfd, info, se asection *sreloc; if (info->relocateable || !(sec->flags & SEC_ALLOC)) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -1047,7 +1047,7 @@ sparc64_elf_check_relocs (abfd, info, se /* Create the .got section. */ elf_hash_table (info)->dynobj = dynobj = abfd; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; } if (sgot == NULL) @@ -1071,7 +1071,7 @@ sparc64_elf_check_relocs (abfd, info, se | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, srelgot, 3)) - return false; + return FALSE; } } @@ -1088,7 +1088,7 @@ sparc64_elf_check_relocs (abfd, info, se if (h->dynindx == -1) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } srelgot->_raw_size += sizeof (Elf64_External_Rela); @@ -1106,7 +1106,7 @@ sparc64_elf_check_relocs (abfd, info, se size *= sizeof (bfd_vma); local_got_offsets = (bfd_vma *) bfd_alloc (abfd, size); if (local_got_offsets == NULL) - return false; + return FALSE; elf_local_got_offsets (abfd) = local_got_offsets; for (i = 0; i < symtab_hdr->sh_info; i++) local_got_offsets[i] = (bfd_vma) -1; @@ -1164,14 +1164,14 @@ sparc64_elf_check_relocs (abfd, info, se /* It does not make sense to have a procedure linkage table entry for a local symbol. */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } h->elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; @@ -1243,7 +1243,7 @@ sparc64_elf_check_relocs (abfd, info, se elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name (abfd, sec), @@ -1262,7 +1262,7 @@ sparc64_elf_check_relocs (abfd, info, se if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 3)) - return false; + return FALSE; } if (sec->flags & SEC_READONLY) info->flags |= DF_TEXTREL; @@ -1280,17 +1280,17 @@ sparc64_elf_check_relocs (abfd, info, se (*_bfd_error_handler) (_("%s: check_relocs: unhandled reloc type %d"), bfd_archive_filename (abfd), ELF64_R_TYPE_ID (rel->r_info)); - return false; + return FALSE; } } - return true; + return TRUE; } /* Hook called by the linker routine which adds symbols from an object file. We use it for STT_REGISTER symbols. */ -static boolean +static bfd_boolean sparc64_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -1316,7 +1316,7 @@ sparc64_elf_add_symbol_hook (abfd, info, (*_bfd_error_handler) (_("%s: Only registers %%g[2367] can be declared using STT_REGISTER"), bfd_archive_filename (abfd)); - return false; + return FALSE; } if (info->hash->creator != abfd->xvec @@ -1326,7 +1326,7 @@ sparc64_elf_add_symbol_hook (abfd, info, If STT_REGISTER comes from a dynamic object, don't put it into the output bfd. The dynamic linker will recheck it. */ *namep = NULL; - return true; + return TRUE; } p = sparc64_elf_hash_table(info)->app_regs + reg; @@ -1338,7 +1338,7 @@ sparc64_elf_add_symbol_hook (abfd, info, (int) sym->st_value, **namep ? *namep : "#scratch", bfd_archive_filename (abfd), *p->name ? p->name : "#scratch", bfd_archive_filename (p->abfd)); - return false; + return FALSE; } if (p->name == NULL) @@ -1348,7 +1348,7 @@ sparc64_elf_add_symbol_hook (abfd, info, struct elf_link_hash_entry *h; h = (struct elf_link_hash_entry *) - bfd_link_hash_lookup (info->hash, *namep, false, false, false); + bfd_link_hash_lookup (info->hash, *namep, FALSE, FALSE, FALSE); if (h != NULL) { @@ -1360,13 +1360,13 @@ sparc64_elf_add_symbol_hook (abfd, info, (_("Symbol `%s' has differing types: REGISTER in %s, previously %s in %s"), *namep, bfd_archive_filename (abfd), stt_types[type], bfd_archive_filename (p->abfd)); - return false; + return FALSE; } p->name = bfd_hash_allocate (&info->hash->table, strlen (*namep) + 1); if (!p->name) - return false; + return FALSE; strcpy (p->name, *namep); } @@ -1386,7 +1386,7 @@ sparc64_elf_add_symbol_hook (abfd, info, } } *namep = NULL; - return true; + return TRUE; } else if (*namep && **namep && info->hash->creator == abfd->xvec) @@ -1406,22 +1406,22 @@ sparc64_elf_add_symbol_hook (abfd, info, (_("Symbol `%s' has differing types: %s in %s, previously REGISTER in %s"), *namep, stt_types[type], bfd_archive_filename (abfd), bfd_archive_filename (p->abfd)); - return false; + return FALSE; } } - return true; + return TRUE; } /* This function takes care of emiting STT_REGISTER symbols which we cannot easily keep in the symbol hash table. */ -static boolean +static bfd_boolean sparc64_elf_output_arch_syms (output_bfd, info, finfo, func) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; PTR finfo; - boolean (*func) PARAMS ((PTR, const char *, - Elf_Internal_Sym *, asection *)); + bfd_boolean (*func) + PARAMS ((PTR, const char *, Elf_Internal_Sym *, asection *)); { int reg; struct sparc64_elf_app_reg *app_regs = @@ -1449,7 +1449,7 @@ sparc64_elf_output_arch_syms (output_bfd } if (info->strip == strip_all) - return true; + return TRUE; for (reg = 0; reg < 4; reg++) if (app_regs [reg].name != NULL) @@ -1457,7 +1457,7 @@ sparc64_elf_output_arch_syms (output_bfd if (info->strip == strip_some && bfd_hash_lookup (info->keep_hash, app_regs [reg].name, - false, false) == NULL) + FALSE, FALSE) == NULL) continue; sym.st_value = reg < 2 ? reg + 2 : reg + 4; @@ -1468,10 +1468,10 @@ sparc64_elf_output_arch_syms (output_bfd if (! (*func) (finfo, app_regs [reg].name, &sym, sym.st_shndx == SHN_ABS ? bfd_abs_section_ptr : bfd_und_section_ptr)) - return false; + return FALSE; } - return true; + return TRUE; } static int @@ -1509,7 +1509,7 @@ sparc64_elf_symbol_processing (abfd, asy change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean sparc64_elf_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1553,7 +1553,7 @@ sparc64_elf_adjust_dynamic_symbol (info, procedure linkage table, and we can just do a WDISP30 reloc instead. */ BFD_ASSERT ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0); - return true; + return TRUE; } s = bfd_get_section_by_name (dynobj, ".plt"); @@ -1593,10 +1593,10 @@ sparc64_elf_adjust_dynamic_symbol (info, if (s->_raw_size >= (bfd_vma)1 << 32) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } /* If this is a weak symbol, and there is a real definition, the @@ -1608,7 +1608,7 @@ sparc64_elf_adjust_dynamic_symbol (info, || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1619,7 +1619,7 @@ sparc64_elf_adjust_dynamic_symbol (info, For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* We must allocate the symbol in our .dynbss section, which will become part of the .bss section of the executable. There will be @@ -1661,7 +1661,7 @@ sparc64_elf_adjust_dynamic_symbol (info, if (power_of_two > bfd_get_section_alignment (dynobj, s)) { if (! bfd_set_section_alignment (dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1671,19 +1671,19 @@ sparc64_elf_adjust_dynamic_symbol (info, /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean sparc64_elf_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean relplt; + bfd_boolean relplt; dynobj = elf_hash_table (info)->dynobj; BFD_ASSERT (dynobj != NULL); @@ -1714,11 +1714,11 @@ sparc64_elf_size_dynamic_sections (outpu /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relplt = false; + relplt = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; if ((s->flags & SEC_LINKER_CREATED) == 0) continue; @@ -1727,7 +1727,7 @@ sparc64_elf_size_dynamic_sections (outpu of the dynobj section names depend upon the input files. */ name = bfd_get_section_name (dynobj, s); - strip = false; + strip = FALSE; if (strncmp (name, ".rela", 5) == 0) { @@ -1742,12 +1742,12 @@ sparc64_elf_size_dynamic_sections (outpu adjust_dynamic_symbol is called, and it is that function which decides whether anything needs to go into these sections. */ - strip = true; + strip = TRUE; } else { if (strcmp (name, ".rela.plt") == 0) - relplt = true; + relplt = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1772,7 +1772,7 @@ sparc64_elf_size_dynamic_sections (outpu at the beginning, and we don't want garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; } if (elf_hash_table (info)->dynamic_sections_created) @@ -1793,7 +1793,7 @@ sparc64_elf_size_dynamic_sections (outpu if (!info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (relplt) @@ -1802,18 +1802,18 @@ sparc64_elf_size_dynamic_sections (outpu || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + return FALSE; if (info->flags & DF_TEXTREL) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } /* Add dynamic STT_REGISTER symbols and corresponding DT_SPARC_REGISTER @@ -1827,12 +1827,12 @@ sparc64_elf_size_dynamic_sections (outpu struct elf_link_local_dynamic_entry *entry, *e; if (!add_dynamic_entry (DT_SPARC_REGISTER, 0)) - return false; + return FALSE; entry = (struct elf_link_local_dynamic_entry *) bfd_hash_allocate (&info->hash->table, sizeof (*entry)); if (entry == NULL) - return false; + return FALSE; /* We cheat here a little bit: the symbol will not be local, so we put it at the end of the dynlocal linked list. We will fix it @@ -1841,7 +1841,7 @@ sparc64_elf_size_dynamic_sections (outpu entry->isym.st_size = 0; if (*app_regs [reg].name != '\0') entry->isym.st_name - = _bfd_elf_strtab_add (dynstr, app_regs[reg].name, false); + = _bfd_elf_strtab_add (dynstr, app_regs[reg].name, FALSE); else entry->isym.st_name = 0; entry->isym.st_other = 0; @@ -1865,22 +1865,22 @@ sparc64_elf_size_dynamic_sections (outpu } #undef add_dynamic_entry - return true; + return TRUE; } #define SET_SEC_DO_RELAX(section) do { elf_section_data(section)->tdata = (void *)1; } while (0) #define SEC_DO_RELAX(section) (elf_section_data(section)->tdata == (void *)1) -static boolean +static bfd_boolean sparc64_elf_relax_section (abfd, section, link_info, again) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - boolean *again; + bfd_boolean *again; { - *again = false; + *again = FALSE; SET_SEC_DO_RELAX (section); - return true; + return TRUE; } /* This is the condition under which finish_dynamic_symbol will be called @@ -1896,7 +1896,7 @@ sparc64_elf_relax_section (abfd, section /* Relocate a SPARC64 ELF section. */ -static boolean +static bfd_boolean sparc64_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1920,7 +1920,7 @@ sparc64_elf_relocate_section (output_bfd Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1946,14 +1946,14 @@ sparc64_elf_relocate_section (output_bfd asection *sec; bfd_vma relocation, off; bfd_reloc_status_type r; - boolean is_plt = false; - boolean unresolved_reloc; + bfd_boolean is_plt = FALSE; + bfd_boolean unresolved_reloc; r_type = ELF64_R_TYPE_ID (rel->r_info); if (r_type < 0 || r_type >= (int) R_SPARC_max_std) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = sparc64_elf_howto_table + r_type; @@ -1962,7 +1962,7 @@ sparc64_elf_relocate_section (output_bfd h = NULL; sym = NULL; sec = NULL; - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -1986,7 +1986,7 @@ sparc64_elf_relocate_section (output_bfd relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; else relocation = (h->root.u.def.value + sec->output_section->vma @@ -2006,7 +2006,7 @@ sparc64_elf_relocate_section (output_bfd input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; /* To avoid generating warning messages about truncated relocations, set the relocation's address to be the same as @@ -2073,7 +2073,8 @@ sparc64_elf_relocate_section (output_bfd case R_SPARC_UA16: { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_byte *loc; + bfd_boolean skip, relocate; if (sreloc == NULL) { @@ -2084,7 +2085,7 @@ sparc64_elf_relocate_section (output_bfd elf_section_data (input_section)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; BFD_ASSERT (strncmp (name, ".rela", 5) == 0 && strcmp (bfd_get_section_name(input_bfd, @@ -2095,16 +2096,16 @@ sparc64_elf_relocate_section (output_bfd BFD_ASSERT (sreloc != NULL); } - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -2141,7 +2142,7 @@ sparc64_elf_relocate_section (output_bfd FIXME: Add code tracking needed dynamic relocs as e.g. i386 has. */ if (h->dynindx == -1) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; break; } @@ -2187,7 +2188,7 @@ sparc64_elf_relocate_section (output_bfd else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -2212,7 +2213,7 @@ sparc64_elf_relocate_section (output_bfd (_("%s: probably compiled without -fPIC?"), bfd_archive_filename (input_bfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } @@ -2224,11 +2225,9 @@ sparc64_elf_relocate_section (output_bfd } } - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - (((Elf64_External_Rela *) - sreloc->contents) - + sreloc->reloc_count)); - ++sreloc->reloc_count; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); /* This reloc will be computed at runtime, so there's no need to do anything now. */ @@ -2254,7 +2253,7 @@ sparc64_elf_relocate_section (output_bfd if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; BFD_ASSERT (off != (bfd_vma) -1); @@ -2289,7 +2288,7 @@ sparc64_elf_relocate_section (output_bfd } } else - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -2308,8 +2307,9 @@ sparc64_elf_relocate_section (output_bfd if (info->shared) { - asection *srelgot; + asection *s; Elf_Internal_Rela outrel; + bfd_byte *loc; /* The Solaris 2.7 64-bit linker adds the contents of the location to the value of the reloc. @@ -2321,19 +2321,17 @@ sparc64_elf_relocate_section (output_bfd /* We need to generate a R_SPARC_RELATIVE reloc for the dynamic linker. */ - srelgot = bfd_get_section_by_name(dynobj, ".rela.got"); - BFD_ASSERT (srelgot != NULL); + s = bfd_get_section_by_name(dynobj, ".rela.got"); + BFD_ASSERT (s != NULL); outrel.r_offset = (sgot->output_section->vma + sgot->output_offset + off); outrel.r_info = ELF64_R_INFO (0, R_SPARC_RELATIVE); outrel.r_addend = relocation; - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - (((Elf64_External_Rela *) - srelgot->contents) - + srelgot->reloc_count)); - ++srelgot->reloc_count; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); } else bfd_put_64 (output_bfd, relocation, sgot->contents + off); @@ -2371,13 +2369,13 @@ sparc64_elf_relocate_section (output_bfd relocation = (splt->output_section->vma + splt->output_offset + sparc64_elf_plt_entry_offset (h->plt.offset)); - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_type == R_SPARC_WPLT30) goto do_wplt30; if (r_type == R_SPARC_PLT32 || r_type == R_SPARC_PLT64) { r_type = r_type == R_SPARC_PLT32 ? R_SPARC_32 : R_SPARC_64; - is_plt = true; + is_plt = TRUE; goto do_dynreloc; } goto do_default; @@ -2612,26 +2610,26 @@ sparc64_elf_relocate_section (output_bfd symtab_hdr->sh_link, sym->st_name)); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean sparc64_elf_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -2647,6 +2645,7 @@ sparc64_elf_finish_dynamic_symbol (outpu asection *splt; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the PLT. Set it up. */ @@ -2678,9 +2677,9 @@ sparc64_elf_finish_dynamic_symbol (outpu Sun forgot to read their own ABI and copied elf32-sparc behaviour, thus .plt[4] has corresponding .rela.plt[0] and so on. */ - bfd_elf64_swap_reloca_out (output_bfd, &rela, - ((Elf64_External_Rela *) srela->contents - + (h->plt.offset - 4))); + loc = srela->contents; + loc += (h->plt.offset - 4) * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) { @@ -2702,6 +2701,7 @@ sparc64_elf_finish_dynamic_symbol (outpu asection *sgot; asection *srela; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbol has an entry in the GOT. Set it up. */ @@ -2736,16 +2736,16 @@ sparc64_elf_finish_dynamic_symbol (outpu bfd_put_64 (output_bfd, (bfd_vma) 0, sgot->contents + (h->got.offset &~ (bfd_vma) 1)); - bfd_elf64_swap_reloca_out (output_bfd, &rela, - ((Elf64_External_Rela *) srela->contents - + srela->reloc_count)); - ++srela->reloc_count; + loc = srela->contents; + loc += srela->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { asection *s; Elf_Internal_Rela rela; + bfd_byte *loc; /* This symbols needs a copy reloc. Set it up. */ @@ -2760,10 +2760,8 @@ sparc64_elf_finish_dynamic_symbol (outpu + h->root.u.def.section->output_offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_SPARC_COPY); rela.r_addend = 0; - bfd_elf64_swap_reloca_out (output_bfd, &rela, - ((Elf64_External_Rela *) s->contents - + s->reloc_count)); - ++s->reloc_count; + loc = s->contents + s->reloc_count++ * sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } /* Mark some specially defined symbols as absolute. */ @@ -2772,12 +2770,12 @@ sparc64_elf_finish_dynamic_symbol (outpu || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean sparc64_elf_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2805,27 +2803,27 @@ sparc64_elf_finish_dynamic_sections (out { Elf_Internal_Dyn dyn; const char *name; - boolean size; + bfd_boolean size; bfd_elf64_swap_dyn_in (dynobj, dyncon, &dyn); switch (dyn.d_tag) { - case DT_PLTGOT: name = ".plt"; size = false; break; - case DT_PLTRELSZ: name = ".rela.plt"; size = true; break; - case DT_JMPREL: name = ".rela.plt"; size = false; break; + case DT_PLTGOT: name = ".plt"; size = FALSE; break; + case DT_PLTRELSZ: name = ".rela.plt"; size = TRUE; break; + case DT_JMPREL: name = ".rela.plt"; size = FALSE; break; case DT_SPARC_REGISTER: if (stt_regidx == -1) { stt_regidx = _bfd_elf_link_lookup_local_dynindx (info, output_bfd, -1); if (stt_regidx == -1) - return false; + return FALSE; } dyn.d_un.d_val = stt_regidx++; bfd_elf64_swap_dyn_out (output_bfd, &dyn, dyncon); /* fallthrough */ - default: name = NULL; size = false; break; + default: name = NULL; size = FALSE; break; } if (name != NULL) @@ -2878,7 +2876,7 @@ sparc64_elf_finish_dynamic_sections (out elf_section_data (sgot->output_section)->this_hdr.sh_entsize = 8; - return true; + return TRUE; } static enum elf_reloc_type_class @@ -2903,25 +2901,25 @@ sparc64_elf_reloc_type_class (rela) /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean sparc64_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { - boolean error; + bfd_boolean error; flagword new_flags, old_flags; int new_mm, old_mm; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; new_flags = elf_elfheader (ibfd)->e_flags; old_flags = elf_elfheader (obfd)->e_flags; if (!elf_flags_init (obfd)) /* First call, no flags set */ { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = new_flags; } @@ -2930,7 +2928,7 @@ sparc64_elf_merge_private_bfd_data (ibfd else /* Incompatible flags */ { - error = false; + error = FALSE; #define EF_SPARC_ISA_EXTENSIONS \ (EF_SPARC_SUN_US1 | EF_SPARC_SUN_US3 | EF_SPARC_HAL_R1) @@ -2952,7 +2950,7 @@ sparc64_elf_merge_private_bfd_data (ibfd if ((old_flags & (EF_SPARC_SUN_US1 | EF_SPARC_SUN_US3)) && (old_flags & EF_SPARC_HAL_R1)) { - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: linking UltraSPARC specific with HAL specific code"), bfd_archive_filename (ibfd)); @@ -2971,7 +2969,7 @@ sparc64_elf_merge_private_bfd_data (ibfd /* Warn about any other mismatches */ if (new_flags != old_flags) { - error = true; + error = TRUE; (*_bfd_error_handler) (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"), bfd_archive_filename (ibfd), (long) new_flags, (long) old_flags); @@ -2982,18 +2980,18 @@ sparc64_elf_merge_private_bfd_data (ibfd if (error) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } - return true; + return TRUE; } /* MARCO: Set the correct entry size for the .stab section. */ -static boolean +static bfd_boolean sparc64_elf_fake_sections (abfd, hdr, sec) bfd *abfd ATTRIBUTE_UNUSED; - Elf32_Internal_Shdr *hdr ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *hdr ATTRIBUTE_UNUSED; asection *sec; { const char *name; @@ -3005,8 +3003,8 @@ sparc64_elf_fake_sections (abfd, hdr, se /* Even in the 64bit case the stab entries are only 12 bytes long. */ elf_section_data (sec)->this_hdr.sh_entsize = 12; } - - return true; + + return TRUE; } /* Print a STT_REGISTER symbol to file FILE. */ @@ -3039,7 +3037,7 @@ sparc64_elf_print_symbol_all (abfd, file /* Set the right machine number for a SPARC64 ELF file. */ -static boolean +static bfd_boolean sparc64_elf_object_p (abfd) bfd *abfd; { @@ -3086,10 +3084,10 @@ const struct elf_size_info sparc64_elf_s bfd_elf64_slurp_symbol_table, bfd_elf64_swap_dyn_in, bfd_elf64_swap_dyn_out, - NULL, - NULL, - NULL, - NULL + bfd_elf64_swap_reloc_in, + bfd_elf64_swap_reloc_out, + bfd_elf64_swap_reloca_in, + bfd_elf64_swap_reloca_out }; #define TARGET_BIG_SYM bfd_elf64_sparc_vec diff -uprN binutils-2.13.90.0.16/bfd/elf64-x86-64.c binutils-2.13.90.0.18/bfd/elf64-x86-64.c --- binutils-2.13.90.0.16/bfd/elf64-x86-64.c Wed Oct 2 10:17:19 2002 +++ binutils-2.13.90.0.18/bfd/elf64-x86-64.c Mon Dec 16 12:22:52 2002 @@ -34,83 +34,83 @@ Foundation, Inc., 59 Temple Place - Suit special_function, name, partial_inplace, src_mask, dst_pack, pcrel_offset. */ static reloc_howto_type x86_64_elf_howto_table[] = { - HOWTO(R_X86_64_NONE, 0, 0, 0, false, 0, complain_overflow_dont, - bfd_elf_generic_reloc, "R_X86_64_NONE", false, 0x00000000, 0x00000000, - false), - HOWTO(R_X86_64_64, 0, 4, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_64", false, MINUS_ONE, MINUS_ONE, - false), - HOWTO(R_X86_64_PC32, 0, 2, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PC32", false, 0xffffffff, 0xffffffff, - true), - HOWTO(R_X86_64_GOT32, 0, 2, 32, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOT32", false, 0xffffffff, 0xffffffff, - false), - HOWTO(R_X86_64_PLT32, 0, 2, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PLT32", false, 0xffffffff, 0xffffffff, - true), - HOWTO(R_X86_64_COPY, 0, 2, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_COPY", false, 0xffffffff, 0xffffffff, - false), - HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", false, MINUS_ONE, - MINUS_ONE, false), - HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", false, MINUS_ONE, - MINUS_ONE, false), - HOWTO(R_X86_64_RELATIVE, 0, 4, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_RELATIVE", false, MINUS_ONE, - MINUS_ONE, false), - HOWTO(R_X86_64_GOTPCREL, 0, 2, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", false, 0xffffffff, - 0xffffffff, true), - HOWTO(R_X86_64_32, 0, 2, 32, false, 0, complain_overflow_unsigned, - bfd_elf_generic_reloc, "R_X86_64_32", false, 0xffffffff, 0xffffffff, - false), - HOWTO(R_X86_64_32S, 0, 2, 32, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_32S", false, 0xffffffff, 0xffffffff, - false), - HOWTO(R_X86_64_16, 0, 1, 16, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_16", false, 0xffff, 0xffff, false), - HOWTO(R_X86_64_PC16,0, 1, 16, true, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_PC16", false, 0xffff, 0xffff, true), - HOWTO(R_X86_64_8, 0, 0, 8, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_8", false, 0xff, 0xff, false), - HOWTO(R_X86_64_PC8, 0, 0, 8, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_PC8", false, 0xff, 0xff, true), - HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", false, MINUS_ONE, - MINUS_ONE, false), - HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", false, MINUS_ONE, - MINUS_ONE, false), - HOWTO(R_X86_64_TPOFF64, 0, 4, 64, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_TPOFF64", false, MINUS_ONE, - MINUS_ONE, false), - HOWTO(R_X86_64_TLSGD, 0, 2, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_TLSGD", false, 0xffffffff, - 0xffffffff, true), - HOWTO(R_X86_64_TLSLD, 0, 2, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_TLSLD", false, 0xffffffff, - 0xffffffff, true), - HOWTO(R_X86_64_DTPOFF32, 0, 2, 32, false, 0, complain_overflow_bitfield, - bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", false, 0xffffffff, - 0xffffffff, false), - HOWTO(R_X86_64_GOTTPOFF, 0, 2, 32, true, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", false, 0xffffffff, - 0xffffffff, true), - HOWTO(R_X86_64_TPOFF32, 0, 2, 32, false, 0, complain_overflow_signed, - bfd_elf_generic_reloc, "R_X86_64_TPOFF32", false, 0xffffffff, - 0xffffffff, false), + HOWTO(R_X86_64_NONE, 0, 0, 0, FALSE, 0, complain_overflow_dont, + bfd_elf_generic_reloc, "R_X86_64_NONE", FALSE, 0x00000000, 0x00000000, + FALSE), + HOWTO(R_X86_64_64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_64", FALSE, MINUS_ONE, MINUS_ONE, + FALSE), + HOWTO(R_X86_64_PC32, 0, 2, 32, TRUE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_PC32", FALSE, 0xffffffff, 0xffffffff, + TRUE), + HOWTO(R_X86_64_GOT32, 0, 2, 32, FALSE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_GOT32", FALSE, 0xffffffff, 0xffffffff, + FALSE), + HOWTO(R_X86_64_PLT32, 0, 2, 32, TRUE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_PLT32", FALSE, 0xffffffff, 0xffffffff, + TRUE), + HOWTO(R_X86_64_COPY, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_COPY", FALSE, 0xffffffff, 0xffffffff, + FALSE), + HOWTO(R_X86_64_GLOB_DAT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_GLOB_DAT", FALSE, MINUS_ONE, + MINUS_ONE, FALSE), + HOWTO(R_X86_64_JUMP_SLOT, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_JUMP_SLOT", FALSE, MINUS_ONE, + MINUS_ONE, FALSE), + HOWTO(R_X86_64_RELATIVE, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_RELATIVE", FALSE, MINUS_ONE, + MINUS_ONE, FALSE), + HOWTO(R_X86_64_GOTPCREL, 0, 2, 32, TRUE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_GOTPCREL", FALSE, 0xffffffff, + 0xffffffff, TRUE), + HOWTO(R_X86_64_32, 0, 2, 32, FALSE, 0, complain_overflow_unsigned, + bfd_elf_generic_reloc, "R_X86_64_32", FALSE, 0xffffffff, 0xffffffff, + FALSE), + HOWTO(R_X86_64_32S, 0, 2, 32, FALSE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_32S", FALSE, 0xffffffff, 0xffffffff, + FALSE), + HOWTO(R_X86_64_16, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_16", FALSE, 0xffff, 0xffff, FALSE), + HOWTO(R_X86_64_PC16,0, 1, 16, TRUE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_PC16", FALSE, 0xffff, 0xffff, TRUE), + HOWTO(R_X86_64_8, 0, 0, 8, FALSE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_8", FALSE, 0xff, 0xff, FALSE), + HOWTO(R_X86_64_PC8, 0, 0, 8, TRUE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_PC8", FALSE, 0xff, 0xff, TRUE), + HOWTO(R_X86_64_DTPMOD64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_DTPMOD64", FALSE, MINUS_ONE, + MINUS_ONE, FALSE), + HOWTO(R_X86_64_DTPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_DTPOFF64", FALSE, MINUS_ONE, + MINUS_ONE, FALSE), + HOWTO(R_X86_64_TPOFF64, 0, 4, 64, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_TPOFF64", FALSE, MINUS_ONE, + MINUS_ONE, FALSE), + HOWTO(R_X86_64_TLSGD, 0, 2, 32, TRUE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_TLSGD", FALSE, 0xffffffff, + 0xffffffff, TRUE), + HOWTO(R_X86_64_TLSLD, 0, 2, 32, TRUE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_TLSLD", FALSE, 0xffffffff, + 0xffffffff, TRUE), + HOWTO(R_X86_64_DTPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, + bfd_elf_generic_reloc, "R_X86_64_DTPOFF32", FALSE, 0xffffffff, + 0xffffffff, FALSE), + HOWTO(R_X86_64_GOTTPOFF, 0, 2, 32, TRUE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_GOTTPOFF", FALSE, 0xffffffff, + 0xffffffff, TRUE), + HOWTO(R_X86_64_TPOFF32, 0, 2, 32, FALSE, 0, complain_overflow_signed, + bfd_elf_generic_reloc, "R_X86_64_TPOFF32", FALSE, 0xffffffff, + 0xffffffff, FALSE), /* GNU extension to record C++ vtable hierarchy. */ - HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, false, 0, complain_overflow_dont, - NULL, "R_X86_64_GNU_VTINHERIT", false, 0, 0, false), + HOWTO (R_X86_64_GNU_VTINHERIT, 0, 4, 0, FALSE, 0, complain_overflow_dont, + NULL, "R_X86_64_GNU_VTINHERIT", FALSE, 0, 0, FALSE), /* GNU extension to record C++ vtable member usage. */ - HOWTO (R_X86_64_GNU_VTENTRY, 0, 4, 0, false, 0, complain_overflow_dont, - _bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", false, 0, 0, - false) + HOWTO (R_X86_64_GNU_VTENTRY, 0, 4, 0, FALSE, 0, complain_overflow_dont, + _bfd_elf_rel_vtable_reloc_fn, "R_X86_64_GNU_VTENTRY", FALSE, 0, 0, + FALSE) }; /* Map BFD relocs to the x86_64 elf relocs. */ @@ -153,58 +153,58 @@ static const struct elf_reloc_map x86_64 static reloc_howto_type *elf64_x86_64_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static void elf64_x86_64_info_to_howto - PARAMS ((bfd *, arelent *, Elf64_Internal_Rela *)); -static boolean elf64_x86_64_grok_prstatus + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean elf64_x86_64_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean elf64_x86_64_grok_psinfo +static bfd_boolean elf64_x86_64_grok_psinfo PARAMS ((bfd *, Elf_Internal_Note *)); static struct bfd_link_hash_table *elf64_x86_64_link_hash_table_create PARAMS ((bfd *)); static int elf64_x86_64_tls_transition PARAMS ((struct bfd_link_info *, int, int)); -static boolean elf64_x86_64_mkobject +static bfd_boolean elf64_x86_64_mkobject PARAMS((bfd *)); -static boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd)); -static boolean create_got_section +static bfd_boolean elf64_x86_64_elf_object_p PARAMS ((bfd *abfd)); +static bfd_boolean create_got_section PARAMS((bfd *, struct bfd_link_info *)); -static boolean elf64_x86_64_create_dynamic_sections +static bfd_boolean elf64_x86_64_create_dynamic_sections PARAMS((bfd *, struct bfd_link_info *)); static void elf64_x86_64_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); -static boolean elf64_x86_64_check_relocs +static bfd_boolean elf64_x86_64_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *sec, const Elf_Internal_Rela *)); static asection *elf64_x86_64_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -static boolean elf64_x86_64_gc_sweep_hook +static bfd_boolean elf64_x86_64_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); static struct bfd_hash_entry *link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean elf64_x86_64_adjust_dynamic_symbol +static bfd_boolean elf64_x86_64_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean allocate_dynrelocs +static bfd_boolean allocate_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean readonly_dynrelocs +static bfd_boolean readonly_dynrelocs PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf64_x86_64_size_dynamic_sections +static bfd_boolean elf64_x86_64_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static bfd_vma dtpoff_base PARAMS ((struct bfd_link_info *)); static bfd_vma tpoff PARAMS ((struct bfd_link_info *, bfd_vma)); -static boolean elf64_x86_64_relocate_section +static bfd_boolean elf64_x86_64_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -static boolean elf64_x86_64_finish_dynamic_symbol +static bfd_boolean elf64_x86_64_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *sym)); -static boolean elf64_x86_64_finish_dynamic_sections +static bfd_boolean elf64_x86_64_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); static enum elf_reloc_type_class elf64_x86_64_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); @@ -231,7 +231,7 @@ static void elf64_x86_64_info_to_howto (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf64_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned r_type, i; @@ -251,7 +251,7 @@ elf64_x86_64_info_to_howto (abfd, cache_ } /* Support for core dump NOTE sections. */ -static boolean +static bfd_boolean elf64_x86_64_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -262,7 +262,7 @@ elf64_x86_64_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 336: /* sizeof(istruct elf_prstatus) on Linux/x86_64 */ /* pr_cursig */ @@ -285,7 +285,7 @@ elf64_x86_64_grok_prstatus (abfd, note) raw_size, note->descpos + offset); } -static boolean +static bfd_boolean elf64_x86_64_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -293,7 +293,7 @@ elf64_x86_64_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 136: /* sizeof(struct elf_prpsinfo) on Linux/x86_64 */ elf_tdata (abfd)->core_program @@ -314,7 +314,7 @@ elf64_x86_64_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } /* Functions for the x86-64 ELF linker. */ @@ -505,7 +505,7 @@ elf64_x86_64_link_hash_table_create (abf /* Create .got, .gotplt, and .rela.got sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean create_got_section (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -513,7 +513,7 @@ create_got_section (dynobj, info) struct elf64_x86_64_link_hash_table *htab; if (! _bfd_elf_create_got_section (dynobj, info)) - return false; + return FALSE; htab = elf64_x86_64_hash_table (info); htab->sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -528,15 +528,15 @@ create_got_section (dynobj, info) | SEC_IN_MEMORY | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, htab->srelgot, 3)) - return false; - return true; + return FALSE; + return TRUE; } /* Create .plt, .rela.plt, .got, .got.plt, .rela.got, .dynbss, and .rela.bss sections in DYNOBJ, and set up shortcuts to them in our hash table. */ -static boolean +static bfd_boolean elf64_x86_64_create_dynamic_sections (dynobj, info) bfd *dynobj; struct bfd_link_info *info; @@ -545,10 +545,10 @@ elf64_x86_64_create_dynamic_sections (dy htab = elf64_x86_64_hash_table (info); if (!htab->sgot && !create_got_section (dynobj, info)) - return false; + return FALSE; if (!_bfd_elf_create_dynamic_sections (dynobj, info)) - return false; + return FALSE; htab->splt = bfd_get_section_by_name (dynobj, ".plt"); htab->srelplt = bfd_get_section_by_name (dynobj, ".rela.plt"); @@ -560,7 +560,7 @@ elf64_x86_64_create_dynamic_sections (dy || (!info->shared && !htab->srelbss)) abort (); - return true; + return TRUE; } /* Copy the extra info we tack onto an elf_link_hash_entry. */ @@ -619,18 +619,18 @@ elf64_x86_64_copy_indirect_symbol (bed, _bfd_elf_link_hash_copy_indirect (bed, dir, ind); } -static boolean +static bfd_boolean elf64_x86_64_mkobject (abfd) bfd *abfd; { bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata); abfd->tdata.any = bfd_zalloc (abfd, amt); if (abfd->tdata.any == NULL) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean elf64_x86_64_elf_object_p (abfd) bfd *abfd; { @@ -639,12 +639,12 @@ elf64_x86_64_elf_object_p (abfd) bfd_size_type amt = sizeof (struct elf64_x86_64_obj_tdata); new_tdata = bfd_zalloc (abfd, amt); if (new_tdata == NULL) - return false; + return FALSE; new_tdata->root = *abfd->tdata.elf_obj_data; abfd->tdata.any = new_tdata; /* Set the right machine number for an x86-64 elf64 file. */ bfd_default_set_arch_mach (abfd, bfd_arch_i386, bfd_mach_x86_64); - return true; + return TRUE; } static int @@ -674,7 +674,7 @@ elf64_x86_64_tls_transition (info, r_typ calculate needed space in the global offset table, procedure linkage table, and dynamic reloc sections. */ -static boolean +static bfd_boolean elf64_x86_64_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -689,7 +689,7 @@ elf64_x86_64_check_relocs (abfd, info, s asection *sreloc; if (info->relocateable) - return true; + return TRUE; htab = elf64_x86_64_hash_table (info); symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -712,7 +712,7 @@ elf64_x86_64_check_relocs (abfd, info, s (*_bfd_error_handler) (_("%s: bad symbol index: %d"), bfd_archive_filename (abfd), r_symndx); - return false; + return FALSE; } if (r_symndx < symtab_hdr->sh_info) @@ -735,7 +735,7 @@ elf64_x86_64_check_relocs (abfd, info, s bfd_archive_filename (abfd), x86_64_elf_howto_table[r_type].name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } break; @@ -778,7 +778,7 @@ elf64_x86_64_check_relocs (abfd, info, s local_got_refcounts = ((bfd_signed_vma *) bfd_zalloc (abfd, size)); if (local_got_refcounts == NULL) - return false; + return FALSE; elf_local_got_refcounts (abfd) = local_got_refcounts; elf64_x86_64_local_got_tls_type (abfd) = (char *) (local_got_refcounts + symtab_hdr->sh_info); @@ -801,7 +801,7 @@ elf64_x86_64_check_relocs (abfd, info, s (_("%s: %s' accessed both as normal and thread local symbol"), bfd_archive_filename (abfd), h ? h->root.root.string : ""); - return false; + return FALSE; } } @@ -822,7 +822,7 @@ elf64_x86_64_check_relocs (abfd, info, s if (htab->elf.dynobj == NULL) htab->elf.dynobj = abfd; if (!create_got_section (htab->elf.dynobj, info)) - return false; + return FALSE; } break; @@ -860,7 +860,7 @@ elf64_x86_64_check_relocs (abfd, info, s bfd_archive_filename (abfd), x86_64_elf_howto_table[r_type].name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Fall through. */ @@ -937,7 +937,7 @@ elf64_x86_64_check_relocs (abfd, info, s elf_elfheader (abfd)->e_shstrndx, elf_section_data (sec)->rel_hdr.sh_name)); if (name == NULL) - return false; + return FALSE; if (strncmp (name, ".rela", 5) != 0 || strcmp (bfd_get_section_name (abfd, sec), @@ -966,7 +966,7 @@ elf64_x86_64_check_relocs (abfd, info, s if (sreloc == NULL || ! bfd_set_section_flags (dynobj, sreloc, flags) || ! bfd_set_section_alignment (dynobj, sreloc, 3)) - return false; + return FALSE; } elf_section_data (sec)->sreloc = sreloc; } @@ -987,7 +987,7 @@ elf64_x86_64_check_relocs (abfd, info, s s = bfd_section_from_r_symndx (abfd, &htab->sym_sec, sec, r_symndx); if (s == NULL) - return false; + return FALSE; head = ((struct elf64_x86_64_dyn_relocs **) &elf_section_data (s)->local_dynrel); @@ -1000,7 +1000,7 @@ elf64_x86_64_check_relocs (abfd, info, s p = ((struct elf64_x86_64_dyn_relocs *) bfd_alloc (htab->elf.dynobj, amt)); if (p == NULL) - return false; + return FALSE; p->next = *head; *head = p; p->sec = sec; @@ -1020,14 +1020,14 @@ elf64_x86_64_check_relocs (abfd, info, s Reconstruct it for later use during GC. */ case R_X86_64_GNU_VTINHERIT: if (!_bfd_elf64_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_X86_64_GNU_VTENTRY: if (!_bfd_elf64_gc_record_vtentry (abfd, sec, h, rel->r_addend)) - return false; + return FALSE; break; default: @@ -1035,7 +1035,7 @@ elf64_x86_64_check_relocs (abfd, info, s } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -1080,7 +1080,7 @@ elf64_x86_64_gc_mark_hook (sec, info, re /* Update the got entry reference counts for the section being removed. */ -static boolean +static bfd_boolean elf64_x86_64_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -1183,7 +1183,7 @@ elf64_x86_64_gc_sweep_hook (abfd, info, break; } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -1192,7 +1192,7 @@ elf64_x86_64_gc_sweep_hook (abfd, info, change the definition to something the rest of the link can understand. */ -static boolean +static bfd_boolean elf64_x86_64_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -1225,7 +1225,7 @@ elf64_x86_64_adjust_dynamic_symbol (info h->elf_link_hash_flags &= ~ELF_LINK_HASH_NEEDS_PLT; } - return true; + return TRUE; } else /* It's possible that we incorrectly decided a .plt reloc was @@ -1244,7 +1244,7 @@ elf64_x86_64_adjust_dynamic_symbol (info || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which @@ -1255,18 +1255,18 @@ elf64_x86_64_adjust_dynamic_symbol (info For such cases we need not do anything here; the relocations will be handled correctly by relocate_section. */ if (info->shared) - return true; + return TRUE; /* If there are no references to this symbol that do not use the GOT, we don't need to generate a copy reloc. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0) - return true; + return TRUE; /* If -z nocopyreloc was given, we won't generate them either. */ if (info->nocopyreloc) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } eh = (struct elf64_x86_64_link_hash_entry *) h; @@ -1282,7 +1282,7 @@ elf64_x86_64_adjust_dynamic_symbol (info if (p == NULL) { h->elf_link_hash_flags &= ~ELF_LINK_NON_GOT_REF; - return true; + return TRUE; } /* We must allocate the symbol in our .dynbss section, which will @@ -1321,7 +1321,7 @@ elf64_x86_64_adjust_dynamic_symbol (info if (power_of_two > bfd_get_section_alignment (htab->elf.dynobj, s)) { if (! bfd_set_section_alignment (htab->elf.dynobj, s, power_of_two)) - return false; + return FALSE; } /* Define the symbol as being at this point in the section. */ @@ -1331,7 +1331,7 @@ elf64_x86_64_adjust_dynamic_symbol (info /* Increment the section size to make room for the symbol. */ s->_raw_size += h->size; - return true; + return TRUE; } /* This is the condition under which elf64_x86_64_finish_dynamic_symbol @@ -1348,7 +1348,7 @@ elf64_x86_64_adjust_dynamic_symbol (info /* Allocate space in .plt, .got and associated reloc sections for dynamic relocs. */ -static boolean +static bfd_boolean allocate_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1359,7 +1359,7 @@ allocate_dynrelocs (h, inf) struct elf64_x86_64_dyn_relocs *p; if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; @@ -1376,7 +1376,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) @@ -1434,7 +1434,7 @@ allocate_dynrelocs (h, inf) else if (h->got.refcount > 0) { asection *s; - boolean dyn; + bfd_boolean dyn; int tls_type = elf64_x86_64_hash_entry (h)->tls_type; /* Make sure this symbol is output as a dynamic symbol. @@ -1443,7 +1443,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = htab->sgot; @@ -1469,7 +1469,7 @@ allocate_dynrelocs (h, inf) eh = (struct elf64_x86_64_link_hash_entry *) h; if (eh->dyn_relocs == NULL) - return true; + return TRUE; /* In the shared -Bsymbolic case, discard space allocated for dynamic pc-relative relocs against symbols which turn out to be @@ -1515,7 +1515,7 @@ allocate_dynrelocs (h, inf) && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) { if (! bfd_elf64_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If that succeeded, we know we'll be keeping all the @@ -1536,12 +1536,12 @@ allocate_dynrelocs (h, inf) sreloc->_raw_size += p->count * sizeof (Elf64_External_Rela); } - return true; + return TRUE; } /* Find any dynamic relocs that apply to read-only sections. */ -static boolean +static bfd_boolean readonly_dynrelocs (h, inf) struct elf_link_hash_entry *h; PTR inf; @@ -1564,15 +1564,15 @@ readonly_dynrelocs (h, inf) info->flags |= DF_TEXTREL; /* Not an error, just cut short the traversal. */ - return false; + return FALSE; } } - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -static boolean +static bfd_boolean elf64_x86_64_size_dynamic_sections (output_bfd, info) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; @@ -1580,7 +1580,7 @@ elf64_x86_64_size_dynamic_sections (outp struct elf64_x86_64_link_hash_table *htab; bfd *dynobj; asection *s; - boolean relocs; + bfd_boolean relocs; bfd *ibfd; htab = elf64_x86_64_hash_table (info); @@ -1688,7 +1688,7 @@ elf64_x86_64_size_dynamic_sections (outp /* We now have determined the sizes of the various dynamic sections. Allocate memory for them. */ - relocs = false; + relocs = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { if ((s->flags & SEC_LINKER_CREATED) == 0) @@ -1704,7 +1704,7 @@ elf64_x86_64_size_dynamic_sections (outp else if (strncmp (bfd_get_section_name (dynobj, s), ".rela", 5) == 0) { if (s->_raw_size != 0 && s != htab->srelplt) - relocs = true; + relocs = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -1739,7 +1739,7 @@ elf64_x86_64_size_dynamic_sections (outp of garbage. */ s->contents = (bfd_byte *) bfd_zalloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } if (htab->elf.dynamic_sections_created) @@ -1755,7 +1755,7 @@ elf64_x86_64_size_dynamic_sections (outp if (! info->shared) { if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (htab->splt->_raw_size != 0) @@ -1764,7 +1764,7 @@ elf64_x86_64_size_dynamic_sections (outp || !add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (relocs) @@ -1772,7 +1772,7 @@ elf64_x86_64_size_dynamic_sections (outp if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (Elf64_External_Rela))) - return false; + return FALSE; /* If any dynamic relocs apply to a read-only section, then we need a DT_TEXTREL entry. */ @@ -1783,13 +1783,13 @@ elf64_x86_64_size_dynamic_sections (outp if ((info->flags & DF_TEXTREL) != 0) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; } } } #undef add_dynamic_entry - return true; + return TRUE; } /* Return the base VMA address which should be subtracted from real addresses @@ -1826,7 +1826,7 @@ tpoff (info, address) /* Relocate an x86_64 ELF section. */ -static boolean +static bfd_boolean elf64_x86_64_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -1846,7 +1846,7 @@ elf64_x86_64_relocate_section (output_bf Elf_Internal_Rela *relend; if (info->relocateable) - return true; + return TRUE; htab = elf64_x86_64_hash_table (info); symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -1865,7 +1865,7 @@ elf64_x86_64_relocate_section (output_bf asection *sec; bfd_vma off; bfd_vma relocation; - boolean unresolved_reloc; + bfd_boolean unresolved_reloc; bfd_reloc_status_type r; int tls_type; @@ -1877,7 +1877,7 @@ elf64_x86_64_relocate_section (output_bf if (r_type >= R_X86_64_max) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } howto = x86_64_elf_howto_table + r_type; @@ -1885,7 +1885,7 @@ elf64_x86_64_relocate_section (output_bf h = NULL; sym = NULL; sec = NULL; - unresolved_reloc = false; + unresolved_reloc = FALSE; if (r_symndx < symtab_hdr->sh_info) { sym = local_syms + r_symndx; @@ -1910,7 +1910,7 @@ elf64_x86_64_relocate_section (output_bf relocation value for this symbol. output_section is typically NULL for symbols satisfied by a shared library. */ - unresolved_reloc = true; + unresolved_reloc = TRUE; relocation = 0; } else @@ -1932,7 +1932,7 @@ elf64_x86_64_relocate_section (output_bf input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; + return FALSE; relocation = 0; } } @@ -1950,7 +1950,7 @@ elf64_x86_64_relocate_section (output_bf if (h != NULL) { - boolean dyn; + bfd_boolean dyn; off = h->got.offset; dyn = htab->elf.dynamic_sections_created; @@ -1983,7 +1983,7 @@ elf64_x86_64_relocate_section (output_bf } } else - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -2004,14 +2004,14 @@ elf64_x86_64_relocate_section (output_bf if (info->shared) { - asection *srelgot; + asection *s; Elf_Internal_Rela outrel; - Elf64_External_Rela *loc; + bfd_byte *loc; /* We need to generate a R_X86_64_RELATIVE reloc for the dynamic linker. */ - srelgot = htab->srelgot; - if (srelgot == NULL) + s = htab->srelgot; + if (s == NULL) abort (); outrel.r_offset = (htab->sgot->output_section->vma @@ -2019,8 +2019,8 @@ elf64_x86_64_relocate_section (output_bf + off); outrel.r_info = ELF64_R_INFO (0, R_X86_64_RELATIVE); outrel.r_addend = relocation; - loc = (Elf64_External_Rela *) srelgot->contents; - loc += srelgot->reloc_count++; + loc = s->contents; + loc += s->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); } @@ -2058,7 +2058,7 @@ elf64_x86_64_relocate_section (output_bf relocation = (htab->splt->output_section->vma + htab->splt->output_offset + h->plt.offset); - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_X86_64_PC8: @@ -2099,24 +2099,24 @@ elf64_x86_64_relocate_section (output_bf || h->root.type == bfd_link_hash_undefined))) { Elf_Internal_Rela outrel; - boolean skip, relocate; + bfd_byte *loc; + bfd_boolean skip, relocate; asection *sreloc; - Elf64_External_Rela *loc; /* When generating a shared object, these relocations are copied into the output file to be resolved at run time. */ - skip = false; - relocate = false; + skip = FALSE; + relocate = FALSE; outrel.r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel->r_offset); if (outrel.r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; else if (outrel.r_offset == (bfd_vma) -2) - skip = true, relocate = true; + skip = TRUE, relocate = TRUE; outrel.r_offset += (input_section->output_section->vma + input_section->output_offset); @@ -2144,7 +2144,7 @@ elf64_x86_64_relocate_section (output_bf /* This symbol is local, or marked to become local. */ if (r_type == R_X86_64_64) { - relocate = true; + relocate = TRUE; outrel.r_info = ELF64_R_INFO (0, R_X86_64_RELATIVE); outrel.r_addend = relocation + rel->r_addend; } @@ -2166,7 +2166,7 @@ elf64_x86_64_relocate_section (output_bf else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -2186,8 +2186,8 @@ elf64_x86_64_relocate_section (output_bf if (sreloc == NULL) abort (); - loc = (Elf64_External_Rela *) sreloc->contents; - loc += sreloc->reloc_count++; + loc = sreloc->contents; + loc += sreloc->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); /* If this reloc is against an external symbol, we do @@ -2333,7 +2333,7 @@ elf64_x86_64_relocate_section (output_bf else { Elf_Internal_Rela outrel; - Elf64_External_Rela *loc; + bfd_byte *loc; int dr_type, indx; if (htab->srelgot == NULL) @@ -2354,8 +2354,8 @@ elf64_x86_64_relocate_section (output_bf outrel.r_addend = relocation - dtpoff_base (info); outrel.r_info = ELF64_R_INFO (indx, dr_type); - loc = (Elf64_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); if (r_type == R_X86_64_TLSGD) @@ -2375,9 +2375,8 @@ elf64_x86_64_relocate_section (output_bf R_X86_64_DTPOFF64); outrel.r_offset += GOT_ENTRY_SIZE; htab->srelgot->reloc_count++; - loc++; - bfd_elf64_swap_reloca_out (output_bfd, &outrel, - loc); + loc += sizeof (Elf64_External_Rela); + bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); } } @@ -2393,7 +2392,7 @@ elf64_x86_64_relocate_section (output_bf { relocation = htab->sgot->output_section->vma + htab->sgot->output_offset + off; - unresolved_reloc = false; + unresolved_reloc = FALSE; } else { @@ -2473,7 +2472,7 @@ elf64_x86_64_relocate_section (output_bf else { Elf_Internal_Rela outrel; - Elf64_External_Rela *loc; + bfd_byte *loc; if (htab->srelgot == NULL) abort (); @@ -2487,14 +2486,14 @@ elf64_x86_64_relocate_section (output_bf htab->sgot->contents + off + GOT_ENTRY_SIZE); outrel.r_info = ELF64_R_INFO (0, R_X86_64_DTPMOD64); outrel.r_addend = 0; - loc = (Elf64_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &outrel, loc); htab->tls_ld_got.offset |= 1; } relocation = htab->sgot->output_section->vma + htab->sgot->output_offset + off; - unresolved_reloc = false; + unresolved_reloc = FALSE; break; case R_X86_64_DTPOFF32: @@ -2542,7 +2541,7 @@ elf64_x86_64_relocate_section (output_bf symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, sec); } @@ -2553,7 +2552,7 @@ elf64_x86_64_relocate_section (output_bf if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } else { @@ -2562,18 +2561,18 @@ elf64_x86_64_relocate_section (output_bf bfd_archive_filename (input_bfd), bfd_get_section_name (input_bfd, input_section), (long) rel->r_offset, name, (int) r); - return false; + return FALSE; } } } - return true; + return TRUE; } /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -static boolean +static bfd_boolean elf64_x86_64_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -2589,7 +2588,7 @@ elf64_x86_64_finish_dynamic_symbol (outp bfd_vma plt_index; bfd_vma got_offset; Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the procedure linkage table. Set it up. */ @@ -2649,7 +2648,7 @@ elf64_x86_64_finish_dynamic_symbol (outp + got_offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_X86_64_JUMP_SLOT); rela.r_addend = 0; - loc = (Elf64_External_Rela *) htab->srelplt->contents + plt_index; + loc = htab->srelplt->contents + plt_index * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) @@ -2668,7 +2667,7 @@ elf64_x86_64_finish_dynamic_symbol (outp && elf64_x86_64_hash_entry (h)->tls_type != GOT_TLS_IE) { Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol has an entry in the global offset table. Set it up. */ @@ -2706,15 +2705,15 @@ elf64_x86_64_finish_dynamic_symbol (outp rela.r_addend = 0; } - loc = (Elf64_External_Rela *) htab->srelgot->contents; - loc += htab->srelgot->reloc_count++; + loc = htab->srelgot->contents; + loc += htab->srelgot->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } if ((h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_COPY) != 0) { Elf_Internal_Rela rela; - Elf64_External_Rela *loc; + bfd_byte *loc; /* This symbol needs a copy reloc. Set it up. */ @@ -2729,8 +2728,8 @@ elf64_x86_64_finish_dynamic_symbol (outp + h->root.u.def.section->output_offset); rela.r_info = ELF64_R_INFO (h->dynindx, R_X86_64_COPY); rela.r_addend = 0; - loc = (Elf64_External_Rela *) htab->srelbss->contents; - loc += htab->srelbss->reloc_count++; + loc = htab->srelbss->contents; + loc += htab->srelbss->reloc_count++ * sizeof (Elf64_External_Rela); bfd_elf64_swap_reloca_out (output_bfd, &rela, loc); } @@ -2739,7 +2738,7 @@ elf64_x86_64_finish_dynamic_symbol (outp || strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } /* Used to decide how to sort relocs in an optimal manner for the @@ -2764,7 +2763,7 @@ elf64_x86_64_reloc_type_class (rela) /* Finish up the dynamic sections. */ -static boolean +static bfd_boolean elf64_x86_64_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2890,7 +2889,7 @@ elf64_x86_64_finish_dynamic_sections (ou GOT_ENTRY_SIZE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/elfarm-nabi.c binutils-2.13.90.0.18/bfd/elfarm-nabi.c --- binutils-2.13.90.0.16/bfd/elfarm-nabi.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elfarm-nabi.c Mon Dec 16 12:22:52 2002 @@ -42,9 +42,9 @@ static reloc_howto_type * elf32_arm_reloc_type_lookup PARAMS ((bfd * abfd, bfd_reloc_code_real_type code)); -static boolean elf32_arm_nabi_grok_prstatus +static bfd_boolean elf32_arm_nabi_grok_prstatus PARAMS ((bfd *abfd, Elf_Internal_Note *note)); -static boolean elf32_arm_nabi_grok_psinfo +static bfd_boolean elf32_arm_nabi_grok_psinfo PARAMS ((bfd *abfd, Elf_Internal_Note *note)); /* Note: code such as elf32_arm_reloc_type_lookup expect to use e.g. @@ -58,247 +58,247 @@ static reloc_howto_type elf32_arm_howto_ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_PC24, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_PC24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ffffff, /* src_mask */ 0x00ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32 bit absolute */ HOWTO (R_ARM_ABS32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* standard 32bit pc-relative reloc */ HOWTO (R_ARM_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit absolute */ HOWTO (R_ARM_PC13, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_PC13", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit absolute */ HOWTO (R_ARM_ABS16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 12 bit absolute */ HOWTO (R_ARM_ABS12, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS12", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000008ff, /* src_mask */ 0x000008ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_THM_ABS5, /* type */ 6, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_ABS5", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000007e0, /* src_mask */ 0x000007e0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 8 bit absolute */ HOWTO (R_ARM_ABS8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_SBREL32, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_SBREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_THM_PC22, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 23, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_PC22", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x07ff07ff, /* src_mask */ 0x07ff07ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_ARM_THM_PC8, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_PC8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_ARM_AMP_VCALL9, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_AMP_VCALL9", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_ARM_SWI24, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_SWI24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x00000000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_THM_SWI8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_SWI8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x00000000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* BLX instruction for the ARM. */ HOWTO (R_ARM_XPC25, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 25, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_XPC25", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ffffff, /* src_mask */ 0x00ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* BLX instruction for the Thumb. */ HOWTO (R_ARM_THM_XPC22, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 22, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_XPC22", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x07ff07ff, /* src_mask */ 0x07ff07ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* These next three relocs are not defined, but we need to fill the space. */ @@ -306,43 +306,43 @@ static reloc_howto_type elf32_arm_howto_ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_unknown_17", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_NONE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_unknown_18", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_NONE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_unknown_19", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Relocs used in ARM Linux */ @@ -350,113 +350,113 @@ static reloc_howto_type elf32_arm_howto_ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_COPY", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_GLOB_DAT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_GLOB_DAT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_JUMP_SLOT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_JUMP_SLOT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_RELATIVE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RELATIVE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_GOTOFF, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_GOTOFF", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_GOTPC, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_GOTPC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_ARM_GOT32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_GOT32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_PLT32, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_PLT32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00ffffff, /* src_mask */ 0x00ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* End of relocs used in ARM Linux */ @@ -464,57 +464,57 @@ static reloc_howto_type elf32_arm_howto_ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_RABS32, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RABS32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_RPC24, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RPC24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_RBASE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RBASE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -524,15 +524,15 @@ static reloc_howto_type elf32_arm_vtinhe 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_ARM_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ static reloc_howto_type elf32_arm_vtentry_howto = @@ -540,15 +540,15 @@ static reloc_howto_type elf32_arm_vtentr 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_ARM_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* 12 bit pc relative */ static reloc_howto_type elf32_arm_thm_pc11_howto = @@ -556,15 +556,15 @@ static reloc_howto_type elf32_arm_thm_pc 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_PC11", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000007ff, /* src_mask */ 0x000007ff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* 12 bit pc relative */ static reloc_howto_type elf32_arm_thm_pc9_howto = @@ -572,24 +572,24 @@ static reloc_howto_type elf32_arm_thm_pc 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_PC9", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ static void elf32_arm_info_to_howto - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void elf32_arm_info_to_howto (abfd, bfd_reloc, elf_reloc) bfd * abfd ATTRIBUTE_UNUSED; arelent * bfd_reloc; - Elf32_Internal_Rel * elf_reloc; + Elf_Internal_Rela * elf_reloc; { unsigned int r_type; @@ -682,7 +682,7 @@ elf32_arm_reloc_type_lookup (abfd, code) } /* Support for core dump NOTE sections */ -static boolean +static bfd_boolean elf32_arm_nabi_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -693,7 +693,7 @@ elf32_arm_nabi_grok_prstatus (abfd, note switch (note->descsz) { default: - return false; + return FALSE; case 148: /* Linux/ARM 32-bit*/ /* pr_cursig */ @@ -714,7 +714,7 @@ elf32_arm_nabi_grok_prstatus (abfd, note raw_size, note->descpos + offset); } -static boolean +static bfd_boolean elf32_arm_nabi_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -722,7 +722,7 @@ elf32_arm_nabi_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 124: /* Linux/ARM elf_prpsinfo */ elf_tdata (abfd)->core_program @@ -743,7 +743,7 @@ elf32_arm_nabi_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } #define elf_backend_grok_prstatus elf32_arm_nabi_grok_prstatus diff -uprN binutils-2.13.90.0.16/bfd/elfarm-oabi.c binutils-2.13.90.0.18/bfd/elfarm-oabi.c --- binutils-2.13.90.0.16/bfd/elfarm-oabi.c Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/elfarm-oabi.c Mon Dec 16 12:22:52 2002 @@ -49,7 +49,7 @@ #define ARM_ELF_OS_ABI_VERSION 0 static reloc_howto_type * find_howto PARAMS ((unsigned int)); -static void elf32_arm_info_to_howto PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); +static void elf32_arm_info_to_howto PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static reloc_howto_type * elf32_arm_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static reloc_howto_type elf32_arm_howto_table[] = @@ -59,220 +59,220 @@ static reloc_howto_type elf32_arm_howto_ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_PC24, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 24, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_PC24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00ffffff, /* src_mask */ 0x00ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 32 bit absolute. */ HOWTO (R_ARM_ABS32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Standard 32bit pc-relative reloc. */ HOWTO (R_ARM_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 8 bit absolute. */ HOWTO (R_ARM_ABS8, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS8", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit absolute. */ HOWTO (R_ARM_ABS16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 12 bit absolute. */ HOWTO (R_ARM_ABS12, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 12, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_ABS12", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000008ff, /* src_mask */ 0x000008ff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_THM_ABS5, /* type */ 6, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_ABS5", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000007e0, /* src_mask */ 0x000007e0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_THM_PC22, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 23, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_PC22", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x07ff07ff, /* src_mask */ 0x07ff07ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ HOWTO (R_ARM_SBREL32, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_SBREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_AMP_VCALL9, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_AMP_VCALL9", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 12 bit pc relative. */ HOWTO (R_ARM_THM_PC11, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 11, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_PC11", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000007ff, /* src_mask */ 0x000007ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 12 bit pc relative. */ HOWTO (R_ARM_THM_PC9, /* type */ 1, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_THM_PC9", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x000000ff, /* src_mask */ 0x000000ff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy. */ HOWTO (R_ARM_GNU_VTINHERIT, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_ARM_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GNU extension to record C++ vtable member usage. */ HOWTO (R_ARM_GNU_VTENTRY, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_ARM_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* XXX - gap in index numbering here. */ @@ -280,15 +280,15 @@ static reloc_howto_type elf32_arm_howto_ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield,/* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_PLT32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x00ffffff, /* src_mask */ 0x00ffffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* XXX - gap in index numbering here. */ @@ -296,57 +296,57 @@ static reloc_howto_type elf32_arm_howto_ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_RABS32, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RABS32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_RPC24, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RPC24", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_ARM_RBASE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ bfd_elf_generic_reloc, /* special_function */ "R_ARM_RBASE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; /* Locate a reloc in the howto table. This function must be used @@ -369,7 +369,7 @@ static void elf32_arm_info_to_howto (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - Elf32_Internal_Rela *elf_reloc; + Elf_Internal_Rela *elf_reloc; { unsigned int r_type; diff -uprN binutils-2.13.90.0.16/bfd/elfcode.h binutils-2.13.90.0.18/bfd/elfcode.h --- binutils-2.13.90.0.16/bfd/elfcode.h Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/elfcode.h Mon Dec 16 12:22:52 2002 @@ -170,11 +170,11 @@ static void elf_swap_shdr_out #define section_from_elf_index bfd_section_from_elf_index -static boolean elf_slurp_reloc_table_from_section +static bfd_boolean elf_slurp_reloc_table_from_section PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, bfd_size_type, - arelent *, asymbol **, boolean)); + arelent *, asymbol **, bfd_boolean)); -static boolean elf_file_p PARAMS ((Elf_External_Ehdr *)); +static bfd_boolean elf_file_p PARAMS ((Elf_External_Ehdr *)); #ifdef DEBUG static void elf_debug_section PARAMS ((int, Elf_Internal_Shdr *)); @@ -421,44 +421,49 @@ elf_swap_phdr_out (abfd, src, dst) } /* Translate an ELF reloc from external format to internal format. */ -INLINE void -elf_swap_reloc_in (abfd, src, dst) +void +elf_swap_reloc_in (abfd, s, dst) bfd *abfd; - const Elf_External_Rel *src; - Elf_Internal_Rel *dst; + const bfd_byte *s; + Elf_Internal_Rela *dst; { + const Elf_External_Rel *src = (const Elf_External_Rel *) s; dst->r_offset = H_GET_WORD (abfd, src->r_offset); dst->r_info = H_GET_WORD (abfd, src->r_info); + dst->r_addend = 0; } -INLINE void -elf_swap_reloca_in (abfd, src, dst) +void +elf_swap_reloca_in (abfd, s, dst) bfd *abfd; - const Elf_External_Rela *src; + const bfd_byte *s; Elf_Internal_Rela *dst; { + const Elf_External_Rela *src = (const Elf_External_Rela *) s; dst->r_offset = H_GET_WORD (abfd, src->r_offset); dst->r_info = H_GET_WORD (abfd, src->r_info); dst->r_addend = H_GET_SIGNED_WORD (abfd, src->r_addend); } /* Translate an ELF reloc from internal format to external format. */ -INLINE void -elf_swap_reloc_out (abfd, src, dst) +void +elf_swap_reloc_out (abfd, src, d) bfd *abfd; - const Elf_Internal_Rel *src; - Elf_External_Rel *dst; + const Elf_Internal_Rela *src; + bfd_byte *d; { + Elf_External_Rel *dst = (Elf_External_Rel *) d; H_PUT_WORD (abfd, src->r_offset, dst->r_offset); H_PUT_WORD (abfd, src->r_info, dst->r_info); } -INLINE void -elf_swap_reloca_out (abfd, src, dst) +void +elf_swap_reloca_out (abfd, src, d) bfd *abfd; const Elf_Internal_Rela *src; - Elf_External_Rela *dst; + bfd_byte *d; { + Elf_External_Rela *dst = (Elf_External_Rela *) d; H_PUT_WORD (abfd, src->r_offset, dst->r_offset); H_PUT_WORD (abfd, src->r_info, dst->r_info); H_PUT_SIGNED_WORD (abfd, src->r_addend, dst->r_addend); @@ -495,7 +500,7 @@ elf_swap_dyn_out (abfd, src, p) First we validate the file by reading in the ELF header and checking the magic number. */ -static INLINE boolean +static INLINE bfd_boolean elf_file_p (x_ehdrp) Elf_External_Ehdr *x_ehdrp; { @@ -856,14 +861,15 @@ elf_write_relocs (abfd, sec, data) asection *sec; PTR data; { - boolean *failedp = (boolean *) data; + bfd_boolean *failedp = (bfd_boolean *) data; Elf_Internal_Shdr *rela_hdr; - Elf_External_Rela *outbound_relocas; - Elf_External_Rel *outbound_relocs; + bfd_vma addr_offset; + void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); + size_t extsize; + bfd_byte *dst_rela; unsigned int idx; - int use_rela_p; - asymbol *last_sym = 0; - int last_sym_idx = 0; + asymbol *last_sym; + int last_sym_idx; /* If we have already failed, don't do anything. */ if (*failedp) @@ -885,128 +891,75 @@ elf_write_relocs (abfd, sec, data) rela_hdr->contents = (PTR) bfd_alloc (abfd, rela_hdr->sh_size); if (rela_hdr->contents == NULL) { - *failedp = true; + *failedp = TRUE; return; } /* Figure out whether the relocations are RELA or REL relocations. */ if (rela_hdr->sh_type == SHT_RELA) - use_rela_p = true; + { + swap_out = elf_swap_reloca_out; + extsize = sizeof (Elf_External_Rela); + } else if (rela_hdr->sh_type == SHT_REL) - use_rela_p = false; + { + swap_out = elf_swap_reloc_out; + extsize = sizeof (Elf_External_Rel); + } else /* Every relocation section should be either an SHT_RELA or an SHT_REL section. */ abort (); - /* orelocation has the data, reloc_count has the count... */ - if (use_rela_p) - { - outbound_relocas = (Elf_External_Rela *) rela_hdr->contents; + /* The address of an ELF reloc is section relative for an object + file, and absolute for an executable file or shared library. + The address of a BFD reloc is always section relative. */ + addr_offset = 0; + if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0) + addr_offset = sec->vma; - for (idx = 0; idx < sec->reloc_count; idx++) + /* orelocation has the data, reloc_count has the count... */ + last_sym = 0; + last_sym_idx = 0; + dst_rela = rela_hdr->contents; + + for (idx = 0; idx < sec->reloc_count; idx++, dst_rela += extsize) + { + Elf_Internal_Rela src_rela; + arelent *ptr; + asymbol *sym; + int n; + + ptr = sec->orelocation[idx]; + sym = *ptr->sym_ptr_ptr; + if (sym == last_sym) + n = last_sym_idx; + else if (bfd_is_abs_section (sym->section) && sym->value == 0) + n = STN_UNDEF; + else { - Elf_Internal_Rela dst_rela; - Elf_External_Rela *src_rela; - arelent *ptr; - asymbol *sym; - int n; - - ptr = sec->orelocation[idx]; - src_rela = outbound_relocas + idx; - - /* The address of an ELF reloc is section relative for an object - file, and absolute for an executable file or shared library. - The address of a BFD reloc is always section relative. */ - if ((abfd->flags & (EXEC_P | DYNAMIC)) == 0) - dst_rela.r_offset = ptr->address; - else - dst_rela.r_offset = ptr->address + sec->vma; - - sym = *ptr->sym_ptr_ptr; - if (sym == last_sym) - n = last_sym_idx; - else if (bfd_is_abs_section (sym->section) && sym->value == 0) - n = STN_UNDEF; - else - { - last_sym = sym; - n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym); - if (n < 0) - { - *failedp = true; - return; - } - last_sym_idx = n; - } - - if ((*ptr->sym_ptr_ptr)->the_bfd != NULL - && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec - && ! _bfd_elf_validate_reloc (abfd, ptr)) + last_sym = sym; + n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym); + if (n < 0) { - *failedp = true; + *failedp = TRUE; return; } - - dst_rela.r_info = ELF_R_INFO (n, ptr->howto->type); - - dst_rela.r_addend = ptr->addend; - elf_swap_reloca_out (abfd, &dst_rela, src_rela); + last_sym_idx = n; } - } - else - /* REL relocations */ - { - outbound_relocs = (Elf_External_Rel *) rela_hdr->contents; - for (idx = 0; idx < sec->reloc_count; idx++) + if ((*ptr->sym_ptr_ptr)->the_bfd != NULL + && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec + && ! _bfd_elf_validate_reloc (abfd, ptr)) { - Elf_Internal_Rel dst_rel; - Elf_External_Rel *src_rel; - arelent *ptr; - int n; - asymbol *sym; - - ptr = sec->orelocation[idx]; - sym = *ptr->sym_ptr_ptr; - src_rel = outbound_relocs + idx; - - /* The address of an ELF reloc is section relative for an object - file, and absolute for an executable file or shared library. - The address of a BFD reloc is always section relative. */ - if ((abfd->flags & (EXEC_P | DYNAMIC)) == 0) - dst_rel.r_offset = ptr->address; - else - dst_rel.r_offset = ptr->address + sec->vma; - - if (sym == last_sym) - n = last_sym_idx; - else if (bfd_is_abs_section (sym->section) && sym->value == 0) - n = STN_UNDEF; - else - { - last_sym = sym; - n = _bfd_elf_symbol_from_bfd_symbol (abfd, &sym); - if (n < 0) - { - *failedp = true; - return; - } - last_sym_idx = n; - } - - if ((*ptr->sym_ptr_ptr)->the_bfd != NULL - && (*ptr->sym_ptr_ptr)->the_bfd->xvec != abfd->xvec - && ! _bfd_elf_validate_reloc (abfd, ptr)) - { - *failedp = true; - return; - } - - dst_rel.r_info = ELF_R_INFO (n, ptr->howto->type); - - elf_swap_reloc_out (abfd, &dst_rel, src_rel); + *failedp = TRUE; + return; } + + src_rela.r_offset = ptr->address + addr_offset; + src_rela.r_info = ELF_R_INFO (n, ptr->howto->type); + src_rela.r_addend = ptr->addend; + (*swap_out) (abfd, &src_rela, dst_rela); } } @@ -1032,7 +985,7 @@ elf_write_out_phdrs (abfd, phdr, count) /* Write out the section headers and the ELF file header. */ -boolean +bfd_boolean elf_write_shdrs_and_ehdr (abfd) bfd *abfd; { @@ -1055,7 +1008,7 @@ elf_write_shdrs_and_ehdr (abfd) amt = sizeof (x_ehdr); if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 || bfd_bwrite ((PTR) & x_ehdr, amt, abfd) != amt) - return false; + return FALSE; /* Some fields in the first section header handle overflow of ehdr fields. */ @@ -1069,7 +1022,7 @@ elf_write_shdrs_and_ehdr (abfd) amt *= sizeof (*x_shdrp); x_shdrp = (Elf_External_Shdr *) bfd_alloc (abfd, amt); if (!x_shdrp) - return false; + return FALSE; for (count = 0; count < i_ehdrp->e_shnum; i_shdrp++, count++) { @@ -1077,24 +1030,24 @@ elf_write_shdrs_and_ehdr (abfd) elf_debug_section (count, *i_shdrp); #endif elf_swap_shdr_out (abfd, *i_shdrp, x_shdrp + count); - + if (count == SHN_LORESERVE - 1) i_shdrp += SHN_HIRESERVE + 1 - SHN_LORESERVE; } if (bfd_seek (abfd, (file_ptr) i_ehdrp->e_shoff, SEEK_SET) != 0 || bfd_bwrite ((PTR) x_shdrp, amt, abfd) != amt) - return false; + return FALSE; /* need to dump the string table too... */ - return true; + return TRUE; } long elf_slurp_symbol_table (abfd, symptrs, dynamic) bfd *abfd; asymbol **symptrs; /* Buffer for generated bfd symbols */ - boolean dynamic; + bfd_boolean dynamic; { Elf_Internal_Shdr *hdr; Elf_Internal_Shdr *verhdr; @@ -1328,7 +1281,7 @@ error_return: /* Read relocations for ASECT from REL_HDR. There are RELOC_COUNT of them. */ -static boolean +static bfd_boolean elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count, relents, symbols, dynamic) bfd *abfd; @@ -1337,7 +1290,7 @@ elf_slurp_reloc_table_from_section (abfd bfd_size_type reloc_count; arelent *relents; asymbol **symbols; - boolean dynamic; + bfd_boolean dynamic; { struct elf_backend_data * const ebd = get_elf_backend_data (abfd); PTR allocated = NULL; @@ -1372,17 +1325,11 @@ elf_slurp_reloc_table_from_section (abfd i++, relent++, native_relocs += entsize) { Elf_Internal_Rela rela; - Elf_Internal_Rel rel; if (entsize == sizeof (Elf_External_Rela)) - elf_swap_reloca_in (abfd, (Elf_External_Rela *) native_relocs, &rela); + elf_swap_reloca_in (abfd, native_relocs, &rela); else - { - elf_swap_reloc_in (abfd, (Elf_External_Rel *) native_relocs, &rel); - rela.r_offset = rel.r_offset; - rela.r_info = rel.r_info; - rela.r_addend = 0; - } + elf_swap_reloc_in (abfd, native_relocs, &rela); /* The address of an ELF reloc is section relative for an object file, and absolute for an executable file or shared library. @@ -1421,28 +1368,28 @@ elf_slurp_reloc_table_from_section (abfd if (entsize == sizeof (Elf_External_Rela)) (*ebd->elf_info_to_howto) (abfd, relent, &rela); else - (*ebd->elf_info_to_howto_rel) (abfd, relent, &rel); + (*ebd->elf_info_to_howto_rel) (abfd, relent, &rela); } if (allocated != NULL) free (allocated); - return true; + return TRUE; error_return: if (allocated != NULL) free (allocated); - return false; + return FALSE; } /* Read in and swap the external relocs. */ -boolean +bfd_boolean elf_slurp_reloc_table (abfd, asect, symbols, dynamic) bfd *abfd; asection *asect; asymbol **symbols; - boolean dynamic; + bfd_boolean dynamic; { struct bfd_elf_section_data * const d = elf_section_data (asect); Elf_Internal_Shdr *rel_hdr; @@ -1453,13 +1400,13 @@ elf_slurp_reloc_table (abfd, asect, symb bfd_size_type amt; if (asect->relocation != NULL) - return true; + return TRUE; if (! dynamic) { if ((asect->flags & SEC_RELOC) == 0 || asect->reloc_count == 0) - return true; + return TRUE; rel_hdr = &d->rel_hdr; reloc_count = NUM_SHDR_ENTRIES (rel_hdr); @@ -1478,7 +1425,7 @@ elf_slurp_reloc_table (abfd, asect, symb dynamic symbol table, and in that case bfd_section_from_shdr in elf.c does not update the RELOC_COUNT. */ if (asect->_raw_size == 0) - return true; + return TRUE; rel_hdr = &d->this_hdr; reloc_count = NUM_SHDR_ENTRIES (rel_hdr); @@ -1489,23 +1436,23 @@ elf_slurp_reloc_table (abfd, asect, symb amt = (reloc_count + reloc_count2) * sizeof (arelent); relents = (arelent *) bfd_alloc (abfd, amt); if (relents == NULL) - return false; + return FALSE; if (!elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr, reloc_count, relents, symbols, dynamic)) - return false; + return FALSE; if (rel_hdr2 && !elf_slurp_reloc_table_from_section (abfd, asect, rel_hdr2, reloc_count2, relents + reloc_count, symbols, dynamic)) - return false; + return FALSE; asect->relocation = relents; - return true; + return TRUE; } #ifdef DEBUG @@ -1649,8 +1596,8 @@ const struct elf_size_info NAME(_bfd_elf elf_slurp_symbol_table, elf_swap_dyn_in, elf_swap_dyn_out, - NULL, - NULL, - NULL, - NULL + elf_swap_reloc_in, + elf_swap_reloc_out, + elf_swap_reloca_in, + elf_swap_reloca_out }; diff -uprN binutils-2.13.90.0.16/bfd/elfcore.h binutils-2.13.90.0.18/bfd/elfcore.h --- binutils-2.13.90.0.16/bfd/elfcore.h Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/elfcore.h Mon Dec 16 12:22:52 2002 @@ -32,7 +32,7 @@ elf_core_file_failing_signal (abfd) return elf_tdata (abfd)->core_signal; } -boolean +bfd_boolean elf_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd; bfd *exec_bfd; @@ -44,7 +44,7 @@ elf_core_file_matches_executable_p (core if (core_bfd->xvec != exec_bfd->xvec) { bfd_set_error (bfd_error_system_call); - return false; + return FALSE; } /* See if the name in the corefile matches the executable name. */ @@ -56,10 +56,10 @@ elf_core_file_matches_executable_p (core execname = execname ? execname + 1 : exec_bfd->filename; if (strcmp(execname, corename) != 0) - return false; + return FALSE; } - return true; + return TRUE; } /* Core files are simply standard ELF formatted files that partition diff -uprN binutils-2.13.90.0.16/bfd/elflink.c binutils-2.13.90.0.18/bfd/elflink.c --- binutils-2.13.90.0.16/bfd/elflink.c Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/bfd/elflink.c Mon Dec 16 12:22:52 2002 @@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suit #define ARCH_SIZE 0 #include "elf-bfd.h" -boolean +bfd_boolean _bfd_elf_create_got_section (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -39,7 +39,7 @@ _bfd_elf_create_got_section (abfd, info) /* This function may be called more than once. */ if (bfd_get_section_by_name (abfd, ".got") != NULL) - return true; + return TRUE; switch (bed->s->arch_size) { @@ -53,7 +53,7 @@ _bfd_elf_create_got_section (abfd, info) default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY @@ -63,7 +63,7 @@ _bfd_elf_create_got_section (abfd, info) if (s == NULL || !bfd_set_section_flags (abfd, s, flags) || !bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; if (bed->want_got_plt) { @@ -71,7 +71,7 @@ _bfd_elf_create_got_section (abfd, info) if (s == NULL || !bfd_set_section_flags (abfd, s, flags) || !bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; } if (bed->want_got_sym) @@ -83,16 +83,16 @@ _bfd_elf_create_got_section (abfd, info) bh = NULL; if (!(_bfd_generic_link_add_one_symbol (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s, - bed->got_symbol_offset, (const char *) NULL, false, + bed->got_symbol_offset, (const char *) NULL, FALSE, bed->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; elf_hash_table (info)->hgot = h; } @@ -100,12 +100,12 @@ _bfd_elf_create_got_section (abfd, info) /* The first bit of the global offset table is the header. */ s->_raw_size += bed->got_header_size + bed->got_symbol_offset; - return true; + return TRUE; } /* Create dynamic sections when linking against a dynamic object. */ -boolean +bfd_boolean _bfd_elf_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -127,7 +127,7 @@ _bfd_elf_create_dynamic_sections (abfd, default: bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* We need to create .plt, .rel[a].plt, .got, .got.plt, .dynbss, and @@ -147,7 +147,7 @@ _bfd_elf_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, pltflags) || ! bfd_set_section_alignment (abfd, s, bed->plt_alignment)) - return false; + return FALSE; if (bed->want_plt_sym) { @@ -158,16 +158,16 @@ _bfd_elf_create_dynamic_sections (abfd, if (! (_bfd_generic_link_add_one_symbol (info, abfd, "_PROCEDURE_LINKAGE_TABLE_", BSF_GLOBAL, s, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } s = bfd_make_section (abfd, @@ -175,10 +175,10 @@ _bfd_elf_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; if (! _bfd_elf_create_got_section (abfd, info)) - return false; + return FALSE; if (bed->want_dynbss) { @@ -191,7 +191,7 @@ _bfd_elf_create_dynamic_sections (abfd, s = bfd_make_section (abfd, ".dynbss"); if (s == NULL || ! bfd_set_section_flags (abfd, s, SEC_ALLOC)) - return false; + return FALSE; /* The .rel[a].bss section holds copy relocs. This section is not normally needed. We need to create it here, though, so that the @@ -212,11 +212,11 @@ _bfd_elf_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, ptralign)) - return false; + return FALSE; } } - return true; + return TRUE; } /* Record a new dynamic symbol. We record the dynamic symbols as we @@ -227,7 +227,7 @@ _bfd_elf_create_dynamic_sections (abfd, symbol should be in the dynamic symbol table, but only if there is one. */ -boolean +bfd_boolean _bfd_elf_link_record_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -237,7 +237,7 @@ _bfd_elf_link_record_dynamic_symbol (inf struct elf_strtab_hash *dynstr; char *p, *alc; const char *name; - boolean copy; + bfd_boolean copy; bfd_size_type indx; /* XXX: The ABI draft says the linker must turn hidden and @@ -252,7 +252,7 @@ _bfd_elf_link_record_dynamic_symbol (inf && h->root.type != bfd_link_hash_undefweak) { h->elf_link_hash_flags |= ELF_LINK_FORCED_LOCAL; - return true; + return TRUE; } default: @@ -268,7 +268,7 @@ _bfd_elf_link_record_dynamic_symbol (inf /* Create a strtab to hold the dynamic symbol names. */ elf_hash_table (info)->dynstr = dynstr = _bfd_elf_strtab_init (); if (dynstr == NULL) - return false; + return FALSE; } /* We don't put any version information in the dynamic string @@ -278,7 +278,7 @@ _bfd_elf_link_record_dynamic_symbol (inf if (p == NULL) { alc = NULL; - copy = false; + copy = FALSE; } else { @@ -286,11 +286,11 @@ _bfd_elf_link_record_dynamic_symbol (inf alc = bfd_malloc ((bfd_size_type) len); if (alc == NULL) - return false; + return FALSE; memcpy (alc, name, len - 1); alc[len - 1] = '\0'; name = alc; - copy = true; + copy = TRUE; } indx = _bfd_elf_strtab_add (dynstr, name, copy); @@ -299,11 +299,11 @@ _bfd_elf_link_record_dynamic_symbol (inf free (alc); if (indx == (bfd_size_type) -1) - return false; + return FALSE; h->dynstr_index = indx; } - return true; + return TRUE; } /* Record a new local dynamic symbol. Returns 0 on failure, 1 on @@ -376,7 +376,7 @@ elf_link_record_local_dynamic_symbol (in return 0; } - dynstr_index = _bfd_elf_strtab_add (dynstr, name, false); + dynstr_index = _bfd_elf_strtab_add (dynstr, name, FALSE); if (dynstr_index == (unsigned long) -1) return 0; entry->isym.st_name = dynstr_index; @@ -418,10 +418,10 @@ _bfd_elf_link_lookup_local_dynindx (info them are removed because they are marked as local. This is called via elf_link_hash_traverse. */ -static boolean elf_link_renumber_hash_table_dynsyms +static bfd_boolean elf_link_renumber_hash_table_dynsyms PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean +static bfd_boolean elf_link_renumber_hash_table_dynsyms (h, data) struct elf_link_hash_entry *h; PTR data; @@ -434,7 +434,7 @@ elf_link_renumber_hash_table_dynsyms (h, if (h->dynindx != -1) h->dynindx = ++(*count); - return true; + return TRUE; } /* Assign dynsym indices. In a shared library we generate a section @@ -506,7 +506,7 @@ _bfd_elf_create_linker_section (abfd, in *lsect = *defaults; elf_linker_section (dynobj, which) = lsect; lsect->which = which; - lsect->hole_written_p = false; + lsect->hole_written_p = FALSE; /* See if the sections already exist */ lsect->section = s = bfd_get_section_by_name (dynobj, lsect->name); @@ -559,7 +559,7 @@ _bfd_elf_create_linker_section (abfd, in lsect->name); #endif bh = bfd_link_hash_lookup (info->hash, lsect->sym_name, - false, false, false); + FALSE, FALSE, FALSE); if ((bh == NULL || bh->type == bfd_link_hash_undefined) && !(_bfd_generic_link_add_one_symbol @@ -567,7 +567,7 @@ _bfd_elf_create_linker_section (abfd, in (lsect->hole_size ? s->_raw_size - lsect->hole_size + lsect->sym_offset : lsect->sym_offset), - (const char *) NULL, false, + (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) return (elf_linker_section_t *) 0; h = (struct elf_link_hash_entry *) bh; @@ -620,14 +620,14 @@ _bfd_elf_find_pointer_linker_section (li /* Make the .rela section corresponding to the generated linker section. */ -boolean +bfd_boolean _bfd_elf_make_linker_section_rela (dynobj, lsect, alignment) bfd *dynobj; elf_linker_section_t *lsect; int alignment; { if (lsect->rel_section) - return true; + return TRUE; lsect->rel_section = bfd_get_section_by_name (dynobj, lsect->rel_name); if (lsect->rel_section == NULL) @@ -643,8 +643,8 @@ _bfd_elf_make_linker_section_rela (dynob | SEC_LINKER_CREATED | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, lsect->rel_section, alignment)) - return false; + return FALSE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/elflink.h binutils-2.13.90.0.18/bfd/elflink.h --- binutils-2.13.90.0.16/bfd/elflink.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/elflink.h Tue Jan 21 10:21:32 2003 @@ -25,49 +25,49 @@ Foundation, Inc., 59 Temple Place - Suit struct elf_info_failed { - boolean failed; + bfd_boolean failed; struct bfd_link_info *info; struct bfd_elf_version_tree *verdefs; }; -static boolean is_global_data_symbol_definition +static bfd_boolean is_global_data_symbol_definition PARAMS ((bfd *, Elf_Internal_Sym *)); -static boolean elf_link_is_defined_archive_symbol +static bfd_boolean elf_link_is_defined_archive_symbol PARAMS ((bfd *, carsym *)); -static boolean elf_link_add_object_symbols +static bfd_boolean elf_link_add_object_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_link_add_archive_symbols +static bfd_boolean elf_link_add_archive_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_merge_symbol +static bfd_boolean elf_merge_symbol PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection **, bfd_vma *, - struct elf_link_hash_entry **, boolean *, boolean *, - boolean *, boolean)); -static boolean elf_add_default_symbol + struct elf_link_hash_entry **, bfd_boolean *, bfd_boolean *, + bfd_boolean *, bfd_boolean)); +static bfd_boolean elf_add_default_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, const char *, Elf_Internal_Sym *, asection **, bfd_vma *, - boolean *, boolean, boolean)); -static boolean elf_export_symbol + bfd_boolean *, bfd_boolean, bfd_boolean)); +static bfd_boolean elf_export_symbol PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_finalize_dynstr +static bfd_boolean elf_finalize_dynstr PARAMS ((bfd *, struct bfd_link_info *)); -static boolean elf_fix_symbol_flags +static bfd_boolean elf_fix_symbol_flags PARAMS ((struct elf_link_hash_entry *, struct elf_info_failed *)); -static boolean elf_adjust_dynamic_symbol +static bfd_boolean elf_adjust_dynamic_symbol PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_link_find_version_dependencies +static bfd_boolean elf_link_find_version_dependencies PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_link_assign_sym_version +static bfd_boolean elf_link_assign_sym_version PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_collect_hash_codes +static bfd_boolean elf_collect_hash_codes PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_link_read_relocs_from_section +static bfd_boolean elf_link_read_relocs_from_section PARAMS ((bfd *, Elf_Internal_Shdr *, PTR, Elf_Internal_Rela *)); static size_t compute_bucket_count PARAMS ((struct bfd_link_info *)); -static boolean elf_link_output_relocs +static bfd_boolean elf_link_output_relocs PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *)); -static boolean elf_link_size_reloc_section +static bfd_boolean elf_link_size_reloc_section PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); static void elf_link_adjust_relocs PARAMS ((bfd *, Elf_Internal_Shdr *, unsigned int, @@ -78,13 +78,13 @@ static int elf_link_sort_cmp2 PARAMS ((const void *, const void *)); static size_t elf_link_sort_relocs PARAMS ((bfd *, struct bfd_link_info *, asection **)); -static boolean elf_section_ignore_discarded_relocs +static bfd_boolean elf_section_ignore_discarded_relocs PARAMS ((asection *)); /* Given an ELF BFD, add symbols to the global hash table as appropriate. */ -boolean +bfd_boolean elf_bfd_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -97,12 +97,12 @@ elf_bfd_link_add_symbols (abfd, info) return elf_link_add_archive_symbols (abfd, info); default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } } -/* Return true iff this is a non-common, definition of a non-function symbol. */ -static boolean +/* Return TRUE iff this is a non-common, definition of a non-function symbol. */ +static bfd_boolean is_global_data_symbol_definition (abfd, sym) bfd * abfd ATTRIBUTE_UNUSED; Elf_Internal_Sym * sym; @@ -110,20 +110,20 @@ is_global_data_symbol_definition (abfd, /* Local symbols do not count, but target specific ones might. */ if (ELF_ST_BIND (sym->st_info) != STB_GLOBAL && ELF_ST_BIND (sym->st_info) < STB_LOOS) - return false; + return FALSE; /* Function symbols do not count. */ if (ELF_ST_TYPE (sym->st_info) == STT_FUNC) - return false; + return FALSE; /* If the section is undefined, then so is the symbol. */ if (sym->st_shndx == SHN_UNDEF) - return false; + return FALSE; /* If the symbol is defined in the common section, then it is a common definition and so does not count. */ if (sym->st_shndx == SHN_COMMON) - return false; + return FALSE; /* If the symbol is in a target specific section then we must rely upon the backend to tell us what it is. */ @@ -135,15 +135,15 @@ is_global_data_symbol_definition (abfd, Instead for now assume that the definition is not global, Even if this is wrong, at least the linker will behave in the same way that it used to do. */ - return false; + return FALSE; - return true; + return TRUE; } /* Search the symbol table of the archive element of the archive ABFD whose archive map contains a mention of SYMDEF, and determine if the symbol is defined in this element. */ -static boolean +static bfd_boolean elf_link_is_defined_archive_symbol (abfd, symdef) bfd * abfd; carsym * symdef; @@ -155,21 +155,21 @@ elf_link_is_defined_archive_symbol (abfd Elf_Internal_Sym *isymbuf; Elf_Internal_Sym *isym; Elf_Internal_Sym *isymend; - boolean result; + bfd_boolean result; abfd = _bfd_get_elt_at_filepos (abfd, symdef->file_offset); if (abfd == (bfd *) NULL) - return false; + return FALSE; if (! bfd_check_format (abfd, bfd_object)) - return false; + return FALSE; /* If we have already included the element containing this symbol in the link then we do not need to include it again. Just claim that any symbol it contains is not a definition, so that our caller will not decide to (re)include this element. */ if (abfd->archive_pass) - return false; + return FALSE; /* Select the appropriate symbol table. */ if ((abfd->flags & DYNAMIC) == 0 || elf_dynsymtab (abfd) == 0) @@ -193,16 +193,16 @@ elf_link_is_defined_archive_symbol (abfd } if (extsymcount == 0) - return false; + return FALSE; /* Read in the symbol table. */ isymbuf = bfd_elf_get_elf_syms (abfd, hdr, extsymcount, extsymoff, NULL, NULL, NULL); if (isymbuf == NULL) - return false; + return FALSE; /* Scan the symbol table looking for SYMDEF. */ - result = false; + result = FALSE; for (isym = isymbuf, isymend = isymbuf + extsymcount; isym < isymend; isym++) { const char *name; @@ -249,25 +249,25 @@ elf_link_is_defined_archive_symbol (abfd Unfortunately, we do have to make multiple passes over the symbol table until nothing further is resolved. */ -static boolean +static bfd_boolean elf_link_add_archive_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { symindex c; - boolean *defined = NULL; - boolean *included = NULL; + bfd_boolean *defined = NULL; + bfd_boolean *included = NULL; carsym *symdefs; - boolean loop; + bfd_boolean loop; bfd_size_type amt; if (! bfd_has_map (abfd)) { /* An empty archive is a special case. */ if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL) - return true; + return TRUE; bfd_set_error (bfd_error_no_armap); - return false; + return FALSE; } /* Keep track of all symbols we know to be already defined, and all @@ -275,12 +275,12 @@ elf_link_add_archive_symbols (abfd, info second and subsequent passes. */ c = bfd_ardata (abfd)->symdef_count; if (c == 0) - return true; + return TRUE; amt = c; - amt *= sizeof (boolean); - defined = (boolean *) bfd_zmalloc (amt); - included = (boolean *) bfd_zmalloc (amt); - if (defined == (boolean *) NULL || included == (boolean *) NULL) + amt *= sizeof (bfd_boolean); + defined = (bfd_boolean *) bfd_zmalloc (amt); + included = (bfd_boolean *) bfd_zmalloc (amt); + if (defined == (bfd_boolean *) NULL || included == (bfd_boolean *) NULL) goto error_return; symdefs = bfd_ardata (abfd)->symdefs; @@ -292,7 +292,7 @@ elf_link_add_archive_symbols (abfd, info carsym *symdef; carsym *symdefend; - loop = false; + loop = FALSE; last = -1; symdef = symdefs; @@ -308,12 +308,12 @@ elf_link_add_archive_symbols (abfd, info continue; if (symdef->file_offset == last) { - included[i] = true; + included[i] = TRUE; continue; } h = elf_link_hash_lookup (elf_hash_table (info), symdef->name, - false, false, false); + FALSE, FALSE, FALSE); if (h == NULL) { @@ -340,7 +340,7 @@ elf_link_add_archive_symbols (abfd, info memcpy (copy + first, symdef->name + first + 1, len - first); h = elf_link_hash_lookup (elf_hash_table (info), copy, - false, false, false); + FALSE, FALSE, FALSE); if (h == NULL) { @@ -349,7 +349,7 @@ elf_link_add_archive_symbols (abfd, info copy[first - 1] = '\0'; h = elf_link_hash_lookup (elf_hash_table (info), - copy, false, false, false); + copy, FALSE, FALSE, FALSE); } bfd_release (abfd, copy); @@ -378,7 +378,7 @@ elf_link_add_archive_symbols (abfd, info else if (h->root.type != bfd_link_hash_undefined) { if (h->root.type != bfd_link_hash_undefweak) - defined[i] = true; + defined[i] = TRUE; continue; } @@ -416,14 +416,14 @@ elf_link_add_archive_symbols (abfd, info does not require another pass. This isn't a bug, but it does make the code less efficient than it could be. */ if (undefs_tail != info->hash->undefs_tail) - loop = true; + loop = TRUE; /* Look backward to mark all symbols from this object file which we have already seen in this pass. */ mark = i; do { - included[mark] = true; + included[mark] = TRUE; if (mark == 0) break; --mark; @@ -440,14 +440,14 @@ elf_link_add_archive_symbols (abfd, info free (defined); free (included); - return true; + return TRUE; error_return: - if (defined != (boolean *) NULL) + if (defined != (bfd_boolean *) NULL) free (defined); - if (included != (boolean *) NULL) + if (included != (bfd_boolean *) NULL) free (included); - return false; + return FALSE; } /* This function is called when we want to define a new symbol. It @@ -462,7 +462,7 @@ elf_link_add_archive_symbols (abfd, info change. DT_NEEDED indicates if it comes from a DT_NEEDED entry of a shared object. */ -static boolean +static bfd_boolean elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash, override, type_change_ok, size_change_ok, dt_needed) bfd *abfd; @@ -472,35 +472,35 @@ elf_merge_symbol (abfd, info, name, sym, asection **psec; bfd_vma *pvalue; struct elf_link_hash_entry **sym_hash; - boolean *override; - boolean *type_change_ok; - boolean *size_change_ok; - boolean dt_needed; + bfd_boolean *override; + bfd_boolean *type_change_ok; + bfd_boolean *size_change_ok; + bfd_boolean dt_needed; { asection *sec; struct elf_link_hash_entry *h; int bind; bfd *oldbfd; - boolean newdyn, olddyn, olddef, newdef, newdyncommon, olddyncommon; + bfd_boolean newdyn, olddyn, olddef, newdef, newdyncommon, olddyncommon; - *override = false; + *override = FALSE; sec = *psec; bind = ELF_ST_BIND (sym->st_info); if (! bfd_is_und_section (sec)) - h = elf_link_hash_lookup (elf_hash_table (info), name, true, false, false); + h = elf_link_hash_lookup (elf_hash_table (info), name, TRUE, FALSE, FALSE); else h = ((struct elf_link_hash_entry *) - bfd_wrapped_link_hash_lookup (abfd, info, name, true, false, false)); + bfd_wrapped_link_hash_lookup (abfd, info, name, TRUE, FALSE, FALSE)); if (h == NULL) - return false; + return FALSE; *sym_hash = h; /* This code is for coping with dynamic objects, and is only useful if we are doing an ELF link. */ if (info->hash->creator != abfd->xvec) - return true; + return TRUE; /* For merging, we only care about real symbols. */ @@ -515,7 +515,7 @@ elf_merge_symbol (abfd, info, name, sym, if (h->root.type == bfd_link_hash_new) { h->elf_link_hash_flags &=~ ELF_LINK_NON_ELF; - return true; + return TRUE; } /* OLDBFD is a BFD associated with the existing symbol. */ @@ -550,15 +550,15 @@ elf_merge_symbol (abfd, info, name, sym, if (abfd == oldbfd && ((abfd->flags & DYNAMIC) == 0 || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0)) - return true; + return TRUE; /* NEWDYN and OLDDYN indicate whether the new or old symbol, respectively, is from a dynamic object. */ if ((abfd->flags & DYNAMIC) != 0) - newdyn = true; + newdyn = TRUE; else - newdyn = false; + newdyn = FALSE; if (oldbfd != NULL) olddyn = (oldbfd->flags & DYNAMIC) != 0; @@ -585,7 +585,7 @@ elf_merge_symbol (abfd, info, name, sym, } if (hsec == NULL) - olddyn = false; + olddyn = FALSE; else olddyn = (hsec->symbol->flags & BSF_DYNAMIC) != 0; } @@ -594,16 +594,16 @@ elf_merge_symbol (abfd, info, name, sym, respectively, appear to be a definition rather than reference. */ if (bfd_is_und_section (sec) || bfd_is_com_section (sec)) - newdef = false; + newdef = FALSE; else - newdef = true; + newdef = TRUE; if (h->root.type == bfd_link_hash_undefined || h->root.type == bfd_link_hash_undefweak || h->root.type == bfd_link_hash_common) - olddef = false; + olddef = FALSE; else - olddef = true; + olddef = TRUE; /* NEWDYNCOMMON and OLDDYNCOMMON indicate whether the new or old symbol, respectively, appears to be a common symbol in a dynamic @@ -635,9 +635,9 @@ elf_merge_symbol (abfd, info, name, sym, && sym->st_size > 0 && bind != STB_WEAK && ELF_ST_TYPE (sym->st_info) != STT_FUNC) - newdyncommon = true; + newdyncommon = TRUE; else - newdyncommon = false; + newdyncommon = FALSE; if (olddyn && olddef @@ -647,9 +647,9 @@ elf_merge_symbol (abfd, info, name, sym, && (h->root.u.def.section->flags & SEC_LOAD) == 0 && h->size > 0 && h->type != STT_FUNC) - olddyncommon = true; + olddyncommon = TRUE; else - olddyncommon = false; + olddyncommon = FALSE; /* It's OK to change the type if either the existing symbol or the new symbol is weak unless it comes from a DT_NEEDED entry of @@ -659,14 +659,14 @@ elf_merge_symbol (abfd, info, name, sym, if ((! dt_needed && h->root.type == bfd_link_hash_defweak) || h->root.type == bfd_link_hash_undefweak || bind == STB_WEAK) - *type_change_ok = true; + *type_change_ok = TRUE; /* It's OK to change the size if either the existing symbol or the new symbol is weak, or if the old symbol is undefined. */ if (*type_change_ok || h->root.type == bfd_link_hash_undefined) - *size_change_ok = true; + *size_change_ok = TRUE; /* If both the old and the new symbols look like common symbols in a dynamic object, set the size of the symbol to the larger of the @@ -685,12 +685,12 @@ elf_merge_symbol (abfd, info, name, sym, if (! ((*info->callbacks->multiple_common) (info, h->root.root.string, oldbfd, bfd_link_hash_common, h->size, abfd, bfd_link_hash_common, sym->st_size))) - return false; + return FALSE; if (sym->st_size > h->size) h->size = sym->st_size; - *size_change_ok = true; + *size_change_ok = TRUE; } /* If we are looking at a dynamic object, and we have found a @@ -722,12 +722,12 @@ elf_merge_symbol (abfd, info, name, sym, || dt_needed || bind == STB_WEAK)) { - *override = true; - newdef = false; - newdyncommon = false; + *override = TRUE; + newdef = FALSE; + newdyncommon = FALSE; *psec = sec = bfd_und_section_ptr; - *size_change_ok = true; + *size_change_ok = TRUE; /* If we get here when the old symbol is a common symbol, then we are explicitly letting it override a weak symbol or @@ -736,7 +736,7 @@ elf_merge_symbol (abfd, info, name, sym, change warning may still be appropriate. */ if (h->root.type == bfd_link_hash_common) - *type_change_ok = true; + *type_change_ok = TRUE; } /* Handle the special case of an old common symbol merging with a @@ -748,12 +748,12 @@ elf_merge_symbol (abfd, info, name, sym, if (newdyncommon && h->root.type == bfd_link_hash_common) { - *override = true; - newdef = false; - newdyncommon = false; + *override = TRUE; + newdef = FALSE; + newdyncommon = FALSE; *pvalue = sym->st_size; *psec = sec = bfd_com_section_ptr; - *size_change_ok = true; + *size_change_ok = TRUE; } /* If the old symbol is from a dynamic object, and the new symbol is @@ -786,16 +786,16 @@ elf_merge_symbol (abfd, info, name, sym, h->root.type = bfd_link_hash_undefined; h->root.u.undef.abfd = h->root.u.def.section->owner; - *size_change_ok = true; + *size_change_ok = TRUE; - olddef = false; - olddyncommon = false; + olddef = FALSE; + olddyncommon = FALSE; /* We again permit a type change when a common symbol may be overriding a function. */ if (bfd_is_com_section (sec)) - *type_change_ok = true; + *type_change_ok = TRUE; /* This union may have been set to be non-NULL when this symbol was seen in a dynamic object. We must force the union to be @@ -828,7 +828,7 @@ elf_merge_symbol (abfd, info, name, sym, if (! ((*info->callbacks->multiple_common) (info, h->root.root.string, oldbfd, bfd_link_hash_common, h->size, abfd, bfd_link_hash_common, sym->st_size))) - return false; + return FALSE; /* If the predumed common symbol in the dynamic object is larger, pretend that the new symbol has its size. */ @@ -840,14 +840,14 @@ elf_merge_symbol (abfd, info, name, sym, in the dynamic object, so we just wind up using the one from the regular object. */ - olddef = false; - olddyncommon = false; + olddef = FALSE; + olddyncommon = FALSE; h->root.type = bfd_link_hash_undefined; h->root.u.undef.abfd = h->root.u.def.section->owner; - *size_change_ok = true; - *type_change_ok = true; + *size_change_ok = TRUE; + *type_change_ok = TRUE; h->verinfo.vertree = NULL; } @@ -892,9 +892,9 @@ elf_merge_symbol (abfd, info, name, sym, && newdef && ! newdyn && bind == STB_WEAK) - *override = true; + *override = TRUE; - return true; + return TRUE; } /* This function is called to create an indirect symbol from the @@ -903,7 +903,7 @@ elf_merge_symbol (abfd, info, name, sym, set DYNSYM if the new indirect symbol is dynamic. DT_NEEDED indicates if it comes from a DT_NEEDED entry of a shared object. */ -static boolean +static bfd_boolean elf_add_default_symbol (abfd, info, h, name, sym, psec, value, dynsym, override, dt_needed) bfd *abfd; @@ -913,18 +913,18 @@ elf_add_default_symbol (abfd, info, h, n Elf_Internal_Sym *sym; asection **psec; bfd_vma *value; - boolean *dynsym; - boolean override; - boolean dt_needed; + bfd_boolean *dynsym; + bfd_boolean override; + bfd_boolean dt_needed; { - boolean type_change_ok; - boolean size_change_ok; + bfd_boolean type_change_ok; + bfd_boolean size_change_ok; char *shortname; struct elf_link_hash_entry *hi; struct bfd_link_hash_entry *bh; struct elf_backend_data *bed; - boolean collect; - boolean dynamic; + bfd_boolean collect; + bfd_boolean dynamic; char *p; size_t len, shortlen; asection *sec; @@ -935,23 +935,23 @@ elf_add_default_symbol (abfd, info, h, n specify a version to be bound to this version of the symbol. */ p = strchr (name, ELF_VER_CHR); if (p == NULL || p[1] != ELF_VER_CHR) - return true; + return TRUE; if (override) { /* We are overridden by an old defition. We need to check if we need to create the indirect symbol from the default name. */ - hi = elf_link_hash_lookup (elf_hash_table (info), name, true, - false, false); + hi = elf_link_hash_lookup (elf_hash_table (info), name, TRUE, + FALSE, FALSE); BFD_ASSERT (hi != NULL); if (hi == h) - return true; + return TRUE; while (hi->root.type == bfd_link_hash_indirect || hi->root.type == bfd_link_hash_warning) { hi = (struct elf_link_hash_entry *) hi->root.u.i.link; if (hi == h) - return true; + return TRUE; } } @@ -962,7 +962,7 @@ elf_add_default_symbol (abfd, info, h, n shortlen = p - name; shortname = bfd_hash_allocate (&info->hash->table, shortlen + 1); if (shortname == NULL) - return false; + return FALSE; memcpy (shortname, name, shortlen); shortname[shortlen] = '\0'; @@ -970,21 +970,21 @@ elf_add_default_symbol (abfd, info, h, n symbol with this name. For the purposes of the merge, act as though we were defining the symbol we just defined, although we actually going to define an indirect symbol. */ - type_change_ok = false; - size_change_ok = false; + type_change_ok = FALSE; + size_change_ok = FALSE; sec = *psec; if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value, &hi, &override, &type_change_ok, &size_change_ok, dt_needed)) - return false; + return FALSE; if (! override) { bh = &hi->root; if (! (_bfd_generic_link_add_one_symbol (info, abfd, shortname, BSF_INDIRECT, bfd_ind_section_ptr, - (bfd_vma) 0, name, false, collect, &bh))) - return false; + (bfd_vma) 0, name, FALSE, collect, &bh))) + return FALSE; hi = (struct elf_link_hash_entry *) bh; } else @@ -1022,7 +1022,7 @@ elf_add_default_symbol (abfd, info, h, n | ELF_LINK_HASH_DEF_REGULAR)) { if (! _bfd_elf_link_record_dynamic_symbol (info, hi)) - return false; + return FALSE; } } @@ -1057,13 +1057,13 @@ elf_add_default_symbol (abfd, info, h, n if (info->shared || ((hi->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0)) - *dynsym = true; + *dynsym = TRUE; } else { if ((hi->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) != 0) - *dynsym = true; + *dynsym = TRUE; } } } @@ -1074,18 +1074,18 @@ elf_add_default_symbol (abfd, info, h, n len = strlen (name); shortname = bfd_hash_allocate (&info->hash->table, len); if (shortname == NULL) - return false; + return FALSE; memcpy (shortname, name, shortlen); memcpy (shortname + shortlen, p + 1, len - shortlen); /* Once again, merge with any existing symbol. */ - type_change_ok = false; - size_change_ok = false; + type_change_ok = FALSE; + size_change_ok = FALSE; sec = *psec; if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value, &hi, &override, &type_change_ok, &size_change_ok, dt_needed)) - return false; + return FALSE; if (override) { @@ -1103,8 +1103,8 @@ elf_add_default_symbol (abfd, info, h, n bh = &hi->root; if (! (_bfd_generic_link_add_one_symbol (info, abfd, shortname, BSF_INDIRECT, - bfd_ind_section_ptr, (bfd_vma) 0, name, false, collect, &bh))) - return false; + bfd_ind_section_ptr, (bfd_vma) 0, name, FALSE, collect, &bh))) + return FALSE; hi = (struct elf_link_hash_entry *) bh; /* If there is a duplicate definition somewhere, then HI may not @@ -1130,41 +1130,41 @@ elf_add_default_symbol (abfd, info, h, n if (info->shared || ((hi->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0)) - *dynsym = true; + *dynsym = TRUE; } else { if ((hi->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) != 0) - *dynsym = true; + *dynsym = TRUE; } } } } - return true; + return TRUE; } /* Add symbols from an ELF object file to the linker hash table. */ -static boolean +static bfd_boolean elf_link_add_object_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { - boolean (*add_symbol_hook) PARAMS ((bfd *, struct bfd_link_info *, - const Elf_Internal_Sym *, - const char **, flagword *, - asection **, bfd_vma *)); - boolean (*check_relocs) PARAMS ((bfd *, struct bfd_link_info *, - asection *, const Elf_Internal_Rela *)); - boolean collect; + bfd_boolean (*add_symbol_hook) + PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, + const char **, flagword *, asection **, bfd_vma *)); + bfd_boolean (*check_relocs) + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); + bfd_boolean collect; Elf_Internal_Shdr *hdr; bfd_size_type symcount; bfd_size_type extsymcount; bfd_size_type extsymoff; struct elf_link_hash_entry **sym_hash; - boolean dynamic; + bfd_boolean dynamic; Elf_External_Versym *extversym = NULL; Elf_External_Versym *ever; struct elf_link_hash_entry *weaks; @@ -1172,7 +1172,7 @@ elf_link_add_object_symbols (abfd, info) Elf_Internal_Sym *isym; Elf_Internal_Sym *isymend; struct elf_backend_data *bed; - boolean dt_needed; + bfd_boolean dt_needed; struct elf_link_hash_table * hash_table; bfd_size_type amt; @@ -1183,10 +1183,10 @@ elf_link_add_object_symbols (abfd, info) collect = bed->collect; if ((abfd->flags & DYNAMIC) == 0) - dynamic = false; + dynamic = FALSE; else { - dynamic = true; + dynamic = TRUE; /* You can't use -r against a dynamic object. Also, there's no hope of using a dynamic object which does not exactly match @@ -1232,7 +1232,7 @@ elf_link_add_object_symbols (abfd, info) struct elf_link_hash_entry *h; h = elf_link_hash_lookup (hash_table, name, - false, false, true); + FALSE, FALSE, TRUE); /* FIXME: What about bfd_link_hash_common? */ if (h != NULL @@ -1259,7 +1259,7 @@ elf_link_add_object_symbols (abfd, info) if (! (_bfd_generic_link_add_one_symbol (info, abfd, name, BSF_WARNING, s, (bfd_vma) 0, msg, - false, collect, (struct bfd_link_hash_entry **) NULL))) + FALSE, collect, (struct bfd_link_hash_entry **) NULL))) goto error_return; if (! info->relocateable) @@ -1272,7 +1272,7 @@ elf_link_add_object_symbols (abfd, info) } } - dt_needed = false; + dt_needed = FALSE; if (! dynamic) { /* If we are creating a shared library, create all the dynamic @@ -1294,7 +1294,7 @@ elf_link_add_object_symbols (abfd, info) else { asection *s; - boolean add_needed; + bfd_boolean add_needed; const char *name; bfd_size_type oldsize; bfd_size_type strindex; @@ -1314,7 +1314,7 @@ elf_link_add_object_symbols (abfd, info) name. If the generic linker put a null string into elf_dt_name, we don't make a DT_NEEDED entry at all, even if there is a DT_SONAME entry. */ - add_needed = true; + add_needed = TRUE; name = bfd_get_filename (abfd); if (elf_dt_name (abfd) != NULL) { @@ -1322,9 +1322,9 @@ elf_link_add_object_symbols (abfd, info) if (*name == '\0') { if (elf_dt_soname (abfd) != NULL) - dt_needed = true; + dt_needed = TRUE; - add_needed = false; + add_needed = FALSE; } } s = bfd_get_section_by_name (abfd, ".dynamic"); @@ -1482,7 +1482,7 @@ elf_link_add_object_symbols (abfd, info) { /* Add a DT_NEEDED entry for this dynamic object. */ oldsize = _bfd_elf_strtab_size (hash_table->dynstr); - strindex = _bfd_elf_strtab_add (hash_table->dynstr, name, false); + strindex = _bfd_elf_strtab_add (hash_table->dynstr, name, FALSE); if (strindex == (bfd_size_type) -1) goto error_return; @@ -1511,7 +1511,7 @@ elf_link_add_object_symbols (abfd, info) && dyn.d_un.d_val == strindex) { _bfd_elf_strtab_delref (hash_table->dynstr, strindex); - return true; + return TRUE; } } } @@ -1606,13 +1606,13 @@ elf_link_add_object_symbols (abfd, info) flagword flags; const char *name; struct elf_link_hash_entry *h; - boolean definition; - boolean size_change_ok, type_change_ok; - boolean new_weakdef; + bfd_boolean definition; + bfd_boolean size_change_ok, type_change_ok; + bfd_boolean new_weakdef; unsigned int old_alignment; - boolean override; + bfd_boolean override; - override = false; + override = FALSE; flags = BSF_NO_FLAGS; sec = NULL; @@ -1708,11 +1708,11 @@ elf_link_add_object_symbols (abfd, info) if (bfd_is_und_section (sec) || bfd_is_com_section (sec)) - definition = false; + definition = FALSE; else - definition = true; + definition = TRUE; - size_change_ok = false; + size_change_ok = FALSE; type_change_ok = get_elf_backend_data (abfd)->type_change_ok; old_alignment = 0; if (info->hash->creator->flavour == bfd_target_elf_flavour) @@ -1821,7 +1821,7 @@ elf_link_add_object_symbols (abfd, info) goto error_free_vers; if (override) - definition = false; + definition = FALSE; h = *sym_hash; while (h->root.type == bfd_link_hash_indirect @@ -1845,7 +1845,7 @@ elf_link_add_object_symbols (abfd, info) if (! (_bfd_generic_link_add_one_symbol (info, abfd, name, flags, sec, value, (const char *) NULL, - false, collect, (struct bfd_link_hash_entry **) sym_hash))) + FALSE, collect, (struct bfd_link_hash_entry **) sym_hash))) goto error_free_vers; h = *sym_hash; @@ -1854,7 +1854,7 @@ elf_link_add_object_symbols (abfd, info) h = (struct elf_link_hash_entry *) h->root.u.i.link; *sym_hash = h; - new_weakdef = false; + new_weakdef = FALSE; if (dynamic && definition && (flags & BSF_WEAK) != 0 @@ -1876,7 +1876,7 @@ elf_link_add_object_symbols (abfd, info) h->weakdef = weaks; weaks = h; - new_weakdef = true; + new_weakdef = TRUE; } /* Set the alignment of a common symbol. */ @@ -1896,7 +1896,7 @@ elf_link_add_object_symbols (abfd, info) if (info->hash->creator->flavour == bfd_target_elf_flavour) { int old_flags; - boolean dynsym; + bfd_boolean dynsym; int new_flag; /* Remember the symbol size and type. */ @@ -1957,7 +1957,7 @@ elf_link_add_object_symbols (abfd, info) is one which is referenced or defined by both a regular object and a shared object. */ old_flags = h->elf_link_hash_flags; - dynsym = false; + dynsym = FALSE; if (! dynamic) { if (! definition) @@ -1971,7 +1971,7 @@ elf_link_add_object_symbols (abfd, info) if (info->shared || (old_flags & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_DYNAMIC)) != 0) - dynsym = true; + dynsym = TRUE; } else { @@ -1984,7 +1984,7 @@ elf_link_add_object_symbols (abfd, info) || (h->weakdef != NULL && ! new_weakdef && h->weakdef->dynindx != -1)) - dynsym = true; + dynsym = TRUE; } h->elf_link_hash_flags |= new_flag; @@ -2017,7 +2017,7 @@ elf_link_add_object_symbols (abfd, info) { case STV_INTERNAL: case STV_HIDDEN: - (*bed->elf_backend_hide_symbol) (info, h, true); + (*bed->elf_backend_hide_symbol) (info, h, TRUE); break; } @@ -2035,10 +2035,10 @@ elf_link_add_object_symbols (abfd, info) the regular object to create a dynamic executable. We have to make sure there is a DT_NEEDED entry for it. */ - dt_needed = false; + dt_needed = FALSE; oldsize = _bfd_elf_strtab_size (hash_table->dynstr); strindex = _bfd_elf_strtab_add (hash_table->dynstr, - elf_dt_soname (abfd), false); + elf_dt_soname (abfd), FALSE); if (strindex == (bfd_size_type) -1) goto error_free_vers; @@ -2180,7 +2180,7 @@ elf_link_add_object_symbols (abfd, info) for (o = abfd->sections; o != NULL; o = o->next) { Elf_Internal_Rela *internal_relocs; - boolean ok; + bfd_boolean ok; if ((o->flags & SEC_RELOC) == 0 || o->reloc_count == 0 @@ -2274,7 +2274,7 @@ elf_link_add_object_symbols (abfd, info) hash_table->loaded = n; } - return true; + return TRUE; error_free_vers: if (extversym != NULL) @@ -2283,7 +2283,7 @@ elf_link_add_object_symbols (abfd, info) if (isymbuf != NULL) free (isymbuf); error_return: - return false; + return FALSE; } /* Create some sections which will be filled in with dynamic linking @@ -2293,7 +2293,7 @@ elf_link_add_object_symbols (abfd, info) addresses are assigned to the output sections. We work out the actual contents and size of these sections later. */ -boolean +bfd_boolean elf_link_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -2305,10 +2305,10 @@ elf_link_create_dynamic_sections (abfd, struct elf_backend_data *bed; if (! is_elf_hash_table (info)) - return false; + return FALSE; if (elf_hash_table (info)->dynamic_sections_created) - return true; + return TRUE; /* Make sure that all dynamic sections use the same input BFD. */ if (elf_hash_table (info)->dynobj == NULL) @@ -2328,7 +2328,7 @@ elf_link_create_dynamic_sections (abfd, s = bfd_make_section (abfd, ".interp"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)) - return false; + return FALSE; } if (! info->traditional_format @@ -2338,7 +2338,7 @@ elf_link_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; elf_hash_table (info)->eh_info.hdr_sec = s; } @@ -2348,44 +2348,44 @@ elf_link_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN)) - return false; + return FALSE; s = bfd_make_section (abfd, ".gnu.version"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 1)) - return false; + return FALSE; s = bfd_make_section (abfd, ".gnu.version_r"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN)) - return false; + return FALSE; s = bfd_make_section (abfd, ".dynsym"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN)) - return false; + return FALSE; s = bfd_make_section (abfd, ".dynstr"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY)) - return false; + return FALSE; /* Create a strtab to hold the dynamic symbol names. */ if (elf_hash_table (info)->dynstr == NULL) { elf_hash_table (info)->dynstr = _bfd_elf_strtab_init (); if (elf_hash_table (info)->dynstr == NULL) - return false; + return FALSE; } s = bfd_make_section (abfd, ".dynamic"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN)) - return false; + return FALSE; /* The special symbol _DYNAMIC is always set to the start of the .dynamic section. This call occurs before we have processed the @@ -2398,15 +2398,15 @@ elf_link_create_dynamic_sections (abfd, bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, "_DYNAMIC", BSF_GLOBAL, s, (bfd_vma) 0, - (const char *) 0, false, get_elf_backend_data (abfd)->collect, &bh))) - return false; + (const char *) 0, FALSE, get_elf_backend_data (abfd)->collect, &bh))) + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; if (info->shared && ! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; bed = get_elf_backend_data (abfd); @@ -2414,23 +2414,23 @@ elf_link_create_dynamic_sections (abfd, if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, LOG_FILE_ALIGN)) - return false; + return FALSE; elf_section_data (s)->this_hdr.sh_entsize = bed->s->sizeof_hash_entry; /* Let the backend create the rest of the sections. This lets the backend set the right flags. The backend will normally create the .got and .plt sections. */ if (! (*bed->elf_backend_create_dynamic_sections) (abfd, info)) - return false; + return FALSE; - elf_hash_table (info)->dynamic_sections_created = true; + elf_hash_table (info)->dynamic_sections_created = TRUE; - return true; + return TRUE; } /* Add an entry to the .dynamic table. */ -boolean +bfd_boolean elf_add_dynamic_entry (info, tag, val) struct bfd_link_info *info; bfd_vma tag; @@ -2443,7 +2443,7 @@ elf_add_dynamic_entry (info, tag, val) bfd_byte *newcontents; if (! is_elf_hash_table (info)) - return false; + return FALSE; dynobj = elf_hash_table (info)->dynobj; @@ -2453,7 +2453,7 @@ elf_add_dynamic_entry (info, tag, val) newsize = s->_raw_size + sizeof (Elf_External_Dyn); newcontents = (bfd_byte *) bfd_realloc (s->contents, newsize); if (newcontents == NULL) - return false; + return FALSE; dyn.d_tag = tag; dyn.d_un.d_val = val; @@ -2463,7 +2463,7 @@ elf_add_dynamic_entry (info, tag, val) s->_raw_size = newsize; s->contents = newcontents; - return true; + return TRUE; } /* Read and swap the relocs from the section indicated by SHDR. This @@ -2473,9 +2473,9 @@ elf_add_dynamic_entry (info, tag, val) The EXTERNAL_RELOCS are a buffer where the external form of the relocations should be stored. - Returns false if something goes wrong. */ + Returns FALSE if something goes wrong. */ -static boolean +static bfd_boolean elf_link_read_relocs_from_section (abfd, shdr, external_relocs, internal_relocs) bfd *abfd; @@ -2484,73 +2484,44 @@ elf_link_read_relocs_from_section (abfd, Elf_Internal_Rela *internal_relocs; { struct elf_backend_data *bed; - bfd_size_type amt; + void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); + const bfd_byte *erela; + const bfd_byte *erelaend; + Elf_Internal_Rela *irela; /* If there aren't any relocations, that's OK. */ if (!shdr) - return true; + return TRUE; /* Position ourselves at the start of the section. */ if (bfd_seek (abfd, shdr->sh_offset, SEEK_SET) != 0) - return false; + return FALSE; /* Read the relocations. */ if (bfd_bread (external_relocs, shdr->sh_size, abfd) != shdr->sh_size) - return false; + return FALSE; bed = get_elf_backend_data (abfd); /* Convert the external relocations to the internal format. */ if (shdr->sh_entsize == sizeof (Elf_External_Rel)) - { - Elf_External_Rel *erel; - Elf_External_Rel *erelend; - Elf_Internal_Rela *irela; - Elf_Internal_Rel *irel; - - erel = (Elf_External_Rel *) external_relocs; - erelend = erel + NUM_SHDR_ENTRIES (shdr); - irela = internal_relocs; - amt = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rel); - irel = bfd_alloc (abfd, amt); - for (; erel < erelend; erel++, irela += bed->s->int_rels_per_ext_rel) - { - unsigned int i; - - if (bed->s->swap_reloc_in) - (*bed->s->swap_reloc_in) (abfd, (bfd_byte *) erel, irel); - else - elf_swap_reloc_in (abfd, erel, irel); - - for (i = 0; i < bed->s->int_rels_per_ext_rel; ++i) - { - irela[i].r_offset = irel[i].r_offset; - irela[i].r_info = irel[i].r_info; - irela[i].r_addend = 0; - } - } - } + swap_in = bed->s->swap_reloc_in; + else if (shdr->sh_entsize == sizeof (Elf_External_Rela)) + swap_in = bed->s->swap_reloca_in; else + abort (); + + erela = external_relocs; + erelaend = erela + NUM_SHDR_ENTRIES (shdr) * shdr->sh_entsize; + irela = internal_relocs; + while (erela < erelaend) { - Elf_External_Rela *erela; - Elf_External_Rela *erelaend; - Elf_Internal_Rela *irela; - - BFD_ASSERT (shdr->sh_entsize == sizeof (Elf_External_Rela)); - - erela = (Elf_External_Rela *) external_relocs; - erelaend = erela + NUM_SHDR_ENTRIES (shdr); - irela = internal_relocs; - for (; erela < erelaend; erela++, irela += bed->s->int_rels_per_ext_rel) - { - if (bed->s->swap_reloca_in) - (*bed->s->swap_reloca_in) (abfd, (bfd_byte *) erela, irela); - else - elf_swap_reloca_in (abfd, erela, irela); - } + (*swap_in) (abfd, erela, irela); + irela += bed->s->int_rels_per_ext_rel; + erela += shdr->sh_entsize; } - return true; + return TRUE; } /* Read and swap the relocs for a section O. They may have been @@ -2570,7 +2541,7 @@ NAME(_bfd_elf,link_read_relocs) (abfd, o asection *o; PTR external_relocs; Elf_Internal_Rela *internal_relocs; - boolean keep_memory; + bfd_boolean keep_memory; { Elf_Internal_Shdr *rel_hdr; PTR alloc1 = NULL; @@ -2646,21 +2617,21 @@ NAME(_bfd_elf,link_read_relocs) (abfd, o /* Record an assignment to a symbol made by a linker script. We need this in case some dynamic object refers to this symbol. */ -boolean +bfd_boolean NAME(bfd_elf,record_link_assignment) (output_bfd, info, name, provide) bfd *output_bfd ATTRIBUTE_UNUSED; struct bfd_link_info *info; const char *name; - boolean provide; + bfd_boolean provide; { struct elf_link_hash_entry *h; if (info->hash->creator->flavour != bfd_target_elf_flavour) - return true; + return TRUE; - h = elf_link_hash_lookup (elf_hash_table (info), name, true, true, false); + h = elf_link_hash_lookup (elf_hash_table (info), name, TRUE, TRUE, FALSE); if (h == NULL) - return false; + return FALSE; if (h->root.type == bfd_link_hash_new) h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; @@ -2691,7 +2662,7 @@ NAME(bfd_elf,record_link_assignment) (ou && h->dynindx == -1) { if (! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; /* If this is a weak defined symbol, and we know a corresponding real symbol from the same dynamic object, make sure the real @@ -2700,11 +2671,11 @@ NAME(bfd_elf,record_link_assignment) (ou && h->weakdef->dynindx == -1) { if (! _bfd_elf_link_record_dynamic_symbol (info, h->weakdef)) - return false; + return FALSE; } } - return true; + return TRUE; } /* This structure is used to pass information to @@ -2719,7 +2690,7 @@ struct elf_assign_sym_version_info /* Version tree. */ struct bfd_elf_version_tree *verdefs; /* Whether we had a failure. */ - boolean failed; + bfd_boolean failed; }; /* This structure is used to pass information to @@ -2734,7 +2705,7 @@ struct elf_find_verdep_info /* The number of dependencies. */ unsigned int vers; /* Whether we had a failure. */ - boolean failed; + bfd_boolean failed; }; /* Array used to determine the number of hash table buckets to use @@ -2900,7 +2871,7 @@ compute_bucket_count (info) must set the sizes of the sections before the linker sets the addresses of the various sections. */ -boolean +bfd_boolean NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, filter_shlib, auxiliary_filters, info, sinterpptr, @@ -2924,10 +2895,10 @@ NAME(bfd_elf,size_dynamic_sections) (out soname_indx = (bfd_size_type) -1; if (info->hash->creator->flavour != bfd_target_elf_flavour) - return true; + return TRUE; if (! is_elf_hash_table (info)) - return true; + return TRUE; /* Any syms created from now on start with -1 in got.refcount/offset and plt.refcount/offset. */ @@ -2938,17 +2909,17 @@ NAME(bfd_elf,size_dynamic_sections) (out bed = get_elf_backend_data (output_bfd); if (bed->elf_backend_always_size_sections && ! (*bed->elf_backend_always_size_sections) (output_bfd, info)) - return false; + return FALSE; dynobj = elf_hash_table (info)->dynobj; /* If there were no dynamic objects in the link, there is nothing to do here. */ if (dynobj == NULL) - return true; + return TRUE; if (! _bfd_elf_maybe_strip_eh_frame_hdr (info)) - return false; + return FALSE; if (elf_hash_table (info)->dynamic_sections_created) { @@ -2957,7 +2928,7 @@ NAME(bfd_elf,size_dynamic_sections) (out asection *dynstr; struct bfd_elf_version_tree *t; struct bfd_elf_version_expr *d; - boolean all_defined; + bfd_boolean all_defined; *sinterpptr = bfd_get_section_by_name (dynobj, ".interp"); BFD_ASSERT (*sinterpptr != NULL || info->shared); @@ -2965,18 +2936,18 @@ NAME(bfd_elf,size_dynamic_sections) (out if (soname != NULL) { soname_indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, - soname, true); + soname, TRUE); if (soname_indx == (bfd_size_type) -1 || ! elf_add_dynamic_entry (info, (bfd_vma) DT_SONAME, soname_indx)) - return false; + return FALSE; } if (info->symbolic) { if (! elf_add_dynamic_entry (info, (bfd_vma) DT_SYMBOLIC, (bfd_vma) 0)) - return false; + return FALSE; info->flags |= DF_SYMBOLIC; } @@ -2985,7 +2956,7 @@ NAME(bfd_elf,size_dynamic_sections) (out bfd_size_type indx; indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, rpath, - true); + TRUE); if (info->new_dtags) _bfd_elf_strtab_addref (elf_hash_table (info)->dynstr, indx); if (indx == (bfd_size_type) -1 @@ -2993,7 +2964,7 @@ NAME(bfd_elf,size_dynamic_sections) (out || (info->new_dtags && ! elf_add_dynamic_entry (info, (bfd_vma) DT_RUNPATH, indx))) - return false; + return FALSE; } if (filter_shlib != NULL) @@ -3001,10 +2972,10 @@ NAME(bfd_elf,size_dynamic_sections) (out bfd_size_type indx; indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, - filter_shlib, true); + filter_shlib, TRUE); if (indx == (bfd_size_type) -1 || ! elf_add_dynamic_entry (info, (bfd_vma) DT_FILTER, indx)) - return false; + return FALSE; } if (auxiliary_filters != NULL) @@ -3016,17 +2987,17 @@ NAME(bfd_elf,size_dynamic_sections) (out bfd_size_type indx; indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, - *p, true); + *p, TRUE); if (indx == (bfd_size_type) -1 || ! elf_add_dynamic_entry (info, (bfd_vma) DT_AUXILIARY, indx)) - return false; + return FALSE; } } eif.info = info; eif.verdefs = verdefs; - eif.failed = false; + eif.failed = FALSE; /* If we are supposed to export all symbols into the dynamic symbol table (this is not the normal case), then do so. */ @@ -3035,7 +3006,7 @@ NAME(bfd_elf,size_dynamic_sections) (out elf_link_hash_traverse (elf_hash_table (info), elf_export_symbol, (PTR) &eif); if (eif.failed) - return false; + return FALSE; } /* Make all global versions with definiton. */ @@ -3052,11 +3023,11 @@ NAME(bfd_elf,size_dynamic_sections) (out namelen = strlen (name); verstr = t->name; verlen = strlen (verstr); - newlen = namelen + verlen + 3; + newlen = namelen + verlen + 3; newname = (char *) bfd_malloc ((bfd_size_type) newlen); if (newname == NULL) - return false; + return FALSE; memcpy (newname, name, namelen); /* Check the hidden versioned definition. */ @@ -3064,8 +3035,8 @@ NAME(bfd_elf,size_dynamic_sections) (out *p++ = ELF_VER_CHR; memcpy (p, verstr, verlen + 1); newh = elf_link_hash_lookup (elf_hash_table (info), - newname, false, false, - false); + newname, FALSE, FALSE, + FALSE); if (newh == NULL || (newh->root.type != bfd_link_hash_defined && newh->root.type != bfd_link_hash_defweak)) @@ -3074,8 +3045,8 @@ NAME(bfd_elf,size_dynamic_sections) (out *p++ = ELF_VER_CHR; memcpy (p, verstr, verlen + 1); newh = elf_link_hash_lookup (elf_hash_table (info), - newname, false, false, - false); + newname, FALSE, FALSE, + FALSE); } free (newname); @@ -3093,18 +3064,18 @@ NAME(bfd_elf,size_dynamic_sections) (out asvinfo.output_bfd = output_bfd; asvinfo.info = info; asvinfo.verdefs = verdefs; - asvinfo.failed = false; + asvinfo.failed = FALSE; elf_link_hash_traverse (elf_hash_table (info), elf_link_assign_sym_version, (PTR) &asvinfo); if (asvinfo.failed) - return false; + return FALSE; if (!info->allow_undefined_version) { /* Check if all global versions have a definiton. */ - all_defined = true; + all_defined = TRUE; for (t = verdefs; t != NULL; t = t->next) for (d = t->globals; d != NULL; d = d->next) if (!d->symver && !d->script @@ -3113,13 +3084,13 @@ NAME(bfd_elf,size_dynamic_sections) (out (*_bfd_error_handler) (_("%s: undefined version: %s"), d->pattern, t->name); - all_defined = false; + all_defined = FALSE; } if (!all_defined) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } @@ -3129,7 +3100,7 @@ NAME(bfd_elf,size_dynamic_sections) (out elf_adjust_dynamic_symbol, (PTR) &eif); if (eif.failed) - return false; + return FALSE; /* Add some entries to the .dynamic section. We fill in some of the values later, in elf_bfd_final_link, but we must add the entries @@ -3139,27 +3110,27 @@ NAME(bfd_elf,size_dynamic_sections) (out call then add the corresponding DT_INIT/DT_FINI entries. */ h = (info->init_function ? elf_link_hash_lookup (elf_hash_table (info), - info->init_function, false, - false, false) + info->init_function, FALSE, + FALSE, FALSE) : NULL); if (h != NULL && (h->elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR | ELF_LINK_HASH_DEF_REGULAR)) != 0) { if (! elf_add_dynamic_entry (info, (bfd_vma) DT_INIT, (bfd_vma) 0)) - return false; + return FALSE; } h = (info->fini_function ? elf_link_hash_lookup (elf_hash_table (info), - info->fini_function, false, - false, false) + info->fini_function, FALSE, + FALSE, FALSE) : NULL); if (h != NULL && (h->elf_link_hash_flags & (ELF_LINK_HASH_REF_REGULAR | ELF_LINK_HASH_DEF_REGULAR)) != 0) { if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FINI, (bfd_vma) 0)) - return false; + return FALSE; } if (bfd_get_section_by_name (output_bfd, ".preinit_array") != NULL) @@ -3183,14 +3154,14 @@ NAME(bfd_elf,size_dynamic_sections) (out } bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } if (!elf_add_dynamic_entry (info, (bfd_vma) DT_PREINIT_ARRAY, (bfd_vma) 0) || !elf_add_dynamic_entry (info, (bfd_vma) DT_PREINIT_ARRAYSZ, (bfd_vma) 0)) - return false; + return FALSE; } if (bfd_get_section_by_name (output_bfd, ".init_array") != NULL) { @@ -3198,7 +3169,7 @@ NAME(bfd_elf,size_dynamic_sections) (out (bfd_vma) 0) || !elf_add_dynamic_entry (info, (bfd_vma) DT_INIT_ARRAYSZ, (bfd_vma) 0)) - return false; + return FALSE; } if (bfd_get_section_by_name (output_bfd, ".fini_array") != NULL) { @@ -3206,7 +3177,7 @@ NAME(bfd_elf,size_dynamic_sections) (out (bfd_vma) 0) || !elf_add_dynamic_entry (info, (bfd_vma) DT_FINI_ARRAYSZ, (bfd_vma) 0)) - return false; + return FALSE; } dynstr = bfd_get_section_by_name (dynobj, ".dynstr"); @@ -3225,7 +3196,7 @@ NAME(bfd_elf,size_dynamic_sections) (out || ! elf_add_dynamic_entry (info, (bfd_vma) DT_STRSZ, strsize) || ! elf_add_dynamic_entry (info, (bfd_vma) DT_SYMENT, (bfd_vma) sizeof (Elf_External_Sym))) - return false; + return FALSE; } } @@ -3233,7 +3204,7 @@ NAME(bfd_elf,size_dynamic_sections) (out sections. */ if (bed->elf_backend_size_dynamic_sections && ! (*bed->elf_backend_size_dynamic_sections) (output_bfd, info)) - return false; + return FALSE; if (elf_hash_table (info)->dynamic_sections_created) { @@ -3289,7 +3260,7 @@ NAME(bfd_elf,size_dynamic_sections) (out s->_raw_size = size; s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; /* Fill in the version definition section. */ @@ -3318,9 +3289,9 @@ NAME(bfd_elf,size_dynamic_sections) (out name = basename (output_bfd->filename); def.vd_hash = bfd_elf_hash (name); indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, - name, false); + name, FALSE); if (indx == (bfd_size_type) -1) - return false; + return FALSE; defaux.vda_name = indx; } defaux.vda_next = 0; @@ -3347,9 +3318,9 @@ NAME(bfd_elf,size_dynamic_sections) (out bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, dynobj, t->name, BSF_GLOBAL, bfd_abs_section_ptr, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (dynobj)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags &= ~ ELF_LINK_NON_ELF; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; @@ -3357,7 +3328,7 @@ NAME(bfd_elf,size_dynamic_sections) (out h->verinfo.vertree = t; if (! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; def.vd_version = VER_DEF_CURRENT; def.vd_flags = 0; @@ -3418,7 +3389,7 @@ NAME(bfd_elf,size_dynamic_sections) (out if (! elf_add_dynamic_entry (info, (bfd_vma) DT_VERDEF, (bfd_vma) 0) || ! elf_add_dynamic_entry (info, (bfd_vma) DT_VERDEFNUM, (bfd_vma) cdefs)) - return false; + return FALSE; elf_tdata (output_bfd)->cverdefs = cdefs; } @@ -3426,7 +3397,7 @@ NAME(bfd_elf,size_dynamic_sections) (out if ((info->new_dtags && info->flags) || (info->flags & DF_STATIC_TLS)) { if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FLAGS, info->flags)) - return false; + return FALSE; } if (info->flags_1) @@ -3437,7 +3408,7 @@ NAME(bfd_elf,size_dynamic_sections) (out | DF_1_NOOPEN); if (! elf_add_dynamic_entry (info, (bfd_vma) DT_FLAGS_1, info->flags_1)) - return false; + return FALSE; } /* Work out the size of the version reference section. */ @@ -3452,7 +3423,7 @@ NAME(bfd_elf,size_dynamic_sections) (out sinfo.vers = elf_tdata (output_bfd)->cverdefs; if (sinfo.vers == 0) sinfo.vers = 1; - sinfo.failed = false; + sinfo.failed = FALSE; elf_link_hash_traverse (elf_hash_table (info), elf_link_find_version_dependencies, @@ -3485,7 +3456,7 @@ NAME(bfd_elf,size_dynamic_sections) (out s->_raw_size = size; s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; p = s->contents; for (t = elf_tdata (output_bfd)->verref; @@ -3506,9 +3477,9 @@ NAME(bfd_elf,size_dynamic_sections) (out elf_dt_name (t->vn_bfd) != NULL ? elf_dt_name (t->vn_bfd) : basename (t->vn_bfd->filename), - false); + FALSE); if (indx == (bfd_size_type) -1) - return false; + return FALSE; t->vn_file = indx; t->vn_aux = sizeof (Elf_External_Verneed); if (t->vn_nextref == NULL) @@ -3525,9 +3496,9 @@ NAME(bfd_elf,size_dynamic_sections) (out { a->vna_hash = bfd_elf_hash (a->vna_nodename); indx = _bfd_elf_strtab_add (elf_hash_table (info)->dynstr, - a->vna_nodename, false); + a->vna_nodename, FALSE); if (indx == (bfd_size_type) -1) - return false; + return FALSE; a->vna_name = indx; if (a->vna_nextptr == NULL) a->vna_next = 0; @@ -3544,7 +3515,7 @@ NAME(bfd_elf,size_dynamic_sections) (out (bfd_vma) 0) || ! elf_add_dynamic_entry (info, (bfd_vma) DT_VERNEEDNUM, (bfd_vma) crefs)) - return false; + return FALSE; elf_tdata (output_bfd)->cverrefs = crefs; } @@ -3573,10 +3544,10 @@ NAME(bfd_elf,size_dynamic_sections) (out s->_raw_size = dynsymcount * sizeof (Elf_External_Versym); s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; if (! elf_add_dynamic_entry (info, (bfd_vma) DT_VERSYM, (bfd_vma) 0)) - return false; + return FALSE; } /* Set the size of the .dynsym and .hash sections. We counted @@ -3590,7 +3561,7 @@ NAME(bfd_elf,size_dynamic_sections) (out s->_raw_size = dynsymcount * sizeof (Elf_External_Sym); s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; if (dynsymcount != 0) { @@ -3616,7 +3587,7 @@ NAME(bfd_elf,size_dynamic_sections) (out s->_raw_size = ((2 + bucketcount + dynsymcount) * hash_entry_size); s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; bfd_put (8 * hash_entry_size, output_bfd, (bfd_vma) bucketcount, s->contents); @@ -3634,19 +3605,19 @@ NAME(bfd_elf,size_dynamic_sections) (out for (dtagcount = 0; dtagcount <= info->spare_dynamic_tags; ++dtagcount) if (! elf_add_dynamic_entry (info, (bfd_vma) DT_NULL, (bfd_vma) 0)) - return false; + return FALSE; } - return true; + return TRUE; } /* This function is used to adjust offsets into .dynstr for dynamic symbols. This is called via elf_link_hash_traverse. */ -static boolean elf_adjust_dynstr_offsets -PARAMS ((struct elf_link_hash_entry *, PTR)); +static bfd_boolean elf_adjust_dynstr_offsets + PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean +static bfd_boolean elf_adjust_dynstr_offsets (h, data) struct elf_link_hash_entry *h; PTR data; @@ -3658,13 +3629,13 @@ elf_adjust_dynstr_offsets (h, data) if (h->dynindx != -1) h->dynstr_index = _bfd_elf_strtab_offset (dynstr, h->dynstr_index); - return true; + return TRUE; } /* Assign string offsets in .dynstr, update all structures referencing them. */ -static boolean +static bfd_boolean elf_finalize_dynstr (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -3784,7 +3755,7 @@ elf_finalize_dynstr (output_bfd, info) while (need.vn_next); } - return true; + return TRUE; } /* Fix up the flags for a symbol. This handles various cases which @@ -3793,7 +3764,7 @@ elf_finalize_dynstr (output_bfd, info) assign_sym_version, which is unnecessary but perhaps more robust in the face of future changes. */ -static boolean +static bfd_boolean elf_fix_symbol_flags (h, eif) struct elf_link_hash_entry *h; struct elf_info_failed *eif; @@ -3828,8 +3799,8 @@ elf_fix_symbol_flags (h, eif) { if (! _bfd_elf_link_record_dynamic_symbol (eif->info, h)) { - eif->failed = true; - return false; + eif->failed = TRUE; + return FALSE; } } } @@ -3882,7 +3853,7 @@ elf_fix_symbol_flags (h, eif) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0) { struct elf_backend_data *bed; - boolean force_local; + bfd_boolean force_local; bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj); @@ -3922,14 +3893,14 @@ elf_fix_symbol_flags (h, eif) } } - return true; + return TRUE; } /* Make the backend pick a good value for a dynamic symbol. This is called via elf_link_hash_traverse, and also calls itself recursively. */ -static boolean +static bfd_boolean elf_adjust_dynamic_symbol (h, data) struct elf_link_hash_entry *h; PTR data; @@ -3951,14 +3922,14 @@ elf_adjust_dynamic_symbol (h, data) /* Ignore indirect symbols. These are added by the versioning code. */ if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (! is_elf_hash_table (eif->info)) - return false; + return FALSE; /* Fix the symbol flags. */ if (! elf_fix_symbol_flags (h, eif)) - return false; + return FALSE; /* If this symbol does not require a PLT entry, and it is not defined by a dynamic object, or is not referenced by a regular @@ -3974,13 +3945,13 @@ elf_adjust_dynamic_symbol (h, data) && (h->weakdef == NULL || h->weakdef->dynindx == -1)))) { h->plt.offset = (bfd_vma) -1; - return true; + return TRUE; } /* If we've already adjusted this symbol, don't do it again. This can happen via a recursive call. */ if ((h->elf_link_hash_flags & ELF_LINK_HASH_DYNAMIC_ADJUSTED) != 0) - return true; + return TRUE; /* Don't look at this symbol again. Note that we must set this after checking the above conditions, because we may look at a @@ -4025,7 +3996,7 @@ elf_adjust_dynamic_symbol (h, data) h->weakdef->elf_link_hash_flags |= ELF_LINK_HASH_REF_REGULAR; if (! elf_adjust_dynamic_symbol (h->weakdef, (PTR) eif)) - return false; + return FALSE; } /* If a symbol has no type and no size and does not require a PLT @@ -4044,17 +4015,17 @@ elf_adjust_dynamic_symbol (h, data) bed = get_elf_backend_data (dynobj); if (! (*bed->elf_backend_adjust_dynamic_symbol) (eif->info, h)) { - eif->failed = true; - return false; + eif->failed = TRUE; + return FALSE; } - return true; + return TRUE; } /* This routine is used to export all defined symbols into the dynamic symbol table. It is called via elf_link_hash_traverse. */ -static boolean +static bfd_boolean elf_export_symbol (h, data) struct elf_link_hash_entry *h; PTR data; @@ -4063,7 +4034,7 @@ elf_export_symbol (h, data) /* Ignore indirect symbols. These are added by the versioning code. */ if (h->root.type == bfd_link_hash_indirect) - return true; + return TRUE; if (h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; @@ -4091,7 +4062,7 @@ elf_export_symbol (h, data) for (d = t->locals ; d != NULL; d = d->next) { if ((*d->match) (d, h->root.root.string)) - return true; + return TRUE; } } } @@ -4101,13 +4072,13 @@ elf_export_symbol (h, data) doit: if (! _bfd_elf_link_record_dynamic_symbol (eif->info, h)) { - eif->failed = true; - return false; + eif->failed = TRUE; + return FALSE; } } } - return true; + return TRUE; } /* Look through the symbols which are defined in other shared @@ -4115,7 +4086,7 @@ elf_export_symbol (h, data) dependencies. This will be put into the .gnu.version_r section. This function is called via elf_link_hash_traverse. */ -static boolean +static bfd_boolean elf_link_find_version_dependencies (h, data) struct elf_link_hash_entry *h; PTR data; @@ -4134,7 +4105,7 @@ elf_link_find_version_dependencies (h, d || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) != 0 || h->dynindx == -1 || h->verinfo.verdef == NULL) - return true; + return TRUE; /* See if we already know about this version. */ for (t = elf_tdata (rinfo->output_bfd)->verref; t != NULL; t = t->vn_nextref) @@ -4144,7 +4115,7 @@ elf_link_find_version_dependencies (h, d for (a = t->vn_auxptr; a != NULL; a = a->vna_nextptr) if (a->vna_nodename == h->verinfo.verdef->vd_nodename) - return true; + return TRUE; break; } @@ -4157,8 +4128,8 @@ elf_link_find_version_dependencies (h, d t = (Elf_Internal_Verneed *) bfd_zalloc (rinfo->output_bfd, amt); if (t == NULL) { - rinfo->failed = true; - return false; + rinfo->failed = TRUE; + return FALSE; } t->vn_bfd = h->verinfo.verdef->vd_bfd; @@ -4185,7 +4156,7 @@ elf_link_find_version_dependencies (h, d t->vn_auxptr = a; - return true; + return TRUE; } /* Figure out appropriate versions for all the symbols. We may not @@ -4193,7 +4164,7 @@ elf_link_find_version_dependencies (h, d files, so until that point we don't know which symbols should be local. This function is called via elf_link_hash_traverse. */ -static boolean +static bfd_boolean elf_link_assign_sym_version (h, data) struct elf_link_hash_entry *h; PTR data; @@ -4212,35 +4183,35 @@ elf_link_assign_sym_version (h, data) h = (struct elf_link_hash_entry *) h->root.u.i.link; /* Fix the symbol flags. */ - eif.failed = false; + eif.failed = FALSE; eif.info = info; if (! elf_fix_symbol_flags (h, &eif)) { if (eif.failed) - sinfo->failed = true; - return false; + sinfo->failed = TRUE; + return FALSE; } /* We only need version numbers for symbols defined in regular objects. */ if ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0) - return true; + return TRUE; bed = get_elf_backend_data (sinfo->output_bfd); p = strchr (h->root.root.string, ELF_VER_CHR); if (p != NULL && h->verinfo.vertree == NULL) { struct bfd_elf_version_tree *t; - boolean hidden; + bfd_boolean hidden; - hidden = true; + hidden = TRUE; /* There are two consecutive ELF_VER_CHR characters if this is not a hidden symbol. */ ++p; if (*p == ELF_VER_CHR) { - hidden = false; + hidden = FALSE; ++p; } @@ -4249,7 +4220,7 @@ elf_link_assign_sym_version (h, data) { if (hidden) h->elf_link_hash_flags |= ELF_LINK_HIDDEN; - return true; + return TRUE; } /* Look for the version. If we find it, it is no longer weak. */ @@ -4264,14 +4235,14 @@ elf_link_assign_sym_version (h, data) len = p - h->root.root.string; alc = bfd_malloc ((bfd_size_type) len); if (alc == NULL) - return false; + return FALSE; memcpy (alc, h->root.root.string, len - 1); alc[len - 1] = '\0'; if (alc[len - 2] == ELF_VER_CHR) alc[len - 2] = '\0'; h->verinfo.vertree = t; - t->used = true; + t->used = TRUE; d = NULL; if (t->globals != NULL) @@ -4293,7 +4264,7 @@ elf_link_assign_sym_version (h, data) && info->shared && ! info->export_dynamic) { - (*bed->elf_backend_hide_symbol) (info, h, true); + (*bed->elf_backend_hide_symbol) (info, h, TRUE); } break; @@ -4316,15 +4287,15 @@ elf_link_assign_sym_version (h, data) /* If we aren't going to export this symbol, we don't need to worry about it. */ if (h->dynindx == -1) - return true; + return TRUE; amt = sizeof *t; t = ((struct bfd_elf_version_tree *) bfd_alloc (sinfo->output_bfd, amt)); if (t == NULL) { - sinfo->failed = true; - return false; + sinfo->failed = TRUE; + return FALSE; } t->next = NULL; @@ -4333,7 +4304,7 @@ elf_link_assign_sym_version (h, data) t->locals = NULL; t->deps = NULL; t->name_indx = (unsigned int) -1; - t->used = true; + t->used = TRUE; version_index = 1; /* Don't count anonymous version tag. */ @@ -4355,8 +4326,8 @@ elf_link_assign_sym_version (h, data) (_("%s: undefined versioned symbol name %s"), bfd_get_filename (sinfo->output_bfd), h->root.root.string); bfd_set_error (bfd_error_bad_value); - sinfo->failed = true; - return false; + sinfo->failed = TRUE; + return FALSE; } if (hidden) @@ -4379,15 +4350,15 @@ elf_link_assign_sym_version (h, data) { if (t->globals != NULL) { - boolean matched; + bfd_boolean matched; - matched = false; + matched = FALSE; for (d = t->globals; d != NULL; d = d->next) { if ((*d->match) (d, h->root.root.string)) { if (d->symver) - matched = true; + matched = TRUE; else { /* There is a version without definition. Make @@ -4406,7 +4377,7 @@ elf_link_assign_sym_version (h, data) else if (matched) /* There is no undefined version for this symbol. Hide the default one. */ - (*bed->elf_backend_hide_symbol) (info, h, true); + (*bed->elf_backend_hide_symbol) (info, h, TRUE); } if (t->locals != NULL) @@ -4436,12 +4407,12 @@ elf_link_assign_sym_version (h, data) && info->shared && ! info->export_dynamic) { - (*bed->elf_backend_hide_symbol) (info, h, true); + (*bed->elf_backend_hide_symbol) (info, h, TRUE); } } } - return true; + return TRUE; } /* Final phase of ELF linker. */ @@ -4496,20 +4467,20 @@ struct elf_final_link_info size_t shndxbuf_size; }; -static boolean elf_link_output_sym +static bfd_boolean elf_link_output_sym PARAMS ((struct elf_final_link_info *, const char *, Elf_Internal_Sym *, asection *)); -static boolean elf_link_flush_output_syms +static bfd_boolean elf_link_flush_output_syms PARAMS ((struct elf_final_link_info *)); -static boolean elf_link_output_extsym +static bfd_boolean elf_link_output_extsym PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_link_sec_merge_syms +static bfd_boolean elf_link_sec_merge_syms PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_link_check_versioned_symbol +static bfd_boolean elf_link_check_versioned_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -static boolean elf_link_input_bfd +static bfd_boolean elf_link_input_bfd PARAMS ((struct elf_final_link_info *, bfd *)); -static boolean elf_reloc_link_order +static bfd_boolean elf_reloc_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); @@ -4517,15 +4488,15 @@ static boolean elf_reloc_link_order struct elf_outext_info { - boolean failed; - boolean localsyms; + bfd_boolean failed; + bfd_boolean localsyms; struct elf_final_link_info *finfo; }; /* Compute the size of, and allocate space for, REL_HDR which is the section header for a section containing relocations for O. */ -static boolean +static bfd_boolean elf_link_size_reloc_section (abfd, rel_hdr, o) bfd *abfd; Elf_Internal_Shdr *rel_hdr; @@ -4553,7 +4524,7 @@ elf_link_size_reloc_section (abfd, rel_h we zero the allocated space. */ rel_hdr->contents = (PTR) bfd_zalloc (abfd, rel_hdr->sh_size); if (rel_hdr->contents == NULL && rel_hdr->sh_size != 0) - return false; + return FALSE; /* We only allocate one set of hash entries, so we only do it the first time we are called. */ @@ -4566,12 +4537,12 @@ elf_link_size_reloc_section (abfd, rel_h bfd_zmalloc (num_rel_hashes * sizeof (struct elf_link_hash_entry *))); if (p == NULL) - return false; + return FALSE; elf_section_data (o)->rel_hashes = p; } - return true; + return TRUE; } /* When performing a relocateable link, the input relocations are @@ -4588,91 +4559,51 @@ elf_link_adjust_relocs (abfd, rel_hdr, c { unsigned int i; struct elf_backend_data *bed = get_elf_backend_data (abfd); - Elf_Internal_Rel *irel; - Elf_Internal_Rela *irela; - bfd_size_type amt = sizeof (Elf_Internal_Rel) * bed->s->int_rels_per_ext_rel; + bfd_byte *erela; + void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); + void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); - irel = (Elf_Internal_Rel *) bfd_zmalloc (amt); - if (irel == NULL) + if (rel_hdr->sh_entsize == sizeof (Elf_External_Rel)) { - (*_bfd_error_handler) (_("Error: out of memory")); - abort (); + swap_in = bed->s->swap_reloc_in; + swap_out = bed->s->swap_reloc_out; } - - amt = sizeof (Elf_Internal_Rela) * bed->s->int_rels_per_ext_rel; - irela = (Elf_Internal_Rela *) bfd_zmalloc (amt); - if (irela == NULL) + else if (rel_hdr->sh_entsize == sizeof (Elf_External_Rela)) { - (*_bfd_error_handler) (_("Error: out of memory")); - abort (); + swap_in = bed->s->swap_reloca_in; + swap_out = bed->s->swap_reloca_out; } + else + abort (); - for (i = 0; i < count; i++, rel_hash++) + if (bed->s->int_rels_per_ext_rel > MAX_INT_RELS_PER_EXT_REL) + abort (); + + erela = rel_hdr->contents; + for (i = 0; i < count; i++, rel_hash++, erela += rel_hdr->sh_entsize) { + Elf_Internal_Rela irela[MAX_INT_RELS_PER_EXT_REL]; + unsigned int j; + if (*rel_hash == NULL) continue; BFD_ASSERT ((*rel_hash)->indx >= 0); - if (rel_hdr->sh_entsize == sizeof (Elf_External_Rel)) - { - Elf_External_Rel *erel; - unsigned int j; - - erel = (Elf_External_Rel *) rel_hdr->contents + i; - if (bed->s->swap_reloc_in) - (*bed->s->swap_reloc_in) (abfd, (bfd_byte *) erel, irel); - else - elf_swap_reloc_in (abfd, erel, irel); - - for (j = 0; j < bed->s->int_rels_per_ext_rel; j++) - irel[j].r_info = ELF_R_INFO ((*rel_hash)->indx, - ELF_R_TYPE (irel[j].r_info)); - - if (bed->s->swap_reloc_out) - (*bed->s->swap_reloc_out) (abfd, irel, (bfd_byte *) erel); - else - elf_swap_reloc_out (abfd, irel, erel); - } - else - { - Elf_External_Rela *erela; - unsigned int j; - - BFD_ASSERT (rel_hdr->sh_entsize - == sizeof (Elf_External_Rela)); - - erela = (Elf_External_Rela *) rel_hdr->contents + i; - if (bed->s->swap_reloca_in) - (*bed->s->swap_reloca_in) (abfd, (bfd_byte *) erela, irela); - else - elf_swap_reloca_in (abfd, erela, irela); - - for (j = 0; j < bed->s->int_rels_per_ext_rel; j++) - irela[j].r_info = ELF_R_INFO ((*rel_hash)->indx, - ELF_R_TYPE (irela[j].r_info)); - - if (bed->s->swap_reloca_out) - (*bed->s->swap_reloca_out) (abfd, irela, (bfd_byte *) erela); - else - elf_swap_reloca_out (abfd, irela, erela); - } + (*swap_in) (abfd, erela, irela); + for (j = 0; j < bed->s->int_rels_per_ext_rel; j++) + irela[j].r_info = ELF_R_INFO ((*rel_hash)->indx, + ELF_R_TYPE (irela[j].r_info)); + (*swap_out) (abfd, irela, erela); } - - free (irel); - free (irela); } struct elf_link_sort_rela { bfd_vma offset; enum elf_reloc_type_class type; - union - { - /* We use these as arrays of size int_rels_per_ext_rel. */ - Elf_Internal_Rel rel[1]; - Elf_Internal_Rela rela[1]; - } u; + /* We use this as an array of size int_rels_per_ext_rel. */ + Elf_Internal_Rela rela[1]; }; static int @@ -4691,13 +4622,13 @@ elf_link_sort_cmp1 (A, B) return 1; if (relativea > relativeb) return -1; - if (ELF_R_SYM (a->u.rel->r_info) < ELF_R_SYM (b->u.rel->r_info)) + if (ELF_R_SYM (a->rela->r_info) < ELF_R_SYM (b->rela->r_info)) return -1; - if (ELF_R_SYM (a->u.rel->r_info) > ELF_R_SYM (b->u.rel->r_info)) + if (ELF_R_SYM (a->rela->r_info) > ELF_R_SYM (b->rela->r_info)) return 1; - if (a->u.rel->r_offset < b->u.rel->r_offset) + if (a->rela->r_offset < b->rela->r_offset) return -1; - if (a->u.rel->r_offset > b->u.rel->r_offset) + if (a->rela->r_offset > b->rela->r_offset) return 1; return 0; } @@ -4721,9 +4652,9 @@ elf_link_sort_cmp2 (A, B) return -1; if (copya > copyb) return 1; - if (a->u.rel->r_offset < b->u.rel->r_offset) + if (a->rela->r_offset < b->rela->r_offset) return -1; - if (a->u.rel->r_offset > b->u.rel->r_offset) + if (a->rela->r_offset > b->rela->r_offset) return 1; return 0; } @@ -4736,12 +4667,14 @@ elf_link_sort_relocs (abfd, info, psec) { bfd *dynobj = elf_hash_table (info)->dynobj; asection *reldyn, *o; - boolean rel = false; bfd_size_type count, size; - size_t i, j, ret; - struct elf_link_sort_rela *rela; + size_t i, ret, sort_elt, ext_size; + bfd_byte *sort, *s_non_relative, *p; + struct elf_link_sort_rela *sq; struct elf_backend_data *bed = get_elf_backend_data (abfd); int i2e = bed->s->int_rels_per_ext_rel; + void (*swap_in) PARAMS ((bfd *, const bfd_byte *, Elf_Internal_Rela *)); + void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); reldyn = bfd_get_section_by_name (abfd, ".rela.dyn"); if (reldyn == NULL || reldyn->_raw_size == 0) @@ -4749,11 +4682,17 @@ elf_link_sort_relocs (abfd, info, psec) reldyn = bfd_get_section_by_name (abfd, ".rel.dyn"); if (reldyn == NULL || reldyn->_raw_size == 0) return 0; - rel = true; - count = reldyn->_raw_size / sizeof (Elf_External_Rel); + ext_size = sizeof (Elf_External_Rel); + swap_in = bed->s->swap_reloc_in; + swap_out = bed->s->swap_reloc_out; } else - count = reldyn->_raw_size / sizeof (Elf_External_Rela); + { + ext_size = sizeof (Elf_External_Rela); + swap_in = bed->s->swap_reloca_in; + swap_out = bed->s->swap_reloca_out; + } + count = reldyn->_raw_size / ext_size; size = 0; for (o = dynobj->sections; o != NULL; o = o->next) @@ -4765,24 +4704,10 @@ elf_link_sort_relocs (abfd, info, psec) if (size != reldyn->_raw_size) return 0; - /* We waste some memory here when N = i2e is greater than 1, since - we allocate space for N * sizeof (*rela) where sizeof (*rela) + - (N - 1) * sizeof (Elf_Internal_Rel/Rela) would do. Also, we use - rela[k] only when k is a multiple of N, and then we index the - array within the union, such that rela[k].u.rel[i], i < N, is the - (i+1)th internal relocation corresponding to the (k/N)th external - relocation. This is done such that the relocation swap-in and - swap-out functions can gen pointers to arrays of internal - relocations that form a single external relocation. - - If C permitted arrays of structures with dynamic sizes, we could - do better, but trying to avoid wasting space at the end of the - chunk from rela[k] to rela[k+N-1] would require us to allocate a - separate array of pointers and since most ports have N == 1, this - would be more wasteful. */ - rela = (struct elf_link_sort_rela *) bfd_zmalloc - (sizeof (*rela) * count * i2e); - if (rela == NULL) + sort_elt = (sizeof (struct elf_link_sort_rela) + + (i2e - 1) * sizeof (Elf_Internal_Rela)); + sort = bfd_zmalloc (sort_elt * count); + if (sort == NULL) { (*info->callbacks->warning) (info, _("Not enough memory to sort relocations"), 0, abfd, 0, @@ -4795,116 +4720,75 @@ elf_link_sort_relocs (abfd, info, psec) == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED) && o->output_section == reldyn) { - if (rel) - { - Elf_External_Rel *erel, *erelend; - struct elf_link_sort_rela *s; + bfd_byte *erel, *erelend; - erel = (Elf_External_Rel *) o->contents; - erelend = (Elf_External_Rel *) (o->contents + o->_raw_size); - s = rela + (o->output_offset / sizeof (Elf_External_Rel) * i2e); - for (; erel < erelend; erel++, s += i2e) - { - if (bed->s->swap_reloc_in) - (*bed->s->swap_reloc_in) (abfd, (bfd_byte *) erel, - s->u.rel); - else - elf_swap_reloc_in (abfd, erel, s->u.rel); - - s->type = (*bed->elf_backend_reloc_type_class) (s->u.rela); - } - } - else + erel = o->contents; + erelend = o->contents + o->_raw_size; + p = sort + o->output_offset / ext_size * sort_elt; + while (erel < erelend) { - Elf_External_Rela *erela, *erelaend; - struct elf_link_sort_rela *s; - - erela = (Elf_External_Rela *) o->contents; - erelaend = (Elf_External_Rela *) (o->contents + o->_raw_size); - s = rela + (o->output_offset / sizeof (Elf_External_Rela) * i2e); - for (; erela < erelaend; erela++, s += i2e) - { - if (bed->s->swap_reloca_in) - (*bed->s->swap_reloca_in) (dynobj, (bfd_byte *) erela, - s->u.rela); - else - elf_swap_reloca_in (dynobj, erela, s->u.rela); - - s->type = (*bed->elf_backend_reloc_type_class) (s->u.rela); - } + struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p; + (*swap_in) (abfd, erel, s->rela); + s->type = (*bed->elf_backend_reloc_type_class) (s->rela); + p += sort_elt; + erel += ext_size; } } - qsort (rela, (size_t) count, sizeof (*rela) * i2e, elf_link_sort_cmp1); - for (ret = 0; ret < count * i2e && rela[ret].type == reloc_class_relative; - ret += i2e) - ; - for (i = ret, j = ret; i < count * i2e; i += i2e) - { - if (ELF_R_SYM (rela[i].u.rel->r_info) - != ELF_R_SYM (rela[j].u.rel->r_info)) - j = i; - rela[i].offset = rela[j].u.rel->r_offset; - } - ret /= i2e; - qsort (rela + ret, (size_t) count - ret, - sizeof (*rela) * i2e, elf_link_sort_cmp2); + qsort (sort, (size_t) count, sort_elt, elf_link_sort_cmp1); + + for (i = 0, p = sort; i < count; i++, p += sort_elt) + { + struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p; + if (s->type != reloc_class_relative) + break; + } + ret = i; + s_non_relative = p; + + sq = (struct elf_link_sort_rela *) s_non_relative; + for (; i < count; i++, p += sort_elt) + { + struct elf_link_sort_rela *sp = (struct elf_link_sort_rela *) p; + if (ELF_R_SYM (sp->rela->r_info) != ELF_R_SYM (sq->rela->r_info)) + sq = sp; + sp->offset = sq->rela->r_offset; + } + + qsort (s_non_relative, (size_t) count - ret, sort_elt, elf_link_sort_cmp2); for (o = dynobj->sections; o != NULL; o = o->next) if ((o->flags & (SEC_HAS_CONTENTS|SEC_LINKER_CREATED)) == (SEC_HAS_CONTENTS|SEC_LINKER_CREATED) && o->output_section == reldyn) { - if (rel) - { - Elf_External_Rel *erel, *erelend; - struct elf_link_sort_rela *s; + bfd_byte *erel, *erelend; - erel = (Elf_External_Rel *) o->contents; - erelend = (Elf_External_Rel *) (o->contents + o->_raw_size); - s = rela + (o->output_offset / sizeof (Elf_External_Rel) * i2e); - for (; erel < erelend; erel++, s += i2e) - { - if (bed->s->swap_reloc_out) - (*bed->s->swap_reloc_out) (abfd, s->u.rel, - (bfd_byte *) erel); - else - elf_swap_reloc_out (abfd, s->u.rel, erel); - } - } - else + erel = o->contents; + erelend = o->contents + o->_raw_size; + p = sort + o->output_offset / ext_size * sort_elt; + while (erel < erelend) { - Elf_External_Rela *erela, *erelaend; - struct elf_link_sort_rela *s; - - erela = (Elf_External_Rela *) o->contents; - erelaend = (Elf_External_Rela *) (o->contents + o->_raw_size); - s = rela + (o->output_offset / sizeof (Elf_External_Rela) * i2e); - for (; erela < erelaend; erela++, s += i2e) - { - if (bed->s->swap_reloca_out) - (*bed->s->swap_reloca_out) (dynobj, s->u.rela, - (bfd_byte *) erela); - else - elf_swap_reloca_out (dynobj, s->u.rela, erela); - } + struct elf_link_sort_rela *s = (struct elf_link_sort_rela *) p; + (*swap_out) (abfd, s->rela, erel); + p += sort_elt; + erel += ext_size; } } - free (rela); *psec = reldyn; return ret; } /* Do the final step of an ELF link. */ -boolean +bfd_boolean elf_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; { - boolean dynamic; - boolean emit_relocs; + bfd_boolean dynamic; + bfd_boolean emit_relocs; bfd *dynobj; struct elf_final_link_info finfo; register asection *o; @@ -4923,13 +4807,13 @@ elf_bfd_final_link (abfd, info) Elf_Internal_Shdr *symstrtab_hdr; struct elf_backend_data *bed = get_elf_backend_data (abfd); struct elf_outext_info eoinfo; - boolean merged; + bfd_boolean merged; size_t relativecount = 0; asection *reldyn = 0; bfd_size_type amt; if (! is_elf_hash_table (info)) - return false; + return FALSE; if (info->shared) abfd->flags |= DYNAMIC; @@ -4945,7 +4829,7 @@ elf_bfd_final_link (abfd, info) finfo.output_bfd = abfd; finfo.symstrtab = elf_stringtab_init (); if (finfo.symstrtab == NULL) - return false; + return FALSE; if (! dynamic) { @@ -4991,7 +4875,7 @@ elf_bfd_final_link (abfd, info) max_internal_reloc_count = 0; max_sym_count = 0; max_sym_shndx_count = 0; - merged = false; + merged = FALSE; for (o = abfd->sections; o != (asection *) NULL; o = o->next) { o->reloc_count = 0; @@ -5011,10 +4895,10 @@ elf_bfd_final_link (abfd, info) link. This will normally be every section. We need to do this so that we can identify any sections which the linker has decided to not include. */ - sec->linker_mark = true; + sec->linker_mark = TRUE; if (sec->flags & SEC_MERGE) - merged = true; + merged = TRUE; if (info->relocateable || info->emitrelocations) o->reloc_count += sec->reloc_count; @@ -5202,7 +5086,7 @@ elf_bfd_final_link (abfd, info) symtab_hdr->sh_addralign = bed->s->file_align; off = elf_tdata (abfd)->next_file_pos; - off = _bfd_elf_assign_file_position_for_section (symtab_hdr, off, true); + off = _bfd_elf_assign_file_position_for_section (symtab_hdr, off, TRUE); /* Note that at this point elf_tdata (abfd)->next_file_pos is incorrect. We do not yet know the size of the .symtab section. @@ -5401,7 +5285,7 @@ elf_bfd_final_link (abfd, info) know how bad the memory loss will be. */ for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) - sub->output_has_begun = false; + sub->output_has_begun = FALSE; for (o = abfd->sections; o != NULL; o = o->next) { for (p = o->link_order_head; p != NULL; p = p->next) @@ -5415,7 +5299,7 @@ elf_bfd_final_link (abfd, info) { if (! elf_link_input_bfd (&finfo, sub)) goto error_return; - sub->output_has_begun = true; + sub->output_has_begun = TRUE; } } else if (p->type == bfd_section_reloc_link_order @@ -5438,13 +5322,13 @@ elf_bfd_final_link (abfd, info) prior to any global symbols. FIXME: We should only do this if some global symbols were, in fact, converted to become local. FIXME: Will this work correctly with the Irix 5 linker? */ - eoinfo.failed = false; + eoinfo.failed = FALSE; eoinfo.finfo = &finfo; - eoinfo.localsyms = true; + eoinfo.localsyms = TRUE; elf_link_hash_traverse (elf_hash_table (info), elf_link_output_extsym, (PTR) &eoinfo); if (eoinfo.failed) - return false; + return FALSE; /* That wrote out all the local symbols. Finish up the symbol table with the global symbols. Even if we want to strip everything we @@ -5532,30 +5416,29 @@ elf_bfd_final_link (abfd, info) } /* We get the global symbols from the hash table. */ - eoinfo.failed = false; - eoinfo.localsyms = false; + eoinfo.failed = FALSE; + eoinfo.localsyms = FALSE; eoinfo.finfo = &finfo; elf_link_hash_traverse (elf_hash_table (info), elf_link_output_extsym, (PTR) &eoinfo); if (eoinfo.failed) - return false; + return FALSE; /* If backend needs to output some symbols not present in the hash table, do it now. */ if (bed->elf_backend_output_arch_syms) { - typedef boolean (*out_sym_func) PARAMS ((PTR, const char *, - Elf_Internal_Sym *, - asection *)); + typedef bfd_boolean (*out_sym_func) + PARAMS ((PTR, const char *, Elf_Internal_Sym *, asection *)); if (! ((*bed->elf_backend_output_arch_syms) (abfd, info, (PTR) &finfo, (out_sym_func) elf_link_output_sym))) - return false; + return FALSE; } /* Flush all symbols to the file. */ if (! elf_link_flush_output_syms (&finfo)) - return false; + return FALSE; /* Now we know the size of the symtab section. */ off += symtab_hdr->sh_size; @@ -5570,11 +5453,11 @@ elf_bfd_final_link (abfd, info) symtab_shndx_hdr->sh_size = amt; off = _bfd_elf_assign_file_position_for_section (symtab_shndx_hdr, - off, true); + off, TRUE); if (bfd_seek (abfd, symtab_shndx_hdr->sh_offset, SEEK_SET) != 0 || (bfd_bwrite ((PTR) finfo.symshndxbuf, amt, abfd) != amt)) - return false; + return FALSE; } @@ -5592,14 +5475,14 @@ elf_bfd_final_link (abfd, info) /* sh_offset is set just below. */ symstrtab_hdr->sh_addralign = 1; - off = _bfd_elf_assign_file_position_for_section (symstrtab_hdr, off, true); + off = _bfd_elf_assign_file_position_for_section (symstrtab_hdr, off, TRUE); elf_tdata (abfd)->next_file_pos = off; if (bfd_get_symcount (abfd) > 0) { if (bfd_seek (abfd, symstrtab_hdr->sh_offset, SEEK_SET) != 0 || ! _bfd_stringtab_emit (abfd, finfo.symstrtab)) - return false; + return FALSE; } /* Adjust the relocs to have the correct symbol indices. */ @@ -5676,7 +5559,7 @@ elf_bfd_final_link (abfd, info) struct elf_link_hash_entry *h; h = elf_link_hash_lookup (elf_hash_table (info), name, - false, false, true); + FALSE, FALSE, TRUE); if (h != NULL && (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak)) @@ -5838,7 +5721,7 @@ elf_bfd_final_link (abfd, info) if (info->relocateable) { - boolean failed = false; + bfd_boolean failed = FALSE; bfd_map_over_sections (abfd, bfd_elf_set_group_contents, &failed); if (failed) @@ -5887,9 +5770,9 @@ elf_bfd_final_link (abfd, info) free (elf_section_data (o)->rel_hashes); } - elf_tdata (abfd)->linker = true; + elf_tdata (abfd)->linker = TRUE; - return true; + return TRUE; error_return: if (finfo.symstrtab != NULL) @@ -5921,12 +5804,12 @@ elf_bfd_final_link (abfd, info) free (elf_section_data (o)->rel_hashes); } - return false; + return FALSE; } /* Add a symbol to the output symbol table. */ -static boolean +static bfd_boolean elf_link_output_sym (finfo, name, elfsym, input_sec) struct elf_final_link_info *finfo; const char *name; @@ -5935,12 +5818,9 @@ elf_link_output_sym (finfo, name, elfsym { Elf_External_Sym *dest; Elf_External_Sym_Shndx *destshndx; - - boolean (*output_symbol_hook) PARAMS ((bfd *, - struct bfd_link_info *info, - const char *, - Elf_Internal_Sym *, - asection *)); + bfd_boolean (*output_symbol_hook) + PARAMS ((bfd *, struct bfd_link_info *info, const char *, + Elf_Internal_Sym *, asection *)); output_symbol_hook = get_elf_backend_data (finfo->output_bfd)-> elf_backend_link_output_symbol_hook; @@ -5948,7 +5828,7 @@ elf_link_output_sym (finfo, name, elfsym { if (! ((*output_symbol_hook) (finfo->output_bfd, finfo->info, name, elfsym, input_sec))) - return false; + return FALSE; } if (name == (const char *) NULL || *name == '\0') @@ -5958,15 +5838,15 @@ elf_link_output_sym (finfo, name, elfsym else { elfsym->st_name = (unsigned long) _bfd_stringtab_add (finfo->symstrtab, - name, true, false); + name, TRUE, FALSE); if (elfsym->st_name == (unsigned long) -1) - return false; + return FALSE; } if (finfo->symbuf_count >= finfo->symbuf_size) { if (! elf_link_flush_output_syms (finfo)) - return false; + return FALSE; } dest = finfo->symbuf + finfo->symbuf_count; @@ -5980,7 +5860,7 @@ elf_link_output_sym (finfo, name, elfsym amt = finfo->shndxbuf_size * sizeof (Elf_External_Sym_Shndx); finfo->symshndxbuf = destshndx = bfd_realloc (destshndx, amt * 2); if (destshndx == NULL) - return false; + return FALSE; memset ((char *) destshndx + amt, 0, amt); finfo->shndxbuf_size *= 2; } @@ -5991,12 +5871,12 @@ elf_link_output_sym (finfo, name, elfsym finfo->symbuf_count += 1; bfd_get_symcount (finfo->output_bfd) += 1; - return true; + return TRUE; } /* Flush the output symbols to the file. */ -static boolean +static bfd_boolean elf_link_flush_output_syms (finfo) struct elf_final_link_info *finfo; { @@ -6011,19 +5891,19 @@ elf_link_flush_output_syms (finfo) amt = finfo->symbuf_count * sizeof (Elf_External_Sym); if (bfd_seek (finfo->output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite ((PTR) finfo->symbuf, amt, finfo->output_bfd) != amt) - return false; + return FALSE; hdr->sh_size += amt; finfo->symbuf_count = 0; } - return true; + return TRUE; } /* Adjust all external symbols pointing into SEC_MERGE sections to reflect the object merging within the sections. */ -static boolean +static bfd_boolean elf_link_sec_merge_syms (h, data) struct elf_link_hash_entry *h; PTR data; @@ -6047,14 +5927,14 @@ elf_link_sec_merge_syms (h, data) h->root.u.def.value, (bfd_vma) 0); } - return true; + return TRUE; } /* For DSOs loaded in via a DT_NEEDED entry, emulate ld.so in allowing an unsatisfied unversioned symbol in the DSO to match a versioned symbol that would normally require an explicit version. */ -static boolean +static bfd_boolean elf_link_check_versioned_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -6065,7 +5945,7 @@ elf_link_check_versioned_symbol (info, h if ((undef_bfd->flags & DYNAMIC) == 0 || info->hash->creator->flavour != bfd_target_elf_flavour || elf_dt_soname (h->root.u.undef.abfd) == NULL) - return false; + return FALSE; for (loaded = elf_hash_table (info)->loaded; loaded != NULL; @@ -6111,7 +5991,7 @@ elf_link_check_versioned_symbol (info, h isymbuf = bfd_elf_get_elf_syms (input, hdr, extsymcount, extsymoff, NULL, NULL, NULL); if (isymbuf == NULL) - return false; + return FALSE; /* Read in any version definitions. */ versymhdr = &elf_tdata (input)->dynversym_hdr; @@ -6126,7 +6006,7 @@ elf_link_check_versioned_symbol (info, h free (extversym); error_ret: free (isymbuf); - return false; + return FALSE; } ever = extversym + extsymoff; @@ -6160,7 +6040,7 @@ elf_link_check_versioned_symbol (info, h /* This is the oldest (default) sym. We can use it. */ free (extversym); free (isymbuf); - return true; + return TRUE; } } @@ -6168,7 +6048,7 @@ elf_link_check_versioned_symbol (info, h free (isymbuf); } - return false; + return FALSE; } /* Add an external symbol to the symbol table. This is called from @@ -6178,14 +6058,14 @@ elf_link_check_versioned_symbol (info, h script. The second time we output the symbols that are still global symbols. */ -static boolean +static bfd_boolean elf_link_output_extsym (h, data) struct elf_link_hash_entry *h; PTR data; { struct elf_outext_info *eoinfo = (struct elf_outext_info *) data; struct elf_final_link_info *finfo = eoinfo->finfo; - boolean strip; + bfd_boolean strip; Elf_Internal_Sym sym; asection *input_sec; @@ -6193,19 +6073,19 @@ elf_link_output_extsym (h, data) { h = (struct elf_link_hash_entry *) h->root.u.i.link; if (h->root.type == bfd_link_hash_new) - return true; + return TRUE; } /* Decide whether to output this symbol in this pass. */ if (eoinfo->localsyms) { if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) - return true; + return TRUE; } else { if ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0) - return true; + return TRUE; } /* If we are not creating a shared library, and this symbol is @@ -6225,10 +6105,10 @@ elf_link_output_extsym (h, data) { if (! ((*finfo->info->callbacks->undefined_symbol) (finfo->info, h->root.root.string, h->root.u.undef.abfd, - (asection *) NULL, (bfd_vma) 0, true))) + (asection *) NULL, (bfd_vma) 0, TRUE))) { - eoinfo->failed = true; - return false; + eoinfo->failed = TRUE; + return FALSE; } } @@ -6237,27 +6117,32 @@ elf_link_output_extsym (h, data) h->indx is set to -2, the symbol is used by a reloc and we must output it. */ if (h->indx == -2) - strip = false; + strip = FALSE; else if (((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0 || (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0) && (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0 && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0) - strip = true; - else if (finfo->info->strip == strip_all - || (finfo->info->strip == strip_some - && bfd_hash_lookup (finfo->info->keep_hash, - h->root.root.string, - false, false) == NULL)) - strip = true; + strip = TRUE; + else if (finfo->info->strip == strip_all) + strip = TRUE; + else if (finfo->info->strip == strip_some + && bfd_hash_lookup (finfo->info->keep_hash, + h->root.root.string, FALSE, FALSE) == NULL) + strip = TRUE; + else if (finfo->info->strip_discarded + && (h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + && elf_discarded_section (h->root.u.def.section)) + strip = TRUE; else - strip = false; + strip = FALSE; /* If we're stripping it, and it's not a dynamic symbol, there's nothing else to do unless it is a forced local symbol. */ if (strip && h->dynindx == -1 && (h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) - return true; + return TRUE; sym.st_value = 0; sym.st_size = h->size; @@ -6276,7 +6161,7 @@ elf_link_output_extsym (h, data) case bfd_link_hash_new: case bfd_link_hash_warning: abort (); - return false; + return FALSE; case bfd_link_hash_undefined: case bfd_link_hash_undefweak: @@ -6300,8 +6185,8 @@ elf_link_output_extsym (h, data) bfd_get_filename (finfo->output_bfd), input_sec->output_section->name, input_sec->name); - eoinfo->failed = true; - return false; + eoinfo->failed = TRUE; + return FALSE; } /* ELF symbols in relocateable files are section relative, @@ -6343,7 +6228,7 @@ elf_link_output_extsym (h, data) foo is used with no version, then we add an indirect symbol foo which points to foo@@GNU_1.2. We ignore these symbols, since the indirected symbol is already in the hash table. */ - return true; + return TRUE; } /* Give the processor backend a chance to tweak the symbol value, @@ -6362,8 +6247,8 @@ elf_link_output_extsym (h, data) if (! ((*bed->elf_backend_finish_dynamic_symbol) (finfo->output_bfd, finfo->info, h, &sym))) { - eoinfo->failed = true; - return false; + eoinfo->failed = TRUE; + return FALSE; } } @@ -6454,24 +6339,24 @@ elf_link_output_extsym (h, data) /* If we're stripping it, then it was just a dynamic symbol, and there's nothing else to do. */ if (strip || (input_sec->flags & SEC_EXCLUDE) != 0) - return true; + return TRUE; h->indx = bfd_get_symcount (finfo->output_bfd); if (! elf_link_output_sym (finfo, h->root.root.string, &sym, input_sec)) { - eoinfo->failed = true; - return false; + eoinfo->failed = TRUE; + return FALSE; } - return true; + return TRUE; } /* Copy the relocations indicated by the INTERNAL_RELOCS (which originated from the section given by INPUT_REL_HDR) to the OUTPUT_BFD. */ -static boolean +static bfd_boolean elf_link_output_relocs (output_bfd, input_section, input_rel_hdr, internal_relocs) bfd *output_bfd; @@ -6481,11 +6366,12 @@ elf_link_output_relocs (output_bfd, inpu { Elf_Internal_Rela *irela; Elf_Internal_Rela *irelaend; + bfd_byte *erel; Elf_Internal_Shdr *output_rel_hdr; asection *output_section; unsigned int *rel_countp = NULL; struct elf_backend_data *bed; - bfd_size_type amt; + void (*swap_out) PARAMS ((bfd *, const Elf_Internal_Rela *, bfd_byte *)); output_section = input_section->output_section; output_rel_hdr = NULL; @@ -6511,66 +6397,34 @@ elf_link_output_relocs (output_bfd, inpu bfd_archive_filename (input_section->owner), input_section->name); bfd_set_error (bfd_error_wrong_object_format); - return false; + return FALSE; } bed = get_elf_backend_data (output_bfd); + if (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rel)) + swap_out = bed->s->swap_reloc_out; + else if (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rela)) + swap_out = bed->s->swap_reloca_out; + else + abort (); + + erel = output_rel_hdr->contents; + erel += *rel_countp * input_rel_hdr->sh_entsize; irela = internal_relocs; irelaend = irela + (NUM_SHDR_ENTRIES (input_rel_hdr) * bed->s->int_rels_per_ext_rel); - - if (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rel)) - { - Elf_External_Rel *erel; - Elf_Internal_Rel *irel; - - amt = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rel); - irel = (Elf_Internal_Rel *) bfd_zmalloc (amt); - if (irel == NULL) - { - (*_bfd_error_handler) (_("Error: out of memory")); - abort (); - } - - erel = ((Elf_External_Rel *) output_rel_hdr->contents + *rel_countp); - for (; irela < irelaend; irela += bed->s->int_rels_per_ext_rel, erel++) - { - unsigned int i; - - for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) - { - irel[i].r_offset = irela[i].r_offset; - irel[i].r_info = irela[i].r_info; - BFD_ASSERT (irela[i].r_addend == 0); - } - - if (bed->s->swap_reloc_out) - (*bed->s->swap_reloc_out) (output_bfd, irel, (PTR) erel); - else - elf_swap_reloc_out (output_bfd, irel, erel); - } - - free (irel); - } - else + while (irela < irelaend) { - Elf_External_Rela *erela; - - BFD_ASSERT (input_rel_hdr->sh_entsize == sizeof (Elf_External_Rela)); - - erela = ((Elf_External_Rela *) output_rel_hdr->contents + *rel_countp); - for (; irela < irelaend; irela += bed->s->int_rels_per_ext_rel, erela++) - if (bed->s->swap_reloca_out) - (*bed->s->swap_reloca_out) (output_bfd, irela, (PTR) erela); - else - elf_swap_reloca_out (output_bfd, irela, erela); + (*swap_out) (output_bfd, irela, erel); + irela += bed->s->int_rels_per_ext_rel; + erel += input_rel_hdr->sh_entsize; } /* Bump the counter, so that we know where to add the next set of relocations. */ *rel_countp += NUM_SHDR_ENTRIES (input_rel_hdr); - return true; + return TRUE; } /* Link an input file into the linker output file. This function @@ -6578,15 +6432,14 @@ elf_link_output_relocs (output_bfd, inpu This is so that we only have to read the local symbols once, and don't have to keep them in memory. */ -static boolean +static bfd_boolean elf_link_input_bfd (finfo, input_bfd) struct elf_final_link_info *finfo; bfd *input_bfd; { - boolean (*relocate_section) PARAMS ((bfd *, struct bfd_link_info *, - bfd *, asection *, bfd_byte *, - Elf_Internal_Rela *, - Elf_Internal_Sym *, asection **)); + bfd_boolean (*relocate_section) + PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, + Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); bfd *output_bfd; Elf_Internal_Shdr *symtab_hdr; size_t locsymcount; @@ -6598,7 +6451,7 @@ elf_link_input_bfd (finfo, input_bfd) asection **ppsection; asection *o; struct elf_backend_data *bed; - boolean emit_relocs; + bfd_boolean emit_relocs; struct elf_link_hash_entry **sym_hashes; output_bfd = finfo->output_bfd; @@ -6609,7 +6462,7 @@ elf_link_input_bfd (finfo, input_bfd) we don't want the local symbols, and we don't want the section contents. */ if ((input_bfd->flags & DYNAMIC) != 0) - return true; + return TRUE; emit_relocs = (finfo->info->relocateable || finfo->info->emitrelocations @@ -6636,7 +6489,7 @@ elf_link_input_bfd (finfo, input_bfd) finfo->external_syms, finfo->locsym_shndx); if (isymbuf == NULL) - return false; + return FALSE; } /* Find local symbol sections and adjust values of symbols in @@ -6729,11 +6582,11 @@ elf_link_input_bfd (finfo, input_bfd) name = bfd_elf_string_from_elf_section (input_bfd, symtab_hdr->sh_link, isym->st_name); if (name == NULL) - return false; + return FALSE; /* See if we are discarding symbols with this name. */ if ((finfo->info->strip == strip_some - && (bfd_hash_lookup (finfo->info->keep_hash, name, false, false) + && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE) == NULL)) || (((finfo->info->discard == discard_sec_merge && (isec->flags & SEC_MERGE) && ! finfo->info->relocateable) @@ -6749,7 +6602,7 @@ elf_link_input_bfd (finfo, input_bfd) osym.st_shndx = _bfd_elf_section_from_bfd_section (output_bfd, isec->output_section); if (osym.st_shndx == SHN_BAD) - return false; + return FALSE; *pindex = bfd_get_symcount (output_bfd); @@ -6773,7 +6626,7 @@ elf_link_input_bfd (finfo, input_bfd) } if (! elf_link_output_sym (finfo, name, &osym, isec)) - return false; + return FALSE; } /* Relocate the contents of each section. */ @@ -6810,7 +6663,7 @@ elf_link_input_bfd (finfo, input_bfd) contents = finfo->contents; if (! bfd_get_section_contents (input_bfd, o, contents, (file_ptr) 0, o->_raw_size)) - return false; + return FALSE; } if ((o->flags & SEC_RELOC) != 0) @@ -6820,10 +6673,10 @@ elf_link_input_bfd (finfo, input_bfd) /* Get the swapped relocs. */ internal_relocs = (NAME(_bfd_elf,link_read_relocs) (input_bfd, o, finfo->external_relocs, - finfo->internal_relocs, false)); + finfo->internal_relocs, FALSE)); if (internal_relocs == NULL && o->reloc_count > 0) - return false; + return FALSE; /* Run through the relocs looking for any against symbols from discarded sections and section symbols from @@ -6868,8 +6721,8 @@ elf_link_input_bfd (finfo, input_bfd) if (! ((*finfo->info->callbacks->undefined_symbol) (finfo->info, h->root.root.string, input_bfd, o, rel->r_offset, - true))) - return false; + TRUE))) + return FALSE; } } } @@ -6889,7 +6742,7 @@ elf_link_input_bfd (finfo, input_bfd) } else { - boolean ok; + bfd_boolean ok; const char *msg = _("local symbols in discarded section %s"); bfd_size_type amt @@ -6904,11 +6757,11 @@ elf_link_input_bfd (finfo, input_bfd) ->undefined_symbol) (finfo->info, buf, input_bfd, o, rel->r_offset, - true); + TRUE); if (buf != sec->name) free (buf); if (!ok) - return false; + return FALSE; } } } @@ -6940,7 +6793,7 @@ elf_link_input_bfd (finfo, input_bfd) internal_relocs, isymbuf, finfo->sections)) - return false; + return FALSE; if (emit_relocs) { @@ -6950,10 +6803,10 @@ elf_link_input_bfd (finfo, input_bfd) struct elf_link_hash_entry **rel_hash; Elf_Internal_Shdr *input_rel_hdr, *input_rel_hdr2; unsigned int next_erel; - boolean (*reloc_emitter) PARAMS ((bfd *, asection *, - Elf_Internal_Shdr *, - Elf_Internal_Rela *)); - boolean rela_normal; + bfd_boolean (*reloc_emitter) + PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, + Elf_Internal_Rela *)); + bfd_boolean rela_normal; input_rel_hdr = &elf_section_data (o)->rel_hdr; rela_normal = (bed->rela_normal @@ -6991,7 +6844,7 @@ elf_link_input_bfd (finfo, input_bfd) Turn it into an R_*_NONE reloc, at the same offset as the last reloc. elf_eh_frame.c and elf_bfd_discard_info rely on reloc offsets - being ordered. */ + being ordered. */ irela->r_offset = last_offset; irela->r_info = 0; irela->r_addend = 0; @@ -7060,7 +6913,7 @@ elf_link_input_bfd (finfo, input_bfd) else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -7085,7 +6938,7 @@ elf_link_input_bfd (finfo, input_bfd) { /* You can't do ld -r -s. */ bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* This symbol was skipped earlier, but @@ -7095,14 +6948,14 @@ elf_link_input_bfd (finfo, input_bfd) name = (bfd_elf_string_from_elf_section (input_bfd, shlink, sym.st_name)); if (name == NULL) - return false; + return FALSE; osec = sec->output_section; sym.st_shndx = _bfd_elf_section_from_bfd_section (output_bfd, osec); if (sym.st_shndx == SHN_BAD) - return false; + return FALSE; sym.st_value += sec->output_offset; if (! finfo->info->relocateable) @@ -7121,7 +6974,7 @@ elf_link_input_bfd (finfo, input_bfd) = bfd_get_symcount (output_bfd); if (! elf_link_output_sym (finfo, name, &sym, sec)) - return false; + return FALSE; } r_symndx = finfo->indices[r_symndx]; @@ -7142,7 +6995,7 @@ elf_link_input_bfd (finfo, input_bfd) if (input_rel_hdr->sh_size != 0 && ! (*reloc_emitter) (output_bfd, o, input_rel_hdr, internal_relocs)) - return false; + return FALSE; input_rel_hdr2 = elf_section_data (o)->rel_hdr2; if (input_rel_hdr2 && input_rel_hdr2->sh_size != 0) @@ -7151,7 +7004,7 @@ elf_link_input_bfd (finfo, input_bfd) * bed->s->int_rels_per_ext_rel); if (! (*reloc_emitter) (output_bfd, o, input_rel_hdr2, internal_relocs)) - return false; + return FALSE; } } } @@ -7169,18 +7022,18 @@ elf_link_input_bfd (finfo, input_bfd) (output_bfd, &elf_hash_table (finfo->info)->stab_info, o, &elf_section_data (o)->sec_info, contents))) - return false; + return FALSE; break; case ELF_INFO_TYPE_MERGE: if (! _bfd_write_merged_section (output_bfd, o, elf_section_data (o)->sec_info)) - return false; + return FALSE; break; case ELF_INFO_TYPE_EH_FRAME: { if (! _bfd_elf_write_section_eh_frame (output_bfd, finfo->info, o, contents)) - return false; + return FALSE; } break; default: @@ -7193,13 +7046,13 @@ elf_link_input_bfd (finfo, input_bfd) contents, (file_ptr) o->output_offset, sec_size)) - return false; + return FALSE; } break; } } - return true; + return TRUE; } /* Generate a reloc when linking an ELF file. This is a reloc @@ -7207,7 +7060,7 @@ elf_link_input_bfd (finfo, input_bfd) is used to build constructor and destructor tables when linking with -Ur. */ -static boolean +static bfd_boolean elf_reloc_link_order (output_bfd, info, output_section, link_order) bfd *output_bfd; struct bfd_link_info *info; @@ -7221,12 +7074,15 @@ elf_reloc_link_order (output_bfd, info, struct elf_link_hash_entry **rel_hash_ptr; Elf_Internal_Shdr *rel_hdr; struct elf_backend_data *bed = get_elf_backend_data (output_bfd); + Elf_Internal_Rela irel[MAX_INT_RELS_PER_EXT_REL]; + bfd_byte *erel; + unsigned int i; howto = bfd_reloc_type_lookup (output_bfd, link_order->u.reloc.p->reloc); if (howto == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } addend = link_order->u.reloc.p->addend; @@ -7250,7 +7106,7 @@ elf_reloc_link_order (output_bfd, info, h = ((struct elf_link_hash_entry *) bfd_wrapped_link_hash_lookup (output_bfd, info, link_order->u.reloc.p->u.name, - false, false, true)); + FALSE, FALSE, TRUE)); if (h != NULL && (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak)) @@ -7278,7 +7134,7 @@ elf_reloc_link_order (output_bfd, info, if (! ((*info->callbacks->unattached_reloc) (info, link_order->u.reloc.p->u.name, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) - return false; + return FALSE; indx = 0; } } @@ -7290,13 +7146,13 @@ elf_reloc_link_order (output_bfd, info, bfd_size_type size; bfd_reloc_status_type rstat; bfd_byte *buf; - boolean ok; + bfd_boolean ok; const char *sym_name; size = bfd_get_reloc_size (howto); buf = (bfd_byte *) bfd_zmalloc (size); if (buf == (bfd_byte *) NULL) - return false; + return FALSE; rstat = _bfd_relocate_contents (howto, output_bfd, (bfd_vma) addend, buf); switch (rstat) { @@ -7318,7 +7174,7 @@ elf_reloc_link_order (output_bfd, info, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) { free (buf); - return false; + return FALSE; } break; } @@ -7326,7 +7182,7 @@ elf_reloc_link_order (output_bfd, info, (file_ptr) link_order->offset, size); free (buf); if (! ok) - return false; + return FALSE; } /* The address of a reloc is relative to the section in a @@ -7336,68 +7192,38 @@ elf_reloc_link_order (output_bfd, info, if (! info->relocateable) offset += output_section->vma; - rel_hdr = &elf_section_data (output_section)->rel_hdr; + for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) + { + irel[i].r_offset = offset; + irel[i].r_info = 0; + irel[i].r_addend = 0; + } + irel[0].r_info = ELF_R_INFO (indx, howto->type); + rel_hdr = &elf_section_data (output_section)->rel_hdr; + erel = rel_hdr->contents; if (rel_hdr->sh_type == SHT_REL) { - bfd_size_type size; - Elf_Internal_Rel *irel; - Elf_External_Rel *erel; - unsigned int i; - - size = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rel); - irel = (Elf_Internal_Rel *) bfd_zmalloc (size); - if (irel == NULL) - return false; - - for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) - irel[i].r_offset = offset; - irel[0].r_info = ELF_R_INFO (indx, howto->type); - - erel = ((Elf_External_Rel *) rel_hdr->contents - + elf_section_data (output_section)->rel_count); - - if (bed->s->swap_reloc_out) - (*bed->s->swap_reloc_out) (output_bfd, irel, (bfd_byte *) erel); - else - elf_swap_reloc_out (output_bfd, irel, erel); - - free (irel); + erel += (elf_section_data (output_section)->rel_count + * sizeof (Elf_External_Rel)); + (*bed->s->swap_reloc_out) (output_bfd, irel, erel); } else { - bfd_size_type size; - Elf_Internal_Rela *irela; - Elf_External_Rela *erela; - unsigned int i; - - size = bed->s->int_rels_per_ext_rel * sizeof (Elf_Internal_Rela); - irela = (Elf_Internal_Rela *) bfd_zmalloc (size); - if (irela == NULL) - return false; - - for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) - irela[i].r_offset = offset; - irela[0].r_info = ELF_R_INFO (indx, howto->type); - irela[0].r_addend = addend; - - erela = ((Elf_External_Rela *) rel_hdr->contents - + elf_section_data (output_section)->rel_count); - - if (bed->s->swap_reloca_out) - (*bed->s->swap_reloca_out) (output_bfd, irela, (bfd_byte *) erela); - else - elf_swap_reloca_out (output_bfd, irela, erela); + irel[0].r_addend = addend; + erel += (elf_section_data (output_section)->rel_count + * sizeof (Elf_External_Rela)); + (*bed->s->swap_reloca_out) (output_bfd, irel, erel); } ++elf_section_data (output_section)->rel_count; - return true; + return TRUE; } /* Allocate a pointer to live in a linker created section. */ -boolean +bfd_boolean elf_create_pointer_linker_section (abfd, info, lsect, h, rel) bfd *abfd; struct bfd_link_info *info; @@ -7419,14 +7245,14 @@ elf_create_pointer_linker_section (abfd, if (_bfd_elf_find_pointer_linker_section (h->linker_section_pointer, rel->r_addend, lsect->which)) - return true; + return TRUE; ptr_linker_section_ptr = &h->linker_section_pointer; /* Make sure this symbol is output as a dynamic symbol. */ if (h->dynindx == -1) { if (! elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } if (lsect->rel_section) @@ -7448,7 +7274,7 @@ elf_create_pointer_linker_section (abfd, ptr = (elf_linker_section_pointers_t **) bfd_alloc (abfd, amt); if (!ptr) - return false; + return FALSE; elf_local_ptr_offsets (abfd) = ptr; for (i = 0; i < num_symbols; i++) @@ -7459,7 +7285,7 @@ elf_create_pointer_linker_section (abfd, if (_bfd_elf_find_pointer_linker_section (ptr[r_symndx], rel->r_addend, lsect->which)) - return true; + return TRUE; ptr_linker_section_ptr = &ptr[r_symndx]; @@ -7480,12 +7306,12 @@ elf_create_pointer_linker_section (abfd, linker_section_ptr = (elf_linker_section_pointers_t *) bfd_alloc (abfd, amt); if (!linker_section_ptr) - return false; + return FALSE; linker_section_ptr->next = *ptr_linker_section_ptr; linker_section_ptr->addend = rel->r_addend; linker_section_ptr->which = lsect->which; - linker_section_ptr->written_address_p = false; + linker_section_ptr->written_address_p = FALSE; *ptr_linker_section_ptr = linker_section_ptr; #if 0 @@ -7520,7 +7346,7 @@ elf_create_pointer_linker_section (abfd, (long) lsect->section->_raw_size); #endif - return true; + return TRUE; } #if ARCH_SIZE==64 @@ -7573,7 +7399,7 @@ elf_finish_pointer_linker_section (outpu is done in the finish_dynamic_symbol routine. */ if (!linker_section_ptr->written_address_p) { - linker_section_ptr->written_address_p = true; + linker_section_ptr->written_address_p = TRUE; bfd_put_ptr (output_bfd, relocation + linker_section_ptr->addend, (lsect->section->contents @@ -7597,26 +7423,17 @@ elf_finish_pointer_linker_section (outpu /* Write out pointer if it hasn't been rewritten out before. */ if (!linker_section_ptr->written_address_p) { - linker_section_ptr->written_address_p = true; + linker_section_ptr->written_address_p = TRUE; bfd_put_ptr (output_bfd, relocation + linker_section_ptr->addend, lsect->section->contents + linker_section_ptr->offset); if (info->shared) { asection *srel = lsect->rel_section; - Elf_Internal_Rela *outrel; - Elf_External_Rela *erel; + Elf_Internal_Rela outrel[MAX_INT_RELS_PER_EXT_REL]; + bfd_byte *erel; struct elf_backend_data *bed = get_elf_backend_data (output_bfd); unsigned int i; - bfd_size_type amt; - - amt = sizeof (Elf_Internal_Rela) * bed->s->int_rels_per_ext_rel; - outrel = (Elf_Internal_Rela *) bfd_zmalloc (amt); - if (outrel == NULL) - { - (*_bfd_error_handler) (_("Error: out of memory")); - return 0; - } /* We need to generate a relative reloc for the dynamic linker. */ @@ -7630,17 +7447,18 @@ elf_finish_pointer_linker_section (outpu BFD_ASSERT (srel != NULL); for (i = 0; i < bed->s->int_rels_per_ext_rel; i++) - outrel[i].r_offset = (lsect->section->output_section->vma - + lsect->section->output_offset - + linker_section_ptr->offset); + { + outrel[i].r_offset = (lsect->section->output_section->vma + + lsect->section->output_offset + + linker_section_ptr->offset); + outrel[i].r_info = 0; + outrel[i].r_addend = 0; + } outrel[0].r_info = ELF_R_INFO (0, relative_reloc); - outrel[0].r_addend = 0; - erel = (Elf_External_Rela *) lsect->section->contents; - erel += elf_section_data (lsect->section)->rel_count; + erel = lsect->section->contents; + erel += (elf_section_data (lsect->section)->rel_count++ + * sizeof (Elf_External_Rela)); elf_swap_reloca_out (output_bfd, outrel, erel); - ++elf_section_data (lsect->section)->rel_count; - - free (outrel); } } } @@ -7663,43 +7481,44 @@ elf_finish_pointer_linker_section (outpu /* Garbage collect unused sections. */ -static boolean elf_gc_mark +static bfd_boolean elf_gc_mark PARAMS ((struct bfd_link_info *, asection *, asection * (*) (asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *))); -static boolean elf_gc_sweep +static bfd_boolean elf_gc_sweep PARAMS ((struct bfd_link_info *, - boolean (*) (bfd *, struct bfd_link_info *, asection *, - const Elf_Internal_Rela *))); + bfd_boolean (*) (bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *))); -static boolean elf_gc_sweep_symbol +static bfd_boolean elf_gc_sweep_symbol PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_gc_allocate_got_offsets +static bfd_boolean elf_gc_allocate_got_offsets PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_gc_propagate_vtable_entries_used +static bfd_boolean elf_gc_propagate_vtable_entries_used PARAMS ((struct elf_link_hash_entry *, PTR)); -static boolean elf_gc_smash_unused_vtentry_relocs +static bfd_boolean elf_gc_smash_unused_vtentry_relocs PARAMS ((struct elf_link_hash_entry *, PTR)); /* The mark phase of garbage collection. For a given section, mark it and any sections in this section's group, and all the sections which define symbols to which it refers. */ -static boolean +typedef asection * (*gc_mark_hook_fn) + PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, + struct elf_link_hash_entry *, Elf_Internal_Sym *)); + +static bfd_boolean elf_gc_mark (info, sec, gc_mark_hook) struct bfd_link_info *info; asection *sec; - asection * (*gc_mark_hook) PARAMS ((asection *, struct bfd_link_info *, - Elf_Internal_Rela *, - struct elf_link_hash_entry *, - Elf_Internal_Sym *)); + gc_mark_hook_fn gc_mark_hook; { - boolean ret; + bfd_boolean ret; asection *group_sec; sec->gc_mark = 1; @@ -7708,10 +7527,10 @@ elf_gc_mark (info, sec, gc_mark_hook) group_sec = elf_section_data (sec)->next_in_group; if (group_sec && !group_sec->gc_mark) if (!elf_gc_mark (info, group_sec, gc_mark_hook)) - return false; + return FALSE; /* Look through the section relocs. */ - ret = true; + ret = TRUE; if ((sec->flags & SEC_RELOC) != 0 && sec->reloc_count > 0) { Elf_Internal_Rela *relstart, *rel, *relend; @@ -7741,7 +7560,7 @@ elf_gc_mark (info, sec, gc_mark_hook) isym = bfd_elf_get_elf_syms (input_bfd, symtab_hdr, nlocsyms, 0, NULL, NULL, NULL); if (isym == NULL) - return false; + return FALSE; } /* Read the relocations. */ @@ -7750,7 +7569,7 @@ elf_gc_mark (info, sec, gc_mark_hook) info->keep_memory)); if (relstart == NULL) { - ret = false; + ret = FALSE; goto out1; } relend = relstart + sec->reloc_count * bed->s->int_rels_per_ext_rel; @@ -7782,7 +7601,7 @@ elf_gc_mark (info, sec, gc_mark_hook) rsec->gc_mark = 1; else if (!elf_gc_mark (info, rsec, gc_mark_hook)) { - ret = false; + ret = FALSE; goto out2; } } @@ -7806,11 +7625,14 @@ elf_gc_mark (info, sec, gc_mark_hook) /* The sweep phase of garbage collection. Remove all garbage sections. */ -static boolean +typedef bfd_boolean (*gc_sweep_hook_fn) + PARAMS ((bfd *, struct bfd_link_info *, asection *, + const Elf_Internal_Rela *)); + +static bfd_boolean elf_gc_sweep (info, gc_sweep_hook) struct bfd_link_info *info; - boolean (*gc_sweep_hook) PARAMS ((bfd *, struct bfd_link_info *, - asection *, const Elf_Internal_Rela *)); + gc_sweep_hook_fn gc_sweep_hook; { bfd *sub; @@ -7845,12 +7667,12 @@ elf_gc_sweep (info, gc_sweep_hook) && (o->flags & SEC_RELOC) && o->reloc_count > 0) { Elf_Internal_Rela *internal_relocs; - boolean r; + bfd_boolean r; internal_relocs = (NAME(_bfd_elf,link_read_relocs) (o->owner, o, NULL, NULL, info->keep_memory)); if (internal_relocs == NULL) - return false; + return FALSE; r = (*gc_sweep_hook) (o->owner, info, o, internal_relocs); @@ -7858,7 +7680,7 @@ elf_gc_sweep (info, gc_sweep_hook) free (internal_relocs); if (!r) - return false; + return FALSE; } } } @@ -7876,12 +7698,12 @@ elf_gc_sweep (info, gc_sweep_hook) elf_hash_table (info)->dynsymcount = i; } - return true; + return TRUE; } /* Sweep symbols in swept sections. Called via elf_link_hash_traverse. */ -static boolean +static bfd_boolean elf_gc_sweep_symbol (h, idxptr) struct elf_link_hash_entry *h; PTR idxptr; @@ -7897,13 +7719,13 @@ elf_gc_sweep_symbol (h, idxptr) || h->root.u.def.section->gc_mark)) h->dynindx = (*idx)++; - return true; + return TRUE; } /* Propogate collected vtable information. This is called through elf_link_hash_traverse. */ -static boolean +static bfd_boolean elf_gc_propagate_vtable_entries_used (h, okp) struct elf_link_hash_entry *h; PTR okp; @@ -7913,15 +7735,15 @@ elf_gc_propagate_vtable_entries_used (h, /* Those that are not vtables. */ if (h->vtable_parent == NULL) - return true; + return TRUE; /* Those vtables that do not have parents, we cannot merge. */ if (h->vtable_parent == (struct elf_link_hash_entry *) -1) - return true; + return TRUE; /* If we've already been done, exit. */ if (h->vtable_entries_used && h->vtable_entries_used[-1]) - return true; + return TRUE; /* Make sure the parent's table is up to date. */ elf_gc_propagate_vtable_entries_used (h->vtable_parent, okp); @@ -7936,11 +7758,11 @@ elf_gc_propagate_vtable_entries_used (h, else { size_t n; - boolean *cu, *pu; + bfd_boolean *cu, *pu; /* Or the parent's entries into ours. */ cu = h->vtable_entries_used; - cu[-1] = true; + cu[-1] = TRUE; pu = h->vtable_parent->vtable_entries_used; if (pu != NULL) { @@ -7952,17 +7774,17 @@ elf_gc_propagate_vtable_entries_used (h, while (n--) { if (*pu) - *cu = true; + *cu = TRUE; pu++; cu++; } } } - return true; + return TRUE; } -static boolean +static bfd_boolean elf_gc_smash_unused_vtentry_relocs (h, okp) struct elf_link_hash_entry *h; PTR okp; @@ -7979,7 +7801,7 @@ elf_gc_smash_unused_vtentry_relocs (h, o /* Take care of both those symbols that do not describe vtables as well as those that are not loaded. */ if (h->vtable_parent == NULL) - return true; + return TRUE; BFD_ASSERT (h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak); @@ -7989,9 +7811,9 @@ elf_gc_smash_unused_vtentry_relocs (h, o hend = hstart + h->size; relstart = (NAME(_bfd_elf,link_read_relocs) - (sec->owner, sec, NULL, (Elf_Internal_Rela *) NULL, true)); + (sec->owner, sec, NULL, (Elf_Internal_Rela *) NULL, TRUE)); if (!relstart) - return *(boolean *) okp = false; + return *(bfd_boolean *) okp = FALSE; bed = get_elf_backend_data (sec->owner); file_align = bed->s->file_align; @@ -8012,17 +7834,17 @@ elf_gc_smash_unused_vtentry_relocs (h, o rel->r_offset = rel->r_info = rel->r_addend = 0; } - return true; + return TRUE; } /* Do mark and sweep of unused sections. */ -boolean +bfd_boolean elf_gc_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; { - boolean ok = true; + bfd_boolean ok = TRUE; bfd *sub; asection * (*gc_mark_hook) PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, @@ -8031,21 +7853,21 @@ elf_gc_sections (abfd, info) if (!get_elf_backend_data (abfd)->can_gc_sections || info->relocateable || info->emitrelocations || elf_hash_table (info)->dynamic_sections_created) - return true; + return TRUE; /* Apply transitive closure to the vtable entry usage info. */ elf_link_hash_traverse (elf_hash_table (info), elf_gc_propagate_vtable_entries_used, (PTR) &ok); if (!ok) - return false; + return FALSE; /* Kill the vtable relocations that were not used. */ elf_link_hash_traverse (elf_hash_table (info), elf_gc_smash_unused_vtentry_relocs, (PTR) &ok); if (!ok) - return false; + return FALSE; /* Grovel through relocs to find out who stays ... */ @@ -8061,20 +7883,20 @@ elf_gc_sections (abfd, info) { if (o->flags & SEC_KEEP) if (!elf_gc_mark (info, o, gc_mark_hook)) - return false; + return FALSE; } } /* ... and mark SEC_EXCLUDE for those that go. */ if (!elf_gc_sweep (info, get_elf_backend_data (abfd)->gc_sweep_hook)) - return false; + return FALSE; - return true; + return TRUE; } /* Called from check_relocs to record the existance of a VTINHERIT reloc. */ -boolean +bfd_boolean elf_gc_record_vtinherit (abfd, sec, h, offset) bfd *abfd; asection *sec; @@ -8111,7 +7933,7 @@ elf_gc_record_vtinherit (abfd, sec, h, o bfd_archive_filename (abfd), sec->name, (unsigned long) offset); bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; win: if (!h) @@ -8126,12 +7948,12 @@ elf_gc_record_vtinherit (abfd, sec, h, o else child->vtable_parent = h; - return true; + return TRUE; } /* Called from check_relocs to record the existance of a VTENTRY reloc. */ -boolean +bfd_boolean elf_gc_record_vtentry (abfd, sec, h, addend) bfd *abfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; @@ -8144,7 +7966,7 @@ elf_gc_record_vtentry (abfd, sec, h, add if (addend >= h->vtable_entries_size) { size_t size, bytes; - boolean *ptr = h->vtable_entries_used; + bfd_boolean *ptr = h->vtable_entries_used; /* While the symbol is undefined, we have to be prepared to handle a zero size. */ @@ -8163,7 +7985,7 @@ elf_gc_record_vtentry (abfd, sec, h, add /* Allocate one extra entry for use as a "done" flag for the consolidation pass. */ - bytes = (size / file_align + 1) * sizeof (boolean); + bytes = (size / file_align + 1) * sizeof (bfd_boolean); if (ptr) { @@ -8174,7 +7996,7 @@ elf_gc_record_vtentry (abfd, sec, h, add size_t oldbytes; oldbytes = ((h->vtable_entries_size / file_align + 1) - * sizeof (boolean)); + * sizeof (bfd_boolean)); memset (((char *) ptr) + oldbytes, 0, bytes - oldbytes); } } @@ -8182,22 +8004,22 @@ elf_gc_record_vtentry (abfd, sec, h, add ptr = bfd_zmalloc ((bfd_size_type) bytes); if (ptr == NULL) - return false; + return FALSE; /* And arrange for that done flag to be at index -1. */ h->vtable_entries_used = ptr + 1; h->vtable_entries_size = size; } - h->vtable_entries_used[addend / file_align] = true; + h->vtable_entries_used[addend / file_align] = TRUE; - return true; + return TRUE; } /* And an accompanying bit to work out final got entry offsets once we're done. Should be called from final_link. */ -boolean +bfd_boolean elf_gc_common_finalize_got_offsets (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -8250,13 +8072,13 @@ elf_gc_common_finalize_got_offsets (abfd elf_link_hash_traverse (elf_hash_table (info), elf_gc_allocate_got_offsets, (PTR) &gotoff); - return true; + return TRUE; } /* We need a special top-level link routine to convert got reference counts to real got offsets. */ -static boolean +static bfd_boolean elf_gc_allocate_got_offsets (h, offarg) struct elf_link_hash_entry *h; PTR offarg; @@ -8274,19 +8096,19 @@ elf_gc_allocate_got_offsets (h, offarg) else h->got.offset = (bfd_vma) -1; - return true; + return TRUE; } /* Many folk need no more in the way of final link than this, once got entry reference counting is enabled. */ -boolean +bfd_boolean elf_gc_common_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; { if (!elf_gc_common_finalize_got_offsets (abfd, info)) - return false; + return FALSE; /* Invoke the regular ELF backend linker to do all the work. */ return elf_bfd_final_link (abfd, info); @@ -8295,7 +8117,7 @@ elf_gc_common_final_link (abfd, info) /* This function will be called though elf_link_hash_traverse to store all hash value of the exported symbols in an array. */ -static boolean +static bfd_boolean elf_collect_hash_codes (h, data) struct elf_link_hash_entry *h; PTR data; @@ -8311,7 +8133,7 @@ elf_collect_hash_codes (h, data) /* Ignore indirect symbols. These are added by the versioning code. */ if (h->dynindx == -1) - return true; + return TRUE; name = h->root.root.string; p = strchr (name, ELF_VER_CHR); @@ -8336,10 +8158,10 @@ elf_collect_hash_codes (h, data) if (alc != NULL) free (alc); - return true; + return TRUE; } -boolean +bfd_boolean elf_reloc_symbol_deleted_p (offset, cookie) bfd_vma offset; PTR cookie; @@ -8355,13 +8177,13 @@ elf_reloc_symbol_deleted_p (offset, cook if (! rcookie->bad_symtab) if (rcookie->rel->r_offset > offset) - return false; + return FALSE; if (rcookie->rel->r_offset != offset) continue; r_symndx = ELF_R_SYM (rcookie->rel->r_info); if (r_symndx == SHN_UNDEF) - return true; + return TRUE; if (r_symndx >= rcookie->locsymcount || ELF_ST_BIND (rcookie->locsyms[r_symndx].st_info) != STB_LOCAL) @@ -8377,9 +8199,9 @@ elf_reloc_symbol_deleted_p (offset, cook if ((h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) && elf_discarded_section (h->root.u.def.section)) - return true; + return TRUE; else - return false; + return FALSE; } else { @@ -8395,20 +8217,20 @@ elf_reloc_symbol_deleted_p (offset, cook { isec = section_from_elf_index (rcookie->abfd, isym->st_shndx); if (isec != NULL && elf_discarded_section (isec)) - return true; + return TRUE; } } - return false; + return FALSE; } - return false; + return FALSE; } /* Discard unneeded references to discarded sections. - Returns true if any section's size was changed. */ + Returns TRUE if any section's size was changed. */ /* This function assumes that the relocations are in sorted order, which is true for all known assemblers. */ -boolean +bfd_boolean elf_bfd_discard_info (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -8419,12 +8241,12 @@ elf_bfd_discard_info (output_bfd, info) struct elf_backend_data *bed; bfd *abfd; unsigned int count; - boolean ret = false; + bfd_boolean ret = FALSE; if (info->traditional_format || info->hash->creator->flavour != bfd_target_elf_flavour || ! is_elf_hash_table (info)) - return false; + return FALSE; for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link_next) { @@ -8476,7 +8298,7 @@ elf_bfd_discard_info (output_bfd, info) cookie.locsymcount, 0, NULL, NULL, NULL); if (cookie.locsyms == NULL) - return false; + return FALSE; } if (stab != NULL) @@ -8496,7 +8318,7 @@ elf_bfd_discard_info (output_bfd, info) elf_section_data (stab)->sec_info, elf_reloc_symbol_deleted_p, &cookie)) - ret = true; + ret = TRUE; if (elf_section_data (stab)->relocs != cookie.rels) free (cookie.rels); } @@ -8518,7 +8340,7 @@ elf_bfd_discard_info (output_bfd, info) if (_bfd_elf_discard_section_eh_frame (abfd, info, eh, elf_reloc_symbol_deleted_p, &cookie)) - ret = true; + ret = TRUE; if (cookie.rels != NULL && elf_section_data (eh)->relocs != cookie.rels) @@ -8527,7 +8349,7 @@ elf_bfd_discard_info (output_bfd, info) if (bed->elf_backend_discard_info != NULL && (*bed->elf_backend_discard_info) (abfd, &cookie, info)) - ret = true; + ret = TRUE; if (cookie.locsyms != NULL && symtab_hdr->contents != (unsigned char *) cookie.locsyms) @@ -8541,12 +8363,12 @@ elf_bfd_discard_info (output_bfd, info) if (info->eh_frame_hdr && _bfd_elf_discard_section_eh_frame_hdr (output_bfd, info)) - ret = true; + ret = TRUE; return ret; } -static boolean +static bfd_boolean elf_section_ignore_discarded_relocs (sec) asection *sec; { @@ -8556,7 +8378,7 @@ elf_section_ignore_discarded_relocs (sec { case ELF_INFO_TYPE_STABS: case ELF_INFO_TYPE_EH_FRAME: - return true; + return TRUE; default: break; } @@ -8564,7 +8386,7 @@ elf_section_ignore_discarded_relocs (sec bed = get_elf_backend_data (sec->owner); if (bed->elf_backend_ignore_discarded_relocs != NULL && (*bed->elf_backend_ignore_discarded_relocs) (sec)) - return true; + return TRUE; - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/bfd/elfn32-mips.c binutils-2.13.90.0.18/bfd/elfn32-mips.c --- binutils-2.13.90.0.16/bfd/elfn32-mips.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/elfn32-mips.c Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* MIPS-specific support for 32-bit ELF - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 - Free Software Foundation, Inc. + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003 Free Software Foundation, Inc. Most of the information added by Ian Lance Taylor, Cygnus Support, . @@ -55,9 +55,10 @@ static bfd_reloc_status_type mips_elf_lo PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips_elf_got16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static boolean mips_elf_assign_gp PARAMS ((bfd *, bfd_vma *)); +static bfd_boolean mips_elf_assign_gp + PARAMS ((bfd *, bfd_vma *)); static bfd_reloc_status_type mips_elf_final_gp - PARAMS ((bfd *, asymbol *, boolean, char **, bfd_vma *)); + PARAMS ((bfd *, asymbol *, bfd_boolean, char **, bfd_vma *)); static bfd_reloc_status_type mips_elf_gprel16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips_elf_literal_reloc @@ -65,7 +66,8 @@ static bfd_reloc_status_type mips_elf_li static bfd_reloc_status_type mips_elf_gprel32_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type gprel32_with_gp - PARAMS ((bfd *, asymbol *, arelent *, asection *, boolean, PTR, bfd_vma)); + PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR, + bfd_vma)); static bfd_reloc_status_type mips_elf_shift6_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); static bfd_reloc_status_type mips16_jump_reloc @@ -75,16 +77,18 @@ static bfd_reloc_status_type mips16_gpre static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); static reloc_howto_type *mips_elf_n32_rtype_to_howto - PARAMS ((unsigned int, boolean)); + PARAMS ((unsigned int, bfd_boolean)); static void mips_info_to_howto_rel - PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *)); + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); static void mips_info_to_howto_rela - PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *)); -static boolean mips_elf_sym_is_global PARAMS ((bfd *, asymbol *)); -static boolean mips_elf_n32_object_p PARAMS ((bfd *)); -static boolean elf32_mips_grok_prstatus + PARAMS ((bfd *, arelent *, Elf_Internal_Rela *)); +static bfd_boolean mips_elf_sym_is_global + PARAMS ((bfd *, asymbol *)); +static bfd_boolean mips_elf_n32_object_p + PARAMS ((bfd *)); +static bfd_boolean elf32_mips_grok_prstatus PARAMS ((bfd *, Elf_Internal_Note *)); -static boolean elf32_mips_grok_psinfo +static bfd_boolean elf32_mips_grok_psinfo PARAMS ((bfd *, Elf_Internal_Note *)); static irix_compat_t elf_n32_mips_irix_compat PARAMS ((bfd *)); @@ -92,6 +96,7 @@ static irix_compat_t elf_n32_mips_irix_c extern const bfd_target bfd_elf32_nbigmips_vec; extern const bfd_target bfd_elf32_nlittlemips_vec; +static asection *prev_reloc_section = NULL; static bfd_vma prev_reloc_address = -1; static bfd_vma prev_reloc_addend = 0; @@ -119,67 +124,67 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit relocation. */ HOWTO (R_MIPS_16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit relocation. */ HOWTO (R_MIPS_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit symbol relative relocation. */ HOWTO (R_MIPS_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_REL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 26 bit jump address. */ HOWTO (R_MIPS_26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -187,10 +192,10 @@ static reloc_howto_type elf_mips_howto_t bits must match the PC + 4. */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x03ffffff, /* src_mask */ 0x03ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* R_MIPS_HI16 and R_MIPS_LO16 are unsupported for NewABI REL. However, the native IRIX6 tools use them, so we try our best. */ @@ -200,120 +205,120 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_hi16_reloc, /* special_function */ "R_MIPS_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of symbol value. */ HOWTO (R_MIPS_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_lo16_reloc, /* special_function */ "R_MIPS_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GP relative reference. */ HOWTO (R_MIPS_GPREL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_gprel16_reloc, /* special_function */ "R_MIPS_GPREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to literal section. */ HOWTO (R_MIPS_LITERAL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_literal_reloc, /* special_function */ "R_MIPS_LITERAL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to global offset table. */ HOWTO (R_MIPS_GOT16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_got16_reloc, /* special_function */ "R_MIPS_GOT16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative reference. */ HOWTO (R_MIPS_PC16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_PC16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit call through global offset table. */ HOWTO (R_MIPS_CALL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit GP relative reference. */ HOWTO (R_MIPS_GPREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_gprel32_reloc, /* special_function */ "R_MIPS_GPREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The remaining relocs are defined on Irix 5, although they are not defined by the ABI. */ @@ -326,135 +331,135 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT5", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000007c0, /* src_mask */ 0x000007c0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 6 bit shift field. */ HOWTO (R_MIPS_SHIFT6, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_elf_shift6_reloc, /* special_function */ "R_MIPS_SHIFT6", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x000007c4, /* src_mask */ 0x000007c4, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit relocation. */ HOWTO (R_MIPS_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement in the global offset table. */ HOWTO (R_MIPS_GOT_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_DISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement to page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_PAGE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_PAGE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Offset from page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_OFST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_OFST", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit subtraction. */ HOWTO (R_MIPS_SUB, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_SUB", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction. */ /* FIXME: Not handled correctly. */ @@ -462,15 +467,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_A", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction, and change all relocations to refer to the old instruction at the address. */ @@ -479,15 +484,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_B", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Delete a 32 bit instruction. */ /* FIXME: Not handled correctly. */ @@ -495,15 +500,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_DELETE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The MIPS ELF64 ABI Draft wants us to support these for REL relocations. We don't, because @@ -519,59 +524,59 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_HI16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_LO16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Section displacement. */ HOWTO (R_MIPS_SCN_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_SCN_DISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ HOWTO (R_MIPS_REL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_REL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* These two are obsolete. */ EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE), @@ -583,15 +588,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_RELGOT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Protected jump conversion. This is an optimization hint. No relocation is required for correctness. */ @@ -599,15 +604,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_JALR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0x00000000, /* src_mask */ 0x00000000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* The relocation table used for SHT_RELA sections. */ @@ -619,67 +624,67 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_NONE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit relocation. */ HOWTO (R_MIPS_16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit relocation. */ HOWTO (R_MIPS_32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit symbol relative relocation. */ HOWTO (R_MIPS_REL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_REL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 26 bit jump address. */ HOWTO (R_MIPS_26, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -687,130 +692,130 @@ static reloc_howto_type elf_mips_howto_t bits must match the PC + 4. */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_26", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x03ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of symbol value. */ HOWTO (R_MIPS_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of symbol value. */ HOWTO (R_MIPS_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* GP relative reference. */ HOWTO (R_MIPS_GPREL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_gprel16_reloc, /* special_function */ "R_MIPS_GPREL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to literal section. */ HOWTO (R_MIPS_LITERAL, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_literal_reloc, /* special_function */ "R_MIPS_LITERAL", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Reference to global offset table. */ HOWTO (R_MIPS_GOT16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_got16_reloc, /* special_function */ "R_MIPS_GOT16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative reference. */ HOWTO (R_MIPS_PC16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_PC16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* 16 bit call through global offset table. */ HOWTO (R_MIPS_CALL16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit GP relative reference. */ HOWTO (R_MIPS_GPREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_gprel32_reloc, /* special_function */ "R_MIPS_GPREL32", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (13), EMPTY_HOWTO (14), @@ -821,135 +826,135 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 5, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_SHIFT5", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x000007c0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 6 bit shift field. */ HOWTO (R_MIPS_SHIFT6, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 6, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 6, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ mips_elf_shift6_reloc, /* special_function */ "R_MIPS_SHIFT6", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x000007c4, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit relocation. */ HOWTO (R_MIPS_64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_64", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement in the global offset table. */ HOWTO (R_MIPS_GOT_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_DISP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Displacement to page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_PAGE, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_PAGE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Offset from page pointer in the global offset table. */ HOWTO (R_MIPS_GOT_OFST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_OFST", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_GOT_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_GOT_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 64 bit substraction. */ HOWTO (R_MIPS_SUB, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_SUB", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction. */ /* FIXME: Not handled correctly. */ @@ -957,15 +962,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_A", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Insert the addend as an instruction, and change all relocations to refer to the old instruction at the address. */ @@ -974,15 +979,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_INSERT_B", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Delete a 32 bit instruction. */ /* FIXME: Not handled correctly. */ @@ -990,105 +995,105 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_DELETE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Get the higher value of a 64 bit addend. */ HOWTO (R_MIPS_HIGHER, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHER", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Get the highest value of a 64 bit addend. */ HOWTO (R_MIPS_HIGHEST, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_HIGHEST", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* High 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_HI16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_HI16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Low 16 bits of displacement in global offset table. */ HOWTO (R_MIPS_CALL_LO16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_CALL_LO16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x0000ffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Section displacement, used by an associated event location section. */ HOWTO (R_MIPS_SCN_DISP, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_SCN_DISP", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit relocation. */ HOWTO (R_MIPS_REL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_REL16", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* These two are obsolete. */ EMPTY_HOWTO (R_MIPS_ADD_IMMEDIATE), @@ -1100,15 +1105,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_RELGOT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Protected jump conversion. This is an optimization hint. No relocation is required for correctness. */ @@ -1116,15 +1121,15 @@ static reloc_howto_type elf_mips_howto_t 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ mips_elf_generic_reloc, /* special_function */ "R_MIPS_JALR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* The reloc used for the mips16 jump instruction. */ @@ -1133,7 +1138,7 @@ static reloc_howto_type elf_mips16_jump_ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -1141,10 +1146,10 @@ static reloc_howto_type elf_mips16_jump_ bits must match the PC. */ mips16_jump_reloc, /* special_function */ "R_MIPS16_26", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffffff, /* src_mask */ 0x3ffffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* The reloc used for the mips16 gprel instruction. */ static reloc_howto_type elf_mips16_gprel_howto = @@ -1152,15 +1157,15 @@ static reloc_howto_type elf_mips16_gprel 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ mips16_gprel_reloc, /* special_function */ "R_MIPS16_GPREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x07ff001f, /* src_mask */ 0x07ff001f, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extension to record C++ vtable hierarchy */ static reloc_howto_type elf_mips_gnu_vtinherit_howto = @@ -1168,15 +1173,15 @@ static reloc_howto_type elf_mips_gnu_vti 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ NULL, /* special_function */ "R_MIPS_GNU_VTINHERIT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* GNU extension to record C++ vtable member usage */ static reloc_howto_type elf_mips_gnu_vtentry_howto = @@ -1184,15 +1189,15 @@ static reloc_howto_type elf_mips_gnu_vte 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ _bfd_elf_rel_vtable_reloc_fn, /* special_function */ "R_MIPS_GNU_VTENTRY", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* This is derived from bfd_elf_generic_reloc. NewABI allows us to have several relocations against the same address. The addend is derived @@ -1203,29 +1208,31 @@ static reloc_howto_type elf_mips_gnu_vte { \ /* If we're relocating, and this is an external symbol, we don't \ want to change anything. */ \ - if (obfd != (bfd *) NULL \ - && (sym->flags & BSF_SECTION_SYM) == 0 \ - && (! entry->howto->partial_inplace \ - || entry->addend == 0)) \ + if ((obfd) != (bfd *) NULL \ + && ((sym)->flags & BSF_SECTION_SYM) == 0 \ + && (! (entry)->howto->partial_inplace \ + || (entry)->addend == 0)) \ { \ - entry->address += sec->output_offset; \ + (entry)->address += (sec)->output_offset; \ return bfd_reloc_ok; \ } \ \ /* The addend of combined relocs is remembered and left for \ subsequent relocs. */ \ - if (prev_reloc_address != reloc_entry->address) \ + if (prev_reloc_address != (entry)->address \ + || prev_reloc_section != (sec)) \ { \ - prev_reloc_address = reloc_entry->address; \ - prev_reloc_addend = reloc_entry->addend; \ + prev_reloc_section = (sec); \ + prev_reloc_address = (entry)->address; \ + prev_reloc_addend = (entry)->addend; \ } \ else \ - reloc_entry->addend = prev_reloc_addend; \ + (entry)->addend = prev_reloc_addend; \ } #define SET_RELOC_ADDEND(entry) \ { \ - prev_reloc_addend = entry->addend; \ + prev_reloc_addend = (entry)->addend; \ } static bfd_reloc_status_type @@ -1425,10 +1432,10 @@ mips_elf_got16_reloc (abfd, reloc_entry, input_section, output_bfd, error_message); } -/* Set the GP value for OUTPUT_BFD. Returns false if this is a +/* Set the GP value for OUTPUT_BFD. Returns FALSE if this is a dangerous relocation. */ -static boolean +static bfd_boolean mips_elf_assign_gp (output_bfd, pgp) bfd *output_bfd; bfd_vma *pgp; @@ -1440,7 +1447,7 @@ mips_elf_assign_gp (output_bfd, pgp) /* If we've already figured out what GP will be, just return it. */ *pgp = _bfd_get_gp_value (output_bfd); if (*pgp) - return true; + return TRUE; count = bfd_get_symcount (output_bfd); sym = bfd_get_outsymbols (output_bfd); @@ -1470,10 +1477,10 @@ mips_elf_assign_gp (output_bfd, pgp) /* Only get the error once. */ *pgp = 4; _bfd_set_gp_value (output_bfd, *pgp); - return false; + return FALSE; } - return true; + return TRUE; } /* We have to figure out the gp value, so that we can adjust the @@ -1486,7 +1493,7 @@ static bfd_reloc_status_type mips_elf_final_gp (output_bfd, symbol, relocateable, error_message, pgp) bfd *output_bfd; asymbol *symbol; - boolean relocateable; + bfd_boolean relocateable; char **error_message; bfd_vma *pgp; { @@ -1533,17 +1540,17 @@ mips_elf_gprel16_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message ATTRIBUTE_UNUSED; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section) if (output_bfd != (bfd *) NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1570,7 +1577,7 @@ mips_elf_literal_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1578,10 +1585,10 @@ mips_elf_literal_reloc (abfd, reloc_entr /* FIXME: The entries in the .lit8 and .lit4 sections should be merged. */ if (output_bfd != (bfd *) NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1609,7 +1616,7 @@ mips_elf_gprel32_reloc (abfd, reloc_entr bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; @@ -1629,12 +1636,12 @@ mips_elf_gprel32_reloc (abfd, reloc_entr if (output_bfd != (bfd *) NULL) { - relocateable = true; + relocateable = TRUE; gp = _bfd_get_gp_value (output_bfd); } else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; ret = mips_elf_final_gp (output_bfd, symbol, relocateable, @@ -1654,7 +1661,7 @@ gprel32_with_gp (abfd, symbol, reloc_ent asymbol *symbol; arelent *reloc_entry; asection *input_section; - boolean relocateable; + bfd_boolean relocateable; PTR data; bfd_vma gp; { @@ -1732,7 +1739,7 @@ mips16_jump_reloc (abfd, reloc_entry, sy bfd *output_bfd; char **error_message ATTRIBUTE_UNUSED; { - static boolean warned = false; + static bfd_boolean warned = FALSE; GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section) @@ -1741,7 +1748,7 @@ mips16_jump_reloc (abfd, reloc_entry, sy (*_bfd_error_handler) (_("Linking mips16 objects into %s format is not supported"), bfd_get_target (input_section->output_section->owner)); - warned = true; + warned = TRUE; return bfd_reloc_undefined; } @@ -1759,7 +1766,7 @@ mips16_gprel_reloc (abfd, reloc_entry, s bfd *output_bfd; char **error_message; { - boolean relocateable; + bfd_boolean relocateable; bfd_reloc_status_type ret; bfd_vma gp; unsigned short extend, insn; @@ -1768,10 +1775,10 @@ mips16_gprel_reloc (abfd, reloc_entry, s GET_RELOC_ADDEND (output_bfd, symbol, reloc_entry, input_section) if (output_bfd != NULL) - relocateable = true; + relocateable = TRUE; else { - relocateable = false; + relocateable = FALSE; output_bfd = symbol->section->output_section->owner; } @@ -1896,12 +1903,12 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, c } } -/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure. */ +/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static reloc_howto_type * mips_elf_n32_rtype_to_howto (r_type, rela_p) unsigned int r_type; - boolean rela_p; + bfd_boolean rela_p; { switch (r_type) { @@ -1923,18 +1930,18 @@ mips_elf_n32_rtype_to_howto (r_type, rel } } -/* Given a MIPS Elf32_Internal_Rel, fill in an arelent structure. */ +/* Given a MIPS Elf_Internal_Rel, fill in an arelent structure. */ static void mips_info_to_howto_rel (abfd, cache_ptr, dst) bfd *abfd; arelent *cache_ptr; - Elf32_Internal_Rel *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, false); + cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, FALSE); /* The addend for a GPREL16 or LITERAL relocation comes from the GP value for the object file. We get the addend now, rather than @@ -1946,18 +1953,18 @@ mips_info_to_howto_rel (abfd, cache_ptr, cache_ptr->addend = elf_gp (abfd); } -/* Given a MIPS Elf32_Internal_Rela, fill in an arelent structure. */ +/* Given a MIPS Elf_Internal_Rela, fill in an arelent structure. */ static void mips_info_to_howto_rela (abfd, cache_ptr, dst) bfd *abfd ATTRIBUTE_UNUSED; arelent *cache_ptr; - Elf32_Internal_Rela *dst; + Elf_Internal_Rela *dst; { unsigned int r_type; r_type = ELF32_R_TYPE (dst->r_info); - cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, true); + cache_ptr->howto = mips_elf_n32_rtype_to_howto (r_type, TRUE); cache_ptr->addend = dst->r_addend; } @@ -1967,7 +1974,7 @@ mips_info_to_howto_rela (abfd, cache_ptr symbols. On most ELF targets the split is between static symbols and externally visible symbols. */ -static boolean +static bfd_boolean mips_elf_sym_is_global (abfd, sym) bfd *abfd ATTRIBUTE_UNUSED; asymbol *sym; @@ -1982,7 +1989,7 @@ mips_elf_sym_is_global (abfd, sym) /* Set the right machine number for a MIPS ELF file. */ -static boolean +static bfd_boolean mips_elf_n32_object_p (abfd) bfd *abfd; { @@ -1992,19 +1999,19 @@ mips_elf_n32_object_p (abfd) sorted correctly such that local symbols precede global symbols, and the sh_info field in the symbol table is not always right. */ if (SGI_COMPAT (abfd)) - elf_bad_symtab (abfd) = true; + elf_bad_symtab (abfd) = TRUE; mach = _bfd_elf_mips_mach (elf_elfheader (abfd)->e_flags); bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach); if (! ABI_N32_P(abfd)) - return false; + return FALSE; - return true; + return TRUE; } /* Support for core dump NOTE sections. */ -static boolean +static bfd_boolean elf32_mips_grok_prstatus (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -2015,7 +2022,7 @@ elf32_mips_grok_prstatus (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 256: /* Linux/MIPS */ /* pr_cursig */ @@ -2036,7 +2043,7 @@ elf32_mips_grok_prstatus (abfd, note) note->descpos + offset); } -static boolean +static bfd_boolean elf32_mips_grok_psinfo (abfd, note) bfd *abfd; Elf_Internal_Note *note; @@ -2044,7 +2051,7 @@ elf32_mips_grok_psinfo (abfd, note) switch (note->descsz) { default: - return false; + return FALSE; case 128: /* Linux/MIPS elf_prpsinfo */ elf_tdata (abfd)->core_program @@ -2065,7 +2072,7 @@ elf32_mips_grok_psinfo (abfd, note) command[n - 1] = '\0'; } - return true; + return TRUE; } /* Depending on the target vector we generate some version of Irix @@ -2131,9 +2138,9 @@ static const struct ecoff_debug_swap mip FIXME: How does this affect NewABI? */ #define ELF_MAXPAGESIZE 0x1000 -#define elf_backend_collect true -#define elf_backend_type_change_ok true -#define elf_backend_can_gc_sections true +#define elf_backend_collect TRUE +#define elf_backend_type_change_ok TRUE +#define elf_backend_can_gc_sections TRUE #define elf_info_to_howto mips_info_to_howto_rela #define elf_info_to_howto_rel mips_info_to_howto_rel #define elf_backend_sym_is_global mips_elf_sym_is_global @@ -2183,7 +2190,7 @@ static const struct ecoff_debug_swap mip #define elf_backend_may_use_rel_p 1 #define elf_backend_may_use_rela_p 1 #define elf_backend_default_use_rela_p 1 -#define elf_backend_sign_extend_vma true +#define elf_backend_sign_extend_vma TRUE #define elf_backend_discard_info _bfd_mips_elf_discard_info #define elf_backend_ignore_discarded_relocs \ diff -uprN binutils-2.13.90.0.16/bfd/elfxx-ia64.c binutils-2.13.90.0.18/bfd/elfxx-ia64.c --- binutils-2.13.90.0.16/bfd/elfxx-ia64.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/elfxx-ia64.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* IA-64 support for 64-bit ELF - Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by David Mosberger-Tang This file is part of BFD, the Binary File Descriptor library. @@ -26,30 +26,30 @@ #include "elf/ia64.h" /* THE RULES for all the stuff the linker creates -- - + GOT Entries created in response to LTOFF or LTOFF_FPTR relocations. Dynamic relocs created for dynamic symbols in an application; REL relocs for locals in a shared library. - + FPTR The canonical function descriptor. Created for local symbols in applications. Descriptors for dynamic symbols and local symbols in shared libraries are created by ld.so. Thus there are no dynamic relocs against these objects. The FPTR relocs for such _are_ passed through to the dynamic relocation tables. - + FULL_PLT Created for a PCREL21B relocation against a dynamic symbol. Requires the creation of a PLTOFF entry. This does not require any dynamic relocations. - + PLTOFF Created by PLTOFF relocations. For local symbols, this is an alternate function descriptor, and in shared libraries requires two REL relocations. Note that this cannot be transformed into an FPTR relocation, since it must be in range of the GP. For dynamic symbols, this is a function descriptor for a MIN_PLT entry, and requires one IPLT reloc. - + MIN_PLT Created by PLTOFF entries against dynamic symbols. This does not reqire dynamic relocations. */ @@ -92,7 +92,7 @@ struct elfNN_ia64_dyn_sym_info int count; } *reloc_entries; - /* True when the section contents have been updated. */ + /* TRUE when the section contents have been updated. */ unsigned got_done : 1; unsigned fptr_done : 1; unsigned pltoff_done : 1; @@ -100,7 +100,7 @@ struct elfNN_ia64_dyn_sym_info unsigned dtpmod_done : 1; unsigned dtprel_done : 1; - /* True for the different kinds of linker data we want created. */ + /* TRUE for the different kinds of linker data we want created. */ unsigned want_got : 1; unsigned want_fptr : 1; unsigned want_ltoff_fptr : 1; @@ -117,7 +117,7 @@ struct elfNN_ia64_local_hash_entry struct bfd_hash_entry root; struct elfNN_ia64_dyn_sym_info *info; - /* True if this hash entry's addends was translated for + /* TRUE if this hash entry's addends was translated for SHF_MERGE optimization. */ unsigned sec_merge_done : 1; }; @@ -148,6 +148,8 @@ struct elfNN_ia64_link_hash_table bfd_size_type minplt_entries; /* number of minplt entries */ unsigned reltext : 1; /* are there relocs against readonly sections? */ + unsigned self_dtpmod_done : 1;/* has self DTPMOD entry been finished? */ + bfd_vma self_dtpmod_offset; /* .got offset to self DTPMOD entry */ struct elfNN_ia64_local_hash_table loc_hash_table; }; @@ -163,41 +165,41 @@ static reloc_howto_type * lookup_howto static reloc_howto_type *elfNN_ia64_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type bfd_code)); static void elfNN_ia64_info_to_howto - PARAMS ((bfd *abfd, arelent *bfd_reloc, ElfNN_Internal_Rela *elf_reloc)); -static boolean elfNN_ia64_relax_section + PARAMS ((bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc)); +static bfd_boolean elfNN_ia64_relax_section PARAMS((bfd *abfd, asection *sec, struct bfd_link_info *link_info, - boolean *again)); -static boolean is_unwind_section_name + bfd_boolean *again)); +static bfd_boolean is_unwind_section_name PARAMS ((bfd *abfd, const char *)); -static boolean elfNN_ia64_section_from_shdr - PARAMS ((bfd *, ElfNN_Internal_Shdr *, const char *)); -static boolean elfNN_ia64_section_flags - PARAMS ((flagword *, ElfNN_Internal_Shdr *)); -static boolean elfNN_ia64_fake_sections - PARAMS ((bfd *abfd, ElfNN_Internal_Shdr *hdr, asection *sec)); +static bfd_boolean elfNN_ia64_section_from_shdr + PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); +static bfd_boolean elfNN_ia64_section_flags + PARAMS ((flagword *, Elf_Internal_Shdr *)); +static bfd_boolean elfNN_ia64_fake_sections + PARAMS ((bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)); static void elfNN_ia64_final_write_processing - PARAMS ((bfd *abfd, boolean linker)); -static boolean elfNN_ia64_add_symbol_hook + PARAMS ((bfd *abfd, bfd_boolean linker)); +static bfd_boolean elfNN_ia64_add_symbol_hook PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym, const char **namep, flagword *flagsp, asection **secp, bfd_vma *valp)); -static boolean elfNN_ia64_aix_vec +static bfd_boolean elfNN_ia64_aix_vec PARAMS ((const bfd_target *vec)); -static boolean elfNN_ia64_aix_add_symbol_hook +static bfd_boolean elfNN_ia64_aix_add_symbol_hook PARAMS ((bfd *abfd, struct bfd_link_info *info, const Elf_Internal_Sym *sym, const char **namep, flagword *flagsp, asection **secp, bfd_vma *valp)); -static boolean elfNN_ia64_aix_link_add_symbols +static bfd_boolean elfNN_ia64_aix_link_add_symbols PARAMS ((bfd *abfd, struct bfd_link_info *info)); static int elfNN_ia64_additional_program_headers PARAMS ((bfd *abfd)); -static boolean elfNN_ia64_modify_segment_map +static bfd_boolean elfNN_ia64_modify_segment_map PARAMS ((bfd *)); -static boolean elfNN_ia64_is_local_label_name +static bfd_boolean elfNN_ia64_is_local_label_name PARAMS ((bfd *abfd, const char *name)); -static boolean elfNN_ia64_dynamic_symbol_p +static bfd_boolean elfNN_ia64_dynamic_symbol_p PARAMS ((struct elf_link_hash_entry *h, struct bfd_link_info *info)); -static boolean elfNN_ia64_local_hash_table_init +static bfd_boolean elfNN_ia64_local_hash_table_init PARAMS ((struct elfNN_ia64_local_hash_table *ht, bfd *abfd, new_hash_entry_func new)); static struct bfd_hash_entry *elfNN_ia64_new_loc_hash_entry @@ -210,29 +212,29 @@ static void elfNN_ia64_hash_copy_indirec PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); static void elfNN_ia64_hash_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); static struct bfd_link_hash_table *elfNN_ia64_hash_table_create PARAMS ((bfd *abfd)); static struct elfNN_ia64_local_hash_entry *elfNN_ia64_local_hash_lookup PARAMS ((struct elfNN_ia64_local_hash_table *table, const char *string, - boolean create, boolean copy)); -static boolean elfNN_ia64_global_dyn_sym_thunk + bfd_boolean create, bfd_boolean copy)); +static bfd_boolean elfNN_ia64_global_dyn_sym_thunk PARAMS ((struct bfd_hash_entry *, PTR)); -static boolean elfNN_ia64_local_dyn_sym_thunk +static bfd_boolean elfNN_ia64_local_dyn_sym_thunk PARAMS ((struct bfd_hash_entry *, PTR)); static void elfNN_ia64_dyn_sym_traverse PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info, - boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR), + bfd_boolean (*func) (struct elfNN_ia64_dyn_sym_info *, PTR), PTR info)); -static boolean elfNN_ia64_create_dynamic_sections +static bfd_boolean elfNN_ia64_create_dynamic_sections PARAMS ((bfd *abfd, struct bfd_link_info *info)); static struct elfNN_ia64_local_hash_entry * get_local_sym_hash PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info, - bfd *abfd, const Elf_Internal_Rela *rel, boolean create)); + bfd *abfd, const Elf_Internal_Rela *rel, bfd_boolean create)); static struct elfNN_ia64_dyn_sym_info * get_dyn_sym_info PARAMS ((struct elfNN_ia64_link_hash_table *ia64_info, struct elf_link_hash_entry *h, - bfd *abfd, const Elf_Internal_Rela *rel, boolean create)); + bfd *abfd, const Elf_Internal_Rela *rel, bfd_boolean create)); static asection *get_got PARAMS ((bfd *abfd, struct bfd_link_info *info, struct elfNN_ia64_link_hash_table *ia64_info)); @@ -244,34 +246,34 @@ static asection *get_pltoff struct elfNN_ia64_link_hash_table *ia64_info)); static asection *get_reloc_section PARAMS ((bfd *abfd, struct elfNN_ia64_link_hash_table *ia64_info, - asection *sec, boolean create)); -static boolean count_dyn_reloc + asection *sec, bfd_boolean create)); +static bfd_boolean count_dyn_reloc PARAMS ((bfd *abfd, struct elfNN_ia64_dyn_sym_info *dyn_i, asection *srel, int type)); -static boolean elfNN_ia64_check_relocs +static bfd_boolean elfNN_ia64_check_relocs PARAMS ((bfd *abfd, struct bfd_link_info *info, asection *sec, const Elf_Internal_Rela *relocs)); -static boolean elfNN_ia64_adjust_dynamic_symbol +static bfd_boolean elfNN_ia64_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *info, struct elf_link_hash_entry *h)); static long global_sym_index PARAMS ((struct elf_link_hash_entry *h)); -static boolean allocate_fptr +static bfd_boolean allocate_fptr PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean allocate_global_data_got +static bfd_boolean allocate_global_data_got PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean allocate_global_fptr_got +static bfd_boolean allocate_global_fptr_got PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean allocate_local_got +static bfd_boolean allocate_local_got PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean allocate_pltoff_entries +static bfd_boolean allocate_pltoff_entries PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean allocate_plt_entries +static bfd_boolean allocate_plt_entries PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean allocate_plt2_entries +static bfd_boolean allocate_plt2_entries PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean allocate_dynrel_entries +static bfd_boolean allocate_dynrel_entries PARAMS ((struct elfNN_ia64_dyn_sym_info *dyn_i, PTR data)); -static boolean elfNN_ia64_size_dynamic_sections +static bfd_boolean elfNN_ia64_size_dynamic_sections PARAMS ((bfd *output_bfd, struct bfd_link_info *info)); static bfd_reloc_status_type elfNN_ia64_install_value PARAMS ((bfd *abfd, bfd_byte *hit_addr, bfd_vma val, unsigned int r_type)); @@ -290,38 +292,38 @@ static bfd_vma set_fptr_entry static bfd_vma set_pltoff_entry PARAMS ((bfd *abfd, struct bfd_link_info *info, struct elfNN_ia64_dyn_sym_info *dyn_i, - bfd_vma value, boolean)); + bfd_vma value, bfd_boolean)); static bfd_vma elfNN_ia64_tprel_base PARAMS ((struct bfd_link_info *info)); static bfd_vma elfNN_ia64_dtprel_base PARAMS ((struct bfd_link_info *info)); static int elfNN_ia64_unwind_entry_compare PARAMS ((const PTR, const PTR)); -static boolean elfNN_ia64_final_link +static bfd_boolean elfNN_ia64_final_link PARAMS ((bfd *abfd, struct bfd_link_info *info)); -static boolean elfNN_ia64_relocate_section +static bfd_boolean elfNN_ia64_relocate_section PARAMS ((bfd *output_bfd, struct bfd_link_info *info, bfd *input_bfd, asection *input_section, bfd_byte *contents, Elf_Internal_Rela *relocs, Elf_Internal_Sym *local_syms, asection **local_sections)); -static boolean elfNN_ia64_finish_dynamic_symbol +static bfd_boolean elfNN_ia64_finish_dynamic_symbol PARAMS ((bfd *output_bfd, struct bfd_link_info *info, struct elf_link_hash_entry *h, Elf_Internal_Sym *sym)); -static boolean elfNN_ia64_finish_dynamic_sections +static bfd_boolean elfNN_ia64_finish_dynamic_sections PARAMS ((bfd *abfd, struct bfd_link_info *info)); -static boolean elfNN_ia64_set_private_flags +static bfd_boolean elfNN_ia64_set_private_flags PARAMS ((bfd *abfd, flagword flags)); -static boolean elfNN_ia64_merge_private_bfd_data +static bfd_boolean elfNN_ia64_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd)); -static boolean elfNN_ia64_print_private_bfd_data +static bfd_boolean elfNN_ia64_print_private_bfd_data PARAMS ((bfd *abfd, PTR ptr)); static enum elf_reloc_type_class elfNN_ia64_reloc_type_class PARAMS ((const Elf_Internal_Rela *)); -static boolean elfNN_ia64_hpux_vec +static bfd_boolean elfNN_ia64_hpux_vec PARAMS ((const bfd_target *vec)); static void elfNN_hpux_post_process_headers PARAMS ((bfd *abfd, struct bfd_link_info *info)); -boolean elfNN_hpux_backend_section_from_bfd_section +bfd_boolean elfNN_hpux_backend_section_from_bfd_section PARAMS ((bfd *abfd, asection *sec, int *retval)); /* ia64-specific relocation. */ @@ -350,108 +352,108 @@ elfNN_ia64_reloc (abfd, reloc, sym, data #define IA64_HOWTO(TYPE, NAME, SIZE, PCREL, IN) \ HOWTO (TYPE, 0, SIZE, 0, PCREL, 0, complain_overflow_signed, \ - elfNN_ia64_reloc, NAME, false, 0, 0, IN) + elfNN_ia64_reloc, NAME, FALSE, 0, 0, IN) /* This table has to be sorted according to increasing number of the TYPE field. */ static reloc_howto_type ia64_howto_table[] = { - IA64_HOWTO (R_IA64_NONE, "NONE", 0, false, true), + IA64_HOWTO (R_IA64_NONE, "NONE", 0, FALSE, TRUE), - IA64_HOWTO (R_IA64_IMM14, "IMM14", 0, false, true), - IA64_HOWTO (R_IA64_IMM22, "IMM22", 0, false, true), - IA64_HOWTO (R_IA64_IMM64, "IMM64", 0, false, true), - IA64_HOWTO (R_IA64_DIR32MSB, "DIR32MSB", 2, false, true), - IA64_HOWTO (R_IA64_DIR32LSB, "DIR32LSB", 2, false, true), - IA64_HOWTO (R_IA64_DIR64MSB, "DIR64MSB", 4, false, true), - IA64_HOWTO (R_IA64_DIR64LSB, "DIR64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_GPREL22, "GPREL22", 0, false, true), - IA64_HOWTO (R_IA64_GPREL64I, "GPREL64I", 0, false, true), - IA64_HOWTO (R_IA64_GPREL32MSB, "GPREL32MSB", 2, false, true), - IA64_HOWTO (R_IA64_GPREL32LSB, "GPREL32LSB", 2, false, true), - IA64_HOWTO (R_IA64_GPREL64MSB, "GPREL64MSB", 4, false, true), - IA64_HOWTO (R_IA64_GPREL64LSB, "GPREL64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_LTOFF22, "LTOFF22", 0, false, true), - IA64_HOWTO (R_IA64_LTOFF64I, "LTOFF64I", 0, false, true), - - IA64_HOWTO (R_IA64_PLTOFF22, "PLTOFF22", 0, false, true), - IA64_HOWTO (R_IA64_PLTOFF64I, "PLTOFF64I", 0, false, true), - IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 4, false, true), - IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_FPTR64I, "FPTR64I", 0, false, true), - IA64_HOWTO (R_IA64_FPTR32MSB, "FPTR32MSB", 2, false, true), - IA64_HOWTO (R_IA64_FPTR32LSB, "FPTR32LSB", 2, false, true), - IA64_HOWTO (R_IA64_FPTR64MSB, "FPTR64MSB", 4, false, true), - IA64_HOWTO (R_IA64_FPTR64LSB, "FPTR64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_PCREL60B, "PCREL60B", 0, true, true), - IA64_HOWTO (R_IA64_PCREL21B, "PCREL21B", 0, true, true), - IA64_HOWTO (R_IA64_PCREL21M, "PCREL21M", 0, true, true), - IA64_HOWTO (R_IA64_PCREL21F, "PCREL21F", 0, true, true), - IA64_HOWTO (R_IA64_PCREL32MSB, "PCREL32MSB", 2, true, true), - IA64_HOWTO (R_IA64_PCREL32LSB, "PCREL32LSB", 2, true, true), - IA64_HOWTO (R_IA64_PCREL64MSB, "PCREL64MSB", 4, true, true), - IA64_HOWTO (R_IA64_PCREL64LSB, "PCREL64LSB", 4, true, true), - - IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 0, false, true), - IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 0, false, true), - IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 2, false, true), - IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 2, false, true), - IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 4, false, true), - IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 2, false, true), - IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 2, false, true), - IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 4, false, true), - IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 2, false, true), - IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 2, false, true), - IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 4, false, true), - IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_REL32MSB, "REL32MSB", 2, false, true), - IA64_HOWTO (R_IA64_REL32LSB, "REL32LSB", 2, false, true), - IA64_HOWTO (R_IA64_REL64MSB, "REL64MSB", 4, false, true), - IA64_HOWTO (R_IA64_REL64LSB, "REL64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_LTV32MSB, "LTV32MSB", 2, false, true), - IA64_HOWTO (R_IA64_LTV32LSB, "LTV32LSB", 2, false, true), - IA64_HOWTO (R_IA64_LTV64MSB, "LTV64MSB", 4, false, true), - IA64_HOWTO (R_IA64_LTV64LSB, "LTV64LSB", 4, false, true), - - IA64_HOWTO (R_IA64_PCREL21BI, "PCREL21BI", 0, true, true), - IA64_HOWTO (R_IA64_PCREL22, "PCREL22", 0, true, true), - IA64_HOWTO (R_IA64_PCREL64I, "PCREL64I", 0, true, true), - - IA64_HOWTO (R_IA64_IPLTMSB, "IPLTMSB", 4, false, true), - IA64_HOWTO (R_IA64_IPLTLSB, "IPLTLSB", 4, false, true), - IA64_HOWTO (R_IA64_COPY, "COPY", 4, false, true), - IA64_HOWTO (R_IA64_LTOFF22X, "LTOFF22X", 0, false, true), - IA64_HOWTO (R_IA64_LDXMOV, "LDXMOV", 0, false, true), - - IA64_HOWTO (R_IA64_TPREL14, "TPREL14", 0, false, false), - IA64_HOWTO (R_IA64_TPREL22, "TPREL22", 0, false, false), - IA64_HOWTO (R_IA64_TPREL64I, "TPREL64I", 0, false, false), - IA64_HOWTO (R_IA64_TPREL64MSB, "TPREL64MSB", 8, false, false), - IA64_HOWTO (R_IA64_TPREL64LSB, "TPREL64LSB", 8, false, false), - IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22", 0, false, false), - - IA64_HOWTO (R_IA64_DTPMOD64MSB, "TPREL64MSB", 8, false, false), - IA64_HOWTO (R_IA64_DTPMOD64LSB, "TPREL64LSB", 8, false, false), - IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 0, false, false), - - IA64_HOWTO (R_IA64_DTPREL14, "DTPREL14", 0, false, false), - IA64_HOWTO (R_IA64_DTPREL22, "DTPREL22", 0, false, false), - IA64_HOWTO (R_IA64_DTPREL64I, "DTPREL64I", 0, false, false), - IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 4, false, false), - IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 4, false, false), - IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 8, false, false), - IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 8, false, false), - IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 0, false, false), + IA64_HOWTO (R_IA64_IMM14, "IMM14", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_IMM22, "IMM22", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_IMM64, "IMM64", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_DIR32MSB, "DIR32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_DIR32LSB, "DIR32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_DIR64MSB, "DIR64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_DIR64LSB, "DIR64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_GPREL22, "GPREL22", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_GPREL64I, "GPREL64I", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_GPREL32MSB, "GPREL32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_GPREL32LSB, "GPREL32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_GPREL64MSB, "GPREL64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_GPREL64LSB, "GPREL64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_LTOFF22, "LTOFF22", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTOFF64I, "LTOFF64I", 0, FALSE, TRUE), + + IA64_HOWTO (R_IA64_PLTOFF22, "PLTOFF22", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_PLTOFF64I, "PLTOFF64I", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_PLTOFF64MSB, "PLTOFF64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_PLTOFF64LSB, "PLTOFF64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_FPTR64I, "FPTR64I", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_FPTR32MSB, "FPTR32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_FPTR32LSB, "FPTR32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_FPTR64MSB, "FPTR64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_FPTR64LSB, "FPTR64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_PCREL60B, "PCREL60B", 0, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL21B, "PCREL21B", 0, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL21M, "PCREL21M", 0, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL21F, "PCREL21F", 0, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL32MSB, "PCREL32MSB", 2, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL32LSB, "PCREL32LSB", 2, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL64MSB, "PCREL64MSB", 4, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL64LSB, "PCREL64LSB", 4, TRUE, TRUE), + + IA64_HOWTO (R_IA64_LTOFF_FPTR22, "LTOFF_FPTR22", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTOFF_FPTR64I, "LTOFF_FPTR64I", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTOFF_FPTR32MSB, "LTOFF_FPTR32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTOFF_FPTR32LSB, "LTOFF_FPTR32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTOFF_FPTR64MSB, "LTOFF_FPTR64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTOFF_FPTR64LSB, "LTOFF_FPTR64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_SEGREL32MSB, "SEGREL32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_SEGREL32LSB, "SEGREL32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_SEGREL64MSB, "SEGREL64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_SEGREL64LSB, "SEGREL64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_SECREL32MSB, "SECREL32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_SECREL32LSB, "SECREL32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_SECREL64MSB, "SECREL64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_SECREL64LSB, "SECREL64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_REL32MSB, "REL32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_REL32LSB, "REL32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_REL64MSB, "REL64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_REL64LSB, "REL64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_LTV32MSB, "LTV32MSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTV32LSB, "LTV32LSB", 2, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTV64MSB, "LTV64MSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTV64LSB, "LTV64LSB", 4, FALSE, TRUE), + + IA64_HOWTO (R_IA64_PCREL21BI, "PCREL21BI", 0, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL22, "PCREL22", 0, TRUE, TRUE), + IA64_HOWTO (R_IA64_PCREL64I, "PCREL64I", 0, TRUE, TRUE), + + IA64_HOWTO (R_IA64_IPLTMSB, "IPLTMSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_IPLTLSB, "IPLTLSB", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_COPY, "COPY", 4, FALSE, TRUE), + IA64_HOWTO (R_IA64_LTOFF22X, "LTOFF22X", 0, FALSE, TRUE), + IA64_HOWTO (R_IA64_LDXMOV, "LDXMOV", 0, FALSE, TRUE), + + IA64_HOWTO (R_IA64_TPREL14, "TPREL14", 0, FALSE, FALSE), + IA64_HOWTO (R_IA64_TPREL22, "TPREL22", 0, FALSE, FALSE), + IA64_HOWTO (R_IA64_TPREL64I, "TPREL64I", 0, FALSE, FALSE), + IA64_HOWTO (R_IA64_TPREL64MSB, "TPREL64MSB", 8, FALSE, FALSE), + IA64_HOWTO (R_IA64_TPREL64LSB, "TPREL64LSB", 8, FALSE, FALSE), + IA64_HOWTO (R_IA64_LTOFF_TPREL22, "LTOFF_TPREL22", 0, FALSE, FALSE), + + IA64_HOWTO (R_IA64_DTPMOD64MSB, "TPREL64MSB", 8, FALSE, FALSE), + IA64_HOWTO (R_IA64_DTPMOD64LSB, "TPREL64LSB", 8, FALSE, FALSE), + IA64_HOWTO (R_IA64_LTOFF_DTPMOD22, "LTOFF_DTPMOD22", 0, FALSE, FALSE), + + IA64_HOWTO (R_IA64_DTPREL14, "DTPREL14", 0, FALSE, FALSE), + IA64_HOWTO (R_IA64_DTPREL22, "DTPREL22", 0, FALSE, FALSE), + IA64_HOWTO (R_IA64_DTPREL64I, "DTPREL64I", 0, FALSE, FALSE), + IA64_HOWTO (R_IA64_DTPREL32MSB, "DTPREL32MSB", 4, FALSE, FALSE), + IA64_HOWTO (R_IA64_DTPREL32LSB, "DTPREL32LSB", 4, FALSE, FALSE), + IA64_HOWTO (R_IA64_DTPREL64MSB, "DTPREL64MSB", 8, FALSE, FALSE), + IA64_HOWTO (R_IA64_DTPREL64LSB, "DTPREL64LSB", 8, FALSE, FALSE), + IA64_HOWTO (R_IA64_LTOFF_DTPREL22, "LTOFF_DTPREL22", 0, FALSE, FALSE), }; static unsigned char elf_code_to_howto_index[R_IA64_MAX_RELOC_CODE + 1]; @@ -597,7 +599,7 @@ static void elfNN_ia64_info_to_howto (abfd, bfd_reloc, elf_reloc) bfd *abfd ATTRIBUTE_UNUSED; arelent *bfd_reloc; - ElfNN_Internal_Rela *elf_reloc; + Elf_Internal_Rela *elf_reloc; { bfd_reloc->howto = lookup_howto ((unsigned int) ELFNN_R_TYPE (elf_reloc->r_info)); @@ -672,14 +674,15 @@ static const bfd_byte oor_ip[48] = /* These functions do relaxation for IA-64 ELF. This is primarily to support branches to targets out of range; - relaxation of R_IA64_LTOFF22X and R_IA64_LDXMOV not yet supported. */ + relaxation of R_IA64_LTOFF22X and R_IA64_LDXMOV is handled in + relocate_section directly. */ -static boolean +static bfd_boolean elfNN_ia64_relax_section (abfd, sec, link_info, again) bfd *abfd; asection *sec; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { struct one_fixup { @@ -696,17 +699,17 @@ elfNN_ia64_relax_section (abfd, sec, lin Elf_Internal_Sym *isymbuf = NULL; struct elfNN_ia64_link_hash_table *ia64_info; struct one_fixup *fixups = NULL; - boolean changed_contents = false; - boolean changed_relocs = false; + bfd_boolean changed_contents = FALSE; + bfd_boolean changed_relocs = FALSE; /* Assume we're not going to change any sizes, and we'll only need one pass. */ - *again = false; + *again = FALSE; /* Nothing to do if there are no relocations. */ if ((sec->flags & SEC_RELOC) == 0 || sec->reloc_count == 0) - return true; + return TRUE; /* If this is the first time we have been called for this section, initialize the cooked size. */ @@ -720,23 +723,27 @@ elfNN_ia64_relax_section (abfd, sec, lin (abfd, sec, (PTR) NULL, (Elf_Internal_Rela *) NULL, link_info->keep_memory)); if (internal_relocs == NULL) - return false; + return FALSE; ia64_info = elfNN_ia64_hash_table (link_info); irelend = internal_relocs + sec->reloc_count; for (irel = internal_relocs; irel < irelend; irel++) - if (ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21B - || ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21M - || ELFNN_R_TYPE (irel->r_info) == (int) R_IA64_PCREL21F) - break; + { + unsigned long r_type = ELFNN_R_TYPE (irel->r_info); + if (r_type == R_IA64_PCREL21B + || r_type == R_IA64_PCREL21BI + || r_type == R_IA64_PCREL21M + || r_type == R_IA64_PCREL21F) + break; + } /* No branch-type relocations. */ if (irel == irelend) { if (elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return true; + return TRUE; } /* Get the section contents. */ @@ -755,14 +762,16 @@ elfNN_ia64_relax_section (abfd, sec, lin for (; irel < irelend; irel++) { + unsigned long r_type = ELFNN_R_TYPE (irel->r_info); bfd_vma symaddr, reladdr, trampoff, toff, roff; asection *tsec; struct one_fixup *f; bfd_size_type amt; - if (ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21B - && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21M - && ELFNN_R_TYPE (irel->r_info) != (int) R_IA64_PCREL21F) + if (r_type != R_IA64_PCREL21B + && r_type != R_IA64_PCREL21BI + && r_type != R_IA64_PCREL21M + && r_type != R_IA64_PCREL21F) continue; /* Get the value of the symbol referred to by the reloc. */ @@ -811,12 +820,17 @@ elfNN_ia64_relax_section (abfd, sec, lin || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - dyn_i = get_dyn_sym_info (ia64_info, h, abfd, irel, false); + dyn_i = get_dyn_sym_info (ia64_info, h, abfd, irel, FALSE); /* For branches to dynamic symbols, we're interested instead in a branch to the PLT entry. */ if (dyn_i && dyn_i->want_plt2) { + /* Internal branches shouldn't be sent to the PLT. + Leave this for now and we'll give an error later. */ + if (r_type != R_IA64_PCREL21B) + continue; + tsec = ia64_info->plt_sec; toff = dyn_i->plt2_offset; } @@ -928,11 +942,11 @@ elfNN_ia64_relax_section (abfd, sec, lin hell this doesn't overflow too. */ if (elfNN_ia64_install_value (abfd, contents + roff, f->trampoff - (roff & (bfd_vma) -4), - R_IA64_PCREL21B) != bfd_reloc_ok) + r_type) != bfd_reloc_ok) goto error_return; - changed_contents = true; - changed_relocs = true; + changed_contents = TRUE; + changed_relocs = TRUE; } /* Clean up and go home. */ @@ -976,7 +990,7 @@ elfNN_ia64_relax_section (abfd, sec, lin } *again = changed_contents || changed_relocs; - return true; + return TRUE; error_return: if (isymbuf != NULL && (unsigned char *) isymbuf != symtab_hdr->contents) @@ -987,12 +1001,12 @@ elfNN_ia64_relax_section (abfd, sec, lin if (internal_relocs != NULL && elf_section_data (sec)->relocs != internal_relocs) free (internal_relocs); - return false; + return FALSE; } -/* Return true if NAME is an unwind table section name. */ +/* Return TRUE if NAME is an unwind table section name. */ -static inline boolean +static inline bfd_boolean is_unwind_section_name (abfd, name) bfd *abfd; const char *name; @@ -1001,7 +1015,7 @@ is_unwind_section_name (abfd, name) if (elfNN_ia64_hpux_vec (abfd->xvec) && !strcmp (name, ELF_STRING_ia64_unwind_hdr)) - return false; + return FALSE; len1 = sizeof (ELF_STRING_ia64_unwind) - 1; len2 = sizeof (ELF_STRING_ia64_unwind_info) - 1; @@ -1014,10 +1028,10 @@ is_unwind_section_name (abfd, name) /* Handle an IA-64 specific section when reading an object file. This is called when elfcode.h finds a section with an unknown type. */ -static boolean +static bfd_boolean elfNN_ia64_section_from_shdr (abfd, hdr, name) bfd *abfd; - ElfNN_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; const char *name; { asection *newsect; @@ -1035,18 +1049,18 @@ elfNN_ia64_section_from_shdr (abfd, hdr, case SHT_IA_64_EXT: if (strcmp (name, ELF_STRING_ia64_archext) != 0) - return false; + return FALSE; break; default: - return false; + return FALSE; } if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; newsect = hdr->bfd_section; - return true; + return TRUE; } /* Convert IA-64 specific section flags to bfd internal section flags. */ @@ -1054,24 +1068,24 @@ elfNN_ia64_section_from_shdr (abfd, hdr, /* ??? There is no bfd internal flag equivalent to the SHF_IA_64_NORECOV flag. */ -static boolean +static bfd_boolean elfNN_ia64_section_flags (flags, hdr) flagword *flags; - ElfNN_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; { if (hdr->sh_flags & SHF_IA_64_SHORT) *flags |= SEC_SMALL_DATA; - return true; + return TRUE; } /* Set the correct type for an IA-64 ELF section. We do this by the section name, which is a hack, but ought to work. */ -static boolean +static bfd_boolean elfNN_ia64_fake_sections (abfd, hdr, sec) bfd *abfd ATTRIBUTE_UNUSED; - ElfNN_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; asection *sec; { register const char *name; @@ -1111,7 +1125,7 @@ elfNN_ia64_fake_sections (abfd, hdr, sec if (sec->flags & SEC_SMALL_DATA) hdr->sh_flags |= SHF_IA_64_SHORT; - return true; + return TRUE; } /* The final processing done just before writing out an IA-64 ELF @@ -1120,7 +1134,7 @@ elfNN_ia64_fake_sections (abfd, hdr, sec static void elfNN_ia64_final_write_processing (abfd, linker) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { Elf_Internal_Shdr *hdr; const char *sname; @@ -1205,14 +1219,14 @@ elfNN_ia64_final_write_processing (abfd, flags |= EF_IA_64_ABI64; elf_elfheader(abfd)->e_flags = flags; - elf_flags_init (abfd) = true; + elf_flags_init (abfd) = TRUE; } } /* Hook called by the linker routine which adds symbols from an object file. We use it to put .comm items in .sbss, and not .bss. */ -static boolean +static bfd_boolean elfNN_ia64_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -1238,17 +1252,17 @@ elfNN_ia64_add_symbol_hook (abfd, info, || !bfd_set_section_flags (abfd, scomm, (SEC_ALLOC | SEC_IS_COMMON | SEC_LINKER_CREATED))) - return false; + return FALSE; } *secp = scomm; *valp = sym->st_size; } - return true; + return TRUE; } -static boolean +static bfd_boolean elfNN_ia64_aix_vec (const bfd_target *vec) { extern const bfd_target bfd_elfNN_ia64_aix_little_vec; @@ -1261,7 +1275,7 @@ elfNN_ia64_aix_vec (const bfd_target *ve /* Hook called by the linker routine which adds symbols from an object file. We use it to handle OS-specific symbols. */ -static boolean +static bfd_boolean elfNN_ia64_aix_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -1279,7 +1293,7 @@ elfNN_ia64_aix_add_symbol_hook (abfd, in struct elf_link_hash_entry *h; h = elf_link_hash_lookup (elf_hash_table (info), *namep, - false, false, false); + FALSE, FALSE, FALSE); if (h == NULL) { struct elf_backend_data *bed; @@ -1292,19 +1306,19 @@ elfNN_ia64_aix_add_symbol_hook (abfd, in if (!(_bfd_generic_link_add_one_symbol (info, abfd, *namep, BSF_GLOBAL, bfd_get_section_by_name (abfd, ".bss"), - bed->got_symbol_offset, (const char *) NULL, false, + bed->got_symbol_offset, (const char *) NULL, FALSE, bed->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags |= ELF_LINK_HASH_DEF_REGULAR; h->type = STT_OBJECT; if (! _bfd_elf_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } - return true; + return TRUE; } else if (sym->st_shndx == SHN_LOOS) { @@ -1330,7 +1344,7 @@ elfNN_ia64_aix_add_symbol_hook (abfd, in *valp = sym->st_size; - return true; + return TRUE; } else { @@ -1339,7 +1353,7 @@ elfNN_ia64_aix_add_symbol_hook (abfd, in } } -boolean +bfd_boolean elfNN_ia64_aix_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1349,7 +1363,7 @@ elfNN_ia64_aix_link_add_symbols (abfd, i && abfd->xvec == info->hash->creator) { if (! bfd_elfNN_link_create_dynamic_sections (abfd, info)) - return false; + return FALSE; } /* Now do the standard call. */ @@ -1378,7 +1392,7 @@ elfNN_ia64_additional_program_headers (a return ret; } -static boolean +static bfd_boolean elfNN_ia64_modify_segment_map (abfd) bfd *abfd; { @@ -1399,7 +1413,7 @@ elfNN_ia64_modify_segment_map (abfd) m = ((struct elf_segment_map *) bfd_zalloc (abfd, (bfd_size_type) sizeof *m)); if (m == NULL) - return false; + return FALSE; m->p_type = PT_IA_64_ARCHEXT; m->count = 1; @@ -1447,7 +1461,7 @@ elfNN_ia64_modify_segment_map (abfd) m = ((struct elf_segment_map *) bfd_zalloc (abfd, (bfd_size_type) sizeof *m)); if (m == NULL) - return false; + return FALSE; m->p_type = PT_IA_64_UNWIND; m->count = 1; @@ -1491,13 +1505,13 @@ elfNN_ia64_modify_segment_map (abfd) found:; } - return true; + return TRUE; } /* According to the Tahoe assembler spec, all labels starting with a '.' are local. */ -static boolean +static bfd_boolean elfNN_ia64_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -1507,43 +1521,43 @@ elfNN_ia64_is_local_label_name (abfd, na /* Should we do dynamic things to this symbol? */ -static boolean +static bfd_boolean elfNN_ia64_dynamic_symbol_p (h, info) struct elf_link_hash_entry *h; struct bfd_link_info *info; { if (h == NULL) - return false; + return FALSE; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; if (h->dynindx == -1) - return false; + return FALSE; switch (ELF_ST_VISIBILITY (h->other)) { case STV_INTERNAL: case STV_HIDDEN: - return false; + return FALSE; default: break; } if (h->root.type == bfd_link_hash_undefweak || h->root.type == bfd_link_hash_defweak) - return true; + return TRUE; if ((info->shared && (!info->symbolic || info->allow_shlib_undefined)) || ((h->elf_link_hash_flags & (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR)) == (ELF_LINK_HASH_DEF_DYNAMIC | ELF_LINK_HASH_REF_REGULAR))) - return true; + return TRUE; - return false; + return FALSE; } -static boolean +static bfd_boolean elfNN_ia64_local_hash_table_init (ht, abfd, new) struct elfNN_ia64_local_hash_table *ht; bfd *abfd ATTRIBUTE_UNUSED; @@ -1664,7 +1678,7 @@ static void elfNN_ia64_hash_hide_symbol (info, xh, force_local) struct bfd_link_info *info; struct elf_link_hash_entry *xh; - boolean force_local; + bfd_boolean force_local; { struct elfNN_ia64_link_hash_entry *h; struct elfNN_ia64_dyn_sym_info *dyn_i; @@ -1709,7 +1723,7 @@ static INLINE struct elfNN_ia64_local_ha elfNN_ia64_local_hash_lookup(table, string, create, copy) struct elfNN_ia64_local_hash_table *table; const char *string; - boolean create, copy; + bfd_boolean create, copy; { return ((struct elfNN_ia64_local_hash_entry *) bfd_hash_lookup (&table->root, string, create, copy)); @@ -1719,11 +1733,11 @@ elfNN_ia64_local_hash_lookup(table, stri struct elfNN_ia64_dyn_sym_traverse_data { - boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR)); + bfd_boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR)); PTR data; }; -static boolean +static bfd_boolean elfNN_ia64_global_dyn_sym_thunk (xentry, xdata) struct bfd_hash_entry *xentry; PTR xdata; @@ -1739,11 +1753,11 @@ elfNN_ia64_global_dyn_sym_thunk (xentry, for (dyn_i = entry->info; dyn_i; dyn_i = dyn_i->next) if (! (*data->func) (dyn_i, data->data)) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean elfNN_ia64_local_dyn_sym_thunk (xentry, xdata) struct bfd_hash_entry *xentry; PTR xdata; @@ -1756,14 +1770,14 @@ elfNN_ia64_local_dyn_sym_thunk (xentry, for (dyn_i = entry->info; dyn_i; dyn_i = dyn_i->next) if (! (*data->func) (dyn_i, data->data)) - return false; - return true; + return FALSE; + return TRUE; } static void elfNN_ia64_dyn_sym_traverse (ia64_info, func, data) struct elfNN_ia64_link_hash_table *ia64_info; - boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR)); + bfd_boolean (*func) PARAMS ((struct elfNN_ia64_dyn_sym_info *, PTR)); PTR data; { struct elfNN_ia64_dyn_sym_traverse_data xdata; @@ -1777,7 +1791,7 @@ elfNN_ia64_dyn_sym_traverse (ia64_info, elfNN_ia64_local_dyn_sym_thunk, &xdata); } -static boolean +static bfd_boolean elfNN_ia64_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1786,7 +1800,7 @@ elfNN_ia64_create_dynamic_sections (abfd asection *s; if (! _bfd_elf_create_dynamic_sections (abfd, info)) - return false; + return FALSE; ia64_info = elfNN_ia64_hash_table (info); @@ -1799,7 +1813,7 @@ elfNN_ia64_create_dynamic_sections (abfd } if (!get_pltoff (abfd, info, ia64_info)) - return false; + return FALSE; s = bfd_make_section(abfd, ".rela.IA_64.pltoff"); if (s == NULL @@ -1809,7 +1823,7 @@ elfNN_ia64_create_dynamic_sections (abfd | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; ia64_info->rel_pltoff_sec = s; s = bfd_make_section(abfd, ".rela.got"); @@ -1820,10 +1834,10 @@ elfNN_ia64_create_dynamic_sections (abfd | SEC_LINKER_CREATED | SEC_READONLY)) || !bfd_set_section_alignment (abfd, s, 3)) - return false; + return FALSE; ia64_info->rel_got_sec = s; - return true; + return TRUE; } /* Find and/or create a hash entry for local symbol. */ @@ -1832,28 +1846,24 @@ get_local_sym_hash (ia64_info, abfd, rel struct elfNN_ia64_link_hash_table *ia64_info; bfd *abfd; const Elf_Internal_Rela *rel; - boolean create; + bfd_boolean create; { - char *addr_name; - size_t len; struct elfNN_ia64_local_hash_entry *ret; + asection *sec = abfd->sections; + char addr_name [34]; + + BFD_ASSERT ((sizeof (sec->id)*2 + 1 + sizeof (unsigned long)*2 + 1) <= 34); + BFD_ASSERT (sec); /* Construct a string for use in the elfNN_ia64_local_hash_table. name describes what was once anonymous memory. */ - len = sizeof (void*)*2 + 1 + sizeof (bfd_vma)*4 + 1 + 1; - len += 10; /* %p slop */ - - addr_name = bfd_malloc (len); - if (addr_name == NULL) - return 0; - sprintf (addr_name, "%p:%lx", - (void *) abfd, (unsigned long) ELFNN_R_SYM (rel->r_info)); + sprintf (addr_name, "%x:%lx", + sec->id, (unsigned long) ELFNN_R_SYM (rel->r_info)); /* Collect the canonical entry data for this address. */ ret = elfNN_ia64_local_hash_lookup (&ia64_info->loc_hash_table, addr_name, create, create); - free (addr_name); return ret; } @@ -1866,7 +1876,7 @@ get_dyn_sym_info (ia64_info, h, abfd, re struct elf_link_hash_entry *h; bfd *abfd; const Elf_Internal_Rela *rel; - boolean create; + bfd_boolean create; { struct elfNN_ia64_dyn_sym_info **pp; struct elfNN_ia64_dyn_sym_info *dyn_i; @@ -2013,7 +2023,7 @@ get_reloc_section (abfd, ia64_info, sec, bfd *abfd; struct elfNN_ia64_link_hash_table *ia64_info; asection *sec; - boolean create; + bfd_boolean create; { const char *srel_name; asection *srel; @@ -2058,7 +2068,7 @@ get_reloc_section (abfd, ia64_info, sec, return srel; } -static boolean +static bfd_boolean count_dyn_reloc (abfd, dyn_i, srel, type) bfd *abfd; struct elfNN_ia64_dyn_sym_info *dyn_i; @@ -2076,7 +2086,7 @@ count_dyn_reloc (abfd, dyn_i, srel, type rent = ((struct elfNN_ia64_dyn_reloc_entry *) bfd_alloc (abfd, (bfd_size_type) sizeof (*rent))); if (!rent) - return false; + return FALSE; rent->next = dyn_i->reloc_entries; rent->srel = srel; @@ -2086,10 +2096,10 @@ count_dyn_reloc (abfd, dyn_i, srel, type } rent->count++; - return true; + return TRUE; } -static boolean +static bfd_boolean elfNN_ia64_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -2103,7 +2113,7 @@ elfNN_ia64_check_relocs (abfd, info, sec asection *got, *fptr, *srel; if (info->relocateable) - return true; + return TRUE; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; ia64_info = elfNN_ia64_hash_table (info); @@ -2130,7 +2140,7 @@ elfNN_ia64_check_relocs (abfd, info, sec unsigned long r_symndx = ELFNN_R_SYM (rel->r_info); struct elfNN_ia64_dyn_sym_info *dyn_i; int need_entry; - boolean maybe_dynamic; + bfd_boolean maybe_dynamic; int dynrel_type = R_IA64_NONE; if (r_symndx >= symtab_hdr->sh_info) @@ -2150,13 +2160,13 @@ elfNN_ia64_check_relocs (abfd, info, sec locally or externally defined, as not all of the input files have yet been processed. Do something with what we know, as this may help reduce memory usage and processing time later. */ - maybe_dynamic = false; + maybe_dynamic = FALSE; if (h && ((info->shared && (!info->symbolic || info->allow_shlib_undefined)) || ! (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) || h->root.type == bfd_link_hash_defweak || elfNN_ia64_aix_vec (abfd->xvec))) - maybe_dynamic = true; + maybe_dynamic = TRUE; need_entry = 0; switch (ELFNN_R_TYPE (rel->r_info)) @@ -2300,7 +2310,7 @@ elfNN_ia64_check_relocs (abfd, info, sec abfd, 0, (bfd_vma) 0); } - dyn_i = get_dyn_sym_info (ia64_info, h, abfd, rel, true); + dyn_i = get_dyn_sym_info (ia64_info, h, abfd, rel, TRUE); /* Record whether or not this is a local symbol. */ dyn_i->h = h; @@ -2312,7 +2322,7 @@ elfNN_ia64_check_relocs (abfd, info, sec { got = get_got (abfd, info, ia64_info); if (!got) - return false; + return FALSE; } if (need_entry & NEED_GOT) dyn_i->want_got = 1; @@ -2329,7 +2339,7 @@ elfNN_ia64_check_relocs (abfd, info, sec { fptr = get_fptr (abfd, info, ia64_info); if (!fptr) - return false; + return FALSE; } /* FPTRs for shared libraries are allocated by the dynamic @@ -2341,7 +2351,7 @@ elfNN_ia64_check_relocs (abfd, info, sec { if (! (_bfd_elfNN_link_record_local_dynamic_symbol (info, abfd, (long) r_symndx))) - return false; + return FALSE; } dyn_i->want_fptr = 1; @@ -2363,16 +2373,16 @@ elfNN_ia64_check_relocs (abfd, info, sec { if (!srel) { - srel = get_reloc_section (abfd, ia64_info, sec, true); + srel = get_reloc_section (abfd, ia64_info, sec, TRUE); if (!srel) - return false; + return FALSE; } if (!count_dyn_reloc (abfd, dyn_i, srel, dynrel_type)) - return false; + return FALSE; } } - return true; + return TRUE; } struct elfNN_ia64_allocate_data @@ -2384,7 +2394,7 @@ struct elfNN_ia64_allocate_data /* For cleanliness, and potentially faster dynamic loading, allocate external GOT entries first. */ -static boolean +static bfd_boolean allocate_global_data_got (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2408,20 +2418,35 @@ allocate_global_data_got (dyn_i, data) } if (dyn_i->want_dtpmod) { - dyn_i->dtpmod_offset = x->ofs; - x->ofs += 8; + if (elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info)) + { + dyn_i->dtpmod_offset = x->ofs; + x->ofs += 8; + } + else + { + struct elfNN_ia64_link_hash_table *ia64_info; + + ia64_info = elfNN_ia64_hash_table (x->info); + if (ia64_info->self_dtpmod_offset == (bfd_vma) -1) + { + ia64_info->self_dtpmod_offset = x->ofs; + x->ofs += 8; + } + dyn_i->dtpmod_offset = ia64_info->self_dtpmod_offset; + } } if (dyn_i->want_dtprel) { dyn_i->dtprel_offset = x->ofs; x->ofs += 8; } - return true; + return TRUE; } /* Next, allocate all the GOT entries used by LTOFF_FPTR relocs. */ -static boolean +static bfd_boolean allocate_global_fptr_got (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2436,12 +2461,12 @@ allocate_global_fptr_got (dyn_i, data) dyn_i->got_offset = x->ofs; x->ofs += 8; } - return true; + return TRUE; } /* Lastly, allocate all the GOT entries for local data. */ -static boolean +static bfd_boolean allocate_local_got (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2455,7 +2480,7 @@ allocate_local_got (dyn_i, data) dyn_i->got_offset = x->ofs; x->ofs += 8; } - return true; + return TRUE; } /* Search for the index of a global symbol in it's defining object file. */ @@ -2480,7 +2505,7 @@ global_sym_index (h) /* Allocate function descriptors. We can do these for every function in a main executable that is not exported. */ -static boolean +static bfd_boolean allocate_fptr (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2511,7 +2536,7 @@ allocate_fptr (dyn_i, data) if (!_bfd_elfNN_link_record_local_dynamic_symbol (x->info, h->root.u.def.section->owner, global_sym_index (h))) - return false; + return FALSE; } dyn_i->want_fptr = 0; @@ -2524,12 +2549,12 @@ allocate_fptr (dyn_i, data) else dyn_i->want_fptr = 0; } - return true; + return TRUE; } /* Allocate all the minimal PLT entries. */ -static boolean +static bfd_boolean allocate_plt_entries (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2562,12 +2587,12 @@ allocate_plt_entries (dyn_i, data) dyn_i->want_plt2 = 0; } } - return true; + return TRUE; } /* Allocate all the full PLT entries. */ -static boolean +static bfd_boolean allocate_plt2_entries (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2587,7 +2612,7 @@ allocate_plt2_entries (dyn_i, data) h = (struct elf_link_hash_entry *) h->root.u.i.link; dyn_i->h->plt.offset = ofs; } - return true; + return TRUE; } /* Allocate all the PLTOFF entries requested by relocations and @@ -2595,7 +2620,7 @@ allocate_plt2_entries (dyn_i, data) because the latter are not necessarily addressable by the GP. ??? Relaxation might be able to determine that they are. */ -static boolean +static bfd_boolean allocate_pltoff_entries (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2607,13 +2632,13 @@ allocate_pltoff_entries (dyn_i, data) dyn_i->pltoff_offset = x->ofs; x->ofs += 16; } - return true; + return TRUE; } /* Allocate dynamic relocations for those symbols that turned out to be dynamic. */ -static boolean +static bfd_boolean allocate_dynrel_entries (dyn_i, data) struct elfNN_ia64_dyn_sym_info *dyn_i; PTR data; @@ -2621,7 +2646,7 @@ allocate_dynrel_entries (dyn_i, data) struct elfNN_ia64_allocate_data *x = (struct elfNN_ia64_allocate_data *)data; struct elfNN_ia64_link_hash_table *ia64_info; struct elfNN_ia64_dyn_reloc_entry *rent; - boolean dynamic_symbol, shared; + bfd_boolean dynamic_symbol, shared; ia64_info = elfNN_ia64_hash_table (x->info); dynamic_symbol = elfNN_ia64_dynamic_symbol_p (dyn_i->h, x->info) @@ -2679,7 +2704,7 @@ allocate_dynrel_entries (dyn_i, data) ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); if ((dynamic_symbol || shared) && dyn_i->want_tprel) ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); - if ((dynamic_symbol || shared) && dyn_i->want_dtpmod) + if (dynamic_symbol && dyn_i->want_dtpmod) ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); if (dynamic_symbol && dyn_i->want_dtprel) ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); @@ -2699,10 +2724,10 @@ allocate_dynrel_entries (dyn_i, data) ia64_info->rel_pltoff_sec->_raw_size += t; } - return true; + return TRUE; } -static boolean +static bfd_boolean elfNN_ia64_adjust_dynamic_symbol (info, h) struct bfd_link_info *info ATTRIBUTE_UNUSED; struct elf_link_hash_entry *h; @@ -2719,7 +2744,7 @@ elfNN_ia64_adjust_dynamic_symbol (info, || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* If this is a reference to a symbol defined by a dynamic object which @@ -2729,10 +2754,10 @@ elfNN_ia64_adjust_dynamic_symbol (info, But IA-64 code is canonically PIC, so as a rule we can avoid this sort of hackery. */ - return true; + return TRUE; } -static boolean +static bfd_boolean elfNN_ia64_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -2741,10 +2766,11 @@ elfNN_ia64_size_dynamic_sections (output struct elfNN_ia64_link_hash_table *ia64_info; asection *sec; bfd *dynobj; - boolean relplt = false; + bfd_boolean relplt = FALSE; dynobj = elf_hash_table(info)->dynobj; ia64_info = elfNN_ia64_hash_table (info); + ia64_info->self_dtpmod_offset = (bfd_vma) -1; BFD_ASSERT(dynobj != NULL); data.info = info; @@ -2780,7 +2806,7 @@ elfNN_ia64_size_dynamic_sections (output /* Now that we've seen all of the input files, we can decide which symbols need plt entries. Allocate the minimal PLT entries first. - We do this even though dynamic_sections_created may be false, because + We do this even though dynamic_sections_created may be FALSE, because this has the side-effect of clearing want_plt and want_plt2. */ data.ofs = 0; @@ -2823,6 +2849,8 @@ elfNN_ia64_size_dynamic_sections (output /* Allocate space for the dynamic relocations that turned out to be required. */ + if (info->shared && ia64_info->self_dtpmod_offset != (bfd_vma) -1) + ia64_info->rel_got_sec->_raw_size += sizeof (ElfNN_External_Rela); elfNN_ia64_dyn_sym_traverse (ia64_info, allocate_dynrel_entries, &data); } @@ -2830,7 +2858,7 @@ elfNN_ia64_size_dynamic_sections (output Allocate memory for them. */ for (sec = dynobj->sections; sec != NULL; sec = sec->next) { - boolean strip; + bfd_boolean strip; if (!(sec->flags & SEC_LINKER_CREATED)) continue; @@ -2846,7 +2874,7 @@ elfNN_ia64_size_dynamic_sections (output strip = (sec->_raw_size == 0); if (sec == ia64_info->got_sec) - strip = false; + strip = FALSE; else if (sec == ia64_info->rel_got_sec) { if (strip) @@ -2877,7 +2905,7 @@ elfNN_ia64_size_dynamic_sections (output ia64_info->rel_pltoff_sec = NULL; else { - relplt = true; + relplt = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ sec->reloc_count = 0; @@ -2892,7 +2920,7 @@ elfNN_ia64_size_dynamic_sections (output name = bfd_get_section_name (dynobj, sec); if (strcmp (name, ".got.plt") == 0) - strip = false; + strip = FALSE; else if (strncmp (name, ".rel", 4) == 0) { if (!strip) @@ -2913,7 +2941,7 @@ elfNN_ia64_size_dynamic_sections (output /* Allocate memory for the section contents. */ sec->contents = (bfd_byte *) bfd_zalloc (dynobj, sec->_raw_size); if (sec->contents == NULL && sec->_raw_size != 0) - return false; + return FALSE; } } @@ -2931,38 +2959,38 @@ elfNN_ia64_size_dynamic_sections (output bfd_elfNN_add_dynamic_entry (info, (bfd_vma) (TAG), (bfd_vma) (VAL)) if (!add_dynamic_entry (DT_DEBUG, 0)) - return false; + return FALSE; } if (!add_dynamic_entry (DT_IA_64_PLT_RESERVE, 0)) - return false; + return FALSE; if (!add_dynamic_entry (DT_PLTGOT, 0)) - return false; + return FALSE; if (relplt) { if (!add_dynamic_entry (DT_PLTRELSZ, 0) || !add_dynamic_entry (DT_PLTREL, DT_RELA) || !add_dynamic_entry (DT_JMPREL, 0)) - return false; + return FALSE; } if (!add_dynamic_entry (DT_RELA, 0) || !add_dynamic_entry (DT_RELASZ, 0) || !add_dynamic_entry (DT_RELAENT, sizeof (ElfNN_External_Rela))) - return false; + return FALSE; if (ia64_info->reltext) { if (!add_dynamic_entry (DT_TEXTREL, 0)) - return false; + return FALSE; info->flags |= DF_TEXTREL; } } /* ??? Perhaps force __gp local. */ - return true; + return TRUE; } static bfd_reloc_status_type @@ -3203,6 +3231,7 @@ elfNN_ia64_install_dyn_reloc (abfd, info bfd_vma addend; { Elf_Internal_Rela outrel; + bfd_byte *loc; BFD_ASSERT (dynindx != -1); outrel.r_info = ELFNN_R_INFO (dynindx, type); @@ -3219,9 +3248,9 @@ elfNN_ia64_install_dyn_reloc (abfd, info else outrel.r_offset += sec->output_section->vma + sec->output_offset; - bfd_elfNN_swap_reloca_out (abfd, &outrel, - ((ElfNN_External_Rela *) srel->contents - + srel->reloc_count++)); + loc = srel->contents; + loc += srel->reloc_count++ * sizeof (ElfNN_External_Rela); + bfd_elfNN_swap_reloca_out (abfd, &outrel, loc); BFD_ASSERT (sizeof (ElfNN_External_Rela) * srel->reloc_count <= srel->_cooked_size); } @@ -3241,7 +3270,7 @@ set_got_entry (abfd, info, dyn_i, dynind { struct elfNN_ia64_link_hash_table *ia64_info; asection *got_sec; - boolean done; + bfd_boolean done; bfd_vma got_offset; ia64_info = elfNN_ia64_hash_table (info); @@ -3251,22 +3280,31 @@ set_got_entry (abfd, info, dyn_i, dynind { case R_IA64_TPREL64LSB: done = dyn_i->tprel_done; - dyn_i->tprel_done = true; + dyn_i->tprel_done = TRUE; got_offset = dyn_i->tprel_offset; break; case R_IA64_DTPMOD64LSB: - done = dyn_i->dtpmod_done; - dyn_i->dtpmod_done = true; + if (dyn_i->dtpmod_offset != ia64_info->self_dtpmod_offset) + { + done = dyn_i->dtpmod_done; + dyn_i->dtpmod_done = TRUE; + } + else + { + done = ia64_info->self_dtpmod_done; + ia64_info->self_dtpmod_done = TRUE; + dynindx = 0; + } got_offset = dyn_i->dtpmod_offset; break; case R_IA64_DTPREL64LSB: done = dyn_i->dtprel_done; - dyn_i->dtprel_done = true; + dyn_i->dtprel_done = TRUE; got_offset = dyn_i->dtprel_offset; break; default: done = dyn_i->got_done; - dyn_i->got_done = true; + dyn_i->got_done = TRUE; got_offset = dyn_i->got_offset; break; } @@ -3317,7 +3355,7 @@ set_got_entry (abfd, info, dyn_i, dynind dyn_r_type = R_IA64_DTPREL64MSB; break; default: - BFD_ASSERT (false); + BFD_ASSERT (FALSE); break; } } @@ -3380,7 +3418,7 @@ set_pltoff_entry (abfd, info, dyn_i, val struct bfd_link_info *info; struct elfNN_ia64_dyn_sym_info *dyn_i; bfd_vma value; - boolean is_plt; + bfd_boolean is_plt; { struct elfNN_ia64_link_hash_table *ia64_info; asection *pltoff_sec; @@ -3478,7 +3516,7 @@ elfNN_ia64_unwind_entry_compare (a, b) return (av < bv ? -1 : av > bv ? 1 : 0); } -static boolean +static bfd_boolean elfNN_ia64_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3526,8 +3564,8 @@ elfNN_ia64_final_link (abfd, info) } /* See if the user wants to force a value. */ - gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", false, - false, false); + gp = elf_link_hash_lookup (elf_hash_table (info), "__gp", FALSE, + FALSE, FALSE); if (gp && (gp->root.type == bfd_link_hash_defined @@ -3581,7 +3619,7 @@ elfNN_ia64_final_link (abfd, info) (_("%s: short data segment overflowed (0x%lx >= 0x400000)"), bfd_get_filename (abfd), (unsigned long) (max_short_vma - min_short_vma)); - return false; + return FALSE; } else if ((gp_val > min_short_vma && gp_val - min_short_vma > 0x200000) @@ -3591,7 +3629,7 @@ elfNN_ia64_final_link (abfd, info) (*_bfd_error_handler) (_("%s: __gp does not cover short data segment"), bfd_get_filename (abfd)); - return false; + return FALSE; } } @@ -3618,13 +3656,13 @@ elfNN_ia64_final_link (abfd, info) unwind_output_sec->contents = bfd_malloc (unwind_output_sec->_raw_size); if (unwind_output_sec->contents == NULL) - return false; + return FALSE; } } /* Invoke the regular ELF backend linker to do all the work. */ if (!bfd_elfNN_bfd_final_link (abfd, info)) - return false; + return FALSE; if (unwind_output_sec) { @@ -3637,13 +3675,13 @@ elfNN_ia64_final_link (abfd, info) if (! bfd_set_section_contents (abfd, unwind_output_sec, unwind_output_sec->contents, (bfd_vma) 0, unwind_output_sec->_raw_size)) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean elfNN_ia64_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -3660,7 +3698,7 @@ elfNN_ia64_relocate_section (output_bfd, Elf_Internal_Rela *rel; Elf_Internal_Rela *relend; asection *srel; - boolean ret_val = true; /* for non-fatal errors */ + bfd_boolean ret_val = TRUE; /* for non-fatal errors */ bfd_vma gp_val; symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; @@ -3676,11 +3714,11 @@ elfNN_ia64_relocate_section (output_bfd, elf_section_data(input_section->output_section) ->this_hdr.sh_flags |= flags; - return true; + return TRUE; } gp_val = _bfd_get_gp_value (output_bfd); - srel = get_reloc_section (input_bfd, ia64_info, input_section, false); + srel = get_reloc_section (input_bfd, ia64_info, input_section, FALSE); rel = relocs; relend = relocs + input_section->reloc_count; @@ -3696,8 +3734,8 @@ elfNN_ia64_relocate_section (output_bfd, bfd_vma value; asection *sym_sec; bfd_byte *hit_addr; - boolean dynamic_symbol_p; - boolean undef_weak_ref; + bfd_boolean dynamic_symbol_p; + bfd_boolean undef_weak_ref; r_type = ELFNN_R_TYPE (rel->r_info); if (r_type > R_IA64_MAX_RELOC_CODE) @@ -3706,7 +3744,7 @@ elfNN_ia64_relocate_section (output_bfd, (_("%s: unknown relocation type %d"), bfd_archive_filename (input_bfd), (int)r_type); bfd_set_error (bfd_error_bad_value); - ret_val = false; + ret_val = FALSE; continue; } @@ -3715,7 +3753,7 @@ elfNN_ia64_relocate_section (output_bfd, h = NULL; sym = NULL; sym_sec = NULL; - undef_weak_ref = false; + undef_weak_ref = FALSE; if (r_symndx < symtab_hdr->sh_info) { @@ -3729,8 +3767,8 @@ elfNN_ia64_relocate_section (output_bfd, == ELF_INFO_TYPE_MERGE)) { struct elfNN_ia64_local_hash_entry *loc_h; - - loc_h = get_local_sym_hash (ia64_info, input_bfd, rel, false); + + loc_h = get_local_sym_hash (ia64_info, input_bfd, rel, FALSE); if (loc_h && ! loc_h->sec_merge_done) { struct elfNN_ia64_dyn_sym_info *dynent; @@ -3789,7 +3827,7 @@ elfNN_ia64_relocate_section (output_bfd, } } else if (h->root.type == bfd_link_hash_undefweak) - undef_weak_ref = true; + undef_weak_ref = TRUE; else if (info->shared && (!info->symbolic || info->allow_shlib_undefined) && !info->no_undefined @@ -3802,8 +3840,8 @@ elfNN_ia64_relocate_section (output_bfd, input_section, rel->r_offset, (!info->shared || info->no_undefined || ELF_ST_VISIBILITY (h->other))))) - return false; - ret_val = false; + return FALSE; + ret_val = FALSE; continue; } } @@ -3876,7 +3914,7 @@ elfNN_ia64_relocate_section (output_bfd, (*_bfd_error_handler) (_("%s: linking non-pic code in a shared library"), bfd_archive_filename (input_bfd)); - ret_val = false; + ret_val = FALSE; continue; } dynindx = 0; @@ -3909,7 +3947,7 @@ elfNN_ia64_relocate_section (output_bfd, (*_bfd_error_handler) (_("%s: @gprel relocation against dynamic symbol %s"), bfd_archive_filename (input_bfd), h->root.root.string); - ret_val = false; + ret_val = FALSE; continue; } value -= gp_val; @@ -3919,7 +3957,7 @@ elfNN_ia64_relocate_section (output_bfd, case R_IA64_LTOFF22: case R_IA64_LTOFF22X: case R_IA64_LTOFF64I: - dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false); + dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE); value = set_got_entry (input_bfd, info, dyn_i, (h ? h->dynindx : -1), rel->r_addend, value, R_IA64_DIR64LSB); value -= gp_val; @@ -3930,8 +3968,8 @@ elfNN_ia64_relocate_section (output_bfd, case R_IA64_PLTOFF64I: case R_IA64_PLTOFF64MSB: case R_IA64_PLTOFF64LSB: - dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false); - value = set_pltoff_entry (output_bfd, info, dyn_i, value, false); + dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE); + value = set_pltoff_entry (output_bfd, info, dyn_i, value, FALSE); value -= gp_val; r = elfNN_ia64_install_value (output_bfd, hit_addr, value, r_type); break; @@ -3941,7 +3979,7 @@ elfNN_ia64_relocate_section (output_bfd, case R_IA64_FPTR32LSB: case R_IA64_FPTR64MSB: case R_IA64_FPTR64LSB: - dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false); + dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE); if (dyn_i->want_fptr) { if (!undef_weak_ref) @@ -3987,7 +4025,7 @@ elfNN_ia64_relocate_section (output_bfd, { long dynindx; - dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false); + dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE); if (dyn_i->want_fptr) { BFD_ASSERT (h == NULL || h->dynindx == -1) @@ -4038,35 +4076,12 @@ elfNN_ia64_relocate_section (output_bfd, } goto finish_pcrel; - case R_IA64_PCREL21BI: - case R_IA64_PCREL21F: - case R_IA64_PCREL21M: - /* ??? These two are only used for speculation fixup code. - They should never be dynamic. */ - if (dynamic_symbol_p) - { - (*_bfd_error_handler) - (_("%s: dynamic relocation against speculation fixup"), - bfd_archive_filename (input_bfd)); - ret_val = false; - continue; - } - if (undef_weak_ref) - { - (*_bfd_error_handler) - (_("%s: speculation fixup against undefined weak symbol"), - bfd_archive_filename (input_bfd)); - ret_val = false; - continue; - } - goto finish_pcrel; - case R_IA64_PCREL21B: case R_IA64_PCREL60B: /* We should have created a PLT entry for any dynamic symbol. */ dyn_i = NULL; if (h) - dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, false); + dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, FALSE); if (dyn_i && dyn_i->want_plt2) { @@ -4092,8 +4107,32 @@ elfNN_ia64_relocate_section (output_bfd, } goto finish_pcrel; + case R_IA64_PCREL21BI: + case R_IA64_PCREL21F: + case R_IA64_PCREL21M: case R_IA64_PCREL22: case R_IA64_PCREL64I: + /* The PCREL21BI reloc is specifically not intended for use with + dynamic relocs. PCREL21F and PCREL21M are used for speculation + fixup code, and thus probably ought not be dynamic. The + PCREL22 and PCREL64I relocs aren't emitted as dynamic relocs. */ + if (dynamic_symbol_p) + { + const char *msg; + + if (r_type == R_IA64_PCREL21BI) + msg = _("%s: @internal branch to dynamic symbol %s"); + else if (r_type == R_IA64_PCREL21F || r_type == R_IA64_PCREL21M) + msg = _("%s: speculation fixup to dynamic symbol %s"); + else + msg = _("%s: @pcrel relocation against dynamic symbol %s"); + (*_bfd_error_handler) (msg, bfd_archive_filename (input_bfd), + h->root.root.string); + ret_val = FALSE; + continue; + } + goto finish_pcrel; + finish_pcrel: /* Make pc-relative. */ value -= (input_section->output_section->vma @@ -4214,6 +4253,8 @@ elfNN_ia64_relocate_section (output_bfd, case R_IA64_DTPREL14: case R_IA64_DTPREL22: case R_IA64_DTPREL64I: + case R_IA64_DTPREL64LSB: + case R_IA64_DTPREL64MSB: value -= elfNN_ia64_dtprel_base (info); r = elfNN_ia64_install_value (output_bfd, hit_addr, value, r_type); break; @@ -4223,13 +4264,23 @@ elfNN_ia64_relocate_section (output_bfd, case R_IA64_LTOFF_DTPREL22: { int got_r_type; + long dynindx = h ? h->dynindx : -1; + bfd_vma r_addend = rel->r_addend; switch (r_type) { default: case R_IA64_LTOFF_TPREL22: - if (!dynamic_symbol_p && !info->shared) - value -= elfNN_ia64_tprel_base (info); + if (!dynamic_symbol_p) + { + if (!info->shared) + value -= elfNN_ia64_tprel_base (info); + else + { + r_addend += value - elfNN_ia64_dtprel_base (info); + dynindx = 0; + } + } got_r_type = R_IA64_TPREL64LSB; break; case R_IA64_LTOFF_DTPMOD22: @@ -4243,9 +4294,8 @@ elfNN_ia64_relocate_section (output_bfd, got_r_type = R_IA64_DTPREL64LSB; break; } - dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, false); - value = set_got_entry (input_bfd, info, dyn_i, - (h ? h->dynindx : -1), rel->r_addend, + dyn_i = get_dyn_sym_info (ia64_info, h, input_bfd, rel, FALSE); + value = set_got_entry (input_bfd, info, dyn_i, dynindx, r_addend, value, got_r_type); value -= gp_val; r = elfNN_ia64_install_value (output_bfd, hit_addr, value, @@ -4269,7 +4319,7 @@ elfNN_ia64_relocate_section (output_bfd, don't try to continue. */ (*info->callbacks->undefined_symbol) (info, "__gp", input_bfd, input_section, rel->r_offset, 1); - return false; + return FALSE; case bfd_reloc_notsupported: { @@ -4283,15 +4333,15 @@ elfNN_ia64_relocate_section (output_bfd, symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, input_section); } if (!(*info->callbacks->warning) (info, _("unsupported reloc"), name, input_bfd, input_section, rel->r_offset)) - return false; - ret_val = false; + return FALSE; + ret_val = FALSE; } break; @@ -4310,7 +4360,7 @@ elfNN_ia64_relocate_section (output_bfd, symtab_hdr->sh_link, sym->st_name); if (name == NULL) - return false; + return FALSE; if (*name == '\0') name = bfd_section_name (input_bfd, input_section); } @@ -4320,8 +4370,8 @@ elfNN_ia64_relocate_section (output_bfd, input_bfd, input_section, rel->r_offset)) - return false; - ret_val = false; + return FALSE; + ret_val = FALSE; } break; } @@ -4330,7 +4380,7 @@ elfNN_ia64_relocate_section (output_bfd, return ret_val; } -static boolean +static bfd_boolean elfNN_ia64_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -4341,7 +4391,7 @@ elfNN_ia64_finish_dynamic_symbol (output struct elfNN_ia64_dyn_sym_info *dyn_i; ia64_info = elfNN_ia64_hash_table (info); - dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, false); + dyn_i = get_dyn_sym_info (ia64_info, h, NULL, NULL, FALSE); /* Fill in the PLT data, if required. */ if (dyn_i && dyn_i->want_plt) @@ -4350,7 +4400,6 @@ elfNN_ia64_finish_dynamic_symbol (output bfd_byte *loc; asection *plt_sec; bfd_vma plt_addr, pltoff_addr, gp_val, index; - ElfNN_External_Rela *rel; gp_val = _bfd_get_gp_value (output_bfd); @@ -4368,7 +4417,7 @@ elfNN_ia64_finish_dynamic_symbol (output plt_addr = (plt_sec->output_section->vma + plt_sec->output_offset + dyn_i->plt_offset); - pltoff_addr = set_pltoff_entry (output_bfd, info, dyn_i, plt_addr, true); + pltoff_addr = set_pltoff_entry (output_bfd, info, dyn_i, plt_addr, TRUE); /* Initialize the FULL PLT entry, if needed. */ if (dyn_i->want_plt2) @@ -4407,10 +4456,10 @@ elfNN_ia64_finish_dynamic_symbol (output existing sec->reloc_count to be the base of the array of PLT relocations. */ - rel = (ElfNN_External_Rela *)ia64_info->rel_pltoff_sec->contents; - rel += ia64_info->rel_pltoff_sec->reloc_count; - - bfd_elfNN_swap_reloca_out (output_bfd, &outrel, rel + index); + loc = ia64_info->rel_pltoff_sec->contents; + loc += ((ia64_info->rel_pltoff_sec->reloc_count + index) + * sizeof (Elf64_External_Rela)); + bfd_elfNN_swap_reloca_out (output_bfd, &outrel, loc); } /* Mark some specially defined symbols as absolute. */ @@ -4419,10 +4468,10 @@ elfNN_ia64_finish_dynamic_symbol (output || strcmp (h->root.root.string, "_PROCEDURE_LINKAGE_TABLE_") == 0) sym->st_shndx = SHN_ABS; - return true; + return TRUE; } -static boolean +static bfd_boolean elfNN_ia64_finish_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -4504,13 +4553,13 @@ elfNN_ia64_finish_dynamic_sections (abfd } } - return true; + return TRUE; } /* ELF file flag handling: */ /* Function to keep IA-64 specific file flags. */ -static boolean +static bfd_boolean elfNN_ia64_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -4519,31 +4568,31 @@ elfNN_ia64_set_private_flags (abfd, flag || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } /* Merge backend specific data from an object file to the output object file when linking. */ -static boolean +static bfd_boolean elfNN_ia64_merge_private_bfd_data (ibfd, obfd) bfd *ibfd, *obfd; { flagword out_flags; flagword in_flags; - boolean ok = true; + bfd_boolean ok = TRUE; /* Don't even pretend to support mixed-format linking. */ if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return false; + return FALSE; in_flags = elf_elfheader (ibfd)->e_flags; out_flags = elf_elfheader (obfd)->e_flags; if (! elf_flags_init (obfd)) { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = in_flags; if (bfd_get_arch (obfd) == bfd_get_arch (ibfd) @@ -4553,12 +4602,12 @@ elfNN_ia64_merge_private_bfd_data (ibfd, bfd_get_mach (ibfd)); } - return true; + return TRUE; } /* Check flag compatibility. */ if (in_flags == out_flags) - return true; + return TRUE; /* Output has EF_IA_64_REDUCEDFP set only if all inputs have it set. */ if (!(in_flags & EF_IA_64_REDUCEDFP) && (out_flags & EF_IA_64_REDUCEDFP)) @@ -4571,7 +4620,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - ok = false; + ok = FALSE; } if ((in_flags & EF_IA_64_BE) != (out_flags & EF_IA_64_BE)) { @@ -4580,7 +4629,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - ok = false; + ok = FALSE; } if ((in_flags & EF_IA_64_ABI64) != (out_flags & EF_IA_64_ABI64)) { @@ -4589,7 +4638,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - ok = false; + ok = FALSE; } if ((in_flags & EF_IA_64_CONS_GP) != (out_flags & EF_IA_64_CONS_GP)) { @@ -4598,7 +4647,7 @@ elfNN_ia64_merge_private_bfd_data (ibfd, bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - ok = false; + ok = FALSE; } if ((in_flags & EF_IA_64_NOFUNCDESC_CONS_GP) != (out_flags & EF_IA_64_NOFUNCDESC_CONS_GP)) @@ -4608,13 +4657,13 @@ elfNN_ia64_merge_private_bfd_data (ibfd, bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_bad_value); - ok = false; + ok = FALSE; } return ok; } -static boolean +static bfd_boolean elfNN_ia64_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -4635,7 +4684,7 @@ elfNN_ia64_print_private_bfd_data (abfd, (flags & EF_IA_64_ABI64) ? "ABI64" : "ABI32"); _bfd_elf_print_private_bfd_data (abfd, ptr); - return true; + return TRUE; } static enum elf_reloc_type_class @@ -4659,7 +4708,7 @@ elfNN_ia64_reloc_type_class (rela) } } -static boolean +static bfd_boolean elfNN_ia64_hpux_vec (const bfd_target *vec) { extern const bfd_target bfd_elfNN_ia64_hpux_big_vec; @@ -4677,7 +4726,7 @@ elfNN_hpux_post_process_headers (abfd, i i_ehdrp->e_ident[EI_ABIVERSION] = 1; } -boolean +bfd_boolean elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; @@ -4686,9 +4735,9 @@ elfNN_hpux_backend_section_from_bfd_sect if (bfd_is_com_section (sec)) { *retval = SHN_IA_64_ANSI_COMMON; - return true; + return TRUE; } - return false; + return FALSE; } #define TARGET_LITTLE_SYM bfd_elfNN_ia64_little_vec diff -uprN binutils-2.13.90.0.16/bfd/elfxx-mips.c binutils-2.13.90.0.18/bfd/elfxx-mips.c --- binutils-2.13.90.0.16/bfd/elfxx-mips.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/elfxx-mips.c Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* MIPS-specific support for ELF - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 - Free Software Foundation, Inc. + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, + 2003 Free Software Foundation, Inc. Most of the information added by Ian Lance Taylor, Cygnus Support, . @@ -30,6 +30,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "bfd.h" #include "sysdep.h" #include "libbfd.h" +#include "libiberty.h" #include "elf-bfd.h" #include "elfxx-mips.h" #include "elf/mips.h" @@ -40,6 +41,26 @@ Foundation, Inc., 59 Temple Place - Suit #include "coff/ecoff.h" #include "coff/mips.h" +#include "hashtab.h" + +/* This structure is used to hold .got entries while estimating got + sizes. */ +struct mips_got_entry +{ + /* The input bfd in which the symbol is defined. */ + bfd *abfd; + /* The index of the symbol, as stored in the relocation r_info. If + it's -1, the addend is a complete address into the + executable/shared library. */ + unsigned long symndx; + /* The addend of the relocation that should be added to the symbol + value. */ + bfd_vma addend; + /* The offset from the beginning of the .got section to the entry + corresponding to this symbol+addend. */ + unsigned long gotidx; +}; + /* This structure is used to hold .got information when linking. It is stored in the tdata field of the bfd_elf_section_data structure. */ @@ -54,6 +75,8 @@ struct mips_got_info unsigned int local_gotno; /* The number of local .got entries we have used. */ unsigned int assigned_gotno; + /* A hash table holding members of the got. */ + struct htab *got_entries; }; /* This structure is passed to mips_elf_sort_hash_table_f when sorting @@ -88,7 +111,7 @@ struct mips_elf_link_hash_entry /* If the R_MIPS_32, R_MIPS_REL32, or R_MIPS_64 reloc is against a readonly section. */ - boolean readonly_reloc; + bfd_boolean readonly_reloc; /* The index of the first dynamic relocation (in the .rel.dyn section) against this symbol. */ @@ -98,7 +121,7 @@ struct mips_elf_link_hash_entry related to taking the function's address, i.e. any but R_MIPS_CALL*16 ones -- see "MIPS ABI Supplement, 3rd Edition", p. 4-20. */ - boolean no_fn_stub; + bfd_boolean no_fn_stub; /* If there is a stub that 32 bit functions should use to call this 16 bit function, this points to the section containing the stub. */ @@ -106,7 +129,7 @@ struct mips_elf_link_hash_entry /* Whether we need the fn_stub; this is set if this symbol appears in any relocs other than a 16 bit call. */ - boolean need_fn_stub; + bfd_boolean need_fn_stub; /* If there is a stub that 16 bit functions should use to call this 32 bit function, this points to the section containing the stub. */ @@ -117,7 +140,7 @@ struct mips_elf_link_hash_entry asection *call_fp_stub; /* Are we forced local? .*/ - boolean forced_local; + bfd_boolean forced_local; }; /* MIPS ELF linker hash table. */ @@ -136,11 +159,11 @@ struct mips_elf_link_hash_table bfd_size_type compact_rel_size; /* This flag indicates that the value of DT_MIPS_RLD_MAP dynamic entry is set to the address of __rld_obj_head as in IRIX5. */ - boolean use_rld_obj_head; + bfd_boolean use_rld_obj_head; /* This is the value of the __rld_map or __rld_obj_head symbol. */ bfd_vma rld_value; /* This is set if we see any mips16 stub sections. */ - boolean mips16_stubs_seen; + bfd_boolean mips16_stubs_seen; }; /* Structure used to pass information to mips_elf_output_extsym. */ @@ -151,7 +174,7 @@ struct extsym_info struct bfd_link_info *info; struct ecoff_debug_info *debug; const struct ecoff_debug_swap *swap; - boolean failed; + bfd_boolean failed; }; /* The names of the runtime procedure table symbols used on IRIX5. */ @@ -279,10 +302,10 @@ static struct bfd_hash_entry *mips_elf_l PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static void ecoff_swap_rpdr_out PARAMS ((bfd *, const RPDR *, struct rpdr_ext *)); -static boolean mips_elf_create_procedure_table +static bfd_boolean mips_elf_create_procedure_table PARAMS ((PTR, bfd *, struct bfd_link_info *, asection *, struct ecoff_debug_info *)); -static boolean mips_elf_check_mips16_stubs +static bfd_boolean mips_elf_check_mips16_stubs PARAMS ((struct mips_elf_link_hash_entry *, PTR)); static void bfd_mips_elf32_swap_gptab_in PARAMS ((bfd *, const Elf32_External_gptab *, Elf32_gptab *)); @@ -300,7 +323,7 @@ static void bfd_mips_elf_swap_msym_out PARAMS ((bfd *, const Elf32_Internal_Msym *, Elf32_External_Msym *)); static int sort_dynamic_relocs PARAMS ((const void *, const void *)); -static boolean mips_elf_output_extsym +static bfd_boolean mips_elf_output_extsym PARAMS ((struct mips_elf_link_hash_entry *, PTR)); static int gptab_compare PARAMS ((const void *, const void *)); static asection * mips_elf_got_section PARAMS ((bfd *)); @@ -313,31 +336,31 @@ static bfd_vma mips_elf_global_got_index static bfd_vma mips_elf_got_page PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, bfd_vma *)); static bfd_vma mips_elf_got16_entry - PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, boolean)); + PARAMS ((bfd *, struct bfd_link_info *, bfd_vma, bfd_boolean)); static bfd_vma mips_elf_got_offset_from_index PARAMS ((bfd *, bfd *, bfd_vma)); -static bfd_vma mips_elf_create_local_got_entry +static struct mips_got_entry *mips_elf_create_local_got_entry PARAMS ((bfd *, struct mips_got_info *, asection *, bfd_vma)); -static boolean mips_elf_sort_hash_table +static bfd_boolean mips_elf_sort_hash_table PARAMS ((struct bfd_link_info *, unsigned long)); -static boolean mips_elf_sort_hash_table_f +static bfd_boolean mips_elf_sort_hash_table_f PARAMS ((struct mips_elf_link_hash_entry *, PTR)); -static boolean mips_elf_record_global_got_symbol +static bfd_boolean mips_elf_record_global_got_symbol PARAMS ((struct elf_link_hash_entry *, struct bfd_link_info *, struct mips_got_info *)); static const Elf_Internal_Rela *mips_elf_next_relocation PARAMS ((bfd *, unsigned int, const Elf_Internal_Rela *, const Elf_Internal_Rela *)); -static boolean mips_elf_local_relocation_p - PARAMS ((bfd *, const Elf_Internal_Rela *, asection **, boolean)); +static bfd_boolean mips_elf_local_relocation_p + PARAMS ((bfd *, const Elf_Internal_Rela *, asection **, bfd_boolean)); static bfd_vma mips_elf_sign_extend PARAMS ((bfd_vma, int)); -static boolean mips_elf_overflow_p PARAMS ((bfd_vma, int)); +static bfd_boolean mips_elf_overflow_p PARAMS ((bfd_vma, int)); static bfd_vma mips_elf_high PARAMS ((bfd_vma)); static bfd_vma mips_elf_higher PARAMS ((bfd_vma)); static bfd_vma mips_elf_highest PARAMS ((bfd_vma)); -static boolean mips_elf_create_compact_rel_section +static bfd_boolean mips_elf_create_compact_rel_section PARAMS ((bfd *, struct bfd_link_info *)); -static boolean mips_elf_create_got_section +static bfd_boolean mips_elf_create_got_section PARAMS ((bfd *, struct bfd_link_info *)); static asection *mips_elf_create_msym_section PARAMS ((bfd *)); @@ -345,26 +368,29 @@ static bfd_reloc_status_type mips_elf_ca PARAMS ((bfd *, bfd *, asection *, struct bfd_link_info *, const Elf_Internal_Rela *, bfd_vma, reloc_howto_type *, Elf_Internal_Sym *, asection **, bfd_vma *, const char **, - boolean *, boolean)); + bfd_boolean *, bfd_boolean)); static bfd_vma mips_elf_obtain_contents PARAMS ((reloc_howto_type *, const Elf_Internal_Rela *, bfd *, bfd_byte *)); -static boolean mips_elf_perform_relocation +static bfd_boolean mips_elf_perform_relocation PARAMS ((struct bfd_link_info *, reloc_howto_type *, const Elf_Internal_Rela *, bfd_vma, bfd *, asection *, bfd_byte *, - boolean)); -static boolean mips_elf_stub_section_p + bfd_boolean)); +static bfd_boolean mips_elf_stub_section_p PARAMS ((bfd *, asection *)); static void mips_elf_allocate_dynamic_relocations PARAMS ((bfd *, unsigned int)); -static boolean mips_elf_create_dynamic_relocation +static bfd_boolean mips_elf_create_dynamic_relocation PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Rela *, struct mips_elf_link_hash_entry *, asection *, bfd_vma, bfd_vma *, asection *)); -static INLINE int elf_mips_isa PARAMS ((flagword)); +static void mips_set_isa_flags PARAMS ((bfd *)); static INLINE char* elf_mips_abi_name PARAMS ((bfd *)); static void mips_elf_irix6_finish_dynamic_symbol PARAMS ((bfd *, const char *, Elf_Internal_Sym *)); -static boolean _bfd_mips_elf_mach_extends_p PARAMS ((flagword, flagword)); +static bfd_boolean mips_mach_extends_p PARAMS ((unsigned long, unsigned long)); +static bfd_boolean mips_32bit_flags_p PARAMS ((flagword)); +static hashval_t mips_elf_got_entry_hash PARAMS ((const PTR)); +static int mips_elf_got_entry_eq PARAMS ((const PTR, const PTR)); /* This will be used when we sort the dynamic relocation records. */ static bfd *reldyn_sorting_bfd; @@ -436,7 +462,7 @@ static bfd *reldyn_sorting_bfd; #else #define MIPS_ELF_ADD_DYNAMIC_ENTRY(info, tag, val) \ (ABI_64_P (elf_hash_table (info)->dynobj) \ - ? (boolean) (abort (), false) \ + ? (abort (), FALSE) \ : bfd_elf32_add_dynamic_entry (info, (bfd_vma) tag, (bfd_vma) val)) #endif @@ -560,7 +586,7 @@ static bfd *reldyn_sorting_bfd; #define mips_elf_link_hash_traverse(table, func, info) \ (elf_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct elf_link_hash_entry *, PTR))) (func), \ (info))) /* Get the MIPS ELF linker hash table from a link_info structure. */ @@ -600,14 +626,14 @@ mips_elf_link_hash_newfunc (entry, table not been set. -1 means there is no associated ifd. */ ret->esym.ifd = -2; ret->possibly_dynamic_relocs = 0; - ret->readonly_reloc = false; + ret->readonly_reloc = FALSE; ret->min_dyn_reloc_index = 0; - ret->no_fn_stub = false; + ret->no_fn_stub = FALSE; ret->fn_stub = NULL; - ret->need_fn_stub = false; + ret->need_fn_stub = FALSE; ret->call_stub = NULL; ret->call_fp_stub = NULL; - ret->forced_local = false; + ret->forced_local = FALSE; } return (struct bfd_hash_entry *) ret; @@ -616,7 +642,7 @@ mips_elf_link_hash_newfunc (entry, table /* Read ECOFF debugging information from a .mdebug section into a ecoff_debug_info structure. */ -boolean +bfd_boolean _bfd_mips_elf_read_ecoff_info (abfd, section, debug) bfd *abfd; asection *section; @@ -673,7 +699,7 @@ _bfd_mips_elf_read_ecoff_info (abfd, sec debug->fdr = NULL; debug->adjust = NULL; - return true; + return TRUE; error_return: if (ext_hdr != NULL) @@ -700,7 +726,7 @@ _bfd_mips_elf_read_ecoff_info (abfd, sec free (debug->external_rfd); if (debug->external_ext != NULL) free (debug->external_ext); - return false; + return FALSE; } /* Swap RPDR (runtime procedure table entry) for output. */ @@ -729,7 +755,7 @@ ecoff_swap_rpdr_out (abfd, in, ex) /* Create a runtime procedure table from the .mdebug section. */ -static boolean +static bfd_boolean mips_elf_create_procedure_table (handle, abfd, info, s, debug) PTR handle; bfd *abfd; @@ -864,7 +890,7 @@ mips_elf_create_procedure_table (handle, if (sv != NULL) free (sv); - return true; + return TRUE; error_return: if (epdr != NULL) @@ -877,13 +903,13 @@ mips_elf_create_procedure_table (handle, free (ss); if (sv != NULL) free (sv); - return false; + return FALSE; } /* Check the mips16 stubs for a particular symbol, and see if we can discard them. */ -static boolean +static bfd_boolean mips_elf_check_mips16_stubs (h, data) struct mips_elf_link_hash_entry *h; PTR data ATTRIBUTE_UNUSED; @@ -930,7 +956,7 @@ mips_elf_check_mips16_stubs (h, data) h->call_fp_stub->flags |= SEC_EXCLUDE; } - return true; + return TRUE; } bfd_reloc_status_type @@ -940,7 +966,7 @@ _bfd_mips_elf_gprel16_with_gp (abfd, sym asymbol *symbol; arelent *reloc_entry; asection *input_section; - boolean relocateable; + bfd_boolean relocateable; PTR data; bfd_vma gp; { @@ -1176,16 +1202,13 @@ sort_dynamic_relocs (arg1, arg2) const PTR arg1; const PTR arg2; { - const Elf32_External_Rel *ext_reloc1 = (const Elf32_External_Rel *) arg1; - const Elf32_External_Rel *ext_reloc2 = (const Elf32_External_Rel *) arg2; + Elf_Internal_Rela int_reloc1; + Elf_Internal_Rela int_reloc2; - Elf_Internal_Rel int_reloc1; - Elf_Internal_Rel int_reloc2; + bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, arg1, &int_reloc1); + bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, arg2, &int_reloc2); - bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, ext_reloc1, &int_reloc1); - bfd_elf32_swap_reloc_in (reldyn_sorting_bfd, ext_reloc2, &int_reloc2); - - return (ELF32_R_SYM (int_reloc1.r_info) - ELF32_R_SYM (int_reloc2.r_info)); + return ELF32_R_SYM (int_reloc1.r_info) - ELF32_R_SYM (int_reloc2.r_info); } /* This routine is used to write out ECOFF debugging external symbol @@ -1202,36 +1225,36 @@ sort_dynamic_relocs (arg1, arg2) stripped but required by a reloc. In particular, it can not happen when generating a final executable. */ -static boolean +static bfd_boolean mips_elf_output_extsym (h, data) struct mips_elf_link_hash_entry *h; PTR data; { struct extsym_info *einfo = (struct extsym_info *) data; - boolean strip; + bfd_boolean strip; asection *sec, *output_section; if (h->root.root.type == bfd_link_hash_warning) h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link; if (h->root.indx == -2) - strip = false; + strip = FALSE; else if (((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0 || (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) != 0) && (h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_REGULAR) == 0 && (h->root.elf_link_hash_flags & ELF_LINK_HASH_REF_REGULAR) == 0) - strip = true; + strip = TRUE; else if (einfo->info->strip == strip_all || (einfo->info->strip == strip_some && bfd_hash_lookup (einfo->info->keep_hash, h->root.root.root.string, - false, false) == NULL)) - strip = true; + FALSE, FALSE) == NULL)) + strip = TRUE; else - strip = false; + strip = FALSE; if (strip) - return true; + return TRUE; if (h->esym.ifd == -2) { @@ -1340,7 +1363,7 @@ mips_elf_output_extsym (h, data) else if ((h->root.elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0) { struct mips_elf_link_hash_entry *hd = h; - boolean no_fn_stub = h->no_fn_stub; + bfd_boolean no_fn_stub = h->no_fn_stub; while (hd->root.root.type == bfd_link_hash_indirect) { @@ -1375,11 +1398,11 @@ mips_elf_output_extsym (h, data) h->root.root.root.string, &h->esym)) { - einfo->failed = true; - return false; + einfo->failed = TRUE; + return FALSE; } - return true; + return TRUE; } /* A comparison routine used to sort .gptab entries. */ @@ -1395,6 +1418,32 @@ gptab_compare (p1, p2) return a1->gt_entry.gt_g_value - a2->gt_entry.gt_g_value; } +/* Functions to manage the got entry hash table. */ +static hashval_t +mips_elf_got_entry_hash (entry_) + const PTR entry_; +{ + const struct mips_got_entry *entry = (struct mips_got_entry *)entry_; + + return htab_hash_pointer (entry->abfd) + entry->symndx +#ifdef BFD64 + + (entry->addend >> 32) +#endif + + entry->addend; +} + +static int +mips_elf_got_entry_eq (entry1, entry2) + const PTR entry1; + const PTR entry2; +{ + const struct mips_got_entry *e1 = (struct mips_got_entry *)entry1; + const struct mips_got_entry *e2 = (struct mips_got_entry *)entry2; + + return e1->abfd == e2->abfd && e1->symndx == e2->symndx + && e1->addend == e2->addend; +} + /* Returns the GOT section for ABFD. */ static asection * @@ -1439,22 +1488,15 @@ mips_elf_local_got_index (abfd, info, va { asection *sgot; struct mips_got_info *g; - bfd_byte *entry; + struct mips_got_entry *entry; g = mips_elf_got_info (elf_hash_table (info)->dynobj, &sgot); - /* Look to see if we already have an appropriate entry. */ - for (entry = (sgot->contents - + MIPS_ELF_GOT_SIZE (abfd) * MIPS_RESERVED_GOTNO); - entry != sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno; - entry += MIPS_ELF_GOT_SIZE (abfd)) - { - bfd_vma address = MIPS_ELF_GET_WORD (abfd, entry); - if (address == value) - return entry - sgot->contents; - } - - return mips_elf_create_local_got_entry (abfd, g, sgot, value); + entry = mips_elf_create_local_got_entry (abfd, g, sgot, value); + if (entry) + return entry->gotidx; + else + return MINUS_ONE; } /* Returns the GOT index for the global symbol indicated by H. */ @@ -1500,40 +1542,22 @@ mips_elf_got_page (abfd, info, value, of { asection *sgot; struct mips_got_info *g; - bfd_byte *entry; - bfd_byte *last_entry; - bfd_vma index = 0; - bfd_vma address; + bfd_vma index; + struct mips_got_entry *entry; g = mips_elf_got_info (elf_hash_table (info)->dynobj, &sgot); - /* Look to see if we already have an appropriate entry. */ - last_entry = sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno; - for (entry = (sgot->contents - + MIPS_ELF_GOT_SIZE (abfd) * MIPS_RESERVED_GOTNO); - entry != last_entry; - entry += MIPS_ELF_GOT_SIZE (abfd)) - { - address = MIPS_ELF_GET_WORD (abfd, entry); - - if (!mips_elf_overflow_p (value - address, 16)) - { - /* This entry will serve as the page pointer. We can add a - 16-bit number to it to get the actual address. */ - index = entry - sgot->contents; - break; - } - } - - /* If we didn't have an appropriate entry, we create one now. */ - if (entry == last_entry) - index = mips_elf_create_local_got_entry (abfd, g, sgot, value); + entry = mips_elf_create_local_got_entry (abfd, g, sgot, + (value + 0x8000) + & (~(bfd_vma)0xffff)); + + if (!entry) + return MINUS_ONE; + + index = entry->gotidx; if (offsetp) - { - address = MIPS_ELF_GET_WORD (abfd, entry); - *offsetp = value - address; - } + *offsetp = value - entry->addend; return index; } @@ -1546,14 +1570,11 @@ mips_elf_got16_entry (abfd, info, value, bfd *abfd; struct bfd_link_info *info; bfd_vma value; - boolean external; + bfd_boolean external; { asection *sgot; struct mips_got_info *g; - bfd_byte *entry; - bfd_byte *last_entry; - bfd_vma index = 0; - bfd_vma address; + struct mips_got_entry *entry; if (! external) { @@ -1566,28 +1587,11 @@ mips_elf_got16_entry (abfd, info, value, g = mips_elf_got_info (elf_hash_table (info)->dynobj, &sgot); - /* Look to see if we already have an appropriate entry. */ - last_entry = sgot->contents + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno; - for (entry = (sgot->contents - + MIPS_ELF_GOT_SIZE (abfd) * MIPS_RESERVED_GOTNO); - entry != last_entry; - entry += MIPS_ELF_GOT_SIZE (abfd)) - { - address = MIPS_ELF_GET_WORD (abfd, entry); - if (address == value) - { - /* This entry has the right high-order 16 bits, and the low-order - 16 bits are set to zero. */ - index = entry - sgot->contents; - break; - } - } - - /* If we didn't have an appropriate entry, we create one now. */ - if (entry == last_entry) - index = mips_elf_create_local_got_entry (abfd, g, sgot, value); - - return index; + entry = mips_elf_create_local_got_entry (abfd, g, sgot, value); + if (entry) + return entry->gotidx; + else + return MINUS_ONE; } /* Returns the offset for the entry at the INDEXth position @@ -1611,26 +1615,47 @@ mips_elf_got_offset_from_index (dynobj, /* Create a local GOT entry for VALUE. Return the index of the entry, or -1 if it could not be created. */ -static bfd_vma +static struct mips_got_entry * mips_elf_create_local_got_entry (abfd, g, sgot, value) bfd *abfd; struct mips_got_info *g; asection *sgot; bfd_vma value; { + struct mips_got_entry entry, **loc; + + entry.abfd = abfd; + entry.symndx = (unsigned long)-1; + entry.addend = value; + + loc = (struct mips_got_entry **) htab_find_slot (g->got_entries, &entry, + INSERT); + if (*loc) + return *loc; + + entry.gotidx = MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno++; + + *loc = (struct mips_got_entry *)bfd_alloc (abfd, sizeof entry); + + if (! *loc) + return NULL; + + memcpy (*loc, &entry, sizeof entry); + if (g->assigned_gotno >= g->local_gotno) { + (*loc)->gotidx = (unsigned long)-1; /* We didn't allocate enough space in the GOT. */ (*_bfd_error_handler) (_("not enough GOT space for local GOT entries")); bfd_set_error (bfd_error_bad_value); - return (bfd_vma) -1; + return NULL; } MIPS_ELF_PUT_WORD (abfd, value, - (sgot->contents - + MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno)); - return MIPS_ELF_GOT_SIZE (abfd) * g->assigned_gotno++; + (sgot->contents + entry.gotidx)); + + return *loc; } /* Sort the dynamic symbol table so that symbols that need GOT entries @@ -1640,7 +1665,7 @@ mips_elf_create_local_got_entry (abfd, g _bfd_mips_elf_size_dynamic_sections, this value is 1. Afterward, the section symbols are added and the count is higher. */ -static boolean +static bfd_boolean mips_elf_sort_hash_table (info, max_local) struct bfd_link_info *info; unsigned long max_local; @@ -1668,14 +1693,14 @@ mips_elf_sort_hash_table (info, max_loca g = mips_elf_got_info (dynobj, NULL); g->global_gotsym = hsd.low; - return true; + return TRUE; } /* If H needs a GOT entry, assign it the highest available dynamic index. Otherwise, assign it the lowest available dynamic index. */ -static boolean +static bfd_boolean mips_elf_sort_hash_table_f (h, data) struct mips_elf_link_hash_entry *h; PTR data; @@ -1689,7 +1714,7 @@ mips_elf_sort_hash_table_f (h, data) /* Symbols without dynamic symbol table entries aren't interesting at all. */ if (h->root.dynindx == -1) - return true; + return TRUE; if (h->root.got.offset != 1) h->root.dynindx = hsd->max_non_got_dynindx++; @@ -1699,14 +1724,14 @@ mips_elf_sort_hash_table_f (h, data) hsd->low = (struct elf_link_hash_entry *) h; } - return true; + return TRUE; } /* If H is a symbol that needs a global GOT entry, but has a dynamic symbol table index lower than any we've seen to date, record it for posterity. */ -static boolean +static bfd_boolean mips_elf_record_global_got_symbol (h, info, g) struct elf_link_hash_entry *h; struct bfd_link_info *info; @@ -1720,24 +1745,24 @@ mips_elf_record_global_got_symbol (h, in { case STV_INTERNAL: case STV_HIDDEN: - _bfd_mips_elf_hide_symbol (info, h, true); + _bfd_mips_elf_hide_symbol (info, h, TRUE); break; } if (!bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* If we've already marked this entry as needing GOT space, we don't need to do it again. */ if (h->got.offset != MINUS_ONE) - return true; + return TRUE; /* By setting this to a value other than -1, we are indicating that there needs to be a GOT entry for H. Avoid using zero, as the generic ELF copy_indirect_symbol tests for <= 0. */ h->got.offset = 1; - return true; + return TRUE; } /* Returns the first relocation of type r_type found, beginning with @@ -1771,13 +1796,13 @@ mips_elf_next_relocation (abfd, r_type, /* Return whether a relocation is against a local symbol. */ -static boolean +static bfd_boolean mips_elf_local_relocation_p (input_bfd, relocation, local_sections, check_forced) bfd *input_bfd; const Elf_Internal_Rela *relocation; asection **local_sections; - boolean check_forced; + bfd_boolean check_forced; { unsigned long r_symndx; Elf_Internal_Shdr *symtab_hdr; @@ -1789,9 +1814,9 @@ mips_elf_local_relocation_p (input_bfd, extsymoff = (elf_bad_symtab (input_bfd)) ? 0 : symtab_hdr->sh_info; if (r_symndx < extsymoff) - return true; + return TRUE; if (elf_bad_symtab (input_bfd) && local_sections[r_symndx] != NULL) - return true; + return TRUE; if (check_forced) { @@ -1804,10 +1829,10 @@ mips_elf_local_relocation_p (input_bfd, || h->root.root.type == bfd_link_hash_warning) h = (struct mips_elf_link_hash_entry *) h->root.root.u.i.link; if ((h->root.elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0) - return true; + return TRUE; } - return false; + return FALSE; } /* Sign-extend VALUE, which has the indicated number of BITS. */ @@ -1828,7 +1853,7 @@ mips_elf_sign_extend (value, bits) range expressable by a signed number with the indicated number of BITS. */ -static boolean +static bfd_boolean mips_elf_overflow_p (value, bits) bfd_vma value; int bits; @@ -1837,13 +1862,13 @@ mips_elf_overflow_p (value, bits) if (svalue > (1 << (bits - 1)) - 1) /* The value is too big. */ - return true; + return TRUE; else if (svalue < -(1 << (bits - 1))) /* The value is too small. */ - return true; + return TRUE; /* All is well. */ - return false; + return FALSE; } /* Calculate the %high function. */ @@ -1876,7 +1901,7 @@ mips_elf_highest (value) bfd_vma value ATTRIBUTE_UNUSED; { #ifdef BFD64 - return ((value + (bfd_vma) 0x800080008000) >> 48) & 0xffff; + return ((value + (((bfd_vma) 0x8000 << 32) | 0x80008000)) >> 48) & 0xffff; #else abort (); return (bfd_vma) -1; @@ -1885,7 +1910,7 @@ mips_elf_highest (value) /* Create the .compact_rel section. */ -static boolean +static bfd_boolean mips_elf_create_compact_rel_section (abfd, info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -1903,17 +1928,17 @@ mips_elf_create_compact_rel_section (abf || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd))) - return false; + return FALSE; s->_raw_size = sizeof (Elf32_External_compact_rel); } - return true; + return TRUE; } /* Create the .got section to hold the global offset table. */ -static boolean +static bfd_boolean mips_elf_create_got_section (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -1927,7 +1952,7 @@ mips_elf_create_got_section (abfd, info) /* This function may be called more than once. */ if (mips_elf_got_section (abfd)) - return true; + return TRUE; flags = (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY | SEC_LINKER_CREATED); @@ -1936,7 +1961,7 @@ mips_elf_create_got_section (abfd, info) if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, 4)) - return false; + return FALSE; /* Define the symbol _GLOBAL_OFFSET_TABLE_. We don't do this in the linker script because we don't want to define the symbol if we @@ -1944,9 +1969,9 @@ mips_elf_create_got_section (abfd, info) bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, "_GLOBAL_OFFSET_TABLE_", BSF_GLOBAL, s, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; @@ -1955,7 +1980,7 @@ mips_elf_create_got_section (abfd, info) if (info->shared && ! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; /* The first several global offset table entries are reserved. */ s->_raw_size = MIPS_RESERVED_GOTNO * MIPS_ELF_GOT_SIZE (abfd); @@ -1963,22 +1988,27 @@ mips_elf_create_got_section (abfd, info) amt = sizeof (struct mips_got_info); g = (struct mips_got_info *) bfd_alloc (abfd, amt); if (g == NULL) - return false; + return FALSE; g->global_gotsym = NULL; g->local_gotno = MIPS_RESERVED_GOTNO; g->assigned_gotno = MIPS_RESERVED_GOTNO; + g->got_entries = htab_try_create (1, mips_elf_got_entry_hash, + mips_elf_got_entry_eq, + (htab_del) NULL); + if (g->got_entries == NULL) + return FALSE; if (elf_section_data (s) == NULL) { amt = sizeof (struct bfd_elf_section_data); s->used_by_bfd = (PTR) bfd_zalloc (abfd, amt); if (elf_section_data (s) == NULL) - return false; + return FALSE; } elf_section_data (s)->tdata = (PTR) g; elf_section_data (s)->this_hdr.sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL; - return true; + return TRUE; } /* Returns the .msym section for ABFD, creating it if it does not @@ -2038,8 +2068,8 @@ mips_elf_calculate_relocation (abfd, inp asection **local_sections; bfd_vma *valuep; const char **namep; - boolean *require_jalxp; - boolean save_addend; + bfd_boolean *require_jalxp; + bfd_boolean save_addend; { /* The eventual value we will return. */ bfd_vma value; @@ -2062,20 +2092,20 @@ mips_elf_calculate_relocation (abfd, inp located. */ asection *sec = NULL; struct mips_elf_link_hash_entry *h = NULL; - /* True if the symbol referred to by this relocation is a local + /* TRUE if the symbol referred to by this relocation is a local symbol. */ - boolean local_p, was_local_p; - /* True if the symbol referred to by this relocation is "_gp_disp". */ - boolean gp_disp_p = false; + bfd_boolean local_p, was_local_p; + /* TRUE if the symbol referred to by this relocation is "_gp_disp". */ + bfd_boolean gp_disp_p = FALSE; Elf_Internal_Shdr *symtab_hdr; size_t extsymoff; unsigned long r_symndx; int r_type; - /* True if overflow occurred during the calculation of the + /* TRUE if overflow occurred during the calculation of the relocation value. */ - boolean overflowed_p; - /* True if this relocation refers to a MIPS16 function. */ - boolean target_is_16_bit_code_p = false; + bfd_boolean overflowed_p; + /* TRUE if this relocation refers to a MIPS16 function. */ + bfd_boolean target_is_16_bit_code_p = FALSE; /* Parse the relocation. */ r_symndx = ELF_R_SYM (input_bfd, relocation->r_info); @@ -2085,13 +2115,13 @@ mips_elf_calculate_relocation (abfd, inp + relocation->r_offset); /* Assume that there will be no overflow. */ - overflowed_p = false; + overflowed_p = FALSE; /* Figure out whether or not the symbol is local, and get the offset used in the array of hash table entries. */ symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; local_p = mips_elf_local_relocation_p (input_bfd, relocation, - local_sections, false); + local_sections, FALSE); was_local_p = local_p; if (! elf_bad_symtab (input_bfd)) extsymoff = symtab_hdr->sh_info; @@ -2158,7 +2188,7 @@ mips_elf_calculate_relocation (abfd, inp if (r_type != R_MIPS_HI16 && r_type != R_MIPS_LO16) return bfd_reloc_notsupported; - gp_disp_p = true; + gp_disp_p = TRUE; } /* If this symbol is defined, calculate its address. Note that _gp_disp is a magic symbol, always implicitly defined by the @@ -2279,7 +2309,7 @@ mips_elf_calculate_relocation (abfd, inp || ((r_type == R_MIPS_26) && target_is_16_bit_code_p))); local_p = mips_elf_local_relocation_p (input_bfd, relocation, - local_sections, true); + local_sections, TRUE); /* If we haven't already determined the GOT offset, or the GP value, and we're going to need it, get it now. */ @@ -2500,13 +2530,13 @@ mips_elf_calculate_relocation (abfd, inp case R_MIPS_CALL16: if (local_p) { - boolean forced; + bfd_boolean forced; /* The special case is when the symbol is forced to be local. We need the full address in the GOT since no R_MIPS_LO16 relocation follows. */ forced = ! mips_elf_local_relocation_p (input_bfd, relocation, - local_sections, false); + local_sections, FALSE); value = mips_elf_got16_entry (abfd, info, symbol + addend, forced); if (value == MINUS_ONE) return bfd_reloc_outofrange; @@ -2533,7 +2563,6 @@ mips_elf_calculate_relocation (abfd, inp case R_MIPS_PC16: value = mips_elf_sign_extend (addend, 16) + symbol - p; overflowed_p = mips_elf_overflow_p (value, 16); - value = (bfd_vma) ((bfd_signed_vma) value / 4); break; case R_MIPS_GOT_HI16: @@ -2634,13 +2663,13 @@ mips_elf_obtain_contents (howto, relocat /* It has been determined that the result of the RELOCATION is the VALUE. Use HOWTO to place VALUE into the output file at the appropriate position. The SECTION is the section to which the - relocation applies. If REQUIRE_JALX is true, then the opcode used + relocation applies. If REQUIRE_JALX is TRUE, then the opcode used for the relocation must be either JAL or JALX, and it is unconditionally converted to JALX. - Returns false if anything goes wrong. */ + Returns FALSE if anything goes wrong. */ -static boolean +static bfd_boolean mips_elf_perform_relocation (info, howto, relocation, value, input_bfd, input_section, contents, require_jalx) struct bfd_link_info *info; @@ -2650,7 +2679,7 @@ mips_elf_perform_relocation (info, howto bfd *input_bfd; asection *input_section; bfd_byte *contents; - boolean require_jalx; + bfd_boolean require_jalx; { bfd_vma x; bfd_byte *location; @@ -2766,7 +2795,7 @@ mips_elf_perform_relocation (info, howto /* If required, turn JAL into JALX. */ if (require_jalx) { - boolean ok; + bfd_boolean ok; bfd_vma opcode = x >> 26; bfd_vma jalx_opcode; @@ -2791,7 +2820,7 @@ mips_elf_perform_relocation (info, howto input_section->name, (unsigned long) relocation->r_offset); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Make this the JALX opcode. */ @@ -2806,12 +2835,12 @@ mips_elf_perform_relocation (info, howto /* Put the value into the output. */ bfd_put (8 * bfd_get_reloc_size (howto), input_bfd, x, location); - return true; + return TRUE; } -/* Returns true if SECTION is a MIPS16 stub section. */ +/* Returns TRUE if SECTION is a MIPS16 stub section. */ -static boolean +static bfd_boolean mips_elf_stub_section_p (abfd, section) bfd *abfd ATTRIBUTE_UNUSED; asection *section; @@ -2849,7 +2878,7 @@ mips_elf_allocate_dynamic_relocations (a dynamic relocation. The ADDENDP is adjusted if necessary; the caller should store the result in place of the original addend. */ -static boolean +static bfd_boolean mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec, symbol, addendp, input_section) bfd *output_bfd; @@ -2861,8 +2890,8 @@ mips_elf_create_dynamic_relocation (outp bfd_vma *addendp; asection *input_section; { - Elf_Internal_Rel outrel[3]; - boolean skip; + Elf_Internal_Rela outrel[3]; + bfd_boolean skip; asection *sreloc; bfd *dynobj; int r_type; @@ -2875,7 +2904,7 @@ mips_elf_create_dynamic_relocation (outp BFD_ASSERT (sreloc->reloc_count * MIPS_ELF_REL_SIZE (output_bfd) < sreloc->_raw_size); - skip = false; + skip = FALSE; outrel[0].r_offset = _bfd_elf_section_offset (output_bfd, info, input_section, rel[0].r_offset); outrel[1].r_offset = @@ -2903,12 +2932,12 @@ mips_elf_create_dynamic_relocation (outp /* If we didn't need the relocation at all, this value will be -1. */ if (outrel[0].r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; } #endif if (outrel[0].r_offset == (bfd_vma) -1) - skip = true; + skip = TRUE; /* FIXME: For -2 runtime relocation needs to be skipped, but properly resolved statically and installed. */ BFD_ASSERT (outrel[0].r_offset != (bfd_vma) -2); @@ -2917,7 +2946,7 @@ mips_elf_create_dynamic_relocation (outp record. Note that R_MIPS_NONE == 0, so that this call to memset is a way of setting R_TYPE to R_MIPS_NONE. */ if (skip) - memset (outrel, 0, sizeof (Elf_Internal_Rel) * 3); + memset (outrel, 0, sizeof (Elf_Internal_Rela) * 3); else { long indx; @@ -2942,7 +2971,7 @@ mips_elf_create_dynamic_relocation (outp else if (sec == NULL || sec->owner == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -3001,10 +3030,9 @@ mips_elf_create_dynamic_relocation (outp + sreloc->reloc_count * sizeof (Elf64_Mips_External_Rel))); } else - bfd_elf32_swap_reloc_out (output_bfd, &outrel[0], - (((Elf32_External_Rel *) - sreloc->contents) - + sreloc->reloc_count)); + bfd_elf32_swap_reloc_out + (output_bfd, &outrel[0], + (sreloc->contents + sreloc->reloc_count * sizeof (Elf32_External_Rel))); /* Record the index of the first relocation referencing H. This information is later emitted in the .msym section. */ @@ -3051,35 +3079,9 @@ mips_elf_create_dynamic_relocation (outp } } - return true; + return TRUE; } -/* Return the ISA for a MIPS e_flags value. */ - -static INLINE int -elf_mips_isa (flags) - flagword flags; -{ - switch (flags & EF_MIPS_ARCH) - { - case E_MIPS_ARCH_1: - return 1; - case E_MIPS_ARCH_2: - return 2; - case E_MIPS_ARCH_3: - return 3; - case E_MIPS_ARCH_4: - return 4; - case E_MIPS_ARCH_5: - return 5; - case E_MIPS_ARCH_32: - return 32; - case E_MIPS_ARCH_64: - return 64; - } - return 4; -} - /* Return the MACH for a MIPS e_flags value. */ unsigned long @@ -3146,6 +3148,10 @@ _bfd_elf_mips_mach (flags) case E_MIPS_ARCH_64: return bfd_mach_mipsisa64; break; + + case E_MIPS_ARCH_32R2: + return bfd_mach_mipsisa32r2; + break; } } @@ -3280,7 +3286,7 @@ _bfd_mips_elf_symbol_processing (abfd, a sections that need the SHF_MIPS_GPREL flag by name; there has to be a better way. */ -boolean +bfd_boolean _bfd_mips_elf_section_processing (abfd, hdr) bfd *abfd; Elf_Internal_Shdr *hdr; @@ -3296,10 +3302,10 @@ _bfd_mips_elf_section_processing (abfd, if (bfd_seek (abfd, hdr->sh_offset + sizeof (Elf32_External_RegInfo) - 4, SEEK_SET) != 0) - return false; + return FALSE; H_PUT_32 (abfd, elf_gp (abfd), buf); if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; } if (hdr->sh_type == SHT_MIPS_OPTIONS @@ -3335,10 +3341,10 @@ _bfd_mips_elf_section_processing (abfd, + sizeof (Elf_External_Options) + (sizeof (Elf64_External_RegInfo) - 8)), SEEK_SET) != 0) - return false; + return FALSE; H_PUT_64 (abfd, elf_gp (abfd), buf); if (bfd_bwrite (buf, (bfd_size_type) 8, abfd) != 8) - return false; + return FALSE; } else if (intopt.kind == ODK_REGINFO) { @@ -3350,10 +3356,10 @@ _bfd_mips_elf_section_processing (abfd, + sizeof (Elf_External_Options) + (sizeof (Elf32_External_RegInfo) - 4)), SEEK_SET) != 0) - return false; + return FALSE; H_PUT_32 (abfd, elf_gp (abfd), buf); if (bfd_bwrite (buf, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; } l += intopt.size; } @@ -3398,7 +3404,7 @@ _bfd_mips_elf_section_processing (abfd, } } - return true; + return TRUE; } /* Handle a MIPS specific section when reading an object file. This @@ -3408,7 +3414,7 @@ _bfd_mips_elf_section_processing (abfd, FIXME: We need to handle the SHF_MIPS_GPREL flag, but I'm not sure how to. */ -boolean +bfd_boolean _bfd_mips_elf_section_from_shdr (abfd, hdr, name) bfd *abfd; Elf_Internal_Shdr *hdr; @@ -3425,67 +3431,67 @@ _bfd_mips_elf_section_from_shdr (abfd, h { case SHT_MIPS_LIBLIST: if (strcmp (name, ".liblist") != 0) - return false; + return FALSE; break; case SHT_MIPS_MSYM: if (strcmp (name, ".msym") != 0) - return false; + return FALSE; break; case SHT_MIPS_CONFLICT: if (strcmp (name, ".conflict") != 0) - return false; + return FALSE; break; case SHT_MIPS_GPTAB: if (strncmp (name, ".gptab.", sizeof ".gptab." - 1) != 0) - return false; + return FALSE; break; case SHT_MIPS_UCODE: if (strcmp (name, ".ucode") != 0) - return false; + return FALSE; break; case SHT_MIPS_DEBUG: if (strcmp (name, ".mdebug") != 0) - return false; + return FALSE; flags = SEC_DEBUGGING; break; case SHT_MIPS_REGINFO: if (strcmp (name, ".reginfo") != 0 || hdr->sh_size != sizeof (Elf32_External_RegInfo)) - return false; + return FALSE; flags = (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_SAME_SIZE); break; case SHT_MIPS_IFACE: if (strcmp (name, ".MIPS.interfaces") != 0) - return false; + return FALSE; break; case SHT_MIPS_CONTENT: if (strncmp (name, ".MIPS.content", sizeof ".MIPS.content" - 1) != 0) - return false; + return FALSE; break; case SHT_MIPS_OPTIONS: if (strcmp (name, MIPS_ELF_OPTIONS_SECTION_NAME (abfd)) != 0) - return false; + return FALSE; break; case SHT_MIPS_DWARF: if (strncmp (name, ".debug_", sizeof ".debug_" - 1) != 0) - return false; + return FALSE; break; case SHT_MIPS_SYMBOL_LIB: if (strcmp (name, ".MIPS.symlib") != 0) - return false; + return FALSE; break; case SHT_MIPS_EVENTS: if (strncmp (name, ".MIPS.events", sizeof ".MIPS.events" - 1) != 0 && strncmp (name, ".MIPS.post_rel", sizeof ".MIPS.post_rel" - 1) != 0) - return false; + return FALSE; break; default: - return false; + return FALSE; } if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name)) - return false; + return FALSE; if (flags) { @@ -3493,7 +3499,7 @@ _bfd_mips_elf_section_from_shdr (abfd, h (bfd_get_section_flags (abfd, hdr->bfd_section) | flags))) - return false; + return FALSE; } /* FIXME: We should record sh_info for a .gptab section. */ @@ -3510,7 +3516,7 @@ _bfd_mips_elf_section_from_shdr (abfd, h if (! bfd_get_section_contents (abfd, hdr->bfd_section, (PTR) &ext, (file_ptr) 0, (bfd_size_type) sizeof ext)) - return false; + return FALSE; bfd_mips_elf32_swap_reginfo_in (abfd, &ext, &s); elf_gp (abfd) = s.ri_gp_value; } @@ -3525,12 +3531,12 @@ _bfd_mips_elf_section_from_shdr (abfd, h contents = (bfd_byte *) bfd_malloc (hdr->sh_size); if (contents == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, hdr->bfd_section, contents, (file_ptr) 0, hdr->sh_size)) { free (contents); - return false; + return FALSE; } l = contents; lend = contents + hdr->sh_size; @@ -3567,17 +3573,17 @@ _bfd_mips_elf_section_from_shdr (abfd, h free (contents); } - return true; + return TRUE; } /* Set the correct type for a MIPS ELF section. We do this by the section name, which is a hack, but ought to work. This routine is used by both the 32-bit and the 64-bit ABI. */ -boolean +bfd_boolean _bfd_mips_elf_fake_sections (abfd, hdr, sec) bfd *abfd; - Elf32_Internal_Shdr *hdr; + Elf_Internal_Shdr *hdr; asection *sec; { register const char *name; @@ -3705,12 +3711,12 @@ _bfd_mips_elf_fake_sections (abfd, hdr, BFD_ASSERT (esd->rel_hdr2 == NULL); esd->rel_hdr2 = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt); if (!esd->rel_hdr2) - return false; + return FALSE; _bfd_elf_init_reloc_shdr (abfd, esd->rel_hdr2, sec, !elf_section_data (sec)->use_rela_p); } - return true; + return TRUE; } /* Given a BFD section, try to locate the corresponding ELF section @@ -3719,7 +3725,7 @@ _bfd_mips_elf_fake_sections (abfd, hdr, but for non-PIC objects we will certainly want support for at least the .scommon section. */ -boolean +bfd_boolean _bfd_mips_elf_section_from_bfd_section (abfd, sec, retval) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; @@ -3728,20 +3734,20 @@ _bfd_mips_elf_section_from_bfd_section ( if (strcmp (bfd_get_section_name (abfd, sec), ".scommon") == 0) { *retval = SHN_MIPS_SCOMMON; - return true; + return TRUE; } if (strcmp (bfd_get_section_name (abfd, sec), ".acommon") == 0) { *retval = SHN_MIPS_ACOMMON; - return true; + return TRUE; } - return false; + return FALSE; } /* Hook called by the linker routine which adds symbols from an object file. We must handle the special MIPS section numbers here. */ -boolean +bfd_boolean _bfd_mips_elf_add_symbol_hook (abfd, info, sym, namep, flagsp, secp, valp) bfd *abfd; struct bfd_link_info *info; @@ -3757,7 +3763,7 @@ _bfd_mips_elf_add_symbol_hook (abfd, inf { /* Skip IRIX5 rld entry name. */ *namep = NULL; - return true; + return TRUE; } switch (sym->st_shndx) @@ -3785,12 +3791,12 @@ _bfd_mips_elf_add_symbol_hook (abfd, inf elf_text_section = bfd_zalloc (abfd, amt); if (elf_text_section == NULL) - return false; + return FALSE; amt = sizeof (asymbol); elf_text_symbol = bfd_zalloc (abfd, amt); if (elf_text_symbol == NULL) - return false; + return FALSE; /* Initialize the section. */ @@ -3826,12 +3832,12 @@ _bfd_mips_elf_add_symbol_hook (abfd, inf elf_data_section = bfd_zalloc (abfd, amt); if (elf_data_section == NULL) - return false; + return FALSE; amt = sizeof (asymbol); elf_data_symbol = bfd_zalloc (abfd, amt); if (elf_data_symbol == NULL) - return false; + return FALSE; /* Initialize the section. */ @@ -3872,9 +3878,9 @@ _bfd_mips_elf_add_symbol_hook (abfd, inf bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, *namep, BSF_GLOBAL, *secp, - (bfd_vma) *valp, (const char *) NULL, false, + (bfd_vma) *valp, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; @@ -3882,9 +3888,9 @@ _bfd_mips_elf_add_symbol_hook (abfd, inf h->type = STT_OBJECT; if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; - mips_elf_hash_table (info)->use_rld_obj_head = true; + mips_elf_hash_table (info)->use_rld_obj_head = TRUE; } /* If this is a mips16 text symbol, add 1 to the value to make it @@ -3893,14 +3899,14 @@ _bfd_mips_elf_add_symbol_hook (abfd, inf if (sym->st_other == STO_MIPS16) ++*valp; - return true; + return TRUE; } /* This hook function is called before the linker writes out a global symbol. We mark symbols as small common if appropriate. This is also where we undo the increment of the value for a mips16 symbol. */ -boolean +bfd_boolean _bfd_mips_elf_link_output_symbol_hook (abfd, info, name, sym, input_sec) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -3919,14 +3925,14 @@ _bfd_mips_elf_link_output_symbol_hook (a && (sym->st_value & 1) != 0) --sym->st_value; - return true; + return TRUE; } /* Functions for the dynamic linker. */ /* Create dynamic sections when linking against a dynamic object. */ -boolean +bfd_boolean _bfd_mips_elf_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3945,19 +3951,19 @@ _bfd_mips_elf_create_dynamic_sections (a if (s != NULL) { if (! bfd_set_section_flags (abfd, s, flags)) - return false; + return FALSE; } /* We need to create .got section. */ if (! mips_elf_create_got_section (abfd, info)) - return false; + return FALSE; /* Create the .msym section on IRIX6. It is used by the dynamic linker to speed up dynamic relocations, and to avoid computing the ELF hash for symbols. */ if (IRIX_COMPAT (abfd) == ict_irix6 && !mips_elf_create_msym_section (abfd)) - return false; + return FALSE; /* Create .stub section. */ if (bfd_get_section_by_name (abfd, @@ -3968,7 +3974,7 @@ _bfd_mips_elf_create_dynamic_sections (a || ! bfd_set_section_flags (abfd, s, flags | SEC_CODE) || ! bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd))) - return false; + return FALSE; } if ((IRIX_COMPAT (abfd) == ict_irix5 || IRIX_COMPAT (abfd) == ict_none) @@ -3980,7 +3986,7 @@ _bfd_mips_elf_create_dynamic_sections (a || ! bfd_set_section_flags (abfd, s, flags &~ (flagword) SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, MIPS_ELF_LOG_FILE_ALIGN (abfd))) - return false; + return FALSE; } /* On IRIX5, we adjust add some additional symbols and change the @@ -3994,9 +4000,9 @@ _bfd_mips_elf_create_dynamic_sections (a bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, *namep, BSF_GLOBAL, bfd_und_section_ptr, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; @@ -4004,14 +4010,14 @@ _bfd_mips_elf_create_dynamic_sections (a h->type = STT_SECTION; if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } /* We need to create a .compact_rel section. */ if (SGI_COMPAT (abfd)) { if (!mips_elf_create_compact_rel_section (abfd, info)) - return false; + return FALSE; } /* Change alignments of some sections. */ @@ -4040,9 +4046,9 @@ _bfd_mips_elf_create_dynamic_sections (a bh = NULL; if (!(_bfd_generic_link_add_one_symbol (info, abfd, name, BSF_GLOBAL, bfd_abs_section_ptr, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; @@ -4050,7 +4056,7 @@ _bfd_mips_elf_create_dynamic_sections (a h->type = STT_SECTION; if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; if (! mips_elf_hash_table (info)->use_rld_obj_head) { @@ -4065,9 +4071,9 @@ _bfd_mips_elf_create_dynamic_sections (a bh = NULL; if (!(_bfd_generic_link_add_one_symbol (info, abfd, name, BSF_GLOBAL, s, - (bfd_vma) 0, (const char *) NULL, false, + (bfd_vma) 0, (const char *) NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) - return false; + return FALSE; h = (struct elf_link_hash_entry *) bh; h->elf_link_hash_flags &= ~ELF_LINK_NON_ELF; @@ -4075,17 +4081,17 @@ _bfd_mips_elf_create_dynamic_sections (a h->type = STT_OBJECT; if (! bfd_elf32_link_record_dynamic_symbol (info, h)) - return false; + return FALSE; } } - return true; + return TRUE; } /* Look through the relocs for a section during the first phase, and allocate space in the global offset table. */ -boolean +bfd_boolean _bfd_mips_elf_check_relocs (abfd, info, sec, relocs) bfd *abfd; struct bfd_link_info *info; @@ -4105,7 +4111,7 @@ _bfd_mips_elf_check_relocs (abfd, info, struct elf_backend_data *bed; if (info->relocateable) - return true; + return TRUE; dynobj = elf_hash_table (info)->dynobj; symtab_hdr = &elf_tdata (abfd)->symtab_hdr; @@ -4153,7 +4159,7 @@ _bfd_mips_elf_check_relocs (abfd, info, (Elf_Internal_Rela *) NULL, info->keep_memory)); if (sec_relocs == NULL) - return false; + return FALSE; rend = sec_relocs + o->reloc_count; for (r = sec_relocs; r < rend; r++) @@ -4176,7 +4182,7 @@ _bfd_mips_elf_check_relocs (abfd, info, can easily discard it by setting the SEC_EXCLUDE flag. */ sec->flags |= SEC_EXCLUDE; - return true; + return TRUE; } /* Record this stub in an array of local symbol stubs for @@ -4194,7 +4200,7 @@ _bfd_mips_elf_check_relocs (abfd, info, amt = symcount * sizeof (asection *); n = (asection **) bfd_zalloc (abfd, amt); if (n == NULL) - return false; + return FALSE; elf_tdata (abfd)->local_stubs = n; } @@ -4215,7 +4221,7 @@ _bfd_mips_elf_check_relocs (abfd, info, /* H is the symbol this stub is for. */ h->fn_stub = sec; - mips_elf_hash_table (info)->mips16_stubs_seen = true; + mips_elf_hash_table (info)->mips16_stubs_seen = TRUE; } } else if (strncmp (name, CALL_STUB, sizeof CALL_STUB - 1) == 0 @@ -4240,7 +4246,7 @@ _bfd_mips_elf_check_relocs (abfd, info, the linker maps input sections to output sections, we can easily discard it by setting the SEC_EXCLUDE flag. */ sec->flags |= SEC_EXCLUDE; - return true; + return TRUE; } h = ((struct mips_elf_link_hash_entry *) @@ -4264,11 +4270,11 @@ _bfd_mips_elf_check_relocs (abfd, info, if (*loc != NULL || h->root.other == STO_MIPS16) { sec->flags |= SEC_EXCLUDE; - return true; + return TRUE; } *loc = sec; - mips_elf_hash_table (info)->mips16_stubs_seen = true; + mips_elf_hash_table (info)->mips16_stubs_seen = TRUE; } if (dynobj == NULL) @@ -4309,7 +4315,7 @@ _bfd_mips_elf_check_relocs (abfd, info, (_("%s: Malformed reloc detected for section %s"), bfd_archive_filename (abfd), name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else { @@ -4340,7 +4346,7 @@ _bfd_mips_elf_check_relocs (abfd, info, if (dynobj == NULL) elf_hash_table (info)->dynobj = dynobj = abfd; if (! mips_elf_create_got_section (dynobj, info)) - return false; + return FALSE; g = mips_elf_got_info (dynobj, &sgot); break; @@ -4362,20 +4368,35 @@ _bfd_mips_elf_check_relocs (abfd, info, || r_type == R_MIPS_GOT_LO16 || r_type == R_MIPS_GOT_DISP)) { + struct mips_got_entry entry, **loc; + /* We may need a local GOT entry for this relocation. We don't count R_MIPS_GOT_PAGE because we can estimate the maximum number of pages needed by looking at the size of the segment. Similar comments apply to R_MIPS_GOT16 and R_MIPS_CALL16. We don't count R_MIPS_GOT_HI16, or R_MIPS_CALL_HI16 because these are always followed by an - R_MIPS_GOT_LO16 or R_MIPS_CALL_LO16. + R_MIPS_GOT_LO16 or R_MIPS_CALL_LO16. */ + + entry.abfd = abfd; + entry.symndx = r_symndx; + entry.addend = rel->r_addend; + loc = (struct mips_got_entry **) + htab_find_slot (g->got_entries, &entry, INSERT); + + if (*loc == NULL) + { + entry.gotidx = g->local_gotno++; + + *loc = (struct mips_got_entry *)bfd_alloc (abfd, sizeof entry); + + if (! *loc) + return FALSE; + + memcpy (*loc, &entry, sizeof entry); - This estimation is very conservative since we can merge - duplicate entries in the GOT. In order to be less - conservative, we could actually build the GOT here, - rather than in relocate_section. */ - g->local_gotno++; - sgot->_raw_size += MIPS_ELF_GOT_SIZE (dynobj); + sgot->_raw_size += MIPS_ELF_GOT_SIZE (dynobj); + } } switch (r_type) @@ -4387,7 +4408,7 @@ _bfd_mips_elf_check_relocs (abfd, info, (_("%s: CALL16 reloc at 0x%lx not against global symbol"), bfd_archive_filename (abfd), (unsigned long) rel->r_offset); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Fall through. */ @@ -4397,7 +4418,7 @@ _bfd_mips_elf_check_relocs (abfd, info, { /* This symbol requires a global offset table entry. */ if (! mips_elf_record_global_got_symbol (h, info, g)) - return false; + return FALSE; /* We need a stub, not a plt entry for the undefined function. But we record it as if it needs plt. See @@ -4413,7 +4434,7 @@ _bfd_mips_elf_check_relocs (abfd, info, case R_MIPS_GOT_DISP: /* This symbol requires a global offset table entry. */ if (h && ! mips_elf_record_global_got_symbol (h, info, g)) - return false; + return FALSE; break; case R_MIPS_32: @@ -4440,7 +4461,7 @@ _bfd_mips_elf_check_relocs (abfd, info, | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, sreloc, 4)) - return false; + return FALSE; } } #define MIPS_READONLY_SECTION (SEC_ALLOC | SEC_LOAD | SEC_READONLY) @@ -4469,7 +4490,7 @@ _bfd_mips_elf_check_relocs (abfd, info, == MIPS_READONLY_SECTION) /* We need it to tell the dynamic linker if there are relocations against the text segment. */ - hmips->readonly_reloc = true; + hmips->readonly_reloc = TRUE; } /* Even though we don't directly need a GOT entry for @@ -4478,7 +4499,7 @@ _bfd_mips_elf_check_relocs (abfd, info, dynamic relocations against it. */ if (h != NULL && ! mips_elf_record_global_got_symbol (h, info, g)) - return false; + return FALSE; } if (SGI_COMPAT (abfd)) @@ -4499,14 +4520,14 @@ _bfd_mips_elf_check_relocs (abfd, info, Reconstruct it for later use during GC. */ case R_MIPS_GNU_VTINHERIT: if (!_bfd_elf32_gc_record_vtinherit (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; /* This relocation describes which C++ vtable entries are actually used. Record for later use during GC. */ case R_MIPS_GNU_VTENTRY: if (!_bfd_elf32_gc_record_vtentry (abfd, sec, h, rel->r_offset)) - return false; + return FALSE; break; default: @@ -4523,7 +4544,7 @@ _bfd_mips_elf_check_relocs (abfd, info, struct mips_elf_link_hash_entry *mh; mh = (struct mips_elf_link_hash_entry *) h; - mh->no_fn_stub = true; + mh->no_fn_stub = TRUE; } break; case R_MIPS_CALL16: @@ -4547,11 +4568,11 @@ _bfd_mips_elf_check_relocs (abfd, info, struct mips_elf_link_hash_entry *mh; mh = (struct mips_elf_link_hash_entry *) h; - mh->need_fn_stub = true; + mh->need_fn_stub = TRUE; } } - return true; + return TRUE; } /* Adjust a symbol defined by a dynamic object and referenced by a @@ -4560,7 +4581,7 @@ _bfd_mips_elf_check_relocs (abfd, info, change the definition to something the rest of the link can understand. */ -boolean +bfd_boolean _bfd_mips_elf_adjust_dynamic_symbol (info, h) struct bfd_link_info *info; struct elf_link_hash_entry *h; @@ -4605,7 +4626,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (inf && (h->elf_link_hash_flags & ELF_LINK_HASH_NEEDS_PLT) != 0) { if (! elf_hash_table (info)->dynamic_sections_created) - return true; + return TRUE; /* If this symbol is not defined in a regular file, then set the symbol to the stub location. This is required to make @@ -4629,7 +4650,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (inf /* The last half word of the stub will be filled with the index of this symbol in .dynsym section. */ - return true; + return TRUE; } } else if ((h->type == STT_FUNC) @@ -4638,7 +4659,7 @@ _bfd_mips_elf_adjust_dynamic_symbol (inf /* This will set the entry for this symbol in the GOT to 0, and the dynamic linker will take care of this. */ h->root.u.def.value = 0; - return true; + return TRUE; } /* If this is a weak symbol, and there is a real definition, the @@ -4650,20 +4671,20 @@ _bfd_mips_elf_adjust_dynamic_symbol (inf || h->weakdef->root.type == bfd_link_hash_defweak); h->root.u.def.section = h->weakdef->root.u.def.section; h->root.u.def.value = h->weakdef->root.u.def.value; - return true; + return TRUE; } /* This is a reference to a symbol defined by a dynamic object which is not a function. */ - return true; + return TRUE; } /* This function is called after all the input files have been read, and the input sections have been assigned to output sections. We check for any mips16 stub sections that we can discard. */ -boolean +bfd_boolean _bfd_mips_elf_always_size_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -4678,25 +4699,25 @@ _bfd_mips_elf_always_size_sections (outp if (info->relocateable || ! mips_elf_hash_table (info)->mips16_stubs_seen) - return true; + return TRUE; mips_elf_link_hash_traverse (mips_elf_hash_table (info), mips_elf_check_mips16_stubs, (PTR) NULL); - return true; + return TRUE; } /* Set the sizes of the dynamic sections. */ -boolean +bfd_boolean _bfd_mips_elf_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; { bfd *dynobj; asection *s; - boolean reltext; + bfd_boolean reltext; struct mips_got_info *g = NULL; dynobj = elf_hash_table (info)->dynobj; @@ -4719,11 +4740,11 @@ _bfd_mips_elf_size_dynamic_sections (out /* The check_relocs and adjust_dynamic_symbol entry points have determined the sizes of the various dynamic sections. Allocate memory for them. */ - reltext = false; + reltext = FALSE; for (s = dynobj->sections; s != NULL; s = s->next) { const char *name; - boolean strip; + bfd_boolean strip; /* It's OK to base decisions on the section name, because none of the dynobj section names depend upon the input files. */ @@ -4732,7 +4753,7 @@ _bfd_mips_elf_size_dynamic_sections (out if ((s->flags & SEC_LINKER_CREATED) == 0) continue; - strip = false; + strip = FALSE; if (strncmp (name, ".rel", 4) == 0) { @@ -4747,7 +4768,7 @@ _bfd_mips_elf_size_dynamic_sections (out && strcmp (name, bfd_get_section_name (s->output_section->owner, s->output_section)) == 0) - strip = true; + strip = TRUE; } else { @@ -4767,7 +4788,7 @@ _bfd_mips_elf_size_dynamic_sections (out && (target->flags & SEC_READONLY) != 0 && (target->flags & SEC_ALLOC) != 0) || strcmp (outname, ".rel.dyn") == 0) - reltext = true; + reltext = TRUE; /* We use the reloc_count field as a counter if we need to copy relocs into the output file. */ @@ -4808,11 +4829,6 @@ _bfd_mips_elf_size_dynamic_sections (out /* Assume there are two loadable segments consisting of contiguous sections. Is 5 enough? */ local_gotno = (loadable_size >> 16) + 5; - if (NEWABI_P (output_bfd)) - /* It's possible we will need GOT_PAGE entries as well as - GOT16 entries. Often, these will be able to share GOT - entries, but not always. */ - local_gotno *= 2; g->local_gotno += local_gotno; s->_raw_size += local_gotno * MIPS_ELF_GOT_SIZE (dynobj); @@ -4823,7 +4839,7 @@ _bfd_mips_elf_size_dynamic_sections (out that need GOT entries at the end of the symbol table. We do that here. */ if (! mips_elf_sort_hash_table (info, 1)) - return false; + return FALSE; if (g->global_gotsym != NULL) i = elf_hash_table (info)->dynsymcount - g->global_gotsym->dynindx; @@ -4872,7 +4888,7 @@ _bfd_mips_elf_size_dynamic_sections (out if (s->contents == NULL && s->_raw_size != 0) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } } @@ -4888,11 +4904,11 @@ _bfd_mips_elf_size_dynamic_sections (out /* SGI object has the equivalence of DT_DEBUG in the DT_MIPS_RLD_MAP entry. */ if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_MAP, 0)) - return false; + return FALSE; if (!SGI_COMPAT (output_bfd)) { if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0)) - return false; + return FALSE; } } else @@ -4901,7 +4917,7 @@ _bfd_mips_elf_size_dynamic_sections (out if (!SGI_COMPAT (output_bfd)) { if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_DEBUG, 0)) - return false; + return FALSE; } } @@ -4911,106 +4927,106 @@ _bfd_mips_elf_size_dynamic_sections (out if ((info->flags & DF_TEXTREL) != 0) { if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_TEXTREL, 0)) - return false; + return FALSE; } if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_PLTGOT, 0)) - return false; + return FALSE; if (bfd_get_section_by_name (dynobj, ".rel.dyn")) { if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_REL, 0)) - return false; + return FALSE; if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELSZ, 0)) - return false; + return FALSE; if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_RELENT, 0)) - return false; + return FALSE; } if (SGI_COMPAT (output_bfd)) { if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_CONFLICTNO, 0)) - return false; + return FALSE; } if (SGI_COMPAT (output_bfd)) { if (!MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_LIBLISTNO, 0)) - return false; + return FALSE; } if (bfd_get_section_by_name (dynobj, ".conflict") != NULL) { if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_CONFLICT, 0)) - return false; + return FALSE; s = bfd_get_section_by_name (dynobj, ".liblist"); BFD_ASSERT (s != NULL); if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_LIBLIST, 0)) - return false; + return FALSE; } if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_RLD_VERSION, 0)) - return false; + return FALSE; if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_FLAGS, 0)) - return false; + return FALSE; #if 0 /* Time stamps in executable files are a bad idea. */ if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_TIME_STAMP, 0)) - return false; + return FALSE; #endif #if 0 /* FIXME */ if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_ICHECKSUM, 0)) - return false; + return FALSE; #endif #if 0 /* FIXME */ if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_IVERSION, 0)) - return false; + return FALSE; #endif if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_BASE_ADDRESS, 0)) - return false; + return FALSE; if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_LOCAL_GOTNO, 0)) - return false; + return FALSE; if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_SYMTABNO, 0)) - return false; + return FALSE; if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_UNREFEXTNO, 0)) - return false; + return FALSE; if (! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_GOTSYM, 0)) - return false; + return FALSE; if (IRIX_COMPAT (dynobj) == ict_irix5 && ! MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_HIPAGENO, 0)) - return false; + return FALSE; if (IRIX_COMPAT (dynobj) == ict_irix6 && (bfd_get_section_by_name (dynobj, MIPS_ELF_OPTIONS_SECTION_NAME (dynobj))) && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_OPTIONS, 0)) - return false; + return FALSE; if (bfd_get_section_by_name (dynobj, ".msym") && !MIPS_ELF_ADD_DYNAMIC_ENTRY (info, DT_MIPS_MSYM, 0)) - return false; + return FALSE; } - return true; + return TRUE; } /* Relocate a MIPS ELF section. */ -boolean +bfd_boolean _bfd_mips_elf_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, local_syms, local_sections) bfd *output_bfd; @@ -5025,7 +5041,7 @@ _bfd_mips_elf_relocate_section (output_b Elf_Internal_Rela *rel; const Elf_Internal_Rela *relend; bfd_vma addend = 0; - boolean use_saved_addend_p = false; + bfd_boolean use_saved_addend_p = FALSE; struct elf_backend_data *bed; bed = get_elf_backend_data (output_bfd); @@ -5035,10 +5051,10 @@ _bfd_mips_elf_relocate_section (output_b const char *name; bfd_vma value; reloc_howto_type *howto; - boolean require_jalx; - /* True if the relocation is a RELA relocation, rather than a + bfd_boolean require_jalx; + /* TRUE if the relocation is a RELA relocation, rather than a REL relocation. */ - boolean rela_relocation_p = true; + bfd_boolean rela_relocation_p = TRUE; unsigned int r_type = ELF_R_TYPE (output_bfd, rel->r_info); const char * msg = (const char *) NULL; @@ -5051,7 +5067,7 @@ _bfd_mips_elf_relocate_section (output_b space. Thus, when they use an R_MIPS_64 they mean what is usually meant by R_MIPS_32, with the exception that the stored value is sign-extended to 64 bits. */ - howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, R_MIPS_32, false); + howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, R_MIPS_32, FALSE); /* On big-endian systems, we need to lie about the position of the reloc. */ @@ -5083,7 +5099,7 @@ _bfd_mips_elf_relocate_section (output_b if (rel_hdr->sh_entsize == MIPS_ELF_REL_SIZE (input_bfd)) { /* Note that this is a REL relocation. */ - rela_relocation_p = false; + rela_relocation_p = FALSE; /* Get the addend, which is stored in the input file. */ addend = mips_elf_obtain_contents (howto, rel, input_bfd, @@ -5098,7 +5114,7 @@ _bfd_mips_elf_relocate_section (output_b || r_type == R_MIPS_GNU_REL_HI16 || (r_type == R_MIPS_GOT16 && mips_elf_local_relocation_p (input_bfd, rel, - local_sections, false))) + local_sections, FALSE))) { bfd_vma l; const Elf_Internal_Rela *lo16_relocation; @@ -5119,10 +5135,10 @@ _bfd_mips_elf_relocate_section (output_b lo16_relocation = mips_elf_next_relocation (input_bfd, lo, rel, relend); if (lo16_relocation == NULL) - return false; + return FALSE; /* Obtain the addend kept there. */ - lo16_howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, lo, false); + lo16_howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, lo, FALSE); l = mips_elf_obtain_contents (lo16_howto, lo16_relocation, input_bfd, contents); l &= lo16_howto->src_mask; @@ -5175,7 +5191,7 @@ _bfd_mips_elf_relocate_section (output_b that we're adjusting GP in this relocateable object. */ if (! mips_elf_local_relocation_p (input_bfd, rel, local_sections, - false)) + FALSE)) /* There's nothing to do for non-local relocations. */ continue; @@ -5263,8 +5279,8 @@ _bfd_mips_elf_relocate_section (output_b if (! mips_elf_perform_relocation (info, howto, rel, addend, input_bfd, input_section, - contents, false)) - return false; + contents, FALSE)) + return FALSE; } /* Go on to the next relocation. */ @@ -5278,9 +5294,9 @@ _bfd_mips_elf_relocate_section (output_b if (rel + 1 < relend && rel->r_offset == rel[1].r_offset && ELF_R_TYPE (input_bfd, rel[1].r_info) != R_MIPS_NONE) - use_saved_addend_p = true; + use_saved_addend_p = TRUE; else - use_saved_addend_p = false; + use_saved_addend_p = FALSE; addend >>= howto->rightshift; @@ -5307,7 +5323,7 @@ _bfd_mips_elf_relocate_section (output_b msg = _("internal error: unsupported relocation error"); info->callbacks->warning (info, msg, name, input_bfd, input_section, rel->r_offset); - return false; + return FALSE; case bfd_reloc_overflow: if (use_saved_addend_p) @@ -5320,7 +5336,7 @@ _bfd_mips_elf_relocate_section (output_b if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, rel->r_offset))) - return false; + return FALSE; } break; @@ -5389,10 +5405,10 @@ _bfd_mips_elf_relocate_section (output_b if (! mips_elf_perform_relocation (info, howto, rel, value, input_bfd, input_section, contents, require_jalx)) - return false; + return FALSE; } - return true; + return TRUE; } /* If NAME is one of the special IRIX6 symbols defined by the linker, @@ -5449,7 +5465,7 @@ mips_elf_irix6_finish_dynamic_symbol (ab /* Finish up dynamic symbol handling. We set the contents of various dynamic sections here. */ -boolean +bfd_boolean _bfd_mips_elf_finish_dynamic_symbol (output_bfd, info, h, sym) bfd *output_bfd; struct bfd_link_info *info; @@ -5483,7 +5499,7 @@ _bfd_mips_elf_finish_dynamic_symbol (out /* FIXME: Can h->dynindex be more than 64K? */ if (h->dynindx & 0xffff0000) - return false; + return FALSE; /* Fill the stub. */ bfd_put_32 (output_bfd, STUB_LW (output_bfd), stub); @@ -5634,12 +5650,12 @@ _bfd_mips_elf_finish_dynamic_symbol (out && (sym->st_value & 1) != 0) --sym->st_value; - return true; + return TRUE; } /* Finish up the dynamic sections. */ -boolean +bfd_boolean _bfd_mips_elf_finish_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -5678,13 +5694,13 @@ _bfd_mips_elf_finish_dynamic_sections (o const char *name; size_t elemsize; asection *s; - boolean swap_out_p; + bfd_boolean swap_out_p; /* Read in the current dynamic entry. */ (*get_elf_backend_data (dynobj)->s->swap_dyn_in) (dynobj, b, &dyn); /* Assume that we're going to modify it and write it out. */ - swap_out_p = true; + swap_out_p = TRUE; switch (dyn.d_tag) { @@ -5749,12 +5765,12 @@ _bfd_mips_elf_finish_dynamic_sections (o case DT_MIPS_ICHECKSUM: /* XXX FIXME: */ - swap_out_p = false; + swap_out_p = FALSE; break; case DT_MIPS_IVERSION: /* XXX FIXME: */ - swap_out_p = false; + swap_out_p = FALSE; break; case DT_MIPS_BASE_ADDRESS: @@ -5816,7 +5832,7 @@ _bfd_mips_elf_finish_dynamic_sections (o break; default: - swap_out_p = false; + swap_out_p = FALSE; break; } @@ -5922,23 +5938,17 @@ _bfd_mips_elf_finish_dynamic_sections (o memset (s->contents, 0, MIPS_ELF_REL_SIZE (dynobj)); } - return true; + return TRUE; } -/* The final processing done just before writing out a MIPS ELF object - file. This gets the MIPS architecture right based on the machine - number. This is used by both the 32-bit and the 64-bit ABI. */ -void -_bfd_mips_elf_final_write_processing (abfd, linker) +/* Set ABFD's EF_MIPS_ARCH and EF_MIPS_MACH flags. */ + +static void +mips_set_isa_flags (abfd) bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; { - unsigned long val; - unsigned int i; - Elf_Internal_Shdr **hdrpp; - const char *name; - asection *sec; + flagword val; switch (bfd_get_mach (abfd)) { @@ -6011,11 +6021,38 @@ _bfd_mips_elf_final_write_processing (ab case bfd_mach_mipsisa64: val = E_MIPS_ARCH_64; - } + break; + case bfd_mach_mipsisa32r2: + val = E_MIPS_ARCH_32R2; + break; + } elf_elfheader (abfd)->e_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH); elf_elfheader (abfd)->e_flags |= val; +} + + +/* The final processing done just before writing out a MIPS ELF object + file. This gets the MIPS architecture right based on the machine + number. This is used by both the 32-bit and the 64-bit ABI. */ + +void +_bfd_mips_elf_final_write_processing (abfd, linker) + bfd *abfd; + bfd_boolean linker ATTRIBUTE_UNUSED; +{ + unsigned int i; + Elf_Internal_Shdr **hdrpp; + const char *name; + asection *sec; + + /* Keep the existing EF_MIPS_MACH and EF_MIPS_ARCH flags if the former + is nonzero. This is for compatibility with old objects, which used + a combination of a 32-bit EF_MIPS_ARCH and a 64-bit EF_MIPS_MACH. */ + if ((elf_elfheader (abfd)->e_flags & EF_MIPS_MACH) == 0) + mips_set_isa_flags (abfd); + /* Set the sh_info field for .gptab sections and other appropriate info for each special section. */ for (i = 1, hdrpp = elf_elfsections (abfd) + 1; @@ -6117,7 +6154,7 @@ _bfd_mips_elf_additional_program_headers /* Modify the segment map for an IRIX5 executable. */ -boolean +bfd_boolean _bfd_mips_elf_modify_segment_map (abfd) bfd *abfd; { @@ -6138,7 +6175,7 @@ _bfd_mips_elf_modify_segment_map (abfd) amt = sizeof *m; m = (struct elf_segment_map *) bfd_zalloc (abfd, amt); if (m == NULL) - return false; + return FALSE; m->p_type = PT_MIPS_REGINFO; m->count = 1; @@ -6190,7 +6227,7 @@ _bfd_mips_elf_modify_segment_map (abfd) options_segment->next = *pm; options_segment->p_type = PT_MIPS_OPTIONS; options_segment->p_flags = PF_R; - options_segment->p_flags_valid = true; + options_segment->p_flags_valid = TRUE; options_segment->count = 1; options_segment->sections[0] = s; *pm = options_segment; @@ -6214,7 +6251,7 @@ _bfd_mips_elf_modify_segment_map (abfd) amt = sizeof *m; m = (struct elf_segment_map *) bfd_zalloc (abfd, amt); if (m == NULL) - return false; + return FALSE; m->p_type = PT_MIPS_RTPROC; @@ -6305,7 +6342,7 @@ _bfd_mips_elf_modify_segment_map (abfd) amt = sizeof *n + (bfd_size_type) (c - 1) * sizeof (asection *); n = (struct elf_segment_map *) bfd_zalloc (abfd, amt); if (n == NULL) - return false; + return FALSE; *n = *m; n->count = c; @@ -6327,7 +6364,7 @@ _bfd_mips_elf_modify_segment_map (abfd) } } - return true; + return TRUE; } /* Return the section that should be marked against GC for a given @@ -6374,7 +6411,7 @@ _bfd_mips_elf_gc_mark_hook (sec, info, r /* Update the got entry reference counts for the section being removed. */ -boolean +bfd_boolean _bfd_mips_elf_gc_sweep_hook (abfd, info, sec, relocs) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -6416,7 +6453,7 @@ _bfd_mips_elf_gc_sweep_hook (abfd, info, } #endif - return true; + return TRUE; } /* Copy data from a MIPS ELF indirect symbol to its direct symbol, @@ -6440,20 +6477,20 @@ _bfd_mips_elf_copy_indirect_symbol (bed, indmips = (struct mips_elf_link_hash_entry *) ind; dirmips->possibly_dynamic_relocs += indmips->possibly_dynamic_relocs; if (indmips->readonly_reloc) - dirmips->readonly_reloc = true; + dirmips->readonly_reloc = TRUE; if (dirmips->min_dyn_reloc_index == 0 || (indmips->min_dyn_reloc_index != 0 && indmips->min_dyn_reloc_index < dirmips->min_dyn_reloc_index)) dirmips->min_dyn_reloc_index = indmips->min_dyn_reloc_index; if (indmips->no_fn_stub) - dirmips->no_fn_stub = true; + dirmips->no_fn_stub = TRUE; } void _bfd_mips_elf_hide_symbol (info, entry, force_local) struct bfd_link_info *info; struct elf_link_hash_entry *entry; - boolean force_local; + bfd_boolean force_local; { bfd *dynobj; asection *got; @@ -6463,7 +6500,7 @@ _bfd_mips_elf_hide_symbol (info, entry, h = (struct mips_elf_link_hash_entry *) entry; if (h->forced_local) return; - h->forced_local = true; + h->forced_local = TRUE; dynobj = elf_hash_table (info)->dynobj; got = bfd_get_section_by_name (dynobj, ".got"); @@ -6478,31 +6515,31 @@ _bfd_mips_elf_hide_symbol (info, entry, #define PDR_SIZE 32 -boolean +bfd_boolean _bfd_mips_elf_discard_info (abfd, cookie, info) bfd *abfd; struct elf_reloc_cookie *cookie; struct bfd_link_info *info; { asection *o; - boolean ret = false; + bfd_boolean ret = FALSE; unsigned char *tdata; size_t i, skip; o = bfd_get_section_by_name (abfd, ".pdr"); if (! o) - return false; + return FALSE; if (o->_raw_size == 0) - return false; + return FALSE; if (o->_raw_size % PDR_SIZE != 0) - return false; + return FALSE; if (o->output_section != NULL && bfd_is_abs_section (o->output_section)) - return false; + return FALSE; tdata = bfd_zmalloc (o->_raw_size / PDR_SIZE); if (! tdata) - return false; + return FALSE; cookie->rels = (MNAME(abfd,_bfd_elf,link_read_relocs) (abfd, o, (PTR) NULL, @@ -6511,7 +6548,7 @@ _bfd_mips_elf_discard_info (abfd, cookie if (!cookie->rels) { free (tdata); - return false; + return FALSE; } cookie->rel = cookie->rels; @@ -6530,7 +6567,7 @@ _bfd_mips_elf_discard_info (abfd, cookie { elf_section_data (o)->tdata = tdata; o->_cooked_size = o->_raw_size - skip * PDR_SIZE; - ret = true; + ret = TRUE; } else free (tdata); @@ -6541,16 +6578,16 @@ _bfd_mips_elf_discard_info (abfd, cookie return ret; } -boolean +bfd_boolean _bfd_mips_elf_ignore_discarded_relocs (sec) asection *sec; { if (strcmp (sec->name, ".pdr") == 0) - return true; - return false; + return TRUE; + return FALSE; } -boolean +bfd_boolean _bfd_mips_elf_write_section (output_bfd, sec, contents) bfd *output_bfd; asection *sec; @@ -6560,10 +6597,10 @@ _bfd_mips_elf_write_section (output_bfd, int i; if (strcmp (sec->name, ".pdr") != 0) - return false; + return FALSE; if (elf_section_data (sec)->tdata == NULL) - return false; + return FALSE; to = contents; end = contents + sec->_raw_size; @@ -6580,7 +6617,7 @@ _bfd_mips_elf_write_section (output_bfd, bfd_set_section_contents (output_bfd, sec->output_section, contents, (file_ptr) sec->output_offset, sec->_cooked_size); - return true; + return TRUE; } /* MIPS ELF uses a special find_nearest_line routine in order the @@ -6592,7 +6629,7 @@ struct mips_elf_find_line struct ecoff_find_line i; }; -boolean +bfd_boolean _bfd_mips_elf_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd; @@ -6608,14 +6645,14 @@ _bfd_mips_elf_find_nearest_line (abfd, s if (_bfd_dwarf1_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr)) - return true; + return TRUE; if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr, (unsigned) (ABI_64_P (abfd) ? 8 : 0), &elf_tdata (abfd)->dwarf2_find_line_info)) - return true; + return TRUE; msec = bfd_get_section_by_name (abfd, ".mdebug"); if (msec != NULL) @@ -6645,13 +6682,13 @@ _bfd_mips_elf_find_nearest_line (abfd, s if (fi == NULL) { msec->flags = origflags; - return false; + return FALSE; } if (! _bfd_mips_elf_read_ecoff_info (abfd, msec, &fi->d)) { msec->flags = origflags; - return false; + return FALSE; } /* Swap in the FDR information. */ @@ -6660,7 +6697,7 @@ _bfd_mips_elf_find_nearest_line (abfd, s if (fi->d.fdr == NULL) { msec->flags = origflags; - return false; + return FALSE; } external_fdr_size = swap->external_fdr_size; fdr_ptr = fi->d.fdr; @@ -6685,7 +6722,7 @@ _bfd_mips_elf_find_nearest_line (abfd, s line_ptr)) { msec->flags = origflags; - return true; + return TRUE; } msec->flags = origflags; @@ -6702,7 +6739,7 @@ _bfd_mips_elf_find_nearest_line (abfd, s remember the bytes we are writing out, so that we can install the GP value in the section_processing routine. */ -boolean +bfd_boolean _bfd_mips_elf_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -6719,7 +6756,7 @@ _bfd_mips_elf_set_section_contents (abfd bfd_size_type amt = sizeof (struct bfd_elf_section_data); section->used_by_bfd = (PTR) bfd_zalloc (abfd, amt); if (elf_section_data (section) == NULL) - return false; + return FALSE; } c = (bfd_byte *) elf_section_data (section)->tdata; if (c == NULL) @@ -6732,7 +6769,7 @@ _bfd_mips_elf_set_section_contents (abfd size = section->_raw_size; c = (bfd_byte *) bfd_zalloc (abfd, size); if (c == NULL) - return false; + return FALSE; elf_section_data (section)->tdata = (PTR) c; } @@ -6753,7 +6790,7 @@ _bfd_elf_mips_get_relocated_section_cont struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { /* Get enough memory to hold the stuff */ @@ -6781,7 +6818,7 @@ _bfd_elf_mips_get_relocated_section_cont /* We're not relaxing the section, so just copy the size info */ input_section->_cooked_size = input_section->_raw_size; - input_section->reloc_done = true; + input_section->reloc_done = TRUE; reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, @@ -6806,7 +6843,7 @@ _bfd_elf_mips_get_relocated_section_cont lh = 0; else { - h = bfd_hash_lookup (&link_info->hash->table, "_gp", false, false); + h = bfd_hash_lookup (&link_info->hash->table, "_gp", FALSE, FALSE); lh = (struct bfd_link_hash_entry *) h; } lookup: @@ -6892,7 +6929,7 @@ _bfd_elf_mips_get_relocated_section_cont if (!((*link_info->callbacks->undefined_symbol) (link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr), input_bfd, input_section, (*parent)->address, - true))) + TRUE))) goto error_return; break; case bfd_reloc_dangerous: @@ -6955,9 +6992,9 @@ _bfd_mips_elf_link_hash_table_create (ab #endif ret->procedure_count = 0; ret->compact_rel_size = 0; - ret->use_rld_obj_head = false; + ret->use_rld_obj_head = FALSE; ret->rld_value = 0; - ret->mips16_stubs_seen = false; + ret->mips16_stubs_seen = FALSE; return &ret->root.root; } @@ -6966,7 +7003,7 @@ _bfd_mips_elf_link_hash_table_create (ab the .mdebug sections. We need to merge all instances of these sections together, not write them all out sequentially. */ -boolean +bfd_boolean _bfd_mips_elf_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -7028,7 +7065,7 @@ _bfd_mips_elf_final_link (abfd, info) if (! mips_elf_sort_hash_table (info, (info->shared ? bfd_count_sections (abfd) + 1 : 1))) - return false; + return FALSE; /* Make sure we didn't grow the global .got region. */ dynobj = elf_hash_table (info)->dynobj; @@ -7076,7 +7113,7 @@ _bfd_mips_elf_final_link (abfd, info) (*secpp)->link_order_head = NULL; bfd_section_list_remove (abfd, secpp); --abfd->section_count; - + break; } } @@ -7087,7 +7124,7 @@ _bfd_mips_elf_final_link (abfd, info) { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (info->hash, "_gp", false, false, true); + h = bfd_link_hash_lookup (info->hash, "_gp", FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && h->type == bfd_link_hash_defined) elf_gp (abfd) = (h->u.def.value @@ -7157,7 +7194,7 @@ _bfd_mips_elf_final_link (abfd, info) (PTR) &ext, (file_ptr) 0, (bfd_size_type) sizeof ext)) - return false; + return FALSE; bfd_mips_elf32_swap_reginfo_in (input_bfd, &ext, &sub); @@ -7226,7 +7263,7 @@ _bfd_mips_elf_final_link (abfd, info) mdebug_handle = bfd_ecoff_debug_init (abfd, &debug, swap, info); if (mdebug_handle == (PTR) NULL) - return false; + return FALSE; esym.jmptbl = 0; esym.cobol_main = 0; @@ -7251,7 +7288,7 @@ _bfd_mips_elf_final_link (abfd, info) esym.asym.value = last; if (!bfd_ecoff_debug_one_external (abfd, &debug, swap, secname[i], &esym)) - return false; + return FALSE; } for (p = o->link_order_head; @@ -7295,12 +7332,12 @@ _bfd_mips_elf_final_link (abfd, info) ecoff_debug_info structure, so we do that now. */ if (! _bfd_mips_elf_read_ecoff_info (input_bfd, input_section, &input_debug)) - return false; + return FALSE; if (! (bfd_ecoff_debug_accumulate (mdebug_handle, abfd, &debug, swap, input_bfd, &input_debug, input_swap, info))) - return false; + return FALSE; /* Loop through the external symbols. For each one with interesting information, try to find the symbol in @@ -7326,7 +7363,7 @@ _bfd_mips_elf_final_link (abfd, info) name = input_debug.ssext + ext.asym.iss; h = mips_elf_link_hash_lookup (mips_elf_hash_table (info), - name, false, false, true); + name, FALSE, FALSE, TRUE); if (h == NULL || h->esym.ifd != -2) continue; @@ -7371,13 +7408,13 @@ _bfd_mips_elf_final_link (abfd, info) if (rtproc_sec == NULL || ! bfd_set_section_flags (abfd, rtproc_sec, flags) || ! bfd_set_section_alignment (abfd, rtproc_sec, 4)) - return false; + return FALSE; } if (! mips_elf_create_procedure_table (mdebug_handle, abfd, info, rtproc_sec, &debug)) - return false; + return FALSE; } /* Build the external symbol information. */ @@ -7385,12 +7422,12 @@ _bfd_mips_elf_final_link (abfd, info) einfo.info = info; einfo.debug = &debug; einfo.swap = swap; - einfo.failed = false; + einfo.failed = FALSE; mips_elf_link_hash_traverse (mips_elf_hash_table (info), mips_elf_output_extsym, (PTR) &einfo); if (einfo.failed) - return false; + return FALSE; /* Set the size of the .mdebug section. */ o->_raw_size = bfd_ecoff_debug_size (abfd, &debug, swap); @@ -7463,7 +7500,7 @@ _bfd_mips_elf_final_link (abfd, info) (_("%s: illegal section name `%s'"), bfd_get_filename (abfd), o->name); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } /* The linker script always combines .gptab.data and @@ -7487,7 +7524,7 @@ _bfd_mips_elf_final_link (abfd, info) amt = c * sizeof (Elf32_gptab); tab = (Elf32_gptab *) bfd_malloc (amt); if (tab == NULL) - return false; + return FALSE; tab[0].gt_header.gt_current_g_value = elf_gp_size (abfd); tab[0].gt_header.gt_unused = 0; @@ -7525,7 +7562,7 @@ _bfd_mips_elf_final_link (abfd, info) Elf32_gptab int_gptab; unsigned long val; unsigned long add; - boolean exact; + bfd_boolean exact; unsigned int look; if (! (bfd_get_section_contents @@ -7534,7 +7571,7 @@ _bfd_mips_elf_final_link (abfd, info) (bfd_size_type) sizeof (Elf32_External_gptab)))) { free (tab); - return false; + return FALSE; } bfd_mips_elf32_swap_gptab_in (input_bfd, &ext_gptab, @@ -7542,14 +7579,14 @@ _bfd_mips_elf_final_link (abfd, info) val = int_gptab.gt_entry.gt_g_value; add = int_gptab.gt_entry.gt_bytes - last; - exact = false; + exact = FALSE; for (look = 1; look < c; look++) { if (tab[look].gt_entry.gt_g_value >= val) tab[look].gt_entry.gt_bytes += add; if (tab[look].gt_entry.gt_g_value == val) - exact = true; + exact = TRUE; } if (! exact) @@ -7563,7 +7600,7 @@ _bfd_mips_elf_final_link (abfd, info) if (new_tab == NULL) { free (tab); - return false; + return FALSE; } tab = new_tab; tab[c].gt_entry.gt_g_value = val; @@ -7606,7 +7643,7 @@ _bfd_mips_elf_final_link (abfd, info) if (ext_tab == NULL) { free (tab); - return false; + return FALSE; } for (j = 0; j < c; j++) @@ -7624,7 +7661,7 @@ _bfd_mips_elf_final_link (abfd, info) /* Invoke the regular ELF backend linker to do all the work. */ if (!MNAME(abfd,bfd_elf,bfd_final_link) (abfd, info)) - return false; + return FALSE; /* Now write out the computed sections. */ @@ -7636,7 +7673,7 @@ _bfd_mips_elf_final_link (abfd, info) if (! bfd_set_section_contents (abfd, reginfo_sec, (PTR) &ext, (file_ptr) 0, (bfd_size_type) sizeof ext)) - return false; + return FALSE; } if (mdebug_sec != (asection *) NULL) @@ -7645,7 +7682,7 @@ _bfd_mips_elf_final_link (abfd, info) if (! bfd_ecoff_write_accumulated_debug (mdebug_handle, abfd, &debug, swap, info, mdebug_sec->filepos)) - return false; + return FALSE; bfd_ecoff_debug_free (mdebug_handle, abfd, &debug, swap, info); } @@ -7656,7 +7693,7 @@ _bfd_mips_elf_final_link (abfd, info) gptab_data_sec->contents, (file_ptr) 0, gptab_data_sec->_raw_size)) - return false; + return FALSE; } if (gptab_bss_sec != (asection *) NULL) @@ -7665,7 +7702,7 @@ _bfd_mips_elf_final_link (abfd, info) gptab_bss_sec->contents, (file_ptr) 0, gptab_bss_sec->_raw_size)) - return false; + return FALSE; } if (SGI_COMPAT (abfd)) @@ -7677,54 +7714,125 @@ _bfd_mips_elf_final_link (abfd, info) rtproc_sec->contents, (file_ptr) 0, rtproc_sec->_raw_size)) - return false; + return FALSE; } } - return true; + return TRUE; } -/* Return true if machine EXTENSION is an extension of machine BASE, - meaning that it should be safe to link code for the two machines - and set the output machine to EXTENSION. EXTENSION and BASE are - both submasks of EF_MIPS_MACH. */ - -static boolean -_bfd_mips_elf_mach_extends_p (base, extension) - flagword base, extension; -{ - /* The vr5500 ISA is an extension of the core vr5400 ISA, but doesn't - include the multimedia stuff. It seems better to allow vr5400 - and vr5500 code to be merged anyway, since many libraries will - just use the core ISA. Perhaps we could add some sort of ASE - flag if this ever proves a problem. */ - return (base == 0 - || (base == E_MIPS_MACH_5400 && extension == E_MIPS_MACH_5500) - || (base == E_MIPS_MACH_4100 && extension == E_MIPS_MACH_4111) - || (base == E_MIPS_MACH_4100 && extension == E_MIPS_MACH_4120)); +/* Structure for saying that BFD machine EXTENSION extends BASE. */ + +struct mips_mach_extension { + unsigned long extension, base; +}; + + +/* An array describing how BFD machines relate to one another. The entries + are ordered topologically with MIPS I extensions listed last. */ + +static const struct mips_mach_extension mips_mach_extensions[] = { + /* MIPS64 extensions. */ + { bfd_mach_mips_sb1, bfd_mach_mipsisa64 }, + + /* MIPS V extensions. */ + { bfd_mach_mipsisa64, bfd_mach_mips5 }, + + /* R10000 extensions. */ + { bfd_mach_mips12000, bfd_mach_mips10000 }, + + /* R5000 extensions. Note: the vr5500 ISA is an extension of the core + vr5400 ISA, but doesn't include the multimedia stuff. It seems + better to allow vr5400 and vr5500 code to be merged anyway, since + many libraries will just use the core ISA. Perhaps we could add + some sort of ASE flag if this ever proves a problem. */ + { bfd_mach_mips5500, bfd_mach_mips5400 }, + { bfd_mach_mips5400, bfd_mach_mips5000 }, + + /* MIPS IV extensions. */ + { bfd_mach_mips5, bfd_mach_mips8000 }, + { bfd_mach_mips10000, bfd_mach_mips8000 }, + { bfd_mach_mips5000, bfd_mach_mips8000 }, + + /* VR4100 extensions. */ + { bfd_mach_mips4120, bfd_mach_mips4100 }, + { bfd_mach_mips4111, bfd_mach_mips4100 }, + + /* MIPS III extensions. */ + { bfd_mach_mips8000, bfd_mach_mips4000 }, + { bfd_mach_mips4650, bfd_mach_mips4000 }, + { bfd_mach_mips4600, bfd_mach_mips4000 }, + { bfd_mach_mips4400, bfd_mach_mips4000 }, + { bfd_mach_mips4300, bfd_mach_mips4000 }, + { bfd_mach_mips4100, bfd_mach_mips4000 }, + { bfd_mach_mips4010, bfd_mach_mips4000 }, + + /* MIPS32 extensions. */ + { bfd_mach_mipsisa32r2, bfd_mach_mipsisa32 }, + + /* MIPS II extensions. */ + { bfd_mach_mips4000, bfd_mach_mips6000 }, + { bfd_mach_mipsisa32, bfd_mach_mips6000 }, + + /* MIPS I extensions. */ + { bfd_mach_mips6000, bfd_mach_mips3000 }, + { bfd_mach_mips3900, bfd_mach_mips3000 } +}; + + +/* Return true if bfd machine EXTENSION is an extension of machine BASE. */ + +static bfd_boolean +mips_mach_extends_p (base, extension) + unsigned long base, extension; +{ + size_t i; + + for (i = 0; extension != base && i < ARRAY_SIZE (mips_mach_extensions); i++) + if (extension == mips_mach_extensions[i].extension) + extension = mips_mach_extensions[i].base; + + return extension == base; } + +/* Return true if the given ELF header flags describe a 32-bit binary. */ + +static bfd_boolean +mips_32bit_flags_p (flags) + flagword flags; +{ + return ((flags & EF_MIPS_32BITMODE) != 0 + || (flags & EF_MIPS_ABI) == E_MIPS_ABI_O32 + || (flags & EF_MIPS_ABI) == E_MIPS_ABI_EABI32 + || (flags & EF_MIPS_ARCH) == E_MIPS_ARCH_1 + || (flags & EF_MIPS_ARCH) == E_MIPS_ARCH_2 + || (flags & EF_MIPS_ARCH) == E_MIPS_ARCH_32 + || (flags & EF_MIPS_ARCH) == E_MIPS_ARCH_32R2); +} + + /* Merge backend specific data from an object file to the output object file when linking. */ -boolean +bfd_boolean _bfd_mips_elf_merge_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { flagword old_flags; flagword new_flags; - boolean ok; - boolean null_input_bfd = true; + bfd_boolean ok; + bfd_boolean null_input_bfd = TRUE; asection *sec; /* Check if we have the same endianess */ if (! _bfd_generic_verify_endian_match (ibfd, obfd)) - return false; + return FALSE; if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour || bfd_get_flavour (obfd) != bfd_target_elf_flavour) - return true; + return TRUE; new_flags = elf_elfheader (ibfd)->e_flags; elf_elfheader (obfd)->e_flags |= new_flags & EF_MIPS_NOREORDER; @@ -7732,7 +7840,7 @@ _bfd_mips_elf_merge_private_bfd_data (ib if (! elf_flags_init (obfd)) { - elf_flags_init (obfd) = true; + elf_flags_init (obfd) = TRUE; elf_elfheader (obfd)->e_flags = new_flags; elf_elfheader (obfd)->e_ident[EI_CLASS] = elf_elfheader (ibfd)->e_ident[EI_CLASS]; @@ -7742,10 +7850,10 @@ _bfd_mips_elf_merge_private_bfd_data (ib { if (! bfd_set_arch_mach (obfd, bfd_get_arch (ibfd), bfd_get_mach (ibfd))) - return false; + return FALSE; } - return true; + return TRUE; } /* Check flag compatibility. */ @@ -7754,7 +7862,7 @@ _bfd_mips_elf_merge_private_bfd_data (ib old_flags &= ~EF_MIPS_NOREORDER; if (new_flags == old_flags) - return true; + return TRUE; /* Check to see if the input BFD actually contains any sections. If not, its flags may not have been initialised either, but it cannot @@ -7770,14 +7878,14 @@ _bfd_mips_elf_merge_private_bfd_data (ib || !strcmp (sec->name, ".bss")) && sec->_raw_size != 0)) { - null_input_bfd = false; + null_input_bfd = FALSE; break; } } if (null_input_bfd) - return true; + return TRUE; - ok = true; + ok = TRUE; if ((new_flags & EF_MIPS_PIC) != (old_flags & EF_MIPS_PIC)) { @@ -7786,7 +7894,7 @@ _bfd_mips_elf_merge_private_bfd_data (ib (*_bfd_error_handler) (_("%s: linking PIC files with non-PIC files"), bfd_archive_filename (ibfd)); - ok = false; + ok = FALSE; } if ((new_flags & EF_MIPS_CPIC) != (old_flags & EF_MIPS_CPIC)) @@ -7796,69 +7904,53 @@ _bfd_mips_elf_merge_private_bfd_data (ib (*_bfd_error_handler) (_("%s: linking abicalls files with non-abicalls files"), bfd_archive_filename (ibfd)); - ok = false; + ok = FALSE; } - /* Compare the ISA's. */ - if ((new_flags & (EF_MIPS_ARCH | EF_MIPS_MACH)) - != (old_flags & (EF_MIPS_ARCH | EF_MIPS_MACH))) - { - int new_mach = new_flags & EF_MIPS_MACH; - int old_mach = old_flags & EF_MIPS_MACH; - int new_isa = elf_mips_isa (new_flags); - int old_isa = elf_mips_isa (old_flags); - - /* If either has no machine specified, just compare the general isa's. - Some combinations of machines are ok, if the isa's match. */ - if (new_mach == old_mach - || _bfd_mips_elf_mach_extends_p (new_mach, old_mach) - || _bfd_mips_elf_mach_extends_p (old_mach, new_mach)) - { - /* Don't warn about mixing code using 32-bit ISAs, or mixing code - using 64-bit ISAs. They will normally use the same data sizes - and calling conventions. */ - - if (( (new_isa == 1 || new_isa == 2 || new_isa == 32) - ^ (old_isa == 1 || old_isa == 2 || old_isa == 32)) != 0) - { - (*_bfd_error_handler) - (_("%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"), - bfd_archive_filename (ibfd), new_isa, old_isa); - ok = false; - } - else - { - /* Do we need to update the mach field? */ - if (_bfd_mips_elf_mach_extends_p (old_mach, new_mach)) - { - elf_elfheader (obfd)->e_flags &= ~EF_MIPS_MACH; - elf_elfheader (obfd)->e_flags |= new_mach; - } - - /* Do we need to update the ISA field? */ - if (new_isa > old_isa) - { - elf_elfheader (obfd)->e_flags &= ~EF_MIPS_ARCH; - elf_elfheader (obfd)->e_flags - |= new_flags & EF_MIPS_ARCH; - } - } + /* Compare the ISAs. */ + if (mips_32bit_flags_p (old_flags) != mips_32bit_flags_p (new_flags)) + { + (*_bfd_error_handler) + (_("%s: linking 32-bit code with 64-bit code"), + bfd_archive_filename (ibfd)); + ok = FALSE; + } + else if (!mips_mach_extends_p (bfd_get_mach (ibfd), bfd_get_mach (obfd))) + { + /* OBFD's ISA isn't the same as, or an extension of, IBFD's. */ + if (mips_mach_extends_p (bfd_get_mach (obfd), bfd_get_mach (ibfd))) + { + /* Copy the architecture info from IBFD to OBFD. Also copy + the 32-bit flag (if set) so that we continue to recognise + OBFD as a 32-bit binary. */ + bfd_set_arch_info (obfd, bfd_get_arch_info (ibfd)); + elf_elfheader (obfd)->e_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH); + elf_elfheader (obfd)->e_flags + |= new_flags & (EF_MIPS_ARCH | EF_MIPS_MACH | EF_MIPS_32BITMODE); + + /* Copy across the ABI flags if OBFD doesn't use them + and if that was what caused us to treat IBFD as 32-bit. */ + if ((old_flags & EF_MIPS_ABI) == 0 + && mips_32bit_flags_p (new_flags) + && !mips_32bit_flags_p (new_flags & ~EF_MIPS_ABI)) + elf_elfheader (obfd)->e_flags |= new_flags & EF_MIPS_ABI; } else { + /* The ISAs aren't compatible. */ (*_bfd_error_handler) - (_("%s: ISA mismatch (%d) with previous modules (%d)"), + (_("%s: linking %s module with previous %s modules"), bfd_archive_filename (ibfd), - _bfd_elf_mips_mach (new_flags), - _bfd_elf_mips_mach (old_flags)); - ok = false; + bfd_printable_name (ibfd), + bfd_printable_name (obfd)); + ok = FALSE; } - - new_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH); - old_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH); } - /* Compare ABI's. The 64-bit ABI does not use EF_MIPS_ABI. But, it + new_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH | EF_MIPS_32BITMODE); + old_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH | EF_MIPS_32BITMODE); + + /* Compare ABIs. The 64-bit ABI does not use EF_MIPS_ABI. But, it does set EI_CLASS differently from any 32-bit ABI. */ if ((new_flags & EF_MIPS_ABI) != (old_flags & EF_MIPS_ABI) || (elf_elfheader (ibfd)->e_ident[EI_CLASS] @@ -7874,7 +7966,7 @@ _bfd_mips_elf_merge_private_bfd_data (ib bfd_archive_filename (ibfd), elf_mips_abi_name (ibfd), elf_mips_abi_name (obfd)); - ok = false; + ok = FALSE; } new_flags &= ~EF_MIPS_ABI; old_flags &= ~EF_MIPS_ABI; @@ -7896,21 +7988,21 @@ _bfd_mips_elf_merge_private_bfd_data (ib (_("%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"), bfd_archive_filename (ibfd), (unsigned long) new_flags, (unsigned long) old_flags); - ok = false; + ok = FALSE; } if (! ok) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } /* Function to keep MIPS specific file flags like as EF_MIPS_PIC. */ -boolean +bfd_boolean _bfd_mips_elf_set_private_flags (abfd, flags) bfd *abfd; flagword flags; @@ -7919,11 +8011,11 @@ _bfd_mips_elf_set_private_flags (abfd, f || elf_elfheader (abfd)->e_flags == flags); elf_elfheader (abfd)->e_flags = flags; - elf_flags_init (abfd) = true; - return true; + elf_flags_init (abfd) = TRUE; + return TRUE; } -boolean +bfd_boolean _bfd_mips_elf_print_private_bfd_data (abfd, ptr) bfd *abfd; PTR ptr; @@ -7969,6 +8061,8 @@ _bfd_mips_elf_print_private_bfd_data (ab fprintf (file, _(" [mips32]")); else if ((elf_elfheader (abfd)->e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_64) fprintf (file, _(" [mips64]")); + else if ((elf_elfheader (abfd)->e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_32R2) + fprintf (file, _(" [mips32r2]")); else fprintf (file, _(" [unknown ISA]")); @@ -7985,5 +8079,5 @@ _bfd_mips_elf_print_private_bfd_data (ab fputc ('\n', file); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/elfxx-mips.h binutils-2.13.90.0.18/bfd/elfxx-mips.h --- binutils-2.13.90.0.16/bfd/elfxx-mips.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/elfxx-mips.h Mon Dec 16 12:22:52 2002 @@ -22,85 +22,86 @@ Foundation, Inc., 59 Temple Place - Suit extern void _bfd_mips_elf_symbol_processing PARAMS ((bfd *, asymbol *)); -extern boolean _bfd_mips_elf_section_processing +extern bfd_boolean _bfd_mips_elf_section_processing PARAMS ((bfd *, Elf_Internal_Shdr *)); -extern boolean _bfd_mips_elf_section_from_shdr +extern bfd_boolean _bfd_mips_elf_section_from_shdr PARAMS ((bfd *, Elf_Internal_Shdr *, const char *)); -extern boolean _bfd_mips_elf_fake_sections +extern bfd_boolean _bfd_mips_elf_fake_sections PARAMS ((bfd *, Elf_Internal_Shdr *, asection *)); -extern boolean _bfd_mips_elf_section_from_bfd_section +extern bfd_boolean _bfd_mips_elf_section_from_bfd_section PARAMS ((bfd *, asection *, int *)); -extern boolean _bfd_mips_elf_add_symbol_hook +extern bfd_boolean _bfd_mips_elf_add_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const Elf_Internal_Sym *, const char **, flagword *, asection **, bfd_vma *)); -extern boolean _bfd_mips_elf_link_output_symbol_hook +extern bfd_boolean _bfd_mips_elf_link_output_symbol_hook PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *, asection *)); -extern boolean _bfd_mips_elf_create_dynamic_sections +extern bfd_boolean _bfd_mips_elf_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_mips_elf_check_relocs +extern bfd_boolean _bfd_mips_elf_check_relocs PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); -extern boolean _bfd_mips_elf_adjust_dynamic_symbol +extern bfd_boolean _bfd_mips_elf_adjust_dynamic_symbol PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *)); -extern boolean _bfd_mips_elf_always_size_sections +extern bfd_boolean _bfd_mips_elf_always_size_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_mips_elf_size_dynamic_sections +extern bfd_boolean _bfd_mips_elf_size_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_mips_elf_relocate_section +extern bfd_boolean _bfd_mips_elf_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, Elf_Internal_Sym *, asection **)); -extern boolean _bfd_mips_elf_finish_dynamic_symbol +extern bfd_boolean _bfd_mips_elf_finish_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -extern boolean _bfd_mips_elf_finish_dynamic_sections +extern bfd_boolean _bfd_mips_elf_finish_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); extern void _bfd_mips_elf_final_write_processing - PARAMS ((bfd *, boolean)); + PARAMS ((bfd *, bfd_boolean)); extern int _bfd_mips_elf_additional_program_headers PARAMS ((bfd *)); -extern boolean _bfd_mips_elf_modify_segment_map +extern bfd_boolean _bfd_mips_elf_modify_segment_map PARAMS ((bfd *)); extern asection * _bfd_mips_elf_gc_mark_hook PARAMS ((asection *, struct bfd_link_info *, Elf_Internal_Rela *, struct elf_link_hash_entry *, Elf_Internal_Sym *)); -extern boolean _bfd_mips_elf_gc_sweep_hook +extern bfd_boolean _bfd_mips_elf_gc_sweep_hook PARAMS ((bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *)); extern void _bfd_mips_elf_copy_indirect_symbol PARAMS ((struct elf_backend_data *, struct elf_link_hash_entry *, struct elf_link_hash_entry *)); extern void _bfd_mips_elf_hide_symbol - PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, boolean)); -extern boolean _bfd_mips_elf_ignore_discarded_relocs + PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean)); +extern bfd_boolean _bfd_mips_elf_ignore_discarded_relocs PARAMS ((asection *)); -extern boolean _bfd_mips_elf_find_nearest_line +extern bfd_boolean _bfd_mips_elf_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); -extern boolean _bfd_mips_elf_set_section_contents +extern bfd_boolean _bfd_mips_elf_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); extern bfd_byte *_bfd_elf_mips_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); + bfd_byte *, bfd_boolean, asymbol **)); extern struct bfd_link_hash_table *_bfd_mips_elf_link_hash_table_create PARAMS ((bfd *)); -extern boolean _bfd_mips_elf_final_link +extern bfd_boolean _bfd_mips_elf_final_link PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_mips_elf_merge_private_bfd_data +extern bfd_boolean _bfd_mips_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *)); -extern boolean _bfd_mips_elf_set_private_flags +extern bfd_boolean _bfd_mips_elf_set_private_flags PARAMS ((bfd *, flagword)); -extern boolean _bfd_mips_elf_print_private_bfd_data +extern bfd_boolean _bfd_mips_elf_print_private_bfd_data PARAMS ((bfd *, PTR)); -extern boolean _bfd_mips_elf_discard_info +extern bfd_boolean _bfd_mips_elf_discard_info PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *)); -extern boolean _bfd_mips_elf_write_section +extern bfd_boolean _bfd_mips_elf_write_section PARAMS ((bfd *, asection *, bfd_byte *)); -extern boolean _bfd_mips_elf_read_ecoff_info +extern bfd_boolean _bfd_mips_elf_read_ecoff_info PARAMS ((bfd *, asection *, struct ecoff_debug_info *)); extern bfd_reloc_status_type _bfd_mips_elf_gprel16_with_gp - PARAMS ((bfd *, asymbol *, arelent *, asection *, boolean, PTR, bfd_vma)); + PARAMS ((bfd *, asymbol *, arelent *, asection *, bfd_boolean, PTR, + bfd_vma)); extern bfd_reloc_status_type _bfd_mips_elf32_gprel16_reloc PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); extern unsigned long _bfd_elf_mips_mach diff -uprN binutils-2.13.90.0.16/bfd/elfxx-target.h binutils-2.13.90.0.18/bfd/elfxx-target.h --- binutils-2.13.90.0.16/bfd/elfxx-target.h Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/elfxx-target.h Mon Dec 16 12:22:52 2002 @@ -159,11 +159,11 @@ #endif #ifndef bfd_elfNN_bfd_merge_private_bfd_data #define bfd_elfNN_bfd_merge_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) #endif #ifndef bfd_elfNN_bfd_set_private_flags #define bfd_elfNN_bfd_set_private_flags \ - ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true) #endif #ifndef bfd_elfNN_bfd_is_local_label_name #define bfd_elfNN_bfd_is_local_label_name _bfd_elf_is_local_label_name @@ -250,10 +250,10 @@ #endif #ifndef elf_backend_collect -#define elf_backend_collect false +#define elf_backend_collect FALSE #endif #ifndef elf_backend_type_change_ok -#define elf_backend_type_change_ok false +#define elf_backend_type_change_ok FALSE #endif #ifndef elf_backend_sym_is_global diff -uprN binutils-2.13.90.0.16/bfd/format.c binutils-2.13.90.0.18/bfd/format.c --- binutils-2.13.90.0.16/bfd/format.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/format.c Mon Dec 16 12:22:52 2002 @@ -52,7 +52,7 @@ FUNCTION bfd_check_format SYNOPSIS - boolean bfd_check_format(bfd *abfd, bfd_format format); + bfd_boolean bfd_check_format(bfd *abfd, bfd_format format); DESCRIPTION Verify if the file attached to the BFD @var{abfd} is compatible @@ -67,7 +67,7 @@ DESCRIPTION matches, it is used. If not, exactly one target must recognize the file, or an error results. - The function returns <> on success, otherwise <> + The function returns <> on success, otherwise <> with one of the following error codes: o <> - @@ -85,7 +85,7 @@ DESCRIPTION more than one backend recognised the file format. */ -boolean +bfd_boolean bfd_check_format (abfd, format) bfd *abfd; bfd_format format; @@ -98,10 +98,10 @@ FUNCTION bfd_check_format_matches SYNOPSIS - boolean bfd_check_format_matches(bfd *abfd, bfd_format format, char ***matching); + bfd_boolean bfd_check_format_matches(bfd *abfd, bfd_format format, char ***matching); DESCRIPTION - Like <>, except when it returns false with + Like <>, except when it returns FALSE with <> set to <>. In that case, if @var{matching} is not NULL, it will be filled in with a NULL-terminated list of the names of the formats that matched, @@ -112,7 +112,7 @@ DESCRIPTION should free it. */ -boolean +bfd_boolean bfd_check_format_matches (abfd, format, matching) bfd *abfd; bfd_format format; @@ -129,11 +129,11 @@ bfd_check_format_matches (abfd, format, || (unsigned int) abfd->format >= (unsigned int) bfd_type_end) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (abfd->format != bfd_unknown) - return (boolean) (abfd->format == format); + return abfd->format == format; /* Since the target type was defaulted, check them all in the hope that one will be uniquely recognized. */ @@ -149,7 +149,7 @@ bfd_check_format_matches (abfd, format, amt = sizeof (*matching_vector) * 2 * _bfd_target_vector_entries; matching_vector = (const bfd_target **) bfd_malloc (amt); if (!matching_vector) - return false; + return FALSE; } right_targ = 0; @@ -162,7 +162,7 @@ bfd_check_format_matches (abfd, format, if (!abfd->target_defaulted) { if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) /* rewind! */ - return false; + return FALSE; right_targ = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd)); @@ -173,7 +173,7 @@ bfd_check_format_matches (abfd, format, if (matching) free ((PTR) matching_vector); - return true; /* File position has moved, BTW. */ + return TRUE; /* File position has moved, BTW. */ } /* For a long time the code has dropped through to check all @@ -198,7 +198,7 @@ bfd_check_format_matches (abfd, format, bfd_set_error (bfd_error_file_not_recognized); - return false; + return FALSE; } } @@ -213,7 +213,7 @@ bfd_check_format_matches (abfd, format, abfd->xvec = *target; /* Change BFD's target temporarily */ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; /* If _bfd_check_format neglects to set bfd_error, assume bfd_error_wrong_format. We didn't used to even pay any @@ -271,7 +271,7 @@ bfd_check_format_matches (abfd, format, if (matching) free ((PTR) matching_vector); - return false; + return FALSE; } } @@ -322,7 +322,7 @@ bfd_check_format_matches (abfd, format, if (matching) free ((PTR) matching_vector); - return true; /* File position has moved, BTW. */ + return TRUE; /* File position has moved, BTW. */ } abfd->xvec = save_targ; /* Restore original target type. */ @@ -353,7 +353,7 @@ bfd_check_format_matches (abfd, format, } } - return false; + return FALSE; } /* @@ -361,7 +361,7 @@ FUNCTION bfd_set_format SYNOPSIS - boolean bfd_set_format(bfd *abfd, bfd_format format); + bfd_boolean bfd_set_format(bfd *abfd, bfd_format format); DESCRIPTION This function sets the file format of the BFD @var{abfd} to the @@ -370,7 +370,7 @@ DESCRIPTION is not open for writing, then an error occurs. */ -boolean +bfd_boolean bfd_set_format (abfd, format) bfd *abfd; bfd_format format; @@ -379,11 +379,11 @@ bfd_set_format (abfd, format) || (unsigned int) abfd->format >= (unsigned int) bfd_type_end) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (abfd->format != bfd_unknown) - return (boolean) (abfd->format == format); + return abfd->format == format; /* Presume the answer is yes. */ abfd->format = format; @@ -391,10 +391,10 @@ bfd_set_format (abfd, format) if (!BFD_SEND_FMT (abfd, _bfd_set_format, (abfd))) { abfd->format = bfd_unknown; - return false; + return FALSE; } - return true; + return TRUE; } /* diff -uprN binutils-2.13.90.0.16/bfd/freebsd.h binutils-2.13.90.0.18/bfd/freebsd.h --- binutils-2.13.90.0.16/bfd/freebsd.h Fri Mar 9 11:15:59 2001 +++ binutils-2.13.90.0.18/bfd/freebsd.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end definitions used by all FreeBSD targets. - Copyright 1990, 1991, 1992, 1996, 1997, 2000, 2001 + Copyright 1990, 1991, 1992, 1996, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -61,7 +61,7 @@ Foundation, Inc., 59 Temple Place - Suit #define SWAP_MAGIC(ext) bfd_getl32 (ext) #define MY_write_object_contents MY(write_object_contents) -static boolean MY(write_object_contents) PARAMS ((bfd *abfd)); +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd)); #include "aout-target.h" @@ -69,7 +69,7 @@ static boolean MY(write_object_contents) Section contents have already been written. We write the file header, symbols, and relocation. */ -static boolean +static bfd_boolean MY(write_object_contents) (abfd) bfd *abfd; { @@ -102,5 +102,5 @@ MY(write_object_contents) (abfd) WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/genlink.h binutils-2.13.90.0.18/bfd/genlink.h --- binutils-2.13.90.0.16/bfd/genlink.h Fri Mar 9 11:15:59 2001 +++ binutils-2.13.90.0.18/bfd/genlink.h Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* genlink.h -- interface to the BFD generic linker - Copyright 1993, 1994, 1996 Free Software Foundation, Inc. + Copyright 1993, 1994, 1996, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -42,7 +42,7 @@ struct generic_link_hash_entry { struct bfd_link_hash_entry root; /* Whether this symbol has been written out. */ - boolean written; + bfd_boolean written; /* Symbol from input BFD. */ asymbol *sym; }; @@ -54,18 +54,18 @@ struct generic_link_hash_table struct bfd_link_hash_table root; }; -/* Look up an entry in an generic link hash table. */ +/* Look up an entry in a generic link hash table. */ #define _bfd_generic_link_hash_lookup(table, string, create, copy, follow) \ ((struct generic_link_hash_entry *) \ bfd_link_hash_lookup (&(table)->root, (string), (create), (copy), (follow))) -/* Traverse an generic link hash table. */ +/* Traverse a generic link hash table. */ #define _bfd_generic_link_hash_traverse(table, func, info) \ (bfd_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ (info))) /* Get the generic link hash table from the info structure. This is @@ -82,7 +82,7 @@ struct generic_link_hash_table /* Add the symbols of input_bfd to the symbols being built for output_bfd. */ -extern boolean _bfd_generic_link_output_symbols +extern bfd_boolean _bfd_generic_link_output_symbols PARAMS ((bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *, size_t *psymalloc)); @@ -100,7 +100,7 @@ struct generic_write_global_symbol_info /* Write out a single global symbol. This is expected to be called via _bfd_generic_link_hash_traverse. The second argument must actually be a struct generic_write_global_symbol_info *. */ -extern boolean _bfd_generic_link_write_global_symbol +extern bfd_boolean _bfd_generic_link_write_global_symbol PARAMS ((struct generic_link_hash_entry *, PTR)); /* Generic link hash table entry creation routine. */ diff -uprN binutils-2.13.90.0.16/bfd/hash.c binutils-2.13.90.0.18/bfd/hash.c --- binutils-2.13.90.0.16/bfd/hash.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/hash.c Mon Dec 16 12:22:52 2002 @@ -67,7 +67,7 @@ SUBSECTION <> (if you know approximately how many entries you will need, the function <>, which takes a @var{size} argument, may be used). - <> returns <> if some sort of + <> returns <> if some sort of error occurs. @findex bfd_hash_newfunc @@ -96,24 +96,24 @@ SUBSECTION The function <> is used both to look up a string in the hash table and to create a new entry. - If the @var{create} argument is <>, <> + If the @var{create} argument is <>, <> will look up a string. If the string is found, it will returns a pointer to a <>. If the string is not found in the table <> will return <>. You should not modify any of the fields in the returns <>. - If the @var{create} argument is <>, the string will be + If the @var{create} argument is <>, the string will be entered into the hash table if it is not already there. Either way a pointer to a <> will be returned, either to the existing structure or to a newly created one. In this case, a <> return means that an error occurred. - If the @var{create} argument is <>, and a new entry is + If the @var{create} argument is <>, and a new entry is created, the @var{copy} argument is used to decide whether to copy the string onto the hash table objalloc or not. If - @var{copy} is passed as <>, you must be careful not to + @var{copy} is passed as <>, you must be careful not to deallocate or modify the string as long as the hash table exists. @@ -133,7 +133,7 @@ SUBSECTION generic pointer passed to <>. The function must return a <> value, which indicates whether to continue traversing the hash table. If the function returns - <>, <> will stop the traversal and + <>, <> will stop the traversal and return immediately. INODE @@ -299,7 +299,7 @@ SUBSUBSECTION /* Create a new hash table, given a number of entries. */ -boolean +bfd_boolean bfd_hash_table_init_n (table, newfunc, size) struct bfd_hash_table *table; struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, @@ -315,24 +315,24 @@ bfd_hash_table_init_n (table, newfunc, s if (table->memory == NULL) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } table->table = ((struct bfd_hash_entry **) objalloc_alloc ((struct objalloc *) table->memory, alloc)); if (table->table == NULL) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } memset ((PTR) table->table, 0, alloc); table->size = size; table->newfunc = newfunc; - return true; + return TRUE; } /* Create a new hash table with the default number of entries. */ -boolean +bfd_boolean bfd_hash_table_init (table, newfunc) struct bfd_hash_table *table; struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, @@ -358,8 +358,8 @@ struct bfd_hash_entry * bfd_hash_lookup (table, string, create, copy) struct bfd_hash_table *table; const char *string; - boolean create; - boolean copy; + bfd_boolean create; + bfd_boolean copy; { register const unsigned char *s; register unsigned long hash; @@ -479,7 +479,7 @@ bfd_hash_allocate (table, size) void bfd_hash_traverse (table, func, info) struct bfd_hash_table *table; - boolean (*func) PARAMS ((struct bfd_hash_entry *, PTR)); + bfd_boolean (*func) PARAMS ((struct bfd_hash_entry *, PTR)); PTR info; { unsigned int i; @@ -532,7 +532,7 @@ struct bfd_strtab_hash struct strtab_hash_entry *last; /* Whether to precede strings with a two byte length, as in the XCOFF .debug section. */ - boolean xcoff; + bfd_boolean xcoff; }; static struct bfd_hash_entry *strtab_hash_newfunc @@ -597,7 +597,7 @@ _bfd_stringtab_init () table->size = 0; table->first = NULL; table->last = NULL; - table->xcoff = false; + table->xcoff = FALSE; return table; } @@ -613,7 +613,7 @@ _bfd_xcoff_stringtab_init () ret = _bfd_stringtab_init (); if (ret != NULL) - ret->xcoff = true; + ret->xcoff = TRUE; return ret; } @@ -628,21 +628,21 @@ _bfd_stringtab_free (table) } /* Get the index of a string in a strtab, adding it if it is not - already present. If HASH is false, we don't really use the hash + already present. If HASH is FALSE, we don't really use the hash table, and we don't eliminate duplicate strings. */ bfd_size_type _bfd_stringtab_add (tab, str, hash, copy) struct bfd_strtab_hash *tab; const char *str; - boolean hash; - boolean copy; + bfd_boolean hash; + bfd_boolean copy; { register struct strtab_hash_entry *entry; if (hash) { - entry = strtab_hash_lookup (tab, str, true, copy); + entry = strtab_hash_lookup (tab, str, TRUE, copy); if (entry == NULL) return (bfd_size_type) -1; } @@ -699,12 +699,12 @@ _bfd_stringtab_size (tab) /* Write out a strtab. ABFD must already be at the right location in the file. */ -boolean +bfd_boolean _bfd_stringtab_emit (abfd, tab) register bfd *abfd; struct bfd_strtab_hash *tab; { - register boolean xcoff; + register bfd_boolean xcoff; register struct strtab_hash_entry *entry; xcoff = tab->xcoff; @@ -724,12 +724,12 @@ _bfd_stringtab_emit (abfd, tab) /* The output length includes the null byte. */ bfd_put_16 (abfd, (bfd_vma) len, buf); if (bfd_bwrite ((PTR) buf, (bfd_size_type) 2, abfd) != 2) - return false; + return FALSE; } if (bfd_bwrite ((PTR) str, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/hp300hpux.c binutils-2.13.90.0.18/bfd/hp300hpux.c --- binutils-2.13.90.0.16/bfd/hp300hpux.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/hp300hpux.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD backend for hp-ux 9000/300 - Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2000, 2001 + Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Glenn Engel. @@ -194,16 +194,26 @@ Foundation, Inc., 59 Temple Place - Suit #include "aoutx.h" -static const bfd_target * MY (callback) PARAMS ((bfd *)); -static boolean MY (write_object_contents) PARAMS ((bfd *)); -static void convert_sym_type PARAMS ((struct external_nlist *, aout_symbol_type *, bfd *)); - -boolean MY (slurp_symbol_table) PARAMS ((bfd *)); -void MY (swap_std_reloc_in) PARAMS ((bfd *, struct hp300hpux_reloc *, arelent *, asymbol **, bfd_size_type)); -boolean MY (slurp_reloc_table) PARAMS ((bfd *, sec_ptr, asymbol **)); -long MY (get_symtab) PARAMS ((bfd *, asymbol **)); -long MY (get_symtab_upper_bound) PARAMS ((bfd *)); -long MY (canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); +static const bfd_target * MY (callback) + PARAMS ((bfd *)); +static bfd_boolean MY (write_object_contents) + PARAMS ((bfd *)); +static void convert_sym_type + PARAMS ((struct external_nlist *, aout_symbol_type *, bfd *)); + +bfd_boolean MY (slurp_symbol_table) + PARAMS ((bfd *)); +void MY (swap_std_reloc_in) + PARAMS ((bfd *, struct hp300hpux_reloc *, arelent *, asymbol **, + bfd_size_type)); +bfd_boolean MY (slurp_reloc_table) + PARAMS ((bfd *, sec_ptr, asymbol **)); +long MY (get_symtab) + PARAMS ((bfd *, asymbol **)); +long MY (get_symtab_upper_bound) + PARAMS ((bfd *)); +long MY (canonicalize_reloc) + PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); /* Since the hpux symbol table has nlist elements interspersed with strings and we need to insert som strings for secondary symbols, we @@ -271,9 +281,10 @@ MY (callback) (abfd) return abfd->xvec; } -extern boolean aout_32_write_syms PARAMS ((bfd * abfd)); +extern bfd_boolean aout_32_write_syms + PARAMS ((bfd * abfd)); -static boolean +static bfd_boolean MY (write_object_contents) (abfd) bfd *abfd; { @@ -307,10 +318,10 @@ MY (write_object_contents) (abfd) /* this is really the sym table size but we store it in drelocs */ H_PUT_32 (abfd, (bfd_get_symcount (abfd) * 12), exec_bytes.e_drelocs); - if (bfd_seek (abfd, (file_ptr) 0, false) != 0 + if (bfd_seek (abfd, (file_ptr) 0, FALSE) != 0 || (bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd) != EXEC_BYTES_SIZE)) - return false; + return FALSE; /* Write out the symbols, and then the relocs. We must write out the symbols first so that we know the symbol indices. */ @@ -320,25 +331,25 @@ MY (write_object_contents) (abfd) /* Skip the relocs to where we want to put the symbols. */ if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp) + execp->a_drsize), SEEK_SET) != 0) - return false; + return FALSE; } if (!MY (write_syms) (abfd)) - return false; + return FALSE; if (bfd_get_symcount (abfd) != 0) { if (bfd_seek (abfd, (file_ptr) N_TRELOFF (*execp), SEEK_CUR) != 0) - return false; + return FALSE; if (!NAME (aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) N_DRELOFF (*execp), SEEK_CUR) != 0) - return false; + return FALSE; if (!NAME (aout,squirt_out_relocs) (abfd, obj_datasec (abfd))) - return false; + return FALSE; } - return true; + return TRUE; } /* convert the hp symbol type to be the same as aout64.h usage so we */ @@ -523,7 +534,7 @@ NAME (aout,swap_exec_header_in) (abfd, r ... */ -boolean +bfd_boolean MY (slurp_symbol_table) (abfd) bfd *abfd; { @@ -538,19 +549,19 @@ MY (slurp_symbol_table) (abfd) /* If there's no work to be done, don't do any */ if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL) - return true; + return TRUE; symbol_bytes = exec_hdr (abfd)->a_syms; amt = symbol_bytes + SYM_EXTRA_BYTES; strings = (char *) bfd_alloc (abfd, amt); if (!strings) - return false; + return FALSE; syms = (struct external_nlist *) (strings + SYM_EXTRA_BYTES); if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0 || bfd_bread ((PTR) syms, symbol_bytes, abfd) != symbol_bytes) { bfd_release (abfd, syms); - return false; + return FALSE; } sym_end = (struct external_nlist *) (((char *) syms) + symbol_bytes); @@ -570,7 +581,7 @@ MY (slurp_symbol_table) (abfd) amt *= sizeof (aout_symbol_type); cached = (aout_symbol_type *) bfd_zalloc (abfd, amt); if (cached == NULL && num_syms != 0) - return false; + return FALSE; /* as we march thru the hp symbol table, convert it into a list of null terminated strings to hold the symbol names. Make sure any @@ -597,7 +608,7 @@ MY (slurp_symbol_table) (abfd) cache_save = *cache_ptr; convert_sym_type (sym_pointer, cache_ptr, abfd); if (!translate_from_native_sym_flags (abfd, cache_ptr)) - return false; + return FALSE; /********************************************************/ /* for hpux, the 'lenght' value indicates the length of */ @@ -626,7 +637,7 @@ MY (slurp_symbol_table) (abfd) obj_aout_symbols (abfd) = cached; - return true; + return TRUE; } void @@ -708,7 +719,7 @@ MY (swap_std_reloc_in) (abfd, bytes, cac } } -boolean +bfd_boolean MY (slurp_reloc_table) (abfd, asect, symbols) bfd *abfd; sec_ptr asect; @@ -724,10 +735,10 @@ MY (slurp_reloc_table) (abfd, asect, sym arelent *cache_ptr; if (asect->relocation) - return true; + return TRUE; if (asect->flags & SEC_CONSTRUCTOR) - return true; + return TRUE; if (asect == obj_datasec (abfd)) { @@ -742,31 +753,31 @@ MY (slurp_reloc_table) (abfd, asect, sym } bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; doit: if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; each_size = obj_reloc_entry_size (abfd); count = reloc_size / each_size; reloc_cache = (arelent *) bfd_zalloc (abfd, count * sizeof (arelent)); if (!reloc_cache && count != 0) - return false; + return FALSE; relocs = (PTR) bfd_alloc (abfd, reloc_size); if (!relocs && reloc_size != 0) { bfd_release (abfd, reloc_cache); - return false; + return FALSE; } if (bfd_bread (relocs, reloc_size, abfd) != reloc_size) { bfd_release (abfd, relocs); bfd_release (abfd, reloc_cache); - return false; + return FALSE; } rptr = (struct hp300hpux_reloc *) relocs; @@ -782,7 +793,7 @@ doit: bfd_release (abfd, relocs); asect->relocation = reloc_cache; asect->reloc_count = count; - return true; + return TRUE; } /************************************************************************/ @@ -791,12 +802,13 @@ doit: /* call aout_32 versions if the input file was generated by gcc */ /************************************************************************/ -long aout_32_get_symtab PARAMS ((bfd * abfd, asymbol ** location)); -long aout_32_get_symtab_upper_bound PARAMS ((bfd * abfd)); - -long aout_32_canonicalize_reloc PARAMS ((bfd * abfd, sec_ptr section, - arelent ** relptr, - asymbol ** symbols)); +long aout_32_get_symtab + PARAMS ((bfd * abfd, asymbol ** location)); +long aout_32_get_symtab_upper_bound + PARAMS ((bfd * abfd)); +long aout_32_canonicalize_reloc + PARAMS ((bfd * abfd, sec_ptr section, arelent ** relptr, + asymbol ** symbols)); long MY (get_symtab) (abfd, location) diff -uprN binutils-2.13.90.0.16/bfd/hppabsd-core.c binutils-2.13.90.0.18/bfd/hppabsd-core.c --- binutils-2.13.90.0.16/bfd/hppabsd-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/hppabsd-core.c Mon Dec 16 12:22:52 2002 @@ -48,15 +48,19 @@ #include /* After a.out.h */ #include -static asection *make_bfd_asection PARAMS ((bfd *, const char *, - flagword, bfd_size_type, - file_ptr, unsigned int)); -static const bfd_target *hppabsd_core_core_file_p PARAMS ((bfd *)); -static char *hppabsd_core_core_file_failing_command PARAMS ((bfd *)); -static int hppabsd_core_core_file_failing_signal PARAMS ((bfd *)); -static boolean hppabsd_core_core_file_matches_executable_p +static asection *make_bfd_asection + PARAMS ((bfd *, const char *, flagword, bfd_size_type, file_ptr, + unsigned int)); +static const bfd_target *hppabsd_core_core_file_p + PARAMS ((bfd *)); +static char *hppabsd_core_core_file_failing_command + PARAMS ((bfd *)); +static int hppabsd_core_core_file_failing_signal + PARAMS ((bfd *)); +static bfd_boolean hppabsd_core_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -static void swap_abort PARAMS ((void)); +static void swap_abort + PARAMS ((void)); /* These are stored in the bfd's tdata. */ @@ -218,12 +222,12 @@ hppabsd_core_core_file_failing_signal (a } /* ARGSUSED */ -static boolean +static bfd_boolean hppabsd_core_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd, *exec_bfd; { /* There's no way to know this... */ - return true; + return TRUE; } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/hpux-core.c binutils-2.13.90.0.18/bfd/hpux-core.c --- binutils-2.13.90.0.16/bfd/hpux-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/hpux-core.c Mon Dec 16 12:22:52 2002 @@ -103,12 +103,16 @@ struct hpux_core_struct static asection *make_bfd_asection PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, unsigned int)); -static const bfd_target *hpux_core_core_file_p PARAMS ((bfd *)); -static char *hpux_core_core_file_failing_command PARAMS ((bfd *)); -static int hpux_core_core_file_failing_signal PARAMS ((bfd *)); -static boolean hpux_core_core_file_matches_executable_p +static const bfd_target *hpux_core_core_file_p + PARAMS ((bfd *)); +static char *hpux_core_core_file_failing_command + PARAMS ((bfd *)); +static int hpux_core_core_file_failing_signal + PARAMS ((bfd *)); +static bfd_boolean hpux_core_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -static void swap_abort PARAMS ((void)); +static void swap_abort + PARAMS ((void)); static asection * make_bfd_asection (abfd, name, flags, _raw_size, vma, alignment_power) @@ -332,12 +336,12 @@ hpux_core_core_file_failing_signal (abfd } /* ARGSUSED */ -static boolean +static bfd_boolean hpux_core_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return true; /* FIXME, We have no way of telling at this point */ + return TRUE; /* FIXME, We have no way of telling at this point */ } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/i386aout.c binutils-2.13.90.0.18/bfd/i386aout.c --- binutils-2.13.90.0.16/bfd/i386aout.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/i386aout.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for i386 a.out binaries. - Copyright 1990, 1991, 1992, 1994, 1996, 1997, 2001 + Copyright 1990, 1991, 1992, 1994, 1996, 1997, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -54,12 +54,12 @@ Foundation, Inc., 59 Temple Place - Suit #include "aout/aout64.h" #include "libaout.h" -static boolean i386aout_write_object_contents PARAMS ((bfd *)); -static boolean MY (set_sizes) PARAMS ((bfd *)); +static bfd_boolean i386aout_write_object_contents PARAMS ((bfd *)); +static bfd_boolean MY (set_sizes) PARAMS ((bfd *)); /* Set the machine type correctly. */ -static boolean +static bfd_boolean i386aout_write_object_contents (abfd) bfd *abfd; { @@ -72,7 +72,7 @@ i386aout_write_object_contents (abfd) WRITE_HEADERS (abfd, execp); - return true; + return TRUE; } #define MY_write_object_contents i386aout_write_object_contents diff -uprN binutils-2.13.90.0.16/bfd/i386linux.c binutils-2.13.90.0.18/bfd/i386linux.c --- binutils-2.13.90.0.16/bfd/i386linux.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/i386linux.c Mon Dec 16 12:22:52 2002 @@ -51,11 +51,11 @@ extern const bfd_target MY(vec); static void MY_final_link_callback PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *)); -static boolean i386linux_bfd_final_link +static bfd_boolean i386linux_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); -static boolean i386linux_write_object_contents PARAMS ((bfd *)); +static bfd_boolean i386linux_write_object_contents PARAMS ((bfd *)); -static boolean +static bfd_boolean i386linux_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -68,7 +68,7 @@ i386linux_bfd_final_link (abfd, info) /* Set the machine type correctly. */ -static boolean +static bfd_boolean i386linux_write_object_contents (abfd) bfd *abfd; { @@ -81,7 +81,7 @@ i386linux_write_object_contents (abfd) WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } #define MY_write_object_contents i386linux_write_object_contents @@ -179,15 +179,15 @@ static struct bfd_link_hash_table *linux static struct fixup *new_fixup PARAMS ((struct bfd_link_info *, struct linux_link_hash_entry *, bfd_vma, int)); -static boolean linux_link_create_dynamic_sections +static bfd_boolean linux_link_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean linux_add_one_symbol +static bfd_boolean linux_add_one_symbol PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *, - bfd_vma, const char *, boolean, boolean, + bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **)); -static boolean linux_tally_symbols +static bfd_boolean linux_tally_symbols PARAMS ((struct linux_link_hash_entry *, PTR)); -static boolean linux_finish_dynamic_link +static bfd_boolean linux_finish_dynamic_link PARAMS ((bfd *, struct bfd_link_info *)); /* Routine to create an entry in an Linux link hash table. */ @@ -259,7 +259,7 @@ linux_link_hash_table_create (abfd) #define linux_link_hash_traverse(table, func, info) \ (aout_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ (info))) /* Get the Linux link hash table from the info structure. This is @@ -299,7 +299,7 @@ new_fixup (info, h, value, builtin) know the size of the section, but that's OK - we just need to create it for now. */ -static boolean +static bfd_boolean linux_link_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -316,18 +316,18 @@ linux_link_create_dynamic_sections (abfd if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; s->_raw_size = 0; s->contents = 0; - return true; + return TRUE; } /* Function to add a single symbol to the linker hash table. This is a wrapper around _bfd_generic_link_add_one_symbol which handles the tweaking needed for dynamic linking support. */ -static boolean +static bfd_boolean linux_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp) struct bfd_link_info *info; @@ -337,12 +337,12 @@ linux_add_one_symbol (info, abfd, name, asection *section; bfd_vma value; const char *string; - boolean copy; - boolean collect; + bfd_boolean copy; + bfd_boolean collect; struct bfd_link_hash_entry **hashp; { struct linux_link_hash_entry *h; - boolean insert; + bfd_boolean insert; /* Look up and see if we already have this symbol in the hash table. If we do, and the defining entry is from a shared library, we @@ -352,7 +352,7 @@ linux_add_one_symbol (info, abfd, name, be able to link Linux a.out and ELF objects together, but serious confusion is possible. */ - insert = false; + insert = FALSE; if (! info->relocateable && linux_hash_table (info)->dynobj == NULL @@ -361,16 +361,16 @@ linux_add_one_symbol (info, abfd, name, && abfd->xvec == info->hash->creator) { if (! linux_link_create_dynamic_sections (abfd, info)) - return false; + return FALSE; linux_hash_table (info)->dynobj = abfd; - insert = true; + insert = TRUE; } if (bfd_is_abs_section (section) && abfd->xvec == info->hash->creator) { - h = linux_link_hash_lookup (linux_hash_table (info), name, false, - false, false); + h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE, + FALSE, FALSE); if (h != NULL && (h->root.root.type == bfd_link_hash_defined || h->root.root.type == bfd_link_hash_defweak)) @@ -382,10 +382,10 @@ linux_add_one_symbol (info, abfd, name, f = new_fixup (info, h, value, ! IS_PLT_SYM (name)); if (f == NULL) - return false; + return FALSE; f->jump = IS_PLT_SYM (name); - return true; + return TRUE; } } @@ -393,7 +393,7 @@ linux_add_one_symbol (info, abfd, name, if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp)) - return false; + return FALSE; /* Insert a pointer to our table in the set vector. The dynamic linker requires this information */ @@ -410,11 +410,11 @@ linux_add_one_symbol (info, abfd, name, if (! (_bfd_generic_link_add_one_symbol (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS, BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL, - false, false, NULL))) - return false; + FALSE, FALSE, NULL))) + return FALSE; } - return true; + return TRUE; } /* We will crawl the hash table and come here for every global symbol. @@ -427,7 +427,7 @@ linux_add_one_symbol (info, abfd, name, This function is called via linux_link_hash_traverse. */ -static boolean +static bfd_boolean linux_tally_symbols (h, data) struct linux_link_hash_entry *h; PTR data; @@ -436,7 +436,7 @@ linux_tally_symbols (h, data) struct fixup *f, *f1; int is_plt; struct linux_link_hash_entry *h1, *h2; - boolean exists; + bfd_boolean exists; if (h->root.root.type == bfd_link_hash_warning) h = (struct linux_link_hash_entry *) h->root.root.u.i.link; @@ -482,12 +482,12 @@ linux_tally_symbols (h, data) h1 = linux_link_hash_lookup (linux_hash_table (info), (h->root.root.root.string + sizeof PLT_REF_PREFIX - 1), - false, false, true); + FALSE, FALSE, TRUE); /* h2 does not follow indirect symbols. */ h2 = linux_link_hash_lookup (linux_hash_table (info), (h->root.root.root.string + sizeof PLT_REF_PREFIX - 1), - false, false, false); + FALSE, FALSE, FALSE); /* The real symbol must exist but if it is also an ABS symbol, there is no need to have a fixup. This is because they both @@ -505,7 +505,7 @@ linux_tally_symbols (h, data) involving this symbol. If so, convert it to a regular fixup. In the end, this relaxes some of the requirements about the order of performing fixups. */ - exists = false; + exists = FALSE; for (f1 = linux_hash_table (info)->fixup_list; f1 != NULL; f1 = f1->next) @@ -514,7 +514,7 @@ linux_tally_symbols (h, data) || (! f1->builtin && ! f1->jump)) continue; if (f1->h == h1) - exists = true; + exists = TRUE; if (! exists && bfd_is_abs_section (h->root.root.u.def.section)) { @@ -524,7 +524,7 @@ linux_tally_symbols (h, data) f1->h = h1; f1->jump = is_plt; f1->builtin = 0; - exists = true; + exists = TRUE; } if (! exists && bfd_is_abs_section (h->root.root.u.def.section)) @@ -542,10 +542,10 @@ linux_tally_symbols (h, data) /* Quick and dirty way of stripping these symbols from the symtab. */ if (bfd_is_abs_section (h->root.root.u.def.section)) - h->root.written = true; + h->root.written = TRUE; } - return true; + return TRUE; } /* This is called to set the size of the .linux-dynamic section is. @@ -554,7 +554,7 @@ linux_tally_symbols (h, data) we just scan the hash tables to find out how many additional fixups are required. */ -boolean +bfd_boolean bfd_i386linux_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -563,7 +563,7 @@ bfd_i386linux_size_dynamic_sections (out asection *s; if (output_bfd->xvec != &MY(vec)) - return true; + return TRUE; /* First find the fixups... */ linux_link_hash_traverse (linux_hash_table (info), @@ -587,7 +587,7 @@ bfd_i386linux_size_dynamic_sections (out { if (linux_hash_table (info)->fixup_count > 0) abort (); - return true; + return TRUE; } /* Allocate memory for our fixup table. We will fill it in later. */ @@ -599,17 +599,17 @@ bfd_i386linux_size_dynamic_sections (out s->_raw_size *= 8; s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } - return true; + return TRUE; } /* We come here once we are ready to actually write the fixup table to the output file. Scan the fixup tables and so forth and generate the stuff we need. */ -static boolean +static bfd_boolean linux_finish_dynamic_link (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -623,7 +623,7 @@ linux_finish_dynamic_link (output_bfd, i unsigned int fixups_written; if (linux_hash_table (info)->dynobj == NULL) - return true; + return TRUE; s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, ".linux-dynamic"); @@ -739,7 +739,7 @@ linux_finish_dynamic_link (output_bfd, i h = linux_link_hash_lookup (linux_hash_table (info), "__BUILTIN_FIXUPS__", - false, false, false); + FALSE, FALSE, FALSE); if (h != NULL && (h->root.root.type == bfd_link_hash_defined @@ -760,12 +760,12 @@ linux_finish_dynamic_link (output_bfd, i if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset), SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd) != s->_raw_size) - return false; + return FALSE; - return true; + return TRUE; } #define MY_bfd_link_hash_table_create linux_link_hash_table_create diff -uprN binutils-2.13.90.0.16/bfd/i386lynx.c binutils-2.13.90.0.18/bfd/i386lynx.c --- binutils-2.13.90.0.16/bfd/i386lynx.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/i386lynx.c Mon Dec 16 12:22:52 2002 @@ -56,29 +56,29 @@ Foundation, Inc., 59 Temple Place - Suit if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 \ || bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \ abfd) != EXEC_BYTES_SIZE) \ - return false; \ + return FALSE; \ /* Now write out reloc info, followed by syms and strings */ \ \ if (bfd_get_symcount (abfd) != 0) \ { \ if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) \ != 0) \ - return false; \ + return FALSE; \ \ - if (! NAME(aout,write_syms) (abfd)) return false; \ + if (! NAME(aout,write_syms) (abfd)) return FALSE; \ \ if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET) \ != 0) \ - return false; \ + return FALSE; \ \ if (!NAME(lynx,squirt_out_relocs) (abfd, obj_textsec (abfd))) \ - return false; \ + return FALSE; \ if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET) \ != 0) \ return 0; \ \ if (!NAME(lynx,squirt_out_relocs) (abfd, obj_datasec (abfd))) \ - return false; \ + return FALSE; \ } \ } #endif @@ -86,19 +86,28 @@ Foundation, Inc., 59 Temple Place - Suit #include "libaout.h" #include "aout/aout64.h" -void NAME (lynx,swap_std_reloc_out) PARAMS ((bfd *, arelent *, struct reloc_std_external *)); -void NAME (lynx,swap_ext_reloc_out) PARAMS ((bfd *, arelent *, struct reloc_ext_external *)); -void NAME (lynx,swap_ext_reloc_in) PARAMS ((bfd *, struct reloc_ext_external *, arelent *, asymbol **, bfd_size_type)); -void NAME (lynx,swap_std_reloc_in) PARAMS ((bfd *, struct reloc_std_external *, arelent *, asymbol **, bfd_size_type)); -boolean NAME (lynx,slurp_reloc_table) PARAMS ((bfd *, sec_ptr, asymbol **)); -boolean NAME (lynx,squirt_out_relocs) PARAMS ((bfd *, asection *)); -long NAME (lynx,canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); +void NAME (lynx,swap_std_reloc_out) + PARAMS ((bfd *, arelent *, struct reloc_std_external *)); +void NAME (lynx,swap_ext_reloc_out) + PARAMS ((bfd *, arelent *, struct reloc_ext_external *)); +void NAME (lynx,swap_ext_reloc_in) + PARAMS ((bfd *, struct reloc_ext_external *, arelent *, asymbol **, + bfd_size_type)); +void NAME (lynx,swap_std_reloc_in) + PARAMS ((bfd *, struct reloc_std_external *, arelent *, asymbol **, + bfd_size_type)); +bfd_boolean NAME (lynx,slurp_reloc_table) + PARAMS ((bfd *, sec_ptr, asymbol **)); +bfd_boolean NAME (lynx,squirt_out_relocs) + PARAMS ((bfd *, asection *)); +long NAME (lynx,canonicalize_reloc) + PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); #ifdef LYNX_CORE char *lynx_core_file_failing_command (); int lynx_core_file_failing_signal (); -boolean lynx_core_file_matches_executable_p (); +bfd_boolean lynx_core_file_matches_executable_p (); const bfd_target *lynx_core_file_p (); #define MY_core_file_failing_command lynx_core_file_failing_command @@ -151,7 +160,7 @@ NAME(lynx,swap_std_reloc_out) (abfd, g, Absolute symbols can come in in two ways, either as an offset from the abs section, or as a symbol which has an abs value. check for that here - */ + */ if (bfd_is_com_section (output_section) @@ -161,7 +170,7 @@ NAME(lynx,swap_std_reloc_out) (abfd, g, if (bfd_abs_section_ptr->symbol == sym) { /* Whoops, looked like an abs symbol, but is really an offset - from the abs section */ + from the abs section */ r_index = 0; r_extern = 0; } @@ -388,7 +397,7 @@ NAME(lynx,swap_std_reloc_in) (abfd, byte /* Reloc hackery */ -boolean +bfd_boolean NAME(lynx,slurp_reloc_table) (abfd, asect, symbols) bfd *abfd; sec_ptr asect; @@ -401,10 +410,10 @@ NAME(lynx,slurp_reloc_table) (abfd, asec size_t each_size; if (asect->relocation) - return true; + return TRUE; if (asect->flags & SEC_CONSTRUCTOR) - return true; + return TRUE; if (asect == obj_datasec (abfd)) { @@ -419,11 +428,11 @@ NAME(lynx,slurp_reloc_table) (abfd, asec } bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; doit: if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; each_size = obj_reloc_entry_size (abfd); count = reloc_size / each_size; @@ -431,20 +440,20 @@ doit: reloc_cache = (arelent *) bfd_zmalloc (count * sizeof (arelent)); if (!reloc_cache && count != 0) - return false; + return FALSE; relocs = (PTR) bfd_alloc (abfd, reloc_size); if (!relocs && reloc_size != 0) { free (reloc_cache); - return false; + return FALSE; } if (bfd_bread (relocs, reloc_size, abfd) != reloc_size) { bfd_release (abfd, relocs); free (reloc_cache); - return false; + return FALSE; } if (each_size == RELOC_EXT_SIZE) @@ -476,14 +485,14 @@ doit: bfd_release (abfd, relocs); asect->relocation = reloc_cache; asect->reloc_count = count; - return true; + return TRUE; } /* Write out a relocation section into an object file. */ -boolean +bfd_boolean NAME(lynx,squirt_out_relocs) (abfd, section) bfd *abfd; asection *section; @@ -496,14 +505,14 @@ NAME(lynx,squirt_out_relocs) (abfd, sect bfd_size_type natsize; if (count == 0) - return true; + return TRUE; each_size = obj_reloc_entry_size (abfd); natsize = count; natsize *= each_size; native = (unsigned char *) bfd_zalloc (abfd, natsize); if (!native) - return false; + return FALSE; generic = section->orelocation; @@ -525,11 +534,11 @@ NAME(lynx,squirt_out_relocs) (abfd, sect if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize) { bfd_release (abfd, native); - return false; + return FALSE; } bfd_release (abfd, native); - return true; + return TRUE; } /* This is stupid. This function should be a boolean predicate */ diff -uprN binutils-2.13.90.0.16/bfd/i386mach3.c binutils-2.13.90.0.18/bfd/i386mach3.c --- binutils-2.13.90.0.16/bfd/i386mach3.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/i386mach3.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for i386 a.out binaries. - Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2001 + Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -50,7 +50,7 @@ Foundation, Inc., 59 Temple Place - Suit #define MY(OP) CONCAT2 (i386mach3_,OP) #define TARGETNAME "a.out-mach3" -static boolean MY (set_sizes) PARAMS ((bfd *)); +static bfd_boolean MY (set_sizes) PARAMS ((bfd *)); #define MY_backend_data &MY(backend_data) static const struct aout_backend_data MY(backend_data) = { 0, /* zmagic contiguous */ diff -uprN binutils-2.13.90.0.16/bfd/i386msdos.c binutils-2.13.90.0.18/bfd/i386msdos.c --- binutils-2.13.90.0.16/bfd/i386msdos.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/i386msdos.c Mon Dec 16 12:22:52 2002 @@ -56,19 +56,22 @@ struct exe_header #define EXE_LOAD_LOW 0xffff #define EXE_PAGE_SIZE 512 -static int msdos_sizeof_headers PARAMS ((bfd *, boolean)); -static boolean msdos_write_object_contents PARAMS ((bfd *)); -static boolean msdos_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); +static int msdos_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean msdos_write_object_contents + PARAMS ((bfd *)); +static bfd_boolean msdos_set_section_contents + PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); static int msdos_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } -static boolean +static bfd_boolean msdos_write_object_contents (abfd) bfd *abfd; { @@ -103,7 +106,7 @@ msdos_write_object_contents (abfd) if (high_vma > (bfd_vma)0xffff) { bfd_set_error(bfd_error_file_too_big); - return false; + return FALSE; } /* Constants. */ @@ -127,12 +130,12 @@ msdos_write_object_contents (abfd) if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 || bfd_bwrite (hdr, (bfd_size_type) sizeof(hdr), abfd) != sizeof(hdr)) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean msdos_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -142,7 +145,7 @@ msdos_set_section_contents (abfd, sectio { if (count == 0) - return true; + return TRUE; section->filepos = EXE_PAGE_SIZE + bfd_get_section_vma (abfd, section); @@ -150,10 +153,10 @@ msdos_set_section_contents (abfd, sectio { if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0 || bfd_bwrite (location, count, abfd) != count) - return false; + return FALSE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/i386os9k.c binutils-2.13.90.0.18/bfd/i386os9k.c --- binutils-2.13.90.0.16/bfd/i386os9k.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/i386os9k.c Mon Dec 16 12:22:52 2002 @@ -27,14 +27,18 @@ Foundation, Inc., 59 Temple Place - Suit #include "libaout.h" /* BFD a.out internal data structures */ #include "os9k.h" -static const bfd_target * os9k_callback PARAMS ((bfd *)); -static const bfd_target * os9k_object_p PARAMS ((bfd *)); -static int os9k_sizeof_headers PARAMS ((bfd *, boolean)); -boolean os9k_swap_exec_header_in PARAMS ((bfd *, mh_com *, struct internal_exec *)); +static const bfd_target * os9k_callback + PARAMS ((bfd *)); +static const bfd_target * os9k_object_p + PARAMS ((bfd *)); +static int os9k_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +bfd_boolean os9k_swap_exec_header_in + PARAMS ((bfd *, mh_com *, struct internal_exec *)); /* Swaps the information in an executable header taken from a raw byte stream memory image, into the internal exec_header structure. */ -boolean +bfd_boolean os9k_swap_exec_header_in (abfd, raw_bytes, execp) bfd *abfd; mh_com *raw_bytes; @@ -59,7 +63,7 @@ os9k_swap_exec_header_in (abfd, raw_byte != sizeof (dmemstart)) || (bfd_bread (&dmemsize, (bfd_size_type) sizeof (dmemsize), abfd) != sizeof (dmemsize))) - return false; + return FALSE; execp->a_tload = 0; execp->a_dload = H_GET_32 (abfd, (unsigned char *) &dmemstart); @@ -70,7 +74,7 @@ os9k_swap_exec_header_in (abfd, raw_byte execp->a_trsize = 0; execp->a_drsize = 0; - return true; + return TRUE; } #if 0 @@ -193,7 +197,7 @@ struct bout_data_struct struct internal_exec e; }; -static boolean +static bfd_boolean os9k_mkobject (abfd) bfd *abfd; { @@ -202,7 +206,7 @@ os9k_mkobject (abfd) rawptr = (struct bout_data_struct *) bfd_zalloc (abfd, amt); if (rawptr == NULL) - return false; + return FALSE; abfd->tdata.bout_data = rawptr; exec_hdr (abfd) = &rawptr->e; @@ -211,17 +215,17 @@ os9k_mkobject (abfd) obj_datasec (abfd) = (asection *) NULL; obj_bsssec (abfd) = (asection *) NULL; - return true; + return TRUE; } -static boolean +static bfd_boolean os9k_write_object_contents (abfd) bfd *abfd; { struct external_exec swapped_hdr; if (! aout_32_make_sections (abfd)) - return false; + return FALSE; exec_hdr (abfd)->a_info = BMAGIC; @@ -247,35 +251,35 @@ os9k_write_object_contents (abfd) if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 || bfd_bwrite ((PTR) & swapped_hdr, (bfd_size_type) EXEC_BYTES_SIZE, abfd) != EXEC_BYTES_SIZE) - return false; + return FALSE; /* Now write out reloc info, followed by syms and strings. */ if (bfd_get_symcount (abfd) != 0) { if (bfd_seek (abfd, (file_ptr) (N_SYMOFF (*exec_hdr (abfd))), SEEK_SET) != 0) - return false; + return FALSE; if (!aout_32_write_syms (abfd)) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_TROFF (*exec_hdr (abfd))), SEEK_SET) != 0) - return false; + return FALSE; if (!b_out_squirt_out_relocs (abfd, obj_textsec (abfd))) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_DROFF (*exec_hdr (abfd))), SEEK_SET) != 0) - return false; + return FALSE; if (!b_out_squirt_out_relocs (abfd, obj_datasec (abfd))) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean os9k_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -287,7 +291,7 @@ os9k_set_section_contents (abfd, section if (! abfd->output_has_begun) { /* set by bfd.c handler */ if (! aout_32_make_sections (abfd)) - return false; + return FALSE; obj_textsec (abfd)->filepos = sizeof (struct internal_exec); obj_datasec (abfd)->filepos = obj_textsec (abfd)->filepos @@ -296,19 +300,19 @@ os9k_set_section_contents (abfd, section } /* Regardless, once we know what we're doing, we might as well get going. */ if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0) - return false; + return FALSE; if (count != 0) return bfd_bwrite ((PTR) location, (bfd_size_type) count, abfd) == count; - return true; + return TRUE; } #endif /* 0 */ static int os9k_sizeof_headers (ignore_abfd, ignore) bfd *ignore_abfd ATTRIBUTE_UNUSED; - boolean ignore ATTRIBUTE_UNUSED; + bfd_boolean ignore ATTRIBUTE_UNUSED; { return sizeof (struct internal_exec); } diff -uprN binutils-2.13.90.0.16/bfd/ieee.c binutils-2.13.90.0.18/bfd/ieee.c --- binutils-2.13.90.0.16/bfd/ieee.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/bfd/ieee.c Mon Dec 16 12:22:52 2002 @@ -40,93 +40,151 @@ struct output_buffer_struct int buffer; }; -static boolean ieee_write_byte PARAMS ((bfd *, int)); -static boolean ieee_write_2bytes PARAMS ((bfd *, int)); -static boolean ieee_write_int PARAMS ((bfd *, bfd_vma)); -static boolean ieee_write_id PARAMS ((bfd *, const char *)); -static unsigned short read_2bytes PARAMS ((common_header_type *)); -static void bfd_get_string PARAMS ((common_header_type *, char *, size_t)); -static char *read_id PARAMS ((common_header_type *)); -static boolean ieee_write_expression - PARAMS ((bfd *, bfd_vma, asymbol *, boolean, unsigned int)); -static void ieee_write_int5 PARAMS ((bfd_byte *, bfd_vma)); -static boolean ieee_write_int5_out PARAMS ((bfd *, bfd_vma)); -static boolean parse_int PARAMS ((common_header_type *, bfd_vma *)); -static int parse_i PARAMS ((common_header_type *, boolean *)); -static bfd_vma must_parse_int PARAMS ((common_header_type *)); +static bfd_boolean ieee_write_byte + PARAMS ((bfd *, int)); +static bfd_boolean ieee_write_2bytes + PARAMS ((bfd *, int)); +static bfd_boolean ieee_write_int + PARAMS ((bfd *, bfd_vma)); +static bfd_boolean ieee_write_id + PARAMS ((bfd *, const char *)); +static unsigned short read_2bytes + PARAMS ((common_header_type *)); +static void bfd_get_string + PARAMS ((common_header_type *, char *, size_t)); +static char *read_id + PARAMS ((common_header_type *)); +static bfd_boolean ieee_write_expression + PARAMS ((bfd *, bfd_vma, asymbol *, bfd_boolean, unsigned int)); +static void ieee_write_int5 + PARAMS ((bfd_byte *, bfd_vma)); +static bfd_boolean ieee_write_int5_out + PARAMS ((bfd *, bfd_vma)); +static bfd_boolean parse_int + PARAMS ((common_header_type *, bfd_vma *)); +static int parse_i + PARAMS ((common_header_type *, bfd_boolean *)); +static bfd_vma must_parse_int + PARAMS ((common_header_type *)); static void parse_expression PARAMS ((ieee_data_type *, bfd_vma *, ieee_symbol_index_type *, - boolean *, unsigned int *, asection **)); -static file_ptr ieee_part_after PARAMS ((ieee_data_type *, file_ptr)); + bfd_boolean *, unsigned int *, asection **)); +static file_ptr ieee_part_after + PARAMS ((ieee_data_type *, file_ptr)); static ieee_symbol_type *get_symbol PARAMS ((bfd *, ieee_data_type *, ieee_symbol_type *, unsigned int *, ieee_symbol_type ***, unsigned int *, int)); -static boolean ieee_slurp_external_symbols PARAMS ((bfd *)); -static boolean ieee_slurp_symbol_table PARAMS ((bfd *)); -static long ieee_get_symtab_upper_bound PARAMS ((bfd *)); -static long ieee_get_symtab PARAMS ((bfd *, asymbol **)); +static bfd_boolean ieee_slurp_external_symbols + PARAMS ((bfd *)); +static bfd_boolean ieee_slurp_symbol_table + PARAMS ((bfd *)); +static long ieee_get_symtab_upper_bound + PARAMS ((bfd *)); +static long ieee_get_symtab + PARAMS ((bfd *, asymbol **)); static asection *get_section_entry PARAMS ((bfd *, ieee_data_type *i, unsigned int)); -static void ieee_slurp_sections PARAMS ((bfd *)); -static boolean ieee_slurp_debug PARAMS ((bfd *)); -const bfd_target *ieee_archive_p PARAMS ((bfd *)); -const bfd_target *ieee_object_p PARAMS ((bfd *)); -static void ieee_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); +static void ieee_slurp_sections + PARAMS ((bfd *)); +static bfd_boolean ieee_slurp_debug + PARAMS ((bfd *)); +const bfd_target *ieee_archive_p + PARAMS ((bfd *)); +const bfd_target *ieee_object_p + PARAMS ((bfd *)); +static void ieee_get_symbol_info + PARAMS ((bfd *, asymbol *, symbol_info *)); static void ieee_print_symbol PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); -static boolean do_one +static bfd_boolean do_one PARAMS ((ieee_data_type *, ieee_per_section_type *, unsigned char *, asection *, int)); -static boolean ieee_slurp_section_data PARAMS ((bfd *)); -static boolean ieee_new_section_hook PARAMS ((bfd *, asection *)); -static long ieee_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr)); -static boolean ieee_get_section_contents +static bfd_boolean ieee_slurp_section_data + PARAMS ((bfd *)); +static bfd_boolean ieee_new_section_hook + PARAMS ((bfd *, asection *)); +static long ieee_get_reloc_upper_bound + PARAMS ((bfd *, sec_ptr)); +static bfd_boolean ieee_get_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); static long ieee_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); -static int comp PARAMS ((const PTR, const PTR)); -static boolean ieee_write_section_part PARAMS ((bfd *)); -static boolean do_with_relocs PARAMS ((bfd *, asection *)); -static boolean do_as_repeat PARAMS ((bfd *, asection *)); -static boolean do_without_relocs PARAMS ((bfd *, asection *)); -static boolean ieee_mkobject PARAMS ((bfd *)); -static void fill PARAMS ((void)); -static void flush PARAMS ((void)); -static void write_int PARAMS ((int)); -static void copy_id PARAMS ((void)); -static void copy_expression PARAMS ((void)); -static void fill_int PARAMS ((struct output_buffer_struct *)); -static void drop_int PARAMS ((struct output_buffer_struct *)); -static void copy_int PARAMS ((void)); -static void f1_record PARAMS ((void)); -static void f0_record PARAMS ((void)); -static void copy_till_end PARAMS ((void)); -static void f2_record PARAMS ((void)); -static void f8_record PARAMS ((void)); -static void e2_record PARAMS ((void)); -static void block PARAMS ((void)); -static void relocate_debug PARAMS ((bfd *, bfd *)); -static boolean ieee_write_debug_part PARAMS ((bfd *)); -static boolean ieee_write_data_part PARAMS ((bfd *)); -static boolean init_for_output PARAMS ((bfd *)); -static boolean ieee_set_section_contents +static int comp + PARAMS ((const PTR, const PTR)); +static bfd_boolean ieee_write_section_part + PARAMS ((bfd *)); +static bfd_boolean do_with_relocs + PARAMS ((bfd *, asection *)); +static bfd_boolean do_as_repeat + PARAMS ((bfd *, asection *)); +static bfd_boolean do_without_relocs + PARAMS ((bfd *, asection *)); +static bfd_boolean ieee_mkobject + PARAMS ((bfd *)); +static void fill + PARAMS ((void)); +static void flush + PARAMS ((void)); +static void write_int + PARAMS ((int)); +static void copy_id + PARAMS ((void)); +static void copy_expression + PARAMS ((void)); +static void fill_int + PARAMS ((struct output_buffer_struct *)); +static void drop_int + PARAMS ((struct output_buffer_struct *)); +static void copy_int + PARAMS ((void)); +static void f1_record + PARAMS ((void)); +static void f0_record + PARAMS ((void)); +static void copy_till_end + PARAMS ((void)); +static void f2_record + PARAMS ((void)); +static void f8_record + PARAMS ((void)); +static void e2_record + PARAMS ((void)); +static void block + PARAMS ((void)); +static void relocate_debug + PARAMS ((bfd *, bfd *)); +static bfd_boolean ieee_write_debug_part + PARAMS ((bfd *)); +static bfd_boolean ieee_write_data_part + PARAMS ((bfd *)); +static bfd_boolean init_for_output + PARAMS ((bfd *)); +static bfd_boolean ieee_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); -static boolean ieee_write_external_part PARAMS ((bfd *)); -static boolean ieee_write_me_part PARAMS ((bfd *)); -static boolean ieee_write_processor PARAMS ((bfd *)); -static boolean ieee_write_object_contents PARAMS ((bfd *)); -static asymbol *ieee_make_empty_symbol PARAMS ((bfd *)); -static bfd *ieee_openr_next_archived_file PARAMS ((bfd *, bfd *)); -static boolean ieee_find_nearest_line +static bfd_boolean ieee_write_external_part + PARAMS ((bfd *)); +static bfd_boolean ieee_write_me_part + PARAMS ((bfd *)); +static bfd_boolean ieee_write_processor + PARAMS ((bfd *)); +static bfd_boolean ieee_write_object_contents + PARAMS ((bfd *)); +static asymbol *ieee_make_empty_symbol + PARAMS ((bfd *)); +static bfd *ieee_openr_next_archived_file + PARAMS ((bfd *, bfd *)); +static bfd_boolean ieee_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); -static int ieee_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); -static int ieee_sizeof_headers PARAMS ((bfd *, boolean)); +static int ieee_generic_stat_arch_elt + PARAMS ((bfd *, struct stat *)); +static int ieee_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); /* Functions for writing to ieee files in the strange way that the standard requires. */ -static boolean +static bfd_boolean ieee_write_byte (abfd, barg) bfd *abfd; int barg; @@ -135,11 +193,11 @@ ieee_write_byte (abfd, barg) byte = barg; if (bfd_bwrite ((PTR) &byte, (bfd_size_type) 1, abfd) != 1) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean ieee_write_2bytes (abfd, bytes) bfd *abfd; int bytes; @@ -149,11 +207,11 @@ ieee_write_2bytes (abfd, bytes) buffer[0] = bytes >> 8; buffer[1] = bytes & 0xff; if (bfd_bwrite ((PTR) buffer, (bfd_size_type) 2, abfd) != 2) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean ieee_write_int (abfd, value) bfd *abfd; bfd_vma value; @@ -161,7 +219,7 @@ ieee_write_int (abfd, value) if (value <= 127) { if (! ieee_write_byte (abfd, (bfd_byte) value)) - return false; + return FALSE; } else { @@ -181,31 +239,31 @@ ieee_write_int (abfd, value) if (! ieee_write_byte (abfd, (bfd_byte) ((int) ieee_number_repeat_start_enum + length))) - return false; + return FALSE; switch (length) { case 4: if (! ieee_write_byte (abfd, (bfd_byte) (value >> 24))) - return false; + return FALSE; /* Fall through. */ case 3: if (! ieee_write_byte (abfd, (bfd_byte) (value >> 16))) - return false; + return FALSE; /* Fall through. */ case 2: if (! ieee_write_byte (abfd, (bfd_byte) (value >> 8))) - return false; + return FALSE; /* Fall through. */ case 1: if (! ieee_write_byte (abfd, (bfd_byte) (value))) - return false; + return FALSE; } } - return true; + return TRUE; } -static boolean +static bfd_boolean ieee_write_id (abfd, id) bfd *abfd; const char *id; @@ -215,19 +273,19 @@ ieee_write_id (abfd, id) if (length <= 127) { if (! ieee_write_byte (abfd, (bfd_byte) length)) - return false; + return FALSE; } else if (length < 255) { if (! ieee_write_byte (abfd, ieee_extension_length_1_enum) || ! ieee_write_byte (abfd, (bfd_byte) length)) - return false; + return FALSE; } else if (length < 65535) { if (! ieee_write_byte (abfd, ieee_extension_length_2_enum) || ! ieee_write_2bytes (abfd, (int) length)) - return false; + return FALSE; } else { @@ -235,12 +293,12 @@ ieee_write_id (abfd, id) (_("%s: string too long (%d chars, max 65535)"), bfd_get_filename (abfd), length); bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (bfd_bwrite ((PTR) id, (bfd_size_type) length, abfd) != length) - return false; - return true; + return FALSE; + return TRUE; } /*************************************************************************** @@ -305,12 +363,12 @@ read_id (ieee) return string; } -static boolean +static bfd_boolean ieee_write_expression (abfd, value, symbol, pcrel, index) bfd *abfd; bfd_vma value; asymbol *symbol; - boolean pcrel; + bfd_boolean pcrel; unsigned int index; { unsigned int term_count = 0; @@ -318,7 +376,7 @@ ieee_write_expression (abfd, value, symb if (value != 0) { if (! ieee_write_int (abfd, value)) - return false; + return FALSE; term_count++; } @@ -328,7 +386,7 @@ ieee_write_expression (abfd, value, symb /* Def of a common symbol */ if (! ieee_write_byte (abfd, ieee_variable_X_enum) || ! ieee_write_int (abfd, symbol->value)) - return false; + return FALSE; term_count++; } else if (! bfd_is_abs_section (symbol->section)) @@ -339,7 +397,7 @@ ieee_write_expression (abfd, value, symb { if (! ieee_write_byte (abfd, ieee_variable_I_enum) || ! ieee_write_int (abfd, symbol->value)) - return false; + return FALSE; term_count++; } else if (symbol->flags & (BSF_LOCAL | BSF_SECTION_SYM)) @@ -350,12 +408,12 @@ ieee_write_expression (abfd, value, symb || ! ieee_write_byte (abfd, (bfd_byte) (symbol->section->index + IEEE_SECTION_NUMBER_BASE))) - return false; + return FALSE; term_count++; if (symbol->value != 0) { if (! ieee_write_int (abfd, symbol->value)) - return false; + return FALSE; term_count++; } } @@ -366,7 +424,7 @@ ieee_write_expression (abfd, value, symb bfd_get_filename (abfd), bfd_asymbol_name (symbol), symbol->flags); bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } } @@ -377,24 +435,24 @@ ieee_write_expression (abfd, value, symb || ! ieee_write_byte (abfd, (bfd_byte) (index + IEEE_SECTION_NUMBER_BASE)) || ! ieee_write_byte (abfd, ieee_function_minus_enum)) - return false; + return FALSE; } /* Handle the degenerate case of a 0 address. */ if (term_count == 0) { if (! ieee_write_int (abfd, (bfd_vma) 0)) - return false; + return FALSE; } while (term_count > 1) { if (! ieee_write_byte (abfd, ieee_function_plus_enum)) - return false; + return FALSE; term_count--; } - return true; + return TRUE; } /*****************************************************************************/ @@ -414,7 +472,7 @@ ieee_write_int5 (buffer, value) buffer[4] = (value >> 0) & 0xff; } -static boolean +static bfd_boolean ieee_write_int5_out (abfd, value) bfd *abfd; bfd_vma value; @@ -423,11 +481,11 @@ ieee_write_int5_out (abfd, value) ieee_write_int5 (b, value); if (bfd_bwrite ((PTR) b, (bfd_size_type) 5, abfd) != 5) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean parse_int (ieee, value_ptr) common_header_type *ieee; bfd_vma *value_ptr; @@ -438,7 +496,7 @@ parse_int (ieee, value_ptr) { *value_ptr = value; next_byte (ieee); - return true; + return TRUE; } else if (value >= 0x80 && value <= 0x88) { @@ -451,15 +509,15 @@ parse_int (ieee, value_ptr) count--; } *value_ptr = result; - return true; + return TRUE; } - return false; + return FALSE; } static int parse_i (ieee, ok) common_header_type *ieee; - boolean *ok; + bfd_boolean *ok; { bfd_vma x; *ok = parse_int (ieee, &x); @@ -486,12 +544,12 @@ typedef struct #if KEEPMINUSPCININST #define SRC_MASK(arg) arg -#define PCREL_OFFSET false +#define PCREL_OFFSET FALSE #else #define SRC_MASK(arg) 0 -#define PCREL_OFFSET true +#define PCREL_OFFSET TRUE #endif @@ -500,57 +558,57 @@ static reloc_howto_type abs32_howto = 0, 2, 32, - false, + FALSE, 0, complain_overflow_bitfield, 0, "abs32", - true, + TRUE, 0xffffffff, 0xffffffff, - false); + FALSE); static reloc_howto_type abs16_howto = HOWTO (1, 0, 1, 16, - false, + FALSE, 0, complain_overflow_bitfield, 0, "abs16", - true, + TRUE, 0x0000ffff, 0x0000ffff, - false); + FALSE); static reloc_howto_type abs8_howto = HOWTO (1, 0, 0, 8, - false, + FALSE, 0, complain_overflow_bitfield, 0, "abs8", - true, + TRUE, 0x000000ff, 0x000000ff, - false); + FALSE); static reloc_howto_type rel32_howto = HOWTO (1, 0, 2, 32, - true, + TRUE, 0, complain_overflow_signed, 0, "rel32", - true, + TRUE, SRC_MASK (0xffffffff), 0xffffffff, PCREL_OFFSET); @@ -560,12 +618,12 @@ static reloc_howto_type rel16_howto = 0, 1, 16, - true, + TRUE, 0, complain_overflow_signed, 0, "rel16", - true, + TRUE, SRC_MASK (0x0000ffff), 0x0000ffff, PCREL_OFFSET); @@ -575,12 +633,12 @@ static reloc_howto_type rel8_howto = 0, 0, 8, - true, + TRUE, 0, complain_overflow_signed, 0, "rel8", - true, + TRUE, SRC_MASK (0x000000ff), 0x000000ff, PCREL_OFFSET); @@ -592,7 +650,7 @@ parse_expression (ieee, value, symbol, p ieee_data_type *ieee; bfd_vma *value; ieee_symbol_index_type *symbol; - boolean *pcrel; + bfd_boolean *pcrel; unsigned int *extra; asection **section; @@ -603,7 +661,7 @@ parse_expression (ieee, value, symbol, p #define INC sp++; #define DEC sp--; - boolean loop = true; + bfd_boolean loop = TRUE; ieee_value_type stack[10]; /* The stack pointer always points to the next unused location */ @@ -621,7 +679,7 @@ parse_expression (ieee, value, symbol, p { int section_n; next_byte (&(ieee->h)); - *pcrel = true; + *pcrel = TRUE; section_n = must_parse_int (&(ieee->h)); PUSH (NOSYMBOL, bfd_abs_section_ptr, 0); break; @@ -706,7 +764,7 @@ parse_expression (ieee, value, symbol, p else { /* Thats all that we can understand. */ - loop = false; + loop = FALSE; } } } @@ -803,7 +861,7 @@ get_symbol (abfd, ieee, last_symbol, sym return last_symbol; } -static boolean +static bfd_boolean ieee_slurp_external_symbols (abfd) bfd *abfd; { @@ -814,9 +872,9 @@ ieee_slurp_external_symbols (abfd) ieee_symbol_type **prev_reference_ptr = &ieee->external_reference; ieee_symbol_type *symbol = (ieee_symbol_type *) NULL; unsigned int symbol_count = 0; - boolean loop = true; + bfd_boolean loop = TRUE; last_index = 0xffffff; - ieee->symbol_table_full = true; + ieee->symbol_table_full = TRUE; ieee_seek (ieee, offset); @@ -831,7 +889,7 @@ ieee_slurp_external_symbols (abfd) &prev_symbols_ptr, &ieee->external_symbol_max_index, 'I'); if (symbol == NULL) - return false; + return FALSE; symbol->symbol.the_bfd = abfd; symbol->symbol.name = read_id (&(ieee->h)); @@ -845,7 +903,7 @@ ieee_slurp_external_symbols (abfd) &prev_symbols_ptr, &ieee->external_symbol_max_index, 'D'); if (symbol == NULL) - return false; + return FALSE; BFD_ASSERT (symbol->index >= ieee->external_symbol_min_index); @@ -878,7 +936,7 @@ ieee_slurp_external_symbols (abfd) bfd_archive_filename (abfd), symbol_attribute_def, symbol_name_index); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; break; } break; @@ -902,7 +960,7 @@ ieee_slurp_external_symbols (abfd) (_("%s: unexpected ATN type %d in external part"), bfd_archive_filename (abfd), (int) value); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } parse_int (&ieee->h, &value); parse_int (&ieee->h, &value); @@ -924,7 +982,7 @@ ieee_slurp_external_symbols (abfd) (_("%s: unexpected type after ATN"), bfd_archive_filename (abfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } } @@ -934,7 +992,7 @@ ieee_slurp_external_symbols (abfd) { unsigned int symbol_name_index; ieee_symbol_index_type symbol_ignore; - boolean pcrel_ignore; + bfd_boolean pcrel_ignore; unsigned int extra; next_byte (&(ieee->h)); next_byte (&(ieee->h)); @@ -1000,7 +1058,7 @@ ieee_slurp_external_symbols (abfd) &prev_reference_ptr, &ieee->external_reference_max_index, 'X'); if (symbol == NULL) - return false; + return FALSE; symbol->symbol.the_bfd = abfd; symbol->symbol.name = read_id (&(ieee->h)); @@ -1013,7 +1071,7 @@ ieee_slurp_external_symbols (abfd) break; default: - loop = false; + loop = FALSE; } } @@ -1045,26 +1103,26 @@ ieee_slurp_external_symbols (abfd) if (symbol_count != abfd->symcount) { /* There are gaps in the table -- */ - ieee->symbol_table_full = false; + ieee->symbol_table_full = FALSE; } *prev_symbols_ptr = (ieee_symbol_type *) NULL; *prev_reference_ptr = (ieee_symbol_type *) NULL; - return true; + return TRUE; } -static boolean +static bfd_boolean ieee_slurp_symbol_table (abfd) bfd *abfd; { if (! IEEE_DATA (abfd)->read_symbols) { if (! ieee_slurp_external_symbols (abfd)) - return false; - IEEE_DATA (abfd)->read_symbols = true; + return FALSE; + IEEE_DATA (abfd)->read_symbols = TRUE; } - return true; + return TRUE; } static long @@ -1212,7 +1270,7 @@ ieee_slurp_sections (abfd) { bfd_byte section_type[3]; ieee_seek (ieee, offset); - while (true) + while (TRUE) { switch (this_byte (&(ieee->h))) { @@ -1371,7 +1429,7 @@ ieee_slurp_sections (abfd) at the area in the file so that program which understand can dig it out. */ -static boolean +static bfd_boolean ieee_slurp_debug (abfd) bfd *abfd; { @@ -1380,18 +1438,18 @@ ieee_slurp_debug (abfd) file_ptr debug_end; if (ieee->w.r.debug_information_part == 0) - return true; + return TRUE; sec = bfd_make_section (abfd, ".debug"); if (sec == NULL) - return false; + return FALSE; sec->flags |= SEC_DEBUGGING | SEC_HAS_CONTENTS; sec->filepos = ieee->w.r.debug_information_part; debug_end = ieee_part_after (ieee, ieee->w.r.debug_information_part); sec->_raw_size = debug_end - ieee->w.r.debug_information_part; - return true; + return TRUE; } /*********************************************************************** @@ -1566,8 +1624,8 @@ ieee_object_p (abfd) if (this_byte_and_next (&(ieee->h)) != Module_Beginning) goto got_wrong_format; - ieee->read_symbols = false; - ieee->read_data = false; + ieee->read_symbols = FALSE; + ieee->read_data = FALSE; ieee->section_count = 0; ieee->external_symbol_max_index = 0; ieee->external_symbol_min_index = IEEE_PUBLIC_BASE; @@ -1679,7 +1737,7 @@ ieee_object_p (abfd) for (part = 0; part < N_W_VARIABLES; part++) { - boolean ok; + bfd_boolean ok; if (read_2bytes (&(ieee->h)) != (int) ieee_assign_value_to_variable_enum) { goto fail; @@ -1796,7 +1854,7 @@ ieee_print_symbol (abfd, afile, symbol, } } -static boolean +static bfd_boolean do_one (ieee, current_map, location_ptr, s, iterations) ieee_data_type *ieee; ieee_per_section_type *current_map; @@ -1823,7 +1881,7 @@ do_one (ieee, current_map, location_ptr, case ieee_load_with_relocation_enum: { - boolean loop = true; + bfd_boolean loop = TRUE; next_byte (&(ieee->h)); while (loop) { @@ -1836,14 +1894,14 @@ do_one (ieee, current_map, location_ptr, case ieee_function_either_open_b_enum: { unsigned int extra = 4; - boolean pcrel = false; + bfd_boolean pcrel = FALSE; asection *section; ieee_reloc_type *r; bfd_size_type amt = sizeof (ieee_reloc_type); r = (ieee_reloc_type *) bfd_alloc (ieee->h.abfd, amt); if (!r) - return false; + return FALSE; *(current_map->reloc_tail_ptr) = r; current_map->reloc_tail_ptr = &r->next; @@ -1962,7 +2020,7 @@ do_one (ieee, current_map, location_ptr, default: BFD_FAIL (); - return false; + return FALSE; } } break; @@ -1980,7 +2038,7 @@ do_one (ieee, current_map, location_ptr, } else { - loop = false; + loop = FALSE; } } } @@ -1988,15 +2046,15 @@ do_one (ieee, current_map, location_ptr, /* Prevent more than the first load-item of an LR record from being repeated (MRI convention). */ if (iterations != 1) - loop = false; + loop = FALSE; } } } - return true; + return TRUE; } /* Read in all the section data and relocation stuff too */ -static boolean +static bfd_boolean ieee_slurp_section_data (abfd) bfd *abfd; { @@ -2008,8 +2066,8 @@ ieee_slurp_section_data (abfd) asection *s; /* Seek to the start of the data area */ if (ieee->read_data) - return true; - ieee->read_data = true; + return TRUE; + ieee->read_data = TRUE; ieee_seek (ieee, ieee->w.r.data_part); /* Allocate enough space for all the section contents */ @@ -2021,19 +2079,19 @@ ieee_slurp_section_data (abfd) continue; per->data = (bfd_byte *) bfd_alloc (ieee->h.abfd, s->_raw_size); if (!per->data) - return false; + return FALSE; /*SUPPRESS 68*/ per->reloc_tail_ptr = (ieee_reloc_type **) & (s->relocation); } - while (true) + while (TRUE) { switch (this_byte (&(ieee->h))) { /* IF we see anything strange then quit */ default: - return true; + return TRUE; case ieee_set_current_section_enum: next_byte (&(ieee->h)); @@ -2057,7 +2115,7 @@ ieee_slurp_section_data (abfd) bfd_vma value; ieee_symbol_index_type symbol; unsigned int extra; - boolean pcrel; + bfd_boolean pcrel; next_byte (&(ieee->h)); must_parse_int (&(ieee->h)); /* Throw away section #*/ parse_expression (ieee, &value, @@ -2075,10 +2133,10 @@ ieee_slurp_section_data (abfd) next_byte (&(ieee->h)); abfd->start_address = must_parse_int (&(ieee->h)); /* We've got to the end of the data now - */ - return true; + return TRUE; default: BFD_FAIL (); - return false; + return FALSE; } break; case ieee_repeat_data_enum: @@ -2113,7 +2171,7 @@ ieee_slurp_section_data (abfd) ieee->h.input_p = start; if (!do_one (ieee, current_map, location_ptr, s, (int) iterations)) - return false; + return FALSE; iterations--; } } @@ -2123,13 +2181,13 @@ ieee_slurp_section_data (abfd) case ieee_load_with_relocation_enum: { if (!do_one (ieee, current_map, location_ptr, s, 1)) - return false; + return FALSE; } } } } -static boolean +static bfd_boolean ieee_new_section_hook (abfd, newsect) bfd *abfd; asection *newsect; @@ -2137,10 +2195,10 @@ ieee_new_section_hook (abfd, newsect) newsect->used_by_bfd = (PTR) bfd_alloc (abfd, (bfd_size_type) sizeof (ieee_per_section_type)); if (!newsect->used_by_bfd) - return false; + return FALSE; ieee_per_section (newsect)->data = (bfd_byte *) NULL; ieee_per_section (newsect)->section = newsect; - return true; + return TRUE; } static long @@ -2155,7 +2213,7 @@ ieee_get_reloc_upper_bound (abfd, asect) return (asect->reloc_count + 1) * sizeof (arelent *); } -static boolean +static bfd_boolean ieee_get_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -2169,7 +2227,7 @@ ieee_get_section_contents (abfd, section offset, count); ieee_slurp_section_data (abfd); (void) memcpy ((PTR) location, (PTR) (p->data + offset), (unsigned) count); - return true; + return TRUE; } static long @@ -2227,7 +2285,7 @@ comp (ap, bp) /* Write the section headers. */ -static boolean +static bfd_boolean ieee_write_section_part (abfd) bfd *abfd; { @@ -2243,19 +2301,19 @@ ieee_write_section_part (abfd) || ! ieee_write_byte (abfd, (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE))) - return false; + return FALSE; if (abfd->flags & EXEC_P) { /* This image is executable, so output absolute sections */ if (! ieee_write_byte (abfd, ieee_variable_A_enum) || ! ieee_write_byte (abfd, ieee_variable_S_enum)) - return false; + return FALSE; } else { if (! ieee_write_byte (abfd, ieee_variable_C_enum)) - return false; + return FALSE; } switch (s->flags & (SEC_CODE | SEC_DATA | SEC_ROM)) @@ -2263,24 +2321,24 @@ ieee_write_section_part (abfd) case SEC_CODE | SEC_LOAD: case SEC_CODE: if (! ieee_write_byte (abfd, ieee_variable_P_enum)) - return false; + return FALSE; break; case SEC_DATA: default: if (! ieee_write_byte (abfd, ieee_variable_D_enum)) - return false; + return FALSE; break; case SEC_ROM: case SEC_ROM | SEC_DATA: case SEC_ROM | SEC_LOAD: case SEC_ROM | SEC_DATA | SEC_LOAD: if (! ieee_write_byte (abfd, ieee_variable_R_enum)) - return false; + return FALSE; } if (! ieee_write_id (abfd, s->name)) - return false; + return FALSE; #if 0 ieee_write_int (abfd, 0); /* Parent */ ieee_write_int (abfd, 0); /* Brother */ @@ -2292,7 +2350,7 @@ ieee_write_section_part (abfd) (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE)) || ! ieee_write_int (abfd, (bfd_vma) 1 << s->alignment_power)) - return false; + return FALSE; /* Size */ if (! ieee_write_2bytes (abfd, ieee_section_size_enum) @@ -2300,7 +2358,7 @@ ieee_write_section_part (abfd) (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE)) || ! ieee_write_int (abfd, s->_raw_size)) - return false; + return FALSE; if (abfd->flags & EXEC_P) { /* Relocateable sections don't have asl records */ @@ -2311,16 +2369,16 @@ ieee_write_section_part (abfd) (s->index + IEEE_SECTION_NUMBER_BASE))) || ! ieee_write_int (abfd, s->lma)) - return false; + return FALSE; } } } - return true; + return TRUE; } -static boolean +static bfd_boolean do_with_relocs (abfd, s) bfd *abfd; asection *s; @@ -2344,17 +2402,17 @@ do_with_relocs (abfd, s) || ! ieee_write_2bytes (abfd, ieee_set_current_pc_enum) || ! ieee_write_byte (abfd, (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE))) - return false; + return FALSE; if ((abfd->flags & EXEC_P) != 0 && relocs_to_go == 0) { if (! ieee_write_int (abfd, s->lma)) - return false; + return FALSE; } else { if (! ieee_write_expression (abfd, (bfd_vma) 0, s->symbol, 0, 0)) - return false; + return FALSE; } if (relocs_to_go == 0) @@ -2375,13 +2433,13 @@ do_with_relocs (abfd, s) if (run != 0) { if (! ieee_write_byte (abfd, ieee_load_constant_bytes_enum)) - return false; + return FALSE; /* Output a stream of bytes */ if (! ieee_write_int (abfd, run)) - return false; + return FALSE; if (bfd_bwrite ((PTR) (stream + current_byte_index), run, abfd) != run) - return false; + return FALSE; current_byte_index += run; } } @@ -2389,7 +2447,7 @@ do_with_relocs (abfd, s) else { if (! ieee_write_byte (abfd, ieee_load_with_relocation_enum)) - return false; + return FALSE; /* Output the data stream as the longest sequence of bytes possible, allowing for the a reasonable packet size and @@ -2400,7 +2458,7 @@ do_with_relocs (abfd, s) /* Outputting a section without data, fill it up */ stream = (unsigned char *) bfd_zalloc (abfd, s->_raw_size); if (!stream) - return false; + return FALSE; } while (current_byte_index < s->_raw_size) { @@ -2425,10 +2483,10 @@ do_with_relocs (abfd, s) { /* Output a stream of bytes */ if (! ieee_write_int (abfd, run)) - return false; + return FALSE; if (bfd_bwrite ((PTR) (stream + current_byte_index), run, abfd) != run) - return false; + return FALSE; current_byte_index += run; } /* Output any relocations here */ @@ -2468,7 +2526,7 @@ do_with_relocs (abfd, s) default: ov = 0; BFD_FAIL (); - return false; + return FALSE; } ov &= r->howto->src_mask; @@ -2479,7 +2537,7 @@ do_with_relocs (abfd, s) if (! ieee_write_byte (abfd, ieee_function_either_open_b_enum)) - return false; + return FALSE; /* abort();*/ @@ -2489,7 +2547,7 @@ do_with_relocs (abfd, s) *(r->sym_ptr_ptr), r->howto->pc_relative, (unsigned) s->index)) - return false; + return FALSE; } else { @@ -2497,7 +2555,7 @@ do_with_relocs (abfd, s) (asymbol *) NULL, r->howto->pc_relative, (unsigned) s->index)) - return false; + return FALSE; } if (number_of_maus_in_address @@ -2505,11 +2563,11 @@ do_with_relocs (abfd, s) { bfd_vma rsize = bfd_get_reloc_size (r->howto); if (! ieee_write_int (abfd, rsize)) - return false; + return FALSE; } if (! ieee_write_byte (abfd, ieee_function_either_close_b_enum)) - return false; + return FALSE; relocs_to_go--; p++; @@ -2519,14 +2577,14 @@ do_with_relocs (abfd, s) } } - return true; + return TRUE; } /* If there are no relocations in the output section then we can be clever about how we write. We block items up into a max of 127 bytes. */ -static boolean +static bfd_boolean do_as_repeat (abfd, s) bfd *abfd; asection *s; @@ -2542,17 +2600,17 @@ do_as_repeat (abfd, s) || ! ieee_write_byte (abfd, (bfd_byte) (s->index + IEEE_SECTION_NUMBER_BASE))) - return false; + return FALSE; if ((abfd->flags & EXEC_P) != 0) { if (! ieee_write_int (abfd, s->lma)) - return false; + return FALSE; } else { if (! ieee_write_expression (abfd, (bfd_vma) 0, s->symbol, 0, 0)) - return false; + return FALSE; } if (! ieee_write_byte (abfd, ieee_repeat_data_enum) @@ -2560,13 +2618,13 @@ do_as_repeat (abfd, s) || ! ieee_write_byte (abfd, ieee_load_constant_bytes_enum) || ! ieee_write_byte (abfd, 1) || ! ieee_write_byte (abfd, 0)) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean do_without_relocs (abfd, s) bfd *abfd; asection *s; @@ -2576,7 +2634,7 @@ do_without_relocs (abfd, s) if (stream == 0 || ((s->flags & SEC_LOAD) == 0)) { if (! do_as_repeat (abfd, s)) - return false; + return FALSE; } else { @@ -2586,15 +2644,15 @@ do_without_relocs (abfd, s) if (stream[i] != 0) { if (! do_with_relocs (abfd, s)) - return false; - return true; + return FALSE; + return TRUE; } } if (! do_as_repeat (abfd, s)) - return false; + return FALSE; } - return true; + return TRUE; } @@ -2608,7 +2666,7 @@ static bfd *input_bfd; static bfd *output_bfd; static int output_buffer; -static boolean +static bfd_boolean ieee_mkobject (abfd) bfd *abfd; { @@ -3280,14 +3338,14 @@ relocate_debug (output, input) /* Gather together all the debug information from each input BFD into one place, relocating it and emitting it as we go. */ -static boolean +static bfd_boolean ieee_write_debug_part (abfd) bfd *abfd; { ieee_data_type *ieee = IEEE_DATA (abfd); bfd_chain_type *chain = ieee->chain_root; unsigned char obuff[OBS]; - boolean some_debug = false; + bfd_boolean some_debug = FALSE; file_ptr here = bfd_tell (abfd); output_ptr_start = output_ptr = obuff; @@ -3305,12 +3363,12 @@ ieee_write_debug_part (abfd) if (s == NULL) { ieee->w.r.debug_information_part = 0; - return true; + return TRUE; } ieee->w.r.debug_information_part = here; if (bfd_bwrite (s->contents, s->_raw_size, abfd) != s->_raw_size) - return false; + return FALSE; } else { @@ -3322,7 +3380,7 @@ ieee_write_debug_part (abfd) { if (bfd_seek (entry, entry_ieee->w.r.debug_information_part, SEEK_SET) != 0) - return false; + return FALSE; relocate_debug (abfd, entry); } @@ -3340,12 +3398,12 @@ ieee_write_debug_part (abfd) flush (); } - return true; + return TRUE; } /* Write the data in an ieee way. */ -static boolean +static bfd_boolean ieee_write_data_part (abfd) bfd *abfd; { @@ -3364,20 +3422,20 @@ ieee_write_data_part (abfd) if (s->reloc_count != 0) { if (! do_with_relocs (abfd, s)) - return false; + return FALSE; } else { if (! do_without_relocs (abfd, s)) - return false; + return FALSE; } } - return true; + return TRUE; } -static boolean +static bfd_boolean init_for_output (abfd) bfd *abfd; { @@ -3391,10 +3449,10 @@ init_for_output (abfd) bfd_size_type size = s->_raw_size; ieee_per_section (s)->data = (bfd_byte *) (bfd_alloc (abfd, size)); if (!ieee_per_section (s)->data) - return false; + return FALSE; } } - return true; + return TRUE; } /** exec and core file sections */ @@ -3402,7 +3460,7 @@ init_for_output (abfd) /* set section contents is complicated with IEEE since the format is * not a byte image, but a record stream. */ -static boolean +static bfd_boolean ieee_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -3417,23 +3475,23 @@ ieee_set_section_contents (abfd, section bfd_size_type size = section->_raw_size; section->contents = (unsigned char *) bfd_alloc (abfd, size); if (section->contents == NULL) - return false; + return FALSE; } /* bfd_set_section_contents has already checked that everything is within range. */ memcpy (section->contents + offset, location, (size_t) count); - return true; + return TRUE; } if (ieee_per_section (section)->data == (bfd_byte *) NULL) { if (!init_for_output (abfd)) - return false; + return FALSE; } memcpy ((PTR) (ieee_per_section (section)->data + offset), (PTR) location, (unsigned int) count); - return true; + return TRUE; } /* Write the external symbols of a file. IEEE considers two sorts of @@ -3441,7 +3499,7 @@ ieee_set_section_contents (abfd, section forms to index them as well. When we write them out we turn their symbol values into indexes from the right base. */ -static boolean +static bfd_boolean ieee_write_external_part (abfd) bfd *abfd; { @@ -3451,7 +3509,7 @@ ieee_write_external_part (abfd) unsigned int reference_index = IEEE_REFERENCE_BASE; unsigned int public_index = IEEE_PUBLIC_BASE + 2; file_ptr here = bfd_tell (abfd); - boolean hadone = false; + bfd_boolean hadone = FALSE; if (abfd->outsymbols != (asymbol **) NULL) { @@ -3464,10 +3522,10 @@ ieee_write_external_part (abfd) if (! ieee_write_byte (abfd, ieee_external_reference_enum) || ! ieee_write_int (abfd, (bfd_vma) reference_index) || ! ieee_write_id (abfd, p->name)) - return false; + return FALSE; p->value = reference_index; reference_index++; - hadone = true; + hadone = TRUE; } else if (bfd_is_com_section (p->section)) { @@ -3479,10 +3537,10 @@ ieee_write_external_part (abfd) ieee_weak_external_reference_enum) || ! ieee_write_int (abfd, (bfd_vma) reference_index) || ! ieee_write_int (abfd, p->value)) - return false; + return FALSE; p->value = reference_index; reference_index++; - hadone = true; + hadone = TRUE; } else if (p->flags & BSF_GLOBAL) { @@ -3496,12 +3554,12 @@ ieee_write_external_part (abfd) || ! ieee_write_byte (abfd, 15) /* instruction address */ || ! ieee_write_byte (abfd, 19) /* static symbol */ || ! ieee_write_byte (abfd, 1)) /* one of them */ - return false; + return FALSE; /* Write out the value */ if (! ieee_write_2bytes (abfd, ieee_value_record_enum) || ! ieee_write_int (abfd, (bfd_vma) public_index)) - return false; + return FALSE; if (! bfd_is_abs_section (p->section)) { if (abfd->flags & EXEC_P) @@ -3513,7 +3571,7 @@ ieee_write_external_part (abfd) (p->value + p->section->output_offset + p->section->output_section->vma)))) - return false; + return FALSE; } else { @@ -3521,8 +3579,8 @@ ieee_write_external_part (abfd) (abfd, p->value + p->section->output_offset, p->section->output_section->symbol, - false, 0))) - return false; + FALSE, 0))) + return FALSE; } } else @@ -3530,12 +3588,12 @@ ieee_write_external_part (abfd) if (! ieee_write_expression (abfd, p->value, bfd_abs_section_ptr->symbol, - false, 0)) - return false; + FALSE, 0)) + return FALSE; } p->value = public_index; public_index++; - hadone = true; + hadone = TRUE; } else { @@ -3547,7 +3605,7 @@ ieee_write_external_part (abfd) if (hadone) ieee->w.r.external_part = here; - return true; + return TRUE; } @@ -3572,7 +3630,7 @@ static const unsigned char envi[] = /* 0xf1, 0xce, 0x21, 0, 54, 2,1,1 tool & version # */ }; -static boolean +static bfd_boolean ieee_write_me_part (abfd) bfd *abfd; { @@ -3584,17 +3642,17 @@ ieee_write_me_part (abfd) || ! ieee_write_byte (abfd, ieee_function_either_open_b_enum) || ! ieee_write_int (abfd, abfd->start_address) || ! ieee_write_byte (abfd, ieee_function_either_close_b_enum)) - return false; + return FALSE; } ieee->w.r.me_record = bfd_tell (abfd); if (! ieee_write_byte (abfd, ieee_module_end_enum)) - return false; - return true; + return FALSE; + return TRUE; } /* Write out the IEEE processor ID. */ -static boolean +static bfd_boolean ieee_write_processor (abfd) bfd *abfd; { @@ -3605,22 +3663,22 @@ ieee_write_processor (abfd) { default: if (! ieee_write_id (abfd, bfd_printable_name (abfd))) - return false; + return FALSE; break; case bfd_arch_a29k: if (! ieee_write_id (abfd, "29000")) - return false; + return FALSE; break; case bfd_arch_h8300: if (! ieee_write_id (abfd, "H8/300")) - return false; + return FALSE; break; case bfd_arch_h8500: if (! ieee_write_id (abfd, "H8/500")) - return false; + return FALSE; break; case bfd_arch_i960: @@ -3630,23 +3688,23 @@ ieee_write_processor (abfd) case bfd_mach_i960_core: case bfd_mach_i960_ka_sa: if (! ieee_write_id (abfd, "80960KA")) - return false; + return FALSE; break; case bfd_mach_i960_kb_sb: if (! ieee_write_id (abfd, "80960KB")) - return false; + return FALSE; break; case bfd_mach_i960_ca: if (! ieee_write_id (abfd, "80960CA")) - return false; + return FALSE; break; case bfd_mach_i960_mc: case bfd_mach_i960_xa: if (! ieee_write_id (abfd, "80960MC")) - return false; + return FALSE; break; } break; @@ -3673,15 +3731,15 @@ ieee_write_processor (abfd) } if (! ieee_write_id (abfd, id)) - return false; + return FALSE; } break; } - return true; + return TRUE; } -static boolean +static bfd_boolean ieee_write_object_contents (abfd) bfd *abfd; { @@ -3691,49 +3749,49 @@ ieee_write_object_contents (abfd) /* Fast forward over the header area */ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; if (! ieee_write_byte (abfd, ieee_module_beginning_enum) || ! ieee_write_processor (abfd) || ! ieee_write_id (abfd, abfd->filename)) - return false; + return FALSE; /* Fast forward over the variable bits */ if (! ieee_write_byte (abfd, ieee_address_descriptor_enum)) - return false; + return FALSE; /* Bits per MAU */ if (! ieee_write_byte (abfd, (bfd_byte) (bfd_arch_bits_per_byte (abfd)))) - return false; + return FALSE; /* MAU's per address */ if (! ieee_write_byte (abfd, (bfd_byte) (bfd_arch_bits_per_address (abfd) / bfd_arch_bits_per_byte (abfd)))) - return false; + return FALSE; old = bfd_tell (abfd); if (bfd_seek (abfd, (file_ptr) (8 * N_W_VARIABLES), SEEK_CUR) != 0) - return false; + return FALSE; ieee->w.r.extension_record = bfd_tell (abfd); if (bfd_bwrite ((char *) exten, (bfd_size_type) sizeof (exten), abfd) != sizeof (exten)) - return false; + return FALSE; if (abfd->flags & EXEC_P) { if (! ieee_write_byte (abfd, 0x1)) /* Absolute */ - return false; + return FALSE; } else { if (! ieee_write_byte (abfd, 0x2)) /* Relocateable */ - return false; + return FALSE; } ieee->w.r.environmental_record = bfd_tell (abfd); if (bfd_bwrite ((char *) envi, (bfd_size_type) sizeof (envi), abfd) != sizeof (envi)) - return false; + return FALSE; /* The HP emulator database requires a timestamp in the file. */ { @@ -3752,7 +3810,7 @@ ieee_write_object_contents (abfd) || ! ieee_write_int (abfd, (bfd_vma) t->tm_hour) || ! ieee_write_int (abfd, (bfd_vma) t->tm_min) || ! ieee_write_int (abfd, (bfd_vma) t->tm_sec)) - return false; + return FALSE; } output_bfd = abfd; @@ -3760,11 +3818,11 @@ ieee_write_object_contents (abfd) flush (); if (! ieee_write_section_part (abfd)) - return false; + return FALSE; /* First write the symbols. This changes their values into table indeces so we cant use it after this point. */ if (! ieee_write_external_part (abfd)) - return false; + return FALSE; /* ieee_write_byte(abfd, ieee_record_seperator_enum);*/ @@ -3773,31 +3831,31 @@ ieee_write_object_contents (abfd) /* Write any debugs we have been told about. */ if (! ieee_write_debug_part (abfd)) - return false; + return FALSE; /* Can only write the data once the symbols have been written, since the data contains relocation information which points to the symbols. */ if (! ieee_write_data_part (abfd)) - return false; + return FALSE; /* At the end we put the end! */ if (! ieee_write_me_part (abfd)) - return false; + return FALSE; /* Generate the header */ if (bfd_seek (abfd, old, SEEK_SET) != 0) - return false; + return FALSE; for (i = 0; i < N_W_VARIABLES; i++) { if (! ieee_write_2bytes (abfd, ieee_assign_value_to_variable_enum) || ! ieee_write_byte (abfd, (bfd_byte) i) || ! ieee_write_int5_out (abfd, (bfd_vma) ieee->w.offset[i])) - return false; + return FALSE; } - return true; + return TRUE; } /* Native-level interface to symbols. */ @@ -3830,7 +3888,7 @@ ieee_openr_next_archived_file (arch, pre /* Reset the index - the first two entries are bogus*/ ar->element_index = 2; } - while (true) + while (TRUE) { ieee_ar_obstack_type *p = ar->elements + ar->element_index; ar->element_index++; @@ -3855,7 +3913,7 @@ ieee_openr_next_archived_file (arch, pre } } -static boolean +static bfd_boolean ieee_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd ATTRIBUTE_UNUSED; @@ -3866,7 +3924,7 @@ ieee_find_nearest_line (abfd, section, s const char **functionname_ptr ATTRIBUTE_UNUSED; unsigned int *line_ptr ATTRIBUTE_UNUSED; { - return false; + return FALSE; } static int @@ -3904,7 +3962,7 @@ ieee_generic_stat_arch_elt (abfd, buf) static int ieee_sizeof_headers (abfd, x) bfd *abfd ATTRIBUTE_UNUSED; - boolean x ATTRIBUTE_UNUSED; + bfd_boolean x ATTRIBUTE_UNUSED; { return 0; } @@ -3944,7 +4002,7 @@ ieee_bfd_debug_info_accumulate (abfd, se /* Only bother once per bfd */ if (ieee->done_debug) return; - ieee->done_debug = true; + ieee->done_debug = TRUE; /* Don't bother if there is no debug info */ if (ieee->w.r.debug_information_part == 0) @@ -3981,11 +4039,12 @@ ieee_bfd_debug_info_accumulate (abfd, se #define ieee_slurp_armap bfd_true #define ieee_slurp_extended_name_table bfd_true #define ieee_construct_extended_name_table \ - ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ + ((bfd_boolean (*) \ + PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ bfd_true) #define ieee_truncate_arname bfd_dont_truncate_arname #define ieee_write_armap \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \ bfd_true) #define ieee_read_ar_hdr bfd_nullvoidptr diff -uprN binutils-2.13.90.0.16/bfd/ihex.c binutils-2.13.90.0.18/bfd/ihex.c --- binutils-2.13.90.0.16/bfd/ihex.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/bfd/ihex.c Mon Dec 16 12:22:52 2002 @@ -125,23 +125,32 @@ The MRI compiler uses this, which is a r #include "libiberty.h" #include "safe-ctype.h" -static void ihex_init PARAMS ((void)); -static boolean ihex_mkobject PARAMS ((bfd *)); -static INLINE int ihex_get_byte PARAMS ((bfd *, boolean *)); -static void ihex_bad_byte PARAMS ((bfd *, unsigned int, int, boolean)); -static boolean ihex_scan PARAMS ((bfd *)); -static const bfd_target *ihex_object_p PARAMS ((bfd *)); -static boolean ihex_read_section PARAMS ((bfd *, asection *, bfd_byte *)); -static boolean ihex_get_section_contents +static void ihex_init + PARAMS ((void)); +static bfd_boolean ihex_mkobject + PARAMS ((bfd *)); +static INLINE int ihex_get_byte + PARAMS ((bfd *, bfd_boolean *)); +static void ihex_bad_byte + PARAMS ((bfd *, unsigned int, int, bfd_boolean)); +static bfd_boolean ihex_scan + PARAMS ((bfd *)); +static const bfd_target *ihex_object_p + PARAMS ((bfd *)); +static bfd_boolean ihex_read_section + PARAMS ((bfd *, asection *, bfd_byte *)); +static bfd_boolean ihex_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static boolean ihex_set_section_contents +static bfd_boolean ihex_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static boolean ihex_write_record +static bfd_boolean ihex_write_record PARAMS ((bfd *, size_t, unsigned int, unsigned int, bfd_byte *)); -static boolean ihex_write_object_contents PARAMS ((bfd *)); -static boolean ihex_set_arch_mach +static bfd_boolean ihex_write_object_contents + PARAMS ((bfd *)); +static bfd_boolean ihex_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -static int ihex_sizeof_headers PARAMS ((bfd *, boolean)); +static int ihex_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); /* The number of bytes we put on one line during output. */ @@ -178,18 +187,18 @@ struct ihex_data_struct static void ihex_init () { - static boolean inited; + static bfd_boolean inited; if (! inited) { - inited = true; + inited = TRUE; hex_init (); } } /* Create an ihex object. */ -static boolean +static bfd_boolean ihex_mkobject (abfd) bfd *abfd; { @@ -198,12 +207,12 @@ ihex_mkobject (abfd) tdata = (struct ihex_data_struct *) bfd_alloc (abfd, amt); if (tdata == NULL) - return false; + return FALSE; abfd->tdata.ihex_data = tdata; tdata->head = NULL; tdata->tail = NULL; - return true; + return TRUE; } /* Read a byte from a BFD. Set *ERRORPTR if an error occurred. @@ -212,14 +221,14 @@ ihex_mkobject (abfd) static INLINE int ihex_get_byte (abfd, errorptr) bfd *abfd; - boolean *errorptr; + bfd_boolean *errorptr; { bfd_byte c; if (bfd_bread (&c, (bfd_size_type) 1, abfd) != 1) { if (bfd_get_error () != bfd_error_file_truncated) - *errorptr = true; + *errorptr = TRUE; return EOF; } @@ -233,7 +242,7 @@ ihex_bad_byte (abfd, lineno, c, error) bfd *abfd; unsigned int lineno; int c; - boolean error; + bfd_boolean error; { if (c == EOF) { @@ -261,7 +270,7 @@ ihex_bad_byte (abfd, lineno, c, error) /* Read an Intel hex file and turn it into sections. We create a new section for each contiguous set of bytes. */ -static boolean +static bfd_boolean ihex_scan (abfd) bfd *abfd; { @@ -269,7 +278,7 @@ ihex_scan (abfd) bfd_vma extbase; asection *sec; unsigned int lineno; - boolean error; + bfd_boolean error; bfd_byte *buf = NULL; size_t bufsize; int c; @@ -283,7 +292,7 @@ ihex_scan (abfd) extbase = 0; sec = NULL; lineno = 1; - error = false; + error = FALSE; bufsize = 0; while ((c = ihex_get_byte (abfd, &error)) != EOF) @@ -407,7 +416,7 @@ ihex_scan (abfd) abfd->start_address = addr; if (buf != NULL) free (buf); - return true; + return TRUE; case 2: /* An extended address record. */ @@ -496,12 +505,12 @@ ihex_scan (abfd) if (buf != NULL) free (buf); - return true; + return TRUE; error_return: if (buf != NULL) free (buf); - return false; + return FALSE; } /* Try to recognize an Intel Hex file. */ @@ -563,7 +572,7 @@ ihex_object_p (abfd) /* Read the contents of a section in an Intel Hex file. */ -static boolean +static bfd_boolean ihex_read_section (abfd, section, contents) bfd *abfd; asection *section; @@ -573,14 +582,14 @@ ihex_read_section (abfd, section, conten bfd_byte *p; bfd_byte *buf = NULL; size_t bufsize; - boolean error; + bfd_boolean error; if (bfd_seek (abfd, section->filepos, SEEK_SET) != 0) goto error_return; p = contents; bufsize = 0; - error = false; + error = FALSE; while ((c = ihex_get_byte (abfd, &error)) != EOF) { char hdr[8]; @@ -631,7 +640,7 @@ ihex_read_section (abfd, section, conten /* We've read everything in the section. */ if (buf != NULL) free (buf); - return true; + return TRUE; } /* Skip the checksum. */ @@ -651,17 +660,17 @@ ihex_read_section (abfd, section, conten if (buf != NULL) free (buf); - return true; + return TRUE; error_return: if (buf != NULL) free (buf); - return false; + return FALSE; } /* Get the contents of a section in an Intel Hex file. */ -static boolean +static bfd_boolean ihex_get_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -673,20 +682,20 @@ ihex_get_section_contents (abfd, section { section->used_by_bfd = bfd_alloc (abfd, section->_raw_size); if (section->used_by_bfd == NULL) - return false; + return FALSE; if (! ihex_read_section (abfd, section, section->used_by_bfd)) - return false; + return FALSE; } memcpy (location, (bfd_byte *) section->used_by_bfd + offset, (size_t) count); - return true; + return TRUE; } /* Set the contents of a section in an Intel Hex file. */ -static boolean +static bfd_boolean ihex_set_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -702,16 +711,16 @@ ihex_set_section_contents (abfd, section if (count == 0 || (section->flags & SEC_ALLOC) == 0 || (section->flags & SEC_LOAD) == 0) - return true; + return TRUE; amt = sizeof (struct ihex_data_list); n = (struct ihex_data_list *) bfd_alloc (abfd, amt); if (n == NULL) - return false; + return FALSE; data = (bfd_byte *) bfd_alloc (abfd, count); if (data == NULL) - return false; + return FALSE; memcpy (data, location, (size_t) count); n->data = data; @@ -742,12 +751,12 @@ ihex_set_section_contents (abfd, section tdata->tail = n; } - return true; + return TRUE; } /* Write a record out to an Intel Hex file. */ -static boolean +static bfd_boolean ihex_write_record (abfd, count, addr, type, data) bfd *abfd; size_t count; @@ -785,14 +794,14 @@ ihex_write_record (abfd, count, addr, ty total = 9 + count * 2 + 4; if (bfd_bwrite (buf, (bfd_size_type) total, abfd) != total) - return false; + return FALSE; - return true; + return TRUE; } /* Write out an Intel Hex file. */ -static boolean +static bfd_boolean ihex_write_object_contents (abfd) bfd *abfd; { @@ -834,7 +843,7 @@ ihex_write_object_contents (abfd) addr[0] = (bfd_byte)(segbase >> 12) & 0xff; addr[1] = (bfd_byte)(segbase >> 4) & 0xff; if (! ihex_write_record (abfd, 2, 0, 2, addr)) - return false; + return FALSE; } else { @@ -849,7 +858,7 @@ ihex_write_object_contents (abfd) addr[0] = 0; addr[1] = 0; if (! ihex_write_record (abfd, 2, 0, 2, addr)) - return false; + return FALSE; segbase = 0; } @@ -863,12 +872,12 @@ ihex_write_object_contents (abfd) (_("%s: address 0x%s out of range for Intel Hex file"), bfd_get_filename (abfd), buf); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } addr[0] = (bfd_byte)(extbase >> 24) & 0xff; addr[1] = (bfd_byte)(extbase >> 16) & 0xff; if (! ihex_write_record (abfd, 2, 0, 4, addr)) - return false; + return FALSE; } } @@ -879,7 +888,7 @@ ihex_write_object_contents (abfd) now = 0x10000 - rec_addr; if (! ihex_write_record (abfd, now, rec_addr, 0, p)) - return false; + return FALSE; where += now; p += now; @@ -901,7 +910,7 @@ ihex_write_object_contents (abfd) startbuf[2] = (bfd_byte)(start >> 8) & 0xff; startbuf[3] = (bfd_byte)start & 0xff; if (! ihex_write_record (abfd, 4, 0, 3, startbuf)) - return false; + return FALSE; } else { @@ -910,20 +919,20 @@ ihex_write_object_contents (abfd) startbuf[2] = (bfd_byte)(start >> 8) & 0xff; startbuf[3] = (bfd_byte)start & 0xff; if (! ihex_write_record (abfd, 4, 0, 5, startbuf)) - return false; + return FALSE; } } if (! ihex_write_record (abfd, 0, 0, 1, NULL)) - return false; + return FALSE; - return true; + return TRUE; } /* Set the architecture for the output file. The architecture is irrelevant, so we ignore errors about unknown architectures. */ -static boolean +static bfd_boolean ihex_set_arch_mach (abfd, arch, mach) bfd *abfd; enum bfd_architecture arch; @@ -932,9 +941,9 @@ ihex_set_arch_mach (abfd, arch, mach) if (! bfd_default_set_arch_mach (abfd, arch, mach)) { if (arch != bfd_arch_unknown) - return false; + return FALSE; } - return true; + return TRUE; } /* Get the size of the headers, for the linker. */ @@ -943,7 +952,7 @@ ihex_set_arch_mach (abfd, arch, mach) static int ihex_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } diff -uprN binutils-2.13.90.0.16/bfd/irix-core.c binutils-2.13.90.0.18/bfd/irix-core.c --- binutils-2.13.90.0.16/bfd/irix-core.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/irix-core.c Mon Dec 16 12:22:52 2002 @@ -43,16 +43,22 @@ struct sgi_core_struct static asection *make_bfd_asection PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr)); -static const bfd_target *irix_core_core_file_p PARAMS ((bfd *)); -static char *irix_core_core_file_failing_command PARAMS ((bfd *)); -static int irix_core_core_file_failing_signal PARAMS ((bfd *)); -static boolean irix_core_core_file_matches_executable_p +static const bfd_target *irix_core_core_file_p + PARAMS ((bfd *)); +static char *irix_core_core_file_failing_command + PARAMS ((bfd *)); +static int irix_core_core_file_failing_signal + PARAMS ((bfd *)); +static bfd_boolean irix_core_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -static void swap_abort PARAMS ((void)); +static void swap_abort + PARAMS ((void)); #ifdef CORE_MAGIC64 -static int do_sections64 PARAMS ((bfd *, struct coreout *)); +static int do_sections64 + PARAMS ((bfd *, struct coreout *)); #endif -static int do_sections PARAMS ((bfd *, struct coreout *)); +static int do_sections + PARAMS ((bfd *, struct coreout *)); /* Helper function for irix_core_core_file_p: 32-bit and 64-bit versions. */ @@ -280,11 +286,11 @@ irix_core_core_file_failing_signal (abfd return core_signal (abfd); } -static boolean +static bfd_boolean irix_core_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd, *exec_bfd; { - return true; /* XXX - FIXME */ + return TRUE; /* XXX - FIXME */ } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/libaout.h binutils-2.13.90.0.18/bfd/libaout.h --- binutils-2.13.90.0.16/bfd/libaout.h Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.18/bfd/libaout.h Mon Dec 16 12:22:52 2002 @@ -1,24 +1,24 @@ /* BFD back-end data structures for a.out (and similar) files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001 + 2000, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -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. */ + 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. */ #ifndef LIBAOUT_H #define LIBAOUT_H @@ -131,7 +131,7 @@ struct aout_link_hash_entry { struct bfd_link_hash_entry root; /* Whether this symbol has been written out. */ - boolean written; + bfd_boolean written; /* Symbol index in output file. */ int indx; }; @@ -154,7 +154,7 @@ struct aout_link_hash_table #define aout_link_hash_traverse(table, func, info) \ (bfd_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ (info))) /* Get the a.out link hash table from the info structure. This is @@ -193,7 +193,7 @@ struct aout_backend_data /* Callback for setting the page and segment sizes, if they can't be trivially determined from the architecture. */ - boolean (*set_sizes) + bfd_boolean (*set_sizes) PARAMS ((bfd *)); /* zmagic files only. For go32, the length of the exec header contributes @@ -203,39 +203,39 @@ struct aout_backend_data /* Callback from the add symbols phase of the linker code to handle a dynamic object. */ - boolean (*add_dynamic_symbols) + bfd_boolean (*add_dynamic_symbols) PARAMS ((bfd *, struct bfd_link_info *, struct external_nlist **, bfd_size_type *, char **)); /* Callback from the add symbols phase of the linker code to handle adding a single symbol to the global linker hash table. */ - boolean (*add_one_symbol) + bfd_boolean (*add_one_symbol) PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, - asection *, bfd_vma, const char *, boolean, boolean, + asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **)); /* Called to handle linking a dynamic object. */ - boolean (*link_dynamic_object) + bfd_boolean (*link_dynamic_object) PARAMS ((struct bfd_link_info *, bfd *)); /* Called for each global symbol being written out by the linker. This should write out the dynamic symbol information. */ - boolean (*write_dynamic_symbol) + bfd_boolean (*write_dynamic_symbol) PARAMS ((bfd *, struct bfd_link_info *, struct aout_link_hash_entry *)); /* If this callback is not NULL, the linker calls it for each reloc. RELOC is a pointer to the unswapped reloc. If *SKIP is set to - true, the reloc will be skipped. *RELOCATION may be changed to + TRUE, the reloc will be skipped. *RELOCATION may be changed to change the effects of the relocation. */ - boolean (*check_dynamic_reloc) + bfd_boolean (*check_dynamic_reloc) PARAMS ((struct bfd_link_info *info, bfd *input_bfd, asection *input_section, struct aout_link_hash_entry *h, - PTR reloc, bfd_byte *contents, boolean *skip, + PTR reloc, bfd_byte *contents, bfd_boolean *skip, bfd_vma *relocation)); /* Called at the end of a link to finish up any dynamic linking information. */ - boolean (*finish_dynamic_link) + bfd_boolean (*finish_dynamic_link) PARAMS ((bfd *, struct bfd_link_info *)); }; #define aout_backend_info(abfd) \ @@ -282,10 +282,10 @@ enum machine_type { M_68010 = 1, M_68020 = 2, M_SPARC = 3, - /* skip a bunch so we don't run into any of suns numbers */ - /* make these up for the ns32k*/ - M_NS32032 = (64), /* ns32032 running ? */ - M_NS32532 = (64 + 5), /* ns32532 running mach */ + /* Skip a bunch so we don't run into any of SUN's numbers. */ + /* Make these up for the ns32k. */ + M_NS32032 = (64), /* ns32032 running ? */ + M_NS32532 = (64 + 5), /* ns32532 running mach */ M_386 = 100, M_29K = 101, /* AMD 29000 */ @@ -377,7 +377,7 @@ struct aoutdata { struct internal_exec *hdr; /* exec file header */ aout_symbol_type *symbols; /* symtab for input bfd */ - /* For ease, we do this */ + /* For ease, we do this. */ asection *textsec; asection *datasec; asection *bsssec; @@ -387,16 +387,16 @@ struct aoutdata { file_ptr sym_filepos; file_ptr str_filepos; - /* Size of a relocation entry in external form */ + /* Size of a relocation entry in external form. */ unsigned reloc_entry_size; - /* Size of a symbol table entry in external form */ + /* Size of a symbol table entry in external form. */ unsigned symbol_entry_size; - /* Page size - needed for alignment of demand paged files. */ + /* Page size - needed for alignment of demand paged files. */ unsigned long page_size; - /* Segment size - needed for alignment of demand paged files. */ + /* Segment size - needed for alignment of demand paged files. */ unsigned long segment_size; /* Zmagic disk block size - need to align the start of the text @@ -406,7 +406,7 @@ struct aoutdata { unsigned exec_bytes_size; unsigned vma_adjusted : 1; - /* used when a bfd supports several highly similar formats */ + /* Used when a bfd supports several highly similar formats. */ enum { default_format = 0, @@ -471,7 +471,7 @@ struct aout_data_struct { #define obj_aout_dynamic_info(bfd) (adata(bfd).dynamic_info) /* We take the address of the first element of an asymbol to ensure that the - macro is only ever applied to an asymbol */ + macro is only ever applied to an asymbol. */ #define aout_symbol(asymbol) ((aout_symbol_type *)(&(asymbol)->the_bfd)) /* Information we keep for each a.out section. This is currently only @@ -489,43 +489,43 @@ struct aout_section_data_struct #define set_aout_section_data(s,v) \ ((s)->used_by_bfd = (PTR)&(v)->relocs) -/* Prototype declarations for functions defined in aoutx.h */ +/* Prototype declarations for functions defined in aoutx.h. */ -extern boolean NAME(aout,squirt_out_relocs) +extern bfd_boolean NAME(aout,squirt_out_relocs) PARAMS ((bfd *, asection *)); -extern boolean NAME(aout,make_sections) +extern bfd_boolean NAME(aout,make_sections) PARAMS ((bfd *)); extern const bfd_target * NAME(aout,some_aout_object_p) PARAMS ((bfd *, struct internal_exec *, const bfd_target *(*) (bfd *))); -extern boolean NAME(aout,mkobject) +extern bfd_boolean NAME(aout,mkobject) PARAMS ((bfd *)); extern enum machine_type NAME(aout,machine_type) - PARAMS ((enum bfd_architecture, unsigned long, boolean *)); + PARAMS ((enum bfd_architecture, unsigned long, bfd_boolean *)); -extern boolean NAME(aout,set_arch_mach) +extern bfd_boolean NAME(aout,set_arch_mach) PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -extern boolean NAME(aout,new_section_hook) +extern bfd_boolean NAME(aout,new_section_hook) PARAMS ((bfd *, asection *)); -extern boolean NAME(aout,set_section_contents) +extern bfd_boolean NAME(aout,set_section_contents) PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); extern asymbol * NAME(aout,make_empty_symbol) PARAMS ((bfd *)); -extern boolean NAME(aout,translate_symbol_table) +extern bfd_boolean NAME(aout,translate_symbol_table) PARAMS ((bfd *, aout_symbol_type *, struct external_nlist *, bfd_size_type, - char *, bfd_size_type, boolean)); + char *, bfd_size_type, bfd_boolean)); -extern boolean NAME(aout,slurp_symbol_table) +extern bfd_boolean NAME(aout,slurp_symbol_table) PARAMS ((bfd *)); -extern boolean NAME(aout,write_syms) +extern bfd_boolean NAME(aout,write_syms) PARAMS ((bfd *)); extern void NAME(aout,reclaim_symbol_table) @@ -547,7 +547,7 @@ extern void NAME(aout,swap_std_reloc_in) extern reloc_howto_type * NAME(aout,reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); -extern boolean NAME(aout,slurp_reloc_table) +extern bfd_boolean NAME(aout,slurp_reloc_table) PARAMS ((bfd *, sec_ptr, asymbol **)); extern long NAME(aout,canonicalize_reloc) @@ -568,20 +568,20 @@ extern void NAME(aout,print_symbol) extern void NAME(aout,get_symbol_info) PARAMS ((bfd *, asymbol *, symbol_info *)); -extern boolean NAME(aout,find_nearest_line) +extern bfd_boolean NAME(aout,find_nearest_line) PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); extern long NAME(aout,read_minisymbols) - PARAMS ((bfd *, boolean, PTR *, unsigned int *)); + PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); extern asymbol * NAME(aout,minisymbol_to_symbol) - PARAMS ((bfd *, boolean, const PTR, asymbol *)); + PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); extern int NAME(aout,sizeof_headers) - PARAMS ((bfd *, boolean)); + PARAMS ((bfd *, bfd_boolean)); -extern boolean NAME(aout,adjust_sizes_and_vmas) +extern bfd_boolean NAME(aout,adjust_sizes_and_vmas) PARAMS ((bfd *, bfd_size_type *, file_ptr *)); extern void NAME(aout,swap_exec_header_in) @@ -593,7 +593,7 @@ extern void NAME(aout,swap_exec_header_o extern struct bfd_hash_entry * NAME(aout,link_hash_newfunc) PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -extern boolean NAME(aout,link_hash_table_init) +extern bfd_boolean NAME(aout,link_hash_table_init) PARAMS ((struct aout_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -602,17 +602,17 @@ extern boolean NAME(aout,link_hash_table extern struct bfd_link_hash_table * NAME(aout,link_hash_table_create) PARAMS ((bfd *)); -extern boolean NAME(aout,link_add_symbols) +extern bfd_boolean NAME(aout,link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean NAME(aout,final_link) +extern bfd_boolean NAME(aout,final_link) PARAMS ((bfd *, struct bfd_link_info *, void (*) (bfd *, file_ptr *, file_ptr *, file_ptr *))); -extern boolean NAME(aout,bfd_free_cached_info) +extern bfd_boolean NAME(aout,bfd_free_cached_info) PARAMS ((bfd *)); -/* A.out uses the generic versions of these routines... */ +/* A.out uses the generic versions of these routines... */ #define aout_16_get_section_contents _bfd_generic_get_section_contents @@ -647,29 +647,48 @@ extern boolean NAME(aout,bfd_free_cached if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 \ || bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \ abfd) != EXEC_BYTES_SIZE) \ - return false; \ - /* Now write out reloc info, followed by syms and strings */ \ + return FALSE; \ + /* Now write out reloc info, followed by syms and strings. */ \ \ if (bfd_get_outsymbols (abfd) != (asymbol **) NULL \ && bfd_get_symcount (abfd) != 0) \ { \ if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) != 0)\ - return false; \ + return FALSE; \ \ if (! NAME(aout,write_syms) (abfd)) \ - return false; \ + return FALSE; \ } \ \ if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET) != 0) \ - return false; \ + return FALSE; \ if (!NAME(aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) \ - return false; \ + return FALSE; \ \ if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET) != 0) \ - return false; \ + return FALSE; \ if (!NAME(aout,squirt_out_relocs) (abfd, obj_datasec (abfd))) \ - return false; \ + return FALSE; \ } #endif +/* Test if a read-only section can be merged with .text. This is + possible if: + + 1. Section has file contents and is read-only. + 2. The VMA of the section is after the end of .text and before + the start of .data. + 3. The image is demand-pageable (otherwise, a_text in the header + will not reflect the gap between .text and .data). */ + +#define aout_section_merge_with_text_p(abfd, sec) \ + (((sec)->flags & (SEC_HAS_CONTENTS | SEC_READONLY)) == \ + (SEC_HAS_CONTENTS | SEC_READONLY) \ + && obj_textsec (abfd) != NULL \ + && obj_datasec (abfd) != NULL \ + && (sec)->vma >= (obj_textsec (abfd)->vma + \ + obj_textsec (abfd)->_cooked_size) \ + && ((sec)->vma + (sec)->_cooked_size) <= obj_datasec (abfd)->vma \ + && ((abfd)->flags & D_PAGED) != 0) + #endif /* ! defined (LIBAOUT_H) */ diff -uprN binutils-2.13.90.0.16/bfd/libbfd-in.h binutils-2.13.90.0.18/bfd/libbfd-in.h --- binutils-2.13.90.0.16/bfd/libbfd-in.h Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/libbfd-in.h Mon Dec 16 12:22:52 2002 @@ -83,70 +83,105 @@ struct areltdata { #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) -extern PTR bfd_malloc PARAMS ((bfd_size_type)); -extern PTR bfd_realloc PARAMS ((PTR, bfd_size_type)); -extern PTR bfd_zmalloc PARAMS ((bfd_size_type)); +extern PTR bfd_malloc + PARAMS ((bfd_size_type)); +extern PTR bfd_realloc + PARAMS ((PTR, bfd_size_type)); +extern PTR bfd_zmalloc + PARAMS ((bfd_size_type)); extern bfd_error_handler_type _bfd_error_handler; /* These routines allocate and free things on the BFD's objalloc. */ -extern PTR bfd_alloc PARAMS ((bfd *, bfd_size_type)); -extern PTR bfd_zalloc PARAMS ((bfd *, bfd_size_type)); -extern void bfd_release PARAMS ((bfd *, PTR)); - -bfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd)); -bfd * _bfd_look_for_bfd_in_cache PARAMS ((bfd *, file_ptr)); -boolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *)); -boolean _bfd_generic_mkarchive PARAMS ((bfd *abfd)); -const bfd_target *bfd_generic_archive_p PARAMS ((bfd *abfd)); -boolean bfd_slurp_armap PARAMS ((bfd *abfd)); -boolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd)); +extern PTR bfd_alloc + PARAMS ((bfd *, bfd_size_type)); +extern PTR bfd_zalloc + PARAMS ((bfd *, bfd_size_type)); +extern void bfd_release + PARAMS ((bfd *, PTR)); + +bfd * _bfd_create_empty_archive_element_shell + PARAMS ((bfd *obfd)); +bfd * _bfd_look_for_bfd_in_cache + PARAMS ((bfd *, file_ptr)); +bfd_boolean _bfd_add_bfd_to_archive_cache + PARAMS ((bfd *, file_ptr, bfd *)); +bfd_boolean _bfd_generic_mkarchive + PARAMS ((bfd *abfd)); +const bfd_target *bfd_generic_archive_p + PARAMS ((bfd *abfd)); +bfd_boolean bfd_slurp_armap + PARAMS ((bfd *abfd)); +bfd_boolean bfd_slurp_bsd_armap_f2 + PARAMS ((bfd *abfd)); #define bfd_slurp_bsd_armap bfd_slurp_armap #define bfd_slurp_coff_armap bfd_slurp_armap -boolean _bfd_slurp_extended_name_table PARAMS ((bfd *abfd)); -extern boolean _bfd_construct_extended_name_table - PARAMS ((bfd *, boolean, char **, bfd_size_type *)); -boolean _bfd_write_archive_contents PARAMS ((bfd *abfd)); -boolean _bfd_compute_and_write_armap PARAMS ((bfd *, unsigned int elength)); -bfd *_bfd_get_elt_at_filepos PARAMS ((bfd *archive, file_ptr filepos)); -extern bfd *_bfd_generic_get_elt_at_index PARAMS ((bfd *, symindex)); -bfd * _bfd_new_bfd PARAMS ((void)); -void _bfd_delete_bfd PARAMS ((bfd *)); - -boolean bfd_false PARAMS ((bfd *ignore)); -boolean bfd_true PARAMS ((bfd *ignore)); -PTR bfd_nullvoidptr PARAMS ((bfd *ignore)); -int bfd_0 PARAMS ((bfd *ignore)); -unsigned int bfd_0u PARAMS ((bfd *ignore)); -long bfd_0l PARAMS ((bfd *ignore)); -long _bfd_n1 PARAMS ((bfd *ignore)); -void bfd_void PARAMS ((bfd *ignore)); - -bfd *_bfd_new_bfd_contained_in PARAMS ((bfd *)); -const bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd)); - -void bfd_dont_truncate_arname PARAMS ((bfd *abfd, const char *filename, - char *hdr)); -void bfd_bsd_truncate_arname PARAMS ((bfd *abfd, const char *filename, - char *hdr)); -void bfd_gnu_truncate_arname PARAMS ((bfd *abfd, const char *filename, - char *hdr)); - -boolean bsd_write_armap PARAMS ((bfd *arch, unsigned int elength, - struct orl *map, unsigned int orl_count, int stridx)); - -boolean coff_write_armap PARAMS ((bfd *arch, unsigned int elength, - struct orl *map, unsigned int orl_count, int stridx)); +bfd_boolean _bfd_slurp_extended_name_table + PARAMS ((bfd *abfd)); +extern bfd_boolean _bfd_construct_extended_name_table + PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *)); +bfd_boolean _bfd_write_archive_contents + PARAMS ((bfd *abfd)); +bfd_boolean _bfd_compute_and_write_armap + PARAMS ((bfd *, unsigned int elength)); +bfd *_bfd_get_elt_at_filepos + PARAMS ((bfd *archive, file_ptr filepos)); +extern bfd *_bfd_generic_get_elt_at_index + PARAMS ((bfd *, symindex)); +bfd * _bfd_new_bfd + PARAMS ((void)); +void _bfd_delete_bfd + PARAMS ((bfd *)); + +bfd_boolean bfd_false + PARAMS ((bfd *ignore)); +bfd_boolean bfd_true + PARAMS ((bfd *ignore)); +PTR bfd_nullvoidptr + PARAMS ((bfd *ignore)); +int bfd_0 + PARAMS ((bfd *ignore)); +unsigned int bfd_0u + PARAMS ((bfd *ignore)); +long bfd_0l + PARAMS ((bfd *ignore)); +long _bfd_n1 + PARAMS ((bfd *ignore)); +void bfd_void + PARAMS ((bfd *ignore)); + +bfd *_bfd_new_bfd_contained_in + PARAMS ((bfd *)); +const bfd_target *_bfd_dummy_target + PARAMS ((bfd *abfd)); + +void bfd_dont_truncate_arname + PARAMS ((bfd *abfd, const char *filename, char *hdr)); +void bfd_bsd_truncate_arname + PARAMS ((bfd *abfd, const char *filename, char *hdr)); +void bfd_gnu_truncate_arname + PARAMS ((bfd *abfd, const char *filename, char *hdr)); + +bfd_boolean bsd_write_armap + PARAMS ((bfd *arch, unsigned int elength, struct orl *map, + unsigned int orl_count, int stridx)); + +bfd_boolean coff_write_armap + PARAMS ((bfd *arch, unsigned int elength, struct orl *map, + unsigned int orl_count, int stridx)); -extern PTR _bfd_generic_read_ar_hdr PARAMS ((bfd *)); +extern PTR _bfd_generic_read_ar_hdr + PARAMS ((bfd *)); -extern PTR _bfd_generic_read_ar_hdr_mag PARAMS ((bfd *, const char *)); +extern PTR _bfd_generic_read_ar_hdr_mag + PARAMS ((bfd *, const char *)); -bfd * bfd_generic_openr_next_archived_file PARAMS ((bfd *archive, - bfd *last_file)); +bfd * bfd_generic_openr_next_archived_file + PARAMS ((bfd *archive, bfd *last_file)); -int bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); +int bfd_generic_stat_arch_elt + PARAMS ((bfd *, struct stat *)); #define _bfd_read_ar_hdr(abfd) \ BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd)) @@ -157,34 +192,36 @@ int bfd_generic_stat_arch_elt PARAMS ((b #define _bfd_generic_close_and_cleanup bfd_true #define _bfd_generic_bfd_free_cached_info bfd_true #define _bfd_generic_new_section_hook \ - ((boolean (*) PARAMS ((bfd *, asection *))) bfd_true) -extern boolean _bfd_generic_get_section_contents + ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true) +extern bfd_boolean _bfd_generic_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -extern boolean _bfd_generic_get_section_contents_in_window +extern bfd_boolean _bfd_generic_get_section_contents_in_window PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type)); /* Generic routines to use for BFD_JUMP_TABLE_COPY. Use BFD_JUMP_TABLE_COPY (_bfd_generic). */ #define _bfd_generic_bfd_copy_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) #define _bfd_generic_bfd_merge_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) #define _bfd_generic_bfd_set_private_flags \ - ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true) #define _bfd_generic_bfd_copy_private_section_data \ - ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) #define _bfd_generic_bfd_copy_private_symbol_data \ - ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) #define _bfd_generic_bfd_print_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, PTR))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true) /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */ -extern char *_bfd_nocore_core_file_failing_command PARAMS ((bfd *)); -extern int _bfd_nocore_core_file_failing_signal PARAMS ((bfd *)); -extern boolean _bfd_nocore_core_file_matches_executable_p +extern char *_bfd_nocore_core_file_failing_command + PARAMS ((bfd *)); +extern int _bfd_nocore_core_file_failing_signal + PARAMS ((bfd *)); +extern bfd_boolean _bfd_nocore_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive @@ -193,12 +230,13 @@ extern boolean _bfd_nocore_core_file_mat #define _bfd_noarchive_slurp_armap bfd_false #define _bfd_noarchive_slurp_extended_name_table bfd_false #define _bfd_noarchive_construct_extended_name_table \ - ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ + ((bfd_boolean (*) \ + PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ bfd_false) #define _bfd_noarchive_truncate_arname \ ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void) #define _bfd_noarchive_write_armap \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \ bfd_false) #define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr @@ -215,7 +253,7 @@ extern boolean _bfd_nocore_core_file_mat #define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap #define _bfd_archive_bsd_slurp_extended_name_table \ _bfd_slurp_extended_name_table -extern boolean _bfd_archive_bsd_construct_extended_name_table +extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table PARAMS ((bfd *, char **, bfd_size_type *, const char **)); #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd_write_armap bsd_write_armap @@ -225,7 +263,8 @@ extern boolean _bfd_archive_bsd_construc #define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index #define _bfd_archive_bsd_generic_stat_arch_elt \ bfd_generic_stat_arch_elt -extern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *)); +extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp + PARAMS ((bfd *)); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */ @@ -233,7 +272,7 @@ extern boolean _bfd_archive_bsd_update_a #define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap #define _bfd_archive_coff_slurp_extended_name_table \ _bfd_slurp_extended_name_table -extern boolean _bfd_archive_coff_construct_extended_name_table +extern bfd_boolean _bfd_archive_coff_construct_extended_name_table PARAMS ((bfd *, char **, bfd_size_type *, const char **)); #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname #define _bfd_archive_coff_write_armap coff_write_armap @@ -257,20 +296,20 @@ extern boolean _bfd_archive_coff_constru #define _bfd_nosymbols_get_symbol_info \ ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void) #define _bfd_nosymbols_bfd_is_local_label_name \ - ((boolean (*) PARAMS ((bfd *, const char *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false) #define _bfd_nosymbols_get_lineno \ ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr) #define _bfd_nosymbols_find_nearest_line \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \ const char **, unsigned int *))) \ bfd_false) #define _bfd_nosymbols_bfd_make_debug_symbol \ ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr) #define _bfd_nosymbols_read_minisymbols \ - ((long (*) PARAMS ((bfd *, boolean, PTR *, unsigned int *))) _bfd_n1) + ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1) #define _bfd_nosymbols_minisymbol_to_symbol \ - ((asymbol *(*) PARAMS ((bfd *, boolean, const PTR, asymbol *))) \ + ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \ bfd_nullvoidptr) /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc @@ -288,42 +327,43 @@ extern boolean _bfd_archive_coff_constru be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */ #define _bfd_nowrite_set_arch_mach \ - ((boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \ + ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \ bfd_false) #define _bfd_nowrite_set_section_contents \ - ((boolean (*) PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \ + ((bfd_boolean (*) \ + PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \ bfd_false) /* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use BFD_JUMP_TABLE_WRITE (_bfd_generic). */ #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach -extern boolean _bfd_generic_set_section_contents +extern bfd_boolean _bfd_generic_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); /* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */ -#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, boolean))) bfd_0) +#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0) #define _bfd_nolink_bfd_get_relocated_section_contents \ ((bfd_byte *(*) \ PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \ - bfd_byte *, boolean, asymbol **))) \ + bfd_byte *, bfd_boolean, asymbol **))) \ bfd_nullvoidptr) #define _bfd_nolink_bfd_relax_section \ - ((boolean (*) \ - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \ + ((bfd_boolean (*) \ + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \ bfd_false) #define _bfd_nolink_bfd_gc_sections \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, struct bfd_link_info *))) \ bfd_false) #define _bfd_nolink_bfd_merge_sections \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, struct bfd_link_info *))) \ bfd_false) #define _bfd_nolink_bfd_discard_group \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, struct sec *))) \ bfd_false) #define _bfd_nolink_bfd_link_hash_table_create \ @@ -331,13 +371,13 @@ extern boolean _bfd_generic_set_section_ #define _bfd_nolink_bfd_link_hash_table_free \ ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void) #define _bfd_nolink_bfd_link_add_symbols \ - ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) #define _bfd_nolink_bfd_link_just_syms \ ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void) #define _bfd_nolink_bfd_final_link \ - ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) #define _bfd_nolink_bfd_link_split_section \ - ((boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false) /* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC @@ -352,26 +392,27 @@ extern boolean _bfd_generic_set_section_ /* Generic routine to determine of the given symbol is a local label. */ -extern boolean bfd_generic_is_local_label_name PARAMS ((bfd *, const char *)); +extern bfd_boolean bfd_generic_is_local_label_name + PARAMS ((bfd *, const char *)); /* Generic minisymbol routines. */ extern long _bfd_generic_read_minisymbols - PARAMS ((bfd *, boolean, PTR *, unsigned int *)); + PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); extern asymbol *_bfd_generic_minisymbol_to_symbol - PARAMS ((bfd *, boolean, const PTR, asymbol *)); + PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); /* Find the nearest line using .stab/.stabstr sections. */ -extern boolean _bfd_stab_section_find_nearest_line - PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **, - const char **, unsigned int *, PTR *)); +extern bfd_boolean _bfd_stab_section_find_nearest_line + PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, + const char **, const char **, unsigned int *, PTR *)); /* Find the neaderst line using DWARF 1 debugging information. */ -extern boolean _bfd_dwarf1_find_nearest_line +extern bfd_boolean _bfd_dwarf1_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); /* Find the nearest line using DWARF 2 debugging information. */ -extern boolean _bfd_dwarf2_find_nearest_line +extern bfd_boolean _bfd_dwarf2_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *, unsigned int, PTR *)); @@ -387,7 +428,7 @@ extern struct bfd_hash_entry *_bfd_link_ const char *string)); /* Initialize a bfd_link_hash_table. */ -extern boolean _bfd_link_hash_table_init +extern bfd_boolean _bfd_link_hash_table_init PARAMS ((struct bfd_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -402,47 +443,47 @@ extern void _bfd_generic_link_hash_table PARAMS ((struct bfd_link_hash_table *)); /* Generic add symbol routine. */ -extern boolean _bfd_generic_link_add_symbols +extern bfd_boolean _bfd_generic_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); /* Generic add symbol routine. This version is used by targets for which the linker must collect constructors and destructors by name, as the collect2 program does. */ -extern boolean _bfd_generic_link_add_symbols_collect +extern bfd_boolean _bfd_generic_link_add_symbols_collect PARAMS ((bfd *, struct bfd_link_info *)); /* Generic archive add symbol routine. */ -extern boolean _bfd_generic_link_add_archive_symbols +extern bfd_boolean _bfd_generic_link_add_archive_symbols PARAMS ((bfd *, struct bfd_link_info *, - boolean (*checkfn) (bfd *, struct bfd_link_info *, boolean *))); + bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *))); /* Forward declaration to avoid prototype errors. */ typedef struct bfd_link_hash_entry _bfd_link_hash_entry; /* Generic routine to add a single symbol. */ -extern boolean _bfd_generic_link_add_one_symbol +extern bfd_boolean _bfd_generic_link_add_one_symbol PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword, - asection *, bfd_vma, const char *, boolean copy, - boolean constructor, struct bfd_link_hash_entry **)); + asection *, bfd_vma, const char *, bfd_boolean copy, + bfd_boolean constructor, struct bfd_link_hash_entry **)); /* Generic routine to mark section as supplying symbols only. */ extern void _bfd_generic_link_just_syms PARAMS ((asection *, struct bfd_link_info *)); /* Generic link routine. */ -extern boolean _bfd_generic_final_link +extern bfd_boolean _bfd_generic_final_link PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_generic_link_split_section +extern bfd_boolean _bfd_generic_link_split_section PARAMS ((bfd *, struct sec *)); /* Generic reloc_link_order processing routine. */ -extern boolean _bfd_generic_reloc_link_order +extern bfd_boolean _bfd_generic_reloc_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); /* Default link order processing routine. */ -extern boolean _bfd_default_link_order +extern bfd_boolean _bfd_default_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); @@ -461,22 +502,23 @@ extern bfd_reloc_status_type _bfd_reloca /* Link stabs in sections in the first pass. */ -extern boolean _bfd_link_section_stabs +extern bfd_boolean _bfd_link_section_stabs PARAMS ((bfd *, PTR *, asection *, asection *, PTR *)); /* Eliminate stabs for discarded functions and symbols. */ -extern boolean _bfd_discard_section_stabs +extern bfd_boolean _bfd_discard_section_stabs PARAMS ((bfd *, asection *, PTR, - boolean (*) (bfd_vma, PTR), PTR)); + bfd_boolean (*) (bfd_vma, PTR), PTR)); /* Write out the .stab section when linking stabs in sections. */ -extern boolean _bfd_write_section_stabs +extern bfd_boolean _bfd_write_section_stabs PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *)); /* Write out the .stabstr string table when linking stabs in sections. */ -extern boolean _bfd_write_stab_strings PARAMS ((bfd *, PTR *)); +extern bfd_boolean _bfd_write_stab_strings + PARAMS ((bfd *, PTR *)); /* Find an offset within a .stab section when linking stabs in sections. */ @@ -486,17 +528,17 @@ extern bfd_vma _bfd_stab_section_offset /* Attempt to merge a SEC_MERGE section. */ -extern boolean _bfd_merge_section +extern bfd_boolean _bfd_merge_section PARAMS ((bfd *, PTR *, asection *, PTR *)); /* Attempt to merge SEC_MERGE sections. */ -extern boolean _bfd_merge_sections +extern bfd_boolean _bfd_merge_sections PARAMS ((bfd *, PTR, void (*)(bfd *, asection *))); /* Write out a merged section. */ -extern boolean _bfd_write_merged_section +extern bfd_boolean _bfd_write_merged_section PARAMS ((bfd *, asection *, PTR)); /* Find an offset within a modified SEC_MERGE section. */ @@ -505,27 +547,33 @@ extern bfd_vma _bfd_merged_section_offse PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma)); /* Create a string table. */ -extern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void)); +extern struct bfd_strtab_hash *_bfd_stringtab_init + PARAMS ((void)); /* Create an XCOFF .debug section style string table. */ -extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init PARAMS ((void)); +extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init + PARAMS ((void)); /* Free a string table. */ -extern void _bfd_stringtab_free PARAMS ((struct bfd_strtab_hash *)); +extern void _bfd_stringtab_free + PARAMS ((struct bfd_strtab_hash *)); /* Get the size of a string table. */ -extern bfd_size_type _bfd_stringtab_size PARAMS ((struct bfd_strtab_hash *)); +extern bfd_size_type _bfd_stringtab_size + PARAMS ((struct bfd_strtab_hash *)); /* Add a string to a string table. */ extern bfd_size_type _bfd_stringtab_add - PARAMS ((struct bfd_strtab_hash *, const char *, boolean hash, - boolean copy)); + PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash, + bfd_boolean copy)); /* Write out a string table. */ -extern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *)); +extern bfd_boolean _bfd_stringtab_emit + PARAMS ((bfd *, struct bfd_strtab_hash *)); /* Check that endianness of input and output file match. */ -extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *)); +extern bfd_boolean _bfd_generic_verify_endian_match + PARAMS ((bfd *, bfd *)); /* Macros to tell if bfds are read or write enabled. @@ -539,7 +587,8 @@ extern boolean _bfd_generic_verify_endia #define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction) #define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction) -void bfd_assert PARAMS ((const char*,int)); +void bfd_assert + PARAMS ((const char*,int)); #define BFD_ASSERT(x) \ { if (!(x)) bfd_assert(__FILE__,__LINE__); } @@ -547,8 +596,8 @@ void bfd_assert PARAMS ((const char*,int #define BFD_FAIL() \ { bfd_assert(__FILE__,__LINE__); } -extern void _bfd_abort PARAMS ((const char *, int, const char *)) - ATTRIBUTE_NORETURN; +extern void _bfd_abort + PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN; /* if gcc >= 2.6, we can give a function name, too */ #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) @@ -558,7 +607,8 @@ extern void _bfd_abort PARAMS ((const ch #undef abort #define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__) -FILE * bfd_cache_lookup_worker PARAMS ((bfd *)); +FILE * bfd_cache_lookup_worker + PARAMS ((bfd *)); extern bfd *bfd_last_cache; @@ -577,22 +627,27 @@ extern const bfd_target * const *bfd_ass struct ecoff_find_line; #endif -extern boolean _bfd_ecoff_locate_line +extern bfd_boolean _bfd_ecoff_locate_line PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, const struct ecoff_debug_swap * const, struct ecoff_find_line *, const char **, const char **, unsigned int *)); -extern boolean _bfd_ecoff_get_accumulated_pdr PARAMS ((PTR, bfd_byte *)); -extern boolean _bfd_ecoff_get_accumulated_sym PARAMS ((PTR, bfd_byte *)); -extern boolean _bfd_ecoff_get_accumulated_ss PARAMS ((PTR, bfd_byte *)); +extern bfd_boolean _bfd_ecoff_get_accumulated_pdr + PARAMS ((PTR, bfd_byte *)); +extern bfd_boolean _bfd_ecoff_get_accumulated_sym + PARAMS ((PTR, bfd_byte *)); +extern bfd_boolean _bfd_ecoff_get_accumulated_ss + PARAMS ((PTR, bfd_byte *)); -extern bfd_vma _bfd_get_gp_value PARAMS ((bfd *)); -extern void _bfd_set_gp_value PARAMS ((bfd *, bfd_vma)); +extern bfd_vma _bfd_get_gp_value + PARAMS ((bfd *)); +extern void _bfd_set_gp_value + PARAMS ((bfd *, bfd_vma)); /* Function shared by the COFF and ELF SH backends, which have no other common header files. */ -extern boolean _bfd_sh_align_load_span +extern bfd_boolean _bfd_sh_align_load_span PARAMS ((bfd *, asection *, bfd_byte *, - boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), - PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *)); + bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), + PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *)); diff -uprN binutils-2.13.90.0.16/bfd/libbfd.c binutils-2.13.90.0.18/bfd/libbfd.c --- binutils-2.13.90.0.16/bfd/libbfd.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/libbfd.c Mon Dec 16 12:22:52 2002 @@ -41,22 +41,22 @@ DESCRIPTION /* A routine which is used in target vectors for unsupported operations. */ -boolean +bfd_boolean bfd_false (ignore) bfd *ignore ATTRIBUTE_UNUSED; { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* A routine which is used in target vectors for supported operations which do not actually do anything. */ -boolean +bfd_boolean bfd_true (ignore) bfd *ignore ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* A routine which is used in target vectors for unsupported @@ -108,13 +108,13 @@ bfd_void (ignore) { } -boolean +bfd_boolean _bfd_nocore_core_file_matches_executable_p (ignore_core_bfd, ignore_exec_bfd) bfd *ignore_core_bfd ATTRIBUTE_UNUSED; bfd *ignore_exec_bfd ATTRIBUTE_UNUSED; { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* Routine to handle core_file_failing_command entry point for targets @@ -225,7 +225,7 @@ INTERNAL_FUNCTION bfd_write_bigendian_4byte_int SYNOPSIS - boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); + bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); DESCRIPTION Write a 4 byte integer @var{i} to the output BFD @var{abfd}, in big @@ -233,14 +233,14 @@ DESCRIPTION archives. */ -boolean +bfd_boolean bfd_write_bigendian_4byte_int (abfd, i) bfd *abfd; unsigned int i; { bfd_byte buffer[4]; bfd_putb32 ((bfd_vma) i, buffer); - return (boolean) (bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4); + return bfd_bwrite ((PTR) buffer, (bfd_size_type) 4, abfd) == 4; } @@ -699,7 +699,7 @@ bfd_put_bits (data, addr, bits, big_p) bfd_vma data; bfd_byte *addr; int bits; - boolean big_p; + bfd_boolean big_p; { int i; int bytes; @@ -721,7 +721,7 @@ bfd_vma bfd_get_bits (addr, bits, big_p) bfd_byte *addr; int bits; - boolean big_p; + bfd_boolean big_p; { bfd_vma data; int i; @@ -744,7 +744,7 @@ bfd_get_bits (addr, bits, big_p) /* Default implementation */ -boolean +bfd_boolean _bfd_generic_get_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -753,22 +753,22 @@ _bfd_generic_get_section_contents (abfd, bfd_size_type count; { if (count == 0) - return true; + return TRUE; if (offset + count > section->_raw_size) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0 || bfd_bread (location, count, abfd) != count) - return false; + return FALSE; - return true; + return TRUE; } -boolean +bfd_boolean _bfd_generic_get_section_contents_in_window (abfd, section, w, offset, count) bfd *abfd ATTRIBUTE_UNUSED; sec_ptr section ATTRIBUTE_UNUSED; @@ -778,7 +778,7 @@ _bfd_generic_get_section_contents_in_win { #ifdef USE_MMAP if (count == 0) - return true; + return TRUE; if (abfd->xvec->_bfd_get_section_contents != _bfd_generic_get_section_contents) { /* We don't know what changes the bfd's get_section_contents @@ -790,13 +790,13 @@ _bfd_generic_get_section_contents_in_win w->i = ((bfd_window_internal *) bfd_zmalloc ((bfd_size_type) sizeof (bfd_window_internal))); if (w->i == NULL) - return false; + return FALSE; w->i->data = (PTR) bfd_malloc (count); if (w->i->data == NULL) { free (w->i); w->i = NULL; - return false; + return FALSE; } w->i->mapped = 0; w->i->refcount = 1; @@ -806,9 +806,9 @@ _bfd_generic_get_section_contents_in_win } if (offset + count > section->_raw_size || ! bfd_get_file_window (abfd, section->filepos + offset, count, w, - true)) - return false; - return true; + TRUE)) + return FALSE; + return TRUE; #else abort (); #endif @@ -818,7 +818,7 @@ _bfd_generic_get_section_contents_in_win NEW sections is disallowed. It is useful in patching existing sections in read-write files, though. See other set_section_contents functions to see why it doesn't work for new sections. */ -boolean +bfd_boolean _bfd_generic_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -827,13 +827,13 @@ _bfd_generic_set_section_contents (abfd, bfd_size_type count; { if (count == 0) - return true; + return TRUE; if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0 || bfd_bwrite (location, count, abfd) != count) - return false; + return FALSE; - return true; + return TRUE; } /* @@ -859,20 +859,20 @@ bfd_log2 (x) return result; } -boolean +bfd_boolean bfd_generic_is_local_label_name (abfd, name) bfd *abfd; const char *name; { char locals_prefix = (bfd_get_symbol_leading_char (abfd) == '_') ? 'L' : '.'; - return (boolean) (name[0] == locals_prefix); + return name[0] == locals_prefix; } /* Can be used from / for bfd_merge_private_bfd_data to check that endianness matches between input and output file. Returns - true for a match, otherwise returns false and emits an error. */ -boolean + TRUE for a match, otherwise returns FALSE and emits an error. */ +bfd_boolean _bfd_generic_verify_endian_match (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -891,10 +891,10 @@ _bfd_generic_verify_endian_match (ibfd, (*_bfd_error_handler) (msg, bfd_archive_filename (ibfd)); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } - return true; + return TRUE; } /* Give a warning at runtime if someone compiles code which calls diff -uprN binutils-2.13.90.0.16/bfd/libbfd.h binutils-2.13.90.0.18/bfd/libbfd.h --- binutils-2.13.90.0.16/bfd/libbfd.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/libbfd.h Tue Jan 21 10:21:32 2003 @@ -88,70 +88,105 @@ struct areltdata { #define arelt_size(bfd) (((struct areltdata *)((bfd)->arelt_data))->parsed_size) -extern PTR bfd_malloc PARAMS ((bfd_size_type)); -extern PTR bfd_realloc PARAMS ((PTR, bfd_size_type)); -extern PTR bfd_zmalloc PARAMS ((bfd_size_type)); +extern PTR bfd_malloc + PARAMS ((bfd_size_type)); +extern PTR bfd_realloc + PARAMS ((PTR, bfd_size_type)); +extern PTR bfd_zmalloc + PARAMS ((bfd_size_type)); extern bfd_error_handler_type _bfd_error_handler; /* These routines allocate and free things on the BFD's objalloc. */ -extern PTR bfd_alloc PARAMS ((bfd *, bfd_size_type)); -extern PTR bfd_zalloc PARAMS ((bfd *, bfd_size_type)); -extern void bfd_release PARAMS ((bfd *, PTR)); - -bfd * _bfd_create_empty_archive_element_shell PARAMS ((bfd *obfd)); -bfd * _bfd_look_for_bfd_in_cache PARAMS ((bfd *, file_ptr)); -boolean _bfd_add_bfd_to_archive_cache PARAMS ((bfd *, file_ptr, bfd *)); -boolean _bfd_generic_mkarchive PARAMS ((bfd *abfd)); -const bfd_target *bfd_generic_archive_p PARAMS ((bfd *abfd)); -boolean bfd_slurp_armap PARAMS ((bfd *abfd)); -boolean bfd_slurp_bsd_armap_f2 PARAMS ((bfd *abfd)); +extern PTR bfd_alloc + PARAMS ((bfd *, bfd_size_type)); +extern PTR bfd_zalloc + PARAMS ((bfd *, bfd_size_type)); +extern void bfd_release + PARAMS ((bfd *, PTR)); + +bfd * _bfd_create_empty_archive_element_shell + PARAMS ((bfd *obfd)); +bfd * _bfd_look_for_bfd_in_cache + PARAMS ((bfd *, file_ptr)); +bfd_boolean _bfd_add_bfd_to_archive_cache + PARAMS ((bfd *, file_ptr, bfd *)); +bfd_boolean _bfd_generic_mkarchive + PARAMS ((bfd *abfd)); +const bfd_target *bfd_generic_archive_p + PARAMS ((bfd *abfd)); +bfd_boolean bfd_slurp_armap + PARAMS ((bfd *abfd)); +bfd_boolean bfd_slurp_bsd_armap_f2 + PARAMS ((bfd *abfd)); #define bfd_slurp_bsd_armap bfd_slurp_armap #define bfd_slurp_coff_armap bfd_slurp_armap -boolean _bfd_slurp_extended_name_table PARAMS ((bfd *abfd)); -extern boolean _bfd_construct_extended_name_table - PARAMS ((bfd *, boolean, char **, bfd_size_type *)); -boolean _bfd_write_archive_contents PARAMS ((bfd *abfd)); -boolean _bfd_compute_and_write_armap PARAMS ((bfd *, unsigned int elength)); -bfd *_bfd_get_elt_at_filepos PARAMS ((bfd *archive, file_ptr filepos)); -extern bfd *_bfd_generic_get_elt_at_index PARAMS ((bfd *, symindex)); -bfd * _bfd_new_bfd PARAMS ((void)); -void _bfd_delete_bfd PARAMS ((bfd *)); - -boolean bfd_false PARAMS ((bfd *ignore)); -boolean bfd_true PARAMS ((bfd *ignore)); -PTR bfd_nullvoidptr PARAMS ((bfd *ignore)); -int bfd_0 PARAMS ((bfd *ignore)); -unsigned int bfd_0u PARAMS ((bfd *ignore)); -long bfd_0l PARAMS ((bfd *ignore)); -long _bfd_n1 PARAMS ((bfd *ignore)); -void bfd_void PARAMS ((bfd *ignore)); - -bfd *_bfd_new_bfd_contained_in PARAMS ((bfd *)); -const bfd_target *_bfd_dummy_target PARAMS ((bfd *abfd)); - -void bfd_dont_truncate_arname PARAMS ((bfd *abfd, const char *filename, - char *hdr)); -void bfd_bsd_truncate_arname PARAMS ((bfd *abfd, const char *filename, - char *hdr)); -void bfd_gnu_truncate_arname PARAMS ((bfd *abfd, const char *filename, - char *hdr)); - -boolean bsd_write_armap PARAMS ((bfd *arch, unsigned int elength, - struct orl *map, unsigned int orl_count, int stridx)); - -boolean coff_write_armap PARAMS ((bfd *arch, unsigned int elength, - struct orl *map, unsigned int orl_count, int stridx)); +bfd_boolean _bfd_slurp_extended_name_table + PARAMS ((bfd *abfd)); +extern bfd_boolean _bfd_construct_extended_name_table + PARAMS ((bfd *, bfd_boolean, char **, bfd_size_type *)); +bfd_boolean _bfd_write_archive_contents + PARAMS ((bfd *abfd)); +bfd_boolean _bfd_compute_and_write_armap + PARAMS ((bfd *, unsigned int elength)); +bfd *_bfd_get_elt_at_filepos + PARAMS ((bfd *archive, file_ptr filepos)); +extern bfd *_bfd_generic_get_elt_at_index + PARAMS ((bfd *, symindex)); +bfd * _bfd_new_bfd + PARAMS ((void)); +void _bfd_delete_bfd + PARAMS ((bfd *)); + +bfd_boolean bfd_false + PARAMS ((bfd *ignore)); +bfd_boolean bfd_true + PARAMS ((bfd *ignore)); +PTR bfd_nullvoidptr + PARAMS ((bfd *ignore)); +int bfd_0 + PARAMS ((bfd *ignore)); +unsigned int bfd_0u + PARAMS ((bfd *ignore)); +long bfd_0l + PARAMS ((bfd *ignore)); +long _bfd_n1 + PARAMS ((bfd *ignore)); +void bfd_void + PARAMS ((bfd *ignore)); + +bfd *_bfd_new_bfd_contained_in + PARAMS ((bfd *)); +const bfd_target *_bfd_dummy_target + PARAMS ((bfd *abfd)); + +void bfd_dont_truncate_arname + PARAMS ((bfd *abfd, const char *filename, char *hdr)); +void bfd_bsd_truncate_arname + PARAMS ((bfd *abfd, const char *filename, char *hdr)); +void bfd_gnu_truncate_arname + PARAMS ((bfd *abfd, const char *filename, char *hdr)); + +bfd_boolean bsd_write_armap + PARAMS ((bfd *arch, unsigned int elength, struct orl *map, + unsigned int orl_count, int stridx)); + +bfd_boolean coff_write_armap + PARAMS ((bfd *arch, unsigned int elength, struct orl *map, + unsigned int orl_count, int stridx)); -extern PTR _bfd_generic_read_ar_hdr PARAMS ((bfd *)); +extern PTR _bfd_generic_read_ar_hdr + PARAMS ((bfd *)); -extern PTR _bfd_generic_read_ar_hdr_mag PARAMS ((bfd *, const char *)); +extern PTR _bfd_generic_read_ar_hdr_mag + PARAMS ((bfd *, const char *)); -bfd * bfd_generic_openr_next_archived_file PARAMS ((bfd *archive, - bfd *last_file)); +bfd * bfd_generic_openr_next_archived_file + PARAMS ((bfd *archive, bfd *last_file)); -int bfd_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); +int bfd_generic_stat_arch_elt + PARAMS ((bfd *, struct stat *)); #define _bfd_read_ar_hdr(abfd) \ BFD_SEND (abfd, _bfd_read_ar_hdr_fn, (abfd)) @@ -162,34 +197,36 @@ int bfd_generic_stat_arch_elt PARAMS ((b #define _bfd_generic_close_and_cleanup bfd_true #define _bfd_generic_bfd_free_cached_info bfd_true #define _bfd_generic_new_section_hook \ - ((boolean (*) PARAMS ((bfd *, asection *))) bfd_true) -extern boolean _bfd_generic_get_section_contents + ((bfd_boolean (*) PARAMS ((bfd *, asection *))) bfd_true) +extern bfd_boolean _bfd_generic_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -extern boolean _bfd_generic_get_section_contents_in_window +extern bfd_boolean _bfd_generic_get_section_contents_in_window PARAMS ((bfd *, asection *, bfd_window *, file_ptr, bfd_size_type)); /* Generic routines to use for BFD_JUMP_TABLE_COPY. Use BFD_JUMP_TABLE_COPY (_bfd_generic). */ #define _bfd_generic_bfd_copy_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) #define _bfd_generic_bfd_merge_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, bfd *))) bfd_true) #define _bfd_generic_bfd_set_private_flags \ - ((boolean (*) PARAMS ((bfd *, flagword))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, flagword))) bfd_true) #define _bfd_generic_bfd_copy_private_section_data \ - ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) #define _bfd_generic_bfd_copy_private_symbol_data \ - ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) #define _bfd_generic_bfd_print_private_bfd_data \ - ((boolean (*) PARAMS ((bfd *, PTR))) bfd_true) + ((bfd_boolean (*) PARAMS ((bfd *, PTR))) bfd_true) /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */ -extern char *_bfd_nocore_core_file_failing_command PARAMS ((bfd *)); -extern int _bfd_nocore_core_file_failing_signal PARAMS ((bfd *)); -extern boolean _bfd_nocore_core_file_matches_executable_p +extern char *_bfd_nocore_core_file_failing_command + PARAMS ((bfd *)); +extern int _bfd_nocore_core_file_failing_signal + PARAMS ((bfd *)); +extern bfd_boolean _bfd_nocore_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE when there is no archive @@ -198,12 +235,13 @@ extern boolean _bfd_nocore_core_file_mat #define _bfd_noarchive_slurp_armap bfd_false #define _bfd_noarchive_slurp_extended_name_table bfd_false #define _bfd_noarchive_construct_extended_name_table \ - ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ + ((bfd_boolean (*) \ + PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ bfd_false) #define _bfd_noarchive_truncate_arname \ ((void (*) PARAMS ((bfd *, const char *, char *))) bfd_void) #define _bfd_noarchive_write_armap \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \ bfd_false) #define _bfd_noarchive_read_ar_hdr bfd_nullvoidptr @@ -220,7 +258,7 @@ extern boolean _bfd_nocore_core_file_mat #define _bfd_archive_bsd_slurp_armap bfd_slurp_bsd_armap #define _bfd_archive_bsd_slurp_extended_name_table \ _bfd_slurp_extended_name_table -extern boolean _bfd_archive_bsd_construct_extended_name_table +extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table PARAMS ((bfd *, char **, bfd_size_type *, const char **)); #define _bfd_archive_bsd_truncate_arname bfd_bsd_truncate_arname #define _bfd_archive_bsd_write_armap bsd_write_armap @@ -230,7 +268,8 @@ extern boolean _bfd_archive_bsd_construc #define _bfd_archive_bsd_get_elt_at_index _bfd_generic_get_elt_at_index #define _bfd_archive_bsd_generic_stat_arch_elt \ bfd_generic_stat_arch_elt -extern boolean _bfd_archive_bsd_update_armap_timestamp PARAMS ((bfd *)); +extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp + PARAMS ((bfd *)); /* Routines to use for BFD_JUMP_TABLE_ARCHIVE to get COFF style archives. Use BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff). */ @@ -238,7 +277,7 @@ extern boolean _bfd_archive_bsd_update_a #define _bfd_archive_coff_slurp_armap bfd_slurp_coff_armap #define _bfd_archive_coff_slurp_extended_name_table \ _bfd_slurp_extended_name_table -extern boolean _bfd_archive_coff_construct_extended_name_table +extern bfd_boolean _bfd_archive_coff_construct_extended_name_table PARAMS ((bfd *, char **, bfd_size_type *, const char **)); #define _bfd_archive_coff_truncate_arname bfd_dont_truncate_arname #define _bfd_archive_coff_write_armap coff_write_armap @@ -262,20 +301,20 @@ extern boolean _bfd_archive_coff_constru #define _bfd_nosymbols_get_symbol_info \ ((void (*) PARAMS ((bfd *, asymbol *, symbol_info *))) bfd_void) #define _bfd_nosymbols_bfd_is_local_label_name \ - ((boolean (*) PARAMS ((bfd *, const char *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, const char *))) bfd_false) #define _bfd_nosymbols_get_lineno \ ((alent *(*) PARAMS ((bfd *, asymbol *))) bfd_nullvoidptr) #define _bfd_nosymbols_find_nearest_line \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, \ const char **, unsigned int *))) \ bfd_false) #define _bfd_nosymbols_bfd_make_debug_symbol \ ((asymbol *(*) PARAMS ((bfd *, PTR, unsigned long))) bfd_nullvoidptr) #define _bfd_nosymbols_read_minisymbols \ - ((long (*) PARAMS ((bfd *, boolean, PTR *, unsigned int *))) _bfd_n1) + ((long (*) PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *))) _bfd_n1) #define _bfd_nosymbols_minisymbol_to_symbol \ - ((asymbol *(*) PARAMS ((bfd *, boolean, const PTR, asymbol *))) \ + ((asymbol *(*) PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *))) \ bfd_nullvoidptr) /* Routines to use for BFD_JUMP_TABLE_RELOCS when there is no reloc @@ -293,42 +332,43 @@ extern boolean _bfd_archive_coff_constru be written. Use BFD_JUMP_TABLE_WRITE (_bfd_nowrite). */ #define _bfd_nowrite_set_arch_mach \ - ((boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \ + ((bfd_boolean (*) PARAMS ((bfd *, enum bfd_architecture, unsigned long))) \ bfd_false) #define _bfd_nowrite_set_section_contents \ - ((boolean (*) PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \ + ((bfd_boolean (*) \ + PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type))) \ bfd_false) /* Generic routines to use for BFD_JUMP_TABLE_WRITE. Use BFD_JUMP_TABLE_WRITE (_bfd_generic). */ #define _bfd_generic_set_arch_mach bfd_default_set_arch_mach -extern boolean _bfd_generic_set_section_contents +extern bfd_boolean _bfd_generic_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); /* Routines to use for BFD_JUMP_TABLE_LINK for targets which do not support linking. Use BFD_JUMP_TABLE_LINK (_bfd_nolink). */ -#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, boolean))) bfd_0) +#define _bfd_nolink_sizeof_headers ((int (*) PARAMS ((bfd *, bfd_boolean))) bfd_0) #define _bfd_nolink_bfd_get_relocated_section_contents \ ((bfd_byte *(*) \ PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, \ - bfd_byte *, boolean, asymbol **))) \ + bfd_byte *, bfd_boolean, asymbol **))) \ bfd_nullvoidptr) #define _bfd_nolink_bfd_relax_section \ - ((boolean (*) \ - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *))) \ + ((bfd_boolean (*) \ + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *))) \ bfd_false) #define _bfd_nolink_bfd_gc_sections \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, struct bfd_link_info *))) \ bfd_false) #define _bfd_nolink_bfd_merge_sections \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, struct bfd_link_info *))) \ bfd_false) #define _bfd_nolink_bfd_discard_group \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, struct sec *))) \ bfd_false) #define _bfd_nolink_bfd_link_hash_table_create \ @@ -336,13 +376,13 @@ extern boolean _bfd_generic_set_section_ #define _bfd_nolink_bfd_link_hash_table_free \ ((void (*) PARAMS ((struct bfd_link_hash_table *))) bfd_void) #define _bfd_nolink_bfd_link_add_symbols \ - ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) #define _bfd_nolink_bfd_link_just_syms \ ((void (*) PARAMS ((asection *, struct bfd_link_info *))) bfd_void) #define _bfd_nolink_bfd_final_link \ - ((boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, struct bfd_link_info *))) bfd_false) #define _bfd_nolink_bfd_link_split_section \ - ((boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false) + ((bfd_boolean (*) PARAMS ((bfd *, struct sec *))) bfd_false) /* Routines to use for BFD_JUMP_TABLE_DYNAMIC for targets which do not have dynamic symbols or relocs. Use BFD_JUMP_TABLE_DYNAMIC @@ -357,26 +397,27 @@ extern boolean _bfd_generic_set_section_ /* Generic routine to determine of the given symbol is a local label. */ -extern boolean bfd_generic_is_local_label_name PARAMS ((bfd *, const char *)); +extern bfd_boolean bfd_generic_is_local_label_name + PARAMS ((bfd *, const char *)); /* Generic minisymbol routines. */ extern long _bfd_generic_read_minisymbols - PARAMS ((bfd *, boolean, PTR *, unsigned int *)); + PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); extern asymbol *_bfd_generic_minisymbol_to_symbol - PARAMS ((bfd *, boolean, const PTR, asymbol *)); + PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); /* Find the nearest line using .stab/.stabstr sections. */ -extern boolean _bfd_stab_section_find_nearest_line - PARAMS ((bfd *, asymbol **, asection *, bfd_vma, boolean *, const char **, - const char **, unsigned int *, PTR *)); +extern bfd_boolean _bfd_stab_section_find_nearest_line + PARAMS ((bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, + const char **, const char **, unsigned int *, PTR *)); /* Find the neaderst line using DWARF 1 debugging information. */ -extern boolean _bfd_dwarf1_find_nearest_line +extern bfd_boolean _bfd_dwarf1_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); /* Find the nearest line using DWARF 2 debugging information. */ -extern boolean _bfd_dwarf2_find_nearest_line +extern bfd_boolean _bfd_dwarf2_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *, unsigned int, PTR *)); @@ -392,7 +433,7 @@ extern struct bfd_hash_entry *_bfd_link_ const char *string)); /* Initialize a bfd_link_hash_table. */ -extern boolean _bfd_link_hash_table_init +extern bfd_boolean _bfd_link_hash_table_init PARAMS ((struct bfd_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -407,47 +448,47 @@ extern void _bfd_generic_link_hash_table PARAMS ((struct bfd_link_hash_table *)); /* Generic add symbol routine. */ -extern boolean _bfd_generic_link_add_symbols +extern bfd_boolean _bfd_generic_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); /* Generic add symbol routine. This version is used by targets for which the linker must collect constructors and destructors by name, as the collect2 program does. */ -extern boolean _bfd_generic_link_add_symbols_collect +extern bfd_boolean _bfd_generic_link_add_symbols_collect PARAMS ((bfd *, struct bfd_link_info *)); /* Generic archive add symbol routine. */ -extern boolean _bfd_generic_link_add_archive_symbols +extern bfd_boolean _bfd_generic_link_add_archive_symbols PARAMS ((bfd *, struct bfd_link_info *, - boolean (*checkfn) (bfd *, struct bfd_link_info *, boolean *))); + bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *))); /* Forward declaration to avoid prototype errors. */ typedef struct bfd_link_hash_entry _bfd_link_hash_entry; /* Generic routine to add a single symbol. */ -extern boolean _bfd_generic_link_add_one_symbol +extern bfd_boolean _bfd_generic_link_add_one_symbol PARAMS ((struct bfd_link_info *, bfd *, const char *name, flagword, - asection *, bfd_vma, const char *, boolean copy, - boolean constructor, struct bfd_link_hash_entry **)); + asection *, bfd_vma, const char *, bfd_boolean copy, + bfd_boolean constructor, struct bfd_link_hash_entry **)); /* Generic routine to mark section as supplying symbols only. */ extern void _bfd_generic_link_just_syms PARAMS ((asection *, struct bfd_link_info *)); /* Generic link routine. */ -extern boolean _bfd_generic_final_link +extern bfd_boolean _bfd_generic_final_link PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_generic_link_split_section +extern bfd_boolean _bfd_generic_link_split_section PARAMS ((bfd *, struct sec *)); /* Generic reloc_link_order processing routine. */ -extern boolean _bfd_generic_reloc_link_order +extern bfd_boolean _bfd_generic_reloc_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); /* Default link order processing routine. */ -extern boolean _bfd_default_link_order +extern bfd_boolean _bfd_default_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); @@ -466,22 +507,23 @@ extern bfd_reloc_status_type _bfd_reloca /* Link stabs in sections in the first pass. */ -extern boolean _bfd_link_section_stabs +extern bfd_boolean _bfd_link_section_stabs PARAMS ((bfd *, PTR *, asection *, asection *, PTR *)); /* Eliminate stabs for discarded functions and symbols. */ -extern boolean _bfd_discard_section_stabs +extern bfd_boolean _bfd_discard_section_stabs PARAMS ((bfd *, asection *, PTR, - boolean (*) (bfd_vma, PTR), PTR)); + bfd_boolean (*) (bfd_vma, PTR), PTR)); /* Write out the .stab section when linking stabs in sections. */ -extern boolean _bfd_write_section_stabs +extern bfd_boolean _bfd_write_section_stabs PARAMS ((bfd *, PTR *, asection *, PTR *, bfd_byte *)); /* Write out the .stabstr string table when linking stabs in sections. */ -extern boolean _bfd_write_stab_strings PARAMS ((bfd *, PTR *)); +extern bfd_boolean _bfd_write_stab_strings + PARAMS ((bfd *, PTR *)); /* Find an offset within a .stab section when linking stabs in sections. */ @@ -491,17 +533,17 @@ extern bfd_vma _bfd_stab_section_offset /* Attempt to merge a SEC_MERGE section. */ -extern boolean _bfd_merge_section +extern bfd_boolean _bfd_merge_section PARAMS ((bfd *, PTR *, asection *, PTR *)); /* Attempt to merge SEC_MERGE sections. */ -extern boolean _bfd_merge_sections +extern bfd_boolean _bfd_merge_sections PARAMS ((bfd *, PTR, void (*)(bfd *, asection *))); /* Write out a merged section. */ -extern boolean _bfd_write_merged_section +extern bfd_boolean _bfd_write_merged_section PARAMS ((bfd *, asection *, PTR)); /* Find an offset within a modified SEC_MERGE section. */ @@ -510,27 +552,33 @@ extern bfd_vma _bfd_merged_section_offse PARAMS ((bfd *, asection **, PTR, bfd_vma, bfd_vma)); /* Create a string table. */ -extern struct bfd_strtab_hash *_bfd_stringtab_init PARAMS ((void)); +extern struct bfd_strtab_hash *_bfd_stringtab_init + PARAMS ((void)); /* Create an XCOFF .debug section style string table. */ -extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init PARAMS ((void)); +extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init + PARAMS ((void)); /* Free a string table. */ -extern void _bfd_stringtab_free PARAMS ((struct bfd_strtab_hash *)); +extern void _bfd_stringtab_free + PARAMS ((struct bfd_strtab_hash *)); /* Get the size of a string table. */ -extern bfd_size_type _bfd_stringtab_size PARAMS ((struct bfd_strtab_hash *)); +extern bfd_size_type _bfd_stringtab_size + PARAMS ((struct bfd_strtab_hash *)); /* Add a string to a string table. */ extern bfd_size_type _bfd_stringtab_add - PARAMS ((struct bfd_strtab_hash *, const char *, boolean hash, - boolean copy)); + PARAMS ((struct bfd_strtab_hash *, const char *, bfd_boolean hash, + bfd_boolean copy)); /* Write out a string table. */ -extern boolean _bfd_stringtab_emit PARAMS ((bfd *, struct bfd_strtab_hash *)); +extern bfd_boolean _bfd_stringtab_emit + PARAMS ((bfd *, struct bfd_strtab_hash *)); /* Check that endianness of input and output file match. */ -extern boolean _bfd_generic_verify_endian_match PARAMS ((bfd *, bfd *)); +extern bfd_boolean _bfd_generic_verify_endian_match + PARAMS ((bfd *, bfd *)); /* Macros to tell if bfds are read or write enabled. @@ -544,7 +592,8 @@ extern boolean _bfd_generic_verify_endia #define bfd_read_p(abfd) ((abfd)->direction == read_direction || (abfd)->direction == both_direction) #define bfd_write_p(abfd) ((abfd)->direction == write_direction || (abfd)->direction == both_direction) -void bfd_assert PARAMS ((const char*,int)); +void bfd_assert + PARAMS ((const char*,int)); #define BFD_ASSERT(x) \ { if (!(x)) bfd_assert(__FILE__,__LINE__); } @@ -552,8 +601,8 @@ void bfd_assert PARAMS ((const char*,int #define BFD_FAIL() \ { bfd_assert(__FILE__,__LINE__); } -extern void _bfd_abort PARAMS ((const char *, int, const char *)) - ATTRIBUTE_NORETURN; +extern void _bfd_abort + PARAMS ((const char *, int, const char *)) ATTRIBUTE_NORETURN; /* if gcc >= 2.6, we can give a function name, too */ #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) @@ -563,7 +612,8 @@ extern void _bfd_abort PARAMS ((const ch #undef abort #define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__) -FILE * bfd_cache_lookup_worker PARAMS ((bfd *)); +FILE * bfd_cache_lookup_worker + PARAMS ((bfd *)); extern bfd *bfd_last_cache; @@ -582,28 +632,33 @@ extern const bfd_target * const *bfd_ass struct ecoff_find_line; #endif -extern boolean _bfd_ecoff_locate_line +extern bfd_boolean _bfd_ecoff_locate_line PARAMS ((bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, const struct ecoff_debug_swap * const, struct ecoff_find_line *, const char **, const char **, unsigned int *)); -extern boolean _bfd_ecoff_get_accumulated_pdr PARAMS ((PTR, bfd_byte *)); -extern boolean _bfd_ecoff_get_accumulated_sym PARAMS ((PTR, bfd_byte *)); -extern boolean _bfd_ecoff_get_accumulated_ss PARAMS ((PTR, bfd_byte *)); +extern bfd_boolean _bfd_ecoff_get_accumulated_pdr + PARAMS ((PTR, bfd_byte *)); +extern bfd_boolean _bfd_ecoff_get_accumulated_sym + PARAMS ((PTR, bfd_byte *)); +extern bfd_boolean _bfd_ecoff_get_accumulated_ss + PARAMS ((PTR, bfd_byte *)); -extern bfd_vma _bfd_get_gp_value PARAMS ((bfd *)); -extern void _bfd_set_gp_value PARAMS ((bfd *, bfd_vma)); +extern bfd_vma _bfd_get_gp_value + PARAMS ((bfd *)); +extern void _bfd_set_gp_value + PARAMS ((bfd *, bfd_vma)); /* Function shared by the COFF and ELF SH backends, which have no other common header files. */ -extern boolean _bfd_sh_align_load_span +extern bfd_boolean _bfd_sh_align_load_span PARAMS ((bfd *, asection *, bfd_byte *, - boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), - PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, boolean *)); + bfd_boolean (*) (bfd *, asection *, PTR, bfd_byte *, bfd_vma), + PTR, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *)); /* Extracted from init.c. */ /* Extracted from libbfd.c. */ -boolean +bfd_boolean bfd_write_bigendian_4byte_int PARAMS ((bfd *, unsigned int)); unsigned int @@ -626,10 +681,10 @@ extern bfd *bfd_last_cache; ((x)==bfd_last_cache? \ (FILE*) (bfd_last_cache->iostream): \ bfd_cache_lookup_worker(x)) -boolean +bfd_boolean bfd_cache_init PARAMS ((bfd *abfd)); -boolean +bfd_boolean bfd_cache_close PARAMS ((bfd *abfd)); FILE* @@ -1153,6 +1208,15 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_390_GOT64", "BFD_RELOC_390_PLT64", "BFD_RELOC_390_GOTENT", + "BFD_RELOC_390_GOTOFF64", + "BFD_RELOC_390_GOTPLT12", + "BFD_RELOC_390_GOTPLT16", + "BFD_RELOC_390_GOTPLT32", + "BFD_RELOC_390_GOTPLT64", + "BFD_RELOC_390_GOTPLTENT", + "BFD_RELOC_390_PLTOFF16", + "BFD_RELOC_390_PLTOFF32", + "BFD_RELOC_390_PLTOFF64", "BFD_RELOC_IP2K_FR9", "BFD_RELOC_IP2K_BANK", "BFD_RELOC_IP2K_ADDR16CJP", @@ -1312,11 +1376,20 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_H8_DIR24R8", "BFD_RELOC_H8_DIR32A16", "BFD_RELOC_XSTORMY16_REL_12", + "BFD_RELOC_XSTORMY16_12", "BFD_RELOC_XSTORMY16_24", "BFD_RELOC_XSTORMY16_FPTR16", "BFD_RELOC_VAX_GLOB_DAT", "BFD_RELOC_VAX_JMP_SLOT", "BFD_RELOC_VAX_RELATIVE", + "BFD_RELOC_MSP430_10_PCREL", + "BFD_RELOC_MSP430_16_PCREL", + "BFD_RELOC_MSP430_16", + "BFD_RELOC_MSP430_16_PCREL_BYTE", + "BFD_RELOC_MSP430_16_BYTE", + "BFD_RELOC_IQ2000_OFFSET_16", + "BFD_RELOC_IQ2000_OFFSET_21", + "BFD_RELOC_IQ2000_UHI16", "@@overflow: BFD_RELOC_UNUSED@@", }; #endif @@ -1324,16 +1397,16 @@ static const char *const bfd_reloc_code_ reloc_howto_type * bfd_default_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); -boolean +bfd_boolean bfd_generic_relax_section PARAMS ((bfd *abfd, asection *section, struct bfd_link_info *, - boolean *)); + bfd_boolean *)); -boolean +bfd_boolean bfd_generic_gc_sections PARAMS ((bfd *, struct bfd_link_info *)); -boolean +bfd_boolean bfd_generic_merge_sections PARAMS ((bfd *, struct bfd_link_info *)); bfd_byte * @@ -1341,12 +1414,12 @@ bfd_generic_get_relocated_section_conten struct bfd_link_info *link_info, struct bfd_link_order *link_order, bfd_byte *data, - boolean relocateable, + bfd_boolean relocateable, asymbol **symbols)); /* Extracted from archures.c. */ extern const bfd_arch_info_type bfd_default_arch_struct; -boolean +bfd_boolean bfd_default_set_arch_mach PARAMS ((bfd *abfd, enum bfd_architecture arch, unsigned long mach)); @@ -1355,7 +1428,7 @@ const bfd_arch_info_type * bfd_default_compatible PARAMS ((const bfd_arch_info_type *a, const bfd_arch_info_type *b)); -boolean +bfd_boolean bfd_default_scan PARAMS ((const struct bfd_arch_info *info, const char *string)); /* Extracted from elf.c. */ diff -uprN binutils-2.13.90.0.16/bfd/libcoff-in.h binutils-2.13.90.0.18/bfd/libcoff-in.h --- binutils-2.13.90.0.16/bfd/libcoff-in.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/libcoff-in.h Mon Dec 16 12:22:52 2002 @@ -74,16 +74,16 @@ typedef struct coff_tdata /* The unswapped external symbols. May be NULL. Read by _bfd_coff_get_external_symbols. */ PTR external_syms; - /* If this is true, the external_syms may not be freed. */ - boolean keep_syms; + /* If this is TRUE, the external_syms may not be freed. */ + bfd_boolean keep_syms; /* The string table. May be NULL. Read by _bfd_coff_read_string_table. */ char *strings; - /* If this is true, the strings may not be freed. */ - boolean keep_strings; - /* If this is true, the strings have been written out already. */ - boolean strings_written; + /* If this is TRUE, the strings may not be freed. */ + bfd_boolean keep_strings; + /* If this is TRUE, the strings have been written out already. */ + bfd_boolean strings_written; /* is this a PE format coff file */ int pe; @@ -117,10 +117,10 @@ typedef struct pe_tdata struct internal_extra_pe_aouthdr pe_opthdr; int dll; int has_reloc_section; - boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *)); + bfd_boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *)); flagword real_flags; int target_subsystem; - boolean force_minimum_alignment; + bfd_boolean force_minimum_alignment; } pe_data_type; #define pe_data(bfd) ((bfd)->tdata.pe_obj_data) @@ -132,11 +132,11 @@ struct xcoff_tdata /* Basic COFF information. */ coff_data_type coff; - /* True if this is an XCOFF64 file. */ - boolean xcoff64; + /* TRUE if this is an XCOFF64 file. */ + bfd_boolean xcoff64; - /* True if a large a.out header should be generated. */ - boolean full_aouthdr; + /* TRUE if a large a.out header should be generated. */ + bfd_boolean full_aouthdr; /* TOC value. */ bfd_vma toc; @@ -184,12 +184,12 @@ struct coff_section_tdata { /* The relocs, swapped into COFF internal form. This may be NULL. */ struct internal_reloc *relocs; - /* If this is true, the relocs entry may not be freed. */ - boolean keep_relocs; + /* If this is TRUE, the relocs entry may not be freed. */ + bfd_boolean keep_relocs; /* The section contents. This may be NULL. */ bfd_byte *contents; - /* If this is true, the contents entry may not be freed. */ - boolean keep_contents; + /* If this is TRUE, the contents entry may not be freed. */ + bfd_boolean keep_contents; /* Information cached by coff_find_nearest_line. */ bfd_vma offset; unsigned int i; @@ -291,7 +291,7 @@ struct coff_link_hash_table #define coff_link_hash_traverse(table, func, info) \ (bfd_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ (info))) /* Get the COFF linker hash table from a link_info structure. */ @@ -311,23 +311,23 @@ extern int coff_count_linenumbers PARAMS ((bfd *)); extern struct coff_symbol_struct *coff_symbol_from PARAMS ((bfd *, asymbol *)); -extern boolean coff_renumber_symbols +extern bfd_boolean coff_renumber_symbols PARAMS ((bfd *, int *)); extern void coff_mangle_symbols PARAMS ((bfd *)); -extern boolean coff_write_symbols +extern bfd_boolean coff_write_symbols PARAMS ((bfd *)); -extern boolean coff_write_linenumbers +extern bfd_boolean coff_write_linenumbers PARAMS ((bfd *)); extern alent *coff_get_lineno PARAMS ((bfd *, asymbol *)); extern asymbol *coff_section_symbol PARAMS ((bfd *, char *)); -extern boolean _bfd_coff_get_external_symbols +extern bfd_boolean _bfd_coff_get_external_symbols PARAMS ((bfd *)); extern const char *_bfd_coff_read_string_table PARAMS ((bfd *)); -extern boolean _bfd_coff_free_symbols +extern bfd_boolean _bfd_coff_free_symbols PARAMS ((bfd *)); extern struct coff_ptr_struct *coff_get_normalized_symtab PARAMS ((bfd *)); @@ -339,20 +339,20 @@ extern void coff_print_symbol PARAMS ((bfd *, PTR filep, asymbol *, bfd_print_symbol_type)); extern void coff_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *ret)); -extern boolean _bfd_coff_is_local_label_name +extern bfd_boolean _bfd_coff_is_local_label_name PARAMS ((bfd *, const char *)); extern asymbol *coff_bfd_make_debug_symbol PARAMS ((bfd *, PTR, unsigned long)); -extern boolean coff_find_nearest_line +extern bfd_boolean coff_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); extern int coff_sizeof_headers - PARAMS ((bfd *, boolean)); -extern boolean bfd_coff_reloc16_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); + PARAMS ((bfd *, bfd_boolean)); +extern bfd_boolean bfd_coff_reloc16_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); + bfd_byte *, bfd_boolean, asymbol **)); extern bfd_vma bfd_coff_reloc16_get_value PARAMS ((arelent *, struct bfd_link_info *, asection *)); extern void bfd_perform_slip @@ -454,11 +454,11 @@ struct coff_final_link_info /* Output BFD. */ bfd *output_bfd; /* Used to indicate failure in traversal routine. */ - boolean failed; + bfd_boolean failed; /* If doing "task linking" set only during the time when we want the global symbol writer to convert the storage class of defined global symbols from global to static. */ - boolean global_to_static; + bfd_boolean global_to_static; /* Hash table for long symbol names. */ struct bfd_strtab_hash *strtab; /* When doing a relocateable link, an array of information kept for @@ -532,7 +532,7 @@ struct coff_section_alignment_entry extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -extern boolean _bfd_coff_link_hash_table_init +extern bfd_boolean _bfd_coff_link_hash_table_init PARAMS ((struct coff_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -541,26 +541,26 @@ extern struct bfd_link_hash_table *_bfd_ PARAMS ((bfd *)); extern const char *_bfd_coff_internal_syment_name PARAMS ((bfd *, const struct internal_syment *, char *)); -extern boolean _bfd_coff_link_add_symbols +extern bfd_boolean _bfd_coff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_coff_final_link +extern bfd_boolean _bfd_coff_final_link PARAMS ((bfd *, struct bfd_link_info *)); extern struct internal_reloc *_bfd_coff_read_internal_relocs - PARAMS ((bfd *, asection *, boolean, bfd_byte *, boolean, + PARAMS ((bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean, struct internal_reloc *)); -extern boolean _bfd_coff_generic_relocate_section +extern bfd_boolean _bfd_coff_generic_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -extern boolean _bfd_coff_write_global_sym +extern bfd_boolean _bfd_coff_write_global_sym PARAMS ((struct coff_link_hash_entry *, PTR)); -extern boolean _bfd_coff_write_task_globals +extern bfd_boolean _bfd_coff_write_task_globals PARAMS ((struct coff_link_hash_entry *, PTR)); -extern boolean _bfd_coff_link_input_bfd +extern bfd_boolean _bfd_coff_link_input_bfd PARAMS ((struct coff_final_link_info *, bfd *)); -extern boolean _bfd_coff_reloc_link_order +extern bfd_boolean _bfd_coff_reloc_link_order PARAMS ((bfd *, struct coff_final_link_info *, asection *, struct bfd_link_order *)); @@ -582,19 +582,19 @@ extern struct bfd_link_hash_table *_bfd_ PARAMS ((bfd *)); extern void _bfd_xcoff_bfd_link_hash_table_free PARAMS ((struct bfd_link_hash_table *)); -extern boolean _bfd_xcoff_bfd_link_add_symbols +extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_xcoff_bfd_final_link +extern bfd_boolean _bfd_xcoff_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_ppc_xcoff_relocate_section +extern bfd_boolean _bfd_ppc_xcoff_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); /* Functions in coff-ppc.c. FIXME: These are called be pe.em in the linker, and so should start with bfd and be declared in bfd.h. */ -extern boolean ppc_allocate_toc_section +extern bfd_boolean ppc_allocate_toc_section PARAMS ((struct bfd_link_info *)); -extern boolean ppc_process_before_allocation +extern bfd_boolean ppc_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *)); diff -uprN binutils-2.13.90.0.16/bfd/libcoff.h binutils-2.13.90.0.18/bfd/libcoff.h --- binutils-2.13.90.0.16/bfd/libcoff.h Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/libcoff.h Mon Dec 16 12:22:52 2002 @@ -78,16 +78,16 @@ typedef struct coff_tdata /* The unswapped external symbols. May be NULL. Read by _bfd_coff_get_external_symbols. */ PTR external_syms; - /* If this is true, the external_syms may not be freed. */ - boolean keep_syms; + /* If this is TRUE, the external_syms may not be freed. */ + bfd_boolean keep_syms; /* The string table. May be NULL. Read by _bfd_coff_read_string_table. */ char *strings; - /* If this is true, the strings may not be freed. */ - boolean keep_strings; - /* If this is true, the strings have been written out already. */ - boolean strings_written; + /* If this is TRUE, the strings may not be freed. */ + bfd_boolean keep_strings; + /* If this is TRUE, the strings have been written out already. */ + bfd_boolean strings_written; /* is this a PE format coff file */ int pe; @@ -121,10 +121,10 @@ typedef struct pe_tdata struct internal_extra_pe_aouthdr pe_opthdr; int dll; int has_reloc_section; - boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *)); + bfd_boolean (*in_reloc_p) PARAMS((bfd *, reloc_howto_type *)); flagword real_flags; int target_subsystem; - boolean force_minimum_alignment; + bfd_boolean force_minimum_alignment; } pe_data_type; #define pe_data(bfd) ((bfd)->tdata.pe_obj_data) @@ -136,11 +136,11 @@ struct xcoff_tdata /* Basic COFF information. */ coff_data_type coff; - /* True if this is an XCOFF64 file. */ - boolean xcoff64; + /* TRUE if this is an XCOFF64 file. */ + bfd_boolean xcoff64; - /* True if a large a.out header should be generated. */ - boolean full_aouthdr; + /* TRUE if a large a.out header should be generated. */ + bfd_boolean full_aouthdr; /* TOC value. */ bfd_vma toc; @@ -188,12 +188,12 @@ struct coff_section_tdata { /* The relocs, swapped into COFF internal form. This may be NULL. */ struct internal_reloc *relocs; - /* If this is true, the relocs entry may not be freed. */ - boolean keep_relocs; + /* If this is TRUE, the relocs entry may not be freed. */ + bfd_boolean keep_relocs; /* The section contents. This may be NULL. */ bfd_byte *contents; - /* If this is true, the contents entry may not be freed. */ - boolean keep_contents; + /* If this is TRUE, the contents entry may not be freed. */ + bfd_boolean keep_contents; /* Information cached by coff_find_nearest_line. */ bfd_vma offset; unsigned int i; @@ -295,7 +295,7 @@ struct coff_link_hash_table #define coff_link_hash_traverse(table, func, info) \ (bfd_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ (info))) /* Get the COFF linker hash table from a link_info structure. */ @@ -315,23 +315,23 @@ extern int coff_count_linenumbers PARAMS ((bfd *)); extern struct coff_symbol_struct *coff_symbol_from PARAMS ((bfd *, asymbol *)); -extern boolean coff_renumber_symbols +extern bfd_boolean coff_renumber_symbols PARAMS ((bfd *, int *)); extern void coff_mangle_symbols PARAMS ((bfd *)); -extern boolean coff_write_symbols +extern bfd_boolean coff_write_symbols PARAMS ((bfd *)); -extern boolean coff_write_linenumbers +extern bfd_boolean coff_write_linenumbers PARAMS ((bfd *)); extern alent *coff_get_lineno PARAMS ((bfd *, asymbol *)); extern asymbol *coff_section_symbol PARAMS ((bfd *, char *)); -extern boolean _bfd_coff_get_external_symbols +extern bfd_boolean _bfd_coff_get_external_symbols PARAMS ((bfd *)); extern const char *_bfd_coff_read_string_table PARAMS ((bfd *)); -extern boolean _bfd_coff_free_symbols +extern bfd_boolean _bfd_coff_free_symbols PARAMS ((bfd *)); extern struct coff_ptr_struct *coff_get_normalized_symtab PARAMS ((bfd *)); @@ -343,20 +343,20 @@ extern void coff_print_symbol PARAMS ((bfd *, PTR filep, asymbol *, bfd_print_symbol_type)); extern void coff_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *ret)); -extern boolean _bfd_coff_is_local_label_name +extern bfd_boolean _bfd_coff_is_local_label_name PARAMS ((bfd *, const char *)); extern asymbol *coff_bfd_make_debug_symbol PARAMS ((bfd *, PTR, unsigned long)); -extern boolean coff_find_nearest_line +extern bfd_boolean coff_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); extern int coff_sizeof_headers - PARAMS ((bfd *, boolean)); -extern boolean bfd_coff_reloc16_relax_section - PARAMS ((bfd *, asection *, struct bfd_link_info *, boolean *)); + PARAMS ((bfd *, bfd_boolean)); +extern bfd_boolean bfd_coff_reloc16_relax_section + PARAMS ((bfd *, asection *, struct bfd_link_info *, bfd_boolean *)); extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, boolean, asymbol **)); + bfd_byte *, bfd_boolean, asymbol **)); extern bfd_vma bfd_coff_reloc16_get_value PARAMS ((arelent *, struct bfd_link_info *, asection *)); extern void bfd_perform_slip @@ -458,11 +458,11 @@ struct coff_final_link_info /* Output BFD. */ bfd *output_bfd; /* Used to indicate failure in traversal routine. */ - boolean failed; + bfd_boolean failed; /* If doing "task linking" set only during the time when we want the global symbol writer to convert the storage class of defined global symbols from global to static. */ - boolean global_to_static; + bfd_boolean global_to_static; /* Hash table for long symbol names. */ struct bfd_strtab_hash *strtab; /* When doing a relocateable link, an array of information kept for @@ -536,7 +536,7 @@ struct coff_section_alignment_entry extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -extern boolean _bfd_coff_link_hash_table_init +extern bfd_boolean _bfd_coff_link_hash_table_init PARAMS ((struct coff_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -545,26 +545,26 @@ extern struct bfd_link_hash_table *_bfd_ PARAMS ((bfd *)); extern const char *_bfd_coff_internal_syment_name PARAMS ((bfd *, const struct internal_syment *, char *)); -extern boolean _bfd_coff_link_add_symbols +extern bfd_boolean _bfd_coff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_coff_final_link +extern bfd_boolean _bfd_coff_final_link PARAMS ((bfd *, struct bfd_link_info *)); extern struct internal_reloc *_bfd_coff_read_internal_relocs - PARAMS ((bfd *, asection *, boolean, bfd_byte *, boolean, + PARAMS ((bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean, struct internal_reloc *)); -extern boolean _bfd_coff_generic_relocate_section +extern bfd_boolean _bfd_coff_generic_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -extern boolean _bfd_coff_write_global_sym +extern bfd_boolean _bfd_coff_write_global_sym PARAMS ((struct coff_link_hash_entry *, PTR)); -extern boolean _bfd_coff_write_task_globals +extern bfd_boolean _bfd_coff_write_task_globals PARAMS ((struct coff_link_hash_entry *, PTR)); -extern boolean _bfd_coff_link_input_bfd +extern bfd_boolean _bfd_coff_link_input_bfd PARAMS ((struct coff_final_link_info *, bfd *)); -extern boolean _bfd_coff_reloc_link_order +extern bfd_boolean _bfd_coff_reloc_link_order PARAMS ((bfd *, struct coff_final_link_info *, asection *, struct bfd_link_order *)); @@ -586,20 +586,20 @@ extern struct bfd_link_hash_table *_bfd_ PARAMS ((bfd *)); extern void _bfd_xcoff_bfd_link_hash_table_free PARAMS ((struct bfd_link_hash_table *)); -extern boolean _bfd_xcoff_bfd_link_add_symbols +extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_xcoff_bfd_final_link +extern bfd_boolean _bfd_xcoff_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_ppc_xcoff_relocate_section +extern bfd_boolean _bfd_ppc_xcoff_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); /* Functions in coff-ppc.c. FIXME: These are called be pe.em in the linker, and so should start with bfd and be declared in bfd.h. */ -extern boolean ppc_allocate_toc_section +extern bfd_boolean ppc_allocate_toc_section PARAMS ((struct bfd_link_info *)); -extern boolean ppc_process_before_allocation +extern bfd_boolean ppc_process_before_allocation PARAMS ((bfd *, struct bfd_link_info *)); /* Extracted from coffcode.h. */ @@ -653,7 +653,7 @@ typedef struct coff_symbol_struct struct lineno_cache_entry *lineno; /* Have the line numbers been relocated yet ? */ - boolean done_lineno; + bfd_boolean done_lineno; } coff_symbol_type; /* COFF symbol classifications. */ @@ -711,10 +711,10 @@ typedef struct unsigned int _bfd_relsz; unsigned int _bfd_linesz; unsigned int _bfd_filnmlen; - boolean _bfd_coff_long_filenames; - boolean _bfd_coff_long_section_names; + bfd_boolean _bfd_coff_long_filenames; + bfd_boolean _bfd_coff_long_section_names; unsigned int _bfd_coff_default_section_alignment_power; - boolean _bfd_coff_force_symnames_in_strings; + bfd_boolean _bfd_coff_force_symnames_in_strings; unsigned int _bfd_coff_debug_string_prefix_length; void (*_bfd_coff_swap_filehdr_in) @@ -729,32 +729,32 @@ typedef struct void (*_bfd_coff_swap_reloc_in) PARAMS ((bfd *abfd, PTR, PTR)); - boolean (*_bfd_coff_bad_format_hook) + bfd_boolean (*_bfd_coff_bad_format_hook) PARAMS ((bfd *, PTR)); - boolean (*_bfd_coff_set_arch_mach_hook) + bfd_boolean (*_bfd_coff_set_arch_mach_hook) PARAMS ((bfd *, PTR)); PTR (*_bfd_coff_mkobject_hook) PARAMS ((bfd *, PTR, PTR)); - boolean (*_bfd_styp_to_sec_flags_hook) + bfd_boolean (*_bfd_styp_to_sec_flags_hook) PARAMS ((bfd *, PTR, const char *, asection *, flagword *)); void (*_bfd_set_alignment_hook) PARAMS ((bfd *, asection *, PTR)); - boolean (*_bfd_coff_slurp_symbol_table) + bfd_boolean (*_bfd_coff_slurp_symbol_table) PARAMS ((bfd *)); - boolean (*_bfd_coff_symname_in_debug) + bfd_boolean (*_bfd_coff_symname_in_debug) PARAMS ((bfd *, struct internal_syment *)); - boolean (*_bfd_coff_pointerize_aux_hook) + bfd_boolean (*_bfd_coff_pointerize_aux_hook) PARAMS ((bfd *, combined_entry_type *, combined_entry_type *, unsigned int, combined_entry_type *)); - boolean (*_bfd_coff_print_aux) + bfd_boolean (*_bfd_coff_print_aux) PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *, combined_entry_type *, unsigned int)); @@ -769,13 +769,13 @@ typedef struct enum coff_symbol_classification (*_bfd_coff_classify_symbol) PARAMS ((bfd *, struct internal_syment *)); - boolean (*_bfd_coff_compute_section_file_positions) + bfd_boolean (*_bfd_coff_compute_section_file_positions) PARAMS ((bfd *)); - boolean (*_bfd_coff_start_final_link) + bfd_boolean (*_bfd_coff_start_final_link) PARAMS ((bfd *, struct bfd_link_info *)); - boolean (*_bfd_coff_relocate_section) + bfd_boolean (*_bfd_coff_relocate_section) PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); @@ -784,19 +784,19 @@ typedef struct struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *)); - boolean (*_bfd_coff_adjust_symndx) + bfd_boolean (*_bfd_coff_adjust_symndx) PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, - struct internal_reloc *, boolean *)); + struct internal_reloc *, bfd_boolean *)); - boolean (*_bfd_coff_link_add_one_symbol) + bfd_boolean (*_bfd_coff_link_add_one_symbol) PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, - asection *, bfd_vma, const char *, boolean, boolean, + asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **)); - boolean (*_bfd_coff_link_output_has_begun) + bfd_boolean (*_bfd_coff_link_output_has_begun) PARAMS ((bfd *, struct coff_final_link_info *)); - boolean (*_bfd_coff_final_link_postscript) + bfd_boolean (*_bfd_coff_final_link_postscript) PARAMS ((bfd *, struct coff_final_link_info *)); } bfd_coff_backend_data; diff -uprN binutils-2.13.90.0.16/bfd/libecoff.h binutils-2.13.90.0.18/bfd/libecoff.h --- binutils-2.13.90.0.16/bfd/libecoff.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/bfd/libecoff.h Mon Dec 16 12:22:52 2002 @@ -44,10 +44,10 @@ struct ecoff_backend_data /* The page boundary used to align sections in a demand-paged executable file. E.g., 0x1000. */ bfd_vma round; - /* True if the .rdata section is part of the text segment, as on the - Alpha. False if .rdata is part of the data segment, as on the + /* TRUE if the .rdata section is part of the text segment, as on the + Alpha. FALSE if .rdata is part of the data segment, as on the MIPS. */ - boolean rdata_in_text; + bfd_boolean rdata_in_text; /* Bitsize of constructor entries. */ unsigned int constructor_bitsize; /* Reloc to use for constructor entries. */ @@ -60,18 +60,18 @@ struct ecoff_backend_data void (*swap_reloc_in) PARAMS ((bfd *, PTR, struct internal_reloc *)); void (*swap_reloc_out) PARAMS ((bfd *, const struct internal_reloc *, PTR)); /* Backend reloc tweaking. */ - void (*adjust_reloc_in) PARAMS ((bfd *, const struct internal_reloc *, - arelent *)); - void (*adjust_reloc_out) PARAMS ((bfd *, const arelent *, - struct internal_reloc *)); + void (*adjust_reloc_in) + PARAMS ((bfd *, const struct internal_reloc *, arelent *)); + void (*adjust_reloc_out) + PARAMS ((bfd *, const arelent *, struct internal_reloc *)); /* Relocate section contents while linking. */ - boolean (*relocate_section) PARAMS ((bfd *output_bfd, struct bfd_link_info *, - bfd *input_bfd, asection *input_section, - bfd_byte *contents, - PTR external_relocs)); + bfd_boolean (*relocate_section) + PARAMS ((bfd *output_bfd, struct bfd_link_info *, bfd *input_bfd, + asection *input_section, bfd_byte *contents, + PTR external_relocs)); /* Do final adjustments to filehdr and aouthdr. */ - boolean (*adjust_headers) PARAMS ((bfd *, struct internal_filehdr *, - struct internal_aouthdr *)); + bfd_boolean (*adjust_headers) + PARAMS ((bfd *, struct internal_filehdr *, struct internal_aouthdr *)); /* Read an element from an archive at a given file position. This is needed because OSF/1 3.2 uses a weird archive format. */ bfd *(*get_elt_at_filepos) PARAMS ((bfd *, file_ptr)); @@ -128,12 +128,12 @@ typedef struct ecoff_tdata linking. */ asection **symndx_to_section; - /* True if this BFD was written by the backend linker. */ - boolean linker; + /* TRUE if this BFD was written by the backend linker. */ + bfd_boolean linker; - /* True if a warning that multiple global pointer values are + /* TRUE if a warning that multiple global pointer values are needed in the output binary was issued already. */ - boolean issued_multiple_gp_warning; + bfd_boolean issued_multiple_gp_warning; /* Used by find_nearest_line entry point. The structure could be included directly in this one, but there's no point to wasting @@ -143,7 +143,7 @@ typedef struct ecoff_tdata /* Whether the .rdata section is in the text segment for this particular ECOFF file. This is not valid until ecoff_compute_section_file_positions is called. */ - boolean rdata_in_text; + bfd_boolean rdata_in_text; } ecoff_data_type; @@ -157,8 +157,8 @@ typedef struct ecoff_symbol_struct /* The fdr for this symbol. */ FDR *fdr; - /* true if this is a local symbol rather than an external one. */ - boolean local; + /* TRUE if this is a local symbol rather than an external one. */ + bfd_boolean local; /* A pointer to the unswapped hidden information for this symbol. This is either a struct sym_ext or a struct ext_ext, depending on @@ -249,27 +249,28 @@ struct ecoff_link_hash_table }; /* Make an ECOFF object. */ -extern boolean _bfd_ecoff_mkobject PARAMS ((bfd *)); +extern bfd_boolean _bfd_ecoff_mkobject PARAMS ((bfd *)); /* Read in the ECOFF symbolic debugging information. */ -extern boolean _bfd_ecoff_slurp_symbolic_info +extern bfd_boolean _bfd_ecoff_slurp_symbolic_info PARAMS ((bfd *, asection *, struct ecoff_debug_info *)); /* Generic ECOFF BFD backend vectors. */ -extern boolean _bfd_ecoff_write_object_contents PARAMS ((bfd *abfd)); +extern bfd_boolean _bfd_ecoff_write_object_contents PARAMS ((bfd *abfd)); extern const bfd_target *_bfd_ecoff_archive_p PARAMS ((bfd *abfd)); #define _bfd_ecoff_close_and_cleanup _bfd_generic_close_and_cleanup #define _bfd_ecoff_bfd_free_cached_info _bfd_generic_bfd_free_cached_info -extern boolean _bfd_ecoff_new_section_hook +extern bfd_boolean _bfd_ecoff_new_section_hook PARAMS ((bfd *, asection *)); -extern boolean _bfd_ecoff_get_section_contents +extern bfd_boolean _bfd_ecoff_get_section_contents PARAMS ((bfd *, asection *, PTR location, file_ptr, bfd_size_type)); #define _bfd_ecoff_bfd_link_split_section _bfd_generic_link_split_section -extern boolean _bfd_ecoff_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *)); +extern bfd_boolean _bfd_ecoff_bfd_copy_private_bfd_data + PARAMS ((bfd *, bfd *)); #define _bfd_ecoff_bfd_copy_private_section_data \ _bfd_generic_bfd_copy_private_section_data @@ -283,12 +284,12 @@ extern boolean _bfd_ecoff_bfd_copy_priva _bfd_generic_bfd_merge_private_bfd_data #define _bfd_ecoff_bfd_set_private_flags _bfd_generic_bfd_set_private_flags -extern boolean _bfd_ecoff_slurp_armap PARAMS ((bfd *abfd)); +extern bfd_boolean _bfd_ecoff_slurp_armap PARAMS ((bfd *abfd)); #define _bfd_ecoff_slurp_extended_name_table _bfd_slurp_extended_name_table #define _bfd_ecoff_construct_extended_name_table \ _bfd_archive_bsd_construct_extended_name_table #define _bfd_ecoff_truncate_arname bfd_dont_truncate_arname -extern boolean _bfd_ecoff_write_armap +extern bfd_boolean _bfd_ecoff_write_armap PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); #define _bfd_ecoff_read_ar_hdr _bfd_generic_read_ar_hdr #define _bfd_ecoff_openr_next_archived_file \ @@ -304,10 +305,10 @@ extern void _bfd_ecoff_print_symbol PARAMS ((bfd *, PTR filep, asymbol *, bfd_print_symbol_type)); extern void _bfd_ecoff_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -extern boolean _bfd_ecoff_bfd_is_local_label_name +extern bfd_boolean _bfd_ecoff_bfd_is_local_label_name PARAMS ((bfd *, const char *)); #define _bfd_ecoff_get_lineno _bfd_nosymbols_get_lineno -extern boolean _bfd_ecoff_find_nearest_line +extern bfd_boolean _bfd_ecoff_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma offset, const char **filename_ptr, const char **fnname_ptr, unsigned int *retline_ptr)); @@ -320,21 +321,21 @@ extern long _bfd_ecoff_canonicalize_relo PARAMS ((bfd *, asection *, arelent **, asymbol **symbols)); /* ecoff_bfd_reloc_type_lookup defined by backend. */ -extern boolean _bfd_ecoff_set_arch_mach +extern bfd_boolean _bfd_ecoff_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -extern boolean _bfd_ecoff_set_section_contents +extern bfd_boolean _bfd_ecoff_set_section_contents PARAMS ((bfd *, asection *, PTR location, file_ptr, bfd_size_type)); -extern int _bfd_ecoff_sizeof_headers PARAMS ((bfd *abfd, boolean reloc)); +extern int _bfd_ecoff_sizeof_headers PARAMS ((bfd *abfd, bfd_boolean reloc)); /* ecoff_bfd_get_relocated_section_contents defined by backend. */ /* ecoff_bfd_relax_section defined by backend. */ extern struct bfd_link_hash_table *_bfd_ecoff_bfd_link_hash_table_create PARAMS ((bfd *)); #define _bfd_ecoff_bfd_link_hash_table_free _bfd_generic_link_hash_table_free -extern boolean _bfd_ecoff_bfd_link_add_symbols +extern bfd_boolean _bfd_ecoff_bfd_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); #define _bfd_ecoff_bfd_link_just_syms _bfd_generic_link_just_syms -extern boolean _bfd_ecoff_bfd_final_link +extern bfd_boolean _bfd_ecoff_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); /* Hook functions for the generic COFF section reading code. */ @@ -342,10 +343,11 @@ extern boolean _bfd_ecoff_bfd_final_link extern PTR _bfd_ecoff_mkobject_hook PARAMS ((bfd *, PTR filehdr, PTR aouthdr)); #define _bfd_ecoff_set_alignment_hook \ ((void (*) PARAMS ((bfd *, asection *, PTR))) bfd_void) -extern boolean _bfd_ecoff_set_arch_mach_hook PARAMS ((bfd *abfd, PTR filehdr)); -extern boolean _bfd_ecoff_styp_to_sec_flags +extern bfd_boolean _bfd_ecoff_set_arch_mach_hook + PARAMS ((bfd *abfd, PTR filehdr)); +extern bfd_boolean _bfd_ecoff_styp_to_sec_flags PARAMS ((bfd *, PTR, const char *, asection *, flagword *)); -extern boolean _bfd_ecoff_slurp_symbol_table PARAMS ((bfd *abfd)); +extern bfd_boolean _bfd_ecoff_slurp_symbol_table PARAMS ((bfd *abfd)); /* ECOFF auxiliary information swapping routines. These are the same for all ECOFF targets, so they are defined in ecofflink.c. */ diff -uprN binutils-2.13.90.0.16/bfd/libieee.h binutils-2.13.90.0.18/bfd/libieee.h --- binutils-2.13.90.0.16/bfd/libieee.h Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/libieee.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* IEEE-695 object file formats: definitions internal to BFD. - Copyright 1990, 1991, 1992, 1994, 1996, 2001 + Copyright 1990, 1991, 1992, 1994, 1996, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. Mostly Steve Chamberlain's fault. @@ -56,7 +56,7 @@ typedef struct ieee_per_section /* For output */ file_ptr current_pos; unsigned int current_byte; - boolean initialized; + bfd_boolean initialized; ieee_reloc_type **reloc_tail_ptr; } ieee_per_section_type; @@ -72,8 +72,8 @@ typedef struct { typedef struct ieee_data_struct { common_header_type h; - boolean read_symbols; - boolean read_data; + bfd_boolean read_symbols; + bfd_boolean read_data; file_ptr output_cursor; /* Map of section indexes to section ptrs */ asection **section_table; @@ -103,10 +103,10 @@ typedef struct ieee_data_struct int external_reference_base_offset; - boolean symbol_table_full; + bfd_boolean symbol_table_full; -boolean done_debug; +bfd_boolean done_debug; bfd_chain_type *chain_head; diff -uprN binutils-2.13.90.0.16/bfd/libnlm.h binutils-2.13.90.0.18/bfd/libnlm.h --- binutils-2.13.90.0.16/bfd/libnlm.h Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/libnlm.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end data structures for NLM (NetWare Loadable Modules) files. - Copyright 1993, 1994, 2001 Free Software Foundation, Inc. + Copyright 1993, 1994, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -52,32 +52,33 @@ typedef struct struct nlm_relent *relocs; } nlmNAME(symbol_type); -extern boolean nlm_mkobject PARAMS ((bfd *)); -extern boolean nlm_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, - unsigned long)); +extern bfd_boolean nlm_mkobject + PARAMS ((bfd *)); +extern bfd_boolean nlm_set_arch_mach + PARAMS ((bfd *, enum bfd_architecture, unsigned long)); extern void nlmNAME(get_symbol_info) - PARAMS ((bfd *, asymbol *, symbol_info *)); + PARAMS ((bfd *, asymbol *, symbol_info *)); extern long nlmNAME(get_symtab_upper_bound) - PARAMS ((bfd *)); + PARAMS ((bfd *)); extern long nlmNAME(get_symtab) - PARAMS ((bfd *, asymbol **)); + PARAMS ((bfd *, asymbol **)); extern asymbol *nlmNAME(make_empty_symbol) - PARAMS ((bfd *)); + PARAMS ((bfd *)); extern void nlmNAME(print_symbol) - PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); + PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); extern long nlmNAME(get_reloc_upper_bound) - PARAMS ((bfd *, asection *)); + PARAMS ((bfd *, asection *)); extern long nlmNAME(canonicalize_reloc) - PARAMS ((bfd *, asection *, arelent **, asymbol **)); + PARAMS ((bfd *, asection *, arelent **, asymbol **)); extern const bfd_target *nlmNAME(object_p) - PARAMS ((bfd *)); -extern boolean nlmNAME(set_arch_mach) - PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -extern boolean nlmNAME(set_section_contents) - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -extern boolean nlmNAME(write_object_contents) - PARAMS ((bfd *)); + PARAMS ((bfd *)); +extern bfd_boolean nlmNAME(set_arch_mach) + PARAMS ((bfd *, enum bfd_architecture, unsigned long)); +extern bfd_boolean nlmNAME(set_section_contents) + PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); +extern bfd_boolean nlmNAME(write_object_contents) + PARAMS ((bfd *)); /* Some private data is stashed away for future use using the tdata pointer in the bfd structure. */ @@ -165,16 +166,16 @@ struct nlm_backend_data /* Some NLM formats do not use the uninitialized data section, so all uninitialized data must be put into the regular data section instead. */ - boolean no_uninitialized_data; + bfd_boolean no_uninitialized_data; /* Some NLM formats have a prefix on the file. If this function is not NULL, it will be called by nlm_object_p. It should return - true if this file could match this format, and it should leave + TRUE if this file could match this format, and it should leave the BFD such that a bfd_bread will pick up the fixed header. */ - boolean (*nlm_backend_object_p) PARAMS ((bfd *)); + bfd_boolean (*nlm_backend_object_p) PARAMS ((bfd *)); /* Write out the prefix. This function may be NULL. This must write out the same number of bytes as is in the field optional_prefix_size. */ - boolean (*nlm_write_prefix) PARAMS ((bfd *)); + bfd_boolean (*nlm_write_prefix) PARAMS ((bfd *)); /* Read a relocation fixup from abfd. The reloc information is machine specific. The second argument is the symbol if this is an import, or NULL if this is a reloc fixup. This function @@ -182,36 +183,33 @@ struct nlm_backend_data belongs in, and the fourth argument to the reloc itself; it does not need to fill in the sym_ptr_ptr field for a reloc against an import symbol. */ - boolean (*nlm_read_reloc) PARAMS ((bfd *, nlmNAME(symbol_type) *, - asection **, arelent *)); + bfd_boolean (*nlm_read_reloc) + PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *)); /* To make objcopy to an i386 NLM work, the i386 backend needs a chance to work over the relocs. This is a bit icky. */ - boolean (*nlm_mangle_relocs) PARAMS ((bfd *, asection *, PTR data, - bfd_vma offset, - bfd_size_type count)); + bfd_boolean (*nlm_mangle_relocs) + PARAMS ((bfd *, asection *, PTR data, bfd_vma offset, bfd_size_type count)); /* Read an import record from abfd. It would be nice if this were in a machine-dependent format, but it doesn't seem to be. */ - boolean (*nlm_read_import) PARAMS ((bfd *, nlmNAME(symbol_type) *)); + bfd_boolean (*nlm_read_import) PARAMS ((bfd *, nlmNAME(symbol_type) *)); /* Write an import record to abfd. */ - boolean (*nlm_write_import) PARAMS ((bfd *, asection *, arelent *)); + bfd_boolean (*nlm_write_import) PARAMS ((bfd *, asection *, arelent *)); /* Set the section for a public symbol. This may be NULL, in which case a default method will be used. */ - boolean (*nlm_set_public_section) PARAMS ((bfd *, nlmNAME(symbol_type) *)); + bfd_boolean (*nlm_set_public_section) + PARAMS ((bfd *, nlmNAME(symbol_type) *)); /* Get the offset to write out for a public symbol. This may be NULL, in which case a default method will be used. */ bfd_vma (*nlm_get_public_offset) PARAMS ((bfd *, asymbol *)); /* Swap the fixed header in and out */ - void (*nlm_swap_fhdr_in) PARAMS ((bfd *, - PTR, - Nlm_Internal_Fixed_Header *)); - void (*nlm_swap_fhdr_out) PARAMS ((bfd *, - struct nlm_internal_fixed_header *, - PTR)); + void (*nlm_swap_fhdr_in) + PARAMS ((bfd *, PTR, Nlm_Internal_Fixed_Header *)); + void (*nlm_swap_fhdr_out) + PARAMS ((bfd *, struct nlm_internal_fixed_header *, PTR)); /* Write out an external reference. */ - boolean (*nlm_write_external) PARAMS ((bfd *, bfd_size_type, - asymbol *, - struct reloc_and_sec *)); - boolean (*nlm_write_export) PARAMS ((bfd *, asymbol *, bfd_vma)); + bfd_boolean (*nlm_write_external) + PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *)); + bfd_boolean (*nlm_write_export) PARAMS ((bfd *, asymbol *, bfd_vma)); }; #define nlm_backend(bfd) \ diff -uprN binutils-2.13.90.0.16/bfd/liboasys.h binutils-2.13.90.0.18/bfd/liboasys.h --- binutils-2.13.90.0.16/bfd/liboasys.h Fri Mar 9 11:16:02 2001 +++ binutils-2.13.90.0.18/bfd/liboasys.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD internal declarations for Oasys file format handling. - Copyright 1990, 1991, 1992, 1993, 1994, 1997 + Copyright 1990, 1991, 1992, 1993, 1994, 1997, 2002 Free Software Foundation, Inc. Scrawled by Steve Chamberlain of Cygnus Support. @@ -39,14 +39,14 @@ typedef struct _oasys_per_section asection *section; bfd_byte *data; bfd_vma offset; - boolean had_vma; + bfd_boolean had_vma; oasys_reloc_type **reloc_tail_ptr; bfd_vma pc; file_ptr current_pos; unsigned int current_byte; - boolean initialized; + bfd_boolean initialized; } oasys_per_section_type; #define NSECTIONS 10 diff -uprN binutils-2.13.90.0.16/bfd/libpei.h binutils-2.13.90.0.18/bfd/libpei.h --- binutils-2.13.90.0.16/bfd/libpei.h Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/libpei.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* Support for the generic parts of PE/PEI; common header information. - Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Solutions. @@ -313,13 +313,13 @@ unsigned int _bfd_XXi_swap_aouthdr_out P unsigned int _bfd_XXi_swap_scnhdr_out PARAMS ((bfd *, PTR, PTR)); #define coff_swap_scnhdr_out _bfd_XXi_swap_scnhdr_out -boolean _bfd_XX_print_private_bfd_data_common PARAMS ((bfd *, PTR)); +bfd_boolean _bfd_XX_print_private_bfd_data_common PARAMS ((bfd *, PTR)); -boolean _bfd_XX_bfd_copy_private_bfd_data_common PARAMS ((bfd *, bfd *)); +bfd_boolean _bfd_XX_bfd_copy_private_bfd_data_common PARAMS ((bfd *, bfd *)); void _bfd_XX_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -boolean _bfd_XXi_final_link_postscript +bfd_boolean _bfd_XXi_final_link_postscript PARAMS ((bfd *, struct coff_final_link_info *)); #ifndef coff_final_link_postscript @@ -331,5 +331,5 @@ boolean _bfd_XXi_final_link_postscript unsigned int _bfd_XX_only_swap_filehdr_out PARAMS ((bfd*, PTR, PTR)); unsigned int _bfd_XXi_only_swap_filehdr_out PARAMS ((bfd*, PTR, PTR)); -boolean _bfd_XX_bfd_copy_private_section_data +bfd_boolean _bfd_XX_bfd_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); diff -uprN binutils-2.13.90.0.16/bfd/libxcoff.h binutils-2.13.90.0.18/bfd/libxcoff.h --- binutils-2.13.90.0.16/bfd/libxcoff.h Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.18/bfd/libxcoff.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD XCOFF object file private structure. - Copyright (C) 2001, 2002 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. Written by Tom Rix, Redhat. This file is part of BFD, the Binary File Descriptor library. @@ -68,11 +68,11 @@ struct xcoff_backend_data_rec 2 : XCOFF64. */ unsigned long _xcoff_ldhdr_version; - boolean (* _xcoff_put_symbol_name) + bfd_boolean (* _xcoff_put_symbol_name) PARAMS ((bfd *, struct bfd_strtab_hash *, struct internal_syment *, const char *)); - boolean (* _xcoff_put_ldsymbol_name) + bfd_boolean (* _xcoff_put_ldsymbol_name) PARAMS ((bfd *, struct xcoff_loader_info *, struct internal_ldsym *, const char *)); @@ -84,9 +84,9 @@ struct xcoff_backend_data_rec /* Line number and relocation overflow. XCOFF32 overflows to another section when the line number or the relocation count exceeds 0xffff. XCOFF64 does not overflow. */ - boolean (*_xcoff_is_lineno_count_overflow) + bfd_boolean (*_xcoff_is_lineno_count_overflow) PARAMS ((bfd *, bfd_vma)); - boolean (*_xcoff_is_reloc_count_overflow) + bfd_boolean (*_xcoff_is_reloc_count_overflow) PARAMS ((bfd *, bfd_vma)); /* Loader section symbol and relocation table offset @@ -106,8 +106,8 @@ struct xcoff_backend_data_rec /* rtinit. */ unsigned int _xcoff_rtinit_size; - boolean (*_xcoff_generate_rtinit) - PARAMS ((bfd *, const char *, const char *, boolean)); + bfd_boolean (*_xcoff_generate_rtinit) + PARAMS ((bfd *, const char *, const char *, bfd_boolean)); }; /* Look up an entry in an XCOFF link hash table. */ @@ -120,7 +120,7 @@ struct xcoff_backend_data_rec #define xcoff_link_hash_traverse(table, func, info) \ (bfd_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \ (info))) /* Get the XCOFF link hash table from the info structure. This is @@ -227,19 +227,19 @@ struct xcoff_backend_data_rec #define XCOFF_COMPLAIN_FUNCTION_ARGS \ bfd *, bfd_vma, bfd_vma, struct reloc_howto_struct *howto -extern boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION]) +extern bfd_boolean (*xcoff_calculate_relocation[XCOFF_MAX_CALCULATE_RELOCATION]) PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -extern boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW]) +extern bfd_boolean (*xcoff_complain_overflow[XCOFF_MAX_COMPLAIN_OVERFLOW]) PARAMS ((XCOFF_COMPLAIN_FUNCTION_ARGS)); /* Relocation functions */ -boolean xcoff_reloc_type_noop PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean xcoff_reloc_type_fail PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean xcoff_reloc_type_pos PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean xcoff_reloc_type_neg PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean xcoff_reloc_type_rel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean xcoff_reloc_type_toc PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean xcoff_reloc_type_ba PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); -boolean xcoff_reloc_type_crel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_noop PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_fail PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_pos PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_neg PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_rel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_toc PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_ba PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); +bfd_boolean xcoff_reloc_type_crel PARAMS ((XCOFF_RELOC_FUNCTION_ARGS)); #endif /* LIBXCOFF_H */ diff -uprN binutils-2.13.90.0.16/bfd/linker.c binutils-2.13.90.0.18/bfd/linker.c --- binutils-2.13.90.0.16/bfd/linker.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/linker.c Tue Jan 21 10:21:32 2003 @@ -200,7 +200,7 @@ SUBSUBSECTION read the symbol information, the <<_bfd_link_add_symbols>> routine should save it somewhere attached to the object file BFD. However, the information should only be saved if the - <> field of the <> argument is true, so + <> field of the <> argument is TRUE, so that the <<-no-keep-memory>> linker switch is effective. The a.out function which adds symbols from an object file is @@ -406,32 +406,34 @@ SUBSUBSECTION file at the end of <>. */ -static boolean generic_link_read_symbols +static bfd_boolean generic_link_read_symbols PARAMS ((bfd *)); -static boolean generic_link_add_symbols - PARAMS ((bfd *, struct bfd_link_info *, boolean collect)); -static boolean generic_link_add_object_symbols - PARAMS ((bfd *, struct bfd_link_info *, boolean collect)); -static boolean generic_link_check_archive_element_no_collect - PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded)); -static boolean generic_link_check_archive_element_collect - PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded)); -static boolean generic_link_check_archive_element - PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded, boolean collect)); -static boolean generic_link_add_symbol_list +static bfd_boolean generic_link_add_symbols + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect)); +static bfd_boolean generic_link_add_object_symbols + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean collect)); +static bfd_boolean generic_link_check_archive_element_no_collect + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); +static bfd_boolean generic_link_check_archive_element_collect + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); +static bfd_boolean generic_link_check_archive_element + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded, + bfd_boolean collect)); +static bfd_boolean generic_link_add_symbol_list PARAMS ((bfd *, struct bfd_link_info *, bfd_size_type count, asymbol **, - boolean collect)); -static bfd *hash_entry_bfd PARAMS ((struct bfd_link_hash_entry *)); + bfd_boolean collect)); +static bfd *hash_entry_bfd + PARAMS ((struct bfd_link_hash_entry *)); static void set_symbol_from_hash PARAMS ((asymbol *, struct bfd_link_hash_entry *)); -static boolean generic_add_output_symbol +static bfd_boolean generic_add_output_symbol PARAMS ((bfd *, size_t *psymalloc, asymbol *)); -static boolean default_data_link_order +static bfd_boolean default_data_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *)); -static boolean default_indirect_link_order +static bfd_boolean default_indirect_link_order PARAMS ((bfd *, struct bfd_link_info *, asection *, - struct bfd_link_order *, boolean)); + struct bfd_link_order *, bfd_boolean)); /* The link hash table structure is defined in bfdlink.h. It provides a base hash table which the backend specific hash tables are built @@ -472,7 +474,7 @@ _bfd_link_hash_newfunc (entry, table, st /* Initialize a link hash table. The BFD argument is the one responsible for creating this table. */ -boolean +bfd_boolean _bfd_link_hash_table_init (table, abfd, newfunc) struct bfd_link_hash_table *table; bfd *abfd; @@ -488,7 +490,7 @@ _bfd_link_hash_table_init (table, abfd, return bfd_hash_table_init (&table->table, newfunc); } -/* Look up a symbol in a link hash table. If follow is true, we +/* Look up a symbol in a link hash table. If follow is TRUE, we follow bfd_link_hash_indirect and bfd_link_hash_warning links to the real symbol. */ @@ -496,9 +498,9 @@ struct bfd_link_hash_entry * bfd_link_hash_lookup (table, string, create, copy, follow) struct bfd_link_hash_table *table; const char *string; - boolean create; - boolean copy; - boolean follow; + bfd_boolean create; + bfd_boolean copy; + bfd_boolean follow; { struct bfd_link_hash_entry *ret; @@ -524,9 +526,9 @@ bfd_wrapped_link_hash_lookup (abfd, info bfd *abfd; struct bfd_link_info *info; const char *string; - boolean create; - boolean copy; - boolean follow; + bfd_boolean create; + bfd_boolean copy; + bfd_boolean follow; { bfd_size_type amt; @@ -541,7 +543,7 @@ bfd_wrapped_link_hash_lookup (abfd, info #undef WRAP #define WRAP "__wrap_" - if (bfd_hash_lookup (info->wrap_hash, l, false, false) != NULL) + if (bfd_hash_lookup (info->wrap_hash, l, FALSE, FALSE) != NULL) { char *n; struct bfd_link_hash_entry *h; @@ -559,7 +561,7 @@ bfd_wrapped_link_hash_lookup (abfd, info n[1] = '\0'; strcat (n, WRAP); strcat (n, l); - h = bfd_link_hash_lookup (info->hash, n, create, true, follow); + h = bfd_link_hash_lookup (info->hash, n, create, TRUE, follow); free (n); return h; } @@ -572,7 +574,7 @@ bfd_wrapped_link_hash_lookup (abfd, info if (*l == '_' && strncmp (l, REAL, sizeof REAL - 1) == 0 && bfd_hash_lookup (info->wrap_hash, l + sizeof REAL - 1, - false, false) != NULL) + FALSE, FALSE) != NULL) { char *n; struct bfd_link_hash_entry *h; @@ -590,7 +592,7 @@ bfd_wrapped_link_hash_lookup (abfd, info n[0] = bfd_get_symbol_leading_char (abfd); n[1] = '\0'; strcat (n, l + sizeof REAL - 1); - h = bfd_link_hash_lookup (info->hash, n, create, true, follow); + h = bfd_link_hash_lookup (info->hash, n, create, TRUE, follow); free (n); return h; } @@ -610,11 +612,11 @@ bfd_wrapped_link_hash_lookup (abfd, info void bfd_link_hash_traverse (table, func, info) struct bfd_link_hash_table *table; - boolean (*func) PARAMS ((struct bfd_link_hash_entry *, PTR)); + bfd_boolean (*func) PARAMS ((struct bfd_link_hash_entry *, PTR)); PTR info; { bfd_hash_traverse (&table->table, - ((boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) + ((bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) func), info); } @@ -634,7 +636,7 @@ bfd_link_add_undef (table, h) table->undefs_tail = h; } -/* Routine to create an entry in an generic link hash table. */ +/* Routine to create an entry in a generic link hash table. */ struct bfd_hash_entry * _bfd_generic_link_hash_newfunc (entry, table, string) @@ -660,14 +662,14 @@ _bfd_generic_link_hash_newfunc (entry, t /* Set local fields. */ ret = (struct generic_link_hash_entry *) entry; - ret->written = false; + ret->written = FALSE; ret->sym = NULL; } return entry; } -/* Create an generic link hash table. */ +/* Create a generic link hash table. */ struct bfd_link_hash_table * _bfd_generic_link_hash_table_create (abfd) @@ -706,7 +708,7 @@ _bfd_generic_link_hash_table_free (hash) the hash table pointing to different instances of the symbol structure. */ -static boolean +static bfd_boolean generic_link_read_symbols (abfd) bfd *abfd; { @@ -717,30 +719,30 @@ generic_link_read_symbols (abfd) symsize = bfd_get_symtab_upper_bound (abfd); if (symsize < 0) - return false; + return FALSE; bfd_get_outsymbols (abfd) = (asymbol **) bfd_alloc (abfd, (bfd_size_type) symsize); if (bfd_get_outsymbols (abfd) == NULL && symsize != 0) - return false; + return FALSE; symcount = bfd_canonicalize_symtab (abfd, bfd_get_outsymbols (abfd)); if (symcount < 0) - return false; + return FALSE; bfd_get_symcount (abfd) = symcount; } - return true; + return TRUE; } /* Generic function to add symbols to from an object file to the global hash table. This version does not automatically collect constructors by name. */ -boolean +bfd_boolean _bfd_generic_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { - return generic_link_add_symbols (abfd, info, false); + return generic_link_add_symbols (abfd, info, FALSE); } /* Generic function to add symbols from an object file to the global @@ -750,12 +752,12 @@ _bfd_generic_link_add_symbols (abfd, inf constructors and destructors; these are approximately those targets for which gcc uses collect2 and do not support stabs. */ -boolean +bfd_boolean _bfd_generic_link_add_symbols_collect (abfd, info) bfd *abfd; struct bfd_link_info *info; { - return generic_link_add_symbols (abfd, info, true); + return generic_link_add_symbols (abfd, info, TRUE); } /* Indicate that we are only retrieving symbol values from this @@ -773,13 +775,13 @@ _bfd_generic_link_just_syms (sec, info) /* Add symbols from an object file to the global hash table. */ -static boolean +static bfd_boolean generic_link_add_symbols (abfd, info, collect) bfd *abfd; struct bfd_link_info *info; - boolean collect; + bfd_boolean collect; { - boolean ret; + bfd_boolean ret; switch (bfd_get_format (abfd)) { @@ -795,7 +797,7 @@ generic_link_add_symbols (abfd, info, co break; default: bfd_set_error (bfd_error_wrong_format); - ret = false; + ret = FALSE; } return ret; @@ -803,17 +805,17 @@ generic_link_add_symbols (abfd, info, co /* Add symbols from an object file to the global hash table. */ -static boolean +static bfd_boolean generic_link_add_object_symbols (abfd, info, collect) bfd *abfd; struct bfd_link_info *info; - boolean collect; + bfd_boolean collect; { bfd_size_type symcount; struct symbol_cache_entry **outsyms; if (! generic_link_read_symbols (abfd)) - return false; + return FALSE; symcount = _bfd_generic_link_get_symcount (abfd); outsyms = _bfd_generic_link_get_symbols (abfd); return generic_link_add_symbol_list (abfd, info, symcount, outsyms, collect); @@ -848,7 +850,7 @@ struct archive_hash_table static struct bfd_hash_entry *archive_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean archive_hash_table_init +static bfd_boolean archive_hash_table_init PARAMS ((struct archive_hash_table *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, @@ -887,7 +889,7 @@ archive_hash_newfunc (entry, table, stri /* Initialize an archive hash table. */ -static boolean +static bfd_boolean archive_hash_table_init (table, newfunc) struct archive_hash_table *table; struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, @@ -927,10 +929,10 @@ archive_hash_table_init (table, newfunc) re-search the symbol table each time a new object file was added. The CHECKFN argument is used to see if an object file should be - included. CHECKFN should set *PNEEDED to true if the object file + included. CHECKFN should set *PNEEDED to TRUE if the object file should be included, and must also call the bfd_link_info add_archive_element callback function and handle adding the symbols - to the global hash table. CHECKFN should only return false if some + to the global hash table. CHECKFN should only return FALSE if some sort of error occurs. For some formats, such as a.out, it is possible to look through an @@ -944,12 +946,12 @@ archive_hash_table_init (table, newfunc) may create new undefined symbols which cause a previously examined object file to be included. */ -boolean +bfd_boolean _bfd_generic_link_add_archive_symbols (abfd, info, checkfn) bfd *abfd; struct bfd_link_info *info; - boolean (*checkfn) PARAMS ((bfd *, struct bfd_link_info *, - boolean *pneeded)); + bfd_boolean (*checkfn) + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); { carsym *arsyms; carsym *arsym_end; @@ -963,9 +965,9 @@ _bfd_generic_link_add_archive_symbols (a { /* An empty archive is a special case. */ if (bfd_openr_next_archived_file (abfd, (bfd *) NULL) == NULL) - return true; + return TRUE; bfd_set_error (bfd_error_no_armap); - return false; + return FALSE; } arsyms = bfd_ardata (abfd)->symdefs; @@ -974,13 +976,13 @@ _bfd_generic_link_add_archive_symbols (a /* In order to quickly determine whether an symbol is defined in this archive, we build a hash table of the symbols. */ if (! archive_hash_table_init (&arsym_hash, archive_hash_newfunc)) - return false; + return FALSE; for (arsym = arsyms, indx = 0; arsym < arsym_end; arsym++, indx++) { struct archive_hash_entry *arh; struct archive_list *l, **pp; - arh = archive_hash_lookup (&arsym_hash, arsym->name, true, false); + arh = archive_hash_lookup (&arsym_hash, arsym->name, TRUE, FALSE); if (arh == (struct archive_hash_entry *) NULL) goto error_return; l = ((struct archive_list *) @@ -1032,7 +1034,7 @@ _bfd_generic_link_add_archive_symbols (a } /* Look for this symbol in the archive symbol map. */ - arh = archive_hash_lookup (&arsym_hash, h->root.string, false, false); + arh = archive_hash_lookup (&arsym_hash, h->root.string, FALSE, FALSE); if (arh == (struct archive_hash_entry *) NULL) { /* If we haven't found the exact symbol we're looking for, @@ -1042,10 +1044,10 @@ _bfd_generic_link_add_archive_symbols (a bfd_size_type amt = strlen (h->root.string) + 10; char *buf = (char *) bfd_malloc (amt); if (buf == NULL) - return false; + return FALSE; sprintf (buf, "__imp_%s", h->root.string); - arh = archive_hash_lookup (&arsym_hash, buf, false, false); + arh = archive_hash_lookup (&arsym_hash, buf, FALSE, FALSE); free(buf); } if (arh == (struct archive_hash_entry *) NULL) @@ -1058,7 +1060,7 @@ _bfd_generic_link_add_archive_symbols (a for (l = arh->defs; l != (struct archive_list *) NULL; l = l->next) { bfd *element; - boolean needed; + bfd_boolean needed; /* If the symbol has gotten defined along the way, quit. */ if (h->type != bfd_link_hash_undefined @@ -1107,11 +1109,11 @@ _bfd_generic_link_add_archive_symbols (a /* Save PASS in case we are called again. */ abfd->archive_pass = pass; - return true; + return TRUE; error_return: archive_hash_table_free (&arsym_hash); - return false; + return FALSE; } /* See if we should include an archive element. This version is used @@ -1119,44 +1121,44 @@ _bfd_generic_link_add_archive_symbols (a the symbol name, presumably because we have some other mechanism for finding them. */ -static boolean +static bfd_boolean generic_link_check_archive_element_no_collect (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { - return generic_link_check_archive_element (abfd, info, pneeded, false); + return generic_link_check_archive_element (abfd, info, pneeded, FALSE); } /* See if we should include an archive element. This version is used when we want to automatically collect constructors based on the symbol name, as collect2 does. */ -static boolean +static bfd_boolean generic_link_check_archive_element_collect (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { - return generic_link_check_archive_element (abfd, info, pneeded, true); + return generic_link_check_archive_element (abfd, info, pneeded, TRUE); } /* See if we should include an archive element. Optionally collect constructors. */ -static boolean +static bfd_boolean generic_link_check_archive_element (abfd, info, pneeded, collect) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; - boolean collect; + bfd_boolean *pneeded; + bfd_boolean collect; { asymbol **pp, **ppend; - *pneeded = false; + *pneeded = FALSE; if (! generic_link_read_symbols (abfd)) - return false; + return FALSE; pp = _bfd_generic_link_get_symbols (abfd); ppend = pp + _bfd_generic_link_get_symcount (abfd); @@ -1177,8 +1179,8 @@ generic_link_check_archive_element (abfd symbol (type bfd_link_hash_undefweak) is not considered to be a reference when pulling files out of an archive. See the SVR4 ABI, p. 4-27. */ - h = bfd_link_hash_lookup (info->hash, bfd_asymbol_name (p), false, - false, true); + h = bfd_link_hash_lookup (info->hash, bfd_asymbol_name (p), FALSE, + FALSE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL || (h->type != bfd_link_hash_undefined && h->type != bfd_link_hash_common)) @@ -1194,14 +1196,14 @@ generic_link_check_archive_element (abfd /* This object file defines this symbol, so pull it in. */ if (! (*info->callbacks->add_archive_element) (info, abfd, bfd_asymbol_name (p))) - return false; + return FALSE; symcount = _bfd_generic_link_get_symcount (abfd); symbols = _bfd_generic_link_get_symbols (abfd); if (! generic_link_add_symbol_list (abfd, info, symcount, symbols, collect)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } /* P is a common symbol. */ @@ -1220,9 +1222,9 @@ generic_link_check_archive_element (abfd file. This is for the -u option in the linker. */ if (! (*info->callbacks->add_archive_element) (info, abfd, bfd_asymbol_name (p))) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } /* Turn the symbol into a common symbol but do not link in @@ -1238,7 +1240,7 @@ generic_link_check_archive_element (abfd bfd_hash_allocate (&info->hash->table, sizeof (struct bfd_link_hash_common_entry))); if (h->u.c.p == NULL) - return false; + return FALSE; size = bfd_asymbol_value (p); h->u.c.size = size; @@ -1267,22 +1269,22 @@ generic_link_check_archive_element (abfd } /* This archive element is not needed. */ - return true; + return TRUE; } /* Add the symbols from an object file to the global hash table. ABFD is the object file. INFO is the linker information. SYMBOL_COUNT is the number of symbols. SYMBOLS is the list of symbols. COLLECT - is true if constructors should be automatically collected by name + is TRUE if constructors should be automatically collected by name as is done by collect2. */ -static boolean +static bfd_boolean generic_link_add_symbol_list (abfd, info, symbol_count, symbols, collect) bfd *abfd; struct bfd_link_info *info; bfd_size_type symbol_count; asymbol **symbols; - boolean collect; + bfd_boolean collect; { asymbol **pp, **ppend; @@ -1331,8 +1333,8 @@ generic_link_add_symbol_list (abfd, info bh = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, name, p->flags, bfd_get_section (p), - p->value, string, false, collect, &bh))) - return false; + p->value, string, FALSE, collect, &bh))) + return FALSE; h = (struct generic_link_hash_entry *) bh; /* If this is a constructor symbol, and the linker didn't do @@ -1379,7 +1381,7 @@ generic_link_add_symbol_list (abfd, info } } - return true; + return TRUE; } /* We use a state table to deal with adding symbols from an object @@ -1506,15 +1508,15 @@ hash_entry_bfd (h) STRING is used for either an indirect symbol, in which case it is the name of the symbol to indirect to, or a warning symbol, in which case it is the warning string. - COPY is true if NAME or STRING must be copied into locally + COPY is TRUE if NAME or STRING must be copied into locally allocated memory if they need to be saved. - COLLECT is true if we should automatically collect gcc constructor + COLLECT is TRUE if we should automatically collect gcc constructor or destructor names as collect2 does. HASHP, if not NULL, is a place to store the created hash table entry; if *HASHP is not NULL, the caller has already looked up the hash table entry, and stored it in *HASHP. */ -boolean +bfd_boolean _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp) struct bfd_link_info *info; @@ -1524,13 +1526,13 @@ _bfd_generic_link_add_one_symbol (info, asection *section; bfd_vma value; const char *string; - boolean copy; - boolean collect; + bfd_boolean copy; + bfd_boolean collect; struct bfd_link_hash_entry **hashp; { enum link_row row; struct bfd_link_hash_entry *h; - boolean cycle; + bfd_boolean cycle; if (bfd_is_ind_section (section) || (flags & BSF_INDIRECT) != 0) @@ -1558,25 +1560,25 @@ _bfd_generic_link_add_one_symbol (info, else { if (row == UNDEF_ROW || row == UNDEFW_ROW) - h = bfd_wrapped_link_hash_lookup (abfd, info, name, true, copy, false); + h = bfd_wrapped_link_hash_lookup (abfd, info, name, TRUE, copy, FALSE); else - h = bfd_link_hash_lookup (info->hash, name, true, copy, false); + h = bfd_link_hash_lookup (info->hash, name, TRUE, copy, FALSE); if (h == NULL) { if (hashp != NULL) *hashp = NULL; - return false; + return FALSE; } } if (info->notice_all || (info->notice_hash != (struct bfd_hash_table *) NULL - && (bfd_hash_lookup (info->notice_hash, name, false, false) + && (bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != (struct bfd_hash_entry *) NULL))) { if (! (*info->callbacks->notice) (info, h->root.string, abfd, section, value)) - return false; + return FALSE; } if (hashp != (struct bfd_link_hash_entry **) NULL) @@ -1586,7 +1588,7 @@ _bfd_generic_link_add_one_symbol (info, { enum link_action action; - cycle = false; + cycle = FALSE; action = link_action[(int) row][(int) h->type]; switch (action) { @@ -1618,7 +1620,7 @@ _bfd_generic_link_add_one_symbol (info, (info, h->root.string, h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size, abfd, bfd_link_hash_defined, (bfd_vma) 0))) - return false; + return FALSE; /* Fall through. */ case DEF: case DEFW: @@ -1678,7 +1680,7 @@ _bfd_generic_link_add_one_symbol (info, if (! ((*info->callbacks->constructor) (info, c == 'I', h->root.string, abfd, section, value))) - return false; + return FALSE; } } } @@ -1696,7 +1698,7 @@ _bfd_generic_link_add_one_symbol (info, bfd_hash_allocate (&info->hash->table, sizeof (struct bfd_link_hash_common_entry))); if (h->u.c.p == NULL) - return false; + return FALSE; h->u.c.size = value; @@ -1751,7 +1753,7 @@ _bfd_generic_link_add_one_symbol (info, (info, h->root.string, h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size, abfd, bfd_link_hash_common, value))) - return false; + return FALSE; if (value > h->u.c.size) { unsigned int power; @@ -1802,7 +1804,7 @@ _bfd_generic_link_add_one_symbol (info, if (! ((*info->callbacks->multiple_common) (info, h->root.string, obfd, h->type, (bfd_vma) 0, abfd, bfd_link_hash_common, value))) - return false; + return FALSE; } break; @@ -1844,7 +1846,7 @@ _bfd_generic_link_add_one_symbol (info, if (! ((*info->callbacks->multiple_definition) (info, h->root.string, msec->owner, msec, mval, abfd, section, value))) - return false; + return FALSE; } break; @@ -1855,7 +1857,7 @@ _bfd_generic_link_add_one_symbol (info, (info, h->root.string, h->u.c.p->section->owner, bfd_link_hash_common, h->u.c.size, abfd, bfd_link_hash_indirect, (bfd_vma) 0))) - return false; + return FALSE; /* Fall through. */ case IND: /* Create an indirect symbol. */ @@ -1864,10 +1866,10 @@ _bfd_generic_link_add_one_symbol (info, /* STRING is the name of the symbol we want to indirect to. */ - inh = bfd_wrapped_link_hash_lookup (abfd, info, string, true, - copy, false); + inh = bfd_wrapped_link_hash_lookup (abfd, info, string, TRUE, + copy, FALSE); if (inh == (struct bfd_link_hash_entry *) NULL) - return false; + return FALSE; if (inh->type == bfd_link_hash_indirect && inh->u.i.link == h) { @@ -1875,7 +1877,7 @@ _bfd_generic_link_add_one_symbol (info, (_("%s: indirect symbol `%s' to `%s' is a loop"), bfd_archive_filename (abfd), name, string); bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (inh->type == bfd_link_hash_new) { @@ -1890,7 +1892,7 @@ _bfd_generic_link_add_one_symbol (info, if (h->type != bfd_link_hash_new) { row = UNDEF_ROW; - cycle = true; + cycle = TRUE; } h->type = bfd_link_hash_indirect; @@ -1902,7 +1904,7 @@ _bfd_generic_link_add_one_symbol (info, /* Add an entry to a set. */ if (! (*info->callbacks->add_to_set) (info, h, BFD_RELOC_CTOR, abfd, section, value)) - return false; + return FALSE; break; case WARNC: @@ -1913,7 +1915,7 @@ _bfd_generic_link_add_one_symbol (info, h->root.string, abfd, (asection *) NULL, (bfd_vma) 0)) - return false; + return FALSE; /* Only issue a warning once. */ h->u.i.warning = NULL; } @@ -1921,7 +1923,7 @@ _bfd_generic_link_add_one_symbol (info, case CYCLE: /* Try again with the referenced symbol. */ h = h->u.i.link; - cycle = true; + cycle = TRUE; break; case REFC: @@ -1929,7 +1931,7 @@ _bfd_generic_link_add_one_symbol (info, if (h->next == NULL && info->hash->undefs_tail != h) h->next = h; h = h->u.i.link; - cycle = true; + cycle = TRUE; break; case WARN: @@ -1937,7 +1939,7 @@ _bfd_generic_link_add_one_symbol (info, if (! (*info->callbacks->warning) (info, string, h->root.string, hash_entry_bfd (h), (asection *) NULL, (bfd_vma) 0)) - return false; + return FALSE; break; case CWARN: @@ -1952,7 +1954,7 @@ _bfd_generic_link_add_one_symbol (info, hash_entry_bfd (h), (asection *) NULL, (bfd_vma) 0)) - return false; + return FALSE; break; } /* Fall through. */ @@ -1967,7 +1969,7 @@ _bfd_generic_link_add_one_symbol (info, ((struct bfd_hash_entry *) NULL, &info->hash->table, h->root.string))); if (sub == NULL) - return false; + return FALSE; *sub = *h; sub->type = bfd_link_hash_warning; sub->u.i.link = h; @@ -1980,7 +1982,7 @@ _bfd_generic_link_add_one_symbol (info, w = bfd_hash_allocate (&info->hash->table, len); if (w == NULL) - return false; + return FALSE; memcpy (w, string, len); sub->u.i.warning = w; } @@ -1996,12 +1998,12 @@ _bfd_generic_link_add_one_symbol (info, } while (cycle); - return true; + return TRUE; } /* Generic final link routine. */ -boolean +bfd_boolean _bfd_generic_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -2020,12 +2022,12 @@ _bfd_generic_final_link (abfd, info) for (o = abfd->sections; o != NULL; o = o->next) for (p = o->link_order_head; p != NULL; p = p->next) if (p->type == bfd_indirect_link_order) - p->u.indirect.section->linker_mark = (unsigned int) true; + p->u.indirect.section->linker_mark = TRUE; /* Build the output symbol table. */ for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next) if (! _bfd_generic_link_output_symbols (abfd, sub, info, &outsymalloc)) - return false; + return FALSE; /* Accumulate the global symbols. */ wginfo.info = info; @@ -2039,7 +2041,7 @@ _bfd_generic_final_link (abfd, info) shouldn't really need one, since we have SYMCOUNT, but some old code still expects one. */ if (! generic_add_output_symbol (abfd, &outsymalloc, NULL)) - return false; + return FALSE; if (info->relocateable) { @@ -2070,17 +2072,17 @@ _bfd_generic_final_link (abfd, info) relsize = bfd_get_reloc_upper_bound (input_bfd, input_section); if (relsize < 0) - return false; + return FALSE; relocs = (arelent **) bfd_malloc ((bfd_size_type) relsize); if (!relocs && relsize != 0) - return false; + return FALSE; symbols = _bfd_generic_link_get_symbols (input_bfd); reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, relocs, symbols); if (reloc_count < 0) - return false; + return FALSE; BFD_ASSERT ((unsigned long) reloc_count == input_section->reloc_count); o->reloc_count += reloc_count; @@ -2095,7 +2097,7 @@ _bfd_generic_final_link (abfd, info) amt *= sizeof (arelent *); o->orelocation = (arelent **) bfd_alloc (abfd, amt); if (!o->orelocation) - return false; + return FALSE; o->flags |= SEC_RELOC; /* Reset the count so that it can be used as an index when putting in the output relocs. */ @@ -2118,26 +2120,26 @@ _bfd_generic_final_link (abfd, info) case bfd_section_reloc_link_order: case bfd_symbol_reloc_link_order: if (! _bfd_generic_reloc_link_order (abfd, info, o, p)) - return false; + return FALSE; break; case bfd_indirect_link_order: - if (! default_indirect_link_order (abfd, info, o, p, true)) - return false; + if (! default_indirect_link_order (abfd, info, o, p, TRUE)) + return FALSE; break; default: if (! _bfd_default_link_order (abfd, info, o, p)) - return false; + return FALSE; break; } } } - return true; + return TRUE; } /* Add an output symbol to the output BFD. */ -static boolean +static bfd_boolean generic_add_output_symbol (output_bfd, psymalloc, sym) bfd *output_bfd; size_t *psymalloc; @@ -2156,7 +2158,7 @@ generic_add_output_symbol (output_bfd, p amt *= sizeof (asymbol *); newsyms = (asymbol **) bfd_realloc (bfd_get_outsymbols (output_bfd), amt); if (newsyms == (asymbol **) NULL) - return false; + return FALSE; bfd_get_outsymbols (output_bfd) = newsyms; } @@ -2164,12 +2166,12 @@ generic_add_output_symbol (output_bfd, p if (sym != NULL) ++ bfd_get_symcount (output_bfd); - return true; + return TRUE; } /* Handle the symbols for an input BFD. */ -boolean +bfd_boolean _bfd_generic_link_output_symbols (output_bfd, input_bfd, info, psymalloc) bfd *output_bfd; bfd *input_bfd; @@ -2180,7 +2182,7 @@ _bfd_generic_link_output_symbols (output asymbol **sym_end; if (! generic_link_read_symbols (input_bfd)) - return false; + return FALSE; /* Create a filename symbol if we are supposed to. */ if (info->create_object_symbols_section != (asection *) NULL) @@ -2197,7 +2199,7 @@ _bfd_generic_link_output_symbols (output newsym = bfd_make_empty_symbol (input_bfd); if (!newsym) - return false; + return FALSE; newsym->name = input_bfd->filename; newsym->value = 0; newsym->flags = BSF_LOCAL | BSF_FILE; @@ -2205,7 +2207,7 @@ _bfd_generic_link_output_symbols (output if (! generic_add_output_symbol (output_bfd, psymalloc, newsym)) - return false; + return FALSE; break; } @@ -2220,7 +2222,7 @@ _bfd_generic_link_output_symbols (output { asymbol *sym; struct generic_link_hash_entry *h; - boolean output; + bfd_boolean output; h = (struct generic_link_hash_entry *) NULL; sym = *sym_ptr; @@ -2251,11 +2253,11 @@ _bfd_generic_link_output_symbols (output h = ((struct generic_link_hash_entry *) bfd_wrapped_link_hash_lookup (output_bfd, info, bfd_asymbol_name (sym), - false, false, true)); + FALSE, FALSE, TRUE)); else h = _bfd_generic_link_hash_lookup (_bfd_generic_hash_table (info), bfd_asymbol_name (sym), - false, false, true); + FALSE, FALSE, TRUE); if (h != (struct generic_link_hash_entry *) NULL) { @@ -2319,9 +2321,9 @@ _bfd_generic_link_output_symbols (output if (info->strip == strip_all || (info->strip == strip_some && (bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym), - false, false) + FALSE, FALSE) == (struct bfd_hash_entry *) NULL))) - output = false; + output = FALSE; else if ((sym->flags & (BSF_GLOBAL | BSF_WEAK)) != 0) { /* If this symbol is marked as occurring now, rather @@ -2330,48 +2332,48 @@ _bfd_generic_link_output_symbols (output better way. */ if (bfd_asymbol_bfd (sym) == input_bfd && (sym->flags & BSF_NOT_AT_END) != 0) - output = true; + output = TRUE; else - output = false; + output = FALSE; } else if (bfd_is_ind_section (sym->section)) - output = false; + output = FALSE; else if ((sym->flags & BSF_DEBUGGING) != 0) { if (info->strip == strip_none) - output = true; + output = TRUE; else - output = false; + output = FALSE; } else if (bfd_is_und_section (sym->section) || bfd_is_com_section (sym->section)) - output = false; + output = FALSE; else if ((sym->flags & BSF_LOCAL) != 0) { if ((sym->flags & BSF_WARNING) != 0) - output = false; + output = FALSE; else { switch (info->discard) { default: case discard_all: - output = false; + output = FALSE; break; case discard_sec_merge: - output = true; + output = TRUE; if (info->relocateable || ! (sym->section->flags & SEC_MERGE)) break; /* FALLTHROUGH */ case discard_l: if (bfd_is_local_label (input_bfd, sym)) - output = false; + output = FALSE; else - output = true; + output = TRUE; break; case discard_none: - output = true; + output = TRUE; break; } } @@ -2379,9 +2381,9 @@ _bfd_generic_link_output_symbols (output else if ((sym->flags & BSF_CONSTRUCTOR)) { if (info->strip != strip_all) - output = true; + output = TRUE; else - output = false; + output = FALSE; } else abort (); @@ -2393,18 +2395,18 @@ _bfd_generic_link_output_symbols (output field set. */ if ((sym->section->flags & SEC_HAS_CONTENTS) != 0 && ! sym->section->linker_mark) - output = false; + output = FALSE; if (output) { if (! generic_add_output_symbol (output_bfd, psymalloc, sym)) - return false; + return FALSE; if (h != (struct generic_link_hash_entry *) NULL) - h->written = true; + h->written = TRUE; } } - return true; + return TRUE; } /* Set the section and value of a generic BFD symbol based on a linker @@ -2473,7 +2475,7 @@ set_symbol_from_hash (sym, h) /* Write out a global symbol, if it hasn't already been written out. This is called for each symbol in the hash table. */ -boolean +bfd_boolean _bfd_generic_link_write_global_symbol (h, data) struct generic_link_hash_entry *h; PTR data; @@ -2486,15 +2488,15 @@ _bfd_generic_link_write_global_symbol (h h = (struct generic_link_hash_entry *) h->root.u.i.link; if (h->written) - return true; + return TRUE; - h->written = true; + h->written = TRUE; if (wginfo->info->strip == strip_all || (wginfo->info->strip == strip_some && bfd_hash_lookup (wginfo->info->keep_hash, h->root.root.string, - false, false) == NULL)) - return true; + FALSE, FALSE) == NULL)) + return TRUE; if (h->sym != (asymbol *) NULL) sym = h->sym; @@ -2502,7 +2504,7 @@ _bfd_generic_link_write_global_symbol (h { sym = bfd_make_empty_symbol (wginfo->output_bfd); if (!sym) - return false; + return FALSE; sym->name = h->root.root.string; sym->flags = 0; } @@ -2518,12 +2520,12 @@ _bfd_generic_link_write_global_symbol (h abort (); } - return true; + return TRUE; } /* Create a relocation. */ -boolean +bfd_boolean _bfd_generic_reloc_link_order (abfd, info, sec, link_order) bfd *abfd; struct bfd_link_info *info; @@ -2539,14 +2541,14 @@ _bfd_generic_reloc_link_order (abfd, inf r = (arelent *) bfd_alloc (abfd, (bfd_size_type) sizeof (arelent)); if (r == (arelent *) NULL) - return false; + return FALSE; r->address = link_order->offset; r->howto = bfd_reloc_type_lookup (abfd, link_order->u.reloc.p->reloc); if (r->howto == 0) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Get the symbol to use for the relocation. */ @@ -2559,16 +2561,16 @@ _bfd_generic_reloc_link_order (abfd, inf h = ((struct generic_link_hash_entry *) bfd_wrapped_link_hash_lookup (abfd, info, link_order->u.reloc.p->u.name, - false, false, true)); + FALSE, FALSE, TRUE)); if (h == (struct generic_link_hash_entry *) NULL || ! h->written) { if (! ((*info->callbacks->unattached_reloc) (info, link_order->u.reloc.p->u.name, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) - return false; + return FALSE; bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } r->sym_ptr_ptr = &h->sym; } @@ -2582,13 +2584,13 @@ _bfd_generic_reloc_link_order (abfd, inf bfd_size_type size; bfd_reloc_status_type rstat; bfd_byte *buf; - boolean ok; + bfd_boolean ok; file_ptr loc; size = bfd_get_reloc_size (r->howto); buf = (bfd_byte *) bfd_zmalloc (size); if (buf == (bfd_byte *) NULL) - return false; + return FALSE; rstat = _bfd_relocate_contents (r->howto, abfd, (bfd_vma) link_order->u.reloc.p->addend, buf); @@ -2609,7 +2611,7 @@ _bfd_generic_reloc_link_order (abfd, inf (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) { free (buf); - return false; + return FALSE; } break; } @@ -2618,7 +2620,7 @@ _bfd_generic_reloc_link_order (abfd, inf (bfd_size_type) size); free (buf); if (! ok) - return false; + return FALSE; r->addend = 0; } @@ -2626,7 +2628,7 @@ _bfd_generic_reloc_link_order (abfd, inf sec->orelocation[sec->reloc_count] = r; ++sec->reloc_count; - return true; + return TRUE; } /* Allocate a new link_order for a section. */ @@ -2658,7 +2660,7 @@ bfd_new_link_order (abfd, section) the reloc_link_order types here, since they depend upon the details of how the particular backends generates relocs. */ -boolean +bfd_boolean _bfd_default_link_order (abfd, info, sec, link_order) bfd *abfd; struct bfd_link_info *info; @@ -2674,7 +2676,7 @@ _bfd_default_link_order (abfd, info, sec abort (); case bfd_indirect_link_order: return default_indirect_link_order (abfd, info, sec, link_order, - false); + FALSE); case bfd_data_link_order: return default_data_link_order (abfd, info, sec, link_order); } @@ -2682,7 +2684,7 @@ _bfd_default_link_order (abfd, info, sec /* Default routine to handle a bfd_data_link_order. */ -static boolean +static bfd_boolean default_data_link_order (abfd, info, sec, link_order) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -2693,13 +2695,13 @@ default_data_link_order (abfd, info, sec size_t fill_size; bfd_byte *fill; file_ptr loc; - boolean result; + bfd_boolean result; BFD_ASSERT ((sec->flags & SEC_HAS_CONTENTS) != 0); size = link_order->size; if (size == 0) - return true; + return TRUE; fill = link_order->u.data.contents; fill_size = link_order->u.data.size; @@ -2708,7 +2710,7 @@ default_data_link_order (abfd, info, sec bfd_byte *p; fill = (bfd_byte *) bfd_malloc (size); if (fill == NULL) - return false; + return FALSE; p = fill; if (fill_size == 1) memset (p, (int) link_order->u.data.contents[0], (size_t) size); @@ -2737,14 +2739,14 @@ default_data_link_order (abfd, info, sec /* Default routine to handle a bfd_indirect_link_order. */ -static boolean +static bfd_boolean default_indirect_link_order (output_bfd, info, output_section, link_order, generic_linker) bfd *output_bfd; struct bfd_link_info *info; asection *output_section; struct bfd_link_order *link_order; - boolean generic_linker; + bfd_boolean generic_linker; { asection *input_section; bfd *input_bfd; @@ -2756,7 +2758,7 @@ default_indirect_link_order (output_bfd, BFD_ASSERT ((output_section->flags & SEC_HAS_CONTENTS) != 0); if (link_order->size == 0) - return true; + return TRUE; input_section = link_order->u.indirect.section; input_bfd = input_section->owner; @@ -2778,7 +2780,7 @@ default_indirect_link_order (output_bfd, (_("Attempt to do relocateable link with %s input and %s output"), bfd_get_target (input_bfd), bfd_get_target (output_bfd)); bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } if (! generic_linker) @@ -2791,7 +2793,7 @@ default_indirect_link_order (output_bfd, a specific linker, presumably because we are linking different types of object files together. */ if (! generic_link_read_symbols (input_bfd)) - return false; + return FALSE; /* Since we have been called by a specific linker, rather than the generic linker, the values of the symbols will not be @@ -2823,11 +2825,11 @@ default_indirect_link_order (output_bfd, else if (bfd_is_und_section (bfd_get_section (sym))) h = bfd_wrapped_link_hash_lookup (output_bfd, info, bfd_asymbol_name (sym), - false, false, true); + FALSE, FALSE, TRUE); else h = bfd_link_hash_lookup (info->hash, bfd_asymbol_name (sym), - false, false, true); + FALSE, FALSE, TRUE); if (h != NULL) set_symbol_from_hash (sym, h); } @@ -2853,12 +2855,12 @@ default_indirect_link_order (output_bfd, if (contents != NULL) free (contents); - return true; + return TRUE; error_return: if (contents != NULL) free (contents); - return false; + return FALSE; } /* A little routine to count the number of relocs in a link_order @@ -2887,7 +2889,7 @@ FUNCTION bfd_link_split_section SYNOPSIS - boolean bfd_link_split_section(bfd *abfd, asection *sec); + bfd_boolean bfd_link_split_section(bfd *abfd, asection *sec); DESCRIPTION Return nonzero if @var{sec} should be split during a @@ -2899,10 +2901,10 @@ DESCRIPTION */ -boolean +bfd_boolean _bfd_generic_link_split_section (abfd, sec) bfd *abfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; { - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/bfd/lynx-core.c binutils-2.13.90.0.18/bfd/lynx-core.c --- binutils-2.13.90.0.16/bfd/lynx-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/lynx-core.c Mon Dec 16 12:22:52 2002 @@ -224,11 +224,11 @@ lynx_core_file_failing_signal (abfd) return core_signal (abfd); } -boolean +bfd_boolean lynx_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd, *exec_bfd; { - return true; /* FIXME, We have no way of telling at this point */ + return TRUE; /* FIXME, We have no way of telling at this point */ } #endif /* LYNX_CORE */ diff -uprN binutils-2.13.90.0.16/bfd/m68klinux.c binutils-2.13.90.0.18/bfd/m68klinux.c --- binutils-2.13.90.0.16/bfd/m68klinux.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/m68klinux.c Mon Dec 16 12:22:52 2002 @@ -52,11 +52,11 @@ extern const bfd_target MY(vec); static void MY_final_link_callback PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *)); -static boolean m68klinux_bfd_final_link +static bfd_boolean m68klinux_bfd_final_link PARAMS ((bfd *, struct bfd_link_info *)); -static boolean m68klinux_write_object_contents PARAMS ((bfd *)); +static bfd_boolean m68klinux_write_object_contents PARAMS ((bfd *)); -static boolean +static bfd_boolean m68klinux_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -69,7 +69,7 @@ m68klinux_bfd_final_link (abfd, info) /* Set the machine type correctly. */ -static boolean +static bfd_boolean m68klinux_write_object_contents (abfd) bfd *abfd; { @@ -82,7 +82,7 @@ m68klinux_write_object_contents (abfd) WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } #define MY_write_object_contents m68klinux_write_object_contents @@ -180,15 +180,15 @@ static struct bfd_link_hash_table *linux static struct fixup *new_fixup PARAMS ((struct bfd_link_info *, struct linux_link_hash_entry *, bfd_vma, int)); -static boolean linux_link_create_dynamic_sections +static bfd_boolean linux_link_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean linux_add_one_symbol +static bfd_boolean linux_add_one_symbol PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *, - bfd_vma, const char *, boolean, boolean, + bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **)); -static boolean linux_tally_symbols +static bfd_boolean linux_tally_symbols PARAMS ((struct linux_link_hash_entry *, PTR)); -static boolean linux_finish_dynamic_link +static bfd_boolean linux_finish_dynamic_link PARAMS ((bfd *, struct bfd_link_info *)); /* Routine to create an entry in an Linux link hash table. */ @@ -263,7 +263,7 @@ linux_link_hash_table_create (abfd) #define linux_link_hash_traverse(table, func, info) \ (aout_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ (info))) /* Get the Linux link hash table from the info structure. This is @@ -303,7 +303,7 @@ new_fixup (info, h, value, builtin) know the size of the section, but that's OK - we just need to create it for now. */ -static boolean +static bfd_boolean linux_link_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -320,18 +320,18 @@ linux_link_create_dynamic_sections (abfd if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; s->_raw_size = 0; s->contents = 0; - return true; + return TRUE; } /* Function to add a single symbol to the linker hash table. This is a wrapper around _bfd_generic_link_add_one_symbol which handles the tweaking needed for dynamic linking support. */ -static boolean +static bfd_boolean linux_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp) struct bfd_link_info *info; @@ -341,12 +341,12 @@ linux_add_one_symbol (info, abfd, name, asection *section; bfd_vma value; const char *string; - boolean copy; - boolean collect; + bfd_boolean copy; + bfd_boolean collect; struct bfd_link_hash_entry **hashp; { struct linux_link_hash_entry *h; - boolean insert; + bfd_boolean insert; /* Look up and see if we already have this symbol in the hash table. If we do, and the defining entry is from a shared library, we @@ -356,7 +356,7 @@ linux_add_one_symbol (info, abfd, name, be able to link Linux a.out and ELF objects together, but serious confusion is possible. */ - insert = false; + insert = FALSE; if (! info->relocateable && linux_hash_table (info)->dynobj == NULL @@ -365,16 +365,16 @@ linux_add_one_symbol (info, abfd, name, && abfd->xvec == info->hash->creator) { if (! linux_link_create_dynamic_sections (abfd, info)) - return false; + return FALSE; linux_hash_table (info)->dynobj = abfd; - insert = true; + insert = TRUE; } if (bfd_is_abs_section (section) && abfd->xvec == info->hash->creator) { - h = linux_link_hash_lookup (linux_hash_table (info), name, false, - false, false); + h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE, + FALSE, FALSE); if (h != NULL && (h->root.root.type == bfd_link_hash_defined || h->root.root.type == bfd_link_hash_defweak)) @@ -386,10 +386,10 @@ linux_add_one_symbol (info, abfd, name, f = new_fixup (info, h, value, ! IS_PLT_SYM (name)); if (f == NULL) - return false; + return FALSE; f->jump = IS_PLT_SYM (name); - return true; + return TRUE; } } @@ -397,7 +397,7 @@ linux_add_one_symbol (info, abfd, name, if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp)) - return false; + return FALSE; /* Insert a pointer to our table in the set vector. The dynamic linker requires this information */ @@ -414,11 +414,11 @@ linux_add_one_symbol (info, abfd, name, if (! (_bfd_generic_link_add_one_symbol (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS, BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL, - false, false, NULL))) - return false; + FALSE, FALSE, NULL))) + return FALSE; } - return true; + return TRUE; } /* We will crawl the hash table and come here for every global symbol. @@ -431,7 +431,7 @@ linux_add_one_symbol (info, abfd, name, This function is called via linux_link_hash_traverse. */ -static boolean +static bfd_boolean linux_tally_symbols (h, data) struct linux_link_hash_entry *h; PTR data; @@ -440,7 +440,7 @@ linux_tally_symbols (h, data) struct fixup *f, *f1; int is_plt; struct linux_link_hash_entry *h1, *h2; - boolean exists; + bfd_boolean exists; if (h->root.root.type == bfd_link_hash_warning) h = (struct linux_link_hash_entry *) h->root.root.u.i.link; @@ -486,12 +486,12 @@ linux_tally_symbols (h, data) h1 = linux_link_hash_lookup (linux_hash_table (info), (h->root.root.root.string + sizeof PLT_REF_PREFIX - 1), - false, false, true); + FALSE, FALSE, TRUE); /* h2 does not follow indirect symbols. */ h2 = linux_link_hash_lookup (linux_hash_table (info), (h->root.root.root.string + sizeof PLT_REF_PREFIX - 1), - false, false, false); + FALSE, FALSE, FALSE); /* The real symbol must exist but if it is also an ABS symbol, there is no need to have a fixup. This is because they both @@ -509,7 +509,7 @@ linux_tally_symbols (h, data) involving this symbol. If so, convert it to a regular fixup. In the end, this relaxes some of the requirements about the order of performing fixups. */ - exists = false; + exists = FALSE; for (f1 = linux_hash_table (info)->fixup_list; f1 != NULL; f1 = f1->next) @@ -518,7 +518,7 @@ linux_tally_symbols (h, data) || (! f1->builtin && ! f1->jump)) continue; if (f1->h == h1) - exists = true; + exists = TRUE; if (! exists && bfd_is_abs_section (h->root.root.u.def.section)) { @@ -528,7 +528,7 @@ linux_tally_symbols (h, data) f1->h = h1; f1->jump = is_plt; f1->builtin = 0; - exists = true; + exists = TRUE; } if (! exists && bfd_is_abs_section (h->root.root.u.def.section)) @@ -546,10 +546,10 @@ linux_tally_symbols (h, data) /* Quick and dirty way of stripping these symbols from the symtab. */ if (bfd_is_abs_section (h->root.root.u.def.section)) - h->root.written = true; + h->root.written = TRUE; } - return true; + return TRUE; } /* This is called to set the size of the .linux-dynamic section is. @@ -558,7 +558,7 @@ linux_tally_symbols (h, data) we just scan the hash tables to find out how many additional fixups are required. */ -boolean +bfd_boolean bfd_m68klinux_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -567,7 +567,7 @@ bfd_m68klinux_size_dynamic_sections (out asection *s; if (output_bfd->xvec != &MY(vec)) - return true; + return TRUE; /* First find the fixups... */ linux_link_hash_traverse (linux_hash_table (info), @@ -591,7 +591,7 @@ bfd_m68klinux_size_dynamic_sections (out { if (linux_hash_table (info)->fixup_count > 0) abort (); - return true; + return TRUE; } /* Allocate memory for our fixup table. We will fill it in later. */ @@ -605,18 +605,18 @@ bfd_m68klinux_size_dynamic_sections (out if (s->contents == NULL) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } } - return true; + return TRUE; } /* We come here once we are ready to actually write the fixup table to the output file. Scan the fixup tables and so forth and generate the stuff we need. */ -static boolean +static bfd_boolean linux_finish_dynamic_link (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -630,7 +630,7 @@ linux_finish_dynamic_link (output_bfd, i unsigned int fixups_written; if (linux_hash_table (info)->dynobj == NULL) - return true; + return TRUE; s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, ".linux-dynamic"); @@ -744,7 +744,7 @@ linux_finish_dynamic_link (output_bfd, i h = linux_link_hash_lookup (linux_hash_table (info), "__BUILTIN_FIXUPS__", - false, false, false); + FALSE, FALSE, FALSE); if (h != NULL && (h->root.root.type == bfd_link_hash_defined @@ -765,12 +765,12 @@ linux_finish_dynamic_link (output_bfd, i if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset), SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd) != s->_raw_size) - return false; + return FALSE; - return true; + return TRUE; } #define MY_bfd_link_hash_table_create linux_link_hash_table_create diff -uprN binutils-2.13.90.0.16/bfd/m68klynx.c binutils-2.13.90.0.18/bfd/m68klynx.c --- binutils-2.13.90.0.16/bfd/m68klynx.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/m68klynx.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for m68k binaries under LynxOS. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 2001 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -45,7 +45,7 @@ Foundation, Inc., 59 Temple Place - Suit char *lynx_core_file_failing_command(); int lynx_core_file_failing_signal(); -boolean lynx_core_file_matches_executable_p(); +bfd_boolean lynx_core_file_matches_executable_p(); const bfd_target *lynx_core_file_p(); #define MY_core_file_failing_command lynx_core_file_failing_command diff -uprN binutils-2.13.90.0.16/bfd/mach-o.c binutils-2.13.90.0.18/bfd/mach-o.c --- binutils-2.13.90.0.16/bfd/mach-o.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/mach-o.c Mon Dec 16 12:22:52 2002 @@ -70,38 +70,71 @@ #define bfd_mach_o_bfd_merge_sections bfd_generic_merge_sections #define bfd_mach_o_bfd_discard_group bfd_generic_discard_group -static boolean bfd_mach_o_bfd_copy_private_symbol_data PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); -static boolean bfd_mach_o_bfd_copy_private_section_data PARAMS ((bfd *, asection *, bfd *, asection *)); -static boolean bfd_mach_o_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -static long bfd_mach_o_count_symbols PARAMS ((bfd *)); -static long bfd_mach_o_get_symtab_upper_bound PARAMS ((bfd *)); -static long bfd_mach_o_get_symtab PARAMS ((bfd *, asymbol **)); -static void bfd_mach_o_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -static void bfd_mach_o_print_symbol PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); -static void bfd_mach_o_convert_architecture PARAMS ((bfd_mach_o_cpu_type, bfd_mach_o_cpu_subtype, enum bfd_architecture *, unsigned long *)); -static boolean bfd_mach_o_write_contents PARAMS ((bfd *)); -static int bfd_mach_o_sizeof_headers PARAMS ((bfd *, boolean)); -static asymbol * bfd_mach_o_make_empty_symbol PARAMS ((bfd *)); -static int bfd_mach_o_write_header PARAMS ((bfd *, bfd_mach_o_header *)); -static int bfd_mach_o_read_header PARAMS ((bfd *, bfd_mach_o_header *)); -static asection * bfd_mach_o_make_bfd_section PARAMS ((bfd *, bfd_mach_o_section *)); -static int bfd_mach_o_scan_read_section PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma)); -static int bfd_mach_o_scan_write_section PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma)); -static int bfd_mach_o_scan_write_symtab_symbols PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_write_thread PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_dylinker PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_dylib PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_prebound_dylib PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_thread PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_write_symtab PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_dysymtab PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_symtab PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_segment PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_write_segment PARAMS ((bfd *, bfd_mach_o_load_command *)); -static int bfd_mach_o_scan_read_command PARAMS ((bfd *, bfd_mach_o_load_command *)); -static void bfd_mach_o_flatten_sections PARAMS ((bfd *)); -static const char * bfd_mach_o_i386_flavour_string PARAMS ((unsigned int)); -static const char * bfd_mach_o_ppc_flavour_string PARAMS ((unsigned int)); +static bfd_boolean bfd_mach_o_bfd_copy_private_symbol_data + PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); +static bfd_boolean bfd_mach_o_bfd_copy_private_section_data + PARAMS ((bfd *, asection *, bfd *, asection *)); +static bfd_boolean bfd_mach_o_bfd_copy_private_bfd_data + PARAMS ((bfd *, bfd *)); +static long bfd_mach_o_count_symbols + PARAMS ((bfd *)); +static long bfd_mach_o_get_symtab_upper_bound + PARAMS ((bfd *)); +static long bfd_mach_o_get_symtab + PARAMS ((bfd *, asymbol **)); +static void bfd_mach_o_get_symbol_info + PARAMS ((bfd *, asymbol *, symbol_info *)); +static void bfd_mach_o_print_symbol + PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); +static void bfd_mach_o_convert_architecture + PARAMS ((bfd_mach_o_cpu_type, bfd_mach_o_cpu_subtype, + enum bfd_architecture *, unsigned long *)); +static bfd_boolean bfd_mach_o_write_contents + PARAMS ((bfd *)); +static int bfd_mach_o_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +static asymbol * bfd_mach_o_make_empty_symbol + PARAMS ((bfd *)); +static int bfd_mach_o_write_header + PARAMS ((bfd *, bfd_mach_o_header *)); +static int bfd_mach_o_read_header + PARAMS ((bfd *, bfd_mach_o_header *)); +static asection * bfd_mach_o_make_bfd_section + PARAMS ((bfd *, bfd_mach_o_section *)); +static int bfd_mach_o_scan_read_section + PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma)); +static int bfd_mach_o_scan_write_section + PARAMS ((bfd *, bfd_mach_o_section *, bfd_vma)); +static int bfd_mach_o_scan_write_symtab_symbols + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_write_thread + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_dylinker + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_dylib + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_prebound_dylib + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_thread + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_write_symtab + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_dysymtab + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_symtab + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_segment + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_write_segment + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static int bfd_mach_o_scan_read_command + PARAMS ((bfd *, bfd_mach_o_load_command *)); +static void bfd_mach_o_flatten_sections + PARAMS ((bfd *)); +static const char * bfd_mach_o_i386_flavour_string + PARAMS ((unsigned int)); +static const char * bfd_mach_o_ppc_flavour_string + PARAMS ((unsigned int)); /* The flags field of a section structure is separated into two parts a section type and section attributes. The section types are mutually exclusive (it @@ -129,7 +162,7 @@ static const char * bfd_mach_o_ppc_flavo #define N_SECT 0xe #define N_INDR 0xa -boolean +bfd_boolean bfd_mach_o_valid (abfd) bfd *abfd; { @@ -149,33 +182,33 @@ bfd_mach_o_valid (abfd) /* Copy any private info we understand from the input symbol to the output symbol. */ -static boolean +static bfd_boolean bfd_mach_o_bfd_copy_private_symbol_data (ibfd, isymbol, obfd, osymbol) bfd *ibfd ATTRIBUTE_UNUSED; asymbol *isymbol ATTRIBUTE_UNUSED; bfd *obfd ATTRIBUTE_UNUSED; asymbol *osymbol ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Copy any private info we understand from the input section to the output section. */ -static boolean +static bfd_boolean bfd_mach_o_bfd_copy_private_section_data (ibfd, isection, obfd, osection) bfd *ibfd ATTRIBUTE_UNUSED; asection *isection ATTRIBUTE_UNUSED; bfd *obfd ATTRIBUTE_UNUSED; asection *osection ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Copy any private info we understand from the input bfd to the output bfd. */ -static boolean +static bfd_boolean bfd_mach_o_bfd_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; @@ -185,7 +218,7 @@ bfd_mach_o_bfd_copy_private_bfd_data (ib obfd->tdata.mach_o_data = ibfd->tdata.mach_o_data; obfd->tdata.mach_o_data->ibfd = ibfd; - return true; + return TRUE; } static long @@ -325,7 +358,7 @@ bfd_mach_o_convert_architecture (mtype, } } -static boolean +static bfd_boolean bfd_mach_o_write_contents (abfd) bfd *abfd; { @@ -362,11 +395,11 @@ bfd_mach_o_write_contents (abfd) bfd_seek (abfd, curoff, SEEK_SET); if (bfd_bread ((PTR) buf, thisread, abfd) != thisread) - return false; + return FALSE; bfd_seek (abfd, curoff, SEEK_SET); if (bfd_bwrite ((PTR) buf, thisread, abfd) != thisread) - return false; + return FALSE; nbytes -= thisread; curoff += thisread; @@ -377,7 +410,7 @@ bfd_mach_o_write_contents (abfd) /* Now write header information. */ if (bfd_mach_o_write_header (abfd, &mdata->header) != 0) - return false; + return FALSE; for (i = 0; i < mdata->header.ncmds; i++) { @@ -392,24 +425,24 @@ bfd_mach_o_write_contents (abfd) bfd_seek (abfd, cur->offset, SEEK_SET); if (bfd_bwrite ((PTR) buf, 8, abfd) != 8) - return false; + return FALSE; switch (cur->type) { case BFD_MACH_O_LC_SEGMENT: if (bfd_mach_o_scan_write_segment (abfd, cur) != 0) - return false; + return FALSE; break; case BFD_MACH_O_LC_SYMTAB: if (bfd_mach_o_scan_write_symtab (abfd, cur) != 0) - return false; + return FALSE; break; case BFD_MACH_O_LC_SYMSEG: break; case BFD_MACH_O_LC_THREAD: case BFD_MACH_O_LC_UNIXTHREAD: if (bfd_mach_o_scan_write_thread (abfd, cur) != 0) - return false; + return FALSE; break; case BFD_MACH_O_LC_LOADFVMLIB: case BFD_MACH_O_LC_IDFVMLIB: @@ -430,17 +463,17 @@ bfd_mach_o_write_contents (abfd) fprintf (stderr, "unable to write unknown load command 0x%lx\n", (long) cur->type); - return false; + return FALSE; } } - return true; + return TRUE; } static int bfd_mach_o_sizeof_headers (a, b) bfd *a ATTRIBUTE_UNUSED; - boolean b ATTRIBUTE_UNUSED; + bfd_boolean b ATTRIBUTE_UNUSED; { return 0; } @@ -1682,7 +1715,7 @@ bfd_mach_o_scan (abfd, header, mdata) return 0; } -boolean +bfd_boolean bfd_mach_o_mkobject (abfd) bfd *abfd; { @@ -1691,7 +1724,7 @@ bfd_mach_o_mkobject (abfd) mdata = ((bfd_mach_o_data_struct *) bfd_alloc (abfd, sizeof (bfd_mach_o_data_struct))); if (mdata == NULL) - return false; + return FALSE; abfd->tdata.mach_o_data = mdata; mdata->header.magic = 0; @@ -1709,7 +1742,7 @@ bfd_mach_o_mkobject (abfd) mdata->sections = NULL; mdata->ibfd = NULL; - return true; + return TRUE; } const bfd_target * @@ -2149,12 +2182,12 @@ bfd_mach_o_core_file_failing_signal (abf return 0; } -boolean +bfd_boolean bfd_mach_o_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return true; + return TRUE; } #define TARGET_NAME mach_o_be_vec diff -uprN binutils-2.13.90.0.16/bfd/mach-o.h binutils-2.13.90.0.18/bfd/mach-o.h --- binutils-2.13.90.0.16/bfd/mach-o.h Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/mach-o.h Mon Dec 16 12:22:52 2002 @@ -463,25 +463,46 @@ mach_o_data_struct; typedef struct mach_o_data_struct bfd_mach_o_data_struct; -boolean bfd_mach_o_valid PARAMS ((bfd *)); -int bfd_mach_o_scan_read_symtab_symbol PARAMS ((bfd *, bfd_mach_o_symtab_command *, asymbol *, unsigned long)); -int bfd_mach_o_scan_read_symtab_strtab PARAMS ((bfd *, bfd_mach_o_symtab_command *)); -int bfd_mach_o_scan_read_symtab_symbols PARAMS ((bfd *, bfd_mach_o_symtab_command *)); -int bfd_mach_o_scan_read_dysymtab_symbol PARAMS ((bfd *, bfd_mach_o_dysymtab_command *, bfd_mach_o_symtab_command *, asymbol *, unsigned long)); -int bfd_mach_o_scan_start_address PARAMS ((bfd *)); -int bfd_mach_o_scan PARAMS ((bfd *, bfd_mach_o_header *, bfd_mach_o_data_struct *)); -boolean bfd_mach_o_mkobject PARAMS ((bfd *)); -const bfd_target * bfd_mach_o_object_p PARAMS ((bfd *)); -const bfd_target * bfd_mach_o_core_p PARAMS ((bfd *)); -const bfd_target * bfd_mach_o_archive_p PARAMS ((bfd *)); -bfd * bfd_mach_o_openr_next_archived_file PARAMS ((bfd *, bfd *)); -int bfd_mach_o_lookup_section PARAMS ((bfd *, asection *, bfd_mach_o_load_command **, bfd_mach_o_section **)); -int bfd_mach_o_lookup_command PARAMS ((bfd *, bfd_mach_o_load_command_type, bfd_mach_o_load_command **)); -unsigned long bfd_mach_o_stack_addr PARAMS ((enum bfd_mach_o_cpu_type)); -int bfd_mach_o_core_fetch_environment PARAMS ((bfd *, unsigned char **, unsigned int *)); -char * bfd_mach_o_core_file_failing_command PARAMS ((bfd *)); -int bfd_mach_o_core_file_failing_signal PARAMS ((bfd *)); -boolean bfd_mach_o_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); +bfd_boolean bfd_mach_o_valid + PARAMS ((bfd *)); +int bfd_mach_o_scan_read_symtab_symbol + PARAMS ((bfd *, bfd_mach_o_symtab_command *, asymbol *, unsigned long)); +int bfd_mach_o_scan_read_symtab_strtab + PARAMS ((bfd *, bfd_mach_o_symtab_command *)); +int bfd_mach_o_scan_read_symtab_symbols + PARAMS ((bfd *, bfd_mach_o_symtab_command *)); +int bfd_mach_o_scan_read_dysymtab_symbol + PARAMS ((bfd *, bfd_mach_o_dysymtab_command *, bfd_mach_o_symtab_command *, + asymbol *, unsigned long)); +int bfd_mach_o_scan_start_address + PARAMS ((bfd *)); +int bfd_mach_o_scan + PARAMS ((bfd *, bfd_mach_o_header *, bfd_mach_o_data_struct *)); +bfd_boolean bfd_mach_o_mkobject + PARAMS ((bfd *)); +const bfd_target * bfd_mach_o_object_p + PARAMS ((bfd *)); +const bfd_target * bfd_mach_o_core_p + PARAMS ((bfd *)); +const bfd_target * bfd_mach_o_archive_p + PARAMS ((bfd *)); +bfd * bfd_mach_o_openr_next_archived_file + PARAMS ((bfd *, bfd *)); +int bfd_mach_o_lookup_section + PARAMS ((bfd *, asection *, bfd_mach_o_load_command **, + bfd_mach_o_section **)); +int bfd_mach_o_lookup_command + PARAMS ((bfd *, bfd_mach_o_load_command_type, bfd_mach_o_load_command **)); +unsigned long bfd_mach_o_stack_addr + PARAMS ((enum bfd_mach_o_cpu_type)); +int bfd_mach_o_core_fetch_environment + PARAMS ((bfd *, unsigned char **, unsigned int *)); +char * bfd_mach_o_core_file_failing_command + PARAMS ((bfd *)); +int bfd_mach_o_core_file_failing_signal + PARAMS ((bfd *)); +bfd_boolean bfd_mach_o_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); extern const bfd_target mach_o_be_vec; extern const bfd_target mach_o_le_vec; diff -uprN binutils-2.13.90.0.16/bfd/merge.c binutils-2.13.90.0.18/bfd/merge.c --- binutils-2.13.90.0.16/bfd/merge.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/merge.c Mon Dec 16 12:22:52 2002 @@ -68,7 +68,7 @@ struct sec_merge_hash /* Entity size. */ unsigned int entsize; /* Are entries fixed size or zero terminated strings? */ - boolean strings; + bfd_boolean strings; }; struct sec_merge_info @@ -100,20 +100,24 @@ struct sec_merge_sec_info static struct bfd_hash_entry *sec_merge_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct sec_merge_hash_entry *sec_merge_hash_lookup - PARAMS ((struct sec_merge_hash *, const char *, unsigned int, boolean)); + PARAMS ((struct sec_merge_hash *, const char *, unsigned int, bfd_boolean)); static struct sec_merge_hash *sec_merge_init - PARAMS ((unsigned int, boolean)); + PARAMS ((unsigned int, bfd_boolean)); static struct sec_merge_hash_entry *sec_merge_add PARAMS ((struct sec_merge_hash *, const char *, unsigned int, struct sec_merge_sec_info *)); -static boolean sec_merge_emit +static bfd_boolean sec_merge_emit PARAMS ((bfd *, struct sec_merge_hash_entry *)); -static int cmplengthentry PARAMS ((const PTR, const PTR)); -static int last4_eq PARAMS ((const PTR, const PTR)); -static int last_eq PARAMS ((const PTR, const PTR)); -static boolean record_section +static int cmplengthentry + PARAMS ((const PTR, const PTR)); +static int last4_eq + PARAMS ((const PTR, const PTR)); +static int last_eq + PARAMS ((const PTR, const PTR)); +static bfd_boolean record_section PARAMS ((struct sec_merge_info *, struct sec_merge_sec_info *)); -static void merge_strings PARAMS ((struct sec_merge_info *)); +static void merge_strings + PARAMS ((struct sec_merge_info *)); /* Routine to create an entry in a section merge hashtab. */ @@ -156,7 +160,7 @@ sec_merge_hash_lookup (table, string, al struct sec_merge_hash *table; const char *string; unsigned int alignment; - boolean create; + bfd_boolean create; { register const unsigned char *s; register unsigned long hash; @@ -259,7 +263,7 @@ sec_merge_hash_lookup (table, string, al static struct sec_merge_hash * sec_merge_init (entsize, strings) unsigned int entsize; - boolean strings; + bfd_boolean strings; { struct sec_merge_hash *table; bfd_size_type amt = sizeof (struct sec_merge_hash); @@ -295,7 +299,7 @@ sec_merge_add (tab, str, alignment, seci { register struct sec_merge_hash_entry *entry; - entry = sec_merge_hash_lookup (tab, str, alignment, true); + entry = sec_merge_hash_lookup (tab, str, alignment, TRUE); if (entry == NULL) return NULL; @@ -313,7 +317,7 @@ sec_merge_add (tab, str, alignment, seci return entry; } -static boolean +static bfd_boolean sec_merge_emit (abfd, entry) register bfd *abfd; struct sec_merge_hash_entry *entry; @@ -353,13 +357,13 @@ sec_merge_emit (abfd, entry) if (alignment_power) free (pad); - return (boolean) (entry == NULL || entry->secinfo != secinfo); + return entry == NULL || entry->secinfo != secinfo; } /* This function is called for each input file from the add_symbols pass of the linker. */ -boolean +bfd_boolean _bfd_merge_section (abfd, psinfo, sec, psecinfo) bfd *abfd; PTR *psinfo; @@ -375,12 +379,12 @@ _bfd_merge_section (abfd, psinfo, sec, p || (sec->flags & SEC_EXCLUDE) || (sec->flags & SEC_MERGE) == 0 || sec->entsize == 0) - return true; + return TRUE; if ((sec->flags & SEC_RELOC) != 0) { /* We aren't prepared to handle relocations in merged sections. */ - return true; + return TRUE; } align = bfd_get_section_alignment (sec->owner, sec); @@ -396,7 +400,7 @@ _bfd_merge_section (abfd, psinfo, sec, p of alignment. For non-string constants, alignment must be smaller than or equal to entity size and entity size must be integer multiple of alignment. */ - return true; + return TRUE; } for (sinfo = (struct sec_merge_info *) *psinfo; sinfo; sinfo = sinfo->next) @@ -446,11 +450,11 @@ _bfd_merge_section (abfd, psinfo, sec, p (bfd_vma) 0, sec->_raw_size)) goto error_return; - return true; + return TRUE; error_return: *psecinfo = NULL; - return false; + return FALSE; } /* Compare two sec_merge_hash_entry structures. This is called via qsort. */ @@ -533,21 +537,21 @@ last_eq (a, b) } /* Record one section into the hash table. */ -static boolean +static bfd_boolean record_section (sinfo, secinfo) struct sec_merge_info *sinfo; struct sec_merge_sec_info *secinfo; { asection *sec = secinfo->sec; struct sec_merge_hash_entry *entry; - boolean nul; + bfd_boolean nul; unsigned char *p, *end; bfd_vma mask, eltalign; unsigned int align, i; align = bfd_get_section_alignment (sec->owner, sec); end = secinfo->contents + sec->_raw_size; - nul = false; + nul = FALSE; mask = ((bfd_vma) 1 << align) - 1; if (sec->flags & SEC_STRINGS) { @@ -567,7 +571,7 @@ record_section (sinfo, secinfo) { if (!nul && !((p - secinfo->contents) & mask)) { - nul = true; + nul = TRUE; entry = sec_merge_add (sinfo->htab, "", (unsigned) mask + 1, secinfo); if (! entry) @@ -587,7 +591,7 @@ record_section (sinfo, secinfo) break; if (!nul && !((p - secinfo->contents) & mask)) { - nul = true; + nul = TRUE; entry = sec_merge_add (sinfo->htab, p, (unsigned) mask + 1, secinfo); if (! entry) @@ -608,12 +612,12 @@ record_section (sinfo, secinfo) } } - return true; + return TRUE; error_return: for (secinfo = sinfo->chain; secinfo; secinfo = secinfo->next) *secinfo->psecinfo = NULL; - return false; + return FALSE; } /* This is a helper function for _bfd_merge_sections. It attempts to @@ -643,9 +647,9 @@ merge_strings (sinfo) qsort (array, (size_t) sinfo->htab->size, sizeof (struct sec_merge_hash_entry *), cmplengthentry); - last4tab = htab_create_alloc ((size_t) sinfo->htab->size * 4, + last4tab = htab_create_alloc ((size_t) sinfo->htab->size * 4, NULL, last4_eq, NULL, calloc, free); - lasttab = htab_create_alloc ((size_t) sinfo->htab->size * 4, + lasttab = htab_create_alloc ((size_t) sinfo->htab->size * 4, NULL, last_eq, NULL, calloc, free); if (lasttab == NULL || last4tab == NULL) goto alloc_failure; @@ -765,7 +769,7 @@ alloc_failure: /* This function is called once after all SEC_MERGE sections are registered with _bfd_merge_section. */ -boolean +bfd_boolean _bfd_merge_sections (abfd, xsinfo, remove_hook) bfd *abfd ATTRIBUTE_UNUSED; PTR xsinfo; @@ -837,12 +841,12 @@ _bfd_merge_sections (abfd, xsinfo, remov secinfo->sec->_cooked_size = 0; } - return true; + return TRUE; } /* Write out the merged section. */ -boolean +bfd_boolean _bfd_write_merged_section (output_bfd, sec, psecinfo) bfd *output_bfd; asection *sec; @@ -854,16 +858,16 @@ _bfd_write_merged_section (output_bfd, s secinfo = (struct sec_merge_sec_info *) psecinfo; if (!secinfo->first) - return true; + return TRUE; pos = sec->output_section->filepos + sec->output_offset; if (bfd_seek (output_bfd, pos, SEEK_SET) != 0) - return false; + return FALSE; if (! sec_merge_emit (output_bfd, secinfo->first)) - return false; + return FALSE; - return true; + return TRUE; } /* Adjust an address in the SEC_MERGE section. Given OFFSET within @@ -928,7 +932,7 @@ _bfd_merged_section_offset (output_bfd, p = secinfo->contents + ((offset + addend) / sec->entsize) * sec->entsize; } - entry = sec_merge_hash_lookup (secinfo->htab, p, 0, false); + entry = sec_merge_hash_lookup (secinfo->htab, p, 0, FALSE); if (!entry) { if (! secinfo->htab->strings) diff -uprN binutils-2.13.90.0.16/bfd/mipsbsd.c binutils-2.13.90.0.18/bfd/mipsbsd.c --- binutils-2.13.90.0.16/bfd/mipsbsd.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/mipsbsd.c Mon Dec 16 12:22:52 2002 @@ -53,7 +53,7 @@ static void MY(set_arch_mach) PARAMS ((b static void MY(choose_reloc_size) PARAMS ((bfd *abfd)); #define MY_write_object_contents MY(write_object_contents) -static boolean MY(write_object_contents) PARAMS ((bfd *abfd)); +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd)); /* We can't use MY(x) here because it leads to a recursive call to CONCAT2 when expanded inside JUMP_TABLE. */ @@ -130,7 +130,7 @@ MY (choose_reloc_size) (abfd) Section contents have already been written. We write the file header, symbols, and relocation. */ -static boolean +static bfd_boolean MY (write_object_contents) (abfd) bfd *abfd; { @@ -181,7 +181,7 @@ MY (write_object_contents) (abfd) WRITE_HEADERS (abfd, execp); - return true; + return TRUE; } /* MIPS relocation types. */ @@ -290,20 +290,20 @@ mips_fix_hi16_s (abfd, reloc_entry, symb } static reloc_howto_type mips_howto_table_ext[] = { - {MIPS_RELOC_32, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, - "32", false, 0, 0xffffffff, false}, - {MIPS_RELOC_JMP, 2, 2, 26, false, 0, complain_overflow_dont, + {MIPS_RELOC_32, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, + "32", FALSE, 0, 0xffffffff, FALSE}, + {MIPS_RELOC_JMP, 2, 2, 26, FALSE, 0, complain_overflow_dont, mips_fix_jmp_addr, - "MIPS_JMP", false, 0, 0x03ffffff, false}, - {MIPS_RELOC_WDISP16, 2, 2, 16, true, 0, complain_overflow_signed, 0, - "WDISP16", false, 0, 0x0000ffff, false}, - {MIPS_RELOC_HI16, 16, 2, 16, false, 0, complain_overflow_bitfield, 0, - "HI16", false, 0, 0x0000ffff, false}, - {MIPS_RELOC_HI16_S, 16, 2, 16, false, 0, complain_overflow_bitfield, + "MIPS_JMP", FALSE, 0, 0x03ffffff, FALSE}, + {MIPS_RELOC_WDISP16, 2, 2, 16, TRUE, 0, complain_overflow_signed, 0, + "WDISP16", FALSE, 0, 0x0000ffff, FALSE}, + {MIPS_RELOC_HI16, 16, 2, 16, FALSE, 0, complain_overflow_bitfield, 0, + "HI16", FALSE, 0, 0x0000ffff, FALSE}, + {MIPS_RELOC_HI16_S, 16, 2, 16, FALSE, 0, complain_overflow_bitfield, mips_fix_hi16_s, - "HI16_S", false, 0, 0x0000ffff, false}, - {MIPS_RELOC_LO16, 0, 2, 16, false, 0, complain_overflow_dont, 0, - "LO16", false, 0, 0x0000ffff, false}, + "HI16_S", FALSE, 0, 0x0000ffff, FALSE}, + {MIPS_RELOC_LO16, 0, 2, 16, FALSE, 0, complain_overflow_dont, 0, + "LO16", FALSE, 0, 0x0000ffff, FALSE}, }; static reloc_howto_type * diff -uprN binutils-2.13.90.0.16/bfd/mmo.c binutils-2.13.90.0.18/bfd/mmo.c --- binutils-2.13.90.0.16/bfd/mmo.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/bfd/mmo.c Mon Dec 16 12:22:52 2002 @@ -302,7 +302,7 @@ struct mmo_data_struct /* When we're reading bytes recursively, check this occasionally. Also holds write errors. */ - boolean have_error; + bfd_boolean have_error; /* Max symbol length that may appear in the lop_stab table. Note that this table might just hold a subset of symbols for not-really large @@ -342,7 +342,7 @@ struct mmo_section_data_struct struct mmo_write_sec_info { asection *reg_section; - boolean retval; + bfd_boolean retval; }; /* Used when trying to find a section corresponding to addr. */ @@ -352,73 +352,113 @@ struct mmo_find_sec_info bfd_vma addr; }; -static boolean mmo_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *)); +static bfd_boolean mmo_bfd_copy_private_bfd_data + PARAMS ((bfd *, bfd *)); static void mmo_write_section_unless_reg_contents PARAMS ((bfd *, asection *, PTR)); -static void mmo_find_sec_w_addr PARAMS ((bfd *, asection *, PTR)); -static void mmo_find_sec_w_addr_grow PARAMS ((bfd *, asection *, PTR)); -static asection *mmo_make_section PARAMS ((bfd *, const char *)); -static void mmo_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); +static void mmo_find_sec_w_addr + PARAMS ((bfd *, asection *, PTR)); +static void mmo_find_sec_w_addr_grow + PARAMS ((bfd *, asection *, PTR)); +static asection *mmo_make_section + PARAMS ((bfd *, const char *)); +static void mmo_get_symbol_info + PARAMS ((bfd *, asymbol *, symbol_info *)); static void mmo_print_symbol - PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); -static void mmo_init PARAMS ((void)); -static boolean mmo_mkobject PARAMS ((bfd *)); -static boolean mmo_scan PARAMS ((bfd *)); -static asection *mmo_decide_section PARAMS ((bfd *, bfd_vma)); -static asection *mmo_get_generic_spec_data_section PARAMS ((bfd *, int)); -static asection *mmo_get_spec_section PARAMS ((bfd *, int)); -static INLINE bfd_byte *mmo_get_loc PARAMS ((asection *, bfd_vma, int)); -static void mmo_xore_64 PARAMS ((asection *, bfd_vma vma, bfd_vma value)); -static void mmo_xore_32 PARAMS ((asection *, bfd_vma vma, unsigned int)); -static void mmo_xore_16 PARAMS ((asection *, bfd_vma vma, unsigned int)); -static const bfd_target *mmo_object_p PARAMS ((bfd *)); -static void mmo_map_set_sizes PARAMS ((bfd *, asection *, PTR)); -static boolean mmo_get_symbols PARAMS ((bfd *)); -static boolean mmo_create_symbol PARAMS ((bfd *, const char *, bfd_vma, - enum mmo_sym_type, unsigned int)); -static boolean mmo_get_section_contents + PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); +static void mmo_init + PARAMS ((void)); +static bfd_boolean mmo_mkobject + PARAMS ((bfd *)); +static bfd_boolean mmo_scan + PARAMS ((bfd *)); +static asection *mmo_decide_section + PARAMS ((bfd *, bfd_vma)); +static asection *mmo_get_generic_spec_data_section + PARAMS ((bfd *, int)); +static asection *mmo_get_spec_section + PARAMS ((bfd *, int)); +static INLINE bfd_byte *mmo_get_loc + PARAMS ((asection *, bfd_vma, int)); +static void mmo_xore_64 + PARAMS ((asection *, bfd_vma vma, bfd_vma value)); +static void mmo_xore_32 + PARAMS ((asection *, bfd_vma vma, unsigned int)); +static void mmo_xore_16 + PARAMS ((asection *, bfd_vma vma, unsigned int)); +static const bfd_target *mmo_object_p + PARAMS ((bfd *)); +static void mmo_map_set_sizes + PARAMS ((bfd *, asection *, PTR)); +static bfd_boolean mmo_get_symbols + PARAMS ((bfd *)); +static bfd_boolean mmo_create_symbol + PARAMS ((bfd *, const char *, bfd_vma, enum mmo_sym_type, unsigned int)); +static bfd_boolean mmo_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static long mmo_get_symtab_upper_bound PARAMS ((bfd *)); -static long mmo_get_symtab PARAMS ((bfd *, asymbol **)); -static void mmo_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -static void mmo_print_symbol PARAMS ((bfd *, PTR, asymbol *, - bfd_print_symbol_type)); -static boolean mmo_set_section_contents +static long mmo_get_symtab_upper_bound + PARAMS ((bfd *)); +static long mmo_get_symtab + PARAMS ((bfd *, asymbol **)); +static void mmo_get_symbol_info + PARAMS ((bfd *, asymbol *, symbol_info *)); +static void mmo_print_symbol + PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); +static bfd_boolean mmo_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); -static int mmo_sizeof_headers PARAMS ((bfd *, boolean)); -static long mmo_get_reloc_upper_bound PARAMS ((bfd *, asection *)); +static int mmo_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +static long mmo_get_reloc_upper_bound + PARAMS ((bfd *, asection *)); -static boolean mmo_internal_write_header PARAMS ((bfd *)); -static boolean mmo_internal_write_post PARAMS ((bfd *, int, asection *)); -static boolean mmo_internal_add_3_sym - PARAMS ((bfd *, struct mmo_symbol_trie *, const struct mmo_symbol *)); +static bfd_boolean mmo_internal_write_header + PARAMS ((bfd *)); +static bfd_boolean mmo_internal_write_post + PARAMS ((bfd *, int, asection *)); +static bfd_boolean mmo_internal_add_3_sym + PARAMS ((bfd *, struct mmo_symbol_trie *, const struct mmo_symbol *)); static unsigned int mmo_internal_3_length - PARAMS ((bfd *, struct mmo_symbol_trie *)); + PARAMS ((bfd *, struct mmo_symbol_trie *)); static void mmo_internal_3_dump - PARAMS ((bfd *, struct mmo_symbol_trie *)); -static void mmo_beb128_out PARAMS ((bfd *, int, int)); -static boolean mmo_internal_write_section + PARAMS ((bfd *, struct mmo_symbol_trie *)); +static void mmo_beb128_out + PARAMS ((bfd *, int, int)); +static bfd_boolean mmo_internal_write_section PARAMS ((bfd *, asection *)); -static void mmo_write_tetra PARAMS ((bfd *, unsigned int)); -static void mmo_write_tetra_raw PARAMS ((bfd *, unsigned int)); -static void mmo_write_octa PARAMS ((bfd *, bfd_vma)); -static void mmo_write_octa_raw PARAMS ((bfd *, bfd_vma)); -static boolean mmo_write_chunk +static void mmo_write_tetra + PARAMS ((bfd *, unsigned int)); +static void mmo_write_tetra_raw + PARAMS ((bfd *, unsigned int)); +static void mmo_write_octa + PARAMS ((bfd *, bfd_vma)); +static void mmo_write_octa_raw + PARAMS ((bfd *, bfd_vma)); +static bfd_boolean mmo_write_chunk PARAMS ((bfd *, const bfd_byte *, unsigned int)); -static boolean mmo_flush_chunk PARAMS ((bfd *)); -static boolean mmo_write_loc_chunk +static bfd_boolean mmo_flush_chunk + PARAMS ((bfd *)); +static bfd_boolean mmo_write_loc_chunk PARAMS ((bfd *, bfd_vma, const bfd_byte *, unsigned int, bfd_vma *)); -static boolean mmo_write_chunk_list PARAMS ((bfd *, mmo_data_list_type *)); -static boolean mmo_write_loc_chunk_list +static bfd_boolean mmo_write_chunk_list PARAMS ((bfd *, mmo_data_list_type *)); -static boolean mmo_write_symbols_and_terminator PARAMS ((bfd *)); -static flagword mmo_sec_flags_from_bfd_flags PARAMS ((flagword)); -static flagword bfd_sec_flags_from_mmo_flags PARAMS ((flagword)); -static bfd_byte mmo_get_byte PARAMS ((bfd *)); -static void mmo_write_byte PARAMS ((bfd *, bfd_byte)); -static boolean mmo_new_section_hook PARAMS ((bfd *, asection *)); -static int mmo_sort_mmo_symbols PARAMS ((const PTR, const PTR)); -static boolean mmo_write_object_contents PARAMS ((bfd *)); +static bfd_boolean mmo_write_loc_chunk_list + PARAMS ((bfd *, mmo_data_list_type *)); +static bfd_boolean mmo_write_symbols_and_terminator + PARAMS ((bfd *)); +static flagword mmo_sec_flags_from_bfd_flags + PARAMS ((flagword)); +static flagword bfd_sec_flags_from_mmo_flags + PARAMS ((flagword)); +static bfd_byte mmo_get_byte + PARAMS ((bfd *)); +static void mmo_write_byte + PARAMS ((bfd *, bfd_byte)); +static bfd_boolean mmo_new_section_hook + PARAMS ((bfd *, asection *)); +static int mmo_sort_mmo_symbols + PARAMS ((const PTR, const PTR)); +static bfd_boolean mmo_write_object_contents + PARAMS ((bfd *)); static long mmo_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); @@ -475,7 +515,7 @@ mmo_make_section (abfd, secname) static void mmo_init () { - static boolean inited = false; + static bfd_boolean inited = FALSE; int i = 0; int j = 0; static const char letters[] @@ -483,7 +523,7 @@ mmo_init () if (inited) return; - inited = true; + inited = TRUE; /* Fill in the set of valid symbol characters. */ strcpy (valid_mmo_symbol_character_set, letters); @@ -563,7 +603,7 @@ mmo_object_p (abfd) /* Set up the mmo tdata information. */ -static boolean +static bfd_boolean mmo_mkobject (abfd) bfd *abfd; { @@ -577,7 +617,7 @@ mmo_mkobject (abfd) initialize most. */ tdata_type *tdata = (tdata_type *) bfd_zmalloc (sizeof (tdata_type)); if (tdata == NULL) - return false; + return FALSE; created = time (NULL); bfd_put_32 (abfd, created, tdata->created); @@ -585,24 +625,24 @@ mmo_mkobject (abfd) abfd->tdata.mmo_data = tdata; } - return true; + return TRUE; } -static boolean +static bfd_boolean mmo_bfd_copy_private_bfd_data (ibfd, obfd) bfd *ibfd; bfd *obfd; { if (bfd_get_flavour (ibfd) != bfd_target_mmo_flavour || bfd_get_flavour (obfd) != bfd_target_mmo_flavour) - return true; + return TRUE; /* Copy the time the copied-from file was created. If people want the time the file was last *modified*, they have that in the normal file information. */ memcpy (obfd->tdata.mmo_data->created, ibfd->tdata.mmo_data->created, sizeof (obfd->tdata.mmo_data->created)); - return true; + return TRUE; } /* Helper functions for mmo_decide_section, used through @@ -775,7 +815,7 @@ mmo_write_tetra_raw (abfd, value) bfd_put_32 (abfd, value, buf); if (bfd_bwrite ((PTR) buf, 4, abfd) != 4) - abfd->tdata.mmo_data->have_error = true; + abfd->tdata.mmo_data->have_error = TRUE; } /* Write a 32-bit word to output file; lop_quote if necessary. */ @@ -816,13 +856,13 @@ mmo_write_octa_raw (abfd, value) /* Write quoted contents. Intended to be called multiple times in sequence, followed by a call to mmo_flush_chunk. */ -static INLINE boolean +static INLINE bfd_boolean mmo_write_chunk (abfd, loc, len) bfd *abfd; const bfd_byte *loc; unsigned int len; { - boolean retval = true; + bfd_boolean retval = TRUE; /* Fill up a tetra from bytes remaining from a previous chunk. */ if (abfd->tdata.mmo_data->byte_no != 0) @@ -861,14 +901,14 @@ mmo_write_chunk (abfd, loc, len) } if (! retval) - abfd->tdata.mmo_data->have_error = true; + abfd->tdata.mmo_data->have_error = TRUE; return retval; } /* Flush remaining bytes, from a previous mmo_write_chunk, zero-padded to 4 bytes. */ -static INLINE boolean +static INLINE bfd_boolean mmo_flush_chunk (abfd) bfd *abfd; { @@ -886,14 +926,14 @@ mmo_flush_chunk (abfd) /* Same, but from a list. */ -static INLINE boolean +static INLINE bfd_boolean mmo_write_chunk_list (abfd, datap) bfd *abfd; mmo_data_list_type *datap; { for (; datap != NULL; datap = datap->next) if (! mmo_write_chunk (abfd, datap->data, datap->size)) - return false; + return FALSE; return mmo_flush_chunk (abfd); } @@ -902,7 +942,7 @@ mmo_write_chunk_list (abfd, datap) mmo_flush_chunk after calling this function. The location is only output if different than *LAST_VMAP, which is updated after this call. */ -static boolean +static bfd_boolean mmo_write_loc_chunk (abfd, vma, loc, len, last_vmap) bfd *abfd; bfd_vma vma; @@ -953,7 +993,7 @@ mmo_write_loc_chunk (abfd, vma, loc, len /* Same, but from a list. */ -static INLINE boolean +static INLINE bfd_boolean mmo_write_loc_chunk_list (abfd, datap) bfd *abfd; mmo_data_list_type *datap; @@ -964,7 +1004,7 @@ mmo_write_loc_chunk_list (abfd, datap) for (; datap != NULL; datap = datap->next) if (! mmo_write_loc_chunk (abfd, datap->where, datap->data, datap->size, &last_vma)) - return false; + return FALSE; return mmo_flush_chunk (abfd); } @@ -1169,7 +1209,7 @@ mmo_get_byte (abfd) if (! abfd->tdata.mmo_data->have_error && bfd_bread (abfd->tdata.mmo_data->buf, 4, abfd) != 4) { - abfd->tdata.mmo_data->have_error = true; + abfd->tdata.mmo_data->have_error = TRUE; /* A value somewhat safe against tripping on some inconsistency when mopping up after this error. */ @@ -1195,13 +1235,13 @@ mmo_write_byte (abfd, value) { if (! abfd->tdata.mmo_data->have_error && bfd_bwrite (abfd->tdata.mmo_data->buf, 4, abfd) != 4) - abfd->tdata.mmo_data->have_error = true; + abfd->tdata.mmo_data->have_error = TRUE; } } /* Create a symbol. */ -static boolean +static bfd_boolean mmo_create_symbol (abfd, symname, addr, sym_type, serno) bfd *abfd; const char *symname; @@ -1213,11 +1253,11 @@ mmo_create_symbol (abfd, symname, addr, n = (struct mmo_symbol *) bfd_alloc (abfd, sizeof (struct mmo_symbol)); if (n == NULL) - return false; + return FALSE; n->name = bfd_alloc (abfd, strlen (symname) + 1); if (n->name == NULL) - return false; + return FALSE; strcpy ((PTR) n->name, symname); @@ -1245,15 +1285,15 @@ mmo_create_symbol (abfd, symname, addr, (_("%s: invalid mmo file: initialization value for $255 is not `Main'\n"), bfd_get_filename (abfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } - return true; + return TRUE; } /* Read in symbols. */ -static boolean +static bfd_boolean mmo_get_symbols (abfd) bfd *abfd; { @@ -1360,7 +1400,7 @@ SUBSECTION /* Check first if we have a bad hair day. */ if (abfd->tdata.mmo_data->have_error) - return false; + return FALSE; if (m & MMO3_LEFT) /* Traverse left trie. */ @@ -1393,8 +1433,8 @@ SUBSECTION bfd_get_filename (abfd), c, c2, abfd->tdata.mmo_data->lop_stab_symbol); bfd_set_error (bfd_error_bad_value); - abfd->tdata.mmo_data->have_error = true; - return false; + abfd->tdata.mmo_data->have_error = TRUE; + return FALSE; } else c = c2; @@ -1448,7 +1488,7 @@ SUBSECTION abfd->tdata.mmo_data->lop_stab_symbol + 1, addr, sym_type, serno)) - abfd->tdata.mmo_data->have_error = true; + abfd->tdata.mmo_data->have_error = TRUE; } if (m & MMO3_MIDDLE) @@ -1586,13 +1626,13 @@ mmo_map_set_sizes (abfd, sec, ignored) /* Read the mmo file and turn it into sections. */ -static boolean +static bfd_boolean mmo_scan (abfd) bfd *abfd; { unsigned int i; unsigned int lineno = 1; - boolean error = false; + bfd_boolean error = FALSE; bfd_vma vma = 0; asection *sec = bfd_make_section_old_way (abfd, MMO_TEXT_SECTION_NAME); asection *non_spec_sec = NULL; @@ -2039,7 +2079,7 @@ mmo_scan (abfd) bfd_set_error (bfd_error_bad_value); error_return: - error = true; + error = TRUE; done: /* Mark the .text and .data section with their normal attribute if they contain anything. This is not redundant wrt. mmo_decide_section, @@ -2051,7 +2091,7 @@ mmo_scan (abfd) && ! bfd_set_section_flags (abfd, sec, bfd_get_section_flags (abfd, sec) | SEC_ALLOC | SEC_LOAD | SEC_CODE)) - error = true; + error = TRUE; sec = bfd_get_section_by_name (abfd, MMO_DATA_SECTION_NAME); if (sec != NULL @@ -2059,7 +2099,7 @@ mmo_scan (abfd) && ! bfd_set_section_flags (abfd, sec, bfd_get_section_flags (abfd, sec) | SEC_ALLOC | SEC_LOAD)) - error = true; + error = TRUE; /* Free whatever resources we took. */ for (i = 0; i < sizeof (file_names) / sizeof (file_names[0]); i++) @@ -2071,7 +2111,7 @@ mmo_scan (abfd) /* A hook to set up object file dependent section information. For mmo, we point out the shape of allocated section contents. */ -static boolean +static bfd_boolean mmo_new_section_hook (abfd, newsect) bfd *abfd ATTRIBUTE_UNUSED; asection *newsect; @@ -2082,17 +2122,17 @@ mmo_new_section_hook (abfd, newsect) (PTR) bfd_zalloc (abfd, sizeof (struct mmo_section_data_struct)); if (!newsect->used_by_bfd) - return false; + return FALSE; /* Always align to at least 32-bit words. */ newsect->alignment_power = 2; - return true; + return TRUE; } /* We already have section contents loaded for sections that have contents. */ -static boolean +static bfd_boolean mmo_get_section_contents (abfd, sec, location, offset, bytes_to_do) bfd *abfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; @@ -2116,7 +2156,7 @@ mmo_get_section_contents (abfd, sec, loc while (loc == NULL && (chunk_size /= 2) != 0); if (chunk_size == 0) - return false; + return FALSE; memcpy (location, loc, chunk_size); @@ -2124,7 +2164,7 @@ mmo_get_section_contents (abfd, sec, loc bytes_to_do -= chunk_size; offset += chunk_size; } - return true; + return TRUE; } /* Return the amount of memory needed to read the symbol table. */ @@ -2191,7 +2231,7 @@ mmo_get_symtab (abfd, alocation) csymbols = (asymbol *) bfd_alloc (abfd, symcount * sizeof (asymbol)); if (csymbols == NULL && symcount != 0) - return false; + return FALSE; abfd->tdata.mmo_data->csymbols = csymbols; for (msp = (struct mmo_symbol **) alocation, c = csymbols; @@ -2289,27 +2329,27 @@ mmo_print_symbol (abfd, afile, symbol, h static int mmo_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } /* Write the (section-neutral) file preamble. */ -static boolean +static bfd_boolean mmo_internal_write_header (abfd) bfd *abfd; { const char lop_pre_bfd[] = { LOP, LOP_PRE, 1, 1}; if (bfd_bwrite (lop_pre_bfd, 4, abfd) != 4) - return false; + return FALSE; /* Copy creation time of original file. */ if (bfd_bwrite (abfd->tdata.mmo_data->created, 4, abfd) != 4) - return false; + return FALSE; - return true; + return TRUE; } /* Write the LOP_POST record, with global register initializations. @@ -2317,7 +2357,7 @@ mmo_internal_write_header (abfd) registers at DATA. The Z = 255 field is filled in with the start-address. */ -static boolean +static bfd_boolean mmo_internal_write_post (abfd, z, sec) bfd *abfd; int z; @@ -2332,7 +2372,7 @@ mmo_internal_write_post (abfd, z, sec) bfd_byte *data = mmo_get_loc (sec, i * 8, 8); if (bfd_bwrite (data, 8, abfd) != 8) - return false; + return FALSE; } /* For Z == $255, we always emit the start location; supposedly Main, @@ -2404,7 +2444,7 @@ bfd_sec_flags_from_mmo_flags (flags) /* Write a section. */ -static boolean +static bfd_boolean mmo_internal_write_section (abfd, sec) bfd *abfd; asection *sec; @@ -2438,7 +2478,7 @@ mmo_internal_write_section (abfd, sec) /* This would normally be an abort call since this can't happen, but we don't do that. */ bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } else if (strncmp (sec->name, MMIX_OTHER_SPEC_SECTION_PREFIX, strlen (MMIX_OTHER_SPEC_SECTION_PREFIX)) == 0) @@ -2565,7 +2605,7 @@ EXAMPLE /* Writing a LOP_LOC ends the LOP_SPEC data, and makes data actually loaded. */ if (bfd_get_section_flags (abfd, sec) & SEC_LOAD) - return + return ! abfd->tdata.mmo_data->have_error && mmo_write_loc_chunk_list (abfd, ((struct mmo_section_data_struct *) @@ -2576,12 +2616,12 @@ EXAMPLE ((struct mmo_section_data_struct *) (sec->used_by_bfd))->head); } - return true; + return TRUE; } /* We save up all data before output. */ -static boolean +static bfd_boolean mmo_set_section_contents (abfd, sec, location, offset, bytes_to_do) bfd *abfd ATTRIBUTE_UNUSED; sec_ptr sec; @@ -2604,7 +2644,7 @@ mmo_set_section_contents (abfd, sec, loc while (loc == NULL && (chunk_size /= 2) != 0); if (chunk_size == 0) - return false; + return FALSE; memcpy (loc, location, chunk_size); @@ -2612,12 +2652,12 @@ mmo_set_section_contents (abfd, sec, loc bytes_to_do -= chunk_size; offset += chunk_size; } - return true; + return TRUE; } /* Add a symbol to a trie-tree. */ -static boolean +static bfd_boolean mmo_internal_add_3_sym (abfd, rootp, symp) bfd *abfd; struct mmo_symbol_trie *rootp; @@ -2670,11 +2710,11 @@ mmo_internal_add_3_sym (abfd, rootp, sym (_("%s: invalid symbol table: duplicate symbol `%s'\n"), bfd_get_filename (abfd), trie->sym.name); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } memcpy (&trie->sym, symp, sizeof *symp); - return true; + return TRUE; } /* Find out the length of the serialized version of a trie in bytes. */ @@ -2849,7 +2889,7 @@ mmo_internal_3_dump (abfd, trie) /* Write symbols in mmo format. Also write the lop_end terminator. */ -static boolean +static bfd_boolean mmo_write_symbols_and_terminator (abfd) bfd *abfd; { @@ -2882,7 +2922,7 @@ mmo_write_symbols_and_terminator (abfd) symbols. Make sure we have room for it. */ table = bfd_alloc (abfd, (count + 1) * sizeof (asymbol *)); if (table == NULL) - return false; + return FALSE; memcpy (table, orig_table, count * sizeof (asymbol *)); @@ -2922,7 +2962,7 @@ mmo_write_symbols_and_terminator (abfd) than the start address %s\n"), bfd_get_filename (abfd), vmas_main, vmas_start); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } break; } @@ -2985,7 +3025,7 @@ mmo_write_symbols_and_terminator (abfd) sym.serno = serno++; if (! mmo_internal_add_3_sym (abfd, &root, &sym)) - return false; + return FALSE; } } @@ -3026,7 +3066,7 @@ mmo_write_symbols_and_terminator (abfd) root.right = NULL; if (! mmo_internal_add_3_sym (abfd, &root, &sym)) - return false; + return FALSE; root.symchar = ':'; root.middle = root.left; @@ -3042,7 +3082,7 @@ mmo_write_symbols_and_terminator (abfd) /* Put out the lop_stab mark. */ bfd_put_32 (abfd, (LOP << 24) | (LOP_STAB << 16), buf); if (bfd_bwrite (buf, 4, abfd) != 4) - return false; + return FALSE; /* Dump out symbols. */ mmo_internal_3_dump (abfd, &root); @@ -3058,7 +3098,7 @@ mmo_write_symbols_and_terminator (abfd) bfd_get_filename (abfd), trie_len, (abfd->tdata.mmo_data->byte_no + 3)/4); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } /* Dump out remaining bytes in the buffer and handle I/O errors by @@ -3071,7 +3111,7 @@ mmo_write_symbols_and_terminator (abfd) if (abfd->tdata.mmo_data->have_error || bfd_bwrite (abfd->tdata.mmo_data->buf, 4, abfd) != 4) - return false; + return FALSE; } bfd_put_32 (abfd, (LOP << 24) | (LOP_END << 16) | trie_len, buf); @@ -3112,7 +3152,7 @@ mmo_write_section_unless_reg_contents (a contents\n"), bfd_get_filename (abfd), sec->name); bfd_set_error (bfd_error_bad_value); - infop->retval = false; + infop->retval = FALSE; return; } @@ -3125,7 +3165,7 @@ mmo_write_section_unless_reg_contents (a /* Do the actual output of a file. Assumes mmo_set_section_contents is already called. */ -static boolean +static bfd_boolean mmo_write_object_contents (abfd) bfd *abfd; { @@ -3133,16 +3173,16 @@ mmo_write_object_contents (abfd) /* First, there are a few words of preamble. */ if (! mmo_internal_write_header (abfd)) - return false; + return FALSE; wsecinfo.reg_section = NULL; - wsecinfo.retval = true; + wsecinfo.retval = TRUE; bfd_map_over_sections (abfd, mmo_write_section_unless_reg_contents, (PTR) &wsecinfo); if (! wsecinfo.retval) - return false; + return FALSE; if (wsecinfo.reg_section != NULL) { @@ -3177,15 +3217,15 @@ mmo_write_object_contents (abfd) (long) sec->_raw_size, (unsigned long) (sec->vma >> 32), (unsigned long) (sec->vma)); - return false; + return FALSE; } if (! mmo_internal_write_post (abfd, z, sec)) - return false; + return FALSE; } else if (! mmo_internal_write_post (abfd, 255, NULL)) - return false; + return FALSE; return mmo_write_symbols_and_terminator (abfd); } diff -uprN binutils-2.13.90.0.16/bfd/netbsd-core.c binutils-2.13.90.0.18/bfd/netbsd-core.c --- binutils-2.13.90.0.16/bfd/netbsd-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/netbsd-core.c Mon Dec 16 12:22:52 2002 @@ -40,12 +40,16 @@ struct netbsd_core_struct { /* forward declarations */ -static const bfd_target *netbsd_core_file_p PARAMS ((bfd *abfd)); -static char *netbsd_core_file_failing_command PARAMS ((bfd *abfd)); -static int netbsd_core_file_failing_signal PARAMS ((bfd *abfd)); -static boolean netbsd_core_file_matches_executable_p +static const bfd_target *netbsd_core_file_p + PARAMS ((bfd *abfd)); +static char *netbsd_core_file_failing_command + PARAMS ((bfd *abfd)); +static int netbsd_core_file_failing_signal + PARAMS ((bfd *abfd)); +static bfd_boolean netbsd_core_file_matches_executable_p PARAMS ((bfd *core_bfd, bfd *exec_bfd)); -static void swap_abort PARAMS ((void)); +static void swap_abort + PARAMS ((void)); /* Handle NetBSD-style core dump file. */ @@ -185,12 +189,12 @@ netbsd_core_file_failing_signal (abfd) } /* ARGSUSED */ -static boolean +static bfd_boolean netbsd_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return true; /* FIXME, We have no way of telling at this point */ + return TRUE; /* FIXME, We have no way of telling at this point */ } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/netbsd.h binutils-2.13.90.0.18/bfd/netbsd.h --- binutils-2.13.90.0.16/bfd/netbsd.h Fri Mar 9 11:16:03 2001 +++ binutils-2.13.90.0.18/bfd/netbsd.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end definitions used by all NetBSD targets. - Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000 + Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -64,7 +64,7 @@ USA. */ #define MY_entry_is_text_address 1 #define MY_write_object_contents MY(write_object_contents) -static boolean MY(write_object_contents) PARAMS ((bfd *abfd)); +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd)); #define MY_text_includes_header 1 #include "aout-target.h" @@ -73,7 +73,7 @@ static boolean MY(write_object_contents) Section contents have already been written. We write the file header, symbols, and relocation. */ -static boolean +static bfd_boolean MY(write_object_contents) (abfd) bfd *abfd; { @@ -114,5 +114,5 @@ MY(write_object_contents) (abfd) WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/nlm.c binutils-2.13.90.0.18/bfd/nlm.c --- binutils-2.13.90.0.16/bfd/nlm.c Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/nlm.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* NLM (NetWare Loadable Module) executable support for BFD. - Copyright 1993, 1994, 2001 Free Software Foundation, Inc. + Copyright 1993, 1994, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -25,26 +25,26 @@ Foundation, Inc., 59 Temple Place - Suit /* Make an NLM object. We just need to allocate the backend information. */ -boolean +bfd_boolean nlm_mkobject (abfd) bfd * abfd; { bfd_size_type amt = sizeof (struct nlm_obj_tdata); nlm_tdata (abfd) = (struct nlm_obj_tdata *) bfd_zalloc (abfd, amt); if (nlm_tdata (abfd) == NULL) - return (false); + return FALSE; if (nlm_architecture (abfd) != bfd_arch_unknown) bfd_default_set_arch_mach (abfd, nlm_architecture (abfd), nlm_machine (abfd)); /* since everything is done at close time, do we need any initialization? */ - return (true); + return TRUE; } /* Set the architecture and machine for an NLM object. */ -boolean +bfd_boolean nlm_set_arch_mach (abfd, arch, machine) bfd * abfd; enum bfd_architecture arch; diff -uprN binutils-2.13.90.0.16/bfd/nlm32-alpha.c binutils-2.13.90.0.18/bfd/nlm32-alpha.c --- binutils-2.13.90.0.16/bfd/nlm32-alpha.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/nlm32-alpha.c Mon Dec 16 12:22:52 2002 @@ -33,30 +33,30 @@ Foundation, Inc., 59 Temple Place - Suit #include "libnlm.h" -static boolean nlm_alpha_backend_object_p +static bfd_boolean nlm_alpha_backend_object_p PARAMS ((bfd *)); -static boolean nlm_alpha_write_prefix +static bfd_boolean nlm_alpha_write_prefix PARAMS ((bfd *)); -static boolean nlm_alpha_read_reloc +static bfd_boolean nlm_alpha_read_reloc PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *)); -static boolean nlm_alpha_mangle_relocs +static bfd_boolean nlm_alpha_mangle_relocs PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type)); -static boolean nlm_alpha_read_import +static bfd_boolean nlm_alpha_read_import PARAMS ((bfd *, nlmNAME(symbol_type) *)); -static boolean nlm_alpha_write_import +static bfd_boolean nlm_alpha_write_import PARAMS ((bfd *, asection *, arelent *)); -static boolean nlm_alpha_set_public_section +static bfd_boolean nlm_alpha_set_public_section PARAMS ((bfd *, nlmNAME(symbol_type) *)); static bfd_vma nlm_alpha_get_public_offset PARAMS ((bfd *, asymbol *)); -static boolean nlm_alpha_write_external +static bfd_boolean nlm_alpha_write_external PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *)); /* Alpha NLM's have a prefix header before the standard NLM. This function reads it in, verifies the version, and seeks the bfd to the location before the regular NLM header. */ -static boolean +static bfd_boolean nlm_alpha_backend_object_p (abfd) bfd *abfd; { @@ -64,24 +64,24 @@ nlm_alpha_backend_object_p (abfd) file_ptr size; if (bfd_bread ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return false; + return FALSE; if (H_GET_32 (abfd, s.magic) != NLM32_ALPHA_MAGIC) - return false; + return FALSE; /* FIXME: Should we check the format number? */ /* Skip to the end of the header. */ size = H_GET_32 (abfd, s.size); if (bfd_seek (abfd, size, SEEK_SET) != 0) - return false; + return FALSE; - return true; + return TRUE; } /* Write out the prefix. */ -static boolean +static bfd_boolean nlm_alpha_write_prefix (abfd) bfd *abfd; { @@ -92,8 +92,8 @@ nlm_alpha_write_prefix (abfd) H_PUT_32 (abfd, 2, s.format); H_PUT_32 (abfd, sizeof s, s.size); if (bfd_bwrite ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return false; - return true; + return FALSE; + return TRUE; } /* How to process the various reloc types. */ @@ -107,45 +107,45 @@ static reloc_howto_type nlm32_alpha_howt 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "IGNORE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit reference to a symbol. */ HOWTO (ALPHA_R_REFLONG, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "REFLONG", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit reference to a symbol. */ HOWTO (ALPHA_R_REFQUAD, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "REFQUAD", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffffffffffff, /* src_mask */ 0xffffffffffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit GP relative offset. This is just like REFLONG except that when the value is used the value of the gp register will be @@ -154,15 +154,15 @@ static reloc_howto_type nlm32_alpha_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "GPREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Used for an instruction that refers to memory off the GP register. The offset is 16 bits of the 32 bit instruction. This @@ -171,15 +171,15 @@ static reloc_howto_type nlm32_alpha_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "LITERAL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* This reloc only appears immediately following a LITERAL reloc. It identifies a use of the literal. It seems that the linker can @@ -194,15 +194,15 @@ static reloc_howto_type nlm32_alpha_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "LITUSE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Load the gp register. This is always used for a ldah instruction which loads the upper 16 bits of the gp register. The next reloc @@ -219,15 +219,15 @@ static reloc_howto_type nlm32_alpha_howt 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "GPDISP", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 21 bit branch. The native assembler generates these for branches within the text segment, and also fills in the PC @@ -237,90 +237,90 @@ static reloc_howto_type nlm32_alpha_howt 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 21, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "BRADDR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0x1fffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A hint for a jump to a register. */ HOWTO (ALPHA_R_HINT, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 14, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "HINT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3fff, /* src_mask */ 0x3fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative offset. */ HOWTO (ALPHA_R_SREL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative offset. */ HOWTO (ALPHA_R_SREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit PC relative offset. */ HOWTO (ALPHA_R_SREL64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "SREL64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffffffffffff, /* src_mask */ 0xffffffffffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Push a value on the reloc evaluation stack. */ HOWTO (ALPHA_R_OP_PUSH, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_PUSH", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Store the value from the stack at the given address. Store it in a bitfield of size r_size starting at bit position r_offset. */ @@ -328,15 +328,15 @@ static reloc_howto_type nlm32_alpha_howt 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_STORE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0xffffffffffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Subtract the reloc address from the value on the top of the relocation stack. */ @@ -344,15 +344,15 @@ static reloc_howto_type nlm32_alpha_howt 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_PSUB", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Shift the value on the top of the relocation stack right by the given value. */ @@ -360,30 +360,30 @@ static reloc_howto_type nlm32_alpha_howt 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "OP_PRSHIFT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Adjust the GP value for a new range in the object file. */ HOWTO (ALPHA_R_GPVALUE, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "GPVALUE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; static reloc_howto_type nlm32_alpha_nw_howto = @@ -391,21 +391,21 @@ static reloc_howto_type nlm32_alpha_nw_h 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "NW_RELOC", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* Read an Alpha NLM reloc. This routine keeps some static data which it uses when handling local relocs. This only works correctly because all the local relocs are read at once. */ -static boolean +static bfd_boolean nlm_alpha_read_reloc (abfd, sym, secp, rel) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -422,7 +422,7 @@ nlm_alpha_read_reloc (abfd, sym, secp, r /* Read the reloc from the file. */ if (bfd_bread (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return false; + return FALSE; /* Swap in the reloc information. */ r_vaddr = H_GET_64 (abfd, ext.r_vaddr); @@ -596,12 +596,12 @@ nlm_alpha_read_reloc (abfd, sym, secp, r else rel->howto = &nlm32_alpha_howto_table[r_type]; - return true; + return TRUE; } /* Mangle Alpha NLM relocs for output. */ -static boolean +static bfd_boolean nlm_alpha_mangle_relocs (abfd, sec, data, offset, count) bfd *abfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; @@ -609,12 +609,12 @@ nlm_alpha_mangle_relocs (abfd, sec, data bfd_vma offset ATTRIBUTE_UNUSED; bfd_size_type count ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Read an ALPHA NLM import record */ -static boolean +static bfd_boolean nlm_alpha_read_import (abfd, sym) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -628,13 +628,13 @@ nlm_alpha_read_import (abfd, sym) if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd) != sizeof (symlength)) - return false; + return FALSE; sym -> symbol.the_bfd = abfd; name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); if (name == NULL) - return false; + return FALSE; if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return false; + return FALSE; name[symlength] = '\0'; sym -> symbol.name = name; sym -> symbol.flags = 0; @@ -642,12 +642,12 @@ nlm_alpha_read_import (abfd, sym) sym -> symbol.section = bfd_und_section_ptr; if (bfd_bread ((PTR) temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; rcount = H_GET_32 (abfd, temp); amt = rcount * sizeof (struct nlm_relent); nlm_relocs = (struct nlm_relent *) bfd_alloc (abfd, amt); if (!nlm_relocs) - return false; + return FALSE; sym -> relocs = nlm_relocs; sym -> rcnt = 0; while (sym -> rcnt < rcount) @@ -655,18 +655,18 @@ nlm_alpha_read_import (abfd, sym) asection *section; if (! nlm_alpha_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return false; + return FALSE; nlm_relocs -> section = section; nlm_relocs++; sym -> rcnt++; } - return true; + return TRUE; } /* Write an Alpha NLM reloc. */ -static boolean +static bfd_boolean nlm_alpha_write_import (abfd, sec, rel) bfd *abfd; asection *sec; @@ -766,9 +766,9 @@ nlm_alpha_write_import (abfd, sec, rel) /* Write out the relocation. */ if (bfd_bwrite (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return false; + return FALSE; - return true; + return TRUE; } /* Alpha NetWare does not use the high bit to determine whether a @@ -779,7 +779,7 @@ nlm_alpha_write_import (abfd, sec, rel) /* Set the section for a public symbol. */ -static boolean +static bfd_boolean nlm_alpha_set_public_section (abfd, sym) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -800,7 +800,7 @@ nlm_alpha_set_public_section (abfd, sym) /* The data segment had better be aligned. */ BFD_ASSERT ((bfd_section_size (abfd, code_sec) & 0xf) == 0); } - return true; + return TRUE; } /* Get the offset to write out for a public symbol. */ @@ -815,7 +815,7 @@ nlm_alpha_get_public_offset (abfd, sym) /* Write an Alpha NLM external symbol. */ -static boolean +static bfd_boolean nlm_alpha_write_external (abfd, count, sym, relocs) bfd *abfd; bfd_size_type count; @@ -831,11 +831,11 @@ nlm_alpha_write_external (abfd, count, s if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) != sizeof (bfd_byte)) || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; bfd_put_32 (abfd, count + 2, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; /* The first two relocs for each external symbol are the .lita address and the GP value. */ @@ -845,20 +845,20 @@ nlm_alpha_write_external (abfd, count, s r.address = nlm_alpha_backend_data (abfd)->lita_address; r.addend = nlm_alpha_backend_data (abfd)->lita_size + 1; if (! nlm_alpha_write_import (abfd, (asection *) NULL, &r)) - return false; + return FALSE; r.address = nlm_alpha_backend_data (abfd)->gp; r.addend = 0; if (! nlm_alpha_write_import (abfd, (asection *) NULL, &r)) - return false; + return FALSE; for (i = 0; i < count; i++) { if (! nlm_alpha_write_import (abfd, relocs[i].sec, relocs[i].rel)) - return false; + return FALSE; } - return true; + return TRUE; } #include "nlmswap.h" @@ -870,7 +870,7 @@ static const struct nlm_backend_data nlm sizeof (struct nlm32_alpha_external_prefix_header), bfd_arch_alpha, 0, - true, /* no uninitialized data permitted by Alpha NetWare. */ + TRUE, /* no uninitialized data permitted by Alpha NetWare. */ nlm_alpha_backend_object_p, nlm_alpha_write_prefix, nlm_alpha_read_reloc, diff -uprN binutils-2.13.90.0.16/bfd/nlm32-i386.c binutils-2.13.90.0.18/bfd/nlm32-i386.c --- binutils-2.13.90.0.16/bfd/nlm32-i386.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/nlm32-i386.c Mon Dec 16 12:22:52 2002 @@ -28,15 +28,15 @@ Foundation, Inc., 59 Temple Place - Suit #include "libnlm.h" -static boolean nlm_i386_read_reloc +static bfd_boolean nlm_i386_read_reloc PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *)); -static boolean nlm_i386_write_import +static bfd_boolean nlm_i386_write_import PARAMS ((bfd *, asection *, arelent *)); -static boolean nlm_i386_mangle_relocs +static bfd_boolean nlm_i386_mangle_relocs PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type)); -static boolean nlm_i386_read_import +static bfd_boolean nlm_i386_read_import PARAMS ((bfd *, nlmNAME(symbol_type) *)); -static boolean nlm_i386_write_external +static bfd_boolean nlm_i386_write_external PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *)); /* Adjust the reloc location by an absolute value. */ @@ -46,15 +46,15 @@ static reloc_howto_type nlm_i386_abs_how 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* Adjust the reloc location by a PC relative displacement. */ @@ -63,19 +63,19 @@ static reloc_howto_type nlm_i386_pcrel_h 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "DISP32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ /* Read a NetWare i386 reloc. */ -static boolean +static bfd_boolean nlm_i386_read_reloc (abfd, sym, secp, rel) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -87,7 +87,7 @@ nlm_i386_read_reloc (abfd, sym, secp, re const char *name; if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; val = bfd_get_32 (abfd, temp); @@ -145,12 +145,12 @@ nlm_i386_read_reloc (abfd, sym, secp, re rel->address = val; rel->addend = 0; - return true; + return TRUE; } /* Write a NetWare i386 reloc. */ -static boolean +static bfd_boolean nlm_i386_write_import (abfd, sec, rel) bfd *abfd; asection *sec; @@ -174,7 +174,7 @@ nlm_i386_write_import (abfd, sec, rel) || rel->howto->dst_mask != 0xffffffff) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } sym = *rel->sym_ptr_ptr; @@ -202,7 +202,7 @@ nlm_i386_write_import (abfd, sec, rel) if (rel->howto->pc_relative) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* The high bit is 1 if the reloc is against the code section, 0 @@ -222,16 +222,16 @@ nlm_i386_write_import (abfd, sec, rel) if (! rel->howto->pcrel_offset) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } } } bfd_put_32 (abfd, val, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; - return true; + return TRUE; } /* I want to be able to use objcopy to turn an i386 a.out or COFF file @@ -243,7 +243,7 @@ nlm_i386_write_import (abfd, sec, rel) This is actually a fairly general concept. However, this is not a general implementation. */ -static boolean +static bfd_boolean nlm_i386_mangle_relocs (abfd, sec, data, offset, count) bfd *abfd; asection *sec; @@ -335,11 +335,11 @@ nlm_i386_mangle_relocs (abfd, sec, data, } } - return true; + return TRUE; } /* Read a NetWare i386 import record */ -static boolean +static bfd_boolean nlm_i386_read_import (abfd, sym) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -352,13 +352,13 @@ nlm_i386_read_import (abfd, sym) if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd) != sizeof (symlength)) - return false; + return FALSE; sym -> symbol.the_bfd = abfd; name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); if (name == NULL) - return false; + return FALSE; if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return false; + return FALSE; name[symlength] = '\0'; sym -> symbol.name = name; sym -> symbol.flags = 0; @@ -366,12 +366,12 @@ nlm_i386_read_import (abfd, sym) sym -> symbol.section = bfd_und_section_ptr; if (bfd_bread ((PTR) temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; rcount = H_GET_32 (abfd, temp); nlm_relocs = ((struct nlm_relent *) bfd_alloc (abfd, rcount * sizeof (struct nlm_relent))); if (!nlm_relocs) - return false; + return FALSE; sym -> relocs = nlm_relocs; sym -> rcnt = 0; while (sym -> rcnt < rcount) @@ -379,17 +379,17 @@ nlm_i386_read_import (abfd, sym) asection *section; if (! nlm_i386_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return false; + return FALSE; nlm_relocs -> section = section; nlm_relocs++; sym -> rcnt++; } - return true; + return TRUE; } /* Write out an external reference. */ -static boolean +static bfd_boolean nlm_i386_write_external (abfd, count, sym, relocs) bfd *abfd; bfd_size_type count; @@ -404,19 +404,19 @@ nlm_i386_write_external (abfd, count, sy if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) != sizeof (bfd_byte)) || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; bfd_put_32 (abfd, count, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; for (i = 0; i < count; i++) { if (! nlm_i386_write_import (abfd, relocs[i].sec, relocs[i].rel)) - return false; + return FALSE; } - return true; + return TRUE; } #include "nlmswap.h" @@ -428,7 +428,7 @@ static const struct nlm_backend_data nlm 0, /* optional_prefix_size */ bfd_arch_i386, 0, - false, + FALSE, 0, /* backend_object_p */ 0, /* write_prefix_func */ nlm_i386_read_reloc, diff -uprN binutils-2.13.90.0.16/bfd/nlm32-ppc.c binutils-2.13.90.0.18/bfd/nlm32-ppc.c --- binutils-2.13.90.0.16/bfd/nlm32-ppc.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/nlm32-ppc.c Mon Dec 16 12:22:52 2002 @@ -32,31 +32,31 @@ Foundation, Inc., 59 Temple Place - Suit #include "libnlm.h" #ifdef OLDFORMAT -static boolean nlm_powerpc_backend_object_p +static bfd_boolean nlm_powerpc_backend_object_p PARAMS ((bfd *)); -static boolean nlm_powerpc_write_prefix +static bfd_boolean nlm_powerpc_write_prefix PARAMS ((bfd *)); #endif -static boolean nlm_powerpc_read_reloc +static bfd_boolean nlm_powerpc_read_reloc PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *)); -static boolean nlm_powerpc_mangle_relocs +static bfd_boolean nlm_powerpc_mangle_relocs PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type)); -static boolean nlm_powerpc_read_import +static bfd_boolean nlm_powerpc_read_import PARAMS ((bfd *, nlmNAME(symbol_type) *)); #ifdef OLDFORMAT -static boolean nlm_powerpc_write_reloc +static bfd_boolean nlm_powerpc_write_reloc PARAMS ((bfd *, asection *, arelent *, int)); #endif -static boolean nlm_powerpc_write_import +static bfd_boolean nlm_powerpc_write_import PARAMS ((bfd *, asection *, arelent *)); -static boolean nlm_powerpc_write_external +static bfd_boolean nlm_powerpc_write_external PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *)); #ifndef OLDFORMAT -static boolean nlm_powerpc_set_public_section +static bfd_boolean nlm_powerpc_set_public_section PARAMS ((bfd *, nlmNAME(symbol_type) *)); static bfd_vma nlm_powerpc_get_public_offset PARAMS ((bfd *, asymbol *)); @@ -70,25 +70,25 @@ static bfd_vma nlm_powerpc_get_public_of function reads it in, verifies the version, and seeks the bfd to the location before the regular NLM header. */ -static boolean +static bfd_boolean nlm_powerpc_backend_object_p (abfd) bfd *abfd; { struct nlm32_powerpc_external_prefix_header s; if (bfd_bread ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return false; + return FALSE; if (memcmp (s.signature, NLM32_POWERPC_SIGNATURE, sizeof s.signature) != 0 || H_GET_32 (abfd, s.headerVersion) != NLM32_POWERPC_HEADER_VERSION) - return false; + return FALSE; - return true; + return TRUE; } /* Write out the prefix. */ -static boolean +static bfd_boolean nlm_powerpc_write_prefix (abfd) bfd *abfd; { @@ -102,9 +102,9 @@ nlm_powerpc_write_prefix (abfd) /* FIXME: What should we do about the date? */ if (bfd_bwrite ((PTR) &s, (bfd_size_type) sizeof s, abfd) != sizeof s) - return false; + return FALSE; - return true; + return TRUE; } #endif /* OLDFORMAT */ @@ -118,19 +118,19 @@ static reloc_howto_type nlm_powerpc_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ /* Read a PowerPC NLM reloc. */ -static boolean +static bfd_boolean nlm_powerpc_read_reloc (abfd, sym, secp, rel) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -142,7 +142,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, const char *name; if (bfd_bread (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; val = bfd_get_32 (abfd, temp); @@ -187,7 +187,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, rel->address = val << 2; rel->addend = 0; - return true; + return TRUE; } #else /* OLDFORMAT */ @@ -204,105 +204,105 @@ static reloc_howto_type nlm_powerpc_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_POS", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit relocation, but store negative value. */ HOWTO (1, /* type */ 0, /* rightshift */ -2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_NEG", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative relocation. */ HOWTO (2, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_REL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit TOC relative relocation. */ HOWTO (3, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_TOC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* I don't really know what this is. */ HOWTO (4, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RTB", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* External TOC relative symbol. */ HOWTO (5, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_GL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Local TOC relative symbol. */ HOWTO (6, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TCL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ { 7 }, @@ -311,15 +311,15 @@ static reloc_howto_type nlm_powerpc_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_BA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3fffffc, /* src_mask */ 0x3fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ { 9 }, @@ -328,15 +328,15 @@ static reloc_howto_type nlm_powerpc_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_BR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3fffffc, /* src_mask */ 0x3fffffc, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ { 0xb }, @@ -345,30 +345,30 @@ static reloc_howto_type nlm_powerpc_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Load address. */ HOWTO (0xd, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RLA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ { 0xe }, @@ -377,15 +377,15 @@ static reloc_howto_type nlm_powerpc_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_REF", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ { 0x10 }, { 0x11 }, @@ -395,150 +395,150 @@ static reloc_howto_type nlm_powerpc_howt 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TRL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* TOC relative load address. */ HOWTO (0x13, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_TRLA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable relative branch. */ HOWTO (0x14, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RRTBI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable absolute branch. */ HOWTO (0x15, /* type */ 1, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RRTBA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable call absolute indirect. */ HOWTO (0x16, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_CAI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable call relative. */ HOWTO (0x17, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_REL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (0x18, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBA", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (0x19, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_RBAC", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch relative. */ HOWTO (0x1a, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "R_REL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Modifiable branch absolute. */ HOWTO (0x1b, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ 0, /* special_function */ "R_REL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false) /* pcrel_offset */ + FALSE) /* pcrel_offset */ }; #define HOWTO_COUNT (sizeof nlm_powerpc_howto_table \ @@ -546,7 +546,7 @@ static reloc_howto_type nlm_powerpc_howt /* Read a PowerPC NLM reloc. */ -static boolean +static bfd_boolean nlm_powerpc_read_reloc (abfd, sym, secp, rel) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -562,7 +562,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, /* Read the reloc from the file. */ if (bfd_bread (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return false; + return FALSE; /* Swap in the fields. */ l_vaddr = H_GET_32 (abfd, ext.l_vaddr); @@ -595,7 +595,7 @@ nlm_powerpc_read_reloc (abfd, sym, secp, else { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } rel->sym_ptr_ptr = sec->symbol_ptr_ptr; @@ -625,19 +625,19 @@ nlm_powerpc_read_reloc (abfd, sym, secp, else { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } rel->address = l_vaddr; - return true; + return TRUE; } #endif /* OLDFORMAT */ /* Mangle PowerPC NLM relocs for output. */ -static boolean +static bfd_boolean nlm_powerpc_mangle_relocs (abfd, sec, data, offset, count) bfd *abfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; @@ -645,12 +645,12 @@ nlm_powerpc_mangle_relocs (abfd, sec, da bfd_vma offset ATTRIBUTE_UNUSED; bfd_size_type count ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Read a PowerPC NLM import record */ -static boolean +static bfd_boolean nlm_powerpc_read_import (abfd, sym) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -663,13 +663,13 @@ nlm_powerpc_read_import (abfd, sym) if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd) != sizeof (symlength)) - return (false); + return FALSE; sym -> symbol.the_bfd = abfd; name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); if (name == NULL) - return false; + return FALSE; if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return (false); + return FALSE; name[symlength] = '\0'; sym -> symbol.name = name; sym -> symbol.flags = 0; @@ -677,12 +677,12 @@ nlm_powerpc_read_import (abfd, sym) sym -> symbol.section = bfd_und_section_ptr; if (bfd_bread ((PTR) temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return (false); + return FALSE; rcount = H_GET_32 (abfd, temp); nlm_relocs = ((struct nlm_relent *) bfd_alloc (abfd, rcount * sizeof (struct nlm_relent))); if (nlm_relocs == (struct nlm_relent *) NULL) - return false; + return FALSE; sym -> relocs = nlm_relocs; sym -> rcnt = 0; while (sym -> rcnt < rcount) @@ -690,19 +690,19 @@ nlm_powerpc_read_import (abfd, sym) asection *section; if (! nlm_powerpc_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return false; + return FALSE; nlm_relocs -> section = section; nlm_relocs++; sym -> rcnt++; } - return true; + return TRUE; } #ifndef OLDFORMAT /* Write a PowerPC NLM reloc. */ -static boolean +static bfd_boolean nlm_powerpc_write_import (abfd, sec, rel) bfd *abfd; asection *sec; @@ -724,7 +724,7 @@ nlm_powerpc_write_import (abfd, sec, rel || rel->howto->dst_mask != 0xffffffff) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } sym = *rel->sym_ptr_ptr; @@ -737,7 +737,7 @@ nlm_powerpc_write_import (abfd, sec, rel if ((val & 3) != 0) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } val >>= 2; @@ -762,9 +762,9 @@ nlm_powerpc_write_import (abfd, sec, rel bfd_put_32 (abfd, val, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; - return true; + return TRUE; } #else /* OLDFORMAT */ @@ -773,7 +773,7 @@ nlm_powerpc_write_import (abfd, sec, rel /* Write a PowerPC NLM reloc. */ -static boolean +static bfd_boolean nlm_powerpc_write_reloc (abfd, sec, rel, indx) bfd *abfd; asection *sec; @@ -813,7 +813,7 @@ nlm_powerpc_write_reloc (abfd, sec, rel, else { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } } @@ -841,7 +841,7 @@ nlm_powerpc_write_reloc (abfd, sec, rel, if (howto >= nlm_powerpc_howto_table + HOWTO_COUNT) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } l_rtype = howto->type; @@ -862,21 +862,21 @@ nlm_powerpc_write_reloc (abfd, sec, rel, else { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } H_PUT_16 (abfd, l_rsecnm, ext.l_rsecnm); H_PUT_32 (abfd, address, ext.l_vaddr); if (bfd_bwrite (&ext, (bfd_size_type) sizeof ext, abfd) != sizeof ext) - return false; + return FALSE; - return true; + return TRUE; } /* Write a PowerPC NLM import. */ -static boolean +static bfd_boolean nlm_powerpc_write_import (abfd, sec, rel) bfd *abfd; asection *sec; @@ -891,7 +891,7 @@ nlm_powerpc_write_import (abfd, sec, rel count of the symbol index. FIXME: I don't know if this is necessary, and the index never gets reset. */ -static boolean +static bfd_boolean nlm_powerpc_write_external (abfd, count, sym, relocs) bfd *abfd; bfd_size_type count; @@ -909,21 +909,21 @@ nlm_powerpc_write_external (abfd, count, if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) != sizeof (bfd_byte)) || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; bfd_put_32 (abfd, count, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; for (i = 0; i < count; i++) { #ifndef OLDFORMAT if (! nlm_powerpc_write_import (abfd, relocs[i].sec, relocs[i].rel)) - return false; + return FALSE; #else if (! nlm_powerpc_write_reloc (abfd, relocs[i].sec, relocs[i].rel, indx)) - return false; + return FALSE; #endif } @@ -931,7 +931,7 @@ nlm_powerpc_write_external (abfd, count, ++indx; #endif - return true; + return TRUE; } #ifndef OLDFORMAT @@ -941,7 +941,7 @@ nlm_powerpc_write_external (abfd, count, /* Set the section for a public symbol. */ -static boolean +static bfd_boolean nlm_powerpc_set_public_section (abfd, sym) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -961,7 +961,7 @@ nlm_powerpc_set_public_section (abfd, sy sym->symbol.value <<= 2; - return true; + return TRUE; } /* Get the offset to write out for a public symbol. */ @@ -1013,7 +1013,7 @@ static const struct nlm_backend_data nlm #endif bfd_arch_powerpc, 0, - false, + FALSE, #ifndef OLDFORMAT 0, /* backend_object_p */ 0, /* write_prefix */ diff -uprN binutils-2.13.90.0.16/bfd/nlm32-sparc.c binutils-2.13.90.0.18/bfd/nlm32-sparc.c --- binutils-2.13.90.0.16/bfd/nlm32-sparc.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/nlm32-sparc.c Mon Dec 16 12:22:52 2002 @@ -28,19 +28,19 @@ #include "libnlm.h" -static boolean nlm_sparc_read_reloc +static bfd_boolean nlm_sparc_read_reloc PARAMS ((bfd *, nlmNAME(symbol_type) *, asection **, arelent *)); -static boolean nlm_sparc_write_reloc +static bfd_boolean nlm_sparc_write_reloc PARAMS ((bfd *, asection *, arelent *)); -static boolean nlm_sparc_mangle_relocs +static bfd_boolean nlm_sparc_mangle_relocs PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type)); -static boolean nlm_sparc_read_import +static bfd_boolean nlm_sparc_read_import PARAMS ((bfd *, nlmNAME(symbol_type) *)); -static boolean nlm_sparc_write_import +static bfd_boolean nlm_sparc_write_import PARAMS ((bfd *, asection *, arelent *)); -static boolean nlm_sparc_write_external +static bfd_boolean nlm_sparc_write_external PARAMS ((bfd *, bfd_size_type, asymbol *, struct reloc_and_sec *)); -static boolean nlm_sparc_write_export +static bfd_boolean nlm_sparc_write_export PARAMS ((bfd *, asymbol *, bfd_vma)); enum reloc_type @@ -82,30 +82,30 @@ static const char *const reloc_type_name static reloc_howto_type nlm32_sparc_howto_table[] = { - HOWTO (R_SPARC_NONE, 0,0, 0,false,0,complain_overflow_dont, 0,"R_SPARC_NONE", false,0,0x00000000,true), - HOWTO (R_SPARC_8, 0,0, 8,false,0,complain_overflow_bitfield,0,"R_SPARC_8", false,0,0x000000ff,true), - HOWTO (R_SPARC_16, 0,1,16,false,0,complain_overflow_bitfield,0,"R_SPARC_16", false,0,0x0000ffff,true), - HOWTO (R_SPARC_32, 0,2,32,false,0,complain_overflow_bitfield,0,"R_SPARC_32", false,0,0xffffffff,true), - HOWTO (R_SPARC_DISP8, 0,0, 8,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP8", false,0,0x000000ff,true), - HOWTO (R_SPARC_DISP16, 0,1,16,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP16", false,0,0x0000ffff,true), - HOWTO (R_SPARC_DISP32, 0,2,32,true, 0,complain_overflow_signed, 0,"R_SPARC_DISP32", false,0,0x00ffffff,true), - HOWTO (R_SPARC_WDISP30, 2,2,30,true, 0,complain_overflow_signed, 0,"R_SPARC_WDISP30", false,0,0x3fffffff,true), - HOWTO (R_SPARC_WDISP22, 2,2,22,true, 0,complain_overflow_signed, 0,"R_SPARC_WDISP22", false,0,0x003fffff,true), - HOWTO (R_SPARC_HI22, 10,2,22,false,0,complain_overflow_dont, 0,"R_SPARC_HI22", false,0,0x003fffff,true), - HOWTO (R_SPARC_22, 0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_22", false,0,0x003fffff,true), - HOWTO (R_SPARC_13, 0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_13", false,0,0x00001fff,true), - HOWTO (R_SPARC_LO10, 0,2,10,false,0,complain_overflow_dont, 0,"R_SPARC_LO10", false,0,0x000003ff,true), - HOWTO (R_SPARC_GOT10, 0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT10", false,0,0x000003ff,true), - HOWTO (R_SPARC_GOT13, 0,2,13,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT13", false,0,0x00001fff,true), - HOWTO (R_SPARC_GOT22, 10,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_GOT22", false,0,0x003fffff,true), - HOWTO (R_SPARC_PC10, 0,2,10,false,0,complain_overflow_bitfield,0,"R_SPARC_PC10", false,0,0x000003ff,true), - HOWTO (R_SPARC_PC22, 0,2,22,false,0,complain_overflow_bitfield,0,"R_SPARC_PC22", false,0,0x003fffff,true), - HOWTO (R_SPARC_WPLT30, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_WPLT30", false,0,0x00000000,true), - HOWTO (R_SPARC_COPY, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_COPY", false,0,0x00000000,true), - HOWTO (R_SPARC_GLOB_DAT,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_GLOB_DAT",false,0,0x00000000,true), - HOWTO (R_SPARC_JMP_SLOT,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_JMP_SLOT",false,0,0x00000000,true), - HOWTO (R_SPARC_RELATIVE,0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_RELATIVE",false,0,0x00000000,true), - HOWTO (R_SPARC_UA32, 0,0,00,false,0,complain_overflow_dont, 0,"R_SPARC_UA32", false,0,0x00000000,true), + HOWTO (R_SPARC_NONE, 0,0, 0,FALSE,0,complain_overflow_dont, 0,"R_SPARC_NONE", FALSE,0,0x00000000,TRUE), + HOWTO (R_SPARC_8, 0,0, 8,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_8", FALSE,0,0x000000ff,TRUE), + HOWTO (R_SPARC_16, 0,1,16,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_16", FALSE,0,0x0000ffff,TRUE), + HOWTO (R_SPARC_32, 0,2,32,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_32", FALSE,0,0xffffffff,TRUE), + HOWTO (R_SPARC_DISP8, 0,0, 8,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_DISP8", FALSE,0,0x000000ff,TRUE), + HOWTO (R_SPARC_DISP16, 0,1,16,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_DISP16", FALSE,0,0x0000ffff,TRUE), + HOWTO (R_SPARC_DISP32, 0,2,32,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_DISP32", FALSE,0,0x00ffffff,TRUE), + HOWTO (R_SPARC_WDISP30, 2,2,30,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_WDISP30", FALSE,0,0x3fffffff,TRUE), + HOWTO (R_SPARC_WDISP22, 2,2,22,TRUE, 0,complain_overflow_signed, 0,"R_SPARC_WDISP22", FALSE,0,0x003fffff,TRUE), + HOWTO (R_SPARC_HI22, 10,2,22,FALSE,0,complain_overflow_dont, 0,"R_SPARC_HI22", FALSE,0,0x003fffff,TRUE), + HOWTO (R_SPARC_22, 0,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_22", FALSE,0,0x003fffff,TRUE), + HOWTO (R_SPARC_13, 0,2,13,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_13", FALSE,0,0x00001fff,TRUE), + HOWTO (R_SPARC_LO10, 0,2,10,FALSE,0,complain_overflow_dont, 0,"R_SPARC_LO10", FALSE,0,0x000003ff,TRUE), + HOWTO (R_SPARC_GOT10, 0,2,10,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT10", FALSE,0,0x000003ff,TRUE), + HOWTO (R_SPARC_GOT13, 0,2,13,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT13", FALSE,0,0x00001fff,TRUE), + HOWTO (R_SPARC_GOT22, 10,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_GOT22", FALSE,0,0x003fffff,TRUE), + HOWTO (R_SPARC_PC10, 0,2,10,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_PC10", FALSE,0,0x000003ff,TRUE), + HOWTO (R_SPARC_PC22, 0,2,22,FALSE,0,complain_overflow_bitfield,0,"R_SPARC_PC22", FALSE,0,0x003fffff,TRUE), + HOWTO (R_SPARC_WPLT30, 0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_WPLT30", FALSE,0,0x00000000,TRUE), + HOWTO (R_SPARC_COPY, 0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_COPY", FALSE,0,0x00000000,TRUE), + HOWTO (R_SPARC_GLOB_DAT,0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_GLOB_DAT",FALSE,0,0x00000000,TRUE), + HOWTO (R_SPARC_JMP_SLOT,0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_JMP_SLOT",FALSE,0,0x00000000,TRUE), + HOWTO (R_SPARC_RELATIVE,0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_RELATIVE",FALSE,0,0x00000000,TRUE), + HOWTO (R_SPARC_UA32, 0,0,00,FALSE,0,complain_overflow_dont, 0,"R_SPARC_UA32", FALSE,0,0x00000000,TRUE), }; /* Read a NetWare sparc reloc. */ @@ -118,7 +118,7 @@ struct nlm32_sparc_reloc_ext unsigned char pad1[3]; }; -static boolean +static bfd_boolean nlm_sparc_read_reloc (abfd, sym, secp, rel) bfd *abfd; nlmNAME(symbol_type) *sym ATTRIBUTE_UNUSED; @@ -132,7 +132,7 @@ nlm_sparc_read_reloc (abfd, sym, secp, r asection *code_sec, *data_sec; if (bfd_bread (&tmp_reloc, (bfd_size_type) 12, abfd) != 12) - return false; + return FALSE; code_sec = bfd_get_section_by_name (abfd, NLM_CODE_NAME); data_sec = bfd_get_section_by_name (abfd, NLM_INITIALIZED_DATA_NAME); @@ -160,13 +160,13 @@ nlm_sparc_read_reloc (abfd, sym, secp, r fprintf (stderr, "%s: address = %08lx, addend = %08lx, type = %d, howto = %08lx\n", __FUNCTION__, rel->address, rel->addend, type, rel->howto); #endif - return true; + return TRUE; } /* Write a NetWare sparc reloc. */ -static boolean +static bfd_boolean nlm_sparc_write_reloc (abfd, sec, rel) bfd *abfd; asection *sec; @@ -225,15 +225,15 @@ nlm_sparc_write_reloc (abfd, sec, rel) bfd_put_8 (abfd, (short) (rel->howto->type), tmp_reloc.type); if (bfd_bwrite (&tmp_reloc, (bfd_size_type) 12, abfd) != 12) - return false; + return FALSE; - return true; + return TRUE; } /* Mangle relocs for SPARC NetWare. We can just use the standard SPARC relocs. */ -static boolean +static bfd_boolean nlm_sparc_mangle_relocs (abfd, sec, data, offset, count) bfd *abfd ATTRIBUTE_UNUSED; asection *sec ATTRIBUTE_UNUSED; @@ -241,12 +241,12 @@ nlm_sparc_mangle_relocs (abfd, sec, data bfd_vma offset ATTRIBUTE_UNUSED; bfd_size_type count ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Read a NetWare sparc import record. */ -static boolean +static bfd_boolean nlm_sparc_read_import (abfd, sym) bfd *abfd; nlmNAME(symbol_type) *sym; @@ -260,7 +260,7 @@ nlm_sparc_read_import (abfd, sym) /* First, read in the number of relocation entries for this symbol. */ if (bfd_bread ((PTR) temp, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; rcount = bfd_get_32 (abfd, temp); @@ -268,16 +268,16 @@ nlm_sparc_read_import (abfd, sym) if (bfd_bread ((PTR) &symlength, (bfd_size_type) sizeof (symlength), abfd) != sizeof (symlength)) - return false; + return FALSE; sym -> symbol.the_bfd = abfd; name = bfd_alloc (abfd, (bfd_size_type) symlength + 1); if (name == NULL) - return false; + return FALSE; /* Then read in the symbol. */ if (bfd_bread (name, (bfd_size_type) symlength, abfd) != symlength) - return false; + return FALSE; name[symlength] = '\0'; sym -> symbol.name = name; sym -> symbol.flags = 0; @@ -289,7 +289,7 @@ nlm_sparc_read_import (abfd, sym) nlm_relocs = ((struct nlm_relent *) bfd_alloc (abfd, rcount * sizeof (struct nlm_relent))); if (!nlm_relocs) - return false; + return FALSE; sym -> relocs = nlm_relocs; sym -> rcnt = 0; while (sym -> rcnt < rcount) @@ -297,16 +297,16 @@ nlm_sparc_read_import (abfd, sym) asection *section; if (! nlm_sparc_read_reloc (abfd, sym, §ion, &nlm_relocs -> reloc)) - return false; + return FALSE; nlm_relocs -> section = section; nlm_relocs++; sym -> rcnt++; } - return true; + return TRUE; } -static boolean +static bfd_boolean nlm_sparc_write_import (abfd, sec, rel) bfd *abfd; asection *sec; @@ -336,18 +336,18 @@ nlm_sparc_write_import (abfd, sec, rel) #endif bfd_put_32 (abfd, base + (*rel->sym_ptr_ptr)->value, temp); if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; bfd_put_32 (abfd, (bfd_vma) 1, temp); if (bfd_bwrite ((PTR) temp, (bfd_size_type) 4, abfd) != 4) - return false; + return FALSE; if (! nlm_sparc_write_reloc (abfd, sec, rel)) - return false; - return true; + return FALSE; + return TRUE; } /* Write out an external reference. */ -static boolean +static bfd_boolean nlm_sparc_write_external (abfd, count, sym, relocs) bfd *abfd; bfd_size_type count; @@ -360,24 +360,24 @@ nlm_sparc_write_external (abfd, count, s bfd_put_32 (abfd, count, temp); if (bfd_bwrite (temp, (bfd_size_type) sizeof (temp), abfd) != sizeof (temp)) - return false; + return FALSE; len = strlen (sym->name); if ((bfd_bwrite (&len, (bfd_size_type) sizeof (bfd_byte), abfd) != sizeof (bfd_byte)) || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; for (i = 0; i < count; i++) { if (! nlm_sparc_write_reloc (abfd, relocs[i].sec, relocs[i].rel)) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean nlm_sparc_write_export (abfd, sym, value) bfd *abfd; asymbol *sym; @@ -396,9 +396,9 @@ nlm_sparc_write_export (abfd, sym, value if (bfd_bwrite (temp, (bfd_size_type) 4, abfd) != 4 || bfd_bwrite (&len, (bfd_size_type) 1, abfd) != 1 || bfd_bwrite (sym->name, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; - return true; + return TRUE; } #undef nlm_swap_fixed_header_in @@ -413,7 +413,7 @@ static const struct nlm_backend_data nlm 0, /* optional_prefix_size */ bfd_arch_sparc, 0, - false, + FALSE, 0, /* backend_object_p */ 0, /* write_prefix_func */ nlm_sparc_read_reloc, diff -uprN binutils-2.13.90.0.16/bfd/nlmcode.h binutils-2.13.90.0.18/bfd/nlmcode.h --- binutils-2.13.90.0.16/bfd/nlmcode.h Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/bfd/nlmcode.h Mon Dec 16 12:22:52 2002 @@ -59,23 +59,23 @@ /* Forward declarations of static functions. */ -static boolean add_bfd_section +static bfd_boolean add_bfd_section PARAMS ((bfd *, char *, file_ptr, bfd_size_type, flagword)); -static boolean nlm_swap_variable_header_in +static bfd_boolean nlm_swap_variable_header_in PARAMS ((bfd *)); -static boolean nlm_swap_variable_header_out +static bfd_boolean nlm_swap_variable_header_out PARAMS ((bfd *)); -static boolean find_nonzero +static bfd_boolean find_nonzero PARAMS ((PTR, size_t)); -static boolean nlm_swap_auxiliary_headers_in +static bfd_boolean nlm_swap_auxiliary_headers_in PARAMS ((bfd *)); -static boolean nlm_swap_auxiliary_headers_out +static bfd_boolean nlm_swap_auxiliary_headers_out PARAMS ((bfd *)); -static boolean nlm_slurp_symbol_table +static bfd_boolean nlm_slurp_symbol_table PARAMS ((bfd *)); -static boolean nlm_slurp_reloc_fixups +static bfd_boolean nlm_slurp_reloc_fixups PARAMS ((bfd *)); -static boolean nlm_compute_section_file_positions +static bfd_boolean nlm_compute_section_file_positions PARAMS ((bfd *)); static int nlm_external_reloc_compare PARAMS ((const void *, const void *)); @@ -96,7 +96,7 @@ nlm_object_p (abfd) bfd *abfd; { struct nlm_obj_tdata *preserved_tdata = nlm_tdata (abfd); - boolean (*backend_object_p) PARAMS ((bfd *)); + bfd_boolean (*backend_object_p) PARAMS ((bfd *)); PTR x_fxdhdr = NULL; Nlm_Internal_Fixed_Header *i_fxdhdrp; struct nlm_obj_tdata *new_tdata = NULL; @@ -221,7 +221,7 @@ got_no_match: /* Add a section to the bfd. */ -static boolean +static bfd_boolean add_bfd_section (abfd, name, offset, size, flags) bfd *abfd; char *name; @@ -233,7 +233,7 @@ add_bfd_section (abfd, name, offset, siz newsect = bfd_make_section (abfd, name); if (newsect == NULL) - return false; + return FALSE; newsect->vma = 0; /* NLM's are relocatable. */ newsect->_raw_size = size; @@ -241,13 +241,13 @@ add_bfd_section (abfd, name, offset, siz newsect->flags = flags; newsect->alignment_power = bfd_log2 ((bfd_vma) 0); /* FIXME */ - return true; + return TRUE; } /* Read and swap in the variable length header. All the fields must exist in the NLM, and must exist in the order they are read here. */ -static boolean +static bfd_boolean nlm_swap_variable_header_in (abfd) bfd *abfd; { @@ -259,24 +259,24 @@ nlm_swap_variable_header_in (abfd) amt = sizeof (nlm_variable_header (abfd)->descriptionLength); if (bfd_bread ((PTR) &nlm_variable_header (abfd)->descriptionLength, amt, abfd) != amt) - return false; + return FALSE; amt = nlm_variable_header (abfd)->descriptionLength + 1; if (bfd_bread ((PTR) nlm_variable_header (abfd)->descriptionText, amt, abfd) != amt) - return false; + return FALSE; /* Read and convert the stackSize field. */ amt = sizeof (temp); if (bfd_bread ((PTR) temp, amt, abfd) != amt) - return false; + return FALSE; nlm_variable_header (abfd)->stackSize = get_word (abfd, (bfd_byte *) temp); /* Read and convert the reserved field. */ amt = sizeof (temp); if (bfd_bread ((PTR) temp, amt, abfd) != amt) - return false; + return FALSE; nlm_variable_header (abfd)->reserved = get_word (abfd, (bfd_byte *) temp); /* Read the oldThreadName field. This field is a fixed length string. */ @@ -284,36 +284,36 @@ nlm_swap_variable_header_in (abfd) amt = sizeof (nlm_variable_header (abfd)->oldThreadName); if (bfd_bread ((PTR) nlm_variable_header (abfd)->oldThreadName, amt, abfd) != amt) - return false; + return FALSE; /* Read the screen name length and text members. */ amt = sizeof (nlm_variable_header (abfd)->screenNameLength); if (bfd_bread ((PTR) & nlm_variable_header (abfd)->screenNameLength, amt, abfd) != amt) - return false; + return FALSE; amt = nlm_variable_header (abfd)->screenNameLength + 1; if (bfd_bread ((PTR) nlm_variable_header (abfd)->screenName, amt, abfd) != amt) - return false; + return FALSE; /* Read the thread name length and text members. */ amt = sizeof (nlm_variable_header (abfd)->threadNameLength); if (bfd_bread ((PTR) & nlm_variable_header (abfd)->threadNameLength, amt, abfd) != amt) - return false; + return FALSE; amt = nlm_variable_header (abfd)->threadNameLength + 1; if (bfd_bread ((PTR) nlm_variable_header (abfd)->threadName, amt, abfd) != amt) - return false; - return true; + return FALSE; + return TRUE; } /* Swap and write out the variable length header. All the fields must exist in the NLM, and must exist in this order. */ -static boolean +static bfd_boolean nlm_swap_variable_header_out (abfd) bfd *abfd; { @@ -324,52 +324,52 @@ nlm_swap_variable_header_out (abfd) amt = sizeof (nlm_variable_header (abfd)->descriptionLength); if (bfd_bwrite ((PTR) & nlm_variable_header (abfd)->descriptionLength, amt, abfd) != amt) - return false; + return FALSE; amt = nlm_variable_header (abfd)->descriptionLength + 1; if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->descriptionText, amt, abfd) != amt) - return false; + return FALSE; /* Convert and write the stackSize field. */ put_word (abfd, (bfd_vma) nlm_variable_header (abfd)->stackSize, (bfd_byte *) temp); amt = sizeof (temp); if (bfd_bwrite ((PTR) temp, amt, abfd) != amt) - return false; + return FALSE; /* Convert and write the reserved field. */ put_word (abfd, (bfd_vma) nlm_variable_header (abfd)->reserved, (bfd_byte *) temp); amt = sizeof (temp); if (bfd_bwrite ((PTR) temp, amt, abfd) != amt) - return false; + return FALSE; /* Write the oldThreadName field. This field is a fixed length string. */ amt = sizeof (nlm_variable_header (abfd)->oldThreadName); if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->oldThreadName, amt, abfd) != amt) - return false; + return FALSE; /* Write the screen name length and text members. */ amt = sizeof (nlm_variable_header (abfd)->screenNameLength); if (bfd_bwrite ((PTR) & nlm_variable_header (abfd)->screenNameLength, amt, abfd) != amt) - return false; + return FALSE; amt = nlm_variable_header (abfd)->screenNameLength + 1; if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->screenName, amt, abfd) != amt) - return false; + return FALSE; /* Write the thread name length and text members. */ amt = sizeof (nlm_variable_header (abfd)->threadNameLength); if (bfd_bwrite ((PTR) & nlm_variable_header (abfd)->threadNameLength, amt, abfd) != amt) - return false; + return FALSE; amt = nlm_variable_header (abfd)->threadNameLength + 1; if (bfd_bwrite ((PTR) nlm_variable_header (abfd)->threadName, amt, abfd) != amt) - return false; - return true; + return FALSE; + return TRUE; } /* Read and swap in the contents of all the auxiliary headers. Because of @@ -381,7 +381,7 @@ nlm_swap_variable_header_out (abfd) of auxiliary header added will break all existing tools that don't recognize it. */ -static boolean +static bfd_boolean nlm_swap_auxiliary_headers_in (abfd) bfd *abfd; { @@ -394,16 +394,16 @@ nlm_swap_auxiliary_headers_in (abfd) position = bfd_tell (abfd); amt = sizeof (tempstr); if (bfd_bread ((PTR) tempstr, amt, abfd) != amt) - return false; + return FALSE; if (bfd_seek (abfd, position, SEEK_SET) != 0) - return false; + return FALSE; if (strncmp (tempstr, "VeRsIoN#", 8) == 0) { Nlm_External_Version_Header thdr; amt = sizeof (thdr); if (bfd_bread ((PTR) &thdr, amt, abfd) != amt) - return false; + return FALSE; memcpy (nlm_version_header (abfd)->stamp, thdr.stamp, sizeof (thdr.stamp)); nlm_version_header (abfd)->majorVersion = @@ -425,7 +425,7 @@ nlm_swap_auxiliary_headers_in (abfd) amt = sizeof (thdr); if (bfd_bread ((PTR) &thdr, amt, abfd) != amt) - return false; + return FALSE; memcpy (nlm_extended_header (abfd)->stamp, thdr.stamp, sizeof (thdr.stamp)); nlm_extended_header (abfd)->languageID = @@ -492,16 +492,16 @@ nlm_swap_auxiliary_headers_in (abfd) amt = sizeof (nlm_copyright_header (abfd)->stamp); if (bfd_bread ((PTR) nlm_copyright_header (abfd)->stamp, amt, abfd) != amt) - return false; + return FALSE; if (bfd_bread ((PTR) &(nlm_copyright_header (abfd) ->copyrightMessageLength), (bfd_size_type) 1, abfd) != 1) - return false; + return FALSE; /* The copyright message is a variable length string. */ amt = nlm_copyright_header (abfd)->copyrightMessageLength + 1; if (bfd_bread ((PTR) nlm_copyright_header (abfd)->copyrightMessage, amt, abfd) != amt) - return false; + return FALSE; } else if (strncmp (tempstr, "CuStHeAd", 8) == 0) { @@ -515,11 +515,11 @@ nlm_swap_auxiliary_headers_in (abfd) /* Read the stamp ("CuStHeAd"). */ amt = sizeof (thdr.stamp); if (bfd_bread ((PTR) thdr.stamp, amt, abfd) != amt) - return false; + return FALSE; /* Read the length of this custom header. */ amt = sizeof (thdr.length); if (bfd_bread ((PTR) thdr.length, amt, abfd) != amt) - return false; + return FALSE; hdrLength = get_word (abfd, (bfd_byte *) thdr.length); /* Read further fields if we have them. */ if (hdrLength < NLM_TARGET_LONG_SIZE) @@ -528,7 +528,7 @@ nlm_swap_auxiliary_headers_in (abfd) { amt = sizeof (thdr.dataOffset); if (bfd_bread ((PTR) thdr.dataOffset, amt, abfd) != amt) - return false; + return FALSE; dataOffset = get_word (abfd, (bfd_byte *) thdr.dataOffset); } if (hdrLength < 2 * NLM_TARGET_LONG_SIZE) @@ -537,7 +537,7 @@ nlm_swap_auxiliary_headers_in (abfd) { amt = sizeof (thdr.dataLength); if (bfd_bread ((PTR) thdr.dataLength, amt, abfd) != amt) - return false; + return FALSE; dataLength = get_word (abfd, (bfd_byte *) thdr.dataLength); } if (hdrLength < 2 * NLM_TARGET_LONG_SIZE + 8) @@ -546,7 +546,7 @@ nlm_swap_auxiliary_headers_in (abfd) { amt = sizeof (dataStamp); if (bfd_bread ((PTR) dataStamp, amt, abfd) != amt) - return false; + return FALSE; } /* Read the rest of the header, if any. */ @@ -560,9 +560,9 @@ nlm_swap_auxiliary_headers_in (abfd) hdrLength -= 2 * NLM_TARGET_LONG_SIZE + 8; hdr = bfd_alloc (abfd, hdrLength); if (hdr == NULL) - return false; + return FALSE; if (bfd_bread (hdr, hdrLength, abfd) != hdrLength) - return false; + return FALSE; } /* If we have found a Cygnus header, process it. Otherwise, @@ -578,14 +578,14 @@ nlm_swap_auxiliary_headers_in (abfd) pos = bfd_tell (abfd); if (bfd_seek (abfd, dataOffset, SEEK_SET) != 0) - return false; + return FALSE; contents = (bfd_byte *) bfd_alloc (abfd, dataLength); if (contents == NULL) - return false; + return FALSE; if (bfd_bread (contents, dataLength, abfd) != dataLength) - return false; + return FALSE; if (bfd_seek (abfd, pos, SEEK_SET) != 0) - return false; + return FALSE; memcpy (nlm_cygnus_ext_header (abfd), "CyGnUsEx", 8); nlm_cygnus_ext_header (abfd)->offset = dataOffset; @@ -629,7 +629,7 @@ nlm_swap_auxiliary_headers_in (abfd) newsec = bfd_make_section_anyway (abfd, name); if (newsec == (asection *) NULL) - return false; + return FALSE; newsec->_raw_size = size; if (filepos != 0) { @@ -653,12 +653,12 @@ nlm_swap_auxiliary_headers_in (abfd) else break; } - return true; + return TRUE; } /* Return whether there is a non-zero byte in a memory block. */ -static boolean +static bfd_boolean find_nonzero (buf, size) PTR buf; size_t size; @@ -667,15 +667,15 @@ find_nonzero (buf, size) while (size-- != 0) if (*p++ != 0) - return true; - return false; + return TRUE; + return FALSE; } /* Swap out the contents of the auxiliary headers. We create those auxiliary headers which have been set non-zero. We do not require the caller to set up the stamp fields. */ -static boolean +static bfd_boolean nlm_swap_auxiliary_headers_out (abfd) bfd *abfd; { @@ -702,7 +702,7 @@ nlm_swap_auxiliary_headers_out (abfd) (bfd_byte *) thdr.day); if (bfd_bwrite ((PTR) &thdr, (bfd_size_type) sizeof (thdr), abfd) != sizeof (thdr)) - return false; + return FALSE; } /* Note - the CoPyRiGhT tag is emitted before the MeSsAgEs @@ -717,17 +717,17 @@ nlm_swap_auxiliary_headers_out (abfd) memcpy (thdr.stamp, "CoPyRiGhT=", 10); amt = sizeof (thdr.stamp); if (bfd_bwrite ((PTR) thdr.stamp, amt, abfd) != amt) - return false; + return FALSE; thdr.copyrightMessageLength[0] = nlm_copyright_header (abfd)->copyrightMessageLength; amt = 1; if (bfd_bwrite ((PTR) thdr.copyrightMessageLength, amt, abfd) != amt) - return false; + return FALSE; /* The copyright message is a variable length string. */ amt = nlm_copyright_header (abfd)->copyrightMessageLength + 1; if (bfd_bwrite ((PTR) nlm_copyright_header (abfd)->copyrightMessage, amt, abfd) != amt) - return false; + return FALSE; } /* Write out the extended header if there is one. */ @@ -826,7 +826,7 @@ nlm_swap_auxiliary_headers_out (abfd) (bfd_byte *) thdr.reserved5); if (bfd_bwrite ((PTR) &thdr, (bfd_size_type) sizeof (thdr), abfd) != sizeof (thdr)) - return false; + return FALSE; } /* Write out the custom header if there is one. */ @@ -834,7 +834,7 @@ nlm_swap_auxiliary_headers_out (abfd) sizeof (Nlm_Internal_Custom_Header))) { Nlm_External_Custom_Header thdr; - boolean ds; + bfd_boolean ds; bfd_size_type hdrLength; ds = find_nonzero ((PTR) nlm_custom_header (abfd)->dataStamp, @@ -852,7 +852,7 @@ nlm_swap_auxiliary_headers_out (abfd) BFD_ASSERT (nlm_custom_header (abfd)->hdrLength == 0); amt = sizeof (thdr) - sizeof (thdr.dataStamp); if (bfd_bwrite ((PTR) &thdr, amt, abfd) != amt) - return false; + return FALSE; } else { @@ -860,10 +860,10 @@ nlm_swap_auxiliary_headers_out (abfd) sizeof (thdr.dataStamp)); amt = sizeof (thdr); if (bfd_bwrite ((PTR) &thdr, amt, abfd) != amt) - return false; + return FALSE; amt = nlm_custom_header (abfd)->hdrLength; if (bfd_bwrite (nlm_custom_header (abfd)->hdr, amt, abfd) != amt) - return false; + return FALSE; } } @@ -883,10 +883,10 @@ nlm_swap_auxiliary_headers_out (abfd) memcpy (thdr.dataStamp, "CyGnUsEx", 8); amt = sizeof (thdr); if (bfd_bwrite ((PTR) &thdr, amt, abfd) != amt) - return false; + return FALSE; } - return true; + return TRUE; } /* We read the NLM's public symbols and use it to generate a bfd symbol @@ -1009,7 +1009,7 @@ nlm_print_symbol (abfd, afile, symbol, h When we return, the bfd symcount is either zero or contains the correct number of symbols. */ -static boolean +static bfd_boolean nlm_slurp_symbol_table (abfd) bfd *abfd; { @@ -1020,12 +1020,12 @@ nlm_slurp_symbol_table (abfd) unsigned char symlength; /* Symbol length read into here. */ unsigned char symtype; /* Type of debugging symbol. */ bfd_byte temp[NLM_TARGET_LONG_SIZE]; /* Symbol offsets read into here. */ - boolean (*read_import_func) PARAMS ((bfd *, nlm_symbol_type *)); - boolean (*set_public_section_func) PARAMS ((bfd *, nlm_symbol_type *)); + bfd_boolean (*read_import_func) PARAMS ((bfd *, nlm_symbol_type *)); + bfd_boolean (*set_public_section_func) PARAMS ((bfd *, nlm_symbol_type *)); bfd_size_type amt; if (nlm_get_symbols (abfd) != NULL) - return true; + return TRUE; /* Read each raw NLM symbol, using the information to create a canonical bfd symbol table entry. @@ -1041,15 +1041,15 @@ nlm_slurp_symbol_table (abfd) + i_fxdhdrp->numberOfDebugRecords + i_fxdhdrp->numberOfExternalReferences); if (totsymcount == 0) - return true; + return TRUE; if (bfd_seek (abfd, i_fxdhdrp->publicsOffset, SEEK_SET) != 0) - return false; + return FALSE; amt = totsymcount * sizeof (nlm_symbol_type); sym = ((nlm_symbol_type *) bfd_zalloc (abfd, amt)); if (!sym) - return false; + return FALSE; nlm_set_symbols (abfd, sym); /* We use the bfd's symcount directly as the control count, so that early @@ -1062,19 +1062,19 @@ nlm_slurp_symbol_table (abfd) { amt = sizeof (symlength); if (bfd_bread ((PTR) &symlength, amt, abfd) != amt) - return false; + return FALSE; amt = symlength; sym->symbol.the_bfd = abfd; sym->symbol.name = bfd_alloc (abfd, amt + 1); if (!sym->symbol.name) - return false; + return FALSE; if (bfd_bread ((PTR) sym->symbol.name, amt, abfd) != amt) - return false; + return FALSE; /* Cast away const. */ ((char *) (sym->symbol.name))[symlength] = '\0'; amt = sizeof (temp); if (bfd_bread ((PTR) temp, amt, abfd) != amt) - return false; + return FALSE; sym->symbol.flags = BSF_GLOBAL | BSF_EXPORT; sym->symbol.value = get_word (abfd, temp); if (set_public_section_func) @@ -1082,7 +1082,7 @@ nlm_slurp_symbol_table (abfd) /* Most backends can use the code below, but unfortunately some use a different scheme. */ if (! (*set_public_section_func) (abfd, sym)) - return false; + return FALSE; } else { @@ -1109,27 +1109,27 @@ nlm_slurp_symbol_table (abfd) if (i_fxdhdrp->numberOfDebugRecords > 0) { if (bfd_seek (abfd, i_fxdhdrp->debugInfoOffset, SEEK_SET) != 0) - return false; + return FALSE; symcount += i_fxdhdrp->numberOfDebugRecords; while (abfd->symcount < symcount) { amt = sizeof (symtype); if (bfd_bread ((PTR) &symtype, amt, abfd) != amt) - return false; + return FALSE; amt = sizeof (temp); if (bfd_bread ((PTR) temp, amt, abfd) != amt) - return false; + return FALSE; amt = sizeof (symlength); if (bfd_bread ((PTR) &symlength, amt, abfd) != amt) - return false; + return FALSE; amt = symlength; sym->symbol.the_bfd = abfd; sym->symbol.name = bfd_alloc (abfd, amt + 1); if (!sym->symbol.name) - return false; + return FALSE; if (bfd_bread ((PTR) sym->symbol.name, amt, abfd) != amt) - return false; + return FALSE; /* Cast away const. */ ((char *) (sym->symbol.name))[symlength] = '\0'; sym->symbol.flags = BSF_LOCAL; @@ -1161,19 +1161,19 @@ nlm_slurp_symbol_table (abfd) if (read_import_func != NULL) { if (bfd_seek (abfd, i_fxdhdrp->externalReferencesOffset, SEEK_SET) != 0) - return false; + return FALSE; symcount += i_fxdhdrp->numberOfExternalReferences; while (abfd->symcount < symcount) { if (! (*read_import_func) (abfd, sym)) - return false; + return FALSE; sym++; abfd->symcount++; } } - return true; + return TRUE; } /* Get the relocs for an NLM file. There are two types of relocs. @@ -1189,25 +1189,25 @@ nlm_slurp_symbol_table (abfd) section pointers are needed because the relocs are not sorted by section. */ -static boolean +static bfd_boolean nlm_slurp_reloc_fixups (abfd) bfd *abfd; { - boolean (*read_func) PARAMS ((bfd *, nlm_symbol_type *, asection **, - arelent *)); + bfd_boolean (*read_func) + PARAMS ((bfd *, nlm_symbol_type *, asection **, arelent *)); bfd_size_type count, amt; arelent *rels; asection **secs; if (nlm_relocation_fixups (abfd) != NULL) - return true; + return TRUE; read_func = nlm_read_reloc_func (abfd); if (read_func == NULL) - return true; + return TRUE; if (bfd_seek (abfd, nlm_fixed_header (abfd)->relocationFixupOffset, SEEK_SET) != 0) - return false; + return FALSE; count = nlm_fixed_header (abfd)->numberOfRelocationFixups; amt = count * sizeof (arelent); @@ -1215,7 +1215,7 @@ nlm_slurp_reloc_fixups (abfd) amt = count * sizeof (asection *); secs = (asection **) bfd_alloc (abfd, amt); if ((rels == NULL || secs == NULL) && count != 0) - return false; + return FALSE; nlm_relocation_fixups (abfd) = rels; nlm_relocation_fixup_secs (abfd) = secs; @@ -1227,13 +1227,13 @@ nlm_slurp_reloc_fixups (abfd) { nlm_relocation_fixups (abfd) = NULL; nlm_relocation_fixup_secs (abfd) = NULL; - return false; + return FALSE; } ++secs; ++rels; } - return true; + return TRUE; } /* Get the number of relocs. This really just returns an upper bound, @@ -1358,7 +1358,7 @@ nlm_canonicalize_reloc (abfd, sec, relpt move the symbols at this point so that mangle_relocs can see the final values. */ -static boolean +static bfd_boolean nlm_compute_section_file_positions (abfd) bfd *abfd; { @@ -1372,7 +1372,7 @@ nlm_compute_section_file_positions (abfd asymbol **sym_ptr_ptr; if (abfd->output_has_begun) - return true; + return TRUE; /* Make sure we have a section to hold uninitialized data. */ bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); @@ -1381,11 +1381,11 @@ nlm_compute_section_file_positions (abfd if (!add_bfd_section (abfd, NLM_UNINITIALIZED_DATA_NAME, (file_ptr) 0, (bfd_size_type) 0, SEC_ALLOC)) - return false; + return FALSE; bss_sec = bfd_get_section_by_name (abfd, NLM_UNINITIALIZED_DATA_NAME); } - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; /* The fixed header. */ sofar = nlm_optional_prefix_size (abfd) + nlm_fixed_header_size (abfd); @@ -1556,7 +1556,7 @@ nlm_compute_section_file_positions (abfd } } - return true; + return TRUE; } /* Set the contents of a section. To do this we need to know where @@ -1564,7 +1564,7 @@ nlm_compute_section_file_positions (abfd that the sizes of all the sections must be set, and all the variable size header information must be known. */ -boolean +bfd_boolean nlm_set_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -1574,10 +1574,10 @@ nlm_set_section_contents (abfd, section, { if (! abfd->output_has_begun && ! nlm_compute_section_file_positions (abfd)) - return false; + return FALSE; if (count == 0) - return true; + return TRUE; /* i386 NetWare has a very restricted set of relocs. In order for objcopy to work, the NLM i386 backend needs a chance to rework @@ -1585,23 +1585,23 @@ nlm_set_section_contents (abfd, section, the relocs are already acceptable, this will not do anything. */ if (section->reloc_count != 0) { - boolean (*mangle_relocs_func) PARAMS ((bfd *, asection *, PTR, - bfd_vma, bfd_size_type)); + bfd_boolean (*mangle_relocs_func) + PARAMS ((bfd *, asection *, PTR, bfd_vma, bfd_size_type)); mangle_relocs_func = nlm_mangle_relocs_func (abfd); if (mangle_relocs_func != NULL) { if (!(*mangle_relocs_func) (abfd, section, location, (bfd_vma) offset, count)) - return false; + return FALSE; } } if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0 || bfd_bwrite (location, count, abfd) != count) - return false; + return FALSE; - return true; + return TRUE; } /* We need to sort a list of relocs associated with sections when we @@ -1655,17 +1655,17 @@ nlm_external_reloc_compare (p1, p2) section. The exports and debugging records are obtained from the list of outsymbols. */ -boolean +bfd_boolean nlm_write_object_contents (abfd) bfd *abfd; { asection *sec; - boolean (*write_import_func) PARAMS ((bfd *, asection *, arelent *)); + bfd_boolean (*write_import_func) PARAMS ((bfd *, asection *, arelent *)); bfd_size_type external_reloc_count, internal_reloc_count, i, c; struct reloc_and_sec *external_relocs; asymbol **sym_ptr_ptr; file_ptr last; - boolean (*write_prefix_func) PARAMS ((bfd *)); + bfd_boolean (*write_prefix_func) PARAMS ((bfd *)); unsigned char *fixed_header = NULL; file_ptr pos; bfd_size_type amt; @@ -1831,7 +1831,7 @@ nlm_write_object_contents (abfd) if (sym_ptr_ptr != (asymbol **) NULL) { bfd_vma (*get_public_offset_func) PARAMS ((bfd *, asymbol *)); - boolean (*write_export_func) PARAMS ((bfd *, asymbol *, bfd_vma)); + bfd_boolean (*write_export_func) PARAMS ((bfd *, asymbol *, bfd_vma)); asymbol **sym_end; @@ -2034,10 +2034,10 @@ nlm_write_object_contents (abfd) if (fixed_header != NULL) free (fixed_header); - return true; + return TRUE; error_return: if (fixed_header != NULL) free (fixed_header); - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/bfd/oasys.c binutils-2.13.90.0.18/bfd/oasys.c --- binutils-2.13.90.0.16/bfd/oasys.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/oasys.c Mon Dec 16 12:22:52 2002 @@ -27,62 +27,85 @@ #include "oasys.h" #include "liboasys.h" -static boolean oasys_slurp_section_data PARAMS ((bfd * const)); -static boolean oasys_read_record PARAMS ((bfd *, oasys_record_union_type *)); -static boolean oasys_write_sections PARAMS ((bfd *)); -static boolean oasys_write_record +static bfd_boolean oasys_slurp_section_data + PARAMS ((bfd * const)); +static bfd_boolean oasys_read_record + PARAMS ((bfd *, oasys_record_union_type *)); +static bfd_boolean oasys_write_sections + PARAMS ((bfd *)); +static bfd_boolean oasys_write_record PARAMS ((bfd *, oasys_record_enum_type, oasys_record_union_type *, size_t)); -static boolean oasys_write_syms PARAMS ((bfd *)); -static boolean oasys_write_header PARAMS ((bfd *)); -static boolean oasys_write_end PARAMS ((bfd *)); -static boolean oasys_write_data PARAMS ((bfd *)); -static size_t oasys_string_length PARAMS ((oasys_record_union_type *)); -static boolean oasys_slurp_symbol_table PARAMS ((bfd *const)); -static long int oasys_get_symtab_upper_bound PARAMS ((bfd *const)); -static const bfd_target *oasys_archive_p PARAMS ((bfd *)); -static boolean oasys_mkobject PARAMS ((bfd *)); -static const bfd_target *oasys_object_p PARAMS ((bfd *)); -static void oasys_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); +static bfd_boolean oasys_write_syms + PARAMS ((bfd *)); +static bfd_boolean oasys_write_header + PARAMS ((bfd *)); +static bfd_boolean oasys_write_end + PARAMS ((bfd *)); +static bfd_boolean oasys_write_data + PARAMS ((bfd *)); +static size_t oasys_string_length + PARAMS ((oasys_record_union_type *)); +static bfd_boolean oasys_slurp_symbol_table + PARAMS ((bfd *const)); +static long int oasys_get_symtab_upper_bound + PARAMS ((bfd *const)); +static const bfd_target *oasys_archive_p + PARAMS ((bfd *)); +static bfd_boolean oasys_mkobject + PARAMS ((bfd *)); +static const bfd_target *oasys_object_p + PARAMS ((bfd *)); +static void oasys_get_symbol_info + PARAMS ((bfd *, asymbol *, symbol_info *)); static void oasys_print_symbol PARAMS ((bfd *, void *, asymbol *, bfd_print_symbol_type)); -static boolean oasys_new_section_hook PARAMS ((bfd *, asection *)); -static long int oasys_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr)); -static boolean oasys_get_section_contents +static bfd_boolean oasys_new_section_hook + PARAMS ((bfd *, asection *)); +static long int oasys_get_reloc_upper_bound + PARAMS ((bfd *, sec_ptr)); +static bfd_boolean oasys_get_section_contents PARAMS ((bfd *, sec_ptr, void *, file_ptr, bfd_size_type)); -static int comp PARAMS ((const void *, const void *)); -static boolean oasys_write_object_contents PARAMS ((bfd *)); -static boolean oasys_set_section_contents +static int comp + PARAMS ((const void *, const void *)); +static bfd_boolean oasys_write_object_contents + PARAMS ((bfd *)); +static bfd_boolean oasys_set_section_contents PARAMS ((bfd *, sec_ptr, void *, file_ptr, bfd_size_type)); -static asymbol *oasys_make_empty_symbol PARAMS ((bfd *)); -static bfd *oasys_openr_next_archived_file PARAMS ((bfd *, bfd *)); -static boolean oasys_find_nearest_line +static asymbol *oasys_make_empty_symbol + PARAMS ((bfd *)); +static bfd *oasys_openr_next_archived_file + PARAMS ((bfd *, bfd *)); +static bfd_boolean oasys_find_nearest_line PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *)); -static int oasys_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); -static int oasys_sizeof_headers PARAMS ((bfd *, boolean)); +static int oasys_generic_stat_arch_elt + PARAMS ((bfd *, struct stat *)); +static int oasys_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); -long oasys_get_symtab PARAMS ((bfd *, asymbol **)); +long oasys_get_symtab + PARAMS ((bfd *, asymbol **)); long oasys_canonicalize_reloc PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); /* Read in all the section data and relocation stuff too. */ -static boolean +static bfd_boolean oasys_read_record (abfd, record) bfd *abfd; oasys_record_union_type *record; { bfd_size_type amt = sizeof (record->header); if (bfd_bread ((PTR) record, amt, abfd) != amt) - return false; + return FALSE; amt = record->header.length - sizeof (record->header); if ((long) amt <= 0) - return true; + return TRUE; if (bfd_bread ((PTR) ((char *) record + sizeof (record->header)), amt, abfd) != amt) - return false; - return true; + return FALSE; + return TRUE; } static size_t @@ -109,13 +132,13 @@ moving in, and the defined symbols at th */ -static boolean +static bfd_boolean oasys_slurp_symbol_table (abfd) bfd *const abfd; { oasys_record_union_type record; oasys_data_type *data = OASYS_DATA (abfd); - boolean loop = true; + bfd_boolean loop = TRUE; asymbol *dest_defined; asymbol *dest; char *string_ptr; @@ -123,7 +146,7 @@ oasys_slurp_symbol_table (abfd) if (data->symbols != (asymbol *) NULL) { - return true; + return TRUE; } /* Buy enough memory for all the symbols and all the names */ amt = abfd->symcount; @@ -138,18 +161,18 @@ oasys_slurp_symbol_table (abfd) data->strings = bfd_alloc (abfd, amt); if (!data->symbols || !data->strings) - return false; + return FALSE; dest_defined = data->symbols + abfd->symcount - 1; string_ptr = data->strings; if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; while (loop) { if (! oasys_read_record (abfd, &record)) - return false; + return FALSE; switch (record.header.type) { case oasys_record_is_header_enum: @@ -229,10 +252,10 @@ oasys_slurp_symbol_table (abfd) } break; default: - loop = false; + loop = FALSE; } } - return true; + return TRUE; } static long @@ -405,7 +428,7 @@ oasys_archive_p (abfd) return abfd->xvec; } -static boolean +static bfd_boolean oasys_mkobject (abfd) bfd *abfd; { @@ -421,8 +444,8 @@ oasys_object_p (abfd) { oasys_data_type *oasys; oasys_data_type *save = OASYS_DATA (abfd); - boolean loop = true; - boolean had_usefull = false; + bfd_boolean loop = TRUE; + bfd_boolean had_usefull = FALSE; abfd->tdata.oasys_obj_data = 0; oasys_mkobject (abfd); @@ -449,14 +472,14 @@ oasys_object_p (abfd) switch ((oasys_record_enum_type) (record.header.type)) { case oasys_record_is_header_enum: - had_usefull = true; + had_usefull = TRUE; break; case oasys_record_is_symbol_enum: case oasys_record_is_local_enum: /* Count symbols and remember their size for a future malloc */ abfd->symcount++; oasys->symbol_string_length += 1 + oasys_string_length (&record); - had_usefull = true; + had_usefull = TRUE; break; case oasys_record_is_section_enum: { @@ -487,7 +510,7 @@ oasys_object_p (abfd) s->_raw_size = H_GET_32 (abfd, record.section.value); s->vma = H_GET_32 (abfd, record.section.vma); s->flags = 0; - had_usefull = true; + had_usefull = TRUE; } break; case oasys_record_is_data_enum: @@ -498,7 +521,7 @@ oasys_object_p (abfd) case oasys_record_is_end_enum: if (! had_usefull) goto fail; - loop = false; + loop = FALSE; break; default: goto fail; @@ -578,20 +601,20 @@ oasys_print_symbol (abfd, afile, symbol, static reloc_howto_type howto_table[] = { - HOWTO (0, 0, 1, 16, false, 0, complain_overflow_bitfield, 0, "abs16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO (0, 0, 2, 32, false, 0, complain_overflow_bitfield, 0, "abs32", true, 0xffffffff, 0xffffffff, false), - HOWTO (0, 0, 1, 16, true, 0, complain_overflow_signed, 0, "pcrel16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO (0, 0, 2, 32, true, 0, complain_overflow_signed, 0, "pcrel32", true, 0xffffffff, 0xffffffff, false) + HOWTO (0, 0, 1, 16, FALSE, 0, complain_overflow_bitfield, 0, "abs16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (0, 0, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "abs32", TRUE, 0xffffffff, 0xffffffff, FALSE), + HOWTO (0, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "pcrel16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (0, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0, "pcrel32", TRUE, 0xffffffff, 0xffffffff, FALSE) }; /* Read in all the section data and relocation stuff too */ -static boolean +static bfd_boolean oasys_slurp_section_data (abfd) bfd *const abfd; { oasys_record_union_type record; oasys_data_type *data = OASYS_DATA (abfd); - boolean loop = true; + bfd_boolean loop = TRUE; oasys_per_section_type *per; asection *s; bfd_size_type amt; @@ -601,18 +624,18 @@ oasys_slurp_section_data (abfd) { per = oasys_per_section (s); if (per->initialized) - return true; + return TRUE; } if (data->first_data_record == 0) - return true; + return TRUE; if (bfd_seek (abfd, data->first_data_record, SEEK_SET) != 0) - return false; + return FALSE; while (loop) { if (! oasys_read_record (abfd, &record)) - return false; + return FALSE; switch (record.header.type) { case oasys_record_is_header_enum: @@ -636,11 +659,11 @@ oasys_slurp_section_data (abfd) { per->data = (bfd_byte *) bfd_zalloc (abfd, section->_raw_size); if (!per->data) - return false; + return FALSE; per->reloc_tail_ptr = (oasys_reloc_type **) §ion->relocation; - per->had_vma = false; - per->initialized = true; + per->had_vma = FALSE; + per->initialized = TRUE; section->reloc_count = 0; section->flags = SEC_ALLOC; } @@ -650,7 +673,7 @@ oasys_slurp_section_data (abfd) { /* Take the first vma we see as the base */ section->vma = dst_offset; - per->had_vma = true; + per->had_vma = TRUE; } dst_offset -= section->vma; @@ -705,7 +728,7 @@ oasys_slurp_section_data (abfd) r = (oasys_reloc_type *) bfd_alloc (abfd, amt); if (!r) - return false; + return FALSE; *(per->reloc_tail_ptr) = r; per->reloc_tail_ptr = &r->next; r->next = (oasys_reloc_type *) NULL; @@ -747,7 +770,7 @@ oasys_slurp_section_data (abfd) r = (oasys_reloc_type *) bfd_alloc (abfd, amt); if (!r) - return false; + return FALSE; *(per->reloc_tail_ptr) = r; per->reloc_tail_ptr = &r->next; r->next = (oasys_reloc_type *) NULL; @@ -793,15 +816,15 @@ oasys_slurp_section_data (abfd) case oasys_record_is_section_enum: break; default: - loop = false; + loop = FALSE; } } - return true; + return TRUE; } -static boolean +static bfd_boolean oasys_new_section_hook (abfd, newsect) bfd *abfd; asection *newsect; @@ -809,17 +832,17 @@ oasys_new_section_hook (abfd, newsect) newsect->used_by_bfd = (PTR) bfd_alloc (abfd, (bfd_size_type) sizeof (oasys_per_section_type)); if (!newsect->used_by_bfd) - return false; + return FALSE; oasys_per_section (newsect)->data = (bfd_byte *) NULL; oasys_per_section (newsect)->section = newsect; oasys_per_section (newsect)->offset = 0; - oasys_per_section (newsect)->initialized = false; + oasys_per_section (newsect)->initialized = FALSE; newsect->alignment_power = 1; /* Turn the section string into an index */ sscanf (newsect->name, "%u", &newsect->target_index); - return true; + return TRUE; } @@ -833,7 +856,7 @@ oasys_get_reloc_upper_bound (abfd, asect return (asect->reloc_count + 1) * sizeof (arelent *); } -static boolean +static bfd_boolean oasys_get_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -851,7 +874,7 @@ oasys_get_section_contents (abfd, sectio { (void) memcpy (location, (PTR) (p->data + offset), (size_t) count); } - return true; + return TRUE; } @@ -890,7 +913,7 @@ oasys_canonicalize_reloc (ignore_abfd, s /* Calculate the checksum and write one record */ -static boolean +static bfd_boolean oasys_write_record (abfd, type, record, size) bfd *abfd; oasys_record_enum_type type; @@ -913,13 +936,13 @@ oasys_write_record (abfd, type, record, } record->header.check_sum = 0xff & (-checksum); if (bfd_bwrite ((PTR) record, (bfd_size_type) size, abfd) != size) - return false; - return true; + return FALSE; + return TRUE; } /* Write out all the symbols */ -static boolean +static bfd_boolean oasys_write_syms (abfd) bfd *abfd; { @@ -995,7 +1018,7 @@ oasys_write_syms (abfd) (oasys_record_union_type *) & symbol, offsetof (oasys_symbol_record_type, name[0]) + l)) - return false; + return FALSE; } else { @@ -1004,17 +1027,17 @@ oasys_write_syms (abfd) (oasys_record_union_type *) & symbol, offsetof (oasys_symbol_record_type, name[0]) + l)) - return false; + return FALSE; } g->value = index - 1; } - return true; + return TRUE; } /* Write a section header for each section */ -static boolean +static bfd_boolean oasys_write_sections (abfd) bfd *abfd; { @@ -1029,7 +1052,7 @@ oasys_write_sections (abfd) (_("%s: can not represent section `%s' in oasys"), bfd_get_filename (abfd), s->name); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } out.relb = RELOCATION_TYPE_REL | s->target_index; H_PUT_32 (abfd, s->_cooked_size, out.value); @@ -1039,12 +1062,12 @@ oasys_write_sections (abfd) oasys_record_is_section_enum, (oasys_record_union_type *) & out, sizeof (out))) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean oasys_write_header (abfd) bfd *abfd; { @@ -1070,12 +1093,12 @@ oasys_write_header (abfd) (oasys_record_union_type *) & r, offsetof (oasys_header_record_type, description[0]))) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean oasys_write_end (abfd) bfd *abfd; { @@ -1089,10 +1112,10 @@ oasys_write_end (abfd) oasys_record_is_end_enum, (oasys_record_union_type *) & end, sizeof (end))) - return false; + return FALSE; if (bfd_bwrite ((PTR) &null, (bfd_size_type) 1, abfd) != 1) - return false; - return true; + return FALSE; + return TRUE; } static int @@ -1109,7 +1132,7 @@ comp (ap, bp) Writing data.. */ -static boolean +static bfd_boolean oasys_write_data (abfd) bfd *abfd; { @@ -1286,29 +1309,29 @@ oasys_write_data (abfd) (abfd, oasys_record_is_data_enum, ((oasys_record_union_type *) &processed_data), (size_t) (dst - (bfd_byte *) &processed_data)))) - return false; + return FALSE; } } } - return true; + return TRUE; } -static boolean +static bfd_boolean oasys_write_object_contents (abfd) bfd *abfd; { if (! oasys_write_header (abfd)) - return false; + return FALSE; if (! oasys_write_syms (abfd)) - return false; + return FALSE; if (! oasys_write_sections (abfd)) - return false; + return FALSE; if (! oasys_write_data (abfd)) - return false; + return FALSE; if (! oasys_write_end (abfd)) - return false; - return true; + return FALSE; + return TRUE; } @@ -1319,7 +1342,7 @@ oasys_write_object_contents (abfd) /* set section contents is complicated with OASYS since the format is * not a byte image, but a record stream. */ -static boolean +static bfd_boolean oasys_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -1334,13 +1357,13 @@ oasys_set_section_contents (abfd, sectio oasys_per_section (section)->data = (bfd_byte *) (bfd_alloc (abfd, section->_cooked_size)); if (!oasys_per_section (section)->data) - return false; + return FALSE; } (void) memcpy ((PTR) (oasys_per_section (section)->data + offset), location, (size_t) count); } - return true; + return TRUE; } @@ -1406,7 +1429,7 @@ oasys_openr_next_archived_file (arch, pr } } -static boolean +static bfd_boolean oasys_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd ATTRIBUTE_UNUSED; @@ -1417,7 +1440,7 @@ oasys_find_nearest_line (abfd, section, const char **functionname_ptr ATTRIBUTE_UNUSED; unsigned int *line_ptr ATTRIBUTE_UNUSED; { - return false; + return FALSE; } @@ -1443,7 +1466,7 @@ oasys_generic_stat_arch_elt (abfd, buf) static int oasys_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } @@ -1454,11 +1477,11 @@ oasys_sizeof_headers (abfd, exec) #define oasys_slurp_armap bfd_true #define oasys_slurp_extended_name_table bfd_true #define oasys_construct_extended_name_table \ - ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ + ((bfd_boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ bfd_true) #define oasys_truncate_arname bfd_dont_truncate_arname #define oasys_write_armap \ - ((boolean (*) \ + ((bfd_boolean (*) \ PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int))) \ bfd_true) #define oasys_read_ar_hdr bfd_nullvoidptr diff -uprN binutils-2.13.90.0.16/bfd/opncls.c binutils-2.13.90.0.18/bfd/opncls.c --- binutils-2.13.90.0.16/bfd/opncls.c Mon Oct 7 23:08:00 2002 +++ binutils-2.13.90.0.18/bfd/opncls.c Mon Dec 16 12:22:52 2002 @@ -75,13 +75,13 @@ _bfd_new_bfd () nbfd->format = bfd_unknown; nbfd->my_archive = (bfd *) NULL; nbfd->origin = 0; - nbfd->opened_once = false; - nbfd->output_has_begun = false; + nbfd->opened_once = FALSE; + nbfd->output_has_begun = FALSE; nbfd->section_count = 0; nbfd->usrdata = (PTR) NULL; - nbfd->cacheable = false; + nbfd->cacheable = FALSE; nbfd->flags = BFD_NO_FLAGS; - nbfd->mtime_set = false; + nbfd->mtime_set = FALSE; return nbfd; } @@ -275,7 +275,7 @@ bfd_fdopenr (filename, target, fd) _bfd_delete_bfd (nbfd); return NULL; } - nbfd->opened_once = true; + nbfd->opened_once = TRUE; return nbfd; } @@ -388,7 +388,7 @@ FUNCTION bfd_close SYNOPSIS - boolean bfd_close(bfd *abfd); + bfd_boolean bfd_close (bfd *abfd); DESCRIPTION @@ -403,24 +403,24 @@ DESCRIPTION if it was passed in to BFD by <>). RETURNS - <> is returned if all is ok, otherwise <>. + <> is returned if all is ok, otherwise <>. */ -boolean +bfd_boolean bfd_close (abfd) bfd *abfd; { - boolean ret; + bfd_boolean ret; if (bfd_write_p (abfd)) { if (! BFD_SEND_FMT (abfd, _bfd_write_contents, (abfd))) - return false; + return FALSE; } if (! BFD_SEND (abfd, _close_and_cleanup, (abfd))) - return false; + return FALSE; ret = bfd_cache_close (abfd); @@ -453,7 +453,7 @@ FUNCTION bfd_close_all_done SYNOPSIS - boolean bfd_close_all_done(bfd *); + bfd_boolean bfd_close_all_done (bfd *); DESCRIPTION Close a BFD. Differs from <> since it does not @@ -467,14 +467,14 @@ DESCRIPTION All memory attached to the BFD is released. RETURNS - <> is returned if all is ok, otherwise <>. + <> is returned if all is ok, otherwise <>. */ -boolean +bfd_boolean bfd_close_all_done (abfd) bfd *abfd; { - boolean ret; + bfd_boolean ret; ret = bfd_cache_close (abfd); @@ -539,7 +539,7 @@ FUNCTION bfd_make_writable SYNOPSIS - boolean bfd_make_writable(bfd *abfd); + bfd_boolean bfd_make_writable (bfd *abfd); DESCRIPTION Takes a BFD as created by <> and converts it @@ -548,10 +548,10 @@ DESCRIPTION you will call <> on this bfd later. RETURNS - <> is returned if all is ok, otherwise <>. + <> is returned if all is ok, otherwise <>. */ -boolean +bfd_boolean bfd_make_writable(abfd) bfd *abfd; { @@ -560,7 +560,7 @@ bfd_make_writable(abfd) if (abfd->direction != no_direction) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } bim = ((struct bfd_in_memory *) @@ -574,7 +574,7 @@ bfd_make_writable(abfd) abfd->direction = write_direction; abfd->where = 0; - return true; + return TRUE; } /* @@ -582,7 +582,7 @@ FUNCTION bfd_make_readable SYNOPSIS - boolean bfd_make_readable(bfd *abfd); + bfd_boolean bfd_make_readable (bfd *abfd); DESCRIPTION Takes a BFD as created by <> and @@ -592,23 +592,23 @@ DESCRIPTION direction. RETURNS - <> is returned if all is ok, otherwise <>. */ + <> is returned if all is ok, otherwise <>. */ -boolean +bfd_boolean bfd_make_readable(abfd) bfd *abfd; { if (abfd->direction != write_direction || !(abfd->flags & BFD_IN_MEMORY)) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (! BFD_SEND_FMT (abfd, _bfd_write_contents, (abfd))) - return false; + return FALSE; if (! BFD_SEND (abfd, _close_and_cleanup, (abfd))) - return false; + return FALSE; abfd->arch_info = &bfd_default_arch_struct; @@ -617,15 +617,15 @@ bfd_make_readable(abfd) abfd->format = bfd_unknown; abfd->my_archive = (bfd *) NULL; abfd->origin = 0; - abfd->opened_once = false; - abfd->output_has_begun = false; + abfd->opened_once = FALSE; + abfd->output_has_begun = FALSE; abfd->section_count = 0; abfd->usrdata = (PTR) NULL; - abfd->cacheable = false; + abfd->cacheable = FALSE; abfd->flags = BFD_IN_MEMORY; - abfd->mtime_set = false; + abfd->mtime_set = FALSE; - abfd->target_defaulted = true; + abfd->target_defaulted = TRUE; abfd->direction = read_direction; abfd->sections = 0; abfd->symcount = 0; @@ -635,7 +635,7 @@ bfd_make_readable(abfd) bfd_section_list_clear (abfd); bfd_check_format (abfd, bfd_object); - return true; + return TRUE; } /* diff -uprN binutils-2.13.90.0.16/bfd/osf-core.c binutils-2.13.90.0.18/bfd/osf-core.c --- binutils-2.13.90.0.16/bfd/osf-core.c Thu Mar 7 11:52:36 2002 +++ binutils-2.13.90.0.18/bfd/osf-core.c Mon Dec 16 12:22:52 2002 @@ -32,11 +32,16 @@ Foundation, Inc., 59 Temple Place - Suit static asection *make_bfd_asection PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr)); -static const bfd_target *osf_core_core_file_p PARAMS ((bfd *)); -static char *osf_core_core_file_failing_command PARAMS ((bfd *)); -static int osf_core_core_file_failing_signal PARAMS ((bfd *)); -static boolean osf_core_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -static void swap_abort PARAMS ((void)); +static const bfd_target *osf_core_core_file_p + PARAMS ((bfd *)); +static char *osf_core_core_file_failing_command + PARAMS ((bfd *)); +static int osf_core_core_file_failing_signal + PARAMS ((bfd *)); +static bfd_boolean osf_core_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); +static void swap_abort + PARAMS ((void)); /* These are stored in the bfd's tdata */ @@ -168,12 +173,12 @@ osf_core_core_file_failing_signal (abfd) } /* ARGSUSED */ -static boolean +static bfd_boolean osf_core_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return true; /* FIXME, We have no way of telling at this point */ + return TRUE; /* FIXME, We have no way of telling at this point */ } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/pc532-mach.c binutils-2.13.90.0.18/bfd/pc532-mach.c --- binutils-2.13.90.0.16/bfd/pc532-mach.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/pc532-mach.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for Mach3/532 a.out-ish binaries. - Copyright 1990, 1991, 1992, 1994, 1995, 2000, 2001 + Copyright 1990, 1991, 1992, 1994, 1995, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -79,10 +79,10 @@ Foundation, Inc., 59 Temple Place - Suit reloc_howto_type *ns32kaout_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); -static boolean MY(write_object_contents) +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd)); -static boolean +static bfd_boolean MY(write_object_contents) (abfd) bfd *abfd; { @@ -106,7 +106,7 @@ MY(write_object_contents) (abfd) WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } #define MY_write_object_contents MY(write_object_contents) diff -uprN binutils-2.13.90.0.16/bfd/pdp11.c binutils-2.13.90.0.18/bfd/pdp11.c --- binutils-2.13.90.0.16/bfd/pdp11.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/pdp11.c Mon Dec 16 12:22:52 2002 @@ -131,7 +131,7 @@ struct pdp11_external_nlist #define MY_entry_is_text_address 1 #define MY_write_object_contents MY(write_object_contents) -static boolean MY(write_object_contents) PARAMS ((bfd *abfd)); +static bfd_boolean MY(write_object_contents) PARAMS ((bfd *abfd)); #define MY_text_includes_header 1 bfd_vma bfd_getp32 PARAMS ((const bfd_byte *)); @@ -358,10 +358,10 @@ struct pdp11_aout_reloc_external #define RINDEX(x) (((x) & 0xfff0) >> 4) -static boolean aout_get_external_symbols PARAMS ((bfd *)); -static boolean translate_from_native_sym_flags +static bfd_boolean aout_get_external_symbols PARAMS ((bfd *)); +static bfd_boolean translate_from_native_sym_flags PARAMS ((bfd *, aout_symbol_type *)); -static boolean translate_to_native_sym_flags +static bfd_boolean translate_to_native_sym_flags PARAMS ((bfd *, asymbol *, struct external_nlist *)); static void adjust_o_magic PARAMS ((bfd *, struct internal_exec *)); static void adjust_z_magic PARAMS ((bfd *, struct internal_exec *)); @@ -399,8 +399,8 @@ DESCRIPTION reloc_howto_type howto_table_pdp11[] = { /* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone */ -HOWTO( 0, 0, 1, 16, false, 0, complain_overflow_signed,0,"16", true, 0x0000ffff,0x0000ffff, false), -HOWTO( 1, 0, 1, 16, true, 0, complain_overflow_signed,0,"DISP16", true, 0x0000ffff,0x0000ffff, false), +HOWTO( 0, 0, 1, 16, FALSE, 0, complain_overflow_signed,0,"16", TRUE, 0x0000ffff,0x0000ffff, FALSE), +HOWTO( 1, 0, 1, 16, TRUE, 0, complain_overflow_signed,0,"DISP16", TRUE, 0x0000ffff,0x0000ffff, FALSE), }; #define TABLE_SIZE(TABLE) (sizeof(TABLE)/sizeof(TABLE[0])) @@ -451,11 +451,11 @@ pdp11_aout_write_headers (abfd, execp) NAME(aout,swap_exec_header_out) (abfd, execp, &exec_bytes); if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd) != EXEC_BYTES_SIZE) - return false; + return FALSE; /* Now write out reloc info, followed by syms and strings */ @@ -463,34 +463,34 @@ pdp11_aout_write_headers (abfd, execp) && bfd_get_symcount (abfd) != 0) { if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) != 0) - return false; + return FALSE; if (! NAME(aout,write_syms) (abfd)) - return false; + return FALSE; } if (obj_textsec (abfd)->reloc_count > 0 || obj_datasec (abfd)->reloc_count > 0) { if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET) != 0) - return false; + return FALSE; if (!NAME(aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET) != 0) - return false; + return FALSE; if (!NAME(aout,squirt_out_relocs) (abfd, obj_datasec (abfd))) - return false; + return FALSE; } - return true; + return TRUE; } /* Write an object file. Section contents have already been written. We write the file header, symbols, and relocation. */ -static boolean +static bfd_boolean MY(write_object_contents) (abfd) bfd *abfd; { @@ -622,20 +622,20 @@ NAME(aout,swap_exec_header_out) (abfd, e /* Make all the section for an a.out file. */ -boolean +bfd_boolean NAME(aout,make_sections) (abfd) bfd *abfd; { if (obj_textsec (abfd) == (asection *) NULL && bfd_make_section (abfd, ".text") == (asection *) NULL) - return false; + return FALSE; if (obj_datasec (abfd) == (asection *) NULL && bfd_make_section (abfd, ".data") == (asection *) NULL) - return false; + return FALSE; if (obj_bsssec (abfd) == (asection *) NULL && bfd_make_section (abfd, ".bss") == (asection *) NULL) - return false; - return true; + return FALSE; + return TRUE; } /* @@ -869,13 +869,13 @@ FUNCTION aout_@var{size}_mkobject SYNOPSIS - boolean aout_@var{size}_mkobject, (bfd *abfd); + bfd_boolean aout_@var{size}_mkobject, (bfd *abfd); DESCRIPTION Initialize BFD @var{abfd} for use with a.out files. */ -boolean +bfd_boolean NAME(aout,mkobject) (abfd) bfd *abfd; { @@ -888,7 +888,7 @@ NAME(aout,mkobject) (abfd) rawptr = (struct aout_data_struct *) bfd_zalloc (abfd, amt); if (rawptr == NULL) - return false; + return FALSE; abfd->tdata.aout_data = rawptr; exec_hdr (abfd) = &(rawptr->e); @@ -897,7 +897,7 @@ NAME(aout,mkobject) (abfd) obj_datasec (abfd) = (asection *)NULL; obj_bsssec (abfd) = (asection *)NULL; - return true; + return TRUE; } @@ -924,12 +924,12 @@ enum machine_type NAME(aout,machine_type) (arch, machine, unknown) enum bfd_architecture arch; unsigned long machine; - boolean *unknown; + bfd_boolean *unknown; { enum machine_type arch_flags; arch_flags = M_UNKNOWN; - *unknown = true; + *unknown = TRUE; switch (arch) { @@ -947,7 +947,7 @@ NAME(aout,machine_type) (arch, machine, switch (machine) { case 0: arch_flags = M_68010; break; - case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = false; break; + case bfd_mach_m68000: arch_flags = M_UNKNOWN; *unknown = FALSE; break; case bfd_mach_m68010: arch_flags = M_68010; break; case bfd_mach_m68020: arch_flags = M_68020; break; default: arch_flags = M_UNKNOWN; break; @@ -1001,11 +1001,11 @@ NAME(aout,machine_type) (arch, machine, case bfd_arch_pdp11: /* TODO: arch_flags = M_PDP11; */ - *unknown = false; + *unknown = FALSE; break; case bfd_arch_vax: - *unknown = false; + *unknown = FALSE; break; default: @@ -1013,7 +1013,7 @@ NAME(aout,machine_type) (arch, machine, } if (arch_flags != M_UNKNOWN) - *unknown = false; + *unknown = FALSE; return arch_flags; } @@ -1024,7 +1024,7 @@ FUNCTION aout_@var{size}_set_arch_mach SYNOPSIS - boolean aout_@var{size}_set_arch_mach, + bfd_boolean aout_@var{size}_set_arch_mach, (bfd *, enum bfd_architecture arch, unsigned long machine)); @@ -1035,22 +1035,22 @@ DESCRIPTION can support the architecture required. */ -boolean +bfd_boolean NAME(aout,set_arch_mach) (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; unsigned long machine; { if (! bfd_default_set_arch_mach (abfd, arch, machine)) - return false; + return FALSE; if (arch != bfd_arch_unknown) { - boolean unknown; + bfd_boolean unknown; NAME(aout,machine_type) (arch, machine, &unknown); if (unknown) - return false; + return FALSE; } obj_reloc_entry_size (abfd) = RELOC_SIZE; @@ -1284,7 +1284,7 @@ adjust_n_magic (abfd, execp) N_SET_MAGIC (*execp, NMAGIC); } -boolean +bfd_boolean NAME(aout,adjust_sizes_and_vmas) (abfd, text_size, text_end) bfd *abfd; bfd_size_type *text_size; @@ -1293,10 +1293,10 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, struct internal_exec *execp = exec_hdr (abfd); if (! NAME(aout,make_sections) (abfd)) - return false; + return FALSE; if (adata(abfd).magic != undecided_magic) - return true; + return TRUE; obj_textsec(abfd)->_raw_size = align_power(obj_textsec(abfd)->_raw_size, @@ -1369,7 +1369,7 @@ NAME(aout,adjust_sizes_and_vmas) (abfd, obj_bsssec(abfd)->vma, obj_bsssec(abfd)->_raw_size); #endif - return true; + return TRUE; } /* @@ -1377,7 +1377,7 @@ FUNCTION aout_@var{size}_new_section_hook SYNOPSIS - boolean aout_@var{size}_new_section_hook, + bfd_boolean aout_@var{size}_new_section_hook, (bfd *abfd, asection *newsect)); @@ -1385,7 +1385,7 @@ DESCRIPTION Called by the BFD in response to a @code{bfd_make_section} request. */ -boolean +bfd_boolean NAME(aout,new_section_hook) (abfd, newsect) bfd *abfd; asection *newsect; @@ -1401,7 +1401,7 @@ NAME(aout,new_section_hook) (abfd, newse { obj_textsec(abfd)= newsect; newsect->target_index = N_TEXT; - return true; + return TRUE; } if (obj_datasec (abfd) == NULL @@ -1409,7 +1409,7 @@ NAME(aout,new_section_hook) (abfd, newse { obj_datasec (abfd) = newsect; newsect->target_index = N_DATA; - return true; + return TRUE; } if (obj_bsssec (abfd) == NULL @@ -1417,15 +1417,15 @@ NAME(aout,new_section_hook) (abfd, newse { obj_bsssec (abfd) = newsect; newsect->target_index = N_BSS; - return true; + return TRUE; } } /* We allow more than three sections internally */ - return true; + return TRUE; } -boolean +bfd_boolean NAME(aout,set_section_contents) (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -1439,13 +1439,13 @@ NAME(aout,set_section_contents) (abfd, s if (! abfd->output_has_begun) { if (! NAME(aout,adjust_sizes_and_vmas) (abfd, &text_size, &text_end)) - return false; + return FALSE; } if (section == obj_bsssec (abfd)) { bfd_set_error (bfd_error_no_contents); - return false; + return FALSE; } if (section != obj_textsec (abfd) @@ -1455,22 +1455,22 @@ NAME(aout,set_section_contents) (abfd, s ("%s: can not represent section `%s' in a.out object file format", bfd_get_filename (abfd), bfd_get_section_name (abfd, section)); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } if (count != 0) { if (bfd_seek (abfd, section->filepos + offset, SEEK_SET) != 0 || bfd_bwrite (location, count, abfd) != count) - return false; + return FALSE; } - return true; + return TRUE; } /* Read the external symbols from an a.out file. */ -static boolean +static bfd_boolean aout_get_external_symbols (abfd) bfd *abfd; { @@ -1484,8 +1484,8 @@ aout_get_external_symbols (abfd) #ifdef USE_MMAP if (! bfd_get_file_window (abfd, obj_sym_filepos (abfd), exec_hdr (abfd)->a_syms, - &obj_aout_sym_window (abfd), true)) - return false; + &obj_aout_sym_window (abfd), TRUE)) + return FALSE; syms = (struct external_nlist *) obj_aout_sym_window (abfd).data; #else /* We allocate using malloc to make the values easy to free @@ -1493,14 +1493,14 @@ aout_get_external_symbols (abfd) possible to free them. */ syms = (struct external_nlist *) bfd_malloc (count * EXTERNAL_NLIST_SIZE); if (syms == (struct external_nlist *) NULL && count != 0) - return false; + return FALSE; if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0 || (bfd_bread (syms, exec_hdr (abfd)->a_syms, abfd) != exec_hdr (abfd)->a_syms)) { free (syms); - return false; + return FALSE; } #endif @@ -1519,25 +1519,25 @@ aout_get_external_symbols (abfd) if (bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET) != 0 || (bfd_bread ((PTR) string_chars, (bfd_size_type) BYTES_IN_LONG, abfd) != BYTES_IN_LONG)) - return false; + return FALSE; stringsize = H_GET_32 (abfd, string_chars); #ifdef USE_MMAP if (! bfd_get_file_window (abfd, obj_str_filepos (abfd), stringsize, - &obj_aout_string_window (abfd), true)) - return false; + &obj_aout_string_window (abfd), TRUE)) + return FALSE; strings = (char *) obj_aout_string_window (abfd).data; #else strings = (char *) bfd_malloc (stringsize + 1); if (strings == NULL) - return false; + return FALSE; /* Skip space for the string count in the buffer for convenience when using indexes. */ if (bfd_bread (strings + 4, stringsize - 4, abfd) != stringsize - 4) { free (strings); - return false; + return FALSE; } #endif @@ -1550,7 +1550,7 @@ aout_get_external_symbols (abfd) obj_aout_external_string_size (abfd) = stringsize; } - return true; + return TRUE; } /* Translate an a.out symbol into a BFD symbol. The desc, other, type @@ -1558,7 +1558,7 @@ aout_get_external_symbols (abfd) nlist structure. This function is responsible for setting symbol->flags and symbol->section, and adjusting symbol->value. */ -static boolean +static bfd_boolean translate_from_native_sym_flags (abfd, cache_ptr) bfd *abfd; aout_symbol_type *cache_ptr; @@ -1595,7 +1595,7 @@ translate_from_native_sym_flags (abfd, c cache_ptr->symbol.section = sec; cache_ptr->symbol.value -= sec->vma; - return true; + return TRUE; } /* Get the default visibility. This does not apply to all types, so @@ -1646,12 +1646,12 @@ translate_from_native_sym_flags (abfd, c break; } - return true; + return TRUE; } /* Set the fields of SYM_POINTER according to CACHE_PTR. */ -static boolean +static bfd_boolean translate_to_native_sym_flags (abfd, cache_ptr, sym_pointer) bfd *abfd; asymbol *cache_ptr; @@ -1677,7 +1677,7 @@ translate_to_native_sym_flags (abfd, cac bfd_archive_filename (abfd), cache_ptr->name != NULL ? cache_ptr->name : "*unknown*"); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } if (sec->output_section != NULL) @@ -1704,7 +1704,7 @@ translate_to_native_sym_flags (abfd, cac ("%s: can not represent section `%s' in a.out object file format", bfd_archive_filename (abfd), bfd_get_section_name (abfd, sec)); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } /* Turn the symbol from section relative to absolute again */ @@ -1752,7 +1752,7 @@ translate_to_native_sym_flags (abfd, cac PUT_WORD(abfd, value, sym_pointer->e_value); - return true; + return TRUE; } /* Native-level interface to symbols. */ @@ -1772,7 +1772,7 @@ NAME(aout,make_empty_symbol) (abfd) /* Translate a set of internal symbols into external symbols. */ -boolean +bfd_boolean NAME(aout,translate_symbol_table) (abfd, in, ext, count, str, strsize, dynamic) bfd *abfd; aout_symbol_type *in; @@ -1780,7 +1780,7 @@ NAME(aout,translate_symbol_table) (abfd, bfd_size_type count; char *str; bfd_size_type strsize; - boolean dynamic; + bfd_boolean dynamic; { struct external_nlist *ext_end; @@ -1802,7 +1802,7 @@ NAME(aout,translate_symbol_table) (abfd, else if (x < strsize) in->symbol.name = str + x; else - return false; + return FALSE; in->symbol.value = GET_SWORD (abfd, ext->e_value); /* TODO: is 0 a safe value here? */ @@ -1812,20 +1812,20 @@ NAME(aout,translate_symbol_table) (abfd, in->symbol.udata.p = NULL; if (! translate_from_native_sym_flags (abfd, in)) - return false; + return FALSE; if (dynamic) in->symbol.flags |= BSF_DYNAMIC; } - return true; + return TRUE; } /* We read the symbols into a buffer, which is discarded when this function exits. We read the strings into a buffer large enough to hold them all plus all the cached symbol entries. */ -boolean +bfd_boolean NAME(aout,slurp_symbol_table) (abfd) bfd *abfd; { @@ -1835,18 +1835,18 @@ NAME(aout,slurp_symbol_table) (abfd) /* If there's no work to be done, don't do any */ if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL) - return true; + return TRUE; old_external_syms = obj_aout_external_syms (abfd); if (! aout_get_external_symbols (abfd)) - return false; + return FALSE; cached_size = obj_aout_external_sym_count (abfd); cached_size *= sizeof (aout_symbol_type); cached = (aout_symbol_type *) bfd_zmalloc (cached_size); if (cached == NULL && cached_size != 0) - return false; + return FALSE; /* Convert from external symbol information to internal. */ if (! (NAME(aout,translate_symbol_table) @@ -1855,10 +1855,10 @@ NAME(aout,slurp_symbol_table) (abfd) obj_aout_external_sym_count (abfd), obj_aout_external_strings (abfd), obj_aout_external_string_size (abfd), - false))) + FALSE))) { free (cached); - return false; + return FALSE; } bfd_get_symcount (abfd) = obj_aout_external_sym_count (abfd); @@ -1880,7 +1880,7 @@ NAME(aout,slurp_symbol_table) (abfd) obj_aout_external_syms (abfd) = NULL; } - return true; + return TRUE; } /* We use a hash table when writing out symbols so that we only write @@ -1893,8 +1893,8 @@ NAME(aout,slurp_symbol_table) (abfd) if BFD_TRADITIONAL_FORMAT is set. */ static bfd_size_type add_to_stringtab - PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, boolean)); -static boolean emit_stringtab PARAMS ((bfd *, struct bfd_strtab_hash *)); + PARAMS ((bfd *, struct bfd_strtab_hash *, const char *, bfd_boolean)); +static bfd_boolean emit_stringtab PARAMS ((bfd *, struct bfd_strtab_hash *)); /* Get the index of a string in a strtab, adding it if it is not already present. */ @@ -1904,9 +1904,9 @@ add_to_stringtab (abfd, tab, str, copy) bfd *abfd; struct bfd_strtab_hash *tab; const char *str; - boolean copy; + bfd_boolean copy; { - boolean hash; + bfd_boolean hash; bfd_size_type index; /* An index of 0 always means the empty string. */ @@ -1915,9 +1915,9 @@ add_to_stringtab (abfd, tab, str, copy) /* Don't hash if BFD_TRADITIONAL_FORMAT is set, because SunOS dbx doesn't understand a hashed string table. */ - hash = true; + hash = TRUE; if ((abfd->flags & BFD_TRADITIONAL_FORMAT) != 0) - hash = false; + hash = FALSE; index = _bfd_stringtab_add (tab, str, hash, copy); @@ -1934,7 +1934,7 @@ add_to_stringtab (abfd, tab, str, copy) /* Write out a strtab. ABFD is already at the right location in the file. */ -static boolean +static bfd_boolean emit_stringtab (abfd, tab) register bfd *abfd; struct bfd_strtab_hash *tab; @@ -1945,12 +1945,12 @@ emit_stringtab (abfd, tab) H_PUT_32 (abfd, _bfd_stringtab_size (tab) + BYTES_IN_LONG, buffer); if (bfd_bwrite ((PTR) buffer, (bfd_size_type) BYTES_IN_LONG, abfd) != BYTES_IN_LONG) - return false; + return FALSE; return _bfd_stringtab_emit (abfd, tab); } -boolean +bfd_boolean NAME(aout,write_syms) (abfd) bfd *abfd; { @@ -1960,7 +1960,7 @@ NAME(aout,write_syms) (abfd) strtab = _bfd_stringtab_init (); if (strtab == NULL) - return false; + return FALSE; for (count = 0; count < bfd_get_symcount (abfd); count++) { @@ -1970,7 +1970,7 @@ NAME(aout,write_syms) (abfd) PUT_WORD (abfd, 0, nsp.e_unused); - indx = add_to_stringtab (abfd, strtab, g->name, false); + indx = add_to_stringtab (abfd, strtab, g->name, FALSE); if (indx == (bfd_size_type) -1) goto error_return; PUT_WORD (abfd, indx, nsp.e_strx); @@ -1999,11 +1999,11 @@ NAME(aout,write_syms) (abfd) _bfd_stringtab_free (strtab); - return true; + return TRUE; error_return: _bfd_stringtab_free (strtab); - return false; + return FALSE; } @@ -2190,7 +2190,7 @@ pdp11_aout_swap_reloc_in (abfd, bytes, c /* Read and swap the relocs for a section. */ -boolean +bfd_boolean NAME(aout,slurp_reloc_table) (abfd, asect, symbols) bfd *abfd; sec_ptr asect; @@ -2206,10 +2206,10 @@ NAME(aout,slurp_reloc_table) (abfd, asec arelent *cache_ptr; if (asect->relocation) - return true; + return TRUE; if (asect->flags & SEC_CONSTRUCTOR) - return true; + return TRUE; if (asect == obj_datasec (abfd)) reloc_size = exec_hdr(abfd)->a_drsize; @@ -2220,22 +2220,22 @@ NAME(aout,slurp_reloc_table) (abfd, asec else { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; each_size = obj_reloc_entry_size (abfd); relocs = bfd_malloc (reloc_size); if (relocs == NULL && reloc_size != 0) - return false; + return FALSE; if (bfd_bread (relocs, reloc_size, abfd) != reloc_size) { free (relocs); - return false; + return FALSE; } count = reloc_size / each_size; @@ -2258,7 +2258,7 @@ NAME(aout,slurp_reloc_table) (abfd, asec reloc_cache = (arelent *) bfd_zmalloc (count * sizeof (arelent)); if (reloc_cache == NULL && count != 0) - return false; + return FALSE; cache_ptr = reloc_cache; @@ -2291,12 +2291,12 @@ NAME(aout,slurp_reloc_table) (abfd, asec asect->relocation = reloc_cache; asect->reloc_count = cache_ptr - reloc_cache; - return true; + return TRUE; } /* Write out a relocation section into an object file. */ -boolean +bfd_boolean NAME(aout,squirt_out_relocs) (abfd, section) bfd *abfd; asection *section; @@ -2311,13 +2311,13 @@ NAME(aout,squirt_out_relocs) (abfd, sect relocation information, even if there is none. */ if ((count == 0 || section->orelocation == NULL) && ) - return true; + return TRUE; #endif natsize = bfd_get_section_size_before_reloc (section); native = (unsigned char *) bfd_zalloc (abfd, natsize); if (!native) - return false; + return FALSE; generic = section->orelocation; if (generic != NULL) @@ -2337,11 +2337,11 @@ NAME(aout,squirt_out_relocs) (abfd, sect if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize) { bfd_release (abfd, native); - return false; + return FALSE; } bfd_release (abfd, native); - return true; + return TRUE; } /* This is stupid. This function should be a boolean predicate */ @@ -2520,7 +2520,7 @@ NAME(aout,print_symbol) (abfd, afile, sy long NAME(aout,read_minisymbols) (abfd, dynamic, minisymsp, sizep) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; PTR *minisymsp; unsigned int *sizep; { @@ -2556,7 +2556,7 @@ NAME(aout,read_minisymbols) (abfd, dynam asymbol * NAME(aout,minisymbol_to_symbol) (abfd, dynamic, minisym, sym) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; const PTR minisym; asymbol *sym; { @@ -2574,7 +2574,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, d (bfd_size_type) 1, obj_aout_external_strings (abfd), obj_aout_external_string_size (abfd), - false))) + FALSE))) return NULL; return sym; @@ -2586,7 +2586,7 @@ NAME(aout,minisymbol_to_symbol) (abfd, d wanted location. */ -boolean +bfd_boolean NAME(aout,find_nearest_line) (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd; @@ -2738,7 +2738,7 @@ NAME(aout,find_nearest_line) buf = (char *) bfd_malloc ((bfd_size_type) filelen + funclen + 3); adata (abfd).line_buf = buf; if (buf == NULL) - return false; + return FALSE; } if (main_file_name != NULL) @@ -2776,13 +2776,13 @@ NAME(aout,find_nearest_line) *functionname_ptr = buf; } - return true; + return TRUE; } int NAME(aout,sizeof_headers) (abfd, execable) bfd *abfd; - boolean execable ATTRIBUTE_UNUSED; + bfd_boolean execable ATTRIBUTE_UNUSED; { return adata(abfd).exec_bytes_size; } @@ -2790,14 +2790,14 @@ NAME(aout,sizeof_headers) (abfd, execabl /* Free all information we have cached for this BFD. We can always read it again later if we need it. */ -boolean +bfd_boolean NAME(aout,bfd_free_cached_info) (abfd) bfd *abfd; { asection *o; if (bfd_get_format (abfd) != bfd_object) - return true; + return TRUE; #define BFCI_FREE(x) if (x != NULL) { free (x); x = NULL; } BFCI_FREE (obj_aout_symbols (abfd)); @@ -2814,19 +2814,19 @@ NAME(aout,bfd_free_cached_info) (abfd) BFCI_FREE (o->relocation); #undef BFCI_FREE - return true; + return TRUE; } /* a.out link code. */ -static boolean aout_link_add_object_symbols +static bfd_boolean aout_link_add_object_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean aout_link_check_archive_element - PARAMS ((bfd *, struct bfd_link_info *, boolean *)); -static boolean aout_link_free_symbols PARAMS ((bfd *)); -static boolean aout_link_check_ar_symbols - PARAMS ((bfd *, struct bfd_link_info *, boolean *pneeded)); -static boolean aout_link_add_symbols +static bfd_boolean aout_link_check_archive_element + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean aout_link_free_symbols PARAMS ((bfd *)); +static bfd_boolean aout_link_check_ar_symbols + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *pneeded)); +static bfd_boolean aout_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); /* Routine to create an entry in an a.out link hash table. */ @@ -2854,7 +2854,7 @@ NAME(aout,link_hash_newfunc) (entry, tab if (ret) { /* Set local fields. */ - ret->written = false; + ret->written = FALSE; ret->indx = -1; } @@ -2863,7 +2863,7 @@ NAME(aout,link_hash_newfunc) (entry, tab /* Initialize an a.out link hash table. */ -boolean +bfd_boolean NAME(aout,link_hash_table_init) (table, abfd, newfunc) struct aout_link_hash_table *table; bfd *abfd; @@ -2898,7 +2898,7 @@ NAME(aout,link_hash_table_create) (abfd) /* Given an a.out BFD, add symbols to the global hash table as appropriate. */ -boolean +bfd_boolean NAME(aout,link_add_symbols) (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -2912,27 +2912,27 @@ NAME(aout,link_add_symbols) (abfd, info) (abfd, info, aout_link_check_archive_element); default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } } /* Add symbols from an a.out object file. */ -static boolean +static bfd_boolean aout_link_add_object_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { if (! aout_get_external_symbols (abfd)) - return false; + return FALSE; if (! aout_link_add_symbols (abfd, info)) - return false; + return FALSE; if (! info->keep_memory) { if (! aout_link_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Check a single archive element to see if we need to include it in @@ -2940,36 +2940,36 @@ aout_link_add_object_symbols (abfd, info needed in the link or not. This is called from _bfd_generic_link_add_archive_symbols. */ -static boolean +static bfd_boolean aout_link_check_archive_element (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { if (! aout_get_external_symbols (abfd)) - return false; + return FALSE; if (! aout_link_check_ar_symbols (abfd, info, pneeded)) - return false; + return FALSE; if (*pneeded) { if (! aout_link_add_symbols (abfd, info)) - return false; + return FALSE; } if (! info->keep_memory || ! *pneeded) { if (! aout_link_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Free up the internal symbols read from an a.out file. */ -static boolean +static bfd_boolean aout_link_free_symbols (abfd) bfd *abfd; { @@ -2991,7 +2991,7 @@ aout_link_free_symbols (abfd) #endif obj_aout_external_strings (abfd) = (char *) NULL; } - return true; + return TRUE; } /* Look through the internal symbols to see if this object file should @@ -3001,17 +3001,17 @@ aout_link_free_symbols (abfd) known symbol but we do not include the object file in the link (unless there is some other reason to include it). */ -static boolean +static bfd_boolean aout_link_check_ar_symbols (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { register struct external_nlist *p; struct external_nlist *pend; char *strings; - *pneeded = false; + *pneeded = FALSE; /* Look through all the symbols. */ p = obj_aout_external_syms (abfd); @@ -3031,7 +3031,7 @@ aout_link_check_ar_symbols (abfd, info, continue; name = strings + GET_WORD (abfd, p->e_strx); - h = bfd_link_hash_lookup (info->hash, name, false, false, true); + h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); /* We are only interested in symbols that are currently undefined or common. */ @@ -3061,9 +3061,9 @@ aout_link_check_ar_symbols (abfd, info, seems a bit crazy to me, and I haven't implemented it. However, it might be correct. */ if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } if (type == (N_UNDF | N_EXT)) @@ -3090,9 +3090,9 @@ aout_link_check_ar_symbols (abfd, info, if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } /* Turn the current link symbol into a common symbol. It is already on the undefs list. */ @@ -3101,7 +3101,7 @@ aout_link_check_ar_symbols (abfd, info, bfd_hash_allocate (&info->hash->table, sizeof (struct bfd_link_hash_common_entry))); if (h->u.c.p == NULL) - return false; + return FALSE; h->u.c.size = value; @@ -3129,25 +3129,24 @@ aout_link_check_ar_symbols (abfd, info, } /* We do not need this object file. */ - return true; + return TRUE; } /* Add all symbols from an object file to the hash table. */ -static boolean +static bfd_boolean aout_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { - boolean (*add_one_symbol) PARAMS ((struct bfd_link_info *, bfd *, - const char *, flagword, asection *, - bfd_vma, const char *, boolean, - boolean, - struct bfd_link_hash_entry **)); + bfd_boolean (*add_one_symbol) + PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *, + bfd_vma, const char *, bfd_boolean, bfd_boolean, + struct bfd_link_hash_entry **)); struct external_nlist *syms; bfd_size_type sym_count; char *strings; - boolean copy; + bfd_boolean copy; struct aout_link_hash_entry **sym_hash; register struct external_nlist *p; struct external_nlist *pend; @@ -3156,15 +3155,15 @@ aout_link_add_symbols (abfd, info) sym_count = obj_aout_external_sym_count (abfd); strings = obj_aout_external_strings (abfd); if (info->keep_memory) - copy = false; + copy = FALSE; else - copy = true; + copy = TRUE; if (aout_backend_info (abfd)->add_dynamic_symbols != NULL) { if (! ((*aout_backend_info (abfd)->add_dynamic_symbols) (abfd, info, &syms, &sym_count, &strings))) - return false; + return FALSE; } /* We keep a list of the linker hash table entries that correspond @@ -3175,7 +3174,7 @@ aout_link_add_symbols (abfd, info) bfd_alloc (abfd, sym_count * sizeof (struct aout_link_hash_entry *))); if (sym_hash == NULL && sym_count != 0) - return false; + return FALSE; obj_aout_sym_hashes (abfd) = sym_hash; add_one_symbol = aout_backend_info (abfd)->add_one_symbol; @@ -3251,9 +3250,9 @@ aout_link_add_symbols (abfd, info) } if (! ((*add_one_symbol) - (info, abfd, name, flags, section, value, string, copy, false, + (info, abfd, name, flags, section, value, string, copy, FALSE, (struct bfd_link_hash_entry **) sym_hash))) - return false; + return FALSE; /* Restrict the maximum alignment of a common symbol based on the architecture, since a.out has no way to represent @@ -3276,7 +3275,7 @@ aout_link_add_symbols (abfd, info) } } - return true; + return TRUE; } /* A hash table used for header files with N_BINCL entries. */ @@ -3339,22 +3338,22 @@ struct aout_final_link_info static struct bfd_hash_entry *aout_link_includes_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean aout_link_input_bfd +static bfd_boolean aout_link_input_bfd PARAMS ((struct aout_final_link_info *, bfd *input_bfd)); -static boolean aout_link_write_symbols +static bfd_boolean aout_link_write_symbols PARAMS ((struct aout_final_link_info *, bfd *input_bfd)); -static boolean aout_link_write_other_symbol +static bfd_boolean aout_link_write_other_symbol PARAMS ((struct aout_link_hash_entry *, PTR)); -static boolean aout_link_input_section +static bfd_boolean aout_link_input_section PARAMS ((struct aout_final_link_info *, bfd *input_bfd, asection *input_section, file_ptr *reloff_ptr, bfd_size_type rel_size)); static INLINE asection *aout_reloc_type_to_section PARAMS ((bfd *, int)); -static boolean aout_link_reloc_link_order +static bfd_boolean aout_link_reloc_link_order PARAMS ((struct aout_final_link_info *, asection *, struct bfd_link_order *)); -static boolean pdp11_aout_link_input_section +static bfd_boolean pdp11_aout_link_input_section PARAMS ((struct aout_final_link_info *finfo, bfd *input_bfd, asection *input_section, @@ -3401,14 +3400,14 @@ aout_link_includes_newfunc (entry, table of bfd_link_order structures which list all the input sections for the output section. */ -boolean +bfd_boolean NAME(aout,final_link) (abfd, info, callback) bfd *abfd; struct bfd_link_info *info; void (*callback) PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *)); { struct aout_final_link_info aout_info; - boolean includes_hash_initialized = false; + bfd_boolean includes_hash_initialized = FALSE; register bfd *sub; bfd_size_type trsize, drsize; bfd_size_type max_contents_size; @@ -3418,7 +3417,7 @@ NAME(aout,final_link) (abfd, info, callb file_ptr text_end; register struct bfd_link_order *p; asection *o; - boolean have_link_order_relocs; + bfd_boolean have_link_order_relocs; if (info->shared) abfd->flags |= DYNAMIC; @@ -3434,7 +3433,7 @@ NAME(aout,final_link) (abfd, info, callb aout_link_includes_newfunc, 251)) goto error_return; - includes_hash_initialized = true; + includes_hash_initialized = TRUE; /* Figure out the largest section size. Also, if generating relocateable output, count the relocs. */ @@ -3557,7 +3556,7 @@ NAME(aout,final_link) (abfd, info, callb struct aout_link_hash_entry *h; h = aout_link_hash_lookup (aout_hash_table (info), "__DYNAMIC", - false, false, false); + FALSE, FALSE, FALSE); if (h != NULL) aout_link_write_other_symbol (h, &aout_info); } @@ -3584,7 +3583,7 @@ NAME(aout,final_link) (abfd, info, callb We use the output_has_begun field of the input BFDs to see whether we have already handled it. */ for (sub = info->input_bfds; sub != (bfd *) NULL; sub = sub->link_next) - sub->output_has_begun = false; + sub->output_has_begun = FALSE; /* Mark all sections which are to be included in the link. This will normally be every section. We need to do this so that we @@ -3595,11 +3594,11 @@ NAME(aout,final_link) (abfd, info, callb for (p = o->link_order_head; p != NULL; p = p->next) { if (p->type == bfd_indirect_link_order) - p->u.indirect.section->linker_mark = true; + p->u.indirect.section->linker_mark = TRUE; } } - have_link_order_relocs = false; + have_link_order_relocs = FALSE; for (o = abfd->sections; o != (asection *) NULL; o = o->next) { for (p = o->link_order_head; @@ -3617,14 +3616,14 @@ NAME(aout,final_link) (abfd, info, callb { if (! aout_link_input_bfd (&aout_info, input_bfd)) goto error_return; - input_bfd->output_has_begun = true; + input_bfd->output_has_begun = TRUE; } } else if (p->type == bfd_section_reloc_link_order || p->type == bfd_symbol_reloc_link_order) { /* These are handled below. */ - have_link_order_relocs = true; + have_link_order_relocs = TRUE; } else { @@ -3684,7 +3683,7 @@ NAME(aout,final_link) (abfd, info, callb if (includes_hash_initialized) { bfd_hash_table_free (&aout_info.includes.root); - includes_hash_initialized = false; + includes_hash_initialized = FALSE; } /* Finish up any dynamic linking we may be doing. */ @@ -3725,7 +3724,7 @@ NAME(aout,final_link) (abfd, info, callb goto error_return; } - return true; + return TRUE; error_return: if (aout_info.contents != NULL) @@ -3738,12 +3737,12 @@ NAME(aout,final_link) (abfd, info, callb free (aout_info.output_syms); if (includes_hash_initialized) bfd_hash_table_free (&aout_info.includes.root); - return false; + return FALSE; } /* Link an a.out input BFD into the output file. */ -static boolean +static bfd_boolean aout_link_input_bfd (finfo, input_bfd) struct aout_final_link_info *finfo; bfd *input_bfd; @@ -3761,16 +3760,16 @@ aout_link_input_bfd (finfo, input_bfd) } /* Get the symbols. We probably have them already, unless - finfo->info->keep_memory is false. */ + finfo->info->keep_memory is FALSE. */ if (! aout_get_external_symbols (input_bfd)) - return false; + return FALSE; sym_count = obj_aout_external_sym_count (input_bfd); /* Write out the symbols and get a map of the new indices. The map is placed into finfo->symbol_map. */ if (! aout_link_write_symbols (finfo, input_bfd)) - return false; + return FALSE; /* Relocate and write out the sections. These functions use the symbol map created by aout_link_write_symbols. The linker_mark @@ -3782,7 +3781,7 @@ aout_link_input_bfd (finfo, input_bfd) obj_textsec (input_bfd), &finfo->treloff, exec_hdr (input_bfd)->a_trsize)) - return false; + return FALSE; } if (obj_datasec (input_bfd)->linker_mark) { @@ -3790,7 +3789,7 @@ aout_link_input_bfd (finfo, input_bfd) obj_datasec (input_bfd), &finfo->dreloff, exec_hdr (input_bfd)->a_drsize)) - return false; + return FALSE; } /* If we are not keeping memory, we don't need the symbols any @@ -3799,16 +3798,16 @@ aout_link_input_bfd (finfo, input_bfd) if (! finfo->info->keep_memory) { if (! aout_link_free_symbols (input_bfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Adjust and write out the symbols for an a.out file. Set the new symbol indices into a symbol_map. */ -static boolean +static bfd_boolean aout_link_write_symbols (finfo, input_bfd) struct aout_final_link_info *finfo; bfd *input_bfd; @@ -3824,8 +3823,8 @@ aout_link_write_symbols (finfo, input_bf struct external_nlist *sym_end; struct aout_link_hash_entry **sym_hash; int *symbol_map; - boolean pass; - boolean skip_next; + bfd_boolean pass; + bfd_boolean skip_next; output_bfd = finfo->output_bfd; sym_count = obj_aout_external_sym_count (input_bfd); @@ -3839,14 +3838,14 @@ aout_link_write_symbols (finfo, input_bf if (strip != strip_all && (strip != strip_some || bfd_hash_lookup (finfo->info->keep_hash, input_bfd->filename, - false, false) != NULL) + FALSE, FALSE) != NULL) && discard != discard_all) { H_PUT_8 (output_bfd, N_TEXT, outsym->e_type); strtab_index = add_to_stringtab (output_bfd, finfo->strtab, - input_bfd->filename, false); + input_bfd->filename, FALSE); if (strtab_index == (bfd_size_type) -1) - return false; + return FALSE; PUT_WORD (output_bfd, strtab_index, outsym->e_strx); PUT_WORD (output_bfd, (bfd_get_section_vma (output_bfd, @@ -3857,8 +3856,8 @@ aout_link_write_symbols (finfo, input_bf ++outsym; } - pass = false; - skip_next = false; + pass = FALSE; + skip_next = FALSE; sym = obj_aout_external_syms (input_bfd); sym_end = sym + sym_count; sym_hash = obj_aout_sym_hashes (input_bfd); @@ -3869,10 +3868,10 @@ aout_link_write_symbols (finfo, input_bf const char *name; int type; struct aout_link_hash_entry *h; - boolean skip; + bfd_boolean skip; asection *symsec; bfd_vma val = 0; - boolean copy; + bfd_boolean copy; /* We set *symbol_map to 0 above for all symbols. If it has already been set to -1 for this symbol, it means that we are @@ -3896,14 +3895,14 @@ aout_link_write_symbols (finfo, input_bf /* Pass this symbol through. It is the target of an indirect or warning symbol. */ val = GET_WORD (input_bfd, sym->e_value); - pass = false; + pass = FALSE; } else if (skip_next) { /* Skip this symbol, which is the target of an indirect symbol that we have changed to no longer be an indirect symbol. */ - skip_next = false; + skip_next = FALSE; continue; } else @@ -3945,34 +3944,34 @@ aout_link_write_symbols (finfo, input_bf { if ((type & N_TYPE) == N_INDR || type == N_WARNING) - skip_next = true; + skip_next = TRUE; *symbol_map = h->indx; continue; } /* See if we are stripping this symbol. */ - skip = false; + skip = FALSE; switch (strip) { case strip_none: break; case strip_debugger: if ((type & N_STAB) != 0) - skip = true; + skip = TRUE; break; case strip_some: - if (bfd_hash_lookup (finfo->info->keep_hash, name, false, false) + if (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, FALSE) == NULL) - skip = true; + skip = TRUE; break; case strip_all: - skip = true; + skip = TRUE; break; } if (skip) { if (h != (struct aout_link_hash_entry *) NULL) - h->written = true; + h->written = TRUE; continue; } @@ -4001,7 +4000,7 @@ aout_link_write_symbols (finfo, input_bf the indirect symbol was defined, we output it with the correct definition so the debugger will understand it. */ - pass = true; + pass = TRUE; val = GET_WORD (input_bfd, sym->e_value); symsec = NULL; } @@ -4017,7 +4016,7 @@ aout_link_write_symbols (finfo, input_bf a case we do not want to output the next symbol, which is the target of the indirection. */ if ((type & N_TYPE) == N_INDR) - skip_next = true; + skip_next = TRUE; symsec = NULL; @@ -4109,7 +4108,7 @@ aout_link_write_symbols (finfo, input_bf it is a local symbol see if we should discard it. */ if (h != (struct aout_link_hash_entry *) NULL) { - h->written = true; + h->written = TRUE; h->indx = obj_aout_external_sym_count (output_bfd); } else if ((type & N_TYPE) != N_SETT @@ -4125,15 +4124,15 @@ aout_link_write_symbols (finfo, input_bf case discard_l: if ((type & N_STAB) == 0 && bfd_is_local_label_name (input_bfd, name)) - skip = true; + skip = TRUE; break; case discard_all: - skip = true; + skip = TRUE; break; } if (skip) { - pass = false; + pass = FALSE; continue; } } @@ -4191,9 +4190,9 @@ aout_link_write_symbols (finfo, input_bf symbol. */ copy = ! finfo->info->keep_memory; incl_entry = aout_link_includes_lookup (&finfo->includes, - name, true, copy); + name, TRUE, copy); if (incl_entry == NULL) - return false; + return FALSE; for (t = incl_entry->totals; t != NULL; t = t->next) if (t->total == val) break; @@ -4205,7 +4204,7 @@ aout_link_write_symbols (finfo, input_bf bfd_hash_allocate (&finfo->includes.root, sizeof *t)); if (t == NULL) - return false; + return FALSE; t->total = val; t->next = incl_entry->totals; incl_entry->totals = t; @@ -4248,7 +4247,7 @@ aout_link_write_symbols (finfo, input_bf /* Copy this symbol into the list of symbols we are going to write out. */ H_PUT_8 (output_bfd, type, outsym->e_type); - copy = false; + copy = FALSE; if (! finfo->info->keep_memory) { /* name points into a string table which we are going to @@ -4257,12 +4256,12 @@ aout_link_write_symbols (finfo, input_bf if (h != (struct aout_link_hash_entry *) NULL) name = h->root.root.string; else - copy = true; + copy = TRUE; } strtab_index = add_to_stringtab (output_bfd, finfo->strtab, name, copy); if (strtab_index == (bfd_size_type) -1) - return false; + return FALSE; PUT_WORD (output_bfd, strtab_index, outsym->e_strx); PUT_WORD (output_bfd, val, outsym->e_value); *symbol_map = obj_aout_external_sym_count (output_bfd); @@ -4276,21 +4275,21 @@ aout_link_write_symbols (finfo, input_bf bfd_size_type size; if (bfd_seek (output_bfd, finfo->symoff, SEEK_SET) != 0) - return false; + return FALSE; size = outsym - finfo->output_syms; size *= EXTERNAL_NLIST_SIZE; if (bfd_bwrite ((PTR) finfo->output_syms, size, output_bfd) != size) - return false; + return FALSE; finfo->symoff += size; } - return true; + return TRUE; } /* Write out a symbol that was not associated with an a.out input object. */ -static boolean +static bfd_boolean aout_link_write_other_symbol (h, data) struct aout_link_hash_entry *h; PTR data; @@ -4307,7 +4306,7 @@ aout_link_write_other_symbol (h, data) { h = (struct aout_link_hash_entry *) h->root.u.i.link; if (h->root.type == bfd_link_hash_new) - return true; + return TRUE; } output_bfd = finfo->output_bfd; @@ -4323,28 +4322,28 @@ aout_link_write_other_symbol (h, data) } if (h->written) - return true; + return TRUE; - h->written = true; + h->written = TRUE; /* An indx of -2 means the symbol must be written. */ if (h->indx != -2 && (finfo->info->strip == strip_all || (finfo->info->strip == strip_some && bfd_hash_lookup (finfo->info->keep_hash, h->root.root.string, - false, false) == NULL))) - return true; + FALSE, FALSE) == NULL))) + return TRUE; switch (h->root.type) { default: abort (); /* Avoid variable not initialized warnings. */ - return true; + return TRUE; case bfd_link_hash_new: /* This can happen for set symbols when sets are not being built. */ - return true; + return TRUE; case bfd_link_hash_undefined: type = N_UNDF | N_EXT; val = 0; @@ -4382,12 +4381,12 @@ aout_link_write_other_symbol (h, data) case bfd_link_hash_warning: /* FIXME: Ignore these for now. The circumstances under which they should be written out are not clear to me. */ - return true; + return TRUE; } H_PUT_8 (output_bfd, type, outsym.e_type); indx = add_to_stringtab (output_bfd, finfo->strtab, h->root.root.string, - false); + FALSE); if (indx == (bfd_size_type) -1) { /* FIXME: No way to handle errors. */ @@ -4408,12 +4407,12 @@ aout_link_write_other_symbol (h, data) h->indx = obj_aout_external_sym_count (output_bfd); ++obj_aout_external_sym_count (output_bfd); - return true; + return TRUE; } /* Link an a.out section into the output file. */ -static boolean +static bfd_boolean aout_link_input_section (finfo, input_bfd, input_section, reloff_ptr, rel_size) struct aout_final_link_info *finfo; @@ -4430,7 +4429,7 @@ aout_link_input_section (finfo, input_bf if (! bfd_get_section_contents (input_bfd, input_section, (PTR) finfo->contents, (file_ptr) 0, input_size)) - return false; + return FALSE; /* Read in the relocs if we haven't already done it. */ if (aout_section_data (input_section) != NULL @@ -4443,7 +4442,7 @@ aout_link_input_section (finfo, input_bf { if (bfd_seek (input_bfd, input_section->rel_filepos, SEEK_SET) != 0 || bfd_bread (relocs, rel_size, input_bfd) != rel_size) - return false; + return FALSE; } } @@ -4451,7 +4450,7 @@ aout_link_input_section (finfo, input_bf if (! pdp11_aout_link_input_section (finfo, input_bfd, input_section, (struct pdp11_aout_reloc_external *) relocs, rel_size, finfo->contents)) - return false; + return FALSE; /* Write out the section contents. */ if (! bfd_set_section_contents (finfo->output_bfd, @@ -4459,16 +4458,16 @@ aout_link_input_section (finfo, input_bf (PTR) finfo->contents, (file_ptr) input_section->output_offset, input_size)) - return false; + return FALSE; /* If we are producing relocateable output, the relocs were modified, and we now write them out. */ if (finfo->info->relocateable && rel_size > 0) { if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite (relocs, rel_size, finfo->output_bfd) != rel_size) - return false; + return FALSE; *reloff_ptr += rel_size; /* Assert that the relocs have not run into the symbols, and @@ -4480,7 +4479,7 @@ aout_link_input_section (finfo, input_bf <= obj_datasec (finfo->output_bfd)->rel_filepos))); } - return true; + return TRUE; } /* Get the section corresponding to a reloc index. */ @@ -4507,7 +4506,7 @@ aout_reloc_type_to_section (abfd, type) } } -static boolean +static bfd_boolean pdp11_aout_link_input_section (finfo, input_bfd, input_section, relocs, rel_size, contents) struct aout_final_link_info *finfo; @@ -4517,13 +4516,12 @@ pdp11_aout_link_input_section (finfo, in bfd_size_type rel_size; bfd_byte *contents; { - boolean (*check_dynamic_reloc) PARAMS ((struct bfd_link_info *, - bfd *, asection *, - struct aout_link_hash_entry *, - PTR, bfd_byte *, boolean *, - bfd_vma *)); + bfd_boolean (*check_dynamic_reloc) + PARAMS ((struct bfd_link_info *, bfd *, asection *, + struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *, + bfd_vma *)); bfd *output_bfd; - boolean relocateable; + bfd_boolean relocateable; struct external_nlist *syms; char *strings; struct aout_link_hash_entry **sym_hashes; @@ -4631,10 +4629,10 @@ pdp11_aout_link_input_section (finfo, in if (h->indx < 0) { h->indx = -2; - h->written = false; + h->written = FALSE; if (! aout_link_write_other_symbol (h, (PTR) finfo)) - return false; + return FALSE; } r_index = h->indx; } @@ -4647,7 +4645,7 @@ pdp11_aout_link_input_section (finfo, in if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, name, input_bfd, input_section, r_addr))) - return false; + return FALSE; r_index = 0; } } @@ -4703,11 +4701,11 @@ fprintf (stderr, "TODO: change the addre } else { - boolean hundef; + bfd_boolean hundef; /* We are generating an executable, and must do a full relocation. */ - hundef = false; + hundef = FALSE; if (r_extern) { h = sym_hashes[r_index]; @@ -4725,7 +4723,7 @@ fprintf (stderr, "TODO: change the addre relocation = 0; else { - hundef = true; + hundef = TRUE; relocation = 0; } } @@ -4743,12 +4741,12 @@ fprintf (stderr, "TODO: change the addre if (check_dynamic_reloc != NULL) { - boolean skip; + bfd_boolean skip; if (! ((*check_dynamic_reloc) (finfo->info, input_bfd, input_section, h, (PTR) rel, contents, &skip, &relocation))) - return false; + return FALSE; if (skip) continue; } @@ -4766,8 +4764,8 @@ fprintf (stderr, "TODO: change the addre name = strings + GET_WORD (input_bfd, syms[r_index].e_strx); if (! ((*finfo->info->callbacks->undefined_symbol) (finfo->info, name, input_bfd, input_section, - r_addr, true))) - return false; + r_addr, TRUE))) + return FALSE; } r = MY_final_link_relocate (howto, @@ -4802,19 +4800,19 @@ fprintf (stderr, "TODO: change the addre if (! ((*finfo->info->callbacks->reloc_overflow) (finfo->info, name, howto->name, (bfd_vma) 0, input_bfd, input_section, r_addr))) - return false; + return FALSE; } break; } } } - return true; + return TRUE; } /* Handle a link order which is supposed to generate a reloc. */ -static boolean +static bfd_boolean aout_link_reloc_link_order (finfo, o, p) struct aout_final_link_info *finfo; asection *o; @@ -4850,7 +4848,7 @@ aout_link_reloc_link_order (finfo, o, p) r_extern = 1; h = ((struct aout_link_hash_entry *) bfd_wrapped_link_hash_lookup (finfo->output_bfd, finfo->info, - pr->u.name, false, false, true)); + pr->u.name, FALSE, FALSE, TRUE)); if (h != (struct aout_link_hash_entry *) NULL && h->indx >= 0) r_index = h->indx; @@ -4861,9 +4859,9 @@ aout_link_reloc_link_order (finfo, o, p) here. I don't think that will ever matter for a global symbol. */ h->indx = -2; - h->written = false; + h->written = FALSE; if (! aout_link_write_other_symbol (h, (PTR) finfo)) - return false; + return FALSE; r_index = h->indx; } else @@ -4871,7 +4869,7 @@ aout_link_reloc_link_order (finfo, o, p) if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, pr->u.name, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) - return false; + return FALSE; r_index = 0; } } @@ -4880,7 +4878,7 @@ aout_link_reloc_link_order (finfo, o, p) if (howto == 0) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (o == obj_textsec (finfo->output_bfd)) @@ -4950,12 +4948,12 @@ aout_link_reloc_link_order (finfo, o, p) bfd_size_type size; bfd_reloc_status_type r; bfd_byte *buf; - boolean ok; + bfd_boolean ok; size = bfd_get_reloc_size (howto); buf = (bfd_byte *) bfd_zmalloc (size); if (buf == (bfd_byte *) NULL) - return false; + return FALSE; r = MY_relocate_contents (howto, finfo->output_bfd, pr->addend, buf); switch (r) @@ -4976,7 +4974,7 @@ aout_link_reloc_link_order (finfo, o, p) (asection *) NULL, (bfd_vma) 0))) { free (buf); - return false; + return FALSE; } break; } @@ -4986,13 +4984,13 @@ aout_link_reloc_link_order (finfo, o, p) size); free (buf); if (! ok) - return false; + return FALSE; } rel_size = obj_reloc_entry_size (finfo->output_bfd); if (bfd_seek (finfo->output_bfd, *reloff_ptr, SEEK_SET) != 0 || bfd_bwrite (rel_ptr, rel_size, finfo->output_bfd) != rel_size) - return false; + return FALSE; *reloff_ptr += rel_size; @@ -5003,7 +5001,7 @@ aout_link_reloc_link_order (finfo, o, p) || (*reloff_ptr <= obj_datasec (finfo->output_bfd)->rel_filepos))); - return true; + return TRUE; } /* end of modified aoutx.h */ diff -uprN binutils-2.13.90.0.16/bfd/pe-arm.c binutils-2.13.90.0.18/bfd/pe-arm.c --- binutils-2.13.90.0.16/bfd/pe-arm.c Fri Mar 9 11:16:04 2001 +++ binutils-2.13.90.0.18/bfd/pe-arm.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for ARM PECOFF files. - Copyright 1995, 1996, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 1996, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suit #endif #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define COFF_LONG_SECTION_NAMES #ifndef bfd_arm_allocate_interworking_sections diff -uprN binutils-2.13.90.0.16/bfd/pe-i386.c binutils-2.13.90.0.18/bfd/pe-i386.c --- binutils-2.13.90.0.16/bfd/pe-i386.c Tue Jun 18 21:41:58 2002 +++ binutils-2.13.90.0.18/bfd/pe-i386.c Mon Dec 16 12:22:52 2002 @@ -23,7 +23,7 @@ #define TARGET_SYM i386pe_vec #define TARGET_NAME "pe-i386" #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define TARGET_UNDERSCORE '_' #define COFF_LONG_SECTION_NAMES #define COFF_LONG_FILENAMES diff -uprN binutils-2.13.90.0.16/bfd/pe-mcore.c binutils-2.13.90.0.18/bfd/pe-mcore.c --- binutils-2.13.90.0.16/bfd/pe-mcore.c Thu Jun 3 11:01:54 1999 +++ binutils-2.13.90.0.18/bfd/pe-mcore.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for MCore PECOFF files. - Copyright 1999 Free Software Foundation, Inc. + Copyright 1999, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -28,7 +28,7 @@ Foundation, Inc., 59 Temple Place - Suit #endif #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define COFF_LONG_SECTION_NAMES #define MCORE_PE diff -uprN binutils-2.13.90.0.16/bfd/pe-mips.c binutils-2.13.90.0.18/bfd/pe-mips.c --- binutils-2.13.90.0.16/bfd/pe-mips.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/pe-mips.c Mon Dec 16 12:22:52 2002 @@ -1,6 +1,6 @@ /* BFD back-end for MIPS PE COFF files. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001 Free Software Foundation, Inc. + 2000, 2001, 2002 Free Software Foundation, Inc. Modified from coff-i386.c by DJ Delorie, dj@cygnus.com This file is part of BFD, the Binary File Descriptor library. @@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suit #define COFF_WITH_PE #define COFF_LONG_SECTION_NAMES -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #include "bfd.h" #include "sysdep.h" @@ -40,26 +40,27 @@ static bfd_reloc_status_type coff_mips_r static reloc_howto_type *coff_mips_rtype_to_howto PARAMS ((bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, - bfd_vma *)); #if 0 -static void mips_ecoff_swap_reloc_in PARAMS ((bfd *, PTR, - struct internal_reloc *)); -static void mips_ecoff_swap_reloc_out PARAMS ((bfd *, - const struct internal_reloc *, - PTR)); -static void mips_adjust_reloc_in PARAMS ((bfd *, - const struct internal_reloc *, - arelent *)); -static void mips_adjust_reloc_out PARAMS ((bfd *, const arelent *, - struct internal_reloc *)); -#endif - -static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *)); -static reloc_howto_type * coff_mips_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -static void mips_swap_reloc_in PARAMS ((bfd *, PTR, PTR)); -static unsigned int mips_swap_reloc_out PARAMS ((bfd *, PTR, PTR)); -static boolean coff_pe_mips_relocate_section +static void mips_ecoff_swap_reloc_in + PARAMS ((bfd *, PTR, struct internal_reloc *)); +static void mips_ecoff_swap_reloc_out + PARAMS ((bfd *, const struct internal_reloc *, PTR)); +static void mips_adjust_reloc_in + PARAMS ((bfd *, const struct internal_reloc *, arelent *)); +static void mips_adjust_reloc_out + PARAMS ((bfd *, const arelent *, struct internal_reloc *)); +#endif + +static bfd_boolean in_reloc_p + PARAMS ((bfd *, reloc_howto_type *)); +static reloc_howto_type * coff_mips_reloc_type_lookup + PARAMS ((bfd *, bfd_reloc_code_real_type)); +static void mips_swap_reloc_in + PARAMS ((bfd *, PTR, PTR)); +static unsigned int mips_swap_reloc_out + PARAMS ((bfd *, PTR, PTR)); +static bfd_boolean coff_pe_mips_relocate_section PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **)); @@ -175,10 +176,10 @@ coff_mips_reloc (abfd, reloc_entry, symb } #ifdef COFF_WITH_PE -/* Return true if this relocation should +/* Return TRUE if this relocation should appear in the output .reloc section. */ -static boolean +static bfd_boolean in_reloc_p (abfd, howto) bfd * abfd ATTRIBUTE_UNUSED; reloc_howto_type *howto; @@ -188,7 +189,7 @@ in_reloc_p (abfd, howto) #endif #ifndef PCRELOFFSET -#define PCRELOFFSET false +#define PCRELOFFSET FALSE #endif static reloc_howto_type howto_table[] = @@ -200,52 +201,52 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "IGNORE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 16 bit reference to a symbol, normally from a data section. */ HOWTO (MIPS_R_REFHALF, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "REFHALF", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit reference to a symbol, normally from a data section. */ HOWTO (MIPS_R_REFWORD, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "REFWORD", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 26 bit absolute jump address. */ HOWTO (MIPS_R_JMPADDR, /* type */ 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 26, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ /* This needs complex overflow @@ -253,10 +254,10 @@ static reloc_howto_type howto_table[] = bits must match the PC. */ coff_mips_reloc, /* special_function */ "JMPADDR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3ffffff, /* src_mask */ 0x3ffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The high 16 bits of a symbol value. Handled by the function mips_refhi_reloc. */ @@ -264,30 +265,30 @@ static reloc_howto_type howto_table[] = 16, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "REFHI", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* The low 16 bits of a symbol value. */ HOWTO (MIPS_R_REFLO, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "REFLO", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A reference to an offset from the gp register. Handled by the function mips_gprel_reloc. */ @@ -295,15 +296,15 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "GPREL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A reference to a literal using an offset from the gp register. Handled by the function mips_gprel_reloc. */ @@ -311,15 +312,15 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "LITERAL", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (8), EMPTY_HOWTO (9), @@ -351,30 +352,30 @@ static reloc_howto_type howto_table[] = 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "rva32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ EMPTY_HOWTO (35), EMPTY_HOWTO (36), HOWTO (MIPS_R_PAIR, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ coff_mips_reloc, /* special_function */ "PAIR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; /* Turn a howto into a reloc nunmber */ @@ -632,7 +633,7 @@ mips_swap_reloc_out (abfd, src, dst) #define coff_swap_reloc_out mips_swap_reloc_out #define NO_COFF_RELOCS -static boolean +static bfd_boolean coff_pe_mips_relocate_section (output_bfd, info, input_bfd, input_section, contents, relocs, syms, sections) @@ -646,12 +647,12 @@ coff_pe_mips_relocate_section (output_bf asection **sections; { bfd_vma gp; - boolean gp_undefined; + bfd_boolean gp_undefined; size_t adjust; struct internal_reloc *rel; struct internal_reloc *rel_end; unsigned int i; - boolean got_lo; + bfd_boolean got_lo; if (info->relocateable) { @@ -659,7 +660,7 @@ coff_pe_mips_relocate_section (output_bf %s: `ld -r' not supported with PE MIPS objects\n"), bfd_archive_filename (input_bfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } BFD_ASSERT (input_bfd->xvec->byteorder @@ -673,11 +674,11 @@ coff_pe_mips_relocate_section (output_bf gp = _bfd_get_gp_value (output_bfd); if (gp == 0) - gp_undefined = true; + gp_undefined = TRUE; else - gp_undefined = false; + gp_undefined = FALSE; - got_lo = false; + got_lo = FALSE; adjust = 0; @@ -719,7 +720,7 @@ coff_pe_mips_relocate_section (output_bf howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h, sym, &addend); if (howto == NULL) - return false; + return FALSE; /* If we are doing a relocateable link, then we can just ignore a PC relative reloc that is pcrel_offset. It will already @@ -771,8 +772,8 @@ coff_pe_mips_relocate_section (output_bf { if (! ((*info->callbacks->undefined_symbol) (info, h->root.root.string, input_bfd, input_section, - rel->r_vaddr - input_section->vma, true))) - return false; + rel->r_vaddr - input_section->vma, TRUE))) + return FALSE; } } @@ -820,7 +821,7 @@ coff_pe_mips_relocate_section (output_bf (*_bfd_error_handler) (_("%s: jump too far away\n"), bfd_archive_filename (input_bfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } tmp &= 0xfc000000; tmp |= (targ/4) & 0x3ffffff; @@ -847,7 +848,7 @@ coff_pe_mips_relocate_section (output_bf (*_bfd_error_handler) (_("%s: bad pair/reflo after refhi\n"), bfd_archive_filename (input_bfd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } tmp &= 0xffff0000; tmp |= (targ >> 16) & 0xffff; @@ -898,7 +899,7 @@ coff_pe_mips_relocate_section (output_bf } } - return true; + return TRUE; } #define coff_relocate_section coff_pe_mips_relocate_section @@ -909,15 +910,16 @@ coff_pe_mips_relocate_section (output_bf a leading dot for local labels, so if TARGET_UNDERSCORE is defined we treat all symbols starting with L as local. */ -static boolean coff_mips_is_local_label_name PARAMS ((bfd *, const char *)); +static bfd_boolean coff_mips_is_local_label_name + PARAMS ((bfd *, const char *)); -static boolean +static bfd_boolean coff_mips_is_local_label_name (abfd, name) bfd *abfd; const char *name; { if (name[0] == 'L') - return true; + return TRUE; return _bfd_coff_is_local_label_name (abfd, name); } diff -uprN binutils-2.13.90.0.16/bfd/pe-sh.c binutils-2.13.90.0.18/bfd/pe-sh.c --- binutils-2.13.90.0.16/bfd/pe-sh.c Fri Mar 9 11:16:05 2001 +++ binutils-2.13.90.0.18/bfd/pe-sh.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for SH PECOFF files. - Copyright 1995, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suit #define TARGET_SHL_SYM shlpe_vec #define TARGET_SHL_NAME "pe-shl" #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define TARGET_UNDERSCORE '_' #define COFF_LONG_SECTION_NAMES diff -uprN binutils-2.13.90.0.16/bfd/peXXigen.c binutils-2.13.90.0.18/bfd/peXXigen.c --- binutils-2.13.90.0.16/bfd/peXXigen.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/bfd/peXXigen.c Mon Dec 16 12:22:52 2002 @@ -91,10 +91,10 @@ static void add_data_entry PARAMS ((bfd *, struct internal_extra_pe_aouthdr *, int, char *, bfd_vma)); -static boolean pe_print_pdata PARAMS ((bfd *, PTR)); -static boolean pe_print_reloc PARAMS ((bfd *, PTR)); -static boolean pe_print_idata PARAMS ((bfd *, PTR)); -static boolean pe_print_edata PARAMS ((bfd *, PTR)); +static bfd_boolean pe_print_pdata PARAMS ((bfd *, PTR)); +static bfd_boolean pe_print_reloc PARAMS ((bfd *, PTR)); +static bfd_boolean pe_print_idata PARAMS ((bfd *, PTR)); +static bfd_boolean pe_print_edata PARAMS ((bfd *, PTR)); void @@ -1016,7 +1016,7 @@ static char * dir_names[IMAGE_NUMBEROF_D PPC- specific code. */ #endif -static boolean +static bfd_boolean pe_print_idata (abfd, vfile) bfd *abfd; PTR vfile; @@ -1048,12 +1048,12 @@ pe_print_idata (abfd, vfile) /* Maybe the extra header isn't there. Look for the section. */ section = bfd_get_section_by_name (abfd, ".idata"); if (section == NULL) - return true; + return TRUE; addr = section->vma; datasize = bfd_section_size (abfd, section); if (datasize == 0) - return true; + return TRUE; } else { @@ -1069,7 +1069,7 @@ pe_print_idata (abfd, vfile) { fprintf (file, _("\nThere is an import table, but the section containing it could not be found\n")); - return true; + return TRUE; } } @@ -1098,7 +1098,7 @@ pe_print_idata (abfd, vfile) amt = bfd_section_size (abfd, rel_section); data = (bfd_byte *) bfd_malloc (amt); if (data == NULL && amt != 0) - return false; + return FALSE; bfd_get_section_contents (abfd, rel_section, (PTR) data, (bfd_vma) 0, amt); @@ -1134,11 +1134,11 @@ pe_print_idata (abfd, vfile) amt = dataoff + datasize; data = (bfd_byte *) bfd_malloc (amt); if (data == NULL) - return false; + return FALSE; /* Read the whole section. Some of the fields might be before dataoff. */ if (! bfd_get_section_contents (abfd, section, (PTR) data, (bfd_vma) 0, amt)) - return false; + return FALSE; adj = section->vma - extra->ImageBase; @@ -1290,10 +1290,10 @@ pe_print_idata (abfd, vfile) free (data); - return true; + return TRUE; } -static boolean +static bfd_boolean pe_print_edata (abfd, vfile) bfd *abfd; PTR vfile; @@ -1332,12 +1332,12 @@ pe_print_edata (abfd, vfile) /* Maybe the extra header isn't there. Look for the section. */ section = bfd_get_section_by_name (abfd, ".edata"); if (section == NULL) - return true; + return TRUE; addr = section->vma; datasize = bfd_section_size (abfd, section); if (datasize == 0) - return true; + return TRUE; } else { @@ -1355,7 +1355,7 @@ pe_print_edata (abfd, vfile) { fprintf (file, _("\nThere is an export table, but the section containing it could not be found\n")); - return true; + return TRUE; } } @@ -1367,11 +1367,11 @@ pe_print_edata (abfd, vfile) data = (bfd_byte *) bfd_malloc (datasize); if (data == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, section, (PTR) data, (file_ptr) dataoff, datasize)) - return false; + return FALSE; /* Go get Export Directory Table. */ edt.export_flags = bfd_get_32 (abfd, data + 0); @@ -1508,7 +1508,7 @@ pe_print_edata (abfd, vfile) free (data); - return true; + return TRUE; } /* This really is architecture dependent. On IA-64, a .pdata entry @@ -1516,7 +1516,7 @@ pe_print_edata (abfd, vfile) specify the start and end address of the code range the entry covers and the address of the corresponding unwind info data. */ -static boolean +static bfd_boolean pe_print_pdata (abfd, vfile) bfd *abfd; PTR vfile; @@ -1537,7 +1537,7 @@ pe_print_pdata (abfd, vfile) if (section == NULL || coff_section_data (abfd, section) == NULL || pei_section_data (abfd, section) == NULL) - return true; + return TRUE; stop = pei_section_data (abfd, section)->virt_size; if ((stop % onaline) != 0) @@ -1558,11 +1558,11 @@ pe_print_pdata (abfd, vfile) datasize = bfd_section_size (abfd, section); if (datasize == 0) - return true; + return TRUE; data = (bfd_byte *) bfd_malloc (datasize); if (data == NULL && datasize != 0) - return false; + return FALSE; bfd_get_section_contents (abfd, section, (PTR) data, (bfd_vma) 0, datasize); @@ -1639,7 +1639,7 @@ pe_print_pdata (abfd, vfile) free (data); - return true; + return TRUE; } #define IMAGE_REL_BASED_HIGHADJ 4 @@ -1660,7 +1660,7 @@ static const char * const tbl[] = "UNKNOWN", /* MUST be last */ }; -static boolean +static bfd_boolean pe_print_reloc (abfd, vfile) bfd *abfd; PTR vfile; @@ -1673,10 +1673,10 @@ pe_print_reloc (abfd, vfile) bfd_size_type start, stop; if (section == NULL) - return true; + return TRUE; if (bfd_section_size (abfd, section) == 0) - return true; + return TRUE; fprintf (file, _("\n\nPE File Base Relocations (interpreted .reloc section contents)\n")); @@ -1684,7 +1684,7 @@ pe_print_reloc (abfd, vfile) datasize = bfd_section_size (abfd, section); data = (bfd_byte *) bfd_malloc (datasize); if (data == NULL && datasize != 0) - return false; + return FALSE; bfd_get_section_contents (abfd, section, (PTR) data, (bfd_vma) 0, datasize); @@ -1743,12 +1743,12 @@ pe_print_reloc (abfd, vfile) free (data); - return true; + return TRUE; } /* Print out the program headers. */ -boolean +bfd_boolean _bfd_XX_print_private_bfd_data_common (abfd, vfile) bfd *abfd; PTR vfile; @@ -1859,20 +1859,20 @@ _bfd_XX_print_private_bfd_data_common (a pe_print_pdata (abfd, vfile); pe_print_reloc (abfd, vfile); - return true; + return TRUE; } /* Copy any private info we understand from the input bfd to the output bfd. */ -boolean +bfd_boolean _bfd_XX_bfd_copy_private_bfd_data_common (ibfd, obfd) bfd *ibfd, *obfd; { /* One day we may try to grok other private data. */ if (ibfd->xvec->flavour != bfd_target_coff_flavour || obfd->xvec->flavour != bfd_target_coff_flavour) - return true; + return TRUE; pe_data (obfd)->pe_opthdr = pe_data (ibfd)->pe_opthdr; pe_data (obfd)->dll = pe_data (ibfd)->dll; @@ -1884,12 +1884,12 @@ _bfd_XX_bfd_copy_private_bfd_data_common pe_data (obfd)->pe_opthdr.DataDirectory[5].VirtualAddress = 0; pe_data (obfd)->pe_opthdr.DataDirectory[5].Size = 0; } - return true; + return TRUE; } /* Copy private section data. */ -boolean +bfd_boolean _bfd_XX_bfd_copy_private_section_data (ibfd, isec, obfd, osec) bfd *ibfd; asection *isec; @@ -1898,7 +1898,7 @@ _bfd_XX_bfd_copy_private_section_data (i { if (bfd_get_flavour (ibfd) != bfd_target_coff_flavour || bfd_get_flavour (obfd) != bfd_target_coff_flavour) - return true; + return TRUE; if (coff_section_data (ibfd, isec) != NULL && pei_section_data (ibfd, isec) != NULL) @@ -1908,7 +1908,7 @@ _bfd_XX_bfd_copy_private_section_data (i bfd_size_type amt = sizeof (struct coff_section_tdata); osec->used_by_bfd = (PTR) bfd_zalloc (obfd, amt); if (osec->used_by_bfd == NULL) - return false; + return FALSE; } if (pei_section_data (obfd, osec) == NULL) @@ -1916,7 +1916,7 @@ _bfd_XX_bfd_copy_private_section_data (i bfd_size_type amt = sizeof (struct pei_section_tdata); coff_section_data (obfd, osec)->tdata = (PTR) bfd_zalloc (obfd, amt); if (coff_section_data (obfd, osec)->tdata == NULL) - return false; + return FALSE; } pei_section_data (obfd, osec)->virt_size = @@ -1925,7 +1925,7 @@ _bfd_XX_bfd_copy_private_section_data (i pei_section_data (ibfd, isec)->pe_flags; } - return true; + return TRUE; } void @@ -1948,7 +1948,7 @@ _bfd_XX_get_symbol_info (abfd, symbol, r /* Handle the .idata section and other things that need symbol table access. */ -boolean +bfd_boolean _bfd_XXi_final_link_postscript (abfd, pfinfo) bfd *abfd; struct coff_final_link_info *pfinfo; @@ -1965,7 +1965,7 @@ _bfd_XXi_final_link_postscript (abfd, pf /* The import directory. This is the address of .idata$2, with size of .idata$2 + .idata$3. */ h1 = coff_link_hash_lookup (coff_hash_table (info), - ".idata$2", false, false, true); + ".idata$2", FALSE, FALSE, TRUE); if (h1 != NULL) { pe_data (abfd)->pe_opthdr.DataDirectory[1].VirtualAddress = @@ -1973,7 +1973,7 @@ _bfd_XXi_final_link_postscript (abfd, pf + h1->root.u.def.section->output_section->vma + h1->root.u.def.section->output_offset); h1 = coff_link_hash_lookup (coff_hash_table (info), - ".idata$4", false, false, true); + ".idata$4", FALSE, FALSE, TRUE); pe_data (abfd)->pe_opthdr.DataDirectory[1].Size = ((h1->root.u.def.value + h1->root.u.def.section->output_section->vma @@ -1983,13 +1983,13 @@ _bfd_XXi_final_link_postscript (abfd, pf /* The import address table. This is the size/address of .idata$5. */ h1 = coff_link_hash_lookup (coff_hash_table (info), - ".idata$5", false, false, true); + ".idata$5", FALSE, FALSE, TRUE); pe_data (abfd)->pe_opthdr.DataDirectory[12].VirtualAddress = (h1->root.u.def.value + h1->root.u.def.section->output_section->vma + h1->root.u.def.section->output_offset); h1 = coff_link_hash_lookup (coff_hash_table (info), - ".idata$6", false, false, true); + ".idata$6", FALSE, FALSE, TRUE); pe_data (abfd)->pe_opthdr.DataDirectory[12].Size = ((h1->root.u.def.value + h1->root.u.def.section->output_section->vma @@ -2000,5 +2000,5 @@ _bfd_XXi_final_link_postscript (abfd, pf /* If we couldn't find idata$2, we either have an excessively trivial program or are in DEEP trouble; we have to assume trivial program.... */ - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/pef.c binutils-2.13.90.0.18/bfd/pef.c --- binutils-2.13.90.0.16/bfd/pef.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/pef.c Mon Dec 16 12:22:52 2002 @@ -72,7 +72,7 @@ PARAMS ((bfd *abfd, PTR afile, asymbol * static void bfd_pef_convert_architecture PARAMS ((unsigned long architecture, enum bfd_architecture *type, unsigned long *subtype)); -static boolean bfd_pef_mkobject PARAMS ((bfd *abfd)); +static bfd_boolean bfd_pef_mkobject PARAMS ((bfd *abfd)); static int bfd_pef_parse_traceback_table PARAMS ((bfd *abfd, asection *section, unsigned char *buf, size_t len, size_t pos, asymbol *sym, FILE *file)); @@ -97,7 +97,7 @@ static long bfd_pef_get_symtab_upper_bou static long bfd_pef_get_symtab PARAMS ((bfd *, asymbol **)); static asymbol *bfd_pef_make_empty_symbol PARAMS ((bfd *)); static void bfd_pef_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -static int bfd_pef_sizeof_headers PARAMS ((bfd *, boolean)); +static int bfd_pef_sizeof_headers PARAMS ((bfd *, bfd_boolean)); static int bfd_pef_xlib_read_header PARAMS ((bfd *abfd, bfd_pef_xlib_header *header)); @@ -154,11 +154,11 @@ bfd_pef_convert_architecture (architectu *type = bfd_arch_m68k; } -static boolean +static bfd_boolean bfd_pef_mkobject (abfd) bfd *abfd ATTRIBUTE_UNUSED; { - return true; + return TRUE; } static int @@ -1094,7 +1094,7 @@ bfd_pef_get_symbol_info (abfd, symbol, r static int bfd_pef_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } diff -uprN binutils-2.13.90.0.16/bfd/pei-arm.c binutils-2.13.90.0.18/bfd/pei-arm.c --- binutils-2.13.90.0.16/bfd/pei-arm.c Fri Mar 9 11:38:00 2001 +++ binutils-2.13.90.0.18/bfd/pei-arm.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for arm PE IMAGE COFF files. - Copyright 1995, 1996, 1999 Free Software Foundation, Inc. + Copyright 1995, 1996, 1999, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suit #define COFF_IMAGE_WITH_PE #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define COFF_LONG_SECTION_NAMES #include "coff-arm.c" diff -uprN binutils-2.13.90.0.16/bfd/pei-i386.c binutils-2.13.90.0.18/bfd/pei-i386.c --- binutils-2.13.90.0.16/bfd/pei-i386.c Tue Jun 18 21:41:58 2002 +++ binutils-2.13.90.0.18/bfd/pei-i386.c Mon Dec 16 12:22:52 2002 @@ -24,7 +24,7 @@ #define TARGET_NAME "pei-i386" #define COFF_IMAGE_WITH_PE #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define TARGET_UNDERSCORE '_' #define COFF_LONG_SECTION_NAMES #define COFF_LONG_FILENAMES diff -uprN binutils-2.13.90.0.16/bfd/pei-mcore.c binutils-2.13.90.0.18/bfd/pei-mcore.c --- binutils-2.13.90.0.16/bfd/pei-mcore.c Mon Sep 13 09:36:54 1999 +++ binutils-2.13.90.0.18/bfd/pei-mcore.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for MCore PECOFF files. - Copyright 1999 Free Software Foundation, Inc. + Copyright 1999, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suit #define COFF_IMAGE_WITH_PE #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define COFF_LONG_SECTION_NAMES #define MCORE_PE diff -uprN binutils-2.13.90.0.16/bfd/pei-mips.c binutils-2.13.90.0.18/bfd/pei-mips.c --- binutils-2.13.90.0.16/bfd/pei-mips.c Fri Mar 9 11:16:05 2001 +++ binutils-2.13.90.0.18/bfd/pei-mips.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for MIPS PE IMAGE COFF files. - Copyright 1995, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suit #define TARGET_SYM mipslpei_vec #define TARGET_NAME "pei-mips" #define COFF_IMAGE_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define COFF_LONG_SECTION_NAMES #include "pe-mips.c" diff -uprN binutils-2.13.90.0.16/bfd/pei-sh.c binutils-2.13.90.0.18/bfd/pei-sh.c --- binutils-2.13.90.0.16/bfd/pei-sh.c Fri Mar 9 11:16:05 2001 +++ binutils-2.13.90.0.18/bfd/pei-sh.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for SH PE IMAGE COFF files. - Copyright 1995, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -25,7 +25,7 @@ Foundation, Inc., 59 Temple Place - Suit #define IMAGE_BASE NT_IMAGE_BASE #define COFF_IMAGE_WITH_PE #define COFF_WITH_PE -#define PCRELOFFSET true +#define PCRELOFFSET TRUE #define TARGET_UNDERSCORE '_' #define COFF_LONG_SECTION_NAMES diff -uprN binutils-2.13.90.0.16/bfd/peicode.h binutils-2.13.90.0.18/bfd/peicode.h --- binutils-2.13.90.0.16/bfd/peicode.h Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/bfd/peicode.h Mon Dec 16 12:22:52 2002 @@ -58,7 +58,7 @@ PE/PEI rearrangement (and code added): D #include "libpei.h" -static boolean (*pe_saved_coff_bfd_print_private_bfd_data) +static bfd_boolean (*pe_saved_coff_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)) = #ifndef coff_bfd_print_private_bfd_data NULL; @@ -67,10 +67,10 @@ static boolean (*pe_saved_coff_bfd_print #undef coff_bfd_print_private_bfd_data #endif -static boolean pe_print_private_bfd_data PARAMS ((bfd *, PTR)); +static bfd_boolean pe_print_private_bfd_data PARAMS ((bfd *, PTR)); #define coff_bfd_print_private_bfd_data pe_print_private_bfd_data -static boolean (*pe_saved_coff_bfd_copy_private_bfd_data) +static bfd_boolean (*pe_saved_coff_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)) = #ifndef coff_bfd_copy_private_bfd_data NULL; @@ -79,7 +79,7 @@ static boolean (*pe_saved_coff_bfd_copy_ #undef coff_bfd_copy_private_bfd_data #endif -static boolean pe_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *)); +static bfd_boolean pe_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *)); #define coff_bfd_copy_private_bfd_data pe_bfd_copy_private_bfd_data #define coff_mkobject pe_mkobject @@ -91,7 +91,7 @@ static unsigned int coff_swap_reloc_out #endif static void coff_swap_filehdr_in PARAMS ((bfd *, PTR, PTR)); static void coff_swap_scnhdr_in PARAMS ((bfd *, PTR, PTR)); -static boolean pe_mkobject PARAMS ((bfd *)); +static bfd_boolean pe_mkobject PARAMS ((bfd *)); static PTR pe_mkobject_hook PARAMS ((bfd *, PTR, PTR)); #ifdef COFF_IMAGE_WITH_PE @@ -139,7 +139,7 @@ static void pe_ILF_make_a_ static void pe_ILF_make_a_symbol PARAMS ((pe_ILF_vars *, const char *, const char *, asection_ptr, flagword)); static void pe_ILF_save_relocs PARAMS ((pe_ILF_vars *, asection_ptr)); static void pe_ILF_make_a_symbol_reloc PARAMS ((pe_ILF_vars *, bfd_vma, bfd_reloc_code_real_type, struct symbol_cache_entry **, unsigned int)); -static boolean pe_ILF_build_a_bfd PARAMS ((bfd *, unsigned int, bfd_byte *, bfd_byte *, unsigned int, unsigned int)); +static bfd_boolean pe_ILF_build_a_bfd PARAMS ((bfd *, unsigned int, bfd_byte *, bfd_byte *, unsigned int, unsigned int)); static const bfd_target * pe_ILF_object_p PARAMS ((bfd *)); static const bfd_target * pe_bfd_object_p PARAMS ((bfd *)); #endif /* COFF_IMAGE_WITH_PE */ @@ -273,7 +273,7 @@ coff_swap_scnhdr_in (abfd, ext, in) #endif } -static boolean +static bfd_boolean pe_mkobject (abfd) bfd * abfd; { @@ -283,7 +283,7 @@ pe_mkobject (abfd) abfd->tdata.pe_obj_data = (struct pe_tdata *) bfd_zalloc (abfd, amt); if (abfd->tdata.pe_obj_data == 0) - return false; + return FALSE; pe = pe_data (abfd); @@ -299,7 +299,7 @@ pe_mkobject (abfd) pe->target_subsystem = PEI_TARGET_SUBSYSTEM; #endif - return true; + return TRUE; } /* Create the COFF backend specific information. */ @@ -355,7 +355,7 @@ pe_mkobject_hook (abfd, filehdr, aouthdr return (PTR) pe; } -static boolean +static bfd_boolean pe_print_private_bfd_data (abfd, vfile) bfd *abfd; PTR vfile; @@ -363,7 +363,7 @@ pe_print_private_bfd_data (abfd, vfile) FILE *file = (FILE *) vfile; if (!_bfd_XX_print_private_bfd_data_common (abfd, vfile)) - return false; + return FALSE; if (pe_saved_coff_bfd_print_private_bfd_data != NULL) { @@ -372,23 +372,23 @@ pe_print_private_bfd_data (abfd, vfile) return pe_saved_coff_bfd_print_private_bfd_data (abfd, vfile); } - return true; + return TRUE; } /* Copy any private info we understand from the input bfd to the output bfd. */ -static boolean +static bfd_boolean pe_bfd_copy_private_bfd_data (ibfd, obfd) bfd *ibfd, *obfd; { if (!_bfd_XX_bfd_copy_private_bfd_data_common (ibfd, obfd)) - return false; + return FALSE; if (pe_saved_coff_bfd_copy_private_bfd_data) return pe_saved_coff_bfd_copy_private_bfd_data (ibfd, obfd); - return true; + return TRUE; } #define coff_bfd_copy_private_section_data \ @@ -518,7 +518,7 @@ pe_ILF_save_relocs (pe_ILF_vars * vars, abort (); coff_section_data (vars->abfd, sec)->relocs = vars->int_reltab; - coff_section_data (vars->abfd, sec)->keep_relocs = true; + coff_section_data (vars->abfd, sec)->keep_relocs = TRUE; sec->relocation = vars->reltab; sec->reloc_count = vars->relcount; @@ -610,7 +610,7 @@ pe_ILF_make_a_symbol (pe_ILF_vars * var #if 0 /* See comment above. */ sym->symbol.value = 0; sym->symbol.udata.i = 0; - sym->done_lineno = false; + sym->done_lineno = FALSE; sym->lineno = NULL; #endif @@ -753,7 +753,7 @@ static jump_table jtab[] = #endif /* Build a full BFD from the information supplied in a ILF object. */ -static boolean +static bfd_boolean pe_ILF_build_a_bfd (bfd * abfd, unsigned int magic, bfd_byte * symbol_name, @@ -784,12 +784,12 @@ pe_ILF_build_a_bfd (bfd * abfd /* XXX code yet to be written. */ _bfd_error_handler (_("%s: Unhandled import type; %x"), bfd_archive_filename (abfd), import_type); - return false; + return FALSE; default: _bfd_error_handler (_("%s: Unrecognised import type; %x"), bfd_archive_filename (abfd), import_type); - return false; + return FALSE; } switch (import_name_type) @@ -803,7 +803,7 @@ pe_ILF_build_a_bfd (bfd * abfd default: _bfd_error_handler (_("%s: Unrecognised import name type; %x"), bfd_archive_filename (abfd), import_name_type); - return false; + return FALSE; } /* Initialise local variables. @@ -815,7 +815,7 @@ pe_ILF_build_a_bfd (bfd * abfd so allocate all the space that we will need right now. */ ptr = bfd_zalloc (abfd, (bfd_size_type) ILF_DATA_SIZE); if (ptr == NULL) - return false; + return FALSE; /* Create a bfd_in_memory structure. */ vars.bim = (struct bfd_in_memory *) ptr; @@ -875,7 +875,7 @@ pe_ILF_build_a_bfd (bfd * abfd id4 = pe_ILF_make_a_section (& vars, ".idata$4", SIZEOF_IDATA4, 0); id5 = pe_ILF_make_a_section (& vars, ".idata$5", SIZEOF_IDATA5, 0); if (id4 == NULL || id5 == NULL) - return false; + return FALSE; /* Fill in the contents of these sections. */ if (import_name_type == IMPORT_ORDINAL) @@ -894,7 +894,7 @@ pe_ILF_build_a_bfd (bfd * abfd /* Create .idata$6 - the Hint Name Table. */ id6 = pe_ILF_make_a_section (& vars, ".idata$6", SIZEOF_IDATA6, 0); if (id6 == NULL) - return false; + return FALSE; /* If necessary, trim the import symbol name. */ symbol = symbol_name; @@ -950,7 +950,7 @@ pe_ILF_build_a_bfd (bfd * abfd /* Create the .text section. */ text = pe_ILF_make_a_section (& vars, ".text", jtab[i].size, SEC_CODE); if (text == NULL) - return false; + return FALSE; /* Copy in the jump code. */ memcpy (text->contents, jtab[i].data, jtab[i].size); @@ -999,10 +999,10 @@ pe_ILF_build_a_bfd (bfd * abfd if ( ! bfd_set_start_address (abfd, (bfd_vma) 0) || ! bfd_coff_set_arch_mach_hook (abfd, & internal_f)) - return false; + return FALSE; if (bfd_coff_mkobject_hook (abfd, (PTR) & internal_f, NULL) == NULL) - return false; + return FALSE; coff_data (abfd)->pe = 1; #ifdef THUMBPEMAGIC @@ -1053,17 +1053,17 @@ pe_ILF_build_a_bfd (bfd * abfd obj_raw_syment_count (abfd) = vars.sym_index; obj_coff_external_syms (abfd) = (PTR) vars.esym_table; - obj_coff_keep_syms (abfd) = true; + obj_coff_keep_syms (abfd) = TRUE; obj_convert (abfd) = vars.sym_table; obj_conv_table_size (abfd) = vars.sym_index; obj_coff_strings (abfd) = vars.string_table; - obj_coff_keep_strings (abfd) = true; + obj_coff_keep_strings (abfd) = TRUE; abfd->flags |= HAS_SYMS; - return true; + return TRUE; } /* We have detected a Image Library Format archive element. diff -uprN binutils-2.13.90.0.16/bfd/po/SRC-POTFILES.in binutils-2.13.90.0.18/bfd/po/SRC-POTFILES.in --- binutils-2.13.90.0.16/bfd/po/SRC-POTFILES.in Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/po/SRC-POTFILES.in Tue Jan 21 10:21:32 2003 @@ -80,6 +80,7 @@ cpu-i860.c cpu-i960.c cpu-ia64.c cpu-ip2k.c +cpu-iq2000.c cpu-m10200.c cpu-m10300.c cpu-m32r.c @@ -90,6 +91,7 @@ cpu-m88k.c cpu-mcore.c cpu-mips.c cpu-mmix.c +cpu-msp430.c cpu-ns32k.c cpu-openrisc.c cpu-or32.c @@ -143,6 +145,7 @@ elf32-i386.c elf32-i860.c elf32-i960.c elf32-ip2k.c +elf32-iq2000.c elf32-m32r.c elf32-m68hc11.c elf32-m68hc12.c @@ -150,6 +153,7 @@ elf32-m68k.c elf32-m88k.c elf32-mcore.c elf32-mips.c +elf32-msp430.c elf32-openrisc.c elf32-or32.c elf32-pj.c diff -uprN binutils-2.13.90.0.16/bfd/ppcboot.c binutils-2.13.90.0.18/bfd/ppcboot.c --- binutils-2.13.90.0.16/bfd/ppcboot.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/ppcboot.c Mon Dec 16 12:22:52 2002 @@ -87,27 +87,27 @@ typedef struct ppcboot_data { a start symbol, an end symbol, and an absolute length symbol. */ #define PPCBOOT_SYMS 3 -static boolean ppcboot_mkobject PARAMS ((bfd *)); +static bfd_boolean ppcboot_mkobject PARAMS ((bfd *)); static const bfd_target *ppcboot_object_p PARAMS ((bfd *)); -static boolean ppcboot_set_arch_mach +static bfd_boolean ppcboot_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -static boolean ppcboot_get_section_contents +static bfd_boolean ppcboot_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); static long ppcboot_get_symtab_upper_bound PARAMS ((bfd *)); static char *mangle_name PARAMS ((bfd *, char *)); static long ppcboot_get_symtab PARAMS ((bfd *, asymbol **)); static void ppcboot_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -static boolean ppcboot_set_section_contents +static bfd_boolean ppcboot_set_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static int ppcboot_sizeof_headers PARAMS ((bfd *, boolean)); -static boolean ppcboot_bfd_print_private_bfd_data PARAMS ((bfd *, PTR)); +static int ppcboot_sizeof_headers PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean ppcboot_bfd_print_private_bfd_data PARAMS ((bfd *, PTR)); #define ppcboot_set_tdata(abfd, ptr) ((abfd)->tdata.any = (PTR) (ptr)) #define ppcboot_get_tdata(abfd) ((ppcboot_data_t *) ((abfd)->tdata.any)) /* Create a ppcboot object. Invoked via bfd_set_format. */ -static boolean +static bfd_boolean ppcboot_mkobject (abfd) bfd *abfd; { @@ -117,12 +117,12 @@ ppcboot_mkobject (abfd) ppcboot_set_tdata (abfd, bfd_zalloc (abfd, amt)); } - return true; + return TRUE; } /* Set the architecture to PowerPC */ -static boolean +static bfd_boolean ppcboot_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; @@ -132,7 +132,7 @@ ppcboot_set_arch_mach (abfd, arch, machi arch = bfd_arch_powerpc; else if (arch != bfd_arch_powerpc) - return false; + return FALSE; return bfd_default_set_arch_mach (abfd, arch, machine); } @@ -229,7 +229,7 @@ ppcboot_object_p (abfd) /* Get contents of the only section. */ -static boolean +static bfd_boolean ppcboot_get_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section ATTRIBUTE_UNUSED; @@ -239,8 +239,8 @@ ppcboot_get_section_contents (abfd, sect { if (bfd_seek (abfd, offset + (file_ptr) sizeof (ppcboot_hdr_t), SEEK_SET) != 0 || bfd_bread (location, count, abfd) != count) - return false; - return true; + return FALSE; + return TRUE; } @@ -298,7 +298,7 @@ ppcboot_get_symtab (abfd, alocation) syms = (asymbol *) bfd_alloc (abfd, amt); if (syms == NULL) - return false; + return FALSE; /* Start symbol. */ syms[0].the_bfd = abfd; @@ -360,7 +360,7 @@ ppcboot_get_symbol_info (ignore_abfd, sy /* Write section contents of a ppcboot file. */ -static boolean +static bfd_boolean ppcboot_set_section_contents (abfd, sec, data, offset, size) bfd *abfd; asection *sec; @@ -384,7 +384,7 @@ ppcboot_set_section_contents (abfd, sec, for (s = abfd->sections; s != NULL; s = s->next) s->filepos = s->vma - low; - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; } return _bfd_generic_set_section_contents (abfd, sec, data, offset, size); @@ -394,7 +394,7 @@ ppcboot_set_section_contents (abfd, sec, static int ppcboot_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return sizeof (ppcboot_hdr_t); } @@ -402,7 +402,7 @@ ppcboot_sizeof_headers (abfd, exec) /* Print out the program headers. */ -static boolean +static bfd_boolean ppcboot_bfd_print_private_bfd_data (abfd, farg) bfd *abfd; PTR farg; @@ -460,7 +460,7 @@ ppcboot_bfd_print_private_bfd_data (abfd } fprintf (f, "\n"); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/ptrace-core.c binutils-2.13.90.0.18/bfd/ptrace-core.c --- binutils-2.13.90.0.16/bfd/ptrace-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/ptrace-core.c Mon Dec 16 12:22:52 2002 @@ -49,11 +49,11 @@ struct trad_core_struct /* forward declarations */ const bfd_target *ptrace_unix_core_file_p PARAMS ((bfd *abfd)); -char * ptrace_unix_core_file_failing_command PARAMS ((bfd *abfd)); -int ptrace_unix_core_file_failing_signal PARAMS ((bfd *abfd)); -boolean ptrace_unix_core_file_matches_executable_p - PARAMS ((bfd *core_bfd, bfd *exec_bfd)); -static void swap_abort PARAMS ((void)); +char * ptrace_unix_core_file_failing_command PARAMS ((bfd *abfd)); +int ptrace_unix_core_file_failing_signal PARAMS ((bfd *abfd)); +bfd_boolean ptrace_unix_core_file_matches_executable_p + PARAMS ((bfd *core_bfd, bfd *exec_bfd)); +static void swap_abort PARAMS ((void)); /* ARGSUSED */ const bfd_target * @@ -155,13 +155,13 @@ ptrace_unix_core_file_failing_signal (ab } /* ARGSUSED */ -boolean +bfd_boolean ptrace_unix_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd, *exec_bfd; { /* FIXME: Use pt_timdat field of the ptrace_user structure to match the date of the executable */ - return true; + return TRUE; } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/reloc.c binutils-2.13.90.0.18/bfd/reloc.c --- binutils-2.13.90.0.16/bfd/reloc.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/reloc.c Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* BFD support for handling relocation entries. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -306,7 +306,7 @@ CODE_FRAGMENT . data section of the addend. The relocation function will . subtract from the relocation value the address of the location . being relocated. *} -. boolean pc_relative; +. bfd_boolean pc_relative; . . {* The bit position of the reloc value in the destination. . The relocated value is left shifted by this amount. *} @@ -342,21 +342,20 @@ CODE_FRAGMENT . USE_REL targets set this field to TRUE. Why this is so is peculiar . to each particular target. For relocs that aren't used in partial . links (e.g. GOT stuff) it doesn't matter what this is set to. *} -. boolean partial_inplace; +. bfd_boolean partial_inplace; . -. {* The src_mask selects which parts of the read in data -. are to be used in the relocation sum. E.g., if this was an 8 bit -. byte of data which we read and relocated, this would be -. 0x000000ff. When we have relocs which have an addend, such as -. sun4 extended relocs, the value in the offset part of a -. relocating field is garbage so we never use it. In this case -. the mask would be 0x00000000. *} +. {* src_mask selects the part of the instruction (or data) to be used +. in the relocation sum. If the target relocations don't have an +. addend in the reloc, eg. ELF USE_REL, src_mask will normally equal +. dst_mask to extract the addend from the section contents. If +. relocations do have an addend in the reloc, eg. ELF USE_RELA, this +. field should be zero. Non-zero values for ELF USE_RELA targets are +. bogus as in those cases the value in the dst_mask part of the +. section contents should be treated as garbage. *} . bfd_vma src_mask; . -. {* The dst_mask selects which parts of the instruction are replaced -. into the instruction. In most cases src_mask == dst_mask, -. except in the above special case, where dst_mask would be -. 0x000000ff, and src_mask would be 0x00000000. *} +. {* dst_mask selects which parts of the instruction (or data) are +. replaced with a relocated value. *} . bfd_vma dst_mask; . . {* When some formats create PC relative instructions, they leave @@ -365,7 +364,7 @@ CODE_FRAGMENT . be made just by adding in an ordinary offset (e.g., sun3 a.out). . Some formats leave the displacement part of an instruction . empty (e.g., m88k bcs); this flag signals the fact. *} -. boolean pcrel_offset; +. bfd_boolean pcrel_offset; .}; . */ @@ -386,15 +385,15 @@ DESCRIPTION .#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ . HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ -. NAME, false, 0, 0, IN) +. NAME, FALSE, 0, 0, IN) . DESCRIPTION This is used to fill in an empty howto entry in an array. .#define EMPTY_HOWTO(C) \ -. HOWTO ((C), 0, 0, 0, false, 0, complain_overflow_dont, NULL, \ -. NULL, false, 0, 0, false) +. HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ +. NULL, FALSE, 0, 0, FALSE) . DESCRIPTION @@ -672,16 +671,16 @@ bfd_perform_relocation (abfd, reloc_entr of the location within the section. Some targets arrange for the addend to be the negative of the position of the location within the section; for example, i386-aout does this. For - i386-aout, pcrel_offset is false. Some other targets do not + i386-aout, pcrel_offset is FALSE. Some other targets do not include the position of the location; for example, m88kbcs, - or ELF. For those targets, pcrel_offset is true. + or ELF. For those targets, pcrel_offset is TRUE. If we are producing relocateable output, then we must ensure that this reloc will be correctly computed when the final - relocation is done. If pcrel_offset is false we want to wind + relocation is done. If pcrel_offset is FALSE we want to wind up with the negative of the location within the section, which means we must adjust the existing addend by the change - in the location within the section. If pcrel_offset is true + in the location within the section. If pcrel_offset is TRUE we do not want to adjust the existing addend at all. FIXME: This seems logical to me, but for the case of @@ -1064,16 +1063,16 @@ bfd_install_relocation (abfd, reloc_entr of the location within the section. Some targets arrange for the addend to be the negative of the position of the location within the section; for example, i386-aout does this. For - i386-aout, pcrel_offset is false. Some other targets do not + i386-aout, pcrel_offset is FALSE. Some other targets do not include the position of the location; for example, m88kbcs, - or ELF. For those targets, pcrel_offset is true. + or ELF. For those targets, pcrel_offset is TRUE. If we are producing relocateable output, then we must ensure that this reloc will be correctly computed when the final - relocation is done. If pcrel_offset is false we want to wind + relocation is done. If pcrel_offset is FALSE we want to wind up with the negative of the location within the section, which means we must adjust the existing addend by the change - in the location within the section. If pcrel_offset is true + in the location within the section. If pcrel_offset is TRUE we do not want to adjust the existing addend at all. FIXME: This seems logical to me, but for the case of @@ -1375,9 +1374,9 @@ _bfd_final_link_relocate (howto, input_b location we are relocating. Some targets (e.g., i386-aout) arrange for the contents of the section to be the negative of the offset of the location within the section; for such targets - pcrel_offset is false. Other targets (e.g., m88kbcs or ELF) + pcrel_offset is FALSE. Other targets (e.g., m88kbcs or ELF) simply leave the contents of the section as zero; for such - targets pcrel_offset is true. If pcrel_offset is false we do not + targets pcrel_offset is TRUE. If pcrel_offset is FALSE we do not need to subtract out the offset of the location within the section (which is just ADDRESS). */ if (howto->pc_relative) @@ -1960,7 +1959,7 @@ ENUM BFD_RELOC_ALPHA_BRSGP ENUMDOC Like BFD_RELOC_23_PCREL_S2, except that the source and target must - share a common GP, and the target address is adjusted for + share a common GP, and the target address is adjusted for STO_ALPHA_STD_GPLOAD. ENUM @@ -3170,6 +3169,42 @@ ENUM BFD_RELOC_390_GOTENT ENUMDOC 32 bit rel. offset to GOT entry. +ENUM + BFD_RELOC_390_GOTOFF64 +ENUMDOC + 64 bit offset to GOT. +ENUM + BFD_RELOC_390_GOTPLT12 +ENUMDOC + 12-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLT16 +ENUMDOC + 16-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLT32 +ENUMDOC + 32-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLT64 +ENUMDOC + 64-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLTENT +ENUMDOC + 32-bit rel. offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_PLTOFF16 +ENUMDOC + 16-bit rel. offset from the GOT to a PLT entry. +ENUM + BFD_RELOC_390_PLTOFF32 +ENUMDOC + 32-bit rel. offset from the GOT to a PLT entry. +ENUM + BFD_RELOC_390_PLTOFF64 +ENUMDOC + 64-bit rel. offset from the GOT to a PLT entry. ENUM BFD_RELOC_IP2K_FR9 @@ -3598,6 +3633,8 @@ ENUMDOC ENUM BFD_RELOC_XSTORMY16_REL_12 ENUMX + BFD_RELOC_XSTORMY16_12 +ENUMX BFD_RELOC_XSTORMY16_24 ENUMX BFD_RELOC_XSTORMY16_FPTR16 @@ -3612,6 +3649,28 @@ ENUMX BFD_RELOC_VAX_RELATIVE ENUMDOC Relocations used by VAX ELF. + +ENUM + BFD_RELOC_MSP430_10_PCREL +ENUMX + BFD_RELOC_MSP430_16_PCREL +ENUMX + BFD_RELOC_MSP430_16 +ENUMX + BFD_RELOC_MSP430_16_PCREL_BYTE +ENUMX + BFD_RELOC_MSP430_16_BYTE +ENUMDOC + msp430 specific relocation codes + +ENUM + BFD_RELOC_IQ2000_OFFSET_16 +ENUMX + BFD_RELOC_IQ2000_OFFSET_21 +ENUMX + BFD_RELOC_IQ2000_UHI16 +ENUMDOC + IQ2000 Relocations. ENDSENUM BFD_RELOC_UNUSED @@ -3644,7 +3703,7 @@ bfd_reloc_type_lookup (abfd, code) } static reloc_howto_type bfd_howto_32 = -HOWTO (0, 00, 2, 32, false, 0, complain_overflow_bitfield, 0, "VRT32", false, 0xffffffff, 0xffffffff, true); +HOWTO (0, 00, 2, 32, FALSE, 0, complain_overflow_bitfield, 0, "VRT32", FALSE, 0xffffffff, 0xffffffff, TRUE); /* INTERNAL_FUNCTION @@ -3712,26 +3771,26 @@ INTERNAL_FUNCTION bfd_generic_relax_section SYNOPSIS - boolean bfd_generic_relax_section + bfd_boolean bfd_generic_relax_section (bfd *abfd, asection *section, struct bfd_link_info *, - boolean *); + bfd_boolean *); DESCRIPTION Provides default handling for relaxing for back ends which don't do relaxing -- i.e., does nothing. */ -boolean +bfd_boolean bfd_generic_relax_section (abfd, section, link_info, again) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - boolean *again; + bfd_boolean *again; { - *again = false; - return true; + *again = FALSE; + return TRUE; } /* @@ -3739,7 +3798,7 @@ INTERNAL_FUNCTION bfd_generic_gc_sections SYNOPSIS - boolean bfd_generic_gc_sections + bfd_boolean bfd_generic_gc_sections (bfd *, struct bfd_link_info *); DESCRIPTION @@ -3747,12 +3806,12 @@ DESCRIPTION don't do section gc -- i.e., does nothing. */ -boolean +bfd_boolean bfd_generic_gc_sections (abfd, link_info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* @@ -3760,7 +3819,7 @@ INTERNAL_FUNCTION bfd_generic_merge_sections SYNOPSIS - boolean bfd_generic_merge_sections + bfd_boolean bfd_generic_merge_sections (bfd *, struct bfd_link_info *); DESCRIPTION @@ -3768,12 +3827,12 @@ DESCRIPTION which don't have SEC_MERGE support -- i.e., does nothing. */ -boolean +bfd_boolean bfd_generic_merge_sections (abfd, link_info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* @@ -3786,7 +3845,7 @@ SYNOPSIS struct bfd_link_info *link_info, struct bfd_link_order *link_order, bfd_byte *data, - boolean relocateable, + bfd_boolean relocateable, asymbol **symbols); DESCRIPTION @@ -3802,7 +3861,7 @@ bfd_generic_get_relocated_section_conten struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { /* Get enough memory to hold the stuff. */ @@ -3830,7 +3889,7 @@ bfd_generic_get_relocated_section_conten /* We're not relaxing the section, so just copy the size info. */ input_section->_cooked_size = input_section->_raw_size; - input_section->reloc_done = (unsigned int) true; + input_section->reloc_done = TRUE; reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, @@ -3871,7 +3930,7 @@ bfd_generic_get_relocated_section_conten if (!((*link_info->callbacks->undefined_symbol) (link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr), input_bfd, input_section, (*parent)->address, - true))) + TRUE))) goto error_return; break; case bfd_reloc_dangerous: diff -uprN binutils-2.13.90.0.16/bfd/reloc16.c binutils-2.13.90.0.18/bfd/reloc16.c --- binutils-2.13.90.0.16/bfd/reloc16.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/reloc16.c Mon Dec 16 12:22:52 2002 @@ -1,6 +1,6 @@ /* 8 and 16 bit COFF relocation functions, for BFD. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001 - Free Software Foundation, Inc. + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, + 2002 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suit BFD generic relocs. They should store the relocs in some location where coff_link_input_bfd can find them (and coff_link_input_bfd should be changed to use this location rather than rereading the - file) (unless info->keep_memory is false, in which case they should + file) (unless info->keep_memory is FALSE, in which case they should free up the relocs after dealing with them). */ #include "bfd.h" @@ -64,7 +64,7 @@ bfd_coff_reloc16_get_value (reloc, link_ the generic symbols. */ h = bfd_wrapped_link_hash_lookup (input_section->owner, link_info, bfd_asymbol_name (symbol), - false, false, true); + FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined || h->type == bfd_link_hash_defweak)) @@ -79,7 +79,7 @@ bfd_coff_reloc16_get_value (reloc, link_ if (!((*link_info->callbacks->undefined_symbol) (link_info, bfd_asymbol_name (symbol), input_section->owner, input_section, reloc->address, - true))) + TRUE))) abort (); value = 0; } @@ -136,12 +136,12 @@ bfd_perform_slip (abfd, slip, input_sect } } -boolean +bfd_boolean bfd_coff_reloc16_relax_section (abfd, input_section, link_info, again) bfd *abfd; asection *input_section; struct bfd_link_info *link_info; - boolean *again; + bfd_boolean *again; { /* Get enough memory to hold the stuff. */ bfd *input_bfd = input_section->owner; @@ -153,14 +153,14 @@ bfd_coff_reloc16_relax_section (abfd, in /* We only do global relaxation once. It is not safe to do it multiple times (see discussion of the "shrinks" array below). */ - *again = false; + *again = FALSE; if (reloc_size < 0) - return false; + return FALSE; reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); if (!reloc_vector && reloc_size > 0) - return false; + return FALSE; /* Get the relocs and think about them. */ reloc_count = @@ -169,7 +169,7 @@ bfd_coff_reloc16_relax_section (abfd, in if (reloc_count < 0) { free (reloc_vector); - return false; + return FALSE; } /* The reloc16.c and related relaxing code is very simple, the price @@ -193,7 +193,7 @@ bfd_coff_reloc16_relax_section (abfd, in bfd_size_type amt; /* Allocate and initialize the shrinks array for this section. - The last element is used as an accumlator of shrinks. */ + The last element is used as an accumlator of shrinks. */ amt = reloc_count + 1; amt *= sizeof (unsigned); shrinks = (unsigned *) bfd_zmalloc (amt); @@ -232,7 +232,7 @@ bfd_coff_reloc16_relax_section (abfd, in input_section->_cooked_size -= shrink; free ((char *) reloc_vector); - return true; + return TRUE; } bfd_byte * @@ -246,7 +246,7 @@ bfd_coff_reloc16_get_relocated_section_c struct bfd_link_info *link_info; struct bfd_link_order *link_order; bfd_byte *data; - boolean relocateable; + bfd_boolean relocateable; asymbol **symbols; { /* Get enough memory to hold the stuff. */ diff -uprN binutils-2.13.90.0.16/bfd/riscix.c binutils-2.13.90.0.18/bfd/riscix.c --- binutils-2.13.90.0.16/bfd/riscix.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/riscix.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* BFD back-end for RISC iX (Acorn, arm) binaries. - Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001 + Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) @@ -116,27 +116,27 @@ Foundation, Inc., 59 Temple Place - Suit if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0 \ || bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, \ abfd) != EXEC_BYTES_SIZE) \ - return false; \ + return FALSE; \ /* Now write out reloc info, followed by syms and strings */ \ \ if (bfd_get_outsymbols (abfd) != (asymbol **) NULL \ && bfd_get_symcount (abfd) != 0) \ { \ if (bfd_seek (abfd, (file_ptr) (N_SYMOFF(*execp)), SEEK_SET) != 0) \ - return false; \ + return FALSE; \ \ - if (! NAME(aout,write_syms) (abfd)) return false; \ + if (! NAME(aout,write_syms) (abfd)) return FALSE; \ \ if (bfd_seek (abfd, (file_ptr) (N_TRELOFF(*execp)), SEEK_SET) != 0) \ - return false; \ + return FALSE; \ \ if (! riscix_squirt_out_relocs (abfd, obj_textsec (abfd))) \ - return false; \ + return FALSE; \ if (bfd_seek (abfd, (file_ptr) (N_DRELOFF(*execp)), SEEK_SET) != 0) \ - return false; \ + return FALSE; \ \ if (!NAME(aout,squirt_out_relocs) (abfd, obj_datasec (abfd))) \ - return false; \ + return FALSE; \ } \ } @@ -159,7 +159,7 @@ riscix_reloc_type_lookup PARAMS ((bfd *, void riscix_swap_std_reloc_out PARAMS ((bfd *, arelent *, struct reloc_std_external *)); -boolean +bfd_boolean riscix_squirt_out_relocs PARAMS ((bfd *, asection *)); long @@ -171,17 +171,17 @@ riscix_some_aout_object_p PARAMS ((bfd * static reloc_howto_type riscix_std_reloc_howto[] = { /* type rs size bsz pcrel bitpos ovrf sf name part_inpl readmask setmask pcdone */ - HOWTO( 0, 0, 0, 8, false, 0, complain_overflow_bitfield,0,"8", true, 0x000000ff,0x000000ff, false), - HOWTO( 1, 0, 1, 16, false, 0, complain_overflow_bitfield,0,"16", true, 0x0000ffff,0x0000ffff, false), - HOWTO( 2, 0, 2, 32, false, 0, complain_overflow_bitfield,0,"32", true, 0xffffffff,0xffffffff, false), - HOWTO( 3, 2, 3, 26, true, 0, complain_overflow_signed, riscix_fix_pcrel_26 , "ARM26", true, 0x00ffffff,0x00ffffff, false), - HOWTO( 4, 0, 0, 8, true, 0, complain_overflow_signed, 0,"DISP8", true, 0x000000ff,0x000000ff, true), - HOWTO( 5, 0, 1, 16, true, 0, complain_overflow_signed, 0,"DISP16", true, 0x0000ffff,0x0000ffff, true), - HOWTO( 6, 0, 2, 32, true, 0, complain_overflow_signed, 0,"DISP32", true, 0xffffffff,0xffffffff, true), - HOWTO( 7, 2, 3, 26, false, 0, complain_overflow_signed, riscix_fix_pcrel_26_done, "ARM26D",true,0x00ffffff,0x00ffffff, false), + HOWTO( 0, 0, 0, 8, FALSE, 0, complain_overflow_bitfield,0,"8", TRUE, 0x000000ff,0x000000ff, FALSE), + HOWTO( 1, 0, 1, 16, FALSE, 0, complain_overflow_bitfield,0,"16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO( 2, 0, 2, 32, FALSE, 0, complain_overflow_bitfield,0,"32", TRUE, 0xffffffff,0xffffffff, FALSE), + HOWTO( 3, 2, 3, 26, TRUE, 0, complain_overflow_signed, riscix_fix_pcrel_26 , "ARM26", TRUE, 0x00ffffff,0x00ffffff, FALSE), + HOWTO( 4, 0, 0, 8, TRUE, 0, complain_overflow_signed, 0,"DISP8", TRUE, 0x000000ff,0x000000ff, TRUE), + HOWTO( 5, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0,"DISP16", TRUE, 0x0000ffff,0x0000ffff, TRUE), + HOWTO( 6, 0, 2, 32, TRUE, 0, complain_overflow_signed, 0,"DISP32", TRUE, 0xffffffff,0xffffffff, TRUE), + HOWTO( 7, 2, 3, 26, FALSE, 0, complain_overflow_signed, riscix_fix_pcrel_26_done, "ARM26D",TRUE,0x00ffffff,0x00ffffff, FALSE), EMPTY_HOWTO (-1), - HOWTO( 9, 0, -1, 16, false, 0, complain_overflow_bitfield,0,"NEG16", true, 0x0000ffff,0x0000ffff, false), - HOWTO( 10, 0, -2, 32, false, 0, complain_overflow_bitfield,0,"NEG32", true, 0xffffffff,0xffffffff, false) + HOWTO( 9, 0, -1, 16, FALSE, 0, complain_overflow_bitfield,0,"NEG16", TRUE, 0x0000ffff,0x0000ffff, FALSE), + HOWTO( 10, 0, -2, 32, FALSE, 0, complain_overflow_bitfield,0,"NEG32", TRUE, 0xffffffff,0xffffffff, FALSE) }; #define RISCIX_TABLE_SIZE \ @@ -396,7 +396,7 @@ riscix_swap_std_reloc_out (abfd, g, natp } } -boolean +bfd_boolean riscix_squirt_out_relocs (abfd, section) bfd *abfd; asection *section; @@ -408,14 +408,15 @@ riscix_squirt_out_relocs (abfd, section) unsigned int count = section->reloc_count; bfd_size_type natsize; - if (count == 0) return true; + if (count == 0) + return TRUE; each_size = obj_reloc_entry_size (abfd); natsize = each_size; natsize *= count; native = (unsigned char *) bfd_zalloc (abfd, natsize); if (!native) - return false; + return FALSE; generic = section->orelocation; @@ -428,11 +429,11 @@ riscix_squirt_out_relocs (abfd, section) if (bfd_bwrite ((PTR) native, natsize, abfd) != natsize) { bfd_release (abfd, native); - return false; + return FALSE; } bfd_release (abfd, native); - return true; + return TRUE; } /* diff -uprN binutils-2.13.90.0.16/bfd/rs6000-core.c binutils-2.13.90.0.18/bfd/rs6000-core.c --- binutils-2.13.90.0.16/bfd/rs6000-core.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/bfd/rs6000-core.c Mon Dec 16 12:22:52 2002 @@ -253,19 +253,19 @@ typedef union { /* Try to read into CORE the header from the core file associated with ABFD. Return success. */ -static boolean +static bfd_boolean read_hdr (bfd *abfd, CoreHdr *core) { bfd_size_type size; if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; /* Read the leading portion that old and new core dump structures have in common. */ size = CORE_COMMONSZ; if (bfd_bread (core, size, abfd) != size) - return false; + return FALSE; /* Read the trailing portion of the structure. */ if (CORE_NEW (*core)) @@ -630,9 +630,9 @@ rs6000coff_core_p (abfd) return NULL; } -/* Return `true' if given core is from the given executable. */ +/* Return `TRUE' if given core is from the given executable. */ -boolean +bfd_boolean rs6000coff_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd; bfd *exec_bfd; @@ -642,11 +642,11 @@ rs6000coff_core_file_matches_executable_ char *path, *s; size_t alloc; const char *str1, *str2; - boolean ret; + bfd_boolean ret; file_ptr c_loader; if (!read_hdr (core_bfd, &core)) - return false; + return FALSE; if (CORE_NEW (core)) c_loader = CNEW_LOADER (core.new); @@ -659,12 +659,12 @@ rs6000coff_core_file_matches_executable_ size = (int) ((LdInfo *) 0)->l32.ldinfo_filename; if (bfd_seek (core_bfd, c_loader + size, SEEK_SET) != 0) - return false; + return FALSE; alloc = 100; path = bfd_malloc ((bfd_size_type) alloc); if (path == NULL) - return false; + return FALSE; s = path; while (1) @@ -672,7 +672,7 @@ rs6000coff_core_file_matches_executable_ if (bfd_bread (s, (bfd_size_type) 1, core_bfd) != 1) { free (path); - return false; + return FALSE; } if (*s == '\0') break; @@ -686,7 +686,7 @@ rs6000coff_core_file_matches_executable_ if (n == NULL) { free (path); - return false; + return FALSE; } s = n + (path - s); path = n; @@ -701,9 +701,9 @@ rs6000coff_core_file_matches_executable_ str2 = str2 != NULL ? str2 + 1 : exec_bfd->filename; if (strcmp (str1, str2) == 0) - ret = true; + ret = TRUE; else - ret = false; + ret = FALSE; free (path); diff -uprN binutils-2.13.90.0.16/bfd/sco5-core.c binutils-2.13.90.0.18/bfd/sco5-core.c --- binutils-2.13.90.0.16/bfd/sco5-core.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/sco5-core.c Mon Dec 16 12:22:52 2002 @@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "bfd.h" #include "sysdep.h" #include "libbfd.h" -#include "libaout.h" /* BFD a.out internal data structures */ +#include "libaout.h" /* BFD a.out internal data structures */ #include #include @@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suit #include #include -#include /* After a.out.h */ +#include /* After a.out.h */ #include #include @@ -40,15 +40,14 @@ struct sco5_core_struct /* forward declarations */ -static asection * -make_bfd_asection PARAMS ((bfd *, const char *, flagword, bfd_size_type, - bfd_vma, file_ptr)); +static asection *make_bfd_asection + PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr)); static struct user *read_uarea PARAMS ((bfd *, int)); const bfd_target *sco5_core_file_p PARAMS ((bfd *abfd)); char *sco5_core_file_failing_command PARAMS ((bfd *abfd)); int sco5_core_file_failing_signal PARAMS ((bfd *abfd)); -boolean sco5_core_file_matches_executable_p PARAMS ((bfd *core_bfd, - bfd *exec_bfd)); +bfd_boolean sco5_core_file_matches_executable_p + PARAMS ((bfd *core_bfd, bfd *exec_bfd)); static void swap_abort PARAMS ((void)); static asection * @@ -133,8 +132,8 @@ sco5_core_file_p (abfd) return NULL; if (fstat (fileno (stream), &statbuf) < 0) { - bfd_set_error (bfd_error_system_call); - return NULL; + bfd_set_error (bfd_error_system_call); + return NULL; } coresize = statbuf.st_size; } @@ -168,24 +167,24 @@ sco5_core_file_p (abfd) goto fail; if (!make_bfd_asection (abfd, ".reg", SEC_HAS_CONTENTS, - (bfd_size_type) coffsets.u_usize, - 0 - (bfd_vma) u->u_ar0, - (file_ptr) coffsets.u_user)) + (bfd_size_type) coffsets.u_usize, + 0 - (bfd_vma) u->u_ar0, + (file_ptr) coffsets.u_user)) goto fail; if (!make_bfd_asection (abfd, ".data", SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS, - ((bfd_size_type) u->u_exdata.ux_dsize + ((bfd_size_type) u->u_exdata.ux_dsize + u->u_exdata.ux_bsize), - (bfd_vma) u->u_exdata.ux_datorg, - (file_ptr) coffsets.u_data)) + (bfd_vma) u->u_exdata.ux_datorg, + (file_ptr) coffsets.u_data)) goto fail; if (!make_bfd_asection (abfd, ".stack", SEC_ALLOC + SEC_LOAD + SEC_HAS_CONTENTS, - (bfd_size_type) u->u_ssize * NBPC, - (bfd_vma) u->u_sub, - (file_ptr) coffsets.u_stack)) + (bfd_size_type) u->u_ssize * NBPC, + (bfd_vma) u->u_sub, + (file_ptr) coffsets.u_stack)) goto fail; return abfd->xvec; /* Done for version 1 */ @@ -222,10 +221,10 @@ sco5_core_file_p (abfd) if ((bfd_seek (abfd, (file_ptr) chead.cs_hseek, SEEK_SET) != 0) || (bfd_bread ((void *) &chead, (bfd_size_type) sizeof chead, abfd) != sizeof chead)) - { - bfd_set_error (bfd_error_wrong_format); + { + bfd_set_error (bfd_error_wrong_format); goto fail; - } + } switch (chead.cs_stype) { @@ -243,7 +242,7 @@ sco5_core_file_p (abfd) if (! u) goto fail; - /* This is tricky. As the "register section", we give them + /* This is tricky. As the "register section", we give them the entire upage and stack. u.u_ar0 points to where "register 0" is stored. There are two tricks with this, though. One is that the rest of the registers might be @@ -263,33 +262,33 @@ sco5_core_file_p (abfd) chead.cs_vaddr = 0 - (bfd_vma) u->u_ar0; - secname = ".reg"; - flags = SEC_HAS_CONTENTS; + secname = ".reg"; + flags = SEC_HAS_CONTENTS; - break; + break; case CORES_PREGION: /* A program region, map it */ switch (chead.cs_x.csx_preg.csxp_rtyp) { case PT_DATA: - secname = ".data"; /* Data region. */ + secname = ".data"; /* Data region. */ break; case PT_STACK: - secname = ".stack"; /* Stack region. */ + secname = ".stack"; /* Stack region. */ break; case PT_SHMEM: - secname = ".shmem"; /* Shared memory */ + secname = ".shmem"; /* Shared memory */ break; case PT_LIBDAT: - secname = ".libdat"; /* Shared library data */ + secname = ".libdat"; /* Shared library data */ break; case PT_V86: - secname = ".virt86"; /* Virtual 8086 mode */ + secname = ".virt86"; /* Virtual 8086 mode */ break; case PT_SHFIL: - secname = ".mmfile"; /* Memory mapped file */ + secname = ".mmfile"; /* Memory mapped file */ break; case PT_XDATA0: - secname = ".Xdat0"; /* XENIX data region, virtual 0 */ + secname = ".Xdat0"; /* XENIX data region, virtual 0 */ break; default: secname = ""; @@ -301,11 +300,11 @@ sco5_core_file_p (abfd) case CORES_SCOUTSNAME: /* struct scoutsname */ secname = NULL; /* Ignore these */ break; - default: - (*_bfd_error_handler) ("Unhandled SCO core file section type %d\n", - chead.cs_stype); - continue; - } + default: + (*_bfd_error_handler) ("Unhandled SCO core file section type %d\n", + chead.cs_stype); + continue; + } if (secname && !make_bfd_asection (abfd, secname, flags, @@ -350,12 +349,12 @@ sco5_core_file_failing_signal (ignore_ab } /* ARGSUSED */ -boolean +bfd_boolean sco5_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return true; /* FIXME, We have no way of telling at this point */ + return TRUE; /* FIXME, We have no way of telling at this point */ } /* If somebody calls any byte-swapping routines, shoot them. */ @@ -373,33 +372,33 @@ const bfd_target sco5_core_vec = { "sco5-core", bfd_target_unknown_flavour, - BFD_ENDIAN_LITTLE, /* target byte order */ - BFD_ENDIAN_LITTLE, /* target headers byte order */ - (HAS_RELOC | EXEC_P | /* object flags */ + BFD_ENDIAN_LITTLE, /* target byte order */ + BFD_ENDIAN_LITTLE, /* target headers byte order */ + (HAS_RELOC | EXEC_P | /* object flags */ HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - 0, /* symbol prefix */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - NO_GET, NO_SIGNED_GET, NO_PUT, /* 64 bit data */ - NO_GET, NO_SIGNED_GET, NO_PUT, /* 32 bit data */ - NO_GET, NO_SIGNED_GET, NO_PUT, /* 16 bit data */ - NO_GET, NO_SIGNED_GET, NO_PUT, /* 64 bit hdrs */ - NO_GET, NO_SIGNED_GET, NO_PUT, /* 32 bit hdrs */ - NO_GET, NO_SIGNED_GET, NO_PUT, /* 16 bit hdrs */ - - { /* bfd_check_format */ - _bfd_dummy_target, /* unknown format */ - _bfd_dummy_target, /* object file */ - _bfd_dummy_target, /* archive */ - sco5_core_file_p /* a core file */ + 0, /* symbol prefix */ + ' ', /* ar_pad_char */ + 16, /* ar_max_namelen */ + NO_GET, NO_SIGNED_GET, NO_PUT, /* 64 bit data */ + NO_GET, NO_SIGNED_GET, NO_PUT, /* 32 bit data */ + NO_GET, NO_SIGNED_GET, NO_PUT, /* 16 bit data */ + NO_GET, NO_SIGNED_GET, NO_PUT, /* 64 bit hdrs */ + NO_GET, NO_SIGNED_GET, NO_PUT, /* 32 bit hdrs */ + NO_GET, NO_SIGNED_GET, NO_PUT, /* 16 bit hdrs */ + + { /* bfd_check_format */ + _bfd_dummy_target, /* unknown format */ + _bfd_dummy_target, /* object file */ + _bfd_dummy_target, /* archive */ + sco5_core_file_p /* a core file */ }, - { /* bfd_set_format */ + { /* bfd_set_format */ bfd_false, bfd_false, bfd_false, bfd_false }, - { /* bfd_write_contents */ + { /* bfd_write_contents */ bfd_false, bfd_false, bfd_false, bfd_false }, @@ -416,5 +415,5 @@ const bfd_target sco5_core_vec = NULL, - (PTR) 0 /* backend_data */ + (PTR) 0 /* backend_data */ }; diff -uprN binutils-2.13.90.0.16/bfd/section.c binutils-2.13.90.0.18/bfd/section.c --- binutils-2.13.90.0.16/bfd/section.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/section.c Mon Dec 16 12:22:52 2002 @@ -761,7 +761,7 @@ bfd_get_section_by_name (abfd, name) { struct section_hash_entry *sh; - sh = section_hash_lookup (&abfd->section_htab, name, false, false); + sh = section_hash_lookup (&abfd->section_htab, name, FALSE, FALSE); if (sh != NULL) return &sh->section; @@ -811,7 +811,7 @@ bfd_get_unique_section_name (abfd, templ abort (); sprintf (sname + len, ".%d", num++); } - while (section_hash_lookup (&abfd->section_htab, sname, false, false)); + while (section_hash_lookup (&abfd->section_htab, sname, FALSE, FALSE)); if (count != NULL) *count = num; @@ -869,7 +869,7 @@ bfd_make_section_old_way (abfd, name) if (strcmp (name, BFD_IND_SECTION_NAME) == 0) return bfd_ind_section_ptr; - sh = section_hash_lookup (&abfd->section_htab, name, true, false); + sh = section_hash_lookup (&abfd->section_htab, name, TRUE, FALSE); if (sh == NULL) return NULL; @@ -915,7 +915,7 @@ bfd_make_section_anyway (abfd, name) return NULL; } - sh = section_hash_lookup (&abfd->section_htab, name, true, false); + sh = section_hash_lookup (&abfd->section_htab, name, TRUE, FALSE); if (sh == NULL) return NULL; @@ -969,7 +969,7 @@ bfd_make_section (abfd, name) || strcmp (name, BFD_IND_SECTION_NAME) == 0) return NULL; - sh = section_hash_lookup (&abfd->section_htab, name, true, false); + sh = section_hash_lookup (&abfd->section_htab, name, TRUE, FALSE); if (sh == NULL) return NULL; @@ -989,12 +989,12 @@ FUNCTION bfd_set_section_flags SYNOPSIS - boolean bfd_set_section_flags(bfd *abfd, asection *sec, flagword flags); + bfd_boolean bfd_set_section_flags (bfd *abfd, asection *sec, flagword flags); DESCRIPTION Set the attributes of the section @var{sec} in the BFD - @var{abfd} to the value @var{flags}. Return <> on success, - <> on error. Possible error returns are: + @var{abfd} to the value @var{flags}. Return <> on success, + <> on error. Possible error returns are: o <> - The section cannot have one or more of the attributes @@ -1004,7 +1004,7 @@ DESCRIPTION */ /*ARGSUSED*/ -boolean +bfd_boolean bfd_set_section_flags (abfd, section, flags) bfd *abfd ATTRIBUTE_UNUSED; sec_ptr section; @@ -1019,12 +1019,12 @@ bfd_set_section_flags (abfd, section, fl if ((flags & bfd_applicable_section_flags (abfd)) != flags) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } #endif section->flags = flags; - return true; + return TRUE; } /* @@ -1076,11 +1076,11 @@ FUNCTION bfd_set_section_size SYNOPSIS - boolean bfd_set_section_size(bfd *abfd, asection *sec, bfd_size_type val); + bfd_boolean bfd_set_section_size (bfd *abfd, asection *sec, bfd_size_type val); DESCRIPTION Set @var{sec} to the size @var{val}. If the operation is - ok, then <> is returned, else <>. + ok, then <> is returned, else <>. Possible error returns: o <> - @@ -1088,7 +1088,7 @@ DESCRIPTION */ -boolean +bfd_boolean bfd_set_section_size (abfd, ptr, val) bfd *abfd; sec_ptr ptr; @@ -1100,13 +1100,13 @@ bfd_set_section_size (abfd, ptr, val) if (abfd->output_has_begun) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } ptr->_cooked_size = val; ptr->_raw_size = val; - return true; + return TRUE; } /* @@ -1114,9 +1114,9 @@ FUNCTION bfd_set_section_contents SYNOPSIS - boolean bfd_set_section_contents (bfd *abfd, asection *section, - PTR data, file_ptr offset, - bfd_size_type count); + bfd_boolean bfd_set_section_contents (bfd *abfd, asection *section, + PTR data, file_ptr offset, + bfd_size_type count); DESCRIPTION Sets the contents of the section @var{section} in BFD @@ -1124,7 +1124,7 @@ DESCRIPTION data is written to the output section starting at offset @var{offset} for @var{count} octets. - Normally <> is returned, else <>. Possible error + Normally <> is returned, else <>. Possible error returns are: o <> - The output section does not have the <> @@ -1141,7 +1141,7 @@ DESCRIPTION ? bfd_get_section_size_after_reloc (sec) \ : bfd_get_section_size_before_reloc (sec)) -boolean +bfd_boolean bfd_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -1154,7 +1154,7 @@ bfd_set_section_contents (abfd, section, if (!(bfd_get_section_flags (abfd, section) & SEC_HAS_CONTENTS)) { bfd_set_error (bfd_error_no_contents); - return (false); + return FALSE; } sz = bfd_get_section_size_now (abfd, section); @@ -1164,7 +1164,7 @@ bfd_set_section_contents (abfd, section, || count != (size_t) count) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } switch (abfd->direction) @@ -1172,7 +1172,7 @@ bfd_set_section_contents (abfd, section, case read_direction: case no_direction: bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; case write_direction: break; @@ -1181,7 +1181,7 @@ bfd_set_section_contents (abfd, section, /* File is opened for update. `output_has_begun' some time ago when the file was created. Do not recompute sections sizes or alignments in _bfd_set_section_content. */ - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; break; } @@ -1193,11 +1193,11 @@ bfd_set_section_contents (abfd, section, if (BFD_SEND (abfd, _bfd_set_section_contents, (abfd, section, location, offset, count))) { - abfd->output_has_begun = true; - return true; + abfd->output_has_begun = TRUE; + return TRUE; } - return false; + return FALSE; } /* @@ -1205,9 +1205,9 @@ FUNCTION bfd_get_section_contents SYNOPSIS - boolean bfd_get_section_contents (bfd *abfd, asection *section, - PTR location, file_ptr offset, - bfd_size_type count); + bfd_boolean bfd_get_section_contents (bfd *abfd, asection *section, + PTR location, file_ptr offset, + bfd_size_type count); DESCRIPTION Read data from @var{section} in BFD @var{abfd} @@ -1218,11 +1218,11 @@ DESCRIPTION If the contents of a constructor with the <> flag set are requested or if the section does not have the <> flag set, then the @var{location} is filled - with zeroes. If no errors occur, <> is returned, else - <>. + with zeroes. If no errors occur, <> is returned, else + <>. */ -boolean +bfd_boolean bfd_get_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -1235,10 +1235,10 @@ bfd_get_section_contents (abfd, section, if (section->flags & SEC_CONSTRUCTOR) { memset (location, 0, (size_t) count); - return true; + return TRUE; } - /* Even if reloc_done is true, this function reads unrelocated + /* Even if reloc_done is TRUE, this function reads unrelocated contents, so we want the raw size. */ sz = section->_raw_size; if ((bfd_size_type) offset > sz @@ -1247,23 +1247,23 @@ bfd_get_section_contents (abfd, section, || count != (size_t) count) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (count == 0) /* Don't bother. */ - return true; + return TRUE; if ((section->flags & SEC_HAS_CONTENTS) == 0) { memset (location, 0, (size_t) count); - return true; + return TRUE; } if ((section->flags & SEC_IN_MEMORY) != 0) { memcpy (location, section->contents + offset, (size_t) count); - return true; + return TRUE; } return BFD_SEND (abfd, _bfd_get_section_contents, @@ -1275,13 +1275,13 @@ FUNCTION bfd_copy_private_section_data SYNOPSIS - boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec, - bfd *obfd, asection *osec); + bfd_boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec, + bfd *obfd, asection *osec); DESCRIPTION Copy private section information from @var{isec} in the BFD @var{ibfd} to the section @var{osec} in the BFD @var{obfd}. - Return <> on success, <> on error. Possible error + Return <> on success, <> on error. Possible error returns are: o <> - @@ -1343,16 +1343,16 @@ FUNCTION bfd_generic_discard_group SYNOPSIS - boolean bfd_generic_discard_group (bfd *abfd, asection *group); + bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); DESCRIPTION Remove all members of @var{group} from the output. */ -boolean +bfd_boolean bfd_generic_discard_group (abfd, group) bfd *abfd ATTRIBUTE_UNUSED; asection *group ATTRIBUTE_UNUSED; { - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/simple.c binutils-2.13.90.0.18/bfd/simple.c --- binutils-2.13.90.0.16/bfd/simple.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/simple.c Mon Dec 16 12:22:52 2002 @@ -24,28 +24,28 @@ #include "libbfd.h" #include "bfdlink.h" -static boolean simple_dummy_warning +static bfd_boolean simple_dummy_warning PARAMS ((struct bfd_link_info *, const char *, const char *, bfd *, asection *, bfd_vma)); -static boolean simple_dummy_undefined_symbol +static bfd_boolean simple_dummy_undefined_symbol PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, - bfd_vma, boolean)); + bfd_vma, bfd_boolean)); -static boolean simple_dummy_reloc_overflow +static bfd_boolean simple_dummy_reloc_overflow PARAMS ((struct bfd_link_info *, const char *, const char *, bfd_vma, bfd *, asection *, bfd_vma)); -static boolean simple_dummy_reloc_dangerous +static bfd_boolean simple_dummy_reloc_dangerous PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma)); -static boolean simple_dummy_unattached_reloc +static bfd_boolean simple_dummy_unattached_reloc PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma)); bfd_byte * bfd_simple_get_relocated_section_contents PARAMS ((bfd *, asection *, bfd_byte *)); -static boolean +static bfd_boolean simple_dummy_warning (link_info, warning, symbol, abfd, section, address) struct bfd_link_info *link_info ATTRIBUTE_UNUSED; const char *warning ATTRIBUTE_UNUSED; @@ -54,22 +54,22 @@ simple_dummy_warning (link_info, warning asection *section ATTRIBUTE_UNUSED; bfd_vma address ATTRIBUTE_UNUSED; { - return true; + return TRUE; } -static boolean +static bfd_boolean simple_dummy_undefined_symbol (link_info, name, abfd, section, address, fatal) struct bfd_link_info *link_info ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; bfd_vma address ATTRIBUTE_UNUSED; - boolean fatal ATTRIBUTE_UNUSED; + bfd_boolean fatal ATTRIBUTE_UNUSED; { - return true; + return TRUE; } -static boolean +static bfd_boolean simple_dummy_reloc_overflow (link_info, name, reloc_name, addend, abfd, section, address) struct bfd_link_info *link_info ATTRIBUTE_UNUSED; @@ -80,10 +80,10 @@ simple_dummy_reloc_overflow (link_info, asection *section ATTRIBUTE_UNUSED; bfd_vma address ATTRIBUTE_UNUSED; { - return true; + return TRUE; } -static boolean +static bfd_boolean simple_dummy_reloc_dangerous (link_info, message, abfd, section, address) struct bfd_link_info *link_info ATTRIBUTE_UNUSED; const char *message ATTRIBUTE_UNUSED; @@ -91,10 +91,10 @@ simple_dummy_reloc_dangerous (link_info, asection *section ATTRIBUTE_UNUSED; bfd_vma address ATTRIBUTE_UNUSED; { - return true; + return TRUE; } -static boolean +static bfd_boolean simple_dummy_unattached_reloc (link_info, name, abfd, section, address) struct bfd_link_info *link_info ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; @@ -102,7 +102,7 @@ simple_dummy_unattached_reloc (link_info asection *section ATTRIBUTE_UNUSED; bfd_vma address ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* diff -uprN binutils-2.13.90.0.16/bfd/som.c binutils-2.13.90.0.18/bfd/som.c --- binutils-2.13.90.0.16/bfd/som.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/som.c Tue Jan 21 10:21:32 2003 @@ -150,122 +150,149 @@ struct som_misc_symbol_info { /* Forward declarations */ -static boolean som_mkobject PARAMS ((bfd *)); -static const bfd_target * som_object_setup PARAMS ((bfd *, - struct header *, - struct som_exec_auxhdr *, - unsigned long)); -static boolean setup_sections PARAMS ((bfd *, struct header *, unsigned long)); -static const bfd_target * som_object_p PARAMS ((bfd *)); -static boolean som_write_object_contents PARAMS ((bfd *)); -static boolean som_slurp_string_table PARAMS ((bfd *)); -static unsigned int som_slurp_symbol_table PARAMS ((bfd *)); -static long som_get_symtab_upper_bound PARAMS ((bfd *)); -static long som_canonicalize_reloc PARAMS ((bfd *, sec_ptr, - arelent **, asymbol **)); -static long som_get_reloc_upper_bound PARAMS ((bfd *, sec_ptr)); -static unsigned int som_set_reloc_info PARAMS ((unsigned char *, unsigned int, - arelent *, asection *, - asymbol **, boolean)); -static boolean som_slurp_reloc_table PARAMS ((bfd *, asection *, - asymbol **, boolean)); -static long som_get_symtab PARAMS ((bfd *, asymbol **)); -static asymbol * som_make_empty_symbol PARAMS ((bfd *)); -static void som_print_symbol PARAMS ((bfd *, PTR, - asymbol *, bfd_print_symbol_type)); -static boolean som_new_section_hook PARAMS ((bfd *, asection *)); -static boolean som_bfd_copy_private_symbol_data PARAMS ((bfd *, asymbol *, - bfd *, asymbol *)); -static boolean som_bfd_copy_private_section_data PARAMS ((bfd *, asection *, - bfd *, asection *)); -static boolean som_bfd_copy_private_bfd_data PARAMS ((bfd *, bfd *)); +static bfd_boolean som_mkobject + PARAMS ((bfd *)); +static const bfd_target * som_object_setup + PARAMS ((bfd *, struct header *, struct som_exec_auxhdr *, unsigned long)); +static bfd_boolean setup_sections + PARAMS ((bfd *, struct header *, unsigned long)); +static const bfd_target * som_object_p + PARAMS ((bfd *)); +static bfd_boolean som_write_object_contents + PARAMS ((bfd *)); +static bfd_boolean som_slurp_string_table + PARAMS ((bfd *)); +static unsigned int som_slurp_symbol_table + PARAMS ((bfd *)); +static long som_get_symtab_upper_bound + PARAMS ((bfd *)); +static long som_canonicalize_reloc + PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); +static long som_get_reloc_upper_bound + PARAMS ((bfd *, sec_ptr)); +static unsigned int som_set_reloc_info + PARAMS ((unsigned char *, unsigned int, arelent *, asection *, + asymbol **, bfd_boolean)); +static bfd_boolean som_slurp_reloc_table + PARAMS ((bfd *, asection *, asymbol **, bfd_boolean)); +static long som_get_symtab + PARAMS ((bfd *, asymbol **)); +static asymbol * som_make_empty_symbol + PARAMS ((bfd *)); +static void som_print_symbol + PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); +static bfd_boolean som_new_section_hook + PARAMS ((bfd *, asection *)); +static bfd_boolean som_bfd_copy_private_symbol_data + PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); +static bfd_boolean som_bfd_copy_private_section_data + PARAMS ((bfd *, asection *, bfd *, asection *)); +static bfd_boolean som_bfd_copy_private_bfd_data + PARAMS ((bfd *, bfd *)); #define som_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data #define som_bfd_set_private_flags _bfd_generic_bfd_set_private_flags -static boolean som_bfd_is_local_label_name PARAMS ((bfd *, const char *)); -static boolean som_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, - file_ptr, bfd_size_type)); -static boolean som_get_section_contents PARAMS ((bfd *, sec_ptr, PTR, - file_ptr, bfd_size_type)); -static boolean som_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, - unsigned long)); -static boolean som_find_nearest_line PARAMS ((bfd *, asection *, - asymbol **, bfd_vma, - const char **, - const char **, - unsigned int *)); -static void som_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -static asection * bfd_section_from_som_symbol PARAMS ((bfd *, - struct symbol_dictionary_record *)); -static int log2 PARAMS ((unsigned int)); -static bfd_reloc_status_type hppa_som_reloc PARAMS ((bfd *, arelent *, - asymbol *, PTR, - asection *, bfd *, - char **)); -static void som_initialize_reloc_queue PARAMS ((struct reloc_queue *)); -static void som_reloc_queue_insert PARAMS ((unsigned char *, unsigned int, - struct reloc_queue *)); -static void som_reloc_queue_fix PARAMS ((struct reloc_queue *, unsigned int)); -static int som_reloc_queue_find PARAMS ((unsigned char *, unsigned int, - struct reloc_queue *)); -static unsigned char * try_prev_fixup PARAMS ((bfd *, int *, unsigned char *, - unsigned int, - struct reloc_queue *)); - -static unsigned char * som_reloc_skip PARAMS ((bfd *, unsigned int, - unsigned char *, unsigned int *, - struct reloc_queue *)); -static unsigned char * som_reloc_addend PARAMS ((bfd *, bfd_vma, - unsigned char *, - unsigned int *, - struct reloc_queue *)); -static unsigned char * som_reloc_call PARAMS ((bfd *, unsigned char *, - unsigned int *, - arelent *, int, - struct reloc_queue *)); -static unsigned long som_count_spaces PARAMS ((bfd *)); -static unsigned long som_count_subspaces PARAMS ((bfd *)); -static int compare_syms PARAMS ((const void *, const void *)); -static int compare_subspaces PARAMS ((const void *, const void *)); -static unsigned long som_compute_checksum PARAMS ((bfd *)); -static boolean som_prep_headers PARAMS ((bfd *)); -static int som_sizeof_headers PARAMS ((bfd *, boolean)); -static boolean som_finish_writing PARAMS ((bfd *)); -static boolean som_build_and_write_symbol_table PARAMS ((bfd *)); -static void som_prep_for_fixups PARAMS ((bfd *, asymbol **, unsigned long)); -static boolean som_write_fixups PARAMS ((bfd *, unsigned long, unsigned int *)); -static boolean som_write_space_strings PARAMS ((bfd *, unsigned long, - unsigned int *)); -static boolean som_write_symbol_strings PARAMS ((bfd *, unsigned long, - asymbol **, unsigned int, - unsigned *, - COMPUNIT *)); -static boolean som_begin_writing PARAMS ((bfd *)); +static bfd_boolean som_bfd_is_local_label_name + PARAMS ((bfd *, const char *)); +static bfd_boolean som_set_section_contents + PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); +static bfd_boolean som_get_section_contents + PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); +static bfd_boolean som_set_arch_mach + PARAMS ((bfd *, enum bfd_architecture, unsigned long)); +static bfd_boolean som_find_nearest_line + PARAMS ((bfd *, asection *, asymbol **, bfd_vma, const char **, + const char **, unsigned int *)); +static void som_get_symbol_info + PARAMS ((bfd *, asymbol *, symbol_info *)); +static asection * bfd_section_from_som_symbol + PARAMS ((bfd *, struct symbol_dictionary_record *)); +static int log2 + PARAMS ((unsigned int)); +static bfd_reloc_status_type hppa_som_reloc + PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); +static void som_initialize_reloc_queue + PARAMS ((struct reloc_queue *)); +static void som_reloc_queue_insert + PARAMS ((unsigned char *, unsigned int, struct reloc_queue *)); +static void som_reloc_queue_fix + PARAMS ((struct reloc_queue *, unsigned int)); +static int som_reloc_queue_find + PARAMS ((unsigned char *, unsigned int, struct reloc_queue *)); +static unsigned char * try_prev_fixup + PARAMS ((bfd *, int *, unsigned char *, unsigned int, struct reloc_queue *)); + +static unsigned char * som_reloc_skip + PARAMS ((bfd *, unsigned int, unsigned char *, unsigned int *, + struct reloc_queue *)); +static unsigned char * som_reloc_addend + PARAMS ((bfd *, bfd_vma, unsigned char *, unsigned int *, + struct reloc_queue *)); +static unsigned char * som_reloc_call + PARAMS ((bfd *, unsigned char *, unsigned int *, arelent *, int, + struct reloc_queue *)); +static unsigned long som_count_spaces + PARAMS ((bfd *)); +static unsigned long som_count_subspaces + PARAMS ((bfd *)); +static int compare_syms + PARAMS ((const void *, const void *)); +static int compare_subspaces + PARAMS ((const void *, const void *)); +static unsigned long som_compute_checksum + PARAMS ((bfd *)); +static bfd_boolean som_prep_headers + PARAMS ((bfd *)); +static int som_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean som_finish_writing + PARAMS ((bfd *)); +static bfd_boolean som_build_and_write_symbol_table + PARAMS ((bfd *)); +static void som_prep_for_fixups + PARAMS ((bfd *, asymbol **, unsigned long)); +static bfd_boolean som_write_fixups + PARAMS ((bfd *, unsigned long, unsigned int *)); +static bfd_boolean som_write_space_strings + PARAMS ((bfd *, unsigned long, unsigned int *)); +static bfd_boolean som_write_symbol_strings + PARAMS ((bfd *, unsigned long, asymbol **, unsigned int, unsigned *, + COMPUNIT *)); +static bfd_boolean som_begin_writing + PARAMS ((bfd *)); static reloc_howto_type * som_bfd_reloc_type_lookup - PARAMS ((bfd *, bfd_reloc_code_real_type)); -static char som_section_type PARAMS ((const char *)); -static int som_decode_symclass PARAMS ((asymbol *)); -static boolean som_bfd_count_ar_symbols PARAMS ((bfd *, struct lst_header *, - symindex *)); - -static boolean som_bfd_fill_in_ar_symbols PARAMS ((bfd *, struct lst_header *, - carsym **syms)); -static boolean som_slurp_armap PARAMS ((bfd *)); -static boolean som_write_armap PARAMS ((bfd *, unsigned int, struct orl *, - unsigned int, int)); -static void som_bfd_derive_misc_symbol_info PARAMS ((bfd *, asymbol *, - struct som_misc_symbol_info *)); -static boolean som_bfd_prep_for_ar_write PARAMS ((bfd *, unsigned int *, - unsigned int *)); -static unsigned int som_bfd_ar_symbol_hash PARAMS ((asymbol *)); -static boolean som_bfd_ar_write_symbol_stuff PARAMS ((bfd *, unsigned int, - unsigned int, - struct lst_header, - unsigned int)); -static boolean som_is_space PARAMS ((asection *)); -static boolean som_is_subspace PARAMS ((asection *)); -static boolean som_is_container PARAMS ((asection *, asection *)); -static boolean som_bfd_free_cached_info PARAMS ((bfd *)); -static boolean som_bfd_link_split_section PARAMS ((bfd *, asection *)); + PARAMS ((bfd *, bfd_reloc_code_real_type)); +static char som_section_type + PARAMS ((const char *)); +static int som_decode_symclass + PARAMS ((asymbol *)); +static bfd_boolean som_bfd_count_ar_symbols + PARAMS ((bfd *, struct lst_header *, symindex *)); + +static bfd_boolean som_bfd_fill_in_ar_symbols + PARAMS ((bfd *, struct lst_header *, carsym **syms)); +static bfd_boolean som_slurp_armap + PARAMS ((bfd *)); +static bfd_boolean som_write_armap + PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); +static void som_bfd_derive_misc_symbol_info + PARAMS ((bfd *, asymbol *, struct som_misc_symbol_info *)); +static bfd_boolean som_bfd_prep_for_ar_write + PARAMS ((bfd *, unsigned int *, unsigned int *)); +static unsigned int som_bfd_ar_symbol_hash + PARAMS ((asymbol *)); +static bfd_boolean som_bfd_ar_write_symbol_stuff + PARAMS ((bfd *, unsigned int, unsigned int, struct lst_header, + unsigned int)); +static bfd_boolean som_is_space + PARAMS ((asection *)); +static bfd_boolean som_is_subspace + PARAMS ((asection *)); +static bfd_boolean som_is_container + PARAMS ((asection *, asection *)); +static bfd_boolean som_bfd_free_cached_info + PARAMS ((bfd *)); +static bfd_boolean som_bfd_link_split_section + PARAMS ((bfd *, asection *)); /* Map SOM section names to POSIX/BSD single-character symbol types. @@ -778,7 +805,7 @@ static const int comp3_opcodes[] = { #endif #define SOM_HOWTO(TYPE, NAME) \ - HOWTO(TYPE, 0, 0, 32, false, 0, 0, hppa_som_reloc, NAME, false, 0, 0, false) + HOWTO(TYPE, 0, 0, 32, FALSE, 0, 0, hppa_som_reloc, NAME, FALSE, 0, 0, FALSE) static reloc_howto_type som_hppa_howto_table[] = { SOM_HOWTO (R_NO_RELOCATION, "R_NO_RELOCATION"), @@ -1842,7 +1869,7 @@ som_object_setup (abfd, file_hdrp, aux_h BFD sections which correspond to spaces will overlap the sections for the associated subspaces. */ -static boolean +static bfd_boolean setup_sections (abfd, file_hdr, current_offset) bfd *abfd; struct header *file_hdr; @@ -1931,7 +1958,7 @@ setup_sections (abfd, file_hdr, current_ goto error_return; /* Setup the start address and file loc from the first subspace - record. */ + record. */ space_asect->vma = subspace.subspace_start; space_asect->filepos = subspace.file_loc_init_value + current_offset; space_asect->alignment_power = log2 (subspace.alignment); @@ -2066,7 +2093,7 @@ setup_sections (abfd, file_hdr, current_ } /* This can happen for a .o which defines symbols in otherwise - empty subspaces. */ + empty subspaces. */ if (!save_subspace.file_loc_init_value) { space_asect->_cooked_size = 0; @@ -2114,7 +2141,7 @@ setup_sections (abfd, file_hdr, current_ if (subspace_sections != NULL) free (subspace_sections); - return true; + return TRUE; error_return: if (space_strings != NULL) @@ -2122,7 +2149,7 @@ setup_sections (abfd, file_hdr, current_ if (subspace_sections != NULL) free (subspace_sections); - return false; + return FALSE; } /* Read in a SOM object and make it into a BFD. */ @@ -2269,7 +2296,7 @@ som_object_p (abfd) /* Create a SOM object. */ -static boolean +static bfd_boolean som_mkobject (abfd) bfd *abfd; { @@ -2277,15 +2304,15 @@ som_mkobject (abfd) abfd->tdata.som_data = (struct som_data_struct *) bfd_zalloc (abfd, (bfd_size_type) sizeof (struct som_data_struct)); if (abfd->tdata.som_data == NULL) - return false; - return true; + return FALSE; + return TRUE; } /* Initialize some information in the file header. This routine makes not attempt at doing the right thing for a full executable; it is only meant to handle relocatable objects. */ -static boolean +static bfd_boolean som_prep_headers (abfd) bfd *abfd; { @@ -2296,7 +2323,7 @@ som_prep_headers (abfd) /* Make and attach a file header to the BFD. */ file_hdr = (struct header *) bfd_zalloc (abfd, amt); if (file_hdr == NULL) - return false; + return FALSE; obj_som_file_hdr (abfd) = file_hdr; if (abfd->flags & (EXEC_P | DYNAMIC)) @@ -2307,7 +2334,7 @@ som_prep_headers (abfd) obj_som_exec_hdr (abfd) = (struct som_exec_auxhdr *) bfd_zalloc (abfd, amt); if (obj_som_exec_hdr (abfd) == NULL) - return false; + return FALSE; if (abfd->flags & D_PAGED) file_hdr->a_magic = DEMAND_MAGIC; @@ -2351,7 +2378,7 @@ som_prep_headers (abfd) som_section_data (section)->space_dict = (struct space_dictionary_record *) bfd_zalloc (abfd, amt); if (som_section_data (section)->space_dict == NULL) - return false; + return FALSE; /* Set space attributes. Note most attributes of SOM spaces are set based on the subspaces it contains. */ som_section_data (section)->space_dict->loader_fix_index = -1; @@ -2374,7 +2401,7 @@ som_prep_headers (abfd) som_section_data (section)->subspace_dict = (struct subspace_dictionary_record *) bfd_zalloc (abfd, amt); if (som_section_data (section)->subspace_dict == NULL) - return false; + return FALSE; /* Set subspace attributes. Basic stuff is done here, additional attributes are filled in later as more information becomes @@ -2409,58 +2436,58 @@ som_prep_headers (abfd) som_section_data (section)->copy_data->quadrant; } } - return true; + return TRUE; } -/* Return true if the given section is a SOM space, false otherwise. */ +/* Return TRUE if the given section is a SOM space, FALSE otherwise. */ -static boolean +static bfd_boolean som_is_space (section) asection *section; { /* If no copy data is available, then it's neither a space nor a subspace. */ if (som_section_data (section)->copy_data == NULL) - return false; + return FALSE; /* If the containing space isn't the same as the given section, then this isn't a space. */ if (som_section_data (section)->copy_data->container != section && (som_section_data (section)->copy_data->container->output_section != section)) - return false; + return FALSE; /* OK. Must be a space. */ - return true; + return TRUE; } -/* Return true if the given section is a SOM subspace, false otherwise. */ +/* Return TRUE if the given section is a SOM subspace, FALSE otherwise. */ -static boolean +static bfd_boolean som_is_subspace (section) asection *section; { /* If no copy data is available, then it's neither a space nor a subspace. */ if (som_section_data (section)->copy_data == NULL) - return false; + return FALSE; /* If the containing space is the same as the given section, then this isn't a subspace. */ if (som_section_data (section)->copy_data->container == section || (som_section_data (section)->copy_data->container->output_section == section)) - return false; + return FALSE; /* OK. Must be a subspace. */ - return true; + return TRUE; } -/* Return true if the given space containins the given subspace. It +/* Return TRUE if the given space containins the given subspace. It is safe to assume space really is a space, and subspace really is a subspace. */ -static boolean +static bfd_boolean som_is_container (space, subspace) asection *space, *subspace; { @@ -2658,7 +2685,7 @@ som_prep_for_fixups (abfd, syms, num_sym } } -static boolean +static bfd_boolean som_write_fixups (abfd, current_offset, total_reloc_sizep) bfd *abfd; unsigned long current_offset; @@ -2728,7 +2755,7 @@ som_write_fixups (abfd, current_offset, for this subspace in preparation for writing out its fixup stream. */ if (bfd_seek (abfd, current_offset + total_reloc_size, SEEK_SET) != 0) - return false; + return FALSE; /* Buffer space has already been allocated. Just perform some initialization here. */ @@ -2767,7 +2794,7 @@ som_write_fixups (abfd, current_offset, { amt = p - tmp_space; if (bfd_bwrite ((PTR) tmp_space, amt, abfd) != amt) - return false; + return FALSE; p = tmp_space; som_initialize_reloc_queue (reloc_queue); @@ -3028,14 +3055,14 @@ som_write_fixups (abfd, current_offset, /* Last BFD relocation for a subspace has been processed. Map the rest of the subspace with R_NO_RELOCATION fixups. */ - p = som_reloc_skip (abfd, bfd_section_size (abfd, subsection) - - reloc_offset, + p = som_reloc_skip (abfd, (bfd_section_size (abfd, subsection) + - reloc_offset), p, &subspace_reloc_size, reloc_queue); /* Scribble out the relocations. */ amt = p - tmp_space; if (bfd_bwrite ((PTR) tmp_space, amt, abfd) != amt) - return false; + return FALSE; p = tmp_space; total_reloc_size += subspace_reloc_size; @@ -3045,12 +3072,12 @@ som_write_fixups (abfd, current_offset, section = section->next; } *total_reloc_sizep = total_reloc_size; - return true; + return TRUE; } /* Write out the space/subspace string table. */ -static boolean +static bfd_boolean som_write_space_strings (abfd, current_offset, string_sizep) bfd *abfd; unsigned long current_offset; @@ -3068,7 +3095,7 @@ som_write_space_strings (abfd, current_o /* Seek to the start of the space strings in preparation for writing them out. */ if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0) - return false; + return FALSE; /* Walk through all the spaces and subspaces (order is not important) building up and writing string table entries for their names. */ @@ -3085,27 +3112,27 @@ som_write_space_strings (abfd, current_o length = strlen (section->name); /* If there is not enough room for the next entry, then dump the - current buffer contents now and maybe allocate a larger - buffer. Each entry will take 4 bytes to hold the string - length + the string itself + null terminator. */ + current buffer contents now and maybe allocate a larger + buffer. Each entry will take 4 bytes to hold the string + length + the string itself + null terminator. */ if (p - tmp_space + 5 + length > tmp_space_size) { /* Flush buffer before refilling or reallocating. */ amt = p - tmp_space; if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt) - return false; + return FALSE; /* Reallocate if now empty buffer still too small. */ if (5 + length > tmp_space_size) { /* Ensure a minimum growth factor to avoid O(n**2) space - consumption for n strings. The optimal minimum - factor seems to be 2, as no other value can guarantee - wasting less than 50% space. (Note that we cannot - deallocate space allocated by `alloca' without - returning from this function.) The same technique is - used a few more times below when a buffer is - reallocated. */ + consumption for n strings. The optimal minimum + factor seems to be 2, as no other value can guarantee + wasting less than 50% space. (Note that we cannot + deallocate space allocated by `alloca' without + returning from this function.) The same technique is + used a few more times below when a buffer is + reallocated. */ tmp_space_size = MAX (2 * tmp_space_size, 5 + length); tmp_space = alloca (tmp_space_size); } @@ -3144,14 +3171,14 @@ som_write_space_strings (abfd, current_o contained in a partial block. */ amt = p - tmp_space; if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt) - return false; + return FALSE; *string_sizep = strings_size; - return true; + return TRUE; } /* Write out the symbol string table. */ -static boolean +static bfd_boolean som_write_symbol_strings (abfd, current_offset, syms, num_syms, string_sizep, compilation_unit) bfd *abfd; @@ -3190,7 +3217,7 @@ som_write_symbol_strings (abfd, current_ /* Seek to the start of the space strings in preparation for writing them out. */ if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0) - return false; + return FALSE; if (compilation_unit) { @@ -3206,7 +3233,7 @@ som_write_symbol_strings (abfd, current_ /* Flush buffer before refilling or reallocating. */ amt = p - tmp_space; if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt) - return false; + return FALSE; /* Reallocate if now empty buffer still too small. */ if (5 + length > tmp_space_size) @@ -3217,7 +3244,7 @@ som_write_symbol_strings (abfd, current_ } /* Reset to beginning of the (possibly new) buffer - space. */ + space. */ p = tmp_space; } @@ -3275,7 +3302,7 @@ som_write_symbol_strings (abfd, current_ /* Flush buffer before refilling or reallocating. */ amt = p - tmp_space; if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt) - return false; + return FALSE; /* Reallocate if now empty buffer still too small. */ if (5 + length > tmp_space_size) @@ -3316,17 +3343,17 @@ som_write_symbol_strings (abfd, current_ /* Scribble out any partial block. */ amt = p - tmp_space; if (bfd_bwrite ((PTR) &tmp_space[0], amt, abfd) != amt) - return false; + return FALSE; *string_sizep = strings_size; - return true; + return TRUE; } /* Compute variable information to be placed in the SOM headers, space/subspace dictionaries, relocation streams, etc. Begin writing parts of the object file. */ -static boolean +static bfd_boolean som_begin_writing (abfd) bfd *abfd; { @@ -3372,14 +3399,14 @@ som_begin_writing (abfd) bfd_size_type len; if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0) - return false; + return FALSE; /* Write the aux_id structure and the string length. */ len = sizeof (struct aux_id) + sizeof (unsigned int); obj_som_file_hdr (abfd)->aux_header_size += len; current_offset += len; if (bfd_bwrite ((PTR) obj_som_version_hdr (abfd), len, abfd) != len) - return false; + return FALSE; /* Write the version string. */ len = obj_som_version_hdr (abfd)->header_id.length - sizeof (int); @@ -3387,7 +3414,7 @@ som_begin_writing (abfd) current_offset += len; if (bfd_bwrite ((PTR) obj_som_version_hdr (abfd)->user_string, len, abfd) != len) - return false; + return FALSE; } if (obj_som_copyright_hdr (abfd) != NULL) @@ -3395,14 +3422,14 @@ som_begin_writing (abfd) bfd_size_type len; if (bfd_seek (abfd, (file_ptr) current_offset, SEEK_SET) != 0) - return false; + return FALSE; /* Write the aux_id structure and the string length. */ len = sizeof (struct aux_id) + sizeof (unsigned int); obj_som_file_hdr (abfd)->aux_header_size += len; current_offset += len; if (bfd_bwrite ((PTR) obj_som_copyright_hdr (abfd), len, abfd) != len) - return false; + return FALSE; /* Write the copyright string. */ len = obj_som_copyright_hdr (abfd)->header_id.length - sizeof (int); @@ -3410,7 +3437,7 @@ som_begin_writing (abfd) current_offset += len; if (bfd_bwrite ((PTR) obj_som_copyright_hdr (abfd)->copyright, len, abfd) != len) - return false; + return FALSE; } /* Next comes the initialization pointers; we have no initialization @@ -3458,7 +3485,7 @@ som_begin_writing (abfd) /* Scribble out the space strings. */ if (! som_write_space_strings (abfd, current_offset, &strings_size)) - return false; + return FALSE; /* Record total string table size in the header and update the current offset. */ @@ -3655,9 +3682,9 @@ som_begin_writing (abfd) if (abfd->flags & (EXEC_P | DYNAMIC)) current_offset = SOM_ALIGN (current_offset, PA_PAGESIZE); if (bfd_seek (abfd, (file_ptr) current_offset - 1, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite ((PTR) "", (bfd_size_type) 1, abfd) != 1) - return false; + return FALSE; obj_som_file_hdr (abfd)->unloadable_sp_size = current_offset - obj_som_file_hdr (abfd)->unloadable_sp_location; @@ -3669,12 +3696,12 @@ som_begin_writing (abfd) /* Done. Store the total size of the SOM so far. */ obj_som_file_hdr (abfd)->som_length = current_offset; - return true; + return TRUE; } /* Finally, scribble out the various headers to the disk. */ -static boolean +static bfd_boolean som_finish_writing (abfd) bfd *abfd; { @@ -3730,7 +3757,7 @@ som_finish_writing (abfd) if (! som_write_symbol_strings (abfd, current_offset, syms, num_syms, &strings_size, obj_som_compilation_unit (abfd))) - return false; + return FALSE; /* Record total string table size in header and update the current offset. */ @@ -3751,7 +3778,7 @@ som_finish_writing (abfd) /* Write the fixups and update fields in subspace headers which relate to the fixup stream. */ if (! som_write_fixups (abfd, current_offset, &total_reloc_size)) - return false; + return FALSE; /* Record the total size of the fixup stream in the file header. */ obj_som_file_hdr (abfd)->fixup_request_total = total_reloc_size; @@ -3762,7 +3789,7 @@ som_finish_writing (abfd) /* Now that the symbol table information is complete, build and write the symbol table. */ if (! som_build_and_write_symbol_table (abfd)) - return false; + return FALSE; /* Subspaces are written first so that we can set up information about them in their containing spaces as the subspace is written. */ @@ -3770,7 +3797,7 @@ som_finish_writing (abfd) /* Seek to the start of the subspace dictionary records. */ location = obj_som_file_hdr (abfd)->subspace_location; if (bfd_seek (abfd, location, SEEK_SET) != 0) - return false; + return FALSE; section = abfd->sections; /* Now for each loadable space write out records for its subspaces. */ @@ -3820,7 +3847,7 @@ som_finish_writing (abfd) amt = sizeof (struct subspace_dictionary_record); if (bfd_bwrite ((PTR) som_section_data (subsection)->subspace_dict, amt, abfd) != amt) - return false; + return FALSE; } /* Goto the next section. */ section = section->next; @@ -3876,7 +3903,7 @@ som_finish_writing (abfd) amt = sizeof (struct subspace_dictionary_record); if (bfd_bwrite ((PTR) som_section_data (subsection)->subspace_dict, amt, abfd) != amt) - return false; + return FALSE; } /* Goto the next section. */ section = section->next; @@ -3889,7 +3916,7 @@ som_finish_writing (abfd) dictionary records. */ location = obj_som_file_hdr (abfd)->space_location; if (bfd_seek (abfd, location, SEEK_SET) != 0) - return false; + return FALSE; section = abfd->sections; for (i = 0; i < num_spaces; i++) @@ -3902,7 +3929,7 @@ som_finish_writing (abfd) amt = sizeof (struct space_dictionary_record); if (bfd_bwrite ((PTR) som_section_data (section)->space_dict, amt, abfd) != amt) - return false; + return FALSE; /* Goto the next section. */ section = section->next; @@ -3913,11 +3940,11 @@ som_finish_writing (abfd) { location = obj_som_file_hdr (abfd)->compiler_location; if (bfd_seek (abfd, location, SEEK_SET) != 0) - return false; + return FALSE; amt = COMPUNITSZ; if (bfd_bwrite ((PTR) obj_som_compilation_unit (abfd), amt, abfd) != amt) - return false; + return FALSE; } /* Setting of the system_id has to happen very late now that copying of @@ -3938,10 +3965,10 @@ som_finish_writing (abfd) /* Only thing left to do is write out the file header. It is always at location zero. Seek there and write it. */ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) - return false; + return FALSE; amt = sizeof (struct header); if (bfd_bwrite ((PTR) obj_som_file_hdr (abfd), amt, abfd) != amt) - return false; + return FALSE; /* Now write the exec header. */ if (abfd->flags & (EXEC_P | DYNAMIC)) @@ -3970,18 +3997,18 @@ som_finish_writing (abfd) || exec_header->exec_dfile + exec_header->exec_dsize > som_length) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } if (bfd_seek (abfd, obj_som_file_hdr (abfd)->aux_header_location, SEEK_SET) != 0) - return false; + return FALSE; amt = AUX_HDR_SIZE; if (bfd_bwrite ((PTR) exec_header, amt, abfd) != amt) - return false; + return FALSE; } - return true; + return TRUE; } /* Compute and return the checksum for a SOM file header. */ @@ -4116,16 +4143,16 @@ som_bfd_derive_misc_symbol_info (abfd, s /* The secondary_def field is for weak symbols. */ if (sym->flags & BSF_WEAK) - info->secondary_def = true; + info->secondary_def = TRUE; else - info->secondary_def = false; + info->secondary_def = FALSE; } /* Build and write, in one big chunk, the entire symbol table for this BFD. */ -static boolean +static bfd_boolean som_build_and_write_symbol_table (abfd) bfd *abfd; { @@ -4170,23 +4197,23 @@ som_build_and_write_symbol_table (abfd) /* Everything is ready, seek to the right location and scribble out the symbol table. */ if (bfd_seek (abfd, symtab_location, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite ((PTR) som_symtab, symtab_size, abfd) != symtab_size) goto error_return; if (som_symtab != NULL) free (som_symtab); - return true; + return TRUE; error_return: if (som_symtab != NULL) free (som_symtab); - return false; + return FALSE; } /* Write an object in SOM format. */ -static boolean +static bfd_boolean som_write_object_contents (abfd) bfd *abfd; { @@ -4195,7 +4222,7 @@ som_write_object_contents (abfd) /* Set up fixed parts of the file, space, and subspace headers. Notify the world that output has begun. */ som_prep_headers (abfd); - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; /* Start writing the object file. This include all the string tables, fixup streams, and other portions of the object file. */ som_begin_writing (abfd); @@ -4206,7 +4233,7 @@ som_write_object_contents (abfd) /* Read and save the string table associated with the given BFD. */ -static boolean +static bfd_boolean som_slurp_string_table (abfd) bfd *abfd; { @@ -4215,7 +4242,7 @@ som_slurp_string_table (abfd) /* Use the saved version if its available. */ if (obj_som_stringtab (abfd) != NULL) - return true; + return TRUE; /* I don't think this can currently happen, and I'm not sure it should really be an error, but it's better than getting unpredictable results @@ -4223,24 +4250,24 @@ som_slurp_string_table (abfd) if (obj_som_stringtab_size (abfd) == 0) { bfd_set_error (bfd_error_no_symbols); - return false; + return FALSE; } /* Allocate and read in the string table. */ amt = obj_som_stringtab_size (abfd); stringtab = bfd_zmalloc (amt); if (stringtab == NULL) - return false; + return FALSE; if (bfd_seek (abfd, obj_som_str_filepos (abfd), SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bread (stringtab, amt, abfd) != amt) - return false; + return FALSE; /* Save our results and return success. */ obj_som_stringtab (abfd) = stringtab; - return true; + return TRUE; } /* Return the amount of data (in bytes) required to hold the symbol @@ -4471,7 +4498,7 @@ som_slurp_symbol_table (abfd) sym->symbol.flags |= BSF_DEBUGGING; /* Note increment at bottom of loop, since we skip some symbols - we can not include it as part of the for statement. */ + we can not include it as part of the for statement. */ sym++; } @@ -4484,12 +4511,12 @@ som_slurp_symbol_table (abfd) successful_return: if (buf != NULL) free (buf); - return (true); + return (TRUE); error_return: if (buf != NULL) free (buf); - return false; + return FALSE; } /* Canonicalize a SOM symbol table. Return the number of entries @@ -4563,7 +4590,7 @@ som_print_symbol (abfd, afile, symbol, h } } -static boolean +static bfd_boolean som_bfd_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -4591,7 +4618,7 @@ som_set_reloc_info (fixup, end, internal arelent *internal_relocs; asection *section; asymbol **symbols; - boolean just_count; + bfd_boolean just_count; { unsigned int op, varname, deallocate_contents = 0; unsigned char *end_fixups = &fixup[end]; @@ -4881,7 +4908,7 @@ som_set_reloc_info (fixup, end, internal if (rptr->addend == 0 && !section->contents) { /* Got to read the damn contents first. We don't - bother saving the contents (yet). Add it one + bother saving the contents (yet). Add it one day if the need arises. */ section->contents = bfd_malloc (section->_raw_size); if (section->contents == NULL) @@ -4925,15 +4952,15 @@ som_set_reloc_info (fixup, end, internal /* Read in the relocs (aka fixups in SOM terms) for a section. som_get_reloc_upper_bound calls this routine with JUST_COUNT - set to true to indicate it only needs a count of the number + set to TRUE to indicate it only needs a count of the number of actual relocations. */ -static boolean +static bfd_boolean som_slurp_reloc_table (abfd, section, symbols, just_count) bfd *abfd; asection *section; asymbol **symbols; - boolean just_count; + bfd_boolean just_count; { char *external_relocs; unsigned int fixup_stream_size; @@ -4944,7 +4971,7 @@ som_slurp_reloc_table (abfd, section, sy fixup_stream_size = som_section_data (section)->reloc_size; /* If there were no relocations, then there is nothing to do. */ if (section->reloc_count == 0) - return true; + return TRUE; /* If reloc_count is -1, then the relocation stream has not been parsed. We must do so now to know how many relocations exist. */ @@ -4953,45 +4980,45 @@ som_slurp_reloc_table (abfd, section, sy amt = fixup_stream_size; external_relocs = (char *) bfd_malloc (amt); if (external_relocs == (char *) NULL) - return false; + return FALSE; /* Read in the external forms. */ if (bfd_seek (abfd, obj_som_reloc_filepos (abfd) + section->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bread (external_relocs, amt, abfd) != amt) - return false; + return FALSE; /* Let callers know how many relocations found. also save the relocation stream as we will need it again. */ section->reloc_count = som_set_reloc_info (external_relocs, fixup_stream_size, - NULL, NULL, NULL, true); + NULL, NULL, NULL, TRUE); som_section_data (section)->reloc_stream = external_relocs; } /* If the caller only wanted a count, then return now. */ if (just_count) - return true; + return TRUE; num_relocs = section->reloc_count; external_relocs = som_section_data (section)->reloc_stream; /* Return saved information about the relocations if it is available. */ if (section->relocation != (arelent *) NULL) - return true; + return TRUE; amt = num_relocs; amt *= sizeof (arelent); internal_relocs = (arelent *) bfd_zalloc (abfd, (amt)); if (internal_relocs == (arelent *) NULL) - return false; + return FALSE; /* Process and internalize the relocations. */ som_set_reloc_info (external_relocs, fixup_stream_size, - internal_relocs, section, symbols, false); + internal_relocs, section, symbols, FALSE); /* We're done with the external relocations. Free them. */ free (external_relocs); @@ -4999,7 +5026,7 @@ som_slurp_reloc_table (abfd, section, sy /* Save our results and return success. */ section->relocation = internal_relocs; - return (true); + return TRUE; } /* Return the number of bytes required to store the relocation @@ -5014,7 +5041,7 @@ som_get_reloc_upper_bound (abfd, asect) and parse it to determine how many relocations exist. */ if (asect->flags & SEC_RELOC) { - if (! som_slurp_reloc_table (abfd, asect, NULL, true)) + if (! som_slurp_reloc_table (abfd, asect, NULL, TRUE)) return -1; return (asect->reloc_count + 1) * sizeof (arelent *); } @@ -5035,7 +5062,7 @@ som_canonicalize_reloc (abfd, section, r arelent *tblptr; int count; - if (! som_slurp_reloc_table (abfd, section, symbols, false)) + if (! som_slurp_reloc_table (abfd, section, symbols, FALSE)) return -1; count = section->reloc_count; @@ -5052,7 +5079,7 @@ extern const bfd_target som_vec; /* A hook to set up object file dependent section information. */ -static boolean +static bfd_boolean som_new_section_hook (abfd, newsect) bfd *abfd; asection *newsect; @@ -5060,17 +5087,17 @@ som_new_section_hook (abfd, newsect) bfd_size_type amt = sizeof (struct som_section_data_struct); newsect->used_by_bfd = (PTR) bfd_zalloc (abfd, amt); if (!newsect->used_by_bfd) - return false; + return FALSE; newsect->alignment_power = 3; /* We allow more than three sections internally. */ - return true; + return TRUE; } /* Copy any private info we understand from the input symbol to the output symbol. */ -static boolean +static bfd_boolean som_bfd_copy_private_symbol_data (ibfd, isymbol, obfd, osymbol) bfd *ibfd; asymbol *isymbol; @@ -5083,20 +5110,20 @@ som_bfd_copy_private_symbol_data (ibfd, /* One day we may try to grok other private data. */ if (ibfd->xvec->flavour != bfd_target_som_flavour || obfd->xvec->flavour != bfd_target_som_flavour) - return false; + return FALSE; /* The only private information we need to copy is the argument relocation bits. */ output_symbol->tc_data.ap.hppa_arg_reloc = input_symbol->tc_data.ap.hppa_arg_reloc; - return true; + return TRUE; } /* Copy any private info we understand from the input section to the output section. */ -static boolean +static bfd_boolean som_bfd_copy_private_section_data (ibfd, isection, obfd, osection) bfd *ibfd; asection *isection; @@ -5109,13 +5136,13 @@ som_bfd_copy_private_section_data (ibfd, if (ibfd->xvec->flavour != bfd_target_som_flavour || obfd->xvec->flavour != bfd_target_som_flavour || (!som_is_space (isection) && !som_is_subspace (isection))) - return true; + return TRUE; amt = sizeof (struct som_copyable_section_data_struct); som_section_data (osection)->copy_data = (struct som_copyable_section_data_struct *) bfd_zalloc (obfd, amt); if (som_section_data (osection)->copy_data == NULL) - return false; + return FALSE; memcpy (som_section_data (osection)->copy_data, som_section_data (isection)->copy_data, @@ -5126,38 +5153,38 @@ som_bfd_copy_private_section_data (ibfd, som_section_data (osection)->copy_data->container = som_section_data (osection)->copy_data->container->output_section; - return true; + return TRUE; } /* Copy any private info we understand from the input bfd to the output bfd. */ -static boolean +static bfd_boolean som_bfd_copy_private_bfd_data (ibfd, obfd) bfd *ibfd, *obfd; { /* One day we may try to grok other private data. */ if (ibfd->xvec->flavour != bfd_target_som_flavour || obfd->xvec->flavour != bfd_target_som_flavour) - return true; + return TRUE; /* Allocate some memory to hold the data we need. */ obj_som_exec_data (obfd) = (struct som_exec_data *) bfd_zalloc (obfd, (bfd_size_type) sizeof (struct som_exec_data)); if (obj_som_exec_data (obfd) == NULL) - return false; + return FALSE; /* Now copy the data. */ memcpy (obj_som_exec_data (obfd), obj_som_exec_data (ibfd), sizeof (struct som_exec_data)); - return true; + return TRUE; } /* Set backend info for sections which can not be described in the BFD data structures. */ -boolean +bfd_boolean bfd_som_set_section_attributes (section, defined, private, sort_key, spnum) asection *section; int defined; @@ -5173,20 +5200,20 @@ bfd_som_set_section_attributes (section, (struct som_copyable_section_data_struct *) bfd_zalloc (section->owner, amt); if (som_section_data (section)->copy_data == NULL) - return false; + return FALSE; } som_section_data (section)->copy_data->sort_key = sort_key; som_section_data (section)->copy_data->is_defined = defined; som_section_data (section)->copy_data->is_private = private; som_section_data (section)->copy_data->container = section; som_section_data (section)->copy_data->space_number = spnum; - return true; + return TRUE; } /* Set backend info for subsections which can not be described in the BFD data structures. */ -boolean +bfd_boolean bfd_som_set_subsection_attributes (section, container, access, sort_key, quadrant) asection *section; @@ -5203,13 +5230,13 @@ bfd_som_set_subsection_attributes (secti (struct som_copyable_section_data_struct *) bfd_zalloc (section->owner, amt); if (som_section_data (section)->copy_data == NULL) - return false; + return FALSE; } som_section_data (section)->copy_data->sort_key = sort_key; som_section_data (section)->copy_data->access_control_bits = access; som_section_data (section)->copy_data->quadrant = quadrant; som_section_data (section)->copy_data->container = container; - return true; + return TRUE; } /* Set the full SOM symbol type. SOM needs far more symbol information @@ -5229,7 +5256,7 @@ bfd_som_set_symbol_type (symbol, type) /* Attach an auxiliary header to the BFD backend so that it may be written into the object file. */ -boolean +bfd_boolean bfd_som_attach_aux_hdr (abfd, type, string) bfd *abfd; int type; @@ -5248,7 +5275,7 @@ bfd_som_attach_aux_hdr (abfd, type, stri obj_som_version_hdr (abfd) = (struct user_string_aux_hdr *) bfd_zalloc (abfd, amt); if (!obj_som_version_hdr (abfd)) - return false; + return FALSE; obj_som_version_hdr (abfd)->header_id.type = VERSION_AUX_ID; obj_som_version_hdr (abfd)->header_id.length = len + pad; obj_som_version_hdr (abfd)->header_id.length += sizeof (int); @@ -5266,20 +5293,20 @@ bfd_som_attach_aux_hdr (abfd, type, stri obj_som_copyright_hdr (abfd) = (struct copyright_aux_hdr *) bfd_zalloc (abfd, amt); if (!obj_som_copyright_hdr (abfd)) - return false; + return FALSE; obj_som_copyright_hdr (abfd)->header_id.type = COPYRIGHT_AUX_ID; obj_som_copyright_hdr (abfd)->header_id.length = len + pad; obj_som_copyright_hdr (abfd)->header_id.length += sizeof (int); obj_som_copyright_hdr (abfd)->string_length = len; strcpy (obj_som_copyright_hdr (abfd)->copyright, string); } - return true; + return TRUE; } -/* Attach an compilation unit header to the BFD backend so that it may be +/* Attach a compilation unit header to the BFD backend so that it may be written into the object file. */ -boolean +bfd_boolean bfd_som_attach_compilation_unit (abfd, name, language_name, product_id, version_id) bfd *abfd; @@ -5290,14 +5317,14 @@ bfd_som_attach_compilation_unit (abfd, n { COMPUNIT *n = (COMPUNIT *) bfd_zalloc (abfd, (bfd_size_type) COMPUNITSZ); if (n == NULL) - return false; + return FALSE; #define STRDUP(f) \ if (f != NULL) \ { \ n->f.n_name = bfd_alloc (abfd, (bfd_size_type) strlen (f) + 1); \ if (n->f.n_name == NULL) \ - return false; \ + return FALSE; \ strcpy (n->f.n_name, f); \ } @@ -5310,10 +5337,10 @@ bfd_som_attach_compilation_unit (abfd, n obj_som_compilation_unit (abfd) = n; - return true; + return TRUE; } -static boolean +static bfd_boolean som_get_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -5322,15 +5349,15 @@ som_get_section_contents (abfd, section, bfd_size_type count; { if (count == 0 || ((section->flags & SEC_HAS_CONTENTS) == 0)) - return true; + return TRUE; if ((bfd_size_type) (offset+count) > section->_raw_size || bfd_seek (abfd, (file_ptr) (section->filepos + offset), SEEK_SET) != 0 || bfd_bread (location, count, abfd) != count) - return (false); /* on error */ - return (true); + return FALSE; /* on error */ + return TRUE; } -static boolean +static bfd_boolean som_set_section_contents (abfd, section, location, offset, count) bfd *abfd; sec_ptr section; @@ -5343,7 +5370,7 @@ som_set_section_contents (abfd, section, /* Set up fixed parts of the file, space, and subspace headers. Notify the world that output has begun. */ som_prep_headers (abfd); - abfd->output_has_begun = true; + abfd->output_has_begun = TRUE; /* Start writing the object file. This include all the string tables, fixup streams, and other portions of the object file. */ som_begin_writing (abfd); @@ -5353,20 +5380,20 @@ som_set_section_contents (abfd, section, are not generated at run time by the OS). */ if (!som_is_subspace (section) || ((section->flags & SEC_HAS_CONTENTS) == 0)) - return true; + return TRUE; /* Seek to the proper offset within the object file and write the data. */ offset += som_section_data (section)->subspace_dict->file_loc_init_value; if (bfd_seek (abfd, offset, SEEK_SET) != 0) - return false; + return FALSE; if (bfd_bwrite ((PTR) location, count, abfd) != count) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean som_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; @@ -5376,7 +5403,7 @@ som_set_arch_mach (abfd, arch, machine) return bfd_default_set_arch_mach (abfd, arch, machine); } -static boolean +static bfd_boolean som_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd ATTRIBUTE_UNUSED; @@ -5387,18 +5414,18 @@ som_find_nearest_line (abfd, section, sy const char **functionname_ptr ATTRIBUTE_UNUSED; unsigned int *line_ptr ATTRIBUTE_UNUSED; { - return (false); + return FALSE; } static int som_sizeof_headers (abfd, reloc) bfd *abfd ATTRIBUTE_UNUSED; - boolean reloc ATTRIBUTE_UNUSED; + bfd_boolean reloc ATTRIBUTE_UNUSED; { (*_bfd_error_handler) (_("som_sizeof_headers unimplemented")); fflush (stderr); abort (); - return (0); + return 0; } /* Return the single-character symbol type corresponding to @@ -5465,7 +5492,7 @@ som_get_symbol_info (ignore_abfd, symbol /* Count the number of symbols in the archive symbol table. Necessary so that we can allocate space for all the carsyms at once. */ -static boolean +static bfd_boolean som_bfd_count_ar_symbols (abfd, lst_header, count) bfd *abfd; struct lst_header *lst_header; @@ -5530,18 +5557,18 @@ som_bfd_count_ar_symbols (abfd, lst_head } if (hash_table != NULL) free (hash_table); - return true; + return TRUE; error_return: if (hash_table != NULL) free (hash_table); - return false; + return FALSE; } /* Fill in the canonical archive symbols (SYMS) from the archive described by ABFD and LST_HEADER. */ -static boolean +static bfd_boolean som_bfd_fill_in_ar_symbols (abfd, lst_header, syms) bfd *abfd; struct lst_header *lst_header; @@ -5671,19 +5698,19 @@ som_bfd_fill_in_ar_symbols (abfd, lst_he free (hash_table); if (som_dict != NULL) free (som_dict); - return true; + return TRUE; error_return: if (hash_table != NULL) free (hash_table); if (som_dict != NULL) free (som_dict); - return false; + return FALSE; } /* Read in the LST from the archive. */ -static boolean +static bfd_boolean som_slurp_armap (abfd) bfd *abfd; { @@ -5697,29 +5724,29 @@ som_slurp_armap (abfd) /* Special cases. */ if (i == 0) - return true; + return TRUE; if (i != 16) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0) - return false; + return FALSE; /* For archives without .o files there is no symbol table. */ if (strncmp (nextname, "/ ", 16)) { - bfd_has_map (abfd) = false; - return true; + bfd_has_map (abfd) = FALSE; + return TRUE; } /* Read in and sanity check the archive header. */ amt = sizeof (struct ar_hdr); if (bfd_bread ((PTR) &ar_header, amt, abfd) != amt) - return false; + return FALSE; if (strncmp (ar_header.ar_fmag, ARFMAG, 2)) { bfd_set_error (bfd_error_malformed_archive); - return false; + return FALSE; } /* How big is the archive symbol table entry? */ @@ -5728,7 +5755,7 @@ som_slurp_armap (abfd) if (errno != 0) { bfd_set_error (bfd_error_malformed_archive); - return false; + return FALSE; } /* Save off the file offset of the first real user data. */ @@ -5738,23 +5765,23 @@ som_slurp_armap (abfd) in just a minute. */ amt = sizeof (struct lst_header); if (bfd_bread ((PTR) &lst_header, amt, abfd) != amt) - return false; + return FALSE; /* Sanity check. */ if (lst_header.a_magic != LIBMAGIC) { bfd_set_error (bfd_error_malformed_archive); - return false; + return FALSE; } /* Count the number of symbols in the library symbol table. */ if (! som_bfd_count_ar_symbols (abfd, &lst_header, &ardata->symdef_count)) - return false; + return FALSE; /* Get back to the start of the library symbol table. */ if (bfd_seek (abfd, (ardata->first_file_filepos - parsed_size + sizeof (struct lst_header)), SEEK_SET) != 0) - return false; + return FALSE; /* Initializae the cache and allocate space for the library symbols. */ ardata->cache = 0; @@ -5762,20 +5789,20 @@ som_slurp_armap (abfd) amt *= sizeof (carsym); ardata->symdefs = (carsym *) bfd_alloc (abfd, amt); if (!ardata->symdefs) - return false; + return FALSE; /* Now fill in the canonical archive symbols. */ if (! som_bfd_fill_in_ar_symbols (abfd, &lst_header, &ardata->symdefs)) - return false; + return FALSE; /* Seek back to the "first" file in the archive. Note the "first" file may be the extended name table. */ if (bfd_seek (abfd, ardata->first_file_filepos, SEEK_SET) != 0) - return false; + return FALSE; /* Notify the generic archive code that we have a symbol map. */ - bfd_has_map (abfd) = true; - return true; + bfd_has_map (abfd) = TRUE; + return TRUE; } /* Begin preparing to write a SOM library symbol table. @@ -5783,7 +5810,7 @@ som_slurp_armap (abfd) As part of the prep work we need to determine the number of symbols and the size of the associated string section. */ -static boolean +static bfd_boolean som_bfd_prep_for_ar_write (abfd, num_syms, stringsize) bfd *abfd; unsigned int *num_syms, *stringsize; @@ -5812,7 +5839,7 @@ som_bfd_prep_for_ar_write (abfd, num_sym to it. It's a little slimey to grab the symbols via obj_som_symtab, but doing so avoids allocating lots of extra memory. */ if (! som_slurp_symbol_table (curr_bfd)) - return false; + return FALSE; sym = obj_som_symtab (curr_bfd); curr_count = bfd_get_symcount (curr_bfd); @@ -5851,7 +5878,7 @@ som_bfd_prep_for_ar_write (abfd, num_sym curr_bfd = curr_bfd->next; } - return true; + return TRUE; } /* Hash a symbol name based on the hashing algorithm presented in the @@ -5874,7 +5901,7 @@ som_bfd_ar_symbol_hash (symbol) /* Do the bulk of the work required to write the SOM library symbol table. */ -static boolean +static bfd_boolean som_bfd_ar_write_symbol_stuff (abfd, nsyms, string_size, lst, elength) bfd *abfd; unsigned int nsyms, string_size; @@ -6111,7 +6138,7 @@ som_bfd_ar_write_symbol_stuff (abfd, nsy free (lst_syms); if (strings != NULL) free (strings); - return true; + return TRUE; error_return: if (hash_table != NULL) @@ -6125,14 +6152,14 @@ som_bfd_ar_write_symbol_stuff (abfd, nsy if (strings != NULL) free (strings); - return false; + return FALSE; } /* Write out the LST for the archive. You'll never believe this is really how armaps are handled in SOM... */ -static boolean +static bfd_boolean som_write_armap (abfd, elength, map, orl_count, stridx) bfd *abfd; unsigned int elength; @@ -6152,7 +6179,7 @@ som_write_armap (abfd, elength, map, orl if (stat (abfd->filename, &statbuf) != 0) { bfd_set_error (bfd_error_system_call); - return false; + return FALSE; } /* Fudge factor. */ bfd_ardata (abfd)->armap_timestamp = statbuf.st_mtime + 60; @@ -6203,7 +6230,7 @@ som_write_armap (abfd, elength, map, orl /* Count how many symbols we will have on the hash chains and the size of the associated string table. */ if (! som_bfd_prep_for_ar_write (abfd, &nsyms, &stringsize)) - return false; + return FALSE; lst_size += sizeof (struct lst_symbol_record) * nsyms; @@ -6241,32 +6268,32 @@ som_write_armap (abfd, elength, map, orl /* Scribble out the ar header. */ amt = sizeof (struct ar_hdr); if (bfd_bwrite ((PTR) &hdr, amt, abfd) != amt) - return false; + return FALSE; /* Now scribble out the lst header. */ amt = sizeof (struct lst_header); if (bfd_bwrite ((PTR) &lst, amt, abfd) != amt) - return false; + return FALSE; /* Build and write the armap. */ if (!som_bfd_ar_write_symbol_stuff (abfd, nsyms, stringsize, lst, elength)) - return false; + return FALSE; /* Done. */ - return true; + return TRUE; } /* Free all information we have cached for this BFD. We can always read it again later if we need it. */ -static boolean +static bfd_boolean som_bfd_free_cached_info (abfd) bfd *abfd; { asection *o; if (bfd_get_format (abfd) != bfd_object) - return true; + return TRUE; #define FREE(x) if (x != NULL) { free (x); x = NULL; } /* Free the native string and symbol tables. */ @@ -6282,14 +6309,14 @@ som_bfd_free_cached_info (abfd) } #undef FREE - return true; + return TRUE; } /* End of miscellaneous support functions. */ /* Linker support functions. */ -static boolean +static bfd_boolean som_bfd_link_split_section (abfd, sec) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; @@ -6310,7 +6337,7 @@ som_bfd_link_split_section (abfd, sec) #define som_update_armap_timestamp bfd_true #define som_bfd_print_private_bfd_data _bfd_generic_bfd_print_private_bfd_data -#define som_get_lineno _bfd_nosymbols_get_lineno +#define som_get_lineno _bfd_nosymbols_get_lineno #define som_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define som_read_minisymbols _bfd_generic_read_minisymbols #define som_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol diff -uprN binutils-2.13.90.0.16/bfd/som.h binutils-2.13.90.0.18/bfd/som.h --- binutils-2.13.90.0.16/bfd/som.h Mon Oct 15 21:27:23 2001 +++ binutils-2.13.90.0.18/bfd/som.h Mon Dec 16 12:22:52 2002 @@ -1,6 +1,6 @@ /* HP PA-RISC SOM object file format: definitions internal to BFD. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000 - Free Software Foundation, Inc. + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2001, + 2002 Free Software Foundation, Inc. Contributed by the Center for Software Science at the University of Utah (pa-gdb-bugs@cs.utah.edu). @@ -225,16 +225,16 @@ struct som_section_data_struct #define R_HPPA_END_TRY R_END_TRY /* Exported functions, mostly for use by GAS. */ -boolean bfd_som_set_section_attributes PARAMS ((asection *, int, int, - unsigned int, int)); -boolean bfd_som_set_subsection_attributes PARAMS ((asection *, asection *, - int, unsigned int, int)); +bfd_boolean bfd_som_set_section_attributes + PARAMS ((asection *, int, int, unsigned int, int)); +bfd_boolean bfd_som_set_subsection_attributes + PARAMS ((asection *, asection *, int, unsigned int, int)); void bfd_som_set_symbol_type PARAMS ((asymbol *, unsigned int)); -boolean bfd_som_attach_aux_hdr PARAMS ((bfd *, int, char *)); +bfd_boolean bfd_som_attach_aux_hdr PARAMS ((bfd *, int, char *)); int ** hppa_som_gen_reloc_type PARAMS ((bfd *, int, int, enum hppa_reloc_field_selector_type_alt, int, asymbol *)); -boolean bfd_som_attach_compilation_unit +bfd_boolean bfd_som_attach_compilation_unit PARAMS ((bfd *, const char *, const char *, const char *, const char *)); #endif /* _SOM_H */ diff -uprN binutils-2.13.90.0.16/bfd/sparclinux.c binutils-2.13.90.0.18/bfd/sparclinux.c --- binutils-2.13.90.0.16/bfd/sparclinux.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/sparclinux.c Mon Dec 16 12:22:52 2002 @@ -19,12 +19,12 @@ along with this program; if not, write t Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#define TARGET_PAGE_SIZE 4096 -#define ZMAGIC_DISK_BLOCK_SIZE 1024 -#define SEGMENT_SIZE TARGET_PAGE_SIZE -#define TEXT_START_ADDR 0x0 -#define N_SHARED_LIB(x) 0 -#define BYTES_IN_WORD 4 +#define TARGET_PAGE_SIZE 4096 +#define ZMAGIC_DISK_BLOCK_SIZE 1024 +#define SEGMENT_SIZE TARGET_PAGE_SIZE +#define TEXT_START_ADDR 0x0 +#define N_SHARED_LIB(x) 0 +#define BYTES_IN_WORD 4 #define MACHTYPE_OK(mtype) ((mtype) == M_SPARC || (mtype) == M_UNKNOWN) @@ -52,10 +52,10 @@ extern const bfd_target MY(vec); static void MY_final_link_callback PARAMS ((bfd *, file_ptr *, file_ptr *, file_ptr *)); -static boolean sparclinux_bfd_final_link +static bfd_boolean sparclinux_bfd_final_link PARAMS ((bfd *abfd, struct bfd_link_info *info)); -static boolean +static bfd_boolean sparclinux_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -68,9 +68,9 @@ sparclinux_bfd_final_link (abfd, info) /* Set the machine type correctly. */ -static boolean sparclinux_write_object_contents PARAMS ((bfd *abfd)); +static bfd_boolean sparclinux_write_object_contents PARAMS ((bfd *abfd)); -static boolean +static bfd_boolean sparclinux_write_object_contents (abfd) bfd *abfd; { @@ -83,7 +83,7 @@ sparclinux_write_object_contents (abfd) WRITE_HEADERS(abfd, execp); - return true; + return TRUE; } #define MY_write_object_contents sparclinux_write_object_contents @@ -92,7 +92,7 @@ sparclinux_write_object_contents (abfd) /* See if a symbol name is a reference to the global offset table. */ #ifndef GOT_REF_PREFIX -#define GOT_REF_PREFIX "__GOT_" +#define GOT_REF_PREFIX "__GOT_" #endif #define IS_GOT_SYM(name) \ @@ -101,7 +101,7 @@ sparclinux_write_object_contents (abfd) /* See if a symbol name is a reference to the procedure linkage table. */ #ifndef PLT_REF_PREFIX -#define PLT_REF_PREFIX "__PLT_" +#define PLT_REF_PREFIX "__PLT_" #endif #define IS_PLT_SYM(name) \ @@ -179,16 +179,16 @@ static struct bfd_link_hash_table *linux PARAMS ((bfd *)); static struct fixup *new_fixup PARAMS ((struct bfd_link_info *, struct linux_link_hash_entry *, - bfd_vma, int)); -static boolean linux_link_create_dynamic_sections + bfd_vma, int)); +static bfd_boolean linux_link_create_dynamic_sections PARAMS ((bfd *, struct bfd_link_info *)); -static boolean linux_add_one_symbol +static bfd_boolean linux_add_one_symbol PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *, - bfd_vma, const char *, boolean, boolean, - struct bfd_link_hash_entry **)); -static boolean linux_tally_symbols + bfd_vma, const char *, bfd_boolean, bfd_boolean, + struct bfd_link_hash_entry **)); +static bfd_boolean linux_tally_symbols PARAMS ((struct linux_link_hash_entry *, PTR)); -static boolean linux_finish_dynamic_link +static bfd_boolean linux_finish_dynamic_link PARAMS ((bfd *, struct bfd_link_info *)); /* Routine to create an entry in an Linux link hash table. */ @@ -205,14 +205,14 @@ linux_link_hash_newfunc (entry, table, s subclass. */ if (ret == (struct linux_link_hash_entry *) NULL) ret = ((struct linux_link_hash_entry *) - bfd_hash_allocate (table, sizeof (struct linux_link_hash_entry))); + bfd_hash_allocate (table, sizeof (struct linux_link_hash_entry))); if (ret == NULL) return (struct bfd_hash_entry *) ret; /* Call the allocation method of the superclass. */ ret = ((struct linux_link_hash_entry *) - NAME(aout,link_hash_newfunc) ((struct bfd_hash_entry *) ret, - table, string)); + NAME(aout,link_hash_newfunc) ((struct bfd_hash_entry *) ret, + table, string)); if (ret != NULL) { /* Set local fields; there aren't any. */ @@ -234,7 +234,7 @@ linux_link_hash_table_create (abfd) if (ret == (struct linux_link_hash_table *) NULL) return (struct bfd_link_hash_table *) NULL; if (! NAME(aout,link_hash_table_init) (&ret->root, abfd, - linux_link_hash_newfunc)) + linux_link_hash_newfunc)) { free (ret); return (struct bfd_link_hash_table *) NULL; @@ -253,14 +253,14 @@ linux_link_hash_table_create (abfd) #define linux_link_hash_lookup(table, string, create, copy, follow) \ ((struct linux_link_hash_entry *) \ aout_link_hash_lookup (&(table)->root, (string), (create), (copy),\ - (follow))) + (follow))) /* Traverse a Linux link hash table. */ -#define linux_link_hash_traverse(table, func, info) \ - (aout_link_hash_traverse \ - (&(table)->root, \ - (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ +#define linux_link_hash_traverse(table, func, info) \ + (aout_link_hash_traverse \ + (&(table)->root, \ + (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ (info))) /* Get the Linux link hash table from the info structure. This is @@ -280,7 +280,7 @@ new_fixup (info, h, value, builtin) struct fixup *f; f = (struct fixup *) bfd_hash_allocate (&info->hash->table, - sizeof (struct fixup)); + sizeof (struct fixup)); if (f == NULL) return f; f->next = linux_hash_table (info)->fixup_list; @@ -300,7 +300,7 @@ new_fixup (info, h, value, builtin) know the size of the section, but that's OK - we just need to create it for now. */ -static boolean +static bfd_boolean linux_link_create_dynamic_sections (abfd, info) bfd *abfd; struct bfd_link_info *info ATTRIBUTE_UNUSED; @@ -312,25 +312,25 @@ linux_link_create_dynamic_sections (abfd flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_IN_MEMORY; /* We choose to use the name ".linux-dynamic" for the fixup table. - Why not? */ + Why not? */ s = bfd_make_section (abfd, ".linux-dynamic"); if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; s->_raw_size = 0; s->contents = 0; - return true; + return TRUE; } /* Function to add a single symbol to the linker hash table. This is a wrapper around _bfd_generic_link_add_one_symbol which handles the tweaking needed for dynamic linking support. */ -static boolean +static bfd_boolean linux_add_one_symbol (info, abfd, name, flags, section, value, string, - copy, collect, hashp) + copy, collect, hashp) struct bfd_link_info *info; bfd *abfd; const char *name; @@ -338,12 +338,12 @@ linux_add_one_symbol (info, abfd, name, asection *section; bfd_vma value; const char *string; - boolean copy; - boolean collect; + bfd_boolean copy; + bfd_boolean collect; struct bfd_link_hash_entry **hashp; { struct linux_link_hash_entry *h; - boolean insert; + bfd_boolean insert; /* Look up and see if we already have this symbol in the hash table. If we do, and the defining entry is from a shared library, we @@ -353,7 +353,7 @@ linux_add_one_symbol (info, abfd, name, be able to link Linux a.out and ELF objects together, but serious confusion is possible. */ - insert = false; + insert = FALSE; if (! info->relocateable && linux_hash_table (info)->dynobj == NULL @@ -362,60 +362,60 @@ linux_add_one_symbol (info, abfd, name, && abfd->xvec == info->hash->creator) { if (! linux_link_create_dynamic_sections (abfd, info)) - return false; + return FALSE; linux_hash_table (info)->dynobj = abfd; - insert = true; + insert = TRUE; } if (bfd_is_abs_section (section) && abfd->xvec == info->hash->creator) { - h = linux_link_hash_lookup (linux_hash_table (info), name, false, - false, false); + h = linux_link_hash_lookup (linux_hash_table (info), name, FALSE, + FALSE, FALSE); if (h != NULL - && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) - { - struct fixup *f; - - if (hashp != NULL) - *hashp = (struct bfd_link_hash_entry *) h; - - f = new_fixup (info, h, value, ! IS_PLT_SYM (name)); - if (f == NULL) - return false; - f->jump = IS_PLT_SYM (name); + && (h->root.root.type == bfd_link_hash_defined + || h->root.root.type == bfd_link_hash_defweak)) + { + struct fixup *f; + + if (hashp != NULL) + *hashp = (struct bfd_link_hash_entry *) h; + + f = new_fixup (info, h, value, ! IS_PLT_SYM (name)); + if (f == NULL) + return FALSE; + f->jump = IS_PLT_SYM (name); - return true; - } + return TRUE; + } } /* Do the usual procedure for adding a symbol. */ if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, - value, string, copy, collect, - hashp)) - return false; + value, string, copy, collect, + hashp)) + return FALSE; /* Insert a pointer to our table in the set vector. The dynamic - linker requires this information */ + linker requires this information. */ if (insert) { asection *s; /* Here we do our special thing to add the pointer to the - dynamic section in the SHARABLE_CONFLICTS set vector. */ + dynamic section in the SHARABLE_CONFLICTS set vector. */ s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); + ".linux-dynamic"); BFD_ASSERT (s != NULL); if (! (_bfd_generic_link_add_one_symbol - (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS, - BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL, - false, false, NULL))) - return false; + (info, linux_hash_table (info)->dynobj, SHARABLE_CONFLICTS, + BSF_GLOBAL | BSF_CONSTRUCTOR, s, (bfd_vma) 0, NULL, + FALSE, FALSE, NULL))) + return FALSE; } - return true; + return TRUE; } /* We will crawl the hash table and come here for every global symbol. @@ -428,7 +428,7 @@ linux_add_one_symbol (info, abfd, name, This function is called via linux_link_hash_traverse. */ -static boolean +static bfd_boolean linux_tally_symbols (h, data) struct linux_link_hash_entry *h; PTR data; @@ -437,14 +437,14 @@ linux_tally_symbols (h, data) struct fixup *f, *f1; int is_plt; struct linux_link_hash_entry *h1, *h2; - boolean exists; + bfd_boolean exists; if (h->root.root.type == bfd_link_hash_warning) h = (struct linux_link_hash_entry *) h->root.root.u.i.link; if (h->root.root.type == bfd_link_hash_undefined && strncmp (h->root.root.root.string, NEEDS_SHRLIB, - sizeof NEEDS_SHRLIB - 1) == 0) + sizeof NEEDS_SHRLIB - 1) == 0) { const char *name; char *p; @@ -453,21 +453,21 @@ linux_tally_symbols (h, data) name = h->root.root.root.string + sizeof NEEDS_SHRLIB - 1; p = strrchr (name, '_'); if (p != NULL) - alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1); + alloc = (char *) bfd_malloc ((bfd_size_type) strlen (name) + 1); if (p == NULL || alloc == NULL) - (*_bfd_error_handler) (_("Output file requires shared library `%s'\n"), - name); + (*_bfd_error_handler) (_("Output file requires shared library `%s'\n"), + name); else - { - strcpy (alloc, name); - p = strrchr (alloc, '_'); - *p++ = '\0'; - (*_bfd_error_handler) - (_("Output file requires shared library `%s.so.%s'\n"), - alloc, p); - free (alloc); - } + { + strcpy (alloc, name); + p = strrchr (alloc, '_'); + *p++ = '\0'; + (*_bfd_error_handler) + (_("Output file requires shared library `%s.so.%s'\n"), + alloc, p); + free (alloc); + } abort (); } @@ -479,75 +479,75 @@ linux_tally_symbols (h, data) if (is_plt || IS_GOT_SYM (h->root.root.root.string)) { /* Look up this symbol twice. Once just as a regular lookup, - and then again following all of the indirect links until we - reach a real symbol. */ + and then again following all of the indirect links until we + reach a real symbol. */ h1 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - false, false, true); + (h->root.root.root.string + + sizeof PLT_REF_PREFIX - 1), + FALSE, FALSE, TRUE); /* h2 does not follow indirect symbols. */ h2 = linux_link_hash_lookup (linux_hash_table (info), - (h->root.root.root.string - + sizeof PLT_REF_PREFIX - 1), - false, false, false); + (h->root.root.root.string + + sizeof PLT_REF_PREFIX - 1), + FALSE, FALSE, FALSE); /* The real symbol must exist but if it is also an ABS symbol, - there is no need to have a fixup. This is because they both - came from the same library. If on the other hand, we had to - use an indirect symbol to get to the real symbol, we add the - fixup anyway, since there are cases where these symbols come - from different shared libraries */ + there is no need to have a fixup. This is because they both + came from the same library. If on the other hand, we had to + use an indirect symbol to get to the real symbol, we add the + fixup anyway, since there are cases where these symbols come + from different shared libraries */ if (h1 != NULL - && (((h1->root.root.type == bfd_link_hash_defined - || h1->root.root.type == bfd_link_hash_defweak) - && ! bfd_is_abs_section (h1->root.root.u.def.section)) - || h2->root.root.type == bfd_link_hash_indirect)) - { - /* See if there is a "builtin" fixup already present - involving this symbol. If so, convert it to a regular - fixup. In the end, this relaxes some of the requirements - about the order of performing fixups. */ - exists = false; - for (f1 = linux_hash_table (info)->fixup_list; - f1 != NULL; - f1 = f1->next) - { - if ((f1->h != h && f1->h != h1) - || (! f1->builtin && ! f1->jump)) - continue; - if (f1->h == h1) - exists = true; - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, f1->h->root.root.u.def.value, 0); - f->jump = is_plt; - } - f1->h = h1; - f1->jump = is_plt; - f1->builtin = 0; - exists = true; - } - if (! exists - && bfd_is_abs_section (h->root.root.u.def.section)) - { - f = new_fixup (info, h1, h->root.root.u.def.value, 0); - if (f == NULL) - { - /* FIXME: No way to return error. */ - abort (); - } - f->jump = is_plt; - } - } + && (((h1->root.root.type == bfd_link_hash_defined + || h1->root.root.type == bfd_link_hash_defweak) + && ! bfd_is_abs_section (h1->root.root.u.def.section)) + || h2->root.root.type == bfd_link_hash_indirect)) + { + /* See if there is a "builtin" fixup already present + involving this symbol. If so, convert it to a regular + fixup. In the end, this relaxes some of the requirements + about the order of performing fixups. */ + exists = FALSE; + for (f1 = linux_hash_table (info)->fixup_list; + f1 != NULL; + f1 = f1->next) + { + if ((f1->h != h && f1->h != h1) + || (! f1->builtin && ! f1->jump)) + continue; + if (f1->h == h1) + exists = TRUE; + if (! exists + && bfd_is_abs_section (h->root.root.u.def.section)) + { + f = new_fixup (info, h1, f1->h->root.root.u.def.value, 0); + f->jump = is_plt; + } + f1->h = h1; + f1->jump = is_plt; + f1->builtin = 0; + exists = TRUE; + } + if (! exists + && bfd_is_abs_section (h->root.root.u.def.section)) + { + f = new_fixup (info, h1, h->root.root.u.def.value, 0); + if (f == NULL) + { + /* FIXME: No way to return error. */ + abort (); + } + f->jump = is_plt; + } + } /* Quick and dirty way of stripping these symbols from the - symtab. */ + symtab. */ if (bfd_is_abs_section (h->root.root.u.def.section)) - h->root.written = true; + h->root.written = TRUE; } - return true; + return TRUE; } /* This is called to set the size of the .linux-dynamic section is. @@ -556,7 +556,7 @@ linux_tally_symbols (h, data) we just scan the hash tables to find out how many additional fixups are required. */ -boolean +bfd_boolean bfd_sparclinux_size_dynamic_sections (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -565,12 +565,12 @@ bfd_sparclinux_size_dynamic_sections (ou asection *s; if (output_bfd->xvec != &MY(vec)) - return true; + return TRUE; /* First find the fixups... */ linux_link_hash_traverse (linux_hash_table (info), - linux_tally_symbols, - (PTR) info); + linux_tally_symbols, + (PTR) info); /* If there are builtin fixups, leave room for a marker. This is used by the dynamic linker so that it knows that all that follow @@ -578,40 +578,40 @@ bfd_sparclinux_size_dynamic_sections (ou for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) { if (f->builtin) - { - ++linux_hash_table (info)->fixup_count; - ++linux_hash_table (info)->local_builtins; - break; - } + { + ++linux_hash_table (info)->fixup_count; + ++linux_hash_table (info)->local_builtins; + break; + } } if (linux_hash_table (info)->dynobj == NULL) { if (linux_hash_table (info)->fixup_count > 0) - abort (); - return true; + abort (); + return TRUE; } /* Allocate memory for our fixup table. We will fill it in later. */ s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); + ".linux-dynamic"); if (s != NULL) { s->_raw_size = linux_hash_table (info)->fixup_count + 1; s->_raw_size *= 8; s->contents = (bfd_byte *) bfd_zalloc (output_bfd, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } - return true; + return TRUE; } /* We come here once we are ready to actually write the fixup table to the output file. Scan the fixup tables and so forth and generate the stuff we need. */ -static boolean +static bfd_boolean linux_finish_dynamic_link (output_bfd, info) bfd *output_bfd; struct bfd_link_info *info; @@ -625,18 +625,18 @@ linux_finish_dynamic_link (output_bfd, i unsigned int fixups_written; if (linux_hash_table (info)->dynobj == NULL) - return true; + return TRUE; s = bfd_get_section_by_name (linux_hash_table (info)->dynobj, - ".linux-dynamic"); + ".linux-dynamic"); BFD_ASSERT (s != NULL); os = s->output_section; fixups_written = 0; #ifdef LINUX_LINK_DEBUG printf ("Fixup table file offset: %x VMA: %x\n", - os->filepos + s->output_offset, - os->vma + s->output_offset); + os->filepos + s->output_offset, + os->vma + s->output_offset); #endif fixup_table = s->contents; @@ -648,16 +648,16 @@ linux_finish_dynamic_link (output_bfd, i for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) { if (f->builtin) - continue; + continue; if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - (*_bfd_error_handler) - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } + && f->h->root.root.type != bfd_link_hash_defweak) + { + (*_bfd_error_handler) + (_("Symbol %s not defined for fixups\n"), + f->h->root.root.root.string); + continue; + } is = f->h->root.root.u.def.section; section_offset = is->output_section->vma + is->output_offset; @@ -665,25 +665,25 @@ linux_finish_dynamic_link (output_bfd, i #ifdef LINUX_LINK_DEBUG printf ("Fixup(%d) %s: %x %x\n",f->jump, f->h->root.root.string, - new_addr, f->value); + new_addr, f->value); #endif if (f->jump) - { - /* Relative address */ - new_addr = new_addr - (f->value + 5); - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value + 1, fixup_table); - fixup_table += 4; - } + { + /* Relative address */ + new_addr = new_addr - (f->value + 5); + bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); + fixup_table += 4; + bfd_put_32 (output_bfd, f->value + 1, fixup_table); + fixup_table += 4; + } else - { - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - } + { + bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); + fixup_table += 4; + bfd_put_32 (output_bfd, f->value, fixup_table); + fixup_table += 4; + } ++fixups_written; } @@ -696,56 +696,56 @@ linux_finish_dynamic_link (output_bfd, i fixup_table += 4; ++fixups_written; for (f = linux_hash_table (info)->fixup_list; f != NULL; f = f->next) - { - if (! f->builtin) - continue; - - if (f->h->root.root.type != bfd_link_hash_defined - && f->h->root.root.type != bfd_link_hash_defweak) - { - (*_bfd_error_handler) - (_("Symbol %s not defined for fixups\n"), - f->h->root.root.root.string); - continue; - } - - is = f->h->root.root.u.def.section; - section_offset = is->output_section->vma + is->output_offset; - new_addr = f->h->root.root.u.def.value + section_offset; + { + if (! f->builtin) + continue; + + if (f->h->root.root.type != bfd_link_hash_defined + && f->h->root.root.type != bfd_link_hash_defweak) + { + (*_bfd_error_handler) + (_("Symbol %s not defined for fixups\n"), + f->h->root.root.root.string); + continue; + } + + is = f->h->root.root.u.def.section; + section_offset = is->output_section->vma + is->output_offset; + new_addr = f->h->root.root.u.def.value + section_offset; #ifdef LINUX_LINK_DEBUG - printf ("Fixup(B) %s: %x %x\n", f->h->root.root.string, - new_addr, f->value); + printf ("Fixup(B) %s: %x %x\n", f->h->root.root.string, + new_addr, f->value); #endif - bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, f->value, fixup_table); - fixup_table += 4; - ++fixups_written; - } - } + bfd_put_32 (output_bfd, (bfd_vma) new_addr, fixup_table); + fixup_table += 4; + bfd_put_32 (output_bfd, f->value, fixup_table); + fixup_table += 4; + ++fixups_written; + } + } if (linux_hash_table (info)->fixup_count != fixups_written) { (*_bfd_error_handler) (_("Warning: fixup count mismatch\n")); while (linux_hash_table (info)->fixup_count > fixups_written) - { - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); - fixup_table += 4; - ++fixups_written; - } + { + bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); + fixup_table += 4; + bfd_put_32 (output_bfd, (bfd_vma) 0, fixup_table); + fixup_table += 4; + ++fixups_written; + } } h = linux_link_hash_lookup (linux_hash_table (info), - "__BUILTIN_FIXUPS__", - false, false, false); + "__BUILTIN_FIXUPS__", + FALSE, FALSE, FALSE); if (h != NULL && (h->root.root.type == bfd_link_hash_defined - || h->root.root.type == bfd_link_hash_defweak)) + || h->root.root.type == bfd_link_hash_defweak)) { is = h->root.root.u.def.section; section_offset = is->output_section->vma + is->output_offset; @@ -762,13 +762,12 @@ linux_finish_dynamic_link (output_bfd, i if (bfd_seek (output_bfd, (file_ptr) (os->filepos + s->output_offset), SEEK_SET) != 0) - return false; + return FALSE; - if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd) - != s->_raw_size) - return false; + if (bfd_bwrite ((PTR) s->contents, s->_raw_size, output_bfd) != s->_raw_size) + return FALSE; - return true; + return TRUE; } #define MY_bfd_link_hash_table_create linux_link_hash_table_create diff -uprN binutils-2.13.90.0.16/bfd/sparclynx.c binutils-2.13.90.0.18/bfd/sparclynx.c --- binutils-2.13.90.0.16/bfd/sparclynx.c Thu Oct 4 14:35:43 2001 +++ binutils-2.13.90.0.18/bfd/sparclynx.c Mon Dec 16 12:22:52 2002 @@ -1,6 +1,6 @@ /* BFD support for Sparc binaries under LynxOS. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, - 2001 Free Software Foundation, Inc. + 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -48,7 +48,7 @@ Foundation, Inc., 59 Temple Place - Suit void NAME (lynx,set_arch_mach) PARAMS ((bfd *, unsigned long)); static void choose_reloc_size PARAMS ((bfd *)); -static boolean NAME (aout,sparclynx_write_object_contents) PARAMS ((bfd *)); +static bfd_boolean NAME (aout,sparclynx_write_object_contents) PARAMS ((bfd *)); /* This is needed to reject a NewsOS file, e.g. in gdb/testsuite/gdb.t10/crossload.exp. @@ -163,7 +163,7 @@ choose_reloc_size (abfd) Section contents have already been written. We write the file header, symbols, and relocation. */ -static boolean +static bfd_boolean NAME(aout,sparclynx_write_object_contents) (abfd) bfd *abfd; { @@ -204,30 +204,30 @@ NAME(aout,sparclynx_write_object_content WRITE_HEADERS (abfd, execp); - return true; + return TRUE; } #define MY_set_sizes sparclynx_set_sizes -static boolean sparclynx_set_sizes PARAMS ((bfd *)); +static bfd_boolean sparclynx_set_sizes PARAMS ((bfd *)); -static boolean +static bfd_boolean sparclynx_set_sizes (abfd) bfd *abfd; { switch (bfd_get_arch (abfd)) { default: - return false; + return FALSE; case bfd_arch_sparc: adata (abfd).page_size = 0x2000; adata (abfd).segment_size = 0x2000; adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return true; + return TRUE; case bfd_arch_m68k: adata (abfd).page_size = 0x2000; adata (abfd).segment_size = 0x20000; adata (abfd).exec_bytes_size = EXEC_BYTES_SIZE; - return true; + return TRUE; } } @@ -255,9 +255,9 @@ static const struct aout_backend_data sp #ifdef LYNX_CORE -char * lynx_core_file_failing_command (); -int lynx_core_file_failing_signal (); -boolean lynx_core_file_matches_executable_p (); +char * lynx_core_file_failing_command (); +int lynx_core_file_failing_signal (); +bfd_boolean lynx_core_file_matches_executable_p (); const bfd_target * lynx_core_file_p (); #define MY_core_file_failing_command lynx_core_file_failing_command diff -uprN binutils-2.13.90.0.16/bfd/srec.c binutils-2.13.90.0.18/bfd/srec.c --- binutils-2.13.90.0.16/bfd/srec.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/srec.c Mon Dec 16 12:22:52 2002 @@ -114,30 +114,29 @@ static void srec_get_symbol_info PARAMS static void srec_print_symbol PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); static void srec_init PARAMS ((void)); -static boolean srec_mkobject PARAMS ((bfd *)); -static int srec_get_byte PARAMS ((bfd *, boolean *)); -static void srec_bad_byte PARAMS ((bfd *, unsigned int, int, boolean)); -static boolean srec_scan PARAMS ((bfd *)); +static bfd_boolean srec_mkobject PARAMS ((bfd *)); +static int srec_get_byte PARAMS ((bfd *, bfd_boolean *)); +static void srec_bad_byte PARAMS ((bfd *, unsigned int, int, bfd_boolean)); +static bfd_boolean srec_scan PARAMS ((bfd *)); static const bfd_target *srec_object_p PARAMS ((bfd *)); static const bfd_target *symbolsrec_object_p PARAMS ((bfd *)); -static boolean srec_read_section PARAMS ((bfd *, asection *, bfd_byte *)); +static bfd_boolean srec_read_section PARAMS ((bfd *, asection *, bfd_byte *)); -static boolean srec_write_record PARAMS ((bfd *, unsigned int, bfd_vma, - const bfd_byte *, - const bfd_byte *)); -static boolean srec_write_header PARAMS ((bfd *)); -static boolean srec_write_symbols PARAMS ((bfd *)); -static boolean srec_new_symbol PARAMS ((bfd *, const char *, bfd_vma)); -static boolean srec_get_section_contents +static bfd_boolean srec_write_record + PARAMS ((bfd *, unsigned int, bfd_vma, const bfd_byte *, const bfd_byte *)); +static bfd_boolean srec_write_header PARAMS ((bfd *)); +static bfd_boolean srec_write_symbols PARAMS ((bfd *)); +static bfd_boolean srec_new_symbol PARAMS ((bfd *, const char *, bfd_vma)); +static bfd_boolean srec_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); -static boolean srec_set_arch_mach +static bfd_boolean srec_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -static boolean srec_set_section_contents +static bfd_boolean srec_set_section_contents PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); -static boolean internal_srec_write_object_contents PARAMS ((bfd *, int)); -static boolean srec_write_object_contents PARAMS ((bfd *)); -static boolean symbolsrec_write_object_contents PARAMS ((bfd *)); -static int srec_sizeof_headers PARAMS ((bfd *, boolean)); +static bfd_boolean internal_srec_write_object_contents PARAMS ((bfd *, int)); +static bfd_boolean srec_write_object_contents PARAMS ((bfd *)); +static bfd_boolean symbolsrec_write_object_contents PARAMS ((bfd *)); +static int srec_sizeof_headers PARAMS ((bfd *, bfd_boolean)); static long srec_get_symtab_upper_bound PARAMS ((bfd *)); static long srec_get_symtab PARAMS ((bfd *, asymbol **)); @@ -158,11 +157,11 @@ static const char digs[] = "0123456789AB static void srec_init () { - static boolean inited = false; + static bfd_boolean inited = FALSE; if (! inited) { - inited = true; + inited = TRUE; hex_init (); } } @@ -181,7 +180,7 @@ unsigned int Chunk = DEFAULT_CHUNK; /* The type of srec output (free or forced to S3). This variable can be modified by objcopy's --srec-forceS3 parameter. */ -boolean S3Forced = false; +bfd_boolean S3Forced = FALSE; /* When writing an S-record file, the S-records can not be output as they are seen. This structure is used to hold them in memory. */ @@ -220,13 +219,14 @@ typedef struct srec_data_struct } tdata_type; -static boolean srec_write_section PARAMS ((bfd *, tdata_type *, - srec_data_list_type *)); -static boolean srec_write_terminator PARAMS ((bfd *, tdata_type *)); +static bfd_boolean srec_write_section + PARAMS ((bfd *, tdata_type *, srec_data_list_type *)); +static bfd_boolean srec_write_terminator + PARAMS ((bfd *, tdata_type *)); /* Set up the S-record tdata information. */ -static boolean +static bfd_boolean srec_mkobject (abfd) bfd *abfd; { @@ -238,8 +238,8 @@ srec_mkobject (abfd) amt = sizeof (tdata_type); tdata = (tdata_type *) bfd_alloc (abfd, amt); if (tdata == NULL) - return false; - + return FALSE; + abfd->tdata.srec_data = tdata; tdata->type = 1; tdata->head = NULL; @@ -248,7 +248,7 @@ srec_mkobject (abfd) tdata->symtail = NULL; tdata->csymbols = NULL; - return true; + return TRUE; } /* Read a byte from an S record file. Set *ERRORPTR if an error @@ -257,14 +257,14 @@ srec_mkobject (abfd) static int srec_get_byte (abfd, errorptr) bfd *abfd; - boolean *errorptr; + bfd_boolean *errorptr; { bfd_byte c; if (bfd_bread (&c, (bfd_size_type) 1, abfd) != 1) { if (bfd_get_error () != bfd_error_file_truncated) - *errorptr = true; + *errorptr = TRUE; return EOF; } @@ -280,7 +280,7 @@ srec_bad_byte (abfd, lineno, c, error) bfd *abfd; unsigned int lineno; int c; - boolean error; + bfd_boolean error; { if (c == EOF) { @@ -307,7 +307,7 @@ srec_bad_byte (abfd, lineno, c, error) /* Add a new symbol found in an S-record file. */ -static boolean +static bfd_boolean srec_new_symbol (abfd, name, val) bfd *abfd; const char *name; @@ -318,7 +318,7 @@ srec_new_symbol (abfd, name, val) n = (struct srec_symbol *) bfd_alloc (abfd, amt); if (n == NULL) - return false; + return FALSE; n->name = name; n->val = val; @@ -332,19 +332,19 @@ srec_new_symbol (abfd, name, val) ++abfd->symcount; - return true; + return TRUE; } /* Read the S record file and turn it into sections. We create a new section for each contiguous set of bytes. */ -static boolean +static bfd_boolean srec_scan (abfd) bfd *abfd; { int c; unsigned int lineno = 1; - boolean error = false; + bfd_boolean error = FALSE; bfd_byte *buf = NULL; size_t bufsize = 0; asection *sec = NULL; @@ -356,7 +356,7 @@ srec_scan (abfd) while ((c = srec_get_byte (abfd, &error)) != EOF) { /* We only build sections from contiguous S-records, so if this - is not an S-record, then stop building a section. */ + is not an S-record, then stop building a section. */ if (c != 'S' && c != '\r' && c != '\n') sec = NULL; @@ -542,7 +542,7 @@ srec_scan (abfd) case '0': case '5': /* Prologue--ignore the file name, but stop building a - section at this point. */ + section at this point. */ sec = NULL; break; @@ -567,7 +567,7 @@ srec_scan (abfd) && sec->vma + sec->_raw_size == address) { /* This data goes at the end of the section we are - currently building. */ + currently building. */ sec->_raw_size += bytes; } else @@ -612,7 +612,7 @@ srec_scan (abfd) if (buf != NULL) free (buf); - return true; + return TRUE; } } break; @@ -625,14 +625,14 @@ srec_scan (abfd) if (buf != NULL) free (buf); - return true; + return TRUE; error_return: if (symbuf != NULL) free (symbuf); if (buf != NULL) free (buf); - return false; + return FALSE; } /* Check whether an existing file is an S-record file. */ @@ -709,7 +709,7 @@ symbolsrec_object_p (abfd) /* Read in the contents of a section in an S-record file. */ -static boolean +static bfd_boolean srec_read_section (abfd, section, contents) bfd *abfd; asection *section; @@ -717,7 +717,7 @@ srec_read_section (abfd, section, conten { int c; bfd_size_type sofar = 0; - boolean error = false; + bfd_boolean error = FALSE; bfd_byte *buf = NULL; size_t bufsize = 0; @@ -735,7 +735,7 @@ srec_read_section (abfd, section, conten continue; /* This is called after srec_scan has already been called, so we - ought to know the exact format. */ + ought to know the exact format. */ BFD_ASSERT (c == 'S'); if (bfd_bread (hdr, (bfd_size_type) 3, abfd) != 3) @@ -766,7 +766,7 @@ srec_read_section (abfd, section, conten BFD_ASSERT (sofar == section->_raw_size); if (buf != NULL) free (buf); - return true; + return TRUE; case '3': address = HEX (data); @@ -791,7 +791,7 @@ srec_read_section (abfd, section, conten BFD_ASSERT (sofar == section->_raw_size); if (buf != NULL) free (buf); - return true; + return TRUE; } /* Don't consider checksum. */ @@ -816,17 +816,17 @@ srec_read_section (abfd, section, conten if (buf != NULL) free (buf); - return true; + return TRUE; error_return: if (buf != NULL) free (buf); - return false; + return FALSE; } /* Get the contents of a section in an S-record file. */ -static boolean +static bfd_boolean srec_get_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -838,21 +838,21 @@ srec_get_section_contents (abfd, section { section->used_by_bfd = bfd_alloc (abfd, section->_raw_size); if (section->used_by_bfd == NULL && section->_raw_size != 0) - return false; + return FALSE; if (! srec_read_section (abfd, section, section->used_by_bfd)) - return false; + return FALSE; } memcpy (location, (bfd_byte *) section->used_by_bfd + offset, (size_t) count); - return true; + return TRUE; } /* Set the architecture. We accept an unknown architecture here. */ -static boolean +static bfd_boolean srec_set_arch_mach (abfd, arch, mach) bfd *abfd; enum bfd_architecture arch; @@ -861,14 +861,14 @@ srec_set_arch_mach (abfd, arch, mach) if (arch == bfd_arch_unknown) { abfd->arch_info = &bfd_default_arch_struct; - return true; + return TRUE; } return bfd_default_set_arch_mach (abfd, arch, mach); } /* We have to save up all the Srecords for a splurge before output. */ -static boolean +static bfd_boolean srec_set_section_contents (abfd, section, location, offset, bytes_to_do) bfd *abfd; sec_ptr section; @@ -882,7 +882,7 @@ srec_set_section_contents (abfd, section entry = ((srec_data_list_type *) bfd_alloc (abfd, (bfd_size_type) sizeof (srec_data_list_type))); if (entry == NULL) - return false; + return FALSE; if (bytes_to_do && (section->flags & SEC_ALLOC) @@ -892,10 +892,10 @@ srec_set_section_contents (abfd, section data = (bfd_byte *) bfd_alloc (abfd, bytes_to_do); if (data == NULL) - return false; + return FALSE; memcpy ((PTR) data, location, (size_t) bytes_to_do); - /* Ff S3Forced is true then always select S3 records, + /* Ff S3Forced is TRUE then always select S3 records, regardless of the siez of the addresses. */ if (S3Forced) tdata->type = 3; @@ -912,7 +912,7 @@ srec_set_section_contents (abfd, section entry->size = bytes_to_do; /* Sort the records by address. Optimize for the common case of - adding a record to the end of the list. */ + adding a record to the end of the list. */ if (tdata->tail != NULL && entry->where >= tdata->tail->where) { @@ -934,14 +934,14 @@ srec_set_section_contents (abfd, section tdata->tail = entry; } } - return true; + return TRUE; } /* Write a record of type, of the supplied number of bytes. The supplied bytes and length don't have a checksum. That's worked out here. */ -static boolean +static bfd_boolean srec_write_record (abfd, type, address, data, end) bfd *abfd; unsigned int type; @@ -999,11 +999,11 @@ srec_write_record (abfd, type, address, *dst++ = '\n'; wrlen = dst - buffer; if (bfd_bwrite ((PTR) buffer, wrlen, abfd) != wrlen) - return false; - return true; + return FALSE; + return TRUE; } -static boolean +static bfd_boolean srec_write_header (abfd) bfd *abfd; { @@ -1017,7 +1017,7 @@ srec_write_header (abfd) abfd->filename, abfd->filename + len); } -static boolean +static bfd_boolean srec_write_section (abfd, tdata, list) bfd *abfd; tdata_type *tdata; @@ -1052,16 +1052,16 @@ srec_write_section (abfd, tdata, list) address, location, location + octets_this_chunk)) - return false; + return FALSE; octets_written += octets_this_chunk; location += octets_this_chunk; } - return true; + return TRUE; } -static boolean +static bfd_boolean srec_write_terminator (abfd, tdata) bfd *abfd; tdata_type *tdata; @@ -1070,7 +1070,7 @@ srec_write_terminator (abfd, tdata) abfd->start_address, NULL, NULL); } -static boolean +static bfd_boolean srec_write_symbols (abfd) bfd *abfd; { @@ -1086,7 +1086,7 @@ srec_write_symbols (abfd) if (bfd_bwrite ("$$ ", (bfd_size_type) 3, abfd) != 3 || bfd_bwrite (abfd->filename, len, abfd) != len || bfd_bwrite ("\r\n", (bfd_size_type) 2, abfd) != 2) - return false; + return FALSE; for (i = 0; i < count; i++) { @@ -1095,36 +1095,37 @@ srec_write_symbols (abfd) && (s->flags & BSF_DEBUGGING) == 0) { /* Just dump out non debug symbols. */ - char buf[42], *p; + char buf[43], *p; len = strlen (s->name); if (bfd_bwrite (" ", (bfd_size_type) 2, abfd) != 2 || bfd_bwrite (s->name, len, abfd) != len) - return false; + return FALSE; - sprintf_vma (buf + 1, (s->value + sprintf_vma (buf + 2, (s->value + s->section->output_section->lma + s->section->output_offset)); - p = buf + 1; + p = buf + 2; while (p[0] == '0' && p[1] != 0) p++; len = strlen (p); p[len] = '\r'; p[len + 1] = '\n'; + *--p = '$'; *--p = ' '; - len += 3; + len += 4; if (bfd_bwrite (p, len, abfd) != len) - return false; + return FALSE; } } if (bfd_bwrite ("$$ \r\n", (bfd_size_type) 5, abfd) != 5) - return false; + return FALSE; } - return true; + return TRUE; } -static boolean +static bfd_boolean internal_srec_write_object_contents (abfd, symbols) bfd *abfd; int symbols; @@ -1135,11 +1136,11 @@ internal_srec_write_object_contents (abf if (symbols) { if (! srec_write_symbols (abfd)) - return false; + return FALSE; } if (! srec_write_header (abfd)) - return false; + return FALSE; /* Now wander though all the sections provided and output them. */ list = tdata->head; @@ -1147,20 +1148,20 @@ internal_srec_write_object_contents (abf while (list != (srec_data_list_type *) NULL) { if (! srec_write_section (abfd, tdata, list)) - return false; + return FALSE; list = list->next; } return srec_write_terminator (abfd, tdata); } -static boolean +static bfd_boolean srec_write_object_contents (abfd) bfd *abfd; { return internal_srec_write_object_contents (abfd, 0); } -static boolean +static bfd_boolean symbolsrec_write_object_contents (abfd) bfd *abfd; { @@ -1170,7 +1171,7 @@ symbolsrec_write_object_contents (abfd) static int srec_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } @@ -1203,7 +1204,7 @@ srec_get_symtab (abfd, alocation) csymbols = (asymbol *) bfd_alloc (abfd, symcount * sizeof (asymbol)); if (csymbols == NULL && symcount != 0) - return (long) false; + return 0; abfd->tdata.srec_data->csymbols = csymbols; for (s = abfd->tdata.srec_data->symbols, c = csymbols; diff -uprN binutils-2.13.90.0.16/bfd/stabs.c binutils-2.13.90.0.18/bfd/stabs.c --- binutils-2.13.90.0.16/bfd/stabs.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/stabs.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* Stabs in sections linking support. - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor, Cygnus Support. @@ -168,7 +168,7 @@ stab_link_includes_newfunc (entry, table /* This function is called for each input file from the add_symbols pass of the linker. */ -boolean +bfd_boolean _bfd_link_section_stabs (abfd, psinfo, stabsec, stabstrsec, psecinfo) bfd *abfd; PTR *psinfo; @@ -176,7 +176,7 @@ _bfd_link_section_stabs (abfd, psinfo, s asection *stabstrsec; PTR *psecinfo; { - boolean first; + bfd_boolean first; struct stab_info *sinfo; bfd_size_type count, amt; struct stab_section_info *secinfo; @@ -190,21 +190,21 @@ _bfd_link_section_stabs (abfd, psinfo, s || stabstrsec->_raw_size == 0) { /* This file does not contain stabs debugging information. */ - return true; + return TRUE; } if (stabsec->_raw_size % STABSIZE != 0) { /* Something is wrong with the format of these stab symbols. - Don't try to optimize them. */ - return true; + Don't try to optimize them. */ + return TRUE; } if ((stabstrsec->flags & SEC_RELOC) != 0) { /* We shouldn't see relocations in the strings, and we aren't - prepared to handle them. */ - return true; + prepared to handle them. */ + return TRUE; } if ((stabsec->output_section != NULL @@ -213,16 +213,16 @@ _bfd_link_section_stabs (abfd, psinfo, s && bfd_is_abs_section (stabstrsec->output_section))) { /* At least one of the sections is being discarded from the - link, so we should just ignore them. */ - return true; + link, so we should just ignore them. */ + return TRUE; } - first = false; + first = FALSE; if (*psinfo == NULL) { /* Initialize the stabs information we need to keep track of. */ - first = true; + first = TRUE; amt = sizeof (struct stab_info); *psinfo = (PTR) bfd_alloc (abfd, amt); if (*psinfo == NULL) @@ -232,7 +232,7 @@ _bfd_link_section_stabs (abfd, psinfo, s if (sinfo->strings == NULL) goto error_return; /* Make sure the first byte is zero. */ - (void) _bfd_stringtab_add (sinfo->strings, "", true, true); + (void) _bfd_stringtab_add (sinfo->strings, "", TRUE, TRUE); if (! bfd_hash_table_init_n (&sinfo->includes.root, stab_link_includes_newfunc, 251)) @@ -299,7 +299,7 @@ _bfd_link_section_stabs (abfd, psinfo, s if (type == 0) { /* Special type 0 stabs indicate the offset to the next - string table. We only copy the very first one. */ + string table. We only copy the very first one. */ stroff = next_stroff; next_stroff += bfd_get_32 (abfd, sym + 8); if (! first) @@ -308,7 +308,7 @@ _bfd_link_section_stabs (abfd, psinfo, s ++skip; continue; } - first = false; + first = FALSE; } /* Store the string in the hash table, and record the index. */ @@ -324,7 +324,7 @@ _bfd_link_section_stabs (abfd, psinfo, s goto error_return; } string = (char *) stabstrbuf + symstroff; - *pstridx = _bfd_stringtab_add (sinfo->strings, string, true, true); + *pstridx = _bfd_stringtab_add (sinfo->strings, string, TRUE, TRUE); /* An N_BINCL symbol indicates the start of the stabs entries for a header file. We need to scan ahead to the next N_EINCL @@ -384,7 +384,7 @@ _bfd_link_section_stabs (abfd, psinfo, s /* If we have already included a header file with the same value, then replaced this one with an N_EXCL symbol. */ incl_entry = stab_link_includes_lookup (&sinfo->includes, string, - true, true); + TRUE, TRUE); if (incl_entry == NULL) goto error_return; @@ -393,7 +393,7 @@ _bfd_link_section_stabs (abfd, psinfo, s break; /* Record this symbol, so that we can set the value - correctly. */ + correctly. */ amt = sizeof *ne; ne = (struct stab_excl_list *) bfd_alloc (abfd, amt); if (ne == NULL) @@ -502,30 +502,30 @@ _bfd_link_section_stabs (abfd, psinfo, s BFD_ASSERT (offset != 0); } - return true; + return TRUE; error_return: if (stabbuf != NULL) free (stabbuf); if (stabstrbuf != NULL) free (stabstrbuf); - return false; + return FALSE; } /* This function is called for each input file before the stab section is relocated. It discards stab entries for discarded - functions and variables. The function returns true iff + functions and variables. The function returns TRUE iff any entries have been deleted. */ -boolean +bfd_boolean _bfd_discard_section_stabs (abfd, stabsec, psecinfo, reloc_symbol_deleted_p, cookie) bfd *abfd; asection *stabsec; PTR psecinfo; - boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR)); + bfd_boolean (*reloc_symbol_deleted_p) PARAMS ((bfd_vma, PTR)); PTR cookie; { bfd_size_type count, amt; @@ -539,29 +539,29 @@ _bfd_discard_section_stabs (abfd, stabse if (stabsec->_raw_size == 0) { /* This file does not contain stabs debugging information. */ - return false; + return FALSE; } if (stabsec->_raw_size % STABSIZE != 0) { /* Something is wrong with the format of these stab symbols. - Don't try to optimize them. */ - return false; + Don't try to optimize them. */ + return FALSE; } if ((stabsec->output_section != NULL && bfd_is_abs_section (stabsec->output_section))) { /* At least one of the sections is being discarded from the - link, so we should just ignore them. */ - return false; + link, so we should just ignore them. */ + return FALSE; } /* We should have initialized our data in _bfd_link_stab_sections. If there was some bizarre error reading the string sections, though, we might not have. Bail rather than asserting. */ if (psecinfo == NULL) - return false; + return FALSE; count = stabsec->_raw_size / STABSIZE; secinfo = (struct stab_section_info *) psecinfo; @@ -674,18 +674,18 @@ _bfd_discard_section_stabs (abfd, stabse BFD_ASSERT (offset != 0); } - return (boolean) (skip > 0); + return skip > 0; error_return: if (stabbuf != NULL) free (stabbuf); - return false; + return FALSE; } /* Write out the stab section. This is called with the relocated contents. */ -boolean +bfd_boolean _bfd_write_section_stabs (output_bfd, psinfo, stabsec, psecinfo, contents) bfd *output_bfd; PTR *psinfo; @@ -736,9 +736,9 @@ _bfd_write_section_stabs (output_bfd, ps if (sym[TYPEOFF] == 0) { /* This is the header symbol for the stabs section. We - don't really need one, since we have merged all the - input stabs sections into one, but we generate one - for the benefit of readers which expect to see one. */ + don't really need one, since we have merged all the + input stabs sections into one, but we generate one + for the benefit of readers which expect to see one. */ BFD_ASSERT (sym == contents); bfd_put_32 (output_bfd, _bfd_stringtab_size (sinfo->strings), tosym + VALOFF); @@ -760,7 +760,7 @@ _bfd_write_section_stabs (output_bfd, ps /* Write out the .stabstr section. */ -boolean +bfd_boolean _bfd_write_stab_strings (output_bfd, psinfo) bfd *output_bfd; PTR *psinfo; @@ -770,12 +770,12 @@ _bfd_write_stab_strings (output_bfd, psi sinfo = (struct stab_info *) *psinfo; if (sinfo == NULL) - return true; + return TRUE; if (bfd_is_abs_section (sinfo->stabstr->output_section)) { /* The section was discarded from the link. */ - return true; + return TRUE; } BFD_ASSERT ((sinfo->stabstr->output_offset @@ -786,16 +786,16 @@ _bfd_write_stab_strings (output_bfd, psi (file_ptr) (sinfo->stabstr->output_section->filepos + sinfo->stabstr->output_offset), SEEK_SET) != 0) - return false; + return FALSE; if (! _bfd_stringtab_emit (output_bfd, sinfo->strings)) - return false; + return FALSE; /* We no longer need the stabs information. */ _bfd_stringtab_free (sinfo->strings); bfd_hash_table_free (&sinfo->includes.root); - return true; + return TRUE; } /* Adjust an address in the .stab section. Given OFFSET within diff -uprN binutils-2.13.90.0.16/bfd/sunos.c binutils-2.13.90.0.18/bfd/sunos.c --- binutils-2.13.90.0.16/bfd/sunos.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/sunos.c Mon Dec 16 12:22:52 2002 @@ -1,7 +1,6 @@ /* BFD backend for SunOS binaries. Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2001, - 2002 - Free Software Foundation, Inc. + 2002 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -33,9 +32,9 @@ Foundation, Inc., 59 Temple Place - Suit /* Static routines defined in this file. */ -static boolean sunos_read_dynamic_info PARAMS ((bfd *)); +static bfd_boolean sunos_read_dynamic_info PARAMS ((bfd *)); static long sunos_get_dynamic_symtab_upper_bound PARAMS ((bfd *)); -static boolean sunos_slurp_dynamic_symtab PARAMS ((bfd *)); +static bfd_boolean sunos_slurp_dynamic_symtab PARAMS ((bfd *)); static long sunos_canonicalize_dynamic_symtab PARAMS ((bfd *, asymbol **)); static long sunos_get_dynamic_reloc_upper_bound PARAMS ((bfd *)); static long sunos_canonicalize_dynamic_reloc @@ -44,32 +43,32 @@ static struct bfd_hash_entry *sunos_link PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); static struct bfd_link_hash_table *sunos_link_hash_table_create PARAMS ((bfd *)); -static boolean sunos_create_dynamic_sections - PARAMS ((bfd *, struct bfd_link_info *, boolean)); -static boolean sunos_add_dynamic_symbols +static bfd_boolean sunos_create_dynamic_sections + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean)); +static bfd_boolean sunos_add_dynamic_symbols PARAMS ((bfd *, struct bfd_link_info *, struct external_nlist **, bfd_size_type *, char **)); -static boolean sunos_add_one_symbol +static bfd_boolean sunos_add_one_symbol PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, asection *, - bfd_vma, const char *, boolean, boolean, + bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **)); -static boolean sunos_scan_relocs +static bfd_boolean sunos_scan_relocs PARAMS ((struct bfd_link_info *, bfd *, asection *, bfd_size_type)); -static boolean sunos_scan_std_relocs +static bfd_boolean sunos_scan_std_relocs PARAMS ((struct bfd_link_info *, bfd *, asection *, const struct reloc_std_external *, bfd_size_type)); -static boolean sunos_scan_ext_relocs +static bfd_boolean sunos_scan_ext_relocs PARAMS ((struct bfd_link_info *, bfd *, asection *, const struct reloc_ext_external *, bfd_size_type)); -static boolean sunos_link_dynamic_object +static bfd_boolean sunos_link_dynamic_object PARAMS ((struct bfd_link_info *, bfd *)); -static boolean sunos_write_dynamic_symbol +static bfd_boolean sunos_write_dynamic_symbol PARAMS ((bfd *, struct bfd_link_info *, struct aout_link_hash_entry *)); -static boolean sunos_check_dynamic_reloc +static bfd_boolean sunos_check_dynamic_reloc PARAMS ((struct bfd_link_info *, bfd *, asection *, - struct aout_link_hash_entry *, PTR, bfd_byte *, boolean *, + struct aout_link_hash_entry *, PTR, bfd_byte *, bfd_boolean *, bfd_vma *)); -static boolean sunos_finish_dynamic_link +static bfd_boolean sunos_finish_dynamic_link PARAMS ((bfd *, struct bfd_link_info *)); #define MY_get_dynamic_symtab_upper_bound sunos_get_dynamic_symtab_upper_bound @@ -106,7 +105,7 @@ static boolean sunos_finish_dynamic_link struct sunos_dynamic_info { /* Whether we found any dynamic information. */ - boolean valid; + bfd_boolean valid; /* Dynamic information. */ struct internal_sun4_dynamic_link dyninfo; /* Number of dynamic symbols. */ @@ -135,9 +134,9 @@ struct sunos_dynamic_info structure and uses it to find the dynamic_link structure. It creates and saves a sunos_dynamic_info structure. If it can't find __DYNAMIC, it sets the valid field of the sunos_dynamic_info - structure to false to avoid doing this work again. */ + structure to FALSE to avoid doing this work again. */ -static boolean +static bfd_boolean sunos_read_dynamic_info (abfd) bfd *abfd; { @@ -150,19 +149,19 @@ sunos_read_dynamic_info (abfd) bfd_size_type amt; if (obj_aout_dynamic_info (abfd) != (PTR) NULL) - return true; + return TRUE; if ((abfd->flags & DYNAMIC) == 0) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } amt = sizeof (struct sunos_dynamic_info); info = (struct sunos_dynamic_info *) bfd_zalloc (abfd, amt); if (!info) - return false; - info->valid = false; + return FALSE; + info->valid = FALSE; info->dynsym = NULL; info->dynstr = NULL; info->canonical_dynsym = NULL; @@ -178,15 +177,15 @@ sunos_read_dynamic_info (abfd) We could verify this assumption later by looking through the dynamic symbols for the __DYNAMIC symbol. */ if ((abfd->flags & DYNAMIC) == 0) - return true; + return TRUE; if (! bfd_get_section_contents (abfd, obj_datasec (abfd), (PTR) &dyninfo, (file_ptr) 0, (bfd_size_type) sizeof dyninfo)) - return true; + return TRUE; dynver = GET_WORD (abfd, dyninfo.ld_version); if (dynver != 2 && dynver != 3) - return true; + return TRUE; dynoff = GET_WORD (abfd, dyninfo.ld); @@ -198,14 +197,14 @@ sunos_read_dynamic_info (abfd) dynsec = obj_datasec (abfd); dynoff -= bfd_get_section_vma (abfd, dynsec); if (dynoff > bfd_section_size (abfd, dynsec)) - return true; + return TRUE; /* This executable appears to be dynamically linked in a way that we can understand. */ if (! bfd_get_section_contents (abfd, dynsec, (PTR) &linkinfo, (file_ptr) dynoff, (bfd_size_type) sizeof linkinfo)) - return true; + return TRUE; /* Swap in the dynamic link information. */ info->dyninfo.ld_loaded = GET_WORD (abfd, linkinfo.ld_loaded); @@ -252,9 +251,9 @@ sunos_read_dynamic_info (abfd) == (unsigned long) (info->dyninfo.ld_hash - info->dyninfo.ld_rel)); - info->valid = true; + info->valid = TRUE; - return true; + return TRUE; } /* Return the amount of memory required for the dynamic symbols. */ @@ -280,7 +279,7 @@ sunos_get_dynamic_symtab_upper_bound (ab /* Read the external dynamic symbols. */ -static boolean +static bfd_boolean sunos_slurp_dynamic_symtab (abfd) bfd *abfd; { @@ -291,14 +290,14 @@ sunos_slurp_dynamic_symtab (abfd) if (obj_aout_dynamic_info (abfd) == NULL) { if (! sunos_read_dynamic_info (abfd)) - return false; + return FALSE; } info = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); if (! info->valid) { bfd_set_error (bfd_error_no_symbols); - return false; + return FALSE; } /* Get the dynamic nlist structures. */ @@ -307,7 +306,7 @@ sunos_slurp_dynamic_symtab (abfd) amt = (bfd_size_type) info->dynsym_count * EXTERNAL_NLIST_SIZE; info->dynsym = (struct external_nlist *) bfd_alloc (abfd, amt); if (info->dynsym == NULL && info->dynsym_count != 0) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_stab, SEEK_SET) != 0 || bfd_bread ((PTR) info->dynsym, amt, abfd) != amt) { @@ -316,7 +315,7 @@ sunos_slurp_dynamic_symtab (abfd) bfd_release (abfd, info->dynsym); info->dynsym = NULL; } - return false; + return FALSE; } } @@ -326,7 +325,7 @@ sunos_slurp_dynamic_symtab (abfd) amt = info->dyninfo.ld_symb_size; info->dynstr = (char *) bfd_alloc (abfd, amt); if (info->dynstr == NULL && info->dyninfo.ld_symb_size != 0) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) info->dyninfo.ld_symbols, SEEK_SET) != 0 || bfd_bread ((PTR) info->dynstr, amt, abfd) != amt) { @@ -335,11 +334,11 @@ sunos_slurp_dynamic_symtab (abfd) bfd_release (abfd, info->dynstr); info->dynstr = NULL; } - return false; + return FALSE; } } - return true; + return TRUE; } /* Read in the dynamic symbols. */ @@ -413,7 +412,7 @@ sunos_canonicalize_dynamic_symtab (abfd, if (! aout_32_translate_symbol_table (abfd, info->canonical_dynsym, info->dynsym, (bfd_size_type) info->dynsym_count, - info->dynstr, strsize, true)) + info->dynstr, strsize, TRUE)) { if (info->canonical_dynsym != NULL) { @@ -651,13 +650,13 @@ struct sunos_link_hash_table bfd *dynobj; /* Whether we have created the dynamic sections. */ - boolean dynamic_sections_created; + bfd_boolean dynamic_sections_created; /* Whether we need the dynamic sections. */ - boolean dynamic_sections_needed; + bfd_boolean dynamic_sections_needed; /* Whether we need the .got table. */ - boolean got_needed; + bfd_boolean got_needed; /* The number of dynamic symbols. */ size_t dynsymcount; @@ -728,9 +727,9 @@ sunos_link_hash_table_create (abfd) } ret->dynobj = NULL; - ret->dynamic_sections_created = false; - ret->dynamic_sections_needed = false; - ret->got_needed = false; + ret->dynamic_sections_created = FALSE; + ret->dynamic_sections_needed = FALSE; + ret->got_needed = FALSE; ret->dynsymcount = 0; ret->bucketcount = 0; ret->needed = NULL; @@ -751,7 +750,7 @@ sunos_link_hash_table_create (abfd) #define sunos_link_hash_traverse(table, func, info) \ (aout_link_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct aout_link_hash_entry *, PTR))) (func), \ (info))) /* Get the SunOS link hash table from the info structure. This is @@ -759,7 +758,7 @@ sunos_link_hash_table_create (abfd) #define sunos_hash_table(p) ((struct sunos_link_hash_table *) ((p)->hash)) -static boolean sunos_scan_dynamic_symbol +static bfd_boolean sunos_scan_dynamic_symbol PARAMS ((struct sunos_link_hash_entry *, PTR)); /* Create the dynamic sections needed if we are linking against a @@ -769,11 +768,11 @@ static boolean sunos_scan_dynamic_symbol place in the output file. See include/aout/sun4.h for more details of the dynamic linking information. */ -static boolean +static bfd_boolean sunos_create_dynamic_sections (abfd, info, needed) bfd *abfd; struct bfd_link_info *info; - boolean needed; + bfd_boolean needed; { asection *s; @@ -793,7 +792,7 @@ sunos_create_dynamic_sections (abfd, inf if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; /* The .got section holds the global offset table. The address is put in the ld_got field. */ @@ -801,7 +800,7 @@ sunos_create_dynamic_sections (abfd, inf if (s == NULL || ! bfd_set_section_flags (abfd, s, flags) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; /* The .plt section holds the procedure linkage table. The address is put in the ld_plt field. */ @@ -809,7 +808,7 @@ sunos_create_dynamic_sections (abfd, inf if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_CODE) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; /* The .dynrel section holds the dynamic relocs. The address is put in the ld_rel field. */ @@ -817,7 +816,7 @@ sunos_create_dynamic_sections (abfd, inf if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; /* The .hash section holds the dynamic hash table. The address is put in the ld_hash field. */ @@ -825,7 +824,7 @@ sunos_create_dynamic_sections (abfd, inf if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; /* The .dynsym section holds the dynamic symbols. The address is put in the ld_stab field. */ @@ -833,7 +832,7 @@ sunos_create_dynamic_sections (abfd, inf if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; /* The .dynstr section holds the dynamic symbol string table. The address is put in the ld_symbols field. */ @@ -841,9 +840,9 @@ sunos_create_dynamic_sections (abfd, inf if (s == NULL || ! bfd_set_section_flags (abfd, s, flags | SEC_READONLY) || ! bfd_set_section_alignment (abfd, s, 2)) - return false; + return FALSE; - sunos_hash_table (info)->dynamic_sections_created = true; + sunos_hash_table (info)->dynamic_sections_created = TRUE; } if ((needed && ! sunos_hash_table (info)->dynamic_sections_needed) @@ -857,17 +856,17 @@ sunos_create_dynamic_sections (abfd, inf if (s->_raw_size == 0) s->_raw_size = BYTES_IN_WORD; - sunos_hash_table (info)->dynamic_sections_needed = true; - sunos_hash_table (info)->got_needed = true; + sunos_hash_table (info)->dynamic_sections_needed = TRUE; + sunos_hash_table (info)->got_needed = TRUE; } - return true; + return TRUE; } /* Add dynamic symbols during a link. This is called by the a.out backend linker for each object it encounters. */ -static boolean +static bfd_boolean sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp) bfd *abfd; struct bfd_link_info *info; @@ -884,16 +883,14 @@ sunos_add_dynamic_symbols (abfd, info, s if (info->hash->creator == abfd->xvec) { if (! sunos_create_dynamic_sections (abfd, info, - (((abfd->flags & DYNAMIC) != 0 - && ! info->relocateable) - ? true - : false))) - return false; + ((abfd->flags & DYNAMIC) != 0 + && !info->relocateable))) + return FALSE; } /* There is nothing else to do for a normal object. */ if ((abfd->flags & DYNAMIC) == 0) - return true; + return TRUE; dynobj = sunos_hash_table (info)->dynobj; @@ -915,14 +912,14 @@ sunos_add_dynamic_symbols (abfd, info, s /* The native linker seems to just ignore dynamic objects when -r is used. */ if (info->relocateable) - return true; + return TRUE; /* There's no hope of using a dynamic object which does not exactly match the format of the output file. */ if (info->hash->creator != abfd->xvec) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* Make sure we have a .need and a .rules sections. These are only @@ -942,7 +939,7 @@ sunos_add_dynamic_symbols (abfd, info, s | SEC_IN_MEMORY | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, s, 2)) - return false; + return FALSE; } if (bfd_get_section_by_name (dynobj, ".rules") == NULL) @@ -959,12 +956,12 @@ sunos_add_dynamic_symbols (abfd, info, s | SEC_IN_MEMORY | SEC_READONLY)) || ! bfd_set_section_alignment (dynobj, s, 2)) - return false; + return FALSE; } /* Pick up the dynamic symbols and return them to the caller. */ if (! sunos_slurp_dynamic_symtab (abfd)) - return false; + return FALSE; dinfo = (struct sunos_dynamic_info *) obj_aout_dynamic_info (abfd); *symsp = dinfo->dynsym; @@ -986,10 +983,10 @@ sunos_add_dynamic_symbols (abfd, info, s if (bfd_seek (abfd, (file_ptr) need, SEEK_SET) != 0 || bfd_bread (buf, (bfd_size_type) 16, abfd) != 16) - return false; + return FALSE; /* For the format of an ld_need entry, see aout/sun4.h. We - should probably define structs for this manipulation. */ + should probably define structs for this manipulation. */ name = bfd_get_32 (abfd, buf); flags = bfd_get_32 (abfd, buf + 4); @@ -1000,14 +997,14 @@ sunos_add_dynamic_symbols (abfd, info, s alc = sizeof (struct bfd_link_needed_list); needed = (struct bfd_link_needed_list *) bfd_alloc (abfd, alc); if (needed == NULL) - return false; + return FALSE; needed->by = abfd; /* We return the name as [-l]name[.maj][.min]. */ alc = 30; namebuf = (char *) bfd_malloc (alc + 1); if (namebuf == NULL) - return false; + return FALSE; p = namebuf; if ((flags & 0x80000000) != 0) @@ -1018,7 +1015,7 @@ sunos_add_dynamic_symbols (abfd, info, s if (bfd_seek (abfd, (file_ptr) name, SEEK_SET) != 0) { free (namebuf); - return false; + return FALSE; } do @@ -1026,7 +1023,7 @@ sunos_add_dynamic_symbols (abfd, info, s if (bfd_bread (&b, (bfd_size_type) 1, abfd) != 1) { free (namebuf); - return false; + return FALSE; } if ((bfd_size_type) (p - namebuf) >= alc) @@ -1038,7 +1035,7 @@ sunos_add_dynamic_symbols (abfd, info, s if (n == NULL) { free (namebuf); - return false; + return FALSE; } p = n + (p - namebuf); namebuf = n; @@ -1070,7 +1067,7 @@ sunos_add_dynamic_symbols (abfd, info, s if (n == NULL) { free (namebuf); - return false; + return FALSE; } p = n + (p - namebuf); namebuf = n; @@ -1084,7 +1081,7 @@ sunos_add_dynamic_symbols (abfd, info, s if (namecopy == NULL) { free (namebuf); - return false; + return FALSE; } strcpy (namecopy, namebuf); free (namebuf); @@ -1099,14 +1096,14 @@ sunos_add_dynamic_symbols (abfd, info, s *pp = needed; } - return true; + return TRUE; } /* Function to add a single symbol to the linker hash table. This is a wrapper around _bfd_generic_link_add_one_symbol which handles the tweaking needed for dynamic linking support. */ -static boolean +static bfd_boolean sunos_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp) struct bfd_link_info *info; @@ -1116,8 +1113,8 @@ sunos_add_one_symbol (info, abfd, name, asection *section; bfd_vma value; const char *string; - boolean copy; - boolean collect; + bfd_boolean copy; + bfd_boolean collect; struct bfd_link_hash_entry **hashp; { struct sunos_link_hash_entry *h; @@ -1125,13 +1122,13 @@ sunos_add_one_symbol (info, abfd, name, if ((flags & (BSF_INDIRECT | BSF_WARNING | BSF_CONSTRUCTOR)) != 0 || ! bfd_is_und_section (section)) - h = sunos_link_hash_lookup (sunos_hash_table (info), name, true, copy, - false); + h = sunos_link_hash_lookup (sunos_hash_table (info), name, TRUE, copy, + FALSE); else h = ((struct sunos_link_hash_entry *) - bfd_wrapped_link_hash_lookup (abfd, info, name, true, copy, false)); + bfd_wrapped_link_hash_lookup (abfd, info, name, TRUE, copy, FALSE)); if (h == NULL) - return false; + return FALSE; if (hashp != NULL) *hashp = (struct bfd_link_hash_entry *) h; @@ -1185,10 +1182,10 @@ sunos_add_one_symbol (info, abfd, name, && (h->flags & SUNOS_CONSTRUCTOR) != 0) { /* The existing symbol is a constructor symbol, and this symbol - is from a dynamic object. A constructor symbol is actually a - definition, although the type will be bfd_link_hash_undefined - at this point. We want to ignore the definition from the - dynamic object. */ + is from a dynamic object. A constructor symbol is actually a + definition, although the type will be bfd_link_hash_undefined + at this point. We want to ignore the definition from the + dynamic object. */ section = bfd_und_section_ptr; } else if ((flags & BSF_CONSTRUCTOR) != 0 @@ -1198,8 +1195,8 @@ sunos_add_one_symbol (info, abfd, name, && (h->root.root.u.def.section->owner->flags & DYNAMIC) != 0) { /* The existing symbol is defined by a dynamic object, and this - is a constructor symbol. As above, we want to force the use - of the constructor symbol from the regular object. */ + is a constructor symbol. As above, we want to force the use + of the constructor symbol from the regular object. */ h->root.root.type = bfd_link_hash_new; } @@ -1207,7 +1204,7 @@ sunos_add_one_symbol (info, abfd, name, if (! _bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value, string, copy, collect, hashp)) - return false; + return FALSE; if (abfd->xvec == info->hash->creator) { @@ -1244,7 +1241,7 @@ sunos_add_one_symbol (info, abfd, name, h->flags |= SUNOS_CONSTRUCTOR; } - return true; + return TRUE; } /* Return the list of objects needed by BFD. */ @@ -1263,7 +1260,7 @@ bfd_sunos_get_needed_list (abfd, info) /* Record an assignment made to a symbol by a linker script. We need this in case some dynamic object refers to this symbol. */ -boolean +bfd_boolean bfd_sunos_record_link_assignment (output_bfd, info, name) bfd *output_bfd; struct bfd_link_info *info; @@ -1272,15 +1269,15 @@ bfd_sunos_record_link_assignment (output struct sunos_link_hash_entry *h; if (output_bfd->xvec != &MY(vec)) - return true; + return TRUE; /* This is called after we have examined all the input objects. If the symbol does not exist, it merely means that no object refers to it, and we can just ignore it at this point. */ h = sunos_link_hash_lookup (sunos_hash_table (info), name, - false, false, false); + FALSE, FALSE, FALSE); if (h == NULL) - return true; + return TRUE; /* In a shared library, the __DYNAMIC symbol does not appear in the dynamic symbol table. */ @@ -1295,7 +1292,7 @@ bfd_sunos_record_link_assignment (output } } - return true; + return TRUE; } /* Set up the sizes and contents of the dynamic sections created in @@ -1304,10 +1301,10 @@ bfd_sunos_record_link_assignment (output sections before the linker sets the addresses of the various sections. This unfortunately requires reading all the relocs so that we can work out which ones need to become dynamic relocs. If - info->keep_memory is true, we keep the relocs in memory; otherwise, + info->keep_memory is TRUE, we keep the relocs in memory; otherwise, we discard them, and will read them again later. */ -boolean +bfd_boolean bfd_sunos_size_dynamic_sections (output_bfd, info, sdynptr, sneedptr, srulesptr) bfd *output_bfd; @@ -1330,10 +1327,10 @@ bfd_sunos_size_dynamic_sections (output_ *srulesptr = NULL; if (info->relocateable) - return true; + return TRUE; if (output_bfd->xvec != &MY(vec)) - return true; + return TRUE; /* Look through all the input BFD's and read their relocs. It would be better if we didn't have to do this, but there is no other way @@ -1349,7 +1346,7 @@ bfd_sunos_size_dynamic_sections (output_ exec_hdr (sub)->a_trsize) || ! sunos_scan_relocs (info, sub, obj_datasec (sub), exec_hdr (sub)->a_drsize)) - return false; + return FALSE; } } @@ -1360,11 +1357,11 @@ bfd_sunos_size_dynamic_sections (output_ to build a global offset table, there is nothing to do here. */ if (! sunos_hash_table (info)->dynamic_sections_needed && ! sunos_hash_table (info)->got_needed) - return true; + return TRUE; /* If __GLOBAL_OFFSET_TABLE_ was mentioned, define it. */ h = sunos_link_hash_lookup (sunos_hash_table (info), - "__GLOBAL_OFFSET_TABLE_", false, false, false); + "__GLOBAL_OFFSET_TABLE_", FALSE, FALSE, FALSE); if (h != NULL && (h->flags & SUNOS_REF_REGULAR) != 0) { h->flags |= SUNOS_DEF_REGULAR; @@ -1377,8 +1374,8 @@ bfd_sunos_size_dynamic_sections (output_ h->root.root.u.def.section = bfd_get_section_by_name (dynobj, ".got"); /* If the .got section is more than 0x1000 bytes, we set - __GLOBAL_OFFSET_TABLE_ to be 0x1000 bytes into the section, - so that 13 bit relocations have a greater chance of working. */ + __GLOBAL_OFFSET_TABLE_ to be 0x1000 bytes into the section, + so that 13 bit relocations have a greater chance of working. */ s = bfd_get_section_by_name (dynobj, ".got"); BFD_ASSERT (s != NULL); if (s->_raw_size >= 0x1000) @@ -1415,7 +1412,7 @@ bfd_sunos_size_dynamic_sections (output_ s->_raw_size = dynsymcount * sizeof (struct external_nlist); s->contents = (bfd_byte *) bfd_alloc (output_bfd, s->_raw_size); if (s->contents == NULL && s->_raw_size != 0) - return false; + return FALSE; /* The number of buckets is just the number of symbols divided by four. To compute the final size of the hash table, we @@ -1436,7 +1433,7 @@ bfd_sunos_size_dynamic_sections (output_ hashalloc = (dynsymcount + bucketcount - 1) * HASH_ENTRY_SIZE; s->contents = (bfd_byte *) bfd_zalloc (dynobj, hashalloc); if (s->contents == NULL && dynsymcount > 0) - return false; + return FALSE; for (i = 0; i < bucketcount; i++) PUT_WORD (output_bfd, (bfd_vma) -1, s->contents + i * HASH_ENTRY_SIZE); s->_raw_size = bucketcount * HASH_ENTRY_SIZE; @@ -1466,7 +1463,7 @@ bfd_sunos_size_dynamic_sections (output_ contents = (bfd_byte *) bfd_realloc (s->contents, s->_raw_size + add); if (contents == NULL) - return false; + return FALSE; memset (contents + s->_raw_size, 0, (size_t) add); s->contents = contents; s->_raw_size += add; @@ -1481,7 +1478,7 @@ bfd_sunos_size_dynamic_sections (output_ { s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; /* Fill in the first entry in the table. */ switch (bfd_get_arch (dynobj)) @@ -1504,7 +1501,7 @@ bfd_sunos_size_dynamic_sections (output_ { s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; } /* We use the reloc_count field to keep track of how many of the relocs we have output so far. */ @@ -1514,17 +1511,17 @@ bfd_sunos_size_dynamic_sections (output_ s = bfd_get_section_by_name (dynobj, ".got"); s->contents = (bfd_byte *) bfd_alloc (dynobj, s->_raw_size); if (s->contents == NULL) - return false; + return FALSE; *sneedptr = bfd_get_section_by_name (dynobj, ".need"); *srulesptr = bfd_get_section_by_name (dynobj, ".rules"); - return true; + return TRUE; } /* Scan the relocs for an input section. */ -static boolean +static bfd_boolean sunos_scan_relocs (info, abfd, sec, rel_size) struct bfd_link_info *info; bfd *abfd; @@ -1535,7 +1532,7 @@ sunos_scan_relocs (info, abfd, sec, rel_ PTR free_relocs = NULL; if (rel_size == 0) - return true; + return TRUE; if (! info->keep_memory) relocs = free_relocs = bfd_malloc (rel_size); @@ -1555,7 +1552,7 @@ sunos_scan_relocs (info, abfd, sec, rel_ } } if (relocs == NULL) - return false; + return FALSE; if (bfd_seek (abfd, sec->rel_filepos, SEEK_SET) != 0 || bfd_bread (relocs, rel_size, abfd) != rel_size) @@ -1579,12 +1576,12 @@ sunos_scan_relocs (info, abfd, sec, rel_ if (free_relocs != NULL) free (free_relocs); - return true; + return TRUE; error_return: if (free_relocs != NULL) free (free_relocs); - return false; + return FALSE; } /* Scan the relocs for an input section using standard relocs. We @@ -1597,7 +1594,7 @@ sunos_scan_relocs (info, abfd, sec, rel_ reloc. FIXME: We should also handle the PIC relocs here by building global offset table entries. */ -static boolean +static bfd_boolean sunos_scan_std_relocs (info, abfd, sec, relocs, rel_size) struct bfd_link_info *info; bfd *abfd; @@ -1615,7 +1612,7 @@ sunos_scan_std_relocs (info, abfd, sec, if (bfd_get_arch (abfd) != bfd_arch_m68k) { bfd_set_error (bfd_error_invalid_target); - return false; + return FALSE; } dynobj = NULL; @@ -1677,8 +1674,8 @@ sunos_scan_std_relocs (info, abfd, sec, { asection *sgot; - if (! sunos_create_dynamic_sections (abfd, info, false)) - return false; + if (! sunos_create_dynamic_sections (abfd, info, FALSE)) + return FALSE; dynobj = sunos_hash_table (info)->dynobj; splt = bfd_get_section_by_name (dynobj, ".plt"); srel = bfd_get_section_by_name (dynobj, ".dynrel"); @@ -1688,7 +1685,7 @@ sunos_scan_std_relocs (info, abfd, sec, BFD_ASSERT (sgot != NULL); if (sgot->_raw_size == 0) sgot->_raw_size = BYTES_IN_WORD; - sunos_hash_table (info)->got_needed = true; + sunos_hash_table (info)->got_needed = TRUE; } BFD_ASSERT ((h->flags & SUNOS_REF_REGULAR) != 0); @@ -1748,7 +1745,7 @@ sunos_scan_std_relocs (info, abfd, sec, } } - return true; + return TRUE; } /* Scan the relocs for an input section using extended relocs. We @@ -1757,7 +1754,7 @@ sunos_scan_std_relocs (info, abfd, sec, section, an entry is made in the procedure linkage table. Otherwise, we must preserve the reloc as a dynamic reloc. */ -static boolean +static bfd_boolean sunos_scan_ext_relocs (info, abfd, sec, relocs, rel_size) struct bfd_link_info *info; bfd *abfd; @@ -1777,7 +1774,7 @@ sunos_scan_ext_relocs (info, abfd, sec, if (bfd_get_arch (abfd) != bfd_arch_sparc) { bfd_set_error (bfd_error_invalid_target); - return false; + return FALSE; } dynobj = NULL; @@ -1824,15 +1821,15 @@ sunos_scan_ext_relocs (info, abfd, sec, } /* If this is a base relative reloc, we need to make an entry in - the .got section. */ + the .got section. */ if (r_type == RELOC_BASE10 || r_type == RELOC_BASE13 || r_type == RELOC_BASE22) { if (dynobj == NULL) { - if (! sunos_create_dynamic_sections (abfd, info, false)) - return false; + if (! sunos_create_dynamic_sections (abfd, info, FALSE)) + return FALSE; dynobj = sunos_hash_table (info)->dynobj; splt = bfd_get_section_by_name (dynobj, ".plt"); sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -1842,7 +1839,7 @@ sunos_scan_ext_relocs (info, abfd, sec, /* Make sure we have an initial entry in the .got table. */ if (sgot->_raw_size == 0) sgot->_raw_size = BYTES_IN_WORD; - sunos_hash_table (info)->got_needed = true; + sunos_hash_table (info)->got_needed = TRUE; } if (r_extern) @@ -1868,7 +1865,7 @@ sunos_scan_ext_relocs (info, abfd, sec, adata (abfd).local_got_offsets = (bfd_vma *) bfd_zalloc (abfd, amt); if (adata (abfd).local_got_offsets == NULL) - return false; + return FALSE; } if (adata (abfd).local_got_offsets[r_index] != 0) @@ -1892,18 +1889,18 @@ sunos_scan_ext_relocs (info, abfd, sec, } /* Otherwise, we are only interested in relocs against symbols - defined in dynamic objects but not in regular objects. We - only need to consider relocs against external symbols. */ + defined in dynamic objects but not in regular objects. We + only need to consider relocs against external symbols. */ if (! r_extern) { /* But, if we are creating a shared library, we need to - generate an absolute reloc. */ + generate an absolute reloc. */ if (info->shared) { if (dynobj == NULL) { - if (! sunos_create_dynamic_sections (abfd, info, true)) - return false; + if (! sunos_create_dynamic_sections (abfd, info, TRUE)) + return FALSE; dynobj = sunos_hash_table (info)->dynobj; splt = bfd_get_section_by_name (dynobj, ".plt"); sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -1939,8 +1936,8 @@ sunos_scan_ext_relocs (info, abfd, sec, && (h->flags & SUNOS_DEF_REGULAR) == 0) { /* This symbol is apparently undefined. Don't do anything - here; just let the relocation routine report an undefined - symbol. */ + here; just let the relocation routine report an undefined + symbol. */ continue; } @@ -1949,8 +1946,8 @@ sunos_scan_ext_relocs (info, abfd, sec, if (dynobj == NULL) { - if (! sunos_create_dynamic_sections (abfd, info, false)) - return false; + if (! sunos_create_dynamic_sections (abfd, info, FALSE)) + return FALSE; dynobj = sunos_hash_table (info)->dynobj; splt = bfd_get_section_by_name (dynobj, ".plt"); sgot = bfd_get_section_by_name (dynobj, ".got"); @@ -1960,7 +1957,7 @@ sunos_scan_ext_relocs (info, abfd, sec, /* Make sure we have an initial entry in the .got table. */ if (sgot->_raw_size == 0) sgot->_raw_size = BYTES_IN_WORD; - sunos_hash_table (info)->got_needed = true; + sunos_hash_table (info)->got_needed = TRUE; } BFD_ASSERT (r_type == RELOC_JMP_TBL @@ -2025,26 +2022,26 @@ sunos_scan_ext_relocs (info, abfd, sec, splt->_raw_size += SPARC_PLT_ENTRY_SIZE; /* We will also need a dynamic reloc entry, unless this - is a JMP_TBL reloc produced by linking PIC compiled - code, and we are not making a shared library. */ + is a JMP_TBL reloc produced by linking PIC compiled + code, and we are not making a shared library. */ if (info->shared || (h->flags & SUNOS_DEF_REGULAR) == 0) srel->_raw_size += RELOC_EXT_SIZE; } /* If we are creating a shared library, we need to copy over - any reloc other than a jump table reloc. */ + any reloc other than a jump table reloc. */ if (info->shared && r_type != RELOC_JMP_TBL) srel->_raw_size += RELOC_EXT_SIZE; } } - return true; + return TRUE; } /* Build the hash table of dynamic symbols, and to mark as written all symbols from dynamic objects which we do not plan to write out. */ -static boolean +static bfd_boolean sunos_scan_dynamic_symbol (h, data) struct sunos_link_hash_entry *h; PTR data; @@ -2066,7 +2063,7 @@ sunos_scan_dynamic_symbol (h, data) if ((h->flags & SUNOS_DEF_REGULAR) == 0 && (h->flags & SUNOS_DEF_DYNAMIC) != 0 && strcmp (h->root.root.root.string, "__DYNAMIC") != 0) - h->root.written = true; + h->root.written = TRUE; /* If this symbol is defined by a dynamic object and referenced by a regular object, see whether we gave it a reasonable value while @@ -2125,7 +2122,7 @@ sunos_scan_dynamic_symbol (h, data) contents = (bfd_byte *) bfd_realloc (s->contents, s->_raw_size + len + 1); if (contents == NULL) - return false; + return FALSE; s->contents = contents; h->dynstr_index = s->_raw_size; @@ -2161,7 +2158,7 @@ sunos_scan_dynamic_symbol (h, data) } } - return true; + return TRUE; } /* Link a dynamic object. We actually don't have anything to do at @@ -2169,18 +2166,18 @@ sunos_scan_dynamic_symbol (h, data) code from doing anything with the object. */ /*ARGSUSED*/ -static boolean +static bfd_boolean sunos_link_dynamic_object (info, abfd) struct bfd_link_info *info ATTRIBUTE_UNUSED; bfd *abfd ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Write out a dynamic symbol. This is called by the final traversal over the symbol table. */ -static boolean +static bfd_boolean sunos_write_dynamic_symbol (output_bfd, info, harg) bfd *output_bfd; struct bfd_link_info *info; @@ -2254,7 +2251,7 @@ sunos_write_dynamic_symbol (output_bfd, } /* We also need to add a jump table reloc, unless this is the - result of a JMP_TBL reloc from PIC compiled code. */ + result of a JMP_TBL reloc from PIC compiled code. */ if (info->shared || (h->flags & SUNOS_DEF_REGULAR) == 0) { BFD_ASSERT (h->dynindx >= 0); @@ -2320,7 +2317,7 @@ sunos_write_dynamic_symbol (output_bfd, we can have a PLT entry for a nondynamic symbol when linking PIC compiled code from a regular object. */ if (h->dynindx < 0) - return true; + return TRUE; switch (h->root.root.type) { @@ -2328,7 +2325,7 @@ sunos_write_dynamic_symbol (output_bfd, case bfd_link_hash_new: abort (); /* Avoid variable not initialized warnings. */ - return true; + return TRUE; case bfd_link_hash_undefined: type = N_UNDF | N_EXT; val = 0; @@ -2386,7 +2383,7 @@ sunos_write_dynamic_symbol (output_bfd, case bfd_link_hash_warning: /* FIXME: Ignore these for now. The circumstances under which they should be written out are not clear to me. */ - return true; + return TRUE; } s = bfd_get_section_by_name (sunos_hash_table (info)->dynobj, ".dynsym"); @@ -2405,7 +2402,7 @@ sunos_write_dynamic_symbol (output_bfd, PUT_WORD (output_bfd, h->dynstr_index, outsym->e_strx); PUT_WORD (output_bfd, val, outsym->e_value); - return true; + return TRUE; } /* This is called for each reloc against an external symbol. If this @@ -2414,7 +2411,7 @@ sunos_write_dynamic_symbol (output_bfd, reloc. */ /*ARGSUSED*/ -static boolean +static bfd_boolean sunos_check_dynamic_reloc (info, input_bfd, input_section, harg, reloc, contents, skip, relocationp) struct bfd_link_info *info; @@ -2423,19 +2420,19 @@ sunos_check_dynamic_reloc (info, input_b struct aout_link_hash_entry *harg; PTR reloc; bfd_byte *contents ATTRIBUTE_UNUSED; - boolean *skip; + bfd_boolean *skip; bfd_vma *relocationp; { struct sunos_link_hash_entry *h = (struct sunos_link_hash_entry *) harg; bfd *dynobj; - boolean baserel; - boolean jmptbl; - boolean pcrel; + bfd_boolean baserel; + bfd_boolean jmptbl; + bfd_boolean pcrel; asection *s; bfd_byte *p; long indx; - *skip = false; + *skip = FALSE; dynobj = sunos_hash_table (info)->dynobj; @@ -2493,7 +2490,7 @@ sunos_check_dynamic_reloc (info, input_b || r_type == RELOC_WDISP30 || r_type == RELOC_WDISP22); /* We don't consider the PC10 and PC22 types to be PC relative, - because they are pcrel_offset. */ + because they are pcrel_offset. */ } if (baserel) @@ -2562,7 +2559,7 @@ sunos_check_dynamic_reloc (info, input_b && (h->flags & SUNOS_DEF_REGULAR) == 0)) { /* We need to create a GLOB_DAT or 32 reloc to tell the - dynamic linker to fill in this entry in the table. */ + dynamic linker to fill in this entry in the table. */ s = bfd_get_section_by_name (dynobj, ".dynrel"); BFD_ASSERT (s != NULL); @@ -2667,11 +2664,11 @@ sunos_check_dynamic_reloc (info, input_b - sunos_hash_table (info)->got_base); /* There is nothing else to do for a base relative reloc. */ - return true; + return TRUE; } if (! sunos_hash_table (info)->dynamic_sections_needed) - return true; + return TRUE; if (! info->shared) { if (h == NULL @@ -2680,7 +2677,7 @@ sunos_check_dynamic_reloc (info, input_b || (h->flags & SUNOS_DEF_REGULAR) != 0 || (h->flags & SUNOS_DEF_DYNAMIC) == 0 || (h->root.root.u.undef.abfd->flags & DYNAMIC) == 0) - return true; + return TRUE; } else { @@ -2689,7 +2686,7 @@ sunos_check_dynamic_reloc (info, input_b || jmptbl || strcmp (h->root.root.root.string, "__GLOBAL_OFFSET_TABLE_") == 0)) - return true; + return TRUE; } /* It looks like this is a reloc we are supposed to copy. */ @@ -2732,7 +2729,7 @@ sunos_check_dynamic_reloc (info, input_b srel->r_index[0] = (bfd_byte)indx; } /* FIXME: We may have to change the addend for a PC relative - reloc. */ + reloc. */ } else { @@ -2771,14 +2768,14 @@ sunos_check_dynamic_reloc (info, input_b ++s->reloc_count; if (h != NULL) - *skip = true; + *skip = TRUE; - return true; + return TRUE; } /* Finish up the dynamic linking information. */ -static boolean +static bfd_boolean sunos_finish_dynamic_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -2790,7 +2787,7 @@ sunos_finish_dynamic_link (abfd, info) if (! sunos_hash_table (info)->dynamic_sections_needed && ! sunos_hash_table (info)->got_needed) - return true; + return TRUE; dynobj = sunos_hash_table (info)->dynobj; @@ -2843,7 +2840,7 @@ sunos_finish_dynamic_link (abfd, info) o->contents, (file_ptr) o->output_offset, o->_raw_size)) - return false; + return FALSE; } } @@ -2868,7 +2865,7 @@ sunos_finish_dynamic_link (abfd, info) if (! bfd_set_section_contents (abfd, sdyn->output_section, &esd, (file_ptr) sdyn->output_offset, (bfd_size_type) sizeof esd)) - return false; + return FALSE; PUT_WORD (dynobj, (bfd_vma) 0, esdl.ld_loaded); @@ -2936,10 +2933,10 @@ sunos_finish_dynamic_link (abfd, info) pos += sizeof esd + EXTERNAL_SUN4_DYNAMIC_DEBUGGER_SIZE; if (! bfd_set_section_contents (abfd, sdyn->output_section, &esdl, pos, (bfd_size_type) sizeof esdl)) - return false; + return FALSE; abfd->flags |= DYNAMIC; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/syms.c binutils-2.13.90.0.18/bfd/syms.c --- binutils-2.13.90.0.16/bfd/syms.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/syms.c Mon Dec 16 12:22:52 2002 @@ -346,14 +346,14 @@ FUNCTION bfd_is_local_label SYNOPSIS - boolean bfd_is_local_label(bfd *abfd, asymbol *sym); + bfd_boolean bfd_is_local_label(bfd *abfd, asymbol *sym); DESCRIPTION - Return true if the given symbol @var{sym} in the BFD @var{abfd} is - a compiler generated local label, else return false. + Return TRUE if the given symbol @var{sym} in the BFD @var{abfd} is + a compiler generated local label, else return FALSE. */ -boolean +bfd_boolean bfd_is_local_label (abfd, sym) bfd *abfd; asymbol *sym; @@ -362,9 +362,9 @@ bfd_is_local_label (abfd, sym) starts with '.' is local. This would accidentally catch section names if we didn't reject them here. */ if ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_SECTION_SYM)) != 0) - return false; + return FALSE; if (sym->name == NULL) - return false; + return FALSE; return bfd_is_local_label_name (abfd, sym->name); } @@ -373,12 +373,12 @@ FUNCTION bfd_is_local_label_name SYNOPSIS - boolean bfd_is_local_label_name(bfd *abfd, const char *name); + bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); DESCRIPTION - Return true if a symbol with the name @var{name} in the BFD + Return TRUE if a symbol with the name @var{name} in the BFD @var{abfd} is a compiler generated local label, else return - false. This just checks whether the name has the form of a + FALSE. This just checks whether the name has the form of a local label. .#define bfd_is_local_label_name(abfd, name) \ @@ -408,7 +408,7 @@ FUNCTION bfd_set_symtab SYNOPSIS - boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count); + bfd_boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count); DESCRIPTION Arrange that when the output BFD @var{abfd} is closed, @@ -416,7 +416,7 @@ DESCRIPTION will be written. */ -boolean +bfd_boolean bfd_set_symtab (abfd, location, symcount) bfd *abfd; asymbol **location; @@ -425,12 +425,12 @@ bfd_set_symtab (abfd, location, symcount if ((abfd->format != bfd_object) || (bfd_read_p (abfd))) { bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } bfd_get_outsymbols (abfd) = location; bfd_get_symcount (abfd) = symcount; - return true; + return TRUE; } /* @@ -706,14 +706,14 @@ DESCRIPTION Returns zero otherwise. SYNOPSIS - boolean bfd_is_undefined_symclass (int symclass); + bfd_boolean bfd_is_undefined_symclass (int symclass); */ -boolean +bfd_boolean bfd_is_undefined_symclass (symclass) int symclass; { - return (boolean) (symclass == 'U' || symclass == 'w' || symclass == 'v'); + return symclass == 'U' || symclass == 'w' || symclass == 'v'; } /* @@ -749,12 +749,12 @@ FUNCTION bfd_copy_private_symbol_data SYNOPSIS - boolean bfd_copy_private_symbol_data(bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); + bfd_boolean bfd_copy_private_symbol_data(bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); DESCRIPTION Copy private symbol information from @var{isym} in the BFD @var{ibfd} to the symbol @var{osym} in the BFD @var{obfd}. - Return <> on success, <> on error. Possible error + Return <> on success, <> on error. Possible error returns are: o <> - @@ -773,7 +773,7 @@ DESCRIPTION long _bfd_generic_read_minisymbols (abfd, dynamic, minisymsp, sizep) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; PTR *minisymsp; unsigned int *sizep; { @@ -820,7 +820,7 @@ _bfd_generic_read_minisymbols (abfd, dyn asymbol * _bfd_generic_minisymbol_to_symbol (abfd, dynamic, minisym, sym) bfd *abfd ATTRIBUTE_UNUSED; - boolean dynamic ATTRIBUTE_UNUSED; + bfd_boolean dynamic ATTRIBUTE_UNUSED; const PTR minisym; asymbol *sym ATTRIBUTE_UNUSED; { @@ -830,7 +830,7 @@ _bfd_generic_minisymbol_to_symbol (abfd, /* Look through stabs debugging information in .stab and .stabstr sections to find the source file and line closest to a desired location. This is used by COFF and ELF targets. It sets *pfound - to true if it finds some information. The *pinfo field is used to + to TRUE if it finds some information. The *pinfo field is used to pass cached information in and out of this routine; this first time the routine is called for a BFD, *pinfo should be NULL. The value placed in *pinfo should be saved with the BFD, and passed back each @@ -902,14 +902,14 @@ struct stab_find_info char *filename; }; -boolean +bfd_boolean _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, pfound, pfilename, pfnname, pline, pinfo) bfd *abfd; asymbol **symbols; asection *section; bfd_vma offset; - boolean *pfound; + bfd_boolean *pfound; const char **pfilename; const char **pfnname; unsigned int *pline; @@ -924,9 +924,9 @@ _bfd_stab_section_find_nearest_line (abf char *file_name; char *directory_name; int saw_fun; - boolean saw_line, saw_func; + bfd_boolean saw_line, saw_func; - *pfound = false; + *pfound = FALSE; *pfilename = bfd_get_filename (abfd); *pfnname = NULL; *pline = 0; @@ -957,7 +957,7 @@ _bfd_stab_section_find_nearest_line (abf if (info->stabsec == NULL || info->strsec == NULL) { /* No stabs debugging information. */ - return true; + return TRUE; } stabsize = info->stabsec->_raw_size; @@ -974,7 +974,7 @@ _bfd_stab_section_find_nearest_line (abf info = (struct stab_find_info *) bfd_zalloc (abfd, amt); if (info == NULL) - return false; + return FALSE; /* FIXME: When using the linker --split-by-file or --split-by-reloc options, it is possible for the .stab and @@ -988,7 +988,7 @@ _bfd_stab_section_find_nearest_line (abf /* No stabs debugging information. Set *pinfo so that we can return quickly in the info != NULL case above. */ *pinfo = (PTR) info; - return true; + return TRUE; } stabsize = info->stabsec->_raw_size; @@ -997,13 +997,13 @@ _bfd_stab_section_find_nearest_line (abf info->stabs = (bfd_byte *) bfd_alloc (abfd, stabsize); info->strs = (bfd_byte *) bfd_alloc (abfd, strsize); if (info->stabs == NULL || info->strs == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, info->stabsec, info->stabs, (bfd_vma) 0, stabsize) || ! bfd_get_section_contents (abfd, info->strsec, info->strs, (bfd_vma) 0, strsize)) - return false; + return FALSE; /* If this is a relocateable object file, we have to relocate the entries in .stab. This should always be simple 32 bit @@ -1011,17 +1011,17 @@ _bfd_stab_section_find_nearest_line (abf this should be no big deal. */ reloc_size = bfd_get_reloc_upper_bound (abfd, info->stabsec); if (reloc_size < 0) - return false; + return FALSE; reloc_vector = (arelent **) bfd_malloc ((bfd_size_type) reloc_size); if (reloc_vector == NULL && reloc_size != 0) - return false; + return FALSE; reloc_count = bfd_canonicalize_reloc (abfd, info->stabsec, reloc_vector, symbols); if (reloc_count < 0) { if (reloc_vector != NULL) free (reloc_vector); - return false; + return FALSE; } if (reloc_count > 0) { @@ -1046,7 +1046,7 @@ _bfd_stab_section_find_nearest_line (abf bfd_set_error (bfd_error_invalid_operation); if (reloc_vector != NULL) free (reloc_vector); - return false; + return FALSE; } val = bfd_get_32 (abfd, info->stabs + r->address); @@ -1100,14 +1100,14 @@ _bfd_stab_section_find_nearest_line (abf ++info->indextablesize; if (info->indextablesize == 0) - return true; + return TRUE; ++info->indextablesize; amt = info->indextablesize; amt *= sizeof (struct indexentry); info->indextable = (struct indexentry *) bfd_alloc (abfd, amt); if (info->indextable == NULL) - return false; + return FALSE; file_name = NULL; directory_name = NULL; @@ -1272,7 +1272,7 @@ _bfd_stab_section_find_nearest_line (abf } if (indexentry == NULL) - return true; + return TRUE; stab = indexentry->stab + STABSIZE; file_name = indexentry->file_name; @@ -1281,14 +1281,14 @@ _bfd_stab_section_find_nearest_line (abf directory_name = indexentry->directory_name; str = indexentry->str; - saw_line = false; - saw_func = false; + saw_line = FALSE; + saw_func = FALSE; for (; stab < (indexentry+1)->stab; stab += STABSIZE) { - boolean done; + bfd_boolean done; bfd_vma val; - done = false; + done = FALSE; switch (stab[TYPEOFF]) { @@ -1324,15 +1324,15 @@ _bfd_stab_section_find_nearest_line (abf #endif } if (val > offset) - done = true; - saw_line = true; + done = TRUE; + saw_line = TRUE; break; case N_FUN: case N_SO: if (saw_func || saw_line) - done = true; - saw_func = true; + done = TRUE; + saw_func = TRUE; break; } @@ -1340,7 +1340,7 @@ _bfd_stab_section_find_nearest_line (abf break; } - *pfound = true; + *pfound = TRUE; if (file_name == NULL || IS_ABSOLUTE_PATH (file_name) || directory_name == NULL) @@ -1361,7 +1361,7 @@ _bfd_stab_section_find_nearest_line (abf len = strlen (file_name) + 1; info->filename = (char *) bfd_malloc ((bfd_size_type) dirlen + len); if (info->filename == NULL) - return false; + return FALSE; memcpy (info->filename, directory_name, dirlen); memcpy (info->filename + dirlen, file_name, len); } @@ -1384,5 +1384,5 @@ _bfd_stab_section_find_nearest_line (abf *pfnname = indexentry->function_name; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/bfd/targets.c binutils-2.13.90.0.18/bfd/targets.c --- binutils-2.13.90.0.16/bfd/targets.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/targets.c Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* Generic target-file-type support for the BFD library. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Cygnus Support. @@ -70,7 +70,7 @@ DESCRIPTION <> on the BFD with a suggested format. If <> has been set, each possible target type is tried to see if it recognizes the specified format. - <> returns <> when the caller guesses right. + <> returns <> when the caller guesses right. @menu @* bfd_target:: @end menu @@ -231,10 +231,10 @@ DESCRIPTION . const struct bfd_target *(*_bfd_check_format[bfd_type_end]) PARAMS ((bfd *)); . . {* Set the format of a file being written. *} -. boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_set_format[bfd_type_end]) PARAMS ((bfd *)); . . {* Write cached information into a file being written, at <>. *} -. boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_write_contents[bfd_type_end]) PARAMS ((bfd *)); . The general target vector. These vectors are initialized using the BFD_JUMP_TABLE macros. @@ -251,15 +251,15 @@ the tokens. .CONCAT2 (NAME,_get_section_contents_in_window) . . {* Called when the BFD is being closed to do any necessary cleanup. *} -. boolean (*_close_and_cleanup) PARAMS ((bfd *)); +. bfd_boolean (*_close_and_cleanup) PARAMS ((bfd *)); . {* Ask the BFD to free all cached information. *} -. boolean (*_bfd_free_cached_info) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_free_cached_info) PARAMS ((bfd *)); . {* Called when a new section is created. *} -. boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr)); +. bfd_boolean (*_new_section_hook) PARAMS ((bfd *, sec_ptr)); . {* Read the contents of a section. *} -. boolean (*_bfd_get_section_contents) PARAMS ((bfd *, sec_ptr, PTR, -. file_ptr, bfd_size_type)); -. boolean (*_bfd_get_section_contents_in_window) +. bfd_boolean (*_bfd_get_section_contents) +. PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); +. bfd_boolean (*_bfd_get_section_contents_in_window) . PARAMS ((bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type)); . . {* Entry points to copy private data. *} @@ -272,32 +272,32 @@ the tokens. .CONCAT2 (NAME,_bfd_print_private_bfd_data) \ . {* Called to copy BFD general private data from one object file . to another. *} -. boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)); +. bfd_boolean (*_bfd_copy_private_bfd_data) PARAMS ((bfd *, bfd *)); . {* Called to merge BFD general private data from one object file . to a common output file when linking. *} -. boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *)); +. bfd_boolean (*_bfd_merge_private_bfd_data) PARAMS ((bfd *, bfd *)); . {* Called to copy BFD private section data from one object file . to another. *} -. boolean (*_bfd_copy_private_section_data) PARAMS ((bfd *, sec_ptr, -. bfd *, sec_ptr)); +. bfd_boolean (*_bfd_copy_private_section_data) +. PARAMS ((bfd *, sec_ptr, bfd *, sec_ptr)); . {* Called to copy BFD private symbol data from one symbol . to another. *} -. boolean (*_bfd_copy_private_symbol_data) PARAMS ((bfd *, asymbol *, -. bfd *, asymbol *)); +. bfd_boolean (*_bfd_copy_private_symbol_data) +. PARAMS ((bfd *, asymbol *, bfd *, asymbol *)); . {* Called to set private backend flags. *} -. boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword)); +. bfd_boolean (*_bfd_set_private_flags) PARAMS ((bfd *, flagword)); . . {* Called to print private BFD data. *} -. boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)); +. bfd_boolean (*_bfd_print_private_bfd_data) PARAMS ((bfd *, PTR)); . . {* Core file entry points. *} .#define BFD_JUMP_TABLE_CORE(NAME) \ .CONCAT2 (NAME,_core_file_failing_command), \ .CONCAT2 (NAME,_core_file_failing_signal), \ .CONCAT2 (NAME,_core_file_matches_executable_p) -. char * (*_core_file_failing_command) PARAMS ((bfd *)); -. int (*_core_file_failing_signal) PARAMS ((bfd *)); -. boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *)); +. char * (*_core_file_failing_command) PARAMS ((bfd *)); +. int (*_core_file_failing_signal) PARAMS ((bfd *)); +. bfd_boolean (*_core_file_matches_executable_p) PARAMS ((bfd *, bfd *)); . . {* Archive entry points. *} .#define BFD_JUMP_TABLE_ARCHIVE(NAME) \ @@ -311,19 +311,19 @@ the tokens. .CONCAT2 (NAME,_get_elt_at_index), \ .CONCAT2 (NAME,_generic_stat_arch_elt), \ .CONCAT2 (NAME,_update_armap_timestamp) -. boolean (*_bfd_slurp_armap) PARAMS ((bfd *)); -. boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *)); -. boolean (*_bfd_construct_extended_name_table) +. bfd_boolean (*_bfd_slurp_armap) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_slurp_extended_name_table) PARAMS ((bfd *)); +. bfd_boolean (*_bfd_construct_extended_name_table) . PARAMS ((bfd *, char **, bfd_size_type *, const char **)); -. void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *)); -. boolean (*write_armap) +. void (*_bfd_truncate_arname) PARAMS ((bfd *, const char *, char *)); +. bfd_boolean (*write_armap) . PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); -. PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *)); -. bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *)); +. PTR (*_bfd_read_ar_hdr_fn) PARAMS ((bfd *)); +. bfd * (*openr_next_archived_file) PARAMS ((bfd *, bfd *)); .#define bfd_get_elt_at_index(b,i) BFD_SEND(b, _bfd_get_elt_at_index, (b,i)) -. bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex)); -. int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *)); -. boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *)); +. bfd * (*_bfd_get_elt_at_index) PARAMS ((bfd *, symindex)); +. int (*_bfd_stat_arch_elt) PARAMS ((bfd *, struct stat *)); +. bfd_boolean (*_bfd_update_armap_timestamp) PARAMS ((bfd *)); . . {* Entry points used for symbols. *} .#define BFD_JUMP_TABLE_SYMBOLS(NAME) \ @@ -338,59 +338,57 @@ the tokens. .CONCAT2 (NAME,_bfd_make_debug_symbol), \ .CONCAT2 (NAME,_read_minisymbols), \ .CONCAT2 (NAME,_minisymbol_to_symbol) -. long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *)); -. long (*_bfd_canonicalize_symtab) PARAMS ((bfd *, +. long (*_bfd_get_symtab_upper_bound) PARAMS ((bfd *)); +. long (*_bfd_canonicalize_symtab) PARAMS ((bfd *, . struct symbol_cache_entry **)); . struct symbol_cache_entry * -. (*_bfd_make_empty_symbol) PARAMS ((bfd *)); -. void (*_bfd_print_symbol) PARAMS ((bfd *, PTR, -. struct symbol_cache_entry *, -. bfd_print_symbol_type)); +. (*_bfd_make_empty_symbol) PARAMS ((bfd *)); +. void (*_bfd_print_symbol) +. PARAMS ((bfd *, PTR, struct symbol_cache_entry *, bfd_print_symbol_type)); .#define bfd_print_symbol(b,p,s,e) BFD_SEND(b, _bfd_print_symbol, (b,p,s,e)) -. void (*_bfd_get_symbol_info) PARAMS ((bfd *, -. struct symbol_cache_entry *, -. symbol_info *)); +. void (*_bfd_get_symbol_info) +. PARAMS ((bfd *, struct symbol_cache_entry *, symbol_info *)); .#define bfd_get_symbol_info(b,p,e) BFD_SEND(b, _bfd_get_symbol_info, (b,p,e)) -. boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *)); +. bfd_boolean (*_bfd_is_local_label_name) PARAMS ((bfd *, const char *)); . -. alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *)); -. boolean (*_bfd_find_nearest_line) +. alent * (*_get_lineno) PARAMS ((bfd *, struct symbol_cache_entry *)); +. bfd_boolean (*_bfd_find_nearest_line) . PARAMS ((bfd *, struct sec *, struct symbol_cache_entry **, bfd_vma, . const char **, const char **, unsigned int *)); . {* Back-door to allow format-aware applications to create debug symbols . while using BFD for everything else. Currently used by the assembler . when creating COFF files. *} -. asymbol *(*_bfd_make_debug_symbol) PARAMS ((bfd *, void *, -. unsigned long size)); +. asymbol * (*_bfd_make_debug_symbol) +. PARAMS ((bfd *, void *, unsigned long size)); .#define bfd_read_minisymbols(b, d, m, s) \ . BFD_SEND (b, _read_minisymbols, (b, d, m, s)) -. long (*_read_minisymbols) PARAMS ((bfd *, boolean, PTR *, -. unsigned int *)); +. long (*_read_minisymbols) +. PARAMS ((bfd *, bfd_boolean, PTR *, unsigned int *)); .#define bfd_minisymbol_to_symbol(b, d, m, f) \ . BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) -. asymbol *(*_minisymbol_to_symbol) PARAMS ((bfd *, boolean, const PTR, -. asymbol *)); +. asymbol * (*_minisymbol_to_symbol) +. PARAMS ((bfd *, bfd_boolean, const PTR, asymbol *)); . . {* Routines for relocs. *} .#define BFD_JUMP_TABLE_RELOCS(NAME) \ .CONCAT2 (NAME,_get_reloc_upper_bound), \ .CONCAT2 (NAME,_canonicalize_reloc), \ .CONCAT2 (NAME,_bfd_reloc_type_lookup) -. long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr)); -. long (*_bfd_canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, -. struct symbol_cache_entry **)); +. long (*_get_reloc_upper_bound) PARAMS ((bfd *, sec_ptr)); +. long (*_bfd_canonicalize_reloc) +. PARAMS ((bfd *, sec_ptr, arelent **, struct symbol_cache_entry **)); . {* See documentation on reloc types. *} . reloc_howto_type * -. (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); +. (*reloc_type_lookup) PARAMS ((bfd *, bfd_reloc_code_real_type)); . . {* Routines used when writing an object file. *} .#define BFD_JUMP_TABLE_WRITE(NAME) \ .CONCAT2 (NAME,_set_arch_mach), \ .CONCAT2 (NAME,_set_section_contents) -. boolean (*_bfd_set_arch_mach) PARAMS ((bfd *, enum bfd_architecture, -. unsigned long)); -. boolean (*_bfd_set_section_contents) PARAMS ((bfd *, sec_ptr, PTR, -. file_ptr, bfd_size_type)); +. bfd_boolean (*_bfd_set_arch_mach) +. PARAMS ((bfd *, enum bfd_architecture, unsigned long)); +. bfd_boolean (*_bfd_set_section_contents) +. PARAMS ((bfd *, sec_ptr, PTR, file_ptr, bfd_size_type)); . . {* Routines used by the linker. *} .#define BFD_JUMP_TABLE_LINK(NAME) \ @@ -406,42 +404,46 @@ the tokens. .CONCAT2 (NAME,_bfd_gc_sections), \ .CONCAT2 (NAME,_bfd_merge_sections), \ .CONCAT2 (NAME,_bfd_discard_group) -. int (*_bfd_sizeof_headers) PARAMS ((bfd *, boolean)); -. bfd_byte *(*_bfd_get_relocated_section_contents) +. int (*_bfd_sizeof_headers) PARAMS ((bfd *, bfd_boolean)); +. bfd_byte * (*_bfd_get_relocated_section_contents) . PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, -. bfd_byte *, boolean, struct symbol_cache_entry **)); +. bfd_byte *, bfd_boolean, struct symbol_cache_entry **)); . -. boolean (*_bfd_relax_section) -. PARAMS ((bfd *, struct sec *, struct bfd_link_info *, boolean *)); +. bfd_boolean (*_bfd_relax_section) +. PARAMS ((bfd *, struct sec *, struct bfd_link_info *, bfd_boolean *)); . . {* Create a hash table for the linker. Different backends store . different information in this table. *} -. struct bfd_link_hash_table *(*_bfd_link_hash_table_create) PARAMS ((bfd *)); +. struct bfd_link_hash_table * +. (*_bfd_link_hash_table_create) PARAMS ((bfd *)); . . {* Release the memory associated with the linker hash table. *} -. void (*_bfd_link_hash_table_free) PARAMS ((struct bfd_link_hash_table *)); +. void (*_bfd_link_hash_table_free) +. PARAMS ((struct bfd_link_hash_table *)); . . {* Add symbols from this object file into the hash table. *} -. boolean (*_bfd_link_add_symbols) PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_link_add_symbols) +. PARAMS ((bfd *, struct bfd_link_info *)); . . {* Indicate that we are only retrieving symbol values from this section. *} -. void (*_bfd_link_just_syms) PARAMS ((asection *, struct bfd_link_info *)); +. void (*_bfd_link_just_syms) +. PARAMS ((asection *, struct bfd_link_info *)); . . {* Do a link based on the link_order structures attached to each . section of the BFD. *} -. boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_final_link) PARAMS ((bfd *, struct bfd_link_info *)); . . {* Should this section be split up into smaller pieces during linking. *} -. boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); +. bfd_boolean (*_bfd_link_split_section) PARAMS ((bfd *, struct sec *)); . . {* Remove sections that are not referenced from the output. *} -. boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_gc_sections) PARAMS ((bfd *, struct bfd_link_info *)); . . {* Attempt to merge SEC_MERGE sections. *} -. boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); +. bfd_boolean (*_bfd_merge_sections) PARAMS ((bfd *, struct bfd_link_info *)); . . {* Discard members of a group. *} -. boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *)); +. bfd_boolean (*_bfd_discard_group) PARAMS ((bfd *, struct sec *)); . . {* Routines to handle dynamic symbols and relocs. *} .#define BFD_JUMP_TABLE_DYNAMIC(NAME) \ @@ -450,14 +452,14 @@ the tokens. .CONCAT2 (NAME,_get_dynamic_reloc_upper_bound), \ .CONCAT2 (NAME,_canonicalize_dynamic_reloc) . {* Get the amount of memory required to hold the dynamic symbols. *} -. long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); +. long (*_bfd_get_dynamic_symtab_upper_bound) PARAMS ((bfd *)); . {* Read in the dynamic symbols. *} -. long (*_bfd_canonicalize_dynamic_symtab) +. long (*_bfd_canonicalize_dynamic_symtab) . PARAMS ((bfd *, struct symbol_cache_entry **)); . {* Get the amount of memory required to hold the dynamic relocs. *} -. long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); +. long (*_bfd_get_dynamic_reloc_upper_bound) PARAMS ((bfd *)); . {* Read in the dynamic relocs. *} -. long (*_bfd_canonicalize_dynamic_reloc) +. long (*_bfd_canonicalize_dynamic_reloc) . PARAMS ((bfd *, arelent **, struct symbol_cache_entry **)); . @@ -531,6 +533,7 @@ extern const bfd_target bfd_elf32_i960_v extern const bfd_target bfd_elf32_ia64_big_vec; extern const bfd_target bfd_elf32_ia64_hpux_big_vec; extern const bfd_target bfd_elf32_ip2k_vec; +extern const bfd_target bfd_elf32_iq2000_vec; extern const bfd_target bfd_elf32_little_generic_vec; extern const bfd_target bfd_elf32_littlearc_vec; extern const bfd_target bfd_elf32_littlearm_oabi_vec; @@ -545,6 +548,7 @@ extern const bfd_target bfd_elf32_mcore_ extern const bfd_target bfd_elf32_mcore_little_vec; extern const bfd_target bfd_elf32_mn10200_vec; extern const bfd_target bfd_elf32_mn10300_vec; +extern const bfd_target bfd_elf32_msp430_vec; extern const bfd_target bfd_elf32_nbigmips_vec; extern const bfd_target bfd_elf32_nlittlemips_vec; extern const bfd_target bfd_elf32_ntradbigmips_vec; @@ -817,6 +821,7 @@ static const bfd_target * const _bfd_tar #endif &bfd_elf32_ia64_hpux_big_vec, &bfd_elf32_ip2k_vec, + &bfd_elf32_iq2000_vec, &bfd_elf32_little_generic_vec, &bfd_elf32_littlearc_vec, &bfd_elf32_littlearm_oabi_vec, @@ -831,6 +836,7 @@ static const bfd_target * const _bfd_tar &bfd_elf32_mcore_little_vec, &bfd_elf32_mn10200_vec, &bfd_elf32_mn10300_vec, + &bfd_elf32_msp430_vec, #ifdef BFD64 &bfd_elf32_nbigmips_vec, &bfd_elf32_nlittlemips_vec, @@ -1184,7 +1190,7 @@ FUNCTION bfd_set_default_target SYNOPSIS - boolean bfd_set_default_target (const char *name); + bfd_boolean bfd_set_default_target (const char *name); DESCRIPTION Set the default target vector to use when recognizing a BFD. @@ -1192,7 +1198,7 @@ DESCRIPTION name or a configuration triplet. */ -boolean +bfd_boolean bfd_set_default_target (name) const char *name; { @@ -1200,14 +1206,14 @@ bfd_set_default_target (name) if (bfd_default_vector[0] != NULL && strcmp (name, bfd_default_vector[0]->name) == 0) - return true; + return TRUE; target = find_target (name); if (target == NULL) - return false; + return FALSE; bfd_default_vector[0] = target; - return true; + return TRUE; } /* @@ -1242,10 +1248,10 @@ bfd_find_target (target_name, abfd) else targname = getenv ("GNUTARGET"); - /* This is safe; the vector cannot be null */ + /* This is safe; the vector cannot be null. */ if (targname == NULL || strcmp (targname, "default") == 0) { - abfd->target_defaulted = true; + abfd->target_defaulted = TRUE; if (bfd_default_vector[0] != NULL) abfd->xvec = bfd_default_vector[0]; else @@ -1253,7 +1259,7 @@ bfd_find_target (target_name, abfd) return abfd->xvec; } - abfd->target_defaulted = false; + abfd->target_defaulted = FALSE; target = find_target (targname); if (target == NULL) diff -uprN binutils-2.13.90.0.16/bfd/tekhex.c binutils-2.13.90.0.18/bfd/tekhex.c --- binutils-2.13.90.0.16/bfd/tekhex.c Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/bfd/tekhex.c Tue Jan 21 10:21:32 2003 @@ -104,21 +104,21 @@ static void tekhex_print_symbol PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); static void tekhex_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); static asymbol *tekhex_make_empty_symbol PARAMS ((bfd *)); -static int tekhex_sizeof_headers PARAMS ((bfd *, boolean)); -static boolean tekhex_write_object_contents PARAMS ((bfd *)); +static int tekhex_sizeof_headers PARAMS ((bfd *, bfd_boolean)); +static bfd_boolean tekhex_write_object_contents PARAMS ((bfd *)); static void out PARAMS ((bfd *, int, char *, char *)); static void writesym PARAMS ((char **, const char *)); static void writevalue PARAMS ((char **, bfd_vma)); -static boolean tekhex_set_section_contents +static bfd_boolean tekhex_set_section_contents PARAMS ((bfd*, sec_ptr, PTR, file_ptr, bfd_size_type)); -static boolean tekhex_set_arch_mach +static bfd_boolean tekhex_set_arch_mach PARAMS ((bfd *, enum bfd_architecture, unsigned long)); -static boolean tekhex_get_section_contents +static bfd_boolean tekhex_get_section_contents PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type)); static void move_section_contents - PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type, boolean)); + PARAMS ((bfd *, asection *, PTR, file_ptr, bfd_size_type, bfd_boolean)); static const bfd_target *tekhex_object_p PARAMS ((bfd *)); -static boolean tekhex_mkobject PARAMS ((bfd *)); +static bfd_boolean tekhex_mkobject PARAMS ((bfd *)); static long tekhex_get_symtab_upper_bound PARAMS ((bfd *)); static long tekhex_get_symtab PARAMS ((bfd *, asymbol **)); static void pass_over PARAMS ((bfd *, void (*) (bfd*, int, char *))); @@ -239,12 +239,12 @@ static void tekhex_init () { unsigned int i; - static boolean inited = false; + static bfd_boolean inited = FALSE; int val; if (! inited) { - inited = true; + inited = TRUE; hex_init (); val = 0; for (i = 0; i < 10; i++) @@ -471,7 +471,7 @@ first_phase (abfd, type, src) } } -/* Pass over an tekhex, calling one of the above functions on each +/* Pass over a tekhex, calling one of the above functions on each record. */ static void @@ -480,7 +480,7 @@ pass_over (abfd, func) void (*func) PARAMS ((bfd *, int, char *)); { unsigned int chars_on_line; - boolean eof = false; + bfd_boolean eof = FALSE; /* To the front of the file */ if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) @@ -492,10 +492,10 @@ pass_over (abfd, func) char type; /* Find first '%' */ - eof = (boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1); + eof = (bfd_boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1); while (*src != '%' && !eof) { - eof = (boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1); + eof = (bfd_boolean) (bfd_bread (src, (bfd_size_type) 1, abfd) != 1); } if (eof) break; @@ -547,7 +547,7 @@ tekhex_get_symtab_upper_bound (abfd) } -static boolean +static bfd_boolean tekhex_mkobject (abfd) bfd *abfd; { @@ -555,17 +555,17 @@ tekhex_mkobject (abfd) tdata = (tdata_type *) bfd_alloc (abfd, (bfd_size_type) sizeof (tdata_type)); if (!tdata) - return false; + return FALSE; abfd->tdata.tekhex_data = tdata; tdata->type = 1; tdata->head = (tekhex_data_list_type *) NULL; tdata->symbols = (struct tekhex_symbol_struct *) NULL; tdata->data = (struct data_struct *) NULL; - return true; + return TRUE; } /* - Return true if the file looks like it's in TekHex format. Just look + Return TRUE if the file looks like it's in TekHex format. Just look for a percent sign and some hex digits */ static const bfd_target * @@ -596,7 +596,7 @@ move_section_contents (abfd, section, lo PTR locationp; file_ptr offset; bfd_size_type count; - boolean get; + bfd_boolean get; { bfd_vma addr; char *location = (char *) locationp; @@ -639,7 +639,7 @@ move_section_contents (abfd, section, lo } -static boolean +static bfd_boolean tekhex_get_section_contents (abfd, section, locationp, offset, count) bfd *abfd; asection *section; @@ -649,14 +649,14 @@ tekhex_get_section_contents (abfd, secti { if (section->flags & (SEC_LOAD | SEC_ALLOC)) { - move_section_contents (abfd, section, locationp, offset, count, true); - return true; + move_section_contents (abfd, section, locationp, offset, count, TRUE); + return TRUE; } else - return false; + return FALSE; } -static boolean +static bfd_boolean tekhex_set_arch_mach (abfd, arch, machine) bfd *abfd; enum bfd_architecture arch; @@ -668,7 +668,7 @@ tekhex_set_arch_mach (abfd, arch, machin /* we have to save up all the Tekhexords for a splurge before output, */ -static boolean +static bfd_boolean tekhex_set_section_contents (abfd, section, locationp, offset, bytes_to_do) bfd *abfd; sec_ptr section; @@ -698,11 +698,11 @@ tekhex_set_section_contents (abfd, secti if (section->flags & (SEC_LOAD | SEC_ALLOC)) { move_section_contents (abfd, section, locationp, offset, bytes_to_do, - false); - return true; + FALSE); + return TRUE; } else - return false; + return FALSE; } @@ -804,7 +804,7 @@ out (abfd, type, start, end) abort (); } -static boolean +static bfd_boolean tekhex_write_object_contents (abfd) bfd *abfd; { @@ -907,7 +907,7 @@ tekhex_write_object_contents (abfd) case 'C': case 'U': bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } writesym (&dst, sym->name); @@ -920,13 +920,13 @@ tekhex_write_object_contents (abfd) /* And the terminator */ if (bfd_bwrite ("%0781010\n", (bfd_size_type) 9, abfd) != 9) abort (); - return true; + return TRUE; } static int tekhex_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; diff -uprN binutils-2.13.90.0.16/bfd/ticoff.h binutils-2.13.90.0.18/bfd/ticoff.h --- binutils-2.13.90.0.16/bfd/ticoff.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/bfd/ticoff.h Mon Dec 16 12:22:52 2002 @@ -19,7 +19,7 @@ #undef F_LSYMS #define F_LSYMS F_LSYMS_TICOFF -static boolean +static bfd_boolean ticoff0_bad_format_hook (abfd, filehdr) bfd *abfd; PTR filehdr; @@ -27,12 +27,12 @@ ticoff0_bad_format_hook (abfd, filehdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (COFF0_BADMAG (*internal_f)) - return false; + return FALSE; - return true; + return TRUE; } -static boolean +static bfd_boolean ticoff1_bad_format_hook (abfd, filehdr) bfd *abfd ATTRIBUTE_UNUSED; PTR filehdr; @@ -40,21 +40,21 @@ ticoff1_bad_format_hook (abfd, filehdr) struct internal_filehdr *internal_f = (struct internal_filehdr *) filehdr; if (COFF1_BADMAG (*internal_f)) - return false; + return FALSE; - return true; + return TRUE; } /* Replace the stock _bfd_coff_is_local_label_name to recognize TI COFF local labels. */ -static boolean +static bfd_boolean ticoff_bfd_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; { if (TICOFF_LOCAL_LABEL_P(name)) - return true; - return false; + return TRUE; + return FALSE; } #define coff_bfd_is_local_label_name ticoff_bfd_is_local_label_name @@ -76,14 +76,14 @@ static const bfd_coff_backend_data ticof coff_SWAP_scnhdr_out, FILHSZ_V0, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ_V0, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif COFF_DEFAULT_SECTION_ALIGNMENT_POWER, coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, @@ -107,14 +107,14 @@ static const bfd_coff_backend_data ticof coff_SWAP_scnhdr_out, FILHSZ, AOUTSZ, SCNHSZ_V01, SYMESZ, AUXESZ, RELSZ, LINESZ, FILNMLEN, #ifdef COFF_LONG_FILENAMES - true, + TRUE, #else - false, + FALSE, #endif #ifdef COFF_LONG_SECTION_NAMES - true, + TRUE, #else - false, + FALSE, #endif COFF_DEFAULT_SECTION_ALIGNMENT_POWER, coff_SWAP_filehdr_in, coff_SWAP_aouthdr_in, coff_SWAP_scnhdr_in, diff -uprN binutils-2.13.90.0.16/bfd/trad-core.c binutils-2.13.90.0.18/bfd/trad-core.c --- binutils-2.13.90.0.16/bfd/trad-core.c Thu Mar 7 11:52:37 2002 +++ binutils-2.13.90.0.18/bfd/trad-core.c Mon Dec 16 12:22:52 2002 @@ -47,13 +47,13 @@ Foundation, Inc., 59 Temple Place - Suit #include TRAD_HEADER #endif - struct trad_core_struct - { - asection *data_section; - asection *stack_section; - asection *reg_section; - struct user u; - }; +struct trad_core_struct +{ + asection *data_section; + asection *stack_section; + asection *reg_section; + struct user u; +}; #define core_upage(bfd) (&((bfd)->tdata.trad_core_data->u)) #define core_datasec(bfd) ((bfd)->tdata.trad_core_data->data_section) @@ -63,11 +63,11 @@ Foundation, Inc., 59 Temple Place - Suit /* forward declarations */ const bfd_target *trad_unix_core_file_p PARAMS ((bfd *abfd)); -char * trad_unix_core_file_failing_command PARAMS ((bfd *abfd)); -int trad_unix_core_file_failing_signal PARAMS ((bfd *abfd)); -boolean trad_unix_core_file_matches_executable_p - PARAMS ((bfd *core_bfd, bfd *exec_bfd)); -static void swap_abort PARAMS ((void)); +char * trad_unix_core_file_failing_command PARAMS ((bfd *abfd)); +int trad_unix_core_file_failing_signal PARAMS ((bfd *abfd)); +bfd_boolean trad_unix_core_file_matches_executable_p + PARAMS ((bfd *core_bfd, bfd *exec_bfd)); +static void swap_abort PARAMS ((void)); /* Handle 4.2-style (and perhaps also sysV-style) core dump file. */ @@ -261,12 +261,12 @@ trad_unix_core_file_failing_signal (igno } /* ARGSUSED */ -boolean +bfd_boolean trad_unix_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return true; /* FIXME, We have no way of telling at this point */ + return TRUE; /* FIXME, We have no way of telling at this point */ } /* If somebody calls any byte-swapping routines, shoot them. */ diff -uprN binutils-2.13.90.0.16/bfd/versados.c binutils-2.13.90.0.18/bfd/versados.c --- binutils-2.13.90.0.16/bfd/versados.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/bfd/versados.c Mon Dec 16 12:22:52 2002 @@ -44,18 +44,19 @@ #include "libbfd.h" #include "libiberty.h" -static boolean versados_mkobject PARAMS ((bfd *)); -static boolean versados_scan PARAMS ((bfd *)); +static bfd_boolean versados_mkobject PARAMS ((bfd *)); +static bfd_boolean versados_scan PARAMS ((bfd *)); static const bfd_target *versados_object_p PARAMS ((bfd *)); -static asymbol *versados_new_symbol PARAMS ((bfd *, int, const char *, bfd_vma, asection *)); +static asymbol *versados_new_symbol + PARAMS ((bfd *, int, const char *, bfd_vma, asection *)); static char *new_symbol_string PARAMS ((bfd *, const char *)); static const bfd_target *versados_object_p PARAMS ((bfd *)); -static boolean versados_pass_2 PARAMS ((bfd *)); -static boolean versados_get_section_contents +static bfd_boolean versados_pass_2 PARAMS ((bfd *)); +static bfd_boolean versados_get_section_contents PARAMS ((bfd *, asection *, void *, file_ptr, bfd_size_type)); -static boolean versados_set_section_contents +static bfd_boolean versados_set_section_contents PARAMS ((bfd *, sec_ptr, void *, file_ptr, bfd_size_type)); -static int versados_sizeof_headers PARAMS ((bfd *, boolean)); +static int versados_sizeof_headers PARAMS ((bfd *, bfd_boolean)); static long int versados_get_symtab_upper_bound PARAMS ((bfd *)); static long int versados_get_symtab PARAMS ((bfd *, asymbol **)); static void versados_get_symbol_info @@ -172,7 +173,7 @@ static void process_otr PARAMS ((bfd *, /* Set up the tdata information. */ -static boolean +static bfd_boolean versados_mkobject (abfd) bfd *abfd; { @@ -181,14 +182,14 @@ versados_mkobject (abfd) bfd_size_type amt = sizeof (tdata_type); tdata_type *tdata = (tdata_type *) bfd_alloc (abfd, amt); if (tdata == NULL) - return false; + return FALSE; abfd->tdata.versados_data = tdata; tdata->symbols = NULL; VDATA (abfd)->alert = 0x12345678; } bfd_default_set_arch_mach (abfd, bfd_arch_m68k, 0); - return true; + return TRUE; } /* Report a problem in an S record file. FIXME: This probably should @@ -357,19 +358,19 @@ process_esd (abfd, esd, pass) reloc_howto_type versados_howto_table[] = { - HOWTO (R_RELWORD, 0, 1, 16, false, + HOWTO (R_RELWORD, 0, 1, 16, FALSE, 0, complain_overflow_dont, 0, - "+v16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_RELLONG, 0, 2, 32, false, + "+v16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_RELLONG, 0, 2, 32, FALSE, 0, complain_overflow_dont, 0, - "+v32", true, 0xffffffff, 0xffffffff, false), + "+v32", TRUE, 0xffffffff, 0xffffffff, FALSE), - HOWTO (R_RELWORD_NEG, 0, -1, 16, false, + HOWTO (R_RELWORD_NEG, 0, -1, 16, FALSE, 0, complain_overflow_dont, 0, - "-v16", true, 0x0000ffff, 0x0000ffff, false), - HOWTO (R_RELLONG_NEG, 0, -2, 32, false, + "-v16", TRUE, 0x0000ffff, 0x0000ffff, FALSE), + HOWTO (R_RELLONG_NEG, 0, -2, 32, FALSE, 0, complain_overflow_dont, 0, - "-v32", true, 0xffffffff, 0xffffffff, false), + "-v32", TRUE, 0xffffffff, 0xffffffff, FALSE), }; static int @@ -489,7 +490,7 @@ process_otr (abfd, otr, pass) } } -static boolean +static bfd_boolean versados_scan (abfd) bfd *abfd; { @@ -510,7 +511,7 @@ versados_scan (abfd) { union ext_any any; if (!get_record (abfd, &any)) - return true; + return TRUE; switch (any.header.type) { case VHEADER: @@ -572,7 +573,7 @@ versados_scan (abfd) if ((VDATA (abfd)->symbols == NULL && abfd->symcount > 0) || (VDATA (abfd)->strings == NULL && VDATA (abfd)->stringlen > 0)) - return false; + return FALSE; /* Actually fill in the section symbols, we stick them at the end of the table */ @@ -653,7 +654,7 @@ versados_object_p (abfd) return abfd->xvec; } -static boolean +static bfd_boolean versados_pass_2 (abfd) bfd *abfd; { @@ -687,7 +688,7 @@ versados_pass_2 (abfd) } } -static boolean +static bfd_boolean versados_get_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -696,19 +697,19 @@ versados_get_section_contents (abfd, sec bfd_size_type count; { if (!versados_pass_2 (abfd)) - return false; + return FALSE; memcpy (location, EDATA (abfd, section->target_index).contents + offset, (size_t) count); - return true; + return TRUE; } #define versados_get_section_contents_in_window \ _bfd_generic_get_section_contents_in_window -static boolean +static bfd_boolean versados_set_section_contents (abfd, section, location, offset, bytes_to_do) bfd *abfd ATTRIBUTE_UNUSED; sec_ptr section ATTRIBUTE_UNUSED; @@ -716,13 +717,13 @@ versados_set_section_contents (abfd, sec file_ptr offset ATTRIBUTE_UNUSED; bfd_size_type bytes_to_do ATTRIBUTE_UNUSED; { - return false; + return FALSE; } static int versados_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } diff -uprN binutils-2.13.90.0.16/bfd/version.h binutils-2.13.90.0.18/bfd/version.h --- binutils-2.13.90.0.16/bfd/version.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/bfd/version.h Tue Jan 21 10:21:32 2003 @@ -1,3 +1,3 @@ -#define BFD_VERSION_DATE 20021126 +#define BFD_VERSION_DATE 20030121 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_string@ diff -uprN binutils-2.13.90.0.16/bfd/vms-gsd.c binutils-2.13.90.0.18/bfd/vms-gsd.c --- binutils-2.13.90.0.16/bfd/vms-gsd.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/vms-gsd.c Mon Dec 16 12:22:52 2002 @@ -674,7 +674,9 @@ _bfd_vms_slurp_gsd (abfd, objtype) /* save symbol in vms_symbol_table */ - entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV(vms_symbol_table), symbol->name, true, false); + entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV(vms_symbol_table), + symbol->name, + TRUE, FALSE); if (entry == (vms_symbol_entry *)NULL) { bfd_set_error (bfd_error_no_memory); diff -uprN binutils-2.13.90.0.16/bfd/vms-hdr.c binutils-2.13.90.0.18/bfd/vms-hdr.c --- binutils-2.13.90.0.16/bfd/vms-hdr.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/bfd/vms-hdr.c Mon Dec 16 12:22:52 2002 @@ -1,6 +1,7 @@ /* vms-hdr.c -- BFD back-end for VMS/VAX (openVMS/VAX) and EVAX (openVMS/Alpha) files. - Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Free Software Foundation, Inc. HDR record handling functions EMH record handling functions @@ -408,10 +409,10 @@ _bfd_vms_slurp_eom (abfd, objtype) bfd_set_error (bfd_error_bad_value); return -1; } - PRIV(eom_data).eom_has_transfer = false; + PRIV(eom_data).eom_has_transfer = FALSE; if (PRIV(rec_size) > 10) { - PRIV(eom_data).eom_has_transfer = true; + PRIV(eom_data).eom_has_transfer = TRUE; PRIV(eom_data).eom_b_tfrflg = *(vms_rec + 9); PRIV(eom_data).eom_l_psindx = bfd_getl32 (vms_rec + 12); PRIV(eom_data).eom_l_tfradr = bfd_getl32 (vms_rec + 16); diff -uprN binutils-2.13.90.0.16/bfd/vms-misc.c binutils-2.13.90.0.18/bfd/vms-misc.c --- binutils-2.13.90.0.16/bfd/vms-misc.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/bfd/vms-misc.c Tue Jan 21 10:21:32 2003 @@ -355,8 +355,8 @@ _bfd_vms_get_record (abfd) if (PRIV (file_format) == FF_UNKNOWN) { /* record length repeats ? */ - if ( (vms_buf[0] == vms_buf[4]) - && (vms_buf[1] == vms_buf[5])) + if (vms_buf[0] == vms_buf[4] + && vms_buf[1] == vms_buf[5]) { PRIV (file_format) = FF_FOREIGN; /* Y: foreign environment */ test_start = 2; @@ -605,10 +605,10 @@ add_new_contents (abfd, section) return newptr; } -/* Save section data & offset to an vms_section structure - vms_section_table[] holds the vms_section chain */ +/* Save section data & offset to a vms_section structure + vms_section_table[] holds the vms_section chain. */ -boolean +bfd_boolean _bfd_save_vms_section (abfd, section, data, offset, count) bfd *abfd; sec_ptr section; @@ -621,16 +621,16 @@ _bfd_save_vms_section (abfd, section, da if (section->index >= VMS_SECTION_COUNT) { bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } if (count == (bfd_size_type)0) - return true; + return TRUE; sptr = add_new_contents (abfd, section); if (sptr == NULL) - return false; + return FALSE; memcpy (sptr->contents + offset, data, (size_t) count); - return true; + return TRUE; } /* Get vms_section pointer to saved contents for section # index */ @@ -1092,13 +1092,14 @@ _bfd_vms_enter_symbol (abfd, name) #endif entry = (vms_symbol_entry *) - bfd_hash_lookup (PRIV (vms_symbol_table), name, false, false); + bfd_hash_lookup (PRIV (vms_symbol_table), name, FALSE, FALSE); if (entry == 0) { #if VMS_DEBUG _bfd_vms_debug (8, "creating hash entry for %s\n", name); #endif - entry = (vms_symbol_entry *)bfd_hash_lookup (PRIV (vms_symbol_table), name, true, false); + entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table), + name, TRUE, FALSE); if (entry != 0) { asymbol *symbol; diff -uprN binutils-2.13.90.0.16/bfd/vms-tir.c binutils-2.13.90.0.18/bfd/vms-tir.c --- binutils-2.13.90.0.16/bfd/vms-tir.c Sun Feb 3 11:22:30 2002 +++ binutils-2.13.90.0.18/bfd/vms-tir.c Mon Dec 16 12:22:52 2002 @@ -41,27 +41,48 @@ #include "vms.h" -static void image_set_ptr PARAMS ((bfd *abfd, int psect, uquad offset)); -static void image_inc_ptr PARAMS ((bfd *abfd, uquad offset)); -static void image_dump PARAMS ((bfd *abfd, unsigned char *ptr, int size, int offset)); -static void image_write_b PARAMS ((bfd *abfd, unsigned int value)); -static void image_write_w PARAMS ((bfd *abfd, unsigned int value)); -static void image_write_l PARAMS ((bfd *abfd, unsigned long value)); -static void image_write_q PARAMS ((bfd *abfd, uquad value)); -static int check_section PARAMS ((bfd *, int)); -static boolean etir_sta PARAMS ((bfd *, int, unsigned char *)); -static boolean etir_sto PARAMS ((bfd *, int, unsigned char *)); -static boolean etir_opr PARAMS ((bfd *, int, unsigned char *)); -static boolean etir_ctl PARAMS ((bfd *, int, unsigned char *)); -static boolean etir_stc PARAMS ((bfd *, int, unsigned char *)); -static asection *new_section PARAMS ((bfd *, int)); -static int alloc_section PARAMS ((bfd *, unsigned int)); -static int etir_cmd PARAMS ((bfd *, int, unsigned char *)); -static int analyze_tir PARAMS ((bfd *, unsigned char *, unsigned int)); -static int analyze_etir PARAMS ((bfd *, unsigned char *, unsigned int)); -static unsigned char * tir_opr PARAMS ((bfd *, unsigned char *)); -static const char * tir_cmd_name PARAMS ((int)); -static const char * cmd_name PARAMS ((int)); +static void image_set_ptr + PARAMS ((bfd *abfd, int psect, uquad offset)); +static void image_inc_ptr + PARAMS ((bfd *abfd, uquad offset)); +static void image_dump + PARAMS ((bfd *abfd, unsigned char *ptr, int size, int offset)); +static void image_write_b + PARAMS ((bfd *abfd, unsigned int value)); +static void image_write_w + PARAMS ((bfd *abfd, unsigned int value)); +static void image_write_l + PARAMS ((bfd *abfd, unsigned long value)); +static void image_write_q + PARAMS ((bfd *abfd, uquad value)); +static int check_section + PARAMS ((bfd *, int)); +static bfd_boolean etir_sta + PARAMS ((bfd *, int, unsigned char *)); +static bfd_boolean etir_sto + PARAMS ((bfd *, int, unsigned char *)); +static bfd_boolean etir_opr + PARAMS ((bfd *, int, unsigned char *)); +static bfd_boolean etir_ctl + PARAMS ((bfd *, int, unsigned char *)); +static bfd_boolean etir_stc + PARAMS ((bfd *, int, unsigned char *)); +static asection *new_section + PARAMS ((bfd *, int)); +static int alloc_section + PARAMS ((bfd *, unsigned int)); +static int etir_cmd + PARAMS ((bfd *, int, unsigned char *)); +static int analyze_tir + PARAMS ((bfd *, unsigned char *, unsigned int)); +static int analyze_etir + PARAMS ((bfd *, unsigned char *, unsigned int)); +static unsigned char * tir_opr + PARAMS ((bfd *, unsigned char *)); +static const char * tir_cmd_name + PARAMS ((int)); +static const char * cmd_name + PARAMS ((int)); static int @@ -282,7 +303,7 @@ cmd_name (cmd) see table B-8 of the openVMS linker manual. */ -static boolean +static bfd_boolean etir_sta (abfd, cmd, ptr) bfd *abfd; int cmd; @@ -310,7 +331,7 @@ etir_sta (abfd, cmd, ptr) name = _bfd_vms_save_counted_string (ptr); entry = (vms_symbol_entry *) - bfd_hash_lookup (PRIV (vms_symbol_table), name, false, false); + bfd_hash_lookup (PRIV (vms_symbol_table), name, FALSE, FALSE); if (entry == (vms_symbol_entry *) NULL) { #if VMS_DEBUG @@ -362,7 +383,7 @@ etir_sta (abfd, cmd, ptr) (*_bfd_error_handler) (_("bad section index in %s"), cmd_name (cmd)); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } dummy = bfd_getl64 (ptr+4); _bfd_vms_push (abfd, dummy, (int) psect); @@ -373,18 +394,18 @@ etir_sta (abfd, cmd, ptr) case ETIR_S_C_STA_MOD: case ETIR_S_C_STA_CKARG: (*_bfd_error_handler) (_("unsupported STA cmd %s"), cmd_name (cmd)); - return false; + return FALSE; break; default: (*_bfd_error_handler) (_("reserved STA cmd %d"), cmd); - return false; + return FALSE; break; } #if VMS_DEBUG _bfd_vms_debug (5, "etir_sta true\n"); #endif - return true; + return TRUE; } /* @@ -397,7 +418,7 @@ etir_sta (abfd, cmd, ptr) see table B-9 of the openVMS linker manual. */ -static boolean +static bfd_boolean etir_sto (abfd, cmd, ptr) bfd *abfd; int cmd; @@ -485,12 +506,12 @@ etir_sto (abfd, cmd, ptr) name = _bfd_vms_save_counted_string (ptr); entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table), - name, false, false); + name, FALSE, FALSE); if (entry == (vms_symbol_entry *) NULL) { (*_bfd_error_handler) (_("%s: no symbol \"%s\""), cmd_name (cmd), name); - return false; + return FALSE; } else /* FIXME, reloc. */ @@ -508,12 +529,12 @@ etir_sto (abfd, cmd, ptr) name = _bfd_vms_save_counted_string (ptr); entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table), - name, false, false); + name, FALSE, FALSE); if (entry == (vms_symbol_entry *) NULL) { (*_bfd_error_handler) (_("%s: no symbol \"%s\""), cmd_name (cmd), name); - return false; + return FALSE; } else image_write_q (abfd, (uquad) (entry->symbol->value)); /* FIXME, reloc */ @@ -561,7 +582,7 @@ etir_sto (abfd, cmd, ptr) name = _bfd_vms_save_counted_string (ptr); entry = (vms_symbol_entry *) bfd_hash_lookup (PRIV (vms_symbol_table), - name, false, false); + name, FALSE, FALSE); if (entry == (vms_symbol_entry *) NULL) { #if VMS_DEBUG @@ -591,7 +612,7 @@ etir_sto (abfd, cmd, ptr) break; } - return true; + return TRUE; } /* Stack operator commands @@ -601,7 +622,7 @@ etir_sto (abfd, cmd, ptr) see table B-10 of the openVMS linker manual. */ -static boolean +static bfd_boolean etir_opr (abfd, cmd, ptr) bfd *abfd; int cmd; @@ -709,14 +730,14 @@ etir_opr (abfd, cmd, ptr) break; } - return true; + return TRUE; } /* Control commands. See table B-11 of the openVMS linker manual. */ -static boolean +static bfd_boolean etir_ctl (abfd, cmd, ptr) bfd *abfd; int cmd; @@ -776,14 +797,14 @@ etir_ctl (abfd, cmd, ptr) (*_bfd_error_handler) (_("reserved CTL cmd %d"), cmd); break; } - return true; + return TRUE; } /* store conditional commands See table B-12 and B-13 of the openVMS linker manual. */ -static boolean +static bfd_boolean etir_stc (abfd, cmd, ptr) bfd *abfd; int cmd; @@ -805,9 +826,9 @@ etir_stc (abfd, cmd, ptr) /* 201 Store-conditional Linkage Pair with Procedure Signature arg: lw linkage index - cs procedure name - by signature length - da signature. */ + cs procedure name + by signature length + da signature. */ case ETIR_S_C_STC_LP_PSB: image_inc_ptr (abfd, (uquad) 16); /* skip entry,procval */ @@ -815,7 +836,7 @@ etir_stc (abfd, cmd, ptr) /* 202 Store-conditional Address at global address arg: lw linkage index - cs global name */ + cs global name. */ case ETIR_S_C_STC_GBL: (*_bfd_error_handler) (_("%s: not supported"), cmd_name (cmd)); @@ -823,7 +844,7 @@ etir_stc (abfd, cmd, ptr) /* 203 Store-conditional Code Address at global address arg: lw linkage index - cs procedure name */ + cs procedure name. */ case ETIR_S_C_STC_GCA: (*_bfd_error_handler) (_("%s: not supported"), cmd_name (cmd)); @@ -831,8 +852,8 @@ etir_stc (abfd, cmd, ptr) /* 204 Store-conditional Address at psect + offset arg: lw linkage index - lw psect index - qw offset */ + lw psect index + qw offset. */ case ETIR_S_C_STC_PS: (*_bfd_error_handler) (_("%s: not supported"), cmd_name (cmd)); @@ -899,7 +920,7 @@ etir_stc (abfd, cmd, ptr) #endif break; } - return true; + return TRUE; } static asection * @@ -970,12 +991,12 @@ alloc_section (abfd, idx) } /* tir_sta - + vax stack commands - + Handle sta_xxx commands in tir section ptr points to data area in record - + See table 7-3 of the VAX/VMS linker manual. */ static unsigned char * @@ -992,9 +1013,9 @@ tir_sta (bfd *abfd, unsigned char *ptr) /* stack */ case TIR_S_C_STA_GBL: /* stack global - arg: cs symbol name - - stack 32 bit value of symbol (high bits set to 0). */ + arg: cs symbol name + + stack 32 bit value of symbol (high bits set to 0). */ { char *name; vms_symbol_entry *entry; @@ -1012,26 +1033,26 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_SB: /* stack signed byte - arg: by value - - stack byte value, sign extend to 32 bit. */ + arg: by value + + stack byte value, sign extend to 32 bit. */ _bfd_vms_push (abfd, (uquad) *ptr++, -1); break; case TIR_S_C_STA_SW: /* stack signed short word - arg: sh value - - stack 16 bit value, sign extend to 32 bit. */ + arg: sh value + + stack 16 bit value, sign extend to 32 bit. */ _bfd_vms_push (abfd, (uquad) bfd_getl16 (ptr), -1); ptr += 2; break; case TIR_S_C_STA_LW: /* stack signed longword - arg: lw value - - stack 32 bit value. */ + arg: lw value + + stack 32 bit value. */ _bfd_vms_push (abfd, (uquad) bfd_getl32 (ptr), -1); ptr += 4; break; @@ -1039,9 +1060,9 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_PB: case TIR_S_C_STA_WPB: /* stack psect base plus byte offset (word index) - arg: by section index - (sh section index) - by signed byte offset. */ + arg: by section index + (sh section index) + by signed byte offset. */ { unsigned long dummy; unsigned int psect; @@ -1066,9 +1087,9 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_PW: case TIR_S_C_STA_WPW: /* stack psect base plus word offset (word index) - arg: by section index - (sh section index) - sh signed short offset. */ + arg: by section index + (sh section index) + sh signed short offset. */ { unsigned long dummy; unsigned int psect; @@ -1093,9 +1114,9 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_PL: case TIR_S_C_STA_WPL: /* stack psect base plus long offset (word index) - arg: by section index - (sh section index) - lw signed longword offset. */ + arg: by section index + (sh section index) + lw signed longword offset. */ { unsigned long dummy; unsigned int psect; @@ -1119,41 +1140,41 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_UB: /* stack unsigned byte - arg: by value - - stack byte value. */ + arg: by value + + stack byte value. */ _bfd_vms_push (abfd, (uquad) *ptr++, -1); break; case TIR_S_C_STA_UW: /* stack unsigned short word - arg: sh value - - stack 16 bit value. */ + arg: sh value + + stack 16 bit value. */ _bfd_vms_push (abfd, (uquad) bfd_getl16 (ptr), -1); ptr += 2; break; case TIR_S_C_STA_BFI: /* stack byte from image - arg: none. */ + arg: none. */ /* FALLTHRU */ case TIR_S_C_STA_WFI: /* stack byte from image - arg: none. */ + arg: none. */ /* FALLTHRU */ case TIR_S_C_STA_LFI: /* stack byte from image - arg: none. */ + arg: none. */ (*_bfd_error_handler) (_("stack-from-image not implemented")); return NULL; case TIR_S_C_STA_EPM: /* stack entry point mask - arg: cs symbol name - - stack (unsigned) entry point mask of symbol - err if symbol is no entry point. */ + arg: cs symbol name + + stack (unsigned) entry point mask of symbol + err if symbol is no entry point. */ { char *name; vms_symbol_entry *entry; @@ -1171,20 +1192,20 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_CKARG: /* compare procedure argument - arg: cs symbol name - by argument index - da argument descriptor - - compare argument descriptor with symbol argument (ARG$V_PASSMECH) - and stack TRUE (args match) or FALSE (args dont match) value. */ + arg: cs symbol name + by argument index + da argument descriptor + + compare argument descriptor with symbol argument (ARG$V_PASSMECH) + and stack TRUE (args match) or FALSE (args dont match) value. */ (*_bfd_error_handler) (_("PASSMECH not fully implemented")); _bfd_vms_push (abfd, (uquad) 1, -1); break; case TIR_S_C_STA_LSY: /* stack local symbol value - arg: sh environment index - cs symbol name. */ + arg: sh environment index + cs symbol name. */ { int envidx; char *name; @@ -1204,9 +1225,9 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_LIT: /* stack literal - arg: by literal index - - stack literal. */ + arg: by literal index + + stack literal. */ ptr++; _bfd_vms_push (abfd, (uquad) 0, -1); (*_bfd_error_handler) (_("stack-literal not fully implemented")); @@ -1214,11 +1235,11 @@ tir_sta (bfd *abfd, unsigned char *ptr) case TIR_S_C_STA_LEPM: /* stack local symbol entry point mask - arg: sh environment index - cs symbol name - - stack (unsigned) entry point mask of symbol - err if symbol is no entry point. */ + arg: sh environment index + cs symbol name + + stack (unsigned) entry point mask of symbol + err if symbol is no entry point. */ { int envidx; char *name; @@ -1277,12 +1298,12 @@ tir_cmd_name (cmd) } /* tir_sto - + vax store commands - + handle sto_xxx commands in tir section ptr points to data area in record - + See table 7-4 of the VAX/VMS linker manual. */ static unsigned char * @@ -1300,28 +1321,28 @@ tir_sto (bfd *abfd, unsigned char *ptr) { case TIR_S_C_STO_SB: /* store signed byte: pop stack, write byte - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); image_write_b (abfd, dummy & 0xff); /* FIXME: check top bits */ break; case TIR_S_C_STO_SW: /* store signed word: pop stack, write word - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); image_write_w (abfd, dummy & 0xffff); /* FIXME: check top bits */ break; case TIR_S_C_STO_LW: /* store longword: pop stack, write longword - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); image_write_l (abfd, dummy & 0xffffffff); /* FIXME: check top bits */ break; case TIR_S_C_STO_BD: /* store byte displaced: pop stack, sub lc+1, write byte - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); dummy -= ((PRIV (sections)[psect])->vma + 1); image_write_b (abfd, dummy & 0xff);/* FIXME: check top bits */ @@ -1329,7 +1350,7 @@ tir_sto (bfd *abfd, unsigned char *ptr) case TIR_S_C_STO_WD: /* store word displaced: pop stack, sub lc+2, write word - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); dummy -= ((PRIV (sections)[psect])->vma + 2); image_write_w (abfd, dummy & 0xffff);/* FIXME: check top bits */ @@ -1337,7 +1358,7 @@ tir_sto (bfd *abfd, unsigned char *ptr) case TIR_S_C_STO_LD: /* store long displaced: pop stack, sub lc+4, write long - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); dummy -= ((PRIV (sections)[psect])->vma + 4); image_write_l (abfd, dummy & 0xffffffff);/* FIXME: check top bits */ @@ -1345,14 +1366,14 @@ tir_sto (bfd *abfd, unsigned char *ptr) case TIR_S_C_STO_LI: /* store short literal: pop stack, write byte - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); image_write_b (abfd, dummy & 0xff);/* FIXME: check top bits */ break; case TIR_S_C_STO_PIDR: /* store position independent data reference: pop stack, write longword - arg: none. + arg: none. FIXME: incomplete ! */ dummy = _bfd_vms_pop (abfd, &psect); image_write_l (abfd, dummy & 0xffffffff); @@ -1360,8 +1381,8 @@ tir_sto (bfd *abfd, unsigned char *ptr) case TIR_S_C_STO_PICR: /* store position independent code reference: pop stack, write longword - arg: none. - FIXME: incomplete ! */ + arg: none. + FIXME: incomplete ! */ dummy = _bfd_vms_pop (abfd, &psect); image_write_b (abfd, 0x9f); image_write_l (abfd, dummy & 0xffffffff); @@ -1369,8 +1390,8 @@ tir_sto (bfd *abfd, unsigned char *ptr) case TIR_S_C_STO_RIVB: /* store repeated immediate variable bytes - 1-byte count n field followed by n bytes of data - pop stack, write n bytes times. */ + 1-byte count n field followed by n bytes of data + pop stack, write n bytes times. */ size = *ptr++; dummy = (unsigned long) _bfd_vms_pop (abfd, NULL); while (dummy-- > 0L) @@ -1430,7 +1451,7 @@ tir_sto (bfd *abfd, unsigned char *ptr) all 32 bit signed arithmetic all word just like a stack calculator arguments are popped from stack, results are pushed on stack - + See table 7-5 of the VAX/VMS linker manual. */ static unsigned char * @@ -1573,7 +1594,7 @@ tir_opr (abfd, ptr) } /* control commands - + See table 7-6 of the VAX/VMS linker manual. */ static unsigned char * @@ -1590,7 +1611,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr) { case TIR_S_C_CTL_SETRB: /* Set relocation base: pop stack, set image location counter - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); if (psect >= PRIV (section_count)) alloc_section (abfd, psect); @@ -1599,14 +1620,14 @@ tir_ctl (bfd *abfd, unsigned char *ptr) case TIR_S_C_CTL_AUGRB: /* Augment relocation base: increment image location counter by offset - arg: lw offset value. */ + arg: lw offset value. */ dummy = bfd_getl32 (ptr); image_inc_ptr (abfd, (uquad) dummy); break; case TIR_S_C_CTL_DFLOC: /* Define location: pop index, save location counter under index - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, NULL); (*_bfd_error_handler) (_("%s: not fully implemented"), tir_cmd_name (ptr[-1])); @@ -1614,7 +1635,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr) case TIR_S_C_CTL_STLOC: /* Set location: pop index, restore location counter from index - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); (*_bfd_error_handler) (_("%s: not fully implemented"), tir_cmd_name (ptr[-1])); @@ -1622,7 +1643,7 @@ tir_ctl (bfd *abfd, unsigned char *ptr) case TIR_S_C_CTL_STKDL: /* Stack defined location: pop index, push location counter from index - arg: none. */ + arg: none. */ dummy = _bfd_vms_pop (abfd, &psect); (*_bfd_error_handler) (_("%s: not fully implemented"), tir_cmd_name (ptr[-1])); @@ -1648,7 +1669,7 @@ tir_cmd (bfd *abfd, unsigned char *ptr) } tir_table[] = { - { 0, TIR_S_C_MAXSTACOD, tir_sta }, + { 0, TIR_S_C_MAXSTACOD, tir_sta }, { TIR_S_C_MINSTOCOD, TIR_S_C_MAXSTOCOD, tir_sto }, { TIR_S_C_MINOPRCOD, TIR_S_C_MAXOPRCOD, tir_opr }, { TIR_S_C_MINCTLCOD, TIR_S_C_MAXCTLCOD, tir_ctl }, @@ -1701,7 +1722,7 @@ etir_cmd (abfd, cmd, ptr) { int mincod; int maxcod; - boolean (*explain) PARAMS ((bfd *, int, unsigned char *)); + bfd_boolean (*explain) PARAMS ((bfd *, int, unsigned char *)); } etir_table[] = { @@ -1891,9 +1912,12 @@ _bfd_vms_slurp_lnk (abfd, objtype) This is still under construction and therefore not documented. */ -static void start_etir_record PARAMS ((bfd *abfd, int index, uquad offset, boolean justoffset)); -static void sto_imm PARAMS ((bfd *abfd, vms_section *sptr, bfd_vma vaddr, int index)); -static void end_etir_record PARAMS ((bfd *abfd)); +static void start_etir_record + PARAMS ((bfd *abfd, int index, uquad offset, bfd_boolean justoffset)); +static void sto_imm + PARAMS ((bfd *abfd, vms_section *sptr, bfd_vma vaddr, int index)); +static void end_etir_record + PARAMS ((bfd *abfd)); static void sto_imm (abfd, sptr, vaddr, index) @@ -1921,7 +1945,7 @@ sto_imm (abfd, sptr, vaddr, index) if (_bfd_vms_output_check (abfd, size) < 0) { /* doesn't fit, split ! */ end_etir_record (abfd); - start_etir_record (abfd, index, vaddr, false); + start_etir_record (abfd, index, vaddr, FALSE); size = _bfd_vms_output_check (abfd, 0); /* get max size */ if (size > ssize) /* more than what's left ? */ size = ssize; @@ -1950,7 +1974,7 @@ start_etir_record (abfd, index, offset, bfd *abfd; int index; uquad offset; - boolean justoffset; + bfd_boolean justoffset; { if (!justoffset) { @@ -2055,7 +2079,7 @@ _bfd_vms_write_tir (abfd, objtype) vaddr = (bfd_vma) (sptr->offset); start_etir_record (abfd, section->index, (uquad) sptr->offset, - false); + FALSE); while (sptr != NULL) /* one STA_PQ, CTL_SETRB per vms_section */ { @@ -2111,7 +2135,7 @@ _bfd_vms_write_tir (abfd, objtype) end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STO_GBL_LW, @@ -2128,7 +2152,7 @@ _bfd_vms_write_tir (abfd, objtype) end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STA_LW, @@ -2148,7 +2172,7 @@ _bfd_vms_write_tir (abfd, objtype) end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STA_PQ, @@ -2178,7 +2202,7 @@ _bfd_vms_write_tir (abfd, objtype) end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STO_GBL, @@ -2195,7 +2219,7 @@ _bfd_vms_write_tir (abfd, objtype) end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STA_QW, @@ -2215,7 +2239,7 @@ _bfd_vms_write_tir (abfd, objtype) end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STA_PQ, @@ -2266,7 +2290,7 @@ _bfd_vms_write_tir (abfd, objtype) { end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STC_LP_PSB, @@ -2291,7 +2315,7 @@ _bfd_vms_write_tir (abfd, objtype) end_etir_record (abfd); start_etir_record (abfd, section->index, - vaddr, false); + vaddr, FALSE); } _bfd_vms_output_begin (abfd, ETIR_S_C_STO_CA, diff -uprN binutils-2.13.90.0.16/bfd/vms.c binutils-2.13.90.0.18/bfd/vms.c --- binutils-2.13.90.0.16/bfd/vms.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/bfd/vms.c Mon Dec 16 12:22:52 2002 @@ -26,110 +26,142 @@ Foundation, Inc., 59 Temple Place - Suit #include "vms.h" -static boolean vms_initialize PARAMS ((bfd *)); +static bfd_boolean vms_initialize + PARAMS ((bfd *)); static unsigned int priv_section_count; -static boolean fill_section_ptr PARAMS ((struct bfd_hash_entry *, PTR)); -static boolean vms_fixup_sections PARAMS ((bfd *)); -static boolean copy_symbols PARAMS ((struct bfd_hash_entry *, PTR)); +static bfd_boolean fill_section_ptr + PARAMS ((struct bfd_hash_entry *, PTR)); +static bfd_boolean vms_fixup_sections + PARAMS ((bfd *)); +static bfd_boolean copy_symbols + PARAMS ((struct bfd_hash_entry *, PTR)); static bfd_reloc_status_type reloc_nil PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **)); -static const struct bfd_target *vms_object_p PARAMS ((bfd *abfd)); -static const struct bfd_target *vms_archive_p PARAMS ((bfd *abfd)); -static boolean vms_mkobject PARAMS ((bfd *abfd)); -static boolean vms_write_object_contents PARAMS ((bfd *abfd)); -static boolean vms_close_and_cleanup PARAMS ((bfd *abfd)); -static boolean vms_bfd_free_cached_info PARAMS ((bfd *abfd)); -static boolean vms_new_section_hook PARAMS ((bfd *abfd, asection *section)); -static boolean vms_get_section_contents +static const struct bfd_target *vms_object_p + PARAMS ((bfd *abfd)); +static const struct bfd_target *vms_archive_p + PARAMS ((bfd *abfd)); +static bfd_boolean vms_mkobject + PARAMS ((bfd *abfd)); +static bfd_boolean vms_write_object_contents + PARAMS ((bfd *abfd)); +static bfd_boolean vms_close_and_cleanup + PARAMS ((bfd *abfd)); +static bfd_boolean vms_bfd_free_cached_info + PARAMS ((bfd *abfd)); +static bfd_boolean vms_new_section_hook + PARAMS ((bfd *abfd, asection *section)); +static bfd_boolean vms_get_section_contents PARAMS ((bfd *abfd, asection *section, PTR x1, file_ptr x2, bfd_size_type x3)); -static boolean vms_get_section_contents_in_window +static bfd_boolean vms_get_section_contents_in_window PARAMS ((bfd *abfd, asection *section, bfd_window *w, file_ptr offset, bfd_size_type count)); -static boolean vms_bfd_copy_private_bfd_data PARAMS ((bfd *src, bfd *dest)); -static boolean vms_bfd_copy_private_section_data +static bfd_boolean vms_bfd_copy_private_bfd_data + PARAMS ((bfd *src, bfd *dest)); +static bfd_boolean vms_bfd_copy_private_section_data PARAMS ((bfd *srcbfd, asection *srcsec, bfd *dstbfd, asection *dstsec)); -static boolean vms_bfd_copy_private_symbol_data +static bfd_boolean vms_bfd_copy_private_symbol_data PARAMS ((bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym)); -static boolean vms_bfd_print_private_bfd_data +static bfd_boolean vms_bfd_print_private_bfd_data PARAMS ((bfd *abfd, void *file)); -static char *vms_core_file_failing_command PARAMS ((bfd *abfd)); -static int vms_core_file_failing_signal PARAMS ((bfd *abfd)); -static boolean vms_core_file_matches_executable_p +static char *vms_core_file_failing_command + PARAMS ((bfd *abfd)); +static int vms_core_file_failing_signal + PARAMS ((bfd *abfd)); +static bfd_boolean vms_core_file_matches_executable_p PARAMS ((bfd *abfd, bfd *bbfd)); -static boolean vms_slurp_armap PARAMS ((bfd *abfd)); -static boolean vms_slurp_extended_name_table PARAMS ((bfd *abfd)); -static boolean vms_construct_extended_name_table +static bfd_boolean vms_slurp_armap + PARAMS ((bfd *abfd)); +static bfd_boolean vms_slurp_extended_name_table + PARAMS ((bfd *abfd)); +static bfd_boolean vms_construct_extended_name_table PARAMS ((bfd *abfd, char **tabloc, bfd_size_type *tablen, const char **name)); static void vms_truncate_arname PARAMS ((bfd *abfd, const char *pathname, char *arhdr)); -static boolean vms_write_armap +static bfd_boolean vms_write_armap PARAMS ((bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, int stridx)); -static PTR vms_read_ar_hdr PARAMS ((bfd *abfd)); -static bfd *vms_get_elt_at_index PARAMS ((bfd *abfd, symindex index)); -static bfd *vms_openr_next_archived_file PARAMS ((bfd *arch, bfd *prev)); -static boolean vms_update_armap_timestamp PARAMS ((bfd *abfd)); -static int vms_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); -static long vms_get_symtab_upper_bound PARAMS ((bfd *abfd)); -static long vms_get_symtab PARAMS ((bfd *abfd, asymbol **symbols)); +static PTR vms_read_ar_hdr + PARAMS ((bfd *abfd)); +static bfd *vms_get_elt_at_index + PARAMS ((bfd *abfd, symindex index)); +static bfd *vms_openr_next_archived_file + PARAMS ((bfd *arch, bfd *prev)); +static bfd_boolean vms_update_armap_timestamp + PARAMS ((bfd *abfd)); +static int vms_generic_stat_arch_elt + PARAMS ((bfd *, struct stat *)); +static long vms_get_symtab_upper_bound + PARAMS ((bfd *abfd)); +static long vms_get_symtab + PARAMS ((bfd *abfd, asymbol **symbols)); static void vms_print_symbol PARAMS ((bfd *abfd, PTR file, asymbol *symbol, bfd_print_symbol_type how)); static void vms_get_symbol_info PARAMS ((bfd *abfd, asymbol *symbol, symbol_info *ret)); -static boolean vms_bfd_is_local_label_name PARAMS ((bfd *abfd, const char *)); -static alent *vms_get_lineno PARAMS ((bfd *abfd, asymbol *symbol)); -static boolean vms_find_nearest_line +static bfd_boolean vms_bfd_is_local_label_name + PARAMS ((bfd *abfd, const char *)); +static alent *vms_get_lineno + PARAMS ((bfd *abfd, asymbol *symbol)); +static bfd_boolean vms_find_nearest_line PARAMS ((bfd *abfd, asection *section, asymbol **symbols, bfd_vma offset, const char **file, const char **func, unsigned int *line)); static asymbol *vms_bfd_make_debug_symbol PARAMS ((bfd *abfd, void *ptr, unsigned long size)); static long vms_read_minisymbols - PARAMS ((bfd *abfd, boolean dynamic, PTR *minisymsp, unsigned int *sizep)); + PARAMS ((bfd *abfd, bfd_boolean dynamic, PTR *minisymsp, + unsigned int *sizep)); static asymbol *vms_minisymbol_to_symbol - PARAMS ((bfd *abfd, boolean dynamic, const PTR minisym, asymbol *sym)); -static long vms_get_reloc_upper_bound PARAMS ((bfd *abfd, asection *sect)); + PARAMS ((bfd *abfd, bfd_boolean dynamic, const PTR minisym, asymbol *sym)); +static long vms_get_reloc_upper_bound + PARAMS ((bfd *abfd, asection *sect)); static long vms_canonicalize_reloc PARAMS ((bfd *abfd, asection *srcsec, arelent **location, asymbol **symbols)); static const struct reloc_howto_struct *vms_bfd_reloc_type_lookup PARAMS ((bfd *abfd, bfd_reloc_code_real_type code)); -static boolean vms_set_arch_mach +static bfd_boolean vms_set_arch_mach PARAMS ((bfd *abfd, enum bfd_architecture arch, unsigned long mach)); -static boolean vms_set_section_contents +static bfd_boolean vms_set_section_contents PARAMS ((bfd *abfd, asection *section, PTR location, file_ptr offset, bfd_size_type count)); -static int vms_sizeof_headers PARAMS ((bfd *abfd, boolean reloc)); +static int vms_sizeof_headers + PARAMS ((bfd *abfd, bfd_boolean reloc)); static bfd_byte *vms_bfd_get_relocated_section_contents PARAMS ((bfd *abfd, struct bfd_link_info *link_info, struct bfd_link_order *link_order, bfd_byte *data, - boolean relocateable, asymbol **symbols)); -static boolean vms_bfd_relax_section + bfd_boolean relocateable, asymbol **symbols)); +static bfd_boolean vms_bfd_relax_section PARAMS ((bfd *abfd, asection *section, struct bfd_link_info *link_info, - boolean *again)); -static boolean vms_bfd_gc_sections + bfd_boolean *again)); +static bfd_boolean vms_bfd_gc_sections PARAMS ((bfd *abfd, struct bfd_link_info *link_info)); -static boolean vms_bfd_merge_sections +static bfd_boolean vms_bfd_merge_sections PARAMS ((bfd *abfd, struct bfd_link_info *link_info)); static struct bfd_link_hash_table *vms_bfd_link_hash_table_create PARAMS ((bfd *abfd)); static void vms_bfd_link_hash_table_free PARAMS ((struct bfd_link_hash_table *hash)); -static boolean vms_bfd_link_add_symbols +static bfd_boolean vms_bfd_link_add_symbols PARAMS ((bfd *abfd, struct bfd_link_info *link_info)); -static boolean vms_bfd_final_link +static bfd_boolean vms_bfd_final_link PARAMS ((bfd *abfd, struct bfd_link_info *link_info)); -static boolean vms_bfd_link_split_section +static bfd_boolean vms_bfd_link_split_section PARAMS ((bfd *abfd, asection *section)); -static long vms_get_dynamic_symtab_upper_bound PARAMS ((bfd *abfd)); +static long vms_get_dynamic_symtab_upper_bound + PARAMS ((bfd *abfd)); static long vms_canonicalize_dynamic_symtab PARAMS ((bfd *abfd, asymbol **symbols)); -static long vms_get_dynamic_reloc_upper_bound PARAMS ((bfd *abfd)); +static long vms_get_dynamic_reloc_upper_bound + PARAMS ((bfd *abfd)); static long vms_canonicalize_dynamic_reloc PARAMS ((bfd *abfd, arelent **arel, asymbol **symbols)); -static boolean vms_bfd_merge_private_bfd_data PARAMS ((bfd *ibfd, bfd *obfd)); -static boolean vms_bfd_set_private_flags PARAMS ((bfd *abfd, flagword flags)); +static bfd_boolean vms_bfd_merge_private_bfd_data + PARAMS ((bfd *ibfd, bfd *obfd)); +static bfd_boolean vms_bfd_set_private_flags + PARAMS ((bfd *abfd, flagword flags)); #define vms_make_empty_symbol _bfd_generic_make_empty_symbol #define vms_bfd_link_just_syms _bfd_generic_link_just_syms @@ -231,7 +263,7 @@ const bfd_target vms_vax_vec = /* Initialize private data */ -static boolean +static bfd_boolean vms_initialize (abfd) bfd *abfd; { @@ -243,7 +275,7 @@ vms_initialize (abfd) amt = sizeof (struct vms_private_data_struct); abfd->tdata.any = (struct vms_private_data_struct*) bfd_alloc (abfd, amt); if (abfd->tdata.any == 0) - return false; + return FALSE; #ifdef __ALPHA PRIV (is_vax) = 0; @@ -254,7 +286,7 @@ vms_initialize (abfd) PRIV (buf_size) = 0; PRIV (rec_length) = 0; PRIV (file_format) = FF_UNKNOWN; - PRIV (fixup_done) = false; + PRIV (fixup_done) = FALSE; PRIV (sections) = NULL; amt = sizeof (struct stack_struct) * STACKSIZE; @@ -290,14 +322,14 @@ vms_initialize (abfd) PRIV (output_size) = 0; PRIV (output_alignment) = 1; - return true; + return TRUE; error_ret2: bfd_hash_table_free (PRIV (vms_symbol_table)); error_ret1: bfd_release (abfd, abfd->tdata.any); abfd->tdata.any = 0; - return false; + return FALSE; } /* Fill symbol->section with section ptr @@ -309,7 +341,7 @@ vms_initialize (abfd) called from bfd_hash_traverse in vms_fixup_sections */ -static boolean +static bfd_boolean fill_section_ptr (entry, sections) struct bfd_hash_entry *entry; PTR sections; @@ -335,7 +367,7 @@ fill_section_ptr (entry, sections) if (strcmp (sym->name, sec->name) == 0) sym->flags |= BSF_SECTION_SYM; - return true; + return TRUE; } /* Fixup sections @@ -347,12 +379,12 @@ fill_section_ptr (entry, sections) alloc PRIV(sections) according to abfd->section_count copy abfd->sections to PRIV(sections) */ -static boolean +static bfd_boolean vms_fixup_sections (abfd) bfd *abfd; { if (PRIV (fixup_done)) - return true; + return TRUE; /* * traverse symbol table and fill in all section pointers @@ -363,9 +395,9 @@ vms_fixup_sections (abfd) bfd_hash_traverse (PRIV (vms_symbol_table), fill_section_ptr, (PTR) (PRIV (sections))); - PRIV (fixup_done) = true; + PRIV (fixup_done) = TRUE; - return true; + return TRUE; } /*===========================================================================*/ @@ -540,7 +572,7 @@ vms_archive_p (abfd) /* Set the format of a file being written. */ -static boolean +static bfd_boolean vms_mkobject (abfd) bfd *abfd; { @@ -565,12 +597,12 @@ vms_mkobject (abfd) abfd->arch_info = arch; } - return true; + return TRUE; } /* Write cached information into a file being written, at bfd_close. */ -static boolean +static bfd_boolean vms_write_object_contents (abfd) bfd *abfd; { @@ -583,50 +615,50 @@ vms_write_object_contents (abfd) if (PRIV (is_vax)) { if (_bfd_vms_write_hdr (abfd, OBJ_S_C_HDR) != 0) - return false; + return FALSE; if (_bfd_vms_write_gsd (abfd, OBJ_S_C_GSD) != 0) - return false; + return FALSE; if (_bfd_vms_write_tir (abfd, OBJ_S_C_TIR) != 0) - return false; + return FALSE; if (_bfd_vms_write_tbt (abfd, OBJ_S_C_TBT) != 0) - return false; + return FALSE; if (_bfd_vms_write_dbg (abfd, OBJ_S_C_DBG) != 0) - return false; + return FALSE; if (abfd->section_count > 255) { if (_bfd_vms_write_eom (abfd, OBJ_S_C_EOMW) != 0) - return false; + return FALSE; } else { if (_bfd_vms_write_eom (abfd, OBJ_S_C_EOM) != 0) - return false; + return FALSE; } } else { if (_bfd_vms_write_hdr (abfd, EOBJ_S_C_EMH) != 0) - return false; + return FALSE; if (_bfd_vms_write_gsd (abfd, EOBJ_S_C_EGSD) != 0) - return false; + return FALSE; if (_bfd_vms_write_tir (abfd, EOBJ_S_C_ETIR) != 0) - return false; + return FALSE; if (_bfd_vms_write_tbt (abfd, EOBJ_S_C_ETBT) != 0) - return false; + return FALSE; if (_bfd_vms_write_dbg (abfd, EOBJ_S_C_EDBG) != 0) - return false; + return FALSE; if (_bfd_vms_write_eom (abfd, EOBJ_S_C_EEOM) != 0) - return false; + return FALSE; } } - return true; + return TRUE; } /*-- 4.1, generic -----------------------------------------------------------*/ /* Called when the BFD is being closed to do any necessary cleanup. */ -static boolean +static bfd_boolean vms_close_and_cleanup (abfd) bfd *abfd; { @@ -634,7 +666,7 @@ vms_close_and_cleanup (abfd) vms_debug (1, "vms_close_and_cleanup(%p)\n", abfd); #endif if (abfd == 0) - return true; + return TRUE; if (PRIV (vms_buf) != NULL) free (PRIV (vms_buf)); @@ -648,23 +680,23 @@ vms_close_and_cleanup (abfd) bfd_release (abfd, abfd->tdata.any); abfd->tdata.any = NULL; - return true; + return TRUE; } /* Ask the BFD to free all cached information. */ -static boolean +static bfd_boolean vms_bfd_free_cached_info (abfd) bfd *abfd ATTRIBUTE_UNUSED; { #if VMS_DEBUG vms_debug (1, "vms_bfd_free_cached_info(%p)\n", abfd); #endif - return true; + return TRUE; } /* Called when a new section is created. */ -static boolean +static bfd_boolean vms_new_section_hook (abfd, section) bfd *abfd; asection *section; @@ -684,7 +716,7 @@ vms_new_section_hook (abfd, section) amt *= sizeof (asection *); PRIV (sections) = (asection **) bfd_realloc (PRIV (sections), amt); if (PRIV (sections) == 0) - return false; + return FALSE; PRIV (section_count) = section_count; } #if VMS_DEBUG @@ -695,14 +727,14 @@ vms_new_section_hook (abfd, section) vms_debug (7, "%d: %s\n", section->index, section->name); #endif - return true; + return TRUE; } /* Read the contents of a section. buf points to a buffer of buf_size bytes to be filled with section data (starting at offset into section) */ -static boolean +static bfd_boolean vms_get_section_contents (abfd, section, buf, offset, buf_size) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; @@ -717,14 +749,14 @@ vms_get_section_contents (abfd, section, /* shouldn't be called, since all sections are IN_MEMORY */ - return false; + return FALSE; } /* Read the contents of a section. buf points to a buffer of buf_size bytes to be filled with section data (starting at offset into section) */ -static boolean +static bfd_boolean vms_get_section_contents_in_window (abfd, section, w, offset, count) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; @@ -739,7 +771,7 @@ vms_get_section_contents_in_window (abfd /* shouldn't be called, since all sections are IN_MEMORY */ - return false; + return FALSE; } /*-- Part 4.2, copy private data --------------------------------------------*/ @@ -747,7 +779,7 @@ vms_get_section_contents_in_window (abfd /* Called to copy BFD general private data from one object file to another. */ -static boolean +static bfd_boolean vms_bfd_copy_private_bfd_data (src, dest) bfd *src ATTRIBUTE_UNUSED; bfd *dest ATTRIBUTE_UNUSED; @@ -755,17 +787,17 @@ vms_bfd_copy_private_bfd_data (src, dest #if VMS_DEBUG vms_debug (1, "vms_bfd_copy_private_bfd_data(%p, %p)\n", src, dest); #endif - return true; + return TRUE; } /* Merge private BFD information from the BFD @var{ibfd} to the - the output file BFD @var{obfd} when linking. Return <> - on success, <> on error. Possible error returns are: + the output file BFD @var{obfd} when linking. Return <> + on success, <> on error. Possible error returns are: o <> - Not enough memory exists to create private data for @var{obfd}. */ -static boolean +static bfd_boolean vms_bfd_merge_private_bfd_data (ibfd, obfd) bfd *ibfd ATTRIBUTE_UNUSED; bfd *obfd ATTRIBUTE_UNUSED; @@ -773,17 +805,17 @@ vms_bfd_merge_private_bfd_data (ibfd, ob #if VMS_DEBUG vms_debug (1,"vms_bfd_merge_private_bfd_data(%p, %p)\n", ibfd, obfd); #endif - return true; + return TRUE; } /* Set private BFD flag information in the BFD @var{abfd}. - Return <> on success, <> on error. Possible error + Return <> on success, <> on error. Possible error returns are: o <> - Not enough memory exists to create private data for @var{obfd}. */ -static boolean +static bfd_boolean vms_bfd_set_private_flags (abfd, flags) bfd *abfd ATTRIBUTE_UNUSED; flagword flags ATTRIBUTE_UNUSED; @@ -791,13 +823,13 @@ vms_bfd_set_private_flags (abfd, flags) #if VMS_DEBUG vms_debug (1,"vms_bfd_set_private_flags(%p, %lx)\n", abfd, (long)flags); #endif - return true; + return TRUE; } /* Called to copy BFD private section data from one object file to another. */ -static boolean +static bfd_boolean vms_bfd_copy_private_section_data (srcbfd, srcsec, dstbfd, dstsec) bfd *srcbfd ATTRIBUTE_UNUSED; asection *srcsec ATTRIBUTE_UNUSED; @@ -808,13 +840,13 @@ vms_bfd_copy_private_section_data (srcbf vms_debug (1, "vms_bfd_copy_private_section_data(%p, %s, %p, %s)\n", srcbfd, srcsec->name, dstbfd, dstsec->name); #endif - return true; + return TRUE; } /* Called to copy BFD private symbol data from one object file to another. */ -static boolean +static bfd_boolean vms_bfd_copy_private_symbol_data (ibfd, isym, obfd, osym) bfd *ibfd ATTRIBUTE_UNUSED; asymbol *isym ATTRIBUTE_UNUSED; @@ -825,7 +857,7 @@ vms_bfd_copy_private_symbol_data (ibfd, vms_debug (1, "vms_bfd_copy_private_symbol_data(%p, %s, %p, %s)\n", ibfd, isym->name, obfd, osym->name); #endif - return true; + return TRUE; } /*-- Part 4.3, core file ----------------------------------------------------*/ @@ -856,10 +888,10 @@ vms_core_file_failing_signal (abfd) return 0; } -/* Return true if the core file attached to core_bfd was generated - by a run of the executable file attached to exec_bfd, false otherwise. */ +/* Return TRUE if the core file attached to core_bfd was generated + by a run of the executable file attached to exec_bfd, FALSE otherwise. */ -static boolean +static bfd_boolean vms_core_file_matches_executable_p (abfd, bbfd) bfd *abfd ATTRIBUTE_UNUSED; bfd *bbfd ATTRIBUTE_UNUSED; @@ -867,41 +899,41 @@ vms_core_file_matches_executable_p (abfd #if VMS_DEBUG vms_debug (1, "vms_core_file_matches_executable_p(%p, %p)\n", abfd, bbfd); #endif - return false; + return FALSE; } /*-- Part 4.4, archive ------------------------------------------------------*/ /* ??? do something with an archive map. - Return false on error, true otherwise. */ + Return FALSE on error, TRUE otherwise. */ -static boolean +static bfd_boolean vms_slurp_armap (abfd) bfd *abfd ATTRIBUTE_UNUSED; { #if VMS_DEBUG vms_debug (1, "vms_slurp_armap(%p)\n", abfd); #endif - return false; + return FALSE; } /* ??? do something with an extended name table. - Return false on error, true otherwise. */ + Return FALSE on error, TRUE otherwise. */ -static boolean +static bfd_boolean vms_slurp_extended_name_table (abfd) bfd *abfd ATTRIBUTE_UNUSED; { #if VMS_DEBUG vms_debug (1, "vms_slurp_extended_name_table(%p)\n", abfd); #endif - return false; + return FALSE; } /* ??? do something with an extended name table. - Return false on error, true otherwise. */ + Return FALSE on error, TRUE otherwise. */ -static boolean +static bfd_boolean vms_construct_extended_name_table (abfd, tabloc, tablen, name) bfd *abfd ATTRIBUTE_UNUSED; char **tabloc ATTRIBUTE_UNUSED; @@ -911,7 +943,7 @@ vms_construct_extended_name_table (abfd, #if VMS_DEBUG vms_debug (1, "vms_construct_extended_name_table(%p)\n", abfd); #endif - return false; + return FALSE; } /* Truncate the name of an archive to match system-dependent restrictions */ @@ -930,7 +962,7 @@ vms_truncate_arname (abfd, pathname, arh /* ??? write archive map */ -static boolean +static bfd_boolean vms_write_armap (arch, elength, map, orl_count, stridx) bfd *arch ATTRIBUTE_UNUSED; unsigned int elength ATTRIBUTE_UNUSED; @@ -942,7 +974,7 @@ vms_write_armap (arch, elength, map, orl vms_debug (1, "vms_write_armap(%p, %d, %p, %d %d)\n", arch, elength, map, orl_count, stridx); #endif - return true; + return TRUE; } /* Read archive header ??? */ @@ -1004,14 +1036,14 @@ vms_generic_stat_arch_elt (abfd, st) /* This is a new function in bfd 2.5 */ -static boolean +static bfd_boolean vms_update_armap_timestamp (abfd) bfd *abfd ATTRIBUTE_UNUSED; { #if VMS_DEBUG vms_debug (1, "vms_update_armap_timestamp(%p)\n", abfd); #endif - return true; + return TRUE; } /*-- Part 4.5, symbols --------------------------------------------------------*/ @@ -1036,7 +1068,7 @@ vms_get_symtab_upper_bound (abfd) called from bfd_hash_traverse in vms_get_symtab init counter to 0 if entry == 0 */ -static boolean +static bfd_boolean copy_symbols (entry, arg) struct bfd_hash_entry *entry; PTR arg; @@ -1048,7 +1080,7 @@ copy_symbols (entry, arg) else /* fill vector, inc counter */ PRIV (symcache)[PRIV (symnum)++] = ((vms_symbol_entry *)entry)->symbol; - return true; + return TRUE; } /* Read the symbols from the BFD abfd, and fills in the vector @@ -1171,10 +1203,10 @@ vms_get_symbol_info (abfd, symbol, ret) return; } -/* Return true if the given symbol sym in the BFD abfd is - a compiler generated local label, else return false. */ +/* Return TRUE if the given symbol sym in the BFD abfd is + a compiler generated local label, else return FALSE. */ -static boolean +static bfd_boolean vms_bfd_is_local_label_name (abfd, name) bfd *abfd ATTRIBUTE_UNUSED; const char *name; @@ -1202,7 +1234,7 @@ vms_get_lineno (abfd, symbol) return the name of the source file and the line nearest to the wanted location. */ -static boolean +static bfd_boolean vms_find_nearest_line (abfd, section, symbols, offset, file, func, line) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; @@ -1216,7 +1248,7 @@ vms_find_nearest_line (abfd, section, sy vms_debug (1, "vms_find_nearest_line(%p, %s, %p, %ld, , , )\n", abfd, section->name, symbols, (long int)offset); #endif - return false; + return FALSE; } /* Back-door to allow format-aware applications to create debug symbols @@ -1242,7 +1274,7 @@ vms_bfd_make_debug_symbol (abfd, ptr, si static long vms_read_minisymbols (abfd, dynamic, minisymsp, sizep) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; PTR *minisymsp; unsigned int *sizep; { @@ -1259,7 +1291,7 @@ vms_read_minisymbols (abfd, dynamic, min static asymbol * vms_minisymbol_to_symbol (abfd, dynamic, minisym, sym) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; const PTR minisym; asymbol *sym; { @@ -1302,7 +1334,7 @@ vms_canonicalize_reloc (abfd, section, l #if VMS_DEBUG vms_debug (1, "vms_canonicalize_reloc(%p, %s, , )\n", abfd, section->name); #endif - return false; + return FALSE; } /*---------------------------------------------------------------------------*/ @@ -1345,30 +1377,30 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 8, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "IGNORE", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - true), /* pcrel_offset */ + TRUE), /* pcrel_offset */ /* A 64 bit reference to a symbol. */ HOWTO (ALPHA_R_REFQUAD, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ reloc_nil, /* special_function */ "REFQUAD", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 21 bit branch. The native assembler generates these for branches within the text segment, and also fills in the PC @@ -1377,90 +1409,90 @@ static reloc_howto_type alpha_howto_tabl 2, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 21, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ reloc_nil, /* special_function */ "BRADDR", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x1fffff, /* src_mask */ 0x1fffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A hint for a jump to a register. */ HOWTO (ALPHA_R_HINT, /* type */ 2, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 14, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "HINT", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0x3fff, /* src_mask */ 0x3fff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 16 bit PC relative offset. */ HOWTO (ALPHA_R_SREL16, /* type */ 0, /* rightshift */ 1, /* size (0 = byte, 1 = short, 2 = long) */ 16, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ reloc_nil, /* special_function */ "SREL16", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffff, /* src_mask */ 0xffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* 32 bit PC relative offset. */ HOWTO (ALPHA_R_SREL32, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ reloc_nil, /* special_function */ "SREL32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit PC relative offset. */ HOWTO (ALPHA_R_SREL64, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ reloc_nil, /* special_function */ "SREL64", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ MINUS_ONE, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Push a value on the reloc evaluation stack. */ HOWTO (ALPHA_R_OP_PUSH, /* type */ 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "OP_PUSH", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Store the value from the stack at the given address. Store it in a bitfield of size r_size starting at bit position r_offset. */ @@ -1468,15 +1500,15 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "OP_STORE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ MINUS_ONE, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Subtract the reloc address from the value on the top of the relocation stack. */ @@ -1484,15 +1516,15 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "OP_PSUB", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Shift the value on the top of the relocation stack right by the given value. */ @@ -1500,60 +1532,60 @@ static reloc_howto_type alpha_howto_tabl 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "OP_PRSHIFT", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* Hack. Linkage is done by linker. */ HOWTO (ALPHA_R_LINKAGE, /* type */ 0, /* rightshift */ 8, /* size (0 = byte, 1 = short, 2 = long) */ 256, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ reloc_nil, /* special_function */ "LINKAGE", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 32 bit reference to a symbol. */ HOWTO (ALPHA_R_REFLONG, /* type */ 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_bitfield, /* complain_on_overflow */ reloc_nil, /* special_function */ "REFLONG", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ /* A 64 bit reference to a procedure, written as 32 bit value. */ HOWTO (ALPHA_R_CODEADDR, /* type */ 0, /* rightshift */ 4, /* size (0 = byte, 1 = short, 2 = long) */ 64, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed,/* complain_on_overflow */ reloc_nil, /* special_function */ "CODEADDR", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - false), /* pcrel_offset */ + FALSE), /* pcrel_offset */ }; @@ -1600,7 +1632,7 @@ vms_bfd_reloc_type_lookup (abfd, code) Find the correct pointer to a structure and insert it into the arch_info pointer. */ -static boolean +static bfd_boolean vms_set_arch_mach (abfd, arch, mach) bfd *abfd; enum bfd_architecture arch ATTRIBUTE_UNUSED; @@ -1611,19 +1643,19 @@ vms_set_arch_mach (abfd, arch, mach) #endif abfd->arch_info = bfd_scan_arch("alpha"); - return true; + return TRUE; } /* Sets the contents of the section section in BFD abfd to the data starting in memory at data. The data is written to the output section starting at offset offset for count bytes. - Normally true is returned, else false. Possible error returns are: + Normally TRUE is returned, else FALSE. Possible error returns are: o bfd_error_no_contents - The output section does not have the SEC_HAS_CONTENTS attribute, so nothing can be written to it. o and some more too */ -static boolean +static bfd_boolean vms_set_section_contents (abfd, section, location, offset, count) bfd *abfd; asection *section; @@ -1646,7 +1678,7 @@ vms_set_section_contents (abfd, section, static int vms_sizeof_headers (abfd, reloc) bfd *abfd ATTRIBUTE_UNUSED; - boolean reloc ATTRIBUTE_UNUSED; + bfd_boolean reloc ATTRIBUTE_UNUSED; { #if VMS_DEBUG vms_debug (1, "vms_sizeof_headers(%p, %s)\n", abfd, (reloc)?"True":"False"); @@ -1664,7 +1696,7 @@ vms_bfd_get_relocated_section_contents ( struct bfd_link_info *link_info ATTRIBUTE_UNUSED; struct bfd_link_order *link_order ATTRIBUTE_UNUSED; bfd_byte *data ATTRIBUTE_UNUSED; - boolean relocateable ATTRIBUTE_UNUSED; + bfd_boolean relocateable ATTRIBUTE_UNUSED; asymbol **symbols ATTRIBUTE_UNUSED; { #if VMS_DEBUG @@ -1676,21 +1708,21 @@ vms_bfd_get_relocated_section_contents ( /* ??? */ -static boolean +static bfd_boolean vms_bfd_relax_section (abfd, section, link_info, again) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; - boolean *again ATTRIBUTE_UNUSED; + bfd_boolean *again ATTRIBUTE_UNUSED; { #if VMS_DEBUG vms_debug (1, "vms_bfd_relax_section(%p, %s, %p, )\n", abfd, section->name, link_info); #endif - return true; + return TRUE; } -static boolean +static bfd_boolean vms_bfd_gc_sections (abfd, link_info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; @@ -1698,10 +1730,10 @@ vms_bfd_gc_sections (abfd, link_info) #if VMS_DEBUG vms_debug (1, "vms_bfd_gc_sections(%p, %p)\n", abfd, link_info); #endif - return true; + return TRUE; } -static boolean +static bfd_boolean vms_bfd_merge_sections (abfd, link_info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; @@ -1709,7 +1741,7 @@ vms_bfd_merge_sections (abfd, link_info) #if VMS_DEBUG vms_debug (1, "vms_bfd_merge_sections(%p, %p)\n", abfd, link_info); #endif - return true; + return TRUE; } /* Create a hash table for the linker. Different backends store @@ -1738,7 +1770,7 @@ vms_bfd_link_hash_table_free (hash) /* Add symbols from this object file into the hash table. */ -static boolean +static bfd_boolean vms_bfd_link_add_symbols (abfd, link_info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; @@ -1746,13 +1778,13 @@ vms_bfd_link_add_symbols (abfd, link_inf #if VMS_DEBUG vms_debug (1, "vms_bfd_link_add_symbols(%p, %p)\n", abfd, link_info); #endif - return false; + return FALSE; } /* Do a link based on the link_order structures attached to each section of the BFD. */ -static boolean +static bfd_boolean vms_bfd_final_link (abfd, link_info) bfd *abfd ATTRIBUTE_UNUSED; struct bfd_link_info *link_info ATTRIBUTE_UNUSED; @@ -1760,12 +1792,12 @@ vms_bfd_final_link (abfd, link_info) #if VMS_DEBUG vms_debug (1, "vms_bfd_final_link(%p, %p)\n", abfd, link_info); #endif - return true; + return TRUE; } /* Should this section be split up into smaller pieces during linking. */ -static boolean +static bfd_boolean vms_bfd_link_split_section (abfd, section) bfd *abfd ATTRIBUTE_UNUSED; asection *section ATTRIBUTE_UNUSED; @@ -1773,7 +1805,7 @@ vms_bfd_link_split_section (abfd, sectio #if VMS_DEBUG vms_debug (1, "vms_bfd_link_split_section(%p, %s)\n", abfd, section->name); #endif - return false; + return FALSE; } /*-- Part 4.9, dynamic symbols and relocations ------------------------------*/ @@ -1790,7 +1822,7 @@ vms_get_dynamic_symtab_upper_bound (abfd return 0; } -static boolean +static bfd_boolean vms_bfd_print_private_bfd_data (abfd, file) bfd *abfd ATTRIBUTE_UNUSED; void *file ATTRIBUTE_UNUSED; diff -uprN binutils-2.13.90.0.16/bfd/vms.h binutils-2.13.90.0.18/bfd/vms.h --- binutils-2.13.90.0.16/bfd/vms.h Mon Oct 1 15:25:21 2001 +++ binutils-2.13.90.0.18/bfd/vms.h Mon Dec 16 12:22:52 2002 @@ -1,6 +1,6 @@ #undef vms /* vms.h -- Header file for VMS (Alpha and Vax) support. - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Klaus K"ampf (kkaempf@rmi.de) @@ -505,7 +505,7 @@ typedef struct _vms_section { struct _vms_section *next; } vms_section; -extern boolean _bfd_save_vms_section +extern bfd_boolean _bfd_save_vms_section PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset, bfd_size_type count)); extern vms_section *_bfd_get_vms_section PARAMS ((bfd *abfd, int index)); @@ -536,7 +536,7 @@ struct hdr_struc { struct eom_struc { long eom_l_total_lps; unsigned char eom_b_comcod; - boolean eom_has_transfer; + bfd_boolean eom_has_transfer; unsigned char eom_b_tfrflg; long eom_l_psindx; long eom_l_tfradr; @@ -569,7 +569,7 @@ struct location_struct { struct vms_private_data_struct { int is_vax; - boolean fixup_done; /* Flag to indicate if all + bfd_boolean fixup_done; /* Flag to indicate if all section pointers and PRIV(sections) are set up correctly */ unsigned char *vms_buf; /* buffer to record */ @@ -648,7 +648,7 @@ extern char *_bfd_vms_save_counted_strin extern void _bfd_vms_push PARAMS ((bfd *abfd, uquad val, int psect)); extern uquad _bfd_vms_pop PARAMS ((bfd *abfd, int *psect)); -extern boolean _bfd_save_vms_section +extern bfd_boolean _bfd_save_vms_section PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset, bfd_size_type count)); extern void _bfd_vms_output_begin diff -uprN binutils-2.13.90.0.16/bfd/xcoff-target.h binutils-2.13.90.0.18/bfd/xcoff-target.h --- binutils-2.13.90.0.16/bfd/xcoff-target.h Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/bfd/xcoff-target.h Mon Dec 16 12:22:52 2002 @@ -57,7 +57,7 @@ Foundation, Inc., 59 Temple Place - Suit #undef CORE_FILE_P #define CORE_FILE_P rs6000coff_core_p extern const bfd_target * rs6000coff_core_p (); -extern boolean rs6000coff_core_file_matches_executable_p (); +extern bfd_boolean rs6000coff_core_file_matches_executable_p (); #undef coff_core_file_matches_executable_p #define coff_core_file_matches_executable_p \ @@ -78,8 +78,8 @@ extern int rs6000coff_core_file_failing_ #define CORE_FILE_P lynx_core_file_p extern const bfd_target *lynx_core_file_p PARAMS ((bfd *abfd)); -extern boolean lynx_core_file_matches_executable_p PARAMS ((bfd *core_bfd, - bfd *exec_bfd)); +extern bfd_boolean lynx_core_file_matches_executable_p + PARAMS ((bfd *core_bfd, bfd *exec_bfd)); #undef coff_core_file_matches_executable_p #define coff_core_file_matches_executable_p lynx_core_file_matches_executable_p @@ -106,7 +106,7 @@ extern int lynx_core_file_failing_signal #define _bfd_xcoff_slurp_extended_name_table bfd_false #define _bfd_xcoff_construct_extended_name_table \ - ((boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ + ((bfd_boolean (*) PARAMS ((bfd *, char **, bfd_size_type *, const char **))) \ bfd_false) #define _bfd_xcoff_truncate_arname bfd_dont_truncate_arname @@ -118,22 +118,22 @@ extern int lynx_core_file_failing_signal #define _bfd_xcoff_update_armap_timestamp bfd_true -extern boolean _bfd_xcoff_mkobject PARAMS ((bfd *)); -extern boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *)); -extern boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *)); +extern bfd_boolean _bfd_xcoff_mkobject PARAMS ((bfd *)); +extern bfd_boolean _bfd_xcoff_copy_private_bfd_data PARAMS ((bfd *, bfd *)); +extern bfd_boolean _bfd_xcoff_is_local_label_name PARAMS ((bfd *, const char *)); extern void _bfd_xcoff_rtype2howto PARAMS ((arelent *, struct internal_reloc *)); extern reloc_howto_type *_bfd_xcoff_reloc_type_lookup PARAMS ((bfd *, bfd_reloc_code_real_type)); -extern boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *)); +extern bfd_boolean _bfd_xcoff_slurp_armap PARAMS ((bfd *)); extern const bfd_target *_bfd_xcoff_archive_p PARAMS ((bfd *)); extern PTR _bfd_xcoff_read_ar_hdr PARAMS ((bfd *)); extern bfd *_bfd_xcoff_openr_next_archived_file PARAMS ((bfd *, bfd *)); extern int _bfd_xcoff_generic_stat_arch_elt PARAMS ((bfd *, struct stat *)); -extern boolean _bfd_xcoff_write_armap +extern bfd_boolean _bfd_xcoff_write_armap PARAMS ((bfd *, unsigned int, struct orl *, unsigned int, int)); -extern boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *)); -extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, boolean)); +extern bfd_boolean _bfd_xcoff_write_archive_contents PARAMS ((bfd *)); +extern int _bfd_xcoff_sizeof_headers PARAMS ((bfd *, bfd_boolean)); extern void _bfd_xcoff_swap_sym_in PARAMS ((bfd *, PTR, PTR)); extern unsigned int _bfd_xcoff_swap_sym_out PARAMS ((bfd *, PTR, PTR)); extern void _bfd_xcoff_swap_aux_in PARAMS ((bfd *, PTR, int, int, int, int, PTR)); diff -uprN binutils-2.13.90.0.16/bfd/xcofflink.c binutils-2.13.90.0.18/bfd/xcofflink.c --- binutils-2.13.90.0.16/bfd/xcofflink.c Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/bfd/xcofflink.c Mon Dec 16 12:22:52 2002 @@ -115,34 +115,35 @@ struct xcoff_final_link_info static struct bfd_hash_entry *xcoff_link_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean xcoff_get_section_contents PARAMS ((bfd *, asection *)); +static bfd_boolean xcoff_get_section_contents PARAMS ((bfd *, asection *)); static struct internal_reloc *xcoff_read_internal_relocs - PARAMS ((bfd *, asection *, boolean, bfd_byte *, boolean, + PARAMS ((bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean, struct internal_reloc *)); -static boolean xcoff_link_add_object_symbols +static bfd_boolean xcoff_link_add_object_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean xcoff_link_check_archive_element - PARAMS ((bfd *, struct bfd_link_info *, boolean *)); -static boolean xcoff_link_check_ar_symbols - PARAMS ((bfd *, struct bfd_link_info *, boolean *)); -static boolean xcoff_link_check_dynamic_ar_symbols - PARAMS ((bfd *, struct bfd_link_info *, boolean *)); +static bfd_boolean xcoff_link_check_archive_element + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean xcoff_link_check_ar_symbols + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *)); +static bfd_boolean xcoff_link_check_dynamic_ar_symbols + PARAMS ((bfd *, struct bfd_link_info *, bfd_boolean *)); static bfd_size_type xcoff_find_reloc PARAMS ((struct internal_reloc *, bfd_size_type, bfd_vma)); -static boolean xcoff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean xcoff_link_add_dynamic_symbols +static bfd_boolean xcoff_link_add_symbols PARAMS ((bfd *, struct bfd_link_info *)); -static boolean xcoff_mark_symbol +static bfd_boolean xcoff_link_add_dynamic_symbols + PARAMS ((bfd *, struct bfd_link_info *)); +static bfd_boolean xcoff_mark_symbol PARAMS ((struct bfd_link_info *, struct xcoff_link_hash_entry *)); -static boolean xcoff_mark PARAMS ((struct bfd_link_info *, asection *)); +static bfd_boolean xcoff_mark PARAMS ((struct bfd_link_info *, asection *)); static void xcoff_sweep PARAMS ((struct bfd_link_info *)); -static boolean xcoff_build_ldsyms +static bfd_boolean xcoff_build_ldsyms PARAMS ((struct xcoff_link_hash_entry *, PTR)); -static boolean xcoff_link_input_bfd +static bfd_boolean xcoff_link_input_bfd PARAMS ((struct xcoff_final_link_info *, bfd *)); -static boolean xcoff_write_global_symbol +static bfd_boolean xcoff_write_global_symbol PARAMS ((struct xcoff_link_hash_entry *, PTR)); -static boolean xcoff_reloc_link_order +static bfd_boolean xcoff_reloc_link_order PARAMS ((bfd *, struct xcoff_final_link_info *, asection *, struct bfd_link_order *)); static int xcoff_sort_relocs PARAMS ((const PTR, const PTR)); @@ -154,7 +155,7 @@ static int xcoff_sort_relocs PARAMS ((co /* Read the contents of a section. */ -static boolean +static bfd_boolean xcoff_get_section_contents (abfd, sec) bfd *abfd; asection *sec; @@ -165,7 +166,7 @@ xcoff_get_section_contents (abfd, sec) bfd_size_type amt = sizeof (struct coff_section_tdata); sec->used_by_bfd = bfd_zalloc (abfd, amt); if (sec->used_by_bfd == NULL) - return false; + return FALSE; } if (coff_section_data (abfd, sec)->contents == NULL) @@ -173,15 +174,15 @@ xcoff_get_section_contents (abfd, sec) coff_section_data (abfd, sec)->contents = ((bfd_byte *) bfd_malloc (sec->_raw_size)); if (coff_section_data (abfd, sec)->contents == NULL) - return false; + return FALSE; if (! bfd_get_section_contents (abfd, sec, coff_section_data (abfd, sec)->contents, (file_ptr) 0, sec->_raw_size)) - return false; + return FALSE; } - return true; + return TRUE; } /* Get the size required to hold the dynamic symbols. */ @@ -247,7 +248,7 @@ _bfd_xcoff_canonicalize_dynamic_symtab ( return -1; contents = coff_section_data (abfd, lsec)->contents; - coff_section_data (abfd, lsec)->keep_contents = true; + coff_section_data (abfd, lsec)->keep_contents = TRUE; bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr); @@ -295,7 +296,7 @@ _bfd_xcoff_canonicalize_dynamic_symtab ( symbuf->symbol.flags |= BSF_GLOBAL; /* FIXME: We have no way to record the other information stored - with the loader symbol. */ + with the loader symbol. */ *psyms = (asymbol *) symbuf; } @@ -421,8 +422,8 @@ _bfd_xcoff_canonicalize_dynamic_reloc (a relbuf->addend = 0; /* Most dynamic relocs have the same type. FIXME: This is only - correct if ldrel.l_rtype == 0. In other cases, we should use - a different howto. */ + correct if ldrel.l_rtype == 0. In other cases, we should use + a different howto. */ relbuf->howto = bfd_xcoff_dynamic_reloc_howto(abfd); /* FIXME: We have no way to record the l_rsecnm field. */ @@ -501,14 +502,14 @@ _bfd_xcoff_bfd_link_hash_table_create (a ret->descriptor_section = NULL; ret->imports = NULL; ret->file_align = 0; - ret->textro = false; - ret->gc = false; + ret->textro = FALSE; + ret->gc = FALSE; memset (ret->special_sections, 0, sizeof ret->special_sections); /* The linker will always generate a full a.out header. We need to record that fact now, before the sizeof_headers routine could be called. */ - xcoff_data (abfd)->full_aouthdr = true; + xcoff_data (abfd)->full_aouthdr = TRUE; return &ret->root; } @@ -535,9 +536,9 @@ xcoff_read_internal_relocs (abfd, sec, c require_internal, internal_relocs) bfd *abfd; asection *sec; - boolean cache; + bfd_boolean cache; bfd_byte *external_relocs; - boolean require_internal; + bfd_boolean require_internal; struct internal_reloc *internal_relocs; { @@ -555,8 +556,8 @@ xcoff_read_internal_relocs (abfd, sec, c && cache && enclosing->reloc_count > 0) { - if (_bfd_coff_read_internal_relocs (abfd, enclosing, true, - external_relocs, false, + if (_bfd_coff_read_internal_relocs (abfd, enclosing, TRUE, + external_relocs, FALSE, (struct internal_reloc *) NULL) == NULL) return NULL; @@ -587,7 +588,7 @@ xcoff_read_internal_relocs (abfd, sec, c /* Given an XCOFF BFD, add symbols to the global hash table as appropriate. */ -boolean +bfd_boolean _bfd_xcoff_bfd_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -600,21 +601,21 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, i case bfd_archive: /* If the archive has a map, do the usual search. We then need - to check the archive for dynamic objects, because they may not - appear in the archive map even though they should, perhaps, be - included. If the archive has no map, we just consider each object - file in turn, since that apparently is what the AIX native linker + to check the archive for dynamic objects, because they may not + appear in the archive map even though they should, perhaps, be + included. If the archive has no map, we just consider each object + file in turn, since that apparently is what the AIX native linker does. */ if (bfd_has_map (abfd)) { if (! (_bfd_generic_link_add_archive_symbols (abfd, info, xcoff_link_check_archive_element))) - return false; + return FALSE; } { bfd *member; - + member = bfd_openr_next_archived_file (abfd, (bfd *) NULL); while (member != NULL) { @@ -622,11 +623,11 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, i && (info->hash->creator == member->xvec) && (! bfd_has_map (abfd) || (member->flags & DYNAMIC) != 0)) { - boolean needed; - - if (! xcoff_link_check_archive_element (member, info, + bfd_boolean needed; + + if (! xcoff_link_check_archive_element (member, info, &needed)) - return false; + return FALSE; if (needed) member->archive_pass = -1; } @@ -634,32 +635,32 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, i } } - return true; + return TRUE; default: bfd_set_error (bfd_error_wrong_format); - return false; + return FALSE; } } /* Add symbols from an XCOFF object file. */ -static boolean +static bfd_boolean xcoff_link_add_object_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { if (! _bfd_coff_get_external_symbols (abfd)) - return false; + return FALSE; if (! xcoff_link_add_symbols (abfd, info)) - return false; + return FALSE; if (! info->keep_memory) { if (! _bfd_coff_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Check a single archive element to see if we need to include it in @@ -667,48 +668,48 @@ xcoff_link_add_object_symbols (abfd, inf needed in the link or not. This is called via _bfd_generic_link_add_archive_symbols. */ -static boolean +static bfd_boolean xcoff_link_check_archive_element (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { if (! _bfd_coff_get_external_symbols (abfd)) - return false; + return FALSE; if (! xcoff_link_check_ar_symbols (abfd, info, pneeded)) - return false; + return FALSE; if (*pneeded) { if (! xcoff_link_add_symbols (abfd, info)) - return false; + return FALSE; } if (! info->keep_memory || ! *pneeded) { if (! _bfd_coff_free_symbols (abfd)) - return false; + return FALSE; } - return true; + return TRUE; } /* Look through the symbols to see if this object file should be included in the link. */ -static boolean +static bfd_boolean xcoff_link_check_ar_symbols (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { bfd_size_type symesz; bfd_byte *esym; bfd_byte *esym_end; - *pneeded = false; + *pneeded = FALSE; if ((abfd->flags & DYNAMIC) != 0 && ! info->static_link @@ -731,13 +732,13 @@ xcoff_link_check_ar_symbols (abfd, info, struct bfd_link_hash_entry *h; /* This symbol is externally visible, and is defined by this - object file. */ + object file. */ name = _bfd_coff_internal_syment_name (abfd, &sym, buf); if (name == NULL) - return false; - h = bfd_link_hash_lookup (info->hash, name, false, false, true); + return FALSE; + h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); /* We are only interested in symbols that are currently undefined. If a symbol is currently known to be common, @@ -751,9 +752,9 @@ xcoff_link_check_ar_symbols (abfd, info, & XCOFF_DEF_DYNAMIC) == 0)) { if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } } @@ -761,18 +762,18 @@ xcoff_link_check_ar_symbols (abfd, info, } /* We do not need this object file. */ - return true; + return TRUE; } /* Look through the loader symbols to see if this dynamic object should be included in the link. The native linker uses the loader symbols, not the normal symbol table, so we do too. */ -static boolean +static bfd_boolean xcoff_link_check_dynamic_ar_symbols (abfd, info, pneeded) bfd *abfd; struct bfd_link_info *info; - boolean *pneeded; + bfd_boolean *pneeded; { asection *lsec; bfd_byte *contents; @@ -780,17 +781,17 @@ xcoff_link_check_dynamic_ar_symbols (abf const char *strings; bfd_byte *elsym, *elsymend; - *pneeded = false; + *pneeded = FALSE; lsec = bfd_get_section_by_name (abfd, ".loader"); if (lsec == NULL) { /* There are no symbols, so don't try to include it. */ - return true; + return TRUE; } if (! xcoff_get_section_contents (abfd, lsec)) - return false; + return FALSE; contents = coff_section_data (abfd, lsec)->contents; bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr); @@ -822,20 +823,20 @@ xcoff_link_check_dynamic_ar_symbols (abf name = nambuf; } - h = bfd_link_hash_lookup (info->hash, name, false, false, true); + h = bfd_link_hash_lookup (info->hash, name, FALSE, FALSE, TRUE); /* We are only interested in symbols that are currently - undefined. At this point we know that we are using an XCOFF - hash table. */ + undefined. At this point we know that we are using an XCOFF + hash table. */ if (h != NULL && h->type == bfd_link_hash_undefined && (((struct xcoff_link_hash_entry *) h)->flags & XCOFF_DEF_DYNAMIC) == 0) { if (! (*info->callbacks->add_archive_element) (info, abfd, name)) - return false; - *pneeded = true; - return true; + return FALSE; + *pneeded = TRUE; + return TRUE; } } @@ -847,7 +848,7 @@ xcoff_link_check_dynamic_ar_symbols (abf coff_section_data (abfd, lsec)->contents = NULL; } - return true; + return TRUE; } /* Returns the index of reloc in RELOCS with the least address greater @@ -905,11 +906,11 @@ xcoff_find_reloc (relocs, count, address Takes care of creating the .loader, .gl, .ds, .debug and sections. */ -static boolean +static bfd_boolean xcoff_link_create_extra_sections(bfd * abfd, struct bfd_link_info *info) { - boolean return_value = false; + bfd_boolean return_value = FALSE; if (info->hash->creator == abfd->xvec) { @@ -998,7 +999,7 @@ xcoff_link_create_extra_sections(bfd * a } } - return_value = true; + return_value = TRUE; end_return: @@ -1023,21 +1024,21 @@ xcoff_link_create_extra_sections(bfd * a relocation entries carefully, since the only way to tell which csect they belong to is to examine the address. */ -static boolean +static bfd_boolean xcoff_link_add_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; { unsigned int n_tmask; unsigned int n_btshft; - boolean default_copy; + bfd_boolean default_copy; bfd_size_type symcount; struct xcoff_link_hash_entry **sym_hash; asection **csect_cache; bfd_size_type linesz; asection *o; asection *last_real; - boolean keep_syms; + bfd_boolean keep_syms; asection *csect; unsigned int csect_index; asection *first_csect; @@ -1058,16 +1059,16 @@ xcoff_link_add_symbols (abfd, info) && ! info->static_link) { if (! xcoff_link_add_dynamic_symbols (abfd, info)) - return false; + return FALSE; } /* create the loader, toc, gl, ds and debug sections, if needed */ - if (false == xcoff_link_create_extra_sections(abfd, info)) + if (! xcoff_link_create_extra_sections (abfd, info)) goto error_return; if ((abfd->flags & DYNAMIC) != 0 && ! info->static_link) - return true; + return TRUE; n_tmask = coff_data (abfd)->local_n_tmask; n_btshft = coff_data (abfd)->local_n_btshft; @@ -1077,9 +1078,9 @@ xcoff_link_add_symbols (abfd, info) #define N_BTSHFT n_btshft if (info->keep_memory) - default_copy = false; + default_copy = FALSE; else - default_copy = true; + default_copy = TRUE; symcount = obj_raw_syment_count (abfd); @@ -1122,8 +1123,8 @@ xcoff_link_add_symbols (abfd, info) { reloc_info[o->target_index].relocs = - xcoff_read_internal_relocs (abfd, o, true, (bfd_byte *) NULL, - false, (struct internal_reloc *) NULL); + xcoff_read_internal_relocs (abfd, o, TRUE, (bfd_byte *) NULL, + FALSE, (struct internal_reloc *) NULL); amt = o->reloc_count; amt *= sizeof (asection *); reloc_info[o->target_index].csects = (asection **) bfd_zmalloc (amt); @@ -1150,7 +1151,7 @@ xcoff_link_add_symbols (abfd, info) } /* Don't let the linker relocation routines discard the symbols. */ - obj_coff_keep_syms (abfd) = true; + obj_coff_keep_syms (abfd) = TRUE; csect = NULL; csect_index = 0; @@ -1214,11 +1215,11 @@ xcoff_link_add_symbols (abfd, info) goto error_return; /* If this symbol has line number information attached to it, - and we're not stripping it, count the number of entries and - add them to the count for this csect. In the final link pass - we are going to attach line number information by symbol, - rather than by section, in order to more easily handle - garbage collection. */ + and we're not stripping it, count the number of entries and + add them to the count for this csect. In the final link pass + we are going to attach line number information by symbol, + rather than by section, in order to more easily handle + garbage collection. */ if ((info->strip == strip_none || info->strip == strip_some) && sym.n_numaux > 1 && csect != NULL @@ -1336,7 +1337,7 @@ xcoff_link_add_symbols (abfd, info) } /* An XMC_XO external reference is actually a reference to - an absolute location. */ + an absolute location. */ if (aux.x_csect.x_smclas != XMC_XO) section = bfd_und_section_ptr; else @@ -1430,7 +1431,7 @@ xcoff_link_add_symbols (abfd, info) { const char *relname; char relbuf[SYMNMLEN + 1]; - boolean copy; + bfd_boolean copy; struct xcoff_link_hash_entry *h; /* At this point we know that the TOC entry is @@ -1453,8 +1454,8 @@ xcoff_link_add_symbols (abfd, info) || relsym._n._n_n._n_zeroes != 0 || relsym._n._n_n._n_offset == 0); h = xcoff_link_hash_lookup (xcoff_hash_table (info), - relname, true, copy, - false); + relname, TRUE, copy, + FALSE); if (h == NULL) goto error_return; @@ -1606,19 +1607,19 @@ xcoff_link_add_symbols (abfd, info) follow its appropriate XTY_SD symbol. The .set pseudo op can cause the XTY_LD to not follow the XTY_SD symbol. */ { - boolean bad; + bfd_boolean bad; - bad = false; + bad = FALSE; if (aux.x_csect.x_scnlen.l < 0 || (aux.x_csect.x_scnlen.l >= esym - (bfd_byte *) obj_coff_external_syms (abfd))) - bad = true; + bad = TRUE; if (! bad) { section = xcoff_data (abfd)->csects[aux.x_csect.x_scnlen.l]; if (section == NULL || (section->flags & SEC_HAS_CONTENTS) == 0) - bad = true; + bad = TRUE; } if (bad) { @@ -1635,11 +1636,11 @@ xcoff_link_add_symbols (abfd, info) case XTY_CM: /* This is an unitialized csect. We could base the name on - the storage mapping class, but we don't bother except for - an XMC_TD symbol. If this csect is externally visible, - it is a common symbol. We put XMC_TD symbols in sections - named .tocbss, and rely on the linker script to put that - in the TOC area. */ + the storage mapping class, but we don't bother except for + an XMC_TD symbol. If this csect is externally visible, + it is a common symbol. We put XMC_TD symbols in sections + named .tocbss, and rely on the linker script to put that + in the TOC area. */ if (csect != NULL) { @@ -1730,20 +1731,20 @@ xcoff_link_add_symbols (abfd, info) } /* Now we have enough information to add the symbol to the - linker hash table. */ + linker hash table. */ if (sym.n_sclass == C_EXT) { - boolean copy; + bfd_boolean copy; BFD_ASSERT (section != NULL); /* We must copy the name into memory if we got it from the - syment itself, rather than the string table. */ + syment itself, rather than the string table. */ copy = default_copy; if (sym._n._n_n._n_zeroes != 0 || sym._n._n_n._n_offset == 0) - copy = true; + copy = TRUE; /* The AIX linker appears to only detect multiple symbol definitions when there is a reference to the symbol. If @@ -1775,7 +1776,7 @@ xcoff_link_add_symbols (abfd, info) if (! bfd_is_und_section (section)) { *sym_hash = xcoff_link_hash_lookup (xcoff_hash_table (info), - name, true, copy, false); + name, TRUE, copy, FALSE); } else { @@ -1783,8 +1784,8 @@ xcoff_link_add_symbols (abfd, info) merging symbols. */ *sym_hash = ((struct xcoff_link_hash_entry *) bfd_wrapped_link_hash_lookup (abfd, info, name, - true, true, - false)); + TRUE, TRUE, + FALSE)); } if (*sym_hash == NULL) goto error_return; @@ -1801,11 +1802,11 @@ xcoff_link_add_symbols (abfd, info) & DYNAMIC) == 0)) { /* The new symbol is from a shared library, and - either the existing symbol is not global - linkage code or this symbol is global linkage - code. If the existing symbol is global - linkage code and the new symbol is not, then - we want to use the new symbol. */ + either the existing symbol is not global + linkage code or this symbol is global linkage + code. If the existing symbol is global + linkage code and the new symbol is not, then + we want to use the new symbol. */ section = bfd_und_section_ptr; value = 0; } @@ -1813,7 +1814,7 @@ xcoff_link_add_symbols (abfd, info) & DYNAMIC) != 0) { /* The existing symbol is from a shared library. - Replace it. */ + Replace it. */ (*sym_hash)->root.type = bfd_link_hash_undefined; (*sym_hash)->root.u.undef.abfd = (*sym_hash)->root.u.def.section->owner; @@ -1821,8 +1822,8 @@ xcoff_link_add_symbols (abfd, info) else if (abfd->my_archive != NULL) { /* This is a redefinition in an object contained - in an archive. Just ignore it. See the - comment above. */ + in an archive. Just ignore it. See the + comment above. */ section = bfd_und_section_ptr; value = 0; } @@ -1830,15 +1831,15 @@ xcoff_link_add_symbols (abfd, info) || info->hash->undefs_tail == &(*sym_hash)->root) { /* This symbol has been referenced. In this - case, we just continue and permit the - multiple definition error. See the comment - above about the behaviour of the AIX linker. */ + case, we just continue and permit the + multiple definition error. See the comment + above about the behaviour of the AIX linker. */ } else if ((*sym_hash)->smclas == aux.x_csect.x_smclas) { /* The symbols are both csects of the same - class. There is at least a chance that this - is a semi-legitimate redefinition. */ + class. There is at least a chance that this + is a semi-legitimate redefinition. */ section = bfd_und_section_ptr; value = 0; (*sym_hash)->flags |= XCOFF_MULTIPLY_DEFINED; @@ -1883,7 +1884,7 @@ xcoff_link_add_symbols (abfd, info) last_real->next = NULL; if (! (_bfd_generic_link_add_one_symbol (info, abfd, name, flags, section, value, - (const char *) NULL, copy, true, + (const char *) NULL, copy, TRUE, (struct bfd_link_hash_entry **) sym_hash))) goto error_return; last_real->next = first_csect; @@ -1974,14 +1975,14 @@ xcoff_link_add_symbols (abfd, info) h = obj_xcoff_sym_hashes (abfd)[rel->r_symndx]; h->flags |= XCOFF_CALLED; /* If the symbol name starts with a period, it is - the code of a function. If the symbol is - currently undefined, then add an undefined symbol - for the function descriptor. This should do no - harm, because any regular object that defines the - function should also define the function - descriptor. It helps, because it means that we - will identify the function descriptor with a - dynamic object if a dynamic object defines it. */ + the code of a function. If the symbol is + currently undefined, then add an undefined symbol + for the function descriptor. This should do no + harm, because any regular object that defines the + function should also define the function + descriptor. It helps, because it means that we + will identify the function descriptor with a + dynamic object if a dynamic object defines it. */ if (h->root.root.string[0] == '.' && h->descriptor == NULL) { @@ -1990,7 +1991,7 @@ xcoff_link_add_symbols (abfd, info) hds = xcoff_link_hash_lookup (xcoff_hash_table (info), h->root.root.string + 1, - true, false, true); + TRUE, FALSE, TRUE); if (hds == NULL) goto error_return; if (hds->root.type == bfd_link_hash_new) @@ -1999,8 +2000,8 @@ xcoff_link_add_symbols (abfd, info) if (! (_bfd_generic_link_add_one_symbol (info, abfd, hds->root.root.string, (flagword) 0, bfd_und_section_ptr, - (bfd_vma) 0, (const char *) NULL, false, - true, &bh))) + (bfd_vma) 0, (const char *) NULL, FALSE, + TRUE, &bh))) goto error_return; hds = (struct xcoff_link_hash_entry *) bh; } @@ -2033,7 +2034,7 @@ xcoff_link_add_symbols (abfd, info) } /* Free up the line numbers. FIXME: We could cache these - somewhere for the final link, to avoid reading them again. */ + somewhere for the final link, to avoid reading them again. */ if (reloc_info[o->target_index].linenos != NULL) { free (reloc_info[o->target_index].linenos); @@ -2045,7 +2046,7 @@ xcoff_link_add_symbols (abfd, info) obj_coff_keep_syms (abfd) = keep_syms; - return true; + return TRUE; error_return: if (reloc_info != NULL) @@ -2060,7 +2061,7 @@ xcoff_link_add_symbols (abfd, info) free (reloc_info); } obj_coff_keep_syms (abfd) = keep_syms; - return false; + return FALSE; } #undef N_TMASK @@ -2069,7 +2070,7 @@ xcoff_link_add_symbols (abfd, info) /* This function is used to add symbols from a dynamic object to the global symbol table. */ -static boolean +static bfd_boolean xcoff_link_add_dynamic_symbols (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -2094,7 +2095,7 @@ xcoff_link_add_dynamic_symbols (abfd, in (_("%s: XCOFF shared object when not producing XCOFF output"), bfd_get_filename (abfd)); bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } /* The symbols we use from a dynamic object are not the symbols in @@ -2115,12 +2116,12 @@ xcoff_link_add_dynamic_symbols (abfd, in (_("%s: dynamic object with no .loader section"), bfd_get_filename (abfd)); bfd_set_error (bfd_error_no_symbols); - return false; + return FALSE; } if (! xcoff_get_section_contents (abfd, lsec)) - return false; + return FALSE; contents = coff_section_data (abfd, lsec)->contents; /* Remove the sections from this object, so that they do not get @@ -2162,10 +2163,10 @@ xcoff_link_add_dynamic_symbols (abfd, in table. However, we verified above that we are using an XCOFF hash table. */ - h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, true, - true, true); + h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, TRUE, + TRUE, TRUE); if (h == NULL) - return false; + return FALSE; h->flags |= XCOFF_DEF_DYNAMIC; @@ -2191,9 +2192,9 @@ xcoff_link_add_dynamic_symbols (abfd, in h->smclas = ldsym.l_smclas; /* Unless this is an XMC_XO symbol, we don't bother to actually - define it, since we don't have a section to put it in anyhow. - Instead, the relocation routines handle the DEF_DYNAMIC flag - correctly. */ + define it, since we don't have a section to put it in anyhow. + Instead, the relocation routines handle the DEF_DYNAMIC flag + correctly. */ if (h->smclas == XMC_XO && (h->root.type == bfd_link_hash_undefined @@ -2221,21 +2222,21 @@ xcoff_link_add_dynamic_symbols (abfd, in dsnm = bfd_malloc ((bfd_size_type) strlen (name) + 2); if (dsnm == NULL) - return false; + return FALSE; dsnm[0] = '.'; strcpy (dsnm + 1, name); hds = xcoff_link_hash_lookup (xcoff_hash_table (info), dsnm, - true, true, true); + TRUE, TRUE, TRUE); free (dsnm); if (hds == NULL) - return false; + return FALSE; if (hds->root.type == bfd_link_hash_new) { hds->root.type = bfd_link_hash_undefined; hds->root.u.undef.abfd = abfd; /* We do not want to add this to the undefined - symbol list. */ + symbol list. */ } hds->descriptor = h; @@ -2272,7 +2273,7 @@ xcoff_link_add_dynamic_symbols (abfd, in n = ((struct xcoff_import_file *) bfd_alloc (abfd, (bfd_size_type) sizeof (struct xcoff_import_file))); if (n == NULL) - return false; + return FALSE; n->next = NULL; /* For some reason, the path entry in the import file list for a @@ -2305,7 +2306,7 @@ xcoff_link_add_dynamic_symbols (abfd, in xcoff_data (abfd)->import_file_id = c; - return true; + return TRUE; } /* Routines that are called after all the input files have been @@ -2314,14 +2315,14 @@ xcoff_link_add_dynamic_symbols (abfd, in /* Mark a symbol as not being garbage, including the section in which it is defined. */ -static INLINE boolean +static INLINE bfd_boolean xcoff_mark_symbol (info, h) struct bfd_link_info *info; struct xcoff_link_hash_entry *h; { if ((h->flags & XCOFF_MARK) != 0) - return true; + return TRUE; h->flags |= XCOFF_MARK; if (h->root.type == bfd_link_hash_defined @@ -2334,7 +2335,7 @@ xcoff_mark_symbol (info, h) && (hsec->flags & SEC_MARK) == 0) { if (! xcoff_mark (info, hsec)) - return false; + return FALSE; } } @@ -2342,10 +2343,10 @@ xcoff_mark_symbol (info, h) && (h->toc_section->flags & SEC_MARK) == 0) { if (! xcoff_mark (info, h->toc_section)) - return false; + return FALSE; } - return true; + return TRUE; } /* The mark phase of garbage collection. For a given section, mark @@ -2354,14 +2355,14 @@ xcoff_mark_symbol (info, h) the number of relocs which need to be copied into the .loader section. */ -static boolean +static bfd_boolean xcoff_mark (info, sec) struct bfd_link_info *info; asection *sec; { if (bfd_is_abs_section (sec) || (sec->flags & SEC_MARK) != 0) - return true; + return TRUE; sec->flags |= SEC_MARK; @@ -2387,7 +2388,7 @@ xcoff_mark (info, sec) && (h->flags & XCOFF_MARK) == 0) { if (! xcoff_mark_symbol (info, h)) - return false; + return FALSE; } } @@ -2396,11 +2397,11 @@ xcoff_mark (info, sec) if ((sec->flags & SEC_RELOC) != 0 && sec->reloc_count > 0) { - rel = xcoff_read_internal_relocs (sec->owner, sec, true, - (bfd_byte *) NULL, false, + rel = xcoff_read_internal_relocs (sec->owner, sec, TRUE, + (bfd_byte *) NULL, FALSE, (struct internal_reloc *) NULL); if (rel == NULL) - return false; + return FALSE; relend = rel + sec->reloc_count; for (; rel < relend; rel++) { @@ -2416,7 +2417,7 @@ xcoff_mark (info, sec) && (h->flags & XCOFF_MARK) == 0) { if (! xcoff_mark_symbol (info, h)) - return false; + return FALSE; } rsec = xcoff_data (sec->owner)->csects[rel->r_symndx]; @@ -2424,11 +2425,11 @@ xcoff_mark (info, sec) && (rsec->flags & SEC_MARK) == 0) { if (! xcoff_mark (info, rsec)) - return false; + return FALSE; } /* See if this reloc needs to be copied into the .loader - section. */ + section. */ switch (rel->r_type) { default: @@ -2477,7 +2478,7 @@ xcoff_mark (info, sec) } } - return true; + return TRUE; } /* The sweep phase of garbage collection. Remove all garbage @@ -2498,8 +2499,8 @@ xcoff_sweep (info) if ((o->flags & SEC_MARK) == 0) { /* Keep all sections from non-XCOFF input files. Keep - special sections. Keep .debug sections for the - moment. */ + special sections. Keep .debug sections for the + moment. */ if (sub->xvec != info->hash->creator || o == xcoff_hash_table (info)->debug_section || o == xcoff_hash_table (info)->loader_section @@ -2522,7 +2523,7 @@ xcoff_sweep (info) /* Record the number of elements in a set. This is used to output the correct csect length. */ -boolean +bfd_boolean bfd_xcoff_link_record_set (output_bfd, info, harg, size) bfd *output_bfd; struct bfd_link_info *info; @@ -2534,7 +2535,7 @@ bfd_xcoff_link_record_set (output_bfd, i bfd_size_type amt; if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour) - return true; + return TRUE; /* This will hardly ever be called. I don't want to burn four bytes per global symbol, so instead the size is kept on a linked list @@ -2543,7 +2544,7 @@ bfd_xcoff_link_record_set (output_bfd, i amt = sizeof (struct xcoff_link_size_list); n = (struct xcoff_link_size_list *) bfd_alloc (output_bfd, amt); if (n == NULL) - return false; + return FALSE; n->next = xcoff_hash_table (info)->size_list; n->h = h; n->size = size; @@ -2551,12 +2552,12 @@ bfd_xcoff_link_record_set (output_bfd, i h->flags |= XCOFF_HAS_SIZE; - return true; + return TRUE; } /* Import a symbol. */ -boolean +bfd_boolean bfd_xcoff_import_symbol (output_bfd, info, harg, val, imppath, impfile, impmember, syscall_flag) bfd *output_bfd; @@ -2571,7 +2572,7 @@ bfd_xcoff_import_symbol (output_bfd, inf struct xcoff_link_hash_entry *h = (struct xcoff_link_hash_entry *) harg; if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour) - return true; + return TRUE; /* A symbol name which starts with a period is the code for a function. If the symbol is undefined, then add an undefined @@ -2587,9 +2588,9 @@ bfd_xcoff_import_symbol (output_bfd, inf { hds = xcoff_link_hash_lookup (xcoff_hash_table (info), h->root.root.string + 1, - true, false, true); + TRUE, FALSE, TRUE); if (hds == NULL) - return false; + return FALSE; if (hds->root.type == bfd_link_hash_new) { hds->root.type = bfd_link_hash_undefined; @@ -2603,8 +2604,8 @@ bfd_xcoff_import_symbol (output_bfd, inf } /* Now, if the descriptor is undefined, import the descriptor - rather than the symbol we were told to import. FIXME: Is - this correct in all cases? */ + rather than the symbol we were told to import. FIXME: Is + this correct in all cases? */ if (hds->root.type == bfd_link_hash_undefined) h = hds; } @@ -2621,7 +2622,7 @@ bfd_xcoff_import_symbol (output_bfd, inf (info, h->root.root.string, h->root.u.def.section->owner, h->root.u.def.section, h->root.u.def.value, output_bfd, bfd_abs_section_ptr, val))) - return false; + return FALSE; } h->root.type = bfd_link_hash_defined; @@ -2641,7 +2642,7 @@ bfd_xcoff_import_symbol (output_bfd, inf struct xcoff_import_file **pp; /* We start c at 1 because the first entry in the import list is - reserved for the library search path. */ + reserved for the library search path. */ for (pp = &xcoff_hash_table (info)->imports, c = 1; *pp != NULL; pp = &(*pp)->next, ++c) @@ -2659,7 +2660,7 @@ bfd_xcoff_import_symbol (output_bfd, inf n = (struct xcoff_import_file *) bfd_alloc (output_bfd, amt); if (n == NULL) - return false; + return FALSE; n->next = NULL; n->path = imppath; n->file = impfile; @@ -2670,12 +2671,12 @@ bfd_xcoff_import_symbol (output_bfd, inf h->ldindx = c; } - return true; + return TRUE; } /* Export a symbol. */ -boolean +bfd_boolean bfd_xcoff_export_symbol (output_bfd, info, harg) bfd *output_bfd; struct bfd_link_info *info; @@ -2684,7 +2685,7 @@ bfd_xcoff_export_symbol (output_bfd, inf struct xcoff_link_hash_entry *h = (struct xcoff_link_hash_entry *) harg; if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour) - return true; + return TRUE; h->flags |= XCOFF_EXPORT; @@ -2702,11 +2703,11 @@ bfd_xcoff_export_symbol (output_bfd, inf fnname = (char *) bfd_malloc (amt); if (fnname == NULL) - return false; + return FALSE; fnname[0] = '.'; strcpy (fnname + 1, h->root.root.string); hfn = xcoff_link_hash_lookup (xcoff_hash_table (info), - fnname, false, false, true); + fnname, FALSE, FALSE, TRUE); free (fnname); if (hfn != NULL && hfn->smclas == XMC_PR @@ -2721,7 +2722,7 @@ bfd_xcoff_export_symbol (output_bfd, inf /* Make sure we don't garbage collect this symbol. */ if (! xcoff_mark_symbol (info, h)) - return false; + return FALSE; /* If this is a function descriptor, make sure we don't garbage collect the associated function code. We normally don't have to @@ -2731,17 +2732,17 @@ bfd_xcoff_export_symbol (output_bfd, inf if ((h->flags & XCOFF_DESCRIPTOR) != 0) { if (! xcoff_mark_symbol (info, h->descriptor)) - return false; + return FALSE; } - return true; + return TRUE; } /* Count a reloc against a symbol. This is called for relocs generated by the linker script, typically for global constructors and destructors. */ -boolean +bfd_boolean bfd_xcoff_link_count_reloc (output_bfd, info, name) bfd *output_bfd; struct bfd_link_info *info; @@ -2750,16 +2751,16 @@ bfd_xcoff_link_count_reloc (output_bfd, struct xcoff_link_hash_entry *h; if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour) - return true; + return TRUE; h = ((struct xcoff_link_hash_entry *) - bfd_wrapped_link_hash_lookup (output_bfd, info, name, false, false, - false)); + bfd_wrapped_link_hash_lookup (output_bfd, info, name, FALSE, FALSE, + FALSE)); if (h == NULL) { (*_bfd_error_handler) (_("%s: no such symbol"), name); bfd_set_error (bfd_error_no_symbols); - return false; + return FALSE; } h->flags |= XCOFF_REF_REGULAR | XCOFF_LDREL; @@ -2767,15 +2768,15 @@ bfd_xcoff_link_count_reloc (output_bfd, /* Mark the symbol to avoid garbage collection. */ if (! xcoff_mark_symbol (info, h)) - return false; + return FALSE; - return true; + return TRUE; } /* This function is called for each symbol to which the linker script assigns a value. */ -boolean +bfd_boolean bfd_xcoff_record_link_assignment (output_bfd, info, name) bfd *output_bfd; struct bfd_link_info *info; @@ -2784,16 +2785,16 @@ bfd_xcoff_record_link_assignment (output struct xcoff_link_hash_entry *h; if (bfd_get_flavour (output_bfd) != bfd_target_xcoff_flavour) - return true; + return TRUE; - h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, true, true, - false); + h = xcoff_link_hash_lookup (xcoff_hash_table (info), name, TRUE, TRUE, + FALSE); if (h == NULL) - return false; + return FALSE; h->flags |= XCOFF_DEF_REGULAR; - return true; + return TRUE; } /* Build the .loader section. This is called by the XCOFF linker @@ -2813,7 +2814,7 @@ bfd_xcoff_record_link_assignment (output option). SPECIAL_SECTIONS is set by this routine to csects with magic names like _end. */ -boolean +bfd_boolean bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry, file_align, maxstack, maxdata, gc, modtype, textro, export_defineds, @@ -2825,12 +2826,12 @@ bfd_xcoff_size_dynamic_sections (output_ unsigned long file_align; unsigned long maxstack; unsigned long maxdata; - boolean gc; + bfd_boolean gc; int modtype; - boolean textro; - boolean export_defineds; + bfd_boolean textro; + bfd_boolean export_defineds; asection **special_sections; - boolean rtld; + bfd_boolean rtld; { struct xcoff_link_hash_entry *hentry; asection *lsec; @@ -2851,10 +2852,10 @@ bfd_xcoff_size_dynamic_sections (output_ { for (i = 0; i < XCOFF_NUMBER_OF_SPECIAL_SECTIONS; i++) special_sections[i] = NULL; - return true; + return TRUE; } - ldinfo.failed = false; + ldinfo.failed = FALSE; ldinfo.output_bfd = output_bfd; ldinfo.info = info; ldinfo.export_defineds = export_defineds; @@ -2874,56 +2875,55 @@ bfd_xcoff_size_dynamic_sections (output_ if (entry != NULL) { hentry = xcoff_link_hash_lookup (xcoff_hash_table (info), entry, - false, false, true); + FALSE, FALSE, TRUE); if (hentry != NULL) hentry->flags |= XCOFF_ENTRY; } /* __rtinit */ - if (info->init_function || info->fini_function || rtld) + if (info->init_function || info->fini_function || rtld) { struct xcoff_link_hash_entry *hsym; struct internal_ldsym *ldsym; - + hsym = xcoff_link_hash_lookup (xcoff_hash_table (info), - "__rtinit", false, false, true); + "__rtinit", FALSE, FALSE, TRUE); if (hsym == NULL) { (*_bfd_error_handler) (_("error: undefined symbol __rtinit")); - return false; + return FALSE; } - + xcoff_mark_symbol (info, hsym); hsym->flags |= (XCOFF_DEF_REGULAR | XCOFF_RTINIT); /* __rtinit initalized */ amt = sizeof (struct internal_ldsym); ldsym = (struct internal_ldsym *) bfd_malloc (amt); - - ldsym->l_value = 0; /* will be filled in later */ - ldsym->l_scnum = 2; /* data section */ - ldsym->l_smtype = XTY_SD; /* csect section definition */ - ldsym->l_smclas = 5; /* .rw */ - ldsym->l_ifile = 0; /* special system loader symbol */ - ldsym->l_parm = 0; /* NA */ - + + ldsym->l_value = 0; /* will be filled in later */ + ldsym->l_scnum = 2; /* data section */ + ldsym->l_smtype = XTY_SD; /* csect section definition */ + ldsym->l_smclas = 5; /* .rw */ + ldsym->l_ifile = 0; /* special system loader symbol */ + ldsym->l_parm = 0; /* NA */ + /* Force __rtinit to be the first symbol in the loader symbol table See xcoff_build_ldsyms - + The first 3 symbol table indices are reserved to indicate the data, text and bss sections. */ BFD_ASSERT (0 == ldinfo.ldsym_count); - + hsym->ldindx = 3; ldinfo.ldsym_count = 1; hsym->ldsym = ldsym; - - if (false == bfd_xcoff_put_ldsymbol_name (ldinfo.output_bfd, &ldinfo, - hsym->ldsym, - hsym->root.root.string)) - return false; - + + if (! bfd_xcoff_put_ldsymbol_name (ldinfo.output_bfd, &ldinfo, + hsym->ldsym, hsym->root.root.string)) + return FALSE; + /* This symbol is written out by xcoff_write_global_symbol Set stuff up so xcoff_write_global_symbol logic works. */ hsym->flags |= XCOFF_DEF_REGULAR | XCOFF_MARK; @@ -2938,11 +2938,11 @@ bfd_xcoff_size_dynamic_sections (output_ || (hentry->root.type != bfd_link_hash_defined && hentry->root.type != bfd_link_hash_defweak)) { - gc = false; - xcoff_hash_table (info)->gc = false; + gc = FALSE; + xcoff_hash_table (info)->gc = FALSE; /* We still need to call xcoff_mark, in order to set ldrel_count - correctly. */ + correctly. */ for (sub = info->input_bfds; sub != NULL; sub = sub->link_next) { asection *o; @@ -2962,7 +2962,7 @@ bfd_xcoff_size_dynamic_sections (output_ if (! xcoff_mark (info, hentry->root.u.def.section)) goto error_return; xcoff_sweep (info); - xcoff_hash_table (info)->gc = true; + xcoff_hash_table (info)->gc = TRUE; } /* Return special sections to the caller. */ @@ -2982,7 +2982,7 @@ bfd_xcoff_size_dynamic_sections (output_ if (info->input_bfds == NULL) { /* I'm not sure what to do in this bizarre case. */ - return true; + return TRUE; } xcoff_link_hash_traverse (xcoff_hash_table (info), xcoff_build_ldsyms, @@ -3158,7 +3158,7 @@ bfd_xcoff_size_dynamic_sections (output_ csectpp = xcoff_data (sub)->csects; /* Dynamic object do not have csectpp's. */ - if (NULL != csectpp) + if (NULL != csectpp) { symesz = bfd_coff_symesz (sub); esym = (bfd_byte *) obj_coff_external_syms (sub); @@ -3183,7 +3183,7 @@ bfd_xcoff_size_dynamic_sections (output_ bfd_size_type indx; name = (char *) debug_contents + sym._n._n_n._n_offset; - indx = _bfd_stringtab_add (debug_strtab, name, true, true); + indx = _bfd_stringtab_add (debug_strtab, name, TRUE, TRUE); if (indx == (bfd_size_type) -1) goto error_return; *debug_index = indx; @@ -3213,29 +3213,29 @@ bfd_xcoff_size_dynamic_sections (output_ xcoff_hash_table (info)->debug_section->_raw_size = _bfd_stringtab_size (debug_strtab); - return true; + return TRUE; error_return: if (ldinfo.strings != NULL) free (ldinfo.strings); if (debug_contents != NULL) free (debug_contents); - return false; + return FALSE; } -boolean +bfd_boolean bfd_xcoff_link_generate_rtinit (abfd, init, fini, rtld) bfd *abfd; const char *init; const char *fini; - boolean rtld; + bfd_boolean rtld; { struct bfd_in_memory *bim; - + bim = ((struct bfd_in_memory *) bfd_malloc ((bfd_size_type) sizeof (struct bfd_in_memory))); if (bim == NULL) - return false; + return FALSE; bim->size = 0; bim->buffer = 0; @@ -3247,21 +3247,21 @@ bfd_xcoff_link_generate_rtinit (abfd, in abfd->direction = write_direction; abfd->where = 0; - if (false == bfd_xcoff_generate_rtinit (abfd, init, fini, rtld)) - return false; + if (! bfd_xcoff_generate_rtinit (abfd, init, fini, rtld)) + return FALSE; /* need to reset to unknown or it will not be read back in correctly */ abfd->format = bfd_unknown; abfd->direction = read_direction; abfd->where = 0; - return true; + return TRUE; } /* Add a symbol to the .loader symbols, if necessary. */ -static boolean +static bfd_boolean xcoff_build_ldsyms (h, p) struct xcoff_link_hash_entry *h; PTR p; @@ -3274,7 +3274,7 @@ xcoff_build_ldsyms (h, p) /* __rtinit, this symbol has special handling. */ if (h->flags & XCOFF_RTINIT) - return true; + return TRUE; /* If this is a final link, and the symbol was defined as a common symbol in a regular object file, and there was no definition in @@ -3296,7 +3296,7 @@ xcoff_build_ldsyms (h, p) && (h->flags & XCOFF_DEF_REGULAR) != 0 && h->root.root.string[0] != '.') { - boolean export; + bfd_boolean export; /* We don't export a symbol which is being defined by an object included from an archive which contains a shared object. The @@ -3312,7 +3312,7 @@ xcoff_build_ldsyms (h, p) them. This is confusing, but I haven't been able to think of a different approach. Note that the symbols can, of course, be exported explicitly. */ - export = true; + export = TRUE; if ((h->root.type == bfd_link_hash_defined || h->root.type == bfd_link_hash_defweak) && h->root.u.def.section->owner != NULL @@ -3326,7 +3326,7 @@ xcoff_build_ldsyms (h, p) { if ((member->flags & DYNAMIC) != 0) { - export = false; + export = FALSE; break; } member = bfd_openr_next_archived_file (arbfd, member); @@ -3375,7 +3375,7 @@ xcoff_build_ldsyms (h, p) sec->_raw_size += bfd_xcoff_glink_code_size(ldinfo->output_bfd); /* The global linkage code requires a TOC entry for the - descriptor. */ + descriptor. */ hds = h->descriptor; BFD_ASSERT ((hds->root.type == bfd_link_hash_undefined || hds->root.type == bfd_link_hash_undefweak) @@ -3393,7 +3393,7 @@ xcoff_build_ldsyms (h, p) else if (bfd_xcoff_is_xcoff32 (ldinfo->output_bfd)) byte_size = 4; else - return false; + return FALSE; hds->toc_section = xcoff_hash_table (ldinfo->info)->toc_section; hds->u.toc_offset = hds->toc_section->_raw_size; @@ -3425,10 +3425,10 @@ xcoff_build_ldsyms (h, p) asection *sec; /* This is an undefined function descriptor associated with - a defined entry point. We can build up a function - descriptor ourselves. Believe it or not, the AIX linker - actually does this, and there are cases where we need to - do it as well. */ + a defined entry point. We can build up a function + descriptor ourselves. Believe it or not, the AIX linker + actually does this, and there are cases where we need to + do it as well. */ sec = xcoff_hash_table (ldinfo->info)->descriptor_section; h->root.type = bfd_link_hash_defined; h->root.u.def.section = sec; @@ -3455,7 +3455,7 @@ xcoff_build_ldsyms (h, p) (_("warning: attempt to export undefined symbol `%s'"), h->root.root.string); h->ldsym = NULL; - return true; + return TRUE; } } @@ -3484,7 +3484,7 @@ xcoff_build_ldsyms (h, p) && (h->flags & XCOFF_EXPORT) == 0) { h->ldsym = NULL; - return true; + return TRUE; } /* We don't need to add this symbol if we did garbage collection and @@ -3493,13 +3493,13 @@ xcoff_build_ldsyms (h, p) && (h->flags & XCOFF_MARK) == 0) { h->ldsym = NULL; - return true; + return TRUE; } /* We may have already processed this symbol due to the recursive call above. */ if ((h->flags & XCOFF_BUILT_LDSYM) != 0) - return true; + return TRUE; /* We need to add this symbol to the .loader symbols. */ @@ -3508,8 +3508,8 @@ xcoff_build_ldsyms (h, p) h->ldsym = (struct internal_ldsym *) bfd_zalloc (ldinfo->output_bfd, amt); if (h->ldsym == NULL) { - ldinfo->failed = true; - return false; + ldinfo->failed = TRUE; + return FALSE; } if ((h->flags & XCOFF_IMPORT) != 0) @@ -3521,21 +3521,20 @@ xcoff_build_ldsyms (h, p) ++ldinfo->ldsym_count; - if (false == bfd_xcoff_put_ldsymbol_name (ldinfo->output_bfd, ldinfo, - h->ldsym, - h->root.root.string)) + if (! bfd_xcoff_put_ldsymbol_name (ldinfo->output_bfd, ldinfo, + h->ldsym, h->root.root.string)) { - return false; + return FALSE; } h->flags |= XCOFF_BUILT_LDSYM; - return true; + return TRUE; } /* Do the final link step. */ -boolean +bfd_boolean _bfd_xcoff_bfd_final_link (abfd, info) bfd *abfd; struct bfd_link_info *info; @@ -3611,7 +3610,7 @@ _bfd_xcoff_bfd_final_link (abfd, info) link. This will normally be every section. We need to do this so that we can identify any sections which the linker has decided to not include. */ - sec->linker_mark = true; + sec->linker_mark = TRUE; if (info->strip == strip_none || info->strip == strip_some) @@ -3651,49 +3650,49 @@ _bfd_xcoff_bfd_final_link (abfd, info) file_align = xcoff_hash_table (info)->file_align; if (file_align != 0) { - boolean saw_contents; + bfd_boolean saw_contents; int indx; asection **op; file_ptr sofar; - + /* Insert .pad sections before every section which has - contents and is loaded, if it is preceded by some other - section which has contents and is loaded. */ - saw_contents = true; + contents and is loaded, if it is preceded by some other + section which has contents and is loaded. */ + saw_contents = TRUE; for (op = &abfd->sections; *op != NULL; op = &(*op)->next) { if (strcmp ((*op)->name, ".pad") == 0) - saw_contents = false; + saw_contents = FALSE; else if (((*op)->flags & SEC_HAS_CONTENTS) != 0 && ((*op)->flags & SEC_LOAD) != 0) { if (! saw_contents) - saw_contents = true; + saw_contents = TRUE; else { asection *n, **st; - + /* Create a pad section and place it before the section - that needs padding. This requires unlinking and + that needs padding. This requires unlinking and relinking the bfd's section list. */ - + st = abfd->section_tail; n = bfd_make_section_anyway (abfd, ".pad"); n->flags = SEC_HAS_CONTENTS; - n->alignment_power = 0; + n->alignment_power = 0; BFD_ASSERT (*st == n); bfd_section_list_remove (abfd, st); bfd_section_list_insert (abfd, op, n); op = &n->next; - saw_contents = false; + saw_contents = FALSE; } } } - + /* Reset the section indices after inserting the new - sections. */ + sections. */ indx = 0; for (o = abfd->sections; o != NULL; o = o->next) { @@ -3703,9 +3702,9 @@ _bfd_xcoff_bfd_final_link (abfd, info) BFD_ASSERT ((unsigned int) indx == abfd->section_count); /* Work out appropriate sizes for the .pad sections to force - each section to land on a page boundary. This bit of - code knows what compute_section_file_positions is going - to do. */ + each section to land on a page boundary. This bit of + code knows what compute_section_file_positions is going + to do. */ sofar = bfd_coff_filhsz (abfd); sofar += bfd_coff_aoutsz (abfd); sofar += abfd->section_count * bfd_coff_scnhsz (abfd); @@ -3775,8 +3774,8 @@ _bfd_xcoff_bfd_final_link (abfd, info) else { /* A stripped file has no relocs. However, we still - allocate the buffers, so that later code doesn't have to - worry about whether we are stripping or not. */ + allocate the buffers, so that later code doesn't have to + worry about whether we are stripping or not. */ if (info->strip == strip_all) o->rel_filepos = 0; else @@ -3787,13 +3786,13 @@ _bfd_xcoff_bfd_final_link (abfd, info) } /* We don't know the indices of global symbols until we have - written out all the local symbols. For each section in - the output file, we keep an array of pointers to hash - table entries. Each entry in the array corresponds to a - reloc. When we find a reloc against a global symbol, we - set the corresponding entry in this array so that we can - fix up the symbol index after we have written out all the - local symbols. + written out all the local symbols. For each section in + the output file, we keep an array of pointers to hash + table entries. Each entry in the array corresponds to a + reloc. When we find a reloc against a global symbol, we + set the corresponding entry in this array so that we can + fix up the symbol index after we have written out all the + local symbols. Because of this problem, we also keep the relocs in memory until the end of the link. This wastes memory. @@ -3850,7 +3849,7 @@ _bfd_xcoff_bfd_final_link (abfd, info) { bfd_size_type sz; - sub->output_has_begun = false; + sub->output_has_begun = FALSE; sz = obj_raw_syment_count (sub); if (sz > max_sym_count) max_sym_count = sz; @@ -3903,7 +3902,7 @@ _bfd_xcoff_bfd_final_link (abfd, info) { if (! xcoff_link_input_bfd (&finfo, sub)) goto error_return; - sub->output_has_begun = true; + sub->output_has_begun = TRUE; } } else if (p->type == bfd_section_reloc_link_order @@ -4142,7 +4141,7 @@ _bfd_xcoff_bfd_final_link (abfd, info) not try to write out the symbols. */ bfd_get_symcount (abfd) = 0; - return true; + return TRUE; error_return: if (finfo.strtab != NULL) @@ -4176,13 +4175,13 @@ _bfd_xcoff_bfd_final_link (abfd, info) free (finfo.external_relocs); if (external_relocs != NULL) free (external_relocs); - return false; + return FALSE; } /* Link an input file into the linker output file. This function handles all the sections and relocations of the input file at once. */ -static boolean +static bfd_boolean xcoff_link_input_bfd (finfo, input_bfd) struct xcoff_final_link_info *finfo; bfd *input_bfd; @@ -4192,7 +4191,7 @@ xcoff_link_input_bfd (finfo, input_bfd) bfd_size_type syment_base; unsigned int n_tmask; unsigned int n_btshft; - boolean copy, hash; + bfd_boolean copy, hash; bfd_size_type isymesz; bfd_size_type osymesz; bfd_size_type linesz; @@ -4207,13 +4206,13 @@ xcoff_link_input_bfd (finfo, input_bfd) bfd_byte *outsym; unsigned int incls; asection *oline; - boolean keep_syms; + bfd_boolean keep_syms; asection *o; /* We can just skip DYNAMIC files, unless this is a static link. */ if ((input_bfd->flags & DYNAMIC) != 0 && ! finfo->info->static_link) - return true; + return TRUE; /* Move all the symbols to the output file. */ @@ -4232,15 +4231,15 @@ xcoff_link_input_bfd (finfo, input_bfd) #define N_TMASK n_tmask #define N_BTSHFT n_btshft - copy = false; + copy = FALSE; if (! finfo->info->keep_memory) - copy = true; - hash = true; + copy = TRUE; + hash = TRUE; if ((output_bfd->flags & BFD_TRADITIONAL_FORMAT) != 0) - hash = false; + hash = FALSE; if (! _bfd_coff_get_external_symbols (input_bfd)) - return false; + return FALSE; esym = (bfd_byte *) obj_coff_external_syms (input_bfd); esym_end = esym + obj_raw_syment_count (input_bfd) * isymesz; @@ -4260,14 +4259,14 @@ xcoff_link_input_bfd (finfo, input_bfd) struct internal_syment isym; union internal_auxent aux; int smtyp = 0; - boolean skip; - boolean require; + bfd_boolean skip; + bfd_boolean require; int add; bfd_coff_swap_sym_in (input_bfd, (PTR) esym, (PTR) isymp); /* If this is a C_EXT or C_HIDEXT symbol, we need the csect - information. */ + information. */ if (isymp->n_sclass == C_EXT || isymp->n_sclass == C_HIDEXT) { BFD_ASSERT (isymp->n_numaux > 0); @@ -4287,9 +4286,9 @@ xcoff_link_input_bfd (finfo, input_bfd) isym = *isymp; /* If this symbol is in the .loader section, swap out the - .loader symbol information. If this is an external symbol - reference to a defined symbol, though, then wait until we get - to the definition. */ + .loader symbol information. If this is an external symbol + reference to a defined symbol, though, then wait until we get + to the definition. */ if (isym.n_sclass == C_EXT && *sym_hash != NULL && (*sym_hash)->ldsym != NULL @@ -4379,26 +4378,26 @@ xcoff_link_input_bfd (finfo, input_bfd) *indexp = -1; - skip = false; - require = false; + skip = FALSE; + require = FALSE; add = 1 + isym.n_numaux; /* If we are skipping this csect, we want to skip this symbol. */ if (*csectpp == NULL) - skip = true; + skip = TRUE; /* If we garbage collected this csect, we want to skip this - symbol. */ + symbol. */ if (! skip && xcoff_hash_table (finfo->info)->gc && ((*csectpp)->flags & SEC_MARK) == 0 && *csectpp != bfd_abs_section_ptr) - skip = true; + skip = TRUE; /* An XCOFF linker always skips C_STAT symbols. */ if (! skip && isymp->n_sclass == C_STAT) - skip = true; + skip = TRUE; /* We skip all but the first TOC anchor. */ if (! skip @@ -4406,7 +4405,7 @@ xcoff_link_input_bfd (finfo, input_bfd) && aux.x_csect.x_smclas == XMC_TC0) { if (finfo->toc_symindx != -1) - skip = true; + skip = TRUE; else { bfd_vma tocval, tocend; @@ -4418,11 +4417,11 @@ xcoff_link_input_bfd (finfo, input_bfd) - (*csectpp)->vma); /* We want to find out if tocval is a good value to use - as the TOC anchor--that is, whether we can access all - of the TOC using a 16 bit offset from tocval. This - test assumes that the TOC comes at the end of the - output section, as it does in the default linker - script. */ + as the TOC anchor--that is, whether we can access all + of the TOC using a 16 bit offset from tocval. This + test assumes that the TOC comes at the end of the + output section, as it does in the default linker + script. */ tocend = ((*csectpp)->output_section->vma + (*csectpp)->output_section->_raw_size); for (inp = finfo->info->input_bfds; @@ -4449,7 +4448,7 @@ xcoff_link_input_bfd (finfo, input_bfd) (_("TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"), (unsigned long) (tocend - tocval)); bfd_set_error (bfd_error_file_too_big); - return false; + return FALSE; } if (tocval + 0x8000 < tocend) @@ -4465,7 +4464,7 @@ xcoff_link_input_bfd (finfo, input_bfd) xcoff_data (finfo->output_bfd)->toc = tocval; xcoff_data (finfo->output_bfd)->sntoc = (*csectpp)->output_section->target_index; - require = true; + require = TRUE; } } @@ -4473,17 +4472,17 @@ xcoff_link_input_bfd (finfo, input_bfd) /* If we are stripping all symbols, we want to skip this one. */ if (! skip && finfo->info->strip == strip_all) - skip = true; + skip = TRUE; /* We can skip resolved external references. */ if (! skip && isym.n_sclass == C_EXT && smtyp == XTY_ER && (*sym_hash)->root.type != bfd_link_hash_undefined) - skip = true; + skip = TRUE; /* We can skip common symbols if they got defined somewhere - else. */ + else. */ if (! skip && isym.n_sclass == C_EXT && smtyp == XTY_CM @@ -4491,7 +4490,7 @@ xcoff_link_input_bfd (finfo, input_bfd) || (*sym_hash)->root.u.c.p->section != *csectpp) && ((*sym_hash)->root.type != bfd_link_hash_defined || (*sym_hash)->root.u.def.section != *csectpp)) - skip = true; + skip = TRUE; /* Skip local symbols if we are discarding them. */ if (! skip @@ -4499,14 +4498,14 @@ xcoff_link_input_bfd (finfo, input_bfd) && isym.n_sclass != C_EXT && (isym.n_sclass != C_HIDEXT || smtyp != XTY_SD)) - skip = true; + skip = TRUE; /* If we stripping debugging symbols, and this is a debugging - symbol, then skip it. */ + symbol, then skip it. */ if (! skip && finfo->info->strip == strip_debugger && isym.n_scnum == N_DEBUG) - skip = true; + skip = TRUE; /* If some symbols are stripped based on the name, work out the name and decide whether to skip this symbol. We don't handle @@ -4524,24 +4523,24 @@ xcoff_link_input_bfd (finfo, input_bfd) name = _bfd_coff_internal_syment_name (input_bfd, &isym, buf); if (name == NULL) - return false; + return FALSE; if ((finfo->info->strip == strip_some - && (bfd_hash_lookup (finfo->info->keep_hash, name, false, - false) == NULL)) + && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE, + FALSE) == NULL)) || (finfo->info->discard == discard_l && (isym.n_sclass != C_EXT && (isym.n_sclass != C_HIDEXT || smtyp != XTY_SD)) && bfd_is_local_label_name (input_bfd, name))) - skip = true; + skip = TRUE; } /* We can not skip the first TOC anchor. */ if (skip && require && finfo->info->strip != strip_all) - skip = false; + skip = FALSE; /* We now know whether we are to skip this symbol or not. */ if (! skip) @@ -4565,10 +4564,10 @@ xcoff_link_input_bfd (finfo, input_bfd) (char *) NULL); if (name == NULL) - return false; + return FALSE; indx = _bfd_stringtab_add (finfo->strtab, name, hash, copy); if (indx == (bfd_size_type) -1) - return false; + return FALSE; isym._n._n_n._n_offset = STRING_SIZE_SIZE + indx; } } @@ -4622,7 +4621,7 @@ xcoff_link_input_bfd (finfo, input_bfd) if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || (bfd_bwrite (outsym, osymesz, output_bfd) != osymesz)) - return false; + return FALSE; } } @@ -4631,8 +4630,8 @@ xcoff_link_input_bfd (finfo, input_bfd) } /* The value of a C_BINCL or C_EINCL symbol is a file offset - into the line numbers. We update the symbol values when - we handle the line numbers. */ + into the line numbers. We update the symbol values when + we handle the line numbers. */ if (isym.n_sclass == C_BINCL || isym.n_sclass == C_EINCL) { @@ -4659,8 +4658,8 @@ xcoff_link_input_bfd (finfo, input_bfd) } /* If this is a symbol in the TOC which we may have merged - (class XMC_TC), remember the symbol index of the TOC - symbol. */ + (class XMC_TC), remember the symbol index of the TOC + symbol. */ if (isym.n_sclass == C_HIDEXT && aux.x_csect.x_smclas == XMC_TC && *sym_hash != NULL) @@ -4715,7 +4714,7 @@ xcoff_link_input_bfd (finfo, input_bfd) bfd_vma indx; /* The value of a C_BSTAT symbol is the symbol table - index of the containing csect. */ + index of the containing csect. */ bfd_coff_swap_sym_in (output_bfd, (PTR) outsym, (PTR) &isym); indx = isym.n_value; if (indx < obj_raw_syment_count (input_bfd)) @@ -4760,13 +4759,13 @@ xcoff_link_input_bfd (finfo, input_bfd) { strings = _bfd_coff_read_string_table (input_bfd); if (strings == NULL) - return false; + return FALSE; } filename = strings + aux.x_file.x_n.x_offset; indx = _bfd_stringtab_add (finfo->strtab, filename, hash, copy); if (indx == (bfd_size_type) -1) - return false; + return FALSE; aux.x_file.x_n.x_offset = STRING_SIZE_SIZE + indx; } } @@ -4776,10 +4775,10 @@ xcoff_link_input_bfd (finfo, input_bfd) { /* We don't support type checking. I don't know if - anybody does. */ + anybody does. */ aux.x_csect.x_parmhash = 0; /* I don't think anybody uses these fields, but we'd - better clobber them just in case. */ + better clobber them just in case. */ aux.x_csect.x_stab = 0; aux.x_csect.x_snstab = 0; @@ -4818,9 +4817,9 @@ xcoff_link_input_bfd (finfo, input_bfd) && indx < obj_raw_syment_count (input_bfd)) { /* We look forward through the symbol for - the index of the next symbol we are going - to include. I don't know if this is - entirely right. */ + the index of the next symbol we are going + to include. I don't know if this is + entirely right. */ while (finfo->sym_indices[indx] < 0 && indx < obj_raw_syment_count (input_bfd)) ++indx; @@ -4877,7 +4876,7 @@ xcoff_link_input_bfd (finfo, input_bfd) if (bfd_seek (input_bfd, pos, SEEK_SET) != 0 || (bfd_bread (finfo->linenos, amt, input_bfd) != amt)) - return false; + return FALSE; oline = enclosing; } @@ -4937,7 +4936,7 @@ xcoff_link_input_bfd (finfo, input_bfd) || (bfd_bwrite (finfo->linenos + linoff, linesz * count, output_bfd) != linesz * count)) - return false; + return FALSE; o->output_section->lineno_count += count; @@ -4949,8 +4948,8 @@ xcoff_link_input_bfd (finfo, input_bfd) int iiadd; /* Update any C_BINCL or C_EINCL symbols - that refer to a line number in the - range we just output. */ + that refer to a line number in the + range we just output. */ iisp = finfo->internal_syms; iispend = (iisp + obj_raw_syment_count (input_bfd)); @@ -5028,7 +5027,7 @@ xcoff_link_input_bfd (finfo, input_bfd) bfd_size_type amt = outsym - finfo->outsyms; if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt) - return false; + return FALSE; BFD_ASSERT ((obj_raw_syment_count (output_bfd) + (outsym - finfo->outsyms) / osymesz) @@ -5039,7 +5038,7 @@ xcoff_link_input_bfd (finfo, input_bfd) /* Don't let the linker relocation routines discard the symbols. */ keep_syms = obj_coff_keep_syms (input_bfd); - obj_coff_keep_syms (input_bfd) = true; + obj_coff_keep_syms (input_bfd) = TRUE; /* Relocate the contents of each section. */ for (o = input_bfd->sections; o != NULL; o = o->next) @@ -5066,7 +5065,7 @@ xcoff_link_input_bfd (finfo, input_bfd) else { if (! bfd_get_section_contents (input_bfd, o, finfo->contents, (file_ptr) 0, o->_raw_size)) - return false; + return FALSE; contents = finfo->contents; } @@ -5083,12 +5082,12 @@ xcoff_link_input_bfd (finfo, input_bfd) /* Read in the relocs. */ target_index = o->output_section->target_index; internal_relocs = (xcoff_read_internal_relocs - (input_bfd, o, false, finfo->external_relocs, - true, + (input_bfd, o, FALSE, finfo->external_relocs, + TRUE, (finfo->section_info[target_index].relocs + o->output_section->reloc_count))); if (internal_relocs == NULL) - return false; + return FALSE; /* Call processor specific code to relocate the section contents. */ @@ -5098,7 +5097,7 @@ xcoff_link_input_bfd (finfo, input_bfd) internal_relocs, finfo->internal_syms, xcoff_data (input_bfd)->csects)) - return false; + return FALSE; offset = o->output_section->vma + o->output_offset - o->vma; irel = internal_relocs; @@ -5109,7 +5108,7 @@ xcoff_link_input_bfd (finfo, input_bfd) { struct xcoff_link_hash_entry *h = NULL; struct internal_ldrel ldrel; - boolean quiet; + bfd_boolean quiet; *rel_hash = NULL; @@ -5153,7 +5152,7 @@ xcoff_link_input_bfd (finfo, input_bfd) n = ((struct xcoff_toc_rel_hash *) bfd_alloc (finfo->output_bfd, amt)); if (n == NULL) - return false; + return FALSE; si = finfo->section_info + target_index; n->next = si->toc_rel_hashes; n->h = h; @@ -5233,17 +5232,17 @@ xcoff_link_input_bfd (finfo, input_bfd) (input_bfd, is, buf)); if (name == NULL) - return false; + return FALSE; if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, name, input_bfd, o, irel->r_vaddr))) - return false; + return FALSE; } } } - quiet = false; + quiet = FALSE; switch (irel->r_type) { default: @@ -5290,7 +5289,7 @@ xcoff_link_input_bfd (finfo, input_bfd) bfd_archive_filename (input_bfd), sec->name); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } } else @@ -5303,7 +5302,7 @@ xcoff_link_input_bfd (finfo, input_bfd) callback for this relocation, in _bfd_ppc_xcoff_relocate_section. Don't issue any more warnings. */ - quiet = true; + quiet = TRUE; } if (h->ldindx < 0 && ! quiet) { @@ -5312,7 +5311,7 @@ xcoff_link_input_bfd (finfo, input_bfd) bfd_archive_filename (input_bfd), h->root.root.string); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } ldrel.l_symndx = h->ldindx; } @@ -5328,7 +5327,7 @@ xcoff_link_input_bfd (finfo, input_bfd) bfd_get_section_name (finfo->output_bfd, o->output_section)); bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; } bfd_xcoff_swap_ldrel_out (output_bfd, &ldrel, finfo->ldrel); @@ -5356,7 +5355,7 @@ xcoff_link_input_bfd (finfo, input_bfd) (o->_cooked_size != 0 ? o->_cooked_size : o->_raw_size))) - return false; + return FALSE; } obj_coff_keep_syms (input_bfd) = keep_syms; @@ -5364,10 +5363,10 @@ xcoff_link_input_bfd (finfo, input_bfd) if (! finfo->info->keep_memory) { if (! _bfd_coff_free_symbols (input_bfd)) - return false; + return FALSE; } - return true; + return TRUE; } #undef N_TMASK @@ -5376,7 +5375,7 @@ xcoff_link_input_bfd (finfo, input_bfd) /* Write out a non-XCOFF global symbol. */ -static boolean +static bfd_boolean xcoff_write_global_symbol (h, inf) struct xcoff_link_hash_entry *h; PTR inf; @@ -5386,7 +5385,7 @@ xcoff_write_global_symbol (h, inf) bfd_byte *outsym; struct internal_syment isym; union internal_auxent aux; - boolean result; + bfd_boolean result; file_ptr pos; bfd_size_type amt; @@ -5397,13 +5396,13 @@ xcoff_write_global_symbol (h, inf) { h = (struct xcoff_link_hash_entry *) h->root.u.i.link; if (h->root.type == bfd_link_hash_new) - return true; + return TRUE; } /* If this symbol was garbage collected, just skip it. */ if (xcoff_hash_table (finfo->info)->gc && (h->flags & XCOFF_MARK) == 0) - return true; + return TRUE; /* If we need a .loader section entry, write it out. */ if (h->ldsym != NULL) @@ -5625,7 +5624,7 @@ xcoff_write_global_symbol (h, inf) } else { - return false; + return FALSE; } irel->r_type = R_POS; finfo->section_info[oindx].rel_hashes[osec->reloc_count] = NULL; @@ -5645,10 +5644,8 @@ xcoff_write_global_symbol (h, inf) result = bfd_xcoff_put_symbol_name (output_bfd, finfo->strtab, &irsym, h->root.root.string); - if (false == result) - { - return false; - } + if (!result) + return FALSE; irsym.n_value = irel->r_vaddr; irsym.n_scnum = osec->target_index; @@ -5674,7 +5671,7 @@ xcoff_write_global_symbol (h, inf) amt = outsym - finfo->outsyms; if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt) - return false; + return FALSE; obj_raw_syment_count (output_bfd) += (outsym - finfo->outsyms) / bfd_coff_symesz (output_bfd); @@ -5721,7 +5718,7 @@ xcoff_write_global_symbol (h, inf) } else { - return false; + return FALSE; } sec = h->root.u.def.section; @@ -5759,7 +5756,7 @@ xcoff_write_global_symbol (h, inf) bfd_get_filename (output_bfd), esec->output_section->name); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } ldrel.l_rtype = (reloc_size << 8) | R_POS; ldrel.l_rsecnm = oindx; @@ -5821,7 +5818,7 @@ xcoff_write_global_symbol (h, inf) bfd_get_filename (output_bfd), tsec->output_section->name); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } ldrel.l_rtype = (reloc_size << 8) | R_POS; ldrel.l_rsecnm = oindx; @@ -5832,24 +5829,24 @@ xcoff_write_global_symbol (h, inf) if (h->indx >= 0 || finfo->info->strip == strip_all) { BFD_ASSERT (outsym == finfo->outsyms); - return true; + return TRUE; } if (h->indx != -2 && (finfo->info->strip == strip_all || (finfo->info->strip == strip_some && bfd_hash_lookup (finfo->info->keep_hash, h->root.root.string, - false, false) == NULL))) + FALSE, FALSE) == NULL))) { BFD_ASSERT (outsym == finfo->outsyms); - return true; + return TRUE; } if (h->indx != -2 && (h->flags & (XCOFF_REF_REGULAR | XCOFF_DEF_REGULAR)) == 0) { BFD_ASSERT (outsym == finfo->outsyms); - return true; + return TRUE; } memset (&aux, 0, sizeof aux); @@ -5858,10 +5855,8 @@ xcoff_write_global_symbol (h, inf) result = bfd_xcoff_put_symbol_name (output_bfd, finfo->strtab, &isym, h->root.root.string); - if (false == result) - { - return false; - } + if (!result) + return FALSE; if (h->root.type == bfd_link_hash_undefined || h->root.type == bfd_link_hash_undefweak) @@ -5957,16 +5952,16 @@ xcoff_write_global_symbol (h, inf) amt = outsym - finfo->outsyms; if (bfd_seek (output_bfd, pos, SEEK_SET) != 0 || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt) - return false; + return FALSE; obj_raw_syment_count (output_bfd) += (outsym - finfo->outsyms) / bfd_coff_symesz (output_bfd); - return true; + return TRUE; } /* Handle a link order which is supposed to generate a reloc. */ -static boolean +static bfd_boolean xcoff_reloc_link_order (output_bfd, finfo, output_section, link_order) bfd *output_bfd; struct xcoff_final_link_info *finfo; @@ -5985,9 +5980,9 @@ xcoff_reloc_link_order (output_bfd, finf if (link_order->type == bfd_section_reloc_link_order) { /* We need to somehow locate a symbol in the right section. The - symbol must either have a value of zero, or we must adjust - the addend by the value of the symbol. FIXME: Write this - when we need it. The old linker couldn't handle this anyhow. */ + symbol must either have a value of zero, or we must adjust + the addend by the value of the symbol. FIXME: Write this + when we need it. The old linker couldn't handle this anyhow. */ abort (); } @@ -5995,20 +5990,20 @@ xcoff_reloc_link_order (output_bfd, finf if (howto == NULL) { bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } h = ((struct xcoff_link_hash_entry *) bfd_wrapped_link_hash_lookup (output_bfd, finfo->info, link_order->u.reloc.p->u.name, - false, false, true)); + FALSE, FALSE, TRUE)); if (h == NULL) { if (! ((*finfo->info->callbacks->unattached_reloc) (finfo->info, link_order->u.reloc.p->u.name, (bfd *) NULL, (asection *) NULL, (bfd_vma) 0))) - return false; - return true; + return FALSE; + return TRUE; } if (h->root.type == bfd_link_hash_common) @@ -6039,12 +6034,12 @@ xcoff_reloc_link_order (output_bfd, finf bfd_size_type size; bfd_byte *buf; bfd_reloc_status_type rstat; - boolean ok; + bfd_boolean ok; size = bfd_get_reloc_size (howto); buf = (bfd_byte *) bfd_zmalloc (size); if (buf == NULL) - return false; + return FALSE; rstat = _bfd_relocate_contents (howto, output_bfd, addend, buf); switch (rstat) @@ -6061,7 +6056,7 @@ xcoff_reloc_link_order (output_bfd, finf (bfd_vma) 0))) { free (buf); - return false; + return FALSE; } break; } @@ -6069,7 +6064,7 @@ xcoff_reloc_link_order (output_bfd, finf (file_ptr) link_order->offset, size); free (buf); if (! ok) - return false; + return FALSE; } /* Store the reloc information in the right place. It will get @@ -6124,7 +6119,7 @@ xcoff_reloc_link_order (output_bfd, finf (_("%s: loader reloc in unrecognized section `%s'"), bfd_get_filename (output_bfd), secname); bfd_set_error (bfd_error_nonrepresentable_section); - return false; + return FALSE; } } else @@ -6136,7 +6131,7 @@ xcoff_reloc_link_order (output_bfd, finf bfd_get_filename (output_bfd), h->root.root.string); bfd_set_error (bfd_error_bad_value); - return false; + return FALSE; } ldrel.l_symndx = h->ldindx; } @@ -6146,7 +6141,7 @@ xcoff_reloc_link_order (output_bfd, finf bfd_xcoff_swap_ldrel_out (output_bfd, &ldrel, finfo->ldrel); finfo->ldrel += bfd_xcoff_ldrelsz(output_bfd); - return true; + return TRUE; } /* Sort relocs by VMA. This is called via qsort. */ diff -uprN binutils-2.13.90.0.16/bfd/xsym.c binutils-2.13.90.0.18/bfd/xsym.c --- binutils-2.13.90.0.16/bfd/xsym.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/xsym.c Mon Dec 16 12:22:52 2002 @@ -92,11 +92,11 @@ compute_offset (first_page, page_size, e return (page_number * page_size) + page_offset; } -boolean +bfd_boolean bfd_sym_mkobject (abfd) bfd *abfd ATTRIBUTE_UNUSED; { - return (boolean) true; + return 1; } void @@ -109,7 +109,7 @@ bfd_sym_print_symbol (abfd, afile, symbo return; } -boolean +bfd_boolean bfd_sym_valid (abfd) bfd *abfd; { @@ -242,7 +242,7 @@ bfd_sym_read_header (abfd, header, versi return bfd_sym_read_header_v32 (abfd, header); case BFD_SYM_VERSION_3_1: default: - return false; + return FALSE; } } @@ -2423,7 +2423,7 @@ bfd_sym_get_symtab (abfd, sym) int bfd_sym_sizeof_headers (abfd, exec) bfd *abfd ATTRIBUTE_UNUSED; - boolean exec ATTRIBUTE_UNUSED; + bfd_boolean exec ATTRIBUTE_UNUSED; { return 0; } diff -uprN binutils-2.13.90.0.16/bfd/xsym.h binutils-2.13.90.0.18/bfd/xsym.h --- binutils-2.13.90.0.16/bfd/xsym.h Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/bfd/xsym.h Mon Dec 16 12:22:52 2002 @@ -545,157 +545,157 @@ struct bfd_sym_data_struct }; typedef struct bfd_sym_data_struct bfd_sym_data_struct; -extern boolean bfd_sym_mkobject +extern bfd_boolean bfd_sym_mkobject PARAMS ((bfd *)); -extern void bfd_sym_print_symbol +extern void bfd_sym_print_symbol PARAMS ((bfd *, PTR, asymbol *, bfd_print_symbol_type)); -extern boolean bfd_sym_valid +extern bfd_boolean bfd_sym_valid PARAMS ((bfd *)); -extern unsigned char * bfd_sym_read_name_table +extern unsigned char * bfd_sym_read_name_table PARAMS ((bfd *, bfd_sym_header_block *)); -extern void bfd_sym_parse_file_reference_v32 +extern void bfd_sym_parse_file_reference_v32 PARAMS ((unsigned char *, size_t, bfd_sym_file_reference *)); -extern void bfd_sym_parse_disk_table_v32 +extern void bfd_sym_parse_disk_table_v32 PARAMS ((unsigned char *, size_t, bfd_sym_table_info *)); -extern void bfd_sym_parse_header_v32 +extern void bfd_sym_parse_header_v32 PARAMS ((unsigned char *, size_t, bfd_sym_header_block *)); -extern int bfd_sym_read_header_v32 +extern int bfd_sym_read_header_v32 PARAMS ((bfd *, bfd_sym_header_block *)); -extern int bfd_sym_read_header_v34 +extern int bfd_sym_read_header_v34 PARAMS ((bfd *, bfd_sym_header_block *)); -extern int bfd_sym_read_header +extern int bfd_sym_read_header PARAMS ((bfd *, bfd_sym_header_block *, bfd_sym_version)); -extern int bfd_sym_read_version +extern int bfd_sym_read_version PARAMS ((bfd *, bfd_sym_version *)); -extern void bfd_sym_display_table_summary +extern void bfd_sym_display_table_summary PARAMS ((FILE *, bfd_sym_table_info *, const char *)); -extern void bfd_sym_display_header +extern void bfd_sym_display_header PARAMS ((FILE *, bfd_sym_header_block *)); -extern void bfd_sym_parse_resources_table_entry_v32 +extern void bfd_sym_parse_resources_table_entry_v32 PARAMS ((unsigned char *, size_t, bfd_sym_resources_table_entry *)); -extern void bfd_sym_parse_modules_table_entry_v33 +extern void bfd_sym_parse_modules_table_entry_v33 PARAMS ((unsigned char *, size_t, bfd_sym_modules_table_entry *)); -extern void bfd_sym_parse_file_references_table_entry_v32 +extern void bfd_sym_parse_file_references_table_entry_v32 PARAMS ((unsigned char *, size_t, bfd_sym_file_references_table_entry *)); -extern void bfd_sym_parse_contained_modules_table_entry_v32 +extern void bfd_sym_parse_contained_modules_table_entry_v32 PARAMS ((unsigned char *, size_t, bfd_sym_contained_modules_table_entry *)); -extern void bfd_sym_parse_contained_variables_table_entry_v32 +extern void bfd_sym_parse_contained_variables_table_entry_v32 PARAMS ((unsigned char *, size_t, bfd_sym_contained_variables_table_entry *)); -extern void bfd_sym_parse_contained_statements_table_entry_v32 +extern void bfd_sym_parse_contained_statements_table_entry_v32 PARAMS ((unsigned char *, size_t, bfd_sym_contained_statements_table_entry *)); -extern void bfd_sym_parse_contained_labels_table_entry_v32 +extern void bfd_sym_parse_contained_labels_table_entry_v32 PARAMS ((unsigned char *, size_t, bfd_sym_contained_labels_table_entry *)); -extern void bfd_sym_parse_type_table_entry_v32 +extern void bfd_sym_parse_type_table_entry_v32 PARAMS ((unsigned char *, size_t, bfd_sym_type_table_entry *)); -extern int bfd_sym_fetch_resources_table_entry +extern int bfd_sym_fetch_resources_table_entry PARAMS ((bfd *, bfd_sym_resources_table_entry *, unsigned long)); -extern int bfd_sym_fetch_modules_table_entry +extern int bfd_sym_fetch_modules_table_entry PARAMS ((bfd *, bfd_sym_modules_table_entry *, unsigned long)); -extern int bfd_sym_fetch_file_references_table_entry +extern int bfd_sym_fetch_file_references_table_entry PARAMS ((bfd *, bfd_sym_file_references_table_entry *, unsigned long)); -extern int bfd_sym_fetch_contained_modules_table_entry +extern int bfd_sym_fetch_contained_modules_table_entry PARAMS ((bfd *, bfd_sym_contained_modules_table_entry *, unsigned long)); -extern int bfd_sym_fetch_contained_variables_table_entry +extern int bfd_sym_fetch_contained_variables_table_entry PARAMS ((bfd *, bfd_sym_contained_variables_table_entry *, unsigned long)); -extern int bfd_sym_fetch_contained_statements_table_entry +extern int bfd_sym_fetch_contained_statements_table_entry PARAMS ((bfd *, bfd_sym_contained_statements_table_entry *, unsigned long)); -extern int bfd_sym_fetch_contained_labels_table_entry +extern int bfd_sym_fetch_contained_labels_table_entry PARAMS ((bfd *, bfd_sym_contained_labels_table_entry *, unsigned long)); -extern int bfd_sym_fetch_contained_types_table_entry +extern int bfd_sym_fetch_contained_types_table_entry PARAMS ((bfd *, bfd_sym_contained_types_table_entry *, unsigned long)); -extern int bfd_sym_fetch_file_references_index_table_entry +extern int bfd_sym_fetch_file_references_index_table_entry PARAMS ((bfd *, bfd_sym_file_references_index_table_entry *, unsigned long)); -extern int bfd_sym_fetch_constant_pool_entry +extern int bfd_sym_fetch_constant_pool_entry PARAMS ((bfd *, bfd_sym_constant_pool_entry *, unsigned long)); -extern int bfd_sym_fetch_type_table_entry +extern int bfd_sym_fetch_type_table_entry PARAMS ((bfd *, bfd_sym_type_table_entry *, unsigned long)); -extern int bfd_sym_fetch_type_information_table_entry +extern int bfd_sym_fetch_type_information_table_entry PARAMS ((bfd *, bfd_sym_type_information_table_entry *, unsigned long)); -extern int bfd_sym_fetch_type_table_information +extern int bfd_sym_fetch_type_table_information PARAMS ((bfd *, bfd_sym_type_information_table_entry *, unsigned long)); extern const unsigned char * bfd_sym_symbol_name PARAMS ((bfd *, unsigned long)); extern const unsigned char * bfd_sym_module_name PARAMS ((bfd *, unsigned long)); -extern const char * bfd_sym_unparse_storage_kind +extern const char * bfd_sym_unparse_storage_kind PARAMS ((enum bfd_sym_storage_kind)); -extern const char * bfd_sym_unparse_storage_class +extern const char * bfd_sym_unparse_storage_class PARAMS ((enum bfd_sym_storage_class)); -extern const char * bfd_sym_unparse_module_kind +extern const char * bfd_sym_unparse_module_kind PARAMS ((enum bfd_sym_module_kind)); -extern const char * bfd_sym_unparse_symbol_scope +extern const char * bfd_sym_unparse_symbol_scope PARAMS ((enum bfd_sym_symbol_scope)); -extern void bfd_sym_print_file_reference +extern void bfd_sym_print_file_reference PARAMS ((bfd *, FILE *, bfd_sym_file_reference *)); -extern void bfd_sym_print_resources_table_entry +extern void bfd_sym_print_resources_table_entry PARAMS ((bfd *, FILE *, bfd_sym_resources_table_entry *)); -extern void bfd_sym_print_modules_table_entry +extern void bfd_sym_print_modules_table_entry PARAMS ((bfd *, FILE *, bfd_sym_modules_table_entry *)); -extern void bfd_sym_print_file_references_table_entry +extern void bfd_sym_print_file_references_table_entry PARAMS ((bfd *, FILE *, bfd_sym_file_references_table_entry *)); -extern void bfd_sym_print_contained_modules_table_entry +extern void bfd_sym_print_contained_modules_table_entry PARAMS ((bfd *, FILE *, bfd_sym_contained_modules_table_entry *)); -extern void bfd_sym_print_contained_variables_table_entry +extern void bfd_sym_print_contained_variables_table_entry PARAMS ((bfd *, FILE *f, bfd_sym_contained_variables_table_entry *)); -extern void bfd_sym_print_contained_statements_table_entry +extern void bfd_sym_print_contained_statements_table_entry PARAMS ((bfd *, FILE *, bfd_sym_contained_statements_table_entry *)); -extern void bfd_sym_print_contained_labels_table_entry +extern void bfd_sym_print_contained_labels_table_entry PARAMS ((bfd *, FILE *, bfd_sym_contained_labels_table_entry *)); -extern void bfd_sym_print_contained_types_table_entry +extern void bfd_sym_print_contained_types_table_entry PARAMS ((bfd *, FILE *, bfd_sym_contained_types_table_entry *)); -extern const char * bfd_sym_type_operator_name +extern const char * bfd_sym_type_operator_name PARAMS ((unsigned char)); -extern const char * bfd_sym_type_basic_name +extern const char * bfd_sym_type_basic_name PARAMS ((unsigned char)); -extern int bfd_sym_fetch_long +extern int bfd_sym_fetch_long PARAMS ((unsigned char *, unsigned long, unsigned long, unsigned long *, long *)); -extern void bfd_sym_print_type_information +extern void bfd_sym_print_type_information PARAMS ((bfd *, FILE *, unsigned char *, unsigned long, unsigned long, unsigned long *)); -extern void bfd_sym_print_type_information_table_entry +extern void bfd_sym_print_type_information_table_entry PARAMS ((bfd *, FILE *, bfd_sym_type_information_table_entry *)); -extern void bfd_sym_print_file_references_index_table_entry +extern void bfd_sym_print_file_references_index_table_entry PARAMS ((bfd *, FILE *, bfd_sym_file_references_index_table_entry *)); -extern void bfd_sym_print_constant_pool_entry +extern void bfd_sym_print_constant_pool_entry PARAMS ((bfd *, FILE *, bfd_sym_constant_pool_entry *)); -extern unsigned char * bfd_sym_display_name_table_entry +extern unsigned char * bfd_sym_display_name_table_entry PARAMS ((bfd *, FILE *, unsigned char *)); -extern void bfd_sym_display_name_table +extern void bfd_sym_display_name_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_resources_table +extern void bfd_sym_display_resources_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_modules_table +extern void bfd_sym_display_modules_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_file_references_table +extern void bfd_sym_display_file_references_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_contained_modules_table +extern void bfd_sym_display_contained_modules_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_contained_variables_table +extern void bfd_sym_display_contained_variables_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_contained_statements_table +extern void bfd_sym_display_contained_statements_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_contained_labels_table +extern void bfd_sym_display_contained_labels_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_contained_types_table +extern void bfd_sym_display_contained_types_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_file_references_index_table +extern void bfd_sym_display_file_references_index_table PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_constant_pool +extern void bfd_sym_display_constant_pool PARAMS ((bfd *, FILE *)); -extern void bfd_sym_display_type_information_table +extern void bfd_sym_display_type_information_table PARAMS ((bfd *, FILE *)); -extern int bfd_sym_scan +extern int bfd_sym_scan PARAMS ((bfd *, bfd_sym_version, bfd_sym_data_struct *)); -extern const bfd_target * bfd_sym_object_p +extern const bfd_target * bfd_sym_object_p PARAMS ((bfd *)); -extern asymbol * bfd_sym_make_empty_symbol +extern asymbol * bfd_sym_make_empty_symbol PARAMS ((bfd *)); -extern void bfd_sym_get_symbol_info +extern void bfd_sym_get_symbol_info PARAMS ((bfd *, asymbol *, symbol_info *)); -extern long bfd_sym_get_symtab_upper_bound +extern long bfd_sym_get_symtab_upper_bound PARAMS ((bfd *)); -extern long bfd_sym_get_symtab +extern long bfd_sym_get_symtab PARAMS ((bfd *, asymbol **)); -extern int bfd_sym_sizeof_headers - PARAMS ((bfd *, boolean)); +extern int bfd_sym_sizeof_headers + PARAMS ((bfd *, bfd_boolean)); #endif /* __xSYM_H__ */ diff -uprN binutils-2.13.90.0.16/binutils/ChangeLog binutils-2.13.90.0.18/binutils/ChangeLog --- binutils-2.13.90.0.16/binutils/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/binutils/ChangeLog Tue Jan 21 10:21:32 2003 @@ -1,3 +1,151 @@ +2003-01-21 Daniel Berlin + + * readelf.c (display_debug_loc): Skip address base changes. + +2003-01-17 Fabio Alemagna + + * readelf.c (get_osabi_name): Handle ELFOSABI_AROS, ELFOSABI_OPENVMS + and ELFOSABI_NSK. + +2003-01-16 Alan Modra + + * readelf.c: Include elf/ppc64.h. + (dump_relocations ): Use elf_ppc64_reloc_type. + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + +2003-01-02 Ben Elliston + + * readelf.c (guess_is_rela): Handle EM_IQ2000. + (get_machine_name): Likewise. + (dump_relocations): Likewise. + * NEWS: Mention IQ2000 support. + +2003-01-02 Richard Sandiford + + * readelf.c (get_machine_flags): Handle E_MIPS_ARCH_32R2. + +2002-12-30 Chris Demetriou + + * doc/binutils.texi (objdump): Note MIPS HWR (Hardware Register) + changes in MIPS -M options. + +2002-12-30 Dmitry Diky + + * Makefile.am: Add msp430 target. + * Makefile.in: Regenerate. + * readelf.c: Add support for msp430 target. + +2002-12-27 Chris Demetriou + + * doc/binutils.texi (objdump): Document MIPS -M options. + +2002-12-23 Andreas Schwab + + * readelf.c (main): Reset dump request after each file. + +2002-12-23 Nick Clifton + + * nlmconv.c (main): Pass TRUE as third argument to + bfd_arch_get_compatible. + +2002-12-23 Nick Clifton + + * strings.c (isgraphic): Replace definition with STRING_ISGRAPHIC + macro. Handle 'S' encoding, accepting 8-bit characters. + (main): Parse 'S' encoding. + (get_char): Accept 'S' encoding. + (print_strings): Use STRING_ISGRAPHIC. + (usage): Document support of 'S' encoding. + * doc/binutils.texi: Document support of 'S' encoding/ + * NEWS: Mention new feature. + +2002-12-20 Alan Modra + + * README : Don't use libibery's needed_list or + required_list, instead link libiberty/*.o. + +2002-12-19 Kazu Hirata + + * doc/binutils.texi: Fix typos. + +2002-12-14 John David Anglin + + * doc/binutils.texi: Add missing parenthesis. + +2002-12-15 Nick Kelsey + + * objcopy.c: Add --prefix-symbols= option to rename all + symbols by adding the given prefix to the begining of the symbol + name. This is useful to provide name space seperation regardless + of how the object file was created. Added --prefix-sections= + and --prefix-alloc-sections= options to rename all + sections (or all sections with the alloc flag set) by adding the given + prefix to the begining of the symbol name. + * NEWS: Mention this new feature. + * doc/binutils.texi: Document this new feature. + +2002-12-13 Alan Modra + + * dlltool.c (mcore_elf_gen_out_file): Replace all occurrences of + dyn_string_append with dyn_string_append_cstr. + + * emul_aix.c (ar_emul_aix_create): Remove unused function. + +2002-12-10 James Cownie + + * readelf.h (get_TAG_name, get_AT_name, + read_and_display_attr_value): Add support for UPC extensions to + DWARF2 spec. + * NEWS: Mention this new support. + +2002-12-08 Alan Modra + + * NEWS: Mention that bfd no longer declares a "boolean" type. + +2002-12-07 Alan Modra + + * readelf.c (process_program_headers): When setting loadaddr, don't + assume segment size is 4k. Use p_align instead. + (loadaddr): Change from int to long. + (dynamic_addr, dynamic_info, version_info): Likewise. + (process_dynamic_segment ): Likewise. + (process_dynamic_segment): Adjust print format string. + (rela_addr, rela_size): Delete. + (process_relocs): Formatting. + +2002-12-05 Jim Wilson + + * configure.in (OBJDUMP_DEFS): Define SKIP_ZEROES as 16 for IA-64. + * configure: Regenerate. + +2002-12-04 Ian Lance Taylor + + * MAINTAINERS: Change e-mail address back to airs.com. + +2002-12-04 Aldy Hernandez + + * MAINTAINERS: Add self. + +2002-11-30 Alan Modra + + * addr2line.c, ar.c, arsup.c, binemul.c, binemul.h, bucomm.c, bucomm.h, + budbg.h, debug.c, debug.h, dlltool.c, emul_aix.c, ieee.c, nlmconv.c, + nlmconv.h, nlmheader.y, nm.c, objcopy.c, objdump.c, prdbg.c, rdcoff.c, + rddbg.c, readelf.c, rename.c, size.c, stabs.c, strings.c, + unwind-ia64.h, wrstabs.c: Replace boolean with bfd_boolean, true with + TRUE, false with FALSE. Simplify comparisons of bfd_boolean vars + with TRUE/FALSE. Formatting. + +2002-11-29 Jakub Jelinek + + * readelf.c Replace occurrences of Elf32_Internal_* and + Elf64_Internal_* with Elf_Internal_*. + (slurp_rel_relocs): Change Elf_Internal_Rel to Elf_Internal_Rela. + Zero r_addend fields. + (dump_relocations): Remove relas variable, change Elf_Internal_Rel to + Elf_Internal_Rela. + 2002-11-23 Nick Clifton * size.c (usage): Fix typo describing switch for hex format. diff -uprN binutils-2.13.90.0.16/binutils/MAINTAINERS binutils-2.13.90.0.18/binutils/MAINTAINERS --- binutils-2.13.90.0.16/binutils/MAINTAINERS Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/binutils/MAINTAINERS Tue Jan 21 10:21:32 2003 @@ -30,7 +30,7 @@ repository without obtaining approval fi Nick Clifton (head maintainer) Richard Henderson - Ian Taylor + Ian Taylor Jeff Law Jim Wilson DJ Delorie @@ -65,6 +65,7 @@ responsibility among the other maintaine HPPA elf64 Jeff Law [Basic maintainance only] HPPA Dave Anglin IA64 Jim Wilson + IQ2000 Stan Cox i860 Jason Eckhardt ix86 Alan Modra ix86 PE Christopher Faylor @@ -79,6 +80,7 @@ responsibility among the other maintaine MN10300 Eric Christopher MN10300 Alexandre Oliva PPC Geoff Keating + PPC vector ext Aldy Hernandez s390, s390x Martin Schwidefsky SH Jörn Rennecke SH Alexandre Oliva diff -uprN binutils-2.13.90.0.16/binutils/Makefile.am binutils-2.13.90.0.18/binutils/Makefile.am --- binutils-2.13.90.0.16/binutils/Makefile.am Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/binutils/Makefile.am Tue Jan 21 10:21:32 2003 @@ -470,10 +470,11 @@ readelf.o: readelf.c ../bfd/bfd.h $(INCD $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/ip2k.h \ $(INCDIR)/elf/m32r.h $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h \ $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h \ - $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/or32.h \ - $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/s390.h \ - $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h \ - $(INCDIR)/elf/vax.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ + $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/msp430.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h \ + $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h $(INCDIR)/elf/iq2000.h \ bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ unwind-ia64.h rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ diff -uprN binutils-2.13.90.0.16/binutils/Makefile.in binutils-2.13.90.0.18/binutils/Makefile.in --- binutils-2.13.90.0.16/binutils/Makefile.in Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/binutils/Makefile.in Tue Jan 21 10:21:32 2003 @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -442,7 +442,7 @@ configure.in deflex.c defparse.c nlmhead DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best SOURCES = $(nlmconv_SOURCES) $(srconv_SOURCES) $(sysdump_SOURCES) $(coffdump_SOURCES) $(dlltool_SOURCES) $(windres_SOURCES) $(dllwrap_SOURCES) $(size_SOURCES) $(objdump_SOURCES) $(ar_SOURCES) $(strings_SOURCES) $(ranlib_SOURCES) $(objcopy_SOURCES) $(addr2line_SOURCES) $(readelf_SOURCES) $(nm_new_SOURCES) $(strip_new_SOURCES) $(cxxfilt_SOURCES) OBJECTS = $(nlmconv_OBJECTS) $(srconv_OBJECTS) $(sysdump_OBJECTS) $(coffdump_OBJECTS) $(dlltool_OBJECTS) $(windres_OBJECTS) $(dllwrap_OBJECTS) $(size_OBJECTS) $(objdump_OBJECTS) $(ar_OBJECTS) $(strings_OBJECTS) $(ranlib_OBJECTS) $(objcopy_OBJECTS) $(addr2line_OBJECTS) $(readelf_OBJECTS) $(nm_new_OBJECTS) $(strip_new_OBJECTS) $(cxxfilt_OBJECTS) @@ -870,7 +870,7 @@ distclean-generic: -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: - -test -z "arlexldeflexlrclexlarparseharparsecdefparsehdefparsecnlmheaderhnlmheadercrcparsehrcparsec" || rm -f arlexl deflexl rclexl arparseh arparsec defparseh defparsec nlmheaderh nlmheaderc rcparseh rcparsec + -test -z "arlex.cdeflex.crclex.carparse.harparse.cdefparse.hdefparse.cnlmheader.hnlmheader.crcparse.hrcparse.c" || rm -f arlex.c deflex.c rclex.c arparse.h arparse.c defparse.h defparse.c nlmheader.h nlmheader.c rcparse.h rcparse.c mostlyclean-am: mostlyclean-hdr mostlyclean-binPROGRAMS \ mostlyclean-noinstPROGRAMS mostlyclean-compile \ mostlyclean-libtool mostlyclean-tags \ @@ -1198,10 +1198,11 @@ readelf.o: readelf.c ../bfd/bfd.h $(INCD $(INCDIR)/elf/i960.h $(INCDIR)/elf/ia64.h $(INCDIR)/elf/ip2k.h \ $(INCDIR)/elf/m32r.h $(INCDIR)/elf/m68k.h $(INCDIR)/elf/m68hc11.h \ $(INCDIR)/elf/mcore.h $(INCDIR)/elf/mips.h $(INCDIR)/elf/mmix.h \ - $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/or32.h \ - $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/s390.h \ - $(INCDIR)/elf/sh.h $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h \ - $(INCDIR)/elf/vax.h $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h \ + $(INCDIR)/elf/mn10200.h $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/msp430.h \ + $(INCDIR)/elf/or32.h $(INCDIR)/elf/pj.h $(INCDIR)/elf/ppc.h \ + $(INCDIR)/elf/ppc64.h $(INCDIR)/elf/s390.h $(INCDIR)/elf/sh.h \ + $(INCDIR)/elf/sparc.h $(INCDIR)/elf/v850.h $(INCDIR)/elf/vax.h \ + $(INCDIR)/elf/x86-64.h $(INCDIR)/elf/xstormy16.h $(INCDIR)/elf/iq2000.h \ bucomm.h config.h $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h \ unwind-ia64.h rename.o: rename.c ../bfd/bfd.h $(INCDIR)/ansidecl.h \ diff -uprN binutils-2.13.90.0.16/binutils/NEWS binutils-2.13.90.0.18/binutils/NEWS --- binutils-2.13.90.0.16/binutils/NEWS Mon Jul 29 08:19:16 2002 +++ binutils-2.13.90.0.18/binutils/NEWS Tue Jan 21 10:21:32 2003 @@ -1,5 +1,19 @@ -*- text -*- +* Support for Vitesse IQ2000 added by Red Hat. + +* Added 'S' encoding to strings to allow the display of 8-bit characters. + +* Added --prefix-symbols=, --prefix-sections= and + --prefix-alloc-sections= to objcopy. + +* readelf can handle the extensions to the DWARF2 spec used by the Unified + Parallel C compiler. + +* BFD no longer declares a "boolean" type, to avoid clashes with other + headers that declare the same. Users of BFD should replace boolean, + false and true, with int, 0 and 1, or define their own boolean type. + * Support for IP2K added by Denis Chertykov. Changes in 2.13: @@ -47,7 +61,7 @@ Changes in binutils 2.11: * Add --srec-len and --srec-forceS3 command line switch to objcopy. By Luciano Gemme. - + * Support for the MIPS32, by Anders Norlander. * Support for the i860, by Jason Eckhardt. @@ -60,13 +74,13 @@ Changes in binutils 2.10: * New command line switch to objdump --file-start-context which shows the entire file contents up to the source line first encountered for a given - file. + file. * New command line switch to objdump -M (or --disassembler-options) which takes a parameter which can then be interpreted on a per-target basis by the disassembler. Used by ARM targets to select register name sets, ISA, APCS or raw verions. - + * objdump support for -mi386:intel which causes disassembly to be displayed with intel syntax. diff -uprN binutils-2.13.90.0.16/binutils/README binutils-2.13.90.0.18/binutils/README --- binutils-2.13.90.0.16/binutils/README Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.18/binutils/README Tue Jan 21 10:21:32 2003 @@ -100,7 +100,7 @@ ${MAKE} $* all-bfd cd binutils MAKE="${MAKE_PROG}" export MAKE -${MAKE} $* ar_DEPENDENCIES= ar_LDADD='../bfd/*.o `cat ../libiberty/required-list ../libiberty/needed-list | sed -e "s,\([^ ][^ ]*\),../libiberty/\1,g"` `if test -f ../intl/gettext.o; then echo '../intl/*.o'; fi`' ar +${MAKE} $* ar_DEPENDENCIES= ar_LDADD='../bfd/*.o ../libiberty/*.o `if test -f ../intl/gettext.o; then echo '../intl/*.o'; fi`' ar This script will build an ar program in binutils/ar. Move binutils/ar into a directory on your PATH. After doing this, you can run make as diff -uprN binutils-2.13.90.0.16/binutils/addr2line.c binutils-2.13.90.0.18/binutils/addr2line.c --- binutils-2.13.90.0.16/binutils/addr2line.c Mon Oct 7 23:08:00 2002 +++ binutils-2.13.90.0.18/binutils/addr2line.c Mon Dec 16 12:22:52 2002 @@ -37,9 +37,9 @@ #include "bucomm.h" #include "budemang.h" -static boolean with_functions; /* -f, show function names. */ -static boolean do_demangle; /* -C, demangle names. */ -static boolean base_names; /* -s, strip directory names. */ +static bfd_boolean with_functions; /* -f, show function names. */ +static bfd_boolean do_demangle; /* -C, demangle names. */ +static bfd_boolean base_names; /* -s, strip directory names. */ static int naddr; /* Number of addresses to process. */ static char **addr; /* Hex addresses to process. */ @@ -109,9 +109,9 @@ slurp_symtab (abfd) if ((bfd_get_file_flags (abfd) & HAS_SYMS) == 0) return; - symcount = bfd_read_minisymbols (abfd, false, (PTR) &syms, &size); + symcount = bfd_read_minisymbols (abfd, FALSE, (PTR) &syms, &size); if (symcount == 0) - symcount = bfd_read_minisymbols (abfd, true /* dynamic */, (PTR) &syms, &size); + symcount = bfd_read_minisymbols (abfd, TRUE /* dynamic */, (PTR) &syms, &size); if (symcount < 0) bfd_fatal (bfd_get_filename (abfd)); @@ -124,7 +124,7 @@ static bfd_vma pc; static const char *filename; static const char *functionname; static unsigned int line; -static boolean found; +static bfd_boolean found; /* Look for an address in a section. This is called via bfd_map_over_sections. */ @@ -183,7 +183,7 @@ translate_addresses (abfd) pc = bfd_scan_vma (*addr++, NULL, 16); } - found = false; + found = FALSE; bfd_map_over_sections (abfd, find_address_in_section, (PTR) NULL); if (! found) @@ -315,7 +315,7 @@ main (argc, argv) target = optarg; break; case 'C': - do_demangle = true; + do_demangle = TRUE; if (optarg != NULL) style = optarg; break; @@ -323,10 +323,10 @@ main (argc, argv) file_name = optarg; break; case 's': - base_names = true; + base_names = TRUE; break; case 'f': - with_functions = true; + with_functions = TRUE; break; case 'v': case 'V': diff -uprN binutils-2.13.90.0.16/binutils/ar.c binutils-2.13.90.0.18/binutils/ar.c --- binutils-2.13.90.0.16/binutils/ar.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/binutils/ar.c Mon Dec 16 12:22:52 2002 @@ -86,7 +86,7 @@ static void move_members PARAMS ((bfd *, char **files_to_move)); static void -replace_members PARAMS ((bfd *, char **files_to_replace, boolean quick)); +replace_members PARAMS ((bfd *, char **files_to_replace, bfd_boolean quick)); static void print_descr PARAMS ((bfd * abfd)); @@ -150,18 +150,18 @@ enum pos static bfd ** get_pos_bfd PARAMS ((bfd **, enum pos, const char *)); -/* For extract/delete only. If COUNTED_NAME_MODE is true, we only +/* For extract/delete only. If COUNTED_NAME_MODE is TRUE, we only extract the COUNTED_NAME_COUNTER instance of that name. */ -static boolean counted_name_mode = 0; +static bfd_boolean counted_name_mode = 0; static int counted_name_counter = 0; /* Whether to truncate names of files stored in the archive. */ -static boolean ar_truncate = false; +static bfd_boolean ar_truncate = FALSE; /* Whether to use a full file name match when searching an archive. This is convenient for archives created by the Microsoft lib program. */ -static boolean full_pathname = false; +static bfd_boolean full_pathname = FALSE; int interactive = 0; @@ -204,7 +204,7 @@ map_over_members (arch, function, files, for (; count > 0; files++, count--) { - boolean found = false; + bfd_boolean found = FALSE; match_count = 0; for (head = arch->next; head; head = head->next) @@ -229,7 +229,7 @@ map_over_members (arch, function, files, continue; } - found = true; + found = TRUE; function (head); } } @@ -239,7 +239,7 @@ map_over_members (arch, function, files, } } -boolean operation_alters_arch = false; +bfd_boolean operation_alters_arch = FALSE; static void usage (help) @@ -455,7 +455,7 @@ main (argc, argv) if (is_ranlib) { - boolean touch = false; + bfd_boolean touch = FALSE; if (argc < 2 || strcmp (argv[1], "--help") == 0 @@ -470,7 +470,7 @@ main (argc, argv) if (strcmp (argv[1], "-t") == 0) { ++arg_index; - touch = true; + touch = TRUE; } while (arg_index < argc) { @@ -514,22 +514,22 @@ main (argc, argv) { case 'd': operation = delete; - operation_alters_arch = true; + operation_alters_arch = TRUE; break; case 'm': operation = move; - operation_alters_arch = true; + operation_alters_arch = TRUE; break; case 'p': operation = print_files; break; case 'q': operation = quick_append; - operation_alters_arch = true; + operation_alters_arch = TRUE; break; case 'r': operation = replace; - operation_alters_arch = true; + operation_alters_arch = TRUE; break; case 't': operation = print_table; @@ -547,7 +547,7 @@ main (argc, argv) preserve_dates = 1; break; case 'V': - show_version = true; + show_version = TRUE; break; case 's': write_armap = 1; @@ -574,13 +574,13 @@ main (argc, argv) mri_mode = 1; break; case 'N': - counted_name_mode = true; + counted_name_mode = TRUE; break; case 'f': - ar_truncate = true; + ar_truncate = TRUE; break; case 'P': - full_pathname = true; + full_pathname = TRUE; break; default: /* xgettext:c-format */ @@ -975,7 +975,7 @@ do_quick_append (archive_filename, files long tocopy, thistime; bfd *temp; struct stat sbuf; - boolean newfile = false; + bfd_boolean newfile = FALSE; bfd_set_error (bfd_error_no_error); if (stat (archive_filename, &sbuf) != 0) @@ -998,7 +998,7 @@ do_quick_append (archive_filename, files bfd_fatal (archive_filename); #endif - newfile = true; + newfile = TRUE; } ofile = fopen (archive_filename, FOPEN_AUB); @@ -1013,9 +1013,9 @@ do_quick_append (archive_filename, files { bfd_fatal (archive_filename); } - if (newfile == false) + if (!newfile) { - if (bfd_check_format (temp, bfd_archive) != true) + if (!bfd_check_format (temp, bfd_archive)) /* xgettext:c-format */ fatal (_("%s is not an archive"), archive_filename); } @@ -1113,7 +1113,7 @@ write_archive (iarch) obfd->flags |= BFD_TRADITIONAL_FORMAT; } - if (bfd_set_archive_head (obfd, contents_head) != true) + if (!bfd_set_archive_head (obfd, contents_head)) bfd_fatal (old_name); if (!bfd_close (obfd)) @@ -1178,8 +1178,8 @@ delete_members (arch, files_to_delete) char **files_to_delete; { bfd **current_ptr_ptr; - boolean found; - boolean something_changed = false; + bfd_boolean found; + bfd_boolean something_changed = FALSE; int match_count; for (; *files_to_delete != NULL; ++files_to_delete) @@ -1192,12 +1192,12 @@ delete_members (arch, files_to_delete) if (!strcmp (*files_to_delete, "__.SYMDEF")) { - arch->has_armap = false; + arch->has_armap = FALSE; write_armap = -1; continue; } - found = false; + found = FALSE; match_count = 0; current_ptr_ptr = &(arch->next); while (*current_ptr_ptr) @@ -1214,8 +1214,8 @@ delete_members (arch, files_to_delete) } else { - found = true; - something_changed = true; + found = TRUE; + something_changed = TRUE; if (verbose) printf ("d - %s\n", *files_to_delete); @@ -1227,7 +1227,7 @@ delete_members (arch, files_to_delete) current_ptr_ptr = &((*current_ptr_ptr)->next); } - if (verbose && found == false) + if (verbose && !found) { /* xgettext:c-format */ printf (_("No member named `%s'\n"), *files_to_delete); @@ -1236,7 +1236,7 @@ delete_members (arch, files_to_delete) ; } - if (something_changed == true) + if (something_changed) write_archive (arch); else output_filename = NULL; @@ -1296,9 +1296,9 @@ static void replace_members (arch, files_to_move, quick) bfd *arch; char **files_to_move; - boolean quick; + bfd_boolean quick; { - boolean changed = false; + bfd_boolean changed = FALSE; bfd **after_bfd; /* New entries go after this one */ bfd *current; bfd **current_ptr; @@ -1344,7 +1344,7 @@ replace_members (arch, files_to_move, qu { /* Snip out this entry from the chain. */ *current_ptr = (*current_ptr)->next; - changed = true; + changed = TRUE; } goto next_file; @@ -1356,7 +1356,7 @@ replace_members (arch, files_to_move, qu /* Add to the end of the archive. */ after_bfd = get_pos_bfd (&arch->next, pos_end, NULL); if (ar_emul_append (after_bfd, *files_to_move, verbose)) - changed = true; + changed = TRUE; next_file:; diff -uprN binutils-2.13.90.0.16/binutils/arsup.c binutils-2.13.90.0.18/binutils/arsup.c --- binutils-2.13.90.0.16/binutils/arsup.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/binutils/arsup.c Mon Dec 16 12:22:52 2002 @@ -69,7 +69,7 @@ map_over_list (arch, function, list) want to hack multiple references. */ for (ptr = list; ptr; ptr = ptr->next) { - boolean found = false; + bfd_boolean found = FALSE; bfd *prev = arch; for (head = arch->next; head; head = head->next) @@ -77,7 +77,7 @@ map_over_list (arch, function, list) if (head->filename != NULL && FILENAME_CMP (ptr->name, head->filename) == 0) { - found = true; + found = TRUE; function (head, prev); } prev = head; @@ -192,7 +192,7 @@ ar_open (name, t) return; } - if (bfd_check_format(ibfd, bfd_archive) != true) + if (!bfd_check_format(ibfd, bfd_archive)) { fprintf (stderr, _("%s: file %s is not an archive\n"), diff -uprN binutils-2.13.90.0.16/binutils/binemul.c binutils-2.13.90.0.18/binutils/binemul.c --- binutils-2.13.90.0.16/binutils/binemul.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/binutils/binemul.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* Binutils emulation layer. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. Written by Tom Rix, Redhat. This file is part of GNU Binutils. @@ -39,23 +39,23 @@ ar_emul_default_usage (fp) fprintf (fp, _(" No emulation specific options\n")); } -boolean +bfd_boolean ar_emul_append (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { if (bin_dummy_emulation.ar_append) return bin_dummy_emulation.ar_append (after_bfd, file_name, verbose); - return false; + return FALSE; } -boolean +bfd_boolean ar_emul_default_append (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { bfd *temp; @@ -67,26 +67,26 @@ ar_emul_default_append (after_bfd, file_ (*after_bfd)->next = temp; - return true; + return TRUE; } -boolean +bfd_boolean ar_emul_replace (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { if (bin_dummy_emulation.ar_replace) return bin_dummy_emulation.ar_replace (after_bfd, file_name, verbose); - return false; + return FALSE; } -boolean +bfd_boolean ar_emul_default_replace (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { bfd *temp; @@ -98,10 +98,10 @@ ar_emul_default_replace (after_bfd, file (*after_bfd)->next = temp; - return true; + return TRUE; } -boolean +bfd_boolean ar_emul_create (abfd_out, archive_file_name, file_name) bfd **abfd_out; char *archive_file_name; @@ -111,10 +111,10 @@ ar_emul_create (abfd_out, archive_file_n return bin_dummy_emulation.ar_create (abfd_out, archive_file_name, file_name); - return false; + return FALSE; } -boolean +bfd_boolean ar_emul_default_create (abfd_out, archive_file_name, file_name) bfd **abfd_out; char *archive_file_name; @@ -144,22 +144,22 @@ ar_emul_default_create (abfd_out, archiv || ! bfd_close (*abfd_out)) bfd_fatal (archive_file_name); - return true; + return TRUE; } -boolean +bfd_boolean ar_emul_parse_arg (arg) char *arg; { if (bin_dummy_emulation.ar_parse_arg) return bin_dummy_emulation.ar_parse_arg (arg); - return false; + return FALSE; } -boolean +bfd_boolean ar_emul_default_parse_arg (arg) char *arg ATTRIBUTE_UNUSED; { - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/binutils/binemul.h binutils-2.13.90.0.18/binutils/binemul.h --- binutils-2.13.90.0.16/binutils/binemul.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/binutils/binemul.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* Binutils emulation layer. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. Written by Tom Rix, Redhat. This file is part of GNU Binutils. @@ -24,16 +24,26 @@ #include "bfd.h" #include "bucomm.h" -extern void ar_emul_usage PARAMS ((FILE *)); -extern void ar_emul_default_usage PARAMS ((FILE *)); -extern boolean ar_emul_append PARAMS ((bfd **, char *, boolean)); -extern boolean ar_emul_default_append PARAMS ((bfd **, char *, boolean)); -extern boolean ar_emul_replace PARAMS ((bfd **, char *, boolean)); -extern boolean ar_emul_default_replace PARAMS ((bfd **, char *, boolean)); -extern boolean ar_emul_create PARAMS ((bfd **, char *, char *)); -extern boolean ar_emul_default_create PARAMS ((bfd **, char *, char *)); -extern boolean ar_emul_parse_arg PARAMS ((char *)); -extern boolean ar_emul_default_parse_arg PARAMS ((char *)); +extern void ar_emul_usage + PARAMS ((FILE *)); +extern void ar_emul_default_usage + PARAMS ((FILE *)); +extern bfd_boolean ar_emul_append + PARAMS ((bfd **, char *, bfd_boolean)); +extern bfd_boolean ar_emul_default_append + PARAMS ((bfd **, char *, bfd_boolean)); +extern bfd_boolean ar_emul_replace + PARAMS ((bfd **, char *, bfd_boolean)); +extern bfd_boolean ar_emul_default_replace + PARAMS ((bfd **, char *, bfd_boolean)); +extern bfd_boolean ar_emul_create + PARAMS ((bfd **, char *, char *)); +extern bfd_boolean ar_emul_default_create + PARAMS ((bfd **, char *, char *)); +extern bfd_boolean ar_emul_parse_arg + PARAMS ((char *)); +extern bfd_boolean ar_emul_default_parse_arg + PARAMS ((char *)); /* Macros for common output. */ @@ -53,11 +63,11 @@ extern boolean ar_emul_default_parse_arg typedef struct bin_emulation_xfer_struct { /* Print out the extra options. */ - void (* ar_usage) PARAMS ((FILE *fp)); - boolean (* ar_append) PARAMS ((bfd **, char *, boolean)); - boolean (* ar_replace) PARAMS ((bfd **, char *, boolean)); - boolean (* ar_create) PARAMS ((bfd **, char *, char *)); - boolean (* ar_parse_arg) PARAMS ((char *)); + void (* ar_usage) PARAMS ((FILE *fp)); + bfd_boolean (* ar_append) PARAMS ((bfd **, char *, bfd_boolean)); + bfd_boolean (* ar_replace) PARAMS ((bfd **, char *, bfd_boolean)); + bfd_boolean (* ar_create) PARAMS ((bfd **, char *, char *)); + bfd_boolean (* ar_parse_arg) PARAMS ((char *)); } bin_emulation_xfer_type; diff -uprN binutils-2.13.90.0.16/binutils/bucomm.c binutils-2.13.90.0.18/binutils/bucomm.c --- binutils-2.13.90.0.16/binutils/bucomm.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/binutils/bucomm.c Mon Dec 16 12:22:52 2002 @@ -107,7 +107,7 @@ set_default_bfd_target () target, bfd_errmsg (bfd_get_error ())); } -/* After a false return from bfd_check_format_matches with +/* After a FALSE return from bfd_check_format_matches with bfd_get_error () == bfd_error_file_ambiguously_recognized, print the possible matching targets. */ @@ -169,7 +169,7 @@ void print_arelt_descr (file, abfd, verbose) FILE *file; bfd *abfd; - boolean verbose; + bfd_boolean verbose; { struct stat buf; diff -uprN binutils-2.13.90.0.16/binutils/bucomm.h binutils-2.13.90.0.18/binutils/bucomm.h --- binutils-2.13.90.0.16/binutils/bucomm.h Sat Aug 4 19:52:15 2001 +++ binutils-2.13.90.0.18/binutils/bucomm.h Mon Dec 16 12:22:52 2002 @@ -1,6 +1,6 @@ /* bucomm.h -- binutils common include file. - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 - Free Software Foundation, Inc. + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, + 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -148,46 +148,64 @@ void *alloca (); #endif /* bucomm.c */ -void bfd_nonfatal PARAMS ((const char *)); +void bfd_nonfatal + PARAMS ((const char *)); -void bfd_fatal PARAMS ((const char *)) ATTRIBUTE_NORETURN; +void bfd_fatal + PARAMS ((const char *)) ATTRIBUTE_NORETURN; -void report PARAMS ((const char *, va_list)); +void report + PARAMS ((const char *, va_list)); -void fatal PARAMS ((const char *, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; +void fatal + PARAMS ((const char *, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; -void non_fatal PARAMS ((const char *, ...)) ATTRIBUTE_PRINTF_1; +void non_fatal + PARAMS ((const char *, ...)) ATTRIBUTE_PRINTF_1; -void set_default_bfd_target PARAMS ((void)); +void set_default_bfd_target + PARAMS ((void)); -void list_matching_formats PARAMS ((char **p)); +void list_matching_formats + PARAMS ((char **p)); -void list_supported_targets PARAMS ((const char *, FILE *)); +void list_supported_targets + PARAMS ((const char *, FILE *)); -void list_supported_architectures PARAMS ((const char *, FILE *)); +void list_supported_architectures + PARAMS ((const char *, FILE *)); -void print_arelt_descr PARAMS ((FILE *file, bfd *abfd, boolean verbose)); +void print_arelt_descr + PARAMS ((FILE *file, bfd *abfd, bfd_boolean verbose)); -char *make_tempname PARAMS ((char *)); +char *make_tempname + PARAMS ((char *)); -bfd_vma parse_vma PARAMS ((const char *, const char *)); +bfd_vma parse_vma + PARAMS ((const char *, const char *)); extern char *program_name; /* filemode.c */ -void mode_string PARAMS ((unsigned long mode, char *buf)); +void mode_string + PARAMS ((unsigned long mode, char *buf)); /* version.c */ -extern void print_version PARAMS ((const char *)); +extern void print_version + PARAMS ((const char *)); /* rename.c */ -extern void set_times PARAMS ((const char *, const struct stat *)); +extern void set_times + PARAMS ((const char *, const struct stat *)); -extern int smart_rename PARAMS ((const char *, const char *, int)); +extern int smart_rename + PARAMS ((const char *, const char *, int)); /* libiberty */ -PTR xmalloc PARAMS ((size_t)); +PTR xmalloc + PARAMS ((size_t)); -PTR xrealloc PARAMS ((PTR, size_t)); +PTR xrealloc + PARAMS ((PTR, size_t)); #endif /* _BUCOMM_H */ diff -uprN binutils-2.13.90.0.16/binutils/budbg.h binutils-2.13.90.0.18/binutils/budbg.h --- binutils-2.13.90.0.16/binutils/budbg.h Thu Mar 15 14:51:44 2001 +++ binutils-2.13.90.0.18/binutils/budbg.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* budbg.c -- Interfaces to the generic debugging information routines. - Copyright 1995, 1996 Free Software Foundation, Inc. + Copyright 1995, 1996, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -26,33 +26,40 @@ /* Routine used to read generic debugging information. */ -extern PTR read_debugging_info PARAMS ((bfd *, asymbol **, long)); +extern PTR read_debugging_info + PARAMS ((bfd *, asymbol **, long)); /* Routine used to print generic debugging information. */ -extern boolean print_debugging_info PARAMS ((FILE *, PTR)); +extern bfd_boolean print_debugging_info + PARAMS ((FILE *, PTR)); /* Routines used to read and write stabs information. */ -extern PTR start_stab PARAMS ((PTR, bfd *, boolean, asymbol **, long)); +extern PTR start_stab + PARAMS ((PTR, bfd *, bfd_boolean, asymbol **, long)); -extern boolean finish_stab PARAMS ((PTR, PTR)); +extern bfd_boolean finish_stab + PARAMS ((PTR, PTR)); -extern boolean parse_stab PARAMS ((PTR, PTR, int, int, bfd_vma, const char *)); +extern bfd_boolean parse_stab + PARAMS ((PTR, PTR, int, int, bfd_vma, const char *)); -extern boolean write_stabs_in_sections_debugging_info +extern bfd_boolean write_stabs_in_sections_debugging_info PARAMS ((bfd *, PTR, bfd_byte **, bfd_size_type *, bfd_byte **, bfd_size_type *)); /* Routines used to read and write IEEE debugging information. */ -extern boolean parse_ieee +extern bfd_boolean parse_ieee PARAMS ((PTR, bfd *, const bfd_byte *, bfd_size_type)); -extern boolean write_ieee_debugging_info PARAMS ((bfd *, PTR)); +extern bfd_boolean write_ieee_debugging_info + PARAMS ((bfd *, PTR)); /* Routine used to read COFF debugging information. */ -extern boolean parse_coff PARAMS ((bfd *, asymbol **, long, PTR)); +extern bfd_boolean parse_coff + PARAMS ((bfd *, asymbol **, long, PTR)); #endif diff -uprN binutils-2.13.90.0.16/binutils/configure binutils-2.13.90.0.18/binutils/configure --- binutils-2.13.90.0.16/binutils/configure Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/binutils/configure Mon Dec 16 12:22:52 2002 @@ -5668,6 +5668,9 @@ do c4x-*-* | tic4x-*-*) OBJDUMP_DEFS="$OBJDUMP_DEFS -DSKIP_ZEROES=32" ;; + ia64-*-*) + OBJDUMP_DEFS="$OBJDUMP_DEFS -DSKIP_ZEROES=16" + ;; esac fi done diff -uprN binutils-2.13.90.0.16/binutils/configure.in binutils-2.13.90.0.18/binutils/configure.in --- binutils-2.13.90.0.16/binutils/configure.in Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/binutils/configure.in Mon Dec 16 12:22:52 2002 @@ -298,6 +298,9 @@ changequote([,])dnl c4x-*-* | tic4x-*-*) OBJDUMP_DEFS="$OBJDUMP_DEFS -DSKIP_ZEROES=32" ;; + ia64-*-*) + OBJDUMP_DEFS="$OBJDUMP_DEFS -DSKIP_ZEROES=16" + ;; esac fi done diff -uprN binutils-2.13.90.0.16/binutils/debug.c binutils-2.13.90.0.18/binutils/debug.c --- binutils-2.13.90.0.16/binutils/debug.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/binutils/debug.c Mon Dec 16 12:22:52 2002 @@ -111,7 +111,7 @@ struct debug_type struct debug_indirect_type *kindirect; /* DEBUG_KIND_INT. */ /* Whether the integer is unsigned. */ - boolean kint; + bfd_boolean kint; /* DEBUG_KIND_STRUCT, DEBUG_KIND_UNION, DEBUG_KIND_CLASS, DEBUG_KIND_UNION_CLASS. */ struct debug_class_type *kclass; @@ -194,7 +194,7 @@ struct debug_function_type /* NULL terminated array of argument types. */ debug_type *arg_types; /* Whether the function takes a variable number of arguments. */ - boolean varargs; + bfd_boolean varargs; }; /* Information kept for a range. */ @@ -222,7 +222,7 @@ struct debug_array_type /* Upper bound. */ bfd_signed_vma upper; /* Whether this array is really a string. */ - boolean stringp; + bfd_boolean stringp; }; /* Information kept for a set. */ @@ -232,7 +232,7 @@ struct debug_set_type /* Base type. */ debug_type type; /* Whether this set is really a bitstring. */ - boolean bitstringp; + bfd_boolean bitstringp; }; /* Information kept for an offset type (a based pointer). */ @@ -256,7 +256,7 @@ struct debug_method_type /* A NULL terminated array of argument types. */ debug_type *arg_types; /* Whether the method takes a variable number of arguments. */ - boolean varargs; + bfd_boolean varargs; }; /* Information kept for a named type. */ @@ -280,7 +280,7 @@ struct debug_field /* Visibility of the field. */ enum debug_visibility visibility; /* Whether this is a static member. */ - boolean static_member; + bfd_boolean static_member; union { /* If static_member is false. */ @@ -308,7 +308,7 @@ struct debug_baseclass /* Bit position of the base class in the object. */ unsigned int bitpos; /* Whether the base class is virtual. */ - boolean virtual; + bfd_boolean virtual; /* Visibility of the base class. */ enum debug_visibility visibility; }; @@ -335,9 +335,9 @@ struct debug_method_variant /* The visibility of the function. */ enum debug_visibility visibility; /* Whether the function is const. */ - boolean constp; + bfd_boolean constp; /* Whether the function is volatile. */ - boolean volatilep; + bfd_boolean volatilep; /* The offset to the function in the virtual function table. */ bfd_vma voffset; /* If voffset is VOFFSET_STATIC_METHOD, this is a static method. */ @@ -554,7 +554,8 @@ struct debug_type_real_list /* Local functions. */ -static void debug_error PARAMS ((const char *)); +static void debug_error + PARAMS ((const char *)); static struct debug_name *debug_add_to_namespace PARAMS ((struct debug_handle *, struct debug_namespace **, const char *, enum debug_object_kind, enum debug_object_linkage)); @@ -565,29 +566,29 @@ static struct debug_type *debug_make_typ PARAMS ((struct debug_handle *, enum debug_type_kind, unsigned int)); static struct debug_type *debug_get_real_type PARAMS ((PTR, debug_type, struct debug_type_real_list *)); -static boolean debug_write_name +static bfd_boolean debug_write_name PARAMS ((struct debug_handle *, const struct debug_write_fns *, PTR, struct debug_name *)); -static boolean debug_write_type +static bfd_boolean debug_write_type PARAMS ((struct debug_handle *, const struct debug_write_fns *, PTR, struct debug_type *, struct debug_name *)); -static boolean debug_write_class_type +static bfd_boolean debug_write_class_type PARAMS ((struct debug_handle *, const struct debug_write_fns *, PTR, struct debug_type *, const char *)); -static boolean debug_write_function +static bfd_boolean debug_write_function PARAMS ((struct debug_handle *, const struct debug_write_fns *, PTR, const char *, enum debug_object_linkage, struct debug_function *)); -static boolean debug_write_block +static bfd_boolean debug_write_block PARAMS ((struct debug_handle *, const struct debug_write_fns *, PTR, struct debug_block *)); -static boolean debug_write_linenos +static bfd_boolean debug_write_linenos PARAMS ((struct debug_handle *, const struct debug_write_fns *, PTR, bfd_vma)); -static boolean debug_set_class_id +static bfd_boolean debug_set_class_id PARAMS ((struct debug_handle *, const char *, struct debug_type *)); -static boolean debug_type_samep +static bfd_boolean debug_type_samep PARAMS ((struct debug_handle *, struct debug_type *, struct debug_type *)); -static boolean debug_class_type_samep +static bfd_boolean debug_class_type_samep PARAMS ((struct debug_handle *, struct debug_type *, struct debug_type *)); /* Issue an error message. */ @@ -677,7 +678,7 @@ debug_init () /* Set the source filename. This implicitly starts a new compilation unit. */ -boolean +bfd_boolean debug_set_filename (handle, name) PTR handle; const char *name; @@ -714,13 +715,13 @@ debug_set_filename (handle, name) info->current_block = NULL; info->current_lineno = NULL; - return true; + return TRUE; } /* Change source files to the given file name. This is used for include files in a single compilation unit. */ -boolean +bfd_boolean debug_start_source (handle, name) PTR handle; const char *name; @@ -734,7 +735,7 @@ debug_start_source (handle, name) if (info->current_unit == NULL) { debug_error (_("debug_start_source: no debug_set_filename call")); - return false; + return FALSE; } for (f = info->current_unit->files; f != NULL; f = f->next) @@ -744,7 +745,7 @@ debug_start_source (handle, name) && strcmp (f->filename, name) == 0) { info->current_file = f; - return true; + return TRUE; } } @@ -761,7 +762,7 @@ debug_start_source (handle, name) info->current_file = f; - return true; + return TRUE; } /* Record a function definition. This implicitly starts a function @@ -772,12 +773,12 @@ debug_start_source (handle, name) debug_record_parameter. FIXME: There is no way to specify nested functions. */ -boolean +bfd_boolean debug_record_function (handle, name, return_type, global, addr) PTR handle; const char *name; debug_type return_type; - boolean global; + bfd_boolean global; bfd_vma addr; { struct debug_handle *info = (struct debug_handle *) handle; @@ -788,12 +789,12 @@ debug_record_function (handle, name, ret if (name == NULL) name = ""; if (return_type == NULL) - return false; + return FALSE; if (info->current_unit == NULL) { debug_error (_("debug_record_function: no debug_set_filename call")); - return false; + return FALSE; } f = (struct debug_function *) xmalloc (sizeof *f); @@ -822,16 +823,16 @@ debug_record_function (handle, name, ret ? DEBUG_LINKAGE_GLOBAL : DEBUG_LINKAGE_STATIC)); if (n == NULL) - return false; + return FALSE; n->u.function = f; - return true; + return TRUE; } /* Record a parameter for the current function. */ -boolean +bfd_boolean debug_record_parameter (handle, name, type, kind, val) PTR handle; const char *name; @@ -843,13 +844,13 @@ debug_record_parameter (handle, name, ty struct debug_parameter *p, **pp; if (name == NULL || type == NULL) - return false; + return FALSE; if (info->current_unit == NULL || info->current_function == NULL) { debug_error (_("debug_record_parameter: no current function")); - return false; + return FALSE; } p = (struct debug_parameter *) xmalloc (sizeof *p); @@ -866,12 +867,12 @@ debug_record_parameter (handle, name, ty ; *pp = p; - return true; + return TRUE; } /* End a function. FIXME: This should handle function nesting. */ -boolean +bfd_boolean debug_end_function (handle, addr) PTR handle; bfd_vma addr; @@ -883,13 +884,13 @@ debug_end_function (handle, addr) || info->current_function == NULL) { debug_error (_("debug_end_function: no current function")); - return false; + return FALSE; } if (info->current_block->parent != NULL) { debug_error (_("debug_end_function: some blocks were not closed")); - return false; + return FALSE; } info->current_block->end = addr; @@ -897,7 +898,7 @@ debug_end_function (handle, addr) info->current_function = NULL; info->current_block = NULL; - return true; + return TRUE; } /* Start a block in a function. All local information will be @@ -905,7 +906,7 @@ debug_end_function (handle, addr) debug_start_block and debug_end_block may be nested. The bfd_vma argument is the address at which this block starts. */ -boolean +bfd_boolean debug_start_block (handle, addr) PTR handle; bfd_vma addr; @@ -919,7 +920,7 @@ debug_start_block (handle, addr) || info->current_block == NULL) { debug_error (_("debug_start_block: no current block")); - return false; + return FALSE; } b = (struct debug_block *) xmalloc (sizeof *b); @@ -938,14 +939,14 @@ debug_start_block (handle, addr) info->current_block = b; - return true; + return TRUE; } /* Finish a block in a function. This matches the call to debug_start_block. The argument is the address at which this block ends. */ -boolean +bfd_boolean debug_end_block (handle, addr) PTR handle; bfd_vma addr; @@ -957,27 +958,27 @@ debug_end_block (handle, addr) || info->current_block == NULL) { debug_error (_("debug_end_block: no current block")); - return false; + return FALSE; } parent = info->current_block->parent; if (parent == NULL) { debug_error (_("debug_end_block: attempt to close top level block")); - return false; + return FALSE; } info->current_block->end = addr; info->current_block = parent; - return true; + return TRUE; } /* Associate a line number in the current source file and function with a given address. */ -boolean +bfd_boolean debug_record_line (handle, lineno, addr) PTR handle; unsigned long lineno; @@ -990,7 +991,7 @@ debug_record_line (handle, lineno, addr) if (info->current_unit == NULL) { debug_error (_("debug_record_line: no current unit")); - return false; + return FALSE; } l = info->current_lineno; @@ -1002,7 +1003,7 @@ debug_record_line (handle, lineno, addr) { l->linenos[i] = lineno; l->addrs[i] = addr; - return true; + return TRUE; } } } @@ -1031,37 +1032,37 @@ debug_record_line (handle, lineno, addr) info->current_lineno = l; - return true; + return TRUE; } /* Start a named common block. This is a block of variables that may move in memory. */ -boolean +bfd_boolean debug_start_common_block (handle, name) PTR handle ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; { /* FIXME */ debug_error (_("debug_start_common_block: not implemented")); - return false; + return FALSE; } /* End a named common block. */ -boolean +bfd_boolean debug_end_common_block (handle, name) PTR handle ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; { /* FIXME */ debug_error (_("debug_end_common_block: not implemented")); - return false; + return FALSE; } /* Record a named integer constant. */ -boolean +bfd_boolean debug_record_int_const (handle, name, val) PTR handle; const char *name; @@ -1071,21 +1072,21 @@ debug_record_int_const (handle, name, va struct debug_name *n; if (name == NULL) - return false; + return FALSE; n = debug_add_to_current_namespace (info, name, DEBUG_OBJECT_INT_CONSTANT, DEBUG_LINKAGE_NONE); if (n == NULL) - return false; + return FALSE; n->u.int_constant = val; - return true; + return TRUE; } /* Record a named floating point constant. */ -boolean +bfd_boolean debug_record_float_const (handle, name, val) PTR handle; const char *name; @@ -1095,21 +1096,21 @@ debug_record_float_const (handle, name, struct debug_name *n; if (name == NULL) - return false; + return FALSE; n = debug_add_to_current_namespace (info, name, DEBUG_OBJECT_FLOAT_CONSTANT, DEBUG_LINKAGE_NONE); if (n == NULL) - return false; + return FALSE; n->u.float_constant = val; - return true; + return TRUE; } /* Record a typed constant with an integral value. */ -boolean +bfd_boolean debug_record_typed_const (handle, name, type, val) PTR handle; const char *name; @@ -1121,12 +1122,12 @@ debug_record_typed_const (handle, name, struct debug_typed_constant *tc; if (name == NULL || type == NULL) - return false; + return FALSE; n = debug_add_to_current_namespace (info, name, DEBUG_OBJECT_TYPED_CONSTANT, DEBUG_LINKAGE_NONE); if (n == NULL) - return false; + return FALSE; tc = (struct debug_typed_constant *) xmalloc (sizeof *tc); memset (tc, 0, sizeof *tc); @@ -1136,12 +1137,12 @@ debug_record_typed_const (handle, name, n->u.typed_constant = tc; - return true; + return TRUE; } /* Record a label. */ -boolean +bfd_boolean debug_record_label (handle, name, type, addr) PTR handle ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; @@ -1150,12 +1151,12 @@ debug_record_label (handle, name, type, { /* FIXME. */ debug_error (_("debug_record_label: not implemented")); - return false; + return FALSE; } /* Record a variable. */ -boolean +bfd_boolean debug_record_variable (handle, name, type, kind, val) PTR handle; const char *name; @@ -1170,13 +1171,13 @@ debug_record_variable (handle, name, typ struct debug_variable *v; if (name == NULL || type == NULL) - return false; + return FALSE; if (info->current_unit == NULL || info->current_file == NULL) { debug_error (_("debug_record_variable: no current file")); - return false; + return FALSE; } if (kind == DEBUG_GLOBAL || kind == DEBUG_STATIC) @@ -1192,7 +1193,7 @@ debug_record_variable (handle, name, typ if (info->current_block == NULL) { debug_error (_("debug_record_variable: no current block")); - return false; + return FALSE; } nsp = &info->current_block->locals; linkage = DEBUG_LINKAGE_AUTOMATIC; @@ -1200,7 +1201,7 @@ debug_record_variable (handle, name, typ n = debug_add_to_namespace (info, nsp, name, DEBUG_OBJECT_VARIABLE, linkage); if (n == NULL) - return false; + return FALSE; v = (struct debug_variable *) xmalloc (sizeof *v); memset (v, 0, sizeof *v); @@ -1211,7 +1212,7 @@ debug_record_variable (handle, name, typ n->u.variable = v; - return true; + return TRUE; } /* Make a type with a given kind and size. */ @@ -1279,7 +1280,7 @@ debug_type debug_make_int_type (handle, size, unsignedp) PTR handle; unsigned int size; - boolean unsignedp; + bfd_boolean unsignedp; { struct debug_handle *info = (struct debug_handle *) handle; struct debug_type *t; @@ -1338,7 +1339,7 @@ debug_make_complex_type (handle, size) debug_type debug_make_struct_type (handle, structp, size, fields) PTR handle; - boolean structp; + bfd_boolean structp; bfd_vma size; debug_field *fields; { @@ -1373,13 +1374,13 @@ debug_type debug_make_object_type (handle, structp, size, fields, baseclasses, methods, vptrbase, ownvptr) PTR handle; - boolean structp; + bfd_boolean structp; bfd_vma size; debug_field *fields; debug_baseclass *baseclasses; debug_method *methods; debug_type vptrbase; - boolean ownvptr; + bfd_boolean ownvptr; { struct debug_handle *info = (struct debug_handle *) handle; struct debug_type *t; @@ -1470,7 +1471,7 @@ debug_make_function_type (handle, type, PTR handle; debug_type type; debug_type *arg_types; - boolean varargs; + bfd_boolean varargs; { struct debug_handle *info = (struct debug_handle *) handle; struct debug_type *t; @@ -1563,7 +1564,7 @@ debug_make_array_type (handle, element_t debug_type range_type; bfd_signed_vma lower; bfd_signed_vma upper; - boolean stringp; + bfd_boolean stringp; { struct debug_handle *info = (struct debug_handle *) handle; struct debug_type *t; @@ -1598,7 +1599,7 @@ debug_type debug_make_set_type (handle, type, bitstringp) PTR handle; debug_type type; - boolean bitstringp; + bfd_boolean bitstringp; { struct debug_handle *info = (struct debug_handle *) handle; struct debug_type *t; @@ -1665,7 +1666,7 @@ debug_make_method_type (handle, return_t debug_type return_type; debug_type domain_type; debug_type *arg_types; - boolean varargs; + bfd_boolean varargs; { struct debug_handle *info = (struct debug_handle *) handle; struct debug_type *t; @@ -1782,7 +1783,7 @@ debug_make_baseclass (handle, type, bitp PTR handle ATTRIBUTE_UNUSED; debug_type type; bfd_vma bitpos; - boolean virtual; + bfd_boolean virtual; enum debug_visibility visibility; { struct debug_baseclass *b; @@ -1820,7 +1821,7 @@ debug_make_field (handle, name, type, bi f->name = name; f->type = type; - f->static_member = false; + f->static_member = FALSE; f->u.f.bitpos = bitpos; f->u.f.bitsize = bitsize; f->visibility = visibility; @@ -1849,7 +1850,7 @@ debug_make_static_member (handle, name, f->name = name; f->type = type; - f->static_member = true; + f->static_member = TRUE; f->u.s.physname = physname; f->visibility = visibility; @@ -1892,8 +1893,8 @@ debug_make_method_variant (handle, physn const char *physname; debug_type type; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; bfd_vma voffset; debug_type context; { @@ -1924,8 +1925,8 @@ debug_make_static_method_variant (handle const char *physname; debug_type type; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; { struct debug_method_variant *m; @@ -2049,7 +2050,7 @@ debug_tag_type (handle, name, type) /* Record the size of a given type. */ -boolean +bfd_boolean debug_record_type_size (handle, type, size) PTR handle ATTRIBUTE_UNUSED; debug_type type; @@ -2061,7 +2062,7 @@ debug_record_type_size (handle, type, si type->size = size; - return true; + return TRUE; } /* Find a named type. */ @@ -2307,7 +2308,7 @@ const debug_type * debug_get_parameter_types (handle, type, pvarargs) PTR handle; debug_type type; - boolean *pvarargs; + bfd_boolean *pvarargs; { if (type == NULL) return NULL; @@ -2457,7 +2458,7 @@ debug_get_field_physname (handle, field) /* Write out the debugging information. This is given a handle to debugging information, and a set of function pointers to call. */ -boolean +bfd_boolean debug_write (handle, fns, fhandle) PTR handle; const struct debug_write_fns *fns; @@ -2484,25 +2485,25 @@ debug_write (handle, fns, fhandle) for (u = info->units; u != NULL; u = u->next) { struct debug_file *f; - boolean first_file; + bfd_boolean first_file; info->current_write_lineno = u->linenos; info->current_write_lineno_index = 0; if (! (*fns->start_compilation_unit) (fhandle, u->files->filename)) - return false; + return FALSE; - first_file = true; + first_file = TRUE; for (f = u->files; f != NULL; f = f->next) { struct debug_name *n; if (first_file) - first_file = false; + first_file = FALSE; else { if (! (*fns->start_source) (fhandle, f->filename)) - return false; + return FALSE; } if (f->globals != NULL) @@ -2510,7 +2511,7 @@ debug_write (handle, fns, fhandle) for (n = f->globals->list; n != NULL; n = n->next) { if (! debug_write_name (info, fns, fhandle, n)) - return false; + return FALSE; } } } @@ -2518,15 +2519,15 @@ debug_write (handle, fns, fhandle) /* Output any line number information which hasn't already been handled. */ if (! debug_write_linenos (info, fns, fhandle, (bfd_vma) -1)) - return false; + return FALSE; } - return true; + return TRUE; } /* Write out an element in a namespace. */ -static boolean +static bfd_boolean debug_write_name (info, fns, fhandle, n) struct debug_handle *info; const struct debug_write_fns *fns; @@ -2538,16 +2539,16 @@ debug_write_name (info, fns, fhandle, n) case DEBUG_OBJECT_TYPE: if (! debug_write_type (info, fns, fhandle, n->u.type, n) || ! (*fns->typdef) (fhandle, n->name)) - return false; - return true; + return FALSE; + return TRUE; case DEBUG_OBJECT_TAG: if (! debug_write_type (info, fns, fhandle, n->u.tag, n)) - return false; + return FALSE; return (*fns->tag) (fhandle, n->name); case DEBUG_OBJECT_VARIABLE: if (! debug_write_type (info, fns, fhandle, n->u.variable->type, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->variable) (fhandle, n->name, n->u.variable->kind, n->u.variable->val); case DEBUG_OBJECT_FUNCTION: @@ -2560,12 +2561,12 @@ debug_write_name (info, fns, fhandle, n) case DEBUG_OBJECT_TYPED_CONSTANT: if (! debug_write_type (info, fns, fhandle, n->u.typed_constant->type, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->typed_constant) (fhandle, n->name, n->u.typed_constant->val); default: abort (); - return false; + return FALSE; } /*NOTREACHED*/ } @@ -2576,7 +2577,7 @@ debug_write_name (info, fns, fhandle, n) then the name argument is a tag from a DEBUG_KIND_TAGGED type which points to this one. */ -static boolean +static bfd_boolean debug_write_type (info, fns, fhandle, type, name) struct debug_handle *info; const struct debug_write_fns *fns; @@ -2619,7 +2620,7 @@ debug_write_type (info, fns, fhandle, ty if (! debug_set_class_id (info, type->u.knamed->name->name, real)) - return false; + return FALSE; } id = real->u.kclass->id; } @@ -2648,7 +2649,7 @@ debug_write_type (info, fns, fhandle, ty { case DEBUG_KIND_ILLEGAL: debug_error (_("debug_write_type: illegal type encountered")); - return false; + return FALSE; case DEBUG_KIND_INDIRECT: if (*type->u.kindirect->slot == DEBUG_TYPE_NULL) return (*fns->empty_type) (fhandle); @@ -2671,7 +2672,7 @@ debug_write_type (info, fns, fhandle, ty if (type->u.kclass->id <= info->base_id) { if (! debug_set_class_id (info, tag, type)) - return false; + return FALSE; } if (info->mark == type->u.kclass->mark) @@ -2692,7 +2693,7 @@ debug_write_type (info, fns, fhandle, ty : 0), type->kind == DEBUG_KIND_STRUCT, type->size)) - return false; + return FALSE; if (type->u.kclass != NULL && type->u.kclass->fields != NULL) { @@ -2705,7 +2706,7 @@ debug_write_type (info, fns, fhandle, ty (struct debug_name *) NULL) || ! (*fns->struct_field) (fhandle, f->name, f->u.f.bitpos, f->u.f.bitsize, f->visibility)) - return false; + return FALSE; } } return (*fns->end_struct_type) (fhandle); @@ -2721,13 +2722,13 @@ debug_write_type (info, fns, fhandle, ty case DEBUG_KIND_POINTER: if (! debug_write_type (info, fns, fhandle, type->u.kpointer, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->pointer_type) (fhandle); case DEBUG_KIND_FUNCTION: if (! debug_write_type (info, fns, fhandle, type->u.kfunction->return_type, (struct debug_name *) NULL)) - return false; + return FALSE; if (type->u.kfunction->arg_types == NULL) is = -1; else @@ -2736,19 +2737,19 @@ debug_write_type (info, fns, fhandle, ty if (! debug_write_type (info, fns, fhandle, type->u.kfunction->arg_types[is], (struct debug_name *) NULL)) - return false; + return FALSE; } return (*fns->function_type) (fhandle, is, type->u.kfunction->varargs); case DEBUG_KIND_REFERENCE: if (! debug_write_type (info, fns, fhandle, type->u.kreference, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->reference_type) (fhandle); case DEBUG_KIND_RANGE: if (! debug_write_type (info, fns, fhandle, type->u.krange->type, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->range_type) (fhandle, type->u.krange->lower, type->u.krange->upper); case DEBUG_KIND_ARRAY: @@ -2757,14 +2758,14 @@ debug_write_type (info, fns, fhandle, ty || ! debug_write_type (info, fns, fhandle, type->u.karray->range_type, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->array_type) (fhandle, type->u.karray->lower, type->u.karray->upper, type->u.karray->stringp); case DEBUG_KIND_SET: if (! debug_write_type (info, fns, fhandle, type->u.kset->type, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->set_type) (fhandle, type->u.kset->bitstringp); case DEBUG_KIND_OFFSET: if (! debug_write_type (info, fns, fhandle, type->u.koffset->base_type, @@ -2772,13 +2773,13 @@ debug_write_type (info, fns, fhandle, ty || ! debug_write_type (info, fns, fhandle, type->u.koffset->target_type, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->offset_type) (fhandle); case DEBUG_KIND_METHOD: if (! debug_write_type (info, fns, fhandle, type->u.kmethod->return_type, (struct debug_name *) NULL)) - return false; + return FALSE; if (type->u.kmethod->arg_types == NULL) is = -1; else @@ -2787,14 +2788,14 @@ debug_write_type (info, fns, fhandle, ty if (! debug_write_type (info, fns, fhandle, type->u.kmethod->arg_types[is], (struct debug_name *) NULL)) - return false; + return FALSE; } if (type->u.kmethod->domain_type != NULL) { if (! debug_write_type (info, fns, fhandle, type->u.kmethod->domain_type, (struct debug_name *) NULL)) - return false; + return FALSE; } return (*fns->method_type) (fhandle, type->u.kmethod->domain_type != NULL, @@ -2803,12 +2804,12 @@ debug_write_type (info, fns, fhandle, ty case DEBUG_KIND_CONST: if (! debug_write_type (info, fns, fhandle, type->u.kconst, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->const_type) (fhandle); case DEBUG_KIND_VOLATILE: if (! debug_write_type (info, fns, fhandle, type->u.kvolatile, (struct debug_name *) NULL)) - return false; + return FALSE; return (*fns->volatile_type) (fhandle); case DEBUG_KIND_NAMED: return debug_write_type (info, fns, fhandle, type->u.knamed->type, @@ -2818,13 +2819,13 @@ debug_write_type (info, fns, fhandle, ty type->u.knamed->name); default: abort (); - return false; + return FALSE; } } /* Write out a class type. */ -static boolean +static bfd_boolean debug_write_class_type (info, fns, fhandle, type, tag) struct debug_handle *info; const struct debug_write_fns *fns; @@ -2846,7 +2847,7 @@ debug_write_class_type (info, fns, fhand if (type->u.kclass->id <= info->base_id) { if (! debug_set_class_id (info, tag, type)) - return false; + return FALSE; } if (info->mark == type->u.kclass->mark) @@ -2866,7 +2867,7 @@ debug_write_class_type (info, fns, fhand { if (! debug_write_type (info, fns, fhandle, vptrbase, (struct debug_name *) NULL)) - return false; + return FALSE; } } @@ -2875,7 +2876,7 @@ debug_write_class_type (info, fns, fhand type->size, vptrbase != NULL, vptrbase == type)) - return false; + return FALSE; if (type->u.kclass != NULL) { @@ -2888,19 +2889,19 @@ debug_write_class_type (info, fns, fhand f = type->u.kclass->fields[i]; if (! debug_write_type (info, fns, fhandle, f->type, (struct debug_name *) NULL)) - return false; + return FALSE; if (f->static_member) { if (! (*fns->class_static_member) (fhandle, f->name, f->u.s.physname, f->visibility)) - return false; + return FALSE; } else { if (! (*fns->struct_field) (fhandle, f->name, f->u.f.bitpos, f->u.f.bitsize, f->visibility)) - return false; + return FALSE; } } } @@ -2914,10 +2915,10 @@ debug_write_class_type (info, fns, fhand b = type->u.kclass->baseclasses[i]; if (! debug_write_type (info, fns, fhandle, b->type, (struct debug_name *) NULL)) - return false; + return FALSE; if (! (*fns->class_baseclass) (fhandle, b->bitpos, b->virtual, b->visibility)) - return false; + return FALSE; } } @@ -2930,7 +2931,7 @@ debug_write_class_type (info, fns, fhand m = type->u.kclass->methods[i]; if (! (*fns->class_start_method) (fhandle, m->name)) - return false; + return FALSE; for (j = 0; m->variants[j] != NULL; j++) { struct debug_method_variant *v; @@ -2940,11 +2941,11 @@ debug_write_class_type (info, fns, fhand { if (! debug_write_type (info, fns, fhandle, v->context, (struct debug_name *) NULL)) - return false; + return FALSE; } if (! debug_write_type (info, fns, fhandle, v->type, (struct debug_name *) NULL)) - return false; + return FALSE; if (v->voffset != VOFFSET_STATIC_METHOD) { if (! (*fns->class_method_variant) (fhandle, v->physname, @@ -2953,7 +2954,7 @@ debug_write_class_type (info, fns, fhand v->volatilep, v->voffset, v->context != NULL)) - return false; + return FALSE; } else { @@ -2962,11 +2963,11 @@ debug_write_class_type (info, fns, fhand v->visibility, v->constp, v->volatilep)) - return false; + return FALSE; } } if (! (*fns->class_end_method) (fhandle)) - return false; + return FALSE; } } } @@ -2976,7 +2977,7 @@ debug_write_class_type (info, fns, fhand /* Write out information for a function. */ -static boolean +static bfd_boolean debug_write_function (info, fns, fhandle, name, linkage, function) struct debug_handle *info; const struct debug_write_fns *fns; @@ -2989,28 +2990,28 @@ debug_write_function (info, fns, fhandle struct debug_block *b; if (! debug_write_linenos (info, fns, fhandle, function->blocks->start)) - return false; + return FALSE; if (! debug_write_type (info, fns, fhandle, function->return_type, (struct debug_name *) NULL)) - return false; + return FALSE; if (! (*fns->start_function) (fhandle, name, linkage == DEBUG_LINKAGE_GLOBAL)) - return false; + return FALSE; for (p = function->parameters; p != NULL; p = p->next) { if (! debug_write_type (info, fns, fhandle, p->type, (struct debug_name *) NULL) || ! (*fns->function_parameter) (fhandle, p->name, p->kind, p->val)) - return false; + return FALSE; } for (b = function->blocks; b != NULL; b = b->next) { if (! debug_write_block (info, fns, fhandle, b)) - return false; + return FALSE; } return (*fns->end_function) (fhandle); @@ -3018,7 +3019,7 @@ debug_write_function (info, fns, fhandle /* Write out information for a block. */ -static boolean +static bfd_boolean debug_write_block (info, fns, fhandle, block) struct debug_handle *info; const struct debug_write_fns *fns; @@ -3029,14 +3030,14 @@ debug_write_block (info, fns, fhandle, b struct debug_block *b; if (! debug_write_linenos (info, fns, fhandle, block->start)) - return false; + return FALSE; /* I can't see any point to writing out a block with no local variables, so we don't bother, except for the top level block. */ if (block->locals != NULL || block->parent == NULL) { if (! (*fns->start_block) (fhandle, block->start)) - return false; + return FALSE; } if (block->locals != NULL) @@ -3044,31 +3045,31 @@ debug_write_block (info, fns, fhandle, b for (n = block->locals->list; n != NULL; n = n->next) { if (! debug_write_name (info, fns, fhandle, n)) - return false; + return FALSE; } } for (b = block->children; b != NULL; b = b->next) { if (! debug_write_block (info, fns, fhandle, b)) - return false; + return FALSE; } if (! debug_write_linenos (info, fns, fhandle, block->end)) - return false; + return FALSE; if (block->locals != NULL || block->parent == NULL) { if (! (*fns->end_block) (fhandle, block->end)) - return false; + return FALSE; } - return true; + return TRUE; } /* Write out line number information up to ADDRESS. */ -static boolean +static bfd_boolean debug_write_linenos (info, fns, fhandle, address) struct debug_handle *info; const struct debug_write_fns *fns; @@ -3088,12 +3089,12 @@ debug_write_linenos (info, fns, fhandle, break; if (l->addrs[info->current_write_lineno_index] >= address) - return true; + return TRUE; if (! (*fns->lineno) (fhandle, l->file->filename, l->linenos[info->current_write_lineno_index], l->addrs[info->current_write_lineno_index])) - return false; + return FALSE; ++info->current_write_lineno_index; } @@ -3102,7 +3103,7 @@ debug_write_linenos (info, fns, fhandle, info->current_write_lineno_index = 0; } - return true; + return TRUE; } /* Get the ID number for a class. If during the same call to @@ -3110,7 +3111,7 @@ debug_write_linenos (info, fns, fhandle, name, we use the same ID. This type of things happens because the same struct will be defined by multiple compilation units. */ -static boolean +static bfd_boolean debug_set_class_id (info, tag, type) struct debug_handle *info; const char *tag; @@ -3127,7 +3128,7 @@ debug_set_class_id (info, tag, type) c = type->u.kclass; if (c->id > info->base_id) - return true; + return TRUE; for (l = info->id_list; l != NULL; l = l->next) { @@ -3150,7 +3151,7 @@ debug_set_class_id (info, tag, type) if (debug_type_samep (info, l->type, type)) { c->id = l->type->u.kclass->id; - return true; + return TRUE; } } @@ -3168,13 +3169,13 @@ debug_set_class_id (info, tag, type) l->next = info->id_list; info->id_list = l; - return true; + return TRUE; } /* See if two types are the same. At this point, we don't care about tags and the like. */ -static boolean +static bfd_boolean debug_type_samep (info, t1, t2) struct debug_handle *info; struct debug_type *t1; @@ -3182,28 +3183,28 @@ debug_type_samep (info, t1, t2) { struct debug_type_compare_list *l; struct debug_type_compare_list top; - boolean ret; + bfd_boolean ret; if (t1 == NULL) return t2 == NULL; if (t2 == NULL) - return false; + return FALSE; while (t1->kind == DEBUG_KIND_INDIRECT) { t1 = *t1->u.kindirect->slot; if (t1 == NULL) - return false; + return FALSE; } while (t2->kind == DEBUG_KIND_INDIRECT) { t2 = *t2->u.kindirect->slot; if (t2 == NULL) - return false; + return FALSE; } if (t1 == t2) - return true; + return TRUE; /* As a special case, permit a typedef to match a tag, since C++ debugging output will sometimes add a typedef where C debugging @@ -3217,7 +3218,7 @@ debug_type_samep (info, t1, t2) if (t1->kind != t2->kind || t1->size != t2->size) - return false; + return FALSE; /* Get rid of the trivial cases first. */ switch (t1->kind) @@ -3228,7 +3229,7 @@ debug_type_samep (info, t1, t2) case DEBUG_KIND_FLOAT: case DEBUG_KIND_COMPLEX: case DEBUG_KIND_BOOL: - return true; + return TRUE; case DEBUG_KIND_INT: return t1->u.kint == t2->u.kint; } @@ -3240,7 +3241,7 @@ debug_type_samep (info, t1, t2) for (l = info->compare_list; l != NULL; l = l->next) { if (l->t1 == t1 && l->t2 == t2) - return true; + return TRUE; } top.t1 = t1; @@ -3252,7 +3253,7 @@ debug_type_samep (info, t1, t2) { default: abort (); - ret = false; + ret = FALSE; break; case DEBUG_KIND_STRUCT: @@ -3262,10 +3263,10 @@ debug_type_samep (info, t1, t2) if (t1->u.kclass == NULL) ret = t2->u.kclass == NULL; else if (t2->u.kclass == NULL) - ret = false; + ret = FALSE; else if (t1->u.kclass->id > info->base_id && t1->u.kclass->id == t2->u.kclass->id) - ret = true; + ret = TRUE; else ret = debug_class_type_samep (info, t1, t2); break; @@ -3274,7 +3275,7 @@ debug_type_samep (info, t1, t2) if (t1->u.kenum == NULL) ret = t2->u.kenum == NULL; else if (t2->u.kenum == NULL) - ret = false; + ret = FALSE; else { const char **pn1, **pn2; @@ -3309,9 +3310,9 @@ debug_type_samep (info, t1, t2) t2->u.kfunction->return_type) || ((t1->u.kfunction->arg_types == NULL) != (t2->u.kfunction->arg_types == NULL))) - ret = false; + ret = FALSE; else if (t1->u.kfunction->arg_types == NULL) - ret = true; + ret = TRUE; else { struct debug_type **a1, **a2; @@ -3367,9 +3368,9 @@ debug_type_samep (info, t1, t2) t2->u.kmethod->domain_type) || ((t1->u.kmethod->arg_types == NULL) != (t2->u.kmethod->arg_types == NULL))) - ret = false; + ret = FALSE; else if (t1->u.kmethod->arg_types == NULL) - ret = true; + ret = TRUE; else { struct debug_type **a1, **a2; @@ -3411,7 +3412,7 @@ debug_type_samep (info, t1, t2) /* See if two classes are the same. This is a subroutine of debug_type_samep. */ -static boolean +static bfd_boolean debug_class_type_samep (info, t1, t2) struct debug_handle *info; struct debug_type *t1; @@ -3426,7 +3427,7 @@ debug_class_type_samep (info, t1, t2) || (c1->baseclasses == NULL) != (c2->baseclasses == NULL) || (c1->methods == NULL) != (c2->methods == NULL) || (c1->vptrbase == NULL) != (c2->vptrbase == NULL)) - return false; + return FALSE; if (c1->fields != NULL) { @@ -3443,17 +3444,17 @@ debug_class_type_samep (info, t1, t2) if (f1->name[0] != f2->name[0] || f1->visibility != f2->visibility || f1->static_member != f2->static_member) - return false; + return FALSE; if (f1->static_member) { if (strcmp (f1->u.s.physname, f2->u.s.physname) != 0) - return false; + return FALSE; } else { if (f1->u.f.bitpos != f2->u.f.bitpos || f1->u.f.bitsize != f2->u.f.bitsize) - return false; + return FALSE; } /* We do the checks which require function calls last. We don't require that the types of fields have the same @@ -3465,16 +3466,16 @@ debug_class_type_samep (info, t1, t2) f1->type, NULL), debug_get_real_type ((PTR) info, f2->type, NULL))) - return false; + return FALSE; } if (*pf1 != NULL || *pf2 != NULL) - return false; + return FALSE; } if (c1->vptrbase != NULL) { if (! debug_type_samep (info, c1->vptrbase, c2->vptrbase)) - return false; + return FALSE; } if (c1->baseclasses != NULL) @@ -3493,10 +3494,10 @@ debug_class_type_samep (info, t1, t2) || b1->virtual != b2->virtual || b1->visibility != b2->visibility || ! debug_type_samep (info, b1->type, b2->type)) - return false; + return FALSE; } if (*pb1 != NULL || *pb2 != NULL) - return false; + return FALSE; } if (c1->methods != NULL) @@ -3514,7 +3515,7 @@ debug_class_type_samep (info, t1, t2) if (m1->name[0] != m2->name[0] || strcmp (m1->name, m2->name) != 0 || (m1->variants == NULL) != (m2->variants == NULL)) - return false; + return FALSE; if (m1->variants == NULL) { struct debug_method_variant **pv1, **pv2; @@ -3535,21 +3536,21 @@ debug_class_type_samep (info, t1, t2) || (v1->context == NULL) != (v2->context == NULL) || strcmp (v1->physname, v2->physname) != 0 || ! debug_type_samep (info, v1->type, v2->type)) - return false; + return FALSE; if (v1->context != NULL) { if (! debug_type_samep (info, v1->context, v2->context)) - return false; + return FALSE; } } if (*pv1 != NULL || *pv2 != NULL) - return false; + return FALSE; } } if (*pm1 != NULL || *pm2 != NULL) - return false; + return FALSE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/binutils/debug.h binutils-2.13.90.0.18/binutils/debug.h --- binutils-2.13.90.0.16/binutils/debug.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/binutils/debug.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* debug.h -- Describe generic debugging information. - Copyright 1995, 1996 Free Software Foundation, Inc. + Copyright 1995, 1996, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -169,126 +169,126 @@ struct debug_write_fns { /* This is called at the start of each new compilation unit with the name of the main file in the new unit. */ - boolean (*start_compilation_unit) PARAMS ((PTR, const char *)); + bfd_boolean (*start_compilation_unit) PARAMS ((PTR, const char *)); /* This is called at the start of each source file within a compilation unit, before outputting any global information for that file. The argument is the name of the file. */ - boolean (*start_source) PARAMS ((PTR, const char *)); + bfd_boolean (*start_source) PARAMS ((PTR, const char *)); /* Each writer must keep a stack of types. */ /* Push an empty type onto the type stack. This type can appear if there is a reference to a type which is never defined. */ - boolean (*empty_type) PARAMS ((PTR)); + bfd_boolean (*empty_type) PARAMS ((PTR)); /* Push a void type onto the type stack. */ - boolean (*void_type) PARAMS ((PTR)); + bfd_boolean (*void_type) PARAMS ((PTR)); /* Push an integer type onto the type stack, given the size and whether it is unsigned. */ - boolean (*int_type) PARAMS ((PTR, unsigned int, boolean)); + bfd_boolean (*int_type) PARAMS ((PTR, unsigned int, bfd_boolean)); /* Push a floating type onto the type stack, given the size. */ - boolean (*float_type) PARAMS ((PTR, unsigned int)); + bfd_boolean (*float_type) PARAMS ((PTR, unsigned int)); /* Push a complex type onto the type stack, given the size. */ - boolean (*complex_type) PARAMS ((PTR, unsigned int)); + bfd_boolean (*complex_type) PARAMS ((PTR, unsigned int)); - /* Push a boolean type onto the type stack, given the size. */ - boolean (*bool_type) PARAMS ((PTR, unsigned int)); + /* Push a bfd_boolean type onto the type stack, given the size. */ + bfd_boolean (*bool_type) PARAMS ((PTR, unsigned int)); /* Push an enum type onto the type stack, given the tag, a NULL terminated array of names and the associated values. If there is no tag, the tag argument will be NULL. If this is an undefined enum, the names and values arguments will be NULL. */ - boolean (*enum_type) PARAMS ((PTR, const char *, const char **, - bfd_signed_vma *)); + bfd_boolean (*enum_type) + PARAMS ((PTR, const char *, const char **, bfd_signed_vma *)); /* Pop the top type on the type stack, and push a pointer to that type onto the type stack. */ - boolean (*pointer_type) PARAMS ((PTR)); + bfd_boolean (*pointer_type) PARAMS ((PTR)); /* Push a function type onto the type stack. The second argument indicates the number of argument types that have been pushed onto the stack. If the number of argument types is passed as -1, then the argument types of the function are unknown, and no types have - been pushed onto the stack. The third argument is true if the + been pushed onto the stack. The third argument is TRUE if the function takes a variable number of arguments. The return type of the function is pushed onto the type stack below the argument types, if any. */ - boolean (*function_type) PARAMS ((PTR, int, boolean)); + bfd_boolean (*function_type) PARAMS ((PTR, int, bfd_boolean)); /* Pop the top type on the type stack, and push a reference to that type onto the type stack. */ - boolean (*reference_type) PARAMS ((PTR)); + bfd_boolean (*reference_type) PARAMS ((PTR)); /* Pop the top type on the type stack, and push a range of that type with the given lower and upper bounds onto the type stack. */ - boolean (*range_type) PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); + bfd_boolean (*range_type) PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); /* Push an array type onto the type stack. The top type on the type stack is the range, and the next type on the type stack is the element type. These should be popped before the array type is pushed. The arguments are the lower bound, the upper bound, and whether the array is a string. */ - boolean (*array_type) PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, - boolean)); + bfd_boolean (*array_type) + PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, bfd_boolean)); /* Pop the top type on the type stack, and push a set of that type onto the type stack. The argument indicates whether this set is a bitstring. */ - boolean (*set_type) PARAMS ((PTR, boolean)); + bfd_boolean (*set_type) PARAMS ((PTR, bfd_boolean)); /* Push an offset type onto the type stack. The top type on the type stack is the target type, and the next type on the type stack is the base type. These should be popped before the offset type is pushed. */ - boolean (*offset_type) PARAMS ((PTR)); + bfd_boolean (*offset_type) PARAMS ((PTR)); /* Push a method type onto the type stack. If the second argument - is true, the top type on the stack is the class to which the + is TRUE, the top type on the stack is the class to which the method belongs; otherwise, the class must be determined by the class to which the method is attached. The third argument is the number of argument types; these are pushed onto the type stack in reverse order (the first type popped is the last argument to the method). A value of -1 for the third argument means that no - argument information is available. The fourth argument is true + argument information is available. The fourth argument is TRUE if the function takes a variable number of arguments. The next type on the type stack below the domain and the argument types is the return type of the method. All these types must be popped, and then the method type must be pushed. */ - boolean (*method_type) PARAMS ((PTR, boolean, int, boolean)); + bfd_boolean (*method_type) PARAMS ((PTR, bfd_boolean, int, bfd_boolean)); /* Pop the top type off the type stack, and push a const qualified version of that type onto the type stack. */ - boolean (*const_type) PARAMS ((PTR)); + bfd_boolean (*const_type) PARAMS ((PTR)); /* Pop the top type off the type stack, and push a volatile qualified version of that type onto the type stack. */ - boolean (*volatile_type) PARAMS ((PTR)); + bfd_boolean (*volatile_type) PARAMS ((PTR)); /* Start building a struct. This is followed by calls to the struct_field function, and finished by a call to the end_struct_type function. The second argument is the tag; this will be NULL if there isn't one. If the second argument is NULL, the third argument is a constant identifying this struct for use - with tag_type. The fourth argument is true for a struct, false + with tag_type. The fourth argument is TRUE for a struct, FALSE for a union. The fifth argument is the size. If this is an undefined struct or union, the size will be 0 and struct_field will not be called before end_struct_type is called. */ - boolean (*start_struct_type) PARAMS ((PTR, const char *, unsigned int, - boolean, unsigned int)); + bfd_boolean (*start_struct_type) + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int)); /* Add a field to the struct type currently being built. The type of the field should be popped off the type stack. The arguments are the name, the bit position, the bit size (may be zero if the field is not packed), and the visibility. */ - boolean (*struct_field) PARAMS ((PTR, const char *, bfd_vma, bfd_vma, - enum debug_visibility)); + bfd_boolean (*struct_field) + PARAMS ((PTR, const char *, bfd_vma, bfd_vma, enum debug_visibility)); /* Finish building a struct, and push it onto the type stack. */ - boolean (*end_struct_type) PARAMS ((PTR)); + bfd_boolean (*end_struct_type) PARAMS ((PTR)); /* Start building a class. This is followed by calls to several functions: struct_field, class_static_member, class_baseclass, @@ -296,27 +296,27 @@ struct debug_write_fns class_static_method_variant, and class_end_method. The class is finished by a call to end_class_type. The first five arguments are the same as for start_struct_type. The sixth argument is - true if there is a virtual function table; if there is, the - seventh argument is true if the virtual function table can be - found in the type itself, and is false if the type of the object + TRUE if there is a virtual function table; if there is, the + seventh argument is TRUE if the virtual function table can be + found in the type itself, and is FALSE if the type of the object holding the virtual function table should be popped from the type stack. */ - boolean (*start_class_type) PARAMS ((PTR, const char *, unsigned int, - boolean, unsigned int, boolean, - boolean)); + bfd_boolean (*start_class_type) + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int, + bfd_boolean, bfd_boolean)); /* Add a static member to the class currently being built. The arguments are the field name, the physical name, and the visibility. The type must be popped off the type stack. */ - boolean (*class_static_member) PARAMS ((PTR, const char *, const char *, - enum debug_visibility)); + bfd_boolean (*class_static_member) + PARAMS ((PTR, const char *, const char *, enum debug_visibility)); /* Add a baseclass to the class currently being built. The type of the baseclass must be popped off the type stack. The arguments are the bit position, whether the class is virtual, and the visibility. */ - boolean (*class_baseclass) PARAMS ((PTR, bfd_vma, boolean, - enum debug_visibility)); + bfd_boolean (*class_baseclass) + PARAMS ((PTR, bfd_vma, bfd_boolean, enum debug_visibility)); /* Start adding a method to the class currently being built. This is followed by calls to class_method_variant and @@ -324,7 +324,7 @@ struct debug_write_fns method which take different arguments. The method is finished with a call to class_end_method. The argument is the method name. */ - boolean (*class_start_method) PARAMS ((PTR, const char *)); + bfd_boolean (*class_start_method) PARAMS ((PTR, const char *)); /* Describe a variant to the class method currently being built. The type of the variant must be popped off the type stack. The @@ -333,28 +333,27 @@ struct debug_write_fns const, whether the variant is volatile, the offset in the virtual function table, and whether the context is on the type stack (below the variant type). */ - boolean (*class_method_variant) PARAMS ((PTR, const char *, - enum debug_visibility, - boolean, boolean, - bfd_vma, boolean)); + bfd_boolean (*class_method_variant) + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, + bfd_boolean, bfd_vma, bfd_boolean)); /* Describe a static variant to the class method currently being built. The arguments are the same as for class_method_variant, except that the last two arguments are omitted. The type of the variant must be popped off the type stack. */ - boolean (*class_static_method_variant) PARAMS ((PTR, const char *, - enum debug_visibility, - boolean, boolean)); + bfd_boolean (*class_static_method_variant) + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, + bfd_boolean)); /* Finish describing a class method. */ - boolean (*class_end_method) PARAMS ((PTR)); + bfd_boolean (*class_end_method) PARAMS ((PTR)); /* Finish describing a class, and push it onto the type stack. */ - boolean (*end_class_type) PARAMS ((PTR)); + bfd_boolean (*end_class_type) PARAMS ((PTR)); /* Push a type on the stack which was given a name by an earlier call to typdef. */ - boolean (*typedef_type) PARAMS ((PTR, const char *)); + bfd_boolean (*typedef_type) PARAMS ((PTR, const char *)); /* Push a tagged type on the stack which was defined earlier. If the second argument is not NULL, the type was defined by a call @@ -365,58 +364,58 @@ struct debug_write_fns for a struct (class) being defined, in between the call to start_struct_type (start_class_type) and the call to end_struct_type (end_class_type). */ - boolean (*tag_type) PARAMS ((PTR, const char *, unsigned int, - enum debug_type_kind)); + bfd_boolean (*tag_type) + PARAMS ((PTR, const char *, unsigned int, enum debug_type_kind)); /* Pop the type stack, and typedef it to the given name. */ - boolean (*typdef) PARAMS ((PTR, const char *)); + bfd_boolean (*typdef) PARAMS ((PTR, const char *)); /* Pop the type stack, and declare it as a tagged struct or union or enum or whatever. The tag passed down here is redundant, since was also passed when enum_type, start_struct_type, or start_class_type was called. */ - boolean (*tag) PARAMS ((PTR, const char *)); + bfd_boolean (*tag) PARAMS ((PTR, const char *)); /* This is called to record a named integer constant. */ - boolean (*int_constant) PARAMS ((PTR, const char *, bfd_vma)); + bfd_boolean (*int_constant) PARAMS ((PTR, const char *, bfd_vma)); /* This is called to record a named floating point constant. */ - boolean (*float_constant) PARAMS ((PTR, const char *, double)); + bfd_boolean (*float_constant) PARAMS ((PTR, const char *, double)); /* This is called to record a typed integer constant. The type is popped off the type stack. */ - boolean (*typed_constant) PARAMS ((PTR, const char *, bfd_vma)); + bfd_boolean (*typed_constant) PARAMS ((PTR, const char *, bfd_vma)); /* This is called to record a variable. The type is popped off the type stack. */ - boolean (*variable) PARAMS ((PTR, const char *, enum debug_var_kind, - bfd_vma)); + bfd_boolean (*variable) + PARAMS ((PTR, const char *, enum debug_var_kind, bfd_vma)); /* Start writing out a function. The return type must be popped off - the stack. The boolean is true if the function is global. This + the stack. The bfd_boolean is TRUE if the function is global. This is followed by calls to function_parameter, followed by block information. */ - boolean (*start_function) PARAMS ((PTR, const char *, boolean)); + bfd_boolean (*start_function) PARAMS ((PTR, const char *, bfd_boolean)); /* Record a function parameter for the current function. The type must be popped off the stack. */ - boolean (*function_parameter) PARAMS ((PTR, const char *, - enum debug_parm_kind, bfd_vma)); + bfd_boolean (*function_parameter) + PARAMS ((PTR, const char *, enum debug_parm_kind, bfd_vma)); /* Start writing out a block. There is at least one top level block per function. Blocks may be nested. The argument is the starting address of the block. */ - boolean (*start_block) PARAMS ((PTR, bfd_vma)); + bfd_boolean (*start_block) PARAMS ((PTR, bfd_vma)); /* Finish writing out a block. The argument is the ending address of the block. */ - boolean (*end_block) PARAMS ((PTR, bfd_vma)); + bfd_boolean (*end_block) PARAMS ((PTR, bfd_vma)); /* Finish writing out a function. */ - boolean (*end_function) PARAMS ((PTR)); + bfd_boolean (*end_function) PARAMS ((PTR)); /* Record line number information for the current compilation unit. */ - boolean (*lineno) PARAMS ((PTR, const char *, unsigned long, bfd_vma)); + bfd_boolean (*lineno) PARAMS ((PTR, const char *, unsigned long, bfd_vma)); }; /* Exported functions. */ @@ -434,81 +433,83 @@ extern PTR debug_init PARAMS ((void)); /* Set the source filename. This implicitly starts a new compilation unit. */ -extern boolean debug_set_filename PARAMS ((PTR, const char *)); +extern bfd_boolean debug_set_filename PARAMS ((PTR, const char *)); /* Change source files to the given file name. This is used for include files in a single compilation unit. */ -extern boolean debug_start_source PARAMS ((PTR, const char *)); +extern bfd_boolean debug_start_source PARAMS ((PTR, const char *)); /* Record a function definition. This implicitly starts a function block. The debug_type argument is the type of the return value. - The boolean indicates whether the function is globally visible. + The bfd_boolean indicates whether the function is globally visible. The bfd_vma is the address of the start of the function. Currently the parameter types are specified by calls to debug_record_parameter. */ -extern boolean debug_record_function - PARAMS ((PTR, const char *, debug_type, boolean, bfd_vma)); +extern bfd_boolean debug_record_function + PARAMS ((PTR, const char *, debug_type, bfd_boolean, bfd_vma)); /* Record a parameter for the current function. */ -extern boolean debug_record_parameter +extern bfd_boolean debug_record_parameter PARAMS ((PTR, const char *, debug_type, enum debug_parm_kind, bfd_vma)); /* End a function definition. The argument is the address where the function ends. */ -extern boolean debug_end_function PARAMS ((PTR, bfd_vma)); +extern bfd_boolean debug_end_function PARAMS ((PTR, bfd_vma)); /* Start a block in a function. All local information will be recorded in this block, until the matching call to debug_end_block. debug_start_block and debug_end_block may be nested. The argument is the address at which this block starts. */ -extern boolean debug_start_block PARAMS ((PTR, bfd_vma)); +extern bfd_boolean debug_start_block PARAMS ((PTR, bfd_vma)); /* Finish a block in a function. This matches the call to debug_start_block. The argument is the address at which this block ends. */ -extern boolean debug_end_block PARAMS ((PTR, bfd_vma)); +extern bfd_boolean debug_end_block PARAMS ((PTR, bfd_vma)); /* Associate a line number in the current source file with a given address. */ -extern boolean debug_record_line PARAMS ((PTR, unsigned long, bfd_vma)); +extern bfd_boolean debug_record_line PARAMS ((PTR, unsigned long, bfd_vma)); /* Start a named common block. This is a block of variables that may move in memory. */ -extern boolean debug_start_common_block PARAMS ((PTR, const char *)); +extern bfd_boolean debug_start_common_block PARAMS ((PTR, const char *)); /* End a named common block. */ -extern boolean debug_end_common_block PARAMS ((PTR, const char *)); +extern bfd_boolean debug_end_common_block PARAMS ((PTR, const char *)); /* Record a named integer constant. */ -extern boolean debug_record_int_const PARAMS ((PTR, const char *, bfd_vma)); +extern bfd_boolean debug_record_int_const + PARAMS ((PTR, const char *, bfd_vma)); /* Record a named floating point constant. */ -extern boolean debug_record_float_const PARAMS ((PTR, const char *, double)); +extern bfd_boolean debug_record_float_const + PARAMS ((PTR, const char *, double)); /* Record a typed constant with an integral value. */ -extern boolean debug_record_typed_const +extern bfd_boolean debug_record_typed_const PARAMS ((PTR, const char *, debug_type, bfd_vma)); /* Record a label. */ -extern boolean debug_record_label +extern bfd_boolean debug_record_label PARAMS ((PTR, const char *, debug_type, bfd_vma)); /* Record a variable. */ -extern boolean debug_record_variable +extern bfd_boolean debug_record_variable PARAMS ((PTR, const char *, debug_type, enum debug_var_kind, bfd_vma)); /* Make an indirect type. The first argument is a pointer to the @@ -525,10 +526,11 @@ extern debug_type debug_make_indirect_ty extern debug_type debug_make_void_type PARAMS ((PTR)); -/* Make an integer type of a given size. The boolean argument is true +/* Make an integer type of a given size. The bfd_boolean argument is TRUE if the integer is unsigned. */ -extern debug_type debug_make_int_type PARAMS ((PTR, unsigned int, boolean)); +extern debug_type debug_make_int_type + PARAMS ((PTR, unsigned int, bfd_boolean)); /* Make a floating point type of a given size. FIXME: On some platforms, like an Alpha, you probably need to be able to specify @@ -544,23 +546,23 @@ extern debug_type debug_make_bool_type P extern debug_type debug_make_complex_type PARAMS ((PTR, unsigned int)); -/* Make a structure type. The second argument is true for a struct, - false for a union. The third argument is the size of the struct. +/* Make a structure type. The second argument is TRUE for a struct, + FALSE for a union. The third argument is the size of the struct. The fourth argument is a NULL terminated array of fields. */ extern debug_type debug_make_struct_type - PARAMS ((PTR, boolean, bfd_vma, debug_field *)); + PARAMS ((PTR, bfd_boolean, bfd_vma, debug_field *)); /* Make an object type. The first three arguments after the handle are the same as for debug_make_struct_type. The next arguments are a NULL terminated array of base classes, a NULL terminated array of methods, the type of the object holding the virtual function table - if it is not this object, and a boolean which is true if this + if it is not this object, and a bfd_boolean which is TRUE if this object has its own virtual function table. */ extern debug_type debug_make_object_type - PARAMS ((PTR, boolean, bfd_vma, debug_field *, debug_baseclass *, - debug_method *, debug_type, boolean)); + PARAMS ((PTR, bfd_boolean, bfd_vma, debug_field *, debug_baseclass *, + debug_method *, debug_type, bfd_boolean)); /* Make an enumeration type. The arguments are a null terminated array of strings, and an array of corresponding values. */ @@ -575,12 +577,12 @@ extern debug_type debug_make_pointer_typ /* Make a function type. The second argument is the return type. The third argument is a NULL terminated array of argument types. The - fourth argument is true if the function takes a variable number of + fourth argument is TRUE if the function takes a variable number of arguments. If the third argument is NULL, then the argument types are unknown. */ extern debug_type debug_make_function_type - PARAMS ((PTR, debug_type, debug_type *, boolean)); + PARAMS ((PTR, debug_type, debug_type *, bfd_boolean)); /* Make a reference to a given type. */ @@ -595,18 +597,18 @@ extern debug_type debug_make_range_type of the array. The third argument is the type of a range of the array. The fourth and fifth argument are the lower and upper bounds, respectively (if the bounds are not known, lower should be - 0 and upper should be -1). The sixth argument is true if this + 0 and upper should be -1). The sixth argument is TRUE if this array is actually a string, as in C. */ extern debug_type debug_make_array_type PARAMS ((PTR, debug_type, debug_type, bfd_signed_vma, bfd_signed_vma, - boolean)); + bfd_boolean)); /* Make a set of a given type. For example, a Pascal set type. The - boolean argument is true if this set is actually a bitstring, as in + bfd_boolean argument is TRUE if this set is actually a bitstring, as in CHILL. */ -extern debug_type debug_make_set_type PARAMS ((PTR, debug_type, boolean)); +extern debug_type debug_make_set_type PARAMS ((PTR, debug_type, bfd_boolean)); /* Make a type for a pointer which is relative to an object. The second argument is the type of the object to which the pointer is @@ -619,7 +621,7 @@ extern debug_type debug_make_offset_type /* Make a type for a method function. The second argument is the return type. The third argument is the domain. The fourth argument is a NULL terminated array of argument types. The fifth - argument is true if the function takes a variable number of + argument is TRUE if the function takes a variable number of arguments, in which case the array of argument types indicates the types of the first arguments. The domain and the argument array may be NULL, in which case this is a stub method and that @@ -627,7 +629,7 @@ extern debug_type debug_make_offset_type the argument types from the mangled name. */ extern debug_type debug_make_method_type - PARAMS ((PTR, debug_type, debug_type, debug_type *, boolean)); + PARAMS ((PTR, debug_type, debug_type, debug_type *, bfd_boolean)); /* Make a const qualified version of a given type. */ @@ -650,7 +652,7 @@ extern debug_type debug_make_undefined_t class. */ extern debug_baseclass debug_make_baseclass - PARAMS ((PTR, debug_type, bfd_vma, boolean, enum debug_visibility)); + PARAMS ((PTR, debug_type, bfd_vma, bfd_boolean, enum debug_visibility)); /* Make a field for a struct. The second argument is the name. The third argument is the type of the field. The fourth argument is @@ -690,16 +692,16 @@ extern debug_method debug_make_method function context. */ extern debug_method_variant debug_make_method_variant - PARAMS ((PTR, const char *, debug_type, enum debug_visibility, boolean, - boolean, bfd_vma, debug_type)); + PARAMS ((PTR, const char *, debug_type, enum debug_visibility, bfd_boolean, + bfd_boolean, bfd_vma, debug_type)); /* Make a static method argument. The arguments are the same as for debug_make_method_variant, except that the last two are omitted since a static method can not also be virtual. */ extern debug_method_variant debug_make_static_method_variant - PARAMS ((PTR, const char *, debug_type, enum debug_visibility, boolean, - boolean)); + PARAMS ((PTR, const char *, debug_type, enum debug_visibility, bfd_boolean, + bfd_boolean)); /* Name a type. This returns a new type with an attached name. */ @@ -712,7 +714,8 @@ extern debug_type debug_tag_type PARAMS /* Record the size of a given type. */ -extern boolean debug_record_type_size PARAMS ((PTR, debug_type, unsigned int)); +extern bfd_boolean debug_record_type_size + PARAMS ((PTR, debug_type, unsigned int)); /* Find a named type. */ @@ -743,12 +746,11 @@ extern debug_type debug_get_return_type method type (actually, parameter types are not currently stored for function types). This may be used to determine whether a method type is a stub method or not. The last argument points to a - boolean which is set to true if the function takes a variable + bfd_boolean which is set to TRUE if the function takes a variable number of arguments. */ -extern const debug_type *debug_get_parameter_types PARAMS ((PTR, - debug_type, - boolean *)); +extern const debug_type *debug_get_parameter_types + PARAMS ((PTR, debug_type, bfd_boolean *)); /* Get the target type of a pointer or reference or const or volatile type. */ @@ -793,6 +795,7 @@ extern const char *debug_get_field_physn first PTR is the debugging handle. The second PTR is a handle which is passed to the functions. */ -extern boolean debug_write PARAMS ((PTR, const struct debug_write_fns *, PTR)); +extern bfd_boolean debug_write + PARAMS ((PTR, const struct debug_write_fns *, PTR)); #endif /* DEBUG_H */ diff -uprN binutils-2.13.90.0.16/binutils/dlltool.c binutils-2.13.90.0.18/binutils/dlltool.c --- binutils-2.13.90.0.16/binutils/dlltool.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/binutils/dlltool.c Mon Dec 16 12:22:52 2002 @@ -267,12 +267,16 @@ #endif /* Forward references. */ -static char *look_for_prog PARAMS ((const char *, const char *, int)); -static char *deduce_name PARAMS ((const char *)); +static char *look_for_prog + PARAMS ((const char *, const char *, int)); +static char *deduce_name + PARAMS ((const char *)); #ifdef DLLTOOL_MCORE_ELF -static void mcore_elf_cache_filename PARAMS ((char *)); -static void mcore_elf_gen_out_file PARAMS ((void)); +static void mcore_elf_cache_filename + PARAMS ((char *)); +static void mcore_elf_gen_out_file + PARAMS ((void)); #endif #ifdef HAVE_SYS_WAIT_H @@ -358,20 +362,20 @@ static int add_indirect = 0; static int add_underscore = 0; static int dontdeltemps = 0; -/* True if we should export all symbols. Otherwise, we only export +/* TRUE if we should export all symbols. Otherwise, we only export symbols listed in .drectve sections or in the def file. */ -static boolean export_all_symbols; +static bfd_boolean export_all_symbols; -/* True if we should exclude the symbols in DEFAULT_EXCLUDES when +/* TRUE if we should exclude the symbols in DEFAULT_EXCLUDES when exporting all symbols. */ -static boolean do_default_excludes=true; +static bfd_boolean do_default_excludes = TRUE; /* Default symbols to exclude when exporting all the symbols. */ static const char *default_excludes = "DllMain@12,DllEntryPoint@0,impure_ptr"; -/* True if we should add __imp_ to import libraries for backward +/* TRUE if we should add __imp_ to import libraries for backward compatibility to old Cygwin releases. */ -static boolean create_compat_implib; +static bfd_boolean create_compat_implib; static char *def_file; @@ -652,49 +656,90 @@ struct string_list static struct string_list *excludes; -static const char *rvaafter PARAMS ((int)); -static const char *rvabefore PARAMS ((int)); -static const char *asm_prefix PARAMS ((int)); -static void process_def_file PARAMS ((const char *)); -static void new_directive PARAMS ((char *)); -static void append_import PARAMS ((const char *, const char *, int)); -static void run PARAMS ((const char *, char *)); -static void scan_drectve_symbols PARAMS ((bfd *)); -static void scan_filtered_symbols PARAMS ((bfd *, PTR, long, unsigned int)); -static void add_excludes PARAMS ((const char *)); -static boolean match_exclude PARAMS ((const char *)); -static void set_default_excludes PARAMS ((void)); -static long filter_symbols PARAMS ((bfd *, PTR, long, unsigned int)); -static void scan_all_symbols PARAMS ((bfd *)); -static void scan_open_obj_file PARAMS ((bfd *)); -static void scan_obj_file PARAMS ((const char *)); -static void dump_def_info PARAMS ((FILE *)); -static int sfunc PARAMS ((const void *, const void *)); -static void flush_page PARAMS ((FILE *, long *, int, int)); -static void gen_def_file PARAMS ((void)); -static void generate_idata_ofile PARAMS ((FILE *)); -static void assemble_file PARAMS ((const char *, const char *)); -static void gen_exp_file PARAMS ((void)); -static const char *xlate PARAMS ((const char *)); +static const char *rvaafter + PARAMS ((int)); +static const char *rvabefore + PARAMS ((int)); +static const char *asm_prefix + PARAMS ((int)); +static void process_def_file + PARAMS ((const char *)); +static void new_directive + PARAMS ((char *)); +static void append_import + PARAMS ((const char *, const char *, int)); +static void run + PARAMS ((const char *, char *)); +static void scan_drectve_symbols + PARAMS ((bfd *)); +static void scan_filtered_symbols + PARAMS ((bfd *, PTR, long, unsigned int)); +static void add_excludes + PARAMS ((const char *)); +static bfd_boolean match_exclude + PARAMS ((const char *)); +static void set_default_excludes + PARAMS ((void)); +static long filter_symbols + PARAMS ((bfd *, PTR, long, unsigned int)); +static void scan_all_symbols + PARAMS ((bfd *)); +static void scan_open_obj_file + PARAMS ((bfd *)); +static void scan_obj_file + PARAMS ((const char *)); +static void dump_def_info + PARAMS ((FILE *)); +static int sfunc + PARAMS ((const void *, const void *)); +static void flush_page + PARAMS ((FILE *, long *, int, int)); +static void gen_def_file + PARAMS ((void)); +static void generate_idata_ofile + PARAMS ((FILE *)); +static void assemble_file + PARAMS ((const char *, const char *)); +static void gen_exp_file + PARAMS ((void)); +static const char *xlate + PARAMS ((const char *)); #if 0 -static void dump_iat PARAMS ((FILE *, export_type *)); +static void dump_iat + PARAMS ((FILE *, export_type *)); #endif -static char *make_label PARAMS ((const char *, const char *)); -static char *make_imp_label PARAMS ((const char *, const char *)); -static bfd *make_one_lib_file PARAMS ((export_type *, int)); -static bfd *make_head PARAMS ((void)); -static bfd *make_tail PARAMS ((void)); -static void gen_lib_file PARAMS ((void)); -static int pfunc PARAMS ((const void *, const void *)); -static int nfunc PARAMS ((const void *, const void *)); -static void remove_null_names PARAMS ((export_type **)); -static void dtab PARAMS ((export_type **)); -static void process_duplicates PARAMS ((export_type **)); -static void fill_ordinals PARAMS ((export_type **)); -static int alphafunc PARAMS ((const void *, const void *)); -static void mangle_defs PARAMS ((void)); -static void usage PARAMS ((FILE *, int)); -static void inform PARAMS ((const char *, ...)); +static char *make_label + PARAMS ((const char *, const char *)); +static char *make_imp_label + PARAMS ((const char *, const char *)); +static bfd *make_one_lib_file + PARAMS ((export_type *, int)); +static bfd *make_head + PARAMS ((void)); +static bfd *make_tail + PARAMS ((void)); +static void gen_lib_file + PARAMS ((void)); +static int pfunc + PARAMS ((const void *, const void *)); +static int nfunc + PARAMS ((const void *, const void *)); +static void remove_null_names + PARAMS ((export_type **)); +static void dtab + PARAMS ((export_type **)); +static void process_duplicates + PARAMS ((export_type **)); +static void fill_ordinals + PARAMS ((export_type **)); +static int alphafunc + PARAMS ((const void *, const void *)); +static void mangle_defs + PARAMS ((void)); +static void usage + PARAMS ((FILE *, int)); +static void inform + PARAMS ((const char *, ...)); static void @@ -1252,7 +1297,7 @@ scan_drectve_symbols (abfd) if (add_stdcall_alias && strchr (c, '@')) { - int lead_at = (*c == '@') ; + int lead_at = (*c == '@') ; char *exported_name = xstrdup (c + lead_at); char *atsym = strchr (exported_name, '@'); *atsym = '\0'; @@ -1290,7 +1335,7 @@ scan_filtered_symbols (abfd, minisyms, s asymbol *sym; const char *symbol_name; - sym = bfd_minisymbol_to_symbol (abfd, false, from, store); + sym = bfd_minisymbol_to_symbol (abfd, FALSE, from, store); if (sym == NULL) bfd_fatal (bfd_get_filename (abfd)); @@ -1349,7 +1394,7 @@ add_excludes (new_excludes) /* See if STRING is on the list of symbols to exclude. */ -static boolean +static bfd_boolean match_exclude (string) const char *string; { @@ -1357,8 +1402,8 @@ match_exclude (string) for (excl_item = excludes; excl_item; excl_item = excl_item->next) if (strcmp (string, excl_item->string) == 0) - return true; - return false; + return TRUE; + return FALSE; } /* Add the default list of symbols to exclude. */ @@ -1394,7 +1439,7 @@ filter_symbols (abfd, minisyms, symcount int keep = 0; asymbol *sym; - sym = bfd_minisymbol_to_symbol (abfd, false, (const PTR) from, store); + sym = bfd_minisymbol_to_symbol (abfd, FALSE, (const PTR) from, store); if (sym == NULL) bfd_fatal (bfd_get_filename (abfd)); @@ -1440,7 +1485,7 @@ scan_all_symbols (abfd) return; } - symcount = bfd_read_minisymbols (abfd, false, &minisyms, &size); + symcount = bfd_read_minisymbols (abfd, FALSE, &minisyms, &size); if (symcount < 0) bfd_fatal (bfd_get_filename (abfd)); @@ -2532,14 +2577,14 @@ make_one_lib_file (exp, i) case PDATA: { /* The .pdata section is 5 words long. - Think of it as: - struct - { - bfd_vma BeginAddress, [0x00] - EndAddress, [0x04] - ExceptionHandler, [0x08] - HandlerData, [0x0c] - PrologEndAddress; [0x10] + Think of it as: + struct + { + bfd_vma BeginAddress, [0x00] + EndAddress, [0x04] + ExceptionHandler, [0x08] + HandlerData, [0x0c] + PrologEndAddress; [0x10] }; */ /* So this pdata section setups up this as a glue linkage to @@ -3255,16 +3300,16 @@ main (ac, av) switch (c) { case OPTION_EXPORT_ALL_SYMS: - export_all_symbols = true; + export_all_symbols = TRUE; break; case OPTION_NO_EXPORT_ALL_SYMS: - export_all_symbols = false; + export_all_symbols = FALSE; break; case OPTION_EXCLUDE_SYMS: add_excludes (optarg); break; case OPTION_NO_DEFAULT_EXCLUDES: - do_default_excludes = false; + do_default_excludes = FALSE; break; case 'x': no_idata4 = 1; @@ -3378,7 +3423,7 @@ main (ac, av) symbols in the .drectve section. The default excludes are meant to avoid exporting DLL entry point and Cygwin32 impure_ptr. */ if (! export_all_symbols) - do_default_excludes = false; + do_default_excludes = FALSE; if (do_default_excludes) set_default_excludes (); @@ -3589,21 +3634,21 @@ mcore_elf_gen_out_file (void) ptr = & fnames; ds = dyn_string_new (100); - dyn_string_append (ds, "-r "); + dyn_string_append_cstr (ds, "-r "); if (mcore_elf_linker_flags != NULL) - dyn_string_append (ds, mcore_elf_linker_flags); + dyn_string_append_cstr (ds, mcore_elf_linker_flags); while (ptr->next != NULL) { - dyn_string_append (ds, ptr->filename); - dyn_string_append (ds, " "); + dyn_string_append_cstr (ds, ptr->filename); + dyn_string_append_cstr (ds, " "); ptr = ptr->next; } - dyn_string_append (ds, "-o "); - dyn_string_append (ds, MCORE_ELF_TMP_OBJ); + dyn_string_append_cstr (ds, "-o "); + dyn_string_append_cstr (ds, MCORE_ELF_TMP_OBJ); if (mcore_elf_linker == NULL) mcore_elf_linker = deduce_name ("ld"); @@ -3616,25 +3661,25 @@ mcore_elf_gen_out_file (void) Do this by recursively invoking dlltool... */ ds = dyn_string_new (100); - dyn_string_append (ds, "-S "); - dyn_string_append (ds, as_name); + dyn_string_append_cstr (ds, "-S "); + dyn_string_append_cstr (ds, as_name); - dyn_string_append (ds, " -e "); - dyn_string_append (ds, MCORE_ELF_TMP_EXP); - dyn_string_append (ds, " -l "); - dyn_string_append (ds, MCORE_ELF_TMP_LIB); - dyn_string_append (ds, " " ); - dyn_string_append (ds, MCORE_ELF_TMP_OBJ); + dyn_string_append_cstr (ds, " -e "); + dyn_string_append_cstr (ds, MCORE_ELF_TMP_EXP); + dyn_string_append_cstr (ds, " -l "); + dyn_string_append_cstr (ds, MCORE_ELF_TMP_LIB); + dyn_string_append_cstr (ds, " " ); + dyn_string_append_cstr (ds, MCORE_ELF_TMP_OBJ); if (verbose) - dyn_string_append (ds, " -v"); + dyn_string_append_cstr (ds, " -v"); if (dontdeltemps) { - dyn_string_append (ds, " -n"); + dyn_string_append_cstr (ds, " -n"); if (dontdeltemps > 1) - dyn_string_append (ds, " -n"); + dyn_string_append_cstr (ds, " -n"); } /* XXX - FIME: ought to check/copy other command line options as well. */ @@ -3645,17 +3690,17 @@ mcore_elf_gen_out_file (void) /* Step four. Feed the .exp and object files to ld -shared to create the dll. */ ds = dyn_string_new (100); - dyn_string_append (ds, "-shared "); + dyn_string_append_cstr (ds, "-shared "); if (mcore_elf_linker_flags) - dyn_string_append (ds, mcore_elf_linker_flags); + dyn_string_append_cstr (ds, mcore_elf_linker_flags); - dyn_string_append (ds, " "); - dyn_string_append (ds, MCORE_ELF_TMP_EXP); - dyn_string_append (ds, " "); - dyn_string_append (ds, MCORE_ELF_TMP_OBJ); - dyn_string_append (ds, " -o "); - dyn_string_append (ds, mcore_elf_out_file); + dyn_string_append_cstr (ds, " "); + dyn_string_append_cstr (ds, MCORE_ELF_TMP_EXP); + dyn_string_append_cstr (ds, " "); + dyn_string_append_cstr (ds, MCORE_ELF_TMP_OBJ); + dyn_string_append_cstr (ds, " -o "); + dyn_string_append_cstr (ds, mcore_elf_out_file); run (mcore_elf_linker, ds->s); diff -uprN binutils-2.13.90.0.16/binutils/doc/binutils.texi binutils-2.13.90.0.18/binutils/doc/binutils.texi --- binutils-2.13.90.0.16/binutils/doc/binutils.texi Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/binutils/doc/binutils.texi Tue Jan 21 10:21:32 2003 @@ -959,7 +959,10 @@ objcopy [@option{-F} @var{bfdname}|@opti [@option{--keep-global-symbols=}@var{filename}] [@option{--localize-symbols=}@var{filename}] [@option{--weaken-symbols=}@var{filename}] - [@option{--alt-machine-code=@var{index}}] + [@option{--alt-machine-code=}@var{index}] + [@option{--prefix-symbols=}@var{string}] + [@option{--prefix-sections=}@var{string}] + [@option{--prefix-alloc-sections=}@var{string}] [@option{-v}|@option{--verbose}] [@option{-V}|@option{--version}] [@option{--help}] @@ -1319,6 +1322,16 @@ a machine is assigned an official code a new code, but other applications still depend on the original code being used. +@item --prefix-symbols=@var{string} +Prefix all symbols in the output file with @var{string}. + +@item --prefix-sections=@var{string} +Prefix all section names in the output file with @var{string}. + +@item --prefix-alloc-sections=@var{string} +Prefix all the names of all allocated sections in the output file with +@var{string}. + @item -V @itemx --version Show the version number of @command{objcopy}. @@ -1579,13 +1592,55 @@ intel syntax mode and AT&T syntax mode. address size and operand size. These four options will be overridden if @option{x86-64}, @option{i386} or @option{i8086} appear later in the option string. Lastly, @option{suffix}, when in AT&T mode, -instructs the dissassembler to print a mnemonic suffix even when the +instructs the disassembler to print a mnemonic suffix even when the suffix could be inferred by the operands. For PPC, @option{booke}, @option{booke32} and @option{booke64} select disassembly of BookE instructions. @option{32} and @option{64} select PowerPC and PowerPC64 disassembly, respectively. +For MIPS, this option controls the printing of register names in +disassembled instructions. Multiple selections from the +following may be specified as a comma separated string, and invalid +options are ignored: + +@table @code +@item gpr-names=@var{ABI} +Print GPR (general-purpose register) names as appropriate +for the specified ABI. By default, GPR names are selected according to +the ABI of the binary being disassembled. + +@item fpr-names=@var{ABI} +Print FPR (floating-point register) names as +appropriate for the specified ABI. By default, FPR numbers are printed +rather than names. + +@item cp0-names=@var{ARCH} +Print CP0 (system control coprocessor; coprocessor 0) register names +as appropriate for the CPU or architecture specified by +@var{ARCH}. By default, CP0 register names are selected according to +the architecture and CPU of the binary being disassembled. + +@item hwr-names=@var{ARCH} +Print HWR (hardware register, used by the @code{rdhwr} instruction) names +as appropriate for the CPU or architecture specified by +@var{ARCH}. By default, HWR names are selected according to +the architecture and CPU of the binary being disassembled. + +@item reg-names=@var{ABI} +Print GPR and FPR names as appropriate for the selected ABI. + +@item reg-names=@var{ARCH} +Print CPU-specific register names (CP0 register and HWR names) +as appropriate for the selected CPU or architecture. +@end table + +For any of the options listed above, @var{ABI} or +@var{ARCH} may be specified as @samp{numeric} to have numbers printed +rather than names, for the selected types of registers. +You can list the available values of @var{ABI} and @var{ARCH} using +the @option{--help} option. + @item -p @itemx --private-headers Print information that is specific to the object file format. The exact @@ -1943,11 +1998,11 @@ octal, @samp{x} for hexadecimal, or @sam @item -e @var{encoding} @itemx --encoding=@var{encoding} Select the character encoding of the strings that are to be found. -Possible values for @var{encoding} are: @samp{s} = single-byte -characters (ASCII, ISO 8859, etc., default), @samp{b} = 16-bit -Bigendian, @samp{l} = 16-bit Littleendian, @samp{B} = 32-bit Bigendian, -@samp{L} = 32-bit Littleendian. Useful for finding wide character -strings. +Possible values for @var{encoding} are: @samp{s} = single-7-bit-byte +characters (ASCII, ISO 8859, etc., default), @samp{S} = +single-8-bit-byte characters, @samp{b} = 16-bit bigendian, @samp{l} = +16-bit littleendian, @samp{B} = 32-bit bigendian, @samp{L} = 32-bit +littleendian. Useful for finding wide character strings. @item --target=@var{bfdname} @cindex object code format @@ -2881,7 +2936,7 @@ files. The options control what particu @var{elffile}@dots{} are the object files to be examined. At the moment, @command{readelf} does not support examining archives, nor does it -support examing 64 bit ELF files. +support examining 64 bit ELF files. @c man end diff -uprN binutils-2.13.90.0.16/binutils/emul_aix.c binutils-2.13.90.0.18/binutils/emul_aix.c --- binutils-2.13.90.0.16/binutils/emul_aix.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/binutils/emul_aix.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* Binutils emulation layer. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. Written by Tom Rix, Redhat. This file is part of GNU Binutils. @@ -26,22 +26,28 @@ #include "libxcoff.h" /* Default to . */ -static boolean big_archive = true; +static bfd_boolean big_archive = TRUE; /* Whether to include 32 bit objects. */ -static boolean X32 = true; +static bfd_boolean X32 = TRUE; /* Whether to include 64 bit objects. */ -static boolean X64 = false; +static bfd_boolean X64 = FALSE; -static void ar_emul_aix_usage PARAMS ((FILE *)); -static boolean ar_emul_aix_append PARAMS ((bfd **, char *, boolean)); -static boolean ar_emul_aix5_append PARAMS ((bfd **, char *, boolean)); -static boolean ar_emul_aix_replace PARAMS ((bfd **, char *, boolean)); -static boolean ar_emul_aix5_replace PARAMS ((bfd **, char *, boolean)); -static boolean ar_emul_aix_parse_arg PARAMS ((char *)); -static boolean ar_emul_aix_internal PARAMS ((bfd **, char *, boolean, - const char *, boolean)); +static void ar_emul_aix_usage + PARAMS ((FILE *)); +static bfd_boolean ar_emul_aix_append + PARAMS ((bfd **, char *, bfd_boolean)); +static bfd_boolean ar_emul_aix5_append + PARAMS ((bfd **, char *, bfd_boolean)); +static bfd_boolean ar_emul_aix_replace + PARAMS ((bfd **, char *, bfd_boolean)); +static bfd_boolean ar_emul_aix5_replace + PARAMS ((bfd **, char *, bfd_boolean)); +static bfd_boolean ar_emul_aix_parse_arg + PARAMS ((char *)); +static bfd_boolean ar_emul_aix_internal + PARAMS ((bfd **, char *, bfd_boolean, const char *, bfd_boolean)); static void ar_emul_aix_usage (fp) @@ -55,13 +61,13 @@ ar_emul_aix_usage (fp) fprintf (fp, _(" [-X32_64] - accepts 32 and 64 bit objects\n")); } -static boolean +static bfd_boolean ar_emul_aix_internal (after_bfd, file_name, verbose, target_name, is_append) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; const char * target_name; - boolean is_append; + bfd_boolean is_append; { bfd *temp; bfd *try_bfd; @@ -78,11 +84,11 @@ ar_emul_aix_internal (after_bfd, file_na AR_EMUL_ELEMENT_CHECK (try_bfd, file_name); if (bfd_xcoff_is_xcoff64 (try_bfd) && (! X64)) - return false; + return FALSE; if (bfd_xcoff_is_xcoff32 (try_bfd) && bfd_check_format (try_bfd, bfd_object) && (! X32)) - return false; + return FALSE; if (is_append) { @@ -96,101 +102,82 @@ ar_emul_aix_internal (after_bfd, file_na *after_bfd = try_bfd; (*after_bfd)->next = temp; - return true; + return TRUE; } -static boolean +static bfd_boolean ar_emul_aix_append (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { return ar_emul_aix_internal (after_bfd, file_name, verbose, - "aixcoff64-rs6000", true); + "aixcoff64-rs6000", TRUE); } -static boolean +static bfd_boolean ar_emul_aix5_append (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { return ar_emul_aix_internal (after_bfd, file_name, verbose, - "aix5coff64-rs6000", true); + "aix5coff64-rs6000", TRUE); } -static boolean +static bfd_boolean ar_emul_aix_replace (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { return ar_emul_aix_internal (after_bfd, file_name, verbose, - "aixcoff64-rs6000", false); + "aixcoff64-rs6000", FALSE); } -static boolean +static bfd_boolean ar_emul_aix5_replace (after_bfd, file_name, verbose) bfd **after_bfd; char *file_name; - boolean verbose; + bfd_boolean verbose; { return ar_emul_aix_internal (after_bfd, file_name, verbose, - "aix5coff64-rs6000", false); + "aix5coff64-rs6000", FALSE); } -boolean -ar_emul_aix_create (abfd_out, archive_file_name, file_name) - bfd **abfd_out; - char *archive_file_name; - char *file_name ATTRIBUTE_UNUSED; -{ - char *target = "aixcoff-rs6000"; - - /* Create an empty archive. */ - *abfd_out = bfd_openw (archive_file_name, target); - - if (*abfd_out == NULL) - bfd_fatal (archive_file_name); - - /* set to small or big format. */ - /* not done. */ - return true; -} - -static boolean +static bfd_boolean ar_emul_aix_parse_arg (arg) char *arg; { if (strncmp (arg, "-X32_64", 6) == 0) { - big_archive = true; - X32 = true; - X64 = true; + big_archive = TRUE; + X32 = TRUE; + X64 = TRUE; } else if (strncmp (arg, "-X32", 3) == 0) { - big_archive = true; - X32 = true; - X64 = false; + big_archive = TRUE; + X32 = TRUE; + X64 = FALSE; } else if (strncmp (arg, "-X64", 3) == 0) { - big_archive = true; - X32 = false; - X64 = true; + big_archive = TRUE; + X32 = FALSE; + X64 = TRUE; } else if (strncmp (arg, "-g", 2) == 0) { - big_archive = false; - X32 = true; - X64 = false; + big_archive = FALSE; + X32 = TRUE; + X64 = FALSE; } else - return false; + return FALSE; - return true; + return TRUE; } struct bin_emulation_xfer_struct bin_aix_emulation = diff -uprN binutils-2.13.90.0.16/binutils/ieee.c binutils-2.13.90.0.18/binutils/ieee.c --- binutils-2.13.90.0.16/binutils/ieee.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/binutils/ieee.c Mon Dec 16 12:22:52 2002 @@ -42,8 +42,8 @@ struct ieee_block const char *filename; /* The index of the function type, for a BB4 or BB6 block. */ unsigned int fnindx; - /* True if this function is being skipped. */ - boolean skip; + /* TRUE if this function is being skipped. */ + bfd_boolean skip; }; /* This structure is the block stack. */ @@ -156,7 +156,7 @@ struct ieee_info /* The block stack. */ struct ieee_blockstack blockstack; /* Whether we have seen a BB1 or BB2. */ - boolean saw_filename; + bfd_boolean saw_filename; /* The variables. */ struct ieee_vars vars; /* The global variables, after a global typedef block. */ @@ -251,44 +251,53 @@ enum builtin_types static void ieee_error PARAMS ((struct ieee_info *, const bfd_byte *, const char *)); -static void ieee_eof PARAMS ((struct ieee_info *)); -static char *savestring PARAMS ((const char *, unsigned long)); -static boolean ieee_read_number +static void ieee_eof + PARAMS ((struct ieee_info *)); +static char *savestring + PARAMS ((const char *, unsigned long)); +static bfd_boolean ieee_read_number PARAMS ((struct ieee_info *, const bfd_byte **, bfd_vma *)); -static boolean ieee_read_optional_number - PARAMS ((struct ieee_info *, const bfd_byte **, bfd_vma *, boolean *)); -static boolean ieee_read_id +static bfd_boolean ieee_read_optional_number + PARAMS ((struct ieee_info *, const bfd_byte **, bfd_vma *, bfd_boolean *)); +static bfd_boolean ieee_read_id PARAMS ((struct ieee_info *, const bfd_byte **, const char **, unsigned long *)); -static boolean ieee_read_optional_id +static bfd_boolean ieee_read_optional_id PARAMS ((struct ieee_info *, const bfd_byte **, const char **, - unsigned long *, boolean *)); -static boolean ieee_read_expression + unsigned long *, bfd_boolean *)); +static bfd_boolean ieee_read_expression PARAMS ((struct ieee_info *, const bfd_byte **, bfd_vma *)); static debug_type ieee_builtin_type PARAMS ((struct ieee_info *, const bfd_byte *, unsigned int)); -static boolean ieee_alloc_type - PARAMS ((struct ieee_info *, unsigned int, boolean)); -static boolean ieee_read_type_index +static bfd_boolean ieee_alloc_type + PARAMS ((struct ieee_info *, unsigned int, bfd_boolean)); +static bfd_boolean ieee_read_type_index PARAMS ((struct ieee_info *, const bfd_byte **, debug_type *)); -static int ieee_regno_to_genreg PARAMS ((bfd *, int)); -static int ieee_genreg_to_regno PARAMS ((bfd *, int)); -static boolean parse_ieee_bb PARAMS ((struct ieee_info *, const bfd_byte **)); -static boolean parse_ieee_be PARAMS ((struct ieee_info *, const bfd_byte **)); -static boolean parse_ieee_nn PARAMS ((struct ieee_info *, const bfd_byte **)); -static boolean parse_ieee_ty PARAMS ((struct ieee_info *, const bfd_byte **)); -static boolean parse_ieee_atn PARAMS ((struct ieee_info *, const bfd_byte **)); -static boolean ieee_read_cxx_misc +static int ieee_regno_to_genreg + PARAMS ((bfd *, int)); +static int ieee_genreg_to_regno + PARAMS ((bfd *, int)); +static bfd_boolean parse_ieee_bb + PARAMS ((struct ieee_info *, const bfd_byte **)); +static bfd_boolean parse_ieee_be + PARAMS ((struct ieee_info *, const bfd_byte **)); +static bfd_boolean parse_ieee_nn + PARAMS ((struct ieee_info *, const bfd_byte **)); +static bfd_boolean parse_ieee_ty + PARAMS ((struct ieee_info *, const bfd_byte **)); +static bfd_boolean parse_ieee_atn + PARAMS ((struct ieee_info *, const bfd_byte **)); +static bfd_boolean ieee_read_cxx_misc PARAMS ((struct ieee_info *, const bfd_byte **, unsigned long)); -static boolean ieee_read_cxx_class +static bfd_boolean ieee_read_cxx_class PARAMS ((struct ieee_info *, const bfd_byte **, unsigned long)); -static boolean ieee_read_cxx_defaults +static bfd_boolean ieee_read_cxx_defaults PARAMS ((struct ieee_info *, const bfd_byte **, unsigned long)); -static boolean ieee_read_reference +static bfd_boolean ieee_read_reference PARAMS ((struct ieee_info *, const bfd_byte **)); -static boolean ieee_require_asn +static bfd_boolean ieee_require_asn PARAMS ((struct ieee_info *, const bfd_byte **, bfd_vma *)); -static boolean ieee_require_atn65 +static bfd_boolean ieee_require_atn65 PARAMS ((struct ieee_info *, const bfd_byte **, const char **, unsigned long *)); @@ -334,24 +343,24 @@ savestring (start, len) /* Read a number which must be present in an IEEE file. */ -static boolean +static bfd_boolean ieee_read_number (info, pp, pv) struct ieee_info *info; const bfd_byte **pp; bfd_vma *pv; { - return ieee_read_optional_number (info, pp, pv, (boolean *) NULL); + return ieee_read_optional_number (info, pp, pv, (bfd_boolean *) NULL); } /* Read a number in an IEEE file. If ppresent is not NULL, the number need not be there. */ -static boolean +static bfd_boolean ieee_read_optional_number (info, pp, pv, ppresent) struct ieee_info *info; const bfd_byte **pp; bfd_vma *pv; - boolean *ppresent; + bfd_boolean *ppresent; { ieee_record_enum_type b; @@ -359,11 +368,11 @@ ieee_read_optional_number (info, pp, pv, { if (ppresent != NULL) { - *ppresent = false; - return true; + *ppresent = FALSE; + return TRUE; } ieee_eof (info); - return false; + return FALSE; } b = (ieee_record_enum_type) **pp; @@ -373,8 +382,8 @@ ieee_read_optional_number (info, pp, pv, { *pv = (bfd_vma) b; if (ppresent != NULL) - *ppresent = true; - return true; + *ppresent = TRUE; + return TRUE; } if (b >= ieee_number_repeat_start_enum && b <= ieee_number_repeat_end_enum) @@ -385,7 +394,7 @@ ieee_read_optional_number (info, pp, pv, if (*pp + i - 1 >= info->pend) { ieee_eof (info); - return false; + return FALSE; } *pv = 0; @@ -397,44 +406,44 @@ ieee_read_optional_number (info, pp, pv, } if (ppresent != NULL) - *ppresent = true; + *ppresent = TRUE; - return true; + return TRUE; } if (ppresent != NULL) { --*pp; - *ppresent = false; - return true; + *ppresent = FALSE; + return TRUE; } ieee_error (info, *pp - 1, _("invalid number")); - return false; + return FALSE; } /* Read a required string from an IEEE file. */ -static boolean +static bfd_boolean ieee_read_id (info, pp, pname, pnamlen) struct ieee_info *info; const bfd_byte **pp; const char **pname; unsigned long *pnamlen; { - return ieee_read_optional_id (info, pp, pname, pnamlen, (boolean *) NULL); + return ieee_read_optional_id (info, pp, pname, pnamlen, (bfd_boolean *) NULL); } /* Read a string from an IEEE file. If ppresent is not NULL, the string is optional. */ -static boolean +static bfd_boolean ieee_read_optional_id (info, pp, pname, pnamlen, ppresent) struct ieee_info *info; const bfd_byte **pp; const char **pname; unsigned long *pnamlen; - boolean *ppresent; + bfd_boolean *ppresent; { bfd_byte b; unsigned long len; @@ -442,7 +451,7 @@ ieee_read_optional_id (info, pp, pname, if (*pp >= info->pend) { ieee_eof (info); - return false; + return FALSE; } b = **pp; @@ -465,17 +474,17 @@ ieee_read_optional_id (info, pp, pname, if (ppresent != NULL) { --*pp; - *ppresent = false; - return true; + *ppresent = FALSE; + return TRUE; } ieee_error (info, *pp - 1, _("invalid string length")); - return false; + return FALSE; } if ((unsigned long) (info->pend - *pp) < len) { ieee_eof (info); - return false; + return FALSE; } *pname = (const char *) *pp; @@ -483,9 +492,9 @@ ieee_read_optional_id (info, pp, pname, *pp += len; if (ppresent != NULL) - *ppresent = true; + *ppresent = TRUE; - return true; + return TRUE; } /* Read an expression from an IEEE file. Since this code is only used @@ -494,7 +503,7 @@ ieee_read_optional_id (info, pp, pname, seen in debugging information. This can be easily extended if necessary. */ -static boolean +static bfd_boolean ieee_read_expression (info, pp, pv) struct ieee_info *info; const bfd_byte **pp; @@ -513,20 +522,20 @@ ieee_read_expression (info, pp, pv) { const bfd_byte *start; bfd_vma val; - boolean present; + bfd_boolean present; ieee_record_enum_type c; start = *pp; if (! ieee_read_optional_number (info, pp, &val, &present)) - return false; + return FALSE; if (present) { if (esp - expr_stack >= EXPR_STACK_SIZE) { ieee_error (info, start, _("expression stack overflow")); - return false; + return FALSE; } *esp++ = val; continue; @@ -554,20 +563,20 @@ ieee_read_expression (info, pp, pv) asection *s; if (! ieee_read_number (info, pp, &indx)) - return false; + return FALSE; for (s = info->abfd->sections; s != NULL; s = s->next) if ((bfd_vma) s->target_index == indx) break; if (s == NULL) { ieee_error (info, start, _("unknown section")); - return false; + return FALSE; } if (esp - expr_stack >= EXPR_STACK_SIZE) { ieee_error (info, start, _("expression stack overflow")); - return false; + return FALSE; } *esp++ = bfd_get_section_vma (info->abfd, s); @@ -582,7 +591,7 @@ ieee_read_expression (info, pp, pv) if (esp - expr_stack < 2) { ieee_error (info, start, _("expression stack underflow")); - return false; + return FALSE; } v1 = *--esp; @@ -596,12 +605,12 @@ ieee_read_expression (info, pp, pv) if (esp - 1 != expr_stack) { ieee_error (info, expr_start, _("expression stack mismatch")); - return false; + return FALSE; } *pv = *--esp; - return true; + return TRUE; } /* Return an IEEE builtin type. */ @@ -648,42 +657,42 @@ ieee_builtin_type (info, p, indx) break; case builtin_signed_char: - type = debug_make_int_type (dhandle, 1, false); + type = debug_make_int_type (dhandle, 1, FALSE); name = "signed char"; break; case builtin_unsigned_char: - type = debug_make_int_type (dhandle, 1, true); + type = debug_make_int_type (dhandle, 1, TRUE); name = "unsigned char"; break; case builtin_signed_short_int: - type = debug_make_int_type (dhandle, 2, false); + type = debug_make_int_type (dhandle, 2, FALSE); name = "signed short int"; break; case builtin_unsigned_short_int: - type = debug_make_int_type (dhandle, 2, true); + type = debug_make_int_type (dhandle, 2, TRUE); name = "unsigned short int"; break; case builtin_signed_long: - type = debug_make_int_type (dhandle, 4, false); + type = debug_make_int_type (dhandle, 4, FALSE); name = "signed long"; break; case builtin_unsigned_long: - type = debug_make_int_type (dhandle, 4, true); + type = debug_make_int_type (dhandle, 4, TRUE); name = "unsigned long"; break; case builtin_signed_long_long: - type = debug_make_int_type (dhandle, 8, false); + type = debug_make_int_type (dhandle, 8, FALSE); name = "signed long long"; break; case builtin_unsigned_long_long: - type = debug_make_int_type (dhandle, 8, true); + type = debug_make_int_type (dhandle, 8, TRUE); name = "unsigned long long"; break; @@ -717,64 +726,64 @@ ieee_builtin_type (info, p, indx) ieee_builtin_type (info, p, ((unsigned int) builtin_int)), - 0, -1, true); + 0, -1, TRUE); name = "QUOTED STRING"; break; case builtin_instruction_address: /* FIXME: This should be a code address. */ - type = debug_make_int_type (dhandle, 4, true); + type = debug_make_int_type (dhandle, 4, TRUE); name = "instruction address"; break; case builtin_int: /* FIXME: The size for this type should depend upon the processor. */ - type = debug_make_int_type (dhandle, 4, false); + type = debug_make_int_type (dhandle, 4, FALSE); name = "int"; break; case builtin_unsigned: /* FIXME: The size for this type should depend upon the processor. */ - type = debug_make_int_type (dhandle, 4, true); + type = debug_make_int_type (dhandle, 4, TRUE); name = "unsigned"; break; case builtin_unsigned_int: /* FIXME: The size for this type should depend upon the processor. */ - type = debug_make_int_type (dhandle, 4, true); + type = debug_make_int_type (dhandle, 4, TRUE); name = "unsigned int"; break; case builtin_char: - type = debug_make_int_type (dhandle, 1, false); + type = debug_make_int_type (dhandle, 1, FALSE); name = "char"; break; case builtin_long: - type = debug_make_int_type (dhandle, 4, false); + type = debug_make_int_type (dhandle, 4, FALSE); name = "long"; break; case builtin_short: - type = debug_make_int_type (dhandle, 2, false); + type = debug_make_int_type (dhandle, 2, FALSE); name = "short"; break; case builtin_unsigned_short: - type = debug_make_int_type (dhandle, 2, true); + type = debug_make_int_type (dhandle, 2, TRUE); name = "unsigned short"; break; case builtin_short_int: - type = debug_make_int_type (dhandle, 2, false); + type = debug_make_int_type (dhandle, 2, FALSE); name = "short int"; break; case builtin_signed_short: - type = debug_make_int_type (dhandle, 2, false); + type = debug_make_int_type (dhandle, 2, FALSE); name = "signed short"; break; @@ -793,15 +802,15 @@ ieee_builtin_type (info, p, indx) return type; } -/* Allocate more space in the type table. If ref is true, this is a +/* Allocate more space in the type table. If ref is TRUE, this is a reference to the type; if it is not already defined, we should set up an indirect type. */ -static boolean +static bfd_boolean ieee_alloc_type (info, indx, ref) struct ieee_info *info; unsigned int indx; - boolean ref; + bfd_boolean ref; { unsigned int nalloc; register struct ieee_type *t; @@ -839,16 +848,16 @@ ieee_alloc_type (info, indx, ref) t->type = debug_make_indirect_type (info->dhandle, t->pslot, (const char *) NULL); if (t->type == NULL) - return false; + return FALSE; } } - return true; + return TRUE; } /* Read a type index and return the corresponding type. */ -static boolean +static bfd_boolean ieee_read_type_index (info, pp, ptype) struct ieee_info *info; const bfd_byte **pp; @@ -860,29 +869,29 @@ ieee_read_type_index (info, pp, ptype) start = *pp; if (! ieee_read_number (info, pp, &indx)) - return false; + return FALSE; if (indx < 256) { *ptype = ieee_builtin_type (info, start, indx); if (*ptype == NULL) - return false; - return true; + return FALSE; + return TRUE; } indx -= 256; - if (! ieee_alloc_type (info, indx, true)) - return false; + if (! ieee_alloc_type (info, indx, TRUE)) + return FALSE; *ptype = info->types.types[indx].type; - return true; + return TRUE; } /* Parse IEEE debugging information for a file. This is passed the bytes which compose the Debug Information Part of an IEEE file. */ -boolean +bfd_boolean parse_ieee (dhandle, abfd, bytes, len) PTR dhandle; bfd *abfd; @@ -898,7 +907,7 @@ parse_ieee (dhandle, abfd, bytes, len) info.bytes = bytes; info.pend = bytes + len; info.blockstack.bsp = info.blockstack.stack; - info.saw_filename = false; + info.saw_filename = FALSE; info.vars.alloc = 0; info.vars.vars = NULL; info.global_vars = NULL; @@ -926,38 +935,38 @@ parse_ieee (dhandle, abfd, bytes, len) if (c <= ieee_number_repeat_end_enum) { ieee_error (&info, record_start, _("unexpected number")); - return false; + return FALSE; } switch (c) { default: ieee_error (&info, record_start, _("unexpected record type")); - return false; + return FALSE; case ieee_bb_record_enum: if (! parse_ieee_bb (&info, &p)) - return false; + return FALSE; break; case ieee_be_record_enum: if (! parse_ieee_be (&info, &p)) - return false; + return FALSE; break; case ieee_nn_record: if (! parse_ieee_nn (&info, &p)) - return false; + return FALSE; break; case ieee_ty_record_enum: if (! parse_ieee_ty (&info, &p)) - return false; + return FALSE; break; case ieee_atn_record_enum: if (! parse_ieee_atn (&info, &p)) - return false; + return FALSE; break; } } @@ -966,15 +975,15 @@ parse_ieee (dhandle, abfd, bytes, len) { ieee_error (&info, (const bfd_byte *) NULL, _("blocks left on stack at end")); - return false; + return FALSE; } - return true; + return TRUE; } /* Handle an IEEE BB record. */ -static boolean +static bfd_boolean parse_ieee_bb (info, pp) struct ieee_info *info; const bfd_byte **pp; @@ -986,7 +995,7 @@ parse_ieee_bb (info, pp) unsigned long namlen; char *namcopy = NULL; unsigned int fnindx; - boolean skip; + bfd_boolean skip; block_start = *pp; @@ -995,10 +1004,10 @@ parse_ieee_bb (info, pp) if (! ieee_read_number (info, pp, &size) || ! ieee_read_id (info, pp, &name, &namlen)) - return false; + return FALSE; fnindx = (unsigned int) -1; - skip = false; + skip = FALSE; switch (b) { @@ -1006,10 +1015,10 @@ parse_ieee_bb (info, pp) /* BB1: Type definitions local to a module. */ namcopy = savestring (name, namlen); if (namcopy == NULL) - return false; + return FALSE; if (! debug_set_filename (info->dhandle, namcopy)) - return false; - info->saw_filename = true; + return FALSE; + info->saw_filename = TRUE; /* Discard any variables or types we may have seen before. */ if (info->vars.vars != NULL) @@ -1038,8 +1047,8 @@ parse_ieee_bb (info, pp) /* BB2: Global type definitions. The name is supposed to be empty, but we don't check. */ if (! debug_set_filename (info->dhandle, "*global*")) - return false; - info->saw_filename = true; + return FALSE; + info->saw_filename = TRUE; break; case 3: @@ -1057,7 +1066,7 @@ parse_ieee_bb (info, pp) if (! ieee_read_number (info, pp, &stackspace) || ! ieee_read_number (info, pp, &typindx) || ! ieee_read_expression (info, pp, &offset)) - return false; + return FALSE; /* We have no way to record the stack space. FIXME. */ @@ -1065,13 +1074,13 @@ parse_ieee_bb (info, pp) { return_type = ieee_builtin_type (info, block_start, typindx); if (return_type == DEBUG_TYPE_NULL) - return false; + return FALSE; } else { typindx -= 256; - if (! ieee_alloc_type (info, typindx, true)) - return false; + if (! ieee_alloc_type (info, typindx, TRUE)) + return FALSE; fnindx = typindx; return_type = info->types.types[typindx].type; if (debug_get_type_kind (info->dhandle, return_type) @@ -1082,10 +1091,10 @@ parse_ieee_bb (info, pp) namcopy = savestring (name, namlen); if (namcopy == NULL) - return false; + return FALSE; if (! debug_record_function (info->dhandle, namcopy, return_type, - true, offset)) - return false; + TRUE, offset)) + return FALSE; } break; @@ -1098,19 +1107,19 @@ parse_ieee_bb (info, pp) for (i = 0; i < 6; i++) { bfd_vma ignore; - boolean present; + bfd_boolean present; if (! ieee_read_optional_number (info, pp, &ignore, &present)) - return false; + return FALSE; if (! present) break; } namcopy = savestring (name, namlen); if (namcopy == NULL) - return false; + return FALSE; if (! debug_start_source (info->dhandle, namcopy)) - return false; + return FALSE; } break; @@ -1122,14 +1131,14 @@ parse_ieee_bb (info, pp) if (! ieee_read_number (info, pp, &stackspace) || ! ieee_read_number (info, pp, &typindx) || ! ieee_read_expression (info, pp, &offset)) - return false; + return FALSE; /* We have no way to record the stack space. FIXME. */ if (namlen == 0) { if (! debug_start_block (info->dhandle, offset)) - return false; + return FALSE; /* Change b to indicate that this is a block rather than a function. */ b = 0x86; @@ -1142,7 +1151,7 @@ parse_ieee_bb (info, pp) converting from IEEE to other debug formats work better. */ if (strncmp (name, "__XRYCPP", namlen) == 0) - skip = true; + skip = TRUE; else { debug_type return_type; @@ -1152,13 +1161,13 @@ parse_ieee_bb (info, pp) return_type = ieee_builtin_type (info, block_start, typindx); if (return_type == NULL) - return false; + return FALSE; } else { typindx -= 256; - if (! ieee_alloc_type (info, typindx, true)) - return false; + if (! ieee_alloc_type (info, typindx, TRUE)) + return FALSE; fnindx = typindx; return_type = info->types.types[typindx].type; if (debug_get_type_kind (info->dhandle, return_type) @@ -1169,10 +1178,10 @@ parse_ieee_bb (info, pp) namcopy = savestring (name, namlen); if (namcopy == NULL) - return false; + return FALSE; if (! debug_record_function (info->dhandle, namcopy, - return_type, false, offset)) - return false; + return_type, FALSE, offset)) + return FALSE; } } } @@ -1185,29 +1194,29 @@ parse_ieee_bb (info, pp) const char *inam, *vstr; unsigned long inamlen, vstrlen; bfd_vma tool_type; - boolean present; + bfd_boolean present; unsigned int i; if (! info->saw_filename) { namcopy = savestring (name, namlen); if (namcopy == NULL) - return false; + return FALSE; if (! debug_set_filename (info->dhandle, namcopy)) - return false; - info->saw_filename = true; + return FALSE; + info->saw_filename = TRUE; } if (! ieee_read_id (info, pp, &inam, &inamlen) || ! ieee_read_number (info, pp, &tool_type) || ! ieee_read_optional_id (info, pp, &vstr, &vstrlen, &present)) - return false; + return FALSE; for (i = 0; i < 6; i++) { bfd_vma ignore; if (! ieee_read_optional_number (info, pp, &ignore, &present)) - return false; + return FALSE; if (! present) break; } @@ -1219,19 +1228,19 @@ parse_ieee_bb (info, pp) information. FIXME. */ { bfd_vma sectype, secindx, offset, map; - boolean present; + bfd_boolean present; if (! ieee_read_number (info, pp, §ype) || ! ieee_read_number (info, pp, &secindx) || ! ieee_read_expression (info, pp, &offset) || ! ieee_read_optional_number (info, pp, &map, &present)) - return false; + return FALSE; } break; default: ieee_error (info, block_start, _("unknown BB type")); - return false; + return FALSE; } @@ -1240,7 +1249,7 @@ parse_ieee_bb (info, pp) if (info->blockstack.bsp >= info->blockstack.stack + BLOCKSTACK_SIZE) { ieee_error (info, (const bfd_byte *) NULL, _("stack overflow")); - return false; + return FALSE; } info->blockstack.bsp->kind = b; @@ -1250,12 +1259,12 @@ parse_ieee_bb (info, pp) info->blockstack.bsp->skip = skip; ++info->blockstack.bsp; - return true; + return TRUE; } /* Handle an IEEE BE record. */ -static boolean +static bfd_boolean parse_ieee_be (info, pp) struct ieee_info *info; const bfd_byte **pp; @@ -1265,7 +1274,7 @@ parse_ieee_be (info, pp) if (info->blockstack.bsp <= info->blockstack.stack) { ieee_error (info, *pp, _("stack underflow")); - return false; + return FALSE; } --info->blockstack.bsp; @@ -1305,11 +1314,11 @@ parse_ieee_be (info, pp) case 4: case 6: if (! ieee_read_expression (info, pp, &offset)) - return false; + return FALSE; if (! info->blockstack.bsp->skip) { if (! debug_end_function (info->dhandle, offset + 1)) - return false; + return FALSE; } break; @@ -1317,9 +1326,9 @@ parse_ieee_be (info, pp) /* This is BE6 when BB6 started a block rather than a local function. */ if (! ieee_read_expression (info, pp, &offset)) - return false; + return FALSE; if (! debug_end_block (info->dhandle, offset + 1)) - return false; + return FALSE; break; case 5: @@ -1336,7 +1345,7 @@ parse_ieee_be (info, pp) if (bl->kind == 5) { if (! debug_start_source (info->dhandle, bl->filename)) - return false; + return FALSE; break; } } @@ -1346,7 +1355,7 @@ parse_ieee_be (info, pp) case 11: if (! ieee_read_expression (info, pp, &offset)) - return false; + return FALSE; /* We just ignore the module size. FIXME. */ break; @@ -1355,12 +1364,12 @@ parse_ieee_be (info, pp) break; } - return true; + return TRUE; } /* Parse an NN record. */ -static boolean +static bfd_boolean parse_ieee_nn (info, pp) struct ieee_info *info; const bfd_byte **pp; @@ -1374,12 +1383,12 @@ parse_ieee_nn (info, pp) if (! ieee_read_number (info, pp, &varindx) || ! ieee_read_id (info, pp, &name, &namlen)) - return false; + return FALSE; if (varindx < 32) { ieee_error (info, nn_start, _("illegal variable index")); - return false; + return FALSE; } varindx -= 32; @@ -1403,12 +1412,12 @@ parse_ieee_nn (info, pp) info->vars.vars[varindx].name = name; info->vars.vars[varindx].namlen = namlen; - return true; + return TRUE; } /* Parse a TY record. */ -static boolean +static bfd_boolean parse_ieee_ty (info, pp) struct ieee_info *info; const bfd_byte **pp; @@ -1416,7 +1425,7 @@ parse_ieee_ty (info, pp) const bfd_byte *ty_start, *ty_var_start, *ty_code_start; bfd_vma typeindx, varindx, tc; PTR dhandle; - boolean tag, typdef; + bfd_boolean tag, typdef; debug_type *arg_slots; unsigned long type_bitsize; debug_type type; @@ -1424,59 +1433,59 @@ parse_ieee_ty (info, pp) ty_start = *pp; if (! ieee_read_number (info, pp, &typeindx)) - return false; + return FALSE; if (typeindx < 256) { ieee_error (info, ty_start, _("illegal type index")); - return false; + return FALSE; } typeindx -= 256; - if (! ieee_alloc_type (info, typeindx, false)) - return false; + if (! ieee_alloc_type (info, typeindx, FALSE)) + return FALSE; if (**pp != 0xce) { ieee_error (info, *pp, _("unknown TY code")); - return false; + return FALSE; } ++*pp; ty_var_start = *pp; if (! ieee_read_number (info, pp, &varindx)) - return false; + return FALSE; if (varindx < 32) { ieee_error (info, ty_var_start, _("illegal variable index")); - return false; + return FALSE; } varindx -= 32; if (varindx >= info->vars.alloc || info->vars.vars[varindx].name == NULL) { ieee_error (info, ty_var_start, _("undefined variable in TY")); - return false; + return FALSE; } ty_code_start = *pp; if (! ieee_read_number (info, pp, &tc)) - return false; + return FALSE; dhandle = info->dhandle; - tag = false; - typdef = false; + tag = FALSE; + typdef = FALSE; arg_slots = NULL; type_bitsize = 0; switch (tc) { default: ieee_error (info, ty_code_start, _("unknown TY code")); - return false; + return FALSE; case '!': /* Unknown type, with size. We treat it as int. FIXME. */ @@ -1484,8 +1493,8 @@ parse_ieee_ty (info, pp) bfd_vma size; if (! ieee_read_number (info, pp, &size)) - return false; - type = debug_make_int_type (dhandle, size, false); + return FALSE; + type = debug_make_int_type (dhandle, size, FALSE); } break; @@ -1499,14 +1508,14 @@ parse_ieee_ty (info, pp) if (! ieee_read_type_index (info, pp, &ele_type) || ! ieee_read_number (info, pp, &lower) || ! ieee_read_number (info, pp, &upper)) - return false; + return FALSE; type = debug_make_array_type (dhandle, ele_type, ieee_builtin_type (info, ty_code_start, ((unsigned int) builtin_int)), (bfd_signed_vma) lower, (bfd_signed_vma) upper, - false); + FALSE); } break; @@ -1521,7 +1530,7 @@ parse_ieee_ty (info, pp) unsigned int i; if (! ieee_read_number (info, pp, &size)) - return false; + return FALSE; /* FIXME: we ignore the enumeration size. */ alloc = 10; @@ -1532,10 +1541,10 @@ parse_ieee_ty (info, pp) { const char *name; unsigned long namlen; - boolean present; + bfd_boolean present; if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) - return false; + return FALSE; if (! present) break; @@ -1548,7 +1557,7 @@ parse_ieee_ty (info, pp) names[c] = savestring (name, namlen); if (names[c] == NULL) - return false; + return FALSE; ++c; } @@ -1559,7 +1568,7 @@ parse_ieee_ty (info, pp) vals[i] = i; type = debug_make_enum_type (dhandle, names, vals); - tag = true; + tag = TRUE; } break; @@ -1572,7 +1581,7 @@ parse_ieee_ty (info, pp) unsigned int c; if (! ieee_read_number (info, pp, &size)) - return false; + return FALSE; alloc = 10; fields = (debug_field *) xmalloc (alloc * sizeof *fields); @@ -1581,18 +1590,18 @@ parse_ieee_ty (info, pp) { const char *name; unsigned long namlen; - boolean present; + bfd_boolean present; debug_type ftype; bfd_vma bitpos, bitsize; if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) - return false; + return FALSE; if (! present) break; if (! ieee_read_type_index (info, pp, &ftype) || ! ieee_read_number (info, pp, &bitpos) || ! ieee_read_number (info, pp, &bitsize)) - return false; + return FALSE; if (c + 1 >= alloc) { @@ -1605,14 +1614,14 @@ parse_ieee_ty (info, pp) ftype, bitpos, bitsize, DEBUG_VISIBILITY_PUBLIC); if (fields[c] == NULL) - return false; + return FALSE; ++c; } fields[c] = NULL; - type = debug_make_struct_type (dhandle, true, size, fields); - tag = true; + type = debug_make_struct_type (dhandle, TRUE, size, fields); + tag = TRUE; } break; @@ -1632,15 +1641,15 @@ parse_ieee_ty (info, pp) { const char *name; unsigned long namlen; - boolean present; + bfd_boolean present; bfd_vma val; if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) - return false; + return FALSE; if (! present) break; if (! ieee_read_number (info, pp, &val)) - return false; + return FALSE; /* If the length of the name is zero, then the value is actually the size of the enum. We ignore this @@ -1659,7 +1668,7 @@ parse_ieee_ty (info, pp) names[c] = savestring (name, namlen); if (names[c] == NULL) - return false; + return FALSE; vals[c] = (bfd_signed_vma) val; ++c; } @@ -1667,7 +1676,7 @@ parse_ieee_ty (info, pp) names[c] = NULL; type = debug_make_enum_type (dhandle, names, vals); - tag = true; + tag = TRUE; } break; @@ -1678,7 +1687,7 @@ parse_ieee_ty (info, pp) debug_type t; if (! ieee_read_type_index (info, pp, &t)) - return false; + return FALSE; type = debug_make_pointer_type (dhandle, t); } break; @@ -1692,7 +1701,7 @@ parse_ieee_ty (info, pp) || ! ieee_read_number (info, pp, &high) || ! ieee_read_number (info, pp, &signedp) || ! ieee_read_number (info, pp, &size)) - return false; + return FALSE; type = debug_make_range_type (dhandle, debug_make_int_type (dhandle, size, @@ -1711,7 +1720,7 @@ parse_ieee_ty (info, pp) unsigned int c; if (! ieee_read_number (info, pp, &size)) - return false; + return FALSE; alloc = 10; fields = (debug_field *) xmalloc (alloc * sizeof *fields); @@ -1720,19 +1729,19 @@ parse_ieee_ty (info, pp) { const char *name; unsigned long namlen; - boolean present; + bfd_boolean present; bfd_vma tindx; bfd_vma offset; debug_type ftype; bfd_vma bitsize; if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) - return false; + return FALSE; if (! present) break; if (! ieee_read_number (info, pp, &tindx) || ! ieee_read_number (info, pp, &offset)) - return false; + return FALSE; if (tindx < 256) { @@ -1745,8 +1754,8 @@ parse_ieee_ty (info, pp) struct ieee_type *t; tindx -= 256; - if (! ieee_alloc_type (info, tindx, true)) - return false; + if (! ieee_alloc_type (info, tindx, TRUE)) + return FALSE; t = info->types.types + tindx; ftype = t->type; bitsize = t->bitsize; @@ -1765,22 +1774,22 @@ parse_ieee_ty (info, pp) ftype, offset, bitsize, DEBUG_VISIBILITY_PUBLIC); if (fields[c] == NULL) - return false; + return FALSE; ++c; } fields[c] = NULL; type = debug_make_struct_type (dhandle, tc == 'S', size, fields); - tag = true; + tag = TRUE; } break; case 'T': /* Typedef. */ if (! ieee_read_type_index (info, pp, &type)) - return false; - typdef = true; + return FALSE; + typdef = TRUE; break; case 'X': @@ -1790,7 +1799,7 @@ parse_ieee_ty (info, pp) bfd_vma attr; debug_type rtype; bfd_vma nargs; - boolean present; + bfd_boolean present; struct ieee_var *pv; /* FIXME: We ignore the attribute and the argument names. */ @@ -1798,14 +1807,14 @@ parse_ieee_ty (info, pp) if (! ieee_read_number (info, pp, &attr) || ! ieee_read_type_index (info, pp, &rtype) || ! ieee_read_number (info, pp, &nargs)) - return false; + return FALSE; do { const char *name; unsigned long namlen; if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) - return false; + return FALSE; } while (present); @@ -1824,7 +1833,7 @@ parse_ieee_ty (info, pp) } type = debug_make_function_type (dhandle, rtype, (debug_type *) NULL, - false); + FALSE); } break; @@ -1841,13 +1850,13 @@ parse_ieee_ty (info, pp) if (! ieee_read_type_index (info, pp, &etype) || ! ieee_read_number (info, pp, &high)) - return false; + return FALSE; type = debug_make_array_type (dhandle, etype, ieee_builtin_type (info, ty_code_start, ((unsigned int) builtin_int)), - 0, (bfd_signed_vma) high, false); + 0, (bfd_signed_vma) high, FALSE); } break; @@ -1860,7 +1869,7 @@ parse_ieee_ty (info, pp) /* FIXME: I don't know what the name means. */ if (! ieee_read_id (info, pp, &name, &namlen)) - return false; + return FALSE; type = debug_make_complex_type (dhandle, tc == 'c' ? 4 : 8); } @@ -1869,35 +1878,35 @@ parse_ieee_ty (info, pp) case 'f': /* Pascal file name. FIXME. */ ieee_error (info, ty_code_start, _("Pascal file name not supported")); - return false; + return FALSE; case 'g': /* Bitfield type. */ { bfd_vma signedp, bitsize, dummy; const bfd_byte *hold; - boolean present; + bfd_boolean present; if (! ieee_read_number (info, pp, &signedp) || ! ieee_read_number (info, pp, &bitsize)) - return false; + return FALSE; /* I think the documentation says that there is a type index, but some actual files do not have one. */ hold = *pp; if (! ieee_read_optional_number (info, pp, &dummy, &present)) - return false; + return FALSE; if (! present) { /* FIXME: This is just a guess. */ type = debug_make_int_type (dhandle, 4, - signedp ? false : true); + signedp ? FALSE : TRUE); } else { *pp = hold; if (! ieee_read_type_index (info, pp, &type)) - return false; + return FALSE; } type_bitsize = bitsize; } @@ -1911,13 +1920,13 @@ parse_ieee_ty (info, pp) if (! ieee_read_number (info, pp, &kind) || ! ieee_read_type_index (info, pp, &t)) - return false; + return FALSE; switch (kind) { default: ieee_error (info, ty_start, _("unsupported qualifier")); - return false; + return FALSE; case 1: type = debug_make_const_type (dhandle, t); @@ -1938,11 +1947,11 @@ parse_ieee_ty (info, pp) if (! ieee_read_number (info, pp, &size) || ! ieee_read_type_index (info, pp, &etype)) - return false; + return FALSE; /* FIXME: We ignore the size. */ - type = debug_make_set_type (dhandle, etype, false); + type = debug_make_set_type (dhandle, etype, FALSE); } break; @@ -1953,8 +1962,8 @@ parse_ieee_ty (info, pp) bfd_vma attr, frame_type, push_mask, nargs, level, father; debug_type rtype; debug_type *arg_types; - boolean varargs; - boolean present; + bfd_boolean varargs; + bfd_boolean present; /* FIXME: We ignore some of this information. */ @@ -1965,11 +1974,11 @@ parse_ieee_ty (info, pp) || ! ieee_read_number (info, pp, &push_mask) || ! ieee_read_type_index (info, pp, &rtype) || ! ieee_read_number (info, pp, &nargs)) - return false; + return FALSE; if (nargs == (bfd_vma) -1) { arg_types = NULL; - varargs = false; + varargs = FALSE; } else { @@ -1979,11 +1988,11 @@ parse_ieee_ty (info, pp) xmalloc ((nargs + 1) * sizeof *arg_types)); for (i = 0; i < nargs; i++) if (! ieee_read_type_index (info, pp, arg_types + i)) - return false; + return FALSE; /* If the last type is pointer to void, this is really a varargs function. */ - varargs = false; + varargs = FALSE; if (nargs > 0) { debug_type last; @@ -1996,7 +2005,7 @@ parse_ieee_ty (info, pp) == DEBUG_KIND_VOID)) { --nargs; - varargs = true; + varargs = TRUE; } } @@ -2026,7 +2035,7 @@ parse_ieee_ty (info, pp) } if (! ieee_read_number (info, pp, &level) || ! ieee_read_optional_number (info, pp, &father, &present)) - return false; + return FALSE; /* We can't distinguish between a global function and a static function. */ @@ -2052,7 +2061,7 @@ parse_ieee_ty (info, pp) /* Record the type in the table. */ if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; info->vars.vars[varindx].type = type; @@ -2088,7 +2097,7 @@ parse_ieee_ty (info, pp) it->type = type; } if (type == NULL) - return false; + return FALSE; } info->types.types[typeindx].type = type; @@ -2102,12 +2111,12 @@ parse_ieee_ty (info, pp) if (info->types.types[typeindx].pslot != NULL) *info->types.types[typeindx].pslot = type; - return true; + return TRUE; } /* Parse an ATN record. */ -static boolean +static bfd_boolean parse_ieee_atn (info, pp) struct ieee_info *info; const bfd_byte **pp; @@ -2122,19 +2131,19 @@ parse_ieee_atn (info, pp) const char *name; unsigned long namlen; char *namcopy; - boolean present; + bfd_boolean present; int blocktype; atn_start = *pp; if (! ieee_read_number (info, pp, &varindx) || ! ieee_read_type_index (info, pp, &type)) - return false; + return FALSE; atn_code_start = *pp; if (! ieee_read_number (info, pp, &atn_code)) - return false; + return FALSE; if (varindx == 0) { @@ -2150,7 +2159,7 @@ parse_ieee_atn (info, pp) return ieee_read_number (info, pp, &v); ieee_error (info, atn_start, _("illegal variable index")); - return false; + return FALSE; } else { @@ -2188,7 +2197,7 @@ parse_ieee_atn (info, pp) else { ieee_error (info, atn_start, _("undefined variable in ATN")); - return false; + return FALSE; } } @@ -2231,12 +2240,12 @@ parse_ieee_atn (info, pp) { default: ieee_error (info, atn_code_start, _("unknown ATN type")); - return false; + return FALSE; case 1: /* Automatic variable. */ if (! ieee_read_number (info, pp, &v)) - return false; + return FALSE; namcopy = savestring (name, namlen); if (type == NULL) type = debug_make_void_type (dhandle); @@ -2247,7 +2256,7 @@ parse_ieee_atn (info, pp) case 2: /* Register variable. */ if (! ieee_read_number (info, pp, &v)) - return false; + return FALSE; namcopy = savestring (name, namlen); if (type == NULL) type = debug_make_void_type (dhandle); @@ -2259,7 +2268,7 @@ parse_ieee_atn (info, pp) case 3: /* Static variable. */ if (! ieee_require_asn (info, pp, &v)) - return false; + return FALSE; namcopy = savestring (name, namlen); if (type == NULL) type = debug_make_void_type (dhandle); @@ -2284,30 +2293,30 @@ parse_ieee_atn (info, pp) /* External function. We don't currently record these. FIXME. */ if (pvar != NULL) pvar->kind = IEEE_EXTERNAL; - return true; + return TRUE; case 5: /* External variable. We don't currently record these. FIXME. */ if (pvar != NULL) pvar->kind = IEEE_EXTERNAL; - return true; + return TRUE; case 7: if (! ieee_read_number (info, pp, &v) || ! ieee_read_number (info, pp, &v2) || ! ieee_read_optional_number (info, pp, &v3, &present)) - return false; + return FALSE; if (present) { if (! ieee_read_optional_number (info, pp, &v4, &present)) - return false; + return FALSE; } /* We just ignore the two optional fields in v3 and v4, since they are not defined. */ if (! ieee_require_asn (info, pp, &v3)) - return false; + return FALSE; /* We have no way to record the column number. FIXME. */ @@ -2316,7 +2325,7 @@ parse_ieee_atn (info, pp) case 8: /* Global variable. */ if (! ieee_require_asn (info, pp, &v)) - return false; + return FALSE; namcopy = savestring (name, namlen); if (type == NULL) type = debug_make_void_type (dhandle); @@ -2327,10 +2336,10 @@ parse_ieee_atn (info, pp) case 9: /* Variable lifetime information. */ if (! ieee_read_number (info, pp, &v)) - return false; + return FALSE; /* We have no way to record this information. FIXME. */ - return true; + return TRUE; case 10: /* Locked register. The spec says that there are two required @@ -2338,7 +2347,7 @@ parse_ieee_atn (info, pp) one. */ if (! ieee_read_number (info, pp, &v) || ! ieee_read_optional_number (info, pp, &v2, &present)) - return false; + return FALSE; /* I think this means a variable that is both in a register and a frame slot. We ignore the frame slot. FIXME. */ @@ -2354,8 +2363,8 @@ parse_ieee_atn (info, pp) /* Reserved for FORTRAN common. */ ieee_error (info, atn_code_start, _("unsupported ATN11")); - /* Return true to keep going. */ - return true; + /* Return TRUE to keep going. */ + return TRUE; case 12: /* Based variable. */ @@ -2365,15 +2374,15 @@ parse_ieee_atn (info, pp) if (! ieee_read_number (info, pp, &v) || ! ieee_read_number (info, pp, &v2) || ! ieee_read_optional_number (info, pp, &v3, &present)) - return false; + return FALSE; if (present) { if (! ieee_read_optional_number (info, pp, &v4, &present)) - return false; + return FALSE; if (present) { if (! ieee_read_optional_number (info, pp, &v5, &present)) - return false; + return FALSE; } } @@ -2381,33 +2390,33 @@ parse_ieee_atn (info, pp) ieee_error (info, atn_code_start, _("unsupported ATN12")); - /* Return true to keep going. */ - return true; + /* Return TRUE to keep going. */ + return TRUE; case 16: /* Constant. The description of this that I have is ambiguous, so I'm not going to try to implement it. */ if (! ieee_read_number (info, pp, &v) || ! ieee_read_optional_number (info, pp, &v2, &present)) - return false; + return FALSE; if (present) { if (! ieee_read_optional_number (info, pp, &v2, &present)) - return false; + return FALSE; if (present) { if (! ieee_read_optional_id (info, pp, &name, &namlen, &present)) - return false; + return FALSE; } } if ((ieee_record_enum_type) **pp == ieee_e2_first_byte_enum) { if (! ieee_require_asn (info, pp, &v3)) - return false; + return FALSE; } - return true; + return TRUE; case 19: /* Static variable from assembler. */ @@ -2415,7 +2424,7 @@ parse_ieee_atn (info, pp) if (! ieee_read_number (info, pp, &v) || ! ieee_read_optional_number (info, pp, &v2, &present) || ! ieee_require_asn (info, pp, &v3)) - return false; + return FALSE; namcopy = savestring (name, namlen); /* We don't really handle this correctly. FIXME. */ return debug_record_variable (dhandle, namcopy, @@ -2432,7 +2441,7 @@ parse_ieee_atn (info, pp) if (! ieee_read_number (info, pp, &v) || ! ieee_read_number (info, pp, &v2) || ! ieee_read_optional_id (info, pp, &name, &namlen, &present)) - return false; + return FALSE; if (atn_code == 62 && v == 80) { @@ -2440,7 +2449,7 @@ parse_ieee_atn (info, pp) { ieee_error (info, atn_code_start, _("unexpected string in C++ misc")); - return false; + return FALSE; } return ieee_read_cxx_misc (info, pp, v2); } @@ -2453,21 +2462,21 @@ parse_ieee_atn (info, pp) { default: ieee_error (info, *pp, _("bad misc record")); - return false; + return FALSE; case ieee_at_record_enum: if (! ieee_require_atn65 (info, pp, &name, &namlen)) - return false; + return FALSE; break; case ieee_e2_first_byte_enum: if (! ieee_require_asn (info, pp, &v3)) - return false; + return FALSE; break; } } - return true; + return TRUE; } /*NOTREACHED*/ @@ -2476,7 +2485,7 @@ parse_ieee_atn (info, pp) /* Handle C++ debugging miscellaneous records. This is called for procedure miscellaneous records of type 80. */ -static boolean +static bfd_boolean ieee_read_cxx_misc (info, pp, count) struct ieee_info *info; const bfd_byte **pp; @@ -2489,18 +2498,18 @@ ieee_read_cxx_misc (info, pp, count) /* Get the category of C++ misc record. */ if (! ieee_require_asn (info, pp, &category)) - return false; + return FALSE; --count; switch (category) { default: ieee_error (info, start, _("unrecognized C++ misc record")); - return false; + return FALSE; case 'T': if (! ieee_read_cxx_class (info, pp, count)) - return false; + return FALSE; break; case 'M': @@ -2514,12 +2523,12 @@ ieee_read_cxx_misc (info, pp, count) function. */ if (! ieee_require_asn (info, pp, &flags)) - return false; + return FALSE; if (*pp < info->pend && (ieee_record_enum_type) **pp == ieee_at_record_enum) { if (! ieee_require_atn65 (info, pp, &name, &namlen)) - return false; + return FALSE; } /* This is emitted for method functions, but I don't think we @@ -2531,7 +2540,7 @@ ieee_read_cxx_misc (info, pp, count) case 'B': if (! ieee_read_cxx_defaults (info, pp, count)) - return false; + return FALSE; break; case 'z': @@ -2546,7 +2555,7 @@ ieee_read_cxx_misc (info, pp, count) || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen) || ! ieee_require_atn65 (info, pp, &class, &classlen) || ! ieee_require_asn (info, pp, &control)) - return false; + return FALSE; /* FIXME: We should now track down name and change its type. */ } @@ -2554,17 +2563,17 @@ ieee_read_cxx_misc (info, pp, count) case 'R': if (! ieee_read_reference (info, pp)) - return false; + return FALSE; break; } - return true; + return TRUE; } /* Read a C++ class definition. This is a pmisc type 80 record of category 'T'. */ -static boolean +static bfd_boolean ieee_read_cxx_class (info, pp, count) struct ieee_info *info; const bfd_byte **pp; @@ -2591,17 +2600,17 @@ ieee_read_cxx_class (info, pp, count) } *methods; unsigned int methods_count, methods_alloc; debug_type vptrbase; - boolean ownvptr; + bfd_boolean ownvptr; debug_method *dmethods; start = *pp; if (! ieee_require_asn (info, pp, &class)) - return false; + return FALSE; --count; if (! ieee_require_atn65 (info, pp, &tag, &taglen)) - return false; + return FALSE; --count; /* Find the C struct with this name. */ @@ -2613,7 +2622,7 @@ ieee_read_cxx_class (info, pp, count) if (it == NULL) { ieee_error (info, start, _("undefined C++ object")); - return false; + return FALSE; } dhandle = info->dhandle; @@ -2628,7 +2637,7 @@ ieee_read_cxx_class (info, pp, count) methods_count = 0; methods_alloc = 0; vptrbase = DEBUG_TYPE_NULL; - ownvptr = false; + ownvptr = FALSE; structfields = debug_get_fields (dhandle, it->type); @@ -2640,14 +2649,14 @@ ieee_read_cxx_class (info, pp, count) spec_start = *pp; if (! ieee_require_asn (info, pp, &id)) - return false; + return FALSE; --count; switch (id) { default: ieee_error (info, spec_start, _("unrecognized C++ object spec")); - return false; + return FALSE; case 'b': { @@ -2657,7 +2666,7 @@ ieee_read_cxx_class (info, pp, count) char *basecopy; debug_type basetype; bfd_vma bitpos; - boolean virtualp; + bfd_boolean virtualp; enum debug_visibility visibility; debug_baseclass baseclass; @@ -2667,7 +2676,7 @@ ieee_read_cxx_class (info, pp, count) || ! ieee_require_atn65 (info, pp, &basename, &baselen) || ! ieee_require_asn (info, pp, &cinline) || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen)) - return false; + return FALSE; count -= 4; /* We have no way of recording friend information, so we @@ -2683,7 +2692,7 @@ ieee_read_cxx_class (info, pp, count) if ((fieldlen == 0) == (cinline == 0)) { ieee_error (info, start, _("unsupported C++ object type")); - return false; + return FALSE; } basecopy = savestring (basename, baselen); @@ -2693,7 +2702,7 @@ ieee_read_cxx_class (info, pp, count) if (basetype == DEBUG_TYPE_NULL) { ieee_error (info, start, _("C++ base class not defined")); - return false; + return FALSE; } if (fieldlen == 0) @@ -2705,7 +2714,7 @@ ieee_read_cxx_class (info, pp, count) if (structfields == NULL) { ieee_error (info, start, _("C++ object has no fields")); - return false; + return FALSE; } for (pf = structfields; *pf != DEBUG_FIELD_NULL; pf++) @@ -2714,7 +2723,7 @@ ieee_read_cxx_class (info, pp, count) fname = debug_get_field_name (dhandle, *pf); if (fname == NULL) - return false; + return FALSE; if (fname[0] == fieldname[0] && strncmp (fname, fieldname, fieldlen) == 0 && strlen (fname) == fieldlen) @@ -2724,16 +2733,16 @@ ieee_read_cxx_class (info, pp, count) { ieee_error (info, start, _("C++ base class not found in container")); - return false; + return FALSE; } bitpos = debug_get_field_bitpos (dhandle, *pf); } if ((flags & BASEFLAGS_VIRTUAL) != 0) - virtualp = true; + virtualp = TRUE; else - virtualp = false; + virtualp = FALSE; if ((flags & BASEFLAGS_PRIVATE) != 0) visibility = DEBUG_VISIBILITY_PRIVATE; else @@ -2742,7 +2751,7 @@ ieee_read_cxx_class (info, pp, count) baseclass = debug_make_baseclass (dhandle, basetype, bitpos, virtualp, visibility); if (baseclass == DEBUG_BASECLASS_NULL) - return false; + return FALSE; if (baseclasses_count + 1 >= baseclasses_alloc) { @@ -2765,7 +2774,7 @@ ieee_read_cxx_class (info, pp, count) const char *fieldname, *mangledname; unsigned long fieldlen, mangledlen; char *fieldcopy; - boolean staticp; + bfd_boolean staticp; debug_type ftype; const debug_field *pf = NULL; enum debug_visibility visibility; @@ -2776,12 +2785,12 @@ ieee_read_cxx_class (info, pp, count) if (! ieee_require_asn (info, pp, &flags) || ! ieee_require_atn65 (info, pp, &fieldname, &fieldlen) || ! ieee_require_atn65 (info, pp, &mangledname, &mangledlen)) - return false; + return FALSE; count -= 3; fieldcopy = savestring (fieldname, fieldlen); - staticp = (flags & CXXFLAGS_STATIC) != 0 ? true : false; + staticp = (flags & CXXFLAGS_STATIC) != 0 ? TRUE : FALSE; if (staticp) { @@ -2810,7 +2819,7 @@ ieee_read_cxx_class (info, pp, count) if (structfields == NULL) { ieee_error (info, start, _("C++ object has no fields")); - return false; + return FALSE; } for (pf = structfields, findx = 0; @@ -2821,7 +2830,7 @@ ieee_read_cxx_class (info, pp, count) fname = debug_get_field_name (dhandle, *pf); if (fname == NULL) - return false; + return FALSE; if (fname[0] == mangledname[0] && strncmp (fname, mangledname, mangledlen) == 0 && strlen (fname) == mangledlen) @@ -2831,7 +2840,7 @@ ieee_read_cxx_class (info, pp, count) { ieee_error (info, start, _("C++ data member not found in container")); - return false; + return FALSE; } ftype = debug_get_field_type (dhandle, *pf); @@ -2858,7 +2867,7 @@ ieee_read_cxx_class (info, pp, count) } if (ftype == DEBUG_TYPE_NULL) - return false; + return FALSE; it->fslots[findx] = ftype; ftype = debug_make_indirect_type (dhandle, it->fslots + findx, @@ -2866,13 +2875,13 @@ ieee_read_cxx_class (info, pp, count) } } if (ftype == DEBUG_TYPE_NULL) - return false; + return FALSE; switch (flags & CXXFLAGS_VISIBILITY) { default: ieee_error (info, start, _("unknown C++ visibility")); - return false; + return FALSE; case CXXFLAGS_VISIBILITY_PUBLIC: visibility = DEBUG_VISIBILITY_PUBLIC; @@ -2906,14 +2915,14 @@ ieee_read_cxx_class (info, pp, count) if (bitpos == (bfd_vma) -1 || bitsize == (bfd_vma) -1) { ieee_error (info, start, _("bad C++ field bit pos or size")); - return false; + return FALSE; } field = debug_make_field (dhandle, fieldcopy, ftype, bitpos, bitsize, visibility); } if (field == DEBUG_FIELD_NULL) - return false; + return FALSE; if (field_count + 1 >= field_alloc) { @@ -2937,7 +2946,7 @@ ieee_read_cxx_class (info, pp, count) struct ieee_var *pv, *pvend; debug_type type; enum debug_visibility visibility; - boolean constp, volatilep; + bfd_boolean constp, volatilep; char *mangledcopy; debug_method_variant mv; struct ieee_method *meth; @@ -2946,18 +2955,18 @@ ieee_read_cxx_class (info, pp, count) if (! ieee_require_asn (info, pp, &flags) || ! ieee_require_atn65 (info, pp, &name, &namlen) || ! ieee_require_atn65 (info, pp, &mangled, &mangledlen)) - return false; + return FALSE; count -= 3; if (id != 'v') voffset = 0; else { if (! ieee_require_asn (info, pp, &voffset)) - return false; + return FALSE; --count; } if (! ieee_require_asn (info, pp, &control)) - return false; + return FALSE; --count; /* We just ignore the control information. */ @@ -2985,20 +2994,20 @@ ieee_read_cxx_class (info, pp, count) ieee_builtin_type (info, start, (unsigned int) builtin_void), (debug_type *) NULL, - false)); + FALSE)); } else { debug_type return_type; const debug_type *arg_types; - boolean varargs; + bfd_boolean varargs; if (debug_get_type_kind (dhandle, pv->type) != DEBUG_KIND_FUNCTION) { ieee_error (info, start, _("bad type for C++ method function")); - return false; + return FALSE; } return_type = debug_get_return_type (dhandle, pv->type); @@ -3008,7 +3017,7 @@ ieee_read_cxx_class (info, pp, count) { ieee_error (info, start, _("no type information for C++ method function")); - return false; + return FALSE; } type = debug_make_method_type (dhandle, return_type, it->type, @@ -3016,13 +3025,13 @@ ieee_read_cxx_class (info, pp, count) varargs); } if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; switch (flags & CXXFLAGS_VISIBILITY) { default: ieee_error (info, start, _("unknown C++ visibility")); - return false; + return FALSE; case CXXFLAGS_VISIBILITY_PUBLIC: visibility = DEBUG_VISIBILITY_PUBLIC; @@ -3037,8 +3046,8 @@ ieee_read_cxx_class (info, pp, count) break; } - constp = (flags & CXXFLAGS_CONST) != 0 ? true : false; - volatilep = (flags & CXXFLAGS_VOLATILE) != 0 ? true : false; + constp = (flags & CXXFLAGS_CONST) != 0 ? TRUE : FALSE; + volatilep = (flags & CXXFLAGS_VOLATILE) != 0 ? TRUE : FALSE; mangledcopy = savestring (mangled, mangledlen); @@ -3047,7 +3056,7 @@ ieee_read_cxx_class (info, pp, count) if (id == 'v') { ieee_error (info, start, _("C++ static virtual method")); - return false; + return FALSE; } mv = debug_make_static_method_variant (dhandle, mangledcopy, type, visibility, @@ -3070,7 +3079,7 @@ ieee_read_cxx_class (info, pp, count) vcontext); } if (mv == DEBUG_METHOD_VARIANT_NULL) - return false; + return FALSE; for (meth = methods, im = 0; im < methods_count; meth++, im++) if (meth->namlen == namlen @@ -3116,7 +3125,7 @@ ieee_read_cxx_class (info, pp, count) /* We have no way to store this information, so we just ignore it. */ if (! ieee_require_asn (info, pp, &spec)) - return false; + return FALSE; --count; if ((spec & 4) != 0) { @@ -3126,7 +3135,7 @@ ieee_read_cxx_class (info, pp, count) if (! ieee_require_atn65 (info, pp, &filename, &filenamlen) || ! ieee_require_asn (info, pp, &lineno)) - return false; + return FALSE; count -= 2; } else if ((spec & 8) != 0) @@ -3135,14 +3144,14 @@ ieee_read_cxx_class (info, pp, count) unsigned long mangledlen; if (! ieee_require_atn65 (info, pp, &mangled, &mangledlen)) - return false; + return FALSE; --count; } else { ieee_error (info, start, _("unrecognized C++ object overhead spec")); - return false; + return FALSE; } } break; @@ -3159,7 +3168,7 @@ ieee_read_cxx_class (info, pp, count) || ! ieee_require_asn (info, pp, &vsize) || ! ieee_require_atn65 (info, pp, &basename, &baselen) || ! ieee_require_asn (info, pp, &control)) - return false; + return FALSE; count -= 4; /* We just ignore the control number. We don't care what @@ -3169,7 +3178,7 @@ ieee_read_cxx_class (info, pp, count) /* FIXME: We can't handle multiple virtual table pointers. */ if (baselen == 0) - ownvptr = true; + ownvptr = TRUE; else { char *basecopy; @@ -3181,7 +3190,7 @@ ieee_read_cxx_class (info, pp, count) if (vptrbase == DEBUG_TYPE_NULL) { ieee_error (info, start, _("undefined C++ vtable")); - return false; + return FALSE; } } } @@ -3208,7 +3217,7 @@ ieee_read_cxx_class (info, pp, count) dmethods[i] = debug_make_method (dhandle, namcopy, methods[i].variants); if (dmethods[i] == DEBUG_METHOD_NULL) - return false; + return FALSE; } dmethods[i] = DEBUG_METHOD_NULL; free (methods); @@ -3224,14 +3233,14 @@ ieee_read_cxx_class (info, pp, count) fields, baseclasses, dmethods, vptrbase, ownvptr); if (it->slot == DEBUG_TYPE_NULL) - return false; + return FALSE; - return true; + return TRUE; } /* Read C++ default argument value and reference type information. */ -static boolean +static bfd_boolean ieee_read_cxx_defaults (info, pp, count) struct ieee_info *info; const bfd_byte **pp; @@ -3252,12 +3261,12 @@ ieee_read_cxx_defaults (info, pp, count) || info->blockstack.bsp[-1].fnindx == (unsigned int) -1) { ieee_error (info, start, _("C++ default values not in a function")); - return false; + return FALSE; } if (! ieee_require_atn65 (info, pp, &fnname, &fnlen) || ! ieee_require_asn (info, pp, &defcount)) - return false; + return FALSE; count -= 2; while (defcount-- > 0) @@ -3267,7 +3276,7 @@ ieee_read_cxx_defaults (info, pp, count) unsigned long strvallen; if (! ieee_require_asn (info, pp, &type)) - return false; + return FALSE; --count; switch (type) @@ -3279,20 +3288,20 @@ ieee_read_cxx_defaults (info, pp, count) case 1: case 2: if (! ieee_require_asn (info, pp, &val)) - return false; + return FALSE; --count; break; case 3: case 7: if (! ieee_require_atn65 (info, pp, &strval, &strvallen)) - return false; + return FALSE; --count; break; default: ieee_error (info, start, _("unrecognized C++ default type")); - return false; + return FALSE; } /* We have no way to record the default argument values, so we @@ -3314,7 +3323,7 @@ ieee_read_cxx_defaults (info, pp, count) debug_type target; if (! ieee_require_asn (info, pp, &indx)) - return false; + return FALSE; /* The index is 1 based. */ --indx; if (arg_slots == NULL @@ -3323,22 +3332,22 @@ ieee_read_cxx_defaults (info, pp, count) != DEBUG_KIND_POINTER)) { ieee_error (info, start, _("reference parameter is not a pointer")); - return false; + return FALSE; } target = debug_get_target_type (dhandle, arg_slots[indx]); arg_slots[indx] = debug_make_reference_type (dhandle, target); if (arg_slots[indx] == DEBUG_TYPE_NULL) - return false; + return FALSE; } } - return true; + return TRUE; } /* Read a C++ reference definition. */ -static boolean +static bfd_boolean ieee_read_reference (info, pp) struct ieee_info *info; const bfd_byte **pp; @@ -3353,18 +3362,18 @@ ieee_read_reference (info, pp) start = *pp; if (! ieee_require_asn (info, pp, &flags)) - return false; + return FALSE; /* Giving the class name before the member name is in an addendum to the spec. */ if (flags == 3) { if (! ieee_require_atn65 (info, pp, &class, &classlen)) - return false; + return FALSE; } if (! ieee_require_atn65 (info, pp, &name, &namlen)) - return false; + return FALSE; pslot = NULL; if (flags != 3) @@ -3393,7 +3402,7 @@ ieee_read_reference (info, pp) for (i = (int) vars->alloc - 1; i >= 0; i--) { - boolean found; + bfd_boolean found; pv = vars->vars + i; @@ -3402,33 +3411,33 @@ ieee_read_reference (info, pp) || strncmp (pv->name, name, namlen) != 0) continue; - found = false; + found = FALSE; switch (flags) { default: ieee_error (info, start, _("unrecognized C++ reference type")); - return false; + return FALSE; case 0: /* Global variable or function. */ if (pv->kind == IEEE_GLOBAL || pv->kind == IEEE_EXTERNAL || pv->kind == IEEE_FUNCTION) - found = true; + found = TRUE; break; case 1: /* Global static variable or function. */ if (pv->kind == IEEE_STATIC || pv->kind == IEEE_FUNCTION) - found = true; + found = TRUE; break; case 2: /* Local variable. */ if (pv->kind == IEEE_LOCAL) - found = true; + found = TRUE; break; } @@ -3463,7 +3472,7 @@ ieee_read_reference (info, pp) { ieee_error (info, start, "C++ reference in class with no fields"); - return false; + return FALSE; } for (findx = 0; *pf != DEBUG_FIELD_NULL; pf++, findx++) @@ -3472,7 +3481,7 @@ ieee_read_reference (info, pp) fname = debug_get_field_name (info->dhandle, *pf); if (fname == NULL) - return false; + return FALSE; if (strncmp (fname, name, namlen) == 0 && strlen (fname) == namlen) { @@ -3490,7 +3499,7 @@ ieee_read_reference (info, pp) if (pslot == NULL) { ieee_error (info, start, _("C++ reference not found")); - return false; + return FALSE; } /* We allocated the type of the object as an indirect type pointing @@ -3498,20 +3507,20 @@ ieee_read_reference (info, pp) if (debug_get_type_kind (info->dhandle, *pslot) != DEBUG_KIND_POINTER) { ieee_error (info, start, _("C++ reference is not pointer")); - return false; + return FALSE; } target = debug_get_target_type (info->dhandle, *pslot); *pslot = debug_make_reference_type (info->dhandle, target); if (*pslot == DEBUG_TYPE_NULL) - return false; + return FALSE; - return true; + return TRUE; } /* Require an ASN record. */ -static boolean +static bfd_boolean ieee_require_asn (info, pp, pv) struct ieee_info *info; const bfd_byte **pp; @@ -3527,7 +3536,7 @@ ieee_require_asn (info, pp, pv) if (c != ieee_e2_first_byte_enum) { ieee_error (info, start, _("missing required ASN")); - return false; + return FALSE; } ++*pp; @@ -3535,20 +3544,20 @@ ieee_require_asn (info, pp, pv) if (c != ieee_asn_record_enum) { ieee_error (info, start, _("missing required ASN")); - return false; + return FALSE; } ++*pp; /* Just ignore the variable index. */ if (! ieee_read_number (info, pp, &varindx)) - return false; + return FALSE; return ieee_read_expression (info, pp, pv); } /* Require an ATN65 record. */ -static boolean +static bfd_boolean ieee_require_atn65 (info, pp, pname, pnamlen) struct ieee_info *info; const bfd_byte **pp; @@ -3565,7 +3574,7 @@ ieee_require_atn65 (info, pp, pname, pna if (c != ieee_at_record_enum) { ieee_error (info, start, _("missing required ATN65")); - return false; + return FALSE; } ++*pp; @@ -3573,21 +3582,21 @@ ieee_require_atn65 (info, pp, pname, pna if (c != ieee_atn_record_enum) { ieee_error (info, start, _("missing required ATN65")); - return false; + return FALSE; } ++*pp; if (! ieee_read_number (info, pp, &name_indx) || ! ieee_read_number (info, pp, &type_indx) || ! ieee_read_number (info, pp, &atn_code)) - return false; + return FALSE; /* Just ignore name_indx. */ if (type_indx != 0 || atn_code != 65) { ieee_error (info, start, _("bad ATN65 record")); - return false; + return FALSE; } return ieee_read_id (info, pp, pname, pnamlen); @@ -3709,7 +3718,7 @@ struct ieee_type_class class. */ const char *vclass; /* Whether this class holds its own virtual table. */ - boolean ownvptr; + bfd_boolean ownvptr; /* The largest virtual table offset seen so far. */ bfd_vma voffset; /* The current method. */ @@ -3800,7 +3809,7 @@ struct ieee_defined_enum /* Type index. */ unsigned int indx; /* Whether this enum has been defined. */ - boolean defined; + bfd_boolean defined; /* Tag. */ const char *tag; /* Names. */ @@ -3852,7 +3861,7 @@ struct ieee_pending_parm /* Type index. */ unsigned int type; /* Whether the type is a reference. */ - boolean referencep; + bfd_boolean referencep; /* Kind. */ enum debug_parm_kind kind; /* Value. */ @@ -3867,7 +3876,7 @@ struct ieee_handle bfd *abfd; /* Whether we got an error in a subroutine called via traverse or map_over_sections. */ - boolean error; + bfd_boolean error; /* Current data buffer list. */ struct ieee_buflist *current; /* Current data buffer. */ @@ -3945,111 +3954,154 @@ struct ieee_handle bfd_vma highaddr; }; -static boolean ieee_init_buffer +static bfd_boolean ieee_init_buffer PARAMS ((struct ieee_handle *, struct ieee_buflist *)); -static boolean ieee_change_buffer +static bfd_boolean ieee_change_buffer PARAMS ((struct ieee_handle *, struct ieee_buflist *)); -static boolean ieee_append_buffer +static bfd_boolean ieee_append_buffer PARAMS ((struct ieee_handle *, struct ieee_buflist *, struct ieee_buflist *)); -static boolean ieee_real_write_byte PARAMS ((struct ieee_handle *, int)); -static boolean ieee_write_2bytes PARAMS ((struct ieee_handle *, int)); -static boolean ieee_write_number PARAMS ((struct ieee_handle *, bfd_vma)); -static boolean ieee_write_id PARAMS ((struct ieee_handle *, const char *)); -static boolean ieee_write_asn +static bfd_boolean ieee_real_write_byte + PARAMS ((struct ieee_handle *, int)); +static bfd_boolean ieee_write_2bytes + PARAMS ((struct ieee_handle *, int)); +static bfd_boolean ieee_write_number + PARAMS ((struct ieee_handle *, bfd_vma)); +static bfd_boolean ieee_write_id + PARAMS ((struct ieee_handle *, const char *)); +static bfd_boolean ieee_write_asn PARAMS ((struct ieee_handle *, unsigned int, bfd_vma)); -static boolean ieee_write_atn65 +static bfd_boolean ieee_write_atn65 PARAMS ((struct ieee_handle *, unsigned int, const char *)); -static boolean ieee_push_type - PARAMS ((struct ieee_handle *, unsigned int, unsigned int, boolean, - boolean)); -static unsigned int ieee_pop_type PARAMS ((struct ieee_handle *)); -static void ieee_pop_unused_type PARAMS ((struct ieee_handle *)); +static bfd_boolean ieee_push_type + PARAMS ((struct ieee_handle *, unsigned int, unsigned int, bfd_boolean, + bfd_boolean)); +static unsigned int ieee_pop_type + PARAMS ((struct ieee_handle *)); +static void ieee_pop_unused_type + PARAMS ((struct ieee_handle *)); static unsigned int ieee_pop_type_used - PARAMS ((struct ieee_handle *, boolean)); -static boolean ieee_add_range - PARAMS ((struct ieee_handle *, boolean, bfd_vma, bfd_vma)); -static boolean ieee_start_range PARAMS ((struct ieee_handle *, bfd_vma)); -static boolean ieee_end_range PARAMS ((struct ieee_handle *, bfd_vma)); -static boolean ieee_define_type - PARAMS ((struct ieee_handle *, unsigned int, boolean, boolean)); -static boolean ieee_define_named_type + PARAMS ((struct ieee_handle *, bfd_boolean)); +static bfd_boolean ieee_add_range + PARAMS ((struct ieee_handle *, bfd_boolean, bfd_vma, bfd_vma)); +static bfd_boolean ieee_start_range + PARAMS ((struct ieee_handle *, bfd_vma)); +static bfd_boolean ieee_end_range + PARAMS ((struct ieee_handle *, bfd_vma)); +static bfd_boolean ieee_define_type + PARAMS ((struct ieee_handle *, unsigned int, bfd_boolean, bfd_boolean)); +static bfd_boolean ieee_define_named_type PARAMS ((struct ieee_handle *, const char *, unsigned int, unsigned int, - boolean, boolean, struct ieee_buflist *)); + bfd_boolean, bfd_boolean, struct ieee_buflist *)); static struct ieee_modified_type *ieee_get_modified_info PARAMS ((struct ieee_handle *, unsigned int)); static struct bfd_hash_entry *ieee_name_type_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean ieee_write_undefined_tag +static bfd_boolean ieee_write_undefined_tag PARAMS ((struct ieee_name_type_hash_entry *, PTR)); -static boolean ieee_finish_compilation_unit PARAMS ((struct ieee_handle *)); -static void ieee_add_bb11_blocks PARAMS ((bfd *, asection *, PTR)); -static boolean ieee_add_bb11 +static bfd_boolean ieee_finish_compilation_unit + PARAMS ((struct ieee_handle *)); +static void ieee_add_bb11_blocks + PARAMS ((bfd *, asection *, PTR)); +static bfd_boolean ieee_add_bb11 PARAMS ((struct ieee_handle *, asection *, bfd_vma, bfd_vma)); -static boolean ieee_output_pending_parms PARAMS ((struct ieee_handle *)); -static unsigned int ieee_vis_to_flags PARAMS ((enum debug_visibility)); -static boolean ieee_class_method_var - PARAMS ((struct ieee_handle *, const char *, enum debug_visibility, boolean, - boolean, boolean, bfd_vma, boolean)); - -static boolean ieee_start_compilation_unit PARAMS ((PTR, const char *)); -static boolean ieee_start_source PARAMS ((PTR, const char *)); -static boolean ieee_empty_type PARAMS ((PTR)); -static boolean ieee_void_type PARAMS ((PTR)); -static boolean ieee_int_type PARAMS ((PTR, unsigned int, boolean)); -static boolean ieee_float_type PARAMS ((PTR, unsigned int)); -static boolean ieee_complex_type PARAMS ((PTR, unsigned int)); -static boolean ieee_bool_type PARAMS ((PTR, unsigned int)); -static boolean ieee_enum_type +static bfd_boolean ieee_output_pending_parms + PARAMS ((struct ieee_handle *)); +static unsigned int ieee_vis_to_flags + PARAMS ((enum debug_visibility)); +static bfd_boolean ieee_class_method_var + PARAMS ((struct ieee_handle *, const char *, enum debug_visibility, bfd_boolean, + bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean)); + +static bfd_boolean ieee_start_compilation_unit + PARAMS ((PTR, const char *)); +static bfd_boolean ieee_start_source + PARAMS ((PTR, const char *)); +static bfd_boolean ieee_empty_type + PARAMS ((PTR)); +static bfd_boolean ieee_void_type + PARAMS ((PTR)); +static bfd_boolean ieee_int_type + PARAMS ((PTR, unsigned int, bfd_boolean)); +static bfd_boolean ieee_float_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean ieee_complex_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean ieee_bool_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean ieee_enum_type PARAMS ((PTR, const char *, const char **, bfd_signed_vma *)); -static boolean ieee_pointer_type PARAMS ((PTR)); -static boolean ieee_function_type PARAMS ((PTR, int, boolean)); -static boolean ieee_reference_type PARAMS ((PTR)); -static boolean ieee_range_type PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); -static boolean ieee_array_type - PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, boolean)); -static boolean ieee_set_type PARAMS ((PTR, boolean)); -static boolean ieee_offset_type PARAMS ((PTR)); -static boolean ieee_method_type PARAMS ((PTR, boolean, int, boolean)); -static boolean ieee_const_type PARAMS ((PTR)); -static boolean ieee_volatile_type PARAMS ((PTR)); -static boolean ieee_start_struct_type - PARAMS ((PTR, const char *, unsigned int, boolean, unsigned int)); -static boolean ieee_struct_field +static bfd_boolean ieee_pointer_type + PARAMS ((PTR)); +static bfd_boolean ieee_function_type + PARAMS ((PTR, int, bfd_boolean)); +static bfd_boolean ieee_reference_type + PARAMS ((PTR)); +static bfd_boolean ieee_range_type + PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); +static bfd_boolean ieee_array_type + PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, bfd_boolean)); +static bfd_boolean ieee_set_type + PARAMS ((PTR, bfd_boolean)); +static bfd_boolean ieee_offset_type + PARAMS ((PTR)); +static bfd_boolean ieee_method_type + PARAMS ((PTR, bfd_boolean, int, bfd_boolean)); +static bfd_boolean ieee_const_type + PARAMS ((PTR)); +static bfd_boolean ieee_volatile_type + PARAMS ((PTR)); +static bfd_boolean ieee_start_struct_type + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int)); +static bfd_boolean ieee_struct_field PARAMS ((PTR, const char *, bfd_vma, bfd_vma, enum debug_visibility)); -static boolean ieee_end_struct_type PARAMS ((PTR)); -static boolean ieee_start_class_type - PARAMS ((PTR, const char *, unsigned int, boolean, unsigned int, boolean, - boolean)); -static boolean ieee_class_static_member +static bfd_boolean ieee_end_struct_type + PARAMS ((PTR)); +static bfd_boolean ieee_start_class_type + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int, bfd_boolean, + bfd_boolean)); +static bfd_boolean ieee_class_static_member PARAMS ((PTR, const char *, const char *, enum debug_visibility)); -static boolean ieee_class_baseclass - PARAMS ((PTR, bfd_vma, boolean, enum debug_visibility)); -static boolean ieee_class_start_method PARAMS ((PTR, const char *)); -static boolean ieee_class_method_variant - PARAMS ((PTR, const char *, enum debug_visibility, boolean, boolean, - bfd_vma, boolean)); -static boolean ieee_class_static_method_variant - PARAMS ((PTR, const char *, enum debug_visibility, boolean, boolean)); -static boolean ieee_class_end_method PARAMS ((PTR)); -static boolean ieee_end_class_type PARAMS ((PTR)); -static boolean ieee_typedef_type PARAMS ((PTR, const char *)); -static boolean ieee_tag_type +static bfd_boolean ieee_class_baseclass + PARAMS ((PTR, bfd_vma, bfd_boolean, enum debug_visibility)); +static bfd_boolean ieee_class_start_method + PARAMS ((PTR, const char *)); +static bfd_boolean ieee_class_method_variant + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, bfd_boolean, + bfd_vma, bfd_boolean)); +static bfd_boolean ieee_class_static_method_variant + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, bfd_boolean)); +static bfd_boolean ieee_class_end_method + PARAMS ((PTR)); +static bfd_boolean ieee_end_class_type + PARAMS ((PTR)); +static bfd_boolean ieee_typedef_type + PARAMS ((PTR, const char *)); +static bfd_boolean ieee_tag_type PARAMS ((PTR, const char *, unsigned int, enum debug_type_kind)); -static boolean ieee_typdef PARAMS ((PTR, const char *)); -static boolean ieee_tag PARAMS ((PTR, const char *)); -static boolean ieee_int_constant PARAMS ((PTR, const char *, bfd_vma)); -static boolean ieee_float_constant PARAMS ((PTR, const char *, double)); -static boolean ieee_typed_constant PARAMS ((PTR, const char *, bfd_vma)); -static boolean ieee_variable +static bfd_boolean ieee_typdef + PARAMS ((PTR, const char *)); +static bfd_boolean ieee_tag + PARAMS ((PTR, const char *)); +static bfd_boolean ieee_int_constant + PARAMS ((PTR, const char *, bfd_vma)); +static bfd_boolean ieee_float_constant + PARAMS ((PTR, const char *, double)); +static bfd_boolean ieee_typed_constant + PARAMS ((PTR, const char *, bfd_vma)); +static bfd_boolean ieee_variable PARAMS ((PTR, const char *, enum debug_var_kind, bfd_vma)); -static boolean ieee_start_function PARAMS ((PTR, const char *, boolean)); -static boolean ieee_function_parameter +static bfd_boolean ieee_start_function + PARAMS ((PTR, const char *, bfd_boolean)); +static bfd_boolean ieee_function_parameter PARAMS ((PTR, const char *, enum debug_parm_kind, bfd_vma)); -static boolean ieee_start_block PARAMS ((PTR, bfd_vma)); -static boolean ieee_end_block PARAMS ((PTR, bfd_vma)); -static boolean ieee_end_function PARAMS ((PTR)); -static boolean ieee_lineno +static bfd_boolean ieee_start_block + PARAMS ((PTR, bfd_vma)); +static bfd_boolean ieee_end_block + PARAMS ((PTR, bfd_vma)); +static bfd_boolean ieee_end_function + PARAMS ((PTR)); +static bfd_boolean ieee_lineno PARAMS ((PTR, const char *, unsigned long, bfd_vma)); static const struct debug_write_fns ieee_fns = @@ -4102,14 +4154,14 @@ static const struct debug_write_fns ieee /* Initialize a buffer to be empty. */ -static boolean +static bfd_boolean ieee_init_buffer (info, buflist) struct ieee_handle *info ATTRIBUTE_UNUSED; struct ieee_buflist *buflist; { buflist->head = NULL; buflist->tail = NULL; - return true; + return TRUE; } /* See whether a buffer list has any data. */ @@ -4118,7 +4170,7 @@ ieee_init_buffer (info, buflist) /* Change the current buffer to a specified buffer chain. */ -static boolean +static bfd_boolean ieee_change_buffer (info, buflist) struct ieee_handle *info; struct ieee_buflist *buflist; @@ -4137,12 +4189,12 @@ ieee_change_buffer (info, buflist) info->current = buflist; info->curbuf = buflist->tail; - return true; + return TRUE; } /* Append a buffer chain. */ -static boolean +static bfd_boolean ieee_append_buffer (info, mainbuf, newbuf) struct ieee_handle *info ATTRIBUTE_UNUSED; struct ieee_buflist *mainbuf; @@ -4156,7 +4208,7 @@ ieee_append_buffer (info, mainbuf, newbu mainbuf->tail->next = newbuf->head; mainbuf->tail = newbuf->tail; } - return true; + return TRUE; } /* Write a byte into the buffer. We use a macro for speed and a @@ -4164,10 +4216,10 @@ ieee_append_buffer (info, mainbuf, newbu #define ieee_write_byte(info, b) \ ((info)->curbuf->c < IEEE_BUFSIZE \ - ? ((info)->curbuf->buf[(info)->curbuf->c++] = (b), true) \ + ? ((info)->curbuf->buf[(info)->curbuf->c++] = (b), TRUE) \ : ieee_real_write_byte ((info), (b))) -static boolean +static bfd_boolean ieee_real_write_byte (info, b) struct ieee_handle *info; int b; @@ -4190,12 +4242,12 @@ ieee_real_write_byte (info, b) info->curbuf->buf[info->curbuf->c] = b; ++info->curbuf->c; - return true; + return TRUE; } /* Write out two bytes. */ -static boolean +static bfd_boolean ieee_write_2bytes (info, i) struct ieee_handle *info; int i; @@ -4206,7 +4258,7 @@ ieee_write_2bytes (info, i) /* Write out an integer. */ -static boolean +static bfd_boolean ieee_write_number (info, v) struct ieee_handle *info; bfd_vma v; @@ -4234,23 +4286,23 @@ ieee_write_number (info, v) fprintf (stderr, _("IEEE numeric overflow: 0x")); fprintf_vma (stderr, v); fprintf (stderr, "\n"); - return false; + return FALSE; } if (! ieee_write_byte (info, (int) ieee_number_repeat_start_enum + c)) - return false; + return FALSE; for (; c > 0; --c, ++p) { if (! ieee_write_byte (info, *p)) - return false; + return FALSE; } - return true; + return TRUE; } /* Write out a string. */ -static boolean +static bfd_boolean ieee_write_id (info, s) struct ieee_handle *info; const char *s; @@ -4261,36 +4313,36 @@ ieee_write_id (info, s) if (len <= 0x7f) { if (! ieee_write_byte (info, len)) - return false; + return FALSE; } else if (len <= 0xff) { if (! ieee_write_byte (info, (int) ieee_extension_length_1_enum) || ! ieee_write_byte (info, len)) - return false; + return FALSE; } else if (len <= 0xffff) { if (! ieee_write_byte (info, (int) ieee_extension_length_2_enum) || ! ieee_write_2bytes (info, len)) - return false; + return FALSE; } else { fprintf (stderr, _("IEEE string length overflow: %u\n"), len); - return false; + return FALSE; } for (; *s != '\0'; s++) if (! ieee_write_byte (info, *s)) - return false; + return FALSE; - return true; + return TRUE; } /* Write out an ASN record. */ -static boolean +static bfd_boolean ieee_write_asn (info, indx, val) struct ieee_handle *info; unsigned int indx; @@ -4303,7 +4355,7 @@ ieee_write_asn (info, indx, val) /* Write out an ATN65 record. */ -static boolean +static bfd_boolean ieee_write_atn65 (info, indx, s) struct ieee_handle *info; unsigned int indx; @@ -4318,13 +4370,13 @@ ieee_write_atn65 (info, indx, s) /* Push a type index onto the type stack. */ -static boolean +static bfd_boolean ieee_push_type (info, indx, size, unsignedp, localp) struct ieee_handle *info; unsigned int indx; unsigned int size; - boolean unsignedp; - boolean localp; + bfd_boolean unsignedp; + bfd_boolean localp; { struct ieee_type_stack *ts; @@ -4339,7 +4391,7 @@ ieee_push_type (info, indx, size, unsign ts->next = info->type_stack; info->type_stack = ts; - return true; + return TRUE; } /* Pop a type index off the type stack. */ @@ -4348,7 +4400,7 @@ static unsigned int ieee_pop_type (info) struct ieee_handle *info; { - return ieee_pop_type_used (info, true); + return ieee_pop_type_used (info, TRUE); } /* Pop an unused type index off the type stack. */ @@ -4357,7 +4409,7 @@ static void ieee_pop_unused_type (info) struct ieee_handle *info; { - (void) ieee_pop_type_used (info, false); + (void) ieee_pop_type_used (info, FALSE); } /* Pop a used or unused type index off the type stack. */ @@ -4365,7 +4417,7 @@ ieee_pop_unused_type (info) static unsigned int ieee_pop_type_used (info, used) struct ieee_handle *info; - boolean used; + bfd_boolean used; { struct ieee_type_stack *ts; unsigned int ret; @@ -4389,7 +4441,7 @@ ieee_pop_type_used (info, used) || ! ieee_write_byte (info, 1) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, info->modname)) - return false; + return FALSE; } buflist = &info->types; } @@ -4403,13 +4455,13 @@ ieee_pop_type_used (info, used) || ! ieee_write_byte (info, 2) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, "")) - return false; + return FALSE; } buflist = &info->global_types; } if (! ieee_append_buffer (info, buflist, &ts->type.fndef)) - return false; + return FALSE; } ret = ts->type.indx; @@ -4420,17 +4472,17 @@ ieee_pop_type_used (info, used) /* Add a range of bytes included in the current compilation unit. */ -static boolean +static bfd_boolean ieee_add_range (info, global, low, high) struct ieee_handle *info; - boolean global; + bfd_boolean global; bfd_vma low; bfd_vma high; { struct ieee_range **plist, *r, **pr; if (low == (bfd_vma) -1 || high == (bfd_vma) -1 || low == high) - return true; + return TRUE; if (global) plist = &info->global_ranges; @@ -4457,7 +4509,7 @@ ieee_add_range (info, global, low, high) free (*pr); *pr = n; } - return true; + return TRUE; } } @@ -4474,12 +4526,12 @@ ieee_add_range (info, global, low, high) r->next = *pr; *pr = r; - return true; + return TRUE; } /* Start a new range for which we only have the low address. */ -static boolean +static bfd_boolean ieee_start_range (info, low) struct ieee_handle *info; bfd_vma low; @@ -4491,12 +4543,12 @@ ieee_start_range (info, low) r->low = low; r->next = info->pending_ranges; info->pending_ranges = r; - return true; + return TRUE; } /* Finish a range started by ieee_start_range. */ -static boolean +static bfd_boolean ieee_end_range (info, high) struct ieee_handle *info; bfd_vma high; @@ -4509,17 +4561,17 @@ ieee_end_range (info, high) low = r->low; info->pending_ranges = r->next; free (r); - return ieee_add_range (info, false, low, high); + return ieee_add_range (info, FALSE, low, high); } /* Start defining a type. */ -static boolean +static bfd_boolean ieee_define_type (info, size, unsignedp, localp) struct ieee_handle *info; unsigned int size; - boolean unsignedp; - boolean localp; + bfd_boolean unsignedp; + bfd_boolean localp; { return ieee_define_named_type (info, (const char *) NULL, (unsigned int) -1, size, unsignedp, @@ -4528,14 +4580,14 @@ ieee_define_type (info, size, unsignedp, /* Start defining a named type. */ -static boolean +static bfd_boolean ieee_define_named_type (info, name, indx, size, unsignedp, localp, buflist) struct ieee_handle *info; const char *name; unsigned int indx; unsigned int size; - boolean unsignedp; - boolean localp; + bfd_boolean unsignedp; + bfd_boolean localp; struct ieee_buflist *buflist; { unsigned int type_indx; @@ -4561,14 +4613,14 @@ ieee_define_named_type (info, name, indx if (buflist != NULL) { if (! ieee_change_buffer (info, buflist)) - return false; + return FALSE; } else if (localp) { if (! ieee_buffer_emptyp (&info->types)) { if (! ieee_change_buffer (info, &info->types)) - return false; + return FALSE; } else { @@ -4577,7 +4629,7 @@ ieee_define_named_type (info, name, indx || ! ieee_write_byte (info, 1) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, info->modname)) - return false; + return FALSE; } } else @@ -4585,7 +4637,7 @@ ieee_define_named_type (info, name, indx if (! ieee_buffer_emptyp (&info->global_types)) { if (! ieee_change_buffer (info, &info->global_types)) - return false; + return FALSE; } else { @@ -4594,7 +4646,7 @@ ieee_define_named_type (info, name, indx || ! ieee_write_byte (info, 2) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, "")) - return false; + return FALSE; } } @@ -4602,7 +4654,7 @@ ieee_define_named_type (info, name, indx write out the start of a TY record. The caller will then finish the TY record. */ if (! ieee_push_type (info, type_indx, size, unsignedp, localp)) - return false; + return FALSE; return (ieee_write_byte (info, (int) ieee_nn_record) && ieee_write_number (info, name_indx) @@ -4684,12 +4736,12 @@ ieee_name_type_newfunc (entry, table, st #define ieee_name_type_hash_traverse(table, func, info) \ (bfd_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) (func), \ (info))) /* The general routine to write out IEEE debugging information. */ -boolean +bfd_boolean write_ieee_debugging_info (abfd, dhandle) bfd *abfd; PTR dhandle; @@ -4706,7 +4758,7 @@ write_ieee_debugging_info (abfd, dhandle if (! bfd_hash_table_init (&info.typedefs.root, ieee_name_type_newfunc) || ! bfd_hash_table_init (&info.tags.root, ieee_name_type_newfunc)) - return false; + return FALSE; if (! ieee_init_buffer (&info, &info.global_types) || ! ieee_init_buffer (&info, &info.data) @@ -4716,24 +4768,24 @@ write_ieee_debugging_info (abfd, dhandle || ! ieee_init_buffer (&info, &info.linenos) || ! ieee_init_buffer (&info, &info.fntype) || ! ieee_init_buffer (&info, &info.fnargs)) - return false; + return FALSE; if (! debug_write (dhandle, &ieee_fns, (PTR) &info)) - return false; + return FALSE; if (info.filename != NULL) { if (! ieee_finish_compilation_unit (&info)) - return false; + return FALSE; } /* Put any undefined tags in the global typedef information. */ - info.error = false; + info.error = FALSE; ieee_name_type_hash_traverse (&info.tags, ieee_write_undefined_tag, (PTR) &info); if (info.error) - return false; + return FALSE; /* Prepend the global typedef information to the other data. */ if (! ieee_buffer_emptyp (&info.global_types)) @@ -4751,29 +4803,29 @@ write_ieee_debugging_info (abfd, dhandle || ! ieee_write_number (&info, 'P') || ! ieee_write_number (&info, (int) builtin_void + 32) || ! ieee_write_byte (&info, (int) ieee_be_record_enum)) - return false; + return FALSE; if (! ieee_append_buffer (&info, &info.global_types, &info.data)) - return false; + return FALSE; info.data = info.global_types; } /* Make sure that we have declare BB11 blocks for each range in the file. They are added to info->vars. */ - info.error = false; + info.error = FALSE; if (! ieee_init_buffer (&info, &info.vars)) - return false; + return FALSE; bfd_map_over_sections (abfd, ieee_add_bb11_blocks, (PTR) &info); if (info.error) - return false; + return FALSE; if (! ieee_buffer_emptyp (&info.vars)) { if (! ieee_change_buffer (&info, &info.vars) || ! ieee_write_byte (&info, (int) ieee_be_record_enum)) - return false; + return FALSE; if (! ieee_append_buffer (&info, &info.data, &info.vars)) - return false; + return FALSE; } /* Now all the data is in info.data. Write it out to the BFD. We @@ -4783,7 +4835,7 @@ write_ieee_debugging_info (abfd, dhandle if (ieee_buffer_emptyp (&info.data)) { /* There is no debugging information. */ - return true; + return TRUE; } err = NULL; s = bfd_make_section (abfd, ".debug"); @@ -4824,19 +4876,19 @@ write_ieee_debugging_info (abfd, dhandle { fprintf (stderr, "%s: %s: %s\n", bfd_get_filename (abfd), err, bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } bfd_hash_table_free (&info.typedefs.root); bfd_hash_table_free (&info.tags.root); - return true; + return TRUE; } /* Write out information for an undefined tag. This is called via ieee_name_type_hash_traverse. */ -static boolean +static bfd_boolean ieee_write_undefined_tag (h, p) struct ieee_name_type_hash_entry *h; PTR p; @@ -4860,16 +4912,16 @@ ieee_write_undefined_tag (h, p) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, "")) { - info->error = true; - return false; + info->error = TRUE; + return FALSE; } } else { if (! ieee_change_buffer (info, &info->global_types)) { - info->error = true; - return false; + info->error = TRUE; + return FALSE; } } @@ -4883,16 +4935,16 @@ ieee_write_undefined_tag (h, p) || ! ieee_write_byte (info, 0xce) || ! ieee_write_number (info, name_indx)) { - info->error = true; - return false; + info->error = TRUE; + return FALSE; } switch (nt->kind) { default: abort (); - info->error = true; - return false; + info->error = TRUE; + return FALSE; case DEBUG_KIND_STRUCT: case DEBUG_KIND_CLASS: code = 'S'; @@ -4908,17 +4960,17 @@ ieee_write_undefined_tag (h, p) if (! ieee_write_number (info, code) || ! ieee_write_number (info, 0)) { - info->error = true; - return false; + info->error = TRUE; + return FALSE; } } - return true; + return TRUE; } /* Start writing out information for a compilation unit. */ -static boolean +static bfd_boolean ieee_start_compilation_unit (p, filename) PTR p; const char *filename; @@ -4934,7 +4986,7 @@ ieee_start_compilation_unit (p, filename if (info->filename != NULL) { if (! ieee_finish_compilation_unit (info)) - return false; + return FALSE; } info->filename = filename; @@ -4965,7 +5017,7 @@ ieee_start_compilation_unit (p, filename || ! ieee_init_buffer (info, &info->vars) || ! ieee_init_buffer (info, &info->cxx) || ! ieee_init_buffer (info, &info->linenos)) - return false; + return FALSE; info->ranges = NULL; /* Always include a BB1 and a BB3 block. That is what the output of @@ -4975,7 +5027,7 @@ ieee_start_compilation_unit (p, filename || ! ieee_write_byte (info, 1) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, info->modname)) - return false; + return FALSE; nindx = info->name_indx; ++info->name_indx; @@ -4984,14 +5036,14 @@ ieee_start_compilation_unit (p, filename || ! ieee_write_byte (info, 3) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, info->modname)) - return false; + return FALSE; - return true; + return TRUE; } /* Finish up a compilation unit. */ -static boolean +static bfd_boolean ieee_finish_compilation_unit (info) struct ieee_handle *info; { @@ -5001,7 +5053,7 @@ ieee_finish_compilation_unit (info) { if (! ieee_change_buffer (info, &info->types) || ! ieee_write_byte (info, (int) ieee_be_record_enum)) - return false; + return FALSE; } if (! ieee_buffer_emptyp (&info->cxx)) @@ -5010,7 +5062,7 @@ ieee_finish_compilation_unit (info) variable information. */ assert (! ieee_buffer_emptyp (&info->vars)); if (! ieee_change_buffer (info, &info->vars)) - return false; + return FALSE; /* We put the pmisc records in a dummy procedure, just as the MRI compiler does. */ @@ -5025,45 +5077,45 @@ ieee_finish_compilation_unit (info) || ! ieee_change_buffer (info, &info->vars) || ! ieee_write_byte (info, (int) ieee_be_record_enum) || ! ieee_write_number (info, info->highaddr - 1)) - return false; + return FALSE; } if (! ieee_buffer_emptyp (&info->vars)) { if (! ieee_change_buffer (info, &info->vars) || ! ieee_write_byte (info, (int) ieee_be_record_enum)) - return false; + return FALSE; } if (info->pending_lineno_filename != NULL) { /* Force out the pending line number. */ if (! ieee_lineno ((PTR) info, (const char *) NULL, 0, (bfd_vma) -1)) - return false; + return FALSE; } if (! ieee_buffer_emptyp (&info->linenos)) { if (! ieee_change_buffer (info, &info->linenos) || ! ieee_write_byte (info, (int) ieee_be_record_enum)) - return false; + return FALSE; if (strcmp (info->filename, info->lineno_filename) != 0) { /* We were not in the main file. We just closed the included line number block, and now we must close the main line number block. */ if (! ieee_write_byte (info, (int) ieee_be_record_enum)) - return false; + return FALSE; } } if (! ieee_append_buffer (info, &info->data, &info->types) || ! ieee_append_buffer (info, &info->data, &info->vars) || ! ieee_append_buffer (info, &info->data, &info->linenos)) - return false; + return FALSE; /* Build BB10/BB11 blocks based on the ranges we recorded. */ if (! ieee_change_buffer (info, &info->data)) - return false; + return FALSE; if (! ieee_write_byte (info, (int) ieee_bb_record_enum) || ! ieee_write_byte (info, 10) @@ -5072,7 +5124,7 @@ ieee_finish_compilation_unit (info) || ! ieee_write_id (info, "") || ! ieee_write_number (info, 0) || ! ieee_write_id (info, "GNU objcopy")) - return false; + return FALSE; for (r = info->ranges; r != NULL; r = r->next) { @@ -5125,17 +5177,17 @@ ieee_finish_compilation_unit (info) || ! ieee_write_number (info, low) || ! ieee_write_byte (info, (int) ieee_be_record_enum) || ! ieee_write_number (info, high - low)) - return false; + return FALSE; /* Add this range to the list of global ranges. */ - if (! ieee_add_range (info, true, low, high)) - return false; + if (! ieee_add_range (info, TRUE, low, high)) + return FALSE; } if (! ieee_write_byte (info, (int) ieee_be_record_enum)) - return false; + return FALSE; - return true; + return TRUE; } /* Add BB11 blocks describing each range that we have not already @@ -5165,7 +5217,7 @@ ieee_add_bb11_blocks (abfd, sec, data) if (r == NULL || r->low >= high) { if (! ieee_add_bb11 (info, sec, low, high)) - info->error = true; + info->error = TRUE; return; } @@ -5174,7 +5226,7 @@ ieee_add_bb11_blocks (abfd, sec, data) { if (! ieee_add_bb11 (info, sec, low, r->low)) { - info->error = true; + info->error = TRUE; return; } } @@ -5186,7 +5238,7 @@ ieee_add_bb11_blocks (abfd, sec, data) /* Add a single BB11 block for a range. We add it to info->vars. */ -static boolean +static bfd_boolean ieee_add_bb11 (info, sec, low, high) struct ieee_handle *info; asection *sec; @@ -5198,7 +5250,7 @@ ieee_add_bb11 (info, sec, low, high) if (! ieee_buffer_emptyp (&info->vars)) { if (! ieee_change_buffer (info, &info->vars)) - return false; + return FALSE; } else { @@ -5239,7 +5291,7 @@ ieee_add_bb11 (info, sec, low, high) || ! ieee_write_id (info, "") || ! ieee_write_number (info, 0) || ! ieee_write_id (info, "GNU objcopy")) - return false; + return FALSE; free (c); } @@ -5260,9 +5312,9 @@ ieee_add_bb11 (info, sec, low, high) || ! ieee_write_number (info, low) || ! ieee_write_byte (info, (int) ieee_be_record_enum) || ! ieee_write_number (info, high - low)) - return false; + return FALSE; - return true; + return TRUE; } /* Start recording information from a particular source file. This is @@ -5271,43 +5323,43 @@ ieee_add_bb11 (info, sec, low, high) down the file name anyhow. IEEE debugging information doesn't seem to store this information anywhere. */ -static boolean +static bfd_boolean ieee_start_source (p, filename) PTR p ATTRIBUTE_UNUSED; const char *filename ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Make an empty type. */ -static boolean +static bfd_boolean ieee_empty_type (p) PTR p; { struct ieee_handle *info = (struct ieee_handle *) p; - return ieee_push_type (info, (int) builtin_unknown, 0, false, false); + return ieee_push_type (info, (int) builtin_unknown, 0, FALSE, FALSE); } /* Make a void type. */ -static boolean +static bfd_boolean ieee_void_type (p) PTR p; { struct ieee_handle *info = (struct ieee_handle *) p; - return ieee_push_type (info, (int) builtin_void, 0, false, false); + return ieee_push_type (info, (int) builtin_void, 0, FALSE, FALSE); } /* Make an integer type. */ -static boolean +static bfd_boolean ieee_int_type (p, size, unsignedp) PTR p; unsigned int size; - boolean unsignedp; + bfd_boolean unsignedp; { struct ieee_handle *info = (struct ieee_handle *) p; unsigned int indx; @@ -5328,18 +5380,18 @@ ieee_int_type (p, size, unsignedp) break; default: fprintf (stderr, _("IEEE unsupported integer type size %u\n"), size); - return false; + return FALSE; } if (unsignedp) ++indx; - return ieee_push_type (info, indx, size, unsignedp, false); + return ieee_push_type (info, indx, size, unsignedp, FALSE); } /* Make a floating point type. */ -static boolean +static bfd_boolean ieee_float_type (p, size) PTR p; unsigned int size; @@ -5364,15 +5416,15 @@ ieee_float_type (p, size) break; default: fprintf (stderr, _("IEEE unsupported float type size %u\n"), size); - return false; + return FALSE; } - return ieee_push_type (info, indx, size, false, false); + return ieee_push_type (info, indx, size, FALSE, FALSE); } /* Make a complex type. */ -static boolean +static bfd_boolean ieee_complex_type (p, size) PTR p; unsigned int size; @@ -5385,7 +5437,7 @@ ieee_complex_type (p, size) case 4: if (info->complex_float_index != 0) return ieee_push_type (info, info->complex_float_index, size * 2, - false, false); + FALSE, FALSE); code = 'c'; break; case 12: @@ -5395,42 +5447,42 @@ ieee_complex_type (p, size) case 8: if (info->complex_double_index != 0) return ieee_push_type (info, info->complex_double_index, size * 2, - false, false); + FALSE, FALSE); code = 'd'; break; default: fprintf (stderr, _("IEEE unsupported complex type size %u\n"), size); - return false; + return FALSE; } /* FIXME: I don't know what the string is for. */ - if (! ieee_define_type (info, size * 2, false, false) + if (! ieee_define_type (info, size * 2, FALSE, FALSE) || ! ieee_write_number (info, code) || ! ieee_write_id (info, "")) - return false; + return FALSE; if (size == 4) info->complex_float_index = info->type_stack->type.indx; else info->complex_double_index = info->type_stack->type.indx; - return true; + return TRUE; } /* Make a boolean type. IEEE doesn't support these, so we just make an integer type instead. */ -static boolean +static bfd_boolean ieee_bool_type (p, size) PTR p; unsigned int size; { - return ieee_int_type (p, size, true); + return ieee_int_type (p, size, TRUE); } /* Make an enumeration. */ -static boolean +static bfd_boolean ieee_enum_type (p, tag, names, vals) PTR p; const char *tag; @@ -5439,11 +5491,11 @@ ieee_enum_type (p, tag, names, vals) { struct ieee_handle *info = (struct ieee_handle *) p; struct ieee_defined_enum *e; - boolean localp, simple; + bfd_boolean localp, simple; unsigned int indx; int i = 0; - localp = false; + localp = FALSE; indx = (unsigned int) -1; for (e = info->enums; e != NULL; e = e->next) { @@ -5485,14 +5537,14 @@ ieee_enum_type (p, tag, names, vals) && e->names[i] == NULL)) { /* We've seen this enum before. */ - return ieee_push_type (info, e->indx, 0, true, false); + return ieee_push_type (info, e->indx, 0, TRUE, FALSE); } if (tag != NULL) { /* We've already seen an enum of the same name, so we must make sure to output this one locally. */ - localp = true; + localp = TRUE; break; } } @@ -5501,40 +5553,40 @@ ieee_enum_type (p, tag, names, vals) and always increment by 1, we can use type E. Otherwise we must use type N. */ - simple = true; + simple = TRUE; if (names != NULL) { for (i = 0; names[i] != NULL; i++) { if (vals[i] != i) { - simple = false; + simple = FALSE; break; } } } - if (! ieee_define_named_type (info, tag, indx, 0, true, localp, + if (! ieee_define_named_type (info, tag, indx, 0, TRUE, localp, (struct ieee_buflist *) NULL) || ! ieee_write_number (info, simple ? 'E' : 'N')) - return false; + return FALSE; if (simple) { /* FIXME: This is supposed to be the enumeration size, but we don't store that. */ if (! ieee_write_number (info, 4)) - return false; + return FALSE; } if (names != NULL) { for (i = 0; names[i] != NULL; i++) { if (! ieee_write_id (info, names[i])) - return false; + return FALSE; if (! simple) { if (! ieee_write_number (info, vals[i])) - return false; + return FALSE; } } } @@ -5554,20 +5606,20 @@ ieee_enum_type (p, tag, names, vals) e->names = names; e->vals = vals; - e->defined = true; + e->defined = TRUE; } - return true; + return TRUE; } /* Make a pointer type. */ -static boolean +static bfd_boolean ieee_pointer_type (p) PTR p; { struct ieee_handle *info = (struct ieee_handle *) p; - boolean localp; + bfd_boolean localp; unsigned int indx; struct ieee_modified_type *m = NULL; @@ -5577,28 +5629,28 @@ ieee_pointer_type (p) /* A pointer to a simple builtin type can be obtained by adding 32. FIXME: Will this be a short pointer, and will that matter? */ if (indx < 32) - return ieee_push_type (info, indx + 32, 0, true, false); + return ieee_push_type (info, indx + 32, 0, TRUE, FALSE); if (! localp) { m = ieee_get_modified_info (p, indx); if (m == NULL) - return false; + return FALSE; /* FIXME: The size should depend upon the architecture. */ if (m->pointer > 0) - return ieee_push_type (info, m->pointer, 4, true, false); + return ieee_push_type (info, m->pointer, 4, TRUE, FALSE); } - if (! ieee_define_type (info, 4, true, localp) + if (! ieee_define_type (info, 4, TRUE, localp) || ! ieee_write_number (info, 'P') || ! ieee_write_number (info, indx)) - return false; + return FALSE; if (! localp) m->pointer = info->type_stack->type.indx; - return true; + return TRUE; } /* Make a function type. This will be called for a method, but we @@ -5606,21 +5658,21 @@ ieee_pointer_type (p) handle this by defining the type in a private buffer, and only adding that buffer to the typedef block if we are going to use it. */ -static boolean +static bfd_boolean ieee_function_type (p, argcount, varargs) PTR p; int argcount; - boolean varargs; + bfd_boolean varargs; { struct ieee_handle *info = (struct ieee_handle *) p; - boolean localp; + bfd_boolean localp; unsigned int *args = NULL; int i; unsigned int retindx; struct ieee_buflist fndef; struct ieee_modified_type *m; - localp = false; + localp = FALSE; if (argcount > 0) { @@ -5628,15 +5680,15 @@ ieee_function_type (p, argcount, varargs for (i = argcount - 1; i >= 0; i--) { if (info->type_stack->type.localp) - localp = true; + localp = TRUE; args[i] = ieee_pop_type (info); } } else if (argcount < 0) - varargs = false; + varargs = FALSE; if (info->type_stack->type.localp) - localp = true; + localp = TRUE; retindx = ieee_pop_type (info); m = NULL; @@ -5644,17 +5696,17 @@ ieee_function_type (p, argcount, varargs { m = ieee_get_modified_info (p, retindx); if (m == NULL) - return false; + return FALSE; if (m->function > 0) - return ieee_push_type (info, m->function, 0, true, false); + return ieee_push_type (info, m->function, 0, TRUE, FALSE); } /* An attribute of 0x41 means that the frame and push mask are unknown. */ if (! ieee_init_buffer (info, &fndef) || ! ieee_define_named_type (info, (const char *) NULL, - (unsigned int) -1, 0, true, localp, + (unsigned int) -1, 0, TRUE, localp, &fndef) || ! ieee_write_number (info, 'x') || ! ieee_write_number (info, 0x41) @@ -5662,12 +5714,12 @@ ieee_function_type (p, argcount, varargs || ! ieee_write_number (info, 0) || ! ieee_write_number (info, retindx) || ! ieee_write_number (info, (bfd_vma) argcount + (varargs ? 1 : 0))) - return false; + return FALSE; if (argcount > 0) { for (i = 0; i < argcount; i++) if (! ieee_write_number (info, args[i])) - return false; + return FALSE; free (args); } if (varargs) @@ -5675,11 +5727,11 @@ ieee_function_type (p, argcount, varargs /* A varargs function is represented by writing out the last argument as type void *, although this makes little sense. */ if (! ieee_write_number (info, (bfd_vma) builtin_void + 32)) - return false; + return FALSE; } if (! ieee_write_number (info, 0)) - return false; + return FALSE; /* We wrote the information into fndef, in case we don't need it. It will be appended to info->types by ieee_pop_type. */ @@ -5688,12 +5740,12 @@ ieee_function_type (p, argcount, varargs if (m != NULL) m->function = info->type_stack->type.indx; - return true; + return TRUE; } /* Make a reference type. */ -static boolean +static bfd_boolean ieee_reference_type (p) PTR p; { @@ -5703,14 +5755,14 @@ ieee_reference_type (p) pmisc record to indicate that it is really a reference. */ if (! ieee_pointer_type (p)) - return false; - info->type_stack->type.referencep = true; - return true; + return FALSE; + info->type_stack->type.referencep = TRUE; + return TRUE; } /* Make a range type. */ -static boolean +static bfd_boolean ieee_range_type (p, low, high) PTR p; bfd_signed_vma low; @@ -5718,7 +5770,7 @@ ieee_range_type (p, low, high) { struct ieee_handle *info = (struct ieee_handle *) p; unsigned int size; - boolean unsignedp, localp; + bfd_boolean unsignedp, localp; size = info->type_stack->type.size; unsignedp = info->type_stack->type.unsignedp; @@ -5734,16 +5786,16 @@ ieee_range_type (p, low, high) /* Make an array type. */ -static boolean +static bfd_boolean ieee_array_type (p, low, high, stringp) PTR p; bfd_signed_vma low; bfd_signed_vma high; - boolean stringp ATTRIBUTE_UNUSED; + bfd_boolean stringp ATTRIBUTE_UNUSED; { struct ieee_handle *info = (struct ieee_handle *) p; unsigned int eleindx; - boolean localp; + bfd_boolean localp; unsigned int size; struct ieee_modified_type *m = NULL; struct ieee_modified_array_type *a; @@ -5763,27 +5815,27 @@ ieee_array_type (p, low, high, stringp) { m = ieee_get_modified_info (info, eleindx); if (m == NULL) - return false; + return FALSE; for (a = m->arrays; a != NULL; a = a->next) { if (a->low == low && a->high == high) - return ieee_push_type (info, a->indx, size, false, false); + return ieee_push_type (info, a->indx, size, FALSE, FALSE); } } - if (! ieee_define_type (info, size, false, localp) + if (! ieee_define_type (info, size, FALSE, localp) || ! ieee_write_number (info, low == 0 ? 'Z' : 'C') || ! ieee_write_number (info, eleindx)) - return false; + return FALSE; if (low != 0) { if (! ieee_write_number (info, low)) - return false; + return FALSE; } if (! ieee_write_number (info, high + 1)) - return false; + return FALSE; if (! localp) { @@ -5798,18 +5850,18 @@ ieee_array_type (p, low, high, stringp) m->arrays = a; } - return true; + return TRUE; } /* Make a set type. */ -static boolean +static bfd_boolean ieee_set_type (p, bitstringp) PTR p; - boolean bitstringp ATTRIBUTE_UNUSED; + bfd_boolean bitstringp ATTRIBUTE_UNUSED; { struct ieee_handle *info = (struct ieee_handle *) p; - boolean localp; + bfd_boolean localp; unsigned int eleindx; localp = info->type_stack->type.localp; @@ -5817,7 +5869,7 @@ ieee_set_type (p, bitstringp) /* FIXME: We don't know the size, so we just use 4. */ - return (ieee_define_type (info, 0, true, localp) + return (ieee_define_type (info, 0, TRUE, localp) && ieee_write_number (info, 's') && ieee_write_number (info, 4) && ieee_write_number (info, eleindx)); @@ -5825,7 +5877,7 @@ ieee_set_type (p, bitstringp) /* Make an offset type. */ -static boolean +static bfd_boolean ieee_offset_type (p) PTR p; { @@ -5842,17 +5894,17 @@ ieee_offset_type (p) member. Unfortunately, it does not describe the target type, which seems pretty important. I'm going to punt this for now. */ - return ieee_int_type (p, 4, true); + return ieee_int_type (p, 4, TRUE); } /* Make a method type. */ -static boolean +static bfd_boolean ieee_method_type (p, domain, argcount, varargs) PTR p; - boolean domain; + bfd_boolean domain; int argcount; - boolean varargs; + bfd_boolean varargs; { struct ieee_handle *info = (struct ieee_handle *) p; @@ -5868,13 +5920,13 @@ ieee_method_type (p, domain, argcount, v /* Make a const qualified type. */ -static boolean +static bfd_boolean ieee_const_type (p) PTR p; { struct ieee_handle *info = (struct ieee_handle *) p; unsigned int size; - boolean unsignedp, localp; + bfd_boolean unsignedp, localp; unsigned int indx; struct ieee_modified_type *m = NULL; @@ -5887,34 +5939,34 @@ ieee_const_type (p) { m = ieee_get_modified_info (info, indx); if (m == NULL) - return false; + return FALSE; if (m->const_qualified > 0) return ieee_push_type (info, m->const_qualified, size, unsignedp, - false); + FALSE); } if (! ieee_define_type (info, size, unsignedp, localp) || ! ieee_write_number (info, 'n') || ! ieee_write_number (info, 1) || ! ieee_write_number (info, indx)) - return false; + return FALSE; if (! localp) m->const_qualified = info->type_stack->type.indx; - return true; + return TRUE; } /* Make a volatile qualified type. */ -static boolean +static bfd_boolean ieee_volatile_type (p) PTR p; { struct ieee_handle *info = (struct ieee_handle *) p; unsigned int size; - boolean unsignedp, localp; + bfd_boolean unsignedp, localp; unsigned int indx; struct ieee_modified_type *m = NULL; @@ -5927,23 +5979,23 @@ ieee_volatile_type (p) { m = ieee_get_modified_info (info, indx); if (m == NULL) - return false; + return FALSE; if (m->volatile_qualified > 0) return ieee_push_type (info, m->volatile_qualified, size, unsignedp, - false); + FALSE); } if (! ieee_define_type (info, size, unsignedp, localp) || ! ieee_write_number (info, 'n') || ! ieee_write_number (info, 2) || ! ieee_write_number (info, indx)) - return false; + return FALSE; if (! localp) m->volatile_qualified = info->type_stack->type.indx; - return true; + return TRUE; } /* Convert an enum debug_visibility into a CXXFLAGS value. */ @@ -5970,25 +6022,25 @@ ieee_vis_to_flags (visibility) the stack, to avoid confusing type definitions required by the fields with the struct type itself. */ -static boolean +static bfd_boolean ieee_start_struct_type (p, tag, id, structp, size) PTR p; const char *tag; unsigned int id; - boolean structp; + bfd_boolean structp; unsigned int size; { struct ieee_handle *info = (struct ieee_handle *) p; - boolean localp, ignorep; - boolean copy; + bfd_boolean localp, ignorep; + bfd_boolean copy; char ab[20]; const char *look; struct ieee_name_type_hash_entry *h; struct ieee_name_type *nt, *ntlook; struct ieee_buflist strdef; - localp = false; - ignorep = false; + localp = FALSE; + ignorep = FALSE; /* We need to create a tag for internal use even if we don't want one for external use. This will let us refer to an anonymous @@ -5996,20 +6048,20 @@ ieee_start_struct_type (p, tag, id, stru if (tag != NULL) { look = tag; - copy = false; + copy = FALSE; } else { sprintf (ab, "__anon%u", id); look = ab; - copy = true; + copy = TRUE; } /* If we already have references to the tag, we must use the existing type index. */ - h = ieee_name_type_hash_lookup (&info->tags, look, true, copy); + h = ieee_name_type_hash_lookup (&info->tags, look, TRUE, copy); if (h == NULL) - return false; + return FALSE; nt = NULL; for (ntlook = h->types; ntlook != NULL; ntlook = ntlook->next) @@ -6021,7 +6073,7 @@ ieee_start_struct_type (p, tag, id, stru /* We are creating a duplicate definition of a globally defined tag. Force it to be local to avoid confusion. */ - localp = true; + localp = TRUE; } } @@ -6032,7 +6084,7 @@ ieee_start_struct_type (p, tag, id, stru { /* We've already seen a global definition of the type. Ignore this new definition. */ - ignorep = true; + ignorep = TRUE; } } else @@ -6050,11 +6102,11 @@ ieee_start_struct_type (p, tag, id, stru nt->kind = DEBUG_KIND_ILLEGAL; if (! ieee_init_buffer (info, &strdef) - || ! ieee_define_named_type (info, tag, nt->type.indx, size, true, + || ! ieee_define_named_type (info, tag, nt->type.indx, size, TRUE, localp, &strdef) || ! ieee_write_number (info, structp ? 'S' : 'U') || ! ieee_write_number (info, size)) - return false; + return FALSE; if (! ignorep) { @@ -6072,12 +6124,12 @@ ieee_start_struct_type (p, tag, id, stru info->type_stack->type.strdef = strdef; info->type_stack->type.ignorep = ignorep; - return true; + return TRUE; } /* Add a field to a struct. */ -static boolean +static bfd_boolean ieee_struct_field (p, name, bitpos, bitsize, visibility) PTR p; const char *name; @@ -6087,9 +6139,9 @@ ieee_struct_field (p, name, bitpos, bits { struct ieee_handle *info = (struct ieee_handle *) p; unsigned int size; - boolean unsignedp; - boolean referencep; - boolean localp; + bfd_boolean unsignedp; + bfd_boolean referencep; + bfd_boolean localp; unsigned int indx; bfd_vma offset; @@ -6102,7 +6154,7 @@ ieee_struct_field (p, name, bitpos, bits if (info->type_stack->next->type.ignorep) { ieee_pop_unused_type (info); - return true; + return TRUE; } size = info->type_stack->type.size; @@ -6112,7 +6164,7 @@ ieee_struct_field (p, name, bitpos, bits indx = ieee_pop_type (info); if (localp) - info->type_stack->type.localp = true; + info->type_stack->type.localp = TRUE; if (info->type_stack->type.classdef != NULL) { @@ -6130,7 +6182,7 @@ ieee_struct_field (p, name, bitpos, bits || ! ieee_write_asn (info, nindx, flags) || ! ieee_write_atn65 (info, nindx, name) || ! ieee_write_atn65 (info, nindx, name)) - return false; + return FALSE; info->type_stack->type.classdef->pmisccount += 4; if (referencep) @@ -6160,7 +6212,7 @@ ieee_struct_field (p, name, bitpos, bits || ! ieee_write_asn (info, nindx, 3) || ! ieee_write_atn65 (info, nindx, info->type_stack->type.name) || ! ieee_write_atn65 (info, nindx, name)) - return false; + return FALSE; } } @@ -6176,7 +6228,7 @@ ieee_struct_field (p, name, bitpos, bits || ! ieee_write_number (info, unsignedp ? 0 : 1) || ! ieee_write_number (info, bitsize) || ! ieee_write_number (info, indx)) - return false; + return FALSE; indx = ieee_pop_type (info); offset = bitpos; } @@ -6191,7 +6243,7 @@ ieee_struct_field (p, name, bitpos, bits /* Finish up a struct type. */ -static boolean +static bfd_boolean ieee_end_struct_type (p) PTR p; { @@ -6205,10 +6257,10 @@ ieee_end_struct_type (p) duplicate defintion, just through away whatever bytes we have accumulated. Leave the type on the stack. */ if (info->type_stack->type.ignorep) - return true; + return TRUE; /* If this is not a duplicate definition of this tag, then localp - will be false, and we can put it in the global type block. + will be FALSE, and we can put it in the global type block. FIXME: We should avoid outputting duplicate definitions which are the same. */ if (! info->type_stack->type.localp) @@ -6221,7 +6273,7 @@ ieee_end_struct_type (p) || ! ieee_write_byte (info, 2) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, "")) - return false; + return FALSE; } pb = &info->global_types; } @@ -6235,7 +6287,7 @@ ieee_end_struct_type (p) || ! ieee_write_byte (info, 1) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, info->modname)) - return false; + return FALSE; } pb = &info->types; } @@ -6243,24 +6295,24 @@ ieee_end_struct_type (p) /* Append the struct definition to the types. */ if (! ieee_append_buffer (info, pb, &info->type_stack->type.strdef) || ! ieee_init_buffer (info, &info->type_stack->type.strdef)) - return false; + return FALSE; /* Leave the struct on the type stack. */ - return true; + return TRUE; } /* Start a class type. */ -static boolean +static bfd_boolean ieee_start_class_type (p, tag, id, structp, size, vptr, ownvptr) PTR p; const char *tag; unsigned int id; - boolean structp; + bfd_boolean structp; unsigned int size; - boolean vptr; - boolean ownvptr; + bfd_boolean vptr; + bfd_boolean ownvptr; { struct ieee_handle *info = (struct ieee_handle *) p; const char *vclass; @@ -6296,7 +6348,7 @@ ieee_start_class_type (p, tag, id, struc } if (! ieee_start_struct_type (p, tag, id, structp, size)) - return false; + return FALSE; indx = info->name_indx; ++info->name_indx; @@ -6309,7 +6361,7 @@ ieee_start_class_type (p, tag, id, struc || ! ieee_write_asn (info, indx, 'T') || ! ieee_write_asn (info, indx, structp ? 'o' : 'u') || ! ieee_write_atn65 (info, indx, tag)) - return false; + return FALSE; classdef = (struct ieee_type_class *) xmalloc (sizeof *classdef); memset (classdef, 0, sizeof *classdef); @@ -6322,12 +6374,12 @@ ieee_start_class_type (p, tag, id, struc info->type_stack->type.classdef = classdef; - return true; + return TRUE; } /* Add a static member to a class. */ -static boolean +static bfd_boolean ieee_class_static_member (p, name, physname, visibility) PTR p; const char *name; @@ -6356,24 +6408,24 @@ ieee_class_static_member (p, name, physn || ! ieee_write_asn (info, nindx, flags) || ! ieee_write_atn65 (info, nindx, name) || ! ieee_write_atn65 (info, nindx, physname)) - return false; + return FALSE; info->type_stack->type.classdef->pmisccount += 4; - return true; + return TRUE; } /* Add a base class to a class. */ -static boolean +static bfd_boolean ieee_class_baseclass (p, bitpos, virtual, visibility) PTR p; bfd_vma bitpos; - boolean virtual; + bfd_boolean virtual; enum debug_visibility visibility; { struct ieee_handle *info = (struct ieee_handle *) p; const char *bname; - boolean localp; + bfd_boolean localp; unsigned int bindx; char *fname; unsigned int flags; @@ -6403,7 +6455,7 @@ ieee_class_baseclass (p, bitpos, virtual else { if (localp) - info->type_stack->type.localp = true; + info->type_stack->type.localp = TRUE; fname = (char *) xmalloc (strlen (bname) + sizeof "_b$"); sprintf (fname, "_b$%s", bname); @@ -6412,7 +6464,7 @@ ieee_class_baseclass (p, bitpos, virtual || ! ieee_write_id (info, fname) || ! ieee_write_number (info, bindx) || ! ieee_write_number (info, bitpos / 8)) - return false; + return FALSE; flags = 0; } @@ -6427,17 +6479,17 @@ ieee_class_baseclass (p, bitpos, virtual || ! ieee_write_atn65 (info, nindx, bname) || ! ieee_write_asn (info, nindx, 0) || ! ieee_write_atn65 (info, nindx, fname)) - return false; + return FALSE; info->type_stack->type.classdef->pmisccount += 5; free (fname); - return true; + return TRUE; } /* Start building a method for a class. */ -static boolean +static bfd_boolean ieee_class_start_method (p, name) PTR p; const char *name; @@ -6450,26 +6502,26 @@ ieee_class_start_method (p, name) info->type_stack->type.classdef->method = name; - return true; + return TRUE; } /* Define a new method variant, either static or not. */ -static boolean +static bfd_boolean ieee_class_method_var (info, physname, visibility, staticp, constp, volatilep, voffset, context) struct ieee_handle *info; const char *physname; enum debug_visibility visibility; - boolean staticp; - boolean constp; - boolean volatilep; + bfd_boolean staticp; + bfd_boolean constp; + bfd_boolean volatilep; bfd_vma voffset; - boolean context; + bfd_boolean context; { unsigned int flags; unsigned int nindx; - boolean virtual; + bfd_boolean virtual; /* We don't need the type of the method. An IEEE consumer which wants the type must track down the function by the physical name @@ -6508,63 +6560,63 @@ ieee_class_method_var (info, physname, v || ! ieee_write_atn65 (info, nindx, info->type_stack->type.classdef->method) || ! ieee_write_atn65 (info, nindx, physname)) - return false; + return FALSE; if (virtual) { if (voffset > info->type_stack->type.classdef->voffset) info->type_stack->type.classdef->voffset = voffset; if (! ieee_write_asn (info, nindx, voffset)) - return false; + return FALSE; ++info->type_stack->type.classdef->pmisccount; } if (! ieee_write_asn (info, nindx, 0)) - return false; + return FALSE; info->type_stack->type.classdef->pmisccount += 5; - return true; + return TRUE; } /* Define a new method variant. */ -static boolean +static bfd_boolean ieee_class_method_variant (p, physname, visibility, constp, volatilep, voffset, context) PTR p; const char *physname; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; bfd_vma voffset; - boolean context; + bfd_boolean context; { struct ieee_handle *info = (struct ieee_handle *) p; - return ieee_class_method_var (info, physname, visibility, false, constp, + return ieee_class_method_var (info, physname, visibility, FALSE, constp, volatilep, voffset, context); } /* Define a new static method variant. */ -static boolean +static bfd_boolean ieee_class_static_method_variant (p, physname, visibility, constp, volatilep) PTR p; const char *physname; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; { struct ieee_handle *info = (struct ieee_handle *) p; - return ieee_class_method_var (info, physname, visibility, true, constp, - volatilep, 0, false); + return ieee_class_method_var (info, physname, visibility, TRUE, constp, + volatilep, 0, FALSE); } /* Finish up a method. */ -static boolean +static bfd_boolean ieee_class_end_method (p) PTR p; { @@ -6576,12 +6628,12 @@ ieee_class_end_method (p) info->type_stack->type.classdef->method = NULL; - return true; + return TRUE; } /* Finish up a class. */ -static boolean +static bfd_boolean ieee_end_class_type (p) PTR p; { @@ -6595,7 +6647,7 @@ ieee_end_class_type (p) duplicate definition, just through away whatever bytes we have accumulated. Leave the type on the stack. */ if (info->type_stack->type.ignorep) - return true; + return TRUE; nindx = info->type_stack->type.classdef->indx; @@ -6609,20 +6661,20 @@ ieee_end_class_type (p) || ! ieee_write_atn65 (info, nindx, "") || ! ieee_write_asn (info, nindx, info->type_stack->type.classdef->voffset)) - return false; + return FALSE; if (info->type_stack->type.classdef->ownvptr) { if (! ieee_write_atn65 (info, nindx, "")) - return false; + return FALSE; } else { if (! ieee_write_atn65 (info, nindx, info->type_stack->type.classdef->vclass)) - return false; + return FALSE; } if (! ieee_write_asn (info, nindx, 0)) - return false; + return FALSE; info->type_stack->type.classdef->pmisccount += 5; } @@ -6641,16 +6693,16 @@ ieee_end_class_type (p) || ! ieee_write_number (info, 80) || ! ieee_write_number (info, info->type_stack->type.classdef->pmisccount)) - return false; + return FALSE; if (! ieee_append_buffer (info, &info->cxx, &info->type_stack->type.classdef->pmiscbuf)) - return false; + return FALSE; if (! ieee_buffer_emptyp (&info->type_stack->type.classdef->refs)) { if (! ieee_append_buffer (info, &info->cxx, &info->type_stack->type.classdef->refs)) - return false; + return FALSE; } return ieee_end_struct_type (p); @@ -6658,7 +6710,7 @@ ieee_end_class_type (p) /* Push a previously seen typedef onto the type stack. */ -static boolean +static bfd_boolean ieee_typedef_type (p, name) PTR p; const char *name; @@ -6667,7 +6719,7 @@ ieee_typedef_type (p, name) struct ieee_name_type_hash_entry *h; struct ieee_name_type *nt; - h = ieee_name_type_hash_lookup (&info->typedefs, name, false, false); + h = ieee_name_type_hash_lookup (&info->typedefs, name, FALSE, FALSE); /* h should never be NULL, since that would imply that the generic debugging code has asked for a typedef which it has not yet @@ -6680,17 +6732,17 @@ ieee_typedef_type (p, name) nt = h->types; if (! ieee_push_type (info, nt->type.indx, nt->type.size, nt->type.unsignedp, nt->type.localp)) - return false; + return FALSE; /* Copy over any other type information we may have. */ info->type_stack->type = nt->type; - return true; + return TRUE; } /* Push a tagged type onto the type stack. */ -static boolean +static bfd_boolean ieee_tag_type (p, name, id, kind) PTR p; const char *name; @@ -6698,8 +6750,8 @@ ieee_tag_type (p, name, id, kind) enum debug_type_kind kind; { struct ieee_handle *info = (struct ieee_handle *) p; - boolean localp; - boolean copy; + bfd_boolean localp; + bfd_boolean copy; char ab[20]; struct ieee_name_type_hash_entry *h; struct ieee_name_type *nt; @@ -6712,7 +6764,7 @@ ieee_tag_type (p, name, id, kind) abort (); for (e = info->enums; e != NULL; e = e->next) if (e->tag != NULL && strcmp (e->tag, name) == 0) - return ieee_push_type (info, e->indx, 0, true, false); + return ieee_push_type (info, e->indx, 0, TRUE, FALSE); e = (struct ieee_defined_enum *) xmalloc (sizeof *e); memset (e, 0, sizeof *e); @@ -6720,27 +6772,27 @@ ieee_tag_type (p, name, id, kind) e->indx = info->type_indx; ++info->type_indx; e->tag = name; - e->defined = false; + e->defined = FALSE; e->next = info->enums; info->enums = e; - return ieee_push_type (info, e->indx, 0, true, false); + return ieee_push_type (info, e->indx, 0, TRUE, FALSE); } - localp = false; + localp = FALSE; - copy = false; + copy = FALSE; if (name == NULL) { sprintf (ab, "__anon%u", id); name = ab; - copy = true; + copy = TRUE; } - h = ieee_name_type_hash_lookup (&info->tags, name, true, copy); + h = ieee_name_type_hash_lookup (&info->tags, name, TRUE, copy); if (h == NULL) - return false; + return FALSE; for (nt = h->types; nt != NULL; nt = nt->next) { @@ -6748,17 +6800,17 @@ ieee_tag_type (p, name, id, kind) { if (! ieee_push_type (info, nt->type.indx, nt->type.size, nt->type.unsignedp, nt->type.localp)) - return false; + return FALSE; /* Copy over any other type information we may have. */ info->type_stack->type = nt->type; - return true; + return TRUE; } if (! nt->type.localp) { /* This is a duplicate of a global type, so it must be local. */ - localp = true; + localp = TRUE; } } @@ -6775,17 +6827,17 @@ ieee_tag_type (p, name, id, kind) nt->next = h->types; h->types = nt; - if (! ieee_push_type (info, nt->type.indx, 0, false, localp)) - return false; + if (! ieee_push_type (info, nt->type.indx, 0, FALSE, localp)) + return FALSE; info->type_stack->type.name = h->root.string; - return true; + return TRUE; } /* Output a typedef. */ -static boolean +static bfd_boolean ieee_typdef (p, name) PTR p; const char *name; @@ -6793,8 +6845,8 @@ ieee_typdef (p, name) struct ieee_handle *info = (struct ieee_handle *) p; struct ieee_write_type type; unsigned int indx; - boolean found; - boolean localp; + bfd_boolean found; + bfd_boolean localp; struct ieee_name_type_hash_entry *h; struct ieee_name_type *nt; @@ -6806,7 +6858,7 @@ ieee_typdef (p, name) type index to correspond to the name being used. We recognize names used in stabs debugging output even if they don't exactly correspond to the names used for the IEEE builtin types. */ - found = false; + found = FALSE; if (indx <= (unsigned int) builtin_bcd_float) { switch ((enum builtin_types) indx) @@ -6816,7 +6868,7 @@ ieee_typdef (p, name) case builtin_void: if (strcmp (name, "void") == 0) - found = true; + found = TRUE; break; case builtin_signed_char: @@ -6824,18 +6876,18 @@ ieee_typdef (p, name) if (strcmp (name, "signed char") == 0) { indx = (unsigned int) builtin_signed_char; - found = true; + found = TRUE; } else if (strcmp (name, "char") == 0) { indx = (unsigned int) builtin_char; - found = true; + found = TRUE; } break; case builtin_unsigned_char: if (strcmp (name, "unsigned char") == 0) - found = true; + found = TRUE; break; case builtin_signed_short_int: @@ -6845,22 +6897,22 @@ ieee_typdef (p, name) if (strcmp (name, "signed short int") == 0) { indx = (unsigned int) builtin_signed_short_int; - found = true; + found = TRUE; } else if (strcmp (name, "short") == 0) { indx = (unsigned int) builtin_short; - found = true; + found = TRUE; } else if (strcmp (name, "short int") == 0) { indx = (unsigned int) builtin_short_int; - found = true; + found = TRUE; } else if (strcmp (name, "signed short") == 0) { indx = (unsigned int) builtin_signed_short; - found = true; + found = TRUE; } break; @@ -6870,12 +6922,12 @@ ieee_typdef (p, name) || strcmp (name, "short unsigned int") == 0) { indx = builtin_unsigned_short_int; - found = true; + found = TRUE; } else if (strcmp (name, "unsigned short") == 0) { indx = builtin_unsigned_short; - found = true; + found = TRUE; } break; @@ -6885,18 +6937,18 @@ ieee_typdef (p, name) if (strcmp (name, "signed long") == 0) { indx = builtin_signed_long; - found = true; + found = TRUE; } else if (strcmp (name, "int") == 0) { indx = builtin_int; - found = true; + found = TRUE; } else if (strcmp (name, "long") == 0 || strcmp (name, "long int") == 0) { indx = builtin_long; - found = true; + found = TRUE; } break; @@ -6907,50 +6959,50 @@ ieee_typdef (p, name) || strcmp (name, "long unsigned int") == 0) { indx = builtin_unsigned_long; - found = true; + found = TRUE; } else if (strcmp (name, "unsigned") == 0) { indx = builtin_unsigned; - found = true; + found = TRUE; } else if (strcmp (name, "unsigned int") == 0) { indx = builtin_unsigned_int; - found = true; + found = TRUE; } break; case builtin_signed_long_long: if (strcmp (name, "signed long long") == 0 || strcmp (name, "long long int") == 0) - found = true; + found = TRUE; break; case builtin_unsigned_long_long: if (strcmp (name, "unsigned long long") == 0 || strcmp (name, "long long unsigned int") == 0) - found = true; + found = TRUE; break; case builtin_float: if (strcmp (name, "float") == 0) - found = true; + found = TRUE; break; case builtin_double: if (strcmp (name, "double") == 0) - found = true; + found = TRUE; break; case builtin_long_double: if (strcmp (name, "long double") == 0) - found = true; + found = TRUE; break; case builtin_long_long_double: if (strcmp (name, "long long double") == 0) - found = true; + found = TRUE; break; } @@ -6958,9 +7010,9 @@ ieee_typdef (p, name) type.indx = indx; } - h = ieee_name_type_hash_lookup (&info->typedefs, name, true, false); + h = ieee_name_type_hash_lookup (&info->typedefs, name, TRUE, FALSE); if (h == NULL) - return false; + return FALSE; /* See if we have already defined this type with this name. */ localp = type.localp; @@ -6973,13 +7025,13 @@ ieee_typdef (p, name) if (! nt->type.localp) { ieee_pop_unused_type (info); - return true; + return TRUE; } } else { /* This is a duplicate definition, so make this one local. */ - localp = true; + localp = TRUE; } } @@ -7001,7 +7053,7 @@ ieee_typdef (p, name) /* This is one of the builtin typedefs, so we don't need to actually define it. */ ieee_pop_unused_type (info); - return true; + return TRUE; } indx = ieee_pop_type (info); @@ -7011,19 +7063,19 @@ ieee_typdef (p, name) (struct ieee_buflist *) NULL) || ! ieee_write_number (info, 'T') || ! ieee_write_number (info, indx)) - return false; + return FALSE; /* Remove the type we just added to the type stack. This should not be ieee_pop_unused_type, since the type is used, we just don't need it now. */ (void) ieee_pop_type (info); - return true; + return TRUE; } /* Output a tag for a type. We don't have to do anything here. */ -static boolean +static bfd_boolean ieee_tag (p, name) PTR p; const char *name ATTRIBUTE_UNUSED; @@ -7033,36 +7085,36 @@ ieee_tag (p, name) /* This should not be ieee_pop_unused_type, since we want the type to be defined. */ (void) ieee_pop_type (info); - return true; + return TRUE; } /* Output an integer constant. */ -static boolean +static bfd_boolean ieee_int_constant (p, name, val) PTR p ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; bfd_vma val ATTRIBUTE_UNUSED; { /* FIXME. */ - return true; + return TRUE; } /* Output a floating point constant. */ -static boolean +static bfd_boolean ieee_float_constant (p, name, val) PTR p ATTRIBUTE_UNUSED; const char *name ATTRIBUTE_UNUSED; double val ATTRIBUTE_UNUSED; { /* FIXME. */ - return true; + return TRUE; } /* Output a typed constant. */ -static boolean +static bfd_boolean ieee_typed_constant (p, name, val) PTR p; const char *name ATTRIBUTE_UNUSED; @@ -7072,12 +7124,12 @@ ieee_typed_constant (p, name, val) /* FIXME. */ ieee_pop_unused_type (info); - return true; + return TRUE; } /* Output a variable. */ -static boolean +static bfd_boolean ieee_variable (p, name, kind, val) PTR p; const char *name; @@ -7087,9 +7139,9 @@ ieee_variable (p, name, kind, val) struct ieee_handle *info = (struct ieee_handle *) p; unsigned int name_indx; unsigned int size; - boolean referencep; + bfd_boolean referencep; unsigned int type_indx; - boolean asn; + bfd_boolean asn; int refflag; size = info->type_stack->type.size; @@ -7098,7 +7150,7 @@ ieee_variable (p, name, kind, val) assert (! ieee_buffer_emptyp (&info->vars)); if (! ieee_change_buffer (info, &info->vars)) - return false; + return FALSE; name_indx = info->name_indx; ++info->name_indx; @@ -7110,54 +7162,54 @@ ieee_variable (p, name, kind, val) || ! ieee_write_2bytes (info, (int) ieee_atn_record_enum) || ! ieee_write_number (info, name_indx) || ! ieee_write_number (info, type_indx)) - return false; + return FALSE; switch (kind) { default: abort (); - return false; + return FALSE; case DEBUG_GLOBAL: if (! ieee_write_number (info, 8) - || ! ieee_add_range (info, false, val, val + size)) - return false; + || ! ieee_add_range (info, FALSE, val, val + size)) + return FALSE; refflag = 0; - asn = true; + asn = TRUE; break; case DEBUG_STATIC: if (! ieee_write_number (info, 3) - || ! ieee_add_range (info, false, val, val + size)) - return false; + || ! ieee_add_range (info, FALSE, val, val + size)) + return FALSE; refflag = 1; - asn = true; + asn = TRUE; break; case DEBUG_LOCAL_STATIC: if (! ieee_write_number (info, 3) - || ! ieee_add_range (info, false, val, val + size)) - return false; + || ! ieee_add_range (info, FALSE, val, val + size)) + return FALSE; refflag = 2; - asn = true; + asn = TRUE; break; case DEBUG_LOCAL: if (! ieee_write_number (info, 1) || ! ieee_write_number (info, val)) - return false; + return FALSE; refflag = 2; - asn = false; + asn = FALSE; break; case DEBUG_REGISTER: if (! ieee_write_number (info, 2) || ! ieee_write_number (info, ieee_genreg_to_regno (info->abfd, val))) - return false; + return FALSE; refflag = 2; - asn = false; + asn = FALSE; break; } if (asn) { if (! ieee_write_asn (info, name_indx, val)) - return false; + return FALSE; } /* If this is really a reference type, then we just output it with @@ -7177,7 +7229,7 @@ ieee_variable (p, name, kind, val) if (refflag != 2) { if (! ieee_change_buffer (info, &info->cxx)) - return false; + return FALSE; } if (! ieee_write_byte (info, (int) ieee_nn_record) @@ -7192,22 +7244,22 @@ ieee_variable (p, name, kind, val) || ! ieee_write_asn (info, nindx, 'R') || ! ieee_write_asn (info, nindx, refflag) || ! ieee_write_atn65 (info, nindx, name)) - return false; + return FALSE; } - return true; + return TRUE; } /* Start outputting information for a function. */ -static boolean +static bfd_boolean ieee_start_function (p, name, global) PTR p; const char *name; - boolean global; + bfd_boolean global; { struct ieee_handle *info = (struct ieee_handle *) p; - boolean referencep; + bfd_boolean referencep; unsigned int retindx, typeindx; referencep = info->type_stack->type.referencep; @@ -7227,19 +7279,19 @@ ieee_start_function (p, name, global) info->fnname = name; /* An attribute of 0x40 means that the push mask is unknown. */ - if (! ieee_define_named_type (info, name, (unsigned int) -1, 0, false, true, + if (! ieee_define_named_type (info, name, (unsigned int) -1, 0, FALSE, TRUE, &info->fntype) || ! ieee_write_number (info, 'x') || ! ieee_write_number (info, 0x40) || ! ieee_write_number (info, 0) || ! ieee_write_number (info, 0) || ! ieee_write_number (info, retindx)) - return false; + return FALSE; typeindx = ieee_pop_type (info); if (! ieee_init_buffer (info, &info->fnargs)) - return false; + return FALSE; info->fnargcount = 0; /* If the function return value is actually a reference type, we @@ -7263,12 +7315,12 @@ ieee_start_function (p, name, global) || ! ieee_write_asn (info, nindx, 'R') || ! ieee_write_asn (info, nindx, global ? 0 : 1) || ! ieee_write_atn65 (info, nindx, name)) - return false; + return FALSE; } assert (! ieee_buffer_emptyp (&info->vars)); if (! ieee_change_buffer (info, &info->vars)) - return false; + return FALSE; /* The address is written out as the first block. */ @@ -7285,7 +7337,7 @@ ieee_start_function (p, name, global) /* Add a function parameter. This will normally be called before the first block, so we postpone them until we see the block. */ -static boolean +static bfd_boolean ieee_function_parameter (p, name, kind, val) PTR p; const char *name; @@ -7314,15 +7366,15 @@ ieee_function_parameter (p, name, kind, /* Add the type to the fnargs list. */ if (! ieee_change_buffer (info, &info->fnargs) || ! ieee_write_number (info, m->type)) - return false; + return FALSE; ++info->fnargcount; - return true; + return TRUE; } /* Output pending function parameters. */ -static boolean +static bfd_boolean ieee_output_pending_parms (info) struct ieee_handle *info; { @@ -7338,7 +7390,7 @@ ieee_output_pending_parms (info) { default: abort (); - return false; + return FALSE; case DEBUG_PARM_STACK: case DEBUG_PARM_REFERENCE: vkind = DEBUG_LOCAL; @@ -7349,13 +7401,13 @@ ieee_output_pending_parms (info) break; } - if (! ieee_push_type (info, m->type, 0, false, false)) - return false; + if (! ieee_push_type (info, m->type, 0, FALSE, FALSE)) + return FALSE; info->type_stack->type.referencep = m->referencep; if (m->referencep) ++refcount; if (! ieee_variable ((PTR) info, m->name, vkind, m->val)) - return false; + return FALSE; } /* If there are any reference parameters, we need to output a @@ -7381,7 +7433,7 @@ ieee_output_pending_parms (info) || ! ieee_write_asn (info, nindx, 'B') || ! ieee_write_atn65 (info, nindx, info->fnname) || ! ieee_write_asn (info, nindx, 0)) - return false; + return FALSE; for (m = info->pending_parms, varindx = 1; m != NULL; m = m->next, varindx++) @@ -7389,7 +7441,7 @@ ieee_output_pending_parms (info) if (m->referencep) { if (! ieee_write_asn (info, nindx, varindx)) - return false; + return FALSE; } } } @@ -7406,13 +7458,13 @@ ieee_output_pending_parms (info) info->pending_parms = NULL; - return true; + return TRUE; } /* Start a block. If this is the first block, we output the address to finish the BB4 or BB6, and then output the function parameters. */ -static boolean +static bfd_boolean ieee_start_block (p, addr) PTR p; bfd_vma addr; @@ -7420,13 +7472,13 @@ ieee_start_block (p, addr) struct ieee_handle *info = (struct ieee_handle *) p; if (! ieee_change_buffer (info, &info->vars)) - return false; + return FALSE; if (info->block_depth == 1) { if (! ieee_write_number (info, addr) || ! ieee_output_pending_parms (info)) - return false; + return FALSE; } else { @@ -7437,20 +7489,20 @@ ieee_start_block (p, addr) || ! ieee_write_number (info, 0) || ! ieee_write_number (info, 0) || ! ieee_write_number (info, addr)) - return false; + return FALSE; } if (! ieee_start_range (info, addr)) - return false; + return FALSE; ++info->block_depth; - return true; + return TRUE; } /* End a block. */ -static boolean +static bfd_boolean ieee_end_block (p, addr) PTR p; bfd_vma addr; @@ -7463,22 +7515,22 @@ ieee_end_block (p, addr) if (! ieee_change_buffer (info, &info->vars) || ! ieee_write_byte (info, (int) ieee_be_record_enum) || ! ieee_write_number (info, addr - 1)) - return false; + return FALSE; if (! ieee_end_range (info, addr)) - return false; + return FALSE; --info->block_depth; if (addr > info->highaddr) info->highaddr = addr; - return true; + return TRUE; } /* End a function. */ -static boolean +static bfd_boolean ieee_end_function (p) PTR p; { @@ -7498,7 +7550,7 @@ ieee_end_function (p) || ! ieee_write_number (info, info->fnargcount) || ! ieee_change_buffer (info, &info->fnargs) || ! ieee_write_number (info, 0)) - return false; + return FALSE; /* Make sure the typdef block has been started. */ if (ieee_buffer_emptyp (&info->types)) @@ -7508,25 +7560,25 @@ ieee_end_function (p) || ! ieee_write_byte (info, 1) || ! ieee_write_number (info, 0) || ! ieee_write_id (info, info->modname)) - return false; + return FALSE; } if (! ieee_append_buffer (info, &info->types, &info->fntype) || ! ieee_append_buffer (info, &info->types, &info->fnargs)) - return false; + return FALSE; info->fnname = NULL; if (! ieee_init_buffer (info, &info->fntype) || ! ieee_init_buffer (info, &info->fnargs)) - return false; + return FALSE; info->fnargcount = 0; - return true; + return TRUE; } /* Record line number information. */ -static boolean +static bfd_boolean ieee_lineno (p, filename, lineno, addr) PTR p; const char *filename; @@ -7548,7 +7600,7 @@ ieee_lineno (p, filename, lineno, addr) if (! ieee_buffer_emptyp (&info->linenos)) { if (! ieee_change_buffer (info, &info->linenos)) - return false; + return FALSE; } else { @@ -7562,7 +7614,7 @@ ieee_lineno (p, filename, lineno, addr) || ! ieee_write_byte (info, (int) ieee_nn_record) || ! ieee_write_number (info, info->lineno_name_indx) || ! ieee_write_id (info, "")) - return false; + return FALSE; info->lineno_filename = info->filename; } @@ -7573,7 +7625,7 @@ ieee_lineno (p, filename, lineno, addr) /* We were not in the main file. Close the block for the included file. */ if (! ieee_write_byte (info, (int) ieee_be_record_enum)) - return false; + return FALSE; if (strcmp (info->filename, info->pending_lineno_filename) == 0) { /* We need a new NN record, and we aren't about to @@ -7583,7 +7635,7 @@ ieee_lineno (p, filename, lineno, addr) if (! ieee_write_byte (info, (int) ieee_nn_record) || ! ieee_write_number (info, info->lineno_name_indx) || ! ieee_write_id (info, "")) - return false; + return FALSE; } } if (strcmp (info->filename, info->pending_lineno_filename) != 0) @@ -7599,7 +7651,7 @@ ieee_lineno (p, filename, lineno, addr) || ! ieee_write_byte (info, (int) ieee_nn_record) || ! ieee_write_number (info, info->lineno_name_indx) || ! ieee_write_id (info, "")) - return false; + return FALSE; } info->lineno_filename = info->pending_lineno_filename; } @@ -7612,12 +7664,12 @@ ieee_lineno (p, filename, lineno, addr) || ! ieee_write_number (info, 0) || ! ieee_write_asn (info, info->lineno_name_indx, info->pending_lineno_addr)) - return false; + return FALSE; } info->pending_lineno_filename = filename; info->pending_lineno = lineno; info->pending_lineno_addr = addr; - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/binutils/nlmconv.c binutils-2.13.90.0.18/binutils/nlmconv.c --- binutils-2.13.90.0.16/binutils/nlmconv.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/binutils/nlmconv.c Tue Jan 21 10:21:32 2003 @@ -124,37 +124,38 @@ static struct option long_options[] = int main PARAMS ((int, char **)); -static void show_usage PARAMS ((FILE *, int)); -static const char *select_output_format PARAMS ((enum bfd_architecture, - unsigned long, boolean)); -static void setup_sections PARAMS ((bfd *, asection *, PTR)); -static void copy_sections PARAMS ((bfd *, asection *, PTR)); -static void mangle_relocs PARAMS ((bfd *, asection *, arelent ***, - long *, char *, - bfd_size_type)); -static void default_mangle_relocs PARAMS ((bfd *, asection *, arelent ***, - long *, char *, - bfd_size_type)); -static char *link_inputs PARAMS ((struct string_list *, char *)); +static void show_usage + PARAMS ((FILE *, int)); +static const char *select_output_format + PARAMS ((enum bfd_architecture, unsigned long, bfd_boolean)); +static void setup_sections + PARAMS ((bfd *, asection *, PTR)); +static void copy_sections + PARAMS ((bfd *, asection *, PTR)); +static void mangle_relocs + PARAMS ((bfd *, asection *, arelent ***, long *, char *, bfd_size_type)); +static void default_mangle_relocs + PARAMS ((bfd *, asection *, arelent ***, long *, char *, bfd_size_type)); +static char *link_inputs + PARAMS ((struct string_list *, char *)); #ifdef NLMCONV_I386 -static void i386_mangle_relocs PARAMS ((bfd *, asection *, arelent ***, - long *, char *, - bfd_size_type)); +static void i386_mangle_relocs + PARAMS ((bfd *, asection *, arelent ***, long *, char *, bfd_size_type)); #endif #ifdef NLMCONV_ALPHA -static void alpha_mangle_relocs PARAMS ((bfd *, asection *, arelent ***, - long *, char *, - bfd_size_type)); +static void alpha_mangle_relocs + PARAMS ((bfd *, asection *, arelent ***, long *, char *, bfd_size_type)); #endif #ifdef NLMCONV_POWERPC -static void powerpc_build_stubs PARAMS ((bfd *, bfd *, asymbol ***, long *)); -static void powerpc_resolve_stubs PARAMS ((bfd *, bfd *)); -static void powerpc_mangle_relocs PARAMS ((bfd *, asection *, arelent ***, - long *, char *, - bfd_size_type)); +static void powerpc_build_stubs + PARAMS ((bfd *, bfd *, asymbol ***, long *)); +static void powerpc_resolve_stubs + PARAMS ((bfd *, bfd *)); +static void powerpc_mangle_relocs + PARAMS ((bfd *, asection *, arelent ***, long *, char *, bfd_size_type)); #endif /* The main routine. */ @@ -186,7 +187,7 @@ main (argc, argv) asymbol *endsym; long i; char inlead, outlead; - boolean gotstart, gotexit, gotcheck; + bfd_boolean gotstart, gotexit, gotcheck; struct stat st; FILE *custom_data = NULL; FILE *help_data = NULL; @@ -296,18 +297,18 @@ main (argc, argv) memset ((PTR) &extended_hdr_struct, 0, sizeof extended_hdr_struct); check_procedure = NULL; custom_file = NULL; - debug_info = false; + debug_info = FALSE; exit_procedure = "_Stop"; export_symbols = NULL; map_file = NULL; - full_map = false; + full_map = FALSE; help_file = NULL; import_symbols = NULL; message_file = NULL; modules = NULL; sharelib_file = NULL; start_procedure = "_Prelude"; - verbose = false; + verbose = FALSE; rpc_file = NULL; parse_errors = 0; @@ -376,7 +377,8 @@ main (argc, argv) assert (bfd_get_flavour (outbfd) == bfd_target_nlm_flavour); - if (bfd_arch_get_compatible (inbfd, outbfd) == NULL) + /* XXX: Should we accept the unknown bfd format here ? */ + if (bfd_arch_get_compatible (inbfd, outbfd, TRUE) == NULL) non_fatal (_("warning: input and output formats are not compatible")); /* Move the values read from the command file into outbfd. */ @@ -459,9 +461,9 @@ main (argc, argv) /* Adjust symbol information. */ inlead = bfd_get_symbol_leading_char (inbfd); outlead = bfd_get_symbol_leading_char (outbfd); - gotstart = false; - gotexit = false; - gotcheck = false; + gotstart = FALSE; + gotexit = FALSE; + gotcheck = FALSE; newsymalloc = 10; newsyms = (asymbol **) xmalloc (newsymalloc * sizeof (asymbol *)); newsymcount = 0; @@ -653,7 +655,7 @@ main (argc, argv) val += bfd_section_size (outbfd, text_sec); if (! bfd_set_start_address (outbfd, val)) bfd_fatal (_("set start address")); - gotstart = true; + gotstart = TRUE; } if (strcmp (bfd_asymbol_name (sym), exit_procedure) == 0) { @@ -662,7 +664,7 @@ main (argc, argv) && text_sec != (asection *) NULL) val += bfd_section_size (outbfd, text_sec); nlm_fixed_header (outbfd)->exitProcedureOffset = val; - gotexit = true; + gotexit = TRUE; } if (check_procedure != NULL && strcmp (bfd_asymbol_name (sym), check_procedure) == 0) @@ -672,7 +674,7 @@ main (argc, argv) && text_sec != (asection *) NULL) val += bfd_section_size (outbfd, text_sec); nlm_fixed_header (outbfd)->checkUnloadProcedureOffset = val; - gotcheck = true; + gotcheck = TRUE; } } } @@ -1127,7 +1129,7 @@ static const char * select_output_format (arch, mach, bigendian) enum bfd_architecture arch; unsigned long mach; - boolean bigendian ATTRIBUTE_UNUSED; + bfd_boolean bigendian ATTRIBUTE_UNUSED; { switch (arch) { @@ -1253,7 +1255,7 @@ copy_sections (inbfd, insec, data_ptr) /* FIXME: Why are these necessary? */ insec->_cooked_size = insec->_raw_size; - insec->reloc_done = true; + insec->reloc_done = TRUE; if ((bfd_get_section_flags (inbfd, insec) & SEC_HAS_CONTENTS) == 0) contents = NULL; @@ -1416,15 +1418,15 @@ static reloc_howto_type nlm_i386_pcrel_h 0, /* rightshift */ 2, /* size (0 = byte, 1 = short, 2 = long) */ 32, /* bitsize */ - true, /* pc_relative */ + TRUE, /* pc_relative */ 0, /* bitpos */ complain_overflow_signed, /* complain_on_overflow */ 0, /* special_function */ "DISP32", /* name */ - true, /* partial_inplace */ + TRUE, /* partial_inplace */ 0xffffffff, /* src_mask */ 0xffffffff, /* dst_mask */ - true); /* pcrel_offset */ + TRUE); /* pcrel_offset */ static void i386_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents, @@ -1574,15 +1576,15 @@ static reloc_howto_type nlm32_alpha_nw_h 0, /* rightshift */ 0, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ - false, /* pc_relative */ + FALSE, /* pc_relative */ 0, /* bitpos */ complain_overflow_dont, /* complain_on_overflow */ 0, /* special_function */ "NW_RELOC", /* name */ - false, /* partial_inplace */ + FALSE, /* partial_inplace */ 0, /* src_mask */ 0, /* dst_mask */ - false); /* pcrel_offset */ + FALSE); /* pcrel_offset */ static void alpha_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents, diff -uprN binutils-2.13.90.0.16/binutils/nlmconv.h binutils-2.13.90.0.18/binutils/nlmconv.h --- binutils-2.13.90.0.16/binutils/nlmconv.h Thu Mar 15 14:51:48 2001 +++ binutils-2.13.90.0.18/binutils/nlmconv.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* nlmconv.h -- header file for NLM conversion program - Copyright 1993 Free Software Foundation, Inc. + Copyright 1993, 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -44,7 +44,7 @@ extern char *check_procedure; /* File named by CUSTOM. */ extern char *custom_file; /* Whether to generate debugging information (DEBUG). */ -extern boolean debug_info; +extern bfd_boolean debug_info; /* Procedure named by EXIT. */ extern char *exit_procedure; /* Exported symbols (EXPORT). */ @@ -54,7 +54,7 @@ extern struct string_list *input_files; /* Map file name (MAP, FULLMAP). */ extern char *map_file; /* Whether a full map has been requested (FULLMAP). */ -extern boolean full_map; +extern bfd_boolean full_map; /* File named by HELP. */ extern char *help_file; /* Imported symbols (IMPORT). */ @@ -70,7 +70,7 @@ extern char *sharelib_file; /* Start procedure name (START). */ extern char *start_procedure; /* VERBOSE. */ -extern boolean verbose; +extern bfd_boolean verbose; /* RPC description file (XDCDATA). */ extern char *rpc_file; @@ -81,4 +81,4 @@ extern int parse_errors; extern int yyparse PARAMS ((void)); /* Tell the lexer what file to read. */ -extern boolean nlmlex_file PARAMS ((const char *)); +extern bfd_boolean nlmlex_file PARAMS ((const char *)); diff -uprN binutils-2.13.90.0.16/binutils/nlmheader.y binutils-2.13.90.0.18/binutils/nlmheader.y --- binutils-2.13.90.0.16/binutils/nlmheader.y Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.18/binutils/nlmheader.y Mon Dec 16 12:22:52 2002 @@ -50,7 +50,7 @@ char *check_procedure; /* File named by CUSTOM. */ char *custom_file; /* Whether to generate debugging information (DEBUG). */ -boolean debug_info; +bfd_boolean debug_info; /* Procedure named by EXIT. */ char *exit_procedure; /* Exported symbols (EXPORT). */ @@ -60,7 +60,7 @@ struct string_list *input_files; /* Map file name (MAP, FULLMAP). */ char *map_file; /* Whether a full map has been requested (FULLMAP). */ -boolean full_map; +bfd_boolean full_map; /* File named by HELP. */ char *help_file; /* Imported symbols (IMPORT). */ @@ -76,7 +76,7 @@ char *sharelib_file; /* Start procedure name (START). */ char *start_procedure; /* VERBOSE. */ -boolean verbose; +bfd_boolean verbose; /* RPC description file (XDCDATA). */ char *rpc_file; @@ -93,7 +93,7 @@ static char *symbol_prefix; /* Local functions. */ static int yylex PARAMS ((void)); static void nlmlex_file_push PARAMS ((const char *)); -static boolean nlmlex_file_open PARAMS ((const char *)); +static bfd_boolean nlmlex_file_open PARAMS ((const char *)); static int nlmlex_buf_init PARAMS ((void)); static char nlmlex_buf_add PARAMS ((int)); static long nlmlex_get_number PARAMS ((const char *)); @@ -141,7 +141,7 @@ static char *xstrdup PARAMS ((const char /* The entire file is just a list of commands. */ -file: +file: commands ; @@ -205,7 +205,7 @@ command: } | DEBUG { - debug_info = true; + debug_info = TRUE; } | DESCRIPTION QUOTED_STRING { @@ -248,12 +248,12 @@ command: | FULLMAP { map_file = ""; - full_map = true; + full_map = TRUE; } | FULLMAP STRING { map_file = $2; - full_map = true; + full_map = TRUE; } | HELP STRING { @@ -366,7 +366,7 @@ command: } | VERBOSE { - verbose = true; + verbose = TRUE; } | VERSIONK STRING STRING STRING { @@ -536,7 +536,7 @@ static struct input current; /* Start the lexer going on the main input file. */ -boolean +bfd_boolean nlmlex_file (name) const char *name; { @@ -565,7 +565,7 @@ nlmlex_file_push (name) /* Start lexing from a file. */ -static boolean +static bfd_boolean nlmlex_file_open (name) const char *name; { @@ -574,12 +574,12 @@ nlmlex_file_open (name) { fprintf (stderr, "%s:%s: %s\n", program_name, name, strerror (errno)); ++parse_errors; - return false; + return FALSE; } current.name = xstrdup (name); current.lineno = 1; current.state = BEGINNING_OF_LINE; - return true; + return TRUE; } /* Table used to turn keywords into tokens. */ @@ -746,7 +746,7 @@ tail_recurse: BUF_FINISH (); ungetc (c, current.file); - + nlmlex_file_push (lex_buf); goto tail_recurse; } @@ -785,7 +785,7 @@ tail_recurse: return keyword_tokens[i].token; } } - + nlmheader_identify (); fprintf (stderr, _("%s:%d: unrecognized keyword: %s\n"), current.name, current.lineno, lex_buf); diff -uprN binutils-2.13.90.0.16/binutils/nm.c binutils-2.13.90.0.18/binutils/nm.c --- binutils-2.13.90.0.16/binutils/nm.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/binutils/nm.c Mon Dec 16 12:22:52 2002 @@ -68,47 +68,84 @@ struct extended_symbol_info #define SYM_SIZE(sym) \ (sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize) -static void usage PARAMS ((FILE *, int)); -static void set_print_radix PARAMS ((char *)); -static void set_output_format PARAMS ((char *)); -static void display_archive PARAMS ((bfd *)); -static boolean display_file PARAMS ((char *)); -static void display_rel_file PARAMS ((bfd *, bfd *)); -static long filter_symbols PARAMS ((bfd *, boolean, PTR, long, unsigned int)); -static long sort_symbols_by_size PARAMS ((bfd *, boolean, PTR, long, unsigned int, struct size_sym **)); -static void print_symbols PARAMS ((bfd *, boolean, PTR, long, unsigned int, bfd *)); -static void print_size_symbols PARAMS ((bfd *, boolean, struct size_sym *, long, bfd *)); -static void print_symname PARAMS ((const char *, const char *, bfd *)); -static void print_symbol PARAMS ((bfd *, asymbol *, bfd_vma ssize, bfd *)); -static void print_symdef_entry PARAMS ((bfd *)); +static void usage + PARAMS ((FILE *, int)); +static void set_print_radix + PARAMS ((char *)); +static void set_output_format + PARAMS ((char *)); +static void display_archive + PARAMS ((bfd *)); +static bfd_boolean display_file + PARAMS ((char *)); +static void display_rel_file + PARAMS ((bfd *, bfd *)); +static long filter_symbols + PARAMS ((bfd *, bfd_boolean, PTR, long, unsigned int)); +static long sort_symbols_by_size + PARAMS ((bfd *, bfd_boolean, PTR, long, unsigned int, struct size_sym **)); +static void print_symbols + PARAMS ((bfd *, bfd_boolean, PTR, long, unsigned int, bfd *)); +static void print_size_symbols + PARAMS ((bfd *, bfd_boolean, struct size_sym *, long, bfd *)); +static void print_symname + PARAMS ((const char *, const char *, bfd *)); +static void print_symbol + PARAMS ((bfd *, asymbol *, bfd_vma ssize, bfd *)); +static void print_symdef_entry + PARAMS ((bfd *)); /* The sorting functions. */ -static int numeric_forward PARAMS ((const PTR, const PTR)); -static int numeric_reverse PARAMS ((const PTR, const PTR)); -static int non_numeric_forward PARAMS ((const PTR, const PTR)); -static int non_numeric_reverse PARAMS ((const PTR, const PTR)); -static int size_forward1 PARAMS ((const PTR, const PTR)); -static int size_forward2 PARAMS ((const PTR, const PTR)); +static int numeric_forward + PARAMS ((const PTR, const PTR)); +static int numeric_reverse + PARAMS ((const PTR, const PTR)); +static int non_numeric_forward + PARAMS ((const PTR, const PTR)); +static int non_numeric_reverse + PARAMS ((const PTR, const PTR)); +static int size_forward1 + PARAMS ((const PTR, const PTR)); +static int size_forward2 + PARAMS ((const PTR, const PTR)); /* The output formatting functions. */ -static void print_object_filename_bsd PARAMS ((char *)); -static void print_object_filename_sysv PARAMS ((char *)); -static void print_object_filename_posix PARAMS ((char *)); -static void print_archive_filename_bsd PARAMS ((char *)); -static void print_archive_filename_sysv PARAMS ((char *)); -static void print_archive_filename_posix PARAMS ((char *)); -static void print_archive_member_bsd PARAMS ((char *, const char *)); -static void print_archive_member_sysv PARAMS ((char *, const char *)); -static void print_archive_member_posix PARAMS ((char *, const char *)); -static void print_symbol_filename_bsd PARAMS ((bfd *, bfd *)); -static void print_symbol_filename_sysv PARAMS ((bfd *, bfd *)); -static void print_symbol_filename_posix PARAMS ((bfd *, bfd *)); -static void print_value PARAMS ((bfd *, bfd_vma)); -static void print_symbol_info_bsd PARAMS ((struct extended_symbol_info *, bfd *)); -static void print_symbol_info_sysv PARAMS ((struct extended_symbol_info *, bfd *)); -static void print_symbol_info_posix PARAMS ((struct extended_symbol_info *, bfd *)); -static void get_relocs PARAMS ((bfd *, asection *, PTR)); -static const char * get_symbol_type PARAMS ((unsigned int)); +static void print_object_filename_bsd + PARAMS ((char *)); +static void print_object_filename_sysv + PARAMS ((char *)); +static void print_object_filename_posix + PARAMS ((char *)); +static void print_archive_filename_bsd + PARAMS ((char *)); +static void print_archive_filename_sysv + PARAMS ((char *)); +static void print_archive_filename_posix + PARAMS ((char *)); +static void print_archive_member_bsd + PARAMS ((char *, const char *)); +static void print_archive_member_sysv + PARAMS ((char *, const char *)); +static void print_archive_member_posix + PARAMS ((char *, const char *)); +static void print_symbol_filename_bsd + PARAMS ((bfd *, bfd *)); +static void print_symbol_filename_sysv + PARAMS ((bfd *, bfd *)); +static void print_symbol_filename_posix + PARAMS ((bfd *, bfd *)); +static void print_value + PARAMS ((bfd *, bfd_vma)); +static void print_symbol_info_bsd + PARAMS ((struct extended_symbol_info *, bfd *)); +static void print_symbol_info_sysv + PARAMS ((struct extended_symbol_info *, bfd *)); +static void print_symbol_info_posix + PARAMS ((struct extended_symbol_info *, bfd *)); +static void get_relocs + PARAMS ((bfd *, asection *, PTR)); +static const char * get_symbol_type + PARAMS ((unsigned int)); /* Support for different output formats. */ struct output_fns @@ -593,11 +630,11 @@ display_archive (file) } } -static boolean +static bfd_boolean display_file (filename) char *filename; { - boolean retval = true; + bfd_boolean retval = TRUE; bfd *file; char **matching; @@ -605,7 +642,7 @@ display_file (filename) if (file == NULL) { bfd_nonfatal (filename); - return false; + return FALSE; } if (bfd_check_format (file, bfd_archive)) @@ -629,10 +666,10 @@ display_file (filename) list_matching_formats (matching); free (matching); } - retval = false; + retval = FALSE; } - if (bfd_close (file) == false) + if (!bfd_close (file)) bfd_fatal (filename); lineno_cache_bfd = NULL; @@ -644,7 +681,7 @@ display_file (filename) /* These globals are used to pass information into the sorting routines. */ static bfd *sort_bfd; -static boolean sort_dynamic; +static bfd_boolean sort_dynamic; static asymbol *sort_x; static asymbol *sort_y; @@ -848,7 +885,7 @@ size_forward2 (P_x, P_y) static long sort_symbols_by_size (abfd, dynamic, minisyms, symcount, size, symsizesp) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; PTR minisyms; long symcount; unsigned int size; @@ -1011,7 +1048,7 @@ display_rel_file (abfd, archive_bfd) static long filter_symbols (abfd, dynamic, minisyms, symcount, size) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; PTR minisyms; long symcount; unsigned int size; @@ -1103,7 +1140,7 @@ print_symname (format, name, abfd) static void print_symbols (abfd, dynamic, minisyms, symcount, size, archive_bfd) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; PTR minisyms; long symcount; unsigned int size; @@ -1135,7 +1172,7 @@ print_symbols (abfd, dynamic, minisyms, static void print_size_symbols (abfd, dynamic, symsizes, symcount, archive_bfd) bfd *abfd; - boolean dynamic; + bfd_boolean dynamic; struct size_sym *symsizes; long symcount; bfd *archive_bfd; @@ -1603,7 +1640,7 @@ print_symdef_entry (abfd) { symindex idx = BFD_NO_MORE_SYMBOLS; carsym *thesym; - boolean everprinted = false; + bfd_boolean everprinted = FALSE; for (idx = bfd_get_next_mapent (abfd, idx, &thesym); idx != BFD_NO_MORE_SYMBOLS; @@ -1613,7 +1650,7 @@ print_symdef_entry (abfd) if (!everprinted) { printf (_("\nArchive index:\n")); - everprinted = true; + everprinted = TRUE; } elt = bfd_get_elt_at_index (abfd, idx); if (elt == NULL) diff -uprN binutils-2.13.90.0.16/binutils/objcopy.c binutils-2.13.90.0.18/binutils/objcopy.c --- binutils-2.13.90.0.16/binutils/objcopy.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/binutils/objcopy.c Mon Dec 16 12:22:52 2002 @@ -60,33 +60,56 @@ section_rename; /* List of sections to be renamed. */ static section_rename * section_rename_list; -static void copy_usage PARAMS ((FILE *, int)); -static void strip_usage PARAMS ((FILE *, int)); -static flagword parse_flags PARAMS ((const char *)); -static struct section_list *find_section_list PARAMS ((const char *, boolean)); -static void setup_section PARAMS ((bfd *, asection *, PTR)); -static void copy_section PARAMS ((bfd *, asection *, PTR)); -static void get_sections PARAMS ((bfd *, asection *, PTR)); -static int compare_section_lma PARAMS ((const PTR, const PTR)); -static void add_specific_symbol PARAMS ((const char *, struct symlist **)); -static void add_specific_symbols PARAMS ((const char *, struct symlist **)); -static boolean is_specified_symbol PARAMS ((const char *, struct symlist *)); -static boolean is_strip_section PARAMS ((bfd *, asection *)); +static void copy_usage + PARAMS ((FILE *, int)); +static void strip_usage + PARAMS ((FILE *, int)); +static flagword parse_flags + PARAMS ((const char *)); +static struct section_list *find_section_list + PARAMS ((const char *, bfd_boolean)); +static void setup_section + PARAMS ((bfd *, asection *, PTR)); +static void copy_section + PARAMS ((bfd *, asection *, PTR)); +static void get_sections + PARAMS ((bfd *, asection *, PTR)); +static int compare_section_lma + PARAMS ((const PTR, const PTR)); +static void add_specific_symbol + PARAMS ((const char *, struct symlist **)); +static void add_specific_symbols + PARAMS ((const char *, struct symlist **)); +static bfd_boolean is_specified_symbol + PARAMS ((const char *, struct symlist *)); +static bfd_boolean is_strip_section + PARAMS ((bfd *, asection *)); static unsigned int filter_symbols PARAMS ((bfd *, bfd *, asymbol **, asymbol **, long)); -static void mark_symbols_used_in_relocations PARAMS ((bfd *, asection *, PTR)); -static void filter_bytes PARAMS ((char *, bfd_size_type *)); -static boolean write_debugging_info PARAMS ((bfd *, PTR, long *, asymbol ***)); -static void copy_object PARAMS ((bfd *, bfd *)); -static void copy_archive PARAMS ((bfd *, bfd *, const char *)); +static void mark_symbols_used_in_relocations + PARAMS ((bfd *, asection *, PTR)); +static void filter_bytes + PARAMS ((char *, bfd_size_type *)); +static bfd_boolean write_debugging_info + PARAMS ((bfd *, PTR, long *, asymbol ***)); +static void copy_object + PARAMS ((bfd *, bfd *)); +static void copy_archive + PARAMS ((bfd *, bfd *, const char *)); static void copy_file PARAMS ((const char *, const char *, const char *, const char *)); -static int strip_main PARAMS ((int, char **)); -static int copy_main PARAMS ((int, char **)); -static const char *lookup_sym_redefinition PARAMS((const char *)); -static void redefine_list_append PARAMS ((const char *, const char *)); -static const char * find_section_rename PARAMS ((bfd *, sec_ptr, flagword *)); -static void add_section_rename PARAMS ((const char *, const char *, flagword)); +static int strip_main + PARAMS ((int, char **)); +static int copy_main + PARAMS ((int, char **)); +static const char *lookup_sym_redefinition + PARAMS((const char *)); +static void redefine_list_append + PARAMS ((const char *, const char *)); +static const char * find_section_rename + PARAMS ((bfd *, sec_ptr, flagword *)); +static void add_section_rename + PARAMS ((const char *, const char *, flagword)); #define RETURN_NONFATAL(s) {bfd_nonfatal (s); status = 1; return;} @@ -97,8 +120,8 @@ static asymbol **osympp = NULL; /* Outpu static int copy_byte = -1; static int interleave = 4; -static boolean verbose; /* Print file and target names. */ -static boolean preserve_dates; /* Preserve input file timestamp. */ +static bfd_boolean verbose; /* Print file and target names. */ +static bfd_boolean preserve_dates; /* Preserve input file timestamp. */ static int status = 0; /* Exit status. */ enum strip_action @@ -134,41 +157,41 @@ enum change_action /* Structure used to hold lists of sections and actions to take. */ struct section_list { - struct section_list * next; /* Next section to change. */ - const char * name; /* Section name. */ - boolean used; /* Whether this entry was used. */ - boolean remove; /* Whether to remove this section. */ - boolean copy; /* Whether to copy this section. */ - enum change_action change_vma;/* Whether to change or set VMA. */ - bfd_vma vma_val; /* Amount to change by or set to. */ - enum change_action change_lma;/* Whether to change or set LMA. */ - bfd_vma lma_val; /* Amount to change by or set to. */ - boolean set_flags; /* Whether to set the section flags. */ - flagword flags; /* What to set the section flags to. */ + struct section_list * next; /* Next section to change. */ + const char * name; /* Section name. */ + bfd_boolean used; /* Whether this entry was used. */ + bfd_boolean remove; /* Whether to remove this section. */ + bfd_boolean copy; /* Whether to copy this section. */ + enum change_action change_vma;/* Whether to change or set VMA. */ + bfd_vma vma_val; /* Amount to change by or set to. */ + enum change_action change_lma;/* Whether to change or set LMA. */ + bfd_vma lma_val; /* Amount to change by or set to. */ + bfd_boolean set_flags; /* Whether to set the section flags. */ + flagword flags; /* What to set the section flags to. */ }; static struct section_list *change_sections; -/* True if some sections are to be removed. */ -static boolean sections_removed; +/* TRUE if some sections are to be removed. */ +static bfd_boolean sections_removed; -/* True if only some sections are to be copied. */ -static boolean sections_copied; +/* TRUE if only some sections are to be copied. */ +static bfd_boolean sections_copied; /* Changes to the start address. */ static bfd_vma change_start = 0; -static boolean set_start_set = false; +static bfd_boolean set_start_set = FALSE; static bfd_vma set_start; /* Changes to section addresses. */ static bfd_vma change_section_address = 0; /* Filling gaps between sections. */ -static boolean gap_fill_set = false; +static bfd_boolean gap_fill_set = FALSE; static bfd_byte gap_fill = 0; /* Pad to a given address. */ -static boolean pad_to_set = false; +static bfd_boolean pad_to_set = FALSE; static bfd_vma pad_to; /* Use alternate machine code? */ @@ -195,13 +218,13 @@ struct section_add static struct section_add *add_sections; /* Whether to convert debugging information. */ -static boolean convert_debugging = false; +static bfd_boolean convert_debugging = FALSE; /* Whether to change the leading character in symbol names. */ -static boolean change_leading_char = false; +static bfd_boolean change_leading_char = FALSE; /* Whether to remove the leading character from global symbol names. */ -static boolean remove_leading_char = false; +static bfd_boolean remove_leading_char = FALSE; /* List of symbols to strip, keep, localize, keep-global, weaken, or redefine. */ @@ -212,8 +235,13 @@ static struct symlist *keepglobal_specif static struct symlist *weaken_specific_list = NULL; static struct redefine_node *redefine_sym_list = NULL; -/* If this is true, we weaken global symbols (set BSF_WEAK). */ -static boolean weaken = false; +/* If this is TRUE, we weaken global symbols (set BSF_WEAK). */ +static bfd_boolean weaken = FALSE; + +/* Prefix symbols/sections. */ +static char *prefix_symbols_string = 0; +static char *prefix_sections_string = 0; +static char *prefix_alloc_sections_string = 0; /* 150 isn't special; it's just an arbitrary non-ASCII char value. */ @@ -244,6 +272,9 @@ static boolean weaken = false; #define OPTION_WEAKEN_SYMBOLS (OPTION_KEEPGLOBAL_SYMBOLS + 1) #define OPTION_RENAME_SECTION (OPTION_WEAKEN_SYMBOLS + 1) #define OPTION_ALT_MACH_CODE (OPTION_RENAME_SECTION + 1) +#define OPTION_PREFIX_SYMBOLS (OPTION_ALT_MACH_CODE + 1) +#define OPTION_PREFIX_SECTIONS (OPTION_PREFIX_SYMBOLS + 1) +#define OPTION_PREFIX_ALLOC_SECTIONS (OPTION_PREFIX_SECTIONS + 1) /* Options to handle if running as "strip". */ @@ -280,6 +311,7 @@ static struct option copy_options[] = {"adjust-vma", required_argument, 0, OPTION_CHANGE_ADDRESSES}, {"adjust-section-vma", required_argument, 0, OPTION_CHANGE_SECTION_ADDRESS}, {"adjust-warnings", no_argument, 0, OPTION_CHANGE_WARNINGS}, + {"alt-machine-code", required_argument, 0, OPTION_ALT_MACH_CODE}, {"binary-architecture", required_argument, 0, 'B'}, {"byte", required_argument, 0, 'b'}, {"change-addresses", required_argument, 0, OPTION_CHANGE_ADDRESSES}, @@ -292,45 +324,47 @@ static struct option copy_options[] = {"debugging", no_argument, 0, OPTION_DEBUGGING}, {"discard-all", no_argument, 0, 'x'}, {"discard-locals", no_argument, 0, 'X'}, - {"only-section", required_argument, 0, 'j'}, {"format", required_argument, 0, 'F'}, /* Obsolete */ {"gap-fill", required_argument, 0, OPTION_GAP_FILL}, {"help", no_argument, 0, 'h'}, {"input-format", required_argument, 0, 'I'}, /* Obsolete */ {"input-target", required_argument, 0, 'I'}, {"interleave", required_argument, 0, 'i'}, + {"keep-global-symbol", required_argument, 0, 'G'}, + {"keep-global-symbols", required_argument, 0, OPTION_KEEPGLOBAL_SYMBOLS}, {"keep-symbol", required_argument, 0, 'K'}, + {"keep-symbols", required_argument, 0, OPTION_KEEP_SYMBOLS}, + {"localize-symbol", required_argument, 0, 'L'}, + {"localize-symbols", required_argument, 0, OPTION_LOCALIZE_SYMBOLS}, {"no-adjust-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS}, {"no-change-warnings", no_argument, 0, OPTION_NO_CHANGE_WARNINGS}, + {"only-section", required_argument, 0, 'j'}, {"output-format", required_argument, 0, 'O'}, /* Obsolete */ {"output-target", required_argument, 0, 'O'}, {"pad-to", required_argument, 0, OPTION_PAD_TO}, + {"prefix-symbols", required_argument, 0, OPTION_PREFIX_SYMBOLS}, + {"prefix-sections", required_argument, 0, OPTION_PREFIX_SECTIONS}, + {"prefix-alloc-sections", required_argument, 0, OPTION_PREFIX_ALLOC_SECTIONS}, {"preserve-dates", no_argument, 0, 'p'}, - {"localize-symbol", required_argument, 0, 'L'}, - {"keep-global-symbol", required_argument, 0, 'G'}, + {"redefine-sym", required_argument, 0, OPTION_REDEFINE_SYM}, {"remove-leading-char", no_argument, 0, OPTION_REMOVE_LEADING_CHAR}, {"remove-section", required_argument, 0, 'R'}, {"rename-section", required_argument, 0, OPTION_RENAME_SECTION}, {"set-section-flags", required_argument, 0, OPTION_SET_SECTION_FLAGS}, {"set-start", required_argument, 0, OPTION_SET_START}, + {"srec-len", required_argument, 0, OPTION_SREC_LEN}, + {"srec-forceS3", no_argument, 0, OPTION_SREC_FORCES3}, {"strip-all", no_argument, 0, 'S'}, {"strip-debug", no_argument, 0, 'g'}, {"strip-unneeded", no_argument, 0, OPTION_STRIP_UNNEEDED}, {"strip-symbol", required_argument, 0, 'N'}, + {"strip-symbols", required_argument, 0, OPTION_STRIP_SYMBOLS}, {"target", required_argument, 0, 'F'}, {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, {"weaken", no_argument, 0, OPTION_WEAKEN}, {"weaken-symbol", required_argument, 0, 'W'}, - {"redefine-sym", required_argument, 0, OPTION_REDEFINE_SYM}, - {"srec-len", required_argument, 0, OPTION_SREC_LEN}, - {"srec-forceS3", no_argument, 0, OPTION_SREC_FORCES3}, - {"keep-symbols", required_argument, 0, OPTION_KEEP_SYMBOLS}, - {"strip-symbols", required_argument, 0, OPTION_STRIP_SYMBOLS}, - {"keep-global-symbols", required_argument, 0, OPTION_KEEPGLOBAL_SYMBOLS}, - {"localize-symbols", required_argument, 0, OPTION_LOCALIZE_SYMBOLS}, {"weaken-symbols", required_argument, 0, OPTION_WEAKEN_SYMBOLS}, - {"alt-machine-code", required_argument, 0, OPTION_ALT_MACH_CODE}, {0, no_argument, 0, 0} }; @@ -349,7 +383,7 @@ extern unsigned int Chunk; /* Restrict the generation of Srecords to type S3 only. This variable is declare in bfd/srec.c and can be toggled on by the --srec-forceS3 command line switch. */ -extern boolean S3Forced; +extern bfd_boolean S3Forced; /* Defined in bfd/binary.c. Used to set architecture of input binary files. */ extern enum bfd_architecture bfd_external_binary_architecture; @@ -415,6 +449,11 @@ copy_usage (stream, exit_status) --keep-global-symbols -G for all symbols listed in \n\ --weaken-symbols -W for all symbols listed in \n\ --alt-machine-code Use alternate machine code for output\n\ + --prefix-symbols Add to start of every symbol name\n\ + --prefix-sections Add to start of every section name\n\ + --prefix-alloc-sections \n\ + Add to start of every allocatable\n\ + section name\n\ -v --verbose List all object files modified\n\ -V --version Display this program's version number\n\ -h --help Display this output\n\ @@ -520,7 +559,7 @@ parse_flags (s) static struct section_list * find_section_list (name, add) const char *name; - boolean add; + bfd_boolean add; { register struct section_list *p; @@ -533,14 +572,14 @@ find_section_list (name, add) p = (struct section_list *) xmalloc (sizeof (struct section_list)); p->name = name; - p->used = false; - p->remove = false; - p->copy = false; + p->used = FALSE; + p->remove = FALSE; + p->copy = FALSE; p->change_vma = CHANGE_IGNORE; p->change_lma = CHANGE_IGNORE; p->vma_val = 0; p->lma_val = 0; - p->set_flags = false; + p->set_flags = FALSE; p->flags = 0; p->next = change_sections; @@ -604,7 +643,7 @@ add_specific_symbols (filename, list) char * eol; char * name; char * name_end; - int finished = false; + int finished = FALSE; for (eol = line;; eol ++) { @@ -615,7 +654,7 @@ add_specific_symbols (filename, list) /* Cope with \n\r. */ if (eol[1] == '\r') ++ eol; - finished = true; + finished = TRUE; break; case '\r': @@ -623,11 +662,11 @@ add_specific_symbols (filename, list) /* Cope with \r\n. */ if (eol[1] == '\n') ++ eol; - finished = true; + finished = TRUE; break; case 0: - finished = true; + finished = TRUE; break; case '#': @@ -683,7 +722,7 @@ add_specific_symbols (filename, list) /* See whether a symbol should be stripped or kept based on strip_specific_list and keep_symbols. */ -static boolean +static bfd_boolean is_specified_symbol (name, list) const char *name; struct symlist *list; @@ -692,14 +731,14 @@ is_specified_symbol (name, list) for (tmp_list = list; tmp_list; tmp_list = tmp_list->next) if (strcmp (name, tmp_list->name) == 0) - return true; + return TRUE; - return false; + return FALSE; } /* See if a section is being removed. */ -static boolean +static bfd_boolean is_strip_section (abfd, sec) bfd *abfd ATTRIBUTE_UNUSED; asection *sec; @@ -712,17 +751,17 @@ is_strip_section (abfd, sec) || strip_symbols == STRIP_ALL || discard_locals == LOCALS_ALL || convert_debugging)) - return true; + return TRUE; if (! sections_removed && ! sections_copied) - return false; + return FALSE; - p = find_section_list (bfd_get_section_name (abfd, sec), false); + p = find_section_list (bfd_get_section_name (abfd, sec), FALSE); if (sections_removed && p != NULL && p->remove) - return true; + return TRUE; if (sections_copied && (p == NULL || ! p->copy)) - return true; - return false; + return TRUE; + return FALSE; } /* Choose which symbol entries to copy; put the result in OSYMS. @@ -745,51 +784,71 @@ filter_symbols (abfd, obfd, osyms, isyms { asymbol *sym = from[src_count]; flagword flags = sym->flags; - const char *name = bfd_asymbol_name (sym); + char *name = (char *) bfd_asymbol_name (sym); int keep; - boolean undefined; + bfd_boolean undefined; + bfd_boolean rem_leading_char; + bfd_boolean add_leading_char; + + undefined = bfd_is_und_section (bfd_get_section (sym)); if (redefine_sym_list) { - const char *old_name, *new_name; + char *old_name, *new_name; - old_name = bfd_asymbol_name (sym); - new_name = lookup_sym_redefinition (old_name); - name = bfd_asymbol_name (sym) = new_name; - } + old_name = (char *) bfd_asymbol_name (sym); + new_name = (char *) lookup_sym_redefinition (old_name); + name = (char *) bfd_asymbol_name (sym) = new_name; + } + + /* Check if we will remove the current leading character. */ + rem_leading_char = + (name[0] == bfd_get_symbol_leading_char (abfd)) + && (change_leading_char + || (remove_leading_char + && ((flags & (BSF_GLOBAL | BSF_WEAK)) != 0 + || undefined + || bfd_is_com_section (bfd_get_section (sym))))); + + /* Check if we will add a new leading character. */ + add_leading_char = + change_leading_char + && (bfd_get_symbol_leading_char (obfd) != '\0') + && (bfd_get_symbol_leading_char (abfd) == '\0' + || (name[0] == bfd_get_symbol_leading_char (abfd))); + + /* Short circuit for change_leading_char if we can do it in-place. */ + if (rem_leading_char && add_leading_char && !prefix_symbols_string) + { + name[0] = bfd_get_symbol_leading_char (obfd); + bfd_asymbol_name (sym) = name; + rem_leading_char = FALSE; + add_leading_char = FALSE; + } + + /* Remove leading char. */ + if (rem_leading_char) + name = (char *) bfd_asymbol_name (sym) = name + 1; + + /* Add new leading char and/or prefix. */ + if (add_leading_char || prefix_symbols_string) + { + char *n, *ptr; + + ptr = n = xmalloc (1 + strlen (prefix_symbols_string) + strlen (name) + 1); + if (add_leading_char) + *ptr++ = bfd_get_symbol_leading_char (obfd); + + if (prefix_symbols_string) + { + strcpy (ptr, prefix_symbols_string); + ptr += strlen (prefix_symbols_string); + } - if (change_leading_char - && (bfd_get_symbol_leading_char (abfd) - != bfd_get_symbol_leading_char (obfd)) - && (bfd_get_symbol_leading_char (abfd) == '\0' - || (name[0] == bfd_get_symbol_leading_char (abfd)))) - { - if (bfd_get_symbol_leading_char (obfd) == '\0') - name = bfd_asymbol_name (sym) = name + 1; - else - { - char *n; - - n = xmalloc (strlen (name) + 2); - n[0] = bfd_get_symbol_leading_char (obfd); - if (bfd_get_symbol_leading_char (abfd) == '\0') - strcpy (n + 1, name); - else - strcpy (n + 1, name + 1); - name = bfd_asymbol_name (sym) = n; - } + strcpy (ptr, name); + name = (char *) bfd_asymbol_name (sym) = n; } - undefined = bfd_is_und_section (bfd_get_section (sym)); - - if (remove_leading_char - && ((flags & BSF_GLOBAL) != 0 - || (flags & BSF_WEAK) != 0 - || undefined - || bfd_is_com_section (bfd_get_section (sym))) - && name[0] == bfd_get_symbol_leading_char (abfd)) - name = bfd_asymbol_name (sym) = name + 1; - if (strip_symbols == STRIP_ALL) keep = 0; else if ((flags & BSF_KEEP) != 0 /* Used in relocation. */ @@ -802,7 +861,7 @@ filter_symbols (abfd, obfd, osyms, isyms keep = 1; else if (bfd_decode_symclass (sym) == 'I') /* Global symbols in $idata sections need to be retained - even if relocatable is false. External users of the + even if relocatable is FALSE. External users of the library containing the $idata section may reference these symbols. */ keep = 1; @@ -1015,9 +1074,9 @@ copy_object (ibfd, obfd) if (! bfd_set_section_size (obfd, padd->section, padd->size)) RETURN_NONFATAL (bfd_get_filename (obfd)); - pset = find_section_list (padd->name, false); + pset = find_section_list (padd->name, FALSE); if (pset != NULL) - pset->used = true; + pset->used = TRUE; if (pset != NULL && pset->set_flags) flags = pset->flags | SEC_HAS_CONTENTS; @@ -1153,6 +1212,7 @@ copy_object (ibfd, obfd) || localize_specific_list != NULL || keepglobal_specific_list != NULL || weaken_specific_list != NULL + || prefix_symbols_string || sections_removed || sections_copied || convert_debugging @@ -1359,7 +1419,7 @@ copy_archive (ibfd, obfd, output_target) if (output_bfd == (bfd *) NULL) RETURN_NONFATAL (output_name); - if (bfd_check_format (this_element, bfd_object) == true) + if (bfd_check_format (this_element, bfd_object)) copy_object (this_element, output_bfd); if (!bfd_close (output_bfd)) @@ -1467,7 +1527,7 @@ copy_file (input_filename, output_filena { bfd_error_type obj_error = bfd_get_error (); bfd_error_type core_error; - + if (bfd_check_format_matches (ibfd, bfd_core, &core_matching)) { /* This probably can't happen.. */ @@ -1576,6 +1636,7 @@ setup_section (ibfd, isection, obfdarg) flagword flags; const char *err; const char * name; + char *prefix = NULL; if ((bfd_get_section_flags (ibfd, isection) & SEC_DEBUGGING) != 0 && (strip_symbols == STRIP_DEBUG @@ -1585,9 +1646,9 @@ setup_section (ibfd, isection, obfdarg) || convert_debugging)) return; - p = find_section_list (bfd_section_name (ibfd, isection), false); + p = find_section_list (bfd_section_name (ibfd, isection), FALSE); if (p != NULL) - p->used = true; + p->used = TRUE; if (sections_removed && p != NULL && p->remove) return; @@ -1597,6 +1658,22 @@ setup_section (ibfd, isection, obfdarg) /* Get the, possibly new, name of the output section. */ name = find_section_rename (ibfd, isection, & flags); + /* Prefix sections. */ + if ((prefix_alloc_sections_string) && (bfd_get_section_flags (ibfd, isection) & SEC_ALLOC)) + prefix = prefix_alloc_sections_string; + else if (prefix_sections_string) + prefix = prefix_sections_string; + + if (prefix) + { + char *n; + + n = xmalloc (strlen (prefix) + strlen (name) + 1); + strcpy (n, prefix); + strcat (n, name); + name = n; + } + osection = bfd_make_section_anyway (obfd, name); if (osection == NULL) @@ -1645,10 +1722,9 @@ setup_section (ibfd, isection, obfdarg) /* FIXME: This is probably not enough. If we change the LMA we may have to recompute the header for the file as well. */ - if (bfd_set_section_alignment (obfd, - osection, - bfd_section_alignment (ibfd, isection)) - == false) + if (!bfd_set_section_alignment (obfd, + osection, + bfd_section_alignment (ibfd, isection))) { err = _("alignment"); goto loser; @@ -1726,7 +1802,7 @@ copy_section (ibfd, isection, obfdarg) if ((flags & SEC_GROUP) != 0) return; - p = find_section_list (bfd_section_name (ibfd, isection), false); + p = find_section_list (bfd_section_name (ibfd, isection), FALSE); if (sections_removed && p != NULL && p->remove) return; @@ -1781,7 +1857,7 @@ copy_section (ibfd, isection, obfdarg) } isection->_cooked_size = isection->_raw_size; - isection->reloc_done = true; + isection->reloc_done = TRUE; if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS && bfd_get_section_flags (obfd, osection) & SEC_HAS_CONTENTS) @@ -1927,7 +2003,7 @@ mark_symbols_used_in_relocations (ibfd, /* Write out debugging information. */ -static boolean +static bfd_boolean write_debugging_info (obfd, dhandle, symcountp, symppp) bfd *obfd; PTR dhandle; @@ -1947,7 +2023,7 @@ write_debugging_info (obfd, dhandle, sym if (! write_stabs_in_sections_debugging_info (obfd, dhandle, &syms, &symsize, &strings, &stringsize)) - return false; + return FALSE; stabsec = bfd_make_section (obfd, ".stab"); stabstrsec = bfd_make_section (obfd, ".stabstr"); @@ -1969,7 +2045,7 @@ write_debugging_info (obfd, dhandle, sym non_fatal (_("%s: can't create debugging section: %s"), bfd_get_filename (obfd), bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } /* We can get away with setting the section contents now because @@ -1984,15 +2060,15 @@ write_debugging_info (obfd, dhandle, sym non_fatal (_("%s: can't set debugging section contents: %s"), bfd_get_filename (obfd), bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } - return true; + return TRUE; } non_fatal (_("%s: don't know how to write debugging information for %s"), bfd_get_filename (obfd), bfd_get_target (obfd)); - return false; + return FALSE; } static int @@ -2001,7 +2077,7 @@ strip_main (argc, argv) char *argv[]; { char *input_target = NULL, *output_target = NULL; - boolean show_version = false; + bfd_boolean show_version = FALSE; int c, i; struct section_list *p; char *output_file = NULL; @@ -2021,9 +2097,9 @@ strip_main (argc, argv) input_target = output_target = optarg; break; case 'R': - p = find_section_list (optarg, true); - p->remove = true; - sections_removed = true; + p = find_section_list (optarg, TRUE); + p->remove = TRUE; + sections_removed = TRUE; break; case 's': strip_symbols = STRIP_ALL; @@ -2046,7 +2122,7 @@ strip_main (argc, argv) output_file = optarg; break; case 'p': - preserve_dates = true; + preserve_dates = TRUE; break; case 'x': discard_locals = LOCALS_ALL; @@ -2055,10 +2131,10 @@ strip_main (argc, argv) discard_locals = LOCALS_START_L; break; case 'v': - verbose = true; + verbose = TRUE; break; case 'V': - show_version = true; + show_version = TRUE; break; case 0: /* We've been given a long option. */ @@ -2135,8 +2211,8 @@ copy_main (argc, argv) char * binary_architecture = NULL; char *input_filename = NULL, *output_filename = NULL; char *input_target = NULL, *output_target = NULL; - boolean show_version = false; - boolean change_warn = true; + bfd_boolean show_version = FALSE; + bfd_boolean change_warn = TRUE; int c; struct section_list *p; struct stat statbuf; @@ -2177,19 +2253,19 @@ copy_main (argc, argv) break; case 'j': - p = find_section_list (optarg, true); + p = find_section_list (optarg, TRUE); if (p->remove) fatal (_("%s both copied and removed"), optarg); - p->copy = true; - sections_copied = true; + p->copy = TRUE; + sections_copied = TRUE; break; case 'R': - p = find_section_list (optarg, true); + p = find_section_list (optarg, TRUE); if (p->copy) fatal (_("%s both copied and removed"), optarg); - p->remove = true; - sections_removed = true; + p->remove = TRUE; + sections_removed = TRUE; break; case 'S': @@ -2225,7 +2301,7 @@ copy_main (argc, argv) break; case 'p': - preserve_dates = true; + preserve_dates = TRUE; break; case 'x': @@ -2237,15 +2313,15 @@ copy_main (argc, argv) break; case 'v': - verbose = true; + verbose = TRUE; break; case 'V': - show_version = true; + show_version = TRUE; break; case OPTION_WEAKEN: - weaken = true; + weaken = TRUE; break; case OPTION_ADD_SECTION: @@ -2339,7 +2415,7 @@ copy_main (argc, argv) strncpy (name, optarg, len); name[len] = '\0'; - p = find_section_list (name, true); + p = find_section_list (name, TRUE); val = parse_vma (s + 1, option); @@ -2376,15 +2452,15 @@ copy_main (argc, argv) break; case OPTION_CHANGE_WARNINGS: - change_warn = true; + change_warn = TRUE; break; case OPTION_CHANGE_LEADING_CHAR: - change_leading_char = true; + change_leading_char = TRUE; break; case OPTION_DEBUGGING: - convert_debugging = true; + convert_debugging = TRUE; break; case OPTION_GAP_FILL: @@ -2402,21 +2478,21 @@ copy_main (argc, argv) non_fatal (_("Warning: truncating gap-fill from 0x%s to 0x%x"), buff, gap_fill); } - gap_fill_set = true; + gap_fill_set = TRUE; } break; case OPTION_NO_CHANGE_WARNINGS: - change_warn = false; + change_warn = FALSE; break; case OPTION_PAD_TO: pad_to = parse_vma (optarg, "--pad-to"); - pad_to_set = true; + pad_to_set = TRUE; break; case OPTION_REMOVE_LEADING_CHAR: - remove_leading_char = true; + remove_leading_char = TRUE; break; case OPTION_REDEFINE_SYM: @@ -2464,9 +2540,9 @@ copy_main (argc, argv) strncpy (name, optarg, len); name[len] = '\0'; - p = find_section_list (name, true); + p = find_section_list (name, TRUE); - p->set_flags = true; + p->set_flags = TRUE; p->flags = parse_flags (s + 1); } break; @@ -2517,7 +2593,7 @@ copy_main (argc, argv) case OPTION_SET_START: set_start = parse_vma (optarg, "--set-start"); - set_start_set = true; + set_start_set = TRUE; break; case OPTION_SREC_LEN: @@ -2525,7 +2601,7 @@ copy_main (argc, argv) break; case OPTION_SREC_FORCES3: - S3Forced = true; + S3Forced = TRUE; break; case OPTION_STRIP_SYMBOLS: @@ -2554,6 +2630,18 @@ copy_main (argc, argv) fatal (_("alternate machine code index must be positive")); break; + case OPTION_PREFIX_SYMBOLS: + prefix_symbols_string = optarg; + break; + + case OPTION_PREFIX_SECTIONS: + prefix_sections_string = optarg; + break; + + case OPTION_PREFIX_ALLOC_SECTIONS: + prefix_alloc_sections_string = optarg; + break; + case 0: break; /* we've been given a long option */ diff -uprN binutils-2.13.90.0.16/binutils/objdump.c binutils-2.13.90.0.18/binutils/objdump.c --- binutils-2.13.90.0.16/binutils/objdump.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/binutils/objdump.c Mon Dec 16 12:22:52 2002 @@ -38,7 +38,8 @@ #ifdef NEED_DECLARATION_FPRINTF /* This is needed by INIT_DISASSEMBLE_INFO. */ -extern int fprintf PARAMS ((FILE *, const char *, ...)); +extern int fprintf + PARAMS ((FILE *, const char *, ...)); #endif /* Exit status. */ @@ -49,7 +50,7 @@ static char *default_target = NULL; /* d static int show_version = 0; /* show the version number */ static int dump_section_contents; /* -s */ static int dump_section_headers; /* -h */ -static boolean dump_file_header; /* -f */ +static bfd_boolean dump_file_header; /* -f */ static int dump_symtab; /* -t */ static int dump_dynamic_symtab; /* -T */ static int dump_reloc_info; /* -r */ @@ -58,14 +59,14 @@ static int dump_ar_hdrs; /* -a */ static int dump_private_headers; /* -p */ static int prefix_addresses; /* --prefix-addresses */ static int with_line_numbers; /* -l */ -static boolean with_source_code; /* -S */ +static bfd_boolean with_source_code; /* -S */ static int show_raw_insn; /* --show-raw-insn */ static int dump_stab_section_info; /* --stabs */ static int do_demangle; /* -C, --demangle */ -static boolean disassemble; /* -d */ -static boolean disassemble_all; /* -D */ +static bfd_boolean disassemble; /* -d */ +static bfd_boolean disassemble_all; /* -D */ static int disassemble_zeroes; /* --disassemble-zeroes */ -static boolean formats_info; /* -i */ +static bfd_boolean formats_info; /* -i */ static char *only; /* -j secname */ static int wide_output; /* -w */ static bfd_vma start_address = (bfd_vma) -1; /* --start-address */ @@ -79,7 +80,7 @@ struct objdump_disasm_info { bfd *abfd; asection *sec; - boolean require_sec; + bfd_boolean require_sec; }; /* Architecture to disassemble for, or default if NULL. */ @@ -111,53 +112,82 @@ static long dynsymcount = 0; /* Static declarations. */ -static void usage PARAMS ((FILE *, int)); -static void nonfatal PARAMS ((const char *)); -static void display_file PARAMS ((char *filename, char *target)); -static void dump_section_header PARAMS ((bfd *, asection *, PTR)); -static void dump_headers PARAMS ((bfd *)); -static void dump_data PARAMS ((bfd *abfd)); -static void dump_relocs PARAMS ((bfd *abfd)); -static void dump_dynamic_relocs PARAMS ((bfd * abfd)); -static void dump_reloc_set PARAMS ((bfd *, asection *, arelent **, long)); -static void dump_symbols PARAMS ((bfd *abfd, boolean dynamic)); -static void dump_bfd_header PARAMS ((bfd *)); -static void dump_bfd_private_header PARAMS ((bfd *)); -static void dump_bfd PARAMS ((bfd *)); -static void display_bfd PARAMS ((bfd *abfd)); -static void display_target_list PARAMS ((void)); -static void display_info_table PARAMS ((int, int)); -static void display_target_tables PARAMS ((void)); -static void display_info PARAMS ((void)); +static void usage + PARAMS ((FILE *, int)); +static void nonfatal + PARAMS ((const char *)); +static void display_file + PARAMS ((char *filename, char *target)); +static void dump_section_header + PARAMS ((bfd *, asection *, PTR)); +static void dump_headers + PARAMS ((bfd *)); +static void dump_data + PARAMS ((bfd *abfd)); +static void dump_relocs + PARAMS ((bfd *abfd)); +static void dump_dynamic_relocs + PARAMS ((bfd * abfd)); +static void dump_reloc_set + PARAMS ((bfd *, asection *, arelent **, long)); +static void dump_symbols + PARAMS ((bfd *abfd, bfd_boolean dynamic)); +static void dump_bfd_header + PARAMS ((bfd *)); +static void dump_bfd_private_header + PARAMS ((bfd *)); +static void dump_bfd + PARAMS ((bfd *)); +static void display_bfd + PARAMS ((bfd *abfd)); +static void display_target_list + PARAMS ((void)); +static void display_info_table + PARAMS ((int, int)); +static void display_target_tables + PARAMS ((void)); +static void display_info + PARAMS ((void)); static void objdump_print_value - PARAMS ((bfd_vma, struct disassemble_info *, boolean)); + PARAMS ((bfd_vma, struct disassemble_info *, bfd_boolean)); static void objdump_print_symname PARAMS ((bfd *, struct disassemble_info *, asymbol *)); static asymbol *find_symbol_for_address - PARAMS ((bfd *, asection *, bfd_vma, boolean, long *)); + PARAMS ((bfd *, asection *, bfd_vma, bfd_boolean, long *)); static void objdump_print_addr_with_sym PARAMS ((bfd *, asection *, asymbol *, bfd_vma, - struct disassemble_info *, boolean)); + struct disassemble_info *, bfd_boolean)); static void objdump_print_addr - PARAMS ((bfd_vma, struct disassemble_info *, boolean)); + PARAMS ((bfd_vma, struct disassemble_info *, bfd_boolean)); static void objdump_print_address PARAMS ((bfd_vma, struct disassemble_info *)); static int objdump_symbol_at_address PARAMS ((bfd_vma, struct disassemble_info *)); -static void show_line PARAMS ((bfd *, asection *, bfd_vma)); +static void show_line + PARAMS ((bfd *, asection *, bfd_vma)); static void disassemble_bytes - PARAMS ((struct disassemble_info *, disassembler_ftype, boolean, + PARAMS ((struct disassemble_info *, disassembler_ftype, bfd_boolean, bfd_byte *, bfd_vma, bfd_vma, arelent ***, arelent **)); -static void disassemble_data PARAMS ((bfd *)); -static const char *endian_string PARAMS ((enum bfd_endian)); -static asymbol ** slurp_symtab PARAMS ((bfd *)); -static asymbol ** slurp_dynamic_symtab PARAMS ((bfd *)); -static long remove_useless_symbols PARAMS ((asymbol **, long)); -static int compare_symbols PARAMS ((const PTR, const PTR)); -static int compare_relocs PARAMS ((const PTR, const PTR)); -static void dump_stabs PARAMS ((bfd *)); -static boolean read_section_stabs PARAMS ((bfd *, const char *, const char *)); -static void print_section_stabs PARAMS ((bfd *, const char *, const char *)); +static void disassemble_data + PARAMS ((bfd *)); +static const char *endian_string + PARAMS ((enum bfd_endian)); +static asymbol ** slurp_symtab + PARAMS ((bfd *)); +static asymbol ** slurp_dynamic_symtab + PARAMS ((bfd *)); +static long remove_useless_symbols + PARAMS ((asymbol **, long)); +static int compare_symbols + PARAMS ((const PTR, const PTR)); +static int compare_relocs + PARAMS ((const PTR, const PTR)); +static void dump_stabs + PARAMS ((bfd *)); +static bfd_boolean read_section_stabs + PARAMS ((bfd *, const char *, const char *)); +static void print_section_stabs + PARAMS ((bfd *, const char *, const char *)); static void usage (stream, status) @@ -474,7 +504,7 @@ compare_symbols (ap, bp) const asymbol *b = *(const asymbol **)bp; const char *an, *bn; size_t anl, bnl; - boolean af, bf; + bfd_boolean af, bf; flagword aflags, bflags; if (bfd_asymbol_value (a) > bfd_asymbol_value (b)) @@ -596,13 +626,13 @@ compare_relocs (ap, bp) return 0; } -/* Print VMA to STREAM. If SKIP_ZEROES is true, omit leading zeroes. */ +/* Print VMA to STREAM. If SKIP_ZEROES is TRUE, omit leading zeroes. */ static void objdump_print_value (vma, info, skip_zeroes) bfd_vma vma; struct disassemble_info *info; - boolean skip_zeroes; + bfd_boolean skip_zeroes; { char buf[30]; char *p; @@ -652,7 +682,7 @@ objdump_print_symname (abfd, info, sym) } /* Locate a symbol given a bfd, a section, and a VMA. If REQUIRE_SEC - is true, then always require the symbol to be in the section. This + is TRUE, then always require the symbol to be in the section. This returns NULL if there is no suitable symbol. If PLACE is not NULL, then *PLACE is set to the index of the symbol in sorted_syms. */ @@ -661,7 +691,7 @@ find_symbol_for_address (abfd, sec, vma, bfd *abfd; asection *sec; bfd_vma vma; - boolean require_sec; + bfd_boolean require_sec; long *place; { /* @@ Would it speed things up to cache the last two symbols returned, @@ -786,7 +816,7 @@ objdump_print_addr_with_sym (abfd, sec, asymbol *sym; bfd_vma vma; struct disassemble_info *info; - boolean skip_zeroes; + bfd_boolean skip_zeroes; { objdump_print_value (vma, info, skip_zeroes); @@ -800,12 +830,12 @@ objdump_print_addr_with_sym (abfd, sec, if (vma < secaddr) { (*info->fprintf_func) (info->stream, "-0x"); - objdump_print_value (secaddr - vma, info, true); + objdump_print_value (secaddr - vma, info, TRUE); } else if (vma > secaddr) { (*info->fprintf_func) (info->stream, "+0x"); - objdump_print_value (vma - secaddr, info, true); + objdump_print_value (vma - secaddr, info, TRUE); } (*info->fprintf_func) (info->stream, ">"); } @@ -816,25 +846,25 @@ objdump_print_addr_with_sym (abfd, sec, if (bfd_asymbol_value (sym) > vma) { (*info->fprintf_func) (info->stream, "-0x"); - objdump_print_value (bfd_asymbol_value (sym) - vma, info, true); + objdump_print_value (bfd_asymbol_value (sym) - vma, info, TRUE); } else if (vma > bfd_asymbol_value (sym)) { (*info->fprintf_func) (info->stream, "+0x"); - objdump_print_value (vma - bfd_asymbol_value (sym), info, true); + objdump_print_value (vma - bfd_asymbol_value (sym), info, TRUE); } (*info->fprintf_func) (info->stream, ">"); } } /* Print VMA to INFO, symbolically if possible. If SKIP_ZEROES is - true, don't output leading zeroes. */ + TRUE, don't output leading zeroes. */ static void objdump_print_addr (vma, info, skip_zeroes) bfd_vma vma; struct disassemble_info *info; - boolean skip_zeroes; + bfd_boolean skip_zeroes; { struct objdump_disasm_info *aux; asymbol *sym; @@ -913,14 +943,14 @@ static struct print_file_list *print_fil /* Skip ahead to a given line in a file, optionally printing each line. */ -static void -skip_to_line PARAMS ((struct print_file_list *, unsigned int, boolean)); +static void skip_to_line + PARAMS ((struct print_file_list *, unsigned int, bfd_boolean)); static void skip_to_line (p, line, show) struct print_file_list *p; unsigned int line; - boolean show; + bfd_boolean show; { while (p->line < line) { @@ -1019,7 +1049,7 @@ show_line (abfd, section, addr_offset) p->line = 0; } if (p->f != NULL) - skip_to_line (p, l, false); + skip_to_line (p, l, FALSE); if (print_files->f != NULL) { @@ -1030,7 +1060,7 @@ show_line (abfd, section, addr_offset) if (p->f != NULL) { - skip_to_line (p, line, true); + skip_to_line (p, line, TRUE); *pp = p->next; p->next = print_files; print_files = p; @@ -1066,9 +1096,9 @@ show_line (abfd, section, addr_offset) l = line - SHOW_PRECEDING_CONTEXT_LINES; if (l < 0) l = 0; - skip_to_line (p, l, false); + skip_to_line (p, l, FALSE); if (p->f != NULL) - skip_to_line (p, line, true); + skip_to_line (p, line, TRUE); } } } @@ -1163,7 +1193,7 @@ disassemble_bytes (info, disassemble_fn, relppend) struct disassemble_info *info; disassembler_ftype disassemble_fn; - boolean insns; + bfd_boolean insns; bfd_byte *data; bfd_vma start_offset; bfd_vma stop_offset; @@ -1173,7 +1203,7 @@ disassemble_bytes (info, disassemble_fn, struct objdump_disasm_info *aux; asection *section; int octets_per_line; - boolean done_dot; + bfd_boolean done_dot; int skip_addr_chars; bfd_vma addr_offset; int opb = info->octets_per_byte; @@ -1211,13 +1241,13 @@ disassemble_bytes (info, disassemble_fn, info->insn_info_valid = 0; - done_dot = false; + done_dot = FALSE; addr_offset = start_offset; while (addr_offset < stop_offset) { bfd_vma z; int octets = 0; - boolean need_nl = false; + bfd_boolean need_nl = FALSE; /* If we see more than SKIP_ZEROES octets of zeroes, we just print `...'. */ @@ -1249,7 +1279,7 @@ disassemble_bytes (info, disassemble_fn, int bpc = 0; int pb = 0; - done_dot = false; + done_dot = FALSE; if (with_line_numbers || with_source_code) /* The line number tables will refer to unadjusted @@ -1270,9 +1300,9 @@ disassemble_bytes (info, disassemble_fn, } else { - aux->require_sec = true; + aux->require_sec = TRUE; objdump_print_address (section->vma + addr_offset, info); - aux->require_sec = false; + aux->require_sec = FALSE; putchar (' '); } @@ -1431,7 +1461,7 @@ disassemble_bytes (info, disassemble_fn, if (!wide_output) putchar ('\n'); else - need_nl = true; + need_nl = TRUE; } if ((section->flags & SEC_RELOC) != 0 @@ -1458,7 +1488,7 @@ disassemble_bytes (info, disassemble_fn, else printf ("\t\t\t"); - objdump_print_value (section->vma + q->address, info, true); + objdump_print_value (section->vma + q->address, info, TRUE); printf (": %s\t", q->howto->name); @@ -1486,11 +1516,11 @@ disassemble_bytes (info, disassemble_fn, if (q->addend) { printf ("+0x"); - objdump_print_value (q->addend, info, true); + objdump_print_value (q->addend, info, TRUE); } printf ("\n"); - need_nl = false; + need_nl = FALSE; ++(*relppp); } } @@ -1532,7 +1562,7 @@ disassemble_data (abfd) INIT_DISASSEMBLE_INFO(disasm_info, stdout, fprintf); disasm_info.application_data = (PTR) &aux; aux.abfd = abfd; - aux.require_sec = false; + aux.require_sec = FALSE; disasm_info.print_address_func = objdump_print_address; disasm_info.symbol_at_address_func = objdump_symbol_at_address; @@ -1674,13 +1704,13 @@ disassemble_data (abfd) } sym = find_symbol_for_address (abfd, section, section->vma + addr_offset, - true, &place); + TRUE, &place); while (addr_offset < stop_offset) { asymbol *nextsym; unsigned long nextstop_offset; - boolean insns; + bfd_boolean insns; if (sym != NULL && bfd_asymbol_value (sym) <= section->vma + addr_offset) { @@ -1703,7 +1733,7 @@ disassemble_data (abfd) objdump_print_addr_with_sym (abfd, section, sym, section->vma + addr_offset, &disasm_info, - false); + FALSE); printf (":\n"); } @@ -1755,9 +1785,9 @@ disassemble_data (abfd) && (strstr (bfd_asymbol_name (sym), "gcc2_compiled") == NULL)) || (sym->flags & BSF_FUNCTION) != 0) - insns = true; + insns = TRUE; else - insns = false; + insns = FALSE; disassemble_bytes (&disasm_info, disassemble_fn, insns, data, addr_offset, nextstop_offset, &relpp, relppend); @@ -1778,8 +1808,8 @@ disassemble_data (abfd) could be a direct-mapped table, but instead we build one the first time we need it. */ -static void dump_section_stabs PARAMS ((bfd *abfd, char *stabsect_name, - char *strsect_name)); +static void dump_section_stabs + PARAMS ((bfd *abfd, char *stabsect_name, char *strsect_name)); /* Dump the stabs sections from an object file that has a section that uses Sun stabs encoding. */ @@ -1802,10 +1832,10 @@ static bfd_size_type stabstr_size; /* Read ABFD's stabs section STABSECT_NAME into `stabs' and string table section STRSECT_NAME into `strtab'. - If the section exists and was read, allocate the space and return true. - Otherwise return false. */ + If the section exists and was read, allocate the space and return TRUE. + Otherwise return FALSE. */ -static boolean +static bfd_boolean read_section_stabs (abfd, stabsect_name, strsect_name) bfd *abfd; const char *stabsect_name; @@ -1817,7 +1847,7 @@ read_section_stabs (abfd, stabsect_name, if (0 == stabsect) { printf (_("No %s section present\n\n"), stabsect_name); - return false; + return FALSE; } stabstrsect = bfd_get_section_by_name (abfd, strsect_name); @@ -1826,7 +1856,7 @@ read_section_stabs (abfd, stabsect_name, non_fatal (_("%s has no %s section"), bfd_get_filename (abfd), strsect_name); exit_status = 1; - return false; + return FALSE; } stab_size = bfd_section_size (abfd, stabsect); @@ -1843,7 +1873,7 @@ read_section_stabs (abfd, stabsect_name, free (stabs); free (strtab); exit_status = 1; - return false; + return FALSE; } if (! bfd_get_section_contents (abfd, stabstrsect, (PTR) strtab, 0, @@ -1855,10 +1885,10 @@ read_section_stabs (abfd, stabsect_name, free (stabs); free (strtab); exit_status = 1; - return false; + return FALSE; } - return true; + return TRUE; } /* Stabs entries use a 12 byte format: @@ -2044,7 +2074,7 @@ dump_bfd (abfd) printf (_("\n%s: file format %s\n"), bfd_get_filename (abfd), abfd->xvec->name); if (dump_ar_hdrs) - print_arelt_descr (stdout, abfd, true); + print_arelt_descr (stdout, abfd, TRUE); if (dump_file_header) dump_bfd_header (abfd); if (dump_private_headers) @@ -2059,9 +2089,9 @@ dump_bfd (abfd) dynsyms = slurp_dynamic_symtab (abfd); if (dump_symtab) - dump_symbols (abfd, false); + dump_symbols (abfd, FALSE); if (dump_dynamic_symtab) - dump_symbols (abfd, true); + dump_symbols (abfd, TRUE); if (dump_stab_section_info) dump_stabs (abfd); if (dump_reloc_info && ! disassemble) @@ -2156,7 +2186,7 @@ display_file (filename, target) return; } - if (bfd_check_format (file, bfd_archive) == true) + if (bfd_check_format (file, bfd_archive)) { bfd *last_arfile = NULL; @@ -2277,7 +2307,7 @@ dump_data (abfd) static void dump_symbols (abfd, dynamic) bfd *abfd ATTRIBUTE_UNUSED; - boolean dynamic; + bfd_boolean dynamic; { asymbol **current; long max; @@ -2633,13 +2663,13 @@ display_info_table (first, last) for (t = first; t < last && bfd_target_vector[t]; t++) { const bfd_target *p = bfd_target_vector[t]; - boolean ok = true; + bfd_boolean ok = TRUE; bfd *abfd = bfd_openw (dummy_name, p->name); if (abfd == NULL) { nonfatal (p->name); - ok = false; + ok = FALSE; } if (ok) @@ -2648,14 +2678,14 @@ display_info_table (first, last) { if (bfd_get_error () != bfd_error_invalid_operation) nonfatal (p->name); - ok = false; + ok = FALSE; } } if (ok) { if (! bfd_set_arch_mach (abfd, a, 0)) - ok = false; + ok = FALSE; } if (ok) @@ -2731,7 +2761,7 @@ main (argc, argv) { int c; char *target = default_target; - boolean seenflag = false; + bfd_boolean seenflag = FALSE; const char *demangler = NULL, *style = NULL; #if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) @@ -2769,18 +2799,18 @@ main (argc, argv) only = optarg; break; case 'l': - with_line_numbers = true; + with_line_numbers = TRUE; break; case 'b': target = optarg; break; case 'C': - do_demangle = true; + do_demangle = TRUE; if (optarg != NULL) style = optarg; break; case 'w': - wide_output = true; + wide_output = TRUE; break; case OPTION_ADJUST_VMA: adjust_section_vma = parse_vma (optarg, "--adjust-vma"); @@ -2815,89 +2845,89 @@ main (argc, argv) break; case 'f': - dump_file_header = true; - seenflag = true; + dump_file_header = TRUE; + seenflag = TRUE; break; case 'i': - formats_info = true; - seenflag = true; + formats_info = TRUE; + seenflag = TRUE; break; case 'p': - dump_private_headers = true; - seenflag = true; + dump_private_headers = TRUE; + seenflag = TRUE; break; case 'x': - dump_private_headers = true; - dump_symtab = true; - dump_reloc_info = true; - dump_file_header = true; - dump_ar_hdrs = true; - dump_section_headers = true; - seenflag = true; + dump_private_headers = TRUE; + dump_symtab = TRUE; + dump_reloc_info = TRUE; + dump_file_header = TRUE; + dump_ar_hdrs = TRUE; + dump_section_headers = TRUE; + seenflag = TRUE; break; case 't': - dump_symtab = true; - seenflag = true; + dump_symtab = TRUE; + seenflag = TRUE; break; case 'T': - dump_dynamic_symtab = true; - seenflag = true; + dump_dynamic_symtab = TRUE; + seenflag = TRUE; break; case 'd': - disassemble = true; - seenflag = true; + disassemble = TRUE; + seenflag = TRUE; break; case 'z': - disassemble_zeroes = true; + disassemble_zeroes = TRUE; break; case 'D': - disassemble = true; - disassemble_all = true; - seenflag = true; + disassemble = TRUE; + disassemble_all = TRUE; + seenflag = TRUE; break; case 'S': - disassemble = true; - with_source_code = true; - seenflag = true; + disassemble = TRUE; + with_source_code = TRUE; + seenflag = TRUE; break; case 'g': dump_debugging = 1; - seenflag = true; + seenflag = TRUE; break; case 'G': - dump_stab_section_info = true; - seenflag = true; + dump_stab_section_info = TRUE; + seenflag = TRUE; break; case 's': - dump_section_contents = true; - seenflag = true; + dump_section_contents = TRUE; + seenflag = TRUE; break; case OPTION_DEMANGLER: demangler = optarg; break; case 'r': - dump_reloc_info = true; - seenflag = true; + dump_reloc_info = TRUE; + seenflag = TRUE; break; case 'R': - dump_dynamic_reloc_info = true; - seenflag = true; + dump_dynamic_reloc_info = TRUE; + seenflag = TRUE; break; case 'a': - dump_ar_hdrs = true; - seenflag = true; + dump_ar_hdrs = TRUE; + seenflag = TRUE; break; case 'h': - dump_section_headers = true; - seenflag = true; + dump_section_headers = TRUE; + seenflag = TRUE; break; case 'H': usage (stdout, 0); - seenflag = true; + seenflag = TRUE; case 'v': case 'V': - show_version = true; - seenflag = true; + show_version = TRUE; + seenflag = TRUE; break; default: @@ -2910,7 +2940,7 @@ main (argc, argv) if (show_version) print_version ("objdump"); - if (seenflag == false) + if (!seenflag) usage (stderr, 2); if (formats_info) diff -uprN binutils-2.13.90.0.16/binutils/prdbg.c binutils-2.13.90.0.18/binutils/prdbg.c --- binutils-2.13.90.0.16/binutils/prdbg.c Thu Aug 8 22:49:55 2002 +++ binutils-2.13.90.0.18/binutils/prdbg.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* prdbg.c -- Print out generic debugging information. - Copyright 1995, 1996 Free Software Foundation, Inc. + Copyright 1995, 1996, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -59,75 +59,115 @@ struct pr_stack const char *method; }; -static void indent PARAMS ((struct pr_handle *)); -static boolean push_type PARAMS ((struct pr_handle *, const char *)); -static boolean prepend_type PARAMS ((struct pr_handle *, const char *)); -static boolean append_type PARAMS ((struct pr_handle *, const char *)); -static boolean substitute_type PARAMS ((struct pr_handle *, const char *)); -static boolean indent_type PARAMS ((struct pr_handle *)); -static char *pop_type PARAMS ((struct pr_handle *)); -static void print_vma PARAMS ((bfd_vma, char *, boolean, boolean)); -static boolean pr_fix_visibility +static void indent + PARAMS ((struct pr_handle *)); +static bfd_boolean push_type + PARAMS ((struct pr_handle *, const char *)); +static bfd_boolean prepend_type + PARAMS ((struct pr_handle *, const char *)); +static bfd_boolean append_type + PARAMS ((struct pr_handle *, const char *)); +static bfd_boolean substitute_type + PARAMS ((struct pr_handle *, const char *)); +static bfd_boolean indent_type + PARAMS ((struct pr_handle *)); +static char *pop_type + PARAMS ((struct pr_handle *)); +static void print_vma + PARAMS ((bfd_vma, char *, bfd_boolean, bfd_boolean)); +static bfd_boolean pr_fix_visibility PARAMS ((struct pr_handle *, enum debug_visibility)); - -static boolean pr_start_compilation_unit PARAMS ((PTR, const char *)); -static boolean pr_start_source PARAMS ((PTR, const char *)); -static boolean pr_empty_type PARAMS ((PTR)); -static boolean pr_void_type PARAMS ((PTR)); -static boolean pr_int_type PARAMS ((PTR, unsigned int, boolean)); -static boolean pr_float_type PARAMS ((PTR, unsigned int)); -static boolean pr_complex_type PARAMS ((PTR, unsigned int)); -static boolean pr_bool_type PARAMS ((PTR, unsigned int)); -static boolean pr_enum_type +static bfd_boolean pr_start_compilation_unit + PARAMS ((PTR, const char *)); +static bfd_boolean pr_start_source + PARAMS ((PTR, const char *)); +static bfd_boolean pr_empty_type + PARAMS ((PTR)); +static bfd_boolean pr_void_type + PARAMS ((PTR)); +static bfd_boolean pr_int_type + PARAMS ((PTR, unsigned int, bfd_boolean)); +static bfd_boolean pr_float_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean pr_complex_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean pr_bool_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean pr_enum_type PARAMS ((PTR, const char *, const char **, bfd_signed_vma *)); -static boolean pr_pointer_type PARAMS ((PTR)); -static boolean pr_function_type PARAMS ((PTR, int, boolean)); -static boolean pr_reference_type PARAMS ((PTR)); -static boolean pr_range_type PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); -static boolean pr_array_type - PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, boolean)); -static boolean pr_set_type PARAMS ((PTR, boolean)); -static boolean pr_offset_type PARAMS ((PTR)); -static boolean pr_method_type PARAMS ((PTR, boolean, int, boolean)); -static boolean pr_const_type PARAMS ((PTR)); -static boolean pr_volatile_type PARAMS ((PTR)); -static boolean pr_start_struct_type - PARAMS ((PTR, const char *, unsigned int, boolean, unsigned int)); -static boolean pr_struct_field +static bfd_boolean pr_pointer_type + PARAMS ((PTR)); +static bfd_boolean pr_function_type + PARAMS ((PTR, int, bfd_boolean)); +static bfd_boolean pr_reference_type + PARAMS ((PTR)); +static bfd_boolean pr_range_type + PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); +static bfd_boolean pr_array_type + PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, bfd_boolean)); +static bfd_boolean pr_set_type + PARAMS ((PTR, bfd_boolean)); +static bfd_boolean pr_offset_type + PARAMS ((PTR)); +static bfd_boolean pr_method_type + PARAMS ((PTR, bfd_boolean, int, bfd_boolean)); +static bfd_boolean pr_const_type + PARAMS ((PTR)); +static bfd_boolean pr_volatile_type + PARAMS ((PTR)); +static bfd_boolean pr_start_struct_type + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int)); +static bfd_boolean pr_struct_field PARAMS ((PTR, const char *, bfd_vma, bfd_vma, enum debug_visibility)); -static boolean pr_end_struct_type PARAMS ((PTR)); -static boolean pr_start_class_type - PARAMS ((PTR, const char *, unsigned int, boolean, unsigned int, boolean, - boolean)); -static boolean pr_class_static_member +static bfd_boolean pr_end_struct_type + PARAMS ((PTR)); +static bfd_boolean pr_start_class_type + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int, + bfd_boolean, bfd_boolean)); +static bfd_boolean pr_class_static_member PARAMS ((PTR, const char *, const char *, enum debug_visibility)); -static boolean pr_class_baseclass - PARAMS ((PTR, bfd_vma, boolean, enum debug_visibility)); -static boolean pr_class_start_method PARAMS ((PTR, const char *)); -static boolean pr_class_method_variant - PARAMS ((PTR, const char *, enum debug_visibility, boolean, boolean, - bfd_vma, boolean)); -static boolean pr_class_static_method_variant - PARAMS ((PTR, const char *, enum debug_visibility, boolean, boolean)); -static boolean pr_class_end_method PARAMS ((PTR)); -static boolean pr_end_class_type PARAMS ((PTR)); -static boolean pr_typedef_type PARAMS ((PTR, const char *)); -static boolean pr_tag_type +static bfd_boolean pr_class_baseclass + PARAMS ((PTR, bfd_vma, bfd_boolean, enum debug_visibility)); +static bfd_boolean pr_class_start_method + PARAMS ((PTR, const char *)); +static bfd_boolean pr_class_method_variant + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, bfd_boolean, + bfd_vma, bfd_boolean)); +static bfd_boolean pr_class_static_method_variant + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, + bfd_boolean)); +static bfd_boolean pr_class_end_method + PARAMS ((PTR)); +static bfd_boolean pr_end_class_type + PARAMS ((PTR)); +static bfd_boolean pr_typedef_type + PARAMS ((PTR, const char *)); +static bfd_boolean pr_tag_type PARAMS ((PTR, const char *, unsigned int, enum debug_type_kind)); -static boolean pr_typdef PARAMS ((PTR, const char *)); -static boolean pr_tag PARAMS ((PTR, const char *)); -static boolean pr_int_constant PARAMS ((PTR, const char *, bfd_vma)); -static boolean pr_float_constant PARAMS ((PTR, const char *, double)); -static boolean pr_typed_constant PARAMS ((PTR, const char *, bfd_vma)); -static boolean pr_variable +static bfd_boolean pr_typdef + PARAMS ((PTR, const char *)); +static bfd_boolean pr_tag + PARAMS ((PTR, const char *)); +static bfd_boolean pr_int_constant + PARAMS ((PTR, const char *, bfd_vma)); +static bfd_boolean pr_float_constant + PARAMS ((PTR, const char *, double)); +static bfd_boolean pr_typed_constant + PARAMS ((PTR, const char *, bfd_vma)); +static bfd_boolean pr_variable PARAMS ((PTR, const char *, enum debug_var_kind, bfd_vma)); -static boolean pr_start_function PARAMS ((PTR, const char *, boolean)); -static boolean pr_function_parameter +static bfd_boolean pr_start_function + PARAMS ((PTR, const char *, bfd_boolean)); +static bfd_boolean pr_function_parameter PARAMS ((PTR, const char *, enum debug_parm_kind, bfd_vma)); -static boolean pr_start_block PARAMS ((PTR, bfd_vma)); -static boolean pr_end_block PARAMS ((PTR, bfd_vma)); -static boolean pr_end_function PARAMS ((PTR)); -static boolean pr_lineno PARAMS ((PTR, const char *, unsigned long, bfd_vma)); +static bfd_boolean pr_start_block + PARAMS ((PTR, bfd_vma)); +static bfd_boolean pr_end_block + PARAMS ((PTR, bfd_vma)); +static bfd_boolean pr_end_function + PARAMS ((PTR)); +static bfd_boolean pr_lineno + PARAMS ((PTR, const char *, unsigned long, bfd_vma)); static const struct debug_write_fns pr_fns = { @@ -179,7 +219,7 @@ static const struct debug_write_fns pr_f /* Print out the generic debugging information recorded in dhandle. */ -boolean +bfd_boolean print_debugging_info (f, dhandle) FILE *f; PTR dhandle; @@ -208,7 +248,7 @@ indent (info) /* Push a type on the type stack. */ -static boolean +static bfd_boolean push_type (info, type) struct pr_handle *info; const char *type; @@ -216,7 +256,7 @@ push_type (info, type) struct pr_stack *n; if (type == NULL) - return false; + return FALSE; n = (struct pr_stack *) xmalloc (sizeof *n); memset (n, 0, sizeof *n); @@ -227,12 +267,12 @@ push_type (info, type) n->next = info->stack; info->stack = n; - return true; + return TRUE; } /* Prepend a string onto the type on the top of the type stack. */ -static boolean +static bfd_boolean prepend_type (info, s) struct pr_handle *info; const char *s; @@ -246,12 +286,12 @@ prepend_type (info, s) free (info->stack->type); info->stack->type = n; - return true; + return TRUE; } /* Append a string to the type on the top of the type stack. */ -static boolean +static bfd_boolean append_type (info, s) struct pr_handle *info; const char *s; @@ -259,7 +299,7 @@ append_type (info, s) unsigned int len; if (s == NULL) - return false; + return FALSE; assert (info->stack != NULL); @@ -268,14 +308,14 @@ append_type (info, s) len + strlen (s) + 1); strcpy (info->stack->type + len, s); - return true; + return TRUE; } /* We use an underscore to indicate where the name should go in a type string. This function substitutes a string for the underscore. If there is no underscore, the name follows the type. */ -static boolean +static bfd_boolean substitute_type (info, s) struct pr_handle *info; const char *s; @@ -298,7 +338,7 @@ substitute_type (info, s) free (info->stack->type); info->stack->type = n; - return true; + return TRUE; } if (strchr (s, '|') != NULL @@ -307,11 +347,11 @@ substitute_type (info, s) { if (! prepend_type (info, "(") || ! append_type (info, ")")) - return false; + return FALSE; } if (*s == '\0') - return true; + return TRUE; return (append_type (info, " ") && append_type (info, s)); @@ -319,7 +359,7 @@ substitute_type (info, s) /* Indent the type at the top of the stack by appending spaces. */ -static boolean +static bfd_boolean indent_type (info) struct pr_handle *info; { @@ -328,10 +368,10 @@ indent_type (info) for (i = 0; i < info->indent; i++) { if (! append_type (info, " ")) - return false; + return FALSE; } - return true; + return TRUE; } /* Pop a type from the type stack. */ @@ -359,8 +399,8 @@ static void print_vma (vma, buf, unsignedp, hexp) bfd_vma vma; char *buf; - boolean unsignedp; - boolean hexp; + bfd_boolean unsignedp; + bfd_boolean hexp; { if (sizeof (vma) <= sizeof (unsigned long)) { @@ -381,7 +421,7 @@ print_vma (vma, buf, unsignedp, hexp) /* Start a new compilation unit. */ -static boolean +static bfd_boolean pr_start_compilation_unit (p, filename) PTR p; const char *filename; @@ -392,12 +432,12 @@ pr_start_compilation_unit (p, filename) fprintf (info->f, "%s:\n", filename); - return true; + return TRUE; } /* Start a source file within a compilation unit. */ -static boolean +static bfd_boolean pr_start_source (p, filename) PTR p; const char *filename; @@ -408,12 +448,12 @@ pr_start_source (p, filename) fprintf (info->f, " %s:\n", filename); - return true; + return TRUE; } /* Push an empty type onto the type stack. */ -static boolean +static bfd_boolean pr_empty_type (p) PTR p; { @@ -424,7 +464,7 @@ pr_empty_type (p) /* Push a void type onto the type stack. */ -static boolean +static bfd_boolean pr_void_type (p) PTR p; { @@ -435,11 +475,11 @@ pr_void_type (p) /* Push an integer type onto the type stack. */ -static boolean +static bfd_boolean pr_int_type (p, size, unsignedp) PTR p; unsigned int size; - boolean unsignedp; + bfd_boolean unsignedp; { struct pr_handle *info = (struct pr_handle *) p; char ab[10]; @@ -450,7 +490,7 @@ pr_int_type (p, size, unsignedp) /* Push a floating type onto the type stack. */ -static boolean +static bfd_boolean pr_float_type (p, size) PTR p; unsigned int size; @@ -469,7 +509,7 @@ pr_float_type (p, size) /* Push a complex type onto the type stack. */ -static boolean +static bfd_boolean pr_complex_type (p, size) PTR p; unsigned int size; @@ -477,14 +517,14 @@ pr_complex_type (p, size) struct pr_handle *info = (struct pr_handle *) p; if (! pr_float_type (p, size)) - return false; + return FALSE; return prepend_type (info, "complex "); } -/* Push a boolean type onto the type stack. */ +/* Push a bfd_boolean type onto the type stack. */ -static boolean +static bfd_boolean pr_bool_type (p, size) PTR p; unsigned int size; @@ -499,7 +539,7 @@ pr_bool_type (p, size) /* Push an enum type onto the type stack. */ -static boolean +static bfd_boolean pr_enum_type (p, tag, names, values) PTR p; const char *tag; @@ -511,20 +551,20 @@ pr_enum_type (p, tag, names, values) bfd_signed_vma val; if (! push_type (info, "enum ")) - return false; + return FALSE; if (tag != NULL) { if (! append_type (info, tag) || ! append_type (info, " ")) - return false; + return FALSE; } if (! append_type (info, "{ ")) - return false; + return FALSE; if (names == NULL) { if (! append_type (info, "/* undefined */")) - return false; + return FALSE; } else { @@ -534,20 +574,20 @@ pr_enum_type (p, tag, names, values) if (i > 0) { if (! append_type (info, ", ")) - return false; + return FALSE; } if (! append_type (info, names[i])) - return false; + return FALSE; if (values[i] != val) { char ab[20]; - print_vma (values[i], ab, false, false); + print_vma (values[i], ab, FALSE, FALSE); if (! append_type (info, " = ") || ! append_type (info, ab)) - return false; + return FALSE; val = values[i]; } @@ -560,7 +600,7 @@ pr_enum_type (p, tag, names, values) /* Turn the top type on the stack into a pointer. */ -static boolean +static bfd_boolean pr_pointer_type (p) PTR p; { @@ -577,11 +617,11 @@ pr_pointer_type (p) /* Turn the top type on the stack into a function returning that type. */ -static boolean +static bfd_boolean pr_function_type (p, argcount, varargs) PTR p; int argcount; - boolean varargs; + bfd_boolean varargs; { struct pr_handle *info = (struct pr_handle *) p; char **arg_types; @@ -605,10 +645,10 @@ pr_function_type (p, argcount, varargs) for (i = argcount - 1; i >= 0; i--) { if (! substitute_type (info, "")) - return false; + return FALSE; arg_types[i] = pop_type (info); if (arg_types[i] == NULL) - return false; + return FALSE; len += strlen (arg_types[i]) + 2; } if (varargs) @@ -645,16 +685,16 @@ pr_function_type (p, argcount, varargs) strcat (s, ")"); if (! substitute_type (info, s)) - return false; + return FALSE; free (s); - return true; + return TRUE; } /* Turn the top type on the stack into a reference to that type. */ -static boolean +static bfd_boolean pr_reference_type (p) PTR p; { @@ -667,7 +707,7 @@ pr_reference_type (p) /* Make a range type. */ -static boolean +static bfd_boolean pr_range_type (p, lower, upper) PTR p; bfd_signed_vma lower; @@ -679,10 +719,10 @@ pr_range_type (p, lower, upper) assert (info->stack != NULL); if (! substitute_type (info, "")) - return false; + return FALSE; - print_vma (lower, abl, false, false); - print_vma (upper, abu, false, false); + print_vma (lower, abl, FALSE, FALSE); + print_vma (upper, abu, FALSE, FALSE); return (prepend_type (info, "range (") && append_type (info, "):") @@ -693,12 +733,12 @@ pr_range_type (p, lower, upper) /* Make an array type. */ -static boolean +static bfd_boolean pr_array_type (p, lower, upper, stringp) PTR p; bfd_signed_vma lower; bfd_signed_vma upper; - boolean stringp; + bfd_boolean stringp; { struct pr_handle *info = (struct pr_handle *) p; char *range_type; @@ -706,7 +746,7 @@ pr_array_type (p, lower, upper, stringp) range_type = pop_type (info); if (range_type == NULL) - return false; + return FALSE; if (lower == 0) { @@ -714,64 +754,64 @@ pr_array_type (p, lower, upper, stringp) sprintf (ab, "|[]"); else { - print_vma (upper + 1, abu, false, false); + print_vma (upper + 1, abu, FALSE, FALSE); sprintf (ab, "|[%s]", abu); } } else { - print_vma (lower, abl, false, false); - print_vma (upper, abu, false, false); + print_vma (lower, abl, FALSE, FALSE); + print_vma (upper, abu, FALSE, FALSE); sprintf (ab, "|[%s:%s]", abl, abu); } if (! substitute_type (info, ab)) - return false; + return FALSE; if (strcmp (range_type, "int") != 0) { if (! append_type (info, ":") || ! append_type (info, range_type)) - return false; + return FALSE; } if (stringp) { if (! append_type (info, " /* string */")) - return false; + return FALSE; } - return true; + return TRUE; } /* Make a set type. */ -static boolean +static bfd_boolean pr_set_type (p, bitstringp) PTR p; - boolean bitstringp; + bfd_boolean bitstringp; { struct pr_handle *info = (struct pr_handle *) p; if (! substitute_type (info, "")) - return false; + return FALSE; if (! prepend_type (info, "set { ") || ! append_type (info, " }")) - return false; + return FALSE; if (bitstringp) { if (! append_type (info, "/* bitstring */")) - return false; + return FALSE; } - return true; + return TRUE; } /* Make an offset type. */ -static boolean +static bfd_boolean pr_offset_type (p) PTR p; { @@ -779,11 +819,11 @@ pr_offset_type (p) char *t; if (! substitute_type (info, "")) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; return (substitute_type (info, "") && prepend_type (info, " ") @@ -793,12 +833,12 @@ pr_offset_type (p) /* Make a method type. */ -static boolean +static bfd_boolean pr_method_type (p, domain, argcount, varargs) PTR p; - boolean domain; + bfd_boolean domain; int argcount; - boolean varargs; + bfd_boolean varargs; { struct pr_handle *info = (struct pr_handle *) p; unsigned int len; @@ -813,10 +853,10 @@ pr_method_type (p, domain, argcount, var else { if (! substitute_type (info, "")) - return false; + return FALSE; domain_type = pop_type (info); if (domain_type == NULL) - return false; + return FALSE; if (strncmp (domain_type, "class ", sizeof "class " - 1) == 0 && strchr (domain_type + sizeof "class " - 1, ' ') == NULL) domain_type += sizeof "class " - 1; @@ -841,10 +881,10 @@ pr_method_type (p, domain, argcount, var for (i = argcount - 1; i >= 0; i--) { if (! substitute_type (info, "")) - return false; + return FALSE; arg_types[i] = pop_type (info); if (arg_types[i] == NULL) - return false; + return FALSE; len += strlen (arg_types[i]) + 2; } if (varargs) @@ -885,16 +925,16 @@ pr_method_type (p, domain, argcount, var strcat (s, ")"); if (! substitute_type (info, s)) - return false; + return FALSE; free (s); - return true; + return TRUE; } /* Make a const qualified type. */ -static boolean +static bfd_boolean pr_const_type (p) PTR p; { @@ -905,7 +945,7 @@ pr_const_type (p) /* Make a volatile qualified type. */ -static boolean +static bfd_boolean pr_volatile_type (p) PTR p; { @@ -916,12 +956,12 @@ pr_volatile_type (p) /* Start accumulating a struct type. */ -static boolean +static bfd_boolean pr_start_struct_type (p, tag, id, structp, size) PTR p; const char *tag; unsigned int id; - boolean structp; + bfd_boolean structp; unsigned int size; { struct pr_handle *info = (struct pr_handle *) p; @@ -929,11 +969,11 @@ pr_start_struct_type (p, tag, id, struct info->indent += 2; if (! push_type (info, structp ? "struct " : "union ")) - return false; + return FALSE; if (tag != NULL) { if (! append_type (info, tag)) - return false; + return FALSE; } else { @@ -941,35 +981,35 @@ pr_start_struct_type (p, tag, id, struct sprintf (idbuf, "%%anon%u", id); if (! append_type (info, idbuf)) - return false; + return FALSE; } if (! append_type (info, " {")) - return false; + return FALSE; if (size != 0 || tag != NULL) { char ab[30]; if (! append_type (info, " /*")) - return false; + return FALSE; if (size != 0) { sprintf (ab, " size %u", size); if (! append_type (info, ab)) - return false; + return FALSE; } if (tag != NULL) { sprintf (ab, " id %u", id); if (! append_type (info, ab)) - return false; + return FALSE; } if (! append_type (info, " */")) - return false; + return FALSE; } if (! append_type (info, "\n")) - return false; + return FALSE; info->stack->visibility = DEBUG_VISIBILITY_PUBLIC; @@ -978,7 +1018,7 @@ pr_start_struct_type (p, tag, id, struct /* Output the visibility of a field in a struct. */ -static boolean +static bfd_boolean pr_fix_visibility (info, visibility) struct pr_handle *info; enum debug_visibility visibility; @@ -990,7 +1030,7 @@ pr_fix_visibility (info, visibility) assert (info->stack != NULL); if (info->stack->visibility == visibility) - return true; + return TRUE; switch (visibility) { @@ -1008,7 +1048,7 @@ pr_fix_visibility (info, visibility) break; default: abort (); - return false; + return FALSE; } /* Trim off a trailing space in the struct string, to make the @@ -1022,16 +1062,16 @@ pr_fix_visibility (info, visibility) if (! append_type (info, s) || ! append_type (info, ":\n") || ! indent_type (info)) - return false; + return FALSE; info->stack->visibility = visibility; - return true; + return TRUE; } /* Add a field to a struct type. */ -static boolean +static bfd_boolean pr_struct_field (p, name, bitpos, bitsize, visibility) PTR p; const char *name; @@ -1044,40 +1084,40 @@ pr_struct_field (p, name, bitpos, bitsiz char *t; if (! substitute_type (info, name)) - return false; + return FALSE; if (! append_type (info, "; /* ")) - return false; + return FALSE; if (bitsize != 0) { - print_vma (bitsize, ab, true, false); + print_vma (bitsize, ab, TRUE, FALSE); if (! append_type (info, "bitsize ") || ! append_type (info, ab) || ! append_type (info, ", ")) - return false; + return FALSE; } - print_vma (bitpos, ab, true, false); + print_vma (bitpos, ab, TRUE, FALSE); if (! append_type (info, "bitpos ") || ! append_type (info, ab) || ! append_type (info, " */\n") || ! indent_type (info)) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; if (! pr_fix_visibility (info, visibility)) - return false; + return FALSE; return append_type (info, t); } /* Finish a struct type. */ -static boolean +static bfd_boolean pr_end_struct_type (p) PTR p; { @@ -1096,20 +1136,20 @@ pr_end_struct_type (p) *s++ = '}'; *s = '\0'; - return true; + return TRUE; } /* Start a class type. */ -static boolean +static bfd_boolean pr_start_class_type (p, tag, id, structp, size, vptr, ownvptr) PTR p; const char *tag; unsigned int id; - boolean structp; + bfd_boolean structp; unsigned int size; - boolean vptr; - boolean ownvptr; + bfd_boolean vptr; + bfd_boolean ownvptr; { struct pr_handle *info = (struct pr_handle *) p; char *tv = NULL; @@ -1120,15 +1160,15 @@ pr_start_class_type (p, tag, id, structp { tv = pop_type (info); if (tv == NULL) - return false; + return FALSE; } if (! push_type (info, structp ? "class " : "union class ")) - return false; + return FALSE; if (tag != NULL) { if (! append_type (info, tag)) - return false; + return FALSE; } else { @@ -1136,15 +1176,15 @@ pr_start_class_type (p, tag, id, structp sprintf (idbuf, "%%anon%u", id); if (! append_type (info, idbuf)) - return false; + return FALSE; } if (! append_type (info, " {")) - return false; + return FALSE; if (size != 0 || vptr || ownvptr || tag != NULL) { if (! append_type (info, " /*")) - return false; + return FALSE; if (size != 0) { @@ -1153,23 +1193,23 @@ pr_start_class_type (p, tag, id, structp sprintf (ab, "%u", size); if (! append_type (info, " size ") || ! append_type (info, ab)) - return false; + return FALSE; } if (vptr) { if (! append_type (info, " vtable ")) - return false; + return FALSE; if (ownvptr) { if (! append_type (info, "self ")) - return false; + return FALSE; } else { if (! append_type (info, tv) || ! append_type (info, " ")) - return false; + return FALSE; } } @@ -1179,11 +1219,11 @@ pr_start_class_type (p, tag, id, structp sprintf (ab, " id %u", id); if (! append_type (info, ab)) - return false; + return FALSE; } if (! append_type (info, " */")) - return false; + return FALSE; } info->stack->visibility = DEBUG_VISIBILITY_PRIVATE; @@ -1194,7 +1234,7 @@ pr_start_class_type (p, tag, id, structp /* Add a static member to a class. */ -static boolean +static bfd_boolean pr_class_static_member (p, name, physname, visibility) PTR p; const char *name; @@ -1205,32 +1245,32 @@ pr_class_static_member (p, name, physnam char *t; if (! substitute_type (info, name)) - return false; + return FALSE; if (! prepend_type (info, "static ") || ! append_type (info, "; /* ") || ! append_type (info, physname) || ! append_type (info, " */\n") || ! indent_type (info)) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; if (! pr_fix_visibility (info, visibility)) - return false; + return FALSE; return append_type (info, t); } /* Add a base class to a class. */ -static boolean +static bfd_boolean pr_class_baseclass (p, bitpos, virtual, visibility) PTR p; bfd_vma bitpos; - boolean virtual; + bfd_boolean virtual; enum debug_visibility visibility; { struct pr_handle *info = (struct pr_handle *) p; @@ -1242,11 +1282,11 @@ pr_class_baseclass (p, bitpos, virtual, assert (info->stack != NULL && info->stack->next != NULL); if (! substitute_type (info, "")) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; if (strncmp (t, "class ", sizeof "class " - 1) == 0) t += sizeof "class " - 1; @@ -1254,12 +1294,12 @@ pr_class_baseclass (p, bitpos, virtual, /* Push it back on to take advantage of the prepend_type and append_type routines. */ if (! push_type (info, t)) - return false; + return FALSE; if (virtual) { if (! prepend_type (info, "virtual ")) - return false; + return FALSE; } switch (visibility) @@ -1279,15 +1319,15 @@ pr_class_baseclass (p, bitpos, virtual, } if (! prepend_type (info, prefix)) - return false; + return FALSE; if (bitpos != 0) { - print_vma (bitpos, ab, true, false); + print_vma (bitpos, ab, TRUE, FALSE); if (! append_type (info, " /* bitpos ") || ! append_type (info, ab) || ! append_type (info, " */")) - return false; + return FALSE; } /* Now the top of the stack is something like "public A / * bitpos @@ -1304,11 +1344,11 @@ pr_class_baseclass (p, bitpos, virtual, if (*l == ':') break; if (! prepend_type (info, l == s ? " : " : ", ")) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; n = (char *) xmalloc (strlen (info->stack->type) + strlen (t) + 1); memcpy (n, info->stack->type, s - info->stack->type); @@ -1320,12 +1360,12 @@ pr_class_baseclass (p, bitpos, virtual, free (t); - return true; + return TRUE; } /* Start adding a method to a class. */ -static boolean +static bfd_boolean pr_class_start_method (p, name) PTR p; const char *name; @@ -1334,21 +1374,21 @@ pr_class_start_method (p, name) assert (info->stack != NULL); info->stack->method = name; - return true; + return TRUE; } /* Add a variant to a method. */ -static boolean +static bfd_boolean pr_class_method_variant (p, physname, visibility, constp, volatilep, voffset, context) PTR p; const char *physname; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; bfd_vma voffset; - boolean context; + bfd_boolean context; { struct pr_handle *info = (struct pr_handle *) p; char *method_type; @@ -1361,12 +1401,12 @@ pr_class_method_variant (p, physname, vi if (volatilep) { if (! append_type (info, " volatile")) - return false; + return FALSE; } if (constp) { if (! append_type (info, " const")) - return false; + return FALSE; } /* Stick the name of the method into its type. */ @@ -1374,12 +1414,12 @@ pr_class_method_variant (p, physname, vi (context ? info->stack->next->next->method : info->stack->next->method))) - return false; + return FALSE; /* Get the type. */ method_type = pop_type (info); if (method_type == NULL) - return false; + return FALSE; /* Pull off the context type if there is one. */ if (! context) @@ -1388,19 +1428,19 @@ pr_class_method_variant (p, physname, vi { context_type = pop_type (info); if (context_type == NULL) - return false; + return FALSE; } /* Now the top of the stack is the class. */ if (! pr_fix_visibility (info, visibility)) - return false; + return FALSE; if (! append_type (info, method_type) || ! append_type (info, " /* ") || ! append_type (info, physname) || ! append_type (info, " ")) - return false; + return FALSE; if (context || voffset != 0) { char ab[20]; @@ -1410,12 +1450,12 @@ pr_class_method_variant (p, physname, vi if (! append_type (info, "context ") || ! append_type (info, context_type) || ! append_type (info, " ")) - return false; + return FALSE; } - print_vma (voffset, ab, true, false); + print_vma (voffset, ab, TRUE, FALSE); if (! append_type (info, "voffset ") || ! append_type (info, ab)) - return false; + return FALSE; } return (append_type (info, " */;\n") @@ -1424,13 +1464,13 @@ pr_class_method_variant (p, physname, vi /* Add a static variant to a method. */ -static boolean +static bfd_boolean pr_class_static_method_variant (p, physname, visibility, constp, volatilep) PTR p; const char *physname; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; { struct pr_handle *info = (struct pr_handle *) p; char *method_type; @@ -1443,31 +1483,31 @@ pr_class_static_method_variant (p, physn if (volatilep) { if (! append_type (info, " volatile")) - return false; + return FALSE; } if (constp) { if (! append_type (info, " const")) - return false; + return FALSE; } /* Mark it as static. */ if (! prepend_type (info, "static ")) - return false; + return FALSE; /* Stick the name of the method into its type. */ if (! substitute_type (info, info->stack->next->method)) - return false; + return FALSE; /* Get the type. */ method_type = pop_type (info); if (method_type == NULL) - return false; + return FALSE; /* Now the top of the stack is the class. */ if (! pr_fix_visibility (info, visibility)) - return false; + return FALSE; return (append_type (info, method_type) && append_type (info, " /* ") @@ -1478,19 +1518,19 @@ pr_class_static_method_variant (p, physn /* Finish up a method. */ -static boolean +static bfd_boolean pr_class_end_method (p) PTR p; { struct pr_handle *info = (struct pr_handle *) p; info->stack->method = NULL; - return true; + return TRUE; } /* Finish up a class. */ -static boolean +static bfd_boolean pr_end_class_type (p) PTR p; { @@ -1499,7 +1539,7 @@ pr_end_class_type (p) /* Push a type on the stack using a typedef name. */ -static boolean +static bfd_boolean pr_typedef_type (p, name) PTR p; const char *name; @@ -1511,7 +1551,7 @@ pr_typedef_type (p, name) /* Push a type on the stack using a tag name. */ -static boolean +static bfd_boolean pr_tag_type (p, name, id, kind) PTR p; const char *name; @@ -1541,11 +1581,11 @@ pr_tag_type (p, name, id, kind) break; default: abort (); - return false; + return FALSE; } if (! push_type (info, t)) - return false; + return FALSE; if (name != NULL) tag = name; else @@ -1555,20 +1595,20 @@ pr_tag_type (p, name, id, kind) } if (! append_type (info, tag)) - return false; + return FALSE; if (name != NULL && kind != DEBUG_KIND_ENUM) { sprintf (idbuf, " /* id %u */", id); if (! append_type (info, idbuf)) - return false; + return FALSE; } - return true; + return TRUE; } /* Output a typedef. */ -static boolean +static bfd_boolean pr_typdef (p, name) PTR p; const char *name; @@ -1577,24 +1617,24 @@ pr_typdef (p, name) char *s; if (! substitute_type (info, name)) - return false; + return FALSE; s = pop_type (info); if (s == NULL) - return false; + return FALSE; indent (info); fprintf (info->f, "typedef %s;\n", s); free (s); - return true; + return TRUE; } /* Output a tag. The tag should already be in the string on the stack, so all we have to do here is print it out. */ -static boolean +static bfd_boolean pr_tag (p, name) PTR p; const char *name ATTRIBUTE_UNUSED; @@ -1604,19 +1644,19 @@ pr_tag (p, name) t = pop_type (info); if (t == NULL) - return false; + return FALSE; indent (info); fprintf (info->f, "%s;\n", t); free (t); - return true; + return TRUE; } /* Output an integer constant. */ -static boolean +static bfd_boolean pr_int_constant (p, name, val) PTR p; const char *name; @@ -1626,14 +1666,14 @@ pr_int_constant (p, name, val) char ab[20]; indent (info); - print_vma (val, ab, false, false); + print_vma (val, ab, FALSE, FALSE); fprintf (info->f, "const int %s = %s;\n", name, ab); - return true; + return TRUE; } /* Output a floating point constant. */ -static boolean +static bfd_boolean pr_float_constant (p, name, val) PTR p; const char *name; @@ -1643,12 +1683,12 @@ pr_float_constant (p, name, val) indent (info); fprintf (info->f, "const double %s = %g;\n", name, val); - return true; + return TRUE; } /* Output a typed constant. */ -static boolean +static bfd_boolean pr_typed_constant (p, name, val) PTR p; const char *name; @@ -1660,20 +1700,20 @@ pr_typed_constant (p, name, val) t = pop_type (info); if (t == NULL) - return false; + return FALSE; indent (info); - print_vma (val, ab, false, false); + print_vma (val, ab, FALSE, FALSE); fprintf (info->f, "const %s %s = %s;\n", t, name, ab); free (t); - return true; + return TRUE; } /* Output a variable. */ -static boolean +static bfd_boolean pr_variable (p, name, kind, val) PTR p; const char *name; @@ -1685,11 +1725,11 @@ pr_variable (p, name, kind, val) char ab[20]; if (! substitute_type (info, name)) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; indent (info); switch (kind) @@ -1704,31 +1744,31 @@ pr_variable (p, name, kind, val) default: break; } - print_vma (val, ab, true, true); + print_vma (val, ab, TRUE, TRUE); fprintf (info->f, "%s /* %s */;\n", t, ab); free (t); - return true; + return TRUE; } /* Start outputting a function. */ -static boolean +static bfd_boolean pr_start_function (p, name, global) PTR p; const char *name; - boolean global; + bfd_boolean global; { struct pr_handle *info = (struct pr_handle *) p; char *t; if (! substitute_type (info, name)) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; indent (info); if (! global) @@ -1737,12 +1777,12 @@ pr_start_function (p, name, global) info->parameter = 1; - return true; + return TRUE; } /* Output a function parameter. */ -static boolean +static bfd_boolean pr_function_parameter (p, name, kind, val) PTR p; const char *name; @@ -1757,15 +1797,15 @@ pr_function_parameter (p, name, kind, va || kind == DEBUG_PARM_REF_REG) { if (! pr_reference_type (p)) - return false; + return FALSE; } if (! substitute_type (info, name)) - return false; + return FALSE; t = pop_type (info); if (t == NULL) - return false; + return FALSE; if (info->parameter != 1) fprintf (info->f, ", "); @@ -1773,19 +1813,19 @@ pr_function_parameter (p, name, kind, va if (kind == DEBUG_PARM_REG || kind == DEBUG_PARM_REF_REG) fprintf (info->f, "register "); - print_vma (val, ab, true, true); + print_vma (val, ab, TRUE, TRUE); fprintf (info->f, "%s /* %s */", t, ab); free (t); ++info->parameter; - return true; + return TRUE; } /* Start writing out a block. */ -static boolean +static bfd_boolean pr_start_block (p, addr) PTR p; bfd_vma addr; @@ -1800,17 +1840,17 @@ pr_start_block (p, addr) } indent (info); - print_vma (addr, ab, true, true); + print_vma (addr, ab, TRUE, TRUE); fprintf (info->f, "{ /* %s */\n", ab); info->indent += 2; - return true; + return TRUE; } /* Write out line number information. */ -static boolean +static bfd_boolean pr_lineno (p, filename, lineno, addr) PTR p; const char *filename; @@ -1821,15 +1861,15 @@ pr_lineno (p, filename, lineno, addr) char ab[20]; indent (info); - print_vma (addr, ab, true, true); + print_vma (addr, ab, TRUE, TRUE); fprintf (info->f, "/* file %s line %lu addr %s */\n", filename, lineno, ab); - return true; + return TRUE; } /* Finish writing out a block. */ -static boolean +static bfd_boolean pr_end_block (p, addr) PTR p; bfd_vma addr; @@ -1840,17 +1880,17 @@ pr_end_block (p, addr) info->indent -= 2; indent (info); - print_vma (addr, ab, true, true); + print_vma (addr, ab, TRUE, TRUE); fprintf (info->f, "} /* %s */\n", ab); - return true; + return TRUE; } /* Finish writing out a function. */ -static boolean +static bfd_boolean pr_end_function (p) PTR p ATTRIBUTE_UNUSED; { - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/binutils/rdcoff.c binutils-2.13.90.0.18/binutils/rdcoff.c --- binutils-2.13.90.0.16/binutils/rdcoff.c Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/binutils/rdcoff.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* stabs.c -- Parse COFF debugging information - Copyright 1996, 2000 Free Software Foundation, Inc. + Copyright 1996, 2000, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -82,10 +82,11 @@ struct coff_types debug_type basic[T_MAX + 1]; }; -static debug_type *coff_get_slot PARAMS ((struct coff_types *, int)); +static debug_type *coff_get_slot + PARAMS ((struct coff_types *, int)); static debug_type parse_coff_type PARAMS ((bfd *, struct coff_symbols *, struct coff_types *, long, int, - union internal_auxent *, boolean, PTR)); + union internal_auxent *, bfd_boolean, PTR)); static debug_type parse_coff_base_type PARAMS ((bfd *, struct coff_symbols *, struct coff_types *, long, int, union internal_auxent *, PTR)); @@ -95,10 +96,11 @@ static debug_type parse_coff_struct_type static debug_type parse_coff_enum_type PARAMS ((bfd *, struct coff_symbols *, struct coff_types *, union internal_auxent *, PTR)); -static boolean parse_coff_symbol +static bfd_boolean parse_coff_symbol PARAMS ((bfd *, struct coff_types *, asymbol *, long, - struct internal_syment *, PTR, debug_type, boolean)); -static boolean external_coff_symbol_p PARAMS ((int sym_class)); + struct internal_syment *, PTR, debug_type, bfd_boolean)); +static bfd_boolean external_coff_symbol_p + PARAMS ((int sym_class)); /* Return the slot for a type. */ @@ -142,7 +144,7 @@ parse_coff_type (abfd, symbols, types, c long coff_symno; int ntype; union internal_auxent *pauxent; - boolean useaux; + bfd_boolean useaux; PTR dhandle; { debug_type type; @@ -164,7 +166,7 @@ parse_coff_type (abfd, symbols, types, c type = parse_coff_type (abfd, symbols, types, coff_symno, newtype, pauxent, useaux, dhandle); type = debug_make_function_type (dhandle, type, (debug_type *) NULL, - false); + FALSE); } else if (ISARY (ntype)) { @@ -190,14 +192,14 @@ parse_coff_type (abfd, symbols, types, c } type = parse_coff_type (abfd, symbols, types, coff_symno, newtype, - pauxent, false, dhandle); + pauxent, FALSE, dhandle); type = debug_make_array_type (dhandle, type, parse_coff_base_type (abfd, symbols, types, coff_symno, T_INT, NULL, dhandle), - 0, n - 1, false); + 0, n - 1, FALSE); } else { @@ -248,7 +250,7 @@ parse_coff_base_type (abfd, symbols, typ PTR dhandle; { debug_type ret; - boolean set_basic; + bfd_boolean set_basic; const char *name; debug_type *slot; @@ -257,7 +259,7 @@ parse_coff_base_type (abfd, symbols, typ && types->basic[ntype] != DEBUG_TYPE_NULL) return types->basic[ntype]; - set_basic = true; + set_basic = TRUE; name = NULL; switch (ntype) @@ -273,23 +275,23 @@ parse_coff_base_type (abfd, symbols, typ break; case T_CHAR: - ret = debug_make_int_type (dhandle, 1, false); + ret = debug_make_int_type (dhandle, 1, FALSE); name = "char"; break; case T_SHORT: - ret = debug_make_int_type (dhandle, 2, false); + ret = debug_make_int_type (dhandle, 2, FALSE); name = "short"; break; case T_INT: /* FIXME: Perhaps the size should depend upon the architecture. */ - ret = debug_make_int_type (dhandle, 4, false); + ret = debug_make_int_type (dhandle, 4, FALSE); name = "int"; break; case T_LONG: - ret = debug_make_int_type (dhandle, 4, false); + ret = debug_make_int_type (dhandle, 4, FALSE); name = "long"; break; @@ -309,28 +311,28 @@ parse_coff_base_type (abfd, symbols, typ break; case T_UCHAR: - ret = debug_make_int_type (dhandle, 1, true); + ret = debug_make_int_type (dhandle, 1, TRUE); name = "unsigned char"; break; case T_USHORT: - ret = debug_make_int_type (dhandle, 2, true); + ret = debug_make_int_type (dhandle, 2, TRUE); name = "unsigned short"; break; case T_UINT: - ret = debug_make_int_type (dhandle, 4, true); + ret = debug_make_int_type (dhandle, 4, TRUE); name = "unsigned int"; break; case T_ULONG: - ret = debug_make_int_type (dhandle, 4, true); + ret = debug_make_int_type (dhandle, 4, TRUE); name = "unsigned long"; break; case T_STRUCT: if (pauxent == NULL) - ret = debug_make_struct_type (dhandle, true, 0, + ret = debug_make_struct_type (dhandle, TRUE, 0, (debug_field *) NULL); else ret = parse_coff_struct_type (abfd, symbols, types, ntype, pauxent, @@ -339,12 +341,12 @@ parse_coff_base_type (abfd, symbols, typ slot = coff_get_slot (types, coff_symno); *slot = ret; - set_basic = false; + set_basic = FALSE; break; case T_UNION: if (pauxent == NULL) - ret = debug_make_struct_type (dhandle, false, 0, (debug_field *) NULL); + ret = debug_make_struct_type (dhandle, FALSE, 0, (debug_field *) NULL); else ret = parse_coff_struct_type (abfd, symbols, types, ntype, pauxent, dhandle); @@ -352,7 +354,7 @@ parse_coff_base_type (abfd, symbols, typ slot = coff_get_slot (types, coff_symno); *slot = ret; - set_basic = false; + set_basic = FALSE; break; case T_ENUM: @@ -365,7 +367,7 @@ parse_coff_base_type (abfd, symbols, typ slot = coff_get_slot (types, coff_symno); *slot = ret; - set_basic = false; + set_basic = FALSE; break; } @@ -395,7 +397,7 @@ parse_coff_struct_type (abfd, symbols, t int alloc; debug_field *fields; int count; - boolean done; + bfd_boolean done; symend = pauxent->x_sym.x_fcnary.x_fcn.x_endndx.l; @@ -403,7 +405,7 @@ parse_coff_struct_type (abfd, symbols, t fields = (debug_field *) xmalloc (alloc * sizeof *fields); count = 0; - done = false; + done = FALSE; while (! done && symbols->coff_symno < symend && symbols->symno < symbols->symcount) @@ -456,7 +458,7 @@ parse_coff_struct_type (abfd, symbols, t break; case C_EOS: - done = true; + done = TRUE; break; } @@ -466,7 +468,7 @@ parse_coff_struct_type (abfd, symbols, t debug_field f; ftype = parse_coff_type (abfd, symbols, types, this_coff_symno, - syment.n_type, psubaux, true, dhandle); + syment.n_type, psubaux, TRUE, dhandle); f = debug_make_field (dhandle, bfd_asymbol_name (sym), ftype, bitpos, bitsize, DEBUG_VISIBILITY_PUBLIC); if (f == DEBUG_FIELD_NULL) @@ -506,7 +508,7 @@ parse_coff_enum_type (abfd, symbols, typ const char **names; bfd_signed_vma *vals; int count; - boolean done; + bfd_boolean done; symend = pauxent->x_sym.x_fcnary.x_fcn.x_endndx.l; @@ -515,7 +517,7 @@ parse_coff_enum_type (abfd, symbols, typ vals = (bfd_signed_vma *) xmalloc (alloc * sizeof *vals); count = 0; - done = false; + done = FALSE; while (! done && symbols->coff_symno < symend && symbols->symno < symbols->symcount) @@ -553,7 +555,7 @@ parse_coff_enum_type (abfd, symbols, typ break; case C_EOS: - done = true; + done = TRUE; break; } } @@ -565,7 +567,7 @@ parse_coff_enum_type (abfd, symbols, typ /* Handle a single COFF symbol. */ -static boolean +static bfd_boolean parse_coff_symbol (abfd, types, sym, coff_symno, psyment, dhandle, type, within_function) bfd *abfd ATTRIBUTE_UNUSED; @@ -575,7 +577,7 @@ parse_coff_symbol (abfd, types, sym, cof struct internal_syment *psyment; PTR dhandle; debug_type type; - boolean within_function; + bfd_boolean within_function; { switch (psyment->n_sclass) { @@ -585,14 +587,14 @@ parse_coff_symbol (abfd, types, sym, cof case C_AUTO: if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type, DEBUG_LOCAL, bfd_asymbol_value (sym))) - return false; + return FALSE; break; case C_WEAKEXT: case C_EXT: if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type, DEBUG_GLOBAL, bfd_asymbol_value (sym))) - return false; + return FALSE; break; case C_STAT: @@ -601,14 +603,14 @@ parse_coff_symbol (abfd, types, sym, cof ? DEBUG_LOCAL_STATIC : DEBUG_STATIC), bfd_asymbol_value (sym))) - return false; + return FALSE; break; case C_REG: /* FIXME: We may need to convert the register number. */ if (! debug_record_variable (dhandle, bfd_asymbol_name (sym), type, DEBUG_REGISTER, bfd_asymbol_value (sym))) - return false; + return FALSE; break; case C_LABEL: @@ -617,20 +619,20 @@ parse_coff_symbol (abfd, types, sym, cof case C_ARG: if (! debug_record_parameter (dhandle, bfd_asymbol_name (sym), type, DEBUG_PARM_STACK, bfd_asymbol_value (sym))) - return false; + return FALSE; break; case C_REGPARM: /* FIXME: We may need to convert the register number. */ if (! debug_record_parameter (dhandle, bfd_asymbol_name (sym), type, DEBUG_PARM_REG, bfd_asymbol_value (sym))) - return false; + return FALSE; break; case C_TPDEF: type = debug_name_type (dhandle, bfd_asymbol_name (sym), type); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; break; case C_STRTAG: @@ -641,7 +643,7 @@ parse_coff_symbol (abfd, types, sym, cof type = debug_tag_type (dhandle, bfd_asymbol_name (sym), type); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; /* Store the named type into the slot, so that references get the name. */ @@ -654,12 +656,12 @@ parse_coff_symbol (abfd, types, sym, cof break; } - return true; + return TRUE; } /* Determine if a symbol has external visibility. */ -static boolean +static bfd_boolean external_coff_symbol_p (sym_class) int sym_class; { @@ -667,17 +669,17 @@ external_coff_symbol_p (sym_class) { case C_EXT: case C_WEAKEXT: - return true; + return TRUE; default: break; } - return false; + return FALSE; } /* This is the main routine. It looks through all the symbols and handles them. */ -boolean +bfd_boolean parse_coff (abfd, syms, symcount, dhandle) bfd *abfd; asymbol **syms; @@ -693,7 +695,7 @@ parse_coff (abfd, syms, symcount, dhandl int fntype; bfd_vma fnend; alent *linenos; - boolean within_function; + bfd_boolean within_function; long this_coff_symno; symbols.syms = syms; @@ -711,7 +713,7 @@ parse_coff (abfd, syms, symcount, dhandl fntype = 0; fnend = 0; linenos = NULL; - within_function = false; + within_function = FALSE; while (symbols.symno < symcount) { @@ -728,7 +730,7 @@ parse_coff (abfd, syms, symcount, dhandl { non_fatal (_("bfd_coff_get_syment failed: %s"), bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } name = bfd_asymbol_name (sym); @@ -748,7 +750,7 @@ parse_coff (abfd, syms, symcount, dhandl { non_fatal (_("bfd_coff_get_auxent failed: %s"), bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } paux = &auxent; } @@ -758,7 +760,7 @@ parse_coff (abfd, syms, symcount, dhandl /* The last C_FILE symbol points to the first external symbol. */ if (! debug_set_filename (dhandle, "*globals*")) - return false; + return FALSE; } switch (syment.n_sclass) @@ -776,7 +778,7 @@ parse_coff (abfd, syms, symcount, dhandl case C_FILE: next_c_file = syment.n_value; if (! debug_set_filename (dhandle, name)) - return false; + return FALSE; break; case C_STAT: @@ -800,12 +802,12 @@ parse_coff (abfd, syms, symcount, dhandl break; } type = parse_coff_type (abfd, &symbols, &types, this_coff_symno, - syment.n_type, paux, true, dhandle); + syment.n_type, paux, TRUE, dhandle); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! parse_coff_symbol (abfd, &types, sym, this_coff_symno, &syment, dhandle, type, within_function)) - return false; + return FALSE; break; case C_FCN: @@ -815,18 +817,18 @@ parse_coff (abfd, syms, symcount, dhandl { non_fatal (_("%ld: .bf without preceding function"), this_coff_symno); - return false; + return FALSE; } type = parse_coff_type (abfd, &symbols, &types, this_coff_symno, - DECREF (fntype), paux, false, dhandle); + DECREF (fntype), paux, FALSE, dhandle); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! debug_record_function (dhandle, fnname, type, external_coff_symbol_p (fnclass), bfd_asymbol_value (sym))) - return false; + return FALSE; if (linenos != NULL) { @@ -847,7 +849,7 @@ parse_coff (abfd, syms, symcount, dhandl if (! debug_record_line (dhandle, linenos->line_number + base, linenos->u.offset + addr)) - return false; + return FALSE; ++linenos; } } @@ -857,23 +859,23 @@ parse_coff (abfd, syms, symcount, dhandl fnclass = 0; fntype = 0; - within_function = true; + within_function = TRUE; } else if (strcmp (name, ".ef") == 0) { if (! within_function) { non_fatal (_("%ld: unexpected .ef\n"), this_coff_symno); - return false; + return FALSE; } if (bfd_asymbol_value (sym) > fnend) fnend = bfd_asymbol_value (sym); if (! debug_end_function (dhandle, fnend)) - return false; + return FALSE; fnend = 0; - within_function = false; + within_function = FALSE; } break; @@ -881,26 +883,26 @@ parse_coff (abfd, syms, symcount, dhandl if (strcmp (name, ".bb") == 0) { if (! debug_start_block (dhandle, bfd_asymbol_value (sym))) - return false; + return FALSE; } else if (strcmp (name, ".eb") == 0) { if (! debug_end_block (dhandle, bfd_asymbol_value (sym))) - return false; + return FALSE; } break; default: type = parse_coff_type (abfd, &symbols, &types, this_coff_symno, - syment.n_type, paux, true, dhandle); + syment.n_type, paux, TRUE, dhandle); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! parse_coff_symbol (abfd, &types, sym, this_coff_symno, &syment, dhandle, type, within_function)) - return false; + return FALSE; break; } } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/binutils/rddbg.c binutils-2.13.90.0.18/binutils/rddbg.c --- binutils-2.13.90.0.16/binutils/rddbg.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/binutils/rddbg.c Mon Dec 16 12:22:52 2002 @@ -29,14 +29,18 @@ #include "debug.h" #include "budbg.h" -static boolean read_section_stabs_debugging_info - PARAMS ((bfd *, asymbol **, long, PTR, boolean *)); -static boolean read_symbol_stabs_debugging_info - PARAMS ((bfd *, asymbol **, long, PTR, boolean *)); -static boolean read_ieee_debugging_info PARAMS ((bfd *, PTR, boolean *)); -static void save_stab PARAMS ((int, int, bfd_vma, const char *)); -static void stab_context PARAMS ((void)); -static void free_saved_stabs PARAMS ((void)); +static bfd_boolean read_section_stabs_debugging_info + PARAMS ((bfd *, asymbol **, long, PTR, bfd_boolean *)); +static bfd_boolean read_symbol_stabs_debugging_info + PARAMS ((bfd *, asymbol **, long, PTR, bfd_boolean *)); +static bfd_boolean read_ieee_debugging_info + PARAMS ((bfd *, PTR, bfd_boolean *)); +static void save_stab + PARAMS ((int, int, bfd_vma, const char *)); +static void stab_context + PARAMS ((void)); +static void free_saved_stabs + PARAMS ((void)); /* Read debugging information from a BFD. Returns a generic debugging pointer. */ @@ -48,7 +52,7 @@ read_debugging_info (abfd, syms, symcoun long symcount; { PTR dhandle; - boolean found; + bfd_boolean found; dhandle = debug_init (); if (dhandle == NULL) @@ -79,7 +83,7 @@ read_debugging_info (abfd, syms, symcoun { if (! parse_coff (abfd, syms, symcount, dhandle)) return NULL; - found = true; + found = TRUE; } if (! found) @@ -94,13 +98,13 @@ read_debugging_info (abfd, syms, symcoun /* Read stabs in sections debugging information from a BFD. */ -static boolean +static bfd_boolean read_section_stabs_debugging_info (abfd, syms, symcount, dhandle, pfound) bfd *abfd; asymbol **syms; long symcount; PTR dhandle; - boolean *pfound; + bfd_boolean *pfound; { static struct { @@ -111,7 +115,7 @@ read_section_stabs_debugging_info (abfd, unsigned int i; PTR shandle; - *pfound = false; + *pfound = FALSE; shandle = NULL; for (i = 0; i < sizeof names / sizeof names[0]; i++) @@ -134,7 +138,7 @@ read_section_stabs_debugging_info (abfd, fprintf (stderr, "%s: %s: %s\n", bfd_get_filename (abfd), names[i].secname, bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } strsize = bfd_section_size (abfd, strsec); @@ -144,17 +148,17 @@ read_section_stabs_debugging_info (abfd, fprintf (stderr, "%s: %s: %s\n", bfd_get_filename (abfd), names[i].strsecname, bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } if (shandle == NULL) { - shandle = start_stab (dhandle, abfd, true, syms, symcount); + shandle = start_stab (dhandle, abfd, TRUE, syms, symcount); if (shandle == NULL) - return false; + return FALSE; } - *pfound = true; + *pfound = TRUE; stroff = 0; next_stroff = 0; @@ -227,7 +231,7 @@ read_section_stabs_debugging_info (abfd, { stab_context (); free_saved_stabs (); - return false; + return FALSE; } /* Don't free f, since I think the stabs code @@ -248,21 +252,21 @@ read_section_stabs_debugging_info (abfd, if (shandle != NULL) { if (! finish_stab (dhandle, shandle)) - return false; + return FALSE; } - return true; + return TRUE; } /* Read stabs in the symbol table. */ -static boolean +static bfd_boolean read_symbol_stabs_debugging_info (abfd, syms, symcount, dhandle, pfound) bfd *abfd; asymbol **syms; long symcount; PTR dhandle; - boolean *pfound; + bfd_boolean *pfound; { PTR shandle; asymbol **ps, **symend; @@ -282,12 +286,12 @@ read_symbol_stabs_debugging_info (abfd, if (shandle == NULL) { - shandle = start_stab (dhandle, abfd, false, syms, symcount); + shandle = start_stab (dhandle, abfd, FALSE, syms, symcount); if (shandle == NULL) - return false; + return FALSE; } - *pfound = true; + *pfound = TRUE; s = i.name; f = NULL; @@ -314,7 +318,7 @@ read_symbol_stabs_debugging_info (abfd, { stab_context (); free_saved_stabs (); - return false; + return FALSE; } /* Don't free f, since I think the stabs code expects @@ -328,19 +332,19 @@ read_symbol_stabs_debugging_info (abfd, if (shandle != NULL) { if (! finish_stab (dhandle, shandle)) - return false; + return FALSE; } - return true; + return TRUE; } /* Read IEEE debugging information. */ -static boolean +static bfd_boolean read_ieee_debugging_info (abfd, dhandle, pfound) bfd *abfd; PTR dhandle; - boolean *pfound; + bfd_boolean *pfound; { asection *dsec; bfd_size_type size; @@ -351,21 +355,21 @@ read_ieee_debugging_info (abfd, dhandle, dsec = bfd_get_section_by_name (abfd, ".debug"); if (dsec == NULL) - return true; + return TRUE; size = bfd_section_size (abfd, dsec); contents = (bfd_byte *) xmalloc (size); if (! bfd_get_section_contents (abfd, dsec, contents, 0, size)) - return false; + return FALSE; if (! parse_ieee (dhandle, abfd, contents, size)) - return false; + return FALSE; free (contents); - *pfound = true; + *pfound = TRUE; - return true; + return TRUE; } /* Record stabs strings, so that we can give some context for errors. */ diff -uprN binutils-2.13.90.0.16/binutils/readelf.c binutils-2.13.90.0.18/binutils/readelf.c --- binutils-2.13.90.0.16/binutils/readelf.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/binutils/readelf.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* readelf.c -- display contents of an ELF format file - Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Originally developed by Eric Youngdale Modifications by Nick Clifton @@ -31,7 +31,7 @@ #if __GNUC__ >= 2 /* Define BFD64 here, even if our default architecture is 32 bit ELF as this will allow us to read in and parse 64bit and 32bit ELF files. - Only do this if we belive that the compiler can support a 64 bit + Only do this if we believe that the compiler can support a 64 bit data type. For now we only rely on GCC being able to do this. */ #define BFD64 #endif @@ -75,9 +75,11 @@ #include "elf/mmix.h" #include "elf/mn10200.h" #include "elf/mn10300.h" +#include "elf/msp430.h" #include "elf/or32.h" #include "elf/pj.h" #include "elf/ppc.h" +#include "elf/ppc64.h" #include "elf/s390.h" #include "elf/sh.h" #include "elf/sparc.h" @@ -85,62 +87,61 @@ #include "elf/vax.h" #include "elf/x86-64.h" #include "elf/xstormy16.h" +#include "elf/iq2000.h" #include "bucomm.h" #include "getopt.h" -char * program_name = "readelf"; -unsigned int dynamic_addr; -bfd_size_type dynamic_size; -unsigned int rela_addr; -unsigned int rela_size; -char * dynamic_strings; -char * string_table; -unsigned long string_table_length; -unsigned long num_dynamic_syms; -Elf_Internal_Sym * dynamic_symbols; -Elf_Internal_Syminfo * dynamic_syminfo; -unsigned long dynamic_syminfo_offset; -unsigned int dynamic_syminfo_nent; -char program_interpreter [64]; -int dynamic_info[DT_JMPREL + 1]; -int version_info[16]; -int loadaddr = 0; -Elf_Internal_Ehdr elf_header; -Elf_Internal_Shdr * section_headers; -Elf_Internal_Dyn * dynamic_segment; -Elf_Internal_Shdr * symtab_shndx_hdr; -int show_name; -int do_dynamic; -int do_syms; -int do_reloc; -int do_sections; -int do_segments; -int do_unwind; -int do_using_dynamic; -int do_header; -int do_dump; -int do_version; -int do_wide; -int do_histogram; -int do_debugging; -int do_debug_info; -int do_debug_abbrevs; -int do_debug_lines; -int do_debug_pubnames; -int do_debug_aranges; -int do_debug_frames; -int do_debug_frames_interp; -int do_debug_macinfo; -int do_debug_str; -int do_debug_loc; -int do_arch; -int do_notes; -int is_32bit_elf; +char *program_name = "readelf"; +unsigned long dynamic_addr; +bfd_size_type dynamic_size; +char *dynamic_strings; +char *string_table; +unsigned long string_table_length; +unsigned long num_dynamic_syms; +Elf_Internal_Sym *dynamic_symbols; +Elf_Internal_Syminfo *dynamic_syminfo; +unsigned long dynamic_syminfo_offset; +unsigned int dynamic_syminfo_nent; +char program_interpreter[64]; +long dynamic_info[DT_JMPREL + 1]; +long version_info[16]; +long loadaddr = 0; +Elf_Internal_Ehdr elf_header; +Elf_Internal_Shdr *section_headers; +Elf_Internal_Dyn *dynamic_segment; +Elf_Internal_Shdr *symtab_shndx_hdr; +int show_name; +int do_dynamic; +int do_syms; +int do_reloc; +int do_sections; +int do_segments; +int do_unwind; +int do_using_dynamic; +int do_header; +int do_dump; +int do_version; +int do_wide; +int do_histogram; +int do_debugging; +int do_debug_info; +int do_debug_abbrevs; +int do_debug_lines; +int do_debug_pubnames; +int do_debug_aranges; +int do_debug_frames; +int do_debug_frames_interp; +int do_debug_macinfo; +int do_debug_str; +int do_debug_loc; +int do_arch; +int do_notes; +int is_32bit_elf; /* A dynamic array of flags indicating which sections require dumping. */ -char * dump_sects = NULL; -unsigned int num_dump_sects = 0; +char *dump_sects = NULL; +unsigned int num_dump_sects = 0; #define HEX_DUMP (1 << 0) #define DISASS_DUMP (1 << 1) @@ -160,120 +161,226 @@ typedef enum print_mode print_mode; /* Forward declarations for dumb compilers. */ -static void print_vma PARAMS ((bfd_vma, print_mode)); -static void print_symbol PARAMS ((int, const char *)); -static bfd_vma (* byte_get) PARAMS ((unsigned char *, int)); -static bfd_vma byte_get_little_endian PARAMS ((unsigned char *, int)); -static bfd_vma byte_get_big_endian PARAMS ((unsigned char *, int)); -static const char * get_mips_dynamic_type PARAMS ((unsigned long)); -static const char * get_sparc64_dynamic_type PARAMS ((unsigned long)); -static const char * get_ppc64_dynamic_type PARAMS ((unsigned long)); -static const char * get_parisc_dynamic_type PARAMS ((unsigned long)); -static const char * get_dynamic_type PARAMS ((unsigned long)); -static int slurp_rela_relocs PARAMS ((FILE *, unsigned long, unsigned long, Elf_Internal_Rela **, unsigned long *)); -static int slurp_rel_relocs PARAMS ((FILE *, unsigned long, unsigned long, Elf_Internal_Rel **, unsigned long *)); -static int dump_relocations PARAMS ((FILE *, unsigned long, unsigned long, Elf_Internal_Sym *, unsigned long, char *, int)); -static char * get_file_type PARAMS ((unsigned)); -static char * get_machine_name PARAMS ((unsigned)); -static void decode_ARM_machine_flags PARAMS ((unsigned, char [])); -static char * get_machine_flags PARAMS ((unsigned, unsigned)); -static const char * get_mips_segment_type PARAMS ((unsigned long)); -static const char * get_parisc_segment_type PARAMS ((unsigned long)); -static const char * get_ia64_segment_type PARAMS ((unsigned long)); -static const char * get_segment_type PARAMS ((unsigned long)); -static const char * get_mips_section_type_name PARAMS ((unsigned int)); -static const char * get_parisc_section_type_name PARAMS ((unsigned int)); -static const char * get_ia64_section_type_name PARAMS ((unsigned int)); -static const char * get_section_type_name PARAMS ((unsigned int)); -static const char * get_symbol_binding PARAMS ((unsigned int)); -static const char * get_symbol_type PARAMS ((unsigned int)); -static const char * get_symbol_visibility PARAMS ((unsigned int)); -static const char * get_symbol_index_type PARAMS ((unsigned int)); -static const char * get_dynamic_flags PARAMS ((bfd_vma)); -static void usage PARAMS ((void)); -static void parse_args PARAMS ((int, char **)); -static int process_file_header PARAMS ((void)); -static int process_program_headers PARAMS ((FILE *)); -static int process_section_headers PARAMS ((FILE *)); -static int process_unwind PARAMS ((FILE *)); -static void dynamic_segment_mips_val PARAMS ((Elf_Internal_Dyn *)); -static void dynamic_segment_parisc_val PARAMS ((Elf_Internal_Dyn *)); -static int process_dynamic_segment PARAMS ((FILE *)); -static int process_symbol_table PARAMS ((FILE *)); -static int process_syminfo PARAMS ((FILE *)); -static int process_section_contents PARAMS ((FILE *)); -static void process_mips_fpe_exception PARAMS ((int)); -static int process_mips_specific PARAMS ((FILE *)); -static int process_file PARAMS ((char *)); -static int process_relocs PARAMS ((FILE *)); -static int process_version_sections PARAMS ((FILE *)); -static char * get_ver_flags PARAMS ((unsigned int)); -static int get_32bit_section_headers PARAMS ((FILE *, unsigned int)); -static int get_64bit_section_headers PARAMS ((FILE *, unsigned int)); -static int get_32bit_program_headers PARAMS ((FILE *, Elf_Internal_Phdr *)); -static int get_64bit_program_headers PARAMS ((FILE *, Elf_Internal_Phdr *)); -static int get_file_header PARAMS ((FILE *)); -static Elf_Internal_Sym * get_32bit_elf_symbols PARAMS ((FILE *, Elf_Internal_Shdr *)); -static Elf_Internal_Sym * get_64bit_elf_symbols PARAMS ((FILE *, Elf_Internal_Shdr *)); -static const char * get_elf_section_flags PARAMS ((bfd_vma)); -static int * get_dynamic_data PARAMS ((FILE *, unsigned int)); -static int get_32bit_dynamic_segment PARAMS ((FILE *)); -static int get_64bit_dynamic_segment PARAMS ((FILE *)); +static void print_vma + PARAMS ((bfd_vma, print_mode)); +static void print_symbol + PARAMS ((int, const char *)); +static bfd_vma (*byte_get) + PARAMS ((unsigned char *, int)); +static bfd_vma byte_get_little_endian + PARAMS ((unsigned char *, int)); +static bfd_vma byte_get_big_endian + PARAMS ((unsigned char *, int)); +static const char *get_mips_dynamic_type + PARAMS ((unsigned long)); +static const char *get_sparc64_dynamic_type + PARAMS ((unsigned long)); +static const char *get_ppc64_dynamic_type + PARAMS ((unsigned long)); +static const char *get_parisc_dynamic_type + PARAMS ((unsigned long)); +static const char *get_dynamic_type + PARAMS ((unsigned long)); +static int slurp_rela_relocs + PARAMS ((FILE *, unsigned long, unsigned long, Elf_Internal_Rela **, + unsigned long *)); +static int slurp_rel_relocs + PARAMS ((FILE *, unsigned long, unsigned long, Elf_Internal_Rela **, + unsigned long *)); +static int dump_relocations + PARAMS ((FILE *, unsigned long, unsigned long, Elf_Internal_Sym *, + unsigned long, char *, int)); +static char *get_file_type + PARAMS ((unsigned)); +static char *get_machine_name + PARAMS ((unsigned)); +static void decode_ARM_machine_flags + PARAMS ((unsigned, char[])); +static char *get_machine_flags + PARAMS ((unsigned, unsigned)); +static const char *get_mips_segment_type + PARAMS ((unsigned long)); +static const char *get_parisc_segment_type + PARAMS ((unsigned long)); +static const char *get_ia64_segment_type + PARAMS ((unsigned long)); +static const char *get_segment_type + PARAMS ((unsigned long)); +static const char *get_mips_section_type_name + PARAMS ((unsigned int)); +static const char *get_parisc_section_type_name + PARAMS ((unsigned int)); +static const char *get_ia64_section_type_name + PARAMS ((unsigned int)); +static const char *get_section_type_name + PARAMS ((unsigned int)); +static const char *get_symbol_binding + PARAMS ((unsigned int)); +static const char *get_symbol_type + PARAMS ((unsigned int)); +static const char *get_symbol_visibility + PARAMS ((unsigned int)); +static const char *get_symbol_index_type + PARAMS ((unsigned int)); +static const char *get_dynamic_flags + PARAMS ((bfd_vma)); +static void usage + PARAMS ((void)); +static void parse_args + PARAMS ((int, char **)); +static int process_file_header + PARAMS ((void)); +static int process_program_headers + PARAMS ((FILE *)); +static int process_section_headers + PARAMS ((FILE *)); +static int process_unwind + PARAMS ((FILE *)); +static void dynamic_segment_mips_val + PARAMS ((Elf_Internal_Dyn *)); +static void dynamic_segment_parisc_val + PARAMS ((Elf_Internal_Dyn *)); +static int process_dynamic_segment + PARAMS ((FILE *)); +static int process_symbol_table + PARAMS ((FILE *)); +static int process_syminfo + PARAMS ((FILE *)); +static int process_section_contents + PARAMS ((FILE *)); +static void process_mips_fpe_exception + PARAMS ((int)); +static int process_mips_specific + PARAMS ((FILE *)); +static int process_file + PARAMS ((char *)); +static int process_relocs + PARAMS ((FILE *)); +static int process_version_sections + PARAMS ((FILE *)); +static char *get_ver_flags + PARAMS ((unsigned int)); +static int get_32bit_section_headers + PARAMS ((FILE *, unsigned int)); +static int get_64bit_section_headers + PARAMS ((FILE *, unsigned int)); +static int get_32bit_program_headers + PARAMS ((FILE *, Elf_Internal_Phdr *)); +static int get_64bit_program_headers + PARAMS ((FILE *, Elf_Internal_Phdr *)); +static int get_file_header + PARAMS ((FILE *)); +static Elf_Internal_Sym *get_32bit_elf_symbols + PARAMS ((FILE *, Elf_Internal_Shdr *)); +static Elf_Internal_Sym *get_64bit_elf_symbols + PARAMS ((FILE *, Elf_Internal_Shdr *)); +static const char *get_elf_section_flags + PARAMS ((bfd_vma)); +static int *get_dynamic_data + PARAMS ((FILE *, unsigned int)); +static int get_32bit_dynamic_segment + PARAMS ((FILE *)); +static int get_64bit_dynamic_segment + PARAMS ((FILE *)); #ifdef SUPPORT_DISASSEMBLY -static int disassemble_section PARAMS ((Elf32_Internal_Shdr *, FILE *)); +static int disassemble_section + PARAMS ((Elf_Internal_Shdr *, FILE *)); #endif -static int dump_section PARAMS ((Elf32_Internal_Shdr *, FILE *)); -static int display_debug_section PARAMS ((Elf32_Internal_Shdr *, FILE *)); -static int display_debug_info PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_not_supported PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int prescan_debug_info PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_lines PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_pubnames PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_abbrev PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_aranges PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_frames PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_macinfo PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_str PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static int display_debug_loc PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); -static unsigned char * process_abbrev_section PARAMS ((unsigned char *, unsigned char *)); -static void load_debug_str PARAMS ((FILE *)); -static void free_debug_str PARAMS ((void)); -static const char * fetch_indirect_string PARAMS ((unsigned long)); -static void load_debug_loc PARAMS ((FILE *)); -static void free_debug_loc PARAMS ((void)); -static unsigned long read_leb128 PARAMS ((unsigned char *, int *, int)); -static int process_extended_line_op PARAMS ((unsigned char *, int, int)); -static void reset_state_machine PARAMS ((int)); -static char * get_TAG_name PARAMS ((unsigned long)); -static char * get_AT_name PARAMS ((unsigned long)); -static char * get_FORM_name PARAMS ((unsigned long)); -static void free_abbrevs PARAMS ((void)); -static void add_abbrev PARAMS ((unsigned long, unsigned long, int)); -static void add_abbrev_attr PARAMS ((unsigned long, unsigned long)); -static unsigned char * read_and_display_attr PARAMS ((unsigned long, unsigned long, unsigned char *, unsigned long, unsigned long)); -static unsigned char * read_and_display_attr_value PARAMS ((unsigned long, unsigned long, unsigned char *, unsigned long, unsigned long)); -static unsigned char * display_block PARAMS ((unsigned char *, unsigned long)); -static void decode_location_expression PARAMS ((unsigned char *, unsigned int, unsigned long)); -static void request_dump PARAMS ((unsigned int, int)); -static const char * get_elf_class PARAMS ((unsigned int)); -static const char * get_data_encoding PARAMS ((unsigned int)); -static const char * get_osabi_name PARAMS ((unsigned int)); -static int guess_is_rela PARAMS ((unsigned long)); -static const char * get_note_type PARAMS ((unsigned int)); -static const char * get_netbsd_elfcore_note_type PARAMS ((unsigned int)); -static int process_note PARAMS ((Elf32_Internal_Note *)); -static int process_corefile_note_segment PARAMS ((FILE *, bfd_vma, bfd_vma)); -static int process_corefile_note_segments PARAMS ((FILE *)); -static int process_corefile_contents PARAMS ((FILE *)); -static int process_arch_specific PARAMS ((FILE *)); -static int process_gnu_liblist PARAMS ((FILE *)); +static int dump_section + PARAMS ((Elf_Internal_Shdr *, FILE *)); +static int display_debug_section + PARAMS ((Elf_Internal_Shdr *, FILE *)); +static int display_debug_info + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_not_supported + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int prescan_debug_info + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_lines + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_pubnames + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_abbrev + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_aranges + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_frames + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_macinfo + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_str + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static int display_debug_loc + PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); +static unsigned char *process_abbrev_section + PARAMS ((unsigned char *, unsigned char *)); +static void load_debug_str + PARAMS ((FILE *)); +static void free_debug_str + PARAMS ((void)); +static const char *fetch_indirect_string + PARAMS ((unsigned long)); +static void load_debug_loc + PARAMS ((FILE *)); +static void free_debug_loc + PARAMS ((void)); +static unsigned long read_leb128 + PARAMS ((unsigned char *, int *, int)); +static int process_extended_line_op + PARAMS ((unsigned char *, int, int)); +static void reset_state_machine + PARAMS ((int)); +static char *get_TAG_name + PARAMS ((unsigned long)); +static char *get_AT_name + PARAMS ((unsigned long)); +static char *get_FORM_name + PARAMS ((unsigned long)); +static void free_abbrevs + PARAMS ((void)); +static void add_abbrev + PARAMS ((unsigned long, unsigned long, int)); +static void add_abbrev_attr + PARAMS ((unsigned long, unsigned long)); +static unsigned char *read_and_display_attr + PARAMS ((unsigned long, unsigned long, unsigned char *, unsigned long, + unsigned long)); +static unsigned char *read_and_display_attr_value + PARAMS ((unsigned long, unsigned long, unsigned char *, unsigned long, + unsigned long)); +static unsigned char *display_block + PARAMS ((unsigned char *, unsigned long)); +static void decode_location_expression + PARAMS ((unsigned char *, unsigned int, unsigned long)); +static void request_dump + PARAMS ((unsigned int, int)); +static const char *get_elf_class + PARAMS ((unsigned int)); +static const char *get_data_encoding + PARAMS ((unsigned int)); +static const char *get_osabi_name + PARAMS ((unsigned int)); +static int guess_is_rela + PARAMS ((unsigned long)); +static const char *get_note_type + PARAMS ((unsigned int)); +static const char *get_netbsd_elfcore_note_type + PARAMS ((unsigned int)); +static int process_note + PARAMS ((Elf_Internal_Note *)); +static int process_corefile_note_segment + PARAMS ((FILE *, bfd_vma, bfd_vma)); +static int process_corefile_note_segments + PARAMS ((FILE *)); +static int process_corefile_contents + PARAMS ((FILE *)); +static int process_arch_specific + PARAMS ((FILE *)); +static int process_gnu_liblist + PARAMS ((FILE *)); typedef int Elf32_Word; -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif #define UNKNOWN -1 #define SECTION_NAME(X) ((X) == NULL ? "" : \ @@ -390,17 +497,17 @@ get_data (var, file, offset, size, reaso static bfd_vma byte_get_little_endian (field, size) - unsigned char * field; - int size; + unsigned char *field; + int size; { switch (size) { case 1: - return * field; + return *field; case 2: - return ((unsigned int) (field [0])) - | (((unsigned int) (field [1])) << 8); + return ((unsigned int) (field[0])) + | (((unsigned int) (field[1])) << 8); #ifndef BFD64 case 8: @@ -410,10 +517,10 @@ byte_get_little_endian (field, size) /* Fall through. */ #endif case 4: - return ((unsigned long) (field [0])) - | (((unsigned long) (field [1])) << 8) - | (((unsigned long) (field [2])) << 16) - | (((unsigned long) (field [3])) << 24); + return ((unsigned long) (field[0])) + | (((unsigned long) (field[1])) << 8) + | (((unsigned long) (field[2])) << 16) + | (((unsigned long) (field[3])) << 24); #ifdef BFD64 case 8: @@ -422,14 +529,14 @@ byte_get_little_endian (field, size) It means that we are loading an 8 byte value from a field in an external structure into an 8 byte value in a field in an internal strcuture. */ - return ((bfd_vma) (field [0])) - | (((bfd_vma) (field [1])) << 8) - | (((bfd_vma) (field [2])) << 16) - | (((bfd_vma) (field [3])) << 24) - | (((bfd_vma) (field [4])) << 32) - | (((bfd_vma) (field [5])) << 40) - | (((bfd_vma) (field [6])) << 48) - | (((bfd_vma) (field [7])) << 56); + return ((bfd_vma) (field[0])) + | (((bfd_vma) (field[1])) << 8) + | (((bfd_vma) (field[2])) << 16) + | (((bfd_vma) (field[3])) << 24) + | (((bfd_vma) (field[4])) << 32) + | (((bfd_vma) (field[5])) << 40) + | (((bfd_vma) (field[6])) << 48) + | (((bfd_vma) (field[7])) << 56); #endif default: error (_("Unhandled data length: %d\n"), size); @@ -535,7 +642,7 @@ print_vma (vma, mode) static void print_symbol (width, symbol) int width; - const char * symbol; + const char *symbol; { if (do_wide) printf ("%s", symbol); @@ -547,31 +654,31 @@ print_symbol (width, symbol) static bfd_vma byte_get_big_endian (field, size) - unsigned char * field; - int size; + unsigned char *field; + int size; { switch (size) { case 1: - return * field; + return *field; case 2: - return ((unsigned int) (field [1])) | (((int) (field [0])) << 8); + return ((unsigned int) (field[1])) | (((int) (field[0])) << 8); case 4: - return ((unsigned long) (field [3])) - | (((unsigned long) (field [2])) << 8) - | (((unsigned long) (field [1])) << 16) - | (((unsigned long) (field [0])) << 24); + return ((unsigned long) (field[3])) + | (((unsigned long) (field[2])) << 8) + | (((unsigned long) (field[1])) << 16) + | (((unsigned long) (field[0])) << 24); #ifndef BFD64 case 8: /* Although we are extracing data from an 8 byte wide field, we are returning only 4 bytes of data. */ - return ((unsigned long) (field [7])) - | (((unsigned long) (field [6])) << 8) - | (((unsigned long) (field [5])) << 16) - | (((unsigned long) (field [4])) << 24); + return ((unsigned long) (field[7])) + | (((unsigned long) (field[6])) << 8) + | (((unsigned long) (field[5])) << 16) + | (((unsigned long) (field[4])) << 24); #else case 8: case -8: @@ -579,14 +686,14 @@ byte_get_big_endian (field, size) It means that we are loading an 8 byte value from a field in an external structure into an 8 byte value in a field in an internal strcuture. */ - return ((bfd_vma) (field [7])) - | (((bfd_vma) (field [6])) << 8) - | (((bfd_vma) (field [5])) << 16) - | (((bfd_vma) (field [4])) << 24) - | (((bfd_vma) (field [3])) << 32) - | (((bfd_vma) (field [2])) << 40) - | (((bfd_vma) (field [1])) << 48) - | (((bfd_vma) (field [0])) << 56); + return ((bfd_vma) (field[7])) + | (((bfd_vma) (field[6])) << 8) + | (((bfd_vma) (field[5])) << 16) + | (((bfd_vma) (field[4])) << 24) + | (((bfd_vma) (field[3])) << 32) + | (((bfd_vma) (field[2])) << 40) + | (((bfd_vma) (field[1])) << 48) + | (((bfd_vma) (field[0])) << 56); #endif default: @@ -652,10 +759,13 @@ guess_is_rela (e_machine) case EM_S390: case EM_S390_OLD: case EM_MMIX: + case EM_MSP430: + case EM_MSP430_OLD: case EM_XSTORMY16: case EM_VAX: case EM_IP2K: case EM_IP2K_OLD: + case EM_IQ2000: return TRUE; case EM_MMA: @@ -695,7 +805,7 @@ slurp_rela_relocs (file, rel_offset, rel if (is_32bit_elf) { - Elf32_External_Rela * erelas; + Elf32_External_Rela *erelas; erelas = (Elf32_External_Rela *) get_data (NULL, file, rel_offset, rel_size, _("relocs")); @@ -724,7 +834,7 @@ slurp_rela_relocs (file, rel_offset, rel } else { - Elf64_External_Rela * erelas; + Elf64_External_Rela *erelas; erelas = (Elf64_External_Rela *) get_data (NULL, file, rel_offset, rel_size, _("relocs")); @@ -761,16 +871,16 @@ slurp_rel_relocs (file, rel_offset, rel_ FILE *file; unsigned long rel_offset; unsigned long rel_size; - Elf_Internal_Rel **relsp; + Elf_Internal_Rela **relsp; unsigned long *nrelsp; { - Elf_Internal_Rel *rels; + Elf_Internal_Rela *rels; unsigned long nrels; unsigned int i; if (is_32bit_elf) { - Elf32_External_Rel * erels; + Elf32_External_Rel *erels; erels = (Elf32_External_Rel *) get_data (NULL, file, rel_offset, rel_size, _("relocs")); @@ -779,7 +889,7 @@ slurp_rel_relocs (file, rel_offset, rel_ nrels = rel_size / sizeof (Elf32_External_Rel); - rels = (Elf_Internal_Rel *) malloc (nrels * sizeof (Elf_Internal_Rel)); + rels = (Elf_Internal_Rela *) malloc (nrels * sizeof (Elf_Internal_Rela)); if (rels == NULL) { @@ -791,13 +901,14 @@ slurp_rel_relocs (file, rel_offset, rel_ { rels[i].r_offset = BYTE_GET (erels[i].r_offset); rels[i].r_info = BYTE_GET (erels[i].r_info); + rels[i].r_addend = 0; } free (erels); } else { - Elf64_External_Rel * erels; + Elf64_External_Rel *erels; erels = (Elf64_External_Rel *) get_data (NULL, file, rel_offset, rel_size, _("relocs")); @@ -806,7 +917,7 @@ slurp_rel_relocs (file, rel_offset, rel_ nrels = rel_size / sizeof (Elf64_External_Rel); - rels = (Elf_Internal_Rel *) malloc (nrels * sizeof (Elf_Internal_Rel)); + rels = (Elf_Internal_Rela *) malloc (nrels * sizeof (Elf_Internal_Rela)); if (rels == NULL) { @@ -818,6 +929,7 @@ slurp_rel_relocs (file, rel_offset, rel_ { rels[i].r_offset = BYTE_GET8 (erels[i].r_offset); rels[i].r_info = BYTE_GET8 (erels[i].r_info); + rels[i].r_addend = 0; } free (erels); @@ -830,17 +942,16 @@ slurp_rel_relocs (file, rel_offset, rel_ /* Display the contents of the relocation data found at the specified offset. */ static int dump_relocations (file, rel_offset, rel_size, symtab, nsyms, strtab, is_rela) - FILE * file; - unsigned long rel_offset; - unsigned long rel_size; - Elf_Internal_Sym * symtab; - unsigned long nsyms; - char * strtab; - int is_rela; -{ - unsigned int i; - Elf_Internal_Rel * rels; - Elf_Internal_Rela * relas; + FILE *file; + unsigned long rel_offset; + unsigned long rel_size; + Elf_Internal_Sym *symtab; + unsigned long nsyms; + char *strtab; + int is_rela; +{ + unsigned int i; + Elf_Internal_Rela *rels; if (is_rela == UNKNOWN) @@ -848,7 +959,7 @@ dump_relocations (file, rel_offset, rel_ if (is_rela) { - if (!slurp_rela_relocs (file, rel_offset, rel_size, &relas, &rel_size)) + if (!slurp_rela_relocs (file, rel_offset, rel_size, &rels, &rel_size)) return 0; } else @@ -894,26 +1005,18 @@ dump_relocations (file, rel_offset, rel_ for (i = 0; i < rel_size; i++) { - const char * rtype; - const char * rtype2 = NULL; - const char * rtype3 = NULL; - bfd_vma offset; - bfd_vma info; - bfd_vma symtab_index; - bfd_vma type; - bfd_vma type2 = (bfd_vma) NULL; - bfd_vma type3 = (bfd_vma) NULL; + const char *rtype; + const char *rtype2 = NULL; + const char *rtype3 = NULL; + bfd_vma offset; + bfd_vma info; + bfd_vma symtab_index; + bfd_vma type; + bfd_vma type2 = (bfd_vma) NULL; + bfd_vma type3 = (bfd_vma) NULL; - if (is_rela) - { - offset = relas [i].r_offset; - info = relas [i].r_info; - } - else - { - offset = rels [i].r_offset; - info = rels [i].r_info; - } + offset = rels[i].r_offset; + info = rels[i].r_info; if (is_32bit_elf) { @@ -1057,11 +1160,19 @@ dump_relocations (file, rel_offset, rel_ rtype = elf_mmix_reloc_type (type); break; + case EM_MSP430: + case EM_MSP430_OLD: + rtype = elf_msp430_reloc_type (type); + break; + case EM_PPC: - case EM_PPC64: rtype = elf_ppc_reloc_type (type); break; + case EM_PPC64: + rtype = elf_ppc64_reloc_type (type); + break; + case EM_MIPS: case EM_MIPS_RS3_LE: rtype = elf_mips_reloc_type (type); @@ -1140,6 +1251,10 @@ dump_relocations (file, rel_offset, rel_ case EM_IP2K_OLD: rtype = elf_ip2k_reloc_type (type); break; + + case EM_IQ2000: + rtype = elf_iq2000_reloc_type (type); + break; } if (rtype == NULL) @@ -1157,7 +1272,7 @@ dump_relocations (file, rel_offset, rel_ printf (" bad symbol index: %08lx", (unsigned long) symtab_index); else { - Elf_Internal_Sym * psym; + Elf_Internal_Sym *psym; psym = symtab + symtab_index; @@ -1201,13 +1316,13 @@ dump_relocations (file, rel_offset, rel_ print_symbol (22, strtab + psym->st_name); if (is_rela) - printf (" + %lx", (unsigned long) relas [i].r_addend); + printf (" + %lx", (unsigned long) rels[i].r_addend); } } else if (is_rela) { printf ("%*c", is_32bit_elf ? (do_wide ? 34 : 28) : (do_wide ? 26 : 20), ' '); - print_vma (relas[i].r_addend, LONG_HEX); + print_vma (rels[i].r_addend, LONG_HEX); } if (elf_header.e_machine == EM_SPARCV9 @@ -1244,10 +1359,7 @@ dump_relocations (file, rel_offset, rel_ } } - if (is_rela) - free (relas); - else - free (rels); + free (rels); return 1; } @@ -1360,7 +1472,7 @@ static const char * get_dynamic_type (type) unsigned long type; { - static char buff [32]; + static char buff[32]; switch (type) { @@ -1439,7 +1551,7 @@ get_dynamic_type (type) default: if ((type >= DT_LOPROC) && (type <= DT_HIPROC)) { - const char * result; + const char *result; switch (elf_header.e_machine) { @@ -1465,7 +1577,7 @@ get_dynamic_type (type) } else if ((type >= DT_LOOS) && (type <= DT_HIOS)) { - const char * result; + const char *result; switch (elf_header.e_machine) { @@ -1493,7 +1605,7 @@ static char * get_file_type (e_type) unsigned e_type; { - static char buff [32]; + static char buff[32]; switch (e_type) { @@ -1518,7 +1630,7 @@ static char * get_machine_name (e_machine) unsigned e_machine; { - static char buff [64]; /* XXX */ + static char buff[64]; /* XXX */ switch (e_machine) { @@ -1543,7 +1655,7 @@ get_machine_name (e_machine) case EM_V800: return "NEC V800"; case EM_FR20: return "Fujitsu FR20"; case EM_RH32: return "TRW RH32"; - case EM_MCORE: return "MCORE"; + case EM_MCORE: return "MCORE"; case EM_ARM: return "ARM"; case EM_OLD_ALPHA: return "Digital Alpha (old)"; case EM_SH: return "Hitachi SH"; @@ -1562,7 +1674,7 @@ get_machine_name (e_machine) case EM_CYGNUS_D10V: case EM_D10V: return "d10v"; case EM_CYGNUS_D30V: - case EM_D30V: return "d30v"; + case EM_D30V: return "d30v"; case EM_CYGNUS_M32R: case EM_M32R: return "Mitsubishi M32r"; case EM_CYGNUS_V850: @@ -1573,9 +1685,9 @@ get_machine_name (e_machine) case EM_MN10200: return "mn10200"; case EM_CYGNUS_FR30: case EM_FR30: return "Fujitsu FR30"; - case EM_CYGNUS_FRV: return "Fujitsu FR-V"; + case EM_CYGNUS_FRV: return "Fujitsu FR-V"; case EM_PJ_OLD: - case EM_PJ: return "picoJava"; + case EM_PJ: return "picoJava"; case EM_MMA: return "Fujitsu Multimedia Accelerator"; case EM_PCP: return "Siemens PCP"; case EM_NCPU: return "Sony nCPU embedded RISC processor"; @@ -1595,23 +1707,24 @@ get_machine_name (e_machine) case EM_ST19: return "STMicroelectronics ST19 8-bit microcontroller"; case EM_VAX: return "Digital VAX"; case EM_AVR_OLD: - case EM_AVR: return "Atmel AVR 8-bit microcontroller"; + case EM_AVR: return "Atmel AVR 8-bit microcontroller"; case EM_CRIS: return "Axis Communications 32-bit embedded processor"; case EM_JAVELIN: return "Infineon Technologies 32-bit embedded cpu"; case EM_FIREPATH: return "Element 14 64-bit DSP processor"; case EM_ZSP: return "LSI Logic's 16-bit DSP processor"; - case EM_MMIX: return "Donald Knuth's educational 64-bit processor"; + case EM_MMIX: return "Donald Knuth's educational 64-bit processor"; case EM_HUANY: return "Harvard Universitys's machine-independent object format"; - case EM_PRISM: return "SiTera Prism"; + case EM_PRISM: return "Vitesse Prism"; case EM_X86_64: return "Advanced Micro Devices X86-64"; case EM_S390_OLD: - case EM_S390: return "IBM S/390"; + case EM_S390: return "IBM S/390"; case EM_XSTORMY16: return "Sanyo Xstormy16 CPU core"; case EM_OPENRISC: case EM_OR32: return "OpenRISC"; case EM_DLX: return "OpenDLX"; case EM_IP2K_OLD: - case EM_IP2K: return "Ubicom IP2xxx 8-bit microcontrollers"; + case EM_IP2K: return "Ubicom IP2xxx 8-bit microcontrollers"; + case EM_IQ2000: return "Vitesse IQ2000"; default: sprintf (buff, _(": %x"), e_machine); return buff; @@ -1765,7 +1878,7 @@ get_machine_flags (e_flags, e_machine) unsigned e_flags; unsigned e_machine; { - static char buf [1024]; + static char buf[1024]; buf[0] = '\0'; @@ -1892,6 +2005,7 @@ get_machine_flags (e_flags, e_machine) case E_MIPS_ARCH_4: strcat (buf, ", mips4"); break; case E_MIPS_ARCH_5: strcat (buf, ", mips5"); break; case E_MIPS_ARCH_32: strcat (buf, ", mips32"); break; + case E_MIPS_ARCH_32R2: strcat (buf, ", mips32r2"); break; case E_MIPS_ARCH_64: strcat (buf, ", mips64"); break; default: strcat (buf, ", unknown ISA"); break; } @@ -2060,17 +2174,17 @@ static const char * get_segment_type (p_type) unsigned long p_type; { - static char buff [32]; + static char buff[32]; switch (p_type) { - case PT_NULL: return "NULL"; - case PT_LOAD: return "LOAD"; + case PT_NULL: return "NULL"; + case PT_LOAD: return "LOAD"; case PT_DYNAMIC: return "DYNAMIC"; - case PT_INTERP: return "INTERP"; - case PT_NOTE: return "NOTE"; - case PT_SHLIB: return "SHLIB"; - case PT_PHDR: return "PHDR"; + case PT_INTERP: return "INTERP"; + case PT_NOTE: return "NOTE"; + case PT_SHLIB: return "SHLIB"; + case PT_PHDR: return "PHDR"; case PT_TLS: return "TLS"; case PT_GNU_EH_FRAME: @@ -2079,7 +2193,7 @@ get_segment_type (p_type) default: if ((p_type >= PT_LOPROC) && (p_type <= PT_HIPROC)) { - const char * result; + const char *result; switch (elf_header.e_machine) { @@ -2105,7 +2219,7 @@ get_segment_type (p_type) } else if ((p_type >= PT_LOOS) && (p_type <= PT_HIOS)) { - const char * result; + const char *result; switch (elf_header.e_machine) { @@ -2138,44 +2252,44 @@ get_mips_section_type_name (sh_type) { switch (sh_type) { - case SHT_MIPS_LIBLIST: return "MIPS_LIBLIST"; - case SHT_MIPS_MSYM: return "MIPS_MSYM"; - case SHT_MIPS_CONFLICT: return "MIPS_CONFLICT"; - case SHT_MIPS_GPTAB: return "MIPS_GPTAB"; - case SHT_MIPS_UCODE: return "MIPS_UCODE"; - case SHT_MIPS_DEBUG: return "MIPS_DEBUG"; - case SHT_MIPS_REGINFO: return "MIPS_REGINFO"; - case SHT_MIPS_PACKAGE: return "MIPS_PACKAGE"; - case SHT_MIPS_PACKSYM: return "MIPS_PACKSYM"; - case SHT_MIPS_RELD: return "MIPS_RELD"; - case SHT_MIPS_IFACE: return "MIPS_IFACE"; - case SHT_MIPS_CONTENT: return "MIPS_CONTENT"; - case SHT_MIPS_OPTIONS: return "MIPS_OPTIONS"; - case SHT_MIPS_SHDR: return "MIPS_SHDR"; - case SHT_MIPS_FDESC: return "MIPS_FDESC"; - case SHT_MIPS_EXTSYM: return "MIPS_EXTSYM"; - case SHT_MIPS_DENSE: return "MIPS_DENSE"; - case SHT_MIPS_PDESC: return "MIPS_PDESC"; - case SHT_MIPS_LOCSYM: return "MIPS_LOCSYM"; - case SHT_MIPS_AUXSYM: return "MIPS_AUXSYM"; - case SHT_MIPS_OPTSYM: return "MIPS_OPTSYM"; - case SHT_MIPS_LOCSTR: return "MIPS_LOCSTR"; - case SHT_MIPS_LINE: return "MIPS_LINE"; - case SHT_MIPS_RFDESC: return "MIPS_RFDESC"; - case SHT_MIPS_DELTASYM: return "MIPS_DELTASYM"; - case SHT_MIPS_DELTAINST: return "MIPS_DELTAINST"; - case SHT_MIPS_DELTACLASS: return "MIPS_DELTACLASS"; - case SHT_MIPS_DWARF: return "MIPS_DWARF"; - case SHT_MIPS_DELTADECL: return "MIPS_DELTADECL"; - case SHT_MIPS_SYMBOL_LIB: return "MIPS_SYMBOL_LIB"; - case SHT_MIPS_EVENTS: return "MIPS_EVENTS"; - case SHT_MIPS_TRANSLATE: return "MIPS_TRANSLATE"; - case SHT_MIPS_PIXIE: return "MIPS_PIXIE"; - case SHT_MIPS_XLATE: return "MIPS_XLATE"; - case SHT_MIPS_XLATE_DEBUG: return "MIPS_XLATE_DEBUG"; - case SHT_MIPS_WHIRL: return "MIPS_WHIRL"; - case SHT_MIPS_EH_REGION: return "MIPS_EH_REGION"; - case SHT_MIPS_XLATE_OLD: return "MIPS_XLATE_OLD"; + case SHT_MIPS_LIBLIST: return "MIPS_LIBLIST"; + case SHT_MIPS_MSYM: return "MIPS_MSYM"; + case SHT_MIPS_CONFLICT: return "MIPS_CONFLICT"; + case SHT_MIPS_GPTAB: return "MIPS_GPTAB"; + case SHT_MIPS_UCODE: return "MIPS_UCODE"; + case SHT_MIPS_DEBUG: return "MIPS_DEBUG"; + case SHT_MIPS_REGINFO: return "MIPS_REGINFO"; + case SHT_MIPS_PACKAGE: return "MIPS_PACKAGE"; + case SHT_MIPS_PACKSYM: return "MIPS_PACKSYM"; + case SHT_MIPS_RELD: return "MIPS_RELD"; + case SHT_MIPS_IFACE: return "MIPS_IFACE"; + case SHT_MIPS_CONTENT: return "MIPS_CONTENT"; + case SHT_MIPS_OPTIONS: return "MIPS_OPTIONS"; + case SHT_MIPS_SHDR: return "MIPS_SHDR"; + case SHT_MIPS_FDESC: return "MIPS_FDESC"; + case SHT_MIPS_EXTSYM: return "MIPS_EXTSYM"; + case SHT_MIPS_DENSE: return "MIPS_DENSE"; + case SHT_MIPS_PDESC: return "MIPS_PDESC"; + case SHT_MIPS_LOCSYM: return "MIPS_LOCSYM"; + case SHT_MIPS_AUXSYM: return "MIPS_AUXSYM"; + case SHT_MIPS_OPTSYM: return "MIPS_OPTSYM"; + case SHT_MIPS_LOCSTR: return "MIPS_LOCSTR"; + case SHT_MIPS_LINE: return "MIPS_LINE"; + case SHT_MIPS_RFDESC: return "MIPS_RFDESC"; + case SHT_MIPS_DELTASYM: return "MIPS_DELTASYM"; + case SHT_MIPS_DELTAINST: return "MIPS_DELTAINST"; + case SHT_MIPS_DELTACLASS: return "MIPS_DELTACLASS"; + case SHT_MIPS_DWARF: return "MIPS_DWARF"; + case SHT_MIPS_DELTADECL: return "MIPS_DELTADECL"; + case SHT_MIPS_SYMBOL_LIB: return "MIPS_SYMBOL_LIB"; + case SHT_MIPS_EVENTS: return "MIPS_EVENTS"; + case SHT_MIPS_TRANSLATE: return "MIPS_TRANSLATE"; + case SHT_MIPS_PIXIE: return "MIPS_PIXIE"; + case SHT_MIPS_XLATE: return "MIPS_XLATE"; + case SHT_MIPS_XLATE_DEBUG: return "MIPS_XLATE_DEBUG"; + case SHT_MIPS_WHIRL: return "MIPS_WHIRL"; + case SHT_MIPS_EH_REGION: return "MIPS_EH_REGION"; + case SHT_MIPS_XLATE_OLD: return "MIPS_XLATE_OLD"; case SHT_MIPS_PDR_EXCEPTION: return "MIPS_PDR_EXCEPTION"; default: break; @@ -2216,7 +2330,7 @@ static const char * get_section_type_name (sh_type) unsigned int sh_type; { - static char buff [32]; + static char buff[32]; switch (sh_type) { @@ -2240,8 +2354,8 @@ get_section_type_name (sh_type) case SHT_GNU_verdef: return "VERDEF"; case SHT_GNU_verneed: return "VERNEED"; case SHT_GNU_versym: return "VERSYM"; - case 0x6ffffff0: return "VERSYM"; - case 0x6ffffffc: return "VERDEF"; + case 0x6ffffff0: return "VERSYM"; + case 0x6ffffffc: return "VERDEF"; case 0x7ffffffd: return "AUXILIARY"; case 0x7fffffff: return "FILTER"; case SHT_GNU_LIBLIST: return "GNU_LIBLIST"; @@ -2249,7 +2363,7 @@ get_section_type_name (sh_type) default: if ((sh_type >= SHT_LOPROC) && (sh_type <= SHT_HIPROC)) { - const char * result; + const char *result; switch (elf_header.e_machine) { @@ -2286,35 +2400,35 @@ get_section_type_name (sh_type) #define OPTION_DEBUG_DUMP 512 -struct option options [] = +struct option options[] = { - {"all", no_argument, 0, 'a'}, + {"all", no_argument, 0, 'a'}, {"file-header", no_argument, 0, 'h'}, {"program-headers", no_argument, 0, 'l'}, - {"headers", no_argument, 0, 'e'}, - {"histogram", no_argument, 0, 'I'}, - {"segments", no_argument, 0, 'l'}, - {"sections", no_argument, 0, 'S'}, + {"headers", no_argument, 0, 'e'}, + {"histogram", no_argument, 0, 'I'}, + {"segments", no_argument, 0, 'l'}, + {"sections", no_argument, 0, 'S'}, {"section-headers", no_argument, 0, 'S'}, - {"symbols", no_argument, 0, 's'}, - {"syms", no_argument, 0, 's'}, - {"relocs", no_argument, 0, 'r'}, - {"notes", no_argument, 0, 'n'}, - {"dynamic", no_argument, 0, 'd'}, + {"symbols", no_argument, 0, 's'}, + {"syms", no_argument, 0, 's'}, + {"relocs", no_argument, 0, 'r'}, + {"notes", no_argument, 0, 'n'}, + {"dynamic", no_argument, 0, 'd'}, {"arch-specific", no_argument, 0, 'A'}, {"version-info", no_argument, 0, 'V'}, {"use-dynamic", no_argument, 0, 'D'}, - {"hex-dump", required_argument, 0, 'x'}, + {"hex-dump", required_argument, 0, 'x'}, {"debug-dump", optional_argument, 0, OPTION_DEBUG_DUMP}, {"unwind", no_argument, 0, 'u'}, #ifdef SUPPORT_DISASSEMBLY {"instruction-dump", required_argument, 0, 'i'}, #endif - {"version", no_argument, 0, 'v'}, - {"wide", no_argument, 0, 'W'}, - {"help", no_argument, 0, 'H'}, - {0, no_argument, 0, 0} + {"version", no_argument, 0, 'v'}, + {"wide", no_argument, 0, 'W'}, + {"help", no_argument, 0, 'H'}, + {0, no_argument, 0, 0} }; static void @@ -2361,11 +2475,11 @@ usage () static void request_dump (section, type) unsigned int section; - int type; + int type; { if (section >= num_dump_sects) { - char * new_dump_sects; + char *new_dump_sects; new_dump_sects = (char *) calloc (section + 1, 1); @@ -2384,7 +2498,7 @@ request_dump (section, type) } if (dump_sects) - dump_sects [section] |= type; + dump_sects[section] |= type; return; } @@ -2392,7 +2506,7 @@ request_dump (section, type) static void parse_args (argc, argv) int argc; - char ** argv; + char **argv; { int c; @@ -2402,8 +2516,8 @@ parse_args (argc, argv) while ((c = getopt_long (argc, argv, "ersuahnldSDAIw::x:i:vVW", options, NULL)) != EOF) { - char * cp; - int section; + char *cp; + int section; switch (c) { @@ -2415,67 +2529,67 @@ parse_args (argc, argv) break; case 'a': - do_syms ++; - do_reloc ++; - do_unwind ++; - do_dynamic ++; - do_header ++; - do_sections ++; - do_segments ++; - do_version ++; - do_histogram ++; - do_arch ++; - do_notes ++; + do_syms++; + do_reloc++; + do_unwind++; + do_dynamic++; + do_header++; + do_sections++; + do_segments++; + do_version++; + do_histogram++; + do_arch++; + do_notes++; break; case 'e': - do_header ++; - do_sections ++; - do_segments ++; + do_header++; + do_sections++; + do_segments++; break; case 'A': - do_arch ++; + do_arch++; break; case 'D': - do_using_dynamic ++; + do_using_dynamic++; break; case 'r': - do_reloc ++; + do_reloc++; break; case 'u': - do_unwind ++; + do_unwind++; break; case 'h': - do_header ++; + do_header++; break; case 'l': - do_segments ++; + do_segments++; break; case 's': - do_syms ++; + do_syms++; break; case 'S': - do_sections ++; + do_sections++; break; case 'd': - do_dynamic ++; + do_dynamic++; break; case 'I': - do_histogram ++; + do_histogram++; break; case 'n': - do_notes ++; + do_notes++; break; case 'x': - do_dump ++; + do_dump++; section = strtoul (optarg, & cp, 0); - if (! * cp && section >= 0) + if (! *cp && section >= 0) { request_dump (section, HEX_DUMP); break; } goto oops; case 'w': - do_dump ++; + do_dump++; if (optarg == 0) do_debugging = 1; else @@ -2540,7 +2654,7 @@ parse_args (argc, argv) } break; case OPTION_DEBUG_DUMP: - do_dump ++; + do_dump++; if (optarg == 0) do_debugging = 1; else @@ -2623,9 +2737,9 @@ parse_args (argc, argv) break; #ifdef SUPPORT_DISASSEMBLY case 'i': - do_dump ++; + do_dump++; section = strtoul (optarg, & cp, 0); - if (! * cp && section >= 0) + if (! *cp && section >= 0) { request_dump (section, DISASS_DUMP); break; @@ -2636,10 +2750,10 @@ parse_args (argc, argv) print_version (program_name); break; case 'V': - do_version ++; + do_version++; break; case 'W': - do_wide ++; + do_wide++; break; default: oops: @@ -2666,7 +2780,7 @@ static const char * get_elf_class (elf_class) unsigned int elf_class; { - static char buff [32]; + static char buff[32]; switch (elf_class) { @@ -2683,7 +2797,7 @@ static const char * get_data_encoding (encoding) unsigned int encoding; { - static char buff [32]; + static char buff[32]; switch (encoding) { @@ -2700,24 +2814,27 @@ static const char * get_osabi_name (osabi) unsigned int osabi; { - static char buff [32]; + static char buff[32]; switch (osabi) { - case ELFOSABI_NONE: return "UNIX - System V"; - case ELFOSABI_HPUX: return "UNIX - HP-UX"; - case ELFOSABI_NETBSD: return "UNIX - NetBSD"; - case ELFOSABI_LINUX: return "UNIX - Linux"; - case ELFOSABI_HURD: return "GNU/Hurd"; - case ELFOSABI_SOLARIS: return "UNIX - Solaris"; - case ELFOSABI_AIX: return "UNIX - AIX"; - case ELFOSABI_IRIX: return "UNIX - IRIX"; - case ELFOSABI_FREEBSD: return "UNIX - FreeBSD"; - case ELFOSABI_TRU64: return "UNIX - TRU64"; - case ELFOSABI_MODESTO: return "Novell - Modesto"; - case ELFOSABI_OPENBSD: return "UNIX - OpenBSD"; - case ELFOSABI_STANDALONE: return _("Standalone App"); - case ELFOSABI_ARM: return "ARM"; + case ELFOSABI_NONE: return "UNIX - System V"; + case ELFOSABI_HPUX: return "UNIX - HP-UX"; + case ELFOSABI_NETBSD: return "UNIX - NetBSD"; + case ELFOSABI_LINUX: return "UNIX - Linux"; + case ELFOSABI_HURD: return "GNU/Hurd"; + case ELFOSABI_SOLARIS: return "UNIX - Solaris"; + case ELFOSABI_AIX: return "UNIX - AIX"; + case ELFOSABI_IRIX: return "UNIX - IRIX"; + case ELFOSABI_FREEBSD: return "UNIX - FreeBSD"; + case ELFOSABI_TRU64: return "UNIX - TRU64"; + case ELFOSABI_MODESTO: return "Novell - Modesto"; + case ELFOSABI_OPENBSD: return "UNIX - OpenBSD"; + case ELFOSABI_OPENVMS: return "VMS - OpenVMS"; + case ELFOSABI_NSK: return "HP - Non-Stop Kernel"; + case ELFOSABI_AROS: return "Amiga Research OS"; + case ELFOSABI_STANDALONE: return _("Standalone App"); + case ELFOSABI_ARM: return "ARM"; default: sprintf (buff, _(""), osabi); return buff; @@ -2728,10 +2845,10 @@ get_osabi_name (osabi) static int process_file_header () { - if ( elf_header.e_ident [EI_MAG0] != ELFMAG0 - || elf_header.e_ident [EI_MAG1] != ELFMAG1 - || elf_header.e_ident [EI_MAG2] != ELFMAG2 - || elf_header.e_ident [EI_MAG3] != ELFMAG3) + if ( elf_header.e_ident[EI_MAG0] != ELFMAG0 + || elf_header.e_ident[EI_MAG1] != ELFMAG1 + || elf_header.e_ident[EI_MAG2] != ELFMAG2 + || elf_header.e_ident[EI_MAG3] != ELFMAG3) { error (_("Not an ELF file - it has the wrong magic bytes at the start\n")); @@ -2744,24 +2861,24 @@ process_file_header () printf (_("ELF Header:\n")); printf (_(" Magic: ")); - for (i = 0; i < EI_NIDENT; i ++) - printf ("%2.2x ", elf_header.e_ident [i]); + for (i = 0; i < EI_NIDENT; i++) + printf ("%2.2x ", elf_header.e_ident[i]); printf ("\n"); printf (_(" Class: %s\n"), - get_elf_class (elf_header.e_ident [EI_CLASS])); + get_elf_class (elf_header.e_ident[EI_CLASS])); printf (_(" Data: %s\n"), - get_data_encoding (elf_header.e_ident [EI_DATA])); + get_data_encoding (elf_header.e_ident[EI_DATA])); printf (_(" Version: %d %s\n"), - elf_header.e_ident [EI_VERSION], - (elf_header.e_ident [EI_VERSION] == EV_CURRENT + elf_header.e_ident[EI_VERSION], + (elf_header.e_ident[EI_VERSION] == EV_CURRENT ? "(current)" - : (elf_header.e_ident [EI_VERSION] != EV_NONE + : (elf_header.e_ident[EI_VERSION] != EV_NONE ? "" : ""))); printf (_(" OS/ABI: %s\n"), - get_osabi_name (elf_header.e_ident [EI_OSABI])); + get_osabi_name (elf_header.e_ident[EI_OSABI])); printf (_(" ABI Version: %d\n"), - elf_header.e_ident [EI_ABIVERSION]); + elf_header.e_ident[EI_ABIVERSION]); printf (_(" Type: %s\n"), get_file_type (elf_header.e_type)); printf (_(" Machine: %s\n"), @@ -2816,13 +2933,13 @@ process_file_header () static int get_32bit_program_headers (file, program_headers) - FILE * file; - Elf_Internal_Phdr * program_headers; + FILE *file; + Elf_Internal_Phdr *program_headers; { - Elf32_External_Phdr * phdrs; - Elf32_External_Phdr * external; - Elf32_Internal_Phdr * internal; - unsigned int i; + Elf32_External_Phdr *phdrs; + Elf32_External_Phdr *external; + Elf_Internal_Phdr *internal; + unsigned int i; phdrs = ((Elf32_External_Phdr *) get_data (NULL, file, elf_header.e_phoff, @@ -2833,7 +2950,7 @@ get_32bit_program_headers (file, program for (i = 0, internal = program_headers, external = phdrs; i < elf_header.e_phnum; - i ++, internal ++, external ++) + i++, internal++, external++) { internal->p_type = BYTE_GET (external->p_type); internal->p_offset = BYTE_GET (external->p_offset); @@ -2852,13 +2969,13 @@ get_32bit_program_headers (file, program static int get_64bit_program_headers (file, program_headers) - FILE * file; - Elf_Internal_Phdr * program_headers; + FILE *file; + Elf_Internal_Phdr *program_headers; { - Elf64_External_Phdr * phdrs; - Elf64_External_Phdr * external; - Elf64_Internal_Phdr * internal; - unsigned int i; + Elf64_External_Phdr *phdrs; + Elf64_External_Phdr *external; + Elf_Internal_Phdr *internal; + unsigned int i; phdrs = ((Elf64_External_Phdr *) get_data (NULL, file, elf_header.e_phoff, @@ -2869,7 +2986,7 @@ get_64bit_program_headers (file, program for (i = 0, internal = program_headers, external = phdrs; i < elf_header.e_phnum; - i ++, internal ++, external ++) + i++, internal++, external++) { internal->p_type = BYTE_GET (external->p_type); internal->p_flags = BYTE_GET (external->p_flags); @@ -2890,11 +3007,11 @@ get_64bit_program_headers (file, program static int process_program_headers (file) - FILE * file; + FILE *file; { - Elf_Internal_Phdr * program_headers; - Elf_Internal_Phdr * segment; - unsigned int i; + Elf_Internal_Phdr *program_headers; + Elf_Internal_Phdr *segment; + unsigned int i; if (elf_header.e_phnum == 0) { @@ -2962,7 +3079,7 @@ process_program_headers (file) for (i = 0, segment = program_headers; i < elf_header.e_phnum; - i ++, segment ++) + i++, segment++) { if (do_segments) { @@ -3046,8 +3163,14 @@ process_program_headers (file) { case PT_LOAD: if (loadaddr == -1) - loadaddr = (segment->p_vaddr & 0xfffff000) - - (segment->p_offset & 0xfffff000); + { + unsigned long align_mask = -segment->p_align; + + if (align_mask == 0) + --align_mask; + loadaddr = ((segment->p_vaddr & align_mask) + - (segment->p_offset & align_mask)); + } break; case PT_DYNAMIC: @@ -3093,14 +3216,14 @@ process_program_headers (file) for (i = 0; i < elf_header.e_phnum; i++) { unsigned int j; - Elf_Internal_Shdr * section; + Elf_Internal_Shdr *section; segment = program_headers + i; section = section_headers; printf (" %2.2d ", i); - for (j = 1; j < elf_header.e_shnum; j++, section ++) + for (j = 1; j < elf_header.e_shnum; j++, section++) { if (section->sh_size > 0 /* Compare allocated sections by VMA, unallocated @@ -3127,12 +3250,12 @@ process_program_headers (file) static int get_32bit_section_headers (file, num) - FILE * file; + FILE *file; unsigned int num; { - Elf32_External_Shdr * shdrs; - Elf32_Internal_Shdr * internal; - unsigned int i; + Elf32_External_Shdr *shdrs; + Elf_Internal_Shdr *internal; + unsigned int i; shdrs = ((Elf32_External_Shdr *) get_data (NULL, file, elf_header.e_shoff, @@ -3152,7 +3275,7 @@ get_32bit_section_headers (file, num) for (i = 0, internal = section_headers; i < num; - i ++, internal ++) + i++, internal++) { internal->sh_name = BYTE_GET (shdrs[i].sh_name); internal->sh_type = BYTE_GET (shdrs[i].sh_type); @@ -3173,12 +3296,12 @@ get_32bit_section_headers (file, num) static int get_64bit_section_headers (file, num) - FILE * file; + FILE *file; unsigned int num; { - Elf64_External_Shdr * shdrs; - Elf64_Internal_Shdr * internal; - unsigned int i; + Elf64_External_Shdr *shdrs; + Elf_Internal_Shdr *internal; + unsigned int i; shdrs = ((Elf64_External_Shdr *) get_data (NULL, file, elf_header.e_shoff, @@ -3198,7 +3321,7 @@ get_64bit_section_headers (file, num) for (i = 0, internal = section_headers; i < num; - i ++, internal ++) + i++, internal++) { internal->sh_name = BYTE_GET (shdrs[i].sh_name); internal->sh_type = BYTE_GET (shdrs[i].sh_type); @@ -3219,15 +3342,15 @@ get_64bit_section_headers (file, num) static Elf_Internal_Sym * get_32bit_elf_symbols (file, section) - FILE * file; + FILE *file; Elf_Internal_Shdr *section; { unsigned long number; - Elf32_External_Sym * esyms; + Elf32_External_Sym *esyms; Elf_External_Sym_Shndx *shndx; - Elf_Internal_Sym * isyms; - Elf_Internal_Sym * psym; - unsigned int j; + Elf_Internal_Sym *isyms; + Elf_Internal_Sym *psym; + unsigned int j; esyms = ((Elf32_External_Sym *) get_data (NULL, file, section->sh_offset, @@ -3264,7 +3387,7 @@ get_32bit_elf_symbols (file, section) for (j = 0, psym = isyms; j < number; - j ++, psym ++) + j++, psym++) { psym->st_name = BYTE_GET (esyms[j].st_name); psym->st_value = BYTE_GET (esyms[j].st_value); @@ -3286,15 +3409,15 @@ get_32bit_elf_symbols (file, section) static Elf_Internal_Sym * get_64bit_elf_symbols (file, section) - FILE * file; + FILE *file; Elf_Internal_Shdr *section; { unsigned long number; - Elf64_External_Sym * esyms; + Elf64_External_Sym *esyms; Elf_External_Sym_Shndx *shndx; - Elf_Internal_Sym * isyms; - Elf_Internal_Sym * psym; - unsigned int j; + Elf_Internal_Sym *isyms; + Elf_Internal_Sym *psym; + unsigned int j; esyms = ((Elf64_External_Sym *) get_data (NULL, file, section->sh_offset, @@ -3331,7 +3454,7 @@ get_64bit_elf_symbols (file, section) for (j = 0, psym = isyms; j < number; - j ++, psym ++) + j++, psym++) { psym->st_name = BYTE_GET (esyms[j].st_name); psym->st_info = BYTE_GET (esyms[j].st_info); @@ -3355,9 +3478,9 @@ static const char * get_elf_section_flags (sh_flags) bfd_vma sh_flags; { - static char buff [32]; + static char buff[32]; - * buff = 0; + *buff = 0; while (sh_flags) { @@ -3368,15 +3491,15 @@ get_elf_section_flags (sh_flags) switch (flag) { - case SHF_WRITE: strcat (buff, "W"); break; - case SHF_ALLOC: strcat (buff, "A"); break; - case SHF_EXECINSTR: strcat (buff, "X"); break; - case SHF_MERGE: strcat (buff, "M"); break; - case SHF_STRINGS: strcat (buff, "S"); break; - case SHF_INFO_LINK: strcat (buff, "I"); break; - case SHF_LINK_ORDER: strcat (buff, "L"); break; + case SHF_WRITE: strcat (buff, "W"); break; + case SHF_ALLOC: strcat (buff, "A"); break; + case SHF_EXECINSTR: strcat (buff, "X"); break; + case SHF_MERGE: strcat (buff, "M"); break; + case SHF_STRINGS: strcat (buff, "S"); break; + case SHF_INFO_LINK: strcat (buff, "I"); break; + case SHF_LINK_ORDER: strcat (buff, "L"); break; case SHF_OS_NONCONFORMING: strcat (buff, "O"); break; - case SHF_GROUP: strcat (buff, "G"); break; + case SHF_GROUP: strcat (buff, "G"); break; case SHF_TLS: strcat (buff, "T"); break; default: @@ -3401,10 +3524,10 @@ get_elf_section_flags (sh_flags) static int process_section_headers (file) - FILE * file; + FILE *file; { - Elf_Internal_Shdr * section; - unsigned int i; + Elf_Internal_Shdr *section; + unsigned int i; section_headers = NULL; @@ -3448,9 +3571,9 @@ process_section_headers (file) for (i = 0, section = section_headers; i < elf_header.e_shnum; - i ++, section ++) + i++, section++) { - char * name = SECTION_NAME (section); + char *name = SECTION_NAME (section); if (section->sh_type == SHT_DYNSYM) { @@ -3536,7 +3659,7 @@ process_section_headers (file) for (i = 0, section = section_headers; i < elf_header.e_shnum; - i ++, section ++) + i++, section++) { printf (" [%2u] %-17.17s %-15.15s ", SECTION_HEADER_NUM (i), @@ -3637,10 +3760,10 @@ process_section_headers (file) /* Process the reloc section. */ static int process_relocs (file) - FILE * file; + FILE *file; { - unsigned long rel_size; - unsigned long rel_offset; + unsigned long rel_size; + unsigned long rel_offset; if (!do_reloc) @@ -3659,7 +3782,7 @@ process_relocs (file) rel_size = dynamic_info[DT_RELSZ]; is_rela = FALSE; } - else if (dynamic_info [DT_RELA]) + else if (dynamic_info[DT_RELA]) { rel_offset = dynamic_info[DT_RELA]; rel_size = dynamic_info[DT_RELASZ]; @@ -3691,20 +3814,21 @@ process_relocs (file) rel_offset, rel_size); dump_relocations (file, rel_offset - loadaddr, rel_size, - dynamic_symbols, num_dynamic_syms, dynamic_strings, is_rela); + dynamic_symbols, num_dynamic_syms, dynamic_strings, + is_rela); } else printf (_("\nThere are no dynamic relocations in this file.\n")); } else { - Elf32_Internal_Shdr * section; - unsigned long i; - int found = 0; + Elf_Internal_Shdr *section; + unsigned long i; + int found = 0; for (i = 0, section = section_headers; i < elf_header.e_shnum; - i++, section ++) + i++, section++) { if ( section->sh_type != SHT_RELA && section->sh_type != SHT_REL) @@ -3715,11 +3839,11 @@ process_relocs (file) if (rel_size) { - Elf32_Internal_Shdr * strsec; - Elf_Internal_Sym * symtab; - char * strtab; - int is_rela; - unsigned long nsyms; + Elf_Internal_Shdr *strsec; + Elf_Internal_Sym *symtab; + char *strtab; + int is_rela; + unsigned long nsyms; printf (_("\nRelocation section ")); @@ -3736,7 +3860,7 @@ process_relocs (file) nsyms = 0; if (section->sh_link) { - Elf32_Internal_Shdr * symsec; + Elf_Internal_Shdr *symsec; symsec = SECTION_HEADER (section->sh_link); nsyms = symsec->sh_size / symsec->sh_entsize; @@ -3788,28 +3912,28 @@ struct unw_aux_info { struct unw_table_entry { - struct absaddr start; - struct absaddr end; - struct absaddr info; + struct absaddr start; + struct absaddr end; + struct absaddr info; } - *table; /* Unwind table. */ - unsigned long table_len; /* Length of unwind table. */ - unsigned char * info; /* Unwind info. */ - unsigned long info_size; /* Size of unwind info. */ - bfd_vma info_addr; /* starting address of unwind info. */ - bfd_vma seg_base; /* Starting address of segment. */ - Elf_Internal_Sym * symtab; /* The symbol table. */ - unsigned long nsyms; /* Number of symbols. */ - char * strtab; /* The string table. */ - unsigned long strtab_size; /* Size of string table. */ + *table; /* Unwind table. */ + unsigned long table_len; /* Length of unwind table. */ + unsigned char *info; /* Unwind info. */ + unsigned long info_size; /* Size of unwind info. */ + bfd_vma info_addr; /* starting address of unwind info. */ + bfd_vma seg_base; /* Starting address of segment. */ + Elf_Internal_Sym *symtab; /* The symbol table. */ + unsigned long nsyms; /* Number of symbols. */ + char *strtab; /* The string table. */ + unsigned long strtab_size; /* Size of string table. */ }; -static void find_symbol_for_address PARAMS ((struct unw_aux_info *, - struct absaddr, const char **, - bfd_vma *)); -static void dump_ia64_unwind PARAMS ((struct unw_aux_info *)); -static int slurp_ia64_unwind_table PARAMS ((FILE *, struct unw_aux_info *, - Elf32_Internal_Shdr *)); +static void find_symbol_for_address + PARAMS ((struct unw_aux_info *, struct absaddr, const char **, bfd_vma *)); +static void dump_ia64_unwind + PARAMS ((struct unw_aux_info *)); +static int slurp_ia64_unwind_table + PARAMS ((FILE *, struct unw_aux_info *, Elf_Internal_Shdr *)); static void find_symbol_for_address (aux, addr, symname, offset) @@ -3852,7 +3976,7 @@ dump_ia64_unwind (aux) struct unw_aux_info *aux; { bfd_vma addr_size; - struct unw_table_entry * tp; + struct unw_table_entry *tp; int in_body; addr_size = is_32bit_elf ? 4 : 8; @@ -3861,9 +3985,9 @@ dump_ia64_unwind (aux) { bfd_vma stamp; bfd_vma offset; - const unsigned char * dp; - const unsigned char * head; - const char * procname; + const unsigned char *dp; + const unsigned char *head; + const char *procname; find_symbol_for_address (aux, tp->start, &procname, &offset); @@ -3910,12 +4034,12 @@ static int slurp_ia64_unwind_table (file, aux, sec) FILE *file; struct unw_aux_info *aux; - Elf32_Internal_Shdr *sec; + Elf_Internal_Shdr *sec; { unsigned long size, addr_size, nrelas, i; Elf_Internal_Phdr *prog_hdrs, *seg; struct unw_table_entry *tep; - Elf32_Internal_Shdr *relsec; + Elf_Internal_Shdr *relsec; Elf_Internal_Rela *rela, *rp; unsigned char *table, *tp; Elf_Internal_Sym *sym; @@ -3967,7 +4091,7 @@ slurp_ia64_unwind_table (file, aux, sec) return 0; tep = aux->table = xmalloc (size / (3 * addr_size) * sizeof (aux->table[0])); - for (tp = table; tp < table + size; tp += 3 * addr_size, ++ tep) + for (tp = table; tp < table + size; tp += 3 * addr_size, ++tep) { tep->start.section = SHN_UNDEF; tep->end.section = SHN_UNDEF; @@ -4067,9 +4191,9 @@ slurp_ia64_unwind_table (file, aux, sec) static int process_unwind (file) - FILE * file; + FILE *file; { - Elf32_Internal_Shdr *sec, *unwsec = NULL, *strsec; + Elf_Internal_Shdr *sec, *unwsec = NULL, *strsec; unsigned long i, addr_size, unwcount = 0, unwstart = 0; struct unw_aux_info aux; @@ -4203,7 +4327,7 @@ process_unwind (file) static void dynamic_segment_mips_val (entry) - Elf_Internal_Dyn * entry; + Elf_Internal_Dyn *entry; { switch (entry->d_tag) { @@ -4222,7 +4346,7 @@ dynamic_segment_mips_val (entry) }; unsigned int cnt; int first = 1; - for (cnt = 0; cnt < NUM_ELEM (opts); ++ cnt) + for (cnt = 0; cnt < NUM_ELEM (opts); ++cnt) if (entry->d_un.d_val & (1 << cnt)) { printf ("%s%s", first ? "" : " ", opts[cnt]); @@ -4243,7 +4367,7 @@ dynamic_segment_mips_val (entry) case DT_MIPS_TIME_STAMP: { char timebuf[20]; - struct tm * tmp; + struct tm *tmp; time_t time = entry->d_un.d_val; tmp = gmtime (&time); @@ -4278,7 +4402,7 @@ dynamic_segment_mips_val (entry) static void dynamic_segment_parisc_val (entry) - Elf_Internal_Dyn * entry; + Elf_Internal_Dyn *entry; { switch (entry->d_tag) { @@ -4287,7 +4411,7 @@ dynamic_segment_parisc_val (entry) static struct { long int bit; - const char * str; + const char *str; } flags[] = { @@ -4335,11 +4459,11 @@ dynamic_segment_parisc_val (entry) static int get_32bit_dynamic_segment (file) - FILE * file; + FILE *file; { - Elf32_External_Dyn * edyn; - Elf_Internal_Dyn * entry; - bfd_size_type i; + Elf32_External_Dyn *edyn; + Elf_Internal_Dyn *entry; + bfd_size_type i; edyn = (Elf32_External_Dyn *) get_data (NULL, file, dynamic_addr, dynamic_size, _("dynamic segment")); @@ -4350,7 +4474,7 @@ get_32bit_dynamic_segment (file) how large this .dynamic is now. We can do this even before the byte swapping since the DT_NULL tag is recognizable. */ dynamic_size = 0; - while (*(Elf32_Word *) edyn [dynamic_size++].d_tag != DT_NULL) + while (*(Elf32_Word *) edyn[dynamic_size++].d_tag != DT_NULL) ; dynamic_segment = (Elf_Internal_Dyn *) @@ -4365,10 +4489,10 @@ get_32bit_dynamic_segment (file) for (i = 0, entry = dynamic_segment; i < dynamic_size; - i ++, entry ++) + i++, entry++) { - entry->d_tag = BYTE_GET (edyn [i].d_tag); - entry->d_un.d_val = BYTE_GET (edyn [i].d_un.d_val); + entry->d_tag = BYTE_GET (edyn[i].d_tag); + entry->d_un.d_val = BYTE_GET (edyn[i].d_un.d_val); } free (edyn); @@ -4378,11 +4502,11 @@ get_32bit_dynamic_segment (file) static int get_64bit_dynamic_segment (file) - FILE * file; + FILE *file; { - Elf64_External_Dyn * edyn; - Elf_Internal_Dyn * entry; - bfd_size_type i; + Elf64_External_Dyn *edyn; + Elf_Internal_Dyn *entry; + bfd_size_type i; edyn = (Elf64_External_Dyn *) get_data (NULL, file, dynamic_addr, dynamic_size, _("dynamic segment")); @@ -4393,7 +4517,7 @@ get_64bit_dynamic_segment (file) how large this .dynamic is now. We can do this even before the byte swapping since the DT_NULL tag is recognizable. */ dynamic_size = 0; - while (*(bfd_vma *) edyn [dynamic_size ++].d_tag != DT_NULL) + while (*(bfd_vma *) edyn[dynamic_size++].d_tag != DT_NULL) ; dynamic_segment = (Elf_Internal_Dyn *) @@ -4408,10 +4532,10 @@ get_64bit_dynamic_segment (file) for (i = 0, entry = dynamic_segment; i < dynamic_size; - i ++, entry ++) + i++, entry++) { - entry->d_tag = BYTE_GET8 (edyn [i].d_tag); - entry->d_un.d_val = BYTE_GET8 (edyn [i].d_un.d_val); + entry->d_tag = BYTE_GET8 (edyn[i].d_tag); + entry->d_un.d_val = BYTE_GET8 (edyn[i].d_un.d_val); } free (edyn); @@ -4423,7 +4547,7 @@ static const char * get_dynamic_flags (flags) bfd_vma flags; { - static char buff [128]; + static char buff[128]; char *p = buff; *p = '\0'; @@ -4439,12 +4563,12 @@ get_dynamic_flags (flags) switch (flag) { - case DF_ORIGIN: strcpy (p, "ORIGIN"); break; - case DF_SYMBOLIC: strcpy (p, "SYMBOLIC"); break; - case DF_TEXTREL: strcpy (p, "TEXTREL"); break; - case DF_BIND_NOW: strcpy (p, "BIND_NOW"); break; - case DF_STATIC_TLS: strcpy (p, "STATIC_TLS"); break; - default: strcpy (p, "unknown"); break; + case DF_ORIGIN: strcpy (p, "ORIGIN"); break; + case DF_SYMBOLIC: strcpy (p, "SYMBOLIC"); break; + case DF_TEXTREL: strcpy (p, "TEXTREL"); break; + case DF_BIND_NOW: strcpy (p, "BIND_NOW"); break; + case DF_STATIC_TLS: strcpy (p, "STATIC_TLS"); break; + default: strcpy (p, "unknown"); break; } p = strchr (p, '\0'); @@ -4455,10 +4579,10 @@ get_dynamic_flags (flags) /* Parse and display the contents of the dynamic segment. */ static int process_dynamic_segment (file) - FILE * file; + FILE *file; { - Elf_Internal_Dyn * entry; - bfd_size_type i; + Elf_Internal_Dyn *entry; + bfd_size_type i; if (dynamic_size == 0) { @@ -4481,9 +4605,9 @@ process_dynamic_segment (file) { for (i = 0, entry = dynamic_segment; i < dynamic_size; - ++i, ++ entry) + ++i, ++entry) { - Elf32_Internal_Shdr section; + Elf_Internal_Shdr section; if (entry->d_tag != DT_SYMTAB) continue; @@ -4521,10 +4645,10 @@ process_dynamic_segment (file) { for (i = 0, entry = dynamic_segment; i < dynamic_size; - ++i, ++ entry) + ++i, ++entry) { unsigned long offset; - long str_tab_len; + long str_tab_len; if (entry->d_tag != DT_STRTAB) continue; @@ -4557,11 +4681,11 @@ process_dynamic_segment (file) /* And find the syminfo section if available. */ if (dynamic_syminfo == NULL) { - unsigned int syminsz = 0; + unsigned long syminsz = 0; for (i = 0, entry = dynamic_segment; i < dynamic_size; - ++i, ++ entry) + ++i, ++entry) { if (entry->d_tag == DT_SYMINENT) { @@ -4577,8 +4701,8 @@ process_dynamic_segment (file) if (dynamic_syminfo_offset != 0 && syminsz != 0) { - Elf_External_Syminfo * extsyminfo; - Elf_Internal_Syminfo * syminfo; + Elf_External_Syminfo *extsyminfo; + Elf_Internal_Syminfo *syminfo; /* There is a syminfo section. Read the data. */ extsyminfo = ((Elf_External_Syminfo *) @@ -4607,18 +4731,18 @@ process_dynamic_segment (file) } if (do_dynamic && dynamic_addr) - printf (_("\nDynamic segment at offset 0x%x contains %ld entries:\n"), + printf (_("\nDynamic segment at offset 0x%lx contains %ld entries:\n"), dynamic_addr, (long) dynamic_size); if (do_dynamic) printf (_(" Tag Type Name/Value\n")); for (i = 0, entry = dynamic_segment; i < dynamic_size; - i++, entry ++) + i++, entry++) { if (do_dynamic) { - const char * dtype; + const char *dtype; putchar (' '); print_vma (entry->d_tag, FULL_HEX); @@ -4644,7 +4768,7 @@ process_dynamic_segment (file) if (do_dynamic) { switch (entry->d_tag) - { + { case DT_AUXILIARY: printf (_("Auxiliary library")); break; @@ -4653,7 +4777,7 @@ process_dynamic_segment (file) printf (_("Filter library")); break; - case DT_CONFIG: + case DT_CONFIG: printf (_("Configuration file")); break; @@ -4846,7 +4970,7 @@ process_dynamic_segment (file) if (do_dynamic) { - char * name; + char *name; if (dynamic_strings == NULL) name = NULL; @@ -4930,11 +5054,11 @@ process_dynamic_segment (file) { if (dynamic_strings != NULL && entry->d_tag == DT_USED) { - char * name; + char *name; name = dynamic_strings + entry->d_un.d_val; - if (* name) + if (*name) { printf (_("Not needed object: [%s]\n"), name); break; @@ -4955,7 +5079,7 @@ process_dynamic_segment (file) case DT_GNU_PRELINKED: if (do_dynamic) { - struct tm * tmp; + struct tm *tmp; time_t time = entry->d_un.d_val; tmp = gmtime (&time); @@ -4968,7 +5092,7 @@ process_dynamic_segment (file) default: if ((entry->d_tag >= DT_VERSYM) && (entry->d_tag <= DT_VERNEEDNUM)) - version_info [DT_VERSIONTAGIDX (entry->d_tag)] = + version_info[DT_VERSIONTAGIDX (entry->d_tag)] = entry->d_un.d_val; if (do_dynamic) @@ -4998,7 +5122,7 @@ static char * get_ver_flags (flags) unsigned int flags; { - static char buff [32]; + static char buff[32]; buff[0] = 0; @@ -5025,26 +5149,26 @@ get_ver_flags (flags) /* Display the contents of the version sections. */ static int process_version_sections (file) - FILE * file; + FILE *file; { - Elf32_Internal_Shdr * section; - unsigned i; - int found = 0; + Elf_Internal_Shdr *section; + unsigned i; + int found = 0; if (! do_version) return 1; for (i = 0, section = section_headers; i < elf_header.e_shnum; - i++, section ++) + i++, section++) { switch (section->sh_type) { case SHT_GNU_verdef: { - Elf_External_Verdef * edefs; - unsigned int idx; - unsigned int cnt; + Elf_External_Verdef *edefs; + unsigned int idx; + unsigned int cnt; found = 1; @@ -5065,15 +5189,15 @@ process_version_sections (file) if (!edefs) break; - for (idx = cnt = 0; cnt < section->sh_info; ++ cnt) + for (idx = cnt = 0; cnt < section->sh_info; ++cnt) { - char * vstart; - Elf_External_Verdef * edef; - Elf_Internal_Verdef ent; - Elf_External_Verdaux * eaux; - Elf_Internal_Verdaux aux; - int j; - int isum; + char *vstart; + Elf_External_Verdef *edef; + Elf_Internal_Verdef ent; + Elf_External_Verdaux *eaux; + Elf_Internal_Verdaux aux; + int j; + int isum; vstart = ((char *) edefs) + idx; @@ -5107,7 +5231,7 @@ process_version_sections (file) isum = idx + ent.vd_aux; - for (j = 1; j < ent.vd_cnt; j ++) + for (j = 1; j < ent.vd_cnt; j++) { isum += aux.vda_next; vstart += aux.vda_next; @@ -5134,9 +5258,9 @@ process_version_sections (file) case SHT_GNU_verneed: { - Elf_External_Verneed * eneed; - unsigned int idx; - unsigned int cnt; + Elf_External_Verneed *eneed; + unsigned int idx; + unsigned int cnt; found = 1; @@ -5157,11 +5281,11 @@ process_version_sections (file) for (idx = cnt = 0; cnt < section->sh_info; ++cnt) { - Elf_External_Verneed * entry; - Elf_Internal_Verneed ent; - int j; - int isum; - char * vstart; + Elf_External_Verneed *entry; + Elf_Internal_Verneed ent; + int j; + int isum; + char *vstart; vstart = ((char *) eneed) + idx; @@ -5186,8 +5310,8 @@ process_version_sections (file) for (j = 0, isum = idx + ent.vn_aux; j < ent.vn_cnt; ++j) { - Elf_External_Vernaux * eaux; - Elf_Internal_Vernaux aux; + Elf_External_Vernaux *eaux; + Elf_Internal_Vernaux aux; eaux = (Elf_External_Vernaux *) vstart; @@ -5220,14 +5344,14 @@ process_version_sections (file) case SHT_GNU_versym: { - Elf32_Internal_Shdr * link_section; - int total; - int cnt; - unsigned char * edata; - unsigned short * data; - char * strtab; - Elf_Internal_Sym * symbols; - Elf32_Internal_Shdr * string_sec; + Elf_Internal_Shdr *link_section; + int total; + int cnt; + unsigned char *edata; + unsigned short *data; + char *strtab; + Elf_Internal_Sym *symbols; + Elf_Internal_Shdr *string_sec; link_section = SECTION_HEADER (section->sh_link); total = section->sh_size / section->sh_entsize; @@ -5267,8 +5391,8 @@ process_version_sections (file) data = (unsigned short *) malloc (total * sizeof (short)); for (cnt = total; cnt --;) - data [cnt] = byte_get (edata + cnt * sizeof (short), - sizeof (short)); + data[cnt] = byte_get (edata + cnt * sizeof (short), + sizeof (short)); free (edata); @@ -5276,12 +5400,12 @@ process_version_sections (file) { int j, nn; int check_def, check_need; - char * name; + char *name; printf (" %03x:", cnt); for (j = 0; (j < 4) && (cnt + j) < total; ++j) - switch (data [cnt + j]) + switch (data[cnt + j]) { case 0: fputs (_(" 0 (*local*) "), stdout); @@ -5292,35 +5416,35 @@ process_version_sections (file) break; default: - nn = printf ("%4x%c", data [cnt + j] & 0x7fff, - data [cnt + j] & 0x8000 ? 'h' : ' '); + nn = printf ("%4x%c", data[cnt + j] & 0x7fff, + data[cnt + j] & 0x8000 ? 'h' : ' '); check_def = 1; check_need = 1; - if (SECTION_HEADER (symbols [cnt + j].st_shndx)->sh_type + if (SECTION_HEADER (symbols[cnt + j].st_shndx)->sh_type != SHT_NOBITS) { - if (symbols [cnt + j].st_shndx == SHN_UNDEF) + if (symbols[cnt + j].st_shndx == SHN_UNDEF) check_def = 0; else check_need = 0; } if (check_need - && version_info [DT_VERSIONTAGIDX (DT_VERNEED)]) + && version_info[DT_VERSIONTAGIDX (DT_VERNEED)]) { - Elf_Internal_Verneed ivn; - unsigned long offset; + Elf_Internal_Verneed ivn; + unsigned long offset; - offset = version_info [DT_VERSIONTAGIDX (DT_VERNEED)] + offset = version_info[DT_VERSIONTAGIDX (DT_VERNEED)] - loadaddr; - do + do { - Elf_Internal_Vernaux ivna; - Elf_External_Verneed evn; - Elf_External_Vernaux evna; - unsigned long a_off; + Elf_Internal_Vernaux ivna; + Elf_External_Verneed evn; + Elf_External_Vernaux evna; + unsigned long a_off; get_data (&evn, file, offset, sizeof (evn), _("version need")); @@ -5340,10 +5464,10 @@ process_version_sections (file) a_off += ivna.vna_next; } - while (ivna.vna_other != data [cnt + j] + while (ivna.vna_other != data[cnt + j] && ivna.vna_next != 0); - if (ivna.vna_other == data [cnt + j]) + if (ivna.vna_other == data[cnt + j]) { ivna.vna_name = BYTE_GET (evna.vna_name); @@ -5361,15 +5485,15 @@ process_version_sections (file) while (ivn.vn_next); } - if (check_def && data [cnt + j] != 0x8001 - && version_info [DT_VERSIONTAGIDX (DT_VERDEF)]) + if (check_def && data[cnt + j] != 0x8001 + && version_info[DT_VERSIONTAGIDX (DT_VERDEF)]) { - Elf_Internal_Verdef ivd; - Elf_External_Verdef evd; - unsigned long offset; + Elf_Internal_Verdef ivd; + Elf_External_Verdef evd; + unsigned long offset; - offset = version_info - [DT_VERSIONTAGIDX (DT_VERDEF)] - loadaddr; + offset = (version_info[DT_VERSIONTAGIDX (DT_VERDEF)] + - loadaddr); do { @@ -5381,13 +5505,13 @@ process_version_sections (file) offset += ivd.vd_next; } - while (ivd.vd_ndx != (data [cnt + j] & 0x7fff) + while (ivd.vd_ndx != (data[cnt + j] & 0x7fff) && ivd.vd_next != 0); - if (ivd.vd_ndx == (data [cnt + j] & 0x7fff)) + if (ivd.vd_ndx == (data[cnt + j] & 0x7fff)) { - Elf_External_Verdaux evda; - Elf_Internal_Verdaux ivda; + Elf_External_Verdaux evda; + Elf_Internal_Verdaux ivda; ivd.vd_aux = BYTE_GET (evd.vd_aux); @@ -5433,13 +5557,13 @@ static const char * get_symbol_binding (binding) unsigned int binding; { - static char buff [32]; + static char buff[32]; switch (binding) { - case STB_LOCAL: return "LOCAL"; - case STB_GLOBAL: return "GLOBAL"; - case STB_WEAK: return "WEAK"; + case STB_LOCAL: return "LOCAL"; + case STB_GLOBAL: return "GLOBAL"; + case STB_WEAK: return "WEAK"; default: if (binding >= STB_LOPROC && binding <= STB_HIPROC) sprintf (buff, _(": %d"), binding); @@ -5455,17 +5579,17 @@ static const char * get_symbol_type (type) unsigned int type; { - static char buff [32]; + static char buff[32]; switch (type) { - case STT_NOTYPE: return "NOTYPE"; - case STT_OBJECT: return "OBJECT"; - case STT_FUNC: return "FUNC"; - case STT_SECTION: return "SECTION"; - case STT_FILE: return "FILE"; - case STT_COMMON: return "COMMON"; - case STT_TLS: return "TLS"; + case STT_NOTYPE: return "NOTYPE"; + case STT_OBJECT: return "OBJECT"; + case STT_FUNC: return "FUNC"; + case STT_SECTION: return "SECTION"; + case STT_FILE: return "FILE"; + case STT_COMMON: return "COMMON"; + case STT_TLS: return "TLS"; default: if (type >= STT_LOPROC && type <= STT_HIPROC) { @@ -5504,9 +5628,9 @@ get_symbol_visibility (visibility) { switch (visibility) { - case STV_DEFAULT: return "DEFAULT"; - case STV_INTERNAL: return "INTERNAL"; - case STV_HIDDEN: return "HIDDEN"; + case STV_DEFAULT: return "DEFAULT"; + case STV_INTERNAL: return "INTERNAL"; + case STV_HIDDEN: return "HIDDEN"; case STV_PROTECTED: return "PROTECTED"; default: abort (); } @@ -5516,13 +5640,13 @@ static const char * get_symbol_index_type (type) unsigned int type; { - static char buff [32]; + static char buff[32]; switch (type) { - case SHN_UNDEF: return "UND"; - case SHN_ABS: return "ABS"; - case SHN_COMMON: return "COM"; + case SHN_UNDEF: return "UND"; + case SHN_ABS: return "ABS"; + case SHN_COMMON: return "COM"; default: if (type >= SHN_LOPROC && type <= SHN_HIPROC) sprintf (buff, "PRC[0x%04x]", type); @@ -5540,11 +5664,11 @@ get_symbol_index_type (type) static int * get_dynamic_data (file, number) - FILE * file; + FILE *file; unsigned int number; { - unsigned char * e_data; - int * i_data; + unsigned char *e_data; + int *i_data; e_data = (unsigned char *) malloc (number * 4); @@ -5560,7 +5684,7 @@ get_dynamic_data (file, number) return NULL; } - i_data = (int *) malloc (number * sizeof (* i_data)); + i_data = (int *) malloc (number * sizeof (*i_data)); if (i_data == NULL) { @@ -5570,7 +5694,7 @@ get_dynamic_data (file, number) } while (number--) - i_data [number] = byte_get (e_data + number * 4, 4); + i_data[number] = byte_get (e_data + number * 4, 4); free (e_data); @@ -5580,15 +5704,15 @@ get_dynamic_data (file, number) /* Dump the symbol table. */ static int process_symbol_table (file) - FILE * file; + FILE *file; { - Elf32_Internal_Shdr * section; - unsigned char nb [4]; - unsigned char nc [4]; - int nbuckets = 0; - int nchains = 0; - int * buckets = NULL; - int * chains = NULL; + Elf_Internal_Shdr *section; + unsigned char nb[4]; + unsigned char nc[4]; + int nbuckets = 0; + int nchains = 0; + int *buckets = NULL; + int *chains = NULL; if (! do_syms && !do_histogram) return 1; @@ -5627,8 +5751,8 @@ process_symbol_table (file) if (do_syms && dynamic_info[DT_HASH] && do_using_dynamic && dynamic_strings != NULL) { - int hn; - int si; + int hn; + int si; printf (_("\nSymbol table for image:\n")); if (is_32bit_elf) @@ -5638,12 +5762,12 @@ process_symbol_table (file) for (hn = 0; hn < nbuckets; hn++) { - if (! buckets [hn]) + if (! buckets[hn]) continue; - for (si = buckets [hn]; si < nchains && si > 0; si = chains [si]) + for (si = buckets[hn]; si < nchains && si > 0; si = chains[si]) { - Elf_Internal_Sym * psym; + Elf_Internal_Sym *psym; psym = dynamic_symbols + si; @@ -5663,16 +5787,16 @@ process_symbol_table (file) } else if (do_syms && !do_using_dynamic) { - unsigned int i; + unsigned int i; for (i = 0, section = section_headers; i < elf_header.e_shnum; i++, section++) { - unsigned int si; - char * strtab; - Elf_Internal_Sym * symtab; - Elf_Internal_Sym * psym; + unsigned int si; + char *strtab; + Elf_Internal_Sym *symtab; + Elf_Internal_Sym *psym; if ( section->sh_type != SHT_SYMTAB @@ -5695,7 +5819,7 @@ process_symbol_table (file) strtab = string_table; else { - Elf32_Internal_Shdr * string_sec; + Elf_Internal_Shdr *string_sec; string_sec = SECTION_HEADER (section->sh_link); @@ -5706,7 +5830,7 @@ process_symbol_table (file) for (si = 0, psym = symtab; si < section->sh_size / section->sh_entsize; - si ++, psym ++) + si++, psym++) { printf ("%6d: ", si); print_vma (psym->st_value, LONG_HEX); @@ -5719,15 +5843,15 @@ process_symbol_table (file) print_symbol (25, strtab + psym->st_name); if (section->sh_type == SHT_DYNSYM && - version_info [DT_VERSIONTAGIDX (DT_VERSYM)] != 0) + version_info[DT_VERSIONTAGIDX (DT_VERSYM)] != 0) { - unsigned char data[2]; - unsigned short vers_data; - unsigned long offset; - int is_nobits; - int check_def; + unsigned char data[2]; + unsigned short vers_data; + unsigned long offset; + int is_nobits; + int check_def; - offset = version_info [DT_VERSIONTAGIDX (DT_VERSYM)] + offset = version_info[DT_VERSIONTAGIDX (DT_VERSYM)] - loadaddr; get_data (&data, file, offset + si * sizeof (vers_data), @@ -5742,20 +5866,20 @@ process_symbol_table (file) if ((vers_data & 0x8000) || vers_data > 1) { - if (version_info [DT_VERSIONTAGIDX (DT_VERNEED)] + if (version_info[DT_VERSIONTAGIDX (DT_VERNEED)] && (is_nobits || ! check_def)) { - Elf_External_Verneed evn; - Elf_Internal_Verneed ivn; - Elf_Internal_Vernaux ivna; + Elf_External_Verneed evn; + Elf_Internal_Verneed ivn; + Elf_Internal_Vernaux ivna; /* We must test both. */ - offset = version_info - [DT_VERSIONTAGIDX (DT_VERNEED)] - loadaddr; + offset = (version_info[DT_VERSIONTAGIDX (DT_VERNEED)] + - loadaddr); do { - unsigned long vna_off; + unsigned long vna_off; get_data (&evn, file, offset, sizeof (evn), _("version need")); @@ -5767,7 +5891,7 @@ process_symbol_table (file) do { - Elf_External_Vernaux evna; + Elf_External_Vernaux evna; get_data (&evna, file, vna_off, sizeof (evna), @@ -5804,26 +5928,26 @@ process_symbol_table (file) if (check_def) { if (vers_data != 0x8001 - && version_info [DT_VERSIONTAGIDX (DT_VERDEF)]) + && version_info[DT_VERSIONTAGIDX (DT_VERDEF)]) { - Elf_Internal_Verdef ivd; - Elf_Internal_Verdaux ivda; - Elf_External_Verdaux evda; - unsigned long offset; - - offset = - version_info [DT_VERSIONTAGIDX (DT_VERDEF)] - - loadaddr; + Elf_Internal_Verdef ivd; + Elf_Internal_Verdaux ivda; + Elf_External_Verdaux evda; + unsigned long offset; + + offset + = (version_info[DT_VERSIONTAGIDX (DT_VERDEF)] + - loadaddr); do { - Elf_External_Verdef evd; + Elf_External_Verdef evd; get_data (&evd, file, offset, sizeof (evd), _("version def")); - ivd.vd_ndx = BYTE_GET (evd.vd_ndx); - ivd.vd_aux = BYTE_GET (evd.vd_aux); + ivd.vd_ndx = BYTE_GET (evd.vd_ndx); + ivd.vd_aux = BYTE_GET (evd.vd_aux); ivd.vd_next = BYTE_GET (evd.vd_next); offset += ivd.vd_next; @@ -5862,13 +5986,13 @@ process_symbol_table (file) if (do_histogram && buckets != NULL) { - int * lengths; - int * counts; - int hn; - int si; - int maxlength = 0; - int nzero_counts = 0; - int nsyms = 0; + int *lengths; + int *counts; + int hn; + int si; + int maxlength = 0; + int nzero_counts = 0; + int nsyms = 0; printf (_("\nHistogram for bucket list length (total of %d buckets):\n"), nbuckets); @@ -5882,14 +6006,14 @@ process_symbol_table (file) } for (hn = 0; hn < nbuckets; ++hn) { - if (! buckets [hn]) + if (! buckets[hn]) continue; for (si = buckets[hn]; si > 0 && si < nchains; si = chains[si]) { - ++ nsyms; + ++nsyms; if (maxlength < ++lengths[hn]) - ++ maxlength; + ++maxlength; } } @@ -5901,7 +6025,7 @@ process_symbol_table (file) } for (hn = 0; hn < nbuckets; ++hn) - ++ counts [lengths [hn]]; + ++counts[lengths[hn]]; if (nbuckets > 0) { @@ -5931,7 +6055,7 @@ process_symbol_table (file) static int process_syminfo (file) - FILE * file ATTRIBUTE_UNUSED; + FILE *file ATTRIBUTE_UNUSED; { unsigned int i; @@ -5969,9 +6093,10 @@ process_syminfo (file) if (dynamic_syminfo[i].si_boundto > 0 && dynamic_syminfo[i].si_boundto < dynamic_size) { - print_symbol (10, dynamic_strings - + dynamic_segment - [dynamic_syminfo[i].si_boundto].d_un.d_val); + print_symbol (10, + dynamic_strings + + (dynamic_segment + [dynamic_syminfo[i].si_boundto].d_un.d_val)); putchar (' ' ); } else @@ -5997,8 +6122,8 @@ process_syminfo (file) #ifdef SUPPORT_DISASSEMBLY static void disassemble_section (section, file) - Elf32_Internal_Shdr * section; - FILE * file; + Elf_Internal_Shdr *section; + FILE *file; { printf (_("\nAssembly dump of section %s\n"), SECTION_NAME (section)); @@ -6011,13 +6136,13 @@ disassemble_section (section, file) static int dump_section (section, file) - Elf32_Internal_Shdr * section; - FILE * file; + Elf_Internal_Shdr *section; + FILE *file; { - bfd_size_type bytes; - bfd_vma addr; - unsigned char * data; - unsigned char * start; + bfd_size_type bytes; + bfd_vma addr; + unsigned char *data; + unsigned char *start; bytes = section->sh_size; @@ -6049,14 +6174,14 @@ dump_section (section, file) printf (" 0x%8.8lx ", (unsigned long) addr); - switch (elf_header.e_ident [EI_DATA]) + switch (elf_header.e_ident[EI_DATA]) { default: case ELFDATA2LSB: for (j = 15; j >= 0; j --) { if (j < lbytes) - printf ("%2.2x", data [j]); + printf ("%2.2x", data[j]); else printf (" "); @@ -6069,7 +6194,7 @@ dump_section (section, file) for (j = 0; j < 16; j++) { if (j < lbytes) - printf ("%2.2x", data [j]); + printf ("%2.2x", data[j]); else printf (" "); @@ -6081,7 +6206,7 @@ dump_section (section, file) for (j = 0; j < lbytes; j++) { - k = data [j]; + k = data[j]; if (k >= ' ' && k < 0x80) printf ("%c", k); else @@ -6103,19 +6228,19 @@ dump_section (section, file) static unsigned long int read_leb128 (data, length_return, sign) - unsigned char * data; - int * length_return; - int sign; + unsigned char *data; + int *length_return; + int sign; { unsigned long int result = 0; - unsigned int num_read = 0; - int shift = 0; - unsigned char byte; + unsigned int num_read = 0; + int shift = 0; + unsigned char byte; do { - byte = * data ++; - num_read ++; + byte = *data++; + num_read++; result |= (byte & 0x7f) << shift; @@ -6125,7 +6250,7 @@ read_leb128 (data, length_return, sign) while (byte & 0x80); if (length_return != NULL) - * length_return = num_read; + *length_return = num_read; if (sign && (shift < 32) && (byte & 0x40)) result |= -1 << shift; @@ -6135,16 +6260,16 @@ read_leb128 (data, length_return, sign) typedef struct State_Machine_Registers { - unsigned long address; - unsigned int file; - unsigned int line; - unsigned int column; - int is_stmt; - int basic_block; - int end_sequence; + unsigned long address; + unsigned int file; + unsigned int line; + unsigned int column; + int is_stmt; + int basic_block; + int end_sequence; /* This variable hold the number of the last entry seen in the File Table. */ - unsigned int last_file_entry; + unsigned int last_file_entry; } SMR; static SMR state_machine_regs; @@ -6167,15 +6292,15 @@ reset_state_machine (is_stmt) of sequence. */ static int process_extended_line_op (data, is_stmt, pointer_size) - unsigned char * data; + unsigned char *data; int is_stmt; int pointer_size; { - unsigned char op_code; - int bytes_read; - unsigned int len; - unsigned char * name; - unsigned long adr; + unsigned char op_code; + int bytes_read; + unsigned int len; + unsigned char *name; + unsigned long adr; len = read_leb128 (data, & bytes_read, 0); data += bytes_read; @@ -6187,7 +6312,7 @@ process_extended_line_op (data, is_stmt, } len += bytes_read; - op_code = * data ++; + op_code = *data++; printf (_(" Extended opcode %d: "), op_code); @@ -6208,7 +6333,7 @@ process_extended_line_op (data, is_stmt, printf (_(" define new File Table entry\n")); printf (_(" Entry\tDir\tTime\tSize\tName\n")); - printf (_(" %d\t"), ++ state_machine_regs.last_file_entry); + printf (_(" %d\t"), ++state_machine_regs.last_file_entry); name = data; data += strlen ((char *) data) + 1; printf (_("%lu\t"), read_leb128 (data, & bytes_read, 0)); @@ -6234,17 +6359,17 @@ static int debug_line_pointer_size = 4; static int display_debug_lines (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; -{ - DWARF2_External_LineInfo * external; - DWARF2_Internal_LineInfo info; - unsigned char * standard_opcodes; - unsigned char * data = start; - unsigned char * end = start + section->sh_size; - unsigned char * end_of_sequence; - int i; + Elf_Internal_Shdr *section; + unsigned char * start; + FILE *file ATTRIBUTE_UNUSED; +{ + DWARF2_External_LineInfo *external; + DWARF2_Internal_LineInfo info; + unsigned char *standard_opcodes; + unsigned char *data = start; + unsigned char *end = start + section->sh_size; + unsigned char *end_of_sequence; + int i; printf (_("\nDump of debug contents of section %s:\n\n"), SECTION_NAME (section)); @@ -6302,7 +6427,7 @@ display_debug_lines (section, start, fil reset_state_machine (info.li_default_is_stmt); /* Display the contents of the Opcodes table. */ - standard_opcodes = data + sizeof (* external); + standard_opcodes = data + sizeof (*external); printf (_("\n Opcodes:\n")); @@ -6312,13 +6437,13 @@ display_debug_lines (section, start, fil /* Display the contents of the Directory table. */ data = standard_opcodes + info.li_opcode_base - 1; - if (* data == 0) + if (*data == 0) printf (_("\n The Directory Table is empty.\n")); else { printf (_("\n The Directory Table:\n")); - while (* data != 0) + while (*data != 0) { printf (_(" %s\n"), data); @@ -6327,22 +6452,22 @@ display_debug_lines (section, start, fil } /* Skip the NUL at the end of the table. */ - data ++; + data++; /* Display the contents of the File Name table. */ - if (* data == 0) + if (*data == 0) printf (_("\n The File Name Table is empty.\n")); else { printf (_("\n The File Name Table:\n")); printf (_(" Entry\tDir\tTime\tSize\tName\n")); - while (* data != 0) + while (*data != 0) { - unsigned char * name; + unsigned char *name; int bytes_read; - printf (_(" %d\t"), ++ state_machine_regs.last_file_entry); + printf (_(" %d\t"), ++state_machine_regs.last_file_entry); name = data; data += strlen ((char *) data) + 1; @@ -6358,7 +6483,7 @@ display_debug_lines (section, start, fil } /* Skip the NUL at the end of the table. */ - data ++; + data++; /* Now display the statements. */ printf (_("\n Line Number Statements:\n")); @@ -6367,10 +6492,10 @@ display_debug_lines (section, start, fil while (data < end_of_sequence) { unsigned char op_code; - int adv; - int bytes_read; + int adv; + int bytes_read; - op_code = * data ++; + op_code = *data++; if (op_code >= info.li_opcode_base) { @@ -6491,13 +6616,13 @@ display_debug_lines (section, start, fil static int display_debug_pubnames (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; -{ - DWARF2_External_PubNames * external; - DWARF2_Internal_PubNames pubnames; - unsigned char * end; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; +{ + DWARF2_External_PubNames *external; + DWARF2_Internal_PubNames pubnames; + unsigned char *end; end = start + section->sh_size; @@ -6505,8 +6630,8 @@ display_debug_pubnames (section, start, while (start < end) { - unsigned char * data; - unsigned long offset; + unsigned char *data; + unsigned long offset; external = (DWARF2_External_PubNames *) start; @@ -6515,7 +6640,7 @@ display_debug_pubnames (section, start, pubnames.pn_offset = BYTE_GET (external->pn_offset); pubnames.pn_size = BYTE_GET (external->pn_size); - data = start + sizeof (* external); + data = start + sizeof (*external); start += pubnames.pn_length + sizeof (external->pn_length); if (pubnames.pn_length == 0xffffffff) @@ -6572,70 +6697,74 @@ get_TAG_name (tag) { switch (tag) { - case DW_TAG_padding: return "DW_TAG_padding"; - case DW_TAG_array_type: return "DW_TAG_array_type"; - case DW_TAG_class_type: return "DW_TAG_class_type"; - case DW_TAG_entry_point: return "DW_TAG_entry_point"; - case DW_TAG_enumeration_type: return "DW_TAG_enumeration_type"; - case DW_TAG_formal_parameter: return "DW_TAG_formal_parameter"; - case DW_TAG_imported_declaration: return "DW_TAG_imported_declaration"; - case DW_TAG_label: return "DW_TAG_label"; - case DW_TAG_lexical_block: return "DW_TAG_lexical_block"; - case DW_TAG_member: return "DW_TAG_member"; - case DW_TAG_pointer_type: return "DW_TAG_pointer_type"; - case DW_TAG_reference_type: return "DW_TAG_reference_type"; - case DW_TAG_compile_unit: return "DW_TAG_compile_unit"; - case DW_TAG_string_type: return "DW_TAG_string_type"; - case DW_TAG_structure_type: return "DW_TAG_structure_type"; - case DW_TAG_subroutine_type: return "DW_TAG_subroutine_type"; - case DW_TAG_typedef: return "DW_TAG_typedef"; - case DW_TAG_union_type: return "DW_TAG_union_type"; + case DW_TAG_padding: return "DW_TAG_padding"; + case DW_TAG_array_type: return "DW_TAG_array_type"; + case DW_TAG_class_type: return "DW_TAG_class_type"; + case DW_TAG_entry_point: return "DW_TAG_entry_point"; + case DW_TAG_enumeration_type: return "DW_TAG_enumeration_type"; + case DW_TAG_formal_parameter: return "DW_TAG_formal_parameter"; + case DW_TAG_imported_declaration: return "DW_TAG_imported_declaration"; + case DW_TAG_label: return "DW_TAG_label"; + case DW_TAG_lexical_block: return "DW_TAG_lexical_block"; + case DW_TAG_member: return "DW_TAG_member"; + case DW_TAG_pointer_type: return "DW_TAG_pointer_type"; + case DW_TAG_reference_type: return "DW_TAG_reference_type"; + case DW_TAG_compile_unit: return "DW_TAG_compile_unit"; + case DW_TAG_string_type: return "DW_TAG_string_type"; + case DW_TAG_structure_type: return "DW_TAG_structure_type"; + case DW_TAG_subroutine_type: return "DW_TAG_subroutine_type"; + case DW_TAG_typedef: return "DW_TAG_typedef"; + case DW_TAG_union_type: return "DW_TAG_union_type"; case DW_TAG_unspecified_parameters: return "DW_TAG_unspecified_parameters"; - case DW_TAG_variant: return "DW_TAG_variant"; - case DW_TAG_common_block: return "DW_TAG_common_block"; - case DW_TAG_common_inclusion: return "DW_TAG_common_inclusion"; - case DW_TAG_inheritance: return "DW_TAG_inheritance"; - case DW_TAG_inlined_subroutine: return "DW_TAG_inlined_subroutine"; - case DW_TAG_module: return "DW_TAG_module"; - case DW_TAG_ptr_to_member_type: return "DW_TAG_ptr_to_member_type"; - case DW_TAG_set_type: return "DW_TAG_set_type"; - case DW_TAG_subrange_type: return "DW_TAG_subrange_type"; - case DW_TAG_with_stmt: return "DW_TAG_with_stmt"; - case DW_TAG_access_declaration: return "DW_TAG_access_declaration"; - case DW_TAG_base_type: return "DW_TAG_base_type"; - case DW_TAG_catch_block: return "DW_TAG_catch_block"; - case DW_TAG_const_type: return "DW_TAG_const_type"; - case DW_TAG_constant: return "DW_TAG_constant"; - case DW_TAG_enumerator: return "DW_TAG_enumerator"; - case DW_TAG_file_type: return "DW_TAG_file_type"; - case DW_TAG_friend: return "DW_TAG_friend"; - case DW_TAG_namelist: return "DW_TAG_namelist"; - case DW_TAG_namelist_item: return "DW_TAG_namelist_item"; - case DW_TAG_packed_type: return "DW_TAG_packed_type"; - case DW_TAG_subprogram: return "DW_TAG_subprogram"; - case DW_TAG_template_type_param: return "DW_TAG_template_type_param"; - case DW_TAG_template_value_param: return "DW_TAG_template_value_param"; - case DW_TAG_thrown_type: return "DW_TAG_thrown_type"; - case DW_TAG_try_block: return "DW_TAG_try_block"; - case DW_TAG_variant_part: return "DW_TAG_variant_part"; - case DW_TAG_variable: return "DW_TAG_variable"; - case DW_TAG_volatile_type: return "DW_TAG_volatile_type"; - case DW_TAG_MIPS_loop: return "DW_TAG_MIPS_loop"; - case DW_TAG_format_label: return "DW_TAG_format_label"; - case DW_TAG_function_template: return "DW_TAG_function_template"; - case DW_TAG_class_template: return "DW_TAG_class_template"; + case DW_TAG_variant: return "DW_TAG_variant"; + case DW_TAG_common_block: return "DW_TAG_common_block"; + case DW_TAG_common_inclusion: return "DW_TAG_common_inclusion"; + case DW_TAG_inheritance: return "DW_TAG_inheritance"; + case DW_TAG_inlined_subroutine: return "DW_TAG_inlined_subroutine"; + case DW_TAG_module: return "DW_TAG_module"; + case DW_TAG_ptr_to_member_type: return "DW_TAG_ptr_to_member_type"; + case DW_TAG_set_type: return "DW_TAG_set_type"; + case DW_TAG_subrange_type: return "DW_TAG_subrange_type"; + case DW_TAG_with_stmt: return "DW_TAG_with_stmt"; + case DW_TAG_access_declaration: return "DW_TAG_access_declaration"; + case DW_TAG_base_type: return "DW_TAG_base_type"; + case DW_TAG_catch_block: return "DW_TAG_catch_block"; + case DW_TAG_const_type: return "DW_TAG_const_type"; + case DW_TAG_constant: return "DW_TAG_constant"; + case DW_TAG_enumerator: return "DW_TAG_enumerator"; + case DW_TAG_file_type: return "DW_TAG_file_type"; + case DW_TAG_friend: return "DW_TAG_friend"; + case DW_TAG_namelist: return "DW_TAG_namelist"; + case DW_TAG_namelist_item: return "DW_TAG_namelist_item"; + case DW_TAG_packed_type: return "DW_TAG_packed_type"; + case DW_TAG_subprogram: return "DW_TAG_subprogram"; + case DW_TAG_template_type_param: return "DW_TAG_template_type_param"; + case DW_TAG_template_value_param: return "DW_TAG_template_value_param"; + case DW_TAG_thrown_type: return "DW_TAG_thrown_type"; + case DW_TAG_try_block: return "DW_TAG_try_block"; + case DW_TAG_variant_part: return "DW_TAG_variant_part"; + case DW_TAG_variable: return "DW_TAG_variable"; + case DW_TAG_volatile_type: return "DW_TAG_volatile_type"; + case DW_TAG_MIPS_loop: return "DW_TAG_MIPS_loop"; + case DW_TAG_format_label: return "DW_TAG_format_label"; + case DW_TAG_function_template: return "DW_TAG_function_template"; + case DW_TAG_class_template: return "DW_TAG_class_template"; /* DWARF 2.1 values. */ - case DW_TAG_dwarf_procedure: return "DW_TAG_dwarf_procedure"; - case DW_TAG_restrict_type: return "DW_TAG_restrict_type"; - case DW_TAG_interface_type: return "DW_TAG_interface_type"; - case DW_TAG_namespace: return "DW_TAG_namespace"; - case DW_TAG_imported_module: return "DW_TAG_imported_module"; - case DW_TAG_unspecified_type: return "DW_TAG_unspecified_type"; - case DW_TAG_partial_unit: return "DW_TAG_partial_unit"; - case DW_TAG_imported_unit: return "DW_TAG_imported_unit"; + case DW_TAG_dwarf_procedure: return "DW_TAG_dwarf_procedure"; + case DW_TAG_restrict_type: return "DW_TAG_restrict_type"; + case DW_TAG_interface_type: return "DW_TAG_interface_type"; + case DW_TAG_namespace: return "DW_TAG_namespace"; + case DW_TAG_imported_module: return "DW_TAG_imported_module"; + case DW_TAG_unspecified_type: return "DW_TAG_unspecified_type"; + case DW_TAG_partial_unit: return "DW_TAG_partial_unit"; + case DW_TAG_imported_unit: return "DW_TAG_imported_unit"; + /* UPC values. */ + case DW_TAG_upc_shared_type: return "DW_TAG_upc_shared_type"; + case DW_TAG_upc_strict_type: return "DW_TAG_upc_strict_type"; + case DW_TAG_upc_relaxed_type: return "DW_TAG_upc_relaxed_type"; default: { - static char buffer [100]; + static char buffer[100]; sprintf (buffer, _("Unknown TAG value: %lx"), tag); return buffer; @@ -6649,104 +6778,107 @@ get_AT_name (attribute) { switch (attribute) { - case DW_AT_sibling: return "DW_AT_sibling"; - case DW_AT_location: return "DW_AT_location"; - case DW_AT_name: return "DW_AT_name"; - case DW_AT_ordering: return "DW_AT_ordering"; - case DW_AT_subscr_data: return "DW_AT_subscr_data"; - case DW_AT_byte_size: return "DW_AT_byte_size"; - case DW_AT_bit_offset: return "DW_AT_bit_offset"; - case DW_AT_bit_size: return "DW_AT_bit_size"; - case DW_AT_element_list: return "DW_AT_element_list"; - case DW_AT_stmt_list: return "DW_AT_stmt_list"; - case DW_AT_low_pc: return "DW_AT_low_pc"; - case DW_AT_high_pc: return "DW_AT_high_pc"; - case DW_AT_language: return "DW_AT_language"; - case DW_AT_member: return "DW_AT_member"; - case DW_AT_discr: return "DW_AT_discr"; - case DW_AT_discr_value: return "DW_AT_discr_value"; - case DW_AT_visibility: return "DW_AT_visibility"; - case DW_AT_import: return "DW_AT_import"; - case DW_AT_string_length: return "DW_AT_string_length"; - case DW_AT_common_reference: return "DW_AT_common_reference"; - case DW_AT_comp_dir: return "DW_AT_comp_dir"; - case DW_AT_const_value: return "DW_AT_const_value"; - case DW_AT_containing_type: return "DW_AT_containing_type"; - case DW_AT_default_value: return "DW_AT_default_value"; - case DW_AT_inline: return "DW_AT_inline"; - case DW_AT_is_optional: return "DW_AT_is_optional"; - case DW_AT_lower_bound: return "DW_AT_lower_bound"; - case DW_AT_producer: return "DW_AT_producer"; - case DW_AT_prototyped: return "DW_AT_prototyped"; - case DW_AT_return_addr: return "DW_AT_return_addr"; - case DW_AT_start_scope: return "DW_AT_start_scope"; - case DW_AT_stride_size: return "DW_AT_stride_size"; - case DW_AT_upper_bound: return "DW_AT_upper_bound"; - case DW_AT_abstract_origin: return "DW_AT_abstract_origin"; - case DW_AT_accessibility: return "DW_AT_accessibility"; - case DW_AT_address_class: return "DW_AT_address_class"; - case DW_AT_artificial: return "DW_AT_artificial"; - case DW_AT_base_types: return "DW_AT_base_types"; - case DW_AT_calling_convention: return "DW_AT_calling_convention"; - case DW_AT_count: return "DW_AT_count"; - case DW_AT_data_member_location: return "DW_AT_data_member_location"; - case DW_AT_decl_column: return "DW_AT_decl_column"; - case DW_AT_decl_file: return "DW_AT_decl_file"; - case DW_AT_decl_line: return "DW_AT_decl_line"; - case DW_AT_declaration: return "DW_AT_declaration"; - case DW_AT_discr_list: return "DW_AT_discr_list"; - case DW_AT_encoding: return "DW_AT_encoding"; - case DW_AT_external: return "DW_AT_external"; - case DW_AT_frame_base: return "DW_AT_frame_base"; - case DW_AT_friend: return "DW_AT_friend"; - case DW_AT_identifier_case: return "DW_AT_identifier_case"; - case DW_AT_macro_info: return "DW_AT_macro_info"; - case DW_AT_namelist_items: return "DW_AT_namelist_items"; - case DW_AT_priority: return "DW_AT_priority"; - case DW_AT_segment: return "DW_AT_segment"; - case DW_AT_specification: return "DW_AT_specification"; - case DW_AT_static_link: return "DW_AT_static_link"; - case DW_AT_type: return "DW_AT_type"; - case DW_AT_use_location: return "DW_AT_use_location"; - case DW_AT_variable_parameter: return "DW_AT_variable_parameter"; - case DW_AT_virtuality: return "DW_AT_virtuality"; - case DW_AT_vtable_elem_location: return "DW_AT_vtable_elem_location"; + case DW_AT_sibling: return "DW_AT_sibling"; + case DW_AT_location: return "DW_AT_location"; + case DW_AT_name: return "DW_AT_name"; + case DW_AT_ordering: return "DW_AT_ordering"; + case DW_AT_subscr_data: return "DW_AT_subscr_data"; + case DW_AT_byte_size: return "DW_AT_byte_size"; + case DW_AT_bit_offset: return "DW_AT_bit_offset"; + case DW_AT_bit_size: return "DW_AT_bit_size"; + case DW_AT_element_list: return "DW_AT_element_list"; + case DW_AT_stmt_list: return "DW_AT_stmt_list"; + case DW_AT_low_pc: return "DW_AT_low_pc"; + case DW_AT_high_pc: return "DW_AT_high_pc"; + case DW_AT_language: return "DW_AT_language"; + case DW_AT_member: return "DW_AT_member"; + case DW_AT_discr: return "DW_AT_discr"; + case DW_AT_discr_value: return "DW_AT_discr_value"; + case DW_AT_visibility: return "DW_AT_visibility"; + case DW_AT_import: return "DW_AT_import"; + case DW_AT_string_length: return "DW_AT_string_length"; + case DW_AT_common_reference: return "DW_AT_common_reference"; + case DW_AT_comp_dir: return "DW_AT_comp_dir"; + case DW_AT_const_value: return "DW_AT_const_value"; + case DW_AT_containing_type: return "DW_AT_containing_type"; + case DW_AT_default_value: return "DW_AT_default_value"; + case DW_AT_inline: return "DW_AT_inline"; + case DW_AT_is_optional: return "DW_AT_is_optional"; + case DW_AT_lower_bound: return "DW_AT_lower_bound"; + case DW_AT_producer: return "DW_AT_producer"; + case DW_AT_prototyped: return "DW_AT_prototyped"; + case DW_AT_return_addr: return "DW_AT_return_addr"; + case DW_AT_start_scope: return "DW_AT_start_scope"; + case DW_AT_stride_size: return "DW_AT_stride_size"; + case DW_AT_upper_bound: return "DW_AT_upper_bound"; + case DW_AT_abstract_origin: return "DW_AT_abstract_origin"; + case DW_AT_accessibility: return "DW_AT_accessibility"; + case DW_AT_address_class: return "DW_AT_address_class"; + case DW_AT_artificial: return "DW_AT_artificial"; + case DW_AT_base_types: return "DW_AT_base_types"; + case DW_AT_calling_convention: return "DW_AT_calling_convention"; + case DW_AT_count: return "DW_AT_count"; + case DW_AT_data_member_location: return "DW_AT_data_member_location"; + case DW_AT_decl_column: return "DW_AT_decl_column"; + case DW_AT_decl_file: return "DW_AT_decl_file"; + case DW_AT_decl_line: return "DW_AT_decl_line"; + case DW_AT_declaration: return "DW_AT_declaration"; + case DW_AT_discr_list: return "DW_AT_discr_list"; + case DW_AT_encoding: return "DW_AT_encoding"; + case DW_AT_external: return "DW_AT_external"; + case DW_AT_frame_base: return "DW_AT_frame_base"; + case DW_AT_friend: return "DW_AT_friend"; + case DW_AT_identifier_case: return "DW_AT_identifier_case"; + case DW_AT_macro_info: return "DW_AT_macro_info"; + case DW_AT_namelist_items: return "DW_AT_namelist_items"; + case DW_AT_priority: return "DW_AT_priority"; + case DW_AT_segment: return "DW_AT_segment"; + case DW_AT_specification: return "DW_AT_specification"; + case DW_AT_static_link: return "DW_AT_static_link"; + case DW_AT_type: return "DW_AT_type"; + case DW_AT_use_location: return "DW_AT_use_location"; + case DW_AT_variable_parameter: return "DW_AT_variable_parameter"; + case DW_AT_virtuality: return "DW_AT_virtuality"; + case DW_AT_vtable_elem_location: return "DW_AT_vtable_elem_location"; /* DWARF 2.1 values. */ - case DW_AT_allocated: return "DW_AT_allocated"; - case DW_AT_associated: return "DW_AT_associated"; - case DW_AT_data_location: return "DW_AT_data_location"; - case DW_AT_stride: return "DW_AT_stride"; - case DW_AT_entry_pc: return "DW_AT_entry_pc"; - case DW_AT_use_UTF8: return "DW_AT_use_UTF8"; - case DW_AT_extension: return "DW_AT_extension"; - case DW_AT_ranges: return "DW_AT_ranges"; - case DW_AT_trampoline: return "DW_AT_trampoline"; - case DW_AT_call_column: return "DW_AT_call_column"; - case DW_AT_call_file: return "DW_AT_call_file"; - case DW_AT_call_line: return "DW_AT_call_line"; + case DW_AT_allocated: return "DW_AT_allocated"; + case DW_AT_associated: return "DW_AT_associated"; + case DW_AT_data_location: return "DW_AT_data_location"; + case DW_AT_stride: return "DW_AT_stride"; + case DW_AT_entry_pc: return "DW_AT_entry_pc"; + case DW_AT_use_UTF8: return "DW_AT_use_UTF8"; + case DW_AT_extension: return "DW_AT_extension"; + case DW_AT_ranges: return "DW_AT_ranges"; + case DW_AT_trampoline: return "DW_AT_trampoline"; + case DW_AT_call_column: return "DW_AT_call_column"; + case DW_AT_call_file: return "DW_AT_call_file"; + case DW_AT_call_line: return "DW_AT_call_line"; /* SGI/MIPS extensions. */ - case DW_AT_MIPS_fde: return "DW_AT_MIPS_fde"; - case DW_AT_MIPS_loop_begin: return "DW_AT_MIPS_loop_begin"; - case DW_AT_MIPS_tail_loop_begin: return "DW_AT_MIPS_tail_loop_begin"; - case DW_AT_MIPS_epilog_begin: return "DW_AT_MIPS_epilog_begin"; + case DW_AT_MIPS_fde: return "DW_AT_MIPS_fde"; + case DW_AT_MIPS_loop_begin: return "DW_AT_MIPS_loop_begin"; + case DW_AT_MIPS_tail_loop_begin: return "DW_AT_MIPS_tail_loop_begin"; + case DW_AT_MIPS_epilog_begin: return "DW_AT_MIPS_epilog_begin"; case DW_AT_MIPS_loop_unroll_factor: return "DW_AT_MIPS_loop_unroll_factor"; - case DW_AT_MIPS_software_pipeline_depth: return "DW_AT_MIPS_software_pipeline_depth"; - case DW_AT_MIPS_linkage_name: return "DW_AT_MIPS_linkage_name"; - case DW_AT_MIPS_stride: return "DW_AT_MIPS_stride"; - case DW_AT_MIPS_abstract_name: return "DW_AT_MIPS_abstract_name"; - case DW_AT_MIPS_clone_origin: return "DW_AT_MIPS_clone_origin"; - case DW_AT_MIPS_has_inlines: return "DW_AT_MIPS_has_inlines"; + case DW_AT_MIPS_software_pipeline_depth: + return "DW_AT_MIPS_software_pipeline_depth"; + case DW_AT_MIPS_linkage_name: return "DW_AT_MIPS_linkage_name"; + case DW_AT_MIPS_stride: return "DW_AT_MIPS_stride"; + case DW_AT_MIPS_abstract_name: return "DW_AT_MIPS_abstract_name"; + case DW_AT_MIPS_clone_origin: return "DW_AT_MIPS_clone_origin"; + case DW_AT_MIPS_has_inlines: return "DW_AT_MIPS_has_inlines"; /* GNU extensions. */ - case DW_AT_sf_names: return "DW_AT_sf_names"; - case DW_AT_src_info: return "DW_AT_src_info"; - case DW_AT_mac_info: return "DW_AT_mac_info"; - case DW_AT_src_coords: return "DW_AT_src_coords"; - case DW_AT_body_begin: return "DW_AT_body_begin"; - case DW_AT_body_end: return "DW_AT_body_end"; - case DW_AT_GNU_vector: return "DW_AT_GNU_vector"; + case DW_AT_sf_names: return "DW_AT_sf_names"; + case DW_AT_src_info: return "DW_AT_src_info"; + case DW_AT_mac_info: return "DW_AT_mac_info"; + case DW_AT_src_coords: return "DW_AT_src_coords"; + case DW_AT_body_begin: return "DW_AT_body_begin"; + case DW_AT_body_end: return "DW_AT_body_end"; + case DW_AT_GNU_vector: return "DW_AT_GNU_vector"; + /* UPC extension. */ + case DW_AT_upc_threads_scaled: return "DW_AT_upc_threads_scaled"; default: { - static char buffer [100]; + static char buffer[100]; sprintf (buffer, _("Unknown AT value: %lx"), attribute); return buffer; @@ -6760,30 +6892,30 @@ get_FORM_name (form) { switch (form) { - case DW_FORM_addr: return "DW_FORM_addr"; - case DW_FORM_block2: return "DW_FORM_block2"; - case DW_FORM_block4: return "DW_FORM_block4"; - case DW_FORM_data2: return "DW_FORM_data2"; - case DW_FORM_data4: return "DW_FORM_data4"; - case DW_FORM_data8: return "DW_FORM_data8"; - case DW_FORM_string: return "DW_FORM_string"; - case DW_FORM_block: return "DW_FORM_block"; - case DW_FORM_block1: return "DW_FORM_block1"; - case DW_FORM_data1: return "DW_FORM_data1"; - case DW_FORM_flag: return "DW_FORM_flag"; - case DW_FORM_sdata: return "DW_FORM_sdata"; - case DW_FORM_strp: return "DW_FORM_strp"; - case DW_FORM_udata: return "DW_FORM_udata"; - case DW_FORM_ref_addr: return "DW_FORM_ref_addr"; - case DW_FORM_ref1: return "DW_FORM_ref1"; - case DW_FORM_ref2: return "DW_FORM_ref2"; - case DW_FORM_ref4: return "DW_FORM_ref4"; - case DW_FORM_ref8: return "DW_FORM_ref8"; - case DW_FORM_ref_udata: return "DW_FORM_ref_udata"; - case DW_FORM_indirect: return "DW_FORM_indirect"; + case DW_FORM_addr: return "DW_FORM_addr"; + case DW_FORM_block2: return "DW_FORM_block2"; + case DW_FORM_block4: return "DW_FORM_block4"; + case DW_FORM_data2: return "DW_FORM_data2"; + case DW_FORM_data4: return "DW_FORM_data4"; + case DW_FORM_data8: return "DW_FORM_data8"; + case DW_FORM_string: return "DW_FORM_string"; + case DW_FORM_block: return "DW_FORM_block"; + case DW_FORM_block1: return "DW_FORM_block1"; + case DW_FORM_data1: return "DW_FORM_data1"; + case DW_FORM_flag: return "DW_FORM_flag"; + case DW_FORM_sdata: return "DW_FORM_sdata"; + case DW_FORM_strp: return "DW_FORM_strp"; + case DW_FORM_udata: return "DW_FORM_udata"; + case DW_FORM_ref_addr: return "DW_FORM_ref_addr"; + case DW_FORM_ref1: return "DW_FORM_ref1"; + case DW_FORM_ref2: return "DW_FORM_ref2"; + case DW_FORM_ref4: return "DW_FORM_ref4"; + case DW_FORM_ref8: return "DW_FORM_ref8"; + case DW_FORM_ref_udata: return "DW_FORM_ref_udata"; + case DW_FORM_indirect: return "DW_FORM_indirect"; default: { - static char buffer [100]; + static char buffer[100]; sprintf (buffer, _("Unknown FORM value: %lx"), form); return buffer; @@ -6796,39 +6928,39 @@ get_FORM_name (form) is simple to implement. */ typedef struct abbrev_attr { - unsigned long attribute; - unsigned long form; - struct abbrev_attr * next; + unsigned long attribute; + unsigned long form; + struct abbrev_attr *next; } abbrev_attr; typedef struct abbrev_entry { - unsigned long entry; - unsigned long tag; - int children; - struct abbrev_attr * first_attr; - struct abbrev_attr * last_attr; - struct abbrev_entry * next; + unsigned long entry; + unsigned long tag; + int children; + struct abbrev_attr *first_attr; + struct abbrev_attr *last_attr; + struct abbrev_entry *next; } abbrev_entry; -static abbrev_entry * first_abbrev = NULL; -static abbrev_entry * last_abbrev = NULL; +static abbrev_entry *first_abbrev = NULL; +static abbrev_entry *last_abbrev = NULL; static void -free_abbrevs PARAMS ((void)) +free_abbrevs () { - abbrev_entry * abbrev; + abbrev_entry *abbrev; for (abbrev = first_abbrev; abbrev;) { - abbrev_entry * next = abbrev->next; - abbrev_attr * attr; + abbrev_entry *next = abbrev->next; + abbrev_attr *attr; for (attr = abbrev->first_attr; attr;) { - abbrev_attr * next = attr->next; + abbrev_attr *next = attr->next; free (attr); attr = next; @@ -6845,11 +6977,11 @@ static void add_abbrev (number, tag, children) unsigned long number; unsigned long tag; - int children; + int children; { - abbrev_entry * entry; + abbrev_entry *entry; - entry = (abbrev_entry *) malloc (sizeof (* entry)); + entry = (abbrev_entry *) malloc (sizeof (*entry)); if (entry == NULL) /* ugg */ @@ -6875,9 +7007,9 @@ add_abbrev_attr (attribute, form) unsigned long attribute; unsigned long form; { - abbrev_attr * attr; + abbrev_attr *attr; - attr = (abbrev_attr *) malloc (sizeof (* attr)); + attr = (abbrev_attr *) malloc (sizeof (*attr)); if (attr == NULL) /* ugg */ @@ -6902,19 +7034,19 @@ add_abbrev_attr (attribute, form) static unsigned char * process_abbrev_section (start, end) - unsigned char * start; - unsigned char * end; + unsigned char *start; + unsigned char *end; { if (first_abbrev != NULL) return NULL; while (start < end) { - int bytes_read; + int bytes_read; unsigned long entry; unsigned long tag; unsigned long attribute; - int children; + int children; entry = read_leb128 (start, & bytes_read, 0); start += bytes_read; @@ -6928,7 +7060,7 @@ process_abbrev_section (start, end) tag = read_leb128 (start, & bytes_read, 0); start += bytes_read; - children = * start ++; + children = *start++; add_abbrev (entry, tag, children); @@ -6954,12 +7086,12 @@ process_abbrev_section (start, end) static int display_debug_macinfo (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; { - unsigned char * end = start + section->sh_size; - unsigned char * curr = start; + unsigned char *end = start + section->sh_size; + unsigned char *curr = start; unsigned int bytes_read; enum dwarf_macinfo_record_type op; @@ -6968,10 +7100,10 @@ display_debug_macinfo (section, start, f while (curr < end) { unsigned int lineno; - const char * string; + const char *string; - op = * curr; - curr ++; + op = *curr; + curr++; switch (op) { @@ -7028,12 +7160,12 @@ display_debug_macinfo (section, start, f static int display_debug_abbrev (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; { - abbrev_entry * entry; - unsigned char * end = start + section->sh_size; + abbrev_entry *entry; + unsigned char *end = start + section->sh_size; printf (_("Contents of the %s section:\n\n"), SECTION_NAME (section)); @@ -7048,7 +7180,7 @@ display_debug_abbrev (section, start, fi for (entry = first_abbrev; entry; entry = entry->next) { - abbrev_attr * attr; + abbrev_attr *attr; printf (_(" %ld %s [%s]\n"), entry->entry, @@ -7075,13 +7207,13 @@ display_debug_abbrev (section, start, fi static unsigned char * display_block (data, length) - unsigned char * data; - unsigned long length; + unsigned char *data; + unsigned long length; { printf (_(" %lu byte block: "), length); while (length --) - printf ("%lx ", (unsigned long) byte_get (data ++, 1)); + printf ("%lx ", (unsigned long) byte_get (data++, 1)); return data; } @@ -7089,17 +7221,17 @@ display_block (data, length) static void decode_location_expression (data, pointer_size, length) unsigned char * data; - unsigned int pointer_size; - unsigned long length; + unsigned int pointer_size; + unsigned long length; { - unsigned op; - int bytes_read; - unsigned long uvalue; - unsigned char * end = data + length; + unsigned op; + int bytes_read; + unsigned long uvalue; + unsigned char *end = data + length; while (data < end) { - op = * data ++; + op = *data++; switch (op) { @@ -7418,15 +7550,15 @@ decode_location_expression (data, pointe } } -static const char * debug_loc_contents; -static bfd_vma debug_loc_size; +static const char *debug_loc_contents; +static bfd_vma debug_loc_size; static void load_debug_loc (file) - FILE * file; + FILE *file; { - Elf32_Internal_Shdr * sec; - unsigned int i; + Elf_Internal_Shdr *sec; + unsigned int i; /* If it is already loaded, do nothing. */ if (debug_loc_contents != NULL) @@ -7435,7 +7567,7 @@ load_debug_loc (file) /* Locate the .debug_loc section. */ for (i = 0, sec = section_headers; i < elf_header.e_shnum; - i ++, sec ++) + i++, sec++) if (strcmp (SECTION_NAME (sec), ".debug_loc") == 0) break; @@ -7463,9 +7595,9 @@ free_debug_loc () static int display_debug_loc (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; { unsigned char *section_end; unsigned long bytes; @@ -7496,13 +7628,12 @@ display_debug_loc (section, start, file) while (1) { - /* Normally, the lists in the debug_loc section are related to a - given compilation unit, and thus, we would use the - pointer size of that compilation unit. However, since we are - displaying it seperately here, we either have to store - pointer sizes of all compilation units, or assume they don't - change. We assume, like the debug_line display, that - it doesn't change. */ + /* Normally, the lists in the debug_loc section are related to a + given compilation unit, and thus, we would use the pointer size + of that compilation unit. However, since we are displaying it + seperately here, we either have to store pointer sizes of all + compilation units, or assume they don't change. We assume, + like the debug_line display, that it doesn't change. */ begin = byte_get (start, debug_line_pointer_size); start += debug_line_pointer_size; end = byte_get (start, debug_line_pointer_size); @@ -7511,6 +7642,10 @@ display_debug_loc (section, start, file) if (begin == 0 && end == 0) break; + /* For now, skip any base address specifiers. */ + if (begin == 0xffffffff) + continue; + begin += addr; end += addr; @@ -7528,15 +7663,15 @@ display_debug_loc (section, start, file) return 1; } -static const char * debug_str_contents; -static bfd_vma debug_str_size; +static const char *debug_str_contents; +static bfd_vma debug_str_size; static void load_debug_str (file) - FILE * file; + FILE *file; { - Elf32_Internal_Shdr * sec; - unsigned int i; + Elf_Internal_Shdr *sec; + unsigned int i; /* If it is already loaded, do nothing. */ if (debug_str_contents != NULL) @@ -7545,7 +7680,7 @@ load_debug_str (file) /* Locate the .debug_str section. */ for (i = 0, sec = section_headers; i < elf_header.e_shnum; - i ++, sec ++) + i++, sec++) if (strcmp (SECTION_NAME (sec), ".debug_str") == 0) break; @@ -7585,12 +7720,12 @@ fetch_indirect_string (offset) static int display_debug_str (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; { - unsigned long bytes; - bfd_vma addr; + unsigned long bytes; + bfd_vma addr; addr = section->sh_addr; bytes = section->sh_size; @@ -7616,7 +7751,7 @@ display_debug_str (section, start, file) for (j = 0; j < 16; j++) { if (j < lbytes) - printf ("%2.2x", start [j]); + printf ("%2.2x", start[j]); else printf (" "); @@ -7626,7 +7761,7 @@ display_debug_str (section, start, file) for (j = 0; j < lbytes; j++) { - k = start [j]; + k = start[j]; if (k >= ' ' && k < 0x80) printf ("%c", k); else @@ -7645,15 +7780,15 @@ display_debug_str (section, start, file) static unsigned char * read_and_display_attr_value (attribute, form, data, cu_offset, pointer_size) - unsigned long attribute; - unsigned long form; - unsigned char * data; - unsigned long cu_offset; - unsigned long pointer_size; -{ - unsigned long uvalue = 0; - unsigned char * block_start = NULL; - int bytes_read; + unsigned long attribute; + unsigned long form; + unsigned char *data; + unsigned long cu_offset; + unsigned long pointer_size; +{ + unsigned long uvalue = 0; + unsigned char *block_start = NULL; + int bytes_read; switch (form) { @@ -7674,7 +7809,7 @@ read_and_display_attr_value (attribute, case DW_FORM_ref1: case DW_FORM_flag: case DW_FORM_data1: - uvalue = byte_get (data ++, 1); + uvalue = byte_get (data++, 1); break; case DW_FORM_ref2: @@ -7793,51 +7928,65 @@ read_and_display_attr_value (attribute, case DW_AT_inline: switch (uvalue) { - case DW_INL_not_inlined: printf (_("(not inlined)")); break; - case DW_INL_inlined: printf (_("(inlined)")); break; - case DW_INL_declared_not_inlined: printf (_("(declared as inline but ignored)")); break; - case DW_INL_declared_inlined: printf (_("(declared as inline and inlined)")); break; - default: printf (_(" (Unknown inline attribute value: %lx)"), uvalue); break; + case DW_INL_not_inlined: + printf (_("(not inlined)")); + break; + case DW_INL_inlined: + printf (_("(inlined)")); + break; + case DW_INL_declared_not_inlined: + printf (_("(declared as inline but ignored)")); + break; + case DW_INL_declared_inlined: + printf (_("(declared as inline and inlined)")); + break; + default: + printf (_(" (Unknown inline attribute value: %lx)"), uvalue); + break; } break; case DW_AT_language: switch (uvalue) { - case DW_LANG_C: printf ("(non-ANSI C)"); break; - case DW_LANG_C89: printf ("(ANSI C)"); break; - case DW_LANG_C_plus_plus: printf ("(C++)"); break; - case DW_LANG_Fortran77: printf ("(FORTRAN 77)"); break; - case DW_LANG_Fortran90: printf ("(Fortran 90)"); break; - case DW_LANG_Modula2: printf ("(Modula 2)"); break; - case DW_LANG_Pascal83: printf ("(ANSI Pascal)"); break; - case DW_LANG_Ada83: printf ("(Ada)"); break; - case DW_LANG_Cobol74: printf ("(Cobol 74)"); break; - case DW_LANG_Cobol85: printf ("(Cobol 85)"); break; - /* DWARF 2.1 values. */ - case DW_LANG_C99: printf ("(ANSI C99)"); break; - case DW_LANG_Ada95: printf ("(ADA 95)"); break; - case DW_LANG_Fortran95: printf ("(Fortran 95)"); break; + case DW_LANG_C: printf ("(non-ANSI C)"); break; + case DW_LANG_C89: printf ("(ANSI C)"); break; + case DW_LANG_C_plus_plus: printf ("(C++)"); break; + case DW_LANG_Fortran77: printf ("(FORTRAN 77)"); break; + case DW_LANG_Fortran90: printf ("(Fortran 90)"); break; + case DW_LANG_Modula2: printf ("(Modula 2)"); break; + case DW_LANG_Pascal83: printf ("(ANSI Pascal)"); break; + case DW_LANG_Ada83: printf ("(Ada)"); break; + case DW_LANG_Cobol74: printf ("(Cobol 74)"); break; + case DW_LANG_Cobol85: printf ("(Cobol 85)"); break; + /* DWARF 2.1 values. */ + case DW_LANG_C99: printf ("(ANSI C99)"); break; + case DW_LANG_Ada95: printf ("(ADA 95)"); break; + case DW_LANG_Fortran95: printf ("(Fortran 95)"); break; /* MIPS extension. */ - case DW_LANG_Mips_Assembler: printf ("(MIPS assembler)"); break; - default: printf ("(Unknown: %lx)", uvalue); break; + case DW_LANG_Mips_Assembler: printf ("(MIPS assembler)"); break; + /* UPC extension. */ + case DW_LANG_Upc: printf ("(Unified Parallel C)"); break; + default: + printf ("(Unknown: %lx)", uvalue); + break; } break; case DW_AT_encoding: switch (uvalue) { - case DW_ATE_void: printf ("(void)"); break; - case DW_ATE_address: printf ("(machine address)"); break; - case DW_ATE_boolean: printf ("(boolean)"); break; - case DW_ATE_complex_float: printf ("(complex float)"); break; - case DW_ATE_float: printf ("(float)"); break; - case DW_ATE_signed: printf ("(signed)"); break; - case DW_ATE_signed_char: printf ("(signed char)"); break; - case DW_ATE_unsigned: printf ("(unsigned)"); break; - case DW_ATE_unsigned_char: printf ("(unsigned char)"); break; + case DW_ATE_void: printf ("(void)"); break; + case DW_ATE_address: printf ("(machine address)"); break; + case DW_ATE_boolean: printf ("(boolean)"); break; + case DW_ATE_complex_float: printf ("(complex float)"); break; + case DW_ATE_float: printf ("(float)"); break; + case DW_ATE_signed: printf ("(signed)"); break; + case DW_ATE_signed_char: printf ("(signed char)"); break; + case DW_ATE_unsigned: printf ("(unsigned)"); break; + case DW_ATE_unsigned_char: printf ("(unsigned char)"); break; /* DWARF 2.1 value. */ - case DW_ATE_imaginary_float: printf ("(imaginary float)"); break; + case DW_ATE_imaginary_float: printf ("(imaginary float)"); break; default: if (uvalue >= DW_ATE_lo_user && uvalue <= DW_ATE_hi_user) @@ -7854,17 +8003,19 @@ read_and_display_attr_value (attribute, case DW_ACCESS_public: printf ("(public)"); break; case DW_ACCESS_protected: printf ("(protected)"); break; case DW_ACCESS_private: printf ("(private)"); break; - default: printf ("(unknown accessibility)"); break; + default: + printf ("(unknown accessibility)"); + break; } break; case DW_AT_visibility: switch (uvalue) { - case DW_VIS_local: printf ("(local)"); break; - case DW_VIS_exported: printf ("(exported)"); break; - case DW_VIS_qualified: printf ("(qualified)"); break; - default: printf ("(unknown visibility)"); break; + case DW_VIS_local: printf ("(local)"); break; + case DW_VIS_exported: printf ("(exported)"); break; + case DW_VIS_qualified: printf ("(qualified)"); break; + default: printf ("(unknown visibility)"); break; } break; @@ -7874,7 +8025,7 @@ read_and_display_attr_value (attribute, case DW_VIRTUALITY_none: printf ("(none)"); break; case DW_VIRTUALITY_virtual: printf ("(virtual)"); break; case DW_VIRTUALITY_pure_virtual:printf ("(pure_virtual)"); break; - default: printf ("(unknown virtuality)"); break; + default: printf ("(unknown virtuality)"); break; } break; @@ -7885,7 +8036,7 @@ read_and_display_attr_value (attribute, case DW_ID_up_case: printf ("(up_case)"); break; case DW_ID_down_case: printf ("(down_case)"); break; case DW_ID_case_insensitive: printf ("(case_insensitive)"); break; - default: printf ("(unknown case)"); break; + default: printf ("(unknown case)"); break; } break; @@ -7946,11 +8097,11 @@ read_and_display_attr_value (attribute, static unsigned char * read_and_display_attr (attribute, form, data, cu_offset, pointer_size) - unsigned long attribute; - unsigned long form; - unsigned char * data; - unsigned long cu_offset; - unsigned long pointer_size; + unsigned long attribute; + unsigned long form; + unsigned char *data; + unsigned long cu_offset; + unsigned long pointer_size; { printf (" %-18s:", get_AT_name (attribute)); data = read_and_display_attr_value (attribute, form, data, cu_offset, @@ -7961,12 +8112,12 @@ read_and_display_attr (attribute, form, static int display_debug_info (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file; { - unsigned char * end = start + section->sh_size; - unsigned char * section_begin = start; + unsigned char *end = start + section->sh_size; + unsigned char *section_begin = start; printf (_("The section %s contains:\n\n"), SECTION_NAME (section)); @@ -7975,13 +8126,13 @@ display_debug_info (section, start, file while (start < end) { - DWARF2_External_CompUnit * external; - DWARF2_Internal_CompUnit compunit; - Elf32_Internal_Shdr * relsec; - unsigned char * tags; - unsigned int i; - int level; - unsigned long cu_offset; + DWARF2_External_CompUnit *external; + DWARF2_Internal_CompUnit compunit; + Elf_Internal_Shdr *relsec; + unsigned char *tags; + unsigned int i; + int level; + unsigned long cu_offset; external = (DWARF2_External_CompUnit *) start; @@ -8004,7 +8155,7 @@ display_debug_info (section, start, file { unsigned long nrelas; Elf_Internal_Rela *rela, *rp; - Elf32_Internal_Shdr *symsec; + Elf_Internal_Shdr *symsec; Elf_Internal_Sym *symtab; Elf_Internal_Sym *sym; @@ -8060,7 +8211,7 @@ display_debug_info (section, start, file break; } - tags = start + sizeof (* external); + tags = start + sizeof (*external); cu_offset = start - section_begin; start += compunit.cu_length + sizeof (external->cu_length); @@ -8080,13 +8231,13 @@ display_debug_info (section, start, file /* Read in the abbrevs used by this compilation unit. */ { - Elf32_Internal_Shdr * sec; - unsigned char * begin; + Elf_Internal_Shdr *sec; + unsigned char *begin; /* Locate the .debug_abbrev section and process it. */ for (i = 0, sec = section_headers; i < elf_header.e_shnum; - i ++, sec ++) + i++, sec++) if (strcmp (SECTION_NAME (sec), ".debug_abbrev") == 0) break; @@ -8111,10 +8262,10 @@ display_debug_info (section, start, file level = 0; while (tags < start) { - int bytes_read; - unsigned long abbrev_number; - abbrev_entry * entry; - abbrev_attr * attr; + int bytes_read; + unsigned long abbrev_number; + abbrev_entry *entry; + abbrev_attr *attr; abbrev_number = read_leb128 (tags, & bytes_read, 0); tags += bytes_read; @@ -8167,22 +8318,22 @@ display_debug_info (section, start, file static int display_debug_aranges (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; { - unsigned char * end = start + section->sh_size; + unsigned char *end = start + section->sh_size; printf (_("The section %s contains:\n\n"), SECTION_NAME (section)); while (start < end) { - DWARF2_External_ARange * external; - DWARF2_Internal_ARange arange; - unsigned char * ranges; - unsigned long length; - unsigned long address; - int excess; + DWARF2_External_ARange *external; + DWARF2_Internal_ARange arange; + unsigned char *ranges; + unsigned long length; + unsigned long address; + int excess; external = (DWARF2_External_ARange *) start; @@ -8212,10 +8363,10 @@ display_debug_aranges (section, start, f printf (_("\n Address Length\n")); - ranges = start + sizeof (* external); + ranges = start + sizeof (*external); /* Must pad to an alignment boundary that is twice the pointer size. */ - excess = sizeof (* external) % (2 * arange.ar_pointer_size); + excess = sizeof (*external) % (2 * arange.ar_pointer_size); if (excess) ranges += (2 * arange.ar_pointer_size) - excess; @@ -8246,21 +8397,21 @@ display_debug_aranges (section, start, f typedef struct Frame_Chunk { - struct Frame_Chunk * next; - unsigned char * chunk_start; - int ncols; + struct Frame_Chunk *next; + unsigned char *chunk_start; + int ncols; /* DW_CFA_{undefined,same_value,offset,register,unreferenced} */ - short int * col_type; - int * col_offset; - char * augmentation; - unsigned int code_factor; - int data_factor; - unsigned long pc_begin; - unsigned long pc_range; - int cfa_reg; - int cfa_offset; - int ra; - unsigned char fde_encoding; + short int *col_type; + int *col_offset; + char *augmentation; + unsigned int code_factor; + int data_factor; + unsigned long pc_begin; + unsigned long pc_range; + int cfa_reg; + int cfa_offset; + int ra; + unsigned char fde_encoding; } Frame_Chunk; @@ -8274,7 +8425,7 @@ static int size_of_encoded_value PARAMS static void frame_need_space (fc, reg) - Frame_Chunk * fc; + Frame_Chunk *fc; int reg; { int prev = fc->ncols; @@ -8298,23 +8449,23 @@ frame_need_space (fc, reg) static void frame_display_row (fc, need_col_headers, max_regs) - Frame_Chunk * fc; - int * need_col_headers; - int * max_regs; + Frame_Chunk *fc; + int *need_col_headers; + int *max_regs; { int r; char tmp[100]; - if (* max_regs < fc->ncols) - * max_regs = fc->ncols; + if (*max_regs < fc->ncols) + *max_regs = fc->ncols; - if (* need_col_headers) + if (*need_col_headers) { - * need_col_headers = 0; + *need_col_headers = 0; printf (" LOC CFA "); - for (r = 0; r < * max_regs; r++) + for (r = 0; r < *max_regs; r++) if (fc->col_type[r] != DW_CFA_unreferenced) { if (r == fc->ra) @@ -8378,34 +8529,34 @@ size_of_encoded_value (encoding) static int display_debug_frames (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; -{ - unsigned char * end = start + section->sh_size; - unsigned char * section_start = start; - Frame_Chunk * chunks = 0; - Frame_Chunk * remembered_state = 0; - Frame_Chunk * rs; - int is_eh = (strcmp (SECTION_NAME (section), ".eh_frame") == 0); - int length_return; - int max_regs = 0; - int addr_size = is_32bit_elf ? 4 : 8; + Elf_Internal_Shdr *section; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; +{ + unsigned char *end = start + section->sh_size; + unsigned char *section_start = start; + Frame_Chunk *chunks = 0; + Frame_Chunk *remembered_state = 0; + Frame_Chunk *rs; + int is_eh = (strcmp (SECTION_NAME (section), ".eh_frame") == 0); + int length_return; + int max_regs = 0; + int addr_size = is_32bit_elf ? 4 : 8; printf (_("The section %s contains:\n"), SECTION_NAME (section)); while (start < end) { - unsigned char * saved_start; - unsigned char * block_end; - unsigned long length; - unsigned long cie_id; - Frame_Chunk * fc; - Frame_Chunk * cie; - int need_col_headers = 1; - unsigned char * augmentation_data = NULL; - unsigned long augmentation_data_len = 0; - int encoded_ptr_size = addr_size; + unsigned char *saved_start; + unsigned char *block_end; + unsigned long length; + unsigned long cie_id; + Frame_Chunk *fc; + Frame_Chunk *cie; + int need_col_headers = 1; + unsigned char *augmentation_data = NULL; + unsigned long augmentation_data_len = 0; + int encoded_ptr_size = addr_size; saved_start = start; length = byte_get (start, 4); start += 4; @@ -8523,7 +8674,7 @@ display_debug_frames (section, start, fi } else { - unsigned char * look_for; + unsigned char *look_for; static Frame_Chunk fde_fc; fc = & fde_fc; @@ -8604,14 +8755,14 @@ display_debug_frames (section, start, fi { /* Start by making a pass over the chunk, allocating storage and taking note of what registers are used. */ - unsigned char * tmp = start; + unsigned char *tmp = start; while (start < block_end) { unsigned op, opa; unsigned long reg; - op = * start ++; + op = *start++; opa = op & 0x3f; if (op & 0xc0) op &= 0xc0; @@ -8713,7 +8864,7 @@ display_debug_frames (section, start, fi long l, ofs; bfd_vma vma; - op = * start ++; + op = *start++; opa = op & 0x3f; if (op & 0xc0) op &= 0xc0; @@ -8968,9 +9119,9 @@ display_debug_frames (section, start, fi static int display_debug_not_supported (section, start, file) - Elf32_Internal_Shdr * section; - unsigned char * start ATTRIBUTE_UNUSED; - FILE * file ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *section; + unsigned char *start ATTRIBUTE_UNUSED; + FILE *file ATTRIBUTE_UNUSED; { printf (_("Displaying the debug contents of section %s is not yet supported.\n"), SECTION_NAME (section)); @@ -8983,11 +9134,11 @@ display_debug_not_supported (section, st that all compilation units have the same address size. */ static int prescan_debug_info (section, start, file) - Elf32_Internal_Shdr * section ATTRIBUTE_UNUSED; - unsigned char * start; - FILE * file ATTRIBUTE_UNUSED; + Elf_Internal_Shdr *section ATTRIBUTE_UNUSED; + unsigned char *start; + FILE *file ATTRIBUTE_UNUSED; { - DWARF2_External_CompUnit * external; + DWARF2_External_CompUnit *external; external = (DWARF2_External_CompUnit *) start; @@ -9001,39 +9152,39 @@ prescan_debug_info (section, start, file sections. */ struct { - const char * const name; - int (* display) PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); - int (* prescan) PARAMS ((Elf32_Internal_Shdr *, unsigned char *, FILE *)); + const char *const name; + int (*display) PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); + int (*prescan) PARAMS ((Elf_Internal_Shdr *, unsigned char *, FILE *)); } debug_displays[] = { - { ".debug_abbrev", display_debug_abbrev, NULL }, - { ".debug_aranges", display_debug_aranges, NULL }, - { ".debug_frame", display_debug_frames, NULL }, - { ".debug_info", display_debug_info, prescan_debug_info }, - { ".debug_line", display_debug_lines, NULL }, - { ".debug_pubnames", display_debug_pubnames, NULL }, - { ".eh_frame", display_debug_frames, NULL }, - { ".debug_macinfo", display_debug_macinfo, NULL }, - { ".debug_str", display_debug_str, NULL }, - { ".debug_loc", display_debug_loc, NULL }, - { ".debug_pubtypes", display_debug_not_supported, NULL }, - { ".debug_ranges", display_debug_not_supported, NULL }, - { ".debug_static_func", display_debug_not_supported, NULL }, - { ".debug_static_vars", display_debug_not_supported, NULL }, - { ".debug_types", display_debug_not_supported, NULL }, - { ".debug_weaknames", display_debug_not_supported, NULL } + { ".debug_abbrev", display_debug_abbrev, NULL }, + { ".debug_aranges", display_debug_aranges, NULL }, + { ".debug_frame", display_debug_frames, NULL }, + { ".debug_info", display_debug_info, prescan_debug_info }, + { ".debug_line", display_debug_lines, NULL }, + { ".debug_pubnames", display_debug_pubnames, NULL }, + { ".eh_frame", display_debug_frames, NULL }, + { ".debug_macinfo", display_debug_macinfo, NULL }, + { ".debug_str", display_debug_str, NULL }, + { ".debug_loc", display_debug_loc, NULL }, + { ".debug_pubtypes", display_debug_not_supported, NULL }, + { ".debug_ranges", display_debug_not_supported, NULL }, + { ".debug_static_func", display_debug_not_supported, NULL }, + { ".debug_static_vars", display_debug_not_supported, NULL }, + { ".debug_types", display_debug_not_supported, NULL }, + { ".debug_weaknames", display_debug_not_supported, NULL } }; static int display_debug_section (section, file) - Elf32_Internal_Shdr * section; - FILE * file; + Elf_Internal_Shdr *section; + FILE *file; { - char * name = SECTION_NAME (section); - bfd_size_type length; - unsigned char * start; - int i; + char *name = SECTION_NAME (section); + bfd_size_type length; + unsigned char *start; + int i; length = section->sh_size; if (length == 0) @@ -9072,10 +9223,10 @@ display_debug_section (section, file) static int process_section_contents (file) - FILE * file; + FILE *file; { - Elf32_Internal_Shdr * section; - unsigned int i; + Elf_Internal_Shdr *section; + unsigned int i; if (! do_dump) return 1; @@ -9085,10 +9236,10 @@ process_section_contents (file) size of address (specified in .debug_info and .debug_aranges). */ for (i = 0, section = section_headers; i < elf_header.e_shnum && i < num_dump_sects; - i ++, section ++) + i++, section++) { - char * name = SECTION_NAME (section); - int j; + char *name = SECTION_NAME (section); + int j; if (section->sh_size == 0) continue; @@ -9099,8 +9250,8 @@ process_section_contents (file) { if (debug_displays[j].prescan != NULL) { - bfd_size_type length; - unsigned char * start; + bfd_size_type length; + unsigned char *start; length = section->sh_size; start = ((unsigned char *) @@ -9119,7 +9270,7 @@ process_section_contents (file) for (i = 0, section = section_headers; i < elf_header.e_shnum && i < num_dump_sects; - i ++, section ++) + i++, section++) { #ifdef SUPPORT_DISASSEMBLY if (dump_sects[i] & DISASS_DUMP) @@ -9162,9 +9313,9 @@ process_mips_fpe_exception (mask) static int process_mips_specific (file) - FILE * file; + FILE *file; { - Elf_Internal_Dyn * entry; + Elf_Internal_Dyn *entry; size_t liblist_offset = 0; size_t liblistno = 0; size_t conflictsno = 0; @@ -9200,7 +9351,7 @@ process_mips_specific (file) if (liblist_offset != 0 && liblistno != 0 && do_dynamic) { - Elf32_External_Lib * elib; + Elf32_External_Lib *elib; size_t cnt; elib = ((Elf32_External_Lib *) @@ -9219,7 +9370,7 @@ process_mips_specific (file) Elf32_Lib liblist; time_t time; char timebuf[20]; - struct tm * tmp; + struct tm *tmp; liblist.l_name = BYTE_GET (elib[cnt].l_name); time = BYTE_GET (elib[cnt].l_time_stamp); @@ -9243,7 +9394,7 @@ process_mips_specific (file) { static const struct { - const char * name; + const char *name; int bit; } l_flags_vals[] = @@ -9279,23 +9430,23 @@ process_mips_specific (file) if (options_offset != 0) { - Elf_External_Options * eopt; - Elf_Internal_Shdr * sect = section_headers; - Elf_Internal_Options * iopt; - Elf_Internal_Options * option; + Elf_External_Options *eopt; + Elf_Internal_Shdr *sect = section_headers; + Elf_Internal_Options *iopt; + Elf_Internal_Options *option; size_t offset; int cnt; /* Find the section header so that we get the size. */ while (sect->sh_type != SHT_MIPS_OPTIONS) - ++ sect; + ++sect; eopt = (Elf_External_Options *) get_data (NULL, file, options_offset, sect->sh_size, _("options")); if (eopt) { iopt = ((Elf_Internal_Options *) - malloc ((sect->sh_size / sizeof (eopt)) * sizeof (* iopt))); + malloc ((sect->sh_size / sizeof (eopt)) * sizeof (*iopt))); if (iopt == NULL) { error (_("Out of memory")); @@ -9307,7 +9458,7 @@ process_mips_specific (file) while (offset < sect->sh_size) { - Elf_External_Options * eoption; + Elf_External_Options *eoption; eoption = (Elf_External_Options *) ((char *) eopt + offset); @@ -9342,8 +9493,8 @@ process_mips_specific (file) if (elf_header.e_machine == EM_MIPS) { /* 32bit form. */ - Elf32_External_RegInfo * ereg; - Elf32_RegInfo reginfo; + Elf32_External_RegInfo *ereg; + Elf32_RegInfo reginfo; ereg = (Elf32_External_RegInfo *) (option + 1); reginfo.ri_gprmask = BYTE_GET (ereg->ri_gprmask); @@ -9363,7 +9514,7 @@ process_mips_specific (file) else { /* 64 bit form. */ - Elf64_External_RegInfo * ereg; + Elf64_External_RegInfo *ereg; Elf64_Internal_RegInfo reginfo; ereg = (Elf64_External_RegInfo *) (option + 1); @@ -9460,7 +9611,7 @@ process_mips_specific (file) break; } - len = sizeof (* eopt); + len = sizeof (*eopt); while (len < option->size) if (((char *) option)[len] >= ' ' && ((char *) option)[len] < 0x7f) @@ -9478,7 +9629,7 @@ process_mips_specific (file) if (conflicts_offset != 0 && conflictsno != 0) { - Elf32_Conflict * iconf; + Elf32_Conflict *iconf; size_t cnt; if (dynamic_symbols == NULL) @@ -9487,7 +9638,7 @@ process_mips_specific (file) return 0; } - iconf = (Elf32_Conflict *) malloc (conflictsno * sizeof (* iconf)); + iconf = (Elf32_Conflict *) malloc (conflictsno * sizeof (*iconf)); if (iconf == NULL) { error (_("Out of memory")); @@ -9496,11 +9647,11 @@ process_mips_specific (file) if (is_32bit_elf) { - Elf32_External_Conflict * econf32; + Elf32_External_Conflict *econf32; econf32 = ((Elf32_External_Conflict *) get_data (NULL, file, conflicts_offset, - conflictsno * sizeof (* econf32), + conflictsno * sizeof (*econf32), _("conflict"))); if (!econf32) return 0; @@ -9512,11 +9663,11 @@ process_mips_specific (file) } else { - Elf64_External_Conflict * econf64; + Elf64_External_Conflict *econf64; econf64 = ((Elf64_External_Conflict *) get_data (NULL, file, conflicts_offset, - conflictsno * sizeof (* econf64), + conflictsno * sizeof (*econf64), _("conflict"))); if (!econf64) return 0; @@ -9533,9 +9684,9 @@ process_mips_specific (file) for (cnt = 0; cnt < conflictsno; ++cnt) { - Elf_Internal_Sym * psym = & dynamic_symbols [iconf [cnt]]; + Elf_Internal_Sym *psym = & dynamic_symbols[iconf[cnt]]; - printf ("%5lu: %8lu ", (unsigned long) cnt, iconf [cnt]); + printf ("%5lu: %8lu ", (unsigned long) cnt, iconf[cnt]); print_vma (psym->st_value, FULL_HEX); putchar (' '); print_symbol (25, dynamic_strings + psym->st_name); @@ -9550,11 +9701,11 @@ process_mips_specific (file) static int process_gnu_liblist (file) - FILE * file; + FILE *file; { - Elf_Internal_Shdr * section, * string_sec; - Elf32_External_Lib * elib; - char * strtab; + Elf_Internal_Shdr *section, *string_sec; + Elf32_External_Lib *elib; + char *strtab; size_t cnt; unsigned i; @@ -9563,7 +9714,7 @@ process_gnu_liblist (file) for (i = 0, section = section_headers; i < elf_header.e_shnum; - i++, section ++) + i++, section++) { switch (section->sh_type) { @@ -9599,7 +9750,7 @@ process_gnu_liblist (file) Elf32_Lib liblist; time_t time; char timebuf[20]; - struct tm * tmp; + struct tm *tmp; liblist.l_name = BYTE_GET (elib[cnt].l_name); time = BYTE_GET (elib[cnt].l_time_stamp); @@ -9638,9 +9789,9 @@ get_note_type (e_type) { case NT_PRSTATUS: return _("NT_PRSTATUS (prstatus structure)"); case NT_FPREGSET: return _("NT_FPREGSET (floating point registers)"); - case NT_PRPSINFO: return _("NT_PRPSINFO (prpsinfo structure)"); - case NT_TASKSTRUCT: return _("NT_TASKSTRUCT (task structure)"); - case NT_PRXFPREG: return _("NT_PRXFPREG (user_xfpregs structure)"); + case NT_PRPSINFO: return _("NT_PRPSINFO (prpsinfo structure)"); + case NT_TASKSTRUCT: return _("NT_TASKSTRUCT (task structure)"); + case NT_PRXFPREG: return _("NT_PRXFPREG (user_xfpregs structure)"); case NT_PSTATUS: return _("NT_PSTATUS (pstatus structure)"); case NT_FPREGS: return _("NT_FPREGS (floating point registers)"); case NT_PSINFO: return _("NT_PSINFO (psinfo structure)"); @@ -9722,7 +9873,7 @@ get_netbsd_elfcore_note_type (e_type) If the value of namesz is zero, there is no name present. */ static int process_note (pnote) - Elf32_Internal_Note * pnote; + Elf_Internal_Note *pnote; { const char *nt; @@ -9753,13 +9904,13 @@ process_note (pnote) static int process_corefile_note_segment (file, offset, length) - FILE * file; + FILE *file; bfd_vma offset; bfd_vma length; { - Elf_External_Note * pnotes; - Elf_External_Note * external; - int res = 1; + Elf_External_Note *pnotes; + Elf_External_Note *external; + int res = 1; if (length <= 0) return 0; @@ -9777,9 +9928,9 @@ process_corefile_note_segment (file, off while (external < (Elf_External_Note *)((char *) pnotes + length)) { - Elf_External_Note * next; - Elf32_Internal_Note inote; - char * temp = NULL; + Elf_External_Note *next; + Elf_Internal_Note inote; + char *temp = NULL; inote.type = BYTE_GET (external->type); inote.namesz = BYTE_GET (external->namesz); @@ -9839,12 +9990,12 @@ process_corefile_note_segment (file, off static int process_corefile_note_segments (file) - FILE * file; + FILE *file; { - Elf_Internal_Phdr * program_headers; - Elf_Internal_Phdr * segment; - unsigned int i; - int res = 1; + Elf_Internal_Phdr *program_headers; + Elf_Internal_Phdr *segment; + unsigned int i; + int res = 1; program_headers = (Elf_Internal_Phdr *) malloc (elf_header.e_phnum * sizeof (Elf_Internal_Phdr)); @@ -9868,7 +10019,7 @@ process_corefile_note_segments (file) for (i = 0, segment = program_headers; i < elf_header.e_phnum; - i ++, segment ++) + i++, segment++) { if (segment->p_type == PT_NOTE) res &= process_corefile_note_segment (file, @@ -9883,7 +10034,7 @@ process_corefile_note_segments (file) static int process_corefile_contents (file) - FILE * file; + FILE *file; { /* If we have not been asked to display the notes then do nothing. */ if (! do_notes) @@ -9905,7 +10056,7 @@ process_corefile_contents (file) static int process_arch_specific (file) - FILE * file; + FILE *file; { if (! do_arch) return 1; @@ -9924,14 +10075,14 @@ process_arch_specific (file) static int get_file_header (file) - FILE * file; + FILE *file; { /* Read in the identity array. */ if (fread (elf_header.e_ident, EI_NIDENT, 1, file) != 1) return 0; /* Determine how to read the rest of the header. */ - switch (elf_header.e_ident [EI_DATA]) + switch (elf_header.e_ident[EI_DATA]) { default: /* fall through */ case ELFDATANONE: /* fall through */ @@ -9940,7 +10091,7 @@ get_file_header (file) } /* For now we only support 32 bit and 64 bit ELF files. */ - is_32bit_elf = (elf_header.e_ident [EI_CLASS] != ELFCLASS64); + is_32bit_elf = (elf_header.e_ident[EI_CLASS] != ELFCLASS64); /* Read in the rest of the header. */ if (is_32bit_elf) @@ -10012,10 +10163,10 @@ get_file_header (file) static int process_file (file_name) - char * file_name; + char *file_name; { - FILE * file; - struct stat statbuf; + FILE *file; + struct stat statbuf; unsigned int i; if (stat (file_name, & statbuf) < 0) @@ -10129,7 +10280,7 @@ process_file (file_name) symbols. */ void -print_address (unsigned int addr, FILE * outfile) +print_address (unsigned int addr, FILE *outfile) { fprintf (outfile,"0x%8.8x", addr); } @@ -10146,10 +10297,12 @@ int main PARAMS ((int, char **)); int main (argc, argv) - int argc; - char ** argv; + int argc; + char **argv; { int err; + char *cmdline_dump_sects = NULL; + unsigned num_cmdline_dump_sects = 0; #if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) setlocale (LC_MESSAGES, ""); @@ -10165,12 +10318,38 @@ main (argc, argv) if (optind < (argc - 1)) show_name = 1; + /* When processing more than one file remember the dump requests + issued on command line to reset them after each file. */ + if (optind + 1 < argc && dump_sects != NULL) + { + cmdline_dump_sects = malloc (num_dump_sects); + if (cmdline_dump_sects == NULL) + error (_("Out of memory allocating dump request table.")); + else + { + memcpy (cmdline_dump_sects, dump_sects, num_dump_sects); + num_cmdline_dump_sects = num_dump_sects; + } + } + err = 0; while (optind < argc) - err |= process_file (argv [optind ++]); + { + err |= process_file (argv[optind++]); + + /* Reset dump requests. */ + if (optind < argc && dump_sects != NULL) + { + num_dump_sects = num_cmdline_dump_sects; + if (num_cmdline_dump_sects > 0) + memcpy (dump_sects, cmdline_dump_sects, num_cmdline_dump_sects); + } + } if (dump_sects != NULL) free (dump_sects); + if (cmdline_dump_sects != NULL) + free (cmdline_dump_sects); return err; } diff -uprN binutils-2.13.90.0.16/binutils/rename.c binutils-2.13.90.0.18/binutils/rename.c --- binutils-2.13.90.0.16/binutils/rename.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/binutils/rename.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* rename.c -- rename a file, preserving symlinks. - Copyright 1999 Free Software Foundation, Inc. + Copyright 1999, 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -37,7 +37,8 @@ #define O_BINARY 0 #endif -static int simple_copy PARAMS ((const char *, const char *)); +static int simple_copy + PARAMS ((const char *, const char *)); /* The number of bytes to copy at once. */ #define COPY_BUF 8192 @@ -149,7 +150,7 @@ smart_rename (from, to, preserve_dates) const char *to; int preserve_dates; { - boolean exists; + bfd_boolean exists; struct stat s; int ret = 0; diff -uprN binutils-2.13.90.0.16/binutils/size.c binutils-2.13.90.0.18/binutils/size.c --- binutils-2.13.90.0.16/binutils/size.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/binutils/size.c Mon Dec 16 12:22:52 2002 @@ -1,6 +1,6 @@ /* size.c -- report size of various sections of an executable file. - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 - Free Software Foundation, Inc. + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -357,12 +357,12 @@ display_file (filename) return; } - if (bfd_check_format (file, bfd_archive) == true) + if (bfd_check_format (file, bfd_archive)) display_archive (file); else display_bfd (file); - if (bfd_close (file) == false) + if (!bfd_close (file)) { bfd_nonfatal (filename); return_code = 1; diff -uprN binutils-2.13.90.0.16/binutils/stabs.c binutils-2.13.90.0.18/binutils/stabs.c --- binutils-2.13.90.0.16/binutils/stabs.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/binutils/stabs.c Mon Dec 16 12:22:52 2002 @@ -53,8 +53,8 @@ struct stab_handle { /* The BFD. */ bfd *abfd; - /* True if this is stabs in sections. */ - boolean sections; + /* TRUE if this is stabs in sections. */ + bfd_boolean sections; /* The symbol table. */ asymbol **syms; /* The number of symbols. */ @@ -74,7 +74,7 @@ struct stab_handle int gcc_compiled; /* Whether an N_OPT symbol was seen that was not generated by gcc, so that we can detect the SunPRO compiler. */ - boolean n_opt_found; + bfd_boolean n_opt_found; /* The main file name. */ char *main_filename; /* A stack of unfinished N_BINCL files. */ @@ -82,7 +82,7 @@ struct stab_handle /* A list of finished N_BINCL files. */ struct bincl_file *bincl_list; /* Whether we are inside a function or not. */ - boolean within_function; + bfd_boolean within_function; /* The address of the end of the function, used if we have seen an N_FUN symbol while in a function. This is -1 if we have not seen an N_FUN (the normal case). */ @@ -101,7 +101,7 @@ struct stab_handle struct stab_tag *tags; /* Set by parse_stab_type if it sees a structure defined as a cross reference to itself. Reset by parse_stab_type otherwise. */ - boolean self_crossref; + bfd_boolean self_crossref; }; /* A list of these structures is used to hold pending variable @@ -151,61 +151,70 @@ struct stab_tag debug_type type; }; -static char *savestring PARAMS ((const char *, int)); -static bfd_vma parse_number PARAMS ((const char **, boolean *)); -static void bad_stab PARAMS ((const char *)); -static void warn_stab PARAMS ((const char *, const char *)); -static boolean parse_stab_string +static char *savestring + PARAMS ((const char *, int)); +static bfd_vma parse_number + PARAMS ((const char **, bfd_boolean *)); +static void bad_stab + PARAMS ((const char *)); +static void warn_stab + PARAMS ((const char *, const char *)); +static bfd_boolean parse_stab_string PARAMS ((PTR, struct stab_handle *, int, int, bfd_vma, const char *)); static debug_type parse_stab_type PARAMS ((PTR, struct stab_handle *, const char *, const char **, debug_type **)); -static boolean parse_stab_type_number +static bfd_boolean parse_stab_type_number PARAMS ((const char **, int *)); static debug_type parse_stab_range_type PARAMS ((PTR, struct stab_handle *, const char *, const char **, const int *)); -static debug_type parse_stab_sun_builtin_type PARAMS ((PTR, const char **)); +static debug_type parse_stab_sun_builtin_type + PARAMS ((PTR, const char **)); static debug_type parse_stab_sun_floating_type PARAMS ((PTR, const char **)); -static debug_type parse_stab_enum_type PARAMS ((PTR, const char **)); +static debug_type parse_stab_enum_type + PARAMS ((PTR, const char **)); static debug_type parse_stab_struct_type - PARAMS ((PTR, struct stab_handle *, const char *, const char **, boolean, + PARAMS ((PTR, struct stab_handle *, const char *, const char **, bfd_boolean, const int *)); -static boolean parse_stab_baseclasses +static bfd_boolean parse_stab_baseclasses PARAMS ((PTR, struct stab_handle *, const char **, debug_baseclass **)); -static boolean parse_stab_struct_fields +static bfd_boolean parse_stab_struct_fields PARAMS ((PTR, struct stab_handle *, const char **, debug_field **, - boolean *)); -static boolean parse_stab_cpp_abbrev + bfd_boolean *)); +static bfd_boolean parse_stab_cpp_abbrev PARAMS ((PTR, struct stab_handle *, const char **, debug_field *)); -static boolean parse_stab_one_struct_field +static bfd_boolean parse_stab_one_struct_field PARAMS ((PTR, struct stab_handle *, const char **, const char *, - debug_field *, boolean *)); -static boolean parse_stab_members + debug_field *, bfd_boolean *)); +static bfd_boolean parse_stab_members PARAMS ((PTR, struct stab_handle *, const char *, const char **, const int *, debug_method **)); static debug_type parse_stab_argtypes PARAMS ((PTR, struct stab_handle *, debug_type, const char *, const char *, - debug_type, const char *, boolean, boolean, const char **)); -static boolean parse_stab_tilde_field + debug_type, const char *, bfd_boolean, bfd_boolean, const char **)); +static bfd_boolean parse_stab_tilde_field PARAMS ((PTR, struct stab_handle *, const char **, const int *, - debug_type *, boolean *)); + debug_type *, bfd_boolean *)); static debug_type parse_stab_array_type - PARAMS ((PTR, struct stab_handle *, const char **, boolean)); -static void push_bincl PARAMS ((struct stab_handle *, const char *, bfd_vma)); -static const char *pop_bincl PARAMS ((struct stab_handle *)); -static boolean find_excl + PARAMS ((PTR, struct stab_handle *, const char **, bfd_boolean)); +static void push_bincl + PARAMS ((struct stab_handle *, const char *, bfd_vma)); +static const char *pop_bincl + PARAMS ((struct stab_handle *)); +static bfd_boolean find_excl PARAMS ((struct stab_handle *, const char *, bfd_vma)); -static boolean stab_record_variable +static bfd_boolean stab_record_variable PARAMS ((PTR, struct stab_handle *, const char *, debug_type, enum debug_var_kind, bfd_vma)); -static boolean stab_emit_pending_vars PARAMS ((PTR, struct stab_handle *)); +static bfd_boolean stab_emit_pending_vars + PARAMS ((PTR, struct stab_handle *)); static debug_type *stab_find_slot PARAMS ((struct stab_handle *, const int *)); static debug_type stab_find_type PARAMS ((PTR, struct stab_handle *, const int *)); -static boolean stab_record_type +static bfd_boolean stab_record_type PARAMS ((PTR, struct stab_handle *, const int *, debug_type)); static debug_type stab_xcoff_builtin_type PARAMS ((PTR, struct stab_handle *, int)); @@ -213,7 +222,7 @@ static debug_type stab_find_tagged_type PARAMS ((PTR, struct stab_handle *, const char *, int, enum debug_type_kind)); static debug_type *stab_demangle_argtypes - PARAMS ((PTR, struct stab_handle *, const char *, boolean *, unsigned int)); + PARAMS ((PTR, struct stab_handle *, const char *, bfd_boolean *, unsigned int)); /* Save a string in memory. */ @@ -235,13 +244,13 @@ savestring (start, len) static bfd_vma parse_number (pp, poverflow) const char **pp; - boolean *poverflow; + bfd_boolean *poverflow; { unsigned long ul; const char *orig; if (poverflow != NULL) - *poverflow = false; + *poverflow = FALSE; orig = *pp; @@ -263,22 +272,22 @@ parse_number (pp, poverflow) if (sizeof (bfd_vma) > sizeof (unsigned long)) { const char *p; - boolean neg; + bfd_boolean neg; int base; bfd_vma over, lastdig; - boolean overflow; + bfd_boolean overflow; bfd_vma v; /* Our own version of strtoul, for a bfd_vma. */ p = orig; - neg = false; + neg = FALSE; if (*p == '+') ++p; else if (*p == '-') { - neg = true; + neg = TRUE; ++p; } @@ -300,7 +309,7 @@ parse_number (pp, poverflow) over = ((bfd_vma) (bfd_signed_vma) -1) / (bfd_vma) base; lastdig = ((bfd_vma) (bfd_signed_vma) -1) % (bfd_vma) base; - overflow = false; + overflow = FALSE; v = 0; while (1) { @@ -321,7 +330,7 @@ parse_number (pp, poverflow) if (v > over || (v == over && (bfd_vma) d > lastdig)) { - overflow = true; + overflow = TRUE; break; } } @@ -338,7 +347,7 @@ parse_number (pp, poverflow) bfd_vma. */ if (poverflow != NULL) - *poverflow = true; + *poverflow = TRUE; else warn_stab (orig, _("numeric overflow")); @@ -370,7 +379,7 @@ PTR start_stab (dhandle, abfd, sections, syms, symcount) PTR dhandle ATTRIBUTE_UNUSED; bfd *abfd; - boolean sections; + bfd_boolean sections; asymbol **syms; long symcount; { @@ -392,7 +401,7 @@ start_stab (dhandle, abfd, sections, sym /* When we have processed all the stabs information, we need to go through and fill in all the undefined tags. */ -boolean +bfd_boolean finish_stab (dhandle, handle) PTR dhandle; PTR handle; @@ -404,8 +413,8 @@ finish_stab (dhandle, handle) { if (! stab_emit_pending_vars (dhandle, info) || ! debug_end_function (dhandle, info->function_end)) - return false; - info->within_function = false; + return FALSE; + info->within_function = FALSE; info->function_end = (bfd_vma) -1; } @@ -418,15 +427,15 @@ finish_stab (dhandle, handle) kind = DEBUG_KIND_STRUCT; st->slot = debug_make_undefined_tagged_type (dhandle, st->name, kind); if (st->slot == DEBUG_TYPE_NULL) - return false; + return FALSE; } - return true; + return TRUE; } /* Handle a single stabs symbol. */ -boolean +bfd_boolean parse_stab (dhandle, handle, type, desc, value, string) PTR dhandle; PTR handle; @@ -445,11 +454,11 @@ parse_stab (dhandle, handle, type, desc, && (type != N_SO || *string == '\0' || value != info->so_value)) { if (! debug_set_filename (dhandle, info->so_string)) - return false; + return FALSE; info->main_filename = info->so_string; info->gcc_compiled = 0; - info->n_opt_found = false; + info->n_opt_found = FALSE; /* Generally, for stabs in the symbol table, the N_LBRAC and N_RBRAC symbols are relative to the N_SO symbol value. */ @@ -483,7 +492,7 @@ parse_stab (dhandle, handle, type, desc, if (! info->within_function) { fprintf (stderr, _("N_LBRAC not within function\n")); - return false; + return FALSE; } /* Start an inner lexical block. */ @@ -491,11 +500,11 @@ parse_stab (dhandle, handle, type, desc, (value + info->file_start_offset + info->function_start_offset))) - return false; + return FALSE; /* Emit any pending variable definitions. */ if (! stab_emit_pending_vars (dhandle, info)) - return false; + return FALSE; ++info->block_depth; break; @@ -509,20 +518,20 @@ parse_stab (dhandle, handle, type, desc, if we do, we probably need to emit them before closing the block. */ if (! stab_emit_pending_vars (dhandle, info)) - return false; + return FALSE; /* End an inner lexical block. */ if (! debug_end_block (dhandle, (value + info->file_start_offset + info->function_start_offset))) - return false; + return FALSE; --info->block_depth; if (info->block_depth < 0) { fprintf (stderr, _("Too many N_RBRACs\n")); - return false; + return FALSE; } break; @@ -539,15 +548,15 @@ parse_stab (dhandle, handle, type, desc, endval = info->function_end; if (! stab_emit_pending_vars (dhandle, info) || ! debug_end_function (dhandle, endval)) - return false; - info->within_function = false; + return FALSE; + info->within_function = FALSE; info->function_end = (bfd_vma) -1; } /* An empty string is emitted by gcc at the end of a compilation unit. */ if (*string == '\0') - return true; + return TRUE; /* Just accumulate strings until we see a non N_SO symbol. If the string starts with a directory separator or some other @@ -576,43 +585,43 @@ parse_stab (dhandle, handle, type, desc, case N_SOL: /* Start an include file. */ if (! debug_start_source (dhandle, string)) - return false; + return FALSE; break; case N_BINCL: /* Start an include file which may be replaced. */ push_bincl (info, string, value); if (! debug_start_source (dhandle, string)) - return false; + return FALSE; break; case N_EINCL: /* End an N_BINCL include. */ if (! debug_start_source (dhandle, pop_bincl (info))) - return false; + return FALSE; break; case N_EXCL: /* This is a duplicate of a header file named by N_BINCL which was eliminated by the linker. */ if (! find_excl (info, string, value)) - return false; + return FALSE; break; case N_SLINE: if (! debug_record_line (dhandle, desc, value + info->function_start_offset)) - return false; + return FALSE; break; case N_BCOMM: if (! debug_start_common_block (dhandle, string)) - return false; + return FALSE; break; case N_ECOMM: if (! debug_end_common_block (dhandle, string)) - return false; + return FALSE; break; case N_FUN: @@ -626,8 +635,8 @@ parse_stab (dhandle, handle, type, desc, value += info->function_start_offset; if (! stab_emit_pending_vars (dhandle, info) || ! debug_end_function (dhandle, value)) - return false; - info->within_function = false; + return FALSE; + info->within_function = FALSE; info->function_end = (bfd_vma) -1; } break; @@ -667,18 +676,18 @@ parse_stab (dhandle, handle, type, desc, endval = info->function_end; if (! stab_emit_pending_vars (dhandle, info) || ! debug_end_function (dhandle, endval)) - return false; + return FALSE; info->function_end = (bfd_vma) -1; } /* For stabs in sections, line numbers and block addresses are offsets from the start of the function. */ if (info->sections) info->function_start_offset = value; - info->within_function = true; + info->within_function = TRUE; } if (! parse_stab_string (dhandle, info, type, desc, value, string)) - return false; + return FALSE; } break; @@ -688,7 +697,7 @@ parse_stab (dhandle, handle, type, desc, else if (string != NULL && strcmp (string, "gcc_compiled.") == 0) info->gcc_compiled = 1; else - info->n_opt_found = true; + info->n_opt_found = TRUE; break; case N_OBJ: @@ -698,12 +707,12 @@ parse_stab (dhandle, handle, type, desc, break; } - return true; + return TRUE; } /* Parse the stabs string. */ -static boolean +static bfd_boolean parse_stab_string (dhandle, info, stabtype, desc, value, string) PTR dhandle; struct stab_handle *info; @@ -716,14 +725,14 @@ parse_stab_string (dhandle, info, stabty char *name; int type; debug_type dtype; - boolean synonym; - boolean self_crossref; + bfd_boolean synonym; + bfd_boolean self_crossref; unsigned int lineno; debug_type *slot; p = strchr (string, ':'); if (p == NULL) - return true; + return TRUE; while (p[1] == ':') { @@ -732,7 +741,7 @@ parse_stab_string (dhandle, info, stabty if (p == NULL) { bad_stab (string); - return false; + return FALSE; } } @@ -797,7 +806,7 @@ parse_stab_string (dhandle, info, stabty if (*p != '=') { bad_stab (string); - return false; + return FALSE; } ++p; switch (*p++) @@ -805,7 +814,7 @@ parse_stab_string (dhandle, info, stabty case 'r': /* Floating point constant. */ if (! debug_record_float_const (dhandle, name, atof (p))) - return false; + return FALSE; break; case 'i': /* Integer constant. */ @@ -816,7 +825,7 @@ parse_stab_string (dhandle, info, stabty other languages probably should have at least unsigned as well as signed constants. */ if (! debug_record_int_const (dhandle, name, atoi (p))) - return false; + return FALSE; break; case 'e': /* SYMBOL:c=eTYPE,INTVALUE for a constant symbol whose value @@ -826,18 +835,18 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (*p != ',') { bad_stab (string); - return false; + return FALSE; } if (! debug_record_typed_const (dhandle, name, dtype, atoi (p))) - return false; + return FALSE; break; default: bad_stab (string); - return false; + return FALSE; } break; @@ -847,9 +856,9 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! debug_record_label (dhandle, name, dtype, value)) - return false; + return FALSE; break; case 'f': @@ -858,9 +867,9 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! debug_record_function (dhandle, name, dtype, type == 'F', value)) - return false; + return FALSE; /* Sun acc puts declared types of arguments here. We don't care about their actual types (FIXME -- we should remember the whole @@ -872,7 +881,7 @@ parse_stab_string (dhandle, info, stabty if (parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL) == DEBUG_TYPE_NULL) - return false; + return FALSE; } break; @@ -888,7 +897,7 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; leading = bfd_get_symbol_leading_char (info->abfd); for (c = info->symcount, ps = info->syms; c > 0; --c, ++ps) { @@ -904,7 +913,7 @@ parse_stab_string (dhandle, info, stabty value = bfd_asymbol_value (*ps); if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_GLOBAL, value)) - return false; + return FALSE; } break; @@ -916,10 +925,10 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_LOCAL, value)) - return false; + return FALSE; break; case 'p': @@ -940,15 +949,15 @@ parse_stab_string (dhandle, info, stabty debug_type ftype; ftype = debug_make_function_type (dhandle, dtype, - (debug_type *) NULL, false); + (debug_type *) NULL, FALSE); dtype = debug_make_pointer_type (dhandle, ftype); } } if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_STACK, value)) - return false; + return FALSE; /* FIXME: At this point gdb considers rearranging the parameter address on a big endian machine if it is smaller than an int. @@ -967,7 +976,7 @@ parse_stab_string (dhandle, info, stabty if (parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL) == DEBUG_TYPE_NULL) - return false; + return FALSE; } break; } @@ -977,10 +986,10 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_REG, value)) - return false; + return FALSE; break; case 'r': @@ -988,10 +997,10 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_REGISTER, value)) - return false; + return FALSE; /* FIXME: At this point gdb checks to combine pairs of 'p' and 'r' stabs into a single 'P' stab. */ @@ -1003,26 +1012,26 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_STATIC, value)) - return false; + return FALSE; break; case 't': /* A typedef. */ dtype = parse_stab_type (dhandle, info, name, &p, &slot); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (name == NULL) { /* A nameless type. Nothing to do. */ - return true; + return TRUE; } dtype = debug_name_type (dhandle, name, dtype); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (slot != NULL) *slot = dtype; @@ -1034,21 +1043,21 @@ parse_stab_string (dhandle, info, stabty by 't' which means we are typedef'ing it as well. */ if (*p != 't') { - synonym = false; - /* FIXME: gdb sets synonym to true if the current language + synonym = FALSE; + /* FIXME: gdb sets synonym to TRUE if the current language is C++. */ } else { - synonym = true; + synonym = TRUE; ++p; } dtype = parse_stab_type (dhandle, info, name, &p, &slot); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (name == NULL) - return true; + return TRUE; /* INFO->SELF_CROSSREF is set by parse_stab_type if this type is a cross reference to itself. These are generated by some @@ -1057,7 +1066,7 @@ parse_stab_string (dhandle, info, stabty dtype = debug_tag_type (dhandle, name, dtype); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (slot != NULL) *slot = dtype; @@ -1084,7 +1093,7 @@ parse_stab_string (dhandle, info, stabty { dtype = debug_name_type (dhandle, name, dtype); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (slot != NULL) *slot = dtype; @@ -1097,11 +1106,11 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; /* FIXME: gdb checks os9k_stabs here. */ if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_LOCAL_STATIC, value)) - return false; + return FALSE; break; case 'v': @@ -1109,10 +1118,10 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_REFERENCE, value)) - return false; + return FALSE; break; case 'a': @@ -1120,10 +1129,10 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! debug_record_parameter (dhandle, name, dtype, DEBUG_PARM_REF_REG, value)) - return false; + return FALSE; break; case 'X': @@ -1134,21 +1143,21 @@ parse_stab_string (dhandle, info, stabty dtype = parse_stab_type (dhandle, info, (const char *) NULL, &p, (debug_type **) NULL); if (dtype == DEBUG_TYPE_NULL) - return false; + return FALSE; if (! stab_record_variable (dhandle, info, name, dtype, DEBUG_LOCAL, value)) - return false; + return FALSE; break; default: bad_stab (string); - return false; + return FALSE; } /* FIXME: gdb converts structure values to structure pointers in a couple of cases, depending upon the target. */ - return true; + return TRUE; } /* Parse a stabs type. The typename argument is non-NULL if this is a @@ -1167,7 +1176,7 @@ parse_stab_type (dhandle, info, typename const char *orig; int typenums[2]; int size; - boolean stringp; + bfd_boolean stringp; int descriptor; debug_type dtype; @@ -1177,9 +1186,9 @@ parse_stab_type (dhandle, info, typename orig = *pp; size = -1; - stringp = false; + stringp = FALSE; - info->self_crossref = false; + info->self_crossref = FALSE; /* Read type number if present. The type number may be omitted. for instance in a two-dimensional array declared with type @@ -1256,7 +1265,7 @@ parse_stab_type (dhandle, info, typename break; case 'S': - stringp = true; + stringp = TRUE; break; default: @@ -1334,7 +1343,7 @@ parse_stab_type (dhandle, info, typename if (typename != NULL && strncmp (typename, *pp, p - *pp) == 0 && typename[p - *pp] == '\0') - info->self_crossref = true; + info->self_crossref = TRUE; dtype = stab_find_tagged_type (dhandle, info, *pp, p - *pp, code); @@ -1418,7 +1427,7 @@ parse_stab_type (dhandle, info, typename (dhandle, parse_stab_type (dhandle, info, (const char *) NULL, pp, (debug_type **) NULL), - (debug_type *) NULL, false)); + (debug_type *) NULL, FALSE)); break; case 'k': @@ -1489,7 +1498,7 @@ parse_stab_type (dhandle, info, typename ++*pp; dtype = debug_make_method_type (dhandle, return_type, DEBUG_TYPE_NULL, - (debug_type *) NULL, false); + (debug_type *) NULL, FALSE); } else { @@ -1498,7 +1507,7 @@ parse_stab_type (dhandle, info, typename debug_type *args; unsigned int n; unsigned int alloc; - boolean varargs; + bfd_boolean varargs; domain = parse_stab_type (dhandle, info, (const char *) NULL, pp, (debug_type **) NULL); @@ -1549,11 +1558,11 @@ parse_stab_type (dhandle, info, typename the void type. */ if (n == 0 || debug_get_type_kind (dhandle, args[n - 1]) != DEBUG_KIND_VOID) - varargs = true; + varargs = TRUE; else { --n; - varargs = false; + varargs = FALSE; } args[n] = DEBUG_TYPE_NULL; @@ -1640,7 +1649,7 @@ parse_stab_type (dhandle, info, typename single number N is equivalent to (0,N). Return the two numbers by storing them in the vector TYPENUMS. */ -static boolean +static bfd_boolean parse_stab_type_number (pp, typenums) const char **pp; int *typenums; @@ -1652,28 +1661,28 @@ parse_stab_type_number (pp, typenums) if (**pp != '(') { typenums[0] = 0; - typenums[1] = (int) parse_number (pp, (boolean *) NULL); + typenums[1] = (int) parse_number (pp, (bfd_boolean *) NULL); } else { ++*pp; - typenums[0] = (int) parse_number (pp, (boolean *) NULL); + typenums[0] = (int) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ',') { bad_stab (orig); - return false; + return FALSE; } ++*pp; - typenums[1] = (int) parse_number (pp, (boolean *) NULL); + typenums[1] = (int) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ')') { bad_stab (orig); - return false; + return FALSE; } ++*pp; } - return true; + return TRUE; } /* Parse a range type. */ @@ -1688,11 +1697,11 @@ parse_stab_range_type (dhandle, info, ty { const char *orig; int rangenums[2]; - boolean self_subrange; + bfd_boolean self_subrange; debug_type index_type; const char *s2, *s3; bfd_signed_vma n2, n3; - boolean ov2, ov3; + bfd_boolean ov2, ov3; orig = *pp; @@ -1749,11 +1758,11 @@ parse_stab_range_type (dhandle, info, ty { if (strncmp (s2, LLLOW, sizeof LLLOW - 1) == 0 && strncmp (s3, LLHIGH, sizeof LLHIGH - 1) == 0) - return debug_make_int_type (dhandle, 8, false); + return debug_make_int_type (dhandle, 8, FALSE); if (! ov2 && n2 == 0 && strncmp (s3, ULLHIGH, sizeof ULLHIGH - 1) == 0) - return debug_make_int_type (dhandle, 8, true); + return debug_make_int_type (dhandle, 8, TRUE); } warn_stab (orig, _("numeric overflow")); @@ -1786,50 +1795,50 @@ parse_stab_range_type (dhandle, info, ty if (typename != NULL) { if (strcmp (typename, "long long int") == 0) - return debug_make_int_type (dhandle, 8, false); + return debug_make_int_type (dhandle, 8, FALSE); else if (strcmp (typename, "long long unsigned int") == 0) - return debug_make_int_type (dhandle, 8, true); + return debug_make_int_type (dhandle, 8, TRUE); } /* FIXME: The size here really depends upon the target. */ - return debug_make_int_type (dhandle, 4, true); + return debug_make_int_type (dhandle, 4, TRUE); } /* A range of 0 to 127 is char. */ if (self_subrange && n2 == 0 && n3 == 127) - return debug_make_int_type (dhandle, 1, false); + return debug_make_int_type (dhandle, 1, FALSE); /* FIXME: gdb checks for the language CHILL here. */ if (n2 == 0) { if (n3 < 0) - return debug_make_int_type (dhandle, - n3, true); + return debug_make_int_type (dhandle, - n3, TRUE); else if (n3 == 0xff) - return debug_make_int_type (dhandle, 1, true); + return debug_make_int_type (dhandle, 1, TRUE); else if (n3 == 0xffff) - return debug_make_int_type (dhandle, 2, true); + return debug_make_int_type (dhandle, 2, TRUE); else if (n3 == (bfd_signed_vma) 0xffffffff) - return debug_make_int_type (dhandle, 4, true); + return debug_make_int_type (dhandle, 4, TRUE); #ifdef BFD64 else if (n3 == ((((bfd_signed_vma) 0xffffffff) << 32) | 0xffffffff)) - return debug_make_int_type (dhandle, 8, true); + return debug_make_int_type (dhandle, 8, TRUE); #endif } else if (n3 == 0 && n2 < 0 && (self_subrange || n2 == -8)) - return debug_make_int_type (dhandle, - n2, true); + return debug_make_int_type (dhandle, - n2, TRUE); else if (n2 == - n3 - 1 || n2 == n3 + 1) { if (n3 == 0x7f) - return debug_make_int_type (dhandle, 1, false); + return debug_make_int_type (dhandle, 1, FALSE); else if (n3 == 0x7fff) - return debug_make_int_type (dhandle, 2, false); + return debug_make_int_type (dhandle, 2, FALSE); else if (n3 == 0x7fffffff) - return debug_make_int_type (dhandle, 4, false); + return debug_make_int_type (dhandle, 4, FALSE); #ifdef BFD64 else if (n3 == ((((bfd_vma) 0x7fffffff) << 32) | 0xffffffff)) - return debug_make_int_type (dhandle, 8, false); + return debug_make_int_type (dhandle, 8, FALSE); #endif } } @@ -1849,7 +1858,7 @@ parse_stab_range_type (dhandle, info, ty /* Does this actually ever happen? Is that why we are worrying about dealing with it rather than just calling error_type? */ warn_stab (orig, _("missing index type")); - index_type = debug_make_int_type (dhandle, 4, false); + index_type = debug_make_int_type (dhandle, 4, FALSE); } return debug_make_range_type (dhandle, index_type, n2, n3); @@ -1873,7 +1882,7 @@ parse_stab_sun_builtin_type (dhandle, pp const char **pp; { const char *orig; - boolean unsignedp; + bfd_boolean unsignedp; bfd_vma bits; orig = *pp; @@ -1881,10 +1890,10 @@ parse_stab_sun_builtin_type (dhandle, pp switch (**pp) { case 's': - unsignedp = false; + unsignedp = FALSE; break; case 'u': - unsignedp = true; + unsignedp = TRUE; break; default: bad_stab (orig); @@ -1903,7 +1912,7 @@ parse_stab_sun_builtin_type (dhandle, pp by this type, except that unsigned short is 4 instead of 2. Since this information is redundant with the third number, we will ignore it. */ - (void) parse_number (pp, (boolean *) NULL); + (void) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); @@ -1912,7 +1921,7 @@ parse_stab_sun_builtin_type (dhandle, pp ++*pp; /* The second number is always 0, so ignore it too. */ - (void) parse_number (pp, (boolean *) NULL); + (void) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); @@ -1921,7 +1930,7 @@ parse_stab_sun_builtin_type (dhandle, pp ++*pp; /* The third number is the number of bits for this type. */ - bits = parse_number (pp, (boolean *) NULL); + bits = parse_number (pp, (bfd_boolean *) NULL); /* The type *should* end with a semicolon. If it are embedded in a larger type the semicolon may be the only way to know where @@ -1953,7 +1962,7 @@ parse_stab_sun_floating_type (dhandle, p /* The first number has more details about the type, for example FN_COMPLEX. */ - details = parse_number (pp, (boolean *) NULL); + details = parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); @@ -1961,7 +1970,7 @@ parse_stab_sun_floating_type (dhandle, p } /* The second number is the number of bytes occupied by this type */ - bytes = parse_number (pp, (boolean *) NULL); + bytes = parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); @@ -2022,7 +2031,7 @@ parse_stab_enum_type (dhandle, pp) name = savestring (*pp, p - *pp); *pp = p + 1; - val = (bfd_signed_vma) parse_number (pp, (boolean *) NULL); + val = (bfd_signed_vma) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ',') { bad_stab (orig); @@ -2066,22 +2075,22 @@ parse_stab_struct_type (dhandle, info, t struct stab_handle *info; const char *tagname; const char **pp; - boolean structp; + bfd_boolean structp; const int *typenums; { const char *orig; bfd_vma size; debug_baseclass *baseclasses; debug_field *fields; - boolean statics; + bfd_boolean statics; debug_method *methods; debug_type vptrbase; - boolean ownvptr; + bfd_boolean ownvptr; orig = *pp; /* Get the size. */ - size = parse_number (pp, (boolean *) NULL); + size = parse_number (pp, (bfd_boolean *) NULL); /* Get the other information. */ if (! parse_stab_baseclasses (dhandle, info, pp, &baseclasses) @@ -2124,9 +2133,9 @@ parse_stab_struct_type (dhandle, info, t Offset in bits from start of class ________________________| | Type number of base class ____________________________________| - Return true for success, false for failure. */ + Return TRUE for success, FALSE for failure. */ -static boolean +static bfd_boolean parse_stab_baseclasses (dhandle, info, pp, retp) PTR dhandle; struct stab_handle *info; @@ -2144,16 +2153,16 @@ parse_stab_baseclasses (dhandle, info, p if (**pp != '!') { /* No base classes. */ - return true; + return TRUE; } ++*pp; - c = (unsigned int) parse_number (pp, (boolean *) NULL); + c = (unsigned int) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ',') { bad_stab (orig); - return false; + return FALSE; } ++*pp; @@ -2161,7 +2170,7 @@ parse_stab_baseclasses (dhandle, info, p for (i = 0; i < c; i++) { - boolean virtual; + bfd_boolean virtual; enum debug_visibility visibility; bfd_vma bitpos; debug_type type; @@ -2169,14 +2178,14 @@ parse_stab_baseclasses (dhandle, info, p switch (**pp) { case '0': - virtual = false; + virtual = FALSE; break; case '1': - virtual = true; + virtual = TRUE; break; default: warn_stab (orig, _("unknown virtual character for baseclass")); - virtual = false; + virtual = FALSE; break; } ++*pp; @@ -2202,26 +2211,26 @@ parse_stab_baseclasses (dhandle, info, p /* The remaining value is the bit offset of the portion of the object corresponding to this baseclass. Always zero in the absence of multiple inheritance. */ - bitpos = parse_number (pp, (boolean *) NULL); + bitpos = parse_number (pp, (bfd_boolean *) NULL); if (**pp != ',') { bad_stab (orig); - return false; + return FALSE; } ++*pp; type = parse_stab_type (dhandle, info, (const char *) NULL, pp, (debug_type **) NULL); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; classes[i] = debug_make_baseclass (dhandle, type, bitpos, virtual, visibility); if (classes[i] == DEBUG_BASECLASS_NULL) - return false; + return FALSE; if (**pp != ';') - return false; + return FALSE; ++*pp; } @@ -2229,7 +2238,7 @@ parse_stab_baseclasses (dhandle, info, p *retp = classes; - return true; + return TRUE; } /* Read struct or class data fields. They have the form: @@ -2252,13 +2261,13 @@ parse_stab_baseclasses (dhandle, info, p Returns 1 for success, 0 for failure. */ -static boolean +static bfd_boolean parse_stab_struct_fields (dhandle, info, pp, retp, staticsp) PTR dhandle; struct stab_handle *info; const char **pp; debug_field **retp; - boolean *staticsp; + bfd_boolean *staticsp; { const char *orig; const char *p; @@ -2267,7 +2276,7 @@ parse_stab_struct_fields (dhandle, info, unsigned int alloc; *retp = NULL; - *staticsp = false; + *staticsp = FALSE; orig = *pp; @@ -2299,7 +2308,7 @@ parse_stab_struct_fields (dhandle, info, { ++*pp; if (! parse_stab_cpp_abbrev (dhandle, info, pp, fields + c)) - return false; + return FALSE; ++c; continue; } @@ -2313,7 +2322,7 @@ parse_stab_struct_fields (dhandle, info, if (p == NULL) { bad_stab (orig); - return false; + return FALSE; } if (p[1] == ':') @@ -2321,7 +2330,7 @@ parse_stab_struct_fields (dhandle, info, if (! parse_stab_one_struct_field (dhandle, info, pp, p, fields + c, staticsp)) - return false; + return FALSE; ++c; } @@ -2330,12 +2339,12 @@ parse_stab_struct_fields (dhandle, info, *retp = fields; - return true; + return TRUE; } /* Special GNU C++ name. */ -static boolean +static bfd_boolean parse_stab_cpp_abbrev (dhandle, info, pp, retp) PTR dhandle; struct stab_handle *info; @@ -2357,7 +2366,7 @@ parse_stab_cpp_abbrev (dhandle, info, pp if (**pp != 'v') { bad_stab (*pp); - return false; + return FALSE; } ++*pp; @@ -2372,7 +2381,7 @@ parse_stab_cpp_abbrev (dhandle, info, pp context = parse_stab_type (dhandle, info, (const char *) NULL, pp, (debug_type **) NULL); if (context == DEBUG_TYPE_NULL) - return false; + return FALSE; switch (cpp_abbrev) { @@ -2399,7 +2408,7 @@ parse_stab_cpp_abbrev (dhandle, info, pp if (**pp != ':') { bad_stab (orig); - return false; + return FALSE; } ++*pp; @@ -2408,36 +2417,36 @@ parse_stab_cpp_abbrev (dhandle, info, pp if (**pp != ',') { bad_stab (orig); - return false; + return FALSE; } ++*pp; - bitpos = parse_number (pp, (boolean *) NULL); + bitpos = parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); - return false; + return FALSE; } ++*pp; *retp = debug_make_field (dhandle, name, type, bitpos, 0, DEBUG_VISIBILITY_PRIVATE); if (*retp == DEBUG_FIELD_NULL) - return false; + return FALSE; - return true; + return TRUE; } /* Parse a single field in a struct or union. */ -static boolean +static bfd_boolean parse_stab_one_struct_field (dhandle, info, pp, p, retp, staticsp) PTR dhandle; struct stab_handle *info; const char **pp; const char *p; debug_field *retp; - boolean *staticsp; + bfd_boolean *staticsp; { const char *orig; char *name; @@ -2481,7 +2490,7 @@ parse_stab_one_struct_field (dhandle, in type = parse_stab_type (dhandle, info, (const char *) NULL, pp, (debug_type **) NULL); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; if (**pp == ':') { @@ -2493,7 +2502,7 @@ parse_stab_one_struct_field (dhandle, in if (p == NULL) { bad_stab (orig); - return false; + return FALSE; } varname = savestring (*pp, p - *pp); @@ -2502,31 +2511,31 @@ parse_stab_one_struct_field (dhandle, in *retp = debug_make_static_member (dhandle, name, type, varname, visibility); - *staticsp = true; + *staticsp = TRUE; - return true; + return TRUE; } if (**pp != ',') { bad_stab (orig); - return false; + return FALSE; } ++*pp; - bitpos = parse_number (pp, (boolean *) NULL); + bitpos = parse_number (pp, (bfd_boolean *) NULL); if (**pp != ',') { bad_stab (orig); - return false; + return FALSE; } ++*pp; - bitsize = parse_number (pp, (boolean *) NULL); + bitsize = parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); - return false; + return FALSE; } ++*pp; @@ -2552,7 +2561,7 @@ parse_stab_one_struct_field (dhandle, in *retp = debug_make_field (dhandle, name, type, bitpos, bitsize, visibility); - return true; + return TRUE; } /* Read member function stabs info for C++ classes. The form of each member @@ -2568,7 +2577,7 @@ parse_stab_one_struct_field (dhandle, in $ is the CPLUS_MARKER (usually '$'), `*' holds the place for an operator name (such as `+=') and `.' marks the end of the operator name. */ -static boolean +static bfd_boolean parse_stab_members (dhandle, info, tagname, pp, typenums, retp) PTR dhandle; struct stab_handle *info; @@ -2623,7 +2632,7 @@ parse_stab_members (dhandle, info, tagna if (*p != '.') { bad_stab (orig); - return false; + return FALSE; } name = savestring (*pp, p - *pp); *pp = p + 1; @@ -2639,14 +2648,14 @@ parse_stab_members (dhandle, info, tagna do { debug_type type; - boolean stub; + bfd_boolean stub; char *argtypes; enum debug_visibility visibility; - boolean constp, volatilep, staticp; + bfd_boolean constp, volatilep, staticp; bfd_vma voffset; debug_type context; const char *physname; - boolean varargs; + bfd_boolean varargs; if (look_ahead_type != DEBUG_TYPE_NULL) { @@ -2659,11 +2668,11 @@ parse_stab_members (dhandle, info, tagna type = parse_stab_type (dhandle, info, (const char *) NULL, pp, (debug_type **) NULL); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; if (**pp != ':') { bad_stab (orig); - return false; + return FALSE; } } @@ -2672,13 +2681,13 @@ parse_stab_members (dhandle, info, tagna if (p == NULL) { bad_stab (orig); - return false; + return FALSE; } - stub = false; + stub = FALSE; if (debug_get_type_kind (dhandle, type) == DEBUG_KIND_METHOD && debug_get_parameter_types (dhandle, type, &varargs) == NULL) - stub = true; + stub = TRUE; argtypes = savestring (*pp, p - *pp); *pp = p + 1; @@ -2697,8 +2706,8 @@ parse_stab_members (dhandle, info, tagna } ++*pp; - constp = false; - volatilep = false; + constp = FALSE; + volatilep = FALSE; switch (**pp) { case 'A': @@ -2707,18 +2716,18 @@ parse_stab_members (dhandle, info, tagna break; case 'B': /* const member function. */ - constp = true; + constp = TRUE; ++*pp; break; case 'C': /* volatile member function. */ - volatilep = true; + volatilep = TRUE; ++*pp; break; case 'D': /* const volatile member function. */ - constp = true; - volatilep = true; + constp = TRUE; + volatilep = TRUE; ++*pp; break; case '*': @@ -2731,7 +2740,7 @@ parse_stab_members (dhandle, info, tagna break; } - staticp = false; + staticp = FALSE; switch (**pp) { case '*': @@ -2739,11 +2748,11 @@ parse_stab_members (dhandle, info, tagna bit is supposedly set to distinguish pointers-to-methods from virtual function indicies. */ ++*pp; - voffset = parse_number (pp, (boolean *) NULL); + voffset = parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); - return false; + return FALSE; } ++*pp; voffset &= 0x7fffffff; @@ -2774,7 +2783,7 @@ parse_stab_members (dhandle, info, tagna if (**pp != ';') { bad_stab (orig); - return false; + return FALSE; } ++*pp; } @@ -2784,11 +2793,11 @@ parse_stab_members (dhandle, info, tagna case '?': /* static member function. */ ++*pp; - staticp = true; + staticp = TRUE; voffset = 0; context = DEBUG_TYPE_NULL; if (strncmp (argtypes, name, strlen (name)) != 0) - stub = true; + stub = TRUE; break; default: @@ -2817,18 +2826,18 @@ parse_stab_members (dhandle, info, tagna class_type = stab_find_type (dhandle, info, typenums); if (class_type == DEBUG_TYPE_NULL) - return false; + return FALSE; return_type = debug_get_return_type (dhandle, type); if (return_type == DEBUG_TYPE_NULL) { bad_stab (orig); - return false; + return FALSE; } type = parse_stab_argtypes (dhandle, info, class_type, name, tagname, return_type, argtypes, constp, volatilep, &physname); if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; } if (cvars + 1 >= allocvars) @@ -2852,7 +2861,7 @@ parse_stab_members (dhandle, info, tagna constp, volatilep); if (variants[cvars] == DEBUG_METHOD_VARIANT_NULL) - return false; + return FALSE; ++cvars; } @@ -2880,7 +2889,7 @@ parse_stab_members (dhandle, info, tagna *retp = methods; - return true; + return TRUE; } /* Parse a string representing argument types for a method. Stabs @@ -2899,15 +2908,15 @@ parse_stab_argtypes (dhandle, info, clas const char *tagname; debug_type return_type; const char *argtypes; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; const char **pphysname; { - boolean is_full_physname_constructor; - boolean is_constructor; - boolean is_destructor; + bfd_boolean is_full_physname_constructor; + bfd_boolean is_constructor; + bfd_boolean is_destructor; debug_type *args; - boolean varargs; + bfd_boolean varargs; unsigned int physname_len = 0; /* Constructors are sometimes handled specially. */ @@ -2999,7 +3008,7 @@ parse_stab_argtypes (dhandle, info, clas args = (debug_type *) xmalloc (sizeof *args); *args = NULL; return debug_make_method_type (dhandle, return_type, class_type, args, - false); + FALSE); } args = stab_demangle_argtypes (dhandle, info, *pphysname, &varargs, physname_len); @@ -3018,21 +3027,21 @@ parse_stab_argtypes (dhandle, info, clas This function is called when we have parsed all the method declarations, so we can look for the vptr base class info. */ -static boolean +static bfd_boolean parse_stab_tilde_field (dhandle, info, pp, typenums, retvptrbase, retownvptr) PTR dhandle; struct stab_handle *info; const char **pp; const int *typenums; debug_type *retvptrbase; - boolean *retownvptr; + bfd_boolean *retownvptr; { const char *orig; const char *hold; int vtypenums[2]; *retvptrbase = DEBUG_TYPE_NULL; - *retownvptr = false; + *retownvptr = FALSE; orig = *pp; @@ -3041,7 +3050,7 @@ parse_stab_tilde_field (dhandle, info, p ++*pp; if (**pp != '~') - return true; + return TRUE; ++*pp; @@ -3053,7 +3062,7 @@ parse_stab_tilde_field (dhandle, info, p } if (**pp != '%') - return true; + return TRUE; ++*pp; @@ -3062,11 +3071,11 @@ parse_stab_tilde_field (dhandle, info, p /* The next number is the type number of the base class (possibly our own class) which supplies the vtable for this class. */ if (! parse_stab_type_number (pp, vtypenums)) - return false; + return FALSE; if (vtypenums[0] == typenums[0] && vtypenums[1] == typenums[1]) - *retownvptr = true; + *retownvptr = TRUE; else { debug_type vtype; @@ -3081,7 +3090,7 @@ parse_stab_tilde_field (dhandle, info, p if (*p != ';') { bad_stab (orig); - return false; + return FALSE; } *retvptrbase = vtype; @@ -3089,7 +3098,7 @@ parse_stab_tilde_field (dhandle, info, p *pp = p + 1; } - return true; + return TRUE; } /* Read a definition of an array type. */ @@ -3099,13 +3108,13 @@ parse_stab_array_type (dhandle, info, pp PTR dhandle; struct stab_handle *info; const char **pp; - boolean stringp; + bfd_boolean stringp; { const char *orig; const char *p; int typenums[2]; debug_type index_type; - boolean adjustable; + bfd_boolean adjustable; bfd_signed_vma lower, upper; debug_type element_type; @@ -3129,7 +3138,7 @@ parse_stab_array_type (dhandle, info, pp index_type = debug_find_named_type (dhandle, "int"); if (index_type == DEBUG_TYPE_NULL) { - index_type = debug_make_int_type (dhandle, 4, false); + index_type = debug_make_int_type (dhandle, 4, FALSE); if (index_type == DEBUG_TYPE_NULL) return DEBUG_TYPE_NULL; } @@ -3148,15 +3157,15 @@ parse_stab_array_type (dhandle, info, pp } ++*pp; - adjustable = false; + adjustable = FALSE; if (! ISDIGIT (**pp) && **pp != '-') { ++*pp; - adjustable = true; + adjustable = TRUE; } - lower = (bfd_signed_vma) parse_number (pp, (boolean *) NULL); + lower = (bfd_signed_vma) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); @@ -3167,10 +3176,10 @@ parse_stab_array_type (dhandle, info, pp if (! ISDIGIT (**pp) && **pp != '-') { ++*pp; - adjustable = true; + adjustable = TRUE; } - upper = (bfd_signed_vma) parse_number (pp, (boolean *) NULL); + upper = (bfd_signed_vma) parse_number (pp, (bfd_boolean *) NULL); if (**pp != ';') { bad_stab (orig); @@ -3263,7 +3272,7 @@ pop_bincl (info) /* Handle an N_EXCL: get the types from the corresponding N_BINCL. */ -static boolean +static bfd_boolean find_excl (info, name, hash) struct stab_handle *info; const char *name; @@ -3284,12 +3293,12 @@ find_excl (info, name, hash) { warn_stab (name, _("Undefined N_EXCL")); info->file_types[info->files - 1] = NULL; - return true; + return TRUE; } info->file_types[info->files - 1] = l->file_types; - return true; + return TRUE; } /* Handle a variable definition. gcc emits variable definitions for a @@ -3297,7 +3306,7 @@ find_excl (info, name, hash) it. The SunPRO compiler emits variable definitions after the N_LBRAC, so we can call debug_record_variable immediately. */ -static boolean +static bfd_boolean stab_record_variable (dhandle, info, name, type, kind, val) PTR dhandle; struct stab_handle *info; @@ -3323,13 +3332,13 @@ stab_record_variable (dhandle, info, nam v->val = val; info->pending = v; - return true; + return TRUE; } /* Emit pending variable definitions. This is called after we see the N_LBRAC that starts the block. */ -static boolean +static bfd_boolean stab_emit_pending_vars (dhandle, info) PTR dhandle; struct stab_handle *info; @@ -3342,7 +3351,7 @@ stab_emit_pending_vars (dhandle, info) struct stab_pending_var *next; if (! debug_record_variable (dhandle, v->name, v->type, v->kind, v->val)) - return false; + return FALSE; next = v->next; free (v); @@ -3351,7 +3360,7 @@ stab_emit_pending_vars (dhandle, info) info->pending = NULL; - return true; + return TRUE; } /* Find the slot for a type in the database. */ @@ -3429,7 +3438,7 @@ stab_find_type (dhandle, info, typenums) /* Record that a given type number refers to a given type. */ -static boolean +static bfd_boolean stab_record_type (dhandle, info, typenums, type) PTR dhandle ATTRIBUTE_UNUSED; struct stab_handle *info; @@ -3440,13 +3449,13 @@ stab_record_type (dhandle, info, typenum slot = stab_find_slot (info, typenums); if (slot == NULL) - return false; + return FALSE; /* gdb appears to ignore type redefinitions, so we do as well. */ *slot = type; - return true; + return TRUE; } /* Return an XCOFF builtin type. */ @@ -3474,42 +3483,42 @@ stab_xcoff_builtin_type (dhandle, info, /* The size of this and all the other types are fixed, defined by the debugging format. */ name = "int"; - rettype = debug_make_int_type (dhandle, 4, false); + rettype = debug_make_int_type (dhandle, 4, FALSE); break; case 2: name = "char"; - rettype = debug_make_int_type (dhandle, 1, false); + rettype = debug_make_int_type (dhandle, 1, FALSE); break; case 3: name = "short"; - rettype = debug_make_int_type (dhandle, 2, false); + rettype = debug_make_int_type (dhandle, 2, FALSE); break; case 4: name = "long"; - rettype = debug_make_int_type (dhandle, 4, false); + rettype = debug_make_int_type (dhandle, 4, FALSE); break; case 5: name = "unsigned char"; - rettype = debug_make_int_type (dhandle, 1, true); + rettype = debug_make_int_type (dhandle, 1, TRUE); break; case 6: name = "signed char"; - rettype = debug_make_int_type (dhandle, 1, false); + rettype = debug_make_int_type (dhandle, 1, FALSE); break; case 7: name = "unsigned short"; - rettype = debug_make_int_type (dhandle, 2, true); + rettype = debug_make_int_type (dhandle, 2, TRUE); break; case 8: name = "unsigned int"; - rettype = debug_make_int_type (dhandle, 4, true); + rettype = debug_make_int_type (dhandle, 4, TRUE); break; case 9: name = "unsigned"; - rettype = debug_make_int_type (dhandle, 4, true); + rettype = debug_make_int_type (dhandle, 4, TRUE); case 10: name = "unsigned long"; - rettype = debug_make_int_type (dhandle, 4, true); + rettype = debug_make_int_type (dhandle, 4, TRUE); break; case 11: name = "void"; @@ -3534,7 +3543,7 @@ stab_xcoff_builtin_type (dhandle, info, break; case 15: name = "integer"; - rettype = debug_make_int_type (dhandle, 4, false); + rettype = debug_make_int_type (dhandle, 4, FALSE); break; case 16: name = "boolean"; @@ -3556,7 +3565,7 @@ stab_xcoff_builtin_type (dhandle, info, case 20: /* FIXME */ name = "character"; - rettype = debug_make_int_type (dhandle, 1, true); + rettype = debug_make_int_type (dhandle, 1, TRUE); break; case 21: name = "logical*1"; @@ -3586,28 +3595,28 @@ stab_xcoff_builtin_type (dhandle, info, break; case 27: name = "integer*1"; - rettype = debug_make_int_type (dhandle, 1, false); + rettype = debug_make_int_type (dhandle, 1, FALSE); break; case 28: name = "integer*2"; - rettype = debug_make_int_type (dhandle, 2, false); + rettype = debug_make_int_type (dhandle, 2, FALSE); break; case 29: name = "integer*4"; - rettype = debug_make_int_type (dhandle, 4, false); + rettype = debug_make_int_type (dhandle, 4, FALSE); break; case 30: /* FIXME */ name = "wchar"; - rettype = debug_make_int_type (dhandle, 2, false); + rettype = debug_make_int_type (dhandle, 2, FALSE); break; case 31: name = "long long"; - rettype = debug_make_int_type (dhandle, 8, false); + rettype = debug_make_int_type (dhandle, 8, FALSE); break; case 32: name = "unsigned long long"; - rettype = debug_make_int_type (dhandle, 8, true); + rettype = debug_make_int_type (dhandle, 8, TRUE); break; case 33: name = "logical*8"; @@ -3615,7 +3624,7 @@ stab_xcoff_builtin_type (dhandle, info, break; case 34: name = "integer*8"; - rettype = debug_make_int_type (dhandle, 8, false); + rettype = debug_make_int_type (dhandle, 8, FALSE); break; default: abort (); @@ -3717,7 +3726,7 @@ struct stab_demangle_info /* The array of arguments we are building. */ debug_type *args; /* Whether the method takes a variable number of arguments. */ - boolean varargs; + bfd_boolean varargs; /* The array of types we have remembered. */ struct stab_demangle_typestring *typestrings; /* The number of typestrings. */ @@ -3726,33 +3735,35 @@ struct stab_demangle_info unsigned int typestring_alloc; }; -static void stab_bad_demangle PARAMS ((const char *)); -static unsigned int stab_demangle_count PARAMS ((const char **)); -static boolean stab_demangle_get_count +static void stab_bad_demangle + PARAMS ((const char *)); +static unsigned int stab_demangle_count + PARAMS ((const char **)); +static bfd_boolean stab_demangle_get_count PARAMS ((const char **, unsigned int *)); -static boolean stab_demangle_prefix +static bfd_boolean stab_demangle_prefix PARAMS ((struct stab_demangle_info *, const char **, unsigned int)); -static boolean stab_demangle_function_name +static bfd_boolean stab_demangle_function_name PARAMS ((struct stab_demangle_info *, const char **, const char *)); -static boolean stab_demangle_signature +static bfd_boolean stab_demangle_signature PARAMS ((struct stab_demangle_info *, const char **)); -static boolean stab_demangle_qualified +static bfd_boolean stab_demangle_qualified PARAMS ((struct stab_demangle_info *, const char **, debug_type *)); -static boolean stab_demangle_template +static bfd_boolean stab_demangle_template PARAMS ((struct stab_demangle_info *, const char **, char **)); -static boolean stab_demangle_class +static bfd_boolean stab_demangle_class PARAMS ((struct stab_demangle_info *, const char **, const char **)); -static boolean stab_demangle_args +static bfd_boolean stab_demangle_args PARAMS ((struct stab_demangle_info *, const char **, debug_type **, - boolean *)); -static boolean stab_demangle_arg + bfd_boolean *)); +static bfd_boolean stab_demangle_arg PARAMS ((struct stab_demangle_info *, const char **, debug_type **, unsigned int *, unsigned int *)); -static boolean stab_demangle_type +static bfd_boolean stab_demangle_type PARAMS ((struct stab_demangle_info *, const char **, debug_type *)); -static boolean stab_demangle_fund_type +static bfd_boolean stab_demangle_fund_type PARAMS ((struct stab_demangle_info *, const char **, debug_type *)); -static boolean stab_demangle_remember_type +static bfd_boolean stab_demangle_remember_type PARAMS ((struct stab_demangle_info *, const char *, int)); /* Warn about a bad demangling. */ @@ -3785,13 +3796,13 @@ stab_demangle_count (pp) /* Require a count in a string. The count may be multiple digits, in which case it must end in an underscore. */ -static boolean +static bfd_boolean stab_demangle_get_count (pp, pi) const char **pp; unsigned int *pi; { if (! ISDIGIT (**pp)) - return false; + return FALSE; *pi = **pp - '0'; ++*pp; @@ -3816,7 +3827,7 @@ stab_demangle_get_count (pp, pi) } } - return true; + return TRUE; } /* This function demangles a physical name, returning a NULL @@ -3827,7 +3838,7 @@ stab_demangle_argtypes (dhandle, info, p PTR dhandle; struct stab_handle *info; const char *physname; - boolean *pvarargs; + bfd_boolean *pvarargs; unsigned int physname_len; { struct stab_demangle_info minfo; @@ -3835,7 +3846,7 @@ stab_demangle_argtypes (dhandle, info, p minfo.dhandle = dhandle; minfo.info = info; minfo.args = NULL; - minfo.varargs = false; + minfo.varargs = FALSE; minfo.typestring_alloc = 10; minfo.typestrings = ((struct stab_demangle_typestring *) xmalloc (minfo.typestring_alloc @@ -3871,7 +3882,7 @@ stab_demangle_argtypes (dhandle, info, p /* Demangle the prefix of the mangled name. */ -static boolean +static bfd_boolean stab_demangle_prefix (minfo, pp, physname_len) struct stab_demangle_info *minfo; const char **pp; @@ -3896,7 +3907,7 @@ stab_demangle_prefix (minfo, pp, physnam if (scan == NULL) { stab_bad_demangle (*pp); - return false; + return FALSE; } --scan; @@ -3914,7 +3925,7 @@ stab_demangle_prefix (minfo, pp, physnam { /* This is a GNU style constructor name. */ *pp = scan + 2; - return true; + return TRUE; } else if (scan == *pp && ! ISDIGIT (scan[2]) @@ -3928,7 +3939,7 @@ stab_demangle_prefix (minfo, pp, physnam if (scan == NULL || scan[2] == '\0') { stab_bad_demangle (*pp); - return false; + return FALSE; } return stab_demangle_function_name (minfo, pp, scan); @@ -3941,7 +3952,7 @@ stab_demangle_prefix (minfo, pp, physnam else { stab_bad_demangle (*pp); - return false; + return FALSE; } /*NOTREACHED*/ } @@ -3950,7 +3961,7 @@ stab_demangle_prefix (minfo, pp, physnam double underscore which separates the function name from the signature. */ -static boolean +static bfd_boolean stab_demangle_function_name (minfo, pp, scan) struct stab_demangle_info *minfo; const char **pp; @@ -3975,7 +3986,7 @@ stab_demangle_function_name (minfo, pp, /* This is a type conversion operator. */ tem = name + 5; if (! stab_demangle_type (minfo, &tem, (debug_type *) NULL)) - return false; + return FALSE; } else if (name[0] == '_' && name[1] == '_' @@ -3987,28 +3998,28 @@ stab_demangle_function_name (minfo, pp, /* This is a type conversion operator. */ tem = name + 4; if (! stab_demangle_type (minfo, &tem, (debug_type *) NULL)) - return false; + return FALSE; } - return true; + return TRUE; } /* Demangle the signature. This is where the argument types are found. */ -static boolean +static bfd_boolean stab_demangle_signature (minfo, pp) struct stab_demangle_info *minfo; const char **pp; { const char *orig; - boolean expect_func, func_done; + bfd_boolean expect_func, func_done; const char *hold; orig = *pp; - expect_func = false; - func_done = false; + expect_func = FALSE; + func_done = FALSE; hold = NULL; while (**pp != '\0') @@ -4019,8 +4030,8 @@ stab_demangle_signature (minfo, pp) hold = *pp; if (! stab_demangle_qualified (minfo, pp, (debug_type *) NULL) || ! stab_demangle_remember_type (minfo, hold, *pp - hold)) - return false; - expect_func = true; + return FALSE; + expect_func = TRUE; hold = NULL; break; @@ -4044,8 +4055,8 @@ stab_demangle_signature (minfo, pp) hold = *pp; if (! stab_demangle_class (minfo, pp, (const char **) NULL) || ! stab_demangle_remember_type (minfo, hold, *pp - hold)) - return false; - expect_func = true; + return FALSE; + expect_func = TRUE; hold = NULL; break; @@ -4053,10 +4064,10 @@ stab_demangle_signature (minfo, pp) /* Function. I don't know if this actually happens with g++ output. */ hold = NULL; - func_done = true; + func_done = TRUE; ++*pp; if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs)) - return false; + return FALSE; break; case 't': @@ -4065,9 +4076,9 @@ stab_demangle_signature (minfo, pp) hold = *pp; if (! stab_demangle_template (minfo, pp, (char **) NULL) || ! stab_demangle_remember_type (minfo, hold, *pp - hold)) - return false; + return FALSE; hold = NULL; - expect_func = true; + expect_func = TRUE; break; case '_': @@ -4077,22 +4088,22 @@ stab_demangle_signature (minfo, pp) has been mangled by some algorithm we don't know how to deal with. So just reject the entire demangling. */ stab_bad_demangle (orig); - return false; + return FALSE; default: /* Assume we have stumbled onto the first outermost function argument token, and start processing args. */ - func_done = true; + func_done = TRUE; if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs)) - return false; + return FALSE; break; } if (expect_func) { - func_done = true; + func_done = TRUE; if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs)) - return false; + return FALSE; } } @@ -4103,16 +4114,16 @@ stab_demangle_signature (minfo, pp) first case, and need to ensure that the '(void)' gets added to the current declp. */ if (! stab_demangle_args (minfo, pp, &minfo->args, &minfo->varargs)) - return false; + return FALSE; } - return true; + return TRUE; } /* Demangle a qualified name, such as "Q25Outer5Inner" which is the mangled form of "Outer::Inner". */ -static boolean +static bfd_boolean stab_demangle_qualified (minfo, pp, ptype) struct stab_demangle_info *minfo; const char **pp; @@ -4135,7 +4146,7 @@ stab_demangle_qualified (minfo, pp, ptyp if (! ISDIGIT (*p) || *p == '0') { stab_bad_demangle (orig); - return false; + return FALSE; } qualifiers = atoi (p); while (ISDIGIT (*p)) @@ -4143,7 +4154,7 @@ stab_demangle_qualified (minfo, pp, ptyp if (*p != '_') { stab_bad_demangle (orig); - return false; + return FALSE; } *pp = p + 1; break; @@ -4160,7 +4171,7 @@ stab_demangle_qualified (minfo, pp, ptyp case '0': default: stab_bad_demangle (orig); - return false; + return FALSE; } context = DEBUG_TYPE_NULL; @@ -4176,7 +4187,7 @@ stab_demangle_qualified (minfo, pp, ptyp if (! stab_demangle_template (minfo, pp, ptype != NULL ? &name : NULL)) - return false; + return FALSE; if (ptype != NULL) { @@ -4185,7 +4196,7 @@ stab_demangle_qualified (minfo, pp, ptyp DEBUG_KIND_CLASS); free (name); if (context == DEBUG_TYPE_NULL) - return false; + return FALSE; } } else @@ -4196,7 +4207,7 @@ stab_demangle_qualified (minfo, pp, ptyp if (strlen (*pp) < len) { stab_bad_demangle (orig); - return false; + return FALSE; } if (ptype != NULL) @@ -4230,7 +4241,7 @@ stab_demangle_qualified (minfo, pp, ptyp ft = debug_get_field_type (minfo->dhandle, *fields); if (ft == NULL) - return false; + return FALSE; dn = debug_get_type_name (minfo->dhandle, ft); if (dn != NULL && strcmp (dn, name) == 0) { @@ -4267,7 +4278,7 @@ stab_demangle_qualified (minfo, pp, ptyp ? DEBUG_KIND_ILLEGAL : DEBUG_KIND_CLASS)); if (context == DEBUG_TYPE_NULL) - return false; + return FALSE; } } } @@ -4279,13 +4290,13 @@ stab_demangle_qualified (minfo, pp, ptyp if (ptype != NULL) *ptype = context; - return true; + return TRUE; } /* Demangle a template. If PNAME is not NULL, this sets *PNAME to a string representation of the template. */ -static boolean +static bfd_boolean stab_demangle_template (minfo, pp, pname) struct stab_demangle_info *minfo; const char **pp; @@ -4303,7 +4314,7 @@ stab_demangle_template (minfo, pp, pname if (r == 0 || strlen (*pp) < r) { stab_bad_demangle (orig); - return false; + return FALSE; } *pp += r; @@ -4311,7 +4322,7 @@ stab_demangle_template (minfo, pp, pname if (stab_demangle_get_count (pp, &r) == 0) { stab_bad_demangle (orig); - return false; + return FALSE; } for (i = 0; i < r; i++) @@ -4321,26 +4332,26 @@ stab_demangle_template (minfo, pp, pname /* This is a type parameter. */ ++*pp; if (! stab_demangle_type (minfo, pp, (debug_type *) NULL)) - return false; + return FALSE; } else { const char *old_p; - boolean pointerp, realp, integralp, charp, boolp; - boolean done; + bfd_boolean pointerp, realp, integralp, charp, boolp; + bfd_boolean done; old_p = *pp; - pointerp = false; - realp = false; - integralp = false; - charp = false; - boolp = false; - done = false; + pointerp = FALSE; + realp = FALSE; + integralp = FALSE; + charp = FALSE; + boolp = FALSE; + done = FALSE; /* This is a value parameter. */ if (! stab_demangle_type (minfo, pp, (debug_type *) NULL)) - return false; + return FALSE; while (*old_p != '\0' && ! done) { @@ -4349,8 +4360,8 @@ stab_demangle_template (minfo, pp, pname case 'P': case 'p': case 'R': - pointerp = true; - done = true; + pointerp = TRUE; + done = TRUE; break; case 'C': /* Const. */ case 'S': /* Signed. */ @@ -4362,8 +4373,8 @@ stab_demangle_template (minfo, pp, pname ++old_p; break; case 'Q': /* Qualified name. */ - integralp = true; - done = true; + integralp = TRUE; + done = TRUE; break; case 'T': /* Remembered type. */ abort (); @@ -4374,27 +4385,27 @@ stab_demangle_template (minfo, pp, pname case 'i': /* Int. */ case 's': /* Short. */ case 'w': /* Wchar_t. */ - integralp = true; - done = true; + integralp = TRUE; + done = TRUE; break; case 'b': /* Bool. */ - boolp = true; - done = true; + boolp = TRUE; + done = TRUE; break; case 'c': /* Char. */ - charp = true; - done = true; + charp = TRUE; + done = TRUE; break; case 'r': /* Long double. */ case 'd': /* Double. */ case 'f': /* Float. */ - realp = true; - done = true; + realp = TRUE; + done = TRUE; break; default: /* Assume it's a user defined integral type. */ - integralp = true; - done = true; + integralp = TRUE; + done = TRUE; break; } } @@ -4416,7 +4427,7 @@ stab_demangle_template (minfo, pp, pname if (val == 0) { stab_bad_demangle (orig); - return false; + return FALSE; } } else if (boolp) @@ -4427,7 +4438,7 @@ stab_demangle_template (minfo, pp, pname if (val != 0 && val != 1) { stab_bad_demangle (orig); - return false; + return FALSE; } } else if (realp) @@ -4456,7 +4467,7 @@ stab_demangle_template (minfo, pp, pname if (! stab_demangle_get_count (pp, &len)) { stab_bad_demangle (orig); - return false; + return FALSE; } *pp += len; } @@ -4487,7 +4498,7 @@ stab_demangle_template (minfo, pp, pname stab_bad_demangle (orig); if (s3 != NULL) free (s3); - return false; + return FALSE; } /* Eliminating all spaces, except those between > characters, @@ -4503,12 +4514,12 @@ stab_demangle_template (minfo, pp, pname free (s3); } - return true; + return TRUE; } /* Demangle a class name. */ -static boolean +static bfd_boolean stab_demangle_class (minfo, pp, pstart) struct stab_demangle_info *minfo ATTRIBUTE_UNUSED; const char **pp; @@ -4523,7 +4534,7 @@ stab_demangle_class (minfo, pp, pstart) if (strlen (*pp) < n) { stab_bad_demangle (orig); - return false; + return FALSE; } if (pstart != NULL) @@ -4531,18 +4542,18 @@ stab_demangle_class (minfo, pp, pstart) *pp += n; - return true; + return TRUE; } /* Demangle function arguments. If the pargs argument is not NULL, it is set to a NULL terminated array holding the arguments. */ -static boolean +static bfd_boolean stab_demangle_args (minfo, pp, pargs, pvarargs) struct stab_demangle_info *minfo; const char **pp; debug_type **pargs; - boolean *pvarargs; + bfd_boolean *pvarargs; { const char *orig; unsigned int alloc, count; @@ -4553,7 +4564,7 @@ stab_demangle_args (minfo, pp, pargs, pv if (pargs != NULL) { *pargs = (debug_type *) xmalloc (alloc * sizeof **pargs); - *pvarargs = false; + *pvarargs = FALSE; } count = 0; @@ -4574,20 +4585,20 @@ stab_demangle_args (minfo, pp, pargs, pv if (! stab_demangle_get_count (pp, &r)) { stab_bad_demangle (orig); - return false; + return FALSE; } } if (! stab_demangle_get_count (pp, &t)) { stab_bad_demangle (orig); - return false; + return FALSE; } if (t >= minfo->typestring_count) { stab_bad_demangle (orig); - return false; + return FALSE; } while (r-- > 0) { @@ -4595,13 +4606,13 @@ stab_demangle_args (minfo, pp, pargs, pv tem = minfo->typestrings[t].typestring; if (! stab_demangle_arg (minfo, &tem, pargs, &count, &alloc)) - return false; + return FALSE; } } else { if (! stab_demangle_arg (minfo, pp, pargs, &count, &alloc)) - return false; + return FALSE; } } @@ -4611,16 +4622,16 @@ stab_demangle_args (minfo, pp, pargs, pv if (**pp == 'e') { if (pargs != NULL) - *pvarargs = true; + *pvarargs = TRUE; ++*pp; } - return true; + return TRUE; } /* Demangle a single argument. */ -static boolean +static bfd_boolean stab_demangle_arg (minfo, pp, pargs, pcount, palloc) struct stab_demangle_info *minfo; const char **pp; @@ -4635,12 +4646,12 @@ stab_demangle_arg (minfo, pp, pargs, pco if (! stab_demangle_type (minfo, pp, pargs == NULL ? (debug_type *) NULL : &type) || ! stab_demangle_remember_type (minfo, start, *pp - start)) - return false; + return FALSE; if (pargs != NULL) { if (type == DEBUG_TYPE_NULL) - return false; + return FALSE; if (*pcount + 1 >= *palloc) { @@ -4652,13 +4663,13 @@ stab_demangle_arg (minfo, pp, pargs, pco ++*pcount; } - return true; + return TRUE; } /* Demangle a type. If the ptype argument is not NULL, *ptype is set to the newly allocated type. */ -static boolean +static bfd_boolean stab_demangle_type (minfo, pp, ptype) struct stab_demangle_info *minfo; const char **pp; @@ -4675,7 +4686,7 @@ stab_demangle_type (minfo, pp, ptype) /* A pointer type. */ ++*pp; if (! stab_demangle_type (minfo, pp, ptype)) - return false; + return FALSE; if (ptype != NULL) *ptype = debug_make_pointer_type (minfo->dhandle, *ptype); break; @@ -4684,7 +4695,7 @@ stab_demangle_type (minfo, pp, ptype) /* A reference type. */ ++*pp; if (! stab_demangle_type (minfo, pp, ptype)) - return false; + return FALSE; if (ptype != NULL) *ptype = debug_make_reference_type (minfo->dhandle, *ptype); break; @@ -4701,7 +4712,7 @@ stab_demangle_type (minfo, pp, ptype) if (! ISDIGIT (**pp)) { stab_bad_demangle (orig); - return false; + return FALSE; } high *= 10; high += **pp - '0'; @@ -4710,21 +4721,21 @@ stab_demangle_type (minfo, pp, ptype) if (**pp != '_') { stab_bad_demangle (orig); - return false; + return FALSE; } ++*pp; if (! stab_demangle_type (minfo, pp, ptype)) - return false; + return FALSE; if (ptype != NULL) { debug_type int_type; int_type = debug_find_named_type (minfo->dhandle, "int"); if (int_type == NULL) - int_type = debug_make_int_type (minfo->dhandle, 4, false); + int_type = debug_make_int_type (minfo->dhandle, 4, FALSE); *ptype = debug_make_array_type (minfo->dhandle, *ptype, int_type, - 0, high, false); + 0, high, FALSE); } } break; @@ -4739,16 +4750,16 @@ stab_demangle_type (minfo, pp, ptype) if (! stab_demangle_get_count (pp, &i)) { stab_bad_demangle (orig); - return false; + return FALSE; } if (i >= minfo->typestring_count) { stab_bad_demangle (orig); - return false; + return FALSE; } p = minfo->typestrings[i].typestring; if (! stab_demangle_type (minfo, &p, ptype)) - return false; + return FALSE; } break; @@ -4756,7 +4767,7 @@ stab_demangle_type (minfo, pp, ptype) /* A function. */ { debug_type *args; - boolean varargs; + bfd_boolean varargs; ++*pp; if (! stab_demangle_args (minfo, pp, @@ -4764,20 +4775,20 @@ stab_demangle_type (minfo, pp, ptype) ? (debug_type **) NULL : &args), (ptype == NULL - ? (boolean *) NULL + ? (bfd_boolean *) NULL : &varargs))) - return false; + return FALSE; if (**pp != '_') { /* cplus_demangle will accept a function without a return type, but I don't know when that will happen, or what to do if it does. */ stab_bad_demangle (orig); - return false; + return FALSE; } ++*pp; if (! stab_demangle_type (minfo, pp, ptype)) - return false; + return FALSE; if (ptype != NULL) *ptype = debug_make_function_type (minfo->dhandle, *ptype, args, varargs); @@ -4788,18 +4799,18 @@ stab_demangle_type (minfo, pp, ptype) case 'M': case 'O': { - boolean memberp, constp, volatilep; + bfd_boolean memberp, constp, volatilep; debug_type class_type = DEBUG_TYPE_NULL; debug_type *args; - boolean varargs; + bfd_boolean varargs; unsigned int n; const char *name; memberp = **pp == 'M'; - constp = false; - volatilep = false; + constp = FALSE; + volatilep = FALSE; args = NULL; - varargs = false; + varargs = FALSE; ++*pp; if (ISDIGIT (**pp)) @@ -4808,7 +4819,7 @@ stab_demangle_type (minfo, pp, ptype) if (strlen (*pp) < n) { stab_bad_demangle (orig); - return false; + return FALSE; } name = *pp; *pp += n; @@ -4820,7 +4831,7 @@ stab_demangle_type (minfo, pp, ptype) name, (int) n, DEBUG_KIND_CLASS); if (class_type == DEBUG_TYPE_NULL) - return false; + return FALSE; } } else if (**pp == 'Q') @@ -4829,30 +4840,30 @@ stab_demangle_type (minfo, pp, ptype) (ptype == NULL ? (debug_type *) NULL : &class_type))) - return false; + return FALSE; } else { stab_bad_demangle (orig); - return false; + return FALSE; } if (memberp) { if (**pp == 'C') { - constp = true; + constp = TRUE; ++*pp; } else if (**pp == 'V') { - volatilep = true; + volatilep = TRUE; ++*pp; } if (**pp != 'F') { stab_bad_demangle (orig); - return false; + return FALSE; } ++*pp; if (! stab_demangle_args (minfo, pp, @@ -4860,20 +4871,20 @@ stab_demangle_type (minfo, pp, ptype) ? (debug_type **) NULL : &args), (ptype == NULL - ? (boolean *) NULL + ? (bfd_boolean *) NULL : &varargs))) - return false; + return FALSE; } if (**pp != '_') { stab_bad_demangle (orig); - return false; + return FALSE; } ++*pp; if (! stab_demangle_type (minfo, pp, ptype)) - return false; + return FALSE; if (ptype != NULL) { @@ -4894,13 +4905,13 @@ stab_demangle_type (minfo, pp, ptype) case 'G': ++*pp; if (! stab_demangle_type (minfo, pp, ptype)) - return false; + return FALSE; break; case 'C': ++*pp; if (! stab_demangle_type (minfo, pp, ptype)) - return false; + return FALSE; if (ptype != NULL) *ptype = debug_make_const_type (minfo->dhandle, *ptype); break; @@ -4911,66 +4922,66 @@ stab_demangle_type (minfo, pp, ptype) hold = *pp; if (! stab_demangle_qualified (minfo, pp, ptype)) - return false; + return FALSE; } break; default: if (! stab_demangle_fund_type (minfo, pp, ptype)) - return false; + return FALSE; break; } - return true; + return TRUE; } /* Demangle a fundamental type. If the ptype argument is not NULL, *ptype is set to the newly allocated type. */ -static boolean +static bfd_boolean stab_demangle_fund_type (minfo, pp, ptype) struct stab_demangle_info *minfo; const char **pp; debug_type *ptype; { const char *orig; - boolean constp, volatilep, unsignedp, signedp; - boolean done; + bfd_boolean constp, volatilep, unsignedp, signedp; + bfd_boolean done; orig = *pp; - constp = false; - volatilep = false; - unsignedp = false; - signedp = false; + constp = FALSE; + volatilep = FALSE; + unsignedp = FALSE; + signedp = FALSE; - done = false; + done = FALSE; while (! done) { switch (**pp) { case 'C': - constp = true; + constp = TRUE; ++*pp; break; case 'U': - unsignedp = true; + unsignedp = TRUE; ++*pp; break; case 'S': - signedp = true; + signedp = TRUE; ++*pp; break; case 'V': - volatilep = true; + volatilep = TRUE; ++*pp; break; default: - done = true; + done = TRUE; break; } } @@ -5075,7 +5086,7 @@ stab_demangle_fund_type (minfo, pp, ptyp { *ptype = debug_find_named_type (minfo->dhandle, "__wchar_t"); if (*ptype == DEBUG_TYPE_NULL) - *ptype = debug_make_int_type (minfo->dhandle, 2, true); + *ptype = debug_make_int_type (minfo->dhandle, 2, TRUE); } ++*pp; break; @@ -5115,7 +5126,7 @@ stab_demangle_fund_type (minfo, pp, ptyp if (! ISDIGIT (**pp)) { stab_bad_demangle (orig); - return false; + return FALSE; } /* Fall through. */ case '0': case '1': case '2': case '3': case '4': @@ -5124,7 +5135,7 @@ stab_demangle_fund_type (minfo, pp, ptyp const char *hold; if (! stab_demangle_class (minfo, pp, &hold)) - return false; + return FALSE; if (ptype != NULL) { char *name; @@ -5140,7 +5151,7 @@ stab_demangle_fund_type (minfo, pp, ptyp hold, *pp - hold, DEBUG_KIND_ILLEGAL); if (*ptype == DEBUG_TYPE_NULL) - return false; + return FALSE; } } } @@ -5152,7 +5163,7 @@ stab_demangle_fund_type (minfo, pp, ptyp if (! stab_demangle_template (minfo, pp, ptype != NULL ? &name : NULL)) - return false; + return FALSE; if (ptype != NULL) { *ptype = stab_find_tagged_type (minfo->dhandle, minfo->info, @@ -5160,14 +5171,14 @@ stab_demangle_fund_type (minfo, pp, ptyp DEBUG_KIND_CLASS); free (name); if (*ptype == DEBUG_TYPE_NULL) - return false; + return FALSE; } } break; default: stab_bad_demangle (orig); - return false; + return FALSE; } if (ptype != NULL) @@ -5178,12 +5189,12 @@ stab_demangle_fund_type (minfo, pp, ptyp *ptype = debug_make_volatile_type (minfo->dhandle, *ptype); } - return true; + return TRUE; } /* Remember a type string in a demangled string. */ -static boolean +static bfd_boolean stab_demangle_remember_type (minfo, p, len) struct stab_demangle_info *minfo; const char *p; @@ -5202,5 +5213,5 @@ stab_demangle_remember_type (minfo, p, l minfo->typestrings[minfo->typestring_count].len = (unsigned int) len; ++minfo->typestring_count; - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/binutils/strings.c binutils-2.13.90.0.18/binutils/strings.c --- binutils-2.13.90.0.16/binutils/strings.c Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.18/binutils/strings.c Tue Jan 21 10:21:32 2003 @@ -39,10 +39,11 @@ -o Like -to. (Some other implementations have -o like -to, others like -td. We chose one arbitrarily.) - --encoding={s,b,l,B,L} - -e {s,b,l,B,L} - Select character encoding: single-byte, bigendian 16-bit, - littleendian 16-bit, bigendian 32-bit, littleendian 32-bit + --encoding={s,S,b,l,B,L} + -e {s,S,b,l,B,L} + Select character encoding: 7-bit-character, 8-bit-character, + bigendian 16-bit, littleendian 16-bit, bigendian 32-bit, + littleendian 32-bit. --target=BFDNAME Specify a non-default object file format. @@ -80,11 +81,14 @@ #endif #if O_BINARY #include -#define SET_BINARY(f) do { if (!isatty(f)) setmode(f,O_BINARY); } while (0) +#define SET_BINARY(f) do { if (!isatty (f)) setmode (f,O_BINARY); } while (0) #endif #endif -#define isgraphic(c) (ISPRINT (c) || (c) == '\t') +#define STRING_ISGRAPHIC(c) \ + ( (c) >= 0 \ + && (c) <= 255 \ + && ((c) == '\t' || ISPRINT (c) || (encoding == 'S' && (c) > 127))) #ifndef errno extern int errno; @@ -95,10 +99,10 @@ extern int errno; #ifdef HAVE_FOPEN64 typedef off64_t file_off; -#define file_open(s,m) fopen64(s,m) +#define file_open(s,m) fopen64(s, m) #else typedef off_t file_off; -#define file_open(s,m) fopen(s,m) +#define file_open(s,m) fopen(s, m) #endif /* Radix for printing addresses (must be 8, 10 or 16). */ @@ -107,17 +111,17 @@ static int address_radix; /* Minimum length of sequence of graphic chars to trigger output. */ static int string_min; -/* true means print address within file for each string. */ -static boolean print_addresses; +/* TRUE means print address within file for each string. */ +static bfd_boolean print_addresses; -/* true means print filename for each string. */ -static boolean print_filenames; +/* TRUE means print filename for each string. */ +static bfd_boolean print_filenames; -/* true means for object files scan only the data section. */ -static boolean datasection_only; +/* TRUE means for object files scan only the data section. */ +static bfd_boolean datasection_only; -/* true if we found an initialized data section in the current file. */ -static boolean got_a_section; +/* TRUE if we found an initialized data section in the current file. */ +static bfd_boolean got_a_section; /* The BFD object file format. */ static char *target; @@ -139,18 +143,23 @@ static struct option long_options[] = {NULL, 0, NULL, 0} }; -static void strings_a_section PARAMS ((bfd *, asection *, PTR)); -static boolean strings_object_file PARAMS ((const char *)); -static boolean strings_file PARAMS ((char *file)); -static int integer_arg PARAMS ((char *s)); -static void print_strings PARAMS ((const char *filename, FILE *stream, - file_off address, int stop_point, - int magiccount, char *magic)); -static void usage PARAMS ((FILE *stream, int status)); -static long get_char PARAMS ((FILE *stream, file_off *address, - int *magiccount, char **magic)); +static void strings_a_section + PARAMS ((bfd *, asection *, PTR)); +static bfd_boolean strings_object_file + PARAMS ((const char *)); +static bfd_boolean strings_file + PARAMS ((char *file)); +static int integer_arg + PARAMS ((char *s)); +static void print_strings + PARAMS ((const char *, FILE *, file_off, int, int, char *)); +static void usage + PARAMS ((FILE *, int)); +static long get_char + PARAMS ((FILE *, file_off *, int *, char **)); -int main PARAMS ((int, char **)); +int main + PARAMS ((int, char **)); int main (argc, argv) @@ -159,7 +168,7 @@ main (argc, argv) { int optc; int exit_status = 0; - boolean files_given = false; + bfd_boolean files_given = FALSE; #if defined (HAVE_SETLOCALE) setlocale (LC_ALL, ""); @@ -170,9 +179,9 @@ main (argc, argv) program_name = argv[0]; xmalloc_set_program_name (program_name); string_min = -1; - print_addresses = false; - print_filenames = false; - datasection_only = true; + print_addresses = FALSE; + print_filenames = FALSE; + datasection_only = TRUE; target = NULL; encoding = 's'; @@ -182,11 +191,11 @@ main (argc, argv) switch (optc) { case 'a': - datasection_only = false; + datasection_only = FALSE; break; case 'f': - print_filenames = true; + print_filenames = TRUE; break; case 'H': @@ -196,18 +205,16 @@ main (argc, argv) case 'n': string_min = integer_arg (optarg); if (string_min < 1) - { - fatal (_("invalid number %s"), optarg); - } + fatal (_("invalid number %s"), optarg); break; case 'o': - print_addresses = true; + print_addresses = TRUE; address_radix = 8; break; case 't': - print_addresses = true; + print_addresses = TRUE; if (optarg[1] != '\0') usage (stderr, 1); switch (optarg[0]) @@ -261,6 +268,7 @@ main (argc, argv) switch (encoding) { + case 'S': case 's': encoding_bytes = 1; break; @@ -281,28 +289,28 @@ main (argc, argv) if (optind >= argc) { - datasection_only = false; + datasection_only = FALSE; #ifdef SET_BINARY SET_BINARY (fileno (stdin)); #endif print_strings ("{standard input}", stdin, 0, 0, 0, (char *) NULL); - files_given = true; + files_given = TRUE; } else { for (; optind < argc; ++optind) { if (strcmp (argv[optind], "-") == 0) - datasection_only = false; + datasection_only = FALSE; else { - files_given = true; - exit_status |= (strings_file (argv[optind]) == false); + files_given = TRUE; + exit_status |= strings_file (argv[optind]) == FALSE; } } } - if (files_given == false) + if (!files_given) usage (stderr, 1); return (exit_status); @@ -324,9 +332,10 @@ strings_a_section (abfd, sect, filearg) { bfd_size_type sz = bfd_get_section_size_before_reloc (sect); PTR mem = xmalloc (sz); + if (bfd_get_section_contents (abfd, sect, mem, (file_ptr) 0, sz)) { - got_a_section = true; + got_a_section = TRUE; print_strings (file, (FILE *) NULL, sect->filepos, 0, sz, mem); } free (mem); @@ -336,45 +345,43 @@ strings_a_section (abfd, sect, filearg) /* Scan all of the sections in FILE, and print the strings in the initialized data section(s). - Return true if successful, - false if not (such as if FILE is not an object file). */ + Return TRUE if successful, + FALSE if not (such as if FILE is not an object file). */ -static boolean +static bfd_boolean strings_object_file (file) const char *file; { bfd *abfd = bfd_openr (file, target); if (abfd == NULL) - { - /* Treat the file as a non-object file. */ - return false; - } + /* Treat the file as a non-object file. */ + return FALSE; /* This call is mainly for its side effect of reading in the sections. We follow the traditional behavior of `strings' in that we don't complain if we don't recognize a file to be an object file. */ - if (bfd_check_format (abfd, bfd_object) == false) + if (!bfd_check_format (abfd, bfd_object)) { bfd_close (abfd); - return false; + return FALSE; } - got_a_section = false; + got_a_section = FALSE; bfd_map_over_sections (abfd, strings_a_section, (PTR) file); if (!bfd_close (abfd)) { bfd_nonfatal (file); - return false; + return FALSE; } return got_a_section; } -/* Print the strings in FILE. Return true if ok, false if an error occurs. */ +/* Print the strings in FILE. Return TRUE if ok, FALSE if an error occurs. */ -static boolean +static bfd_boolean strings_file (file) char *file; { @@ -391,7 +398,7 @@ strings_file (file) { fprintf (stderr, "%s: ", program_name); perror (file); - return false; + return FALSE; } print_strings (file, stream, (file_off) 0, 0, 0, (char *) 0); @@ -400,11 +407,11 @@ strings_file (file) { fprintf (stderr, "%s: ", program_name); perror (file); - return false; + return FALSE; } } - return true; + return TRUE; } /* Read the next character, return EOF if none available. @@ -454,6 +461,7 @@ get_char (stream, address, magiccount, m switch (encoding) { + case 'S': case 's': r = buf[0]; break; @@ -518,7 +526,7 @@ print_strings (filename, stream, address c = get_char (stream, &address, &magiccount, &magic); if (c == EOF) return; - if (c > 255 || c < 0 || !isgraphic (c)) + if (! STRING_ISGRAPHIC (c)) /* Found a non-graphic. Try again starting with next char. */ goto tryline; buf[i] = c; @@ -586,7 +594,7 @@ print_strings (filename, stream, address c = get_char (stream, &address, &magiccount, &magic); if (c == EOF) break; - if (c > 255 || c < 0 || !isgraphic (c)) + if (! STRING_ISGRAPHIC (c)) break; putchar (c); } @@ -636,9 +644,8 @@ integer_arg (s) p--; if (*p) - { - fatal (_("invalid integer argument %s"), s); - } + fatal (_("invalid integer argument %s"), s); + return value; } @@ -657,8 +664,8 @@ usage (stream, status) -t --radix={o,x,d} Print the location of the string in base 8, 10 or 16\n\ -o An alias for --radix=o\n\ -T --target= Specify the binary file format\n\ - -e --encoding={s,b,l,B,L} Select character size and endianness:\n\ - s = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n\ + -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n\ + s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n\ -h --help Display this information\n\ -v --version Print the program's version number\n")); list_supported_targets (program_name, stream); diff -uprN binutils-2.13.90.0.16/binutils/unwind-ia64.h binutils-2.13.90.0.18/binutils/unwind-ia64.h --- binutils-2.13.90.0.16/binutils/unwind-ia64.h Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.18/binutils/unwind-ia64.h Mon Dec 16 12:22:52 2002 @@ -22,10 +22,10 @@ Foundation, 59 Temple Place - Suite 330, #include "ansidecl.h" #define UNW_VER(x) ((x) >> 48) -#define UNW_FLAG_MASK 0x0000ffff00000000 -#define UNW_FLAG_OSMASK 0x0000f00000000000 -#define UNW_FLAG_EHANDLER(x) ((x) & 0x0000000100000000L) -#define UNW_FLAG_UHANDLER(x) ((x) & 0x0000000200000000L) -#define UNW_LENGTH(x) ((x) & 0x00000000ffffffffL) +#define UNW_FLAG_MASK 0x0000ffff00000000LL +#define UNW_FLAG_OSMASK 0x0000f00000000000LL +#define UNW_FLAG_EHANDLER(x) ((x) & 0x0000000100000000LL) +#define UNW_FLAG_UHANDLER(x) ((x) & 0x0000000200000000LL) +#define UNW_LENGTH(x) ((x) & 0x00000000ffffffffLL) extern const unsigned char * unw_decode PARAMS ((const unsigned char *, int, void *)); diff -uprN binutils-2.13.90.0.16/binutils/wrstabs.c binutils-2.13.90.0.18/binutils/wrstabs.c --- binutils-2.13.90.0.16/binutils/wrstabs.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/binutils/wrstabs.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,6 @@ /* wrstabs.c -- Output stabs debugging information - Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1996, 1997, 1998, 2000, 2001, 2002 + Free Software Foundation, Inc. Written by Ian Lance Taylor . This file is part of GNU Binutils. @@ -75,7 +76,7 @@ struct stab_type_stack /* The size of the type. */ unsigned int size; /* Whether type string defines a new type. */ - boolean definition; + bfd_boolean definition; /* String defining struct fields. */ char *fields; /* NULL terminated array of strings defining base classes for a @@ -177,81 +178,113 @@ struct stab_write_handle static struct bfd_hash_entry *string_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean stab_write_symbol +static bfd_boolean stab_write_symbol PARAMS ((struct stab_write_handle *, int, int, bfd_vma, const char *)); -static boolean stab_push_string - PARAMS ((struct stab_write_handle *, const char *, long, boolean, +static bfd_boolean stab_push_string + PARAMS ((struct stab_write_handle *, const char *, long, bfd_boolean, unsigned int)); -static boolean stab_push_defined_type +static bfd_boolean stab_push_defined_type PARAMS ((struct stab_write_handle *, long, unsigned int)); -static char *stab_pop_type PARAMS ((struct stab_write_handle *)); -static boolean stab_modify_type +static char *stab_pop_type + PARAMS ((struct stab_write_handle *)); +static bfd_boolean stab_modify_type PARAMS ((struct stab_write_handle *, int, unsigned int, long **, size_t *)); static long stab_get_struct_index PARAMS ((struct stab_write_handle *, const char *, unsigned int, enum debug_type_kind, unsigned int *)); -static boolean stab_class_method_var +static bfd_boolean stab_class_method_var PARAMS ((struct stab_write_handle *, const char *, enum debug_visibility, - boolean, boolean, boolean, bfd_vma, boolean)); - -static boolean stab_start_compilation_unit PARAMS ((PTR, const char *)); -static boolean stab_start_source PARAMS ((PTR, const char *)); -static boolean stab_empty_type PARAMS ((PTR)); -static boolean stab_void_type PARAMS ((PTR)); -static boolean stab_int_type PARAMS ((PTR, unsigned int, boolean)); -static boolean stab_float_type PARAMS ((PTR, unsigned int)); -static boolean stab_complex_type PARAMS ((PTR, unsigned int)); -static boolean stab_bool_type PARAMS ((PTR, unsigned int)); -static boolean stab_enum_type + bfd_boolean, bfd_boolean, bfd_boolean, bfd_vma, bfd_boolean)); +static bfd_boolean stab_start_compilation_unit + PARAMS ((PTR, const char *)); +static bfd_boolean stab_start_source + PARAMS ((PTR, const char *)); +static bfd_boolean stab_empty_type + PARAMS ((PTR)); +static bfd_boolean stab_void_type + PARAMS ((PTR)); +static bfd_boolean stab_int_type + PARAMS ((PTR, unsigned int, bfd_boolean)); +static bfd_boolean stab_float_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean stab_complex_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean stab_bool_type + PARAMS ((PTR, unsigned int)); +static bfd_boolean stab_enum_type PARAMS ((PTR, const char *, const char **, bfd_signed_vma *)); -static boolean stab_pointer_type PARAMS ((PTR)); -static boolean stab_function_type PARAMS ((PTR, int, boolean)); -static boolean stab_reference_type PARAMS ((PTR)); -static boolean stab_range_type PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); -static boolean stab_array_type - PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, boolean)); -static boolean stab_set_type PARAMS ((PTR, boolean)); -static boolean stab_offset_type PARAMS ((PTR)); -static boolean stab_method_type PARAMS ((PTR, boolean, int, boolean)); -static boolean stab_const_type PARAMS ((PTR)); -static boolean stab_volatile_type PARAMS ((PTR)); -static boolean stab_start_struct_type - PARAMS ((PTR, const char *, unsigned int, boolean, unsigned int)); -static boolean stab_struct_field +static bfd_boolean stab_pointer_type + PARAMS ((PTR)); +static bfd_boolean stab_function_type + PARAMS ((PTR, int, bfd_boolean)); +static bfd_boolean stab_reference_type + PARAMS ((PTR)); +static bfd_boolean stab_range_type + PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma)); +static bfd_boolean stab_array_type + PARAMS ((PTR, bfd_signed_vma, bfd_signed_vma, bfd_boolean)); +static bfd_boolean stab_set_type + PARAMS ((PTR, bfd_boolean)); +static bfd_boolean stab_offset_type + PARAMS ((PTR)); +static bfd_boolean stab_method_type + PARAMS ((PTR, bfd_boolean, int, bfd_boolean)); +static bfd_boolean stab_const_type + PARAMS ((PTR)); +static bfd_boolean stab_volatile_type + PARAMS ((PTR)); +static bfd_boolean stab_start_struct_type + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int)); +static bfd_boolean stab_struct_field PARAMS ((PTR, const char *, bfd_vma, bfd_vma, enum debug_visibility)); -static boolean stab_end_struct_type PARAMS ((PTR)); -static boolean stab_start_class_type - PARAMS ((PTR, const char *, unsigned int, boolean, unsigned int, boolean, - boolean)); -static boolean stab_class_static_member +static bfd_boolean stab_end_struct_type + PARAMS ((PTR)); +static bfd_boolean stab_start_class_type + PARAMS ((PTR, const char *, unsigned int, bfd_boolean, unsigned int, + bfd_boolean, bfd_boolean)); +static bfd_boolean stab_class_static_member PARAMS ((PTR, const char *, const char *, enum debug_visibility)); -static boolean stab_class_baseclass - PARAMS ((PTR, bfd_vma, boolean, enum debug_visibility)); -static boolean stab_class_start_method PARAMS ((PTR, const char *)); -static boolean stab_class_method_variant - PARAMS ((PTR, const char *, enum debug_visibility, boolean, boolean, - bfd_vma, boolean)); -static boolean stab_class_static_method_variant - PARAMS ((PTR, const char *, enum debug_visibility, boolean, boolean)); -static boolean stab_class_end_method PARAMS ((PTR)); -static boolean stab_end_class_type PARAMS ((PTR)); -static boolean stab_typedef_type PARAMS ((PTR, const char *)); -static boolean stab_tag_type +static bfd_boolean stab_class_baseclass + PARAMS ((PTR, bfd_vma, bfd_boolean, enum debug_visibility)); +static bfd_boolean stab_class_start_method + PARAMS ((PTR, const char *)); +static bfd_boolean stab_class_method_variant + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, bfd_boolean, + bfd_vma, bfd_boolean)); +static bfd_boolean stab_class_static_method_variant + PARAMS ((PTR, const char *, enum debug_visibility, bfd_boolean, + bfd_boolean)); +static bfd_boolean stab_class_end_method + PARAMS ((PTR)); +static bfd_boolean stab_end_class_type + PARAMS ((PTR)); +static bfd_boolean stab_typedef_type + PARAMS ((PTR, const char *)); +static bfd_boolean stab_tag_type PARAMS ((PTR, const char *, unsigned int, enum debug_type_kind)); -static boolean stab_typdef PARAMS ((PTR, const char *)); -static boolean stab_tag PARAMS ((PTR, const char *)); -static boolean stab_int_constant PARAMS ((PTR, const char *, bfd_vma)); -static boolean stab_float_constant PARAMS ((PTR, const char *, double)); -static boolean stab_typed_constant PARAMS ((PTR, const char *, bfd_vma)); -static boolean stab_variable +static bfd_boolean stab_typdef + PARAMS ((PTR, const char *)); +static bfd_boolean stab_tag + PARAMS ((PTR, const char *)); +static bfd_boolean stab_int_constant + PARAMS ((PTR, const char *, bfd_vma)); +static bfd_boolean stab_float_constant + PARAMS ((PTR, const char *, double)); +static bfd_boolean stab_typed_constant + PARAMS ((PTR, const char *, bfd_vma)); +static bfd_boolean stab_variable PARAMS ((PTR, const char *, enum debug_var_kind, bfd_vma)); -static boolean stab_start_function PARAMS ((PTR, const char *, boolean)); -static boolean stab_function_parameter +static bfd_boolean stab_start_function + PARAMS ((PTR, const char *, bfd_boolean)); +static bfd_boolean stab_function_parameter PARAMS ((PTR, const char *, enum debug_parm_kind, bfd_vma)); -static boolean stab_start_block PARAMS ((PTR, bfd_vma)); -static boolean stab_end_block PARAMS ((PTR, bfd_vma)); -static boolean stab_end_function PARAMS ((PTR)); -static boolean stab_lineno +static bfd_boolean stab_start_block + PARAMS ((PTR, bfd_vma)); +static bfd_boolean stab_end_block + PARAMS ((PTR, bfd_vma)); +static bfd_boolean stab_end_function + PARAMS ((PTR)); +static bfd_boolean stab_lineno PARAMS ((PTR, const char *, unsigned long, bfd_vma)); static const struct debug_write_fns stab_fns = @@ -343,7 +376,7 @@ string_hash_newfunc (entry, table, strin /* Add a symbol to the stabs debugging information we are building. */ -static boolean +static bfd_boolean stab_write_symbol (info, type, desc, value, string) struct stab_write_handle *info; int type; @@ -360,12 +393,12 @@ stab_write_symbol (info, type, desc, val { struct string_hash_entry *h; - h = string_hash_lookup (&info->strhash, string, true, true); + h = string_hash_lookup (&info->strhash, string, TRUE, TRUE); if (h == NULL) { non_fatal (_("string_hash_lookup failed: %s"), bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } if (h->index != -1) strx = h->index; @@ -400,17 +433,17 @@ stab_write_symbol (info, type, desc, val info->symbols_size += STAB_SYMBOL_SIZE; - return true; + return TRUE; } /* Push a string on to the type stack. */ -static boolean +static bfd_boolean stab_push_string (info, string, index, definition, size) struct stab_write_handle *info; const char *string; long index; - boolean definition; + bfd_boolean definition; unsigned int size; { struct stab_type_stack *s; @@ -429,12 +462,12 @@ stab_push_string (info, string, index, d s->next = info->type_stack; info->type_stack = s; - return true; + return TRUE; } /* Push a type index which has already been defined. */ -static boolean +static bfd_boolean stab_push_defined_type (info, index, size) struct stab_write_handle *info; long index; @@ -443,7 +476,7 @@ stab_push_defined_type (info, index, siz char buf[20]; sprintf (buf, "%ld", index); - return stab_push_string (info, buf, index, false, size); + return stab_push_string (info, buf, index, FALSE, size); } /* Pop a type off the type stack. The caller is responsible for @@ -477,7 +510,7 @@ stab_pop_type (info) the symbols, *PSYMSIZE the size of the symbols, *PSTRINGS to the strings, and *PSTRINGSIZE to the size of the strings. */ -boolean +bfd_boolean write_stabs_in_sections_debugging_info (abfd, dhandle, psyms, psymsize, pstrings, pstringsize) bfd *abfd; @@ -507,7 +540,7 @@ write_stabs_in_sections_debugging_info ( { non_fatal ("bfd_hash_table_init_failed: %s", bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } info.type_stack = NULL; @@ -522,22 +555,22 @@ write_stabs_in_sections_debugging_info ( /* The initial symbol holds the string size. */ if (! stab_write_symbol (&info, 0, 0, 0, (const char *) NULL)) - return false; + return FALSE; /* Output an initial N_SO symbol. */ info.so_offset = info.symbols_size; if (! stab_write_symbol (&info, N_SO, 0, 0, bfd_get_filename (abfd))) - return false; + return FALSE; if (! debug_write (dhandle, &stab_fns, (PTR) &info)) - return false; + return FALSE; assert (info.pending_lbrac == (bfd_vma) -1); /* Output a trailing N_SO. */ if (! stab_write_symbol (&info, N_SO, 0, info.last_text_address, (const char *) NULL)) - return false; + return FALSE; /* Put the string size in the initial symbol. */ bfd_put_32 (abfd, info.strings_size, info.symbols + 8); @@ -556,12 +589,12 @@ write_stabs_in_sections_debugging_info ( p += strlen ((char *) p) + 1; } - return true; + return TRUE; } /* Start writing out information for a compilation unit. */ -static boolean +static bfd_boolean stab_start_compilation_unit (p, filename) PTR p; const char *filename; @@ -580,7 +613,7 @@ stab_start_compilation_unit (p, filename /* Start writing out information for a particular source file. */ -static boolean +static bfd_boolean stab_start_source (p, filename) PTR p; const char *filename; @@ -599,7 +632,7 @@ stab_start_source (p, filename) /* Push an empty type. This shouldn't normally happen. We just use a void type. */ -static boolean +static bfd_boolean stab_empty_type (p) PTR p; { @@ -620,13 +653,13 @@ stab_empty_type (p) sprintf (buf, "%ld=%ld", index, index); - return stab_push_string (info, buf, index, false, 0); + return stab_push_string (info, buf, index, FALSE, 0); } } /* Push a void type. */ -static boolean +static bfd_boolean stab_void_type (p) PTR p; { @@ -646,17 +679,17 @@ stab_void_type (p) sprintf (buf, "%ld=%ld", index, index); - return stab_push_string (info, buf, index, true, 0); + return stab_push_string (info, buf, index, TRUE, 0); } } /* Push an integer type. */ -static boolean +static bfd_boolean stab_int_type (p, size, unsignedp) PTR p; unsigned int size; - boolean unsignedp; + bfd_boolean unsignedp; { struct stab_write_handle *info = (struct stab_write_handle *) p; long *cache; @@ -664,7 +697,7 @@ stab_int_type (p, size, unsignedp) if (size <= 0 || (size > sizeof (long) && size != 8)) { non_fatal (_("stab_int_type: bad size %u"), size); - return false; + return FALSE; } if (unsignedp) @@ -709,13 +742,13 @@ stab_int_type (p, size, unsignedp) abort (); } - return stab_push_string (info, buf, index, true, size); + return stab_push_string (info, buf, index, TRUE, size); } } /* Push a floating point type. */ -static boolean +static bfd_boolean stab_float_type (p, size) PTR p; unsigned int size; @@ -736,8 +769,8 @@ stab_float_type (p, size) char buf[50]; /* Floats are defined as a subrange of int. */ - if (! stab_int_type (info, 4, false)) - return false; + if (! stab_int_type (info, 4, FALSE)) + return FALSE; int_type = stab_pop_type (info); index = info->type_index; @@ -752,13 +785,13 @@ stab_float_type (p, size) free (int_type); - return stab_push_string (info, buf, index, true, size); + return stab_push_string (info, buf, index, TRUE, size); } } /* Push a complex type. */ -static boolean +static bfd_boolean stab_complex_type (p, size) PTR p; unsigned int size; @@ -772,13 +805,13 @@ stab_complex_type (p, size) sprintf (buf, "%ld=r%ld;%u;0;", index, index, size); - return stab_push_string (info, buf, index, true, size * 2); + return stab_push_string (info, buf, index, TRUE, size * 2); } -/* Push a boolean type. We use an XCOFF predefined type, since gdb +/* Push a bfd_boolean type. We use an XCOFF predefined type, since gdb always recognizes them. */ -static boolean +static bfd_boolean stab_bool_type (p, size) PTR p; unsigned int size; @@ -811,7 +844,7 @@ stab_bool_type (p, size) /* Push an enum type. */ -static boolean +static bfd_boolean stab_enum_type (p, tag, names, vals) PTR p; const char *tag; @@ -832,10 +865,10 @@ stab_enum_type (p, tag, names, vals) buf = (char *) xmalloc (10 + strlen (tag)); sprintf (buf, "xe%s:", tag); /* FIXME: The size is just a guess. */ - if (! stab_push_string (info, buf, 0, false, 4)) - return false; + if (! stab_push_string (info, buf, 0, FALSE, 4)) + return FALSE; free (buf); - return true; + return TRUE; } len = 10; @@ -862,26 +895,26 @@ stab_enum_type (p, tag, names, vals) if (tag == NULL) { /* FIXME: The size is just a guess. */ - if (! stab_push_string (info, buf, 0, false, 4)) - return false; + if (! stab_push_string (info, buf, 0, FALSE, 4)) + return FALSE; } else { /* FIXME: The size is just a guess. */ if (! stab_write_symbol (info, N_LSYM, 0, 0, buf) || ! stab_push_defined_type (info, index, 4)) - return false; + return FALSE; } free (buf); - return true; + return TRUE; } /* Push a modification of the top type on the stack. Cache the results in CACHE and CACHE_ALLOC. */ -static boolean +static bfd_boolean stab_modify_type (info, mod, size, cache, cache_alloc) struct stab_write_handle *info; int mod; @@ -899,7 +932,7 @@ stab_modify_type (info, mod, size, cache if (targindex <= 0 || cache == NULL) { - boolean definition; + bfd_boolean definition; /* Either the target type has no index, or we aren't caching this modifier. Either way we have no way of recording the @@ -910,7 +943,7 @@ stab_modify_type (info, mod, size, cache sprintf (buf, "%c%s", mod, s); free (s); if (! stab_push_string (info, buf, 0, definition, size)) - return false; + return FALSE; free (buf); } else @@ -941,7 +974,7 @@ stab_modify_type (info, mod, size, cache referenced). */ free (stab_pop_type (info)); if (! stab_push_defined_type (info, index, size)) - return false; + return FALSE; } else { @@ -955,19 +988,19 @@ stab_modify_type (info, mod, size, cache (*cache)[targindex] = index; - if (! stab_push_string (info, buf, index, true, size)) - return false; + if (! stab_push_string (info, buf, index, TRUE, size)) + return FALSE; free (buf); } } - return true; + return TRUE; } /* Push a pointer type. */ -static boolean +static bfd_boolean stab_pointer_type (p) PTR p; { @@ -980,11 +1013,11 @@ stab_pointer_type (p) /* Push a function type. */ -static boolean +static bfd_boolean stab_function_type (p, argcount, varargs) PTR p; int argcount; - boolean varargs ATTRIBUTE_UNUSED; + bfd_boolean varargs ATTRIBUTE_UNUSED; { struct stab_write_handle *info = (struct stab_write_handle *) p; int i; @@ -1007,7 +1040,7 @@ stab_function_type (p, argcount, varargs free (s); if (! stab_write_symbol (info, N_LSYM, 0, 0, buf)) - return false; + return FALSE; free (buf); } @@ -1019,7 +1052,7 @@ stab_function_type (p, argcount, varargs /* Push a reference type. */ -static boolean +static bfd_boolean stab_reference_type (p) PTR p; { @@ -1032,14 +1065,14 @@ stab_reference_type (p) /* Push a range type. */ -static boolean +static bfd_boolean stab_range_type (p, low, high) PTR p; bfd_signed_vma low; bfd_signed_vma high; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; unsigned int size; char *s, *buf; @@ -1052,24 +1085,24 @@ stab_range_type (p, low, high) free (s); if (! stab_push_string (info, buf, 0, definition, size)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Push an array type. */ -static boolean +static bfd_boolean stab_array_type (p, low, high, stringp) PTR p; bfd_signed_vma low; bfd_signed_vma high; - boolean stringp; + bfd_boolean stringp; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; unsigned int element_size; char *range, *element, *buf; long index; @@ -1095,7 +1128,7 @@ stab_array_type (p, low, high, stringp) attribute. */ index = info->type_index; ++info->type_index; - definition = true; + definition = TRUE; sprintf (buf, "%ld=@S;", index); } @@ -1109,22 +1142,22 @@ stab_array_type (p, low, high, stringp) else size = element_size * ((high - low) + 1); if (! stab_push_string (info, buf, index, definition, size)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Push a set type. */ -static boolean +static bfd_boolean stab_set_type (p, bitstringp) PTR p; - boolean bitstringp; + bfd_boolean bitstringp; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; char *s, *buf; long index; @@ -1144,7 +1177,7 @@ stab_set_type (p, bitstringp) attribute. */ index = info->type_index; ++info->type_index; - definition = true; + definition = TRUE; sprintf (buf, "%ld=@S;", index); } @@ -1152,21 +1185,21 @@ stab_set_type (p, bitstringp) free (s); if (! stab_push_string (info, buf, index, definition, 0)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Push an offset type. */ -static boolean +static bfd_boolean stab_offset_type (p) PTR p; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; char *target, *base, *buf; definition = info->type_stack->definition; @@ -1181,24 +1214,24 @@ stab_offset_type (p) free (target); if (! stab_push_string (info, buf, 0, definition, 0)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Push a method type. */ -static boolean +static bfd_boolean stab_method_type (p, domainp, argcount, varargs) PTR p; - boolean domainp; + bfd_boolean domainp; int argcount; - boolean varargs; + bfd_boolean varargs; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; char *domain, *return_type, *buf; char **args; int i; @@ -1213,7 +1246,7 @@ stab_method_type (p, domainp, argcount, if (! domainp) { if (! stab_empty_type (p)) - return false; + return FALSE; } definition = info->type_stack->definition; @@ -1235,7 +1268,7 @@ stab_method_type (p, domainp, argcount, { args = (char **) xmalloc (1 * sizeof (*args)); if (! stab_empty_type (p)) - return false; + return FALSE; definition = definition || info->type_stack->definition; args[0] = stab_pop_type (info); argcount = 1; @@ -1252,7 +1285,7 @@ stab_method_type (p, domainp, argcount, if (! varargs) { if (! stab_empty_type (p)) - return false; + return FALSE; definition = definition || info->type_stack->definition; args[argcount] = stab_pop_type (info); ++argcount; @@ -1283,16 +1316,16 @@ stab_method_type (p, domainp, argcount, free (args); if (! stab_push_string (info, buf, 0, definition, 0)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Push a const version of a type. */ -static boolean +static bfd_boolean stab_const_type (p) PTR p; { @@ -1304,7 +1337,7 @@ stab_const_type (p) /* Push a volatile version of a type. */ -static boolean +static bfd_boolean stab_volatile_type (p) PTR p; { @@ -1368,17 +1401,17 @@ stab_get_struct_index (info, tag, id, ki /* Start outputting a struct. We ignore the tag, and handle it in stab_tag. */ -static boolean +static bfd_boolean stab_start_struct_type (p, tag, id, structp, size) PTR p; const char *tag; unsigned int id; - boolean structp; + bfd_boolean structp; unsigned int size; { struct stab_write_handle *info = (struct stab_write_handle *) p; long index; - boolean definition; + bfd_boolean definition; char *buf; buf = (char *) xmalloc (40); @@ -1387,16 +1420,16 @@ stab_start_struct_type (p, tag, id, stru { index = 0; *buf = '\0'; - definition = false; + definition = FALSE; } else { index = stab_get_struct_index (info, tag, id, DEBUG_KIND_ILLEGAL, &size); if (index < 0) - return false; + return FALSE; sprintf (buf, "%ld=", index); - definition = true; + definition = TRUE; } sprintf (buf + strlen (buf), "%c%u", @@ -1404,17 +1437,17 @@ stab_start_struct_type (p, tag, id, stru size); if (! stab_push_string (info, buf, index, definition, size)) - return false; + return FALSE; info->type_stack->fields = (char *) xmalloc (1); info->type_stack->fields[0] = '\0'; - return true; + return TRUE; } /* Add a field to a struct. */ -static boolean +static bfd_boolean stab_struct_field (p, name, bitpos, bitsize, visibility) PTR p; const char *name; @@ -1423,7 +1456,7 @@ stab_struct_field (p, name, bitpos, bits enum debug_visibility visibility; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; unsigned int size; char *s, *n; const char *vis; @@ -1474,19 +1507,19 @@ stab_struct_field (p, name, bitpos, bits info->type_stack->fields = n; if (definition) - info->type_stack->definition = true; + info->type_stack->definition = TRUE; - return true; + return TRUE; } /* Finish up a struct. */ -static boolean +static bfd_boolean stab_end_struct_type (p) PTR p; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; long index; unsigned int size; char *fields, *first, *buf; @@ -1505,32 +1538,32 @@ stab_end_struct_type (p) free (fields); if (! stab_push_string (info, buf, index, definition, size)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Start outputting a class. */ -static boolean +static bfd_boolean stab_start_class_type (p, tag, id, structp, size, vptr, ownvptr) PTR p; const char *tag; unsigned int id; - boolean structp; + bfd_boolean structp; unsigned int size; - boolean vptr; - boolean ownvptr; + bfd_boolean vptr; + bfd_boolean ownvptr; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; char *vstring; if (! vptr || ownvptr) { - definition = false; + definition = FALSE; vstring = NULL; } else @@ -1540,7 +1573,7 @@ stab_start_class_type (p, tag, id, struc } if (! stab_start_struct_type (p, tag, id, structp, size)) - return false; + return FALSE; if (vptr) { @@ -1563,14 +1596,14 @@ stab_start_class_type (p, tag, id, struc } if (definition) - info->type_stack->definition = true; + info->type_stack->definition = TRUE; - return true; + return TRUE; } /* Add a static member to the class on the type stack. */ -static boolean +static bfd_boolean stab_class_static_member (p, name, physname, visibility) PTR p; const char *name; @@ -1578,7 +1611,7 @@ stab_class_static_member (p, name, physn enum debug_visibility visibility; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; char *s, *n; const char *vis; @@ -1620,22 +1653,22 @@ stab_class_static_member (p, name, physn info->type_stack->fields = n; if (definition) - info->type_stack->definition = true; + info->type_stack->definition = TRUE; - return true; + return TRUE; } /* Add a base class to the class on the type stack. */ -static boolean +static bfd_boolean stab_class_baseclass (p, bitpos, virtual, visibility) PTR p; bfd_vma bitpos; - boolean virtual; + bfd_boolean virtual; enum debug_visibility visibility; { struct stab_write_handle *info = (struct stab_write_handle *) p; - boolean definition; + bfd_boolean definition; char *s; char *buf; unsigned int c; @@ -1690,14 +1723,14 @@ stab_class_baseclass (p, bitpos, virtual info->type_stack->baseclasses = baseclasses; if (definition) - info->type_stack->definition = true; + info->type_stack->definition = TRUE; - return true; + return TRUE; } /* Start adding a method to the class on the type stack. */ -static boolean +static bfd_boolean stab_class_start_method (p, name) PTR p; const char *name; @@ -1724,24 +1757,24 @@ stab_class_start_method (p, name) info->type_stack->methods = m; - return true; + return TRUE; } /* Add a variant, either static or not, to the current method. */ -static boolean +static bfd_boolean stab_class_method_var (info, physname, visibility, staticp, constp, volatilep, voffset, contextp) struct stab_write_handle *info; const char *physname; enum debug_visibility visibility; - boolean staticp; - boolean constp; - boolean volatilep; + bfd_boolean staticp; + bfd_boolean constp; + bfd_boolean volatilep; bfd_vma voffset; - boolean contextp; + bfd_boolean contextp; { - boolean definition; + bfd_boolean definition; char *type; char *context = NULL; char visc, qualc, typec; @@ -1817,49 +1850,49 @@ stab_class_method_var (info, physname, v } if (definition) - info->type_stack->definition = true; + info->type_stack->definition = TRUE; - return true; + return TRUE; } /* Add a variant to the current method. */ -static boolean +static bfd_boolean stab_class_method_variant (p, physname, visibility, constp, volatilep, voffset, contextp) PTR p; const char *physname; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; bfd_vma voffset; - boolean contextp; + bfd_boolean contextp; { struct stab_write_handle *info = (struct stab_write_handle *) p; - return stab_class_method_var (info, physname, visibility, false, constp, + return stab_class_method_var (info, physname, visibility, FALSE, constp, volatilep, voffset, contextp); } /* Add a static variant to the current method. */ -static boolean +static bfd_boolean stab_class_static_method_variant (p, physname, visibility, constp, volatilep) PTR p; const char *physname; enum debug_visibility visibility; - boolean constp; - boolean volatilep; + bfd_boolean constp; + bfd_boolean volatilep; { struct stab_write_handle *info = (struct stab_write_handle *) p; - return stab_class_method_var (info, physname, visibility, true, constp, - volatilep, 0, false); + return stab_class_method_var (info, physname, visibility, TRUE, constp, + volatilep, 0, FALSE); } /* Finish up a method. */ -static boolean +static bfd_boolean stab_class_end_method (p) PTR p; { @@ -1871,12 +1904,12 @@ stab_class_end_method (p) trailing semicolon. */ strcat (info->type_stack->methods, ";"); - return true; + return TRUE; } /* Finish up a class. */ -static boolean +static bfd_boolean stab_end_class_type (p) PTR p; { @@ -1946,12 +1979,12 @@ stab_end_class_type (p) free (info->type_stack->string); info->type_stack->string = buf; - return true; + return TRUE; } /* Push a typedef which was previously defined. */ -static boolean +static bfd_boolean stab_typedef_type (p, name) PTR p; const char *name; @@ -1959,7 +1992,7 @@ stab_typedef_type (p, name) struct stab_write_handle *info = (struct stab_write_handle *) p; struct string_hash_entry *h; - h = string_hash_lookup (&info->typedef_hash, name, false, false); + h = string_hash_lookup (&info->typedef_hash, name, FALSE, FALSE); assert (h != NULL && h->index > 0); return stab_push_defined_type (info, h->index, h->size); @@ -1967,7 +2000,7 @@ stab_typedef_type (p, name) /* Push a struct, union or class tag. */ -static boolean +static bfd_boolean stab_tag_type (p, name, id, kind) PTR p; const char *name; @@ -1980,14 +2013,14 @@ stab_tag_type (p, name, id, kind) index = stab_get_struct_index (info, name, id, kind, &size); if (index < 0) - return false; + return FALSE; return stab_push_defined_type (info, index, size); } /* Define a typedef. */ -static boolean +static bfd_boolean stab_typdef (p, name) PTR p; const char *name; @@ -2016,16 +2049,16 @@ stab_typdef (p, name) free (s); if (! stab_write_symbol (info, N_LSYM, 0, 0, buf)) - return false; + return FALSE; free (buf); - h = string_hash_lookup (&info->typedef_hash, name, true, false); + h = string_hash_lookup (&info->typedef_hash, name, TRUE, FALSE); if (h == NULL) { non_fatal (_("string_hash_lookup failed: %s"), bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } /* I don't think we care about redefinitions. */ @@ -2033,12 +2066,12 @@ stab_typdef (p, name) h->index = index; h->size = size; - return true; + return TRUE; } /* Define a tag. */ -static boolean +static bfd_boolean stab_tag (p, tag) PTR p; const char *tag; @@ -2054,16 +2087,16 @@ stab_tag (p, tag) free (s); if (! stab_write_symbol (info, N_LSYM, 0, 0, buf)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Define an integer constant. */ -static boolean +static bfd_boolean stab_int_constant (p, name, val) PTR p; const char *name; @@ -2076,16 +2109,16 @@ stab_int_constant (p, name, val) sprintf (buf, "%s:c=i%ld", name, (long) val); if (! stab_write_symbol (info, N_LSYM, 0, 0, buf)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Define a floating point constant. */ -static boolean +static bfd_boolean stab_float_constant (p, name, val) PTR p; const char *name; @@ -2098,16 +2131,16 @@ stab_float_constant (p, name, val) sprintf (buf, "%s:c=f%g", name, val); if (! stab_write_symbol (info, N_LSYM, 0, 0, buf)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Define a typed constant. */ -static boolean +static bfd_boolean stab_typed_constant (p, name, val) PTR p; const char *name; @@ -2123,16 +2156,16 @@ stab_typed_constant (p, name, val) free (s); if (! stab_write_symbol (info, N_LSYM, 0, 0, buf)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Record a variable. */ -static boolean +static bfd_boolean stab_variable (p, name, kind, val) PTR p; const char *name; @@ -2196,20 +2229,20 @@ stab_variable (p, name, kind, val) free (s); if (! stab_write_symbol (info, stab_type, 0, val, buf)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Start outputting a function. */ -static boolean +static bfd_boolean stab_start_function (p, name, globalp) PTR p; const char *name; - boolean globalp; + bfd_boolean globalp; { struct stab_write_handle *info = (struct stab_write_handle *) p; char *rettype, *buf; @@ -2227,16 +2260,16 @@ stab_start_function (p, name, globalp) info->fun_offset = info->symbols_size; if (! stab_write_symbol (info, N_FUN, 0, 0, buf)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Output a function parameter. */ -static boolean +static bfd_boolean stab_function_parameter (p, name, kind, val) PTR p; const char *name; @@ -2281,16 +2314,16 @@ stab_function_parameter (p, name, kind, free (s); if (! stab_write_symbol (info, stab_type, 0, val, buf)) - return false; + return FALSE; free (buf); - return true; + return TRUE; } /* Start a block. */ -static boolean +static bfd_boolean stab_start_block (p, addr) PTR p; bfd_vma addr; @@ -2321,7 +2354,7 @@ stab_start_block (p, addr) if (info->nesting == 1) { info->fnaddr = addr; - return true; + return TRUE; } /* We have to output the LBRAC symbol after any variables which are @@ -2333,19 +2366,19 @@ stab_start_block (p, addr) { if (! stab_write_symbol (info, N_LBRAC, 0, info->pending_lbrac, (const char *) NULL)) - return false; + return FALSE; } /* Remember the address and output it later. */ info->pending_lbrac = addr - info->fnaddr; - return true; + return TRUE; } /* End a block. */ -static boolean +static bfd_boolean stab_end_block (p, addr) PTR p; bfd_vma addr; @@ -2360,7 +2393,7 @@ stab_end_block (p, addr) { if (! stab_write_symbol (info, N_LBRAC, 0, info->pending_lbrac, (const char *) NULL)) - return false; + return FALSE; info->pending_lbrac = (bfd_vma) -1; } @@ -2370,7 +2403,7 @@ stab_end_block (p, addr) /* We ignore the outermost block. */ if (info->nesting == 0) - return true; + return TRUE; return stab_write_symbol (info, N_RBRAC, 0, addr - info->fnaddr, (const char *) NULL); @@ -2378,16 +2411,16 @@ stab_end_block (p, addr) /* End a function. */ -static boolean +static bfd_boolean stab_end_function (p) PTR p ATTRIBUTE_UNUSED; { - return true; + return TRUE; } /* Output a line number. */ -static boolean +static bfd_boolean stab_lineno (p, file, lineno, addr) PTR p; const char *file; @@ -2404,7 +2437,7 @@ stab_lineno (p, file, lineno, addr) if (strcmp (file, info->lineno_filename) != 0) { if (! stab_write_symbol (info, N_SOL, 0, addr, file)) - return false; + return FALSE; info->lineno_filename = file; } diff -uprN binutils-2.13.90.0.16/binutils.spec binutils-2.13.90.0.18/binutils.spec --- binutils-2.13.90.0.16/binutils.spec Tue Nov 26 09:24:58 2002 +++ binutils-2.13.90.0.18/binutils.spec Tue Jan 21 10:08:24 2003 @@ -9,7 +9,7 @@ Summary: A GNU collection of binary utilities. Name: binutils -Version: 2.13.90.0.16 +Version: 2.13.90.0.18 Release: 1 Copyright: GPL Group: Development/Tools @@ -37,8 +37,8 @@ binary files. Most programmers will wan %setup -q %ifarch mips mipsel -patch -p0 -b --suffix .got < mips/bfd-mips-got.patch && \ -patch -p1 -b --suffix .isa < mips/binutils-mips-isa.patch +patch -p0 -b --suffix .gprel < mips/gas-mips-gprel.patch && \ +patch -p0 -b --suffix .got < mips/bfd-mips-got.patch find -name "*.rej" | grep rej && exit 1 %endif @@ -82,6 +82,7 @@ LD=%{__ld}; export LD NM=%{__nm}; export NM RANLIB=%{__ranlib}; export RANLIB %configure --enable-shared $ADDITIONAL_TARGETS +make configure-bfd %if %{cross_compile} make headers -C bfd CFLAGS=-O make tooldir=%{_prefix} all info CFLAGS_FOR_BUILD="-O -pipe" diff -uprN binutils-2.13.90.0.16/binutils.spec.in binutils-2.13.90.0.18/binutils.spec.in --- binutils-2.13.90.0.16/binutils.spec.in Tue Nov 26 09:20:32 2002 +++ binutils-2.13.90.0.18/binutils.spec.in Tue Jan 21 10:21:32 2003 @@ -37,8 +37,8 @@ binary files. Most programmers will wan %setup -q %ifarch mips mipsel -patch -p0 -b --suffix .got < mips/bfd-mips-got.patch && \ -patch -p1 -b --suffix .isa < mips/binutils-mips-isa.patch +patch -p0 -b --suffix .gprel < mips/gas-mips-gprel.patch && \ +patch -p0 -b --suffix .got < mips/bfd-mips-got.patch find -name "*.rej" | grep rej && exit 1 %endif @@ -82,6 +82,7 @@ LD=%{__ld}; export LD NM=%{__nm}; export NM RANLIB=%{__ranlib}; export RANLIB %configure --enable-shared $ADDITIONAL_TARGETS +make configure-bfd %if %{cross_compile} make headers -C bfd CFLAGS=-O make tooldir=%{_prefix} all info CFLAGS_FOR_BUILD="-O -pipe" diff -uprN binutils-2.13.90.0.16/config/ChangeLog binutils-2.13.90.0.18/config/ChangeLog --- binutils-2.13.90.0.16/config/ChangeLog Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/config/ChangeLog Tue Jan 21 10:21:32 2003 @@ -1,3 +1,28 @@ +2002-12-28 Alexandre Oliva + + * acx.m4: Name cache variables properly. + (NCN_STRICT_CHECK_TOOL): If program is not found and + value-if-not-found is empty, use ${ncn_tool_prefix}$2 or $2, + depending on whether build != host or not. + (NCN_STRICT_CHECK_TARGET_TOOL): Ditto, with the target prefix. + +2002-12-28 Nathanael Nerode + + * acx.m4: New. + * mh-a68bsd, mh-aix386, mh-apollo68, mh-delta88, mh-hp300, + mh-hpux, mh-hpux8, mh-irix5, mh-irix6, mh-ncrsvr43, mh-openedition, + mh-riscos, mh-sysv: Delete. + * mh-cxux, mh-dgux386, mh-interix, mh-lynxrs6k, mh-ncr3000, + mh-necv4, mh-sco, mh-solaris, mh-sysv4, mh-sysv5, mt-v810: Simplify. + +2002-12-16 Christopher Faylor + + * mh-cygwin: Don't build libtermcap if it doesn't exist. + +2002-11-23 H.J. Lu + + * accross.m4: New. + 2002-11-10 Stan Shebs Retire common MPW configury bits. diff -uprN binutils-2.13.90.0.16/config/accross.m4 binutils-2.13.90.0.18/config/accross.m4 --- binutils-2.13.90.0.16/config/accross.m4 Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/config/accross.m4 Mon Dec 16 12:22:52 2002 @@ -0,0 +1,98 @@ +AC_DEFUN([AC_COMPILE_CHECK_SIZEOF], +[changequote(<<, >>)dnl +dnl The name to #define. +define(<>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl +dnl The cache variable name. +define(<>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl +changequote([, ])dnl +AC_MSG_CHECKING(size of $1) +AC_CACHE_VAL(AC_CV_NAME, +[for ac_size in 4 8 1 2 16 12 $2 ; do # List sizes in rough order of prevalence. + AC_TRY_COMPILE([#include "confdefs.h" +#include +$2 +], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size) + if test x$AC_CV_NAME != x ; then break; fi +done +]) +if test x$AC_CV_NAME = x ; then + AC_MSG_ERROR([cannot determine a size for $1]) +fi +AC_MSG_RESULT($AC_CV_NAME) +AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1]) +undefine([AC_TYPE_NAME])dnl +undefine([AC_CV_NAME])dnl +]) + +AC_DEFUN([AC_C_BIGENDIAN_CROSS], +[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian, +[ac_cv_c_bigendian=unknown +# See if sys/param.h defines the BYTE_ORDER macro. +AC_TRY_COMPILE([#include +#include ], [ +#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN + bogus endian macros +#endif], [# It does; now see whether it defined to BIG_ENDIAN or not. +AC_TRY_COMPILE([#include +#include ], [ +#if BYTE_ORDER != BIG_ENDIAN + not big endian +#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)]) +if test $ac_cv_c_bigendian = unknown; then +AC_TRY_RUN([main () { + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long l; + char c[sizeof (long)]; + } u; + u.l = 1; + exit (u.c[sizeof (long) - 1] == 1); +}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, +[ echo $ac_n "cross-compiling... " 2>&AC_FD_MSG ]) +fi]) +if test $ac_cv_c_bigendian = unknown; then +AC_MSG_CHECKING(to probe for byte ordering) +[ +cat >conftest.c <&AC_FD_MSG + ac_cv_c_bigendian=yes + fi + if test `grep -l LiTTleEnDian conftest.o` ; then + echo $ac_n ' little endian probe OK, ' 1>&AC_FD_MSG + if test $ac_cv_c_bigendian = yes ; then + ac_cv_c_bigendian=unknown; + else + ac_cv_c_bigendian=no + fi + fi + echo $ac_n 'guessing bigendian ... ' >&AC_FD_MSG + fi + fi +AC_MSG_RESULT($ac_cv_c_bigendian) +fi +if test $ac_cv_c_bigendian = yes; then + AC_DEFINE(WORDS_BIGENDIAN, 1, [whether byteorder is bigendian]) + AC_DEFINE(HOST_WORDS_BIG_ENDIAN, 1, + [Define if the host machine stores words of multi-word integers in + big-endian order.]) + BYTEORDER=4321 +else + BYTEORDER=1234 +fi +AC_DEFINE_UNQUOTED(BYTEORDER, $BYTEORDER, [1234 = LIL_ENDIAN, 4321 = BIGENDIAN]) +if test $ac_cv_c_bigendian = unknown; then + AC_MSG_ERROR(unknown endianess - sorry, please pre-set ac_cv_c_bigendian) +fi +]) diff -uprN binutils-2.13.90.0.16/config/acx.m4 binutils-2.13.90.0.18/config/acx.m4 --- binutils-2.13.90.0.16/config/acx.m4 Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/config/acx.m4 Tue Jan 21 10:21:32 2003 @@ -0,0 +1,81 @@ +# Autoconf M4 include file defining utility macros for complex Canadian +# cross builds. + +#### +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM +# or AC_INIT. +# These demand that AC_CANONICAL_SYSTEM be called beforehand. +AC_DEFUN([_NCN_TOOL_PREFIXES], +[ncn_tool_prefix= +test -n "$host_alias" && ncn_tool_prefix=$host_alias- +ncn_target_tool_prefix= +test -n "$target_alias" && ncn_target_tool_prefix=$target_alias- +]) []dnl # _NCN_TOOL_PREFIXES + +#### +# NCN_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but tries a prefix of the target, not the host. +# Code is pretty much lifted from autoconf2.53. + +AC_DEFUN([NCN_CHECK_TARGET_TOOL], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +if test -n "$ncn_target_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], + [${ncn_target_tool_prefix}$2], , [$4]) +fi +if test -z "$ac_cv_prog_$1" ; then + ncn_cv_$1=$$1 + AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [$3], [$4]) + $1=$ncn_cv_$1 +else + $1="$ac_cv_prog_$1" +fi +]) []dnl # NCN_CHECK_TARGET_TOOL + + +#### +# NCN_STRICT_CHECK_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but requires the prefix if build!=host. + +AC_DEFUN([NCN_STRICT_CHECK_TOOL], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +if test -n "$ncn_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_tool_prefix}$2], + [${ncn_tool_prefix}$2], , [$4]) +fi +if test -z "$ac_cv_prog_$1" ; then + if test $build = $host ; then + ncn_cv_$1=$$1 + AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4]) + $1=$ncn_cv_$1 + else + $1="ifelse([$3],[],[${ncn_tool_prefix}$2],[$3])" + fi +else + $1="$ac_cv_prog_$1" +fi +]) []dnl # NCN_STRICT_CHECK_TOOL + + +#### +# NCN_STRICT_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like NCN_CHECK_TARGET_TOOL, but requires the prefix if build!=target. + +AC_DEFUN([NCN_STRICT_CHECK_TARGET_TOOL], +[AC_REQUIRE([_NCN_TOOL_PREFIXES]) []dnl +if test -n "$ncn_target_tool_prefix"; then + AC_CHECK_PROG([$1], [${ncn_target_tool_prefix}$2], + [${ncn_target_tool_prefix}$2], , [$4]) +fi +if test -z "$ac_cv_prog_$1" ; then + if test $build = $target ; then + ncn_cv_$1=$$1 + AC_CHECK_PROG([ncn_cv_$1], [$2], [$2], [ifelse([$3],[],[$2],[$3])], [$4]) + $1=$ncn_cv_$1 + else + $1="ifelse([$3],[],[${ncn_target_tool_prefix}$2],[$3])" + fi +else + $1="$ac_cv_prog_$1" +fi +]) []dnl # NCN_STRICT_CHECK_TARGET_TOOL diff -uprN binutils-2.13.90.0.16/config/mh-a68bsd binutils-2.13.90.0.18/config/mh-a68bsd --- binutils-2.13.90.0.16/config/mh-a68bsd Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.18/config/mh-a68bsd Wed Dec 31 16:00:00 1969 @@ -1,2 +0,0 @@ -RANLIB=true -BISON=yacc diff -uprN binutils-2.13.90.0.16/config/mh-aix386 binutils-2.13.90.0.18/config/mh-aix386 --- binutils-2.13.90.0.16/config/mh-aix386 Thu Jun 3 11:01:56 1999 +++ binutils-2.13.90.0.18/config/mh-aix386 Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -RANLIB = @: diff -uprN binutils-2.13.90.0.16/config/mh-apollo68 binutils-2.13.90.0.18/config/mh-apollo68 --- binutils-2.13.90.0.16/config/mh-apollo68 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-apollo68 Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -RANLIB=true diff -uprN binutils-2.13.90.0.16/config/mh-cxux binutils-2.13.90.0.18/config/mh-cxux --- binutils-2.13.90.0.16/config/mh-cxux Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-cxux Tue Jan 21 10:21:32 2003 @@ -1,7 +1,5 @@ # Configuration for Harris CX/UX 7 (and maybe 6), based on sysv4 configuration. -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cq diff -uprN binutils-2.13.90.0.16/config/mh-cygwin binutils-2.13.90.0.18/config/mh-cygwin --- binutils-2.13.90.0.16/config/mh-cygwin Thu Jun 3 11:01:56 1999 +++ binutils-2.13.90.0.18/config/mh-cygwin Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ -EXTRA_TARGET_HOST_ALL_MODULES=all-libtermcap -EXTRA_TARGET_HOST_INSTALL_MODULES=install-libtermcap +EXTRA_TARGET_HOST_ALL_MODULES=maybe-all-libtermcap +EXTRA_TARGET_HOST_INSTALL_MODULES=maybe-install-libtermcap -all-gdb: all-libtermcap +all-gdb: maybe-all-libtermcap -install-gdb: all-libtermcap +install-gdb: maybe-all-libtermcap diff -uprN binutils-2.13.90.0.16/config/mh-delta88 binutils-2.13.90.0.18/config/mh-delta88 --- binutils-2.13.90.0.16/config/mh-delta88 Thu Jun 3 11:01:56 1999 +++ binutils-2.13.90.0.18/config/mh-delta88 Wed Dec 31 16:00:00 1969 @@ -1,4 +0,0 @@ -RANLIB = true - - - diff -uprN binutils-2.13.90.0.16/config/mh-dgux386 binutils-2.13.90.0.18/config/mh-dgux386 --- binutils-2.13.90.0.16/config/mh-dgux386 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-dgux386 Tue Jan 21 10:21:32 2003 @@ -1,6 +1,3 @@ -# from mh-sysv4 -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cr diff -uprN binutils-2.13.90.0.16/config/mh-hp300 binutils-2.13.90.0.18/config/mh-hp300 --- binutils-2.13.90.0.16/config/mh-hp300 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-hp300 Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ -# If "ar" in $PATH is GNU ar, the symbol table may need rebuilding. -# If it's HP/UX ar, this should be harmless. -RANLIB = ar ts diff -uprN binutils-2.13.90.0.16/config/mh-hpux binutils-2.13.90.0.18/config/mh-hpux --- binutils-2.13.90.0.16/config/mh-hpux Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-hpux Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-hpux8 binutils-2.13.90.0.18/config/mh-hpux8 --- binutils-2.13.90.0.16/config/mh-hpux8 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-hpux8 Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-interix binutils-2.13.90.0.18/config/mh-interix --- binutils-2.13.90.0.16/config/mh-interix Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.18/config/mh-interix Tue Jan 21 10:21:32 2003 @@ -1,6 +1,5 @@ # The shell may not be in /bin. SHELL = sh -RANLIB = true # We also need to override LIBGCC2_DEBUG_CFLAGS so libgcc2 will be # built without debugging information diff -uprN binutils-2.13.90.0.16/config/mh-irix5 binutils-2.13.90.0.18/config/mh-irix5 --- binutils-2.13.90.0.16/config/mh-irix5 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-irix5 Wed Dec 31 16:00:00 1969 @@ -1,2 +0,0 @@ -# Makefile changes for SGI's running IRIX-5.x. -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-irix6 binutils-2.13.90.0.18/config/mh-irix6 --- binutils-2.13.90.0.16/config/mh-irix6 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-irix6 Wed Dec 31 16:00:00 1969 @@ -1,2 +0,0 @@ -# Makefile changes for SGI's running IRIX-6.x. -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-lynxrs6k binutils-2.13.90.0.18/config/mh-lynxrs6k --- binutils-2.13.90.0.16/config/mh-lynxrs6k Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.18/config/mh-lynxrs6k Tue Jan 21 10:21:32 2003 @@ -1,5 +1,2 @@ -# LynxOS running on the rs6000 doesn't have ranlib -RANLIB = true - # /bin/sh is too buggy, so use /bin/bash instead. SHELL = /bin/bash diff -uprN binutils-2.13.90.0.16/config/mh-ncr3000 binutils-2.13.90.0.18/config/mh-ncr3000 --- binutils-2.13.90.0.16/config/mh-ncr3000 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-ncr3000 Tue Jan 21 10:21:32 2003 @@ -1,6 +1,4 @@ # Host configuration file for an NCR 3000 (i486/SVR4) system. -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cq diff -uprN binutils-2.13.90.0.16/config/mh-ncrsvr43 binutils-2.13.90.0.18/config/mh-ncrsvr43 --- binutils-2.13.90.0.16/config/mh-ncrsvr43 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-ncrsvr43 Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ -# Host configuration file for an NCR 3000 (i486/SVR43) system. - -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-necv4 binutils-2.13.90.0.18/config/mh-necv4 --- binutils-2.13.90.0.16/config/mh-necv4 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-necv4 Tue Jan 21 10:21:32 2003 @@ -1,6 +1,4 @@ # Host Makefile fragment for NEC MIPS SVR4. -RANLIB = true - # NEC -lX11 needs some other libraries. X11_EXTRA_LIBS = -lsocket -lnsl diff -uprN binutils-2.13.90.0.16/config/mh-openedition binutils-2.13.90.0.18/config/mh-openedition --- binutils-2.13.90.0.16/config/mh-openedition Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.18/config/mh-openedition Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-riscos binutils-2.13.90.0.18/config/mh-riscos --- binutils-2.13.90.0.16/config/mh-riscos Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.18/config/mh-riscos Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ -# This is for a MIPS running RISC/os 4.52C. - -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-sco binutils-2.13.90.0.18/config/mh-sco --- binutils-2.13.90.0.16/config/mh-sco Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-sco Tue Jan 21 10:21:32 2003 @@ -1,4 +1,3 @@ -RANLIB = true # You may need this if you don't have bison. # BISON = yacc -Sm10400 diff -uprN binutils-2.13.90.0.16/config/mh-solaris binutils-2.13.90.0.18/config/mh-solaris --- binutils-2.13.90.0.16/config/mh-solaris Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-solaris Tue Jan 21 10:21:32 2003 @@ -1,5 +1,2 @@ # Makefile changes for Suns running Solaris 2 - -RANLIB = true - X11_EXTRA_LIBS = -lnsl -lsocket diff -uprN binutils-2.13.90.0.16/config/mh-sysv binutils-2.13.90.0.18/config/mh-sysv --- binutils-2.13.90.0.16/config/mh-sysv Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-sysv Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -RANLIB = true diff -uprN binutils-2.13.90.0.16/config/mh-sysv4 binutils-2.13.90.0.18/config/mh-sysv4 --- binutils-2.13.90.0.16/config/mh-sysv4 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-sysv4 Tue Jan 21 10:21:32 2003 @@ -1,5 +1,3 @@ -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cr diff -uprN binutils-2.13.90.0.16/config/mh-sysv5 binutils-2.13.90.0.18/config/mh-sysv5 --- binutils-2.13.90.0.16/config/mh-sysv5 Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/config/mh-sysv5 Tue Jan 21 10:21:32 2003 @@ -1,5 +1,3 @@ -RANLIB = true - # The l flag generates a warning from the SVR4 archiver, remove it. AR_FLAGS = cr diff -uprN binutils-2.13.90.0.16/config/mt-aix43 binutils-2.13.90.0.18/config/mt-aix43 --- binutils-2.13.90.0.16/config/mt-aix43 Sun Apr 21 01:09:26 2002 +++ binutils-2.13.90.0.18/config/mt-aix43 Wed Dec 31 16:00:00 1969 @@ -1,4 +0,0 @@ -# AIX 4.3 and above requires -X32_64 flag to all ar and nm commands -# to handle both 32-bit and 64-bit objects. -AR_FOR_TARGET=ar -X32_64 -NM_FOR_TARGET=nm -B -X32_64 diff -uprN binutils-2.13.90.0.16/config/mt-v810 binutils-2.13.90.0.18/config/mt-v810 --- binutils-2.13.90.0.16/config/mt-v810 Thu Jun 3 11:01:56 1999 +++ binutils-2.13.90.0.18/config/mt-v810 Tue Jan 21 10:21:32 2003 @@ -1,4 +1,3 @@ CC_FOR_TARGET = ca732 -ansi AS_FOR_TARGET = as732 AR_FOR_TARGET = ar732 -RANLIB_FOR_TARGET = true diff -uprN binutils-2.13.90.0.16/config.guess binutils-2.13.90.0.18/config.guess --- binutils-2.13.90.0.16/config.guess Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/config.guess Tue Jan 21 10:21:32 2003 @@ -1,9 +1,9 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2002-09-12' +timestamp='2003-01-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -98,30 +98,31 @@ trap 'exit 1' 1 2 15 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. -# This shell variable is my proudest work .. or something. --bje +# Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; -(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) - || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; -dummy=$tmpdir/dummy ; -files="$dummy.c $dummy.o $dummy.rel $dummy" ; -trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do - if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; - rm -f $files ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; -unset files' +esac ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -178,7 +179,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ ;; esac # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. @@ -223,6 +235,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; + *:MicroBSD:*:*) + echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE} + exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -257,7 +272,7 @@ main: jsr \$26,exit .end main EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null + $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null if test "$?" = 0 ; then case `$dummy` in 0-0) @@ -286,7 +301,6 @@ EOF ;; esac fi - rm -f $dummy.s $dummy && rmdir $tmpdir echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) @@ -437,10 +451,9 @@ EOF exit (-1); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ + $CC_FOR_BUILD -o $dummy $dummy.c \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + && exit 0 echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) @@ -449,7 +462,7 @@ EOF Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit 0 ;; - Night_Hawk:*:*:PowerMAX_OS) + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) @@ -524,8 +537,7 @@ EOF exit(0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 @@ -623,11 +635,21 @@ EOF exit (0); } EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy && rmdir $tmpdir + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + # avoid double evaluation of $set_cc_for_build + test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) @@ -661,8 +683,7 @@ EOF exit (0); } EOF - $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 - rm -f $dummy.c $dummy && rmdir $tmpdir + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) @@ -720,15 +741,15 @@ EOF CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; + *:UNICOS/mp:*:*) + echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` @@ -756,7 +777,6 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) @@ -769,13 +789,16 @@ EOF echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:3*) - echo i386-pc-interix3 + echo i586-pc-interix3 + exit 0 ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix + echo i586-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin @@ -818,8 +841,26 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c && rmdir $tmpdir - test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu @@ -914,7 +955,6 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c && rmdir $tmpdir test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; @@ -932,6 +972,23 @@ EOF # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -966,9 +1023,6 @@ EOF echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -995,9 +1049,12 @@ EOF mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit 0 ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -1014,9 +1071,6 @@ EOF mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; @@ -1134,11 +1188,6 @@ EOF fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; @@ -1157,12 +1206,6 @@ EOF *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1283,8 +1326,7 @@ main () } EOF -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 -rm -f $dummy.c $dummy && rmdir $tmpdir +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 # Apollos put the system type in the environment. diff -uprN binutils-2.13.90.0.16/config.sub binutils-2.13.90.0.18/config.sub --- binutils-2.13.90.0.16/config.sub Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/config.sub Tue Jan 21 10:21:32 2003 @@ -1,9 +1,9 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2002-09-12' +timestamp='2003-01-03' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -118,7 +118,7 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) + nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -249,11 +249,13 @@ case $basic_machine in | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | msp430 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ @@ -319,11 +321,13 @@ case $basic_machine in | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39 | mipstx39el \ - | none-* | np1-* | ns16k-* | ns32k-* \ + | mipstx39-* | mipstx39el-* \ + | msp430-* \ + | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ @@ -720,6 +724,10 @@ case $basic_machine in np1) basic_machine=np1-gould ;; + nv1) + basic_machine=nv1-cray + os=-unicosmp + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -905,10 +913,6 @@ case $basic_machine in basic_machine=i386-sequent os=-dynix ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; t3e) basic_machine=alphaev5-cray os=-unicos @@ -981,10 +985,6 @@ case $basic_machine in basic_machine=hppa1.1-winbond os=-proelf ;; - windows32) - basic_machine=i386-pc - os=-windows32-msvcrt - ;; xps | xps100) basic_machine=xps100-honeywell ;; @@ -1117,11 +1117,12 @@ case $os in | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*) + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -microbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1133,8 +1134,10 @@ case $os in ;; esac ;; + -nto-qnx*) + ;; -nto*) - os=-nto-qnx + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ diff -uprN binutils-2.13.90.0.16/configure binutils-2.13.90.0.18/configure --- binutils-2.13.90.0.16/configure Wed Oct 2 10:17:19 2002 +++ binutils-2.13.90.0.18/configure Tue Jan 21 10:21:32 2003 @@ -1,96 +1,43 @@ -#!/bin/sh +#! /bin/sh -### WARNING: this file contains embedded tabs. Do not run untabify on this file. - -# Configuration script -# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001, -# 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 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. - -# This file was originally written by K. Richard Pixley. - -# -# Shell script to create proper links to machine-dependent files in -# preparation for compilation. +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. # -# If configure succeeds, it leaves its status in config.status. -# If configure fails after disturbing the status quo, -# config.status is removed. -# - -export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0 $argv; kill $$) +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. -remove=rm -hard_link=ln -symbolic_link='ln -s' - -#for Test -#remove="echo rm" -#hard_link="echo ln" -#symbolic_link="echo ln -s" - -# clear some things potentially inherited from environment. - -Makefile=Makefile -Makefile_in=Makefile.in -arguments= -build_alias= -cache_file=config.cache -cache_file_option= -configdirs= -extraconfigdirs= -diroptions= -enable_threads=no -enable_shared=no -enable_libstdcxx_v3=yes -exec_prefix= -exec_prefixoption= -fatal= -floating_point=default -gas=default -gcc_version= -gcc_version_trigger= -host_alias=NOHOST -host_makefile_frag= -moveifchange= -norecursion= -other_options= -package_makefile_frag= -package_makefile_rules_frag= -prefix=/usr/local -progname= -program_prefix= -program_prefixoption= -program_suffix= -program_suffixoption= -program_transform_name= -program_transform_nameoption= -redirect= -removing= +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --disable-serial-[{host,target,build}-]configure + Don't force sequential configuration of + sub-packages for the host, target or build + machine, or of any sub-packages at all" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= site= -site_makefile_frag= -site_option= srcdir= -srctrigger= -subdirs= -target_alias=NOTARGET -target_makefile_frag= -undefs=NOUNDEFS -version="$Revision: 1.24 $" -x11=default +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' @@ -104,17 +51,656 @@ oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' -### we might need to use some other shell than /bin/sh for running subshells +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=move-if-change + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Do some error checking and defaulting for the host and target type. +# The inputs are: +# configure --host=HOST --target=TARGET --build=BUILD NONOPT +# +# The rules are: +# 1. You are not allowed to specify --host, --target, and nonopt at the +# same time. +# 2. Host defaults to nonopt. +# 3. If nonopt is not specified, then host defaults to the current host, +# as determined by config.guess. +# 4. Target and build default to nonopt. +# 5. If nonopt is not specified, then target and build default to host. + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +case $host---$target---$nonopt in +NONE---*---* | *---NONE---* | *---*---NONE) ;; +*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;; +esac + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:578: checking host system type" >&5 +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + +echo $ac_n "checking target system type""... $ac_c" 1>&6 +echo "configure:599: checking target system type" >&5 + +target_alias=$target +case "$target_alias" in +NONE) + case $nonopt in + NONE) target_alias=$host_alias ;; + *) target_alias=$nonopt ;; + esac ;; +esac + +target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias` +target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$target" 1>&6 + +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:617: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + +test "$host_alias" != "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + + +# Autoconf M4 include file defining utility macros for complex Canadian +# cross builds. + +#### +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM +# or AC_INIT. +# These demand that AC_CANONICAL_SYSTEM be called beforehand. + +#### +# NCN_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but tries a prefix of the target, not the host. +# Code is pretty much lifted from autoconf2.53. + + + +#### +# NCN_STRICT_CHECK_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like AC_CHECK_TOOL, but requires the prefix if build!=host. + + + +#### +# NCN_STRICT_CHECK_TARGET_TOOL(variable, prog-to-check-for,[value-if-not-found],[path]) +# Like NCN_CHECK_TARGET_TOOL, but requires the prefix if build!=target. + + + +# clear some things potentially inherited from environment. + +enable_threads=no +enable_shared=no +enable_libstdcxx_v3=yes +floating_point=default +gas=default +x11=default + +### we might need to use some other shell than /bin/sh for running subshells ### If we are on Windows, search for the shell. This will permit people ### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure ### without also having to set CONFIG_SHELL. This code will work when ### using bash, which sets OSTYPE. case "${OSTYPE}" in *win32*) - if [ x${CONFIG_SHELL} = x ]; then - if [ ! -f /bin/sh ]; then - if [ x${SHELL} != x ] && [ -f ${SHELL} ]; then + if test x${CONFIG_SHELL} = x ; then + if test ! -f /bin/sh ; then + if test x${SHELL} != x && test -f ${SHELL} ; then CONFIG_SHELL=${SHELL} export CONFIG_SHELL else @@ -139,722 +725,1247 @@ esac config_shell=${CONFIG_SHELL-/bin/sh} -NO_EDIT="This file was generated automatically by configure. Do not edit." - ## this is a little touchy and won't always work, but... ## -## if the argv[0] starts with a slash then it is an absolute name that can (and +## if the argv[[0]] starts with a slash then it is an absolute name that can (and ## must) be used as is. ## -## otherwise, if argv[0] has no slash in it, we can assume that it is on the +## otherwise, if argv[[0]] has no slash in it, we can assume that it is on the ## path. Since PATH might include "." we also add `pwd` to the end of PATH. ## progname=$0 # if PWD already has a value, it is probably wrong. -if [ -n "$PWD" ]; then PWD=`${PWDCMD-pwd}`; fi - -case "${progname}" in -/* | [A-Za-z]:[\\/]* ) ;; -*/*) ;; -*) - PATH=$PATH:${PWD=`${PWDCMD-pwd}`} ; export PATH - ;; -esac +if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi # Export original configure arguments for use by sub-configures. TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@" -export TOPLEVEL_CONFIGURE_ARGUMENTS -# Loop over all args -while : -do +moveifchange=${srcdir}/move-if-change -# Break out if there are no more args - case $# in - 0) - break - ;; - esac +# Set srcdir to "." if that's what it is. +# This is important for multilib support. +pwd=`${PWDCMD-pwd}` +srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` +if test "${pwd}" = "${srcpwd}" ; then + srcdir=. +fi -# Get the first arg, and shuffle - option=$1 - shift - -# Make all options have two hyphens - orig_option=$option # Save original for error messages - case $option in - --*) ;; - -*) option=-$option ;; - esac - -# Split out the argument for options that take them - case $option in - --*=*) - optarg=`echo $option | sed -e 's/^[^=]*=//'` - arguments="$arguments $option" - ;; -# These options have mandatory values. Since we didn't find an = sign, -# the value must be in the next argument - --bu* | --cache* | --ex* | --ho* | --pre* | --program-p* | --program-s* | --program-t* | --si* | --sr* | --ta* | --tm* | --x-* | --bi* | --sb* | --li* | --da* | --sy* | --sh* | --lo* | --in* | --ol* | --ma*) - optarg=$1 - shift - arguments="$arguments $option=$optarg" - ;; - --v) - arguments="$arguments -v" - ;; - --*) - arguments="$arguments $option" - ;; - esac +topsrcdir=$srcpwd + +extra_host_args= +# Define the trigger file to make sure configure will re-run whenever +# the gcc version number changes. +if test "${with_gcc_version_trigger+set}" = set ; then + gcc_version_trigger="$with_gcc_version_trigger" + gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'` +else + # If gcc's sources are available, define the trigger file. + if test -f ${topsrcdir}/gcc/version.c ; then + gcc_version_trigger=${topsrcdir}/gcc/version.c + gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'` + case "$ac_configure_args" in + *--with-gcc-version-trigger=$gcc_version_trigger* ) + ;; + * ) + # Add to all subconfigure arguments: build, host, and target. + ac_configure_args="$ac_configure_args --with-gcc-version-trigger=$gcc_version_trigger" + ;; + esac + fi +fi -# Now, process the options - case $option in +### To add a new directory to the tree, first choose whether it is a target +### or a host dependent tool. Then put it into the appropriate list +### (library or tools, host or target), doing a dependency sort. - --bi*) - bindir=$optarg - diroptions="$diroptions --bindir=$optarg" - ;; - --build* | --bu*) - case "$build_alias" in - "") build_alias=$optarg ;; - *) echo '***' Can only configure for one build machine at a time. 1>&2 - fatal=yes - ;; - esac - ;; - --cache*) - cache_file=$optarg - ;; - --da*) - datadir=$optarg - diroptions="$diroptions --datadir=$optarg" - ;; - --disable-*) - enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'` - eval $enableopt=no - disableoptions="$disableoptions $option" - ;; - --enable-*) - case "$option" in - *=*) ;; - *) optarg=yes ;; - esac - - enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` - eval "$enableopt=\$optarg" - enableoptions="$enableoptions '$option'" - ;; - --exec-prefix* | --ex*) - exec_prefix=$optarg - exec_prefixoption="--exec-prefix=$optarg" - ;; - --gas | --g*) - gas=yes - ;; - --help | --he*) - fatal=yes - ;; - --host* | --ho*) - case $host_alias in - NOHOST) host_alias=$optarg ;; - *) echo '***' Can only configure for one host at a time. 1>&2 - fatal=yes - ;; - esac - ;; - --inc*) - includedir=$optarg - diroptions="$diroptions --includedir=$optarg" - ;; - --inf*) - infodir=$optarg - diroptions="$diroptions --infodir=$optarg" - ;; - --libd*) - libdir=$optarg - diroptions="$diroptions --libdir=$optarg" - ;; - --libe*) - libexecdir=$optarg - diroptions="$diroptions --libexecdir=$optarg" - ;; - --lo*) - localstatedir=$optarg - diroptions="$diroptions --localstatedir=$optarg" - ;; - --ma*) - mandir=$optarg - diroptions="$diroptions --mandir=$optarg" - ;; - --nfp | --nf*) - floating_point=no - floating_pointoption="--nfp" - ;; - --norecursion | --no*) - norecursion=yes - ;; - --ol*) - oldincludedir=$optarg - diroptions="$diroptions --oldincludedir=$optarg" - ;; - --prefix* | --pre*) - prefix=$optarg - prefixoption="--prefix=$optarg" - ;; - --program-prefix* | --program-p*) - program_prefix=$optarg - program_prefixoption="--program-prefix=$optarg" - ;; - --program-suffix* | --program-s*) - program_suffix=$optarg - program_suffixoption="--program-suffix=$optarg" - ;; - --program-transform-name* | --program-t*) - # Double any backslashes or dollar signs in the argument - program_transform_name="${program_transform_name} -e `echo ${optarg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`" - program_transform_nameoption="${program_transform_nameoption} --program-transform-name='$optarg'" - ;; - --rm) - removing=--rm - ;; - --sb*) - sbindir=$optarg - diroptions="$diroptions --sbindir=$optarg" - ;; - --sh*) - sharedstatedir=$optarg - diroptions="$diroptions --sharedstatedir=$optarg" - ;; - --silent | --sil* | --quiet | --q*) - redirect=">/dev/null" - verbose=--silent - ;; - --site* | --sit*) - site=$optarg - site_option="--site=$optarg" - ;; - --srcdir*/ | --sr*/) - # Remove trailing slashes. Otherwise, when the file name gets - # bolted into an object file as debug info, it has two slashes - # in it. Ordinarily this is ok, but emacs takes double slash - # to mean "forget the first part". - srcdir=`echo $optarg | sed -e 's:/$::'` - ;; - --srcdir* | --sr*) - srcdir=$optarg - ;; - --sy*) - sysconfdir=$optarg - diroptions="$diroptions --sysconfdir=$optarg" - ;; - --target* | --ta*) - case $target_alias in - NOTARGET) target_alias=$optarg ;; - *) echo '***' Can only configure for one target at a time. 1>&2 - fatal=yes - ;; - esac - ;; - --tmpdir* | --tm*) - TMPDIR=$optarg - tmpdiroption="--tmpdir=$optarg" - ;; - --verbose | --v | --verb*) - redirect= - verbose=--verbose - ;; - --version | --V | --vers*) - echo "This is Cygnus Configure version" `echo ${version} | sed 's/[ $:]//g'` - exit 0 - ;; - --with-*) - case "$option" in - *=*) ;; - *) optarg=yes ;; - esac - - withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` - eval $withopt="\$optarg" - withoptions="$withoptions $option" - ;; - --without-*) - withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'` - eval $withopt=no - withoutoptions="$withoutoptions $option" - ;; - --x) with_x=yes - withoptions="$withoptions --with-x" - ;; - --x-i* | --x-l*) other_options="$other_options $orig_option" - ;; - --*) - echo "configure: Unrecognized option: \"$orig_option\"; use --help for usage." >&2 - exit 1 - ;; - *) - case $undefs in - NOUNDEFS) undefs=$option ;; - *) echo '***' Can only configure for one host and one target at a time. 1>&2 - fatal=yes - ;; - esac - ;; - esac -done +# Subdirs will be configured in the order listed in build_configdirs, +# configdirs, or target_configdirs; see the serialization section below. -# process host and target +# Dependency sorting is only needed when *configuration* must be done in +# a particular order. In all cases a dependency should be specified in +# the Makefile, whether or not it's implicitly specified here. -# Do some error checking and defaulting for the host and target type. -# The inputs are: -# configure --host=HOST --target=TARGET UNDEFS +# Double entries in build_configdirs, configdirs, or target_configdirs may +# cause circular dependencies and break everything horribly. + +# these libraries are used by various programs built for the host environment # -# The rules are: -# 1. You aren't allowed to specify --host, --target, and undefs at the -# same time. -# 2. Host defaults to undefs. -# 3. If undefs is not specified, then host defaults to the current host, -# as determined by config.guess. -# 4. Target defaults to undefs. -# 5. If undefs is not specified, then target defaults to host. +host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk itcl tix libgui zlib" -case "${fatal}" in -"") - # Make sure that host, target & undefs aren't all specified at the - # same time. - case $host_alias---$target_alias---$undefs in - NOHOST---*---* | *---NOTARGET---* | *---*---NOUNDEFS) - ;; - *) echo '***' Can only configure for one host and one target at a time. 1>&2 - fatal=yes - break 2 - ;; - esac +libstdcxx_version="target-libstdc++-v3" - # Now, do defaulting for host. - case $host_alias in - NOHOST) - case $undefs in - NOUNDEFS) - # Neither --host option nor undefs were present. - # Call config.guess. - guesssys=`echo ${progname} | sed 's/configure$/config.guess/'` - if host_alias=`${config_shell} ${guesssys}` - then - # If the string we are going to use for - # the target is a prefix of the string - # we just guessed for the host, then - # assume we are running native, and force - # the same string for both target and host. - case $target_alias in - NOTARGET) ;; - *) - if expr $host_alias : $target_alias >/dev/null - then - host_alias=$target_alias - fi - ;; - esac - echo "Configuring for a ${host_alias} host." - arguments="--host=$host_alias $arguments" - else - echo 'Config.guess failed to determine the host type. You need to specify one.' 1>&2 - fatal=yes - fi - ;; - *) - host_alias=$undefs - arguments="--host=$host_alias $arguments" - undefs=NOUNDEFS - ;; - esac - esac +# these tools are built for the host environment +# Note, the powerpc-eabi build depends on sim occurring before gdb in order to +# know that we are building the simulator. +# binutils, gas and ld appear in that order because it makes sense to run +# "make check" in that particular order. +host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator gettext zip fastjar" + +# libgcj represents the runtime libraries only used by gcj. +libgcj="target-libffi \ + target-boehm-gc \ + target-zlib \ + target-qthreads \ + target-libjava" - # Do defaulting for target. If --target option isn't present, default - # to undefs. If undefs isn't present, default to host. - case $target_alias in - NOTARGET) - case $undefs in - NOUNDEFS) - target_alias=$host_alias - ;; - *) - target_alias=$undefs - arguments="--target=$target_alias $arguments" - ;; - esac - esac - ;; -*) ;; -esac +# these libraries are built for the target environment, and are built after +# the host libraries and the host tools (which may be a cross compiler) +# +target_libs="target-libiberty \ + target-libgloss \ + target-newlib \ + ${libstdcxx_version} \ + target-libf2c \ + ${libgcj} \ + target-libobjc" -if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then - exec 1>&2 - echo Usage: configure [OPTIONS] [HOST] - echo - echo Options: [defaults in brackets] - echo ' --prefix=MYDIR install into MYDIR [/usr/local]' - echo ' --exec-prefix=MYDIR install host-dependent files into MYDIR [/usr/local]' - echo ' --help print this message [normal config]' - echo ' --build=BUILD configure for building on BUILD [BUILD=HOST]' - echo ' --host=HOST configure for HOST [determined via config.guess]' - echo ' --norecursion configure this directory only [recurse]' - echo ' --program-prefix=FOO prepend FOO to installed program names [""]' - echo ' --program-suffix=FOO append FOO to installed program names [""]' - echo ' --program-transform-name=P transform installed names by sed pattern P [""]' - echo ' --site=SITE configure with site-specific makefile for SITE' - echo ' --srcdir=DIR find the sources in DIR [. or ..]' - echo ' --target=TARGET configure for TARGET [TARGET=HOST]' - echo ' --tmpdir=TMPDIR create temporary files in TMPDIR [/tmp]' - echo ' --nfp configure for software floating point [hard float]' - echo ' --with-FOO, --with-FOO=BAR package FOO is available (parameter BAR)' - echo ' --without-FOO package FOO is NOT available' - echo ' --enable-FOO, --enable-FOO=BAR include feature FOO (parameter BAR)' - echo ' --disable-FOO do not include feature FOO' - echo - echo 'Where HOST and TARGET are something like "sparc-sunos", "mips-sgi-irix5", etc.' - echo - if [ -r config.status ] ; then - cat config.status - fi +# these tools are built using the target libs, and are intended to run only +# in the target environment +# +# note: any program that *uses* libraries that are in the "target_libs" +# list belongs in this list. those programs are also very likely +# candidates for the "native_only" list which follows +# +target_tools="target-examples target-groff target-gperf target-rda" - exit 1 -fi +################################################################################ + +## All tools belong in one of the four categories, and are assigned above +## We assign ${configdirs} this way to remove all embedded newlines. This +## is important because configure will choke if they ever get through. +## ${configdirs} is directories we build using the host tools. +## ${target_configdirs} is directories we build using the target tools. +# +configdirs=`echo ${host_libs} ${host_tools}` +target_configdirs=`echo ${target_libs} ${target_tools}` + +################################################################################ -configsub=`echo ${progname} | sed 's/configure$/config.sub/'` -moveifchange=`echo ${progname} | sed 's/configure$/move-if-change/'` -## the sed command below emulates the dirname command -topsrcdir=`cd \`echo ${progname} | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'\`; ${PWDCMD-pwd}` +srcname="gnu development package" +# This gets set non-empty for some net releases of packages. +appdirs="" -# this is a hack. sun4 must always be a valid host alias or this will fail. -if ${config_shell} ${configsub} sun4 >/dev/null 2>&1 ; then - true +# Define is_cross_compiler to save on calls to 'test'. +is_cross_compiler= +if test x"${host}" = x"${target}" ; then + is_cross_compiler=no else - echo '***' cannot find config.sub. 1>&2 - exit 1 + is_cross_compiler=yes +fi + +# We always want to use the same name for this directory, so that dejagnu +# can reliably find it. +target_subdir=${target_alias} + +if test ! -d ${target_subdir} ; then + if mkdir ${target_subdir} ; then true + else + echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2 + exit 1 + fi fi -touch config.junk -if ${config_shell} ${moveifchange} config.junk config.trash ; then - true -else - echo '***' cannot find move-if-change. 1>&2 - exit 1 +build_prefix=build- +build_subdir=${build_prefix}${build_alias} + +if test x"${build_alias}" != x"${host}" ; then + if test ! -d ${build_subdir} ; then + if mkdir ${build_subdir} ; then true + else + echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2 + exit 1 + fi + fi fi -rm -f config.junk config.trash -case "${srcdir}" in -"") - if [ -r configure.in ] ; then - srcdir=. - else - if [ -r ${progname}.in ] ; then - srcdir=`echo ${progname} | sed 's:/configure$::'` - else - echo '***' "Can't find configure.in. Try using --srcdir=some_dir" 1>&2 - exit 1 - fi - fi - ;; -*) - # Set srcdir to "." if that's what it is. - # This is important for multilib support. - if [ ! -d ${srcdir} ] ; then - echo "Invalid source directory ${srcdir}" >&2 - exit 1 - fi - pwd=`${PWDCMD-pwd}` - srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` - if [ "${pwd}" = "${srcpwd}" ] ; then - srcdir=. - fi -esac +# Skipdirs are removed silently. +skipdirs= +# Noconfigdirs are removed loudly. +noconfigdirs="" + +use_gnu_ld= +# Make sure we don't let GNU ld be added if we didn't want it. +if test x$with_gnu_ld = xno ; then + use_gnu_ld=no + noconfigdirs="$noconfigdirs ld" +fi + +use_gnu_as= +# Make sure we don't let GNU as be added if we didn't want it. +if test x$with_gnu_as = xno ; then + use_gnu_as=no + noconfigdirs="$noconfigdirs gas" +fi -### warn about some conflicting configurations. +# some tools are so dependent upon X11 that if we're not building with X, +# it's not even worth trying to configure, much less build, that tool. -case "${srcdir}" in -".") ;; -*) - if [ -f ${srcdir}/config.status ] ; then - echo '***' Cannot configure here in \"${PWD=`${PWDCMD-pwd}`}\" when \"${srcdir}\" is currently configured. 1>&2 - exit 1 - fi +case ${with_x} in + yes | "") ;; # the default value for this tree is that X11 is available + no) + skipdirs="${skipdirs} tk tix itcl libgui" + # We won't be able to build gdbtk without X. + enable_gdbtk=no + ;; + *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;; esac -# default exec_prefix -case "${exec_prefixoption}" in -"") exec_prefix="\$(prefix)" ;; -*) ;; +# Some tools are only suitable for building in a "native" situation. +# Remove these if host!=target. +native_only="autoconf automake libtool fileutils find gawk gettext grep gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms snavigator gnuserv target-gperf" + +# Similarly, some are only suitable for cross toolchains. +# Remove these if host=target. +cross_only="target-libgloss target-newlib target-opcodes" + +case $is_cross_compiler in + no) skipdirs="${skipdirs} ${cross_only}" ;; + yes) skipdirs="${skipdirs} ${native_only}" ;; esac -# Define the trigger file to make sure configure will re-run whenever -# the gcc version number changes. -if [ "${with_gcc_version_trigger+set}" = set ]; then - gcc_version_trigger="$with_gcc_version_trigger" - gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'` -else - # If gcc's sources are available, define the trigger file. - if [ -f ${topsrcdir}/gcc/version.c ] ; then - gcc_version_trigger=${topsrcdir}/gcc/version.c - gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/'` - case "$arguments" in - *--with-gcc-version-trigger=$gcc_version_trigger* ) - ;; - * ) - # Make sure configure.in knows about this. - arguments="--with-gcc-version-trigger=$gcc_version_trigger $arguments" - ;; - esac - withoptions="--with-gcc-version-trigger=$gcc_version_trigger $withoptions" - fi +# If both --with-headers and --with-libs are specified, default to +# --without-newlib. +if test x"${with_headers}" != x && test x"${with_libs}" != x ; then + if test x"${with_newlib}" = x ; then + with_newlib=no + fi fi -### break up ${srcdir}/configure.in. -case "`grep '^# per\-host:' ${srcdir}/configure.in`" in -"") - echo '***' ${srcdir}/configure.in has no \"per-host:\" line. 1>&2 - # Check for a directory that's been converted to use autoconf since - # it was last configured. - if grep AC_OUTPUT ${srcdir}/configure.in >/dev/null ; then - echo '***' Hmm, looks like this directory has been autoconfiscated. 1>&2 - if [ -r ${srcdir}/configure ] ; then - echo '***' Running the local configure script. 1>&2 - case "${cache_file}" in - "") cache_file_option= ;; - *) cache_file_option="--cache-file=${cache_file}" ;; - esac - srcdiroption="--srcdir=${srcdir}" - case "${build_alias}" in - "") buildopt= ;; - *) buildopt="--build=${build_alias}" ;; - esac - eval exec ${config_shell} ${srcdir}/configure ${verbose} \ - ${buildopt} --host=${host_alias} --target=${target_alias} \ - ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ - ${srcdiroption} ${diroptions} \ - ${program_prefixoption} ${program_suffixoption} \ - ${program_transform_nameoption} ${site_option} \ - ${withoptions} ${withoutoptions} \ - ${enableoptions} ${disableoptions} ${floating_pointoption} \ - ${cache_file_option} ${removing} ${other_options} ${redirect} - else - echo '***' There is no configure script present though. 1>&2 - fi - fi - exit 1 - ;; -*) ;; +# Recognize --with-newlib/--without-newlib. +case ${with_newlib} in + no) skipdirs="${skipdirs} target-newlib" ;; + yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;; esac -case "`grep '^# per\-target:' ${srcdir}/configure.in`" in -"") - echo '***' ${srcdir}/configure.in has no \"per-target:\" line. 1>&2 - exit 1 - ;; -*) ;; -esac +# Configure extra directories which are host specific -case "${TMPDIR}" in -"") TMPDIR=/tmp ; export TMPDIR ;; -*) ;; -esac - -# keep this filename short for &%*%$*# 14 char file names and 8+3 file names -tmpdir=${TMPDIR}/cNf$$ -mkdir ${tmpdir} || exit 1 -tmpfile=${tmpdir}/cNf$$ -# Note that under many versions of sh a trap handler for 0 will *override* any -# exit status you explicitly specify! At this point, the only non-error exit -# is at the end of the script; these actions are duplicated there, minus -# the "exit 1". Don't use "exit 0" anywhere after this without resetting the -# trap handler, or you'll lose. -trap "rm -rf Makefile.tem ${tmpdir}; exit 1" 0 1 2 15 - -# split ${srcdir}/configure.in into common, per-host, per-target, -# and post-target parts. Post-target is optional. -sed -e '/^# per\-host:/,$d' ${srcdir}/configure.in > ${tmpfile}.com -sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.hst -if grep '^# post-target:' ${srcdir}/configure.in >/dev/null ; then - sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' ${srcdir}/configure.in > ${tmpfile}.tgt - sed -e '1,/^# post\-target:/d' ${srcdir}/configure.in > ${tmpfile}.pos -else - sed -e '1,/^# per\-target:/d' ${srcdir}/configure.in > ${tmpfile}.tgt - echo >${tmpfile}.pos -fi - -### do common part of configure.in - -# If the language specific compiler does not exist, but the "gcc" directory does, -# we will skip this directory; in this case the sub-directory's common part -# of configure.in will create a small shell script "skip-this-dir" containing -# commands to completely clean up any temporary or created files. - -. ${tmpfile}.com - -if test -f skip-this-dir; then - # Perform the same cleanup as the trap handler, minus the "exit 1" of course, - # and reset the trap handler. - trap 0 - rm -rf Makefile* ${tmpdir} - # Execute the final clean-up actions - ${config_shell} skip-this-dir - # and stop configuring this directory. - exit 0 -fi - -# some sanity checks on configure.in -case "${srctrigger}" in -"") - echo '***' srctrigger not set in ${PWD=`${PWDCMD-pwd}`}/configure.in. 1>&2 - exit 1 - ;; -*) ;; +case "${host}" in + *-cygwin*) + configdirs="$configdirs libtermcap" ;; esac -case "${build_alias}" in -"") - if result=`${config_shell} ${configsub} ${host_alias}` ; then - build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` - build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` - build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - build=${build_cpu}-${build_vendor}-${build_os} - build_alias=${host_alias} - fi +# Remove more programs from consideration, based on the host or +# target this usually means that a port of the program doesn't +# exist yet. + +case "${host}" in + hppa*64*-*-*) + noconfigdirs="$noconfigdirs byacc" + ;; + i[3456]86-*-vsta) + noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv gettext" + ;; + i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*) + noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix db snavigator gnuserv libffi" ;; -*) - if result=`${config_shell} ${configsub} ${build_alias}` ; then - buildopt="--build=${build_alias}" - build_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` - build_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` - build_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - build=${build_cpu}-${build_vendor}-${build_os} - else - echo "Unrecognized build system name ${build_alias}." 1>&2 - exit 1 - fi + i[3456]86-*-mingw32*) + # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv" + noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool" ;; + i[3456]86-*-beos*) + noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" + ;; + *-*-cygwin*) + noconfigdirs="autoconf automake send-pr rcs guile perl" + ;; + *-*-netbsd*) + noconfigdirs="rcs" + ;; + ppc*-*-pe) + noconfigdirs="patch diff make tk tcl expect dejagnu autoconf automake texinfo bison send-pr gprof rcs guile perl itcl tix db snavigator gnuserv" + ;; + powerpc-*-beos*) + noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline" + ;; + *-*-darwin*) + noconfigdirs="$noconfigdirs tk itcl tix libgui" + ;; esac -if result=`${config_shell} ${configsub} ${host_alias}` ; then - true -else - echo "Unrecognized host system name ${host_alias}." 1>&2 - exit 1 -fi -host_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -host=${host_cpu}-${host_vendor}-${host_os} - -. ${tmpfile}.hst - -if result=`${config_shell} ${configsub} ${target_alias}` ; then - true -else - echo "Unrecognized target system name ${target_alias}." 1>&2 - exit 1 -fi -target_cpu=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -target_vendor=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -target_os=`echo $result | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -target=${target_cpu}-${target_vendor}-${target_os} +# Save it here so that, even in case of --enable-libgcj, if the Java +# front-end isn't enabled, we still get libgcj disabled. +libgcj_saved=$libgcj +case $enable_libgcj in +yes) + # If we reset it here, it won't get added to noconfigdirs in the + # target-specific build rules, so it will be forcibly enabled + # (unless the Java language itself isn't enabled). + libgcj= + ;; +no) + # Make sure we get it printed in the list of not supported target libs. + noconfigdirs="$noconfigdirs ${libgcj}" + ;; +esac -. ${tmpfile}.tgt +case "${target}" in + *-*-chorusos) + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; + *-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; + *-*-netbsd*) + # Skip some stuff on all NetBSD configurations. + noconfigdirs="$noconfigdirs target-newlib target-libiberty target-libgloss" + + # Skip some stuff that's unsupported on some NetBSD configurations. + case "${target}" in + i*86-*-netbsdelf*) ;; + *) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + esac + ;; + *-*-netware) + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-newlib target-libiberty target-libgloss ${libgcj}" + ;; + *-*-rtems*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + case ${target} in + h8300*-*-* | h8500-*-*) + noconfigdirs="$noconfigdirs target-libf2c" + ;; + *) ;; + esac + ;; + *-*-vxworks*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; + alpha*-dec-osf*) + # ld works, but does not support shared libraries. + # newlib is not 64 bit ready. I'm not sure about fileutils. + # gas doesn't generate exception information. + noconfigdirs="$noconfigdirs gas ld fileutils target-newlib target-libgloss" + ;; + alpha*-*-*vms*) + noconfigdirs="$noconfigdirs gdb ld target-newlib target-libgloss ${libgcj}" + ;; + alpha*-*-linux*) + # newlib is not 64 bit ready + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + alpha*-*-freebsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + alpha*-*-*) + # newlib is not 64 bit ready + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; + sh-*-linux*) + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" + ;; + sh*-*-pe|mips*-*-pe|*arm-wince-pe) + noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs target-examples" + noconfigdirs="$noconfigdirs target-libiberty texinfo send-pr" + noconfigdirs="$noconfigdirs tcl tix tk itcl libgui sim" + noconfigdirs="$noconfigdirs expect dejagnu" + # the C++ libraries don't build on top of CE's C libraries + noconfigdirs="$noconfigdirs ${libstdcxx_version}" + noconfigdirs="$noconfigdirs target-newlib" + case "${host}" in + *-*-cygwin*) ;; # keep gdb and readline + *) noconfigdirs="$noconfigdirs gdb readline ${libstdcxx_version}" + ;; + esac + ;; + arc-*-*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + arm-*-coff | strongarm-*-coff | xscale-*-coff) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + arm-*-elf* | strongarm-*-elf* | xscale-*-elf*) + noconfigdirs="$noconfigdirs target-libffi target-qthreads" + ;; + arm-*-pe*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + arm-*-oabi*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + thumb-*-coff) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + thumb-*-elf) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + thumb-*-oabi) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + thumb-*-pe) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + arm-*-riscix*) + noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" + ;; + avr-*-*) + noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}" + ;; + c4x-*-* | tic4x-*-*) + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}" + ;; + c54x*-*-* | tic54x-*-*) + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} gcc gdb newlib" + ;; + cris-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + d10v-*-*) + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}" + ;; + d30v-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + fr30-*-elf*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + frv-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + h8300*-*-*) + noconfigdirs="$noconfigdirs target-libgloss" + ;; + h8500-*-*) + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} target-libf2c" + ;; + hppa*64*-*-linux* | parisc*64*-*-linux*) + # In this case, it's because the hppa64-linux target is for + # the kernel only at this point and has no libc, and thus no + # headers, crt*.o, etc., all of which are needed by these. + noconfigdirs="$noconfigdirs target-zlib" + ;; + hppa*-*-*elf* | \ + parisc*-*-linux* | hppa*-*-linux* | \ + hppa*-*-lites* | \ + hppa*-*-openbsd* | \ + hppa*64*-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + # Do configure ld/binutils/gas for this case. + ;; + hppa*-*-*) + # According to Alexandre Oliva , libjava won't + # build on HP-UX 10.20. + noconfigdirs="$noconfigdirs ld shellutils ${libgcj}" + ;; + ia64*-*-elf*) + # No gdb support yet. + noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb" + ;; + ia64*-**-hpux*) + # No gdb or ld support yet. + noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld" + ;; + i[3456]86-*-coff | i[3456]86-*-elf) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + i[34567]86-*-freebsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + i[3456]86-*-linux*) + # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's + # not build java stuff by default. + case "${target}" in + *-*-*libc1*) + noconfigdirs="$noconfigdirs ${libgcj}";; + esac -# Find the source files, if location was not specified. -case "${srcdir}" in -"") - srcdirdefaulted=1 - srcdir=. - if [ ! -r ${srctrigger} ] ; then - srcdir=.. - fi - ;; -*) ;; + # This section makes it possible to build newlib natively on linux. + # If we are using a cross compiler then don't configure newlib. + if test x${is_cross_compiler} != xno ; then + noconfigdirs="$noconfigdirs target-newlib" + fi + noconfigdirs="$noconfigdirs target-libgloss" + # If we are not using a cross compiler, do configure newlib. + # Note however, that newlib will only be configured in this situation + # if the --with-newlib option has been given, because otherwise + # 'target-newlib' will appear in skipdirs. + ;; + i[3456]86-*-mingw32*) + target_configdirs="$target_configdirs target-mingw" + noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}" + + # Can't build gdb for mingw32 if not native. + case "${host}" in + i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc. + *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv" + ;; + esac + ;; + *-*-cygwin*) + target_configdirs="$target_configdirs target-libtermcap target-winsup" + noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}" + # always build newlib. + skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` + + # Can't build gdb for Cygwin if not native. + case "${host}" in + *-*-cygwin*) ;; # keep gdb tcl tk expect etc. + *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix libgui db snavigator gnuserv" + ;; + esac + ;; + i[3456]86-*-pe) + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}" + ;; + i[3456]86-*-sco3.2v5*) + # The linker does not yet know about weak symbols in COFF, + # and is not configured to handle mixed ELF and COFF. + noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" + ;; + i[3456]86-*-sco*) + noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + ;; + i[3456]86-*-solaris2*) + noconfigdirs="$noconfigdirs target-libgloss" + ;; + i[3456]86-*-sysv4*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + i[3456]86-*-beos*) + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" + ;; + m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) + noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}" + ;; + m68k-*-elf*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + m68k-*-coff*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + mcore-*-pe*) + # The EPOC C++ environment does not support exceptions or rtti, + # and so building libstdc++-v3 tends not to always work. + noconfigdirs="$noconfigdirs target-libstdc++-v3" + ;; + mmix-*-*) + noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss" + ;; + mn10200-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + mn10300-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + powerpc-*-aix*) + # copied from rs6000-*-* entry + noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + ;; + powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe) + target_configdirs="$target_configdirs target-winsup" + noconfigdirs="$noconfigdirs gdb tcl tk make expect target-libgloss itcl tix db snavigator gnuserv ${libgcj}" + # always build newlib. + skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` + ;; + # This is temporary until we can link against shared libraries + powerpcle-*-solaris*) + noconfigdirs="$noconfigdirs gdb sim make tcl tk expect itcl tix db snavigator gnuserv ${libgcj}" + ;; + powerpc-*-beos*) + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" + ;; + powerpc-*-darwin*) + noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof ${libgcj}" + ;; + powerpc-*-eabi) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + powerpc64*-*-linux*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + # not yet ported. + noconfigdirs="$noconfigdirs target-libffi" + ;; + rs6000-*-lynxos*) + noconfigdirs="$noconfigdirs target-newlib gprof ${libgcj}" + ;; + rs6000-*-aix*) + noconfigdirs="$noconfigdirs gprof ${libgcj}" + ;; + rs6000-*-*) + noconfigdirs="$noconfigdirs gprof ${libgcj}" + ;; + m68k-apollo-*) + noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss ${libgcj}" + ;; + mips*-*-irix5*) + # The GNU linker does not support shared libraries. + noconfigdirs="$noconfigdirs ld gprof target-libgloss ${libgcj}" + ;; + mips*-*-irix6*) + # Linking libjava exceeds command-line length limits on at least + # IRIX 6.2, but not on IRIX 6.5. + # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham + # + noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + ;; + mips*-dec-bsd*) + noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + ;; + mips*-*-bsd*) + noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" + ;; + mipstx39-*-*) + noconfigdirs="$noconfigdirs gprof ${libgcj}" # same as generic mips + ;; + mips*-*-linux*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + mips*-*-*) + noconfigdirs="$noconfigdirs gprof ${libgcj}" + ;; + romp-*-*) + noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}" + ;; + sh-*-*) + case "${host}" in + i[3456]86-*-vsta) ;; # don't add gprof back in + i[3456]86-*-go32*) ;; # don't add gprof back in + i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in + *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;; + esac + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + sh64-*-*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + sparc-*-elf*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + sparc64-*-elf*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + sparclite-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + sparc-*-sunos4*) + noconfigdirs="$noconfigdirs ${libgcj}" + if test x${is_cross_compiler} != xno ; then + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss" + else + use_gnu_ld=no + fi + ;; + sparc-*-solaris* | sparc64-*-solaris* | sparcv9-*-solaris*) + ;; + v810-*-*) + noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss ${libgcj}" + ;; + v850-*-*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + v850e-*-*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + v850ea-*-*) + noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + ;; + vax-*-vms) + noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes target-libgloss ${libgcj}" + ;; + vax-*-*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; + ip2k-*-*) + noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}" + ;; + *-*-linux*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; + *-*-lynxos*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; + *-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; esac -if [ ! -r ${srcdir}/${srctrigger} ] ; then - case "${srcdirdefaulted}" in - "") echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`${PWDCMD-pwd}`}/${srcdir}" 1>&2 ;; - *) echo '***' "${progname}: Can't find ${srcname} sources in ${PWD=`${PWDCMD-pwd}`}/. or ${PWD=`${PWDCMD-pwd}`}/.." 1>&2 ;; - esac +# If we aren't building newlib, then don't build libgloss, since libgloss +# depends upon some newlib header files. +case "${noconfigdirs}" in + *target-libgloss*) ;; + *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;; +esac - echo '***' \(At least ${srctrigger} is missing.\) 1>&2 - exit 1 +# Figure out what language subdirectories are present. +# Look if the user specified --enable-languages="..."; if not, use +# the environment variable $LANGUAGES if defined. $LANGUAGES might +# go away some day. +# NB: embedded tabs in this IF block -- do not untabify +if test x"${enable_languages+set}" != xset; then + if test x"${LANGUAGES+set}" = xset; then + enable_languages="${LANGUAGES}" + echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 + else + enable_languages=all + fi +else + if test x"${enable_languages}" = x || + test x"${enable_languages}" = xyes; + then + echo configure.in: --enable-languages needs at least one language argument 1>&2 + exit 1 + fi fi +enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'` -# Some systems (e.g., one of the i386-aix systems the gas testers are -# using) don't handle "\$" correctly, so don't use it here. -tooldir='$(exec_prefix)'/${target_alias} +# First scan to see if an enabled language requires some other language. +# We assume that a given config-lang.in will list all the language +# front ends it requires, even if some are required indirectly. +for lang in ${srcdir}/gcc/*/config-lang.in .. +do + case $lang in + ..) + ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/gcc/[*]/config-lang.in) + ;; + *) + lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` + this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang` + for other in $this_lang_requires + do + case ,${enable_languages}, in + *,$other,*) + ;; + *,all,*) + ;; + *,$lang_alias,*) + echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2 + enable_languages="$enable_languages,$other" + ;; + esac + done + ;; + esac +done -if [ "${host_alias}" != "${target_alias}" ] ; then - if [ "${program_prefixoption}" = "" ] ; then - if [ "${program_suffixoption}" = "" ] ; then - if [ "${program_transform_nameoption}" = "" ] ; then - program_prefix=${target_alias}- ; - fi - fi +subdirs= +for lang in ${srcdir}/gcc/*/config-lang.in .. +do + case $lang in + ..) ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/gcc/[*]/config-lang.in) ;; + *) + lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` + this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang` + this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^ ]*\).*$,\1,p' $lang` + build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang` + if test "x$lang_alias" = x + then + echo "$lang doesn't set \$language." 1>&2 + exit 1 + fi + case ${build_by_default},${enable_languages}, in + *,$lang_alias,*) add_this_lang=yes ;; + no,*) add_this_lang=no ;; + *,all,*) add_this_lang=yes ;; + *) add_this_lang=no ;; + esac + if test x"${add_this_lang}" = xyes; then + eval target_libs='"$target_libs "'\"$this_lang_libs\" + else + eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\" + fi + ;; + esac +done + +# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and +# $target_configdirs. +# If we have the source for $noconfigdirs entries, add them to $notsupp. + +notsupp="" +for dir in . $skipdirs $noconfigdirs ; do + dirname=`echo $dir | sed -e s/target-//g` + if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"` + if test -r $srcdir/$dirname/configure ; then + if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then + true + else + notsupp="$notsupp $dir" + fi fi -fi + fi + if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"` + if test -r $srcdir/$dirname/configure ; then + if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then + true + else + notsupp="$notsupp $dir" + fi + fi + fi +done -# Merge program_prefix and program_suffix onto program_transform_name. -# (program_suffix used to use $, but it's hard to preserve $ through both -# make and sh.) -if [ "${program_suffix}" != "" ] ; then - program_transform_name="-e s,\\\\(.*\\\\),\\\\1${program_suffix}, ${program_transform_name}" -fi - -if [ "${program_prefix}" != "" ] ; then - program_transform_name="-e s,^,${program_prefix}, ${program_transform_name}" -fi - -# If CC and CXX are not set in the environment, and the Makefile -# exists, try to extract them from it. This is to handle running -# ./config.status by hand. -if [ -z "${CC}" ] && [ -r Makefile ]; then - sed -n -e ':loop -/\\$/ N -s/\\\n//g -t loop -/^CC[ ]*=/ s/CC[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc - CC=`tail -1 Makefile.cc` - rm -f Makefile.cc -fi - -if [ -z "${CFLAGS}" ] && [ -r Makefile ]; then - sed -n -e ':loop -/\\$/ N -s/\\\n//g -t loop -/^CFLAGS[ ]*=/ s/CFLAGS[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc - CFLAGS=`tail -1 Makefile.cc` - rm -f Makefile.cc -fi - -if [ -z "${CXX}" ] && [ -r Makefile ]; then - sed -n -e ':loop -/\\$/ N -s/\\\n//g -t loop -/^CXX[ ]*=/ s/CXX[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc - CXX=`tail -1 Makefile.cc` - rm -f Makefile.cc -fi - -if [ -z "${CXXFLAGS}" ] && [ -r Makefile ]; then - sed -n -e ':loop -/\\$/ N -s/\\\n//g -t loop -/^CXXFLAGS[ ]*=/ s/CXXFLAGS[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc - CXXFLAGS=`tail -1 Makefile.cc` - rm -f Makefile.cc +# Sometimes the tools are distributed with libiberty but with no other +# libraries. In that case, we don't want to build target-libiberty. +if test -n "${target_configdirs}" ; then + others= + for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do + if test "$i" != "libiberty" ; then + if test -r $srcdir/$i/configure ; then + others=yes; + break; + fi + fi + done + if test -z "${others}" ; then + target_configdirs= + fi fi -# Generate a default definition for YACC. This is used if the makefile can't +# Quietly strip out all directories which aren't configurable in this tree. +# This relies on all configurable subdirectories being autoconfiscated, which +# is now the case. +configdirs_all="$configdirs" +configdirs= +for i in ${configdirs_all} ; do + if test -f ${srcdir}/$i/configure ; then + configdirs="${configdirs} $i" + fi +done +target_configdirs_all="$target_configdirs" +target_configdirs= +for i in ${target_configdirs_all} ; do + j=`echo $i | sed -e s/target-//g` + if test -f ${srcdir}/$j/configure ; then + target_configdirs="${target_configdirs} $i" + fi +done + +# Produce a warning message for the subdirs we can't configure. +# This isn't especially interesting in the Cygnus tree, but in the individual +# FSF releases, it's important to let people know when their machine isn't +# supported by the one or two programs in a package. + +if test -n "${notsupp}" && test -z "${norecursion}" ; then + # If $appdirs is non-empty, at least one of those directories must still + # be configured, or we error out. (E.g., if the gas release supports a + # specified target in some subdirs but not the gas subdir, we shouldn't + # pretend that all is well.) + if test -n "$appdirs" ; then + for dir in $appdirs ; do + if test -r $dir/Makefile.in ; then + if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + appdirs="" + break + fi + if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + appdirs="" + break + fi + fi + done + if test -n "$appdirs" ; then + echo "*** This configuration is not supported by this package." 1>&2 + exit 1 + fi + fi + # Okay, some application will build, or we don't care to check. Still + # notify of subdirs not getting built. + echo "*** This configuration is not supported in the following subdirectories:" 1>&2 + echo " ${notsupp}" 1>&2 + echo " (Any other directories should still work fine.)" 1>&2 +fi + +case "$host" in + *msdosdjgpp*) + enable_gdbtk=no ;; +esac + +copy_dirs= + +# Handle --with-headers=XXX. If the value is not "yes", the contents of +# the named directory are copied to $(tooldir)/sys-include. +if test x"${with_headers}" != x ; then + if test x${is_cross_compiler} = xno ; then + echo 1>&2 '***' --with-headers is only supported when cross compiling + exit 1 + fi + if test x"${with_headers}" != xyes ; then + case "${exec_prefixoption}" in + "") x=${prefix} ;; + *) x=${exec_prefix} ;; + esac + copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include" + fi +fi + +# Handle --with-libs=XXX. If the value is not "yes", the contents of +# the name directories are copied to $(tooldir)/lib. Multiple directories +# are permitted. +if test x"${with_libs}" != x ; then + if test x${is_cross_compiler} = xno ; then + echo 1>&2 '***' --with-libs is only supported when cross compiling + exit 1 + fi + if test x"${with_libs}" != xyes ; then + # Copy the libraries in reverse order, so that files in the first named + # library override files in subsequent libraries. + case "${exec_prefixoption}" in + "") x=${prefix} ;; + *) x=${exec_prefix} ;; + esac + for l in ${with_libs}; do + copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}" + done + fi +fi + +# Handle ${copy_dirs} +set fnord ${copy_dirs} +shift +while test $# != 0 ; do + if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then + : + else + echo Copying $1 to $2 + + # Use the install script to create the directory and all required + # parent directories. + if test -d $2 ; then + : + else + echo >config.temp + ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED + fi + + # Copy the directory, assuming we have tar. + # FIXME: Should we use B in the second tar? Not all systems support it. + (cd $1; tar -cf - .) | (cd $2; tar -xpf -) + + # It is the responsibility of the user to correctly adjust all + # symlinks. If somebody can figure out how to handle them correctly + # here, feel free to add the code. + + echo $1 > $2/COPIED + fi + shift; shift +done + +# Work in distributions that contain no compiler tools, like Autoconf. +tentative_cc="" +host_makefile_frag=/dev/null +if test -d ${srcdir}/config ; then +case "${host}" in + m68k-hp-hpux*) + # Avoid "too much defining" errors from HPUX compiler. + tentative_cc="cc -Wp,-H256000" + # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding. + # If it's HP/UX ar, this should be harmless. + RANLIB="ar ts" + ;; + m68k-apollo-sysv*) + tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG" + ;; + m68k-apollo-bsd*) + #None of the Apollo compilers can compile gas or binutils. The preprocessor + # chokes on bfd, the compiler won't let you assign integers to enums, and + # other problems. Defining CC to gcc is a questionable way to say "don't use + # the apollo compiler" (the preferred version of GCC could be called cc, + # or whatever), but I'm not sure leaving CC as cc is any better... + #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG + # Used to have BISON=yacc. + tentative_cc=gcc + ;; + m88k-dg-dgux*) + tentative_cc="gcc -Wall -ansi -D__using_DGUX" + host_makefile_frag="config/mh-dgux" + ;; + m88k-harris-cxux*) + # Under CX/UX, we want to tell the compiler to use ANSI mode. + tentative_cc="cc -Xa" + host_makefile_frag="config/mh-cxux" + ;; + m88k-motorola-sysv*) + ;; + mips*-dec-ultrix*) + tentative_cc="cc -Wf,-XNg1000" + host_makefile_frag="config/mh-decstation" + ;; + mips*-nec-sysv4*) + # The C compiler on NEC MIPS SVR4 needs bigger tables. + tentative_cc="cc -ZXNd=5000 -ZXNg=1000" + host_makefile_frag="config/mh-necv4" + ;; + mips*-sgi-irix4*) + # Tell compiler to use K&R C. We can't compile under the SGI Ansi + # environment. Also bump switch table size so that cp-parse will + # compile. Bump string length limit so linker builds. + tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192" + ;; + mips*-*-sysv4*) + host_makefile_frag="config/mh-sysv4" + ;; + mips*-*-sysv*) + # This is for a MIPS running RISC/os 4.52C. + + # This is needed for GDB, but needs to be in the top-level make because + # if a library is compiled with the bsd headers and gets linked with the + # sysv system libraries all hell can break loose (e.g. a jmp_buf might be + # a different size). + # ptrace(2) apparently has problems in the BSD environment. No workaround is + # known except to select the sysv environment. Could we use /proc instead? + # These "sysv environments" and "bsd environments" often end up being a pain. + # + # This is not part of CFLAGS because perhaps not all C compilers have this + # option. + tentative_cc="cc -systype sysv" + ;; + i370-ibm-opened*) + tentative_cc="c89" + ;; + i[3456]86-*-sysv5*) + host_makefile_frag="config/mh-sysv5" + ;; + i[3456]86-*-dgux*) + tentative_cc="gcc -Wall -ansi -D__using_DGUX" + host_makefile_frag="config/mh-dgux386" + ;; + i[3456]86-ncr-sysv4.3*) + # The MetaWare compiler will generate a copyright message unless you + # turn it off by adding the -Hnocopyr flag. + tentative_cc="cc -Hnocopyr" + ;; + i[3456]86-ncr-sysv4*) + # for an NCR 3000 (i486/SVR4) system. + # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc. + # This compiler not only emits obnoxious copyright messages every time + # you run it, but it chokes and dies on a whole bunch of GNU source + # files. Default to using the AT&T compiler installed in /usr/ccs/ATT/cc. + tentative_cc="/usr/ccs/ATT/cc" + host_makefile_frag="config/mh-ncr3000" + ;; + i[3456]86-*-sco3.2v5*) + ;; + i[3456]86-*-sco*) + # The native C compiler botches some simple uses of const. Unfortunately, + # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h. + tentative_cc="cc -Dconst=" + host_makefile_frag="config/mh-sco" + ;; + i[3456]86-*-udk*) + host_makefile_frag="config/mh-sysv5" + ;; + i[3456]86-*-solaris2*) + host_makefile_frag="config/mh-sysv4" + ;; + i[3456]86-*-msdosdjgpp*) + host_makefile_frag="config/mh-djgpp" + ;; + *-cygwin*) + host_makefile_frag="config/mh-cygwin" + ;; + *-mingw32*) + host_makefile_frag="config/mh-mingw32" + ;; + *-interix*) + host_makefile_frag="config/mh-interix" + ;; + vax-*-ultrix2*) + # The old BSD pcc isn't up to compiling parts of gdb so use gcc + tentative_cc=gcc + ;; + *-*-solaris2*) + host_makefile_frag="config/mh-solaris" + ;; + m68k-sun-sunos*) + # Sun's C compiler needs the -J flag to be able to compile cp-parse.c + # without overflowing the jump tables (-J says to use a 32 bit table) + tentative_cc="cc -J" + ;; + *-hp-hpux*) + tentative_cc="cc -Wp,-H256000" + ;; + *-*-hiux*) + tentative_cc="cc -Wp,-H256000" + ;; + rs6000-*-lynxos*) + # /bin/cc is less than useful for our purposes. Always use GCC + tentative_cc="/usr/cygnus/progressive/bin/gcc" + host_makefile_frag="config/mh-lynxrs6k" + ;; + *-*-lynxos*) + # /bin/cc is less than useful for our purposes. Always use GCC + tentative_cc="/bin/gcc" + ;; + *-*-sysv4*) + host_makefile_frag="config/mh-sysv4" + ;; +esac +fi + +extra_arflags_for_target= +extra_nmflags_for_target= +extra_ranlibflags_for_target= +target_makefile_frag=/dev/null +case "${target}" in + i[3456]86-*-netware*) + target_makefile_frag="config/mt-netware" + ;; + powerpc-*-netware*) + target_makefile_frag="config/mt-netware" + ;; + *-*-linux*) + target_makefile_frag="config/mt-linux" + ;; + *-*-aix4.[3456789]* | *-*-aix[56789].*) + # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm + # commands to handle both 32-bit and 64-bit objects. These flags are + # harmless if we're using GNU nm or ar. + extra_arflags_for_target=" -X32_64" + extra_nmflags_for_target=" -B -X32_64" + ;; + *-*-darwin*) + # ranlib from Darwin requires the -c flag to look at common symbols. + extra_ranlibflags_for_target=" -c" + ;; + mips*-*-pe | sh*-*-pe | *arm-wince-pe) + target_makefile_frag="config/mt-wince" + ;; +esac + +alphaieee_frag=/dev/null +case $target in + alpha*-*-*) + # This just makes sure to use the -mieee option to build target libs. + # This should probably be set individually by each library. + alphaieee_frag="config/mt-alphaieee" + ;; +esac + +# If --enable-target-optspace always use -Os instead of -O2 to build +# the target libraries, similarly if it is not specified, use -Os +# on selected platforms. +ospace_frag=/dev/null +case "${enable_target_optspace}:${target}" in + yes:*) + ospace_frag="config/mt-ospace" + ;; + :d30v-*) + ospace_frag="config/mt-d30v" + ;; + :m32r-* | :d10v-* | :fr30-*) + ospace_frag="config/mt-ospace" + ;; + no:* | :*) + ;; + *) + echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2 + ;; +esac + +# Set with_gnu_as and with_gnu_ld as appropriate. +# +# This is done by determining whether or not the appropriate directory +# is available, and by checking whether or not specific configurations +# have requested that this magic not happen. +# +# The command line options always override the explicit settings in +# configure.in, and the settings in configure.in override this magic. +# +# If the default for a toolchain is to use GNU as and ld, and you don't +# want to do that, then you should use the --without-gnu-as and +# --without-gnu-ld options for the configure script. + +if test x${use_gnu_as} = x && + echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then + with_gnu_as=yes + extra_host_args="$extra_host_args --with-gnu-as" +fi + +if test x${use_gnu_ld} = x && + echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then + with_gnu_ld=yes + extra_host_args="$extra_host_args --with-gnu-ld" +fi + +# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure +# can detect this case. + +if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then + with_newlib=yes + extra_host_args="$extra_host_args --with-newlib" +fi + +# We default to --with-shared on platforms where -fpic is meaningless. +# Well, we don't yet, but we will. +if false && test "${host}" = "${target}" && test x${enable_shared} = x ; then + case "${target}" in + alpha*-dec-osf*) enable_shared=yes ;; + alpha*-*-linux*) enable_shared=yes ;; + mips-sgi-irix5*) enable_shared=yes ;; + *) enable_shared=no ;; + esac +fi + +case "${enable_shared}" in + yes) shared=yes ;; + no) shared=no ;; + "") shared=no ;; + *) shared=yes ;; +esac + + +# Default to using --with-stabs for certain targets. +if test x${with_stabs} = x ; then + case "${target}" in + mips*-*-irix6*o32) + with_stabs=yes; + extra_host_args="${extra_host_args} --with-stabs" + ;; + mips*-*-irix6*) + ;; + mips*-*-* | alpha*-*-osf*) + with_stabs=yes; + extra_host_args="${extra_host_args} --with-stabs" + ;; + esac +fi + +# hpux11 in 64bit mode has libraries in a weird place. Arrange to find +# them automatically. +case "${host}" in + hppa*64*-*-hpux11*) + extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include" + ;; +esac + +# If we aren't going to be using gcc, see if we can extract a definition +# of CC from the fragment. +# Actually, use the 'pre-extracted' version above. +if test -z "${CC}" && test "${build}" = "${host}" ; then + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + found= + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/gcc; then + found=yes + break + fi + done + IFS="$save_ifs" + if test -z "${found}" && test -n "${tentative_cc}" ; then + CC=$tentative_cc + fi +fi + +# Some systems (e.g., one of the i386-aix systems the gas testers are +# using) don't handle "\$" correctly, so don't use it here. +tooldir='$(exec_prefix)'/${target_alias} +build_tooldir=${tooldir} + +# Generate a default definition for YACC. This is used if the makefile can't # locate bison or byacc in objdir. for prog in 'bison -y' byacc yacc @@ -911,38 +2022,10 @@ do test -n "$DEFAULT_LEX" && break done -if [ "${build}" != "${host}" ]; then +if test "${build}" != "${host}" ; then # If we are doing a Canadian Cross, in which the host and build systems # are not the same, we set reasonable default values for the tools. - tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD" - tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET GCJ_FOR_TARGET" - tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET BUILD_PREFIX" - tools="${tools} BUILD_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM" - tools="${tools} NM_FOR_TARGET RANLIB RANLIB_FOR_TARGET" - tools="${tools} WINDRES WINDRES_FOR_TARGET YACC" - tools="${tools} OBJCOPY OBJDUMP" - - for var in ${tools}; do - if eval [ -z \"\$${var}\" ] && [ -r Makefile ]; then - sed -n -e ':loop -/\\$/ N -s/\\\n//g -t loop -/^'"${var}"'[ ]*=/ s/'"${var}"'[ ]*=[ ]*\(.*\)/\1/p' \ - < Makefile > Makefile.v - t=`tail -1 Makefile.v` - if [ -n "${t}" ]; then - eval "${var}=\${t}" - fi - rm -f Makefile.v - fi - done - - AR=${AR-${host_alias}-ar} - AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar} - AS=${AS-${host_alias}-as} - AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as} BISON=${BISON-bison} CC=${CC-${host_alias}-gcc} CFLAGS=${CFLAGS-"-g -O2"} @@ -952,24 +2035,12 @@ t loop CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc} CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++} GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj} - DLLTOOL=${DLLTOOL-${host_alias}-dlltool} - DLLTOOL_FOR_TARGET=${DLLTOOL_FOR_TARGET-${target_alias}-dlltool} GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}} BUILD_PREFIX=${build_alias}- BUILD_PREFIX_1=${build_alias}- - LD=${LD-${host_alias}-ld} - LD_FOR_TARGET=${LD_FOR_TARGET-${target_alias}-ld} MAKEINFO=${MAKEINFO-makeinfo} - NM=${NM-${host_alias}-nm} - NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm} - RANLIB=${RANLIB-${host_alias}-ranlib} - RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib} - WINDRES=${WINDRES-${host_alias}-windres} - WINDRES_FOR_TARGET=${WINDRES_FOR_TARGET-${target_alias}-windres} - OBJCOPY=${OBJCOPY-${host_alias}-objcopy} - OBJDUMP=${OBJDUMP-${host_alias}-objdump} - if [ -z "${YACC}" ]; then + if test -z "${YACC}" ; then IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" for dir in $PATH; do test -z "$dir" && dir=. @@ -987,12 +2058,12 @@ t loop fi done IFS="$save_ifs" - if [ -z "${YACC}" ]; then + if test -z "${YACC}" ; then YACC="bison -y" fi fi - if [ -z "${LEX}" ]; then + if test -z "${LEX}" ; then IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" for dir in $PATH; do test -z "$dir" && dir=. @@ -1009,25 +2080,33 @@ t loop LEX=${LEX-flex} fi - # Export variables which autoconf might try to set. - export AS - export AR - export CC_FOR_BUILD - export DLLTOOL - export LD - export NM - export RANLIB - export WINDRES - export OBJCOPY - export OBJDUMP else + # Set reasonable default values for some tools even if not Canadian. + # Of course, these are different reasonable default values, originally + # specified directly in the Makefile. + # We don't export, so that autoconf can do its job. + # Note that all these settings are above the fragment inclusion point + # in Makefile.in, so can still be overridden by fragments. + # This is all going to change when we autoconfiscate... + + BISON="\$(USUAL_BISON)" + CC_FOR_BUILD="\$(CC)" + GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)" + BUILD_PREFIX= + BUILD_PREFIX_1=loser- + MAKEINFO="\$(USUAL_MAKEINFO)" + LEX="\$(USUAL_LEX)" + YACC="\$(USUAL_YACC)" + # If CC is still not set, try to get gcc. - if [ -z "${CC}" ]; then + cc_prog_is_gcc= + if test -z "${CC}" ; then IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" for dir in $PATH; do test -z "$dir" && dir=. if test -f $dir/gcc; then CC="gcc" + cc_prog_is_gcc=yes echo 'void f(){}' > conftest.c if test -z "`${CC} -g -c conftest.c 2>&1`"; then CFLAGS=${CFLAGS-"-g -O2"} @@ -1043,11 +2122,20 @@ else IFS="$save_ifs" CC=${CC-cc} else + # Determine if we are using gcc. + cat > conftest.c </dev/null 2>&1; then + cc_prog_is_gcc=yes + fi + rm -f conftest.c if test -z "${CFLAGS}"; then # Here CC is set but CFLAGS is not. Use a quick hack to use -O2 if CC # is set to a version of gcc. - case "${CC}" in - *gcc) + if test "$cc_prog_is_gcc" = yes; then echo 'void f(){}' > conftest.c if test -z "`${CC} -g -c conftest.c 2>&1`"; then CFLAGS=${CFLAGS-"-g -O2"} @@ -1057,7 +2145,25 @@ else CXXFLAGS=${CXXFLAGS-"-O2"} fi rm -f conftest* - ;; + fi + fi + fi + + # We must set the default linker to the linker used by gcc for the correct + # operation of libtool. If LD is not defined and we are using gcc, try to + # set the LD default to the ld used by gcc. + if test -z "$LD"; then + if test "$cc_prog_is_gcc" = yes; then + case $build in + *-*-mingw*) + gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; + *) + gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; + esac + case $gcc_prog_ld in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + LD="$gcc_prog_ld" ;; esac fi fi @@ -1067,543 +2173,2118 @@ else CXXFLAGS=${CXXFLAGS-"-g -O2"} fi -export CC -export CXX -export CFLAGS -export CXXFLAGS +# FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) +# Set up the list of links to be made. +# ${links} is the list of link names, and ${files} is the list of names to link to. + +# Make the links. +configlinks="${links}" +if test -r ./config.status ; then + mv -f ./config.status ./config.back +fi +while test -n "${files}" ; do + # set file to car of files, files to cdr of files + set ${files}; file=$1; shift; files=$* + set ${links}; link=$1; shift; links=$* + + if test ! -r ${srcdir}/${file} ; then + if test ! -r ${file} ; then + echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 + echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 + exit 1 + else + srcfile=${file} + fi + else + srcfile=${srcdir}/${file} + fi -all_build_modules= -if test x"${build_alias}" != x"${host_alias}" -then - all_build_modules='$(ALL_BUILD_MODULES_LIST)' -fi - -for subdir in . ${subdirs} ; do - - # ${subdir} is relative path from . to the directory we're currently - # configuring. - # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed. - invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'` - - ### figure out what to do with srcdir - case "${srcdir}" in - ".") # no -srcdir option. We're building in place. - makesrcdir=. ;; - /* | [A-Za-z]:[\\/]* ) # absolute path - makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'` - ;; - *) # otherwise relative - case "${subdir}" in - .) makesrcdir=${srcdir} ;; - *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;; - esac - ;; - esac + ${remove} -f ${link} + # Make a symlink if possible, otherwise try a hard link + if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then + true + else + # We need to re-remove the file because Lynx leaves a + # very strange directory there when it fails an NFS symlink. + ${remove} -r -f ${link} + ${hard_link} ${srcfile} ${link} + fi + if test ! -r ${link} ; then + echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2 + exit 1 + fi - if [ "${subdir}/" != "./" ] ; then - Makefile=${subdir}/Makefile - fi + echo "Linked \"${link}\" to \"${srcfile}\"." +done - if [ ! -d ${subdir} ] ; then - if mkdir ${subdir} ; then - true - else - echo '***' "${progname}: could not make ${PWD=`${PWDCMD-pwd}`}/${subdir}" 1>&2 - exit 1 - fi - fi +# Create a .gdbinit file which runs the one in srcdir +# and tells GDB to look there for source files. - case "${removing}" in - "") - case "${subdir}" in - .) ;; - *) eval echo Building in ${subdir} ${redirect} ;; - esac - - # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) - # Set up the list of links to be made. - # ${links} is the list of link names, and ${files} is the list of names to link to. - - # Make the links. - configlinks="${links}" - if [ -r ${subdir}/config.status ] ; then - mv -f ${subdir}/config.status ${subdir}/config.back - fi - while [ -n "${files}" ] ; do - # set file to car of files, files to cdr of files - set ${files}; file=$1; shift; files=$* - set ${links}; link=$1; shift; links=$* - - if [ ! -r ${srcdir}/${file} ] ; then - if [ ! -r ${file} ] ; then - - echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 - echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 - exit 1 - else - srcfile=${file} - fi - else - srcfile=${srcdir}/${file} - fi - - ${remove} -f ${link} - # Make a symlink if possible, otherwise try a hard link - if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then - true - else - # We need to re-remove the file because Lynx leaves a - # very strange directory there when it fails an NFS symlink. - ${remove} -r -f ${link} - ${hard_link} ${srcfile} ${link} - fi - if [ ! -r ${link} ] ; then - echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2 - exit 1 - fi - - echo "Linked \"${link}\" to \"${srcfile}\"." - done - - # Create a .gdbinit file which runs the one in srcdir - # and tells GDB to look there for source files. - - if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then - case ${srcdir} in - .) ;; - *) cat > ${subdir}/.gdbinit < ./.gdbinit < conftest.c +${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c +if test $? = 0 ; then + if test -s conftest || test -s conftest.exe ; then + we_are_ok=yes + fi +fi +case $we_are_ok in + no) + echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed." + echo 1>&2 "*** You must set the environment variable CC to a working compiler." + rm -f conftest* + exit 1 + ;; +esac +rm -f conftest* + +# The Solaris /usr/ucb/cc compiler does not appear to work. +case "${host}" in + sparc-sun-solaris2*) + CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`" + if test "`type $CCBASE | sed 's/^[^/]*//'`" = "/usr/ucb/cc" ; then + could_use= + test -d /opt/SUNWspro/bin && could_use="/opt/SUNWspro/bin" + if test -d /opt/cygnus/bin ; then + if test "$could_use" = "" ; then + could_use="/opt/cygnus/bin" + else + could_use="$could_use or /opt/cygnus/bin" + fi + fi + if test "$could_use" = "" ; then + echo "Warning: compilation may fail because you're using" + echo "/usr/ucb/cc. You should change your PATH or CC " + echo "variable and rerun configure." + else + echo "Warning: compilation may fail because you're using" + echo "/usr/ucb/cc, when you should use the C compiler from" + echo "$could_use. You should change your" + echo "PATH or CC variable and rerun configure." fi + fi + ;; +esac - # Install a makefile, and make it set VPATH - # if necessary so that the sources are found. - # Also change its value of srcdir. - # NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has - # been somewhat optimized and is perhaps a bit twisty. - - # code is order so as to try to sed the smallest input files we know. - # so do these separately because I don't trust the order of sed -e expressions. - - # the five makefile fragments MUST end up in the resulting Makefile in this order: - # package macros, target, host, site, and package rules. - - if [ -f ${srcdir}/${subdir}/${Makefile_in} ] ; then - - # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem. - rm -f ${subdir}/${Makefile}.tem - case "${package_makefile_rules_frag}" in - "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem ;; - *) - if [ ! -f ${package_makefile_rules_frag} ] ; then - package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag} - fi - if [ -f ${package_makefile_rules_frag} ] ; then - sed -e "/^####/ r ${package_makefile_rules_frag}" ${srcdir}/${subdir}/${Makefile_in} > ${Makefile}.tem - else - echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2 - echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 - cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem - fi - esac - # working copy now in ${Makefile}.tem - - # Conditionalize for this site. - rm -f ${Makefile} - case "${site}" in - "") mv ${subdir}/Makefile.tem ${Makefile} ;; - *) - site_makefile_frag=${srcdir}/config/ms-${site} - - if [ -f ${site_makefile_frag} ] ; then - sed -e "/^####/ r ${site_makefile_frag}" ${subdir}/Makefile.tem \ - > ${Makefile} - else - mv ${subdir}/Makefile.tem ${Makefile} - site_makefile_frag= - fi - ;; - esac - # working copy now in ${Makefile} - - # Conditionalize the makefile for this host. - rm -f ${subdir}/Makefile.tem - case "${host_makefile_frag}" in - "") mv ${Makefile} ${subdir}/Makefile.tem ;; - *) - if [ ! -f ${host_makefile_frag} ] ; then - host_makefile_frag=${srcdir}/${host_makefile_frag} - fi - if [ -f ${host_makefile_frag} ] ; then - sed -e "/^####/ r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem - else - echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 - echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 - mv ${Makefile} ${subdir}/Makefile.tem - fi - esac - # working copy now in ${subdir)/Makefile.tem - - # Conditionalize the makefile for this target. - rm -f ${Makefile} - case "${target_makefile_frag}" in - "") mv ${subdir}/Makefile.tem ${Makefile} ;; - *) - if [ ! -f ${target_makefile_frag} ] ; then - target_makefile_frag=${srcdir}/${target_makefile_frag} - fi - if [ -f ${target_makefile_frag} ] ; then - sed -e "/^####/ r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile} - else - mv ${subdir}/Makefile.tem ${Makefile} - target_makefile_frag= - fi - ;; - esac - # working copy now in ${Makefile} - - # Emit the default values of this package's macros. - rm -f ${subdir}/Makefile.tem - case "${package_makefile_frag}" in - "") mv ${Makefile} ${subdir}/Makefile.tem ;; - *) - if [ ! -f ${package_makefile_frag} ] ; then - package_makefile_frag=${srcdir}/${package_makefile_frag} - fi - if [ -f ${package_makefile_frag} ] ; then - sed -e "/^####/ r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem - else - echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2 - echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 - mv ${Makefile} ${subdir}/Makefile.tem - fi - esac - # real copy now in ${subdir}/Makefile.tem - - # prepend warning about editing, and a bunch of variables. - rm -f ${Makefile} - cat > ${Makefile} <> ${Makefile} << EOF -build_alias = ${build_alias} -build_cpu = ${build_cpu} -build_vendor = ${build_vendor} -build_os = ${build_os} -build_canonical = ${build_cpu}-${build_vendor}-${build_os} -EOF - esac +# If --enable-shared was set, we must set LD_LIBRARY_PATH so that the +# binutils tools will find libbfd.so. +if test "${shared}" = "yes" ; then + SET_LIB_PATH="\$(REALLY_SET_LIB_PATH)" +else + SET_LIB_PATH= +fi - case "${package_makefile_frag}" in - "") ;; - /* | [A-Za-z]:[\\/]* ) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;; - *) echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;; - esac - - case "${target_makefile_frag}" in - "") ;; - /* | [A-Za-z]:[\\/]* ) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;; - *) echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;; - esac - - case "${host_makefile_frag}" in - "") ;; - /* | [A-Za-z]:[\\/]* ) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;; - *) echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;; - esac - - if [ "${site_makefile_frag}" != "" ] ; then - echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile} - fi - - echo enable_shared = ${enable_shared} >> ${Makefile} - echo enable_threads = ${enable_threads} >> ${Makefile} - # record if we want to rumtime library stuff installed in libsubdir. - if test -z "${enable_version_specific_runtime_libs}"; then - echo enable_version_specific_runtime_libs = no >> ${Makefile} - else - echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile} - fi - # Emit a macro which describes the file containing gcc's - # version number. - echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile} - # And emit a macro defining gcc's version number. - echo gcc_version = ${gcc_version} >> ${Makefile} - - # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, - # remove any form feeds. - if [ -z "${subdirs}" ]; then - rm -f ${subdir}/Makefile.tm2 - sedtemp=sed.$$ - cat >$sedtemp < ${subdir}/Makefile.tm2 - rm -f $sedtemp - rm -f ${subdir}/Makefile.tem - mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem - fi - sed -e "s|@prefix@|${prefix}|" \ - -e "s|@exec_prefix@|${exec_prefix}|" \ - -e "s|@bindir@|${bindir}|" \ - -e "s|@sbindir@|${sbindir}|" \ - -e "s|@libexecdir@|${libexecdir}|" \ - -e "s|@datadir@|${datadir}|" \ - -e "s|@sysconfdir@|${sysconfdir}|" \ - -e "s|@sharedstatedir@|${sharedstatedir}|" \ - -e "s|@localstatedir@|${localstatedir}|" \ - -e "s|@libdir@|${libdir}|" \ - -e "s|@includedir@|${includedir}|" \ - -e "s|@oldincludedir@|${oldincludedir}|" \ - -e "s|@infodir@|${infodir}|" \ - -e "s|@mandir@|${mandir}|" \ - -e "s|@all_build_modules@|${all_build_modules}|" \ - -e "/^CC[ ]*=/{ - :loop1 - /\\\\$/ N - s/\\\\\\n//g - t loop1 - s%^CC[ ]*=.*$%CC = ${CC}% - }" \ - -e "/^CXX[ ]*=/{ - :loop2 - /\\\\$/ N - s/\\\\\\n//g - t loop2 - s%^CXX[ ]*=.*$%CXX = ${CXX}% - }" \ - -e "/^CFLAGS[ ]*=/{ - :loop3 - /\\\\$/ N - s/\\\\\\n//g - t loop3 - s%^CFLAGS[ ]*=.*$%CFLAGS = ${CFLAGS}% - }" \ - -e "/^CXXFLAGS[ ]*=/{ - :loop4 - /\\\\$/ N - s/\\\\\\n//g - t loop4 - s%^CXXFLAGS[ ]*=.*$%CXXFLAGS = ${CXXFLAGS}% - }" \ - -e "s|@config_shell@|${config_shell}|" \ - -e "s|@srcdir@|${makesrcdir}|" \ - -e "s/ //" \ - -e "s:@program_transform_name@:${program_transform_name}:" \ - -e "s|@tooldir@|${tooldir}|" \ - -e "s|@build_tooldir@|${tooldir}|" \ - -e "s:@DEFAULT_YACC@:${DEFAULT_YACC}:" \ - -e "s:@DEFAULT_LEX@:${DEFAULT_LEX}:" \ - -e "s:@DEFAULT_M4@:${DEFAULT_M4}:" \ - ${subdir}/Makefile.tem >> ${Makefile} - - sed -e "s:@GDB_TK@:${GDB_TK}:" ${Makefile} >${Makefile}.tem - mv -f ${Makefile}.tem ${Makefile} - - # If this is a Canadian Cross, preset the values of many more - # tools. - if [ "${build}" != "${host}" ]; then - for var in ${tools}; do - eval val=\$${var} - sed -e "/^${var}[ ]*=/{ - :loop1 - /\\\\$/ N - /\\\\$/ b loop1 - s/\\\\\\n//g - s%^${var}[ ]*=.*$%${var} = ${val}% - }" ${Makefile} > ${Makefile}.tem - mv -f ${Makefile}.tem ${Makefile} - done - fi +case "${host}" in + *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; + *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; +esac - # final copy now in ${Makefile} +# Record target_configdirs and the configure arguments for target and +# build configuration in Makefile. +target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` + +# This is the final value for target_configdirs. configdirs already +# has its final value. It's time to create some lists of valid targets. + +# While at that, we remove Makefiles if we were started for recursive +# configuration, such that the top-level Makefile reconfigures them, +# like we used to do when configure itself was recursive. - else - echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2 - fi +all_build_modules= +configure_build_modules= +# Only make build modules if build != host. +# This should be done more generally, but at the moment it doesn't matter. +if test ${host_alias} != ${build_alias} ; then + for module in libiberty ; do + all_build_modules=all-build-${module} + configure_build_modules=configure-build-${module} + if test -z "${no_recursion}" \ + && test -f ${build_subdir}/${module}/Makefile; then + echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure" + rm -f ${build_subdir}/${module}/Makefile + fi + done +fi - rm -f ${subdir}/Makefile.tem +all_host_modules= +check_host_modules= +install_host_modules= +configure_host_modules= +for module in ${configdirs} ; do + all_host_modules="${all_host_modules} all-${module}" + check_host_modules="${check_host_modules} check-${module}" + install_host_modules="${install_host_modules} install-${module}" + configure_host_modules="${configure_host_modules} configure-${module}" + if test -z "${no_recursion}" \ + && test -f ${module}/Makefile; then + echo 1>&2 "*** removing ${module}/Makefile to force reconfigure" + rm -f ${module}/Makefile + fi +done +install_host_modules_nogcc=`echo "${install_host_modules}" | sed -e 's/install-gcc//g'` - case "${host_makefile_frag}" in - "") using= ;; - *) using="and \"${host_makefile_frag}\"" ;; - esac - - case "${target_makefile_frag}" in - "") ;; - *) using="${using} and \"${target_makefile_frag}\"" ;; - esac - - case "${site_makefile_frag}" in - "") ;; - *) using="${using} and \"${site_makefile_frag}\"" ;; - esac - - newusing=`echo "${using}" | sed 's/and/using/'` - using=${newusing} - echo "Created \"${Makefile}\" in" ${PWD=`${PWDCMD-pwd}`} ${using} - - . ${tmpfile}.pos - - # describe the chosen configuration in config.status. - # Make that file a shellscript which will reestablish - # the same configuration. Used in Makefiles to rebuild - # Makefiles. +all_target_modules= +check_target_modules= +install_target_modules= +configure_target_modules= +for module in ${target_configdirs} ; do + all_target_modules="${all_target_modules} all-target-${module}" + check_target_modules="${check_target_modules} check-target-${module}" + install_target_modules="${install_target_modules} install-target-${module}" + configure_target_modules="${configure_target_modules} configure-target-${module}" + if test -z "${no_recursion}" \ + && test -f ${target_subdir}/${module}/Makefile; then + echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure" + rm -f ${target_subdir}/${module}/Makefile + fi +done - case "${norecursion}" in - "") arguments="${arguments} --norecursion" ;; - *) ;; - esac +# Determine whether gdb needs tk/tcl or not. +# Use 'maybe' since enable_gdbtk might be true even if tk isn't available +# and in that case we want gdb to be built without tk. Ugh! +# In fact I believe gdb is the *only* package directly dependent on tk, +# so we should be able to put the 'maybe's in unconditionally and +# leave out the maybe dependencies when enable_gdbtk is false. I'm not +# 100% sure that that's safe though. + +gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" +case "$enable_gdbtk" in + no) + GDB_TK="" ;; + yes) + GDB_TK="${gdb_tk}" ;; + *) + # Only add the dependency on gdbtk when GDBtk is part of the gdb + # distro. Eventually someone will fix this and move Insight, nee + # gdbtk to a separate directory. + if test -d ${srcdir}/gdb/gdbtk ; then + GDB_TK="${gdb_tk}" + else + GDB_TK="" + fi + ;; +esac - if [ ${subdir} = . ] ; then - echo "#!/bin/sh -# ${NO_EDIT} -# This directory was configured as follows: -${progname}" ${arguments} " -# ${using}" > ${subdir}/config.new - else - echo "#!/bin/sh -# ${NO_EDIT} -# This directory was configured as follows: -cd ${invsubdir} -${progname}" ${arguments} " -# ${using}" > ${subdir}/config.new - fi - chmod a+x ${subdir}/config.new - if [ -r ${subdir}/config.back ] ; then - mv -f ${subdir}/config.back ${subdir}/config.status - fi - ${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status - ;; +# Create the 'maybe dependencies'. This uses a temporary file. +rm -f maybedep.tmp +echo '# maybedep.tmp' > maybedep.tmp +for item in ${all_build_modules} ${all_host_modules} ${all_target_modules} \ + ${install_host_modules} ${install_target_modules} \ + ${configure_build_modules} ${configure_host_modules} ${configure_target_modules} \ + ; do + echo "maybe-${item}: ${item}" >> maybedep.tmp +done +maybe_dependencies=maybedep.tmp - *) rm -f ${Makefile} ${subdir}/config.status ${links} ;; - esac + +# Create the serialization dependencies. This uses a temporary file. + +# Check whether --enable-serial-configure or --disable-serial-configure was given. +if test "${enable_serial_configure+set}" = set; then + enableval="$enable_serial_configure" + : +fi + + +# These force 'configure's to be done one at a time, to avoid problems +# with contention over a shared config.cache. +rm -f serdep.tmp +echo '# serdep.tmp' > serdep.tmp +olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_build_configure}" = xno || +for item in ${build_configdirs} ; do + case ${olditem} in + "") ;; + *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;; + esac + olditem=${item} +done +olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_host_configure}" = xno || +for item in ${configdirs} ; do + case ${olditem} in + "") ;; + *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;; + esac + olditem=${item} done +olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_target_configure}" = xno || +for item in ${target_configdirs} ; do + case ${olditem} in + "") ;; + *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;; + esac + olditem=${item} +done +serialization_dependencies=serdep.tmp -# If there are subdirectories, then recur. -if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then - for configdir in ${configdirs} ${extraconfigdirs} ; do - - # If configdir contains ',' it is - # srcdir,builddir,target_alias - # These come from extraconfigdirs. - case ${configdir} in - *,*) - eval `echo ${configdir} | sed -e 's/\([^,]*\),\([^,]*\),\(.*\)/cfg_dir=\1 bld_dir=\2 tgt_alias=\3/'` - ;; - *) - cfg_dir=${configdir} - bld_dir=${configdir} - tgt_alias=${target_alias} - ;; - esac - - if [ -d ${srcdir}/${cfg_dir} ] ; then - eval echo Configuring ${configdir}... ${redirect} - case "${srcdir}" in - ".") ;; - *) - if [ ! -d ./${bld_dir} ] ; then - if mkdir ./${bld_dir} ; then - true - else - echo '***' "${progname}: could not make ${PWD=`${PWDCMD-pwd}`}/${bld_dir}" 1>&2 - exit 1 - fi - fi - ;; - esac - - POPDIR=${PWD=`${PWDCMD-pwd}`} - cd ${bld_dir} - -### figure out what to do with srcdir - case "${srcdir}" in - ".") newsrcdir=${srcdir} ;; # no -srcdir option. We're building in place. - /* | [A-Za-z]:[\\/]* ) # absolute path - newsrcdir=${srcdir}/${cfg_dir} - srcdiroption="--srcdir=${newsrcdir}" - ;; - *) # otherwise relative - newsrcdir=../${srcdir}/${cfg_dir} - srcdiroption="--srcdir=${newsrcdir}" - ;; - esac - - # Handle --cache-file=../XXX - case "${cache_file}" in - "") # empty - ;; - /* | [A-Za-z]:[\\/]* ) # absolute path - cache_file_option="--cache-file=${cache_file}" - ;; - *) # relative path - cache_file_option="--cache-file=../${cache_file}" - ;; - esac - -### check for guested configure, otherwise fix possibly relative progname - if [ -f ${newsrcdir}/configure ] ; then - recprog=${newsrcdir}/configure - elif [ -f ${newsrcdir}/configure.in ] ; then - case "${progname}" in - /* | [A-Za-z]:[\\/]* ) recprog=${progname} ;; - *) recprog=../${progname} ;; - esac - else - eval echo No configuration information in ${cfg_dir} ${redirect} - recprog= - fi - -### The recursion line is here. - if [ ! -z "${recprog}" ] ; then - if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \ - ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ - ${srcdiroption} ${diroptions} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then - true - else - echo Configure in `${PWDCMD-pwd}` failed, exiting. 1>&2 - exit 1 - fi - fi - - cd ${POPDIR} - fi - done -fi - -# Perform the same cleanup as the trap handler, minus the "exit 1" of course, -# and reset the trap handler. -rm -rf ${tmpdir} -trap 0 -exit 0 +# Base args. Strip norecursion, cache-file, srcdir, host, build, +# target and nonopt. These are the ones we might not want to pass +# down to subconfigures. +baseargs=`echo " ${ac_configure_args} " | \ + sed -e 's/ --no[^ ]* / /' \ + -e 's/ --c[a-z-]*[= ][^ ]* / /' \ + -e 's/ --sr[a-z-]*[= ][^ ]* / /' \ + -e 's/ --ho[a-z-]*[= ][^ ]* / /' \ + -e 's/ --bu[a-z-]*[= ][^ ]* / /' \ + -e 's/ --t[a-z-]*[= ][^ ]* / /' \ + -e 's/ -cache-file[= ][^ ]* / /' \ + -e 's/ -srcdir[= ][^ ]* / /' \ + -e 's/ -host[= ][^ ]* / /' \ + -e 's/ -build[= ][^ ]* / /' \ + -e 's/ -target[= ][^ ]* / /' \ + -e 's/ [^ -][^ ]* / /' \ + -e 's/^ *//;s/ *$//'` + +# For the build-side libraries, we just need to pretend we're native, +# and not use the same cache file. Multilibs are neither needed nor +# desired. +build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}" + +# For host modules, accept cache file option, or specification as blank. +case "${cache_file}" in +"") # empty + cache_file_option="" ;; +/* | [A-Za-z]:[\\/]* ) # absolute path + cache_file_option="--cache-file=${cache_file}" ;; +*) # relative path + cache_file_option="--cache-file=../${cache_file}" ;; +esac -# -# Local Variables: -# fill-column: 131 -# End: -# +host_configargs="${cache_file_option} --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}" + +target_configargs=${baseargs} + +# Passing a --with-cross-host argument lets the target libraries know +# whether they are being built with a cross-compiler or being built +# native. However, it would be better to use other mechanisms to make the +# sorts of decisions they want to make on this basis. Please consider +# this option to be deprecated. FIXME. +if test x${is_cross_compiler} = xyes ; then + target_configargs="--with-cross-host=${host_alias} ${target_configargs}" +fi + +# Default to --enable-multilib. +if test x${enable_multilib} = x ; then + target_configargs="--enable-multilib ${target_configargs}" +fi + +# Pass --with-newlib if appropriate. Note that target_configdirs has +# changed from the earlier setting of with_newlib. +if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then + target_configargs="--with-newlib ${target_configargs}" +fi + +# Pass the appropriate --host, --build, and --cache-file arguments. +target_configargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${target_configargs}" + +# provide a proper gxx_include_dir. +# Note, if you change the default, make sure to fix both here and in +# the gcc and libstdc++-v3 subdirectories. +# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. +gxx_include_dir= +if test -n "${with_gxx_include_dir}"; then + case "${with_gxx_include_dir}" in + yes ) + echo "configure.in: error: bad value ${withval} given for g++ include directory" 1>&2 + exit 1 + ;; + no ) + ;; + * ) + gxx_include_dir=${with_gxx_include_dir} + ;; + esac +fi +if test x${gxx_include_dir} = x; then + if test x${enable_version_specific_runtime_libs} = xyes; then + gxx_include_dir='${libsubdir}/include/c++' + else + . ${srcdir}/config.if + gxx_include_dir='${prefix}/include/${libstdcxx_incdir}' + fi +else + gxx_include_dir=${gxx_include_dir} +fi + +FLAGS_FOR_TARGET= +case " $target_configdirs " in + *" newlib "*) + case " $target_configargs " in + *" --with-newlib "*) + case "$target" in + *-cygwin*) + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include -isystem $$s/newlib/libc/sys/cygwin -isystem $$s/newlib/libc/sys/cygwin32' ;; + esac + + # If we're not building GCC, don't discard standard headers. + if test -d ${srcdir}/gcc; then + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc' + + if test "${build}" != "${host}"; then + # On Canadian crosses, CC_FOR_TARGET will have already been set + # by `configure', so we won't have an opportunity to add -Bgcc/ + # to it. This is right: we don't want to search that directory + # for binaries, but we want the header files in there, so add + # them explicitly. + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/gcc/include' + + # Someone might think of using the pre-installed headers on + # Canadian crosses, in case the installed compiler is not fully + # compatible with the compiler being built. In this case, it + # would be better to flag an error than risking having + # incompatible object files being constructed. We can't + # guarantee that an error will be flagged, but let's hope the + # compiler will do it, when presented with incompatible header + # files. + fi + fi + + case "${target}-${is_cross_compiler}" in + i[3456]86-*-linux*-no) + # Here host == target, so we don't need to build gcc, + # so we don't want to discard standard headers. + FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'` + ;; + *) + # If we're building newlib, use its generic headers last, but search + # for any libc-related directories first (so make it the last -B + # switch). + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include' + ;; + esac + ;; + esac + ;; +esac + +# On Canadian crosses, we'll be searching the right directories for +# the previously-installed cross compiler, so don't bother to add +# flags for directories within the install tree of the compiler +# being built; programs in there won't even run. +if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then + # Search for pre-installed headers if nothing else fits. + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include' +fi + +if test "x${use_gnu_ld}" = x && + echo " ${configdirs} " | grep " ld " > /dev/null ; then + # Arrange for us to find uninstalled linker scripts. + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld' +fi + +if test "x${CC_FOR_TARGET+set}" = xset; then + : +elif test -d ${srcdir}/gcc; then + CC_FOR_TARGET='$$r/gcc/xgcc -B$$r/gcc/' +elif test "$host" = "$target"; then + CC_FOR_TARGET='$(CC)' +else + CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"` +fi +CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' + +if test "x${GCJ_FOR_TARGET+set}" = xset; then + : +elif test -d ${srcdir}/gcc; then + GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/' +elif test "$host" = "$target"; then + GCJ_FOR_TARGET='gcj' +else + GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"` +fi +GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' + +# Don't use libstdc++-v3's flags to configure/build itself. +libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' + +if test "x${CXX_FOR_TARGET+set}" = xset; then + : +elif test -d ${srcdir}/gcc; then + # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead + # of g++ for linking C++ or Java, because g++ has -shared-libgcc by + # default whereas gcc does not. + # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for + # all other cases. + CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags + RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags +elif test "$host" = "$target"; then + CXX_FOR_TARGET='$(CXX)' + RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} +else + CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"` + RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} +fi +CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' +RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' + +qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` +qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` + +# We want to defer the evaluation of `cmd`s and shell variables in +# CXX_FOR_TARGET when recursing in the top-level Makefile, such as for +# bootstrap. We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single +# quotes, but we still have to duplicate `$'s so that shell variables +# can be expanded by the nested make as shell variables, not as make +# macros. +qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` +qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` + +# Wrap CC_FOR_TARGET and friends, for certain types of builds. +CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}" +GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}" +CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}" +RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}" +CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}" +RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}" + +# Makefile fragments. +host_makefile_frag=${srcdir}/${host_makefile_frag} +target_makefile_frag=${srcdir}/${target_makefile_frag} +alphaieee_frag=${srcdir}/${alphaieee_frag} +ospace_frag=${srcdir}/${ospace_frag} + + + + + +# Miscellanea: directories, flags, etc. + + + + + + + + + + + + + + + + +# Build module lists & subconfigure args. + + + + + +# Host module lists & subconfigure args. + + + + + + + + +# Target module lists & subconfigure args. + + + + + + + + +# Build tools. + + + + + + + +# Host tools. +ncn_tool_prefix= +test -n "$host_alias" && ncn_tool_prefix=$host_alias- +ncn_target_tool_prefix= +test -n "$target_alias" && ncn_target_tool_prefix=$target_alias- + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}ar", so it can be a program name with args. +set dummy ${ncn_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2741: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ncn_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_AR" ; then + if test $build = $host ; then + ncn_cv_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2774: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_AR"; then + ac_cv_prog_ncn_cv_AR="$ncn_cv_AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_AR="ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_AR" && ac_cv_prog_ncn_cv_AR="ar" +fi +fi +ncn_cv_AR="$ac_cv_prog_ncn_cv_AR" +if test -n "$ncn_cv_AR"; then + echo "$ac_t""$ncn_cv_AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + AR=$ncn_cv_AR + else + AR="${ncn_tool_prefix}ar" + fi +else + AR="$ac_cv_prog_AR" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}as", so it can be a program name with args. +set dummy ${ncn_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2813: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ncn_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_AS" ; then + if test $build = $host ; then + ncn_cv_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2846: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_AS"; then + ac_cv_prog_ncn_cv_AS="$ncn_cv_AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_AS="as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_AS" && ac_cv_prog_ncn_cv_AS="as" +fi +fi +ncn_cv_AS="$ac_cv_prog_ncn_cv_AS" +if test -n "$ncn_cv_AS"; then + echo "$ac_t""$ncn_cv_AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + AS=$ncn_cv_AS + else + AS="${ncn_tool_prefix}as" + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ncn_tool_prefix}dlltool; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2885: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_DLLTOOL="${ncn_tool_prefix}dlltool" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +DLLTOOL="$ac_cv_prog_DLLTOOL" +if test -n "$DLLTOOL"; then + echo "$ac_t""$DLLTOOL" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_DLLTOOL" ; then + if test $build = $host ; then + ncn_cv_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2918: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_DLLTOOL"; then + ac_cv_prog_ncn_cv_DLLTOOL="$ncn_cv_DLLTOOL" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_DLLTOOL="dlltool" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_DLLTOOL" && ac_cv_prog_ncn_cv_DLLTOOL="dlltool" +fi +fi +ncn_cv_DLLTOOL="$ac_cv_prog_ncn_cv_DLLTOOL" +if test -n "$ncn_cv_DLLTOOL"; then + echo "$ac_t""$ncn_cv_DLLTOOL" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + DLLTOOL=$ncn_cv_DLLTOOL + else + DLLTOOL="${ncn_tool_prefix}dlltool" + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}ld", so it can be a program name with args. +set dummy ${ncn_tool_prefix}ld; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2957: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LD"; then + ac_cv_prog_LD="$LD" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LD="${ncn_tool_prefix}ld" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +LD="$ac_cv_prog_LD" +if test -n "$LD"; then + echo "$ac_t""$LD" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_LD" ; then + if test $build = $host ; then + ncn_cv_LD=$LD + # Extract the first word of "ld", so it can be a program name with args. +set dummy ld; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:2990: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_LD"; then + ac_cv_prog_ncn_cv_LD="$ncn_cv_LD" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_LD="ld" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_LD" && ac_cv_prog_ncn_cv_LD="ld" +fi +fi +ncn_cv_LD="$ac_cv_prog_ncn_cv_LD" +if test -n "$ncn_cv_LD"; then + echo "$ac_t""$ncn_cv_LD" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + LD=$ncn_cv_LD + else + LD="${ncn_tool_prefix}ld" + fi +else + LD="$ac_cv_prog_LD" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}nm", so it can be a program name with args. +set dummy ${ncn_tool_prefix}nm; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3029: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$NM"; then + ac_cv_prog_NM="$NM" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_NM="${ncn_tool_prefix}nm" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +NM="$ac_cv_prog_NM" +if test -n "$NM"; then + echo "$ac_t""$NM" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_NM" ; then + if test $build = $host ; then + ncn_cv_NM=$NM + # Extract the first word of "nm", so it can be a program name with args. +set dummy nm; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3062: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_NM"; then + ac_cv_prog_ncn_cv_NM="$ncn_cv_NM" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_NM="nm" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_NM" && ac_cv_prog_ncn_cv_NM="nm" +fi +fi +ncn_cv_NM="$ac_cv_prog_ncn_cv_NM" +if test -n "$ncn_cv_NM"; then + echo "$ac_t""$ncn_cv_NM" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + NM=$ncn_cv_NM + else + NM="${ncn_tool_prefix}nm" + fi +else + NM="$ac_cv_prog_NM" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ncn_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3101: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ncn_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB" ; then + if test $build = $host ; then + ncn_cv_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3134: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_RANLIB"; then + ac_cv_prog_ncn_cv_RANLIB="$ncn_cv_RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_RANLIB" && ac_cv_prog_ncn_cv_RANLIB=":" +fi +fi +ncn_cv_RANLIB="$ac_cv_prog_ncn_cv_RANLIB" +if test -n "$ncn_cv_RANLIB"; then + echo "$ac_t""$ncn_cv_RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + RANLIB=$ncn_cv_RANLIB + else + RANLIB=":" + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}windres", so it can be a program name with args. +set dummy ${ncn_tool_prefix}windres; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3173: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_WINDRES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$WINDRES"; then + ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_WINDRES="${ncn_tool_prefix}windres" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +WINDRES="$ac_cv_prog_WINDRES" +if test -n "$WINDRES"; then + echo "$ac_t""$WINDRES" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_WINDRES" ; then + if test $build = $host ; then + ncn_cv_WINDRES=$WINDRES + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3206: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_WINDRES"; then + ac_cv_prog_ncn_cv_WINDRES="$ncn_cv_WINDRES" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_WINDRES="windres" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_WINDRES" && ac_cv_prog_ncn_cv_WINDRES="windres" +fi +fi +ncn_cv_WINDRES="$ac_cv_prog_ncn_cv_WINDRES" +if test -n "$ncn_cv_WINDRES"; then + echo "$ac_t""$ncn_cv_WINDRES" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + WINDRES=$ncn_cv_WINDRES + else + WINDRES="${ncn_tool_prefix}windres" + fi +else + WINDRES="$ac_cv_prog_WINDRES" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}objcopy", so it can be a program name with args. +set dummy ${ncn_tool_prefix}objcopy; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3245: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$OBJCOPY"; then + ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_OBJCOPY="${ncn_tool_prefix}objcopy" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +OBJCOPY="$ac_cv_prog_OBJCOPY" +if test -n "$OBJCOPY"; then + echo "$ac_t""$OBJCOPY" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_OBJCOPY" ; then + if test $build = $host ; then + ncn_cv_OBJCOPY=$OBJCOPY + # Extract the first word of "objcopy", so it can be a program name with args. +set dummy objcopy; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3278: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJCOPY'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_OBJCOPY"; then + ac_cv_prog_ncn_cv_OBJCOPY="$ncn_cv_OBJCOPY" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_OBJCOPY="objcopy" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_OBJCOPY" && ac_cv_prog_ncn_cv_OBJCOPY="objcopy" +fi +fi +ncn_cv_OBJCOPY="$ac_cv_prog_ncn_cv_OBJCOPY" +if test -n "$ncn_cv_OBJCOPY"; then + echo "$ac_t""$ncn_cv_OBJCOPY" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + OBJCOPY=$ncn_cv_OBJCOPY + else + OBJCOPY="${ncn_tool_prefix}objcopy" + fi +else + OBJCOPY="$ac_cv_prog_OBJCOPY" +fi + + if test -n "$ncn_tool_prefix"; then + # Extract the first word of "${ncn_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ncn_tool_prefix}objdump; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3317: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_OBJDUMP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_OBJDUMP="${ncn_tool_prefix}objdump" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +OBJDUMP="$ac_cv_prog_OBJDUMP" +if test -n "$OBJDUMP"; then + echo "$ac_t""$OBJDUMP" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_OBJDUMP" ; then + if test $build = $host ; then + ncn_cv_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3350: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_OBJDUMP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_OBJDUMP"; then + ac_cv_prog_ncn_cv_OBJDUMP="$ncn_cv_OBJDUMP" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_OBJDUMP="objdump" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_OBJDUMP" && ac_cv_prog_ncn_cv_OBJDUMP="objdump" +fi +fi +ncn_cv_OBJDUMP="$ac_cv_prog_ncn_cv_OBJDUMP" +if test -n "$ncn_cv_OBJDUMP"; then + echo "$ac_t""$ncn_cv_OBJDUMP" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + OBJDUMP=$ncn_cv_OBJDUMP + else + OBJDUMP="${ncn_tool_prefix}objdump" + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + + + + + + + + +# Target tools. + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}ar", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3398: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR_FOR_TARGET"; then + ac_cv_prog_AR_FOR_TARGET="$AR_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR_FOR_TARGET="${ncn_target_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AR_FOR_TARGET="$ac_cv_prog_AR_FOR_TARGET" +if test -n "$AR_FOR_TARGET"; then + echo "$ac_t""$AR_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_AR_FOR_TARGET" ; then + if test $build = $target ; then + ncn_cv_AR_FOR_TARGET=$AR_FOR_TARGET + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3431: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AR_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_AR_FOR_TARGET"; then + ac_cv_prog_ncn_cv_AR_FOR_TARGET="$ncn_cv_AR_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_AR_FOR_TARGET="ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_AR_FOR_TARGET" && ac_cv_prog_ncn_cv_AR_FOR_TARGET="ar" +fi +fi +ncn_cv_AR_FOR_TARGET="$ac_cv_prog_ncn_cv_AR_FOR_TARGET" +if test -n "$ncn_cv_AR_FOR_TARGET"; then + echo "$ac_t""$ncn_cv_AR_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + AR_FOR_TARGET=$ncn_cv_AR_FOR_TARGET + else + AR_FOR_TARGET="${ncn_target_tool_prefix}ar" + fi +else + AR_FOR_TARGET="$ac_cv_prog_AR_FOR_TARGET" +fi + + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}as", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3470: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS_FOR_TARGET"; then + ac_cv_prog_AS_FOR_TARGET="$AS_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS_FOR_TARGET="${ncn_target_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +AS_FOR_TARGET="$ac_cv_prog_AS_FOR_TARGET" +if test -n "$AS_FOR_TARGET"; then + echo "$ac_t""$AS_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_AS_FOR_TARGET" ; then + if test $build = $target ; then + ncn_cv_AS_FOR_TARGET=$AS_FOR_TARGET + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3503: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_AS_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_AS_FOR_TARGET"; then + ac_cv_prog_ncn_cv_AS_FOR_TARGET="$ncn_cv_AS_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_AS_FOR_TARGET="as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_AS_FOR_TARGET" && ac_cv_prog_ncn_cv_AS_FOR_TARGET="as" +fi +fi +ncn_cv_AS_FOR_TARGET="$ac_cv_prog_ncn_cv_AS_FOR_TARGET" +if test -n "$ncn_cv_AS_FOR_TARGET"; then + echo "$ac_t""$ncn_cv_AS_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + AS_FOR_TARGET=$ncn_cv_AS_FOR_TARGET + else + AS_FOR_TARGET="${ncn_target_tool_prefix}as" + fi +else + AS_FOR_TARGET="$ac_cv_prog_AS_FOR_TARGET" +fi + + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}dlltool; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3542: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$DLLTOOL_FOR_TARGET"; then + ac_cv_prog_DLLTOOL_FOR_TARGET="$DLLTOOL_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_DLLTOOL_FOR_TARGET="${ncn_target_tool_prefix}dlltool" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +DLLTOOL_FOR_TARGET="$ac_cv_prog_DLLTOOL_FOR_TARGET" +if test -n "$DLLTOOL_FOR_TARGET"; then + echo "$ac_t""$DLLTOOL_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_DLLTOOL_FOR_TARGET" ; then + if test $build = $target ; then + ncn_cv_DLLTOOL_FOR_TARGET=$DLLTOOL_FOR_TARGET + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3575: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_DLLTOOL_FOR_TARGET"; then + ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET="$ncn_cv_DLLTOOL_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET="dlltool" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET" && ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET="dlltool" +fi +fi +ncn_cv_DLLTOOL_FOR_TARGET="$ac_cv_prog_ncn_cv_DLLTOOL_FOR_TARGET" +if test -n "$ncn_cv_DLLTOOL_FOR_TARGET"; then + echo "$ac_t""$ncn_cv_DLLTOOL_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + DLLTOOL_FOR_TARGET=$ncn_cv_DLLTOOL_FOR_TARGET + else + DLLTOOL_FOR_TARGET="${ncn_target_tool_prefix}dlltool" + fi +else + DLLTOOL_FOR_TARGET="$ac_cv_prog_DLLTOOL_FOR_TARGET" +fi + + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}ld", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}ld; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3614: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LD_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LD_FOR_TARGET"; then + ac_cv_prog_LD_FOR_TARGET="$LD_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LD_FOR_TARGET="${ncn_target_tool_prefix}ld" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +LD_FOR_TARGET="$ac_cv_prog_LD_FOR_TARGET" +if test -n "$LD_FOR_TARGET"; then + echo "$ac_t""$LD_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_LD_FOR_TARGET" ; then + if test $build = $target ; then + ncn_cv_LD_FOR_TARGET=$LD_FOR_TARGET + # Extract the first word of "ld", so it can be a program name with args. +set dummy ld; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3647: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_LD_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_LD_FOR_TARGET"; then + ac_cv_prog_ncn_cv_LD_FOR_TARGET="$ncn_cv_LD_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_LD_FOR_TARGET="ld" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_LD_FOR_TARGET" && ac_cv_prog_ncn_cv_LD_FOR_TARGET="ld" +fi +fi +ncn_cv_LD_FOR_TARGET="$ac_cv_prog_ncn_cv_LD_FOR_TARGET" +if test -n "$ncn_cv_LD_FOR_TARGET"; then + echo "$ac_t""$ncn_cv_LD_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + LD_FOR_TARGET=$ncn_cv_LD_FOR_TARGET + else + LD_FOR_TARGET="${ncn_target_tool_prefix}ld" + fi +else + LD_FOR_TARGET="$ac_cv_prog_LD_FOR_TARGET" +fi + + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}nm", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}nm; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3686: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$NM_FOR_TARGET"; then + ac_cv_prog_NM_FOR_TARGET="$NM_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_NM_FOR_TARGET="${ncn_target_tool_prefix}nm" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +NM_FOR_TARGET="$ac_cv_prog_NM_FOR_TARGET" +if test -n "$NM_FOR_TARGET"; then + echo "$ac_t""$NM_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_NM_FOR_TARGET" ; then + if test $build = $target ; then + ncn_cv_NM_FOR_TARGET=$NM_FOR_TARGET + # Extract the first word of "nm", so it can be a program name with args. +set dummy nm; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3719: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_NM_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_NM_FOR_TARGET"; then + ac_cv_prog_ncn_cv_NM_FOR_TARGET="$ncn_cv_NM_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_NM_FOR_TARGET="nm" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_NM_FOR_TARGET" && ac_cv_prog_ncn_cv_NM_FOR_TARGET="nm" +fi +fi +ncn_cv_NM_FOR_TARGET="$ac_cv_prog_ncn_cv_NM_FOR_TARGET" +if test -n "$ncn_cv_NM_FOR_TARGET"; then + echo "$ac_t""$ncn_cv_NM_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + NM_FOR_TARGET=$ncn_cv_NM_FOR_TARGET + else + NM_FOR_TARGET="${ncn_target_tool_prefix}nm" + fi +else + NM_FOR_TARGET="$ac_cv_prog_NM_FOR_TARGET" +fi + + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3758: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB_FOR_TARGET"; then + ac_cv_prog_RANLIB_FOR_TARGET="$RANLIB_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB_FOR_TARGET="${ncn_target_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB_FOR_TARGET="$ac_cv_prog_RANLIB_FOR_TARGET" +if test -n "$RANLIB_FOR_TARGET"; then + echo "$ac_t""$RANLIB_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_RANLIB_FOR_TARGET" ; then + if test $build = $target ; then + ncn_cv_RANLIB_FOR_TARGET=$RANLIB_FOR_TARGET + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3791: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_RANLIB_FOR_TARGET"; then + ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET="$ncn_cv_RANLIB_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET" && ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET=":" +fi +fi +ncn_cv_RANLIB_FOR_TARGET="$ac_cv_prog_ncn_cv_RANLIB_FOR_TARGET" +if test -n "$ncn_cv_RANLIB_FOR_TARGET"; then + echo "$ac_t""$ncn_cv_RANLIB_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + RANLIB_FOR_TARGET=$ncn_cv_RANLIB_FOR_TARGET + else + RANLIB_FOR_TARGET=":" + fi +else + RANLIB_FOR_TARGET="$ac_cv_prog_RANLIB_FOR_TARGET" +fi + + if test -n "$ncn_target_tool_prefix"; then + # Extract the first word of "${ncn_target_tool_prefix}windres", so it can be a program name with args. +set dummy ${ncn_target_tool_prefix}windres; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3830: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$WINDRES_FOR_TARGET"; then + ac_cv_prog_WINDRES_FOR_TARGET="$WINDRES_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_WINDRES_FOR_TARGET="${ncn_target_tool_prefix}windres" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +WINDRES_FOR_TARGET="$ac_cv_prog_WINDRES_FOR_TARGET" +if test -n "$WINDRES_FOR_TARGET"; then + echo "$ac_t""$WINDRES_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +fi +if test -z "$ac_cv_prog_WINDRES_FOR_TARGET" ; then + if test $build = $target ; then + ncn_cv_WINDRES_FOR_TARGET=$WINDRES_FOR_TARGET + # Extract the first word of "windres", so it can be a program name with args. +set dummy windres; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:3863: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$ncn_cv_WINDRES_FOR_TARGET"; then + ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET="$ncn_cv_WINDRES_FOR_TARGET" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET="windres" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET" && ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET="windres" +fi +fi +ncn_cv_WINDRES_FOR_TARGET="$ac_cv_prog_ncn_cv_WINDRES_FOR_TARGET" +if test -n "$ncn_cv_WINDRES_FOR_TARGET"; then + echo "$ac_t""$ncn_cv_WINDRES_FOR_TARGET" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + WINDRES_FOR_TARGET=$ncn_cv_WINDRES_FOR_TARGET + else + WINDRES_FOR_TARGET="${ncn_target_tool_prefix}windres" + fi +else + WINDRES_FOR_TARGET="$ac_cv_prog_WINDRES_FOR_TARGET" +fi + + + + + + + + + + + +# Fix up target tools. +if test "x${build}" = "x${host}" ; then + # In this case, the newly built tools can and should be used, + # so we override the results of the autoconf tests. + # This should really only happen when the tools are actually being built, + # but that's a further refinement. The new build scheme, where + # tools are built into a structure paralleling where they're installed, + # should also eliminate all of this cleanly. + AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)" + AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)" + DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)" + LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)" + NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)" + RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)" + WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)" +fi +# Certain tools may need extra flags. +AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} +RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target} +NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@target@%$target%g +s%@target_alias@%$target_alias%g +s%@target_cpu@%$target_cpu%g +s%@target_vendor@%$target_vendor%g +s%@target_os@%$target_os%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@TOPLEVEL_CONFIGURE_ARGUMENTS@%$TOPLEVEL_CONFIGURE_ARGUMENTS%g +/@maybe_dependencies@/r $maybe_dependencies +s%@maybe_dependencies@%%g +/@serialization_dependencies@/r $serialization_dependencies +s%@serialization_dependencies@%%g +/@host_makefile_frag@/r $host_makefile_frag +s%@host_makefile_frag@%%g +/@target_makefile_frag@/r $target_makefile_frag +s%@target_makefile_frag@%%g +/@alphaieee_frag@/r $alphaieee_frag +s%@alphaieee_frag@%%g +/@ospace_frag@/r $ospace_frag +s%@ospace_frag@%%g +s%@SET_LIB_PATH@%$SET_LIB_PATH%g +s%@RPATH_ENVVAR@%$RPATH_ENVVAR%g +s%@BUILD_PREFIX@%$BUILD_PREFIX%g +s%@BUILD_PREFIX_1@%$BUILD_PREFIX_1%g +s%@configlinks@%$configlinks%g +s%@enable_shared@%$enable_shared%g +s%@enable_threads@%$enable_threads%g +s%@enable_version_specific_runtime_libs@%$enable_version_specific_runtime_libs%g +s%@gcc_version_trigger@%$gcc_version_trigger%g +s%@gcc_version@%$gcc_version%g +s%@tooldir@%$tooldir%g +s%@build_tooldir@%$build_tooldir%g +s%@GDB_TK@%$GDB_TK%g +s%@gxx_include_dir@%$gxx_include_dir%g +s%@libstdcxx_incdir@%$libstdcxx_incdir%g +s%@build_subdir@%$build_subdir%g +s%@build_configargs@%$build_configargs%g +s%@configure_build_modules@%$configure_build_modules%g +s%@all_build_modules@%$all_build_modules%g +s%@host_configargs@%$host_configargs%g +s%@configdirs@%$configdirs%g +s%@configure_host_modules@%$configure_host_modules%g +s%@all_host_modules@%$all_host_modules%g +s%@check_host_modules@%$check_host_modules%g +s%@install_host_modules@%$install_host_modules%g +s%@install_host_modules_nogcc@%$install_host_modules_nogcc%g +s%@target_subdir@%$target_subdir%g +s%@target_configargs@%$target_configargs%g +s%@target_configdirs@%$target_configdirs%g +s%@configure_target_modules@%$configure_target_modules%g +s%@all_target_modules@%$all_target_modules%g +s%@check_target_modules@%$check_target_modules%g +s%@install_target_modules@%$install_target_modules%g +s%@BISON@%$BISON%g +s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g +s%@LEX@%$LEX%g +s%@MAKEINFO@%$MAKEINFO%g +s%@YACC@%$YACC%g +s%@config_shell@%$config_shell%g +s%@AR@%$AR%g +s%@ncn_cv_AR@%$ncn_cv_AR%g +s%@AS@%$AS%g +s%@ncn_cv_AS@%$ncn_cv_AS%g +s%@DLLTOOL@%$DLLTOOL%g +s%@ncn_cv_DLLTOOL@%$ncn_cv_DLLTOOL%g +s%@LD@%$LD%g +s%@ncn_cv_LD@%$ncn_cv_LD%g +s%@NM@%$NM%g +s%@ncn_cv_NM@%$ncn_cv_NM%g +s%@RANLIB@%$RANLIB%g +s%@ncn_cv_RANLIB@%$ncn_cv_RANLIB%g +s%@WINDRES@%$WINDRES%g +s%@ncn_cv_WINDRES@%$ncn_cv_WINDRES%g +s%@OBJCOPY@%$OBJCOPY%g +s%@ncn_cv_OBJCOPY@%$ncn_cv_OBJCOPY%g +s%@OBJDUMP@%$OBJDUMP%g +s%@ncn_cv_OBJDUMP@%$ncn_cv_OBJDUMP%g +s%@CC@%$CC%g +s%@CXX@%$CXX%g +s%@DEFAULT_YACC@%$DEFAULT_YACC%g +s%@DEFAULT_LEX@%$DEFAULT_LEX%g +s%@DEFAULT_M4@%$DEFAULT_M4%g +s%@AR_FOR_TARGET@%$AR_FOR_TARGET%g +s%@ncn_cv_AR_FOR_TARGET@%$ncn_cv_AR_FOR_TARGET%g +s%@AS_FOR_TARGET@%$AS_FOR_TARGET%g +s%@ncn_cv_AS_FOR_TARGET@%$ncn_cv_AS_FOR_TARGET%g +s%@DLLTOOL_FOR_TARGET@%$DLLTOOL_FOR_TARGET%g +s%@ncn_cv_DLLTOOL_FOR_TARGET@%$ncn_cv_DLLTOOL_FOR_TARGET%g +s%@LD_FOR_TARGET@%$LD_FOR_TARGET%g +s%@ncn_cv_LD_FOR_TARGET@%$ncn_cv_LD_FOR_TARGET%g +s%@NM_FOR_TARGET@%$NM_FOR_TARGET%g +s%@ncn_cv_NM_FOR_TARGET@%$ncn_cv_NM_FOR_TARGET%g +s%@RANLIB_FOR_TARGET@%$RANLIB_FOR_TARGET%g +s%@ncn_cv_RANLIB_FOR_TARGET@%$ncn_cv_RANLIB_FOR_TARGET%g +s%@WINDRES_FOR_TARGET@%$WINDRES_FOR_TARGET%g +s%@ncn_cv_WINDRES_FOR_TARGET@%$ncn_cv_WINDRES_FOR_TARGET%g +s%@GCC_FOR_TARGET@%$GCC_FOR_TARGET%g +s%@FLAGS_FOR_TARGET@%$FLAGS_FOR_TARGET%g +s%@CC_FOR_TARGET@%$CC_FOR_TARGET%g +s%@GCJ_FOR_TARGET@%$GCJ_FOR_TARGET%g +s%@CXX_FOR_TARGET@%$CXX_FOR_TARGET%g +s%@RAW_CXX_FOR_TARGET@%$RAW_CXX_FOR_TARGET%g +s%@CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%$CXX_FOR_TARGET_FOR_RECURSIVE_MAKE%g +s%@RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%$RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 -# end of configure diff -uprN binutils-2.13.90.0.16/configure.in binutils-2.13.90.0.18/configure.in --- binutils-2.13.90.0.16/configure.in Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/configure.in Tue Jan 21 10:21:32 2003 @@ -1,21 +1,5 @@ -#! /bin/bash -############################################################################## - -## This file is a shell script fragment that supplies the information -## necessary to tailor a template configure script into the configure -## script appropriate for this directory. For more information, check -## any existing configure script. - -## Be warned, there are two types of configure.in files. There are those -## used by Autoconf, which are macros which are expanded into a configure -## script by autoconf. The other sort, of which this is one, is executed -## by Cygnus configure. - -## For more information on these two systems, check out the documentation -## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi). - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +# 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -32,24 +16,135 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ############################################################################## +### WARNING: this file contains embedded tabs. Do not run untabify on this file. + +AC_INIT(move-if-change) +AC_PREREQ(2.13) +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM + +sinclude(config/acx.m4) + +# clear some things potentially inherited from environment. + +enable_threads=no +enable_shared=no +enable_libstdcxx_v3=yes +floating_point=default +gas=default +x11=default + +### we might need to use some other shell than /bin/sh for running subshells +### If we are on Windows, search for the shell. This will permit people +### to not have /bin/sh, but to be able to see /SOME/PATH/sh configure +### without also having to set CONFIG_SHELL. This code will work when +### using bash, which sets OSTYPE. +case "${OSTYPE}" in +*win32*) + if test x${CONFIG_SHELL} = x ; then + if test ! -f /bin/sh ; then + if test x${SHELL} != x && test -f ${SHELL} ; then + CONFIG_SHELL=${SHELL} + export CONFIG_SHELL + else + for prog in sh sh.exe bash bash.exe; do + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/$prog; then + CONFIG_SHELL=$dir/$prog + export CONFIG_SHELL + break + fi + done + IFS="$save_ifs" + test -n "${CONFIG_SHELL}" && break + done + fi + fi + fi + ;; +esac + +config_shell=${CONFIG_SHELL-/bin/sh} + +## this is a little touchy and won't always work, but... +## +## if the argv[[0]] starts with a slash then it is an absolute name that can (and +## must) be used as is. +## +## otherwise, if argv[[0]] has no slash in it, we can assume that it is on the +## path. Since PATH might include "." we also add `pwd` to the end of PATH. +## + +progname=$0 +# if PWD already has a value, it is probably wrong. +if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi + +# Export original configure arguments for use by sub-configures. +TOPLEVEL_CONFIGURE_ARGUMENTS="$progname $@" +AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS) + +moveifchange=${srcdir}/move-if-change + +# Set srcdir to "." if that's what it is. +# This is important for multilib support. +pwd=`${PWDCMD-pwd}` +srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}` +if test "${pwd}" = "${srcpwd}" ; then + srcdir=. +fi + +topsrcdir=$srcpwd + +extra_host_args= +# Define the trigger file to make sure configure will re-run whenever +# the gcc version number changes. +if test "${with_gcc_version_trigger+set}" = set ; then + gcc_version_trigger="$with_gcc_version_trigger" + gcc_version=`grep version_string ${with_gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'` +else + # If gcc's sources are available, define the trigger file. + if test -f ${topsrcdir}/gcc/version.c ; then + gcc_version_trigger=${topsrcdir}/gcc/version.c + gcc_version=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'` + case "$ac_configure_args" in + *--with-gcc-version-trigger=$gcc_version_trigger* ) + ;; + * ) + # Add to all subconfigure arguments: build, host, and target. + ac_configure_args="$ac_configure_args --with-gcc-version-trigger=$gcc_version_trigger" + ;; + esac + fi +fi ### To add a new directory to the tree, first choose whether it is a target ### or a host dependent tool. Then put it into the appropriate list -### (library or tools, host or target), doing a dependency sort. For -### example, gdb requires that byacc (or bison) be built first, so it is in -### the ${host_tools} list after byacc and bison. +### (library or tools, host or target), doing a dependency sort. + +# Subdirs will be configured in the order listed in build_configdirs, +# configdirs, or target_configdirs; see the serialization section below. +# Dependency sorting is only needed when *configuration* must be done in +# a particular order. In all cases a dependency should be specified in +# the Makefile, whether or not it's implicitly specified here. + +# Double entries in build_configdirs, configdirs, or target_configdirs may +# cause circular dependencies and break everything horribly. # these libraries are used by various programs built for the host environment # -host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk tclX itcl tix libgui zlib" +host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk itcl tix libgui zlib" libstdcxx_version="target-libstdc++-v3" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to # know that we are building the simulator. -host_tools="texinfo byacc flex bison binutils ld gas gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator libtool gettext zip fastjar" +# binutils, gas and ld appear in that order because it makes sense to run +# "make check" in that particular order. +host_tools="texinfo byacc flex bison binutils gas ld gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator gettext zip fastjar" # libgcj represents the runtime libraries only used by gcj. libgcj="target-libffi \ @@ -66,7 +161,7 @@ target_libs="target-libiberty \ target-newlib \ ${libstdcxx_version} \ target-libf2c \ - ${libgcj} + ${libgcj} \ target-libobjc" # these tools are built using the target libs, and are intended to run only @@ -91,18 +186,11 @@ target_configdirs=`echo ${target_libs} $ ################################################################################ -srctrigger=move-if-change srcname="gnu development package" # This gets set non-empty for some net releases of packages. appdirs="" -# per-host: - -# There is no longer anything interesting in the per-host section. - -# per-target: - # Define is_cross_compiler to save on calls to 'test'. is_cross_compiler= if test x"${host}" = x"${target}" ; then @@ -123,7 +211,8 @@ if test ! -d ${target_subdir} ; then fi fi -build_subdir=${build_alias} +build_prefix=build- +build_subdir=${build_prefix}${build_alias} if test x"${build_alias}" != x"${host}" ; then if test ! -d ${build_subdir} ; then @@ -197,12 +286,8 @@ esac # Configure extra directories which are host specific case "${host}" in - i[3456]86-*-go32*) - configdirs="$configdirs dosrel" ;; - i[3456]86-*-mingw32*) - configdirs="$configdirs dosrel" ;; *-cygwin*) - configdirs="$configdirs libtermcap dosrel" ;; + configdirs="$configdirs libtermcap" ;; esac # Remove more programs from consideration, based on the host or @@ -213,17 +298,17 @@ case "${host}" in hppa*64*-*-*) noconfigdirs="$noconfigdirs byacc" ;; - i[3456]86-*-vsta) + i[[3456]]86-*-vsta) noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv gettext" ;; - i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*) + i[[3456]]86-*-go32* | i[[3456]]86-*-msdosdjgpp*) noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile itcl tix db snavigator gnuserv libffi" ;; - i[3456]86-*-mingw32*) + i[[3456]]86-*-mingw32*) # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl itcl tix db snavigator gnuserv" noconfigdirs="expect dejagnu autoconf automake send-pr rcs guile perl texinfo libtool" ;; - i[3456]86-*-beos*) + i[[3456]]86-*-beos*) noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" ;; *-*-cygwin*) @@ -238,6 +323,9 @@ case "${host}" in powerpc-*-beos*) noconfigdirs="$noconfigdirs tk itcl tix libgui gdb dejagnu readline" ;; + *-*-darwin*) + noconfigdirs="$noconfigdirs tk itcl tix libgui" + ;; esac # Save it here so that, even in case of --enable-libgcj, if the Java @@ -260,7 +348,7 @@ case "${target}" in *-*-chorusos) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; - *-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*) + *-*-freebsd[[12]] | *-*-freebsd[[12]].* | *-*-freebsd*aout*) noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; *-*-netbsd*) @@ -415,13 +503,13 @@ case "${target}" in # No gdb or ld support yet. noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb ld" ;; - i[3456]86-*-coff | i[3456]86-*-elf) + i[[3456]]86-*-coff | i[[3456]]86-*-elf) noconfigdirs="$noconfigdirs ${libgcj}" ;; - i[34567]86-*-freebsd*) + i[[34567]]86-*-freebsd*) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; - i[3456]86-*-linux*) + i[[3456]]86-*-linux*) # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's # not build java stuff by default. case "${target}" in @@ -440,13 +528,13 @@ case "${target}" in # if the --with-newlib option has been given, because otherwise # 'target-newlib' will appear in skipdirs. ;; - i[3456]86-*-mingw32*) + i[[3456]]86-*-mingw32*) target_configdirs="$target_configdirs target-mingw" noconfigdirs="$noconfigdirs expect target-libgloss ${libgcj}" # Can't build gdb for mingw32 if not native. case "${host}" in - i[3456]86-*-mingw32) ;; # keep gdb tcl tk expect etc. + i[[3456]]86-*-mingw32) ;; # keep gdb tcl tk expect etc. *) noconfigdirs="$noconfigdirs gdb tcl tk expect itcl tix db snavigator gnuserv" ;; esac @@ -464,24 +552,24 @@ case "${target}" in ;; esac ;; - i[3456]86-*-pe) + i[[3456]]86-*-pe) noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj}" ;; - i[3456]86-*-sco3.2v5*) + i[[3456]]86-*-sco3.2v5*) # The linker does not yet know about weak symbols in COFF, # and is not configured to handle mixed ELF and COFF. noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" ;; - i[3456]86-*-sco*) + i[[3456]]86-*-sco*) noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" ;; - i[3456]86-*-solaris2*) + i[[3456]]86-*-solaris2*) noconfigdirs="$noconfigdirs target-libgloss" ;; - i[3456]86-*-sysv4*) + i[[3456]]86-*-sysv4*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; - i[3456]86-*-beos*) + i[[3456]]86-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) @@ -499,7 +587,7 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libstdc++-v3" ;; mmix-*-*) - noconfigdirs="$noconfigdirs ${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj} gdb libgloss" ;; mn10200-*-*) noconfigdirs="$noconfigdirs ${libgcj}" @@ -525,7 +613,7 @@ case "${target}" in noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; powerpc-*-darwin*) - noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb tk itcl tix libgui gprof ${libgcj}" + noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes gdb gprof ${libgcj}" ;; powerpc-*-eabi) noconfigdirs="$noconfigdirs ${libgcj}" @@ -552,12 +640,11 @@ case "${target}" in noconfigdirs="$noconfigdirs ld gprof target-libgloss ${libgcj}" ;; mips*-*-irix6*) - # The GNU assembler does not support IRIX 6. # Linking libjava exceeds command-line length limits on at least # IRIX 6.2, but not on IRIX 6.5. # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham # - noconfigdirs="$noconfigdirs gas gprof target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" ;; mips*-dec-bsd*) noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" @@ -579,9 +666,9 @@ case "${target}" in ;; sh-*-*) case "${host}" in - i[3456]86-*-vsta) ;; # don't add gprof back in - i[3456]86-*-go32*) ;; # don't add gprof back in - i[3456]86-*-msdosdjgpp*) ;; # don't add gprof back in + i[[3456]]86-*-vsta) ;; # don't add gprof back in + i[[3456]]86-*-go32*) ;; # don't add gprof back in + i[[3456]]86-*-msdosdjgpp*) ;; # don't add gprof back in *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;; esac noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -667,7 +754,7 @@ else exit 1 fi fi -enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'` +enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'` # First scan to see if an enabled language requires some other language. # We assume that a given config-lang.in will list all the language @@ -679,11 +766,11 @@ do ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. - ${srcdir}/gcc/[*]/config-lang.in) + ${srcdir}/gcc/[[*]]/config-lang.in) ;; *) - lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` - this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang` + lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang` + this_lang_requires=`sed -n -e 's,^lang_requires=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_requires=\([[^ ]]*\).*$,\1,p' $lang` for other in $this_lang_requires do case ,${enable_languages}, in @@ -708,12 +795,12 @@ do ..) ;; # The odd quoting in the next line works around # an apparent bug in bash 1.12 on linux. - ${srcdir}/gcc/[*]/config-lang.in) ;; + ${srcdir}/gcc/[[*]]/config-lang.in) ;; *) - lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` - this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang` - this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^ ]*\).*$,\1,p' $lang` - build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang` + lang_alias=`sed -n -e 's,^language=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^language=\([[^ ]]*\).*$,\1,p' $lang` + this_lang_libs=`sed -n -e 's,^target_libs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^target_libs=\([[^ ]]*\).*$,\1,p' $lang` + this_lang_dirs=`sed -n -e 's,^lang_dirs=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^lang_dirs=\([[^ ]]*\).*$,\1,p' $lang` + build_by_default=`sed -n -e 's,^build_by_default=[['"'"'"'"]]\(.*\)[["'"'"'"']].*$,\1,p' -e 's,^build_by_default=\([[^ ]]*\).*$,\1,p' $lang` if test "x$lang_alias" = x then echo "$lang doesn't set \$language." 1>&2 @@ -780,20 +867,6 @@ if test -n "${target_configdirs}" ; then fi fi -# Deconfigure all subdirectories, in case we are changing the -# configuration from one where a subdirectory is supported to one where it -# is not. -if test -z "${norecursion}" && test -n "${configdirs}" ; then - for i in `echo ${configdirs} | sed -e s/target-//g` ; do - rm -f $i/Makefile - done -fi -if test -z "${norecursion}" && test -n "${target_configdirs}" ; then - for i in `echo ${target_configdirs} | sed -e s/target-//g` ; do - rm -f ${target_subdir}/$i/Makefile - done -fi - # Quietly strip out all directories which aren't configurable in this tree. # This relies on all configurable subdirectories being autoconfiscated, which # is now the case. @@ -852,13 +925,6 @@ case "$host" in *msdosdjgpp*) enable_gdbtk=no ;; esac -# Determine whether gdb needs tk/tcl or not. -case "$enable_gdbtk" in - no) - GDB_TK="" ;; - *) - GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui" ;; -esac copy_dirs= @@ -932,16 +998,18 @@ done # Work in distributions that contain no compiler tools, like Autoconf. tentative_cc="" +host_makefile_frag=/dev/null if test -d ${srcdir}/config ; then case "${host}" in m68k-hp-hpux*) # Avoid "too much defining" errors from HPUX compiler. tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hp300" + # If "ar" in $PATH is GNU ar, the symbol table may need rebuilding. + # If it's HP/UX ar, this should be harmless. + RANLIB="ar ts" ;; m68k-apollo-sysv*) tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG" - host_makefile_frag="config/mh-apollo68" ;; m68k-apollo-bsd*) #None of the Apollo compilers can compile gas or binutils. The preprocessor @@ -950,8 +1018,8 @@ case "${host}" in # the apollo compiler" (the preferred version of GCC could be called cc, # or whatever), but I'm not sure leaving CC as cc is any better... #CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG + # Used to have BISON=yacc. tentative_cc=gcc - host_makefile_frag="config/mh-a68bsd" ;; m88k-dg-dgux*) tentative_cc="gcc -Wall -ansi -D__using_DGUX" @@ -963,7 +1031,6 @@ case "${host}" in host_makefile_frag="config/mh-cxux" ;; m88k-motorola-sysv*) - host_makefile_frag="config/mh-delta88" ;; mips*-dec-ultrix*) tentative_cc="cc -Wf,-XNg1000" @@ -974,21 +1041,12 @@ case "${host}" in tentative_cc="cc -ZXNd=5000 -ZXNg=1000" host_makefile_frag="config/mh-necv4" ;; - mips*-sgi-irix6*) - host_makefile_frag="config/mh-irix6" - ;; - mips*-sgi-irix5*) - host_makefile_frag="config/mh-irix5" - ;; mips*-sgi-irix4*) # Tell compiler to use K&R C. We can't compile under the SGI Ansi # environment. Also bump switch table size so that cp-parse will # compile. Bump string length limit so linker builds. tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192" ;; - mips*-sgi-irix3*) - host_makefile_frag="config/mh-sysv" - ;; mips*-*-sysv4*) host_makefile_frag="config/mh-sysv4" ;; @@ -1006,26 +1064,23 @@ case "${host}" in # This is not part of CFLAGS because perhaps not all C compilers have this # option. tentative_cc="cc -systype sysv" - host_makefile_frag="config/mh-riscos" ;; i370-ibm-opened*) tentative_cc="c89" - host_makefile_frag="config/mh-openedition" ;; - i[3456]86-*-sysv5*) + i[[3456]]86-*-sysv5*) host_makefile_frag="config/mh-sysv5" ;; - i[3456]86-*-dgux*) + i[[3456]]86-*-dgux*) tentative_cc="gcc -Wall -ansi -D__using_DGUX" host_makefile_frag="config/mh-dgux386" ;; - i[3456]86-ncr-sysv4.3*) + i[[3456]]86-ncr-sysv4.3*) # The MetaWare compiler will generate a copyright message unless you # turn it off by adding the -Hnocopyr flag. tentative_cc="cc -Hnocopyr" - host_makefile_frag="config/mh-ncrsvr43" ;; - i[3456]86-ncr-sysv4*) + i[[3456]]86-ncr-sysv4*) # for an NCR 3000 (i486/SVR4) system. # The NCR 3000 ships with a MetaWare compiler installed as /bin/cc. # This compiler not only emits obnoxious copyright messages every time @@ -1034,28 +1089,21 @@ case "${host}" in tentative_cc="/usr/ccs/ATT/cc" host_makefile_frag="config/mh-ncr3000" ;; - i[3456]86-*-sco3.2v5*) - host_makefile_frag="config/mh-sysv" + i[[3456]]86-*-sco3.2v5*) ;; - i[3456]86-*-sco*) + i[[3456]]86-*-sco*) # The native C compiler botches some simple uses of const. Unfortunately, # it doesn't defined anything like "__sco__" for us to test for in ansidecl.h. tentative_cc="cc -Dconst=" host_makefile_frag="config/mh-sco" ;; - i[3456]86-*-udk*) + i[[3456]]86-*-udk*) host_makefile_frag="config/mh-sysv5" ;; - i[3456]86-*-isc*) - host_makefile_frag="config/mh-sysv" - ;; - i[3456]86-*-solaris2*) + i[[3456]]86-*-solaris2*) host_makefile_frag="config/mh-sysv4" ;; - i[3456]86-*-aix*) - host_makefile_frag="config/mh-aix386" - ;; - i[3456]86-*-msdosdjgpp*) + i[[3456]]86-*-msdosdjgpp*) host_makefile_frag="config/mh-djgpp" ;; *-cygwin*) @@ -1079,17 +1127,11 @@ case "${host}" in # without overflowing the jump tables (-J says to use a 32 bit table) tentative_cc="cc -J" ;; - *-hp-hpux[78]*) - tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hpux8" - ;; *-hp-hpux*) tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hpux" ;; *-*-hiux*) tentative_cc="cc -Wp,-H256000" - host_makefile_frag="config/mh-hpux" ;; rs6000-*-lynxos*) # /bin/cc is less than useful for our purposes. Always use GCC @@ -1103,26 +1145,15 @@ case "${host}" in *-*-sysv4*) host_makefile_frag="config/mh-sysv4" ;; - *-*-sysv*) - host_makefile_frag="config/mh-sysv" - ;; esac fi -rm -f mh-frag -if test -n "${host_makefile_frag}" ; then - for f in ${host_makefile_frag} - do - cat ${srcdir}/$f >> mh-frag - done - host_makefile_frag=mh-frag -fi - +extra_arflags_for_target= +extra_nmflags_for_target= +extra_ranlibflags_for_target= +target_makefile_frag=/dev/null case "${target}" in - v810*) - target_makefile_frag="config/mt-v810" - ;; - i[3456]86-*-netware*) + i[[3456]]86-*-netware*) target_makefile_frag="config/mt-netware" ;; powerpc-*-netware*) @@ -1131,15 +1162,23 @@ case "${target}" in *-*-linux*) target_makefile_frag="config/mt-linux" ;; - *-*-aix4.[3456789]* | *-*-aix[56789].*) - target_makefile_frag="config/mt-aix43" + *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*) + # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm + # commands to handle both 32-bit and 64-bit objects. These flags are + # harmless if we're using GNU nm or ar. + extra_arflags_for_target=" -X32_64" + extra_nmflags_for_target=" -B -X32_64" + ;; + *-*-darwin*) + # ranlib from Darwin requires the -c flag to look at common symbols. + extra_ranlibflags_for_target=" -c" ;; mips*-*-pe | sh*-*-pe | *arm-wince-pe) target_makefile_frag="config/mt-wince" ;; esac -alphaieee_frag= +alphaieee_frag=/dev/null case $target in alpha*-*-*) # This just makes sure to use the -mieee option to build target libs. @@ -1151,7 +1190,7 @@ esac # If --enable-target-optspace always use -Os instead of -O2 to build # the target libraries, similarly if it is not specified, use -Os # on selected platforms. -ospace_frag= +ospace_frag=/dev/null case "${enable_target_optspace}:${target}" in yes:*) ospace_frag="config/mt-ospace" @@ -1169,15 +1208,6 @@ case "${enable_target_optspace}:${target ;; esac -rm -f mt-frag -if test -n "${target_makefile_frag}${alphaieee_frag}${ospace_frag}" ; then - for f in ${target_makefile_frag} ${alphaieee_frag} ${ospace_frag} - do - cat ${srcdir}/$f >> mt-frag - done - target_makefile_frag=mt-frag -fi - # Set with_gnu_as and with_gnu_ld as appropriate. # # This is done by determining whether or not the appropriate directory @@ -1194,21 +1224,21 @@ fi if test x${use_gnu_as} = x && echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then with_gnu_as=yes - withoptions="$withoptions --with-gnu-as" + extra_host_args="$extra_host_args --with-gnu-as" fi if test x${use_gnu_ld} = x && echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 ; then with_gnu_ld=yes - withoptions="$withoptions --with-gnu-ld" + extra_host_args="$extra_host_args --with-gnu-ld" fi -# If using newlib, add --with-newlib to the withoptions so that gcc/configure +# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure # can detect this case. if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then with_newlib=yes - withoptions="$withoptions --with-newlib" + extra_host_args="$extra_host_args --with-newlib" fi # We default to --with-shared on platforms where -fpic is meaningless. @@ -1235,13 +1265,13 @@ if test x${with_stabs} = x ; then case "${target}" in mips*-*-irix6*o32) with_stabs=yes; - withoptions="${withoptions} --with-stabs" + extra_host_args="${extra_host_args} --with-stabs" ;; mips*-*-irix6*) ;; mips*-*-* | alpha*-*-osf*) with_stabs=yes; - withoptions="${withoptions} --with-stabs" + extra_host_args="${extra_host_args} --with-stabs" ;; esac fi @@ -1250,7 +1280,7 @@ fi # them automatically. case "${host}" in hppa*64*-*-hpux11*) - withoptions="$withoptions -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include" + extra_host_args="$extra_host_args -x-libraries=/usr/lib/pa20_64 -x-includes=/usr/X11R6/include" ;; esac @@ -1273,7 +1303,284 @@ if test -z "${CC}" && test "${build}" = fi fi -# post-target: +# Some systems (e.g., one of the i386-aix systems the gas testers are +# using) don't handle "\$" correctly, so don't use it here. +tooldir='$(exec_prefix)'/${target_alias} +build_tooldir=${tooldir} + +# Generate a default definition for YACC. This is used if the makefile can't +# locate bison or byacc in objdir. + +for prog in 'bison -y' byacc yacc +do + set dummy $prog; tmp=$2 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/$tmp; then + DEFAULT_YACC="$prog" + break + fi + done + IFS="$save_ifs" + + test -n "$DEFAULT_YACC" && break +done + +# Generate a default definition for M4. This is used if the makefile can't +# locate m4 in objdir. + +for prog in gm4 gnum4 m4 +do + set dummy $prog; tmp=$2 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/$tmp; then + DEFAULT_M4="$prog" + break + fi + done + IFS="$save_ifs" + + test -n "$DEFAULT_M4" && break +done + +# Generate a default definition for LEX. This is used if the makefile can't +# locate flex in objdir. + +for prog in flex lex +do + set dummy $prog; tmp=$2 + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/$tmp; then + DEFAULT_LEX="$prog" + break + fi + done + IFS="$save_ifs" + + test -n "$DEFAULT_LEX" && break +done + +if test "${build}" != "${host}" ; then + # If we are doing a Canadian Cross, in which the host and build systems + # are not the same, we set reasonable default values for the tools. + + BISON=${BISON-bison} + CC=${CC-${host_alias}-gcc} + CFLAGS=${CFLAGS-"-g -O2"} + CXX=${CXX-${host_alias}-c++} + CXXFLAGS=${CXXFLAGS-"-g -O2"} + CC_FOR_BUILD=${CC_FOR_BUILD-gcc} + CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc} + CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++} + GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj} + GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}} + BUILD_PREFIX=${build_alias}- + BUILD_PREFIX_1=${build_alias}- + MAKEINFO=${MAKEINFO-makeinfo} + + if test -z "${YACC}" ; then + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/bison; then + YACC="bison -y" + break + fi + if test -f $dir/byacc; then + YACC=byacc + break + fi + if test -f $dir/yacc; then + YACC=yacc + break + fi + done + IFS="$save_ifs" + if test -z "${YACC}" ; then + YACC="bison -y" + fi + fi + + if test -z "${LEX}" ; then + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/flex; then + LEX=flex + break + fi + if test -f $dir/lex; then + LEX=lex + break + fi + done + IFS="$save_ifs" + LEX=${LEX-flex} + fi + +else + # Set reasonable default values for some tools even if not Canadian. + # Of course, these are different reasonable default values, originally + # specified directly in the Makefile. + # We don't export, so that autoconf can do its job. + # Note that all these settings are above the fragment inclusion point + # in Makefile.in, so can still be overridden by fragments. + # This is all going to change when we autoconfiscate... + + BISON="\$(USUAL_BISON)" + CC_FOR_BUILD="\$(CC)" + GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)" + BUILD_PREFIX= + BUILD_PREFIX_1=loser- + MAKEINFO="\$(USUAL_MAKEINFO)" + LEX="\$(USUAL_LEX)" + YACC="\$(USUAL_YACC)" + + # If CC is still not set, try to get gcc. + cc_prog_is_gcc= + if test -z "${CC}" ; then + IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" + for dir in $PATH; do + test -z "$dir" && dir=. + if test -f $dir/gcc; then + CC="gcc" + cc_prog_is_gcc=yes + echo 'void f(){}' > conftest.c + if test -z "`${CC} -g -c conftest.c 2>&1`"; then + CFLAGS=${CFLAGS-"-g -O2"} + CXXFLAGS=${CXXFLAGS-"-g -O2"} + else + CFLAGS=${CFLAGS-"-O2"} + CXXFLAGS=${CXXFLAGS-"-O2"} + fi + rm -f conftest* + break + fi + done + IFS="$save_ifs" + CC=${CC-cc} + else + # Determine if we are using gcc. + cat > conftest.c </dev/null 2>&1; then + cc_prog_is_gcc=yes + fi + rm -f conftest.c + if test -z "${CFLAGS}"; then + # Here CC is set but CFLAGS is not. Use a quick hack to use -O2 if CC + # is set to a version of gcc. + if test "$cc_prog_is_gcc" = yes; then + echo 'void f(){}' > conftest.c + if test -z "`${CC} -g -c conftest.c 2>&1`"; then + CFLAGS=${CFLAGS-"-g -O2"} + CXXFLAGS=${CXXFLAGS-"-g -O2"} + else + CFLAGS=${CFLAGS-"-O2"} + CXXFLAGS=${CXXFLAGS-"-O2"} + fi + rm -f conftest* + fi + fi + fi + + # We must set the default linker to the linker used by gcc for the correct + # operation of libtool. If LD is not defined and we are using gcc, try to + # set the LD default to the ld used by gcc. + if test -z "$LD"; then + if test "$cc_prog_is_gcc" = yes; then + case $build in + *-*-mingw*) + gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; + *) + gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; + esac + case $gcc_prog_ld in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + LD="$gcc_prog_ld" ;; + esac + fi + fi + + CXX=${CXX-"c++"} + CFLAGS=${CFLAGS-"-g"} + CXXFLAGS=${CXXFLAGS-"-g -O2"} +fi + +# FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) +# Set up the list of links to be made. +# ${links} is the list of link names, and ${files} is the list of names to link to. + +# Make the links. +configlinks="${links}" +if test -r ./config.status ; then + mv -f ./config.status ./config.back +fi +while test -n "${files}" ; do + # set file to car of files, files to cdr of files + set ${files}; file=$1; shift; files=$* + set ${links}; link=$1; shift; links=$* + + if test ! -r ${srcdir}/${file} ; then + if test ! -r ${file} ; then + echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 + echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 + exit 1 + else + srcfile=${file} + fi + else + srcfile=${srcdir}/${file} + fi + + ${remove} -f ${link} + # Make a symlink if possible, otherwise try a hard link + if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then + true + else + # We need to re-remove the file because Lynx leaves a + # very strange directory there when it fails an NFS symlink. + ${remove} -r -f ${link} + ${hard_link} ${srcfile} ${link} + fi + if test ! -r ${link} ; then + echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2 + exit 1 + fi + + echo "Linked \"${link}\" to \"${srcfile}\"." +done + +# Create a .gdbinit file which runs the one in srcdir +# and tells GDB to look there for source files. + +if test -r ${srcdir}/.gdbinit ; then + case ${srcdir} in + .) ;; + *) cat > ./.gdbinit < Makefile.tem -rm -f Makefile -mv -f Makefile.tem Makefile case "${host}" in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac -sed -e "s/@RPATH_ENVVAR@/${RPATH_ENVVAR}/" Makefile > Makefile.tem -rm -f Makefile -mv -f Makefile.tem Makefile +# Record target_configdirs and the configure arguments for target and +# build configuration in Makefile. +target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` + +# This is the final value for target_configdirs. configdirs already +# has its final value. It's time to create some lists of valid targets. + +# While at that, we remove Makefiles if we were started for recursive +# configuration, such that the top-level Makefile reconfigures them, +# like we used to do when configure itself was recursive. + +all_build_modules= +configure_build_modules= +# Only make build modules if build != host. +# This should be done more generally, but at the moment it doesn't matter. +if test ${host_alias} != ${build_alias} ; then + for module in libiberty ; do + all_build_modules=all-build-${module} + configure_build_modules=configure-build-${module} + if test -z "${no_recursion}" \ + && test -f ${build_subdir}/${module}/Makefile; then + echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure" + rm -f ${build_subdir}/${module}/Makefile + fi + done +fi + +all_host_modules= +check_host_modules= +install_host_modules= +configure_host_modules= +for module in ${configdirs} ; do + all_host_modules="${all_host_modules} all-${module}" + check_host_modules="${check_host_modules} check-${module}" + install_host_modules="${install_host_modules} install-${module}" + configure_host_modules="${configure_host_modules} configure-${module}" + if test -z "${no_recursion}" \ + && test -f ${module}/Makefile; then + echo 1>&2 "*** removing ${module}/Makefile to force reconfigure" + rm -f ${module}/Makefile + fi +done +install_host_modules_nogcc=`echo "${install_host_modules}" | sed -e 's/install-gcc//g'` + +all_target_modules= +check_target_modules= +install_target_modules= +configure_target_modules= +for module in ${target_configdirs} ; do + all_target_modules="${all_target_modules} all-target-${module}" + check_target_modules="${check_target_modules} check-target-${module}" + install_target_modules="${install_target_modules} install-target-${module}" + configure_target_modules="${configure_target_modules} configure-target-${module}" + if test -z "${no_recursion}" \ + && test -f ${target_subdir}/${module}/Makefile; then + echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure" + rm -f ${target_subdir}/${module}/Makefile + fi +done + +# Determine whether gdb needs tk/tcl or not. +# Use 'maybe' since enable_gdbtk might be true even if tk isn't available +# and in that case we want gdb to be built without tk. Ugh! +# In fact I believe gdb is the *only* package directly dependent on tk, +# so we should be able to put the 'maybe's in unconditionally and +# leave out the maybe dependencies when enable_gdbtk is false. I'm not +# 100% sure that that's safe though. + +gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" +case "$enable_gdbtk" in + no) + GDB_TK="" ;; + yes) + GDB_TK="${gdb_tk}" ;; + *) + # Only add the dependency on gdbtk when GDBtk is part of the gdb + # distro. Eventually someone will fix this and move Insight, nee + # gdbtk to a separate directory. + if test -d ${srcdir}/gdb/gdbtk ; then + GDB_TK="${gdb_tk}" + else + GDB_TK="" + fi + ;; +esac -# Base args. Strip norecursion, cache-file, srcdir, host, build, target. -# These are the ones we might not want to pass down to subconfigures. -baseargs=`echo "${arguments}" | \ - sed -e 's/--no[^ ]*//' \ - -e 's/--cache[a-z-]*=[^ ]*//' \ - -e 's/--sr[a-z-]*=[^ ]*//' \ - -e 's/--ho[a-z-]*=[^ ]*//' \ - -e 's/--bu[a-z-]*=[^ ]*//' \ - -e 's/--ta[a-z-]*=[^ ]*//'` +# Create the 'maybe dependencies'. This uses a temporary file. +rm -f maybedep.tmp +echo '# maybedep.tmp' > maybedep.tmp +for item in ${all_build_modules} ${all_host_modules} ${all_target_modules} \ + ${install_host_modules} ${install_target_modules} \ + ${configure_build_modules} ${configure_host_modules} ${configure_target_modules} \ + ; do + echo "maybe-${item}: ${item}" >> maybedep.tmp +done +maybe_dependencies=maybedep.tmp +AC_SUBST_FILE(maybe_dependencies) + +# Create the serialization dependencies. This uses a temporary file. + +AC_ARG_ENABLE([serial-configure], +[ --disable-serial-[{host,target,build}-]configure + Don't force sequential configuration of + sub-packages for the host, target or build + machine, or of any sub-packages at all]) + +# These force 'configure's to be done one at a time, to avoid problems +# with contention over a shared config.cache. +rm -f serdep.tmp +echo '# serdep.tmp' > serdep.tmp +olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_build_configure}" = xno || +for item in ${build_configdirs} ; do + case ${olditem} in + "") ;; + *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;; + esac + olditem=${item} +done +olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_host_configure}" = xno || +for item in ${configdirs} ; do + case ${olditem} in + "") ;; + *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;; + esac + olditem=${item} +done +olditem= +test "x${enable_serial_configure}" = xno || +test "x${enable_serial_target_configure}" = xno || +for item in ${target_configdirs} ; do + case ${olditem} in + "") ;; + *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;; + esac + olditem=${item} +done +serialization_dependencies=serdep.tmp +AC_SUBST_FILE(serialization_dependencies) + +# Base args. Strip norecursion, cache-file, srcdir, host, build, +# target and nonopt. These are the ones we might not want to pass +# down to subconfigures. +baseargs=`echo " ${ac_configure_args} " | \ + sed -e 's/ --no[[^ ]]* / /' \ + -e 's/ --c[[a-z-]]*[[= ]][[^ ]]* / /' \ + -e 's/ --sr[[a-z-]]*[[= ]][[^ ]]* / /' \ + -e 's/ --ho[[a-z-]]*[[= ]][[^ ]]* / /' \ + -e 's/ --bu[[a-z-]]*[[= ]][[^ ]]* / /' \ + -e 's/ --t[[a-z-]]*[[= ]][[^ ]]* / /' \ + -e 's/ -cache-file[[= ]][[^ ]]* / /' \ + -e 's/ -srcdir[[= ]][[^ ]]* / /' \ + -e 's/ -host[[= ]][[^ ]]* / /' \ + -e 's/ -build[[= ]][[^ ]]* / /' \ + -e 's/ -target[[= ]][[^ ]]* / /' \ + -e 's/ [[^ -][^ ]*] / /' \ + -e 's/^ *//;s/ *$//'` # For the build-side libraries, we just need to pretend we're native, # and not use the same cache file. Multilibs are neither needed nor # desired. -buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}" +build_configargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}" -# Record target_configdirs and the configure arguments for target and -# build configuration in Makefile. -target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` -targargs=${baseargs} +# For host modules, accept cache file option, or specification as blank. +case "${cache_file}" in +"") # empty + cache_file_option="" ;; +/* | [[A-Za-z]]:[[\\/]]* ) # absolute path + cache_file_option="--cache-file=${cache_file}" ;; +*) # relative path + cache_file_option="--cache-file=../${cache_file}" ;; +esac + +host_configargs="${cache_file_option} --build=${build_alias} --host=${host_alias} --target=${target_alias} ${extra_host_args} ${baseargs}" + +target_configargs=${baseargs} # Passing a --with-cross-host argument lets the target libraries know # whether they are being built with a cross-compiler or being built @@ -1372,22 +1832,22 @@ targargs=${baseargs} # sorts of decisions they want to make on this basis. Please consider # this option to be deprecated. FIXME. if test x${is_cross_compiler} = xyes ; then - targargs="--with-cross-host=${host_alias} ${targargs}" + target_configargs="--with-cross-host=${host_alias} ${target_configargs}" fi # Default to --enable-multilib. if test x${enable_multilib} = x ; then - targargs="--enable-multilib ${targargs}" + target_configargs="--enable-multilib ${target_configargs}" fi # Pass --with-newlib if appropriate. Note that target_configdirs has # changed from the earlier setting of with_newlib. if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then - targargs="--with-newlib ${targargs}" + target_configargs="--with-newlib ${target_configargs}" fi # Pass the appropriate --host, --build, and --cache-file arguments. -targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}" +target_configargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${target_configargs}" # provide a proper gxx_include_dir. # Note, if you change the default, make sure to fix both here and in @@ -1421,7 +1881,7 @@ fi FLAGS_FOR_TARGET= case " $target_configdirs " in *" newlib "*) - case " $targargs " in + case " $target_configargs " in *" --with-newlib "*) case "$target" in *-cygwin*) @@ -1452,7 +1912,7 @@ case " $target_configdirs " in fi case "${target}-${is_cross_compiler}" in - i[3456]86-*-linux*-no) + i[[3456]]86-*-linux*-no) # Here host == target, so we don't need to build gcc, # so we don't want to discard standard headers. FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'` @@ -1491,14 +1951,9 @@ elif test -d ${srcdir}/gcc; then elif test "$host" = "$target"; then CC_FOR_TARGET='$(CC)' else - CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}` + CC_FOR_TARGET=`echo gcc | sed "${program_transform_name}"` fi -# On Canadian crosses, configure reads CC_FOR_TARGET from Makefile, -# if Makefile exists. Prevent $(FLAGS_FOR_TARGET) from being duplicated. -case $CC_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac +CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)' if test "x${GCJ_FOR_TARGET+set}" = xset; then : @@ -1507,15 +1962,13 @@ elif test -d ${srcdir}/gcc; then elif test "$host" = "$target"; then GCJ_FOR_TARGET='gcj' else - GCJ_FOR_TARGET=`echo gcj | sed -e 's/x/x/' ${program_transform_name}` + GCJ_FOR_TARGET=`echo gcj | sed "${program_transform_name}"` fi -case $GCJ_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac +GCJ_FOR_TARGET=$GCJ_FOR_TARGET' $(FLAGS_FOR_TARGET)' # Don't use libstdc++-v3's flags to configure/build itself. -libstdcxx_flags='`case $$dir in libstdc++-v3 | libjava) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' if test "x${CXX_FOR_TARGET+set}" = xset; then : @@ -1523,17 +1976,22 @@ elif test -d ${srcdir}/gcc; then # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead # of g++ for linking C++ or Java, because g++ has -shared-libgcc by # default whereas gcc does not. - CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3 | libjava) echo xgcc -shared-libgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags + # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for + # all other cases. + CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags + RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags elif test "$host" = "$target"; then CXX_FOR_TARGET='$(CXX)' + RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} else - CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}` + CXX_FOR_TARGET=`echo c++ | sed "${program_transform_name}"` + RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} fi -case $CXX_FOR_TARGET in -*' $(FLAGS_FOR_TARGET)') ;; -*) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; -esac -qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` +CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' +RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' + +qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'` +qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[[&%]],\\\&,g'` # We want to defer the evaluation of `cmd`s and shell variables in # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for @@ -1541,28 +1999,131 @@ qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" # quotes, but we still have to duplicate `$'s so that shell variables # can be expanded by the nested make as shell variables, not as make # macros. -qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` +qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'` +qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[[$]][[$]],$$$$,g'` -sedtemp=sed.$$ -cat >$sedtemp < Makefile.tem -rm -f Makefile $sedtemp -mv -f Makefile.tem Makefile +# Wrap CC_FOR_TARGET and friends, for certain types of builds. +CC_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}" +GCJ_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}" +CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}" +RAW_CXX_FOR_TARGET="\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}" +CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}" +RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE="\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}" + +# Makefile fragments. +host_makefile_frag=${srcdir}/${host_makefile_frag} +target_makefile_frag=${srcdir}/${target_makefile_frag} +alphaieee_frag=${srcdir}/${alphaieee_frag} +ospace_frag=${srcdir}/${ospace_frag} +AC_SUBST_FILE(host_makefile_frag) +AC_SUBST_FILE(target_makefile_frag) +AC_SUBST_FILE(alphaieee_frag) +AC_SUBST_FILE(ospace_frag) + +# Miscellanea: directories, flags, etc. +AC_SUBST(SET_LIB_PATH) +AC_SUBST(RPATH_ENVVAR) +AC_SUBST(BUILD_PREFIX) +AC_SUBST(BUILD_PREFIX_1) +AC_SUBST(configlinks) +AC_SUBST(enable_shared) +AC_SUBST(enable_threads) +AC_SUBST(enable_version_specific_runtime_libs) +AC_SUBST(gcc_version_trigger) +AC_SUBST(gcc_version) +AC_SUBST(tooldir) +AC_SUBST(build_tooldir) +AC_SUBST(GDB_TK) +AC_SUBST(gxx_include_dir) +AC_SUBST(libstdcxx_incdir) + +# Build module lists & subconfigure args. +AC_SUBST(build_subdir) +AC_SUBST(build_configargs) +AC_SUBST(configure_build_modules) +AC_SUBST(all_build_modules) + +# Host module lists & subconfigure args. +AC_SUBST(host_configargs) +AC_SUBST(configdirs) +AC_SUBST(configure_host_modules) +AC_SUBST(all_host_modules) +AC_SUBST(check_host_modules) +AC_SUBST(install_host_modules) +AC_SUBST(install_host_modules_nogcc) + +# Target module lists & subconfigure args. +AC_SUBST(target_subdir) +AC_SUBST(target_configargs) +AC_SUBST(target_configdirs) +AC_SUBST(configure_target_modules) +AC_SUBST(all_target_modules) +AC_SUBST(check_target_modules) +AC_SUBST(install_target_modules) + +# Build tools. +AC_SUBST(BISON) +AC_SUBST(CC_FOR_BUILD) +AC_SUBST(LEX) +AC_SUBST(MAKEINFO) +AC_SUBST(YACC) +AC_SUBST(config_shell) + +# Host tools. +NCN_STRICT_CHECK_TOOL(AR, ar) +NCN_STRICT_CHECK_TOOL(AS, as) +NCN_STRICT_CHECK_TOOL(DLLTOOL, dlltool) +NCN_STRICT_CHECK_TOOL(LD, ld) +NCN_STRICT_CHECK_TOOL(NM, nm) +NCN_STRICT_CHECK_TOOL(RANLIB, ranlib, :) +NCN_STRICT_CHECK_TOOL(WINDRES, windres) +NCN_STRICT_CHECK_TOOL(OBJCOPY, objcopy) +NCN_STRICT_CHECK_TOOL(OBJDUMP, objdump) +AC_SUBST(CC) +AC_SUBST(CXX) +AC_SUBST(CFLAGS) +AC_SUBST(CXXFLAGS) +AC_SUBST(DEFAULT_YACC) +AC_SUBST(DEFAULT_LEX) +AC_SUBST(DEFAULT_M4) + +# Target tools. +NCN_STRICT_CHECK_TARGET_TOOL(AR_FOR_TARGET, ar) +NCN_STRICT_CHECK_TARGET_TOOL(AS_FOR_TARGET, as) +NCN_STRICT_CHECK_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool) +NCN_STRICT_CHECK_TARGET_TOOL(LD_FOR_TARGET, ld) +NCN_STRICT_CHECK_TARGET_TOOL(NM_FOR_TARGET, nm) +NCN_STRICT_CHECK_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib, :) +NCN_STRICT_CHECK_TARGET_TOOL(WINDRES_FOR_TARGET, windres) + +AC_SUBST(GCC_FOR_TARGET) +AC_SUBST(FLAGS_FOR_TARGET) +AC_SUBST(CC_FOR_TARGET) +AC_SUBST(GCJ_FOR_TARGET) +AC_SUBST(CXX_FOR_TARGET) +AC_SUBST(RAW_CXX_FOR_TARGET) +AC_SUBST(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE) +AC_SUBST(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE) + +# Fix up target tools. +if test "x${build}" = "x${host}" ; then + # In this case, the newly built tools can and should be used, + # so we override the results of the autoconf tests. + # This should really only happen when the tools are actually being built, + # but that's a further refinement. The new build scheme, where + # tools are built into a structure paralleling where they're installed, + # should also eliminate all of this cleanly. + AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)" + AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)" + DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)" + LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)" + NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)" + RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)" + WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)" +fi +# Certain tools may need extra flags. +AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} +RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target} +NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} -# -# Local Variables: -# fill-column: 131 -# End: -# +AC_OUTPUT(Makefile) diff -uprN binutils-2.13.90.0.16/etc/ChangeLog binutils-2.13.90.0.18/etc/ChangeLog --- binutils-2.13.90.0.16/etc/ChangeLog Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.18/etc/ChangeLog Tue Jan 21 10:21:32 2003 @@ -1,3 +1,8 @@ +2003-01-02 H.J. Lu + + * Makefile.in (DESTDIR): New. + (install-info): Use it. + 2002-06-11 Nick Clifton Import the following patches from the FSF GCC sources: diff -uprN binutils-2.13.90.0.16/etc/Makefile.in binutils-2.13.90.0.18/etc/Makefile.in --- binutils-2.13.90.0.16/etc/Makefile.in Sun Feb 3 11:22:31 2002 +++ binutils-2.13.90.0.18/etc/Makefile.in Tue Jan 21 10:21:32 2003 @@ -2,6 +2,8 @@ # Makefile.in for etc # +DESTDIR = + prefix = @prefix@ exec_prefix = @exec_prefix@ @@ -68,17 +70,17 @@ info: done install-info: info - $(SHELL) $(srcdir)/../mkinstalldirs $(infodir) + $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(infodir) if test ! -f standards.info; then cd $(srcdir); fi; \ if test -f standards.info; then \ for i in standards.info*; do \ - $(INSTALL_DATA) $$i $(infodir)/$$i; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i; \ done; \ fi if test ! -f configure.info; then cd $(srcdir); fi; \ if test -f configure.info; then \ for i in configure.info*; do \ - $(INSTALL_DATA) $$i $(infodir)/$$i; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(infodir)/$$i; \ done; \ fi diff -uprN binutils-2.13.90.0.16/gas/ChangeLog binutils-2.13.90.0.18/gas/ChangeLog --- binutils-2.13.90.0.16/gas/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/ChangeLog Tue Jan 21 10:21:32 2003 @@ -1,3 +1,720 @@ +2003-01-21 Fabio Alemagna + + * configure.in: Handle *-*-aros*. + * configure: Regenerated from configure.in. + +2003-01-20 Martin Schwidefsky + + * config/tc-s390.c (elf_suffix_type): Add suffix enums for gotoff, + gotplt and pltoff relocations. + (s390_elf_suffix): Add suffix strings for gotoff, gotplt and pltoff. + (s390_elf_cons): Map new lenght/elf suffix combinations for gotoff, + gotplt and pltoff to bfd relocations. + (md_gather_operands): Map new instruction operand/elf suffix + combinations to bfd relocations. + (tc_s390_fix_adjustable): Add new gotoff, gotplt and pltoff relocations + to the list of unadjustable relocations. + (tc_s390_force_relocation): Always emit relocations for gotoff, gotplt + and pltoff relocations. + (md_apply_fix3): Add the new relocations. + +2003-01-20 Martin Schwidefsky + + * config/tc-s390.c (md_apply_fix3): Emit error message for relocations + with a subsy symbol. + +2003-01-17 Stephane Carrez + + * config/tc-m68hc11.c (tc_m68hc11_fix_adjustable): Prevent adjustment + of relocs for memory bank addressing. + +2003-01-17 Stephane Carrez + + * config/tc-m68hc11.c (md_show_usage): Update usage. + (md_parse_option): Recognize -m68hcs12. + (m68hc11_elf_final_processing): Set EF_M68HCS12_MACH flag to identify + HCS12. + * doc/as.texinfo (Overview): Document new option -m68hcs12. + +2003-01-16 Jakub Jelinek + + * config/tc-ia64.c (ia64_cons_fix_new): Handle @dtprel() in data. + +2003-01-16 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * po/POTFILES.in: Regenerate. + +2003-01-11 Alan Modra + + * read.c (get_absolute_expr): New, split out from.. + (get_absolute_expression): ..here. + * read.h (get_absolute_expr): Declare. + * config/obj-elf.c (elf_common): Use offsetT for "temp" and "size". + Trim size to arch bits_per_address, and test for negative input + via get_absolute_expr. + +2003-01-07 DJ Delorie + + * config/tc-xstormy16.c (md_cgen_lookup_reloc): Adjust value based + on operand type. + (xstormy16_md_apply_fix3): Use adjustment. + +2003-01-02 Ben Elliston + + * configure.in: Add iq2000-elf target. + * configure: Regenerate. + * config/tc-iq2000.c: New file. + * config/tc-iq2000.h: Likewise. + * po/gas.pot: Regenerate. + +2003-01-02 Chris Demetriou + + * config/tc-mips.c: Update copyright years to include 2003. + (mips_ip): Fix indentation of "+A", "+B", and "+C" handling. + Additionally, clean up their code slightly and clean up their + comments some more. + + * doc/c-mips.texi: Add MIPS32r2 to ".set mipsN" documentation. + +2003-01-01 Daniel Jacobowitz + + * doc/Makefile.am (as.1): Depend on "asconfig.texi gasver.texi + $(CPU_DOCS)". + * doc/Makefile.in: Regenerate. + +2003-01-01 John David Anglin + + * config/obj-elf.c (special_sections): Work around HP's incorrect usage + of .init and .fini sections for array initializers and finalizers. + +2002-12-31 Chris Demetriou + + * config/tc-mips.c (validate_mips_insn, mips_ip): Recognize + the "+D" operand, which will be used only by the disassembler. + +2002-12-30 Chris Demetriou + + * configure.in: Recognize mipsisa32r2, mipsisa32r2el, and + CPU variants. + * configure: Regenerate. + * config/tc-mips.c (ISA_HAS_DROR, ISA_HAS_ROR): New defines. + (macro_build): Handle "K" operand. + (macro2): Use ISA_HAS_DROR and ISA_HAS_ROR in the places where + CPU_HAS_DROR and CPU_HAS_ROR are currently used. + (mips_ip): New variable "lastpos", and implement "+A", "+B", + and "+C" operands for MIPS32 Release 2 ins/ext instructions. + Implement "K" operand for MIPS32 Release 2 rdhwr instruction. + (validate_mips_insn): Implement "+" as a way to extend the + allowed operands, and implement "K", "+A", "+B", and "+C" + operands. + (OPTION_MIPS32R2): New define. + (md_longopts): Add entry for OPTION_MIPS32R2. + (OPTION_ELF_BASE): Adjust to accomodate OPTIONS_MIPS32R2. + (md_parse_option): Handle OPTION_MIPS32R2. + (s_mipsset): Reimplement handling of ".set mipsN" options + and add support for ".set mips32r2". + (mips_cpu_info_table): Add entry for "mips32r2" (MIPS32 Release 2). + (md_show_usage): Document "-mips32r2" option. + * doc/as.texinfo: Document "-mips32r2" option. + * doc/c-mips.texi: Likewise. + +2002-12-30 Dmitry Diky + + * configure.in: Add msp430 target. + * configure: Regenerate. + * Makefile.am: Add msp430 target. + * Makefile.in: Regenerate. + * config/tc-msp430.c: New file: msp430 assembler. + * config/tc-msp430.h: New file: target macros for msp430. + * doc/Makefile.am: Add msp430 target. + * doc/Makefile.in: Regenerate. + * doc/as.texinfo: Include msp430 documenation. + * doc/all.texi: Enable msp430 documentation. + * doc/c-msp430.texi: New file: document msp430 specific features + of the assembler. + +2002-12-25 Alexandre Oliva + + * dwarf2dbg.c (DWARF2_ADDR_SIZE): New macro. + (dwarf2_finish): Use it. + * doc/internals.texi (DWARF2_ADDR_SIZE): Document it. + * config/tc-mips.h (DWARF2_ADDR_SIZE): Override. + +2002-12-20 DJ Delorie + + * config/tc-xstormy16.c (md_cgen_lookup_reloc): Support + BFD_RELOC_XSTORMY16_12. + +2002-12-19 Alan Modra + + * doc/as.texinfo (Invoking): Typo fix. + * config/tc-tic54x.c (encode_operand): Comment typo fix. + +2002-12-18 Kazu Hirata + + * doc/c-alpha.texi: Fix typos. + * doc/c-arm.texi: Likewise. + * doc/c-d10v.texi: Likewise. + * doc/c-i370.texi: Likewise. + * doc/c-i960.texi: Likewise. + * doc/c-ia64.texi: Likewise. + * doc/c-mmix.texi: Likewise. + * doc/c-ns32k.texi: Likewise. + * doc/c-pdp11.texi: Likewise. + * doc/c-pj.texi: Likewise. + * doc/c-sh64.texi: Likewise. + * doc/c-sparc.texi: Likewise. + * doc/c-tic54x.texi: Likewise. + * doc/c-v850.texi: Likewise. + * doc/c-vax.texi: Likewise. + * doc/internals.texi: Likewise. + +2002-12-18 Chris Demetriou + + * config/tc-mips.c (macro): In M_DROL, M_DROR, M_ROL, and M_ROR, + use hardware rotate ops as appropriate. In M_DROL_I, M_DROR_I, + M_ROL_I, and M_ROR_I, simplify code, clean up warnings, and + arrange not to issue warnings about use of AT when AT is not + actually used. + +2002-12-17 Nick Clifton + + * as.c (std_longopts): Duplicate --keep-locals entry in order to + prevent it being confused with -k. + +2002-12-16 Andrew MacLeod + + * config/tc-xstormy16.c (md_cgen_lookup_reloc): If a relocation + has already been set up, use it. + +2002-12-16 Kazu Hirata + + * ChangeLog-9295: Fix a typo. + * README: Likewise. + * config/tc-d10v.c: Fix a comment typo. + * config/tc-dlx.c: Likewise. + * config/tc-h8300.h: Likewise. + * config/tc-h8500.h: Likewise. + * config/tc-mips.c: Likewise. + * config/tc-s390.c: Likewise. + * config/tc-sh.h: Likewise. + * config/tc-tic80.h: Likewise. + * config/tc-w65.h: Likewise. + * config/tc-z8k.c: Likewise. + * config/tc-z8k.h: Likewise. + * testsuite/gas/h8300/cmpsi2.s: Likewise. + +2002-12-16 Alan Modra + + * config/tc-d30v.c (check_range): Warning fixes, formatting. + Simplify sign extension. Remove redundant unsigned < 0 test. + * config/tc-i960.c (md_ri_to_chars): Prototype. + * config/tc-mcore.c (md_pseudo_table): Fix typo. + (dump_literals): Init brarsym, and test later instead of isforce. + + * config/tc-ns32k.c (encode_operand): Constify operandsP and suffixP. + (parse): Constify line and lineptr. + (md_begin): Calculate endop here. + +2002-12-13 Alan Modra + + * config/obj-vms.c: Formatting. Include fnctl.h. + (Create_VMS_Object_File): Fix creat call for sane unix systems. + (Object_Record_Offset): Make it a size_t. + (Flush_VMS_Object_Record_Buffer): Fix signed/unsigned warning. + (VMS_TBT_Routine_End ): Make var unsigned long. + (VMS_Fix_Indirect_Reference ): Make arg addressT. + (synthesize_data_segment ): Remove ATTRIBUTE_UNUSED. + (vms_fixup_data_section ): Add here instead. + * config/e-criself.c: Fix typo in last change. + +2002-12-13 Alan Modra + + * write.c (write_object_file): Fix signed/unsigned warning. + * config/e-crisaout.c (crisaout_bfd_name): Prototype. + * config/e-criself.c (criself_bfd_name): Prototype. + * config/obj-aout.c (s_sect): Remove unused function. + * config/obj-bout.c (obj_bout_line ): Add ATTRIBUTE_UNUSED. + * config/obj-coff.c (coff_last_bf): Don't declare for OBJ_XCOFF. + (fixup_mdeps ): Add ATTRIBUTE_UNUSED. + * config/obj-ecoff.c (ecoff_frob_file ): Likewise. + * config/obj-vms.c (setup_basic_type ): Likewise. + (VMS_RSYM_Parse ): Likewise. + (vms_fixup_text_section ): Likewise. + (synthesize_data_segment ): Likewise. + (vms_fixup_xtors_section ): Likewise. + (structure_count): Don't use implicit int type. + * config/tc-a29k.c (insert_sreg): Prototype. + (define_some_regs): Prototype, make static. + (parse_operand): Likewise. + (md_parse_option ): Add ATTRIBUTE_UNUSED. + (md_show_usage ): Likewise. + (md_section_align ): Likewise. + (md_convert_frag ): Likewise. + (md_estimate_size_before_relax ): Likewise. + (md_apply_fix3): Don't cast valP pointer type. Fix bogus >>='s. + * config/tc-arm.c (arm_validate_fix): Only for OBJ_COFF or OBJ_ELF. + * config/tc-d30v.c (md_parse_option ): Add ATTRIBUTE_UNUSED. + (md_undefined_symbol ): Likewise. + (md_convert_frag ): Likewise. + (write_long ): Likewise. + (tc_gen_reloc ): Likewise. + (md_estimate_size_before_relax ): Likewise. + (md_apply_fix3 ): Likewise. + (s_d30v_align ): Likewise. + (build_insn): Correct format string. + (md_apply_fix3): Likewise. + * config/tc-fr30.c (md_parse_option ): Add ATTRIBUTE_UNUSED. + (md_undefined_symbol ): Likewise. + (md_convert_frag ): Likewise. + (md_cgen_lookup_reloc ): Likewise. + (md_begin): Delete unused vars. + (md_assemble): Likewise. + (md_estimate_size_before_relax): Likewise. + (fr30_relax_frag): #if 0 out, seems unused. + (md_atof): Remove declaration of atof_ieee. + (restore_colon): Prototype. + * config/tc-frv.c (frv_insert_vliw_insn): Prototype. + (frv_find_in_vliw): Likewise. + (frv_debug_tomcat): Likewise. + (frv_adjust_vliw_count): Likewise. + (frv_tomcat_shuffle): Likewise. + (frv_tomcat_analyze_vliw_chains): Likewise. Correct args to + frv_find_in_vliw call. + (md_atof): Remove declaration of atof_ieee. + * config/tc-h8500.c (cons): Delete declaration. + (md_begin ): Constify. + (displacement_size, immediate_size, absolute_size): Remove. + (build_relaxable_instruction ): Add ATTRIBUTE_UNUSED. + (tc_crawl_symbol_chain ): Likewise. + (md_undefined_symbol ): Likewise. + (tc_headers_hook ): Likewise. + (md_parse_option ): Likewise. + (md_show_usage ): Likewise. + (md_convert_frag ): Likewise. + (tc_coff_symbol_emit_hook ): Likewise. + (md_atof): Remove declaration of atof_ieee. + (tc_aout_fix_to_chars): Remove unused function. + (parse_reg): Prototype. + (parse_exp): Prototype. + (skip_colonthing): Prototype. Use &&, not & in logical expressions. + (parse_reglist): Prototype. + (get_operand): Prototype. + (get_operands): Prototype. + (get_specific): Prototype. Make "this_index" signed. + (check): Prototype, make static. + (insert): Prototype + (build_relaxable_instruction): Prototype, make static. + (build_bytes): Prototype. + (wordify_scb): Prototype. + * config/tc-h8500.h (start_label): Declare. + (tc_coff_sizemachdep): Declare. + * config/tc-i370.c (i370_ebcdic ): Add ATTRIBUTE_UNUSED. + (i370_rmode ): Likewise. + (i370_csect ): Likewise. + (i370_dc ): Likewise. + (i370_ds ): Likewise. + (i370_elf_lcomm ): Likewise. + (i370_ltorg ): Likewise. + (i370_using ): Likewise. + (i370_drop ): Likewise. + (i370_byte ): Likewise. + (i370_tc ): Likewise. + (md_estimate_size_before_relax ): Likewise. + (md_convert_frag ): Likewise. + (md_undefined_symbol ): Likewise. + (md_pcrel_from_section ): Likewise. + (tc_gen_reloc ): Likewise. + (i370_section_letter): #if 0 unused functions. + (i370_section_word, i370_section_type, i370_section_flags): Likewise. + (symbol_locate): Prototype. + * config/tc-i860.c (md_atof): Remove declaration of atof_ieee. + (md_number_to_disp, md_number_to_field): Remove. + (md_apply_fix3): Correct format string and cast "fup". + * config/tc-i960.c (md_convert_frag): Add ATTRIBUTE_UNUSED to args. + (s_endian ): Likewise. + (md_undefined_symbol ): Likewise. + (tc_crawl_symbol_chain ): Likewise. + (tc_set_bal_of_call): Likewise. + (tc_coff_symbol_emit_hook ): Likewise. + (i960_handle_align ): Likewise. + (i960_validate_fix ): Likewise + (tc_gen_reloc
): Likewise. + (tc_coff_symbol_emit_hook): Only define for OBJ_COFF. + (struct memS, struct regop): Forward declare. + (brcnt_emit, brlab_next, cobr_fmt, ctrl_fmt, emit, get_args, + get_cdisp, get_ispec, get_regnum, i_scan, mem_fmt, mema_to_memb, + parse_expr, parse_ldconst, parse_memop, parse_po, parse_regop, + reg_fmt, relax_cobr, s_leafproc, s_sysproc, shift_ok, syntax, + targ_has_sfr, targ_has_iclass, tc_bfd_fix2rtype): Prototype. + (md_chars_to_number, md_number_to_imm): Make static, prototype. + (md_number_to_field): Likewise. + (md_number_to_disp): Remove unused function. + (md_atof): Remove declaration of atof_ieee. + (md_apply_fix3): Correct md_number_to_imm call. + * config/tc-ip2k.c (md_assemble): Warning fix. + * config/tc-m32r.c (md_parse_option ): Add ATTRIBUTE_UNUSED. + (fill_insn ): Likewise. + (debug_sym ): Likewise. + (md_undefined_symbol ): Likewise. + (m32r_scomm ): Likewise. + (md_convert_frag ): Likewise. + (md_cgen_lookup_reloc ): Likewise. + (m32r_record_hi16 ): Likewise. + (md_estimate_size_before_relax): #if 0 old_fr_fix. + (allow_m32rx): Prototype. + (first_writes_to_seconds_operands): Prototype. + (writes_to_pc): Prototype. + (can_make_parallel): Prototype. + (make_parallel): Prototype. + (target_make_parallel): Prototype. + (assemble_two_insns): Prototype. + (m32r_record_hi16): Prototype. + (md_atof): Remove declaration of atof_ieee. + * config/tc-m32r.h (m32r_fix_adjustable): Declare. + (m32r_force_relocation): Prototype. + (m32r_elf_section_change_hook): Prototype. + * config/tc-m68k.c (tc_gen_reloc
): Add ATTRIBUTE_UNUSED. + (md_show_usage): Fix signed/unsigned warning. + * config/tc-m88k.c (get_reg): Make reg_prefix param unsigned. + (calcop): Ditto for reg_prefix var. + (hexval): Add cast to fix signed/unsigned warning. + (md_number_to_disp): Delete unused function. + (md_number_to_field): Likewise. + (float_cons, cons, s_globl, s_space, s_set, s_lcomm): Remove decl. + (match_name): Prototype. + (get_bf2): Prototype. + (get_bf_offset_expression): Prototype. + * config/tc-mcore.c (mcore_s_literals ): Add ATTRIBUTE_UNUSED. + (md_undefined_symbol ): Likewise. + (md_create_short_jump ): Likewise. + (md_create_long_jump ): Likewise. + (md_convert_frag ): Likewise. + (md_apply_fix3 ): Likewise. + (md_section_align ): Likewise. + (md_pcrel_from_section ): Likewise. + (tc_gen_reloc
): Likewise. + (reg_m, reg_n, immediate): Delete unused vars. + (dump_literals): Fix signed/unsigned warning. + (enter_literal): Likewise. + (parse_imm): Likewise. Also fix format string. + (parse_mem): Remove unused var. + (md_assemble ): Abort on unexpected inst. + (md_atof): Remove declaration of atof_ieee. + (md_parse_option): Remove unused vars. + (md_apply_fix3): Fix format strings, cast args. + (tc_gen_reloc): Delete unused var. + * config/tc-mcore.h (tc_coff_sizemachdep): Declare. + * config/tc-mn10200.c (md_parse_option ): Add ATTRIBUTE_UNUSED. + (md_undefined_symbol ): Likewise. + (md_convert_frag ): Likewise. + (tc_gen_reloc ): Likewise. + (check_operand ): Likewise. + (md_convert_frag): Fix format strings. + (tc_gen_reloc): Delete fx_addsy - fx_subsy code. + * config/tc-openrisc.c (ignore_pseudo): Prototype. + (md_atof): Remove declaration of atof_ieee. + * config/tc-or32.c (parse_operand): Prototype non-BFD too. + (md_apply_fix3): Fix bogus >>='s. + (md_undefined_symbol): Delete unused var. + * config/tc-pj.c (little, big, parse_exp_save_ilp): Prototype. + (c_to_r, ipush_code, fake_opcode, alias): Likewise. + (fake_opcode): Adjust for pj_opc_int_t change. + (md_begin): Likewise. + (md_assemble): Likewise. + (ipush_code): Correct parse_exp_save_ilp call. Test pending_reloc + instead of non-existent third arg of parse_exp_save_ilp. + (md_parse_option): Correct "little" and "big" calls. + * config/tc-sparc.c (s_register): Only declare #ifdef OBJ_ELF. + (md_apply_fix3 ): Add ATTRIBUTE_UNUSED. + (tc_gen_reloc
): Likewise. + * config/tc-tic30.c: #include stdarg.h or varargs.h. + (debug): Rewrite using VA_* macros. + (md_estimate_size_before_relax): Add ATTRIBUTE_UNUSED to args. + (md_convert_frag): Likewise. + (md_parse_option): Likewise. + (md_show_usage): Likewise. + (md_undefined_symbol): Likewise. + (tc_gen_reloc): Likewise. + (md_operand): Likewise. + (tc_aout_pre_write_hook): Delete. + (struct tic30_insn): Make "operands" unsigned. + (struct tic30_par_insn): Likewise. + (md_assemble): Likewise for "count", "i" and "numops". + (tic30_parallel_insn): Likewise for vars here. + (tic30_operand): Likewise. Remove useless unsigned >= 0 comparison. + * config/tc-tic30.h (tc_aout_pre_write_hook): Define as empty. + * config/tc-tic80.c (obj_coff_section): Delete declaration. + (md_estimate_size_before_relax): Add ATTRIBUTE_UNUSED on args. + (md_undefined_symbol): Likewise. + (md_parse_option): Likewise. + (md_convert_frag): Likewise. + (tc_coff_symbol_emit_hook): Likewise. + (md_atof): Remove declaration of atof_ieee. + (const_overflow): Warning fixes, tidy. + (get_operands): Delete unused vars. + (internal_error_a): Adjust format string to expect a long for arg. + (find_opcode): Warning fixes, simplify. + (build_insn): Cast internal_error_a arg. + (md_begin): Likewise. + (md_apply_fix3): Likewise. + (md_assemble): Delete unused var. + * config/tc-tic80.h (tc_coff_fix2rtype): Prototype. + * config/tc-z8k.c (cons, obj_coff_section): Delete declarations. + (whatreg, parse_reg, parse_exp): Make static, prototype. + (checkfor, regword, regaddr, get_ctrl_operand): Prototype. + (get_flags_operand, get_interrupt_operand, get_cc_operand): Likewise. + (get_operand, get_operands, get_specific, newfix): Likewise. + (apply_fix, build_bytes): Likewise. + (md_atof): Remove declaration of atof_ieee. + (tc_aout_fix_to_chars): Delete. + (md_begin): Constify "opcode". Don't try to init opcode->idx. + Fix s_unseg call. + (md_parse_option): Fix s_segm and s_unseg calls. + +2002-12-12 Alexandre Oliva + + * tc-mips.c (RELAX_BRANCH_ENCODE): Remove reloc_s2 argument. + Adjust callers. + (RELAX_BRANCH_RELOC_S2): Delete. + (append_insn): Use only BFD_RELOC_16_PCREL_S2 for branches. + Do not handle BFD_RELOC_16_PCREL. + (macro_build, mips_ip): Likewise. + (md_pcrel_from): Return 4 for undefined symbols regardless of + mips_pic. + (md_apply_fix3): Use only BFD_RELOC_16_PCREL_S2 for branches. + Don't dereference howto if no such relocation is available. + Do not apply hack for in-place zero addend in NEWABI. + (md_convert_frag): Use only BFD_RELOC_16_PCREL_S2 for branches. + +2002-12-12 Alexandre Oliva , + Alan Modra + + * config/tc-mn10300.h (TC_VALIDATE_FIX_SUB): Define. + (TC_LINKRELAX_FIXUP): Add comments. + +2002-12-12 Alexandre Oliva + + * config/tc-mn10300.c (set_arch_mach): Change argument type to + avoid warnings. + (r_register_name, xr_register_name): Add prototype declarations. + +2002-12-08 H.J. Lu + + * config/tc-ia64.c (md_apply_fix3): Remove the PCREL hack + copied from tc-i386.c. + +2002-12-08 Stephane Carrez + + Fix Bug savannah/1825: + * config/tc-m68hc11.c (STATE_INDEXED_PCREL): New relax code. + (md_relax_table): Define specific relax for PC-rel offsets. + (build_indexed_byte): Use a STATE_INDEXED_PCREL relax code. + (m68hc11_relax_frag): Handle the new relax code. + (md_convert_frag): Likewise. + (md_estimate_size_before_relax): Likewise. + +2002-12-08 Alan Modra + + * subsegs.c (section_symbol): Use the symbol, not the section, name. + +2002-12-05 Richard Henderson + + * config/ia64.c (enum reloc_func): Add FUNC_LT_RELATIVE_X. + (ia64_gen_real_reloc_type): Handle it. + (pseudo_func): Add @ltoffx. + (md_begin): Build .. + (ia64_force_relocation): True for LTOFF22X and LDXMOV. + +2002-12-05 Alan Modra + + * config/tc-arm.c (arm_force_relocation): Move out of #if OBJ_ELF. + Move OBJ_COFF TC_FORCE_RELOCATION code here so that COFF handles + ARM_IMMEDIATE and ARM_ADRL_IMMEDIATE relocs as for ELF. + * config/tc-arm.h (TC_FORCE_RELOCATION): Define for both ELF and + COFF to call arm_force_relocation. + +2002-12-04 David Mosberger + + * config/tc-ia64.c (pseudo_func): Add "@pause" constant for "hint" + instruction. + (emit_one_bundle): Handle "hint" instruction. + (operand_match): Match IA64_OPND_AR_CSD. + +2002-12-04 Alan Modra + + * dwarf2dbg.c (scale_addr_delta): Correct parameter. Move prototype + inside #if. + +2002-12-03 Nick Clifton + + * config/tc-ppc.c (ppc_cleanup): Do not set SEC_MERGE flag on + .PPC.EMB.apuinfo sections. + +2002-12-03 Richard Henderson + + * config/tc-ia64.c (operand_match): Add IA64_OPND_LDXMOV case. + +2002-12-03 Alan Modra + + * config/tc-w65.c (s_longa): Prototype. Make static, specify int arg. + (cons, s_align_bytes): Delete declaration. + (relax): Delete. + (md_begin): Constify "struct opinfo *" var. Don't try to make "name" + strings common. + (dot): Delete unused function. + (w65_expression): Remove unused arg. + (parse_exp): Prototype. Remove unused arg. Adjust w65_expression + call. + (get_operands): Prototype. Constify "struct opinfo *" arg. Fix + parse_exp call. + (get_specific): Prototype. Constify "struct opinfo *" arg and return + value. + (check): Remove unused function. + (build_Mytes): Prototype. Constify "struct opinfo *" arg. Abort + on unhandled switch case. + (md_assemble): Remove unused op_start, op_end, nlen, p vars. Constify + "opcode". + (tc_crawl_symbol_chain): Delete unused function. + (tc_headers_hook): Likewise. + (tc_Nout_fix_to_chars): Likewise. + (md_undefined_symbol): Add ATTRIBUTE_UNUSED. + (md_parse_option): Likewise. + (md_convert_frag): Likewise. + (tc_coff_symbol_emit_hook): Likewise. + (md_show_usage): Likewise. + * config/tc-w65.h (tc_coff_sizemachdep): Declare. + (TC_PARSE_CONS_EXPRESSION): w65_expression takes one arg. + (w65_expression): Declare. + + * po/POTFILES.in: Regenerate. + + * config/tc-arm.c (arm_force_relocation): Return 0 for ARM_IMMEDIATE + and ARM_ADRL_IMMEDIATE. + +2002-12-02 Nick Clifton + + * gasp.c: Delete. It has been deprecated. + * NEWS: Mention that gasp has been removed. + * Makefile.am: Remove references to gasp. + * makefile.vms: Likewise. + * mpw-make.sed: Likewise. + * Makeile.in: Regenerate. + * doc/gasp.texi: Delete. + * doc/Makefile.am: Remove references to gasp.texi. + * doc/Makefile.in: Regenerate. + * macro.c: Delete references to gasp. + Remove use of comment_char function parameter as it is no longer + needed. + * macro.h: Update prototypes to remove comment_char parameter. + Fix formatting. + * read.c (read_a_source_file, s_irp): Remove comment_char + parameter from invocation of functions in macro.c + +2002-12-02 Hans-Peter Nilsson + + * read.c (emit_expr) [!WORKING_DOT_WORD]: Initialize x->use_jump. + +2002-12-01 Stephane Carrez + + * config/tc-m68hc11.c (md_begin): Fix qsort warning. + (tc_gen_reloc): Mark section param as not used. + +2002-12-01 Stephane Carrez + + Fix Bug savannah/1825: + * config/tc-m68hc11.h (md_relax_frag): Define to support relaxations + that are not pc-relative. + (m68hc11_relax_frag): Declare. + + * config/tc-m68hc11.c (build_indexed_byte): Use a frag_var to handle + the offsetable indexed addressing modes (n,r). + (build_insn): Cleanup some locals. + (m68hc11_relax_frag): New function imported from tc-cris.c to handle + relaxation of difference between two symbols of same section. + (md_convert_frag): For INDEXED_OFFSET relaxs, use the displacement + only when this is a PC-relative operand and the offset is not absolute. + (md_estimate_size_before_relax): Convert the INDEXED_OFFSET,UNDEF frag + to INDEXED_OFFSET,STATE_BITS5 when the symbol is absolute; this will + be handled by m68hc11_relax_frag. + +2002-12-01 Stephane Carrez + + * config/tc-m68hc11.c (elf_flags): Set default ABI to gcc default + (32-bit int, 64-bit double). + (md_longopts): New options -mshort, -mlong, -mshort-double and + -mlong-double to control the ABI. + (md_show_usage): Update. + (md_parse_option): Handle new options. + * doc/as.texinfo (Overview): Document new options for HC11/HC12. + +2002-12-01 Nathan Sidwell + + * symbols.c (report_op_error): New function, broken out of ... + (resolve_symbol_value): ... here. Use for both monadic and dyadic + operators. + +2002-11-30 Kaz Kojima + + * config/tc-sh.c (md_apply_fix3): Take account of fx_offset + for BFD_RELOC_32_PLT_PCREL. + +2002-11-30 Alan Modra + + * dwarf2dbg.c, write.c, config/obj-aout.c, config/obj-coff.c, + config/obj-ecoff.c, config/obj-elf.c, config/obj-som.c, + config/tc-arm.c, config/tc-arm.h, config/tc-avr.c, config/tc-cris.c, + config/tc-d10v.c, config/tc-d10v.h, config/tc-d30v.c, config/tc-d30v.h, + config/tc-dlx.c, config/tc-dlx.h, config/tc-fr30.c, config/tc-fr30.h, + config/tc-frv.c, config/tc-frv.h, config/tc-hppa.c, config/tc-i370.c, + config/tc-i386.c, config/tc-i386.h, config/tc-m32r.c, + config/tc-m68hc11.c, config/tc-mcore.c, config/tc-mcore.h, + config/tc-mips.c, config/tc-mips.h, config/tc-mn10200.c, + config/tc-mn10300.c, config/tc-mn10300.h, config/tc-openrisc.c, + config/tc-openrisc.h, config/tc-ppc.c, config/tc-s390.c, + config/tc-sh.c, config/tc-sh.h, config/tc-sh64.c, config/tc-tic54x.c, + config/tc-v850.c, config/tc-v850.h, config/tc-xstormy16.c, + config/tc-xstormy16.h: Replace boolean with bfd_boolean, true with + TRUE, false with FALSE. Simplify comparisons of bfd_boolean vars with + TRUE/FALSE. Formatting. + +2002-11-29 Nick Clifton + + * config/tc-arm.c (do_t_bkpt): If no operand is specified, + assume a value of zero. + (do_bkpt): Likewise. + +2002-11-29 Kaz Kojima + + * config/tc-sh.c (md_apply_fix3): Call S_SET_THREAD_LOCAL + for TLS relocations. + +2002-11-29 Jakub Jelinek + + * config/tc-ia64.c (md_apply_fix3): Add default case. + +2002-11-28 Jakub Jelinek + + * symbols.c (S_SET_THREAD_LOCAL): New function. + * symbols.h (S_SET_THREAD_LOCAL): New prototype. + * config/tc-i386.c (md_apply_fix3): Call S_SET_THREAD_LOCAL + for TLS relocations. + * config/tc-ia64.c (md_apply_fix3): Likewise. + * config/tc-alpha.c (md_apply_fix3): Likewise. + +2002-11-28 Jakub Jelinek + + * write.c (subsegs_finish): For SEC_MERGE sections pad last fragment + to entsize. + +2002-11-26 DJ Delorie * config/tc-cris.c (cris_relax_frag): Fix typo in comment. diff -uprN binutils-2.13.90.0.16/gas/ChangeLog-9295 binutils-2.13.90.0.18/gas/ChangeLog-9295 --- binutils-2.13.90.0.16/gas/ChangeLog-9295 Fri Mar 9 11:16:29 2001 +++ binutils-2.13.90.0.18/gas/ChangeLog-9295 Tue Jan 21 10:21:32 2003 @@ -10401,7 +10401,7 @@ Thu Jul 8 14:15:05 1993 Ken Raeburn ( Thu Jul 8 07:25:25 1993 Doug Evans (dje@canuck.cygnus.com) - * config/tc-h8300.h (TC_CONS_RELOC): Use R_RELLONG if h8/300h. + * config/tc-h8300.h (TC_CONS_RELOC): Use R_RELLONG if H8/300H. Wed Jul 7 18:11:07 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com) diff -uprN binutils-2.13.90.0.16/gas/Makefile.am binutils-2.13.90.0.18/gas/Makefile.am --- binutils-2.13.90.0.16/gas/Makefile.am Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gas/Makefile.am Tue Jan 21 10:21:32 2003 @@ -66,6 +66,7 @@ CPU_TYPES = \ mmix \ mn10200 \ mn10300 \ + msp430 \ ns32k \ openrisc \ or32 \ @@ -196,7 +197,7 @@ GAS_CFILES = \ symbols.c \ write.c -CFILES = $(GAS_CFILES) gasp.c itbl-ops.c +CFILES = $(GAS_CFILES) itbl-ops.c HFILES = \ as.h \ @@ -258,6 +259,7 @@ TARGET_CPU_CFILES = \ config/tc-mmix.c \ config/tc-mn10200.c \ config/tc-mn10300.c \ + config/tc-msp430.c \ config/tc-ns32k.c \ config/tc-openrisc.c \ config/tc-or32.c \ @@ -308,6 +310,7 @@ TARGET_CPU_HFILES = \ config/tc-mmix.h \ config/tc-mn10200.h \ config/tc-mn10300.h \ + config/tc-msp430.h \ config/tc-ns32k.h \ config/tc-openrisc.h \ config/tc-or32.h \ @@ -447,8 +450,8 @@ po/POTFILES.in: @MAINT@ Makefile for file in $(POTFILES); do echo $$file; done | sort > tmp \ && mv tmp $(srcdir)/po/POTFILES.in -# Note: GASP is now deprecated and will be removed at some point in the future. -# Anything that GASP could do can now be done by GAS. +# Note: GASP is now deprecated and has been removed. It is still +# available in the CVS archive or older binutils releases if it is needed. noinst_PROGRAMS = as-new noinst_SCRIPTS = $(GDBINIT) EXTRA_SCRIPTS = .gdbinit @@ -512,10 +515,6 @@ $(OBJS): $(INCDIR)/bin-bugs.h $(INCDIR)/ as.h asintl.h bignum.h bit_fix.h config.h emul.h expr.h flonum.h \ frags.h hash.h listing.h obj.h read.h symbols.h tc.h write.h -gasp_new_SOURCES = gasp.c macro.c sb.c hash.c -gasp_new_LDADD = ../libiberty/libiberty.a $(INTLLIBS) -gasp_new_DEPENDENCIES = ../libiberty/libiberty.a $(INTLDEPS) - EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \ echo $${rootme}/../expect/expect ; \ else echo expect ; fi` @@ -648,7 +647,7 @@ itbl-parse.c itbl-parse.h: $(srcdir)/itb # stand-alone itbl assembler & disassembler -EXTRA_PROGRAMS = gasp-new itbl-test +EXTRA_PROGRAMS = itbl-test itbl_test_SOURCES = itbl-parse.y itbl-lex.l itbl_test_LDADD = itbl-tops.o itbl-test.o $(GASLIBS) @LEXLIB@ @@ -1302,6 +1301,15 @@ DEPTC_mn10300_elf = $(INCDIR)/symcat.h $ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-mn10300.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ $(INCDIR)/opcode/mn10300.h dwarf2dbg.h +DEPTC_msp430_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-msp430.h $(INCDIR)/coff/internal.h \ + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h subsegs.h $(INCDIR)/obstack.h \ + $(INCDIR)/opcode/msp430.h $(INCDIR)/safe-ctype.h +DEPTC_msp430_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-msp430.h \ + subsegs.h $(INCDIR)/obstack.h $(INCDIR)/opcode/msp430.h \ + $(INCDIR)/safe-ctype.h DEPTC_ns32k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-ns32k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/opcode/ns32k.h $(INCDIR)/obstack.h @@ -1430,6 +1438,15 @@ DEPTC_tic30_elf = $(INCDIR)/symcat.h $(s $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic30.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/opcode/tic30.h +DEPTC_tic4x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-tic4x.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/tic4x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/opcode/tic4x.h subsegs.h \ + $(INCDIR)/obstack.h +DEPTC_tic4x_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic4x.h \ + $(INCDIR)/opcode/tic4x.h subsegs.h $(INCDIR)/obstack.h DEPTC_tic54x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-tic54x.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ @@ -1806,6 +1823,15 @@ DEPOBJ_mn10300_elf = $(INCDIR)/symcat.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-mn10300.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ struc-symbol.h $(INCDIR)/aout/aout64.h +DEPOBJ_msp430_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-msp430.h $(INCDIR)/coff/internal.h \ + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h \ + subsegs.h +DEPOBJ_msp430_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-msp430.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h DEPOBJ_ns32k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-ns32k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h @@ -1927,6 +1953,15 @@ DEPOBJ_tic30_elf = $(INCDIR)/symcat.h $( $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic30.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ struc-symbol.h $(INCDIR)/aout/aout64.h +DEPOBJ_tic4x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-tic4x.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/tic4x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h subsegs.h +DEPOBJ_tic4x_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic4x.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h DEPOBJ_tic54x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-tic54x.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ @@ -2194,6 +2229,12 @@ DEP_mn10300_coff = $(srcdir)/config/obj- DEP_mn10300_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-mn10300.h +DEP_msp430_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-msp430.h \ + $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h +DEP_msp430_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-msp430.h DEP_ns32k_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-ns32k.h \ $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h DEP_ns32k_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-ns32k.h \ @@ -2274,6 +2315,12 @@ DEP_tic30_coff = $(srcdir)/config/obj-co DEP_tic30_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic30.h +DEP_tic4x_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-tic4x.h \ + $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/tic4x.h \ + $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h +DEP_tic4x_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic4x.h DEP_tic54x_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-tic54x.h \ $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/tic54x.h \ $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h @@ -2369,8 +2416,6 @@ symbols.o: symbols.c $(INCDIR)/symcat.h $(INCDIR)/obstack.h subsegs.h struc-symbol.h write.o: write.c $(INCDIR)/symcat.h subsegs.h $(INCDIR)/obstack.h \ output-file.h dwarf2dbg.h -gasp.o: gasp.c $(INCDIR)/getopt.h $(INCDIR)/safe-ctype.h \ - sb.h macro.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h itbl-ops.o: itbl-ops.c itbl-ops.h $(INCDIR)/symcat.h e-crisaout.o: $(srcdir)/config/e-crisaout.c $(INCDIR)/symcat.h \ emul-target.h diff -uprN binutils-2.13.90.0.16/gas/Makefile.in binutils-2.13.90.0.18/gas/Makefile.in --- binutils-2.13.90.0.16/gas/Makefile.in Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gas/Makefile.in Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4 from Makefile.am +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am -# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -177,6 +177,7 @@ CPU_TYPES = \ mmix \ mn10200 \ mn10300 \ + msp430 \ ns32k \ openrisc \ or32 \ @@ -312,7 +313,7 @@ GAS_CFILES = \ write.c -CFILES = $(GAS_CFILES) gasp.c itbl-ops.c +CFILES = $(GAS_CFILES) itbl-ops.c HFILES = \ as.h \ @@ -375,6 +376,7 @@ TARGET_CPU_CFILES = \ config/tc-mmix.c \ config/tc-mn10200.c \ config/tc-mn10300.c \ + config/tc-msp430.c \ config/tc-ns32k.c \ config/tc-openrisc.c \ config/tc-or32.c \ @@ -426,6 +428,7 @@ TARGET_CPU_HFILES = \ config/tc-mmix.h \ config/tc-mn10200.h \ config/tc-mn10300.h \ + config/tc-msp430.h \ config/tc-ns32k.h \ config/tc-openrisc.h \ config/tc-or32.h \ @@ -570,8 +573,8 @@ POTFILES = $(MULTI_CFILES) $(TARGET_ENV_ $(HFILES) $(CFILES) $(GAS_CFILES) -# Note: GASP is now deprecated and will be removed at some point in the future. -# Anything that GASP could do can now be done by GAS. +# Note: GASP is now deprecated and has been removed. It is still +# available in the CVS archive or older binutils releases if it is needed. noinst_PROGRAMS = as-new noinst_SCRIPTS = $(GDBINIT) EXTRA_SCRIPTS = .gdbinit @@ -621,10 +624,6 @@ as_new_DEPENDENCIES = $(TARG_CPU_O) $(OB $(extra_objects) $(GASLIBS) $(INTLDEPS) -gasp_new_SOURCES = gasp.c macro.c sb.c hash.c -gasp_new_LDADD = ../libiberty/libiberty.a $(INTLLIBS) -gasp_new_DEPENDENCIES = ../libiberty/libiberty.a $(INTLDEPS) - EXPECT = `if [ -f $${rootme}/../expect/expect ] ; then \ echo $${rootme}/../expect/expect ; \ else echo expect ; fi` @@ -642,7 +641,7 @@ EXTRA_as_new_SOURCES = config/m68k-parse # stand-alone itbl assembler & disassembler -EXTRA_PROGRAMS = gasp-new itbl-test +EXTRA_PROGRAMS = itbl-test itbl_test_SOURCES = itbl-parse.y itbl-lex.l itbl_test_LDADD = itbl-tops.o itbl-test.o $(GASLIBS) @LEXLIB@ @@ -1072,6 +1071,17 @@ DEPTC_mn10300_elf = $(INCDIR)/symcat.h $ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ $(INCDIR)/opcode/mn10300.h dwarf2dbg.h +DEPTC_msp430_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-msp430.h $(INCDIR)/coff/internal.h \ + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h subsegs.h $(INCDIR)/obstack.h \ + $(INCDIR)/opcode/msp430.h $(INCDIR)/safe-ctype.h + +DEPTC_msp430_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-msp430.h \ + subsegs.h $(INCDIR)/obstack.h $(INCDIR)/opcode/msp430.h \ + $(INCDIR)/safe-ctype.h + DEPTC_ns32k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-ns32k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/opcode/ns32k.h $(INCDIR)/obstack.h @@ -1228,6 +1238,17 @@ DEPTC_tic30_elf = $(INCDIR)/symcat.h $(s $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic30.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/opcode/tic30.h +DEPTC_tic4x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-tic4x.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/tic4x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/opcode/tic4x.h subsegs.h \ + $(INCDIR)/obstack.h + +DEPTC_tic4x_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic4x.h \ + $(INCDIR)/opcode/tic4x.h subsegs.h $(INCDIR)/obstack.h + DEPTC_tic54x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-tic54x.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ @@ -1689,6 +1710,17 @@ DEPOBJ_mn10300_elf = $(INCDIR)/symcat.h $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ struc-symbol.h $(INCDIR)/aout/aout64.h +DEPOBJ_msp430_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-msp430.h $(INCDIR)/coff/internal.h \ + $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h \ + subsegs.h + +DEPOBJ_msp430_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-msp430.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h + DEPOBJ_ns32k_aout = $(INCDIR)/symcat.h $(srcdir)/config/obj-aout.h \ $(srcdir)/config/tc-ns32k.h $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h \ $(INCDIR)/aout/aout64.h $(INCDIR)/obstack.h @@ -1838,6 +1870,17 @@ DEPOBJ_tic30_elf = $(INCDIR)/symcat.h $( $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ struc-symbol.h $(INCDIR)/aout/aout64.h +DEPOBJ_tic4x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ + $(srcdir)/config/tc-tic4x.h $(INCDIR)/coff/internal.h \ + $(INCDIR)/coff/tic4x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h subsegs.h + +DEPOBJ_tic4x_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic4x.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h + DEPOBJ_tic54x_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-tic54x.h $(INCDIR)/coff/internal.h \ $(INCDIR)/coff/tic54x.h $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h \ @@ -2188,6 +2231,14 @@ DEP_mn10300_elf = $(srcdir)/config/obj-e $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-mn10300.h +DEP_msp430_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-msp430.h \ + $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ + $(INCDIR)/bfdlink.h + +DEP_msp430_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-msp430.h + DEP_ns32k_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-ns32k.h \ $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h @@ -2296,6 +2347,14 @@ DEP_tic30_elf = $(srcdir)/config/obj-elf $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic30.h +DEP_tic4x_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-tic4x.h \ + $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/tic4x.h \ + $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h + +DEP_tic4x_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-tic4x.h + DEP_tic54x_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-tic54x.h \ $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/tic54x.h \ $(INCDIR)/coff/ti.h $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h @@ -2380,9 +2439,6 @@ DEFS = @DEFS@ -I. -I$(srcdir) -I. CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ -gasp_new_OBJECTS = gasp.$(OBJEXT) macro.$(OBJEXT) sb.$(OBJEXT) \ -hash.$(OBJEXT) -gasp_new_LDFLAGS = itbl_test_OBJECTS = itbl-parse.$(OBJEXT) itbl-lex.$(OBJEXT) itbl_test_DEPENDENCIES = itbl-tops.o itbl-test.o \ ../libiberty/libiberty.a @@ -2416,8 +2472,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $( TAR = tar GZIP_ENV = --best -SOURCES = $(gasp_new_SOURCES) $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) -OBJECTS = $(gasp_new_OBJECTS) $(itbl_test_OBJECTS) $(as_new_OBJECTS) +SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) +OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) all: all-redirect .SUFFIXES: @@ -2520,10 +2576,6 @@ distclean-libtool: maintainer-clean-libtool: -gasp-new$(EXEEXT): $(gasp_new_OBJECTS) $(gasp_new_DEPENDENCIES) - @rm -f gasp-new$(EXEEXT) - $(LINK) $(gasp_new_LDFLAGS) $(gasp_new_OBJECTS) $(gasp_new_LDADD) $(LIBS) - itbl-test$(EXEEXT): $(itbl_test_OBJECTS) $(itbl_test_DEPENDENCIES) @rm -f itbl-test$(EXEEXT) $(LINK) $(itbl_test_LDFLAGS) $(itbl_test_OBJECTS) $(itbl_test_LDADD) $(LIBS) @@ -2575,7 +2627,7 @@ maintainer-clean-recursive: dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ - test "$$subdir" = "." && dot_seen=yes; \ + test "$$subdir" != "." || dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ @@ -2754,7 +2806,7 @@ distclean-generic: -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: - -test -z "itbl-lexlconfig/m68k-parsehconfig/m68k-parsecitbl-parsehitbl-parsec" || rm -f itbl-lexl config/m68k-parseh config/m68k-parsec itbl-parseh itbl-parsec + -test -z "itbl-lex.cconfig/m68k-parse.hconfig/m68k-parse.citbl-parse.hitbl-parse.c" || rm -f itbl-lex.c config/m68k-parse.h config/m68k-parse.c itbl-parse.h itbl-parse.c mostlyclean-am: mostlyclean-hdr mostlyclean-noinstPROGRAMS \ mostlyclean-compile mostlyclean-libtool \ mostlyclean-tags mostlyclean-generic @@ -3274,8 +3326,6 @@ symbols.o: symbols.c $(INCDIR)/symcat.h $(INCDIR)/obstack.h subsegs.h struc-symbol.h write.o: write.c $(INCDIR)/symcat.h subsegs.h $(INCDIR)/obstack.h \ output-file.h dwarf2dbg.h -gasp.o: gasp.c $(INCDIR)/getopt.h $(INCDIR)/safe-ctype.h \ - sb.h macro.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h itbl-ops.o: itbl-ops.c itbl-ops.h $(INCDIR)/symcat.h e-crisaout.o: $(srcdir)/config/e-crisaout.c $(INCDIR)/symcat.h \ emul-target.h diff -uprN binutils-2.13.90.0.16/gas/NEWS binutils-2.13.90.0.18/gas/NEWS --- binutils-2.13.90.0.16/gas/NEWS Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/NEWS Mon Dec 16 12:22:52 2002 @@ -1,5 +1,7 @@ -*- text -*- +* GASP has now been removed. + * Support for Texas Instruments TMS320C4x and TMS320C3x series of DSP's contributed by Michael Hayes and Svein E. Seldal. diff -uprN binutils-2.13.90.0.16/gas/README binutils-2.13.90.0.18/gas/README --- binutils-2.13.90.0.16/gas/README Thu Jul 26 18:02:55 2001 +++ binutils-2.13.90.0.18/gas/README Tue Jan 21 10:21:32 2003 @@ -180,7 +180,7 @@ most of the above hosts, plus decstation-bsd (a.out format, to be used in BSD 4.4) ebmon29k go32 (DOS on i386, with DJGPP -- old a.out version) - h8/300, h8/500 (Hitachi) + H8/300, H8/500 (Hitachi) i386-aix (ps/2) i960-coff mips ecoff (decstation-ultrix, iris, mips magnum, mips-idt-ecoff) diff -uprN binutils-2.13.90.0.16/gas/as.c binutils-2.13.90.0.18/gas/as.c --- binutils-2.13.90.0.16/gas/as.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/gas/as.c Tue Jan 21 10:21:32 2003 @@ -378,6 +378,10 @@ parse_args (pargc, pargv) static const struct option std_longopts[] = { #define OPTION_HELP (OPTION_STD_BASE) {"help", no_argument, NULL, OPTION_HELP}, + /* getopt allows abbreviations, so we do this to stop it from + treating -k as an abbreviation for --keep-locals. Some + ports use -k to enable PIC assembly. */ + {"keep-locals", no_argument, NULL, 'L'}, {"keep-locals", no_argument, NULL, 'L'}, {"mri", no_argument, NULL, 'M'}, #define OPTION_NOCPP (OPTION_STD_BASE + 1) diff -uprN binutils-2.13.90.0.16/gas/config/e-crisaout.c binutils-2.13.90.0.18/gas/config/e-crisaout.c --- binutils-2.13.90.0.16/gas/config/e-crisaout.c Thu Jul 20 15:39:08 2000 +++ binutils-2.13.90.0.18/gas/config/e-crisaout.c Mon Dec 16 12:22:52 2002 @@ -1,6 +1,8 @@ #include "as.h" #include "emul.h" +static const char *crisaout_bfd_name PARAMS ((void)); + static const char * crisaout_bfd_name () { diff -uprN binutils-2.13.90.0.16/gas/config/e-criself.c binutils-2.13.90.0.18/gas/config/e-criself.c --- binutils-2.13.90.0.16/gas/config/e-criself.c Thu Jul 20 15:39:08 2000 +++ binutils-2.13.90.0.18/gas/config/e-criself.c Mon Dec 16 12:22:52 2002 @@ -1,6 +1,8 @@ #include "as.h" #include "emul.h" +static const char *criself_bfd_name PARAMS ((void)); + static const char * criself_bfd_name () { diff -uprN binutils-2.13.90.0.16/gas/config/obj-aout.c binutils-2.13.90.0.18/gas/config/obj-aout.c --- binutils-2.13.90.0.16/gas/config/obj-aout.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/obj-aout.c Mon Dec 16 12:22:52 2002 @@ -206,7 +206,7 @@ obj_aout_frob_file_before_fix () Since writing to a section will cause the BFD back end to compute the VMAs, fake it out here.... */ bfd_byte b = 0; - boolean x = true; + bfd_boolean x = TRUE; if (bfd_section_size (stdoutput, text_section) != 0) { x = bfd_set_section_contents (stdoutput, text_section, &b, (file_ptr) 0, @@ -217,7 +217,7 @@ obj_aout_frob_file_before_fix () x = bfd_set_section_contents (stdoutput, data_section, &b, (file_ptr) 0, (bfd_size_type) 1); } - assert (x == true); + assert (x); } #else /* ! BFD_ASSEMBLER */ @@ -572,62 +572,6 @@ obj_pre_write_hook (headers) tc_aout_pre_write_hook (headers); } -void -s_sect () -{ - /* Strip out the section name */ - char *section_name; - char *section_name_end; - char c; - - unsigned int len; - unsigned int exp; - char *save; - - section_name = input_line_pointer; - c = get_symbol_end (); - section_name_end = input_line_pointer; - - len = section_name_end - section_name; - input_line_pointer++; - save = input_line_pointer; - - SKIP_WHITESPACE (); - if (c == ',') - { - exp = get_absolute_expression (); - } - else if (*input_line_pointer == ',') - { - input_line_pointer++; - exp = get_absolute_expression (); - } - else - { - input_line_pointer = save; - exp = 0; - } - if (exp >= 1000) - { - as_bad (_("subsegment index too high")); - } - - if (strcmp (section_name, ".text") == 0) - { - subseg_set (SEG_TEXT, (subsegT) exp); - } - - if (strcmp (section_name, ".data") == 0) - { - if (flag_readonly_data_in_text) - subseg_set (SEG_TEXT, (subsegT) exp + 1000); - else - subseg_set (SEG_DATA, (subsegT) exp); - } - - *section_name_end = c; -} - #endif /* ! BFD_ASSEMBLER */ #ifdef BFD_ASSEMBLER diff -uprN binutils-2.13.90.0.16/gas/config/obj-bout.c binutils-2.13.90.0.18/gas/config/obj-bout.c --- binutils-2.13.90.0.16/gas/config/obj-bout.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/obj-bout.c Mon Dec 16 12:22:52 2002 @@ -228,7 +228,7 @@ obj_symbol_new_hook (symbolP) static void obj_bout_line (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { /* Assume delimiter is part of expression. */ /* BSD4.2 as fails with delightful bug, so we are not being diff -uprN binutils-2.13.90.0.16/gas/config/obj-coff.c binutils-2.13.90.0.18/gas/config/obj-coff.c --- binutils-2.13.90.0.16/gas/config/obj-coff.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/gas/config/obj-coff.c Mon Dec 16 12:22:52 2002 @@ -1147,7 +1147,9 @@ coff_obj_read_begin_hook () } symbolS *coff_last_function; +#ifndef OBJ_XCOFF static symbolS *coff_last_bf; +#endif void coff_frob_symbol (symp, punt) @@ -3629,7 +3631,7 @@ write_object_file () #if 0 /* Recent changes to write need this, but where it should go is up to Ken.. */ - if (bfd_close_all_done (abfd) == false) + if (!bfd_close_all_done (abfd)) as_fatal (_("Can't close %s: %s"), out_file_name, bfd_errmsg (bfd_get_error ())); #else @@ -4100,8 +4102,8 @@ obj_coff_lcomm (ignore) static void fixup_mdeps (frags, h, this_segment) - fragS * frags; - object_headers * h; + fragS *frags; + object_headers *h ATTRIBUTE_UNUSED; segT this_segment; { subseg_change (this_segment, 0); diff -uprN binutils-2.13.90.0.16/gas/config/obj-ecoff.c binutils-2.13.90.0.18/gas/config/obj-ecoff.c --- binutils-2.13.90.0.16/gas/config/obj-ecoff.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/obj-ecoff.c Mon Dec 16 12:22:52 2002 @@ -207,7 +207,7 @@ ecoff_frob_file () { const struct ecoff_debug_swap * const debug_swap = &ecoff_backend (stdoutput)->debug_swap; - bfd_vma addr; + bfd_vma addr ATTRIBUTE_UNUSED; HDRR *hdr; char *buf; char *set; @@ -258,7 +258,7 @@ obj_ecoff_set_ext (sym, ext) know (bfd_asymbol_flavour (symbol_get_bfdsym (sym)) == bfd_target_ecoff_flavour); esym = ecoffsymbol (symbol_get_bfdsym (sym)); - esym->local = false; + esym->local = FALSE; esym->native = xmalloc (debug_swap->external_ext_size); (*debug_swap->swap_ext_out) (stdoutput, ext, esym->native); } diff -uprN binutils-2.13.90.0.16/gas/config/obj-elf.c binutils-2.13.90.0.18/gas/config/obj-elf.c --- binutils-2.13.90.0.16/gas/config/obj-elf.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/obj-elf.c Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* ELF object file format Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002 Free Software Foundation, Inc. + 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -65,7 +65,7 @@ static void elf_init_stab_section PARAMS static symbolS *elf_common PARAMS ((int)); #ifdef NEED_ECOFF_DEBUG -static boolean elf_get_extr PARAMS ((asymbol *, EXTR *)); +static bfd_boolean elf_get_extr PARAMS ((asymbol *, EXTR *)); static void elf_set_index PARAMS ((asymbol *, bfd_size_type)); #endif @@ -290,9 +290,10 @@ elf_common (is_common) char *name; char c; char *p; - int temp, size; + offsetT temp, size, sign; symbolS *symbolP; int have_align; + expressionS exp; if (flag_mri && is_common) { @@ -313,13 +314,15 @@ elf_common (is_common) return NULL; } input_line_pointer++; /* skip ',' */ - if ((temp = get_absolute_expression ()) < 0) + temp = get_absolute_expr (&exp); + sign = (offsetT) 1 << (stdoutput->arch_info->bits_per_address - 1); + size = temp & ((sign << 1) - 1); + if (temp != size || !exp.X_unsigned) { - as_bad (_(".COMMon length (%d.) <0! Ignored."), temp); + as_bad (_(".COMMon length (%ld) out of range, ignored."), (long) temp); ignore_rest_of_line (); return NULL; } - size = temp; *p = 0; symbolP = symbol_find_or_make (name); *p = c; @@ -333,8 +336,9 @@ elf_common (is_common) { if (S_GET_VALUE (symbolP) != (valueT) size) { - as_warn (_("length of .comm \"%s\" is already %ld; not changed to %d"), - S_GET_NAME (symbolP), (long) S_GET_VALUE (symbolP), size); + as_warn (_("length of .comm \"%s\" is already %ld; not changed to %ld"), + S_GET_NAME (symbolP), (long) S_GET_VALUE (symbolP), + (long) size); } } know (symbolP->sy_frag == &zero_address_frag); @@ -352,8 +356,8 @@ elf_common (is_common) temp = 0; else { - temp = get_absolute_expression (); - if (temp < 0) + temp = get_absolute_expr (&exp); + if (!exp.X_unsigned) { temp = 0; as_warn (_("common alignment negative; 0 assumed")); @@ -609,8 +613,13 @@ static struct special_section const spec { ".data", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, { ".data1", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, { ".debug", SHT_PROGBITS, 0 }, +#if defined (TC_HPPA) && !defined (TE_LINUX) && TARGET_ARCH_SIZE == 64 + { ".fini", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, + { ".init", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, +#else { ".fini", SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR }, { ".init", SHT_PROGBITS, SHF_ALLOC + SHF_EXECINSTR }, +#endif { ".line", SHT_PROGBITS, 0 }, { ".note", SHT_NOTE, 0 }, { ".rodata", SHT_PROGBITS, SHF_ALLOC }, @@ -1761,15 +1770,15 @@ elf_ecoff_set_ext (sym, ext) supposed to *EXT to the external symbol information, and return whether the symbol should be used at all. */ -static boolean +static bfd_boolean elf_get_extr (sym, ext) asymbol *sym; EXTR *ext; { if (sym->udata.p == NULL) - return false; + return FALSE; *ext = *(EXTR *) sym->udata.p; - return true; + return TRUE; } /* This function is called by bfd_ecoff_debug_externals. It has @@ -1849,7 +1858,7 @@ elf_frob_symbol (symp, puntp) { as_bad (_("invalid attempt to declare external version name as default in symbol `%s'"), sy_obj->versioned_name); - *puntp = true; + *puntp = TRUE; } S_SET_NAME (symp, sy_obj->versioned_name); } @@ -2155,7 +2164,7 @@ elf_frob_file_after_relocs () /* Set up the external symbols. */ debug.ssext = debug.ssext_end = NULL; debug.external_ext = debug.external_ext_end = NULL; - if (! bfd_ecoff_debug_externals (stdoutput, &debug, debug_swap, true, + if (! bfd_ecoff_debug_externals (stdoutput, &debug, debug_swap, TRUE, elf_get_extr, elf_set_index)) as_fatal (_("failed to set up debugging information: %s"), bfd_errmsg (bfd_get_error ())); @@ -2163,7 +2172,7 @@ elf_frob_file_after_relocs () sec = bfd_get_section_by_name (stdoutput, ".mdebug"); assert (sec != NULL); - know (stdoutput->output_has_begun == false); + know (!stdoutput->output_has_begun); /* We set the size of the section, call bfd_set_section_contents to force the ELF backend to allocate a file position, and then @@ -2180,7 +2189,7 @@ elf_frob_file_after_relocs () as_fatal (_("can't start writing .mdebug section: %s"), bfd_errmsg (bfd_get_error ())); - know (stdoutput->output_has_begun == true); + know (stdoutput->output_has_begun); know (sec->filepos != 0); if (! bfd_ecoff_write_debug (stdoutput, &debug, debug_swap, diff -uprN binutils-2.13.90.0.16/gas/config/obj-som.c binutils-2.13.90.0.18/gas/config/obj-som.c --- binutils-2.13.90.0.16/gas/config/obj-som.c Fri Mar 9 11:16:49 2001 +++ binutils-2.13.90.0.18/gas/config/obj-som.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* SOM object file format. - Copyright 1993, 1994, 1998, 2000 Free Software Foundation, Inc. + Copyright 1993, 1994, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -158,7 +158,7 @@ obj_som_version (unused) } version_seen = 1; - if (bfd_som_attach_aux_hdr (stdoutput, VERSION_AUX_ID, version) == false) + if (!bfd_som_attach_aux_hdr (stdoutput, VERSION_AUX_ID, version)) { bfd_perror (stdoutput->filename); as_perror (_("FATAL: Attaching version header %s"), @@ -204,7 +204,7 @@ obj_som_copyright (unused) } copyright_seen = 1; - if (bfd_som_attach_aux_hdr (stdoutput, COPYRIGHT_AUX_ID, copyright) == false) + if (!bfd_som_attach_aux_hdr (stdoutput, COPYRIGHT_AUX_ID, copyright)) { bfd_perror (stdoutput->filename); as_perror (_("FATAL: Attaching copyright header %s"), diff -uprN binutils-2.13.90.0.16/gas/config/obj-vms.c binutils-2.13.90.0.18/gas/config/obj-vms.c --- binutils-2.13.90.0.16/gas/config/obj-vms.c Mon Oct 1 15:25:22 2001 +++ binutils-2.13.90.0.18/gas/config/obj-vms.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* vms.c -- Write out a VAX/VMS object file - Copyright 1987, 1988, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001 + Copyright 1987, 1988, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -31,6 +31,7 @@ Software Foundation, 59 Temple Place - S #include "safe-ctype.h" #include "subsegs.h" #include "obstack.h" +#include /* What we do if there is a goof. */ #define error as_fatal @@ -193,7 +194,7 @@ static const char *symbol_name; * whole thing each time. */ -static structure_count = 0; +static int structure_count = 0; /* This variable is used to indicate that we are making the last attempt to parse the stabs, and that we should define as much as we can, and ignore @@ -260,9 +261,9 @@ static int gave_compiler_message = 0; /* * Global data (Object records limited to 512 bytes by VAX-11 "C" runtime) */ -static int VMS_Object_File_FD; /* File Descriptor for object file */ +static int VMS_Object_File_FD; /* File Descriptor for object file */ static char Object_Record_Buffer[512]; /* Buffer for object file records */ -static int Object_Record_Offset;/* Offset to end of data */ +static size_t Object_Record_Offset; /* Offset to end of data */ static int Current_Object_Record_Type; /* Type of record in above */ /* @@ -344,84 +345,150 @@ const segT N_TYPE_seg[N_TYPE + 2] = /* Local support routines which return a value. */ -static struct input_file *find_file PARAMS ((symbolS *)); -static struct VMS_DBG_Symbol *find_symbol PARAMS ((int)); -static symbolS *Define_Routine PARAMS ((symbolS *,int,symbolS *,int)); - -static char *cvt_integer PARAMS ((char *,int *)); -static char *fix_name PARAMS ((char *)); -static char *get_struct_name PARAMS ((char *)); - -static offsetT VMS_Initialized_Data_Size PARAMS ((symbolS *,unsigned)); - -static int VMS_TBT_Source_File PARAMS ((char *,int)); -static int gen1 PARAMS ((struct VMS_DBG_Symbol *,int)); -static int forward_reference PARAMS ((char *)); -static int final_forward_reference PARAMS ((struct VMS_DBG_Symbol *)); -static int VMS_typedef_parse PARAMS ((char *)); -static int hash_string PARAMS ((const char *)); -static int VMS_Psect_Spec PARAMS ((const char *,int,enum ps_type, - struct VMS_Symbol *)); +static struct input_file *find_file + PARAMS ((symbolS *)); +static struct VMS_DBG_Symbol *find_symbol + PARAMS ((int)); +static symbolS *Define_Routine + PARAMS ((symbolS *, int, symbolS *, int)); + +static char *cvt_integer + PARAMS ((char *, int *)); +static char *fix_name + PARAMS ((char *)); +static char *get_struct_name + PARAMS ((char *)); + +static offsetT VMS_Initialized_Data_Size + PARAMS ((symbolS *, unsigned)); + +static int VMS_TBT_Source_File + PARAMS ((char *, int)); +static int gen1 + PARAMS ((struct VMS_DBG_Symbol *, int)); +static int forward_reference + PARAMS ((char *)); +static int final_forward_reference + PARAMS ((struct VMS_DBG_Symbol *)); +static int VMS_typedef_parse + PARAMS ((char *)); +static int hash_string + PARAMS ((const char *)); +static int VMS_Psect_Spec + PARAMS ((const char *, int, enum ps_type, struct VMS_Symbol *)); /* Local support routines which don't directly return any value. */ -static void s_const PARAMS ((int)); -static void Create_VMS_Object_File PARAMS ((void)); -static void Flush_VMS_Object_Record_Buffer PARAMS ((void)); -static void Set_VMS_Object_File_Record PARAMS ((int)); -static void Close_VMS_Object_File PARAMS ((void)); -static void vms_tir_stack_psect PARAMS ((int,int,int)); -static void VMS_Store_Immediate_Data PARAMS ((const char *,int,int)); -static void VMS_Set_Data PARAMS ((int,int,int,int)); -static void VMS_Store_Struct PARAMS ((int)); -static void VMS_Def_Struct PARAMS ((int)); -static void VMS_Set_Struct PARAMS ((int)); -static void VMS_TBT_Module_Begin PARAMS ((void)); -static void VMS_TBT_Module_End PARAMS ((void)); -static void VMS_TBT_Routine_Begin PARAMS ((symbolS *,int)); -static void VMS_TBT_Routine_End PARAMS ((int,symbolS *)); -static void VMS_TBT_Block_Begin PARAMS ((symbolS *,int,char *)); -static void VMS_TBT_Block_End PARAMS ((valueT)); -static void VMS_TBT_Line_PC_Correlation PARAMS ((int,int,int,int)); -static void VMS_TBT_Source_Lines PARAMS ((int,int,int)); -static void fpush PARAMS ((int,int)); -static void rpush PARAMS ((int,int)); -static void array_suffix PARAMS ((struct VMS_DBG_Symbol *)); -static void new_forward_ref PARAMS ((int)); -static void generate_suffix PARAMS ((struct VMS_DBG_Symbol *,int)); -static void bitfield_suffix PARAMS ((struct VMS_DBG_Symbol *,int)); -static void setup_basic_type PARAMS ((struct VMS_DBG_Symbol *)); -static void VMS_DBG_record PARAMS ((struct VMS_DBG_Symbol *,int,int,char *)); -static void VMS_local_stab_Parse PARAMS ((symbolS *)); -static void VMS_stab_parse PARAMS ((symbolS *,int,int,int,int)); -static void VMS_GSYM_Parse PARAMS ((symbolS *,int)); -static void VMS_LCSYM_Parse PARAMS ((symbolS *,int)); -static void VMS_STSYM_Parse PARAMS ((symbolS *,int)); -static void VMS_RSYM_Parse PARAMS ((symbolS *,symbolS *,int)); -static void VMS_LSYM_Parse PARAMS ((void)); -static void Define_Local_Symbols PARAMS ((symbolS *,symbolS *,symbolS *,int)); -static void Write_VMS_MHD_Records PARAMS ((void)); -static void Write_VMS_EOM_Record PARAMS ((int,valueT)); -static void VMS_Case_Hack_Symbol PARAMS ((const char *,char *)); -static void VMS_Modify_Psect_Attributes PARAMS ((const char *,int *)); -static void VMS_Global_Symbol_Spec PARAMS ((const char *,int,int,int)); -static void VMS_Local_Environment_Setup PARAMS ((const char *)); -static void VMS_Emit_Globalvalues PARAMS ((unsigned,unsigned,char *)); -static void VMS_Procedure_Entry_Pt PARAMS ((char *,int,int,int)); -static void VMS_Set_Psect PARAMS ((int,int,int)); -static void VMS_Store_Repeated_Data PARAMS ((int,char *,int,int)); -static void VMS_Store_PIC_Symbol_Reference PARAMS ((symbolS *,int, - int,int,int,int)); -static void VMS_Fix_Indirect_Reference PARAMS ((int,int,fragS *,fragS *)); +static void s_const + PARAMS ((int)); +static void Create_VMS_Object_File + PARAMS ((void)); +static void Flush_VMS_Object_Record_Buffer + PARAMS ((void)); +static void Set_VMS_Object_File_Record + PARAMS ((int)); +static void Close_VMS_Object_File + PARAMS ((void)); +static void vms_tir_stack_psect + PARAMS ((int, int, int)); +static void VMS_Store_Immediate_Data + PARAMS ((const char *, int, int)); +static void VMS_Set_Data + PARAMS ((int, int, int, int)); +static void VMS_Store_Struct + PARAMS ((int)); +static void VMS_Def_Struct + PARAMS ((int)); +static void VMS_Set_Struct + PARAMS ((int)); +static void VMS_TBT_Module_Begin + PARAMS ((void)); +static void VMS_TBT_Module_End + PARAMS ((void)); +static void VMS_TBT_Routine_Begin + PARAMS ((symbolS *, int)); +static void VMS_TBT_Routine_End + PARAMS ((int, symbolS *)); +static void VMS_TBT_Block_Begin + PARAMS ((symbolS *, int, char *)); +static void VMS_TBT_Block_End + PARAMS ((valueT)); +static void VMS_TBT_Line_PC_Correlation + PARAMS ((int, int, int, int)); +static void VMS_TBT_Source_Lines + PARAMS ((int, int, int)); +static void fpush + PARAMS ((int, int)); +static void rpush + PARAMS ((int, int)); +static void array_suffix + PARAMS ((struct VMS_DBG_Symbol *)); +static void new_forward_ref + PARAMS ((int)); +static void generate_suffix + PARAMS ((struct VMS_DBG_Symbol *, int)); +static void bitfield_suffix + PARAMS ((struct VMS_DBG_Symbol *, int)); +static void setup_basic_type + PARAMS ((struct VMS_DBG_Symbol *)); +static void VMS_DBG_record + PARAMS ((struct VMS_DBG_Symbol *, int, int, char *)); +static void VMS_local_stab_Parse + PARAMS ((symbolS *)); +static void VMS_stab_parse + PARAMS ((symbolS *, int, int, int, int)); +static void VMS_GSYM_Parse + PARAMS ((symbolS *, int)); +static void VMS_LCSYM_Parse + PARAMS ((symbolS *, int)); +static void VMS_STSYM_Parse + PARAMS ((symbolS *, int)); +static void VMS_RSYM_Parse + PARAMS ((symbolS *, symbolS *, int)); +static void VMS_LSYM_Parse + PARAMS ((void)); +static void Define_Local_Symbols + PARAMS ((symbolS *, symbolS *, symbolS *, int)); +static void Write_VMS_MHD_Records + PARAMS ((void)); +static void Write_VMS_EOM_Record + PARAMS ((int, valueT)); +static void VMS_Case_Hack_Symbol + PARAMS ((const char *, char *)); +static void VMS_Modify_Psect_Attributes + PARAMS ((const char *, int *)); +static void VMS_Global_Symbol_Spec + PARAMS ((const char *, int, int, int)); +static void VMS_Local_Environment_Setup + PARAMS ((const char *)); +static void VMS_Emit_Globalvalues + PARAMS ((unsigned, unsigned, char *)); +static void VMS_Procedure_Entry_Pt + PARAMS ((char *, int, int, int)); +static void VMS_Set_Psect + PARAMS ((int, int, int)); +static void VMS_Store_Repeated_Data + PARAMS ((int, char *, int, int)); +static void VMS_Store_PIC_Symbol_Reference + PARAMS ((symbolS *, int, int, int, int, int)); +static void VMS_Fix_Indirect_Reference + PARAMS ((int, addressT, fragS *, fragS *)); /* Support code which used to be inline within vms_write_object_file. */ -static void vms_fixup_text_section PARAMS ((unsigned,struct frag *,struct frag *)); -static void synthesize_data_segment PARAMS ((unsigned,unsigned,struct frag *)); -static void vms_fixup_data_section PARAMS ((unsigned,unsigned)); -static void global_symbol_directory PARAMS ((unsigned,unsigned)); -static void local_symbols_DST PARAMS ((symbolS *,symbolS *)); -static void vms_build_DST PARAMS ((unsigned)); -static void vms_fixup_xtors_section PARAMS ((struct VMS_Symbol *, int)); +static void vms_fixup_text_section + PARAMS ((unsigned, struct frag *, struct frag *)); +static void synthesize_data_segment + PARAMS ((unsigned, unsigned, struct frag *)); +static void vms_fixup_data_section + PARAMS ((unsigned, unsigned)); +static void global_symbol_directory + PARAMS ((unsigned, unsigned)); +static void local_symbols_DST + PARAMS ((symbolS *, symbolS *)); +static void vms_build_DST + PARAMS ((unsigned)); +static void vms_fixup_xtors_section + PARAMS ((struct VMS_Symbol *, int)); /* The following code defines the special types of pseudo-ops that we @@ -580,13 +647,17 @@ obj_crawl_symbol_chain (headers) static void Create_VMS_Object_File () { -#if defined(eunice) || !defined(VMS) +#ifdef eunice VMS_Object_File_FD = creat (out_file_name, 0777, "var"); -#else /* eunice */ +#else +#ifndef VMS + VMS_Object_File_FD = creat (out_file_name, 0777); +#else /* VMS */ VMS_Object_File_FD = creat (out_file_name, 0, "rfm=var", "ctx=bin", "mbc=16", "deq=64", "fop=tef", "shr=nil"); -#endif /* eunice */ +#endif /* !VMS */ +#endif /* !eunice */ /* Deal with errors. */ if (VMS_Object_File_FD < 0) as_fatal (_("Couldn't create VMS object file \"%s\""), out_file_name); @@ -626,8 +697,8 @@ Flush_VMS_Object_Record_Buffer () #endif /* not VMS */ /* Write the data to the file. */ - if (write (VMS_Object_File_FD, Object_Record_Buffer, Object_Record_Offset) - != Object_Record_Offset) + if ((size_t) write (VMS_Object_File_FD, Object_Record_Buffer, + Object_Record_Offset) != Object_Record_Offset) error (_("I/O error writing VMS object file")); /* The buffer is now empty. */ @@ -947,7 +1018,7 @@ VMS_TBT_Routine_End (Max_Size, sp) symbolS *sp; { symbolS *symbolP; - int Size = 0x7fffffff; + unsigned long Size = 0x7fffffff; char Local[16]; valueT sym_value, sp_value = S_GET_VALUE (sp); @@ -1862,7 +1933,7 @@ bitfield_suffix (spnt, width) static void setup_basic_type (spnt) - struct VMS_DBG_Symbol *spnt; + struct VMS_DBG_Symbol *spnt ATTRIBUTE_UNUSED; { #ifdef SETUP_BASIC_TYPES /* This would be very useful if "novel length" fields actually worked @@ -2169,7 +2240,8 @@ VMS_STSYM_Parse (sp, Text_Psect) static void VMS_RSYM_Parse (sp, Current_Routine, Text_Psect) - symbolS *sp, *Current_Routine; + symbolS *sp; + symbolS *Current_Routine ATTRIBUTE_UNUSED; int Text_Psect; { symbolS *symbolP; @@ -4168,7 +4240,7 @@ VMS_Store_PIC_Symbol_Reference (Symbol, static void VMS_Fix_Indirect_Reference (Text_Psect, Offset, fragP, text_frag_root) int Text_Psect; - int Offset; + addressT Offset; register fragS *fragP; fragS *text_frag_root; { @@ -4494,7 +4566,7 @@ struct vms_obj_state { static void vms_fixup_text_section (text_siz, text_frag_root, data_frag_root) - unsigned text_siz; + unsigned text_siz ATTRIBUTE_UNUSED; struct frag *text_frag_root; struct frag *data_frag_root; { @@ -4591,7 +4663,8 @@ vms_fixup_text_section (text_siz, text_f static void synthesize_data_segment (data_siz, text_siz, data_frag_root) - unsigned data_siz, text_siz; + unsigned data_siz; + unsigned text_siz; struct frag *data_frag_root; { register fragS *fragP; @@ -4626,7 +4699,8 @@ synthesize_data_segment (data_siz, text_ static void vms_fixup_data_section (data_siz, text_siz) - unsigned data_siz, text_siz; + unsigned int data_siz ATTRIBUTE_UNUSED; + unsigned int text_siz; { register struct VMS_Symbol *vsp; register struct fix *fixP; @@ -4731,7 +4805,7 @@ vms_fixup_data_section (data_siz, text_s static void vms_fixup_xtors_section (symbols, sect_no) struct VMS_Symbol *symbols; - int sect_no; + int sect_no ATTRIBUTE_UNUSED; { register struct VMS_Symbol *vsp; diff -uprN binutils-2.13.90.0.16/gas/config/tc-a29k.c binutils-2.13.90.0.18/gas/config/tc-a29k.c --- binutils-2.13.90.0.16/gas/config/tc-a29k.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.18/gas/config/tc-a29k.c Mon Dec 16 12:22:52 2002 @@ -61,6 +61,9 @@ static void machine_ip PARAMS ((char *st static void s_data1 PARAMS ((void)); static void s_use PARAMS ((int)); #endif +static void insert_sreg PARAMS ((char *, int)); +static void define_some_regs PARAMS ((void)); +static char *parse_operand PARAMS ((char *, expressionS *, int)); const pseudo_typeS md_pseudo_table[] = @@ -198,7 +201,7 @@ insert_sreg (regname, regnum) /* Install symbol definitions for assorted special registers. See ASM29K Ref page 2-9. */ -void +static void define_some_regs () { #define SREG 256 @@ -360,7 +363,7 @@ md_assemble (str) } } -char * +static char * parse_operand (s, operandp, opt) char *s; expressionS *operandp; @@ -787,7 +790,7 @@ md_apply_fix3 (fixP, valP, seg) valueT * valP; segT seg ATTRIBUTE_UNUSED; { - long val = * (long *) valP; + long val = *valP; char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; fixP->fx_addnumber = val; /* Remember value for emit_reloc. */ @@ -813,7 +816,7 @@ md_apply_fix3 (fixP, valP, seg) break; case RELOC_WDISP30: - val = (val >>= 2) + 1; + val = (val >> 2) + 1; buf[0] |= (val >> 24) & 0x3f; buf[1] = (val >> 16); buf[2] = val >> 8; @@ -837,7 +840,7 @@ md_apply_fix3 (fixP, valP, seg) break; case RELOC_WDISP22: - val = (val >>= 2) + 1; + val = (val >> 2) + 1; /* FALLTHROUGH */ case RELOC_BASE22: buf[1] |= (val >> 16) & 0x3f; @@ -925,9 +928,9 @@ tc_coff_fix2rtype (fixP) /* should never be called for 29k */ void md_convert_frag (headers, seg, fragP) - object_headers *headers; - segT seg; - register fragS *fragP; + object_headers *headers ATTRIBUTE_UNUSED; + segT seg ATTRIBUTE_UNUSED; + register fragS *fragP ATTRIBUTE_UNUSED; { as_fatal (_("a29k_convert_frag\n")); } @@ -935,8 +938,8 @@ md_convert_frag (headers, seg, fragP) /* should never be called for a29k */ int md_estimate_size_before_relax (fragP, segtype) - register fragS *fragP; - segT segtype; + register fragS *fragP ATTRIBUTE_UNUSED; + segT segtype ATTRIBUTE_UNUSED; { as_fatal (_("a29k_estimate_size_before_relax\n")); return 0; @@ -1046,15 +1049,15 @@ size_t md_longopts_size = sizeof (md_lon int md_parse_option (c, arg) - int c; - char *arg; + int c ATTRIBUTE_UNUSED; + char *arg ATTRIBUTE_UNUSED; { return 0; } void md_show_usage (stream) - FILE *stream; + FILE *stream ATTRIBUTE_UNUSED; { } @@ -1277,7 +1280,7 @@ md_operand (expressionP) /* Round up a section size to the appropriate boundary. */ valueT md_section_align (segment, size) - segT segment; + segT segment ATTRIBUTE_UNUSED; valueT size; { return size; /* Byte alignment is fine */ diff -uprN binutils-2.13.90.0.16/gas/config/tc-alpha.c binutils-2.13.90.0.18/gas/config/tc-alpha.c --- binutils-2.13.90.0.16/gas/config/tc-alpha.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/tc-alpha.c Tue Jan 21 10:21:32 2003 @@ -1261,6 +1261,8 @@ md_apply_fix3 (fixP, valP, seg) #ifdef OBJ_ELF case BFD_RELOC_ALPHA_BRSGP: + return; + case BFD_RELOC_ALPHA_TLSGD: case BFD_RELOC_ALPHA_TLSLDM: case BFD_RELOC_ALPHA_GOTDTPREL16: @@ -1271,6 +1273,8 @@ md_apply_fix3 (fixP, valP, seg) case BFD_RELOC_ALPHA_TPREL_HI16: case BFD_RELOC_ALPHA_TPREL_LO16: case BFD_RELOC_ALPHA_TPREL16: + if (fixP->fx_addsy) + S_SET_THREAD_LOCAL (fixP->fx_addsy); return; #endif @@ -1515,6 +1519,7 @@ alpha_fix_adjustable (f) we're preventing this in the other assemblers. Follow for now. */ return 0; +#ifdef OBJ_ELF case BFD_RELOC_ALPHA_BRSGP: /* If we have a BRSGP reloc to a local symbol, adjust it to BRADDR and let it get resolved at assembly time. */ @@ -1547,6 +1552,7 @@ alpha_fix_adjustable (f) f->fx_offset += offset; return 1; } +#endif default: return 1; diff -uprN binutils-2.13.90.0.16/gas/config/tc-arm.c binutils-2.13.90.0.18/gas/config/tc-arm.c --- binutils-2.13.90.0.16/gas/config/tc-arm.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/gas/config/tc-arm.c Mon Dec 16 12:22:52 2002 @@ -144,11 +144,11 @@ static unsigned long cpu_variant; static int target_oabi = 0; /* Flags stored in private area of BFD structure. */ -static int uses_apcs_26 = false; -static int atpcs = false; -static int support_interwork = false; -static int uses_apcs_float = false; -static int pic_code = false; +static int uses_apcs_26 = FALSE; +static int atpcs = FALSE; +static int support_interwork = FALSE; +static int uses_apcs_float = FALSE; +static int pic_code = FALSE; /* Variables that we set while parsing command-line options. Once all options have been read we re-process these values to set the real @@ -342,8 +342,8 @@ static const struct asm_cond conds[] = struct asm_psr { - const char * template; - boolean cpsr; + const char *template; + bfd_boolean cpsr; unsigned long field; }; @@ -360,143 +360,143 @@ struct asm_psr static const struct asm_psr psrs[] = { - {"CPSR", true, PSR_c | PSR_f}, - {"CPSR_all", true, PSR_c | PSR_f}, - {"SPSR", false, PSR_c | PSR_f}, - {"SPSR_all", false, PSR_c | PSR_f}, - {"CPSR_flg", true, PSR_f}, - {"CPSR_f", true, PSR_f}, - {"SPSR_flg", false, PSR_f}, - {"SPSR_f", false, PSR_f}, - {"CPSR_c", true, PSR_c}, - {"CPSR_ctl", true, PSR_c}, - {"SPSR_c", false, PSR_c}, - {"SPSR_ctl", false, PSR_c}, - {"CPSR_x", true, PSR_x}, - {"CPSR_s", true, PSR_s}, - {"SPSR_x", false, PSR_x}, - {"SPSR_s", false, PSR_s}, + {"CPSR", TRUE, PSR_c | PSR_f}, + {"CPSR_all", TRUE, PSR_c | PSR_f}, + {"SPSR", FALSE, PSR_c | PSR_f}, + {"SPSR_all", FALSE, PSR_c | PSR_f}, + {"CPSR_flg", TRUE, PSR_f}, + {"CPSR_f", TRUE, PSR_f}, + {"SPSR_flg", FALSE, PSR_f}, + {"SPSR_f", FALSE, PSR_f}, + {"CPSR_c", TRUE, PSR_c}, + {"CPSR_ctl", TRUE, PSR_c}, + {"SPSR_c", FALSE, PSR_c}, + {"SPSR_ctl", FALSE, PSR_c}, + {"CPSR_x", TRUE, PSR_x}, + {"CPSR_s", TRUE, PSR_s}, + {"SPSR_x", FALSE, PSR_x}, + {"SPSR_s", FALSE, PSR_s}, /* Combinations of flags. */ - {"CPSR_fs", true, PSR_f | PSR_s}, - {"CPSR_fx", true, PSR_f | PSR_x}, - {"CPSR_fc", true, PSR_f | PSR_c}, - {"CPSR_sf", true, PSR_s | PSR_f}, - {"CPSR_sx", true, PSR_s | PSR_x}, - {"CPSR_sc", true, PSR_s | PSR_c}, - {"CPSR_xf", true, PSR_x | PSR_f}, - {"CPSR_xs", true, PSR_x | PSR_s}, - {"CPSR_xc", true, PSR_x | PSR_c}, - {"CPSR_cf", true, PSR_c | PSR_f}, - {"CPSR_cs", true, PSR_c | PSR_s}, - {"CPSR_cx", true, PSR_c | PSR_x}, - {"CPSR_fsx", true, PSR_f | PSR_s | PSR_x}, - {"CPSR_fsc", true, PSR_f | PSR_s | PSR_c}, - {"CPSR_fxs", true, PSR_f | PSR_x | PSR_s}, - {"CPSR_fxc", true, PSR_f | PSR_x | PSR_c}, - {"CPSR_fcs", true, PSR_f | PSR_c | PSR_s}, - {"CPSR_fcx", true, PSR_f | PSR_c | PSR_x}, - {"CPSR_sfx", true, PSR_s | PSR_f | PSR_x}, - {"CPSR_sfc", true, PSR_s | PSR_f | PSR_c}, - {"CPSR_sxf", true, PSR_s | PSR_x | PSR_f}, - {"CPSR_sxc", true, PSR_s | PSR_x | PSR_c}, - {"CPSR_scf", true, PSR_s | PSR_c | PSR_f}, - {"CPSR_scx", true, PSR_s | PSR_c | PSR_x}, - {"CPSR_xfs", true, PSR_x | PSR_f | PSR_s}, - {"CPSR_xfc", true, PSR_x | PSR_f | PSR_c}, - {"CPSR_xsf", true, PSR_x | PSR_s | PSR_f}, - {"CPSR_xsc", true, PSR_x | PSR_s | PSR_c}, - {"CPSR_xcf", true, PSR_x | PSR_c | PSR_f}, - {"CPSR_xcs", true, PSR_x | PSR_c | PSR_s}, - {"CPSR_cfs", true, PSR_c | PSR_f | PSR_s}, - {"CPSR_cfx", true, PSR_c | PSR_f | PSR_x}, - {"CPSR_csf", true, PSR_c | PSR_s | PSR_f}, - {"CPSR_csx", true, PSR_c | PSR_s | PSR_x}, - {"CPSR_cxf", true, PSR_c | PSR_x | PSR_f}, - {"CPSR_cxs", true, PSR_c | PSR_x | PSR_s}, - {"CPSR_fsxc", true, PSR_f | PSR_s | PSR_x | PSR_c}, - {"CPSR_fscx", true, PSR_f | PSR_s | PSR_c | PSR_x}, - {"CPSR_fxsc", true, PSR_f | PSR_x | PSR_s | PSR_c}, - {"CPSR_fxcs", true, PSR_f | PSR_x | PSR_c | PSR_s}, - {"CPSR_fcsx", true, PSR_f | PSR_c | PSR_s | PSR_x}, - {"CPSR_fcxs", true, PSR_f | PSR_c | PSR_x | PSR_s}, - {"CPSR_sfxc", true, PSR_s | PSR_f | PSR_x | PSR_c}, - {"CPSR_sfcx", true, PSR_s | PSR_f | PSR_c | PSR_x}, - {"CPSR_sxfc", true, PSR_s | PSR_x | PSR_f | PSR_c}, - {"CPSR_sxcf", true, PSR_s | PSR_x | PSR_c | PSR_f}, - {"CPSR_scfx", true, PSR_s | PSR_c | PSR_f | PSR_x}, - {"CPSR_scxf", true, PSR_s | PSR_c | PSR_x | PSR_f}, - {"CPSR_xfsc", true, PSR_x | PSR_f | PSR_s | PSR_c}, - {"CPSR_xfcs", true, PSR_x | PSR_f | PSR_c | PSR_s}, - {"CPSR_xsfc", true, PSR_x | PSR_s | PSR_f | PSR_c}, - {"CPSR_xscf", true, PSR_x | PSR_s | PSR_c | PSR_f}, - {"CPSR_xcfs", true, PSR_x | PSR_c | PSR_f | PSR_s}, - {"CPSR_xcsf", true, PSR_x | PSR_c | PSR_s | PSR_f}, - {"CPSR_cfsx", true, PSR_c | PSR_f | PSR_s | PSR_x}, - {"CPSR_cfxs", true, PSR_c | PSR_f | PSR_x | PSR_s}, - {"CPSR_csfx", true, PSR_c | PSR_s | PSR_f | PSR_x}, - {"CPSR_csxf", true, PSR_c | PSR_s | PSR_x | PSR_f}, - {"CPSR_cxfs", true, PSR_c | PSR_x | PSR_f | PSR_s}, - {"CPSR_cxsf", true, PSR_c | PSR_x | PSR_s | PSR_f}, - {"SPSR_fs", false, PSR_f | PSR_s}, - {"SPSR_fx", false, PSR_f | PSR_x}, - {"SPSR_fc", false, PSR_f | PSR_c}, - {"SPSR_sf", false, PSR_s | PSR_f}, - {"SPSR_sx", false, PSR_s | PSR_x}, - {"SPSR_sc", false, PSR_s | PSR_c}, - {"SPSR_xf", false, PSR_x | PSR_f}, - {"SPSR_xs", false, PSR_x | PSR_s}, - {"SPSR_xc", false, PSR_x | PSR_c}, - {"SPSR_cf", false, PSR_c | PSR_f}, - {"SPSR_cs", false, PSR_c | PSR_s}, - {"SPSR_cx", false, PSR_c | PSR_x}, - {"SPSR_fsx", false, PSR_f | PSR_s | PSR_x}, - {"SPSR_fsc", false, PSR_f | PSR_s | PSR_c}, - {"SPSR_fxs", false, PSR_f | PSR_x | PSR_s}, - {"SPSR_fxc", false, PSR_f | PSR_x | PSR_c}, - {"SPSR_fcs", false, PSR_f | PSR_c | PSR_s}, - {"SPSR_fcx", false, PSR_f | PSR_c | PSR_x}, - {"SPSR_sfx", false, PSR_s | PSR_f | PSR_x}, - {"SPSR_sfc", false, PSR_s | PSR_f | PSR_c}, - {"SPSR_sxf", false, PSR_s | PSR_x | PSR_f}, - {"SPSR_sxc", false, PSR_s | PSR_x | PSR_c}, - {"SPSR_scf", false, PSR_s | PSR_c | PSR_f}, - {"SPSR_scx", false, PSR_s | PSR_c | PSR_x}, - {"SPSR_xfs", false, PSR_x | PSR_f | PSR_s}, - {"SPSR_xfc", false, PSR_x | PSR_f | PSR_c}, - {"SPSR_xsf", false, PSR_x | PSR_s | PSR_f}, - {"SPSR_xsc", false, PSR_x | PSR_s | PSR_c}, - {"SPSR_xcf", false, PSR_x | PSR_c | PSR_f}, - {"SPSR_xcs", false, PSR_x | PSR_c | PSR_s}, - {"SPSR_cfs", false, PSR_c | PSR_f | PSR_s}, - {"SPSR_cfx", false, PSR_c | PSR_f | PSR_x}, - {"SPSR_csf", false, PSR_c | PSR_s | PSR_f}, - {"SPSR_csx", false, PSR_c | PSR_s | PSR_x}, - {"SPSR_cxf", false, PSR_c | PSR_x | PSR_f}, - {"SPSR_cxs", false, PSR_c | PSR_x | PSR_s}, - {"SPSR_fsxc", false, PSR_f | PSR_s | PSR_x | PSR_c}, - {"SPSR_fscx", false, PSR_f | PSR_s | PSR_c | PSR_x}, - {"SPSR_fxsc", false, PSR_f | PSR_x | PSR_s | PSR_c}, - {"SPSR_fxcs", false, PSR_f | PSR_x | PSR_c | PSR_s}, - {"SPSR_fcsx", false, PSR_f | PSR_c | PSR_s | PSR_x}, - {"SPSR_fcxs", false, PSR_f | PSR_c | PSR_x | PSR_s}, - {"SPSR_sfxc", false, PSR_s | PSR_f | PSR_x | PSR_c}, - {"SPSR_sfcx", false, PSR_s | PSR_f | PSR_c | PSR_x}, - {"SPSR_sxfc", false, PSR_s | PSR_x | PSR_f | PSR_c}, - {"SPSR_sxcf", false, PSR_s | PSR_x | PSR_c | PSR_f}, - {"SPSR_scfx", false, PSR_s | PSR_c | PSR_f | PSR_x}, - {"SPSR_scxf", false, PSR_s | PSR_c | PSR_x | PSR_f}, - {"SPSR_xfsc", false, PSR_x | PSR_f | PSR_s | PSR_c}, - {"SPSR_xfcs", false, PSR_x | PSR_f | PSR_c | PSR_s}, - {"SPSR_xsfc", false, PSR_x | PSR_s | PSR_f | PSR_c}, - {"SPSR_xscf", false, PSR_x | PSR_s | PSR_c | PSR_f}, - {"SPSR_xcfs", false, PSR_x | PSR_c | PSR_f | PSR_s}, - {"SPSR_xcsf", false, PSR_x | PSR_c | PSR_s | PSR_f}, - {"SPSR_cfsx", false, PSR_c | PSR_f | PSR_s | PSR_x}, - {"SPSR_cfxs", false, PSR_c | PSR_f | PSR_x | PSR_s}, - {"SPSR_csfx", false, PSR_c | PSR_s | PSR_f | PSR_x}, - {"SPSR_csxf", false, PSR_c | PSR_s | PSR_x | PSR_f}, - {"SPSR_cxfs", false, PSR_c | PSR_x | PSR_f | PSR_s}, - {"SPSR_cxsf", false, PSR_c | PSR_x | PSR_s | PSR_f}, + {"CPSR_fs", TRUE, PSR_f | PSR_s}, + {"CPSR_fx", TRUE, PSR_f | PSR_x}, + {"CPSR_fc", TRUE, PSR_f | PSR_c}, + {"CPSR_sf", TRUE, PSR_s | PSR_f}, + {"CPSR_sx", TRUE, PSR_s | PSR_x}, + {"CPSR_sc", TRUE, PSR_s | PSR_c}, + {"CPSR_xf", TRUE, PSR_x | PSR_f}, + {"CPSR_xs", TRUE, PSR_x | PSR_s}, + {"CPSR_xc", TRUE, PSR_x | PSR_c}, + {"CPSR_cf", TRUE, PSR_c | PSR_f}, + {"CPSR_cs", TRUE, PSR_c | PSR_s}, + {"CPSR_cx", TRUE, PSR_c | PSR_x}, + {"CPSR_fsx", TRUE, PSR_f | PSR_s | PSR_x}, + {"CPSR_fsc", TRUE, PSR_f | PSR_s | PSR_c}, + {"CPSR_fxs", TRUE, PSR_f | PSR_x | PSR_s}, + {"CPSR_fxc", TRUE, PSR_f | PSR_x | PSR_c}, + {"CPSR_fcs", TRUE, PSR_f | PSR_c | PSR_s}, + {"CPSR_fcx", TRUE, PSR_f | PSR_c | PSR_x}, + {"CPSR_sfx", TRUE, PSR_s | PSR_f | PSR_x}, + {"CPSR_sfc", TRUE, PSR_s | PSR_f | PSR_c}, + {"CPSR_sxf", TRUE, PSR_s | PSR_x | PSR_f}, + {"CPSR_sxc", TRUE, PSR_s | PSR_x | PSR_c}, + {"CPSR_scf", TRUE, PSR_s | PSR_c | PSR_f}, + {"CPSR_scx", TRUE, PSR_s | PSR_c | PSR_x}, + {"CPSR_xfs", TRUE, PSR_x | PSR_f | PSR_s}, + {"CPSR_xfc", TRUE, PSR_x | PSR_f | PSR_c}, + {"CPSR_xsf", TRUE, PSR_x | PSR_s | PSR_f}, + {"CPSR_xsc", TRUE, PSR_x | PSR_s | PSR_c}, + {"CPSR_xcf", TRUE, PSR_x | PSR_c | PSR_f}, + {"CPSR_xcs", TRUE, PSR_x | PSR_c | PSR_s}, + {"CPSR_cfs", TRUE, PSR_c | PSR_f | PSR_s}, + {"CPSR_cfx", TRUE, PSR_c | PSR_f | PSR_x}, + {"CPSR_csf", TRUE, PSR_c | PSR_s | PSR_f}, + {"CPSR_csx", TRUE, PSR_c | PSR_s | PSR_x}, + {"CPSR_cxf", TRUE, PSR_c | PSR_x | PSR_f}, + {"CPSR_cxs", TRUE, PSR_c | PSR_x | PSR_s}, + {"CPSR_fsxc", TRUE, PSR_f | PSR_s | PSR_x | PSR_c}, + {"CPSR_fscx", TRUE, PSR_f | PSR_s | PSR_c | PSR_x}, + {"CPSR_fxsc", TRUE, PSR_f | PSR_x | PSR_s | PSR_c}, + {"CPSR_fxcs", TRUE, PSR_f | PSR_x | PSR_c | PSR_s}, + {"CPSR_fcsx", TRUE, PSR_f | PSR_c | PSR_s | PSR_x}, + {"CPSR_fcxs", TRUE, PSR_f | PSR_c | PSR_x | PSR_s}, + {"CPSR_sfxc", TRUE, PSR_s | PSR_f | PSR_x | PSR_c}, + {"CPSR_sfcx", TRUE, PSR_s | PSR_f | PSR_c | PSR_x}, + {"CPSR_sxfc", TRUE, PSR_s | PSR_x | PSR_f | PSR_c}, + {"CPSR_sxcf", TRUE, PSR_s | PSR_x | PSR_c | PSR_f}, + {"CPSR_scfx", TRUE, PSR_s | PSR_c | PSR_f | PSR_x}, + {"CPSR_scxf", TRUE, PSR_s | PSR_c | PSR_x | PSR_f}, + {"CPSR_xfsc", TRUE, PSR_x | PSR_f | PSR_s | PSR_c}, + {"CPSR_xfcs", TRUE, PSR_x | PSR_f | PSR_c | PSR_s}, + {"CPSR_xsfc", TRUE, PSR_x | PSR_s | PSR_f | PSR_c}, + {"CPSR_xscf", TRUE, PSR_x | PSR_s | PSR_c | PSR_f}, + {"CPSR_xcfs", TRUE, PSR_x | PSR_c | PSR_f | PSR_s}, + {"CPSR_xcsf", TRUE, PSR_x | PSR_c | PSR_s | PSR_f}, + {"CPSR_cfsx", TRUE, PSR_c | PSR_f | PSR_s | PSR_x}, + {"CPSR_cfxs", TRUE, PSR_c | PSR_f | PSR_x | PSR_s}, + {"CPSR_csfx", TRUE, PSR_c | PSR_s | PSR_f | PSR_x}, + {"CPSR_csxf", TRUE, PSR_c | PSR_s | PSR_x | PSR_f}, + {"CPSR_cxfs", TRUE, PSR_c | PSR_x | PSR_f | PSR_s}, + {"CPSR_cxsf", TRUE, PSR_c | PSR_x | PSR_s | PSR_f}, + {"SPSR_fs", FALSE, PSR_f | PSR_s}, + {"SPSR_fx", FALSE, PSR_f | PSR_x}, + {"SPSR_fc", FALSE, PSR_f | PSR_c}, + {"SPSR_sf", FALSE, PSR_s | PSR_f}, + {"SPSR_sx", FALSE, PSR_s | PSR_x}, + {"SPSR_sc", FALSE, PSR_s | PSR_c}, + {"SPSR_xf", FALSE, PSR_x | PSR_f}, + {"SPSR_xs", FALSE, PSR_x | PSR_s}, + {"SPSR_xc", FALSE, PSR_x | PSR_c}, + {"SPSR_cf", FALSE, PSR_c | PSR_f}, + {"SPSR_cs", FALSE, PSR_c | PSR_s}, + {"SPSR_cx", FALSE, PSR_c | PSR_x}, + {"SPSR_fsx", FALSE, PSR_f | PSR_s | PSR_x}, + {"SPSR_fsc", FALSE, PSR_f | PSR_s | PSR_c}, + {"SPSR_fxs", FALSE, PSR_f | PSR_x | PSR_s}, + {"SPSR_fxc", FALSE, PSR_f | PSR_x | PSR_c}, + {"SPSR_fcs", FALSE, PSR_f | PSR_c | PSR_s}, + {"SPSR_fcx", FALSE, PSR_f | PSR_c | PSR_x}, + {"SPSR_sfx", FALSE, PSR_s | PSR_f | PSR_x}, + {"SPSR_sfc", FALSE, PSR_s | PSR_f | PSR_c}, + {"SPSR_sxf", FALSE, PSR_s | PSR_x | PSR_f}, + {"SPSR_sxc", FALSE, PSR_s | PSR_x | PSR_c}, + {"SPSR_scf", FALSE, PSR_s | PSR_c | PSR_f}, + {"SPSR_scx", FALSE, PSR_s | PSR_c | PSR_x}, + {"SPSR_xfs", FALSE, PSR_x | PSR_f | PSR_s}, + {"SPSR_xfc", FALSE, PSR_x | PSR_f | PSR_c}, + {"SPSR_xsf", FALSE, PSR_x | PSR_s | PSR_f}, + {"SPSR_xsc", FALSE, PSR_x | PSR_s | PSR_c}, + {"SPSR_xcf", FALSE, PSR_x | PSR_c | PSR_f}, + {"SPSR_xcs", FALSE, PSR_x | PSR_c | PSR_s}, + {"SPSR_cfs", FALSE, PSR_c | PSR_f | PSR_s}, + {"SPSR_cfx", FALSE, PSR_c | PSR_f | PSR_x}, + {"SPSR_csf", FALSE, PSR_c | PSR_s | PSR_f}, + {"SPSR_csx", FALSE, PSR_c | PSR_s | PSR_x}, + {"SPSR_cxf", FALSE, PSR_c | PSR_x | PSR_f}, + {"SPSR_cxs", FALSE, PSR_c | PSR_x | PSR_s}, + {"SPSR_fsxc", FALSE, PSR_f | PSR_s | PSR_x | PSR_c}, + {"SPSR_fscx", FALSE, PSR_f | PSR_s | PSR_c | PSR_x}, + {"SPSR_fxsc", FALSE, PSR_f | PSR_x | PSR_s | PSR_c}, + {"SPSR_fxcs", FALSE, PSR_f | PSR_x | PSR_c | PSR_s}, + {"SPSR_fcsx", FALSE, PSR_f | PSR_c | PSR_s | PSR_x}, + {"SPSR_fcxs", FALSE, PSR_f | PSR_c | PSR_x | PSR_s}, + {"SPSR_sfxc", FALSE, PSR_s | PSR_f | PSR_x | PSR_c}, + {"SPSR_sfcx", FALSE, PSR_s | PSR_f | PSR_c | PSR_x}, + {"SPSR_sxfc", FALSE, PSR_s | PSR_x | PSR_f | PSR_c}, + {"SPSR_sxcf", FALSE, PSR_s | PSR_x | PSR_c | PSR_f}, + {"SPSR_scfx", FALSE, PSR_s | PSR_c | PSR_f | PSR_x}, + {"SPSR_scxf", FALSE, PSR_s | PSR_c | PSR_x | PSR_f}, + {"SPSR_xfsc", FALSE, PSR_x | PSR_f | PSR_s | PSR_c}, + {"SPSR_xfcs", FALSE, PSR_x | PSR_f | PSR_c | PSR_s}, + {"SPSR_xsfc", FALSE, PSR_x | PSR_s | PSR_f | PSR_c}, + {"SPSR_xscf", FALSE, PSR_x | PSR_s | PSR_c | PSR_f}, + {"SPSR_xcfs", FALSE, PSR_x | PSR_c | PSR_f | PSR_s}, + {"SPSR_xcsf", FALSE, PSR_x | PSR_c | PSR_s | PSR_f}, + {"SPSR_cfsx", FALSE, PSR_c | PSR_f | PSR_s | PSR_x}, + {"SPSR_cfxs", FALSE, PSR_c | PSR_f | PSR_x | PSR_s}, + {"SPSR_csfx", FALSE, PSR_c | PSR_s | PSR_f | PSR_x}, + {"SPSR_csxf", FALSE, PSR_c | PSR_s | PSR_x | PSR_f}, + {"SPSR_cxfs", FALSE, PSR_c | PSR_x | PSR_f | PSR_s}, + {"SPSR_cxsf", FALSE, PSR_c | PSR_x | PSR_s | PSR_f}, }; enum vfp_dp_reg_pos @@ -2113,7 +2113,7 @@ static int arm_parse_fpu PARAMS ((char * */ symbolS * last_label_seen; -static int label_is_thumb_function_name = false; +static int label_is_thumb_function_name = FALSE; /* Literal Pool stuff. */ @@ -2129,7 +2129,7 @@ typedef struct literal_pool symbolS * symbol; segT section; subsegT sub_section; - struct literal_pool * next; + struct literal_pool * next; } literal_pool; /* Pointer to a linked list of literal pools. */ @@ -2196,7 +2196,7 @@ find_or_make_literal_pool () static int add_to_lit_pool () { - literal_pool * pool; + literal_pool * pool; unsigned int entry; pool = find_or_make_literal_pool (); @@ -2504,7 +2504,7 @@ s_thumb_func (ignore) /* The following label is the name/address of the start of a Thumb function. We need to know this for the interworking support. */ - label_is_thumb_function_name = true; + label_is_thumb_function_name = TRUE; demand_empty_rest_of_line (); } @@ -3929,9 +3929,12 @@ do_t_bkpt (str) str ++; memset (& expr, '\0', sizeof (expr)); - if (my_get_expression (& expr, & str) || (expr.X_op != O_constant)) + if (my_get_expression (& expr, & str) + || (expr.X_op != O_constant + /* As a convenience we allow 'bkpt' without an operand. */ + && expr.X_op != O_absent)) { - inst.error = _("bad or missing expression"); + inst.error = _("bad expression"); return; } @@ -4111,9 +4114,12 @@ do_bkpt (str) memset (& expr, '\0', sizeof (expr)); - if (my_get_expression (& expr, & str) || (expr.X_op != O_constant)) + if (my_get_expression (& expr, & str) + || (expr.X_op != O_constant + /* As a convenience we allow 'bkpt' without an operand. */ + && expr.X_op != O_absent)) { - inst.error = _("bad or missing expression"); + inst.error = _("bad expression"); return; } @@ -4443,7 +4449,7 @@ my_get_float_expression (str) return -1; } -/* Return true if anything in the expression is a bignum. */ +/* Return TRUE if anything in the expression is a bignum. */ static int walk_no_bignums (sp) @@ -5790,7 +5796,7 @@ do_ldmstm (str) as_warn (_("if writeback register is in list, it must be the lowest reg in the list")); } } - + inst.instruction |= range; end_of_line (str); return; @@ -10288,7 +10294,7 @@ tc_gen_reloc (section, fixp) /* If this is called then the a literal has been referenced across a section boundary. */ as_bad_where (fixp->fx_file, fixp->fx_line, - _("literal referenced across section boundary")); + _("literal referenced across section boundary")); return NULL; #ifdef OBJ_ELF @@ -11305,7 +11311,7 @@ arm_frob_label (sym) THUMB_SET_FUNC (sym, 1); - label_is_thumb_function_name = false; + label_is_thumb_function_name = FALSE; } } @@ -11409,6 +11415,7 @@ arm_canonicalize_symbol_name (name) return name; } +#if defined OBJ_COFF || defined OBJ_ELF void arm_validate_fix (fixP) fixS * fixP; @@ -11425,6 +11432,33 @@ arm_validate_fix (fixP) fixP->fx_addsy = find_real_start (fixP->fx_addsy); } } +#endif + +int +arm_force_relocation (fixp) + struct fix * fixp; +{ +#if defined (OBJ_COFF) && defined (TE_PE) + if (fixp->fx_r_type == BFD_RELOC_RVA) + return 1; +#endif +#ifdef OBJ_ELF + if ( fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT + || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY + || fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BRANCH + || fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BLX + || fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX + || fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BRANCH23) + return 1; +#endif + + /* Resolve these relocations even if the symbol is extern or weak. */ + if (fixp->fx_r_type == BFD_RELOC_ARM_IMMEDIATE + || fixp->fx_r_type == BFD_RELOC_ARM_ADRL_IMMEDIATE) + return 0; + + return S_FORCE_RELOC (fixp->fx_addsy); +} #ifdef OBJ_COFF /* This is a little hack to help the gas/arm/adrl.s test. It prevents @@ -11433,7 +11467,7 @@ arm_validate_fix (fixP) be resolved before the binbary is emitted, so it is safe to say that it is adjustable. */ -boolean +bfd_boolean arm_fix_adjustable (fixP) fixS * fixP; { @@ -11442,6 +11476,7 @@ arm_fix_adjustable (fixP) return 0; } #endif + #ifdef OBJ_ELF /* Relocations against Thumb function names must be left unadjusted, so that the linker can use this information to correctly set the @@ -11456,7 +11491,7 @@ arm_fix_adjustable (fixP) addresses also ought to have their bottom bit set (assuming that they reside in Thumb code), but at the moment they will not. */ -boolean +bfd_boolean arm_fix_adjustable (fixP) fixS * fixP; { @@ -11508,21 +11543,6 @@ armelf_frob_symbol (symp, puntp) elf_frob_symbol (symp, puntp); } -int -arm_force_relocation (fixp) - struct fix * fixp; -{ - if ( fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT - || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY - || fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BRANCH - || fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BLX - || fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX - || fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BRANCH23) - return 1; - - return S_FORCE_RELOC (fixp->fx_addsy); -} - static bfd_reloc_code_real_type arm_parse_reloc () { diff -uprN binutils-2.13.90.0.16/gas/config/tc-arm.h binutils-2.13.90.0.18/gas/config/tc-arm.h --- binutils-2.13.90.0.16/gas/config/tc-arm.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-arm.h Mon Dec 16 12:22:52 2002 @@ -77,8 +77,6 @@ struct fix; #ifdef OBJ_COFF # if defined TE_PE -# define TC_FORCE_RELOCATION(x) \ - ((x)->fx_r_type == BFD_RELOC_RVA || S_FORCE_RELOC ((x)->fx_addsy)) # ifdef TE_EPOC # define TARGET_FORMAT (target_big_endian ? "epoc-pe-arm-big" : "epoc-pe-arm-little") # else @@ -92,11 +90,11 @@ struct fix; #ifdef OBJ_ELF # define TARGET_FORMAT elf32_arm_target_format() extern const char * elf32_arm_target_format PARAMS ((void)); - -# define TC_FORCE_RELOCATION(FIX) arm_force_relocation (FIX) - extern int arm_force_relocation PARAMS ((struct fix *)); #endif +#define TC_FORCE_RELOCATION(FIX) arm_force_relocation (FIX) +extern int arm_force_relocation PARAMS ((struct fix *)); + #define md_convert_frag(b, s, f) {as_fatal (_("arm convert_frag\n"));} #define md_cleanup() arm_cleanup () @@ -122,7 +120,7 @@ struct fix; #define EXTERN_FORCE_RELOC 1 #define tc_fix_adjustable(FIX) arm_fix_adjustable (FIX) -boolean arm_fix_adjustable PARAMS ((struct fix *)); +bfd_boolean arm_fix_adjustable PARAMS ((struct fix *)); /* Values passed to md_apply_fix3 don't include the symbol value. */ #define MD_APPLY_SYM_VALUE(FIX) 0 diff -uprN binutils-2.13.90.0.16/gas/config/tc-avr.c binutils-2.13.90.0.18/gas/config/tc-avr.c --- binutils-2.13.90.0.16/gas/config/tc-avr.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-avr.c Mon Dec 16 12:22:52 2002 @@ -694,25 +694,25 @@ avr_operand (opcode, where, op, line) case 'h': str = parse_exp (str, &op_expr); fix_new_exp (frag_now, where, opcode->insn_size * 2, - &op_expr, false, BFD_RELOC_AVR_CALL); + &op_expr, FALSE, BFD_RELOC_AVR_CALL); break; case 'L': str = parse_exp (str, &op_expr); fix_new_exp (frag_now, where, opcode->insn_size * 2, - &op_expr, true, BFD_RELOC_AVR_13_PCREL); + &op_expr, TRUE, BFD_RELOC_AVR_13_PCREL); break; case 'l': str = parse_exp (str, &op_expr); fix_new_exp (frag_now, where, opcode->insn_size * 2, - &op_expr, true, BFD_RELOC_AVR_7_PCREL); + &op_expr, TRUE, BFD_RELOC_AVR_7_PCREL); break; case 'i': str = parse_exp (str, &op_expr); fix_new_exp (frag_now, where + 2, opcode->insn_size * 2, - &op_expr, false, BFD_RELOC_16); + &op_expr, FALSE, BFD_RELOC_16); break; case 'M': @@ -723,7 +723,7 @@ avr_operand (opcode, where, op, line) r_type = avr_ldi_expression (&op_expr); str = input_line_pointer; fix_new_exp (frag_now, where, 3, - &op_expr, false, r_type); + &op_expr, FALSE, r_type); } break; @@ -1283,16 +1283,16 @@ avr_cons_fix_new (frag, where, nbytes, e if (exp_mod_pm == 0) { if (nbytes == 2) - fix_new_exp (frag, where, nbytes, exp, false, BFD_RELOC_16); + fix_new_exp (frag, where, nbytes, exp, FALSE, BFD_RELOC_16); else if (nbytes == 4) - fix_new_exp (frag, where, nbytes, exp, false, BFD_RELOC_32); + fix_new_exp (frag, where, nbytes, exp, FALSE, BFD_RELOC_32); else as_bad (_("illegal %srelocation size: %d"), "", nbytes); } else { if (nbytes == 2) - fix_new_exp (frag, where, nbytes, exp, false, BFD_RELOC_AVR_16_PM); + fix_new_exp (frag, where, nbytes, exp, FALSE, BFD_RELOC_AVR_16_PM); else as_bad (_("illegal %srelocation size: %d"), "`pm' ", nbytes); exp_mod_pm = 0; diff -uprN binutils-2.13.90.0.16/gas/config/tc-cris.c binutils-2.13.90.0.18/gas/config/tc-cris.c --- binutils-2.13.90.0.16/gas/config/tc-cris.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/tc-cris.c Mon Dec 16 12:22:52 2002 @@ -158,13 +158,13 @@ static char *cris_insn_first_word_frag P static struct hash_control *op_hash = NULL; /* Whether we demand that registers have a `$' prefix. Default here. */ -static boolean demand_register_prefix = false; +static bfd_boolean demand_register_prefix = FALSE; /* Whether global user symbols have a leading underscore. Default here. */ -static boolean symbols_have_leading_underscore = true; +static bfd_boolean symbols_have_leading_underscore = TRUE; /* Whether or not we allow PIC, and expand to PIC-friendly constructs. */ -static boolean pic = false; +static bfd_boolean pic = FALSE; const pseudo_typeS md_pseudo_table[] = { @@ -2920,21 +2920,21 @@ md_parse_option (arg, argp) return 1; case OPTION_NO_US: - demand_register_prefix = true; + demand_register_prefix = TRUE; if (OUTPUT_FLAVOR == bfd_target_aout_flavour) as_bad (_("--no-underscore is invalid with a.out format")); else - symbols_have_leading_underscore = false; + symbols_have_leading_underscore = FALSE; return 1; case OPTION_US: - demand_register_prefix = false; - symbols_have_leading_underscore = true; + demand_register_prefix = FALSE; + symbols_have_leading_underscore = TRUE; return 1; case OPTION_PIC: - pic = true; + pic = TRUE; return 1; default: @@ -3195,14 +3195,14 @@ tc_cris_check_adjusted_broken_word (new_ static void cris_force_reg_prefix () { - demand_register_prefix = true; + demand_register_prefix = TRUE; } /* Do not demand a leading REGISTER_PREFIX_CHAR for all registers. */ static void cris_relax_reg_prefix () { - demand_register_prefix = false; + demand_register_prefix = FALSE; } /* Adjust for having a leading '_' on all user symbols. */ @@ -3213,7 +3213,7 @@ static void cris_sym_leading_underscore thinks symbol starts with agrees with the command-line options, since the bfd is already created. */ - if (symbols_have_leading_underscore == false) + if (!symbols_have_leading_underscore) as_bad (_(".syntax %s requires command-line option `--underscore'"), SYNTAX_USER_SYM_LEADING_UNDERSCORE); } @@ -3222,7 +3222,7 @@ static void cris_sym_leading_underscore static void cris_sym_no_leading_underscore () { - if (symbols_have_leading_underscore == true) + if (symbols_have_leading_underscore) as_bad (_(".syntax %s requires command-line option `--no-underscore'"), SYNTAX_USER_SYM_NO_LEADING_UNDERSCORE); } diff -uprN binutils-2.13.90.0.16/gas/config/tc-d10v.c binutils-2.13.90.0.18/gas/config/tc-d10v.c --- binutils-2.13.90.0.16/gas/config/tc-d10v.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-d10v.c Tue Jan 21 10:21:32 2003 @@ -71,13 +71,13 @@ typedef int packing_type; #define PACK_RIGHT_LEFT (3) /* "<-" */ static packing_type etype = PACK_UNSPEC; /* Used by d10v_cleanup. */ -/* True if instruction swapping warnings should be inhibited. +/* TRUE if instruction swapping warnings should be inhibited. --nowarnswap. */ -static boolean flag_warn_suppress_instructionswap; +static bfd_boolean flag_warn_suppress_instructionswap; -/* True if instruction packing should be performed when --gstabs is specified. +/* TRUE if instruction packing should be performed when --gstabs is specified. --gstabs-packing, --no-gstabs-packing. */ -static boolean flag_allow_gstabs_packing = 1; +static bfd_boolean flag_allow_gstabs_packing = 1; /* Local functions. */ static int reg_name_search PARAMS ((char *name)); @@ -99,9 +99,9 @@ static int parallel_ok PARAMS ((struct d struct d10v_opcode *opcode2, unsigned long insn2, packing_type exec_type)); -static void check_resource_conflict PARAMS ((struct d10v_opcode *opcode1, - unsigned long insn1, - struct d10v_opcode *opcode2, +static void check_resource_conflict PARAMS ((struct d10v_opcode *opcode1, + unsigned long insn1, + struct d10v_opcode *opcode2, unsigned long insn2)); static symbolS * find_symbol_matching_register PARAMS ((expressionS *)); @@ -651,8 +651,8 @@ build_insn (opcode, opers, insn) fixups->fix[fixups->fc].reloc = get_reloc ((struct d10v_operand *) &d10v_operands[opcode->operands[i]]); - /* Check that a immediate was passed to ops that expect one. */ - if ((flags & OPERAND_NUM) + /* Check that an immediate was passed to ops that expect one. */ + if ((flags & OPERAND_NUM) && (fixups->fix[fixups->fc].reloc == 0)) as_bad (_("operand is not an immediate")); } @@ -666,10 +666,10 @@ build_insn (opcode, opers, insn) fixups->fix[fixups->fc].exp = opers[i]; fixups->fix[fixups->fc].operand = opcode->operands[i]; fixups->fix[fixups->fc].pcrel = - (flags & OPERAND_ADDR) ? true : false; + (flags & OPERAND_ADDR) ? TRUE : FALSE; (fixups->fc)++; } - + /* Truncate to the proper number of bits. */ if ((opers[i].X_op == O_constant) && check_range (number, bits, flags)) as_bad (_("operand out of range: %lu"), number); @@ -677,8 +677,8 @@ build_insn (opcode, opers, insn) insn = insn | (number << shift); } - /* kludge: for DIVS, we need to put the operands in twice on the second - pass, format is changed to LONG_R to force the second set of operands + /* kludge: for DIVS, we need to put the operands in twice on the second + pass, format is changed to LONG_R to force the second set of operands to not be shifted over 15. */ if ((opcode->opcode == OPCODE_DIVS) && (format == LONG_L)) insn = build_insn (opcode, opers, insn); @@ -735,8 +735,8 @@ write_1_short (opcode, insn, fx) if (opcode->exec_type & PARONLY) as_fatal (_("Instruction must be executed in parallel with another instruction.")); - /* The other container needs to be NOP. - According to 4.3.1: for FM=00, sub-instructions performed only by IU + /* The other container needs to be NOP. + According to 4.3.1: for FM=00, sub-instructions performed only by IU cannot be encoded in L-container. */ if (opcode->unit == IU) insn |= FM00 | (NOP << 15); /* Right container. */ @@ -969,8 +969,8 @@ parallel_ok (op1, insn1, op2, insn2, exe and the second reads the PSW (which includes C, F0, and F1), then they cannot operate safely in parallel. */ - /* The bitmasks (mod and used) look like this (bit 31 = MSB). - r0-r15 0-15 + /* The bitmasks (mod and used) look like this (bit 31 = MSB). + r0-r15 0-15 a0-a1 16-17 cr (not psw) 18 psw 19 @@ -1057,7 +1057,7 @@ parallel_ok (op1, insn1, op2, insn2, exe /* Determine if there are any resource conflicts among two manually parallelized instructions. Some of this was lifted from parallel_ok. */ -static void +static void check_resource_conflict (op1, insn1, op2, insn2) struct d10v_opcode *op1, *op2; unsigned long insn1, insn2; @@ -1130,17 +1130,17 @@ check_resource_conflict (op1, insn1, op2 if (flags & (OPERAND_ACC0 | OPERAND_ACC1)) regno += 16; else if (flags & OPERAND_CONTROL) /* mvtc or mvfc */ - { + { if (regno == 0) regno = 19; else - regno = 18; + regno = 18; } else if (flags & OPERAND_FFLAG) regno = 22; else if (flags & OPERAND_CFLAG) regno = 21; - + if (flags & OPERAND_DEST /* Auto inc/dec also modifies the register. */ || (op->operands[i + 1] != 0 @@ -1286,7 +1286,7 @@ md_assemble (str) d10v_cleanup (); if (prev_opcode - && (0 == write_2_short (prev_opcode, prev_insn, opcode, insn, extype, + && (0 == write_2_short (prev_opcode, prev_insn, opcode, insn, extype, fixups))) { /* No instructions saved. */ @@ -1454,14 +1454,14 @@ find_opcode (opcode, myops) unsigned long current_position; unsigned long symbol_position; unsigned long value; - boolean found_symbol; + bfd_boolean found_symbol; /* Calculate the address of the current instruction and the address of the symbol. Do this by summing the offsets of previous frags until we reach the frag containing the symbol, and the current frag. */ sym_frag = symbol_get_frag (myops[opnum].X_add_symbol); - found_symbol = false; + found_symbol = FALSE; current_position = obstack_next_free (&frchain_now->frch_obstack) @@ -1473,7 +1473,7 @@ find_opcode (opcode, myops) current_position += f->fr_fix + f->fr_offset; if (f == sym_frag) - found_symbol = true; + found_symbol = TRUE; if (! found_symbol) symbol_position += f->fr_fix + f->fr_offset; @@ -1512,7 +1512,7 @@ find_opcode (opcode, myops) } match = 0; - + /* Now search the opcode table table for one with operands that matches what we've got. */ while (!match) @@ -1554,19 +1554,19 @@ find_opcode (opcode, myops) break; } - /* Unfortunatly, for the indirect operand in instructions such - as ``ldb r1, @(c,r14)'' this function can be passed - X_op == O_register (because 'c' is a valid register name). - However we cannot just ignore the case when X_op == O_register - but flags & OPERAND_REG is null, so we check to see if a symbol - of the same name as the register exists. If the symbol does - exist, then the parser was unable to distinguish the two cases + /* Unfortunatly, for the indirect operand in instructions such + as ``ldb r1, @(c,r14)'' this function can be passed + X_op == O_register (because 'c' is a valid register name). + However we cannot just ignore the case when X_op == O_register + but flags & OPERAND_REG is null, so we check to see if a symbol + of the same name as the register exists. If the symbol does + exist, then the parser was unable to distinguish the two cases and we fix things here. (Ref: PR14826) */ if (!(flags & OPERAND_REG) && (X_op == O_register)) { symbolS * sym; - + sym = find_symbol_matching_register (& myops[i]); if (sym != NULL) @@ -1764,9 +1764,9 @@ md_apply_fix3 (fixP, valP, seg) rep = (struct d10v_opcode *) hash_find (d10v_hash, "rep"); repi = (struct d10v_opcode *) hash_find (d10v_hash, "repi"); if ((insn & FM11) == FM11 - && ((repi != NULL + && ((repi != NULL && (insn & repi->mask) == (unsigned) repi->opcode) - || (rep != NULL + || (rep != NULL && (insn & rep->mask) == (unsigned) rep->opcode)) && value < 4) as_fatal @@ -1892,7 +1892,7 @@ md_operand (expressionP) } } -boolean +bfd_boolean d10v_fix_adjustable (fixP) fixS *fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-d10v.h binutils-2.13.90.0.18/gas/config/tc-d10v.h --- binutils-2.13.90.0.16/gas/config/tc-d10v.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-d10v.h Mon Dec 16 12:22:52 2002 @@ -58,7 +58,7 @@ int d10v_cleanup PARAMS ((void)); } while (0) #define tc_fix_adjustable(FIX) d10v_fix_adjustable(FIX) -boolean d10v_fix_adjustable PARAMS ((struct fix *)); +bfd_boolean d10v_fix_adjustable PARAMS ((struct fix *)); #define TC_FORCE_RELOCATION(FIX) d10v_force_relocation(FIX) extern int d10v_force_relocation PARAMS ((struct fix *)); diff -uprN binutils-2.13.90.0.16/gas/config/tc-d30v.c binutils-2.13.90.0.18/gas/config/tc-d30v.c --- binutils-2.13.90.0.16/gas/config/tc-d30v.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-d30v.c Mon Dec 16 12:22:52 2002 @@ -252,32 +252,31 @@ check_range (num, bits, flags) Allow either. */ min = -((unsigned long) 1 << (bits - 1)); max = ((unsigned long) 1 << bits) - 1; - return (long)num < min || (long)num > max; + return (long) num < min || (long) num > max; } if (flags & OPERAND_SHIFT) { /* We know that all shifts are right by three bits. */ + num >>= 3; if (flags & OPERAND_SIGNED) - num = (unsigned long) ((long) num >= 0) - ? (((long) num) >> 3) - : ((num >> 3) | ~(~(unsigned long) 0 >> 3)); - else - num >>= 3; + { + unsigned long sign_bit = ((unsigned long) -1L >> 4) + 1; + num = (num ^ sign_bit) - sign_bit; + } } if (flags & OPERAND_SIGNED) { max = ((unsigned long) 1 << (bits - 1)) - 1; min = - ((unsigned long) 1 << (bits - 1)); - return (long)num > max || (long)num < min; + return (long) num > max || (long) num < min; } else { max = ((unsigned long) 1 << bits) - 1; - min = 0; - return num > max || num < min; + return num > (unsigned long) max; } } @@ -296,7 +295,7 @@ md_show_usage (stream) int md_parse_option (c, arg) int c; - char *arg; + char *arg ATTRIBUTE_UNUSED; { switch (c) { @@ -332,7 +331,7 @@ md_parse_option (c, arg) symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -382,9 +381,9 @@ md_atof (type, litP, sizeP) void md_convert_frag (abfd, sec, fragP) - bfd *abfd; - asection *sec; - fragS *fragP; + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec ATTRIBUTE_UNUSED; + fragS *fragP ATTRIBUTE_UNUSED; { abort (); } @@ -653,7 +652,7 @@ build_insn (opcode, opers) /* Truncate to the proper number of bits. */ if ((opers[i].X_op == O_constant) && check_range (number, bits, flags)) - as_bad (_("operand out of range: %d"), number); + as_bad (_("operand out of range: %ld"), number); if (bits < 31) number &= 0x7FFFFFFF >> (31 - bits); if (flags & OPERAND_SHIFT) @@ -677,7 +676,7 @@ build_insn (opcode, opers) static void write_long (opcode, insn, fx) - struct d30v_insn *opcode; + struct d30v_insn *opcode ATTRIBUTE_UNUSED; long long insn; Fixups *fx; { @@ -793,7 +792,7 @@ write_2_short (opcode1, insn1, opcode2, we are not optimizing, then we have been asked to produce an error about such constructs. For the purposes of this test, subroutine calls are considered to be branches. */ - write_1_short (opcode1, insn1, fx->next, false); + write_1_short (opcode1, insn1, fx->next, FALSE); return 1; } @@ -833,14 +832,14 @@ write_2_short (opcode1, insn1, opcode2, /* We must treat repeat instructions likewise, since the following instruction has to be separate from the repeat in order to be repeated. */ - write_1_short (opcode1, insn1, fx->next, false); + write_1_short (opcode1, insn1, fx->next, FALSE); return 1; } else if (prev_left_kills_right_p) { /* The left instruction kils the right slot, so we must leave it empty. */ - write_1_short (opcode1, insn1, fx->next, false); + write_1_short (opcode1, insn1, fx->next, FALSE); return 1; } else if (opcode1->op->unit == IU) @@ -850,7 +849,7 @@ write_2_short (opcode1, insn1, opcode2, /* Case 103810 is a request from Mitsubishi that opcodes with EITHER_BUT_PREFER_MU should not be executed in reverse sequential order. */ - write_1_short (opcode1, insn1, fx->next, false); + write_1_short (opcode1, insn1, fx->next, FALSE); return 1; } @@ -1243,7 +1242,7 @@ md_assemble (str) if ((prev_insn != -1) && prev_seg && ((prev_seg != now_seg) || (prev_subseg != now_subseg))) - d30v_cleanup (false); + d30v_cleanup (FALSE); if (d30v_current_align < 3) d30v_align (3, NULL, d30v_last_label); @@ -1282,7 +1281,7 @@ md_assemble (str) /* If two instructions are present and we already have one saved, then first write it out. */ - d30v_cleanup (false); + d30v_cleanup (FALSE); /* Assemble first instruction and save it. */ prev_insn = do_assemble (str, &prev_opcode, 1, 0); @@ -1343,13 +1342,13 @@ md_assemble (str) of NOPs for us. */ if (prev_insn != -1 && (strcmp (prev_opcode.op->name, "nop") == 0)) - d30v_cleanup (false); + d30v_cleanup (FALSE); else { char *f; if (prev_insn != -1) - d30v_cleanup (true); + d30v_cleanup (TRUE); else { f = frag_more (8); @@ -1374,7 +1373,7 @@ md_assemble (str) { /* Can't parallelize, flush current instruction and add a sequential NOP. */ - write_1_short (&opcode, (long) insn, fixups->next->next, true); + write_1_short (&opcode, (long) insn, fixups->next->next, TRUE); /* Make the previous instruction the current one. */ extype = EXEC_UNKNOWN; @@ -1393,7 +1392,7 @@ md_assemble (str) { if (extype != EXEC_UNKNOWN) as_bad (_("Instruction uses long version, so it cannot be mixed as specified")); - d30v_cleanup (false); + d30v_cleanup (FALSE); write_long (&opcode, insn, fixups); prev_insn = -1; } @@ -1792,7 +1791,7 @@ find_format (opcode, myops, fsize, cmp_h arelent * tc_gen_reloc (seg, fixp) - asection *seg; + asection *seg ATTRIBUTE_UNUSED; fixS *fixp; { arelent *reloc; @@ -1815,8 +1814,8 @@ tc_gen_reloc (seg, fixp) int md_estimate_size_before_relax (fragp, seg) - fragS *fragp; - asection *seg; + fragS *fragp ATTRIBUTE_UNUSED; + asection *seg ATTRIBUTE_UNUSED; { abort (); return 0; @@ -1838,7 +1837,7 @@ void md_apply_fix3 (fixP, valP, seg) fixS *fixP; valueT *valP; - segT seg; + segT seg ATTRIBUTE_UNUSED; { char *where; unsigned long insn, insn2; @@ -1863,7 +1862,7 @@ md_apply_fix3 (fixP, valP, seg) as_bad (_("line %d: unable to place address of symbol '%s' into a byte"), fixP->fx_line, S_GET_NAME (fixP->fx_addsy)); else if (((unsigned)value) > 0xff) - as_bad (_("line %d: unable to place value %x into a byte"), + as_bad (_("line %d: unable to place value %lx into a byte"), fixP->fx_line, value); else *(unsigned char *) where = value; @@ -1874,7 +1873,7 @@ md_apply_fix3 (fixP, valP, seg) as_bad (_("line %d: unable to place address of symbol '%s' into a short"), fixP->fx_line, S_GET_NAME (fixP->fx_addsy)); else if (((unsigned)value) > 0xffff) - as_bad (_("line %d: unable to place value %x into a short"), + as_bad (_("line %d: unable to place value %lx into a short"), fixP->fx_line, value); else bfd_putb16 ((bfd_vma) value, (unsigned char *) where); @@ -1999,7 +1998,7 @@ d30v_cleanup (use_sequential) subseg_set (seg, subseg); prev_insn = -1; if (use_sequential) - prev_mul32_p = false; + prev_mul32_p = FALSE; } return 1; @@ -2031,7 +2030,7 @@ d30v_start_line () c++; if (*c == '.') - d30v_cleanup (false); + d30v_cleanup (FALSE); } static void @@ -2063,7 +2062,7 @@ d30v_frob_label (lab) symbolS *lab; { /* Emit any pending instructions. */ - d30v_cleanup (false); + d30v_cleanup (FALSE); /* Update the label's address with the current output pointer. */ symbol_set_frag (lab, frag_now); @@ -2113,7 +2112,7 @@ d30v_align (n, pfill, label) this alignement request. The alignment of the current frag can be changed under our feet, for example by a .ascii directive in the source code. cf testsuite/gas/d30v/reloc.s */ - d30v_cleanup (false); + d30v_cleanup (FALSE); if (pfill == NULL) { @@ -2140,7 +2139,7 @@ d30v_align (n, pfill, label) if (label != NULL) { symbolS *sym; - int label_seen = false; + int label_seen = FALSE; struct frag *old_frag; valueT old_value; valueT new_value; @@ -2167,7 +2166,7 @@ d30v_align (n, pfill, label) if (symbol_get_frag (sym) == old_frag && S_GET_VALUE (sym) == old_value) { - label_seen = true; + label_seen = TRUE; symbol_set_frag (sym, frag_now); S_SET_VALUE (sym, new_value); } @@ -2184,7 +2183,7 @@ d30v_align (n, pfill, label) static void s_d30v_align (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { int align; char fill, *pfill = NULL; diff -uprN binutils-2.13.90.0.16/gas/config/tc-d30v.h binutils-2.13.90.0.18/gas/config/tc-d30v.h --- binutils-2.13.90.0.16/gas/config/tc-d30v.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-d30v.h Mon Dec 16 12:22:52 2002 @@ -48,9 +48,9 @@ extern long md_pcrel_from_section PARAMS #define md_number_to_chars number_to_chars_bigendian int d30v_cleanup PARAMS ((int)); -#define md_after_pass_hook() d30v_cleanup (false) -#define md_cleanup() d30v_cleanup (false) -#define TC_START_LABEL(ch, ptr) (ch == ':' && d30v_cleanup (false)) +#define md_after_pass_hook() d30v_cleanup (FALSE) +#define md_cleanup() d30v_cleanup (FALSE) +#define TC_START_LABEL(ch, ptr) (ch == ':' && d30v_cleanup (FALSE)) void d30v_start_line PARAMS ((void)); #define md_start_line_hook() d30v_start_line () diff -uprN binutils-2.13.90.0.16/gas/config/tc-dlx.c binutils-2.13.90.0.18/gas/config/tc-dlx.c --- binutils-2.13.90.0.16/gas/config/tc-dlx.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-dlx.c Tue Jan 21 10:21:32 2003 @@ -585,7 +585,7 @@ dlx_parse_loadop (str) /* Searching for (/[ which will match the ]/). */ for (pb = idx - 1; str[pb] != match; pb -= 1) /* Match can only be either '[' or '(', if it is - '(' then this can be an normal expression, we'll treat + '(' then this can be a normal expression, we'll treat it as an operand. */ if (str[pb] == endm || pb < (idx - 5)) goto load_no_rs1; @@ -1154,7 +1154,7 @@ md_dlx_force_relocation (fixp) || S_FORCE_RELOC (fixp->fx_addsy)); } -boolean +bfd_boolean md_dlx_fix_adjustable (fixP) fixS *fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-dlx.h binutils-2.13.90.0.18/gas/config/tc-dlx.h --- binutils-2.13.90.0.16/gas/config/tc-dlx.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-dlx.h Mon Dec 16 12:22:52 2002 @@ -80,7 +80,7 @@ struct fix; extern int md_dlx_force_relocation PARAMS ((struct fix *)); #define tc_fix_adjustable(FIX) md_dlx_fix_adjustable (FIX) -extern boolean md_dlx_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean md_dlx_fix_adjustable PARAMS ((struct fix *)); /* Values passed to md_apply_fix3 don't include the symbol value. */ #define MD_APPLY_SYM_VALUE(FIX) 0 diff -uprN binutils-2.13.90.0.16/gas/config/tc-fr30.c binutils-2.13.90.0.18/gas/config/tc-fr30.c --- binutils-2.13.90.0.16/gas/config/tc-fr30.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-fr30.c Mon Dec 16 12:22:52 2002 @@ -66,8 +66,8 @@ size_t md_longopts_size = sizeof (md_lon int md_parse_option (c, arg) - int c; - char * arg; + int c ATTRIBUTE_UNUSED; + char *arg ATTRIBUTE_UNUSED; { switch (c) { @@ -95,10 +95,6 @@ const pseudo_typeS md_pseudo_table[] = void md_begin () { - flagword applicable; - segT seg; - subsegT subseg; - /* Initialize the `cgen' interface. */ /* Set the machine number and endian. */ @@ -114,12 +110,11 @@ md_begin () void md_assemble (str) - char * str; + char *str; { static int last_insn_had_delay_slot = 0; fr30_insn insn; - char * errmsg; - char * str2 = NULL; + char *errmsg; /* Initialize GAS's cgen interface for a new instruction. */ gas_cgen_init_parse (); @@ -172,7 +167,7 @@ md_section_align (segment, size) symbolS * md_undefined_symbol (name) - char * name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -207,6 +202,7 @@ const relax_typeS md_relax_table[] = {0x2000000 - 1 - 2, -0x2000000 - 2, 4, 0 } }; +#if 0 long fr30_relax_frag (segment, fragP, stretch) segT segment; @@ -248,6 +244,7 @@ fr30_relax_frag (segment, fragP, stretch return growth; } +#endif /* Return an initial guess of the length by which a fragment must grow to hold a branch to reach its destination. @@ -273,7 +270,9 @@ md_estimate_size_before_relax (fragP, se if (S_GET_SEGMENT (fragP->fr_symbol) != segment) { +#if 0 int old_fr_fix = fragP->fr_fix; +#endif /* The symbol is undefined in this segment. Change the relaxation subtype to the max allowable and leave @@ -337,9 +336,9 @@ md_estimate_size_before_relax (fragP, se void md_convert_frag (abfd, sec, fragP) - bfd * abfd; - segT sec; - fragS * fragP; + bfd *abfd ATTRIBUTE_UNUSED; + segT sec ATTRIBUTE_UNUSED; + fragS *fragP ATTRIBUTE_UNUSED; { #if 0 char * opcode; @@ -449,9 +448,9 @@ md_pcrel_from_section (fixP, sec) bfd_reloc_code_real_type md_cgen_lookup_reloc (insn, operand, fixP) - const CGEN_INSN * insn; - const CGEN_OPERAND * operand; - fixS * fixP; + const CGEN_INSN *insn ATTRIBUTE_UNUSED; + const CGEN_OPERAND *operand; + fixS *fixP; { switch (operand->type) { @@ -515,7 +514,6 @@ md_atof (type, litP, sizeP) int prec; LITTLENUM_TYPE words [MAX_LITTLENUMS]; char * t; - char * atof_ieee (); switch (type) { @@ -556,6 +554,8 @@ md_atof (type, litP, sizeP) } /* Worker function for fr30_is_colon_insn(). */ +static char restore_colon PARAMS ((int)); + static char restore_colon (advance_i_l_p_by) int advance_i_l_p_by; @@ -641,7 +641,7 @@ fr30_is_colon_insn (start) return 0; } -boolean +bfd_boolean fr30_fix_adjustable (fixP) fixS * fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-fr30.h binutils-2.13.90.0.18/gas/config/tc-fr30.h --- binutils-2.13.90.0.16/gas/config/tc-fr30.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-fr30.h Mon Dec 16 12:22:52 2002 @@ -49,7 +49,7 @@ #define tc_fix_adjustable(FIX) fr30_fix_adjustable (FIX) struct fix; -extern boolean fr30_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean fr30_fix_adjustable PARAMS ((struct fix *)); /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ #define TC_FORCE_RELOCATION(fix) fr30_force_relocation (fix) diff -uprN binutils-2.13.90.0.16/gas/config/tc-frv.c binutils-2.13.90.0.18/gas/config/tc-frv.c --- binutils-2.13.90.0.16/gas/config/tc-frv.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-frv.c Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* tc-frv.c -- Assembler for the Fujitsu FRV. - Copyright (C) 2002 Free Software Foundation. + Copyright 2002 Free Software Foundation. This file is part of GAS, the GNU Assembler. @@ -67,8 +67,8 @@ enum vliw_insn_type #define NOP_KEEP 1 /* Keep these NOPS. */ #define NOP_DELETE 2 /* Delete these NOPS. */ -#define DO_COUNT true -#define DONT_COUNT false +#define DO_COUNT TRUE +#define DONT_COUNT FALSE /* A list of insns within a VLIW insn. */ struct vliw_insn_list @@ -467,9 +467,11 @@ md_begin () int chain_num = 0; +struct vliw_insn_list *frv_insert_vliw_insn PARAMS ((bfd_boolean)); + struct vliw_insn_list * frv_insert_vliw_insn (count) - boolean count; + bfd_boolean count; { struct vliw_insn_list *vliw_insn_list_entry; struct vliw_chain *vliw_chain_entry; @@ -538,6 +540,9 @@ frv_insert_vliw_insn (count) /* Check a vliw insn for an insn of type containing the sym passed in label_sym. */ +static struct vliw_insn_list *frv_find_in_vliw + PARAMS ((enum vliw_insn_type, struct vliw_chain *, symbolS *)); + static struct vliw_insn_list * frv_find_in_vliw (vliw_insn_type, this_chain, label_sym) enum vliw_insn_type vliw_insn_type; @@ -573,6 +578,8 @@ enum vliw_nop_type VLIW_DOUBLE_THEN_SINGLE_NOP }; +static void frv_debug_tomcat PARAMS ((struct vliw_chain *)); + static void frv_debug_tomcat (start_chain) struct vliw_chain *start_chain; @@ -601,6 +608,7 @@ frv_debug_tomcat (start_chain) } } +static void frv_adjust_vliw_count PARAMS ((struct vliw_chain *)); static void frv_adjust_vliw_count (this_chain) @@ -623,6 +631,8 @@ frv_adjust_vliw_count (this_chain) /* Insert the desired nop combination in the vliw chain before insert_before_insn. Rechain the vliw insn. */ +static struct vliw_chain *frv_tomcat_shuffle + PARAMS ((enum vliw_nop_type, struct vliw_chain *, struct vliw_insn_list *)); static struct vliw_chain * frv_tomcat_shuffle (this_nop_type, vliw_to_split, insert_before_insn) @@ -631,7 +641,7 @@ frv_tomcat_shuffle (this_nop_type, vliw_ struct vliw_insn_list *insert_before_insn; { - boolean pack_prev = false; + bfd_boolean pack_prev = FALSE; struct vliw_chain *return_me = NULL; struct vliw_insn_list *prev_insn = NULL; struct vliw_insn_list *curr_insn = vliw_to_split->insn_list; @@ -652,7 +662,7 @@ frv_tomcat_shuffle (this_nop_type, vliw_ Then don't set pack bit later. */ if (curr_insn->type != VLIW_LABEL_TYPE) - pack_prev = true; + pack_prev = TRUE; prev_insn = curr_insn; curr_insn = curr_insn->next; } @@ -792,6 +802,8 @@ frv_tomcat_shuffle (this_nop_type, vliw_ return return_me; } +static void frv_tomcat_analyze_vliw_chains PARAMS ((void)); + static void frv_tomcat_analyze_vliw_chains () { @@ -861,7 +873,7 @@ workaround_top: { if (this_insn->type == VLIW_LABEL_TYPE) { - if ((temp_insn = frv_find_in_vliw (VLIW_BRANCH_TYPE, vliw2, this_insn->sym, temp_insn)) != NULL) + if ((temp_insn = frv_find_in_vliw (VLIW_BRANCH_TYPE, vliw2, this_insn->sym)) != NULL) { temp_insn->snop_frag->fr_subtype = NOP_KEEP; vliw1 = frv_tomcat_shuffle (VLIW_SINGLE_NOP, vliw2, this_insn); @@ -892,7 +904,7 @@ workaround_top: if (frv_is_branch_insn (this_insn->insn)) { - if ((temp_insn = frv_find_in_vliw (VLIW_LABEL_TYPE, vliw1, this_insn->sym, temp_insn)) != NULL) + if ((temp_insn = frv_find_in_vliw (VLIW_LABEL_TYPE, vliw1, this_insn->sym)) != NULL) { /* Insert [nop/nop] [nop] before branch. */ this_insn->snop_frag->fr_subtype = NOP_KEEP; @@ -1182,11 +1194,11 @@ md_cgen_lookup_reloc (insn, operand, fix switch (operand->type) { case FRV_OPERAND_LABEL16: - fixP->fx_pcrel = true; + fixP->fx_pcrel = TRUE; return BFD_RELOC_FRV_LABEL16; case FRV_OPERAND_LABEL24: - fixP->fx_pcrel = true; + fixP->fx_pcrel = TRUE; return BFD_RELOC_FRV_LABEL24; case FRV_OPERAND_UHI16: @@ -1258,7 +1270,6 @@ md_atof (type, litP, sizeP) int prec; LITTLENUM_TYPE words [MAX_LITTLENUMS]; char * t; - char * atof_ieee (); switch (type) { @@ -1298,7 +1309,7 @@ md_atof (type, litP, sizeP) return 0; } -boolean +bfd_boolean frv_fix_adjustable (fixP) fixS * fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-frv.h binutils-2.13.90.0.18/gas/config/tc-frv.h --- binutils-2.13.90.0.16/gas/config/tc-frv.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-frv.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ /* tc-frv.h -- Header file for tc-frv.c. - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -57,7 +57,7 @@ extern long frv_relax_frag PARAMS ((frag #define tc_fix_adjustable(FIX) frv_fix_adjustable (FIX) struct fix; -extern boolean frv_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean frv_fix_adjustable PARAMS ((struct fix *)); /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ #define TC_FORCE_RELOCATION(fix) frv_force_relocation (fix) diff -uprN binutils-2.13.90.0.16/gas/config/tc-h8300.h binutils-2.13.90.0.18/gas/config/tc-h8300.h --- binutils-2.13.90.0.16/gas/config/tc-h8300.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-h8300.h Tue Jan 21 10:21:32 2003 @@ -41,7 +41,7 @@ struct internal_reloc; #define WORKING_DOT_WORD -/* This macro translates between an internal fix and an coff reloc type */ +/* This macro translates between an internal fix and a coff reloc type. */ #define TC_COFF_FIX2RTYPE(fixP) abort (); #define BFD_ARCH bfd_arch_h8300 diff -uprN binutils-2.13.90.0.16/gas/config/tc-h8500.c binutils-2.13.90.0.18/gas/config/tc-h8500.c --- binutils-2.13.90.0.16/gas/config/tc-h8500.c Sat Jun 8 20:44:52 2002 +++ binutils-2.13.90.0.18/gas/config/tc-h8500.c Mon Dec 16 12:22:52 2002 @@ -41,8 +41,6 @@ const char line_comment_chars[] = "!#"; Integer arg to pass to the function */ -void cons (); - const pseudo_typeS md_pseudo_table[] = { {"int", cons, 2}, @@ -122,7 +120,7 @@ static struct hash_control *opcode_hash_ void md_begin () { - h8500_opcode_info *opcode; + const h8500_opcode_info *opcode; char prev_buffer[100]; int idx = 0; @@ -148,14 +146,11 @@ static int crw; /* word sized cr */ static int cr; /* unknown size cr */ static expressionS displacement;/* displacement expression */ -static int displacement_size; /* and size if given */ static int immediate_inpage; static expressionS immediate; /* immediate expression */ -static int immediate_size; /* and size if given */ static expressionS absolute; /* absolute expression */ -static int absolute_size; /* and size if given */ typedef struct { @@ -169,6 +164,8 @@ h8500_operand_info; /* Try to parse a reg name. Return the number of chars consumed. */ +static int parse_reg PARAMS ((char *, int *, int *)); + static int parse_reg (src, mode, reg) char *src; @@ -246,6 +243,8 @@ parse_reg (src, mode, reg) return 0; } +static char *parse_exp PARAMS ((char *, expressionS *, int *)); + static char * parse_exp (s, op, page) char *s; @@ -292,6 +291,9 @@ typedef enum exp_signed, exp_unsigned, exp_sandu } sign_type; +static char *skip_colonthing + PARAMS ((sign_type, char *, h8500_operand_info *, int, int, int, int)); + static char * skip_colonthing (sign, ptr, exp, def, size8, size16, size24) sign_type sign; @@ -311,12 +313,12 @@ skip_colonthing (sign, ptr, exp, def, si ptr++; exp->type = size8; } - else if (ptr[0] == '1' & ptr[1] == '6') + else if (ptr[0] == '1' && ptr[1] == '6') { ptr += 2; exp->type = size16; } - else if (ptr[0] == '2' & ptr[1] == '4') + else if (ptr[0] == '2' && ptr[1] == '4') { if (!size24) { @@ -362,6 +364,8 @@ skip_colonthing (sign, ptr, exp, def, si return ptr; } +static int parse_reglist PARAMS ((char *, h8500_operand_info *)); + static int parse_reglist (src, op) char *src; @@ -431,6 +435,8 @@ parse_reglist (src, op) */ +static void get_operand PARAMS ((char **, h8500_operand_info *, char)); + static void get_operand (ptr, op, ispage) char **ptr; @@ -559,12 +565,14 @@ get_operand (ptr, op, ispage) } } +static char *get_operands + PARAMS ((h8500_opcode_info *, char *, h8500_operand_info *)); + static char * get_operands (info, args, operand) h8500_opcode_info *info; char *args; h8500_operand_info *operand; - { char *ptr = args; @@ -602,6 +610,9 @@ get_operands (info, args, operand) int pcrel8; /* Set when we've seen a pcrel operand */ +static h8500_opcode_info *get_specific + PARAMS ((h8500_opcode_info *, h8500_operand_info *)); + static h8500_opcode_info * get_specific (opcode, operands) h8500_opcode_info *opcode; @@ -610,8 +621,7 @@ get_specific (opcode, operands) h8500_opcode_info *this_try = opcode; int found = 0; unsigned int noperands = opcode->nargs; - - unsigned int this_index = opcode->idx; + int this_index = opcode->idx; while (this_index == opcode->idx && !found) { @@ -843,7 +853,9 @@ get_specific (opcode, operands) return 0; } -int +static int check PARAMS ((expressionS *, int, int)); + +static int check (operand, low, high) expressionS *operand; int low; @@ -858,6 +870,8 @@ check (operand, low, high) return operand->X_add_number; } +static void insert PARAMS ((char *, int, expressionS *, int, int)); + static void insert (output, index, exp, reloc, pcrel) char *output; @@ -874,10 +888,13 @@ insert (output, index, exp, reloc, pcrel reloc); } -void +static void build_relaxable_instruction + PARAMS ((h8500_opcode_info *, h8500_operand_info *)); + +static void build_relaxable_instruction (opcode, operand) h8500_opcode_info *opcode; - h8500_operand_info *operand; + h8500_operand_info *operand ATTRIBUTE_UNUSED; { /* All relaxable instructions start life as two bytes but can become three bytes long if a lonely branch and up to 9 bytes if long @@ -917,11 +934,12 @@ build_relaxable_instruction (opcode, ope /* Now we know what sort of opcodes it is, let's build the bytes. */ +static void build_bytes PARAMS ((h8500_opcode_info *, h8500_operand_info *)); + static void build_bytes (opcode, operand) h8500_opcode_info *opcode; h8500_operand_info *operand; - { int index; @@ -1116,21 +1134,21 @@ md_assemble (str) void tc_crawl_symbol_chain (headers) - object_headers *headers; + object_headers *headers ATTRIBUTE_UNUSED; { printf (_("call to tc_crawl_symbol_chain \n")); } symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } void tc_headers_hook (headers) - object_headers *headers; + object_headers *headers ATTRIBUTE_UNUSED; { printf (_("call to tc_headers_hook \n")); } @@ -1154,7 +1172,6 @@ md_atof (type, litP, sizeP) LITTLENUM_TYPE words[MAX_LITTLENUMS]; LITTLENUM_TYPE *wordP; char *t; - char *atof_ieee (); switch (type) { @@ -1207,24 +1224,19 @@ size_t md_longopts_size = sizeof (md_lon int md_parse_option (c, arg) - int c; - char *arg; + int c ATTRIBUTE_UNUSED; + char *arg ATTRIBUTE_UNUSED; { return 0; } void md_show_usage (stream) - FILE *stream; + FILE *stream ATTRIBUTE_UNUSED; { } -void -tc_aout_fix_to_chars () -{ - printf (_("call to tc_aout_fix_to_chars \n")); - abort (); -} +static void wordify_scb PARAMS ((char *, int *, int *)); static void wordify_scb (buffer, disp_size, inst_size) @@ -1296,8 +1308,8 @@ wordify_scb (buffer, disp_size, inst_siz void md_convert_frag (headers, seg, fragP) - object_headers *headers; - segT seg; + object_headers *headers ATTRIBUTE_UNUSED; + segT seg ATTRIBUTE_UNUSED; fragS *fragP; { int disp_size = 0; @@ -1492,7 +1504,7 @@ md_pcrel_from (fixP) void tc_coff_symbol_emit_hook (ignore) - symbolS *ignore; + symbolS *ignore ATTRIBUTE_UNUSED; { } diff -uprN binutils-2.13.90.0.16/gas/config/tc-h8500.h binutils-2.13.90.0.18/gas/config/tc-h8500.h --- binutils-2.13.90.0.16/gas/config/tc-h8500.h Fri Mar 9 11:16:54 2001 +++ binutils-2.13.90.0.18/gas/config/tc-h8500.h Tue Jan 21 10:21:32 2003 @@ -28,7 +28,7 @@ struct internal_reloc; #define WORKING_DOT_WORD -/* This macro translates between an internal fix and an coff reloc type */ +/* This macro translates between an internal fix and a coff reloc type. */ #define TC_COFF_FIX2RTYPE(fixP) tc_coff_fix2rtype(fixP) #define BFD_ARCH bfd_arch_h8500 @@ -46,7 +46,10 @@ extern void tc_reloc_mangle #define RELOC_32 1234 #define TC_START_LABEL(ch, ptr) (ch == ':' && start_label(ptr)) +int start_label PARAMS ((char *)); + #define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep(frag) +int tc_coff_sizemachdep PARAMS ((struct frag *)); #define md_operand(x) diff -uprN binutils-2.13.90.0.16/gas/config/tc-hppa.c binutils-2.13.90.0.18/gas/config/tc-hppa.c --- binutils-2.13.90.0.16/gas/config/tc-hppa.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-hppa.c Mon Dec 16 12:22:52 2002 @@ -3949,7 +3949,7 @@ pa_ip (str) failed: /* Check if the args matched. */ - if (match == FALSE) + if (!match) { if (&insn[1] - pa_opcodes < (int) NUMOPCODES && !strcmp (insn->name, insn[1].name)) @@ -4680,7 +4680,7 @@ pa_parse_number (s, is_float) symbolS *sym; int status; char *p = *s; - boolean have_prefix; + bfd_boolean have_prefix; /* Skip whitespace before the number. */ while (*p == ' ' || *p == '\t') @@ -4819,7 +4819,7 @@ pa_parse_number (s, is_float) num = S_GET_VALUE (sym); /* Well, we don't really have one, but we do have a register, so... */ - have_prefix = true; + have_prefix = TRUE; } else if (S_GET_SEGMENT (sym) == &bfd_abs_section) num = S_GET_VALUE (sym); diff -uprN binutils-2.13.90.0.16/gas/config/tc-i370.c binutils-2.13.90.0.18/gas/config/tc-i370.c --- binutils-2.13.90.0.16/gas/config/tc-i370.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-i370.c Mon Dec 16 12:22:52 2002 @@ -158,11 +158,11 @@ const pseudo_typeS md_pseudo_table[] = /* ***************************************************************** */ /* Whether to use user friendly register names. */ -#define TARGET_REG_NAMES_P true +#define TARGET_REG_NAMES_P TRUE -static boolean reg_names_p = TARGET_REG_NAMES_P; +static bfd_boolean reg_names_p = TARGET_REG_NAMES_P; -static boolean register_name PARAMS ((expressionS *)); +static bfd_boolean register_name PARAMS ((expressionS *)); static void i370_set_cpu PARAMS ((void)); static i370_insn_t i370_insert_operand PARAMS ((i370_insn_t insn, const struct i370_operand *operand, offsetT val)); @@ -323,7 +323,7 @@ reg_name_search (regs, regcount, name) * original state. */ -static boolean +static bfd_boolean register_name (expressionP) expressionS *expressionP; { @@ -338,7 +338,7 @@ register_name (expressionP) name = ++input_line_pointer; else if (!reg_names_p) - return false; + return FALSE; while (' ' == *name) name = ++input_line_pointer; @@ -367,12 +367,12 @@ register_name (expressionP) /* Make the rest nice. */ expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Local variables. */ @@ -479,10 +479,10 @@ md_parse_option (c, arg) i370_cpu = I370_OPCODE_370; else if (strcmp (arg, "regnames") == 0) - reg_names_p = true; + reg_names_p = TRUE; else if (strcmp (arg, "no-regnames") == 0) - reg_names_p = false; + reg_names_p = FALSE; #ifdef OBJ_ELF /* -mrelocatable/-mrelocatable-lib -- warn about initializations that require relocation */ @@ -572,7 +572,7 @@ md_begin () const struct i370_opcode *op_end; const struct i370_macro *macro; const struct i370_macro *macro_end; - boolean dup_insn = false; + bfd_boolean dup_insn = FALSE; i370_set_cpu (); @@ -598,7 +598,7 @@ md_begin () if (retval != (const char *) NULL) { as_bad ("Internal assembler error for instruction %s", op->name); - dup_insn = true; + dup_insn = TRUE; } } } @@ -617,7 +617,7 @@ md_begin () if (retval != (const char *) NULL) { as_bad ("Internal assembler error for macro %s", macro->name); - dup_insn = true; + dup_insn = TRUE; } } } @@ -920,7 +920,7 @@ unsigned char ebcasc[256] = /* ebcdic translation tables needed for 3270 support */ static void i370_ebcdic (unused) - int unused; + int unused ATTRIBUTE_UNUSED; { char *p, *end; char delim = 0; @@ -955,7 +955,7 @@ i370_ebcdic (unused) /* stub out a couple of routines */ static void i370_rmode (unused) - int unused; + int unused ATTRIBUTE_UNUSED; { as_tsktsk ("rmode ignored"); } @@ -976,7 +976,7 @@ i370_dsect (sect) static void i370_csect (unused) - int unused; + int unused ATTRIBUTE_UNUSED; { as_tsktsk ("csect not supported"); } @@ -989,8 +989,8 @@ i370_csect (unused) * DC F'1' # in sysv4, .long 1 */ static void -i370_dc(unused) - int unused; +i370_dc (unused) + int unused ATTRIBUTE_UNUSED; { char * p, tmp[50]; int nbytes=0; @@ -1069,7 +1069,7 @@ i370_dc(unused) /* provide minimal support for DS Define Storage */ static void i370_ds (unused) - int unused; + int unused ATTRIBUTE_UNUSED; { /* DS 0H or DS 0F or DS 0D */ if ('0' == *input_line_pointer) @@ -1118,7 +1118,7 @@ i370_elf_rdata (sect) /* Pseudo op to make file scope bss items */ static void i370_elf_lcomm (unused) - int unused; + int unused ATTRIBUTE_UNUSED; { register char *name; register char c; @@ -1416,6 +1416,9 @@ add_to_lit_pool (expressionS *exx, char /* Can't use symbol_new here, so have to create a symbol and then at a later date assign it a value. Thats what these functions do */ +static void symbol_locate + PARAMS ((symbolS *, const char *, segT, valueT, fragS *)); + static void symbol_locate (symbolP, name, segment, valu, frag) symbolS *symbolP; @@ -1477,7 +1480,7 @@ symbol_locate (symbolP, name, segment, v * register operands. For example, "BL .L33" branch low * to .L33 RX form insn frequently terminates for-loops, */ -static boolean +static bfd_boolean i370_addr_offset (expressionS *exx) { char *dot, *lab; @@ -1517,7 +1520,7 @@ i370_addr_offset (expressionS *exx) dot = strchr (input_line_pointer, '*'); if (!dot && !islabel) - return false; + return FALSE; /* replace * with . and let expr munch on it. */ if (dot) @@ -1539,7 +1542,7 @@ i370_addr_offset (expressionS *exx) if (dot) *dot = '*'; - return true; + return TRUE; } /* handle address constants of various sorts */ @@ -1550,7 +1553,7 @@ i370_addr_offset (expressionS *exx) * =F'1234' 32-bit const int * =H'1234' 16-bit const int */ -static boolean +static bfd_boolean i370_addr_cons (expressionS *exp) { char *name; @@ -1568,7 +1571,7 @@ i370_addr_cons (expressionS *exp) } else { - return false; + return FALSE; } switch (name[0]) { @@ -1686,17 +1689,17 @@ i370_addr_cons (expressionS *exp) if ((exp->X_op != O_constant) && (exp->X_op != O_big)) { as_bad ("expression not a constant"); - return false; + return FALSE; } add_to_lit_pool (exp, 0x0, cons_len); break; default: as_bad ("Unknown/unsupported address literal type"); - return false; + return FALSE; } - return true; + return TRUE; } @@ -1706,7 +1709,7 @@ i370_addr_cons (expressionS *exp) static void i370_ltorg (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { int litsize; int lit_count = 0; @@ -1830,7 +1833,7 @@ i370_ltorg (ignore) */ static void i370_using (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { expressionS ex, baseaddr; int iregno; @@ -1876,7 +1879,7 @@ i370_using (ignore) static void i370_drop (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { expressionS ex; int iregno; @@ -2451,7 +2454,7 @@ i370_macro (str, macro) md_assemble (complete); } -#ifdef OBJ_ELF +#if 0 /* For ELF, add support for SHF_EXCLUDE and SHT_ORDERED */ int @@ -2512,7 +2515,7 @@ i370_section_flags (flags, attr, type) static void i370_byte (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { if (*input_line_pointer != '\"') { @@ -2556,7 +2559,7 @@ i370_byte (ignore) static void i370_tc (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { /* Skip the TOC symbol name. */ @@ -2660,8 +2663,8 @@ md_section_align (seg, addr) int md_estimate_size_before_relax (fragp, seg) - fragS *fragp; - asection *seg; + fragS *fragp ATTRIBUTE_UNUSED; + asection *seg ATTRIBUTE_UNUSED; { abort (); return 0; @@ -2671,9 +2674,9 @@ md_estimate_size_before_relax (fragp, se void md_convert_frag (abfd, sec, fragp) - bfd *abfd; - asection *sec; - fragS *fragp; + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec ATTRIBUTE_UNUSED; + fragS *fragp ATTRIBUTE_UNUSED; { abort (); } @@ -2682,7 +2685,7 @@ md_convert_frag (abfd, sec, fragp) symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -2695,7 +2698,7 @@ md_undefined_symbol (name) long md_pcrel_from_section (fixp, sec) fixS *fixp; - segT sec; + segT sec ATTRIBUTE_UNUSED; { return fixp->fx_frag->fr_address + fixp->fx_where; } @@ -2893,7 +2896,7 @@ md_apply_fix3 (fixP, valP, seg) arelent * tc_gen_reloc (seg, fixp) - asection *seg; + asection *seg ATTRIBUTE_UNUSED; fixS *fixp; { arelent *reloc; diff -uprN binutils-2.13.90.0.16/gas/config/tc-i386.c binutils-2.13.90.0.18/gas/config/tc-i386.c --- binutils-2.13.90.0.16/gas/config/tc-i386.c Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/gas/config/tc-i386.c Mon Dec 16 12:22:52 2002 @@ -4679,17 +4679,27 @@ md_apply_fix3 (fixP, valP, seg) value = -4; break; - case BFD_RELOC_386_GOT32: case BFD_RELOC_386_TLS_GD: case BFD_RELOC_386_TLS_LDM: case BFD_RELOC_386_TLS_IE_32: case BFD_RELOC_386_TLS_IE: case BFD_RELOC_386_TLS_GOTIE: - case BFD_RELOC_X86_64_GOT32: case BFD_RELOC_X86_64_TLSGD: case BFD_RELOC_X86_64_TLSLD: case BFD_RELOC_X86_64_GOTTPOFF: value = 0; /* Fully resolved at runtime. No addend. */ + /* Fallthrough */ + case BFD_RELOC_386_TLS_LE: + case BFD_RELOC_386_TLS_LDO_32: + case BFD_RELOC_386_TLS_LE_32: + case BFD_RELOC_X86_64_DTPOFF32: + case BFD_RELOC_X86_64_TPOFF32: + S_SET_THREAD_LOCAL (fixP->fx_addsy); + break; + + case BFD_RELOC_386_GOT32: + case BFD_RELOC_X86_64_GOT32: + value = 0; /* Fully resolved at runtime. No addend. */ break; case BFD_RELOC_VTABLE_INHERIT: @@ -5136,7 +5146,7 @@ i386_validate_fix (fixp) } } -boolean +bfd_boolean i386_force_relocation (fixp) fixS *fixp; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-i386.h binutils-2.13.90.0.18/gas/config/tc-i386.h --- binutils-2.13.90.0.16/gas/config/tc-i386.h Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gas/config/tc-i386.h Mon Dec 16 12:22:52 2002 @@ -483,7 +483,7 @@ extern int tc_i386_fix_adjustable PARAMS #endif #define TC_FORCE_RELOCATION(FIX) i386_force_relocation (FIX) -extern boolean i386_force_relocation PARAMS ((struct fix *)); +extern bfd_boolean i386_force_relocation PARAMS ((struct fix *)); /* This expression evaluates to true if the relocation is for a local object for which we still want to do the relocation at runtime. diff -uprN binutils-2.13.90.0.16/gas/config/tc-i860.c binutils-2.13.90.0.18/gas/config/tc-i860.c --- binutils-2.13.90.0.16/gas/config/tc-i860.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-i860.c Mon Dec 16 12:22:52 2002 @@ -898,7 +898,6 @@ md_atof (type, litP, sizeP) LITTLENUM_TYPE words[MAX_LITTLENUMS]; LITTLENUM_TYPE *wordP; char *t; - char *atof_ieee (); switch (type) { @@ -956,26 +955,6 @@ md_number_to_chars (buf, val, n) } /* This should never be called for i860. */ -void -md_number_to_disp (buf, val, n) - char *buf ATTRIBUTE_UNUSED; - long val ATTRIBUTE_UNUSED; - int n ATTRIBUTE_UNUSED; -{ - as_fatal (_("md_number_to_disp\n")); -} - -/* This should never be called for i860. */ -void -md_number_to_field (buf, val, fix) - char *buf ATTRIBUTE_UNUSED; - long val ATTRIBUTE_UNUSED; - void *fix ATTRIBUTE_UNUSED; -{ - as_fatal (_("i860_number_to_field\n")); -} - -/* This should never be called for i860. */ int md_estimate_size_before_relax (fragP, segtype) register fragS *fragP ATTRIBUTE_UNUSED; @@ -1346,7 +1325,7 @@ md_apply_fix3 (fix, valP, seg) else if (fup != OP_NONE) { as_bad_where (fix->fx_file, fix->fx_line, - _("Unrecognized fix-up (0x%08x)"), fup); + _("Unrecognized fix-up (0x%08lx)"), (unsigned long) fup); abort (); } else diff -uprN binutils-2.13.90.0.16/gas/config/tc-i960.c binutils-2.13.90.0.18/gas/config/tc-i960.c --- binutils-2.13.90.0.16/gas/config/tc-i960.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-i960.c Mon Dec 16 12:22:52 2002 @@ -132,33 +132,59 @@ const int md_reloc_size = sizeof (struct #endif /* Local i80960 routines. */ +struct memS; +struct regop; -static void brcnt_emit (); /* Emit branch-prediction instrumentation code */ -static char *brlab_next (); /* Return next branch local label */ -void brtab_emit (); /* Emit br-predict instrumentation table */ -static void cobr_fmt (); /* Generate COBR instruction */ -static void ctrl_fmt (); /* Generate CTRL instruction */ -static char *emit (); /* Emit (internally) binary */ -static int get_args (); /* Break arguments out of comma-separated list */ -static void get_cdisp (); /* Handle COBR or CTRL displacement */ -static char *get_ispec (); /* Find index specification string */ -static int get_regnum (); /* Translate text to register number */ -static int i_scan (); /* Lexical scan of instruction source */ -static void mem_fmt (); /* Generate MEMA or MEMB instruction */ -static void mema_to_memb (); /* Convert MEMA instruction to MEMB format */ -static void parse_expr (); /* Parse an expression */ -static int parse_ldconst (); /* Parse and replace a 'ldconst' pseudo-op */ -static void parse_memop (); /* Parse a memory operand */ -static void parse_po (); /* Parse machine-dependent pseudo-op */ -static void parse_regop (); /* Parse a register operand */ -static void reg_fmt (); /* Generate a REG format instruction */ -static void relax_cobr (); /* "De-optimize" cobr into compare/branch */ -static void s_leafproc (); /* Process '.leafproc' pseudo-op */ -static void s_sysproc (); /* Process '.sysproc' pseudo-op */ -static int shift_ok (); /* Will a 'shlo' substiture for a 'ldconst'? */ -static void syntax (); /* Give syntax error */ -static int targ_has_sfr (); /* Target chip supports spec-func register? */ -static int targ_has_iclass (); /* Target chip supports instruction set? */ +/* Emit branch-prediction instrumentation code */ +static void brcnt_emit PARAMS ((void)); +/* Return next branch local label */ +static char *brlab_next PARAMS ((void)); +/* Generate COBR instruction */ +static void cobr_fmt PARAMS ((char *[], long, struct i960_opcode *)); +/* Generate CTRL instruction */ +static void ctrl_fmt PARAMS ((char *, long, int)); +/* Emit (internally) binary */ +static char *emit PARAMS ((long)); +/* Break arguments out of comma-separated list */ +static int get_args PARAMS ((char *, char *[])); +/* Handle COBR or CTRL displacement */ +static void get_cdisp PARAMS ((char *, char *, long, int, int, int)); +/* Find index specification string */ +static char *get_ispec PARAMS ((char *)); +/* Translate text to register number */ +static int get_regnum PARAMS ((char *)); +/* Lexical scan of instruction source */ +static int i_scan PARAMS ((char *, char *[])); +/* Generate MEMA or MEMB instruction */ +static void mem_fmt PARAMS ((char *[], struct i960_opcode *, int)); +/* Convert MEMA instruction to MEMB format */ +static void mema_to_memb PARAMS ((char *)); +/* Parse an expression */ +static void parse_expr PARAMS ((char *, expressionS *)); +/* Parse and replace a 'ldconst' pseudo-op */ +static int parse_ldconst PARAMS ((char *[])); +/* Parse a memory operand */ +static void parse_memop PARAMS ((struct memS *, char *, int)); +/* Parse machine-dependent pseudo-op */ +static void parse_po PARAMS ((int)); +/* Parse a register operand */ +static void parse_regop PARAMS ((struct regop *, char *, char)); +/* Generate a REG format instruction */ +static void reg_fmt PARAMS ((char *[], struct i960_opcode *)); +/* "De-optimize" cobr into compare/branch */ +static void relax_cobr PARAMS ((fragS *)); +/* Process '.leafproc' pseudo-op */ +static void s_leafproc PARAMS ((int, char *[])); +/* Process '.sysproc' pseudo-op */ +static void s_sysproc PARAMS ((int, char *[])); +/* Will a 'shlo' substiture for a 'ldconst'? */ +static int shift_ok PARAMS ((int)); +/* Give syntax error */ +static void syntax PARAMS ((void)); +/* Target chip supports spec-func register? */ +static int targ_has_sfr PARAMS ((int)); +/* Target chip supports instruction set? */ +static int targ_has_iclass PARAMS ((int)); /* See md_parse_option() for meanings of these options */ static char norelax; /* True if -norelax switch seen */ @@ -276,7 +302,7 @@ const pseudo_typeS md_pseudo_table[] = #define MEMA_ABASE 0x2000 /* Info from which a MEMA or MEMB format instruction can be generated */ -typedef struct +typedef struct memS { /* (First) 32 bits of instruction */ long opcode; @@ -286,7 +312,6 @@ typedef struct displacement should be determined. */ char *e; } - memS; /* The two pieces of info we need to generate a register operand */ @@ -707,7 +732,9 @@ md_number_to_chars (buf, value, n) md_chars_to_number: convert from target byte order to host byte order. *************************************************************************** */ -int +static int md_chars_to_number PARAMS ((unsigned char *, int)); + +static int md_chars_to_number (val, n) unsigned char *val; /* Value in target byte order */ int n; /* Number of bytes in the input */ @@ -747,7 +774,6 @@ md_atof (type, litP, sizeP) LITTLENUM_TYPE *wordP; int prec; char *t; - char *atof_ieee (); switch (type) { @@ -798,21 +824,10 @@ md_atof (type, litP, sizeP) md_number_to_imm *************************************************************************** */ -void -md_number_to_imm (buf, val, n) - char *buf; - long val; - int n; -{ - md_number_to_chars (buf, val, n); -} +static void md_number_to_imm PARAMS ((char *, long, int)); -/***************************************************************************** - md_number_to_disp - - *************************************************************************** */ -void -md_number_to_disp (buf, val, n) +static void +md_number_to_imm (buf, val, n) char *buf; long val; int n; @@ -827,7 +842,9 @@ md_number_to_disp (buf, val, n) previously-generated instruction. *************************************************************************** */ -void +static void md_number_to_field PARAMS ((char *, long, bit_fixS *)); + +static void md_number_to_field (instrP, val, bfixP) char *instrP; /* Pointer to instruction to be fixed */ long val; /* Address fixup value */ @@ -1023,14 +1040,14 @@ md_show_usage (stream) #ifndef BFD_ASSEMBLER void md_convert_frag (headers, seg, fragP) - object_headers *headers; - segT seg; + object_headers *headers ATTRIBUTE_UNUSED; + segT seg ATTRIBUTE_UNUSED; fragS *fragP; #else void md_convert_frag (abfd, sec, fragP) - bfd *abfd; - segT sec; + bfd *abfd ATTRIBUTE_UNUSED; + segT sec ATTRIBUTE_UNUSED; fragS *fragP; #endif { @@ -1103,6 +1120,7 @@ md_estimate_size_before_relax (fragP, se does do the reordering (Ian Taylor 28 Aug 92). *************************************************************************** */ +static void md_ri_to_chars PARAMS ((char *, struct relocation_info *)); static void md_ri_to_chars (where, ri) @@ -1212,8 +1230,7 @@ brtab_emit () cobr_fmt: generate a COBR-format instruction *************************************************************************** */ -static -void +static void cobr_fmt (arg, opcode, oP) /* arg[0]->opcode mnemonic, arg[1-3]->operands (ascii) */ char *arg[]; @@ -1280,8 +1297,7 @@ cobr_fmt (arg, opcode, oP) ctrl_fmt: generate a CTRL-format instruction *************************************************************************** */ -static -void +static void ctrl_fmt (targP, opcode, num_ops) char *targP; /* Pointer to text of lone operand (if any) */ long opcode; /* Template of instruction */ @@ -1327,8 +1343,7 @@ ctrl_fmt (targP, opcode, num_ops) Return pointer to where it was placed. *************************************************************************** */ -static -char * +static char * emit (instr) long instr; /* Word to be output, host byte order */ { @@ -1432,8 +1447,7 @@ get_args (p, args) address displacement is greater than 13 bits. ****************************************************************************/ -static -void +static void get_cdisp (dispP, ifmtP, instr, numbits, var_frag, callj) /* displacement as specified in source instruction */ char *dispP; @@ -1517,8 +1531,7 @@ get_cdisp (dispP, ifmtP, instr, numbits, square brackets, and return a pointer to it. Otherwise, return NULL. *************************************************************************** */ -static -char * +static char * get_ispec (textP) /* Pointer to memory operand from source instruction, no white space. */ char *textP; @@ -1566,8 +1579,7 @@ get_ispec (textP) associated register number (or -1 if not found). *************************************************************************** */ -static -int +static int get_regnum (regname) char *regname; /* Suspected register name */ { @@ -1846,8 +1858,7 @@ parse_expr (textP, expP) Returns the new number of arguments, or -1 on failure. *************************************************************************** */ -static -int +static int parse_ldconst (arg) char *arg[]; /* See above */ { @@ -1959,8 +1970,7 @@ parse_ldconst (arg) the displacement. *************************************************************************** */ -static -void +static void parse_memop (memP, argP, optype) memS *memP; /* Where to put the results */ char *argP; /* Text of the operand to be parsed */ @@ -2164,8 +2174,7 @@ parse_memop (memP, argP, optype) up the rest of the input line, breaks out the individual arguments, and dispatches them to the correct handler. *************************************************************************** */ -static -void +static void parse_po (po_num) int po_num; /* Pseudo-op number: currently S_LEAFPROC or S_SYSPROC */ { @@ -2220,8 +2229,7 @@ parse_po (po_num) In case of illegal operand, issue a message and return some valid information so instruction processing can continue. *************************************************************************** */ -static -void +static void parse_regop (regopP, optext, opdesc) struct regop *regopP; /* Where to put description of register operand */ char *optext; /* Text of operand */ @@ -2431,8 +2439,7 @@ coj[] = { CMPI, BO }, /* 0x3f - cmpibo */ }; -static -void +static void relax_cobr (fragP) register fragS *fragP; /* fragP->fr_opcode is assumed to point to * the cobr instruction, which comes at the @@ -2667,8 +2674,7 @@ s_sysproc (n_ops, args) Caller calculates X by shifting original constant right 'shift' places. *************************************************************************** */ -static -int +static int shift_ok (n) int n; /* The constant of interest */ { @@ -2706,8 +2712,7 @@ syntax () Return TRUE iff the target architecture supports the specified special-function register (sfr). */ -static -int +static int targ_has_sfr (n) int n; /* Number (0-31) of sfr */ { @@ -2730,8 +2735,7 @@ targ_has_sfr (n) Return TRUE iff the target architecture supports the indicated class of instructions. */ -static -int +static int targ_has_iclass (ic) /* Instruction class; one of: I_BASE, I_CX, I_DEC, I_KX, I_FP, I_MIL, I_CASIM, I_CX2, I_HX, I_HX2 @@ -2768,7 +2772,7 @@ targ_has_iclass (ic) static void s_endian (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { char *name; char c; @@ -2791,7 +2795,7 @@ s_endian (ignore) symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -2826,7 +2830,7 @@ md_apply_fix3 (fixP, valP, seg) fixP->fx_addnumber = val; #endif - md_number_to_imm (place, val, fixP->fx_size, fixP); + md_number_to_imm (place, val, fixP->fx_size); } else if ((int) fixP->fx_bit_fixP == 13 && fixP->fx_addsy != NULL @@ -3040,7 +3044,7 @@ tc_headers_hook (headers) void tc_crawl_symbol_chain (headers) - object_headers *headers; + object_headers *headers ATTRIBUTE_UNUSED; { symbolS *symbolP; @@ -3098,8 +3102,8 @@ tc_crawl_symbol_chain (headers) void tc_set_bal_of_call (callP, balP) - symbolS *callP; - symbolS *balP; + symbolS *callP ATTRIBUTE_UNUSED; + symbolS *balP ATTRIBUTE_UNUSED; { know (TC_S_IS_CALLNAME (callP)); know (TC_S_IS_BALNAME (balP)); @@ -3129,7 +3133,7 @@ tc_set_bal_of_call (callP, balP) symbolS * tc_get_bal_of_call (callP) - symbolS *callP; + symbolS *callP ATTRIBUTE_UNUSED; { symbolS *retval; @@ -3149,13 +3153,13 @@ tc_get_bal_of_call (callP) return retval; } /* _tc_get_bal_of_call() */ +#ifdef OBJ_COFF void tc_coff_symbol_emit_hook (symbolP) - symbolS *symbolP; + symbolS *symbolP ATTRIBUTE_UNUSED; { if (TC_S_IS_CALLNAME (symbolP)) { -#ifdef OBJ_COFF symbolS *balP = tc_get_bal_of_call (symbolP); #if 0 @@ -3170,13 +3174,13 @@ tc_coff_symbol_emit_hook (symbolP) S_SET_DATA_TYPE (symbolP, S_GET_DATA_TYPE (symbolP) | (DT_FCN << N_BTSHFT)); /* fix up the bal symbol */ S_SET_STORAGE_CLASS (balP, C_LABEL); -#endif /* OBJ_COFF */ } /* only on calls */ } +#endif /* OBJ_COFF */ void i960_handle_align (fragp) - fragS *fragp; + fragS *fragp ATTRIBUTE_UNUSED; { if (!linkrelax) return; @@ -3204,7 +3208,7 @@ i960_handle_align (fragp) int i960_validate_fix (fixP, this_segment_type) fixS *fixP; - segT this_segment_type; + segT this_segment_type ATTRIBUTE_UNUSED; { if (fixP->fx_tcbit && TC_S_IS_CALLNAME (fixP->fx_addsy)) { @@ -3228,6 +3232,8 @@ i960_validate_fix (fixP, this_segment_ty /* From cgen.c: */ +static short tc_bfd_fix2rtype PARAMS ((fixS *)); + static short tc_bfd_fix2rtype (fixP) fixS *fixP; @@ -3254,7 +3260,7 @@ tc_bfd_fix2rtype (fixP) arelent * tc_gen_reloc (section, fixP) - asection *section; + asection *section ATTRIBUTE_UNUSED; fixS *fixP; { arelent * reloc; diff -uprN binutils-2.13.90.0.16/gas/config/tc-ia64.c binutils-2.13.90.0.18/gas/config/tc-ia64.c --- binutils-2.13.90.0.16/gas/config/tc-ia64.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-ia64.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ /* tc-ia64.c -- Assembler for the HP/Intel IA-64 architecture. - Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by David Mosberger-Tang This file is part of GAS, the GNU Assembler. @@ -82,6 +82,7 @@ enum reloc_func FUNC_FPTR_RELATIVE, FUNC_GP_RELATIVE, FUNC_LT_RELATIVE, + FUNC_LT_RELATIVE_X, FUNC_PC_RELATIVE, FUNC_PLT_RELATIVE, FUNC_SEC_RELATIVE, @@ -487,6 +488,7 @@ pseudo_func[] = { "fptr", PSEUDO_FUNC_RELOC, { 0 } }, { "gprel", PSEUDO_FUNC_RELOC, { 0 } }, { "ltoff", PSEUDO_FUNC_RELOC, { 0 } }, + { "ltoffx", PSEUDO_FUNC_RELOC, { 0 } }, { "pcrel", PSEUDO_FUNC_RELOC, { 0 } }, { "pltoff", PSEUDO_FUNC_RELOC, { 0 } }, { "secrel", PSEUDO_FUNC_RELOC, { 0 } }, @@ -519,6 +521,9 @@ pseudo_func[] = { "natval", PSEUDO_FUNC_CONST, { 0x100 } }, /* old usage */ + /* hint constants: */ + { "pause", PSEUDO_FUNC_CONST, { 0x0 } }, + /* unwind-related constants: */ { "svr4", PSEUDO_FUNC_CONST, { 0 } }, { "hpux", PSEUDO_FUNC_CONST, { 1 } }, @@ -5032,6 +5037,11 @@ operand_match (idesc, index, e) return OPERAND_MATCH; break; + case IA64_OPND_AR_CSD: + if (e->X_op == O_register && e->X_add_number == REG_AR + 25) + return OPERAND_MATCH; + break; + case IA64_OPND_AR_PFS: if (e->X_op == O_register && e->X_add_number == REG_AR + 64) return OPERAND_MATCH; @@ -5523,6 +5533,15 @@ operand_match (idesc, index, e) } break; + case IA64_OPND_LDXMOV: + fix = CURR_SLOT.fixup + CURR_SLOT.num_fixups; + fix->code = BFD_RELOC_IA64_LDXMOV; + fix->opnd = idesc->operands[index]; + fix->expr = *e; + fix->is_pcrel = 0; + ++CURR_SLOT.num_fixups; + return OPERAND_MATCH; + default: break; } @@ -6147,10 +6166,11 @@ emit_one_bundle () } required_unit = ia64_templ_desc[template].exec_unit[i]; - /* resolve dynamic opcodes such as "break" and "nop": */ + /* resolve dynamic opcodes such as "break", "hint", and "nop": */ if (idesc->type == IA64_TYPE_DYN) { if ((strcmp (idesc->name, "nop") == 0) + || (strcmp (idesc->name, "hint") == 0) || (strcmp (idesc->name, "break") == 0)) insn_unit = required_unit; else if (strcmp (idesc->name, "chk.s") == 0) @@ -6526,6 +6546,10 @@ md_begin () symbol_new (".", undefined_section, FUNC_LT_RELATIVE, &zero_address_frag); + pseudo_func[FUNC_LT_RELATIVE_X].u.sym = + symbol_new (".", undefined_section, FUNC_LT_RELATIVE_X, + &zero_address_frag); + pseudo_func[FUNC_PC_RELATIVE].u.sym = symbol_new (".", undefined_section, FUNC_PC_RELATIVE, &zero_address_frag); @@ -9982,6 +10006,9 @@ ia64_force_relocation (fix) case BFD_RELOC_IA64_PLTOFF64I: case BFD_RELOC_IA64_PLTOFF64MSB: case BFD_RELOC_IA64_PLTOFF64LSB: + + case BFD_RELOC_IA64_LTOFF22X: + case BFD_RELOC_IA64_LDXMOV: return 1; default: @@ -10047,6 +10074,16 @@ ia64_cons_fix_new (f, where, nbytes, exp exp->X_op = O_symbol; break; } + else if (exp->X_op == O_pseudo_fixup + && exp->X_op_symbol + && S_GET_VALUE (exp->X_op_symbol) == FUNC_DTP_RELATIVE) + { + if (target_big_endian) + code = BFD_RELOC_IA64_DTPREL64MSB; + else + code = BFD_RELOC_IA64_DTPREL64LSB; + break; + } else { if (target_big_endian) @@ -10142,6 +10179,14 @@ ia64_gen_real_reloc_type (sym, r_type) } break; + case FUNC_LT_RELATIVE_X: + switch (r_type) + { + case BFD_RELOC_IA64_IMM22: new = BFD_RELOC_IA64_LTOFF22X; break; + default: break; + } + break; + case FUNC_PC_RELATIVE: switch (r_type) { @@ -10379,7 +10424,6 @@ md_apply_fix3 (fix, valP, seg) { char *fixpos; valueT value = *valP; - int adjust = 0; fixpos = fix->fx_frag->fr_literal + fix->fx_where; @@ -10389,22 +10433,18 @@ md_apply_fix3 (fix, valP, seg) { case BFD_RELOC_IA64_DIR32MSB: fix->fx_r_type = BFD_RELOC_IA64_PCREL32MSB; - adjust = 1; break; case BFD_RELOC_IA64_DIR32LSB: fix->fx_r_type = BFD_RELOC_IA64_PCREL32LSB; - adjust = 1; break; case BFD_RELOC_IA64_DIR64MSB: fix->fx_r_type = BFD_RELOC_IA64_PCREL64MSB; - adjust = 1; break; case BFD_RELOC_IA64_DIR64LSB: fix->fx_r_type = BFD_RELOC_IA64_PCREL64LSB; - adjust = 1; break; default: @@ -10413,8 +10453,9 @@ md_apply_fix3 (fix, valP, seg) } if (fix->fx_addsy) { - if (fix->fx_r_type == (int) BFD_RELOC_UNUSED) + switch (fix->fx_r_type) { + case BFD_RELOC_UNUSED: /* This must be a TAG13 or TAG13b operand. There are no external relocs defined for them, so we must give an error. */ as_bad_where (fix->fx_file, fix->fx_line, @@ -10422,12 +10463,22 @@ md_apply_fix3 (fix, valP, seg) elf64_ia64_operands[fix->tc_fix_data.opnd].desc); fix->fx_done = 1; return; - } - /* ??? This is a hack copied from tc-i386.c to make PCREL relocs - work. There should be a better way to handle this. */ - if (adjust) - fix->fx_offset += fix->fx_where + fix->fx_frag->fr_address; + case BFD_RELOC_IA64_TPREL14: + case BFD_RELOC_IA64_TPREL22: + case BFD_RELOC_IA64_TPREL64I: + case BFD_RELOC_IA64_LTOFF_TPREL22: + case BFD_RELOC_IA64_LTOFF_DTPMOD22: + case BFD_RELOC_IA64_DTPREL14: + case BFD_RELOC_IA64_DTPREL22: + case BFD_RELOC_IA64_DTPREL64I: + case BFD_RELOC_IA64_LTOFF_DTPREL22: + S_SET_THREAD_LOCAL (fix->fx_addsy); + break; + + default: + break; + } } else if (fix->tc_fix_data.opnd == IA64_OPND_NIL) { diff -uprN binutils-2.13.90.0.16/gas/config/tc-ip2k.c binutils-2.13.90.0.18/gas/config/tc-ip2k.c --- binutils-2.13.90.0.16/gas/config/tc-ip2k.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-ip2k.c Mon Dec 16 12:22:52 2002 @@ -180,14 +180,15 @@ md_assemble (str) enum cgen_parse_operand_result result_type; long value; const char *curpc_plus_2 = ".+2"; + const char *err; - errmsg = cgen_parse_address (gas_cgen_cpu_desc, & curpc_plus_2, - IP2K_OPERAND_ADDR16CJP, - BFD_RELOC_IP2K_PC_SKIP, - & result_type, & value); - if (errmsg) + err = cgen_parse_address (gas_cgen_cpu_desc, & curpc_plus_2, + IP2K_OPERAND_ADDR16CJP, + BFD_RELOC_IP2K_PC_SKIP, + & result_type, & value); + if (err) { - as_bad ("%s", errmsg); + as_bad ("%s", err); return; } } diff -uprN binutils-2.13.90.0.16/gas/config/tc-iq2000.c binutils-2.13.90.0.18/gas/config/tc-iq2000.c --- binutils-2.13.90.0.16/gas/config/tc-iq2000.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/config/tc-iq2000.c Tue Jan 21 10:21:32 2003 @@ -0,0 +1,1203 @@ +/* tc-iq2000.c -- Assembler for the Sitera IQ2000. + Copyright (C) 2003 Free Software Foundation. + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS 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 GAS; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include "as.h" +#include "safe-ctype.h" +#include "dwarf2dbg.h" +#include "subsegs.h" +#include "symcat.h" +#include "opcodes/iq2000-desc.h" +#include "opcodes/iq2000-opc.h" +#include "cgen.h" +#include "elf/common.h" +#include "elf/iq2000.h" +#include "libbfd.h" +#include "hash.h" +#include "macro.h" + +/* Structure to hold all of the different components describing + an individual instruction. */ +typedef struct +{ + const CGEN_INSN * insn; + const CGEN_INSN * orig_insn; + CGEN_FIELDS fields; +#if CGEN_INT_INSN_P + CGEN_INSN_INT buffer [1]; +#define INSN_VALUE(buf) (*(buf)) +#else + unsigned char buffer [CGEN_MAX_INSN_SIZE]; +#define INSN_VALUE(buf) (buf) +#endif + char * addr; + fragS * frag; + int num_fixups; + fixS * fixups [GAS_CGEN_MAX_FIXUPS]; + int indices [MAX_OPERAND_INSTANCES]; +} +iq2000_insn; + +const char comment_chars[] = "#"; +const char line_comment_chars[] = ""; +const char line_separator_chars[] = ";"; +const char EXP_CHARS[] = "eE"; +const char FLT_CHARS[] = "dD"; + +/* Default machine */ + +#define DEFAULT_MACHINE bfd_mach_iq2000 +#define DEFAULT_FLAGS EF_IQ2000_CPU_IQ2000 + +static unsigned long iq2000_mach = bfd_mach_iq2000; +static int cpu_mach = (1 << MACH_IQ2000); + +/* Flags to set in the elf header */ +static flagword iq2000_flags = DEFAULT_FLAGS; + +typedef struct proc { + symbolS *isym; + unsigned long reg_mask; + unsigned long reg_offset; + unsigned long fpreg_mask; + unsigned long fpreg_offset; + unsigned long frame_offset; + unsigned long frame_reg; + unsigned long pc_reg; +} procS; + +static procS cur_proc; +static procS *cur_proc_ptr; +static int numprocs; + +static void s_change_sec PARAMS ((int)); +static void s_iq2000_set PARAMS ((int)); +static void s_iq2000_mask PARAMS ((int)); +static void s_iq2000_frame PARAMS ((int)); +static void s_iq2000_ent PARAMS ((int)); +static void s_iq2000_end PARAMS ((int)); +static int get_number PARAMS ((void)); +static symbolS * get_symbol PARAMS ((void)); +static void iq2000_record_hi16 PARAMS((int, fixS *, segT)); + + +/* The target specific pseudo-ops which we support. */ +const pseudo_typeS md_pseudo_table[] = +{ + { "align", s_align_bytes, 0 }, + { "word", cons, 4 }, + { "file", dwarf2_directive_file, 0 }, + { "loc", dwarf2_directive_loc, 0 }, + { "rdata", s_change_sec, 'r'}, + { "sdata", s_change_sec, 's'}, + { "set", s_iq2000_set, 0 }, + { "ent", s_iq2000_ent, 0 }, + { "end", s_iq2000_end, 0 }, + { "frame", s_iq2000_frame, 0 }, + { "fmask", s_iq2000_mask, 'F' }, + { "mask", s_iq2000_mask, 'R' }, + { "dword", cons, 8 }, + { "half", cons, 2 }, + { NULL, NULL, 0 } +}; + +/* Relocations against symbols are done in two + parts, with a HI relocation and a LO relocation. Each relocation + has only 16 bits of space to store an addend. This means that in + order for the linker to handle carries correctly, it must be able + to locate both the HI and the LO relocation. This means that the + relocations must appear in order in the relocation table. + + In order to implement this, we keep track of each unmatched HI + relocation. We then sort them so that they immediately precede the + corresponding LO relocation. */ + +struct iq2000_hi_fixup +{ + struct iq2000_hi_fixup * next; /* Next HI fixup. */ + fixS * fixp; /* This fixup. */ + segT seg; /* The section this fixup is in. */ + +}; + +/* The list of unmatched HI relocs. */ +static struct iq2000_hi_fixup * iq2000_hi_fixup_list; + + +/* assembler options */ +#define OPTION_CPU_2000 (OPTION_MD_BASE) +#define OPTION_CPU_10 (OPTION_MD_BASE + 1) + +struct option md_longopts[] = +{ + { "m2000", no_argument, NULL, OPTION_CPU_2000 }, + { "m10", no_argument, NULL, OPTION_CPU_10 }, + { NULL, no_argument, NULL, 0 }, +}; + +size_t md_longopts_size = sizeof (md_longopts); + +const char * md_shortopts = ""; + +static void iq2000_add_macro PARAMS ((const char *, const char *, const char **)); +static void iq2000_load_macros PARAMS ((void)); +static void iq10_load_macros PARAMS ((void)); + +/* macro hash table, which we will add to. */ +extern struct hash_control *macro_hash; + +int +md_parse_option (c, arg) + int c ATTRIBUTE_UNUSED; + char * arg ATTRIBUTE_UNUSED; +{ + switch (c) + { + case OPTION_CPU_2000: + iq2000_flags = (iq2000_flags & ~EF_IQ2000_CPU_MASK) | EF_IQ2000_CPU_IQ2000; + iq2000_mach = bfd_mach_iq2000; + cpu_mach = (1 << MACH_IQ2000); + break; + + case OPTION_CPU_10: + iq2000_flags = (iq2000_flags & ~EF_IQ2000_CPU_MASK) | EF_IQ2000_CPU_IQ10; + iq2000_mach = bfd_mach_iq10; + cpu_mach = (1 << MACH_IQ10); + /* only the first 3 pseudo ops (word, file, loc) are in IQ10 */ + break; + + default: + return 0; + } + return 1; +} + +void +md_show_usage (stream) + FILE * stream; +{ + fprintf (stream, _("IQ2000 specific command line options:\n")); + fprintf (stream, _("-m2000 IQ2000 processor\n")); + fprintf (stream, _("-m10 IQ10 processor\n")); +} + + +void +md_begin () +{ + /* Initialize the `cgen' interface. */ + + /* Set the machine number and endian. */ + gas_cgen_cpu_desc = iq2000_cgen_cpu_open (CGEN_CPU_OPEN_MACHS, cpu_mach, + CGEN_CPU_OPEN_ENDIAN, + CGEN_ENDIAN_BIG, + CGEN_CPU_OPEN_END); + iq2000_cgen_init_asm (gas_cgen_cpu_desc); + + /* This is a callback from cgen to gas to parse operands. */ + cgen_set_parse_operand_fn (gas_cgen_cpu_desc, gas_cgen_parse_operand); + + /* Set the ELF flags if desired. */ + if (iq2000_flags) + bfd_set_private_flags (stdoutput, iq2000_flags); + + /* Set the machine type */ + bfd_default_set_arch_mach (stdoutput, bfd_arch_iq2000, iq2000_mach); + + if (iq2000_mach == bfd_mach_iq2000) + iq2000_load_macros (); + else + iq10_load_macros (); +} + +static void +iq2000_add_macro (name, semantics, arguments) + const char *name; + const char *semantics; + const char **arguments; +{ + macro_entry *macro; + sb macro_name; + const char *namestr; + + macro = (macro_entry *) xmalloc (sizeof (macro_entry)); + sb_new (¯o->sub); + sb_new (¯o_name); + + macro->formal_count = 0; + macro->formals = 0; + + sb_add_string (¯o->sub, semantics); + + if (arguments != NULL) + { + formal_entry **p = ¯o->formals; + + macro->formal_count = 0; + macro->formal_hash = hash_new (); + while (*arguments != NULL) + { + formal_entry *formal; + + formal = (formal_entry *) xmalloc (sizeof (formal_entry)); + + sb_new (&formal->name); + sb_new (&formal->def); + sb_new (&formal->actual); + + /* chlm: Added the following to allow defaulted args. */ + if (strchr (*arguments,'=')) + { + char * tt_args = strdup(*arguments); + char * tt_dflt = strchr(tt_args,'='); + + *tt_dflt = 0; + sb_add_string (&formal->name, tt_args); + sb_add_string (&formal->def, tt_dflt + 1); + } + else + sb_add_string (&formal->name, *arguments); + + /* Add to macro's hash table. */ + hash_jam (macro->formal_hash, sb_terminate (&formal->name), formal); + + formal->index = macro->formal_count; + macro->formal_count++; + *p = formal; + p = &formal->next; + *p = NULL; + ++arguments; + } + } + + sb_add_string (¯o_name, name); + namestr = sb_terminate (¯o_name); + hash_jam (macro_hash, namestr, (PTR) macro); + + macro_defined = 1; +} + +/* Automatically enter conditional branch macros. */ + +typedef struct { + const char * mnemonic; + const char ** expansion; + const char ** args; +} iq2000_macro_defs_s; + +static const char * abs_args[] = { "rd", "rs", "scratch=%1", NULL }; +static const char * abs_expn = "\n sra \\rd,\\rs,31\n xor \\scratch,\\rd,\\rs\n sub \\rd,\\scratch,\\rd\n"; + +static const char * la_expn = "\n lui \\reg,%hi(\\label)\n ori \\reg,\\reg,%lo(\\label)\n"; +static const char * la_args[] = { "reg", "label", NULL }; + +static const char * bxx_args[] = { "rs", "rt", "label", "scratch=%1", NULL }; +static const char * bge_expn = "\n slt \\scratch,\\rs,\\rt\n beq %0,\\scratch,\\label\n"; +static const char * bgeu_expn = "\n sltu \\scratch,\\rs,\\rt\n beq %0,\\scratch,\\label\n"; +static const char * bgt_expn = "\n slt \\scratch,\\rt,\\rs\n bne %0,\\scratch,\\label\n"; +static const char * bgtu_expn = "\n sltu \\scratch,\\rt,\\rs\n bne %0,\\scratch,\\label\n"; +static const char * ble_expn = "\n slt \\scratch,\\rt,\\rs\n beq %0,\\scratch,\\label\n"; +static const char * bleu_expn = "\n sltu \\scratch,\\rt,\\rs\n beq %0,\\scratch,\\label\n"; +static const char * blt_expn = "\n slt \\scratch,\\rs,\\rt\n bne %0,\\scratch,\\label\n"; +static const char * bltu_expn = "\n sltu \\scratch,\\rs,\\rt\n bne %0,\\scratch,\\label\n"; + +static const char * sxx_args[] = { "rd", "rs", "rt", NULL }; +static const char * sge_expn = "\n slt \\rd,\\rs,\\rt\n xori \\rd,\\rd,1\n"; +static const char * sgeu_expn = "\n sltu \\rd,\\rs,\\rt\n xori \\rd,\\rd,1\n"; +static const char * sle_expn = "\n slt \\rd,\\rt,\\rs\n xori \\rd,\\rd,1\n"; +static const char * sleu_expn = "\n sltu \\rd,\\rt,\\rs\n xori \\rd,\\rd,1\n"; +static const char * sgt_expn = "\n slt \\rd,\\rt,\\rs\n"; +static const char * sgtu_expn = "\n sltu \\rd,\\rt,\\rs\n"; +static const char * sne_expn = "\n xor \\rd,\\rt,\\rs\n sltu \\rd,%0,\\rd\n"; +static const char * seq_expn = "\n xor \\rd,\\rt,\\rs\n sltu \\rd,%0,\\rd\n xori \\rd,\\rd,1\n"; + +static const char * ai32_args[] = { "rt", "rs", "imm", NULL }; +static const char * andi32_expn = "\n\ + .if (\\imm & 0xffff0000 == 0xffff0000)\n\ + andoi \\rt,\\rs,%lo(\\imm)\n\ + .elseif (\\imm & 0x0000ffff == 0x0000ffff)\n\ + andoui \\rt,\\rs,%uhi(\\imm)\n\ + .elseif (\\imm & 0xffff0000 == 0x00000000)\n\ + andi \\rt,\\rs,%lo(\\imm)\n\ + .else\n\ + andoui \\rt,\\rs,%uhi(\\imm)\n\ + andoi \\rt,\\rt,%lo(\\imm)\n\ + .endif\n"; +static const char * ori32_expn = "\n\ + .if (\\imm & 0xffff == 0)\n\ + orui \\rt,\\rs,%uhi(\\imm)\n\ + .elseif (\\imm & 0xffff0000 == 0)\n\ + ori \\rt,\\rs,%lo(\\imm)\n\ + .else\n\ + orui \\rt,\\rs,%uhi(\\imm)\n\ + ori \\rt,\\rt,%lo(\\imm)\n\ + .endif\n"; + +static const char * neg_args[] = { "rd", "rs", NULL }; +static const char * neg_expn = "\n sub \\rd,%0,\\rs\n"; +static const char * negu_expn = "\n subu \\rd,%0,\\rs\n"; + +static const char * li_args[] = { "rt", "imm", NULL }; +static const char * li_expn = "\n\ + .if (\\imm & 0xffff0000 == 0x0)\n\ + ori \\rt,%0,\\imm\n\ + .elseif (\\imm & 0xffff0000 == 0xffff0000)\n\ + addi \\rt,%0,\\imm\n\ + .elseif (\\imm & 0x0000ffff == 0) + lui \\rt,%uhi(\\imm)\n\ + .else\n\ + lui \\rt,%uhi(\\imm)\n\ + ori \\rt,\\rt,%lo(\\imm)\n\ + .endif\n"; + +static iq2000_macro_defs_s iq2000_macro_defs[] = { + {"abs", (const char **)&abs_expn, (const char **)&abs_args}, + {"la", (const char **)&la_expn, (const char **)&la_args}, + {"bge", (const char **)&bge_expn, (const char **)&bxx_args}, + {"bgeu", (const char **)&bgeu_expn, (const char **)&bxx_args}, + {"bgt", (const char **)&bgt_expn, (const char **)&bxx_args}, + {"bgtu", (const char **)&bgtu_expn, (const char **)&bxx_args}, + {"ble", (const char **)&ble_expn, (const char **)&bxx_args}, + {"bleu", (const char **)&bleu_expn, (const char **)&bxx_args}, + {"blt", (const char **)&blt_expn, (const char **)&bxx_args}, + {"bltu", (const char **)&bltu_expn, (const char **)&bxx_args}, + {"sge", (const char **)&sge_expn, (const char **)&sxx_args}, + {"sgeu", (const char **)&sgeu_expn, (const char **)&sxx_args}, + {"sle", (const char **)&sle_expn, (const char **)&sxx_args}, + {"sleu", (const char **)&sleu_expn, (const char **)&sxx_args}, + {"sgt", (const char **)&sgt_expn, (const char **)&sxx_args}, + {"sgtu", (const char **)&sgtu_expn, (const char **)&sxx_args}, + {"seq", (const char **)&seq_expn, (const char **)&sxx_args}, + {"sne", (const char **)&sne_expn, (const char **)&sxx_args}, + {"neg", (const char **)&neg_expn, (const char **)&neg_args}, + {"negu", (const char **)&negu_expn, (const char **)&neg_args}, + {"li", (const char **)&li_expn, (const char **)&li_args}, + {"ori32", (const char **)&ori32_expn, (const char **)&ai32_args}, + {"andi32",(const char **)&andi32_expn,(const char **)&ai32_args}, +}; + +static void +iq2000_load_macros () +{ + int i; + int mcnt = sizeof (iq2000_macro_defs) / sizeof (iq2000_macro_defs_s); + + for (i = 0; i < mcnt; i++) + iq2000_add_macro (iq2000_macro_defs[i].mnemonic, + *iq2000_macro_defs[i].expansion, + iq2000_macro_defs[i].args); +} + +static void +iq10_load_macros () +{ + /* Allow all iq2k macros in iq10, instead of just LA. */ + iq2000_load_macros (); +#if 0 + char *la_sem = "\n lui \\reg,%hi(\\label)\n ori \\reg,\\reg,%lo(\\label)\n"; + + char *la_arg_1 = "reg"; + char *la_arg_2 = "label"; + const char *la_args[3] = { la_arg_1, la_arg_2, NULL }; + + iq2000_add_macro ("la", la_sem, la_args); +#endif +} + + +void +md_assemble (str) + char * str; +{ + static long delayed_load_register = 0; + static int last_insn_had_delay_slot = 0; + static int last_insn_has_load_delay = 0; + static int last_insn_unconditional_jump = 0; + static int last_insn_was_ldw = 0; + + iq2000_insn insn; + char * errmsg; + + /* Initialize GAS's cgen interface for a new instruction. */ + gas_cgen_init_parse (); + + insn.insn = iq2000_cgen_assemble_insn + (gas_cgen_cpu_desc, str, & insn.fields, insn.buffer, & errmsg); + + if (!insn.insn) + { + as_bad ("%s", errmsg); + return; + } + + /* Doesn't really matter what we pass for RELAX_P here. */ + gas_cgen_finish_insn (insn.insn, insn.buffer, + CGEN_FIELDS_BITSIZE (& insn.fields), 1, NULL); + + /* We need to generate an error if there's a yielding instruction in the delay + slot of a control flow modifying instruction (jump (yes), load (no)) */ + if ((last_insn_had_delay_slot && !last_insn_has_load_delay) && + CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_YIELD_INSN)) + as_bad (_("the yielding instruction %s may not be in a delay slot."), + CGEN_INSN_NAME (insn.insn)); + + /* Warn about odd numbered base registers for paired-register + instructions like LDW. On iq2000, result is always rt. */ + if (iq2000_mach == bfd_mach_iq2000 + && CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_EVEN_REG_NUM) + && (insn.fields.f_rt % 2)) + as_bad (_("Register number (R%ld) for double word access must be even."), + insn.fields.f_rt); + + /* Warn about odd numbered base registers for paired-register + instructions like LDW. On iq10, result is always rd. */ + if (iq2000_mach == bfd_mach_iq10 + && CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_EVEN_REG_NUM) + && (insn.fields.f_rd % 2)) + as_bad (_("Register number (R%ld) for double word access must be even."), + insn.fields.f_rd); + + /* Warn about insns that reference the target of a previous load. */ + /* NOTE: R0 is a special case and is not subject to load delays (except for ldw). */ + if (delayed_load_register && (last_insn_has_load_delay || last_insn_was_ldw)) + { + if (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_RD) && + insn.fields.f_rd == delayed_load_register) + as_warn (_("operand references R%ld of previous load."), + insn.fields.f_rd); + + if (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_RS) && + insn.fields.f_rs == delayed_load_register) + as_warn (_("operand references R%ld of previous load."), + insn.fields.f_rs); + + if (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_RT) && + insn.fields.f_rt == delayed_load_register) + as_warn (_("operand references R%ld of previous load."), + insn.fields.f_rt); + + if (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_R31) && + delayed_load_register == 31) + as_warn (_("instruction implicitly accesses R31 of previous load.")); + } + + /* Warn about insns that reference the (target + 1) of a previous ldw */ + if (last_insn_was_ldw) + { + if ((CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_RD) + && insn.fields.f_rd == delayed_load_register + 1) + || (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_RS) + && insn.fields.f_rs == delayed_load_register + 1) + || (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_RT) + && insn.fields.f_rt == delayed_load_register + 1)) + as_warn (_("operand references R%ld of previous load."), + delayed_load_register + 1); + } + + last_insn_had_delay_slot = + CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_DELAY_SLOT); + + last_insn_has_load_delay = + CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_LOAD_DELAY); + + if (last_insn_unconditional_jump) + last_insn_has_load_delay = last_insn_unconditional_jump = 0; + else if (! strcmp (CGEN_INSN_MNEMONIC (insn.insn), "j") + || ! strcmp (CGEN_INSN_MNEMONIC (insn.insn), "jal")) + last_insn_unconditional_jump = 1; + + /* The meaning of EVEN_REG_NUM was overloaded to also imply LDW. Since that's + not true for IQ10, let's make the above logic specific to LDW. */ + last_insn_was_ldw = ! strcmp ("ldw", CGEN_INSN_NAME (insn.insn)); + + /* The assumption here is that the target of a load is always rt. + That is true for iq2000 & iq10. */ + delayed_load_register = insn.fields.f_rt; +} + +valueT +md_section_align (segment, size) + segT segment; + valueT size; +{ + int align = bfd_get_section_alignment (stdoutput, segment); + return ((size + (1 << align) - 1) & (-1 << align)); +} + + +symbolS * +md_undefined_symbol (name) + char * name ATTRIBUTE_UNUSED; +{ + return 0; +} + +/* Interface to relax_segment. */ + +/* Return an initial guess of the length by which a fragment must grow to + hold a branch to reach its destination. + Also updates fr_type/fr_subtype as necessary. + + Called just before doing relaxation. + Any symbol that is now undefined will not become defined. + The guess for fr_var is ACTUALLY the growth beyond fr_fix. + Whatever we do to grow fr_fix or fr_var contributes to our returned value. + Although it may not be explicit in the frag, pretend fr_var starts with a + 0 value. */ + +int +md_estimate_size_before_relax (fragP, segment) + fragS * fragP; + segT segment ATTRIBUTE_UNUSED; +{ + int old_fr_fix = fragP->fr_fix; + + /* The only thing we have to handle here are symbols outside of the + current segment. They may be undefined or in a different segment in + which case linker scripts may place them anywhere. + However, we can't finish the fragment here and emit the reloc as insn + alignment requirements may move the insn about. */ + + return (fragP->fr_var + fragP->fr_fix - old_fr_fix); +} + +/* *fragP has been relaxed to its final size, and now needs to have + the bytes inside it modified to conform to the new size. + + Called after relaxation is finished. + fragP->fr_type == rs_machine_dependent. + fragP->fr_subtype is the subtype of what the address relaxed to. */ + +void +md_convert_frag (abfd, sec, fragP) + bfd * abfd ATTRIBUTE_UNUSED; + segT sec ATTRIBUTE_UNUSED; + fragS * fragP ATTRIBUTE_UNUSED; +{ +} + + +/* Functions concerning relocs. */ + +long +md_pcrel_from_section (fixP, sec) + fixS * fixP; + segT sec; +{ + if (fixP->fx_addsy != (symbolS *) NULL + && (! S_IS_DEFINED (fixP->fx_addsy) + || S_GET_SEGMENT (fixP->fx_addsy) != sec)) + { + /* The symbol is undefined (or is defined but not in this section). + Let the linker figure it out. */ + return 0; + } + + /* return the address of the delay slot */ + return fixP->fx_size + fixP->fx_where + fixP->fx_frag->fr_address; +} + +/* Return the bfd reloc type for OPERAND of INSN at fixup FIXP. + Returns BFD_RELOC_NONE if no reloc type can be found. + *FIXP may be modified if desired. */ + +bfd_reloc_code_real_type +md_cgen_lookup_reloc (insn, operand, fixP) + const CGEN_INSN * insn ATTRIBUTE_UNUSED; + const CGEN_OPERAND * operand; + fixS * fixP ATTRIBUTE_UNUSED; +{ + switch (operand->type) + { + case IQ2000_OPERAND_OFFSET: + return BFD_RELOC_16_PCREL_S2; + case IQ2000_OPERAND_JMPTARG: + return BFD_RELOC_IQ2000_OFFSET_16; + case IQ2000_OPERAND_JMPTARGQ10: + if (iq2000_mach == bfd_mach_iq10) + return BFD_RELOC_IQ2000_OFFSET_21; + return BFD_RELOC_NONE; + case IQ2000_OPERAND_HI16: + return BFD_RELOC_HI16; + case IQ2000_OPERAND_LO16: + return BFD_RELOC_LO16; + default: + /* Pacify gcc -Wall. */ + return BFD_RELOC_NONE; + } + + return BFD_RELOC_NONE; +} + +/* Record a HI16 reloc for later matching with its LO16 cousin. */ + +static void +iq2000_record_hi16 (reloc_type, fixP, seg) + int reloc_type; + fixS * fixP; + segT seg ATTRIBUTE_UNUSED; +{ + struct iq2000_hi_fixup * hi_fixup; + + assert (reloc_type == BFD_RELOC_HI16); + + hi_fixup = ((struct iq2000_hi_fixup *) + xmalloc (sizeof (struct iq2000_hi_fixup))); + hi_fixup->fixp = fixP; + hi_fixup->seg = now_seg; + hi_fixup->next = iq2000_hi_fixup_list; + + iq2000_hi_fixup_list = hi_fixup; +} + +/* Called while parsing an instruction to create a fixup. + We need to check for HI16 relocs and queue them up for later sorting. */ + +fixS * +iq2000_cgen_record_fixup_exp (frag, where, insn, length, operand, opinfo, exp) + fragS * frag; + int where; + const CGEN_INSN * insn; + int length; + const CGEN_OPERAND * operand; + int opinfo; + expressionS * exp; +{ + fixS * fixP = gas_cgen_record_fixup_exp (frag, where, insn, length, + operand, opinfo, exp); + + switch (operand->type) + { + case IQ2000_OPERAND_HI16 : + /* If low/high was used, it is recorded in `opinfo'. */ + if (fixP->fx_cgen.opinfo == BFD_RELOC_HI16 + || fixP->fx_cgen.opinfo == BFD_RELOC_LO16) + iq2000_record_hi16 (fixP->fx_cgen.opinfo, fixP, now_seg); + break; + default : /* avoid -Wall warning */ + break; + } + + return fixP; +} + +/* Return BFD reloc type from opinfo field in a fixS. + It's tricky using fx_r_type in iq2000_frob_file because the values + are BFD_RELOC_UNUSED + operand number. */ +#define FX_OPINFO_R_TYPE(f) ((f)->fx_cgen.opinfo) + +/* Sort any unmatched HI16 relocs so that they immediately precede + the corresponding LO16 reloc. This is called before md_apply_fix3 and + tc_gen_reloc. */ + +void +iq2000_frob_file () +{ + struct iq2000_hi_fixup * l; + + for (l = iq2000_hi_fixup_list; l != NULL; l = l->next) + { + segment_info_type * seginfo; + int pass; + + assert (FX_OPINFO_R_TYPE (l->fixp) == BFD_RELOC_HI16 + || FX_OPINFO_R_TYPE (l->fixp) == BFD_RELOC_LO16); + + /* Check quickly whether the next fixup happens to be a matching low. */ + if (l->fixp->fx_next != NULL + && FX_OPINFO_R_TYPE (l->fixp->fx_next) == BFD_RELOC_LO16 + && l->fixp->fx_addsy == l->fixp->fx_next->fx_addsy + && l->fixp->fx_offset == l->fixp->fx_next->fx_offset) + continue; + + /* Look through the fixups for this segment for a matching + `low'. When we find one, move the high just in front of it. + We do this in two passes. In the first pass, we try to find + a unique `low'. In the second pass, we permit multiple + high's relocs for a single `low'. */ + seginfo = seg_info (l->seg); + for (pass = 0; pass < 2; pass++) + { + fixS * f; + fixS * prev; + + prev = NULL; + for (f = seginfo->fix_root; f != NULL; f = f->fx_next) + { + /* Check whether this is a `low' fixup which matches l->fixp. */ + if (FX_OPINFO_R_TYPE (f) == BFD_RELOC_LO16 + && f->fx_addsy == l->fixp->fx_addsy + && f->fx_offset == l->fixp->fx_offset + && (pass == 1 + || prev == NULL + || (FX_OPINFO_R_TYPE (prev) != BFD_RELOC_HI16) + || prev->fx_addsy != f->fx_addsy + || prev->fx_offset != f->fx_offset)) + { + fixS ** pf; + + /* Move l->fixp before f. */ + for (pf = &seginfo->fix_root; + * pf != l->fixp; + pf = & (* pf)->fx_next) + assert (* pf != NULL); + + * pf = l->fixp->fx_next; + + l->fixp->fx_next = f; + if (prev == NULL) + seginfo->fix_root = l->fixp; + else + prev->fx_next = l->fixp; + + break; + } + + prev = f; + } + + if (f != NULL) + break; + + if (pass == 1) + as_warn_where (l->fixp->fx_file, l->fixp->fx_line, + _("Unmatched high relocation")); + } + } +} + +/* See whether we need to force a relocation into the output file. */ + +int +iq2000_force_relocation (fix) + fixS * fix; +{ + if (fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT + || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + return 1; + + return 0; +} + +/* Handle the .set pseudo-op. */ + +static void +s_iq2000_set (x) + int x ATTRIBUTE_UNUSED; +{ + char *name = input_line_pointer, ch; + char *save_ILP = input_line_pointer; + + while (!is_end_of_line[(unsigned char) *input_line_pointer]) + input_line_pointer++; + ch = *input_line_pointer; + *input_line_pointer = '\0'; + + if (strcmp (name, "reorder") == 0) + { + } + else if (strcmp (name, "noreorder") == 0) + { + } + else if (strcmp (name, "at") == 0) + { + } + else if (strcmp (name, "noat") == 0) + { + } + else if (strcmp (name, "macro") == 0) + { + } + else if (strcmp (name, "nomacro") == 0) + { + } + else if (strcmp (name, "move") == 0 || strcmp (name, "novolatile") == 0) + { + } + else if (strcmp (name, "nomove") == 0 || strcmp (name, "volatile") == 0) + { + } + else if (strcmp (name, "bopt") == 0) + { + } + else if (strcmp (name, "nobopt") == 0) + { + } + else + { + /* We'd like to be able to use .set symbol, expn */ + input_line_pointer = save_ILP; + s_set (0); + return; + /*as_warn (_("Tried to set unrecognized symbol: %s\n"), name);*/ + } + *input_line_pointer = ch; + demand_empty_rest_of_line (); +} + +/* Write a value out to the object file, using the appropriate endianness. */ + +void +md_number_to_chars (buf, val, n) + char * buf; + valueT val; + int n; +{ + number_to_chars_bigendian (buf, val, n); +} + +void +md_operand (exp) + expressionS * exp; +{ + /* In case of a syntax error, escape back to try next syntax combo. */ + if (exp->X_op == O_absent) + gas_cgen_md_operand (exp); +} + +/* Turn a string in input_line_pointer into a floating point constant + of type type, and store the appropriate bytes in *litP. The number + of LITTLENUMS emitted is stored in *sizeP . An error message is + returned, or NULL on OK. */ + +/* Equal to MAX_PRECISION in atof-ieee.c */ +#define MAX_LITTLENUMS 6 + +char * +md_atof (type, litP, sizeP) + char type; + char *litP; + int *sizeP; +{ + int i; + int prec; + LITTLENUM_TYPE words [MAX_LITTLENUMS]; + char * t; + char * atof_ieee (); + + switch (type) + { + case 'f': + case 'F': + case 's': + case 'S': + prec = 2; + break; + + case 'd': + case 'D': + case 'r': + case 'R': + prec = 4; + break; + + /* FIXME: Some targets allow other format chars for bigger sizes here. */ + + default: + * sizeP = 0; + return _("Bad call to md_atof()"); + } + + t = atof_ieee (input_line_pointer, type, words); + if (t) + input_line_pointer = t; + * sizeP = prec * sizeof (LITTLENUM_TYPE); + + for (i = 0; i < prec; i++) + { + md_number_to_chars (litP, (valueT) words[i], + sizeof (LITTLENUM_TYPE)); + litP += sizeof (LITTLENUM_TYPE); + } + + return 0; +} + + +bfd_boolean +iq2000_fix_adjustable (fixP) + fixS * fixP; +{ + bfd_reloc_code_real_type reloc_type; + + if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + { + const CGEN_INSN *insn = NULL; + int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + const CGEN_OPERAND *operand = cgen_operand_lookup_by_num(gas_cgen_cpu_desc, opindex); + reloc_type = md_cgen_lookup_reloc (insn, operand, fixP); + } + else + reloc_type = fixP->fx_r_type; + + if (fixP->fx_addsy == NULL) + return TRUE; + + /* Prevent all adjustments to global symbols. */ + if (S_IS_EXTERN (fixP->fx_addsy)) + return FALSE; + + if (S_IS_WEAK (fixP->fx_addsy)) + return FALSE; + + /* We need the symbol name for the VTABLE entries. */ + if ( reloc_type == BFD_RELOC_VTABLE_INHERIT + || reloc_type == BFD_RELOC_VTABLE_ENTRY) + return FALSE; + + return TRUE; +} + +static void +s_change_sec (sec) + int sec; +{ + +#ifdef OBJ_ELF + /* The ELF backend needs to know that we are changing sections, so + that .previous works correctly. We could do something like check + for a obj_section_change_hook macro, but that might be confusing + as it would not be appropriate to use it in the section changing + functions in read.c, since obj-elf.c intercepts those. FIXME: + This should be cleaner, somehow. */ + obj_elf_section_change_hook (); +#endif + + /* iq2000_emit_delays (false); */ + + switch (sec) + { + case 't': + s_text (0); + break; + case 'd': + case 'r': + s_data (0); + break; + } +} + +/* The .end directive. */ + +static void +s_iq2000_end (x) + int x ATTRIBUTE_UNUSED; +{ + symbolS *p; + int maybe_text; + + if (!is_end_of_line[(unsigned char) *input_line_pointer]) + { + p = get_symbol (); + demand_empty_rest_of_line (); + } + else + p = NULL; + + if (1/*iq2000_mach == bfd_mach_iq2000*/) + { +#ifdef BFD_ASSEMBLER + if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0) + maybe_text = 1; + else + maybe_text = 0; +#else + if (now_seg != data_section && now_seg != bss_section) + maybe_text = 1; + else + maybe_text = 0; +#endif + + if (!maybe_text) + as_warn (_(".end not in text section")); + + if (!cur_proc_ptr) + { + as_warn (_(".end directive without a preceding .ent directive.")); + demand_empty_rest_of_line (); + return; + } + + if (p != NULL) + { + assert (S_GET_NAME (p)); + if (strcmp (S_GET_NAME (p), S_GET_NAME (cur_proc_ptr->isym))) + as_warn (_(".end symbol does not match .ent symbol.")); + } + else + as_warn (_(".end directive missing or unknown symbol")); + + } + + cur_proc_ptr = NULL; +} + +/* The .aent and .ent directives. */ + +static void +s_iq2000_ent (aent) + int aent; +{ + int number = 0; + symbolS *symbolP; + int maybe_text; + + if (1/*iq2000_mach == bfd_mach_iq2000*/) + { + symbolP = get_symbol (); + if (*input_line_pointer == ',') + input_line_pointer++; + SKIP_WHITESPACE (); + if (ISDIGIT (*input_line_pointer) || *input_line_pointer == '-') + number = get_number (); + +#ifdef BFD_ASSEMBLER + if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0) + maybe_text = 1; + else + maybe_text = 0; +#else + if (now_seg != data_section && now_seg != bss_section) + maybe_text = 1; + else + maybe_text = 0; +#endif + + if (!maybe_text) + as_warn (_(".ent or .aent not in text section.")); + + if (!aent && cur_proc_ptr) + as_warn (_("missing `.end'")); + + if (!aent) + { + cur_proc_ptr = &cur_proc; + memset (cur_proc_ptr, '\0', sizeof (procS)); + + cur_proc_ptr->isym = symbolP; + + symbol_get_bfdsym (symbolP)->flags |= BSF_FUNCTION; + + numprocs++; + } + } + else + as_bad (_("unknown pseudo-op: `%s'"), ".ent"); + + demand_empty_rest_of_line (); +} + +/* The .frame directive. If the mdebug section is present (IRIX 5 native) + then ecoff.c (ecoff_directive_frame) is used. For embedded targets, + s_iq2000_frame is used so that we can set the PDR information correctly. + We can't use the ecoff routines because they make reference to the ecoff + symbol table (in the mdebug section). */ + +static void +s_iq2000_frame (ignore) + int ignore; +{ + s_ignore (ignore); +} + +/* The .fmask and .mask directives. If the mdebug section is present + (IRIX 5 native) then ecoff.c (ecoff_directive_mask) is used. For + embedded targets, s_iq2000_mask is used so that we can set the PDR + information correctly. We can't use the ecoff routines because they + make reference to the ecoff symbol table (in the mdebug section). */ + +static void +s_iq2000_mask (reg_type) + char reg_type; +{ + s_ignore (reg_type); +} + +static symbolS * +get_symbol () +{ + int c; + char *name; + symbolS *p; + + name = input_line_pointer; + c = get_symbol_end (); + p = (symbolS *) symbol_find_or_make (name); + *input_line_pointer = c; + return p; +} + +static int +get_number () +{ + int negative = 0; + long val = 0; + + if (*input_line_pointer == '-') + { + ++input_line_pointer; + negative = 1; + } + + if (! ISDIGIT (*input_line_pointer)) + as_bad (_("Expected simple number.")); + + if (input_line_pointer[0] == '0') + { + if (input_line_pointer[1] == 'x') + { + input_line_pointer += 2; + while (ISXDIGIT (*input_line_pointer)) + { + val <<= 4; + val |= hex_value (*input_line_pointer++); + } + return negative ? -val : val; + } + else + { + ++input_line_pointer; + + while (ISDIGIT (*input_line_pointer)) + { + val <<= 3; + val |= *input_line_pointer++ - '0'; + } + return negative ? -val : val; + } + } + + if (! ISDIGIT (*input_line_pointer)) + { + printf (_(" *input_line_pointer == '%c' 0x%02x\n"), + *input_line_pointer, *input_line_pointer); + as_warn (_("Invalid number")); + return -1; + } + + while (ISDIGIT (*input_line_pointer)) + { + val *= 10; + val += *input_line_pointer++ - '0'; + } + + return negative ? -val : val; +} + diff -uprN binutils-2.13.90.0.16/gas/config/tc-iq2000.h binutils-2.13.90.0.18/gas/config/tc-iq2000.h --- binutils-2.13.90.0.16/gas/config/tc-iq2000.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/config/tc-iq2000.h Tue Jan 21 10:21:33 2003 @@ -0,0 +1,70 @@ +/* tc-iq2000.h -- Header file for tc-iq2000.c. + Copyright (C) 2003 Free Software Foundation, Inc. + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS 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 GAS; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#define TC_IQ2000 + +#ifndef BFD_ASSEMBLER +/* leading space so will compile with cc */ + #error IQ2000 support requires BFD_ASSEMBLER +#endif + +#define LISTING_HEADER "IQ2000 GAS " + +/* The target BFD architecture. */ +#define TARGET_ARCH bfd_arch_iq2000 + +#define TARGET_FORMAT "elf32-iq2000" + +#define TARGET_BYTES_BIG_ENDIAN 1 + +/* Permit temporary numeric labels. */ +#define LOCAL_LABELS_FB 1 + +/* .-foo gets turned into PC relative relocs. */ +#define DIFF_EXPR_OK + +/* We don't need to handle .word strangely. */ +#define WORKING_DOT_WORD + +#define md_apply_fix3 gas_cgen_md_apply_fix3 + +/* Call md_pcrel_from_section(), not md_pcrel_from(). */ +#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC) +extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); + +#define tc_frob_file() iq2000_frob_file () +extern void iq2000_frob_file PARAMS ((void)); + +#define obj_fix_adjustable(fixP) iq2000_fix_adjustable (fixP) +extern bfd_boolean iq2000_fix_adjustable PARAMS ((struct fix *)); + +/* Afrer creating a fixup for an instruction operand, we need to check + for HI16 relocs and queue them up for later sorting. */ +#define md_cgen_record_fixup_exp iq2000_cgen_record_fixup_exp + +/* When relaxing, we need to emit various relocs we otherwise wouldn't. */ +#define TC_FORCE_RELOCATION(fix) iq2000_force_relocation (fix) +extern int iq2000_force_relocation PARAMS ((struct fix *)); + +/* Values passed to md_apply_fix3 don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +#define tc_gen_reloc gas_cgen_tc_gen_reloc + diff -uprN binutils-2.13.90.0.16/gas/config/tc-m32r.c binutils-2.13.90.0.18/gas/config/tc-m32r.c --- binutils-2.13.90.0.16/gas/config/tc-m32r.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-m32r.c Mon Dec 16 12:22:52 2002 @@ -146,6 +146,8 @@ struct m32r_hi_fixup static struct m32r_hi_fixup *m32r_hi_fixup_list; +static void allow_m32rx PARAMS ((int)); + static void allow_m32rx (on) int on; @@ -198,7 +200,7 @@ size_t md_longopts_size = sizeof (md_lon int md_parse_option (c, arg) int c; - char *arg; + char *arg ATTRIBUTE_UNUSED; { switch (c) { @@ -379,7 +381,7 @@ m32r_handle_align (fragp) static void fill_insn (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { frag_align_code (2, 0); prev_insn.insn = NULL; @@ -394,7 +396,7 @@ fill_insn (ignore) static void debug_sym (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { register char *name; register char delim; @@ -568,6 +570,9 @@ md_begin () of instruction 'b'. If 'check_outputs' is true then b's outputs are checked, otherwise its inputs are examined. */ +static int first_writes_to_seconds_operands + PARAMS ((m32r_insn *, m32r_insn *, const int)); + static int first_writes_to_seconds_operands (a, b, check_outputs) m32r_insn *a; @@ -642,6 +647,8 @@ first_writes_to_seconds_operands (a, b, /* Returns true if the insn can (potentially) alter the program counter. */ +static int writes_to_pc PARAMS ((m32r_insn *)); + static int writes_to_pc (a) m32r_insn *a; @@ -674,6 +681,8 @@ writes_to_pc (a) /* Return NULL if the two 16 bit insns can be executed in parallel. Otherwise return a pointer to an error message explaining why not. */ +static const char *can_make_parallel PARAMS ((m32r_insn *, m32r_insn *)); + static const char * can_make_parallel (a, b) m32r_insn *a; @@ -687,7 +696,7 @@ can_make_parallel (a, b) || CGEN_FIELDS_BITSIZE (&b->fields) != 16) abort (); - if (first_writes_to_seconds_operands (a, b, true)) + if (first_writes_to_seconds_operands (a, b, TRUE)) return _("Instructions write to the same destination register."); a_pipe = CGEN_INSN_ATTR_VALUE (a->insn, CGEN_INSN_PIPE); @@ -710,6 +719,8 @@ can_make_parallel (a, b) /* Force the top bit of the second 16-bit insn to be set. */ +static void make_parallel PARAMS ((CGEN_INSN_BYTES_PTR)); + static void make_parallel (buffer) CGEN_INSN_BYTES_PTR buffer; @@ -724,6 +735,8 @@ make_parallel (buffer) /* Same as make_parallel except buffer contains the bytes in target order. */ +static void target_make_parallel PARAMS ((char *)); + static void target_make_parallel (buffer) char *buffer; @@ -735,6 +748,8 @@ target_make_parallel (buffer) /* Assemble two instructions with an explicit parallel operation (||) or sequential operation (->). */ +static void assemble_two_insns PARAMS ((char *, char *, int)); + static void assemble_two_insns (str, str2, parallel_p) char *str; @@ -929,11 +944,11 @@ assemble_two_insns (str, str2, parallel_ if (parallel_p && warn_explicit_parallel_conflicts) { - if (first_writes_to_seconds_operands (&first, &second, false)) + if (first_writes_to_seconds_operands (&first, &second, FALSE)) /* xgettext:c-format */ as_warn (_("%s: output of 1st instruction is the same as an input to 2nd instruction - is this intentional ?"), str2); - if (first_writes_to_seconds_operands (&second, &first, false)) + if (first_writes_to_seconds_operands (&second, &first, FALSE)) /* xgettext:c-format */ as_warn (_("%s: output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?"), str2); } @@ -1063,7 +1078,7 @@ md_assemble (str) else { int on_32bit_boundary_p; - int swap = false; + int swap = FALSE; if (CGEN_INSN_BITSIZE (insn.insn) != 16) abort (); @@ -1111,12 +1126,12 @@ md_assemble (str) && optimize && CGEN_INSN_ATTR_VALUE (insn.orig_insn, CGEN_INSN_RELAXABLE) == 0 && ! writes_to_pc (&prev_insn) - && ! first_writes_to_seconds_operands (&prev_insn, &insn, false)) + && ! first_writes_to_seconds_operands (&prev_insn, &insn, FALSE)) { if (can_make_parallel (&prev_insn, &insn) == NULL) make_parallel (insn.buffer); else if (can_make_parallel (&insn, &prev_insn) == NULL) - swap = true; + swap = TRUE; } expand_debug_syms (insn.debug_sym_link, 1); @@ -1216,7 +1231,7 @@ md_section_align (segment, size) symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -1230,7 +1245,7 @@ md_undefined_symbol (name) static void m32r_scomm (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { register char *name; register char c; @@ -1450,7 +1465,9 @@ md_estimate_size_before_relax (fragP, se if (S_GET_SEGMENT (fragP->fr_symbol) != segment) { +#if 0 int old_fr_fix = fragP->fr_fix; +#endif /* The symbol is undefined in this segment. Change the relaxation subtype to the max allowable and leave @@ -1514,7 +1531,7 @@ md_estimate_size_before_relax (fragP, se void md_convert_frag (abfd, sec, fragP) - bfd *abfd; + bfd *abfd ATTRIBUTE_UNUSED; segT sec; fragS *fragP; { @@ -1626,7 +1643,7 @@ md_pcrel_from_section (fixP, sec) bfd_reloc_code_real_type md_cgen_lookup_reloc (insn, operand, fixP) - const CGEN_INSN *insn; + const CGEN_INSN *insn ATTRIBUTE_UNUSED; const CGEN_OPERAND *operand; fixS *fixP; { @@ -1652,11 +1669,13 @@ md_cgen_lookup_reloc (insn, operand, fix /* Record a HI16 reloc for later matching with its LO16 cousin. */ +static void m32r_record_hi16 PARAMS ((int, fixS *, segT)); + static void m32r_record_hi16 (reloc_type, fixP, seg) int reloc_type; fixS *fixP; - segT seg; + segT seg ATTRIBUTE_UNUSED; { struct m32r_hi_fixup *hi_fixup; @@ -1842,7 +1861,6 @@ md_atof (type, litP, sizeP) int prec; LITTLENUM_TYPE words[MAX_LITTLENUMS]; char *t; - char *atof_ieee (); switch (type) { @@ -1909,7 +1927,7 @@ m32r_elf_section_change_hook () /* Return true if can adjust the reloc to be relative to its section (such as .data) instead of relative to some symbol. */ -boolean +bfd_boolean m32r_fix_adjustable (fixP) fixS *fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-m32r.h binutils-2.13.90.0.18/gas/config/tc-m32r.h --- binutils-2.13.90.0.16/gas/config/tc-m32r.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-m32r.h Mon Dec 16 12:22:52 2002 @@ -74,6 +74,7 @@ extern void m32r_handle_align PARAMS ((f #define md_apply_fix3 gas_cgen_md_apply_fix3 #define tc_fix_adjustable(FIX) m32r_fix_adjustable (FIX) +bfd_boolean m32r_fix_adjustable PARAMS ((struct fix *)); /* After creating a fixup for an instruction operand, we need to check for HI16 relocs and queue them up for later sorting. */ @@ -90,7 +91,7 @@ extern void m32r_frob_file PARAMS ((void /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ #define TC_FORCE_RELOCATION(fix) m32r_force_relocation (fix) -extern int m32r_force_relocation (); +extern int m32r_force_relocation PARAMS ((struct fix *)); /* Ensure insns at labels are aligned to 32 bit boundaries. */ int m32r_fill_insn PARAMS ((int)); @@ -104,4 +105,4 @@ int m32r_fill_insn PARAMS ((int)); #define md_cleanup m32r_elf_section_change_hook #define md_elf_section_change_hook m32r_elf_section_change_hook -extern void m32r_elf_section_change_hook (); +extern void m32r_elf_section_change_hook PARAMS ((void)); diff -uprN binutils-2.13.90.0.16/gas/config/tc-m68hc11.c binutils-2.13.90.0.18/gas/config/tc-m68hc11.c --- binutils-2.13.90.0.16/gas/config/tc-m68hc11.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-m68hc11.c Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ /* tc-m68hc11.c -- Assembler code for the Motorola 68HC11 & 68HC12. - Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Stephane Carrez (stcarrez@nerim.fr) This file is part of GAS, the GNU Assembler. @@ -37,8 +37,9 @@ const char FLT_CHARS[] = "dD"; #define STATE_CONDITIONAL_BRANCH (1) #define STATE_PC_RELATIVE (2) #define STATE_INDEXED_OFFSET (3) -#define STATE_XBCC_BRANCH (4) -#define STATE_CONDITIONAL_BRANCH_6812 (5) +#define STATE_INDEXED_PCREL (4) +#define STATE_XBCC_BRANCH (5) +#define STATE_CONDITIONAL_BRANCH_6812 (6) #define STATE_BYTE (0) #define STATE_BITS5 (0) @@ -90,6 +91,14 @@ relax_typeS md_relax_table[] = { {0, 0, 2, 0}, {1, 1, 0, 0}, + /* Relax for PC relative offset: 5-bits, 9-bits, 16-bits. + For the 9-bit case, there will be a -1 correction to take into + account the new byte that's why the range is -255..256. */ + {(15), (-16), 0, ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS9)}, + {(256), (-255), 1, ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS16)}, + {0, 0, 2, 0}, + {1, 1, 0, 0}, + /* Relax for dbeq/ibeq/tbeq r,: These insns are translated into db!cc +3 jmp L. */ {(255), (-256), 0, ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_WORD)}, @@ -242,7 +251,7 @@ static int num_opcodes; static struct m68hc11_opcode *m68hc11_sorted_opcodes; /* ELF flags to set in the output file header. */ -static int elf_flags = 0; +static int elf_flags = E_M68HC11_F64; /* These are the machine dependent pseudo-ops. These are included so the assembler can work on the output from the SUN C compiler, which @@ -305,6 +314,18 @@ struct option md_longopts[] = { #define OPTION_GENERATE_EXAMPLE (OPTION_MD_BASE + 5) {"generate-example", no_argument, NULL, OPTION_GENERATE_EXAMPLE}, +#define OPTION_MSHORT (OPTION_MD_BASE + 6) + {"mshort", no_argument, NULL, OPTION_MSHORT}, + +#define OPTION_MLONG (OPTION_MD_BASE + 7) + {"mlong", no_argument, NULL, OPTION_MLONG}, + +#define OPTION_MSHORT_DOUBLE (OPTION_MD_BASE + 8) + {"mshort-double", no_argument, NULL, OPTION_MSHORT_DOUBLE}, + +#define OPTION_MLONG_DOUBLE (OPTION_MD_BASE + 9) + {"mlong-double", no_argument, NULL, OPTION_MLONG_DOUBLE}, + {NULL, no_argument, NULL, 0} }; size_t md_longopts_size = sizeof (md_longopts); @@ -354,8 +375,13 @@ md_show_usage (stream) { get_default_target (); fprintf (stream, _("\ -Motorola 68HC11/68HC12 options:\n\ - -m68hc11 | -m68hc12 specify the processor [default %s]\n\ +Motorola 68HC11/68HC12/68HCS12 options:\n\ + -m68hc11 | -m68hc12 | + -m68hcs12 specify the processor [default %s]\n\ + -mshort use 16-bit int ABI (default)\n\ + -mlong use 32-bit int ABI\n\ + -mshort-double use 32-bit double ABI\n\ + -mlong-double use 64-bit double ABI (default)\n\ --force-long-branchs always turn relative branchs into absolute ones\n\ -S,--short-branchs do not turn relative branchs into absolute ones\n\ when the offset is out of range\n\ @@ -457,11 +483,29 @@ md_parse_option (c, arg) flag_print_opcodes = 2; break; + case OPTION_MSHORT: + elf_flags &= ~E_M68HC11_I32; + break; + + case OPTION_MLONG: + elf_flags |= E_M68HC11_I32; + break; + + case OPTION_MSHORT_DOUBLE: + elf_flags &= ~E_M68HC11_F64; + break; + + case OPTION_MLONG_DOUBLE: + elf_flags |= E_M68HC11_F64; + break; + case 'm': if (strcasecmp (arg, "68hc11") == 0) current_architecture = cpu6811; else if (strcasecmp (arg, "68hc12") == 0) current_architecture = cpu6812; + else if (strcasecmp (arg, "68hcs12") == 0) + current_architecture = cpu6812 | cpu6812s; else as_bad (_("Option `%s' is not recognized."), arg); break; @@ -606,7 +650,8 @@ md_begin () } } } - qsort (opcodes, num_opcodes, sizeof (struct m68hc11_opcode), cmp_opcode); + qsort (opcodes, num_opcodes, sizeof (struct m68hc11_opcode), + (int (*) PARAMS ((const PTR, const PTR))) cmp_opcode); opc = (struct m68hc11_opcode_def *) xmalloc (num_opcodes * sizeof (struct m68hc11_opcode_def)); @@ -1373,7 +1418,7 @@ fixup8 (oper, mode, opmode) fixS *fixp; fixp = fix_new_exp (frag_now, f - frag_now->fr_literal, 1, - oper, true, BFD_RELOC_8_PCREL); + oper, TRUE, BFD_RELOC_8_PCREL); fixp->fx_pcrel_adjust = 1; } else @@ -1381,7 +1426,7 @@ fixup8 (oper, mode, opmode) /* Now create an 8-bit fixup. If there was some %hi or %lo modifier, generate the reloc accordingly. */ fix_new_exp (frag_now, f - frag_now->fr_literal, 1, - oper, false, + oper, FALSE, ((opmode & M6811_OP_HIGH_ADDR) ? BFD_RELOC_M68HC11_HI8 : ((opmode & M6811_OP_LOW_ADDR) @@ -1425,7 +1470,7 @@ fixup16 (oper, mode, opmode) /* Now create a 16-bit fixup. */ fixp = fix_new_exp (frag_now, f - frag_now->fr_literal, 2, oper, - (mode & M6812_OP_JUMP_REL16 ? true : false), + (mode & M6812_OP_JUMP_REL16 ? TRUE : FALSE), (mode & M6812_OP_JUMP_REL16 ? BFD_RELOC_16_PCREL : (mode & M6812_OP_PAGE) @@ -1467,7 +1512,7 @@ fixup24 (oper, mode, opmode) /* Now create a 24-bit fixup. */ fixp = fix_new_exp (frag_now, f - frag_now->fr_literal, 2, - oper, false, BFD_RELOC_M68HC11_24); + oper, FALSE, BFD_RELOC_M68HC11_24); number_to_chars_bigendian (f, 0, 3); } else @@ -1901,21 +1946,28 @@ build_indexed_byte (op, format, move_ins } else if (op->reg1 != REG_PC) { - byte = (byte << 3) | 0xe2; + symbolS *sym; + offsetT off; + f = frag_more (1); number_to_chars_bigendian (f, byte, 1); - - f = frag_more (2); - fix_new_exp (frag_now, f - frag_now->fr_literal, 2, - &op->exp, false, BFD_RELOC_16); - number_to_chars_bigendian (f, 0, 2); + sym = op->exp.X_add_symbol; + off = op->exp.X_add_number; + if (op->exp.X_op != O_symbol) + { + sym = make_expr_symbol (&op->exp); + off = 0; + } + frag_var (rs_machine_dependent, 2, 2, + ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_UNDF), + sym, off, f); } else { f = frag_more (1); number_to_chars_bigendian (f, byte, 1); frag_var (rs_machine_dependent, 2, 2, - ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_UNDF), + ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_UNDF), op->exp.X_add_symbol, op->exp.X_add_number, f); } @@ -2028,17 +2080,12 @@ build_insn (opcode, operands, nb_operand char *f; long format; int move_insn = 0; - fragS *frag; - int where; /* Put the page code instruction if there is one. */ format = opcode->format; - frag = frag_now; - where = frag_now_fix (); - if (format & M6811_OP_BRANCH) - fix_new (frag, where, 1, + fix_new (frag_now, frag_now_fix (), 1, &abs_symbol, 0, 1, BFD_RELOC_M68HC11_RL_JUMP); if (format & OP_EXTENDED) @@ -2670,7 +2717,7 @@ md_pcrel_from (fixP) then it is done here. */ arelent * tc_gen_reloc (section, fixp) - asection *section; + asection *section ATTRIBUTE_UNUSED; fixS *fixp; { arelent *reloc; @@ -2700,6 +2747,100 @@ tc_gen_reloc (section, fixp) return reloc; } +/* We need a port-specific relaxation function to cope with sym2 - sym1 + relative expressions with both symbols in the same segment (but not + necessarily in the same frag as this insn), for example: + ldab sym2-(sym1-2),pc + sym1: + The offset can be 5, 9 or 16 bits long. */ + +long +m68hc11_relax_frag (seg, fragP, stretch) + segT seg ATTRIBUTE_UNUSED; + fragS *fragP; + long stretch ATTRIBUTE_UNUSED; +{ + long growth; + offsetT aim = 0; + symbolS *symbolP; + const relax_typeS *this_type; + const relax_typeS *start_type; + relax_substateT next_state; + relax_substateT this_state; + const relax_typeS *table = TC_GENERIC_RELAX_TABLE; + + /* We only have to cope with frags as prepared by + md_estimate_size_before_relax. The STATE_BITS16 case may geet here + because of the different reasons that it's not relaxable. */ + switch (fragP->fr_subtype) + { + case ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS16): + case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS16): + /* When we get to this state, the frag won't grow any more. */ + return 0; + + case ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS5): + case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS5): + case ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS9): + case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS9): + if (fragP->fr_symbol == NULL + || S_GET_SEGMENT (fragP->fr_symbol) != absolute_section) + as_fatal (_("internal inconsistency problem in %s: fr_symbol %lx"), + __FUNCTION__, (long) fragP->fr_symbol); + symbolP = fragP->fr_symbol; + if (symbol_resolved_p (symbolP)) + as_fatal (_("internal inconsistency problem in %s: resolved symbol"), + __FUNCTION__); + aim = S_GET_VALUE (symbolP); + break; + + default: + as_fatal (_("internal inconsistency problem in %s: fr_subtype %d"), + __FUNCTION__, fragP->fr_subtype); + } + + /* The rest is stolen from relax_frag. There's no obvious way to + share the code, but fortunately no requirement to keep in sync as + long as fragP->fr_symbol does not have its segment changed. */ + + this_state = fragP->fr_subtype; + start_type = this_type = table + this_state; + + if (aim < 0) + { + /* Look backwards. */ + for (next_state = this_type->rlx_more; next_state;) + if (aim >= this_type->rlx_backward) + next_state = 0; + else + { + /* Grow to next state. */ + this_state = next_state; + this_type = table + this_state; + next_state = this_type->rlx_more; + } + } + else + { + /* Look forwards. */ + for (next_state = this_type->rlx_more; next_state;) + if (aim <= this_type->rlx_forward) + next_state = 0; + else + { + /* Grow to next state. */ + this_state = next_state; + this_type = table + this_state; + next_state = this_type->rlx_more; + } + } + + growth = this_type->rlx_length - start_type->rlx_length; + if (growth != 0) + fragP->fr_subtype = this_state; + return growth; +} + void md_convert_frag (abfd, sec, fragP) bfd *abfd ATTRIBUTE_UNUSED; @@ -2766,31 +2907,44 @@ md_convert_frag (abfd, sec, fragP) fragP->fr_fix += 2; break; + case ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS5): + if (fragP->fr_symbol != 0 + && S_GET_SEGMENT (fragP->fr_symbol) != absolute_section) + value = disp; + /* fall through */ + case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS5): fragP->fr_opcode[0] = fragP->fr_opcode[0] << 6; - if ((fragP->fr_opcode[0] & 0x0ff) == 0x0c0) - fragP->fr_opcode[0] |= disp & 0x1f; - else - fragP->fr_opcode[0] |= value & 0x1f; + fragP->fr_opcode[0] |= value & 0x1f; break; + case ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS9): + /* For a PC-relative offset, use the displacement with a -1 correction + to take into account the additional byte of the insn. */ + if (fragP->fr_symbol != 0 + && S_GET_SEGMENT (fragP->fr_symbol) != absolute_section) + value = disp - 1; + /* fall through */ + case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS9): fragP->fr_opcode[0] = (fragP->fr_opcode[0] << 3); fragP->fr_opcode[0] |= 0xE0; - fix_new (fragP, fragP->fr_fix, 1, - fragP->fr_symbol, fragP->fr_offset, 0, BFD_RELOC_8); + fragP->fr_opcode[0] |= (value >> 8) & 1; + fragP->fr_opcode[1] = value; fragP->fr_fix += 1; break; + case ENCODE_RELAX (STATE_INDEXED_PCREL, STATE_BITS16): case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS16): fragP->fr_opcode[0] = (fragP->fr_opcode[0] << 3); fragP->fr_opcode[0] |= 0xe2; - if ((fragP->fr_opcode[0] & 0x0ff) == 0x0fa) + if ((fragP->fr_opcode[0] & 0x0ff) == 0x0fa + && fragP->fr_symbol != 0 + && S_GET_SEGMENT (fragP->fr_symbol) != absolute_section) { fixp = fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol, fragP->fr_offset, 1, BFD_RELOC_16_PCREL); - fixp->fx_pcrel_adjust = 2; } else { @@ -2895,13 +3049,46 @@ md_estimate_size_before_relax (fragP, se case STATE_INDEXED_OFFSET: assert (current_architecture & cpu6812); - /* Switch the indexed operation to 16-bit mode. */ - fragP->fr_opcode[0] = fragP->fr_opcode[0] << 3; - fragP->fr_opcode[0] |= 0xe2; - fragP->fr_fix++; - fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol, - fragP->fr_offset, 0, BFD_RELOC_16); - fragP->fr_fix++; + if (fragP->fr_symbol + && S_GET_SEGMENT (fragP->fr_symbol) == absolute_section) + { + fragP->fr_subtype = ENCODE_RELAX (STATE_INDEXED_OFFSET, + STATE_BITS5); + /* Return the size of the variable part of the frag. */ + return md_relax_table[fragP->fr_subtype].rlx_length; + } + else + { + /* Switch the indexed operation to 16-bit mode. */ + fragP->fr_opcode[0] = fragP->fr_opcode[0] << 3; + fragP->fr_opcode[0] |= 0xe2; + fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol, + fragP->fr_offset, 0, BFD_RELOC_16); + fragP->fr_fix += 2; + } + break; + + case STATE_INDEXED_PCREL: + assert (current_architecture & cpu6812); + + if (fragP->fr_symbol + && S_GET_SEGMENT (fragP->fr_symbol) == absolute_section) + { + fragP->fr_subtype = ENCODE_RELAX (STATE_INDEXED_PCREL, + STATE_BITS5); + /* Return the size of the variable part of the frag. */ + return md_relax_table[fragP->fr_subtype].rlx_length; + } + else + { + fixS* fixp; + + fragP->fr_opcode[0] = fragP->fr_opcode[0] << 3; + fragP->fr_opcode[0] |= 0xe2; + fixp = fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol, + fragP->fr_offset, 1, BFD_RELOC_16_PCREL); + fragP->fr_fix += 2; + } break; case STATE_XBCC_BRANCH: @@ -2967,6 +3154,13 @@ md_estimate_size_before_relax (fragP, se STATE_BITS5); break; + case STATE_INDEXED_PCREL: + assert (current_architecture & cpu6812); + + fragP->fr_subtype = ENCODE_RELAX (STATE_INDEXED_PCREL, + STATE_BITS5); + break; + case STATE_XBCC_BRANCH: assert (current_architecture & cpu6812); @@ -3022,11 +3216,16 @@ tc_m68hc11_fix_adjustable (fixP) /* For the linker relaxation to work correctly, these relocs need to be on the symbol itself. */ case BFD_RELOC_16: - case BFD_RELOC_LO16: case BFD_RELOC_M68HC11_RL_JUMP: case BFD_RELOC_M68HC11_RL_GROUP: case BFD_RELOC_VTABLE_INHERIT: case BFD_RELOC_VTABLE_ENTRY: + + /* The memory bank addressing translation also needs the original + symbol. */ + case BFD_RELOC_LO16: + case BFD_RELOC_M68HC11_PAGE: + case BFD_RELOC_M68HC11_24: return 0; case BFD_RELOC_32: @@ -3141,6 +3340,8 @@ md_apply_fix3 (fixP, valP, seg) void m68hc11_elf_final_processing () { + if (current_architecture & cpu6812s) + elf_flags |= EF_M68HCS12_MACH; elf_elfheader (stdoutput)->e_flags &= ~EF_M68HC11_ABI; elf_elfheader (stdoutput)->e_flags |= elf_flags; } diff -uprN binutils-2.13.90.0.16/gas/config/tc-m68hc11.h binutils-2.13.90.0.18/gas/config/tc-m68hc11.h --- binutils-2.13.90.0.16/gas/config/tc-m68hc11.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-m68hc11.h Mon Dec 16 12:22:52 2002 @@ -93,6 +93,15 @@ extern int m68hc11_parse_long_option PAR #define TC_GENERIC_RELAX_TABLE md_relax_table extern struct relax_type md_relax_table[]; +/* GAS only handles relaxations for pc-relative data targeting addresses + in the same segment, so we have to handle the rest on our own. */ +#define md_relax_frag(SEG, FRAGP, STRETCH) \ + ((FRAGP)->fr_symbol != NULL \ + && S_GET_SEGMENT ((FRAGP)->fr_symbol) == (SEG) \ + ? relax_frag (SEG, FRAGP, STRETCH) \ + : m68hc11_relax_frag (SEG, FRAGP, STRETCH)) +extern long m68hc11_relax_frag PARAMS ((segT, fragS*, long)); + #define TC_HANDLES_FX_DONE #define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */ diff -uprN binutils-2.13.90.0.16/gas/config/tc-m68k.c binutils-2.13.90.0.18/gas/config/tc-m68k.c --- binutils-2.13.90.0.16/gas/config/tc-m68k.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-m68k.c Mon Dec 16 12:22:52 2002 @@ -882,7 +882,7 @@ tc_m68k_fix_adjustable (fixP) arelent * tc_gen_reloc (section, fixp) - asection *section; + asection *section ATTRIBUTE_UNUSED; fixS *fixp; { arelent *reloc; @@ -6920,7 +6920,8 @@ md_show_usage (stream) FILE *stream; { const char *default_cpu = TARGET_CPU; - int default_arch, i; + int i; + unsigned int default_arch; /* Get the canonical name for the default target CPU. */ if (*default_cpu == 'm') diff -uprN binutils-2.13.90.0.16/gas/config/tc-m88k.c binutils-2.13.90.0.18/gas/config/tc-m88k.c --- binutils-2.13.90.0.16/gas/config/tc-m88k.c Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.18/gas/config/tc-m88k.c Mon Dec 16 12:22:52 2002 @@ -125,11 +125,14 @@ struct m88k_insn static char *get_bf PARAMS ((char *param, unsigned *valp)); static char *get_cmp PARAMS ((char *param, unsigned *valp)); static char *get_cnd PARAMS ((char *param, unsigned *valp)); +static char *get_bf2 PARAMS ((char *param, int bc)); +static char *get_bf_offset_expression PARAMS ((char *param, unsigned *offsetp)); static char *get_cr PARAMS ((char *param, unsigned *regnop)); static char *get_fcr PARAMS ((char *param, unsigned *regnop)); static char *get_imm16 PARAMS ((char *param, struct m88k_insn *insn)); static char *get_o6 PARAMS ((char *param, unsigned *valp)); -static char *get_reg PARAMS ((char *param, unsigned *regnop, int reg_prefix)); +static char *match_name PARAMS ((char *, struct field_val_assoc *, unsigned *)); +static char *get_reg PARAMS ((char *param, unsigned *regnop, unsigned int reg_prefix)); static char *get_vec9 PARAMS ((char *param, unsigned *valp)); static char *getval PARAMS ((char *param, unsigned int *valp)); @@ -162,9 +165,6 @@ const char EXP_CHARS[] = "eE"; /* or 0H1.234E-12 (see exp chars above) */ const char FLT_CHARS[] = "dDfF"; -extern void float_cons (), cons (), s_globl (), s_space (), - s_set (), s_lcomm (); - const pseudo_typeS md_pseudo_table[] = { {"align", s_align_bytes, 4}, @@ -333,7 +333,7 @@ calcop (format, param, insn) int f; unsigned val; unsigned opcode; - int reg_prefix = 'r'; + unsigned int reg_prefix = 'r'; insn->opcode = format->opcode; opcode = 0; @@ -465,7 +465,7 @@ static char * get_reg (param, regnop, reg_prefix) char *param; unsigned *regnop; - int reg_prefix; + unsigned int reg_prefix; { unsigned c; unsigned regno; @@ -885,7 +885,7 @@ get_o6 (param, valp) #define hexval(z) \ (ISDIGIT (z) ? (z) - '0' : \ ISLOWER (z) ? (z) - 'a' + 10 : \ - ISUPPER (z) ? (z) - 'A' + 10 : -1) + ISUPPER (z) ? (z) - 'A' + 10 : (unsigned) -1) static char * getval (param, valp) @@ -943,26 +943,6 @@ md_number_to_chars (buf, val, nbytes) number_to_chars_bigendian (buf, val, nbytes); } -void -md_number_to_disp (buf, val, nbytes) - char *buf; - int val; - int nbytes; -{ - as_fatal (_("md_number_to_disp not defined")); - md_number_to_chars (buf, val, nbytes); -} - -void -md_number_to_field (buf, val, nbytes) - char *buf; - int val; - int nbytes; -{ - as_fatal (_("md_number_to_field not defined")); - md_number_to_chars (buf, val, nbytes); -} - #define MAX_LITTLENUMS 6 /* Turn a string in input_line_pointer into a floating point constant of type diff -uprN binutils-2.13.90.0.16/gas/config/tc-mcore.c binutils-2.13.90.0.18/gas/config/tc-mcore.c --- binutils-2.13.90.0.16/gas/config/tc-mcore.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/tc-mcore.c Mon Dec 16 12:22:52 2002 @@ -210,7 +210,7 @@ const pseudo_typeS md_pseudo_table[] = { "text", mcore_s_text, 0 }, { "data", mcore_s_data, 0 }, { "bss", mcore_s_bss, 1 }, -#ifdef OBJ_EF +#ifdef OBJ_ELF { "comm", mcore_s_comm, 0 }, #endif { "section", mcore_s_section, 0 }, @@ -223,7 +223,7 @@ const pseudo_typeS md_pseudo_table[] = static void mcore_s_literals (ignore) - int ignore; + int ignore ATTRIBUTE_UNUSED; { dump_literals (0); demand_empty_rest_of_line (); @@ -410,10 +410,6 @@ md_begin () } } -static int reg_m; -static int reg_n; -static expressionS immediate; /* absolute expression */ - /* Get a log2(val). */ static int log2 (val) @@ -641,9 +637,9 @@ static void dump_literals (isforce) int isforce; { - int i; + unsigned int i; struct literal * p; - symbolS * brarsym; + symbolS * brarsym = NULL; if (poolsize == 0) return; @@ -678,7 +674,7 @@ dump_literals (isforce) for (i = 0, p = litpool; i < poolsize; i++, p++) emit_expr (& p->e, 4); - if (isforce) + if (brarsym != NULL) colon (S_GET_NAME (brarsym)); poolsize = 0; @@ -726,7 +722,7 @@ enter_literal (e, ispcrel) expressionS * e; int ispcrel; { - int i; + unsigned int i; struct literal * p; if (poolsize >= MAX_POOL_SIZE - 2) @@ -839,9 +835,9 @@ parse_imm (s, val, min, max) ; /* An error message has already been emitted. */ else if (e.X_op != O_constant) as_bad (_("operand must be a constant")); - else if (e.X_add_number < min || e.X_add_number > max) - as_bad (_("operand must be absolute in range %d..%d, not %d"), - min, max, e.X_add_number); + else if ((addressT) e.X_add_number < min || (addressT) e.X_add_number > max) + as_bad (_("operand must be absolute in range %u..%u, not %ld"), + min, max, (long) e.X_add_number); * val = e.X_add_number; @@ -855,8 +851,6 @@ parse_mem (s, reg, off, siz) unsigned * off; unsigned siz; { - char * new; - * off = 0; while (ISSPACE (* s)) @@ -1323,6 +1317,8 @@ md_assemble (str) size = 2; else if ((inst & 0x6000) == 0x2000) size = 1; + else + abort (); op_end = parse_mem (op_end + 1, & reg, & off, size); @@ -1661,7 +1657,7 @@ md_assemble (str) symbolS * md_undefined_symbol (name) - char * name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -1690,7 +1686,6 @@ md_atof (type, litP, sizeP) LITTLENUM_TYPE words[MAX_LITTLENUMS]; int i; char * t; - char * atof_ieee (); switch (type) { @@ -1779,9 +1774,6 @@ md_parse_option (c, arg) int c; char * arg; { - int i; - char * p; - switch (c) { case OPTION_CPU: @@ -1825,22 +1817,22 @@ int md_short_jump_size; void md_create_short_jump (ptr, from_Nddr, to_Nddr, frag, to_symbol) - char * ptr; - addressT from_Nddr; - addressT to_Nddr; - fragS * frag; - symbolS * to_symbol; + char * ptr ATTRIBUTE_UNUSED; + addressT from_Nddr ATTRIBUTE_UNUSED; + addressT to_Nddr ATTRIBUTE_UNUSED; + fragS * frag ATTRIBUTE_UNUSED; + symbolS * to_symbol ATTRIBUTE_UNUSED; { as_fatal (_("failed sanity check: short_jump")); } void md_create_long_jump (ptr, from_Nddr, to_Nddr, frag, to_symbol) - char * ptr; - addressT from_Nddr; - addressT to_Nddr; - fragS * frag; - symbolS * to_symbol; + char * ptr ATTRIBUTE_UNUSED; + addressT from_Nddr ATTRIBUTE_UNUSED; + addressT to_Nddr ATTRIBUTE_UNUSED; + fragS * frag ATTRIBUTE_UNUSED; + symbolS * to_symbol ATTRIBUTE_UNUSED; { as_fatal (_("failed sanity check: long_jump")); } @@ -1848,8 +1840,8 @@ md_create_long_jump (ptr, from_Nddr, to_ /* Called after relaxing, change the frags so they know how big they are. */ void md_convert_frag (abfd, sec, fragP) - bfd * abfd; - segT sec; + bfd * abfd ATTRIBUTE_UNUSED; + segT sec ATTRIBUTE_UNUSED; register fragS * fragP; { unsigned char * buffer; @@ -2049,7 +2041,7 @@ void md_apply_fix3 (fixP, valP, segment) fixS * fixP; valueT * valP; - segT segment; + segT segment ATTRIBUTE_UNUSED; { char * buf = fixP->fx_where + fixP->fx_frag->fr_literal; char * file = fixP->fx_file ? fixP->fx_file : _("unknown"); @@ -2078,12 +2070,12 @@ md_apply_fix3 (fixP, valP, segment) case BFD_RELOC_MCORE_PCREL_IMM11BY2: /* second byte of 2 byte opcode */ if ((val & 1) != 0) as_bad_where (file, fixP->fx_line, - _("odd distance branch (0x%x bytes)"), val); + _("odd distance branch (0x%lx bytes)"), (long) val); val /= 2; if (((val & ~0x3ff) != 0) && ((val | 0x3ff) != -1)) as_bad_where (file, fixP->fx_line, - _("pcrel for branch to %s too far (0x%x)"), - symname, val); + _("pcrel for branch to %s too far (0x%lx)"), + symname, (long) val); if (target_big_endian) { buf[0] |= ((val >> 8) & 0x7); @@ -2101,8 +2093,8 @@ md_apply_fix3 (fixP, valP, segment) val /= 4; if (val & ~0xff) as_bad_where (file, fixP->fx_line, - _("pcrel for lrw/jmpi/jsri to %s too far (0x%x)"), - symname, val); + _("pcrel for lrw/jmpi/jsri to %s too far (0x%lx)"), + symname, (long) val); else if (! target_big_endian) buf[0] |= (val & 0xff); else @@ -2112,7 +2104,7 @@ md_apply_fix3 (fixP, valP, segment) case BFD_RELOC_MCORE_PCREL_IMM4BY2: /* loopt instruction */ if ((val < -32) || (val > -2)) as_bad_where (file, fixP->fx_line, - _("pcrel for loopt too far (0x%x)"), val); + _("pcrel for loopt too far (0x%lx)"), (long) val); val /= 2; if (! target_big_endian) buf[0] |= (val & 0xf); @@ -2275,7 +2267,7 @@ md_number_to_chars (ptr, use, nbytes) /* Round up a section size to the appropriate boundary. */ valueT md_section_align (segment, size) - segT segment; + segT segment ATTRIBUTE_UNUSED; valueT size; { return size; /* Byte alignment is fine */ @@ -2286,7 +2278,7 @@ md_section_align (segment, size) long md_pcrel_from_section (fixp, sec) fixS * fixp; - segT sec; + segT sec ATTRIBUTE_UNUSED; { #ifdef OBJ_ELF /* If the symbol is undefined or defined in another section @@ -2311,12 +2303,11 @@ md_pcrel_from_section (fixp, sec) arelent * tc_gen_reloc (section, fixp) - asection * section; + asection * section ATTRIBUTE_UNUSED; fixS * fixp; { arelent * rel; bfd_reloc_code_real_type code; - int handled = 0; switch (fixp->fx_r_type) { @@ -2390,7 +2381,7 @@ mcore_force_relocation (fix) /* Return true if the fix can be handled by GAS, false if it must be passed through to the linker. */ -boolean +bfd_boolean mcore_fix_adjustable (fixP) fixS * fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-mcore.h binutils-2.13.90.0.18/gas/config/tc-mcore.h --- binutils-2.13.90.0.16/gas/config/tc-mcore.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-mcore.h Mon Dec 16 12:22:52 2002 @@ -51,6 +51,7 @@ #define LOCAL_LABELS_FB 1 #define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep (frag) +int tc_coff_sizemachdep PARAMS ((struct frag *)); extern const struct relax_type md_relax_table[]; #define TC_GENERIC_RELAX_TABLE md_relax_table @@ -96,7 +97,7 @@ struct mcore_tc_sy extern int mcore_force_relocation PARAMS ((struct fix *)); #define tc_fix_adjustable(FIX) mcore_fix_adjustable (FIX) -extern boolean mcore_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean mcore_fix_adjustable PARAMS ((struct fix *)); /* Values passed to md_apply_fix3 don't include the symbol value. */ #define MD_APPLY_SYM_VALUE(FIX) 0 diff -uprN binutils-2.13.90.0.16/gas/config/tc-mips.c binutils-2.13.90.0.18/gas/config/tc-mips.c --- binutils-2.13.90.0.16/gas/config/tc-mips.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/tc-mips.c Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ /* tc-mips.c -- assemble code for a MIPS chip. - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by the OSF and Ralph Campbell. Written by Keith Knowles and Ralph Campbell, working independently. @@ -260,6 +260,18 @@ static int mips_32bitmode = 0; || (ISA) == ISA_MIPS64 \ ) +/* Return true if ISA supports 64-bit right rotate (dror et al.) + instructions. */ +#define ISA_HAS_DROR(ISA) ( \ + 0 \ + ) + +/* Return true if ISA supports 32-bit right rotate (ror et al.) + instructions. */ +#define ISA_HAS_ROR(ISA) ( \ + (ISA) == ISA_MIPS32R2 \ + ) + #define HAVE_32BIT_GPRS \ (mips_opts.gp32 || ! ISA_HAS_64BIT_REGS (mips_opts.isa)) @@ -293,7 +305,7 @@ static int mips_32bitmode = 0; ) /* Return true if the given CPU supports the MDMX ASE. */ -#define CPU_HAS_MDMX(cpu) (false \ +#define CPU_HAS_MDMX(cpu) (FALSE \ ) /* True if CPU has a dror instruction. */ @@ -693,7 +705,7 @@ static int mips_relax_branch; It would be possible to generate a shorter sequence by losing the likely bit, generating something like: - + bne reg1, reg2, 0f nop j[al] label @@ -714,16 +726,14 @@ static int mips_relax_branch; but it's not clear that it would actually improve performance. */ -#define RELAX_BRANCH_ENCODE(reloc_s2, uncond, likely, link, toofar) \ +#define RELAX_BRANCH_ENCODE(uncond, likely, link, toofar) \ ((relax_substateT) \ (0xc0000000 \ | ((toofar) ? 1 : 0) \ | ((link) ? 2 : 0) \ | ((likely) ? 4 : 0) \ - | ((uncond) ? 8 : 0) \ - | ((reloc_s2) ? 16 : 0))) + | ((uncond) ? 8 : 0))) #define RELAX_BRANCH_P(i) (((i) & 0xf0000000) == 0xc0000000) -#define RELAX_BRANCH_RELOC_S2(i) (((i) & 16) != 0) #define RELAX_BRANCH_UNCOND(i) (((i) & 8) != 0) #define RELAX_BRANCH_LIKELY(i) (((i) & 4) != 0) #define RELAX_BRANCH_LINK(i) (((i) & 2) != 0) @@ -791,95 +801,149 @@ static int mips_relax_branch; enum mips_regclass { MIPS_GR_REG, MIPS_FP_REG, MIPS16_REG }; -static int insn_uses_reg PARAMS ((struct mips_cl_insn *ip, - unsigned int reg, enum mips_regclass class)); -static int reg_needs_delay PARAMS ((unsigned int)); -static void mips16_mark_labels PARAMS ((void)); -static void append_insn PARAMS ((char *place, - struct mips_cl_insn * ip, - expressionS * p, - bfd_reloc_code_real_type *r, - boolean)); -static void mips_no_prev_insn PARAMS ((int)); -static void mips_emit_delays PARAMS ((boolean)); +static int insn_uses_reg + PARAMS ((struct mips_cl_insn *ip, unsigned int reg, + enum mips_regclass class)); +static int reg_needs_delay + PARAMS ((unsigned int)); +static void mips16_mark_labels + PARAMS ((void)); +static void append_insn + PARAMS ((char *place, struct mips_cl_insn * ip, expressionS * p, + bfd_reloc_code_real_type *r, bfd_boolean)); +static void mips_no_prev_insn + PARAMS ((int)); +static void mips_emit_delays + PARAMS ((bfd_boolean)); #ifdef USE_STDARG -static void macro_build PARAMS ((char *place, int *counter, expressionS * ep, - const char *name, const char *fmt, - ...)); +static void macro_build + PARAMS ((char *place, int *counter, expressionS * ep, const char *name, + const char *fmt, ...)); #else static void macro_build (); #endif -static void mips16_macro_build PARAMS ((char *, int *, expressionS *, - const char *, const char *, - va_list)); -static void macro_build_jalr PARAMS ((int, expressionS *)); -static void macro_build_lui PARAMS ((char *place, int *counter, - expressionS * ep, int regnum)); -static void macro_build_ldst_constoffset PARAMS ((char *place, int *counter, - expressionS * ep, const char *op, - int valreg, int breg)); -static void set_at PARAMS ((int *counter, int reg, int unsignedp)); -static void check_absolute_expr PARAMS ((struct mips_cl_insn * ip, - expressionS *)); -static void load_register PARAMS ((int *, int, expressionS *, int)); -static void load_address PARAMS ((int *, int, expressionS *, int *)); -static void move_register PARAMS ((int *, int, int)); -static void macro PARAMS ((struct mips_cl_insn * ip)); -static void mips16_macro PARAMS ((struct mips_cl_insn * ip)); +static void mips16_macro_build + PARAMS ((char *, int *, expressionS *, const char *, const char *, va_list)); +static void macro_build_jalr + PARAMS ((int, expressionS *)); +static void macro_build_lui + PARAMS ((char *place, int *counter, expressionS * ep, int regnum)); +static void macro_build_ldst_constoffset + PARAMS ((char *place, int *counter, expressionS * ep, const char *op, + int valreg, int breg)); +static void set_at + PARAMS ((int *counter, int reg, int unsignedp)); +static void check_absolute_expr + PARAMS ((struct mips_cl_insn * ip, expressionS *)); +static void load_register + PARAMS ((int *, int, expressionS *, int)); +static void load_address + PARAMS ((int *, int, expressionS *, int *)); +static void move_register + PARAMS ((int *, int, int)); +static void macro + PARAMS ((struct mips_cl_insn * ip)); +static void mips16_macro + PARAMS ((struct mips_cl_insn * ip)); #ifdef LOSING_COMPILER -static void macro2 PARAMS ((struct mips_cl_insn * ip)); +static void macro2 + PARAMS ((struct mips_cl_insn * ip)); #endif -static void mips_ip PARAMS ((char *str, struct mips_cl_insn * ip)); -static void mips16_ip PARAMS ((char *str, struct mips_cl_insn * ip)); -static void mips16_immed PARAMS ((char *, unsigned int, int, offsetT, boolean, - boolean, boolean, unsigned long *, - boolean *, unsigned short *)); -static int my_getPercentOp PARAMS ((char **, unsigned int *, int *)); -static int my_getSmallParser PARAMS ((char **, unsigned int *, int *)); -static int my_getSmallExpression PARAMS ((expressionS *, char *)); -static void my_getExpression PARAMS ((expressionS *, char *)); +static void mips_ip + PARAMS ((char *str, struct mips_cl_insn * ip)); +static void mips16_ip + PARAMS ((char *str, struct mips_cl_insn * ip)); +static void mips16_immed + PARAMS ((char *, unsigned int, int, offsetT, bfd_boolean, bfd_boolean, + bfd_boolean, unsigned long *, bfd_boolean *, unsigned short *)); +static int my_getPercentOp + PARAMS ((char **, unsigned int *, int *)); +static int my_getSmallParser + PARAMS ((char **, unsigned int *, int *)); +static int my_getSmallExpression + PARAMS ((expressionS *, char *)); +static void my_getExpression + PARAMS ((expressionS *, char *)); #ifdef OBJ_ELF -static int support_64bit_objects PARAMS((void)); +static int support_64bit_objects + PARAMS((void)); #endif -static void mips_set_option_string PARAMS ((const char **, const char *)); -static symbolS *get_symbol PARAMS ((void)); -static void mips_align PARAMS ((int to, int fill, symbolS *label)); -static void s_align PARAMS ((int)); -static void s_change_sec PARAMS ((int)); -static void s_change_section PARAMS ((int)); -static void s_cons PARAMS ((int)); -static void s_float_cons PARAMS ((int)); -static void s_mips_globl PARAMS ((int)); -static void s_option PARAMS ((int)); -static void s_mipsset PARAMS ((int)); -static void s_abicalls PARAMS ((int)); -static void s_cpload PARAMS ((int)); -static void s_cpsetup PARAMS ((int)); -static void s_cplocal PARAMS ((int)); -static void s_cprestore PARAMS ((int)); -static void s_cpreturn PARAMS ((int)); -static void s_gpvalue PARAMS ((int)); -static void s_gpword PARAMS ((int)); -static void s_gpdword PARAMS ((int)); -static void s_cpadd PARAMS ((int)); -static void s_insn PARAMS ((int)); -static void md_obj_begin PARAMS ((void)); -static void md_obj_end PARAMS ((void)); -static long get_number PARAMS ((void)); -static void s_mips_ent PARAMS ((int)); -static void s_mips_end PARAMS ((int)); -static void s_mips_frame PARAMS ((int)); -static void s_mips_mask PARAMS ((int)); -static void s_mips_stab PARAMS ((int)); -static void s_mips_weakext PARAMS ((int)); -static void s_mips_file PARAMS ((int)); -static void s_mips_loc PARAMS ((int)); -static int mips16_extended_frag PARAMS ((fragS *, asection *, long)); +static void mips_set_option_string + PARAMS ((const char **, const char *)); +static symbolS *get_symbol + PARAMS ((void)); +static void mips_align + PARAMS ((int to, int fill, symbolS *label)); +static void s_align + PARAMS ((int)); +static void s_change_sec + PARAMS ((int)); +static void s_change_section + PARAMS ((int)); +static void s_cons + PARAMS ((int)); +static void s_float_cons + PARAMS ((int)); +static void s_mips_globl + PARAMS ((int)); +static void s_option + PARAMS ((int)); +static void s_mipsset + PARAMS ((int)); +static void s_abicalls + PARAMS ((int)); +static void s_cpload + PARAMS ((int)); +static void s_cpsetup + PARAMS ((int)); +static void s_cplocal + PARAMS ((int)); +static void s_cprestore + PARAMS ((int)); +static void s_cpreturn + PARAMS ((int)); +static void s_gpvalue + PARAMS ((int)); +static void s_gpword + PARAMS ((int)); +static void s_gpdword + PARAMS ((int)); +static void s_cpadd + PARAMS ((int)); +static void s_insn + PARAMS ((int)); +static void md_obj_begin + PARAMS ((void)); +static void md_obj_end + PARAMS ((void)); +static long get_number + PARAMS ((void)); +static void s_mips_ent + PARAMS ((int)); +static void s_mips_end + PARAMS ((int)); +static void s_mips_frame + PARAMS ((int)); +static void s_mips_mask + PARAMS ((int)); +static void s_mips_stab + PARAMS ((int)); +static void s_mips_weakext + PARAMS ((int)); +static void s_mips_file + PARAMS ((int)); +static void s_mips_loc + PARAMS ((int)); +static int mips16_extended_frag + PARAMS ((fragS *, asection *, long)); static int relaxed_branch_length (fragS *, asection *, int); -static int validate_mips_insn PARAMS ((const struct mips_opcode *)); -static void show PARAMS ((FILE *, const char *, int *, int *)); +static int validate_mips_insn + PARAMS ((const struct mips_opcode *)); +static void show + PARAMS ((FILE *, const char *, int *, int *)); #ifdef OBJ_ELF -static int mips_need_elf_addend_fixup PARAMS ((fixS *)); +static int mips_need_elf_addend_fixup + PARAMS ((fixS *)); #endif /* Return values of my_getSmallExpression(). */ @@ -919,14 +983,18 @@ struct mips_cpu_info int cpu; /* CPU number (default CPU if ISA). */ }; -static void mips_set_architecture PARAMS ((const struct mips_cpu_info *)); -static void mips_set_tune PARAMS ((const struct mips_cpu_info *)); -static boolean mips_strict_matching_cpu_name_p PARAMS ((const char *, - const char *)); -static boolean mips_matching_cpu_name_p PARAMS ((const char *, const char *)); -static const struct mips_cpu_info *mips_parse_cpu PARAMS ((const char *, - const char *)); -static const struct mips_cpu_info *mips_cpu_info_from_isa PARAMS ((int)); +static void mips_set_architecture + PARAMS ((const struct mips_cpu_info *)); +static void mips_set_tune + PARAMS ((const struct mips_cpu_info *)); +static bfd_boolean mips_strict_matching_cpu_name_p + PARAMS ((const char *, const char *)); +static bfd_boolean mips_matching_cpu_name_p + PARAMS ((const char *, const char *)); +static const struct mips_cpu_info *mips_parse_cpu + PARAMS ((const char *, const char *)); +static const struct mips_cpu_info *mips_cpu_info_from_isa + PARAMS ((int)); /* Pseudo-op table. @@ -1070,11 +1138,11 @@ static bfd_reloc_code_real_type offset_r /* This is set by mips_ip if imm_reloc is an unmatched HI16_S reloc. */ -static boolean imm_unmatched_hi; +static bfd_boolean imm_unmatched_hi; /* These are set by mips16_ip if an explicit extension is used. */ -static boolean mips16_small, mips16_ext; +static bfd_boolean mips16_small, mips16_ext; #ifdef OBJ_ELF /* The pdr segment for per procedure frame/regmask info. Not used for @@ -1237,7 +1305,7 @@ md_begin () &zero_address_frag)); } - mips_no_prev_insn (false); + mips_no_prev_insn (FALSE); mips_gprmask = 0; mips_cprmask[0] = 0; @@ -1362,7 +1430,7 @@ md_assemble (str) = {BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED}; imm_expr.X_op = O_absent; - imm_unmatched_hi = false; + imm_unmatched_hi = FALSE; offset_expr.X_op = O_absent; imm_reloc[0] = BFD_RELOC_UNUSED; imm_reloc[1] = BFD_RELOC_UNUSED; @@ -1398,9 +1466,9 @@ md_assemble (str) if (imm_expr.X_op != O_absent) append_insn (NULL, &insn, &imm_expr, imm_reloc, imm_unmatched_hi); else if (offset_expr.X_op != O_absent) - append_insn (NULL, &insn, &offset_expr, offset_reloc, false); + append_insn (NULL, &insn, &offset_expr, offset_reloc, FALSE); else - append_insn (NULL, &insn, NULL, unused_reloc, false); + append_insn (NULL, &insn, NULL, unused_reloc, FALSE); } } @@ -1553,7 +1621,7 @@ append_insn (place, ip, address_expr, re struct mips_cl_insn *ip; expressionS *address_expr; bfd_reloc_code_real_type *reloc_type; - boolean unmatched_hi; + bfd_boolean unmatched_hi; { register unsigned long prev_pinfo, pinfo; char *f; @@ -1948,9 +2016,7 @@ append_insn (place, ip, address_expr, re if (place == NULL && address_expr - && ((*reloc_type == BFD_RELOC_16_PCREL - && address_expr->X_op != O_constant) - || *reloc_type == BFD_RELOC_16_PCREL_S2) + && *reloc_type == BFD_RELOC_16_PCREL_S2 && (pinfo & INSN_UNCOND_BRANCH_DELAY || pinfo & INSN_COND_BRANCH_DELAY || pinfo & INSN_COND_BRANCH_LIKELY) && mips_relax_branch @@ -1967,8 +2033,7 @@ append_insn (place, ip, address_expr, re (pinfo & INSN_UNCOND_BRANCH_DELAY) ? -1 : (pinfo & INSN_COND_BRANCH_LIKELY) ? 1 : 0), 4, RELAX_BRANCH_ENCODE - (*reloc_type == BFD_RELOC_16_PCREL_S2, - pinfo & INSN_UNCOND_BRANCH_DELAY, + (pinfo & INSN_UNCOND_BRANCH_DELAY, pinfo & INSN_COND_BRANCH_LIKELY, pinfo & INSN_WRITE_GPR_31, 0), @@ -2072,10 +2137,6 @@ append_insn (place, ip, address_expr, re | ((address_expr->X_add_number & 0x3fffc) >> 2)); break; - case BFD_RELOC_16_PCREL: - ip->insn_opcode |= address_expr->X_add_number & 0xffff; - break; - case BFD_RELOC_16_PCREL_S2: goto need_reloc; @@ -2091,8 +2152,7 @@ append_insn (place, ip, address_expr, re { fixp[0] = fix_new_exp (frag_now, f - frag_now->fr_literal, 4, address_expr, - (*reloc_type == BFD_RELOC_16_PCREL - || *reloc_type == BFD_RELOC_16_PCREL_S2), + *reloc_type == BFD_RELOC_16_PCREL_S2, reloc_type[0]); /* These relocations can have an addend that won't fit in @@ -2138,7 +2198,7 @@ append_insn (place, ip, address_expr, re address_expr->X_add_number = 0; fixp[1] = fix_new_exp (frag_now, f - frag_now->fr_literal, - 4, address_expr, false, + 4, address_expr, FALSE, reloc_type[1]); /* These relocations can have an addend that won't fit in @@ -2170,7 +2230,7 @@ append_insn (place, ip, address_expr, re fixp[2] = fix_new_exp (frag_now, f - frag_now->fr_literal, 4, - address_expr, false, + address_expr, FALSE, reloc_type[2]); /* These relocations can have an addend that won't fit in @@ -2726,7 +2786,7 @@ mips_no_prev_insn (preserve) static void mips_emit_delays (insns) - boolean insns; + bfd_boolean insns; { if (! mips_opts.noreorder) { @@ -2916,7 +2976,7 @@ macro_build (place, counter, ep, name, f /* Search until we get a match for NAME. */ while (1) { - /* It is assumed here that macros will never generate + /* It is assumed here that macros will never generate MDMX or MIPS-3D instructions. */ if (strcmp (fmt, insn.insn_mo->args) == 0 && insn.insn_mo->pinfo != INSN_MACRO @@ -2962,6 +3022,7 @@ macro_build (place, counter, ep, name, f case 'd': case 'G': + case 'K': insn.insn_opcode |= va_arg (args, int) << OP_SH_RD; continue; @@ -3059,10 +3120,7 @@ macro_build (place, counter, ep, name, f ep = NULL; } else - if (mips_pic == EMBEDDED_PIC) - *r = BFD_RELOC_16_PCREL_S2; - else - *r = BFD_RELOC_16_PCREL; + *r = BFD_RELOC_16_PCREL_S2; continue; case 'a': @@ -3082,7 +3140,7 @@ macro_build (place, counter, ep, name, f va_end (args); assert (*r == BFD_RELOC_UNUSED ? ep == NULL : ep != NULL); - append_insn (place, &insn, ep, r, false); + append_insn (place, &insn, ep, r, FALSE); } static void @@ -3111,7 +3169,7 @@ mips16_macro_build (place, counter, ep, } insn.insn_opcode = insn.insn_mo->match; - insn.use_extend = false; + insn.use_extend = FALSE; for (;;) { @@ -3189,8 +3247,8 @@ mips16_macro_build (place, counter, ep, *r = (int) BFD_RELOC_UNUSED + c; else { - mips16_immed (NULL, 0, c, ep->X_add_number, false, false, - false, &insn.insn_opcode, &insn.use_extend, + mips16_immed (NULL, 0, c, ep->X_add_number, FALSE, FALSE, + FALSE, &insn.insn_opcode, &insn.use_extend, &insn.extend); ep = NULL; *r = BFD_RELOC_UNUSED; @@ -3208,7 +3266,7 @@ mips16_macro_build (place, counter, ep, assert (*r == BFD_RELOC_UNUSED ? ep == NULL : ep != NULL); - append_insn (place, &insn, ep, r, false); + append_insn (place, &insn, ep, r, FALSE); } /* @@ -3221,7 +3279,7 @@ macro_build_jalr (icnt, ep) expressionS *ep; { char *f; - + if (HAVE_NEWABI) { frag_grow (4); @@ -3231,7 +3289,7 @@ macro_build_jalr (icnt, ep) RA, PIC_CALL_REG); if (HAVE_NEWABI) fix_new_exp (frag_now, f - frag_now->fr_literal, - 0, ep, false, BFD_RELOC_MIPS_JALR); + 0, ep, FALSE, BFD_RELOC_MIPS_JALR); } /* @@ -3298,10 +3356,10 @@ macro_build_lui (place, counter, ep, reg if (*r == BFD_RELOC_UNUSED) { insn.insn_opcode |= high_expr.X_add_number; - append_insn (place, &insn, NULL, r, false); + append_insn (place, &insn, NULL, r, FALSE); } else - append_insn (place, &insn, &high_expr, r, false); + append_insn (place, &insn, &high_expr, r, FALSE); } /* Generate a sequence of instructions to do a load or store from a constant @@ -3773,7 +3831,7 @@ load_address (counter, reg, ep, used_at) dsll32 $reg,0 daddu $reg,$reg,$at - If $at is already in use, we use an path which is suboptimal + If $at is already in use, we use a path which is suboptimal on superscalar processors. lui $reg, (BFD_RELOC_MIPS_HIGHEST) daddiu $reg, (BFD_RELOC_MIPS_HIGHER) @@ -4054,7 +4112,7 @@ macro (ip) sub v0,$zero,$a0 */ - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; @@ -4518,7 +4576,7 @@ macro (ip) return; } - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; if (mips_trap) @@ -4673,7 +4731,7 @@ macro (ip) s = "ddivu"; s2 = "mfhi"; do_divu3: - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; if (mips_trap) @@ -4809,7 +4867,7 @@ macro (ip) dsll32 $tempreg,0 daddu $tempreg,$tempreg,$at - If $at is already in use, we use an path which is suboptimal + If $at is already in use, we use a path which is suboptimal on superscalar processors. lui $tempreg, (BFD_RELOC_MIPS_HIGHEST) daddiu $tempreg, (BFD_RELOC_MIPS_HIGHER) @@ -6827,7 +6885,7 @@ macro2 (ip) dbl = 1; case M_MULO: do_mulo: - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; if (imm) @@ -6867,7 +6925,7 @@ macro2 (ip) dbl = 1; case M_MULOU: do_mulou: - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; if (imm) @@ -6895,6 +6953,26 @@ macro2 (ip) break; case M_DROL: + if (ISA_HAS_DROR (mips_opts.isa) || CPU_HAS_DROR (mips_arch)) + { + if (dreg == sreg) + { + tempreg = AT; + used_at = 1; + } + else + { + tempreg = dreg; + used_at = 0; + } + macro_build ((char *) NULL, &icnt, NULL, "dnegu", + "d,w", tempreg, treg); + macro_build ((char *) NULL, &icnt, NULL, "drorv", + "d,t,s", dreg, sreg, tempreg); + if (used_at) + break; + return; + } macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsubu", "d,v,t", AT, 0, treg); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrlv", @@ -6906,6 +6984,26 @@ macro2 (ip) break; case M_ROL: + if (ISA_HAS_ROR (mips_opts.isa) || CPU_HAS_ROR (mips_arch)) + { + if (dreg == sreg) + { + tempreg = AT; + used_at = 1; + } + else + { + tempreg = dreg; + used_at = 0; + } + macro_build ((char *) NULL, &icnt, NULL, "negu", + "d,w", tempreg, treg); + macro_build ((char *) NULL, &icnt, NULL, "rorv", + "d,t,s", dreg, sreg, tempreg); + if (used_at) + break; + return; + } macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "subu", "d,v,t", AT, 0, treg); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srlv", @@ -6919,11 +7017,12 @@ macro2 (ip) case M_DROL_I: { unsigned int rot; + char *l, *r; if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); + as_bad (_("Improper rotate count")); rot = imm_expr.X_add_number & 0x3f; - if (CPU_HAS_DROR (mips_arch)) + if (ISA_HAS_DROR (mips_opts.isa) || CPU_HAS_DROR (mips_arch)) { rot = (64 - rot) & 0x3f; if (rot >= 32) @@ -6932,25 +7031,23 @@ macro2 (ip) else macro_build ((char *) NULL, &icnt, NULL, "dror", "d,w,<", dreg, sreg, rot); - break; + return; } if (rot == 0) - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrl", - "d,w,<", dreg, sreg, 0); - else { - char *l, *r; - - l = (rot < 0x20) ? "dsll" : "dsll32"; - r = ((0x40 - rot) < 0x20) ? "dsrl" : "dsrl32"; - rot &= 0x1f; - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, - "d,w,<", AT, sreg, rot); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrl", + "d,w,<", dreg, sreg, 0); + return; } + l = (rot < 0x20) ? "dsll" : "dsll32"; + r = ((0x40 - rot) < 0x20) ? "dsrl" : "dsrl32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); } break; @@ -6959,30 +7056,36 @@ macro2 (ip) unsigned int rot; if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); + as_bad (_("Improper rotate count")); rot = imm_expr.X_add_number & 0x1f; - if (CPU_HAS_ROR (mips_arch)) + if (ISA_HAS_ROR (mips_opts.isa) || CPU_HAS_ROR (mips_arch)) { macro_build ((char *) NULL, &icnt, NULL, "ror", "d,w,<", dreg, sreg, (32 - rot) & 0x1f); - break; + return; } if (rot == 0) - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", - "d,w,<", dreg, sreg, 0); - else { - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", - "d,w,<", AT, sreg, rot); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + "d,w,<", dreg, sreg, 0); + return; } + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); } break; case M_DROR: + if (ISA_HAS_DROR (mips_opts.isa) || CPU_HAS_DROR (mips_arch)) + { + macro_build ((char *) NULL, &icnt, NULL, "drorv", + "d,t,s", dreg, sreg, treg); + return; + } macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsubu", "d,v,t", AT, 0, treg); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsllv", @@ -6994,6 +7097,12 @@ macro2 (ip) break; case M_ROR: + if (ISA_HAS_ROR (mips_opts.isa) || CPU_HAS_ROR (mips_arch)) + { + macro_build ((char *) NULL, &icnt, NULL, "rorv", + "d,t,s", dreg, sreg, treg); + return; + } macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "subu", "d,v,t", AT, 0, treg); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sllv", @@ -7007,27 +7116,36 @@ macro2 (ip) case M_DROR_I: { unsigned int rot; + char *l, *r; if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); + as_bad (_("Improper rotate count")); rot = imm_expr.X_add_number & 0x3f; + if (ISA_HAS_DROR (mips_opts.isa) || CPU_HAS_DROR (mips_arch)) + { + if (rot >= 32) + macro_build ((char *) NULL, &icnt, NULL, "dror32", + "d,w,<", dreg, sreg, rot - 32); + else + macro_build ((char *) NULL, &icnt, NULL, "dror", + "d,w,<", dreg, sreg, rot); + return; + } if (rot == 0) - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrl", - "d,w,<", dreg, sreg, 0); - else { - char *l, *r; - - r = (rot < 0x20) ? "dsrl" : "dsrl32"; - l = ((0x40 - rot) < 0x20) ? "dsll" : "dsll32"; - rot &= 0x1f; - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, - "d,w,<", AT, sreg, rot); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "dsrl", + "d,w,<", dreg, sreg, 0); + return; } + r = (rot < 0x20) ? "dsrl" : "dsrl32"; + l = ((0x40 - rot) < 0x20) ? "dsll" : "dsll32"; + rot &= 0x1f; + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, r, + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, l, + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); } break; @@ -7036,20 +7154,26 @@ macro2 (ip) unsigned int rot; if (imm_expr.X_op != O_constant) - as_bad (_("rotate count too large")); + as_bad (_("Improper rotate count")); rot = imm_expr.X_add_number & 0x1f; + if (ISA_HAS_ROR (mips_opts.isa) || CPU_HAS_ROR (mips_arch)) + { + macro_build ((char *) NULL, &icnt, NULL, "ror", + "d,w,<", dreg, sreg, rot); + return; + } if (rot == 0) - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", - "d,w,<", dreg, sreg, 0); - else { macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", - "d,w,<", AT, sreg, rot); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", - "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", - "d,v,t", dreg, dreg, AT); + "d,w,<", dreg, sreg, 0); + return; } + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "srl", + "d,w,<", AT, sreg, rot); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sll", + "d,w,<", dreg, sreg, (0x20 - rot) & 0x1f); + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "or", + "d,v,t", dreg, dreg, AT); } break; @@ -7376,7 +7500,7 @@ macro2 (ip) * Is the double cfc1 instruction a bug in the mips assembler; * or is there a reason for it? */ - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "cfc1", "t,G", @@ -7660,7 +7784,7 @@ mips16_macro (ip) case M_REM_3: s = "mfhi"; do_div3: - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; macro_build ((char *) NULL, &icnt, (expressionS *) NULL, @@ -7695,7 +7819,7 @@ mips16_macro (ip) s = "ddivu"; s2 = "mfhi"; do_divu3: - mips_emit_delays (true); + mips_emit_delays (TRUE); ++mips_opts.noreorder; mips_any_noreorder = 1; macro_build ((char *) NULL, &icnt, (expressionS *) NULL, s, "0,x,y", @@ -7892,6 +8016,20 @@ validate_mips_insn (opc) case ',': break; case '(': break; case ')': break; + case '+': + switch (c = *p++) + { + case 'A': USE_BITS (OP_MASK_SHAMT, OP_SH_SHAMT); break; + case 'B': USE_BITS (OP_MASK_INSMSB, OP_SH_INSMSB); break; + case 'C': USE_BITS (OP_MASK_EXTMSBD, OP_SH_EXTMSBD); break; + case 'D': USE_BITS (OP_MASK_RD, OP_SH_RD); + USE_BITS (OP_MASK_SEL, OP_SH_SEL); break; + default: + as_bad (_("internal: bad mips opcode (unknown extension operand type `+%c'): %s %s"), + c, opc->name, opc->args); + return 0; + } + break; case '<': USE_BITS (OP_MASK_SHAMT, OP_SH_SHAMT); break; case '>': USE_BITS (OP_MASK_SHAMT, OP_SH_SHAMT); break; case 'A': break; @@ -7904,6 +8042,7 @@ validate_mips_insn (opc) case 'H': USE_BITS (OP_MASK_SEL, OP_SH_SEL); break; case 'I': break; case 'J': USE_BITS (OP_MASK_CODE19, OP_SH_CODE19); break; + case 'K': USE_BITS (OP_MASK_RD, OP_SH_RD); break; case 'L': break; case 'M': USE_BITS (OP_MASK_CCC, OP_SH_CCC); break; case 'N': USE_BITS (OP_MASK_BCC, OP_SH_BCC); break; @@ -7978,6 +8117,8 @@ mips_ip (str, ip) char *argsStart; unsigned int regno; unsigned int lastregno = 0; + unsigned int lastpos = 0; + unsigned int limlo, limhi; char *s_reset; char save_c = 0; @@ -8034,7 +8175,7 @@ mips_ip (str, ip) argsStart = s; for (;;) { - boolean ok; + bfd_boolean ok; assert (strcmp (insn->name, str) == 0); @@ -8044,14 +8185,14 @@ mips_ip (str, ip) | (mips_opts.ase_mdmx ? INSN_MDMX : 0) | (mips_opts.ase_mips3d ? INSN_MIPS3D : 0)), mips_arch)) - ok = true; + ok = TRUE; else - ok = false; + ok = FALSE; if (insn->pinfo != INSN_MACRO) { if (mips_arch == CPU_R4650 && (insn->pinfo & FP_D) != 0) - ok = false; + ok = FALSE; } if (! ok) @@ -8143,6 +8284,92 @@ mips_ip (str, ip) continue; break; + case '+': /* Opcode extension character. */ + switch (*++args) + { + case 'A': /* ins/ext position, becomes LSB. */ + limlo = 0; + limhi = 31; + my_getExpression (&imm_expr, s); + check_absolute_expr (ip, &imm_expr); + if ((unsigned long) imm_expr.X_add_number < limlo + || (unsigned long) imm_expr.X_add_number > limhi) + { + as_bad (_("Improper position (%lu)"), + (unsigned long) imm_expr.X_add_number); + imm_expr.X_add_number = limlo; + } + lastpos = imm_expr.X_add_number; + ip->insn_opcode |= (imm_expr.X_add_number + & OP_MASK_SHAMT) << OP_SH_SHAMT; + imm_expr.X_op = O_absent; + s = expr_end; + continue; + + case 'B': /* ins size, becomes MSB. */ + limlo = 1; + limhi = 32; + my_getExpression (&imm_expr, s); + check_absolute_expr (ip, &imm_expr); + /* Check for negative input so that small negative numbers + will not succeed incorrectly. The checks against + (pos+size) transitively check "size" itself, + assuming that "pos" is reasonable. */ + if ((long) imm_expr.X_add_number < 0 + || ((unsigned long) imm_expr.X_add_number + + lastpos) < limlo + || ((unsigned long) imm_expr.X_add_number + + lastpos) > limhi) + { + as_bad (_("Improper insert size (%lu, position %lu)"), + (unsigned long) imm_expr.X_add_number, + (unsigned long) lastpos); + imm_expr.X_add_number = limlo - lastpos; + } + ip->insn_opcode |= ((lastpos + imm_expr.X_add_number - 1) + & OP_MASK_INSMSB) << OP_SH_INSMSB; + imm_expr.X_op = O_absent; + s = expr_end; + continue; + + case 'C': /* ext size, becomes MSBD. */ + limlo = 1; + limhi = 32; + my_getExpression (&imm_expr, s); + check_absolute_expr (ip, &imm_expr); + /* Check for negative input so that small negative numbers + will not succeed incorrectly. The checks against + (pos+size) transitively check "size" itself, + assuming that "pos" is reasonable. */ + if ((long) imm_expr.X_add_number < 0 + || ((unsigned long) imm_expr.X_add_number + + lastpos) < limlo + || ((unsigned long) imm_expr.X_add_number + + lastpos) > limhi) + { + as_bad (_("Improper extract size (%lu, position %lu)"), + (unsigned long) imm_expr.X_add_number, + (unsigned long) lastpos); + imm_expr.X_add_number = limlo - lastpos; + } + ip->insn_opcode |= ((imm_expr.X_add_number - 1) + & OP_MASK_EXTMSBD) << OP_SH_EXTMSBD; + imm_expr.X_op = O_absent; + s = expr_end; + continue; + + case 'D': + /* +D is for disassembly only; never match. */ + break; + + default: + as_bad (_("internal: bad mips opcode (unknown extension operand type `+%c'): %s %s"), + *args, insn->name, insn->args); + /* Further processing is fruitless. */ + return; + } + break; + case '<': /* must be at least one digit */ /* * According to the manual, if the shift amount is greater @@ -8280,6 +8507,7 @@ mips_ip (str, ip) case 'w': /* both dest and target */ case 'E': /* coprocessor target register */ case 'G': /* coprocessor destination register */ + case 'K': /* 'rdhwr' destination register */ case 'x': /* ignore register name */ case 'z': /* must be zero register */ case 'U': /* destination register (clo/clz). */ @@ -8301,7 +8529,7 @@ mips_ip (str, ip) if (regno > 31) as_bad (_("Invalid register number (%d)"), regno); } - else if (*args == 'E' || *args == 'G') + else if (*args == 'E' || *args == 'G' || *args == 'K') goto notreg; else { @@ -8375,7 +8603,8 @@ mips_ip (str, ip) if (regno == AT && ! mips_opts.noat && *args != 'E' - && *args != 'G') + && *args != 'G' + && *args != 'K') as_warn (_("Used $at without \".set noat\"")); c = *args; if (*s == ' ') @@ -8405,6 +8634,7 @@ mips_ip (str, ip) break; case 'd': case 'G': + case 'K': ip->insn_opcode |= regno << OP_SH_RD; break; case 'U': @@ -8843,7 +9073,7 @@ mips_ip (str, ip) if (c == S_EX_HI) { *imm_reloc = BFD_RELOC_HI16_S; - imm_unmatched_hi = true; + imm_unmatched_hi = TRUE; } #ifdef OBJ_ELF else if (c == S_EX_HIGHEST) @@ -8955,10 +9185,7 @@ mips_ip (str, ip) continue; case 'p': /* pc relative offset */ - if (mips_pic == EMBEDDED_PIC) - *offset_reloc = BFD_RELOC_16_PCREL_S2; - else - *offset_reloc = BFD_RELOC_16_PCREL; + *offset_reloc = BFD_RELOC_16_PCREL_S2; my_getExpression (&offset_expr, s); s = expr_end; continue; @@ -8973,7 +9200,7 @@ mips_ip (str, ip) if (c == S_EX_HI) { *imm_reloc = BFD_RELOC_HI16_S; - imm_unmatched_hi = true; + imm_unmatched_hi = TRUE; } #ifdef OBJ_ELF else if (c == S_EX_HIGHEST) @@ -9139,8 +9366,8 @@ mips16_ip (str, ip) insn_error = NULL; - mips16_small = false; - mips16_ext = false; + mips16_small = FALSE; + mips16_ext = FALSE; for (s = str; ISLOWER (*s); ++s) ; @@ -9157,14 +9384,14 @@ mips16_ip (str, ip) if (s[1] == 't' && s[2] == ' ') { *s = '\0'; - mips16_small = true; + mips16_small = TRUE; s += 3; break; } else if (s[1] == 'e' && s[2] == ' ') { *s = '\0'; - mips16_ext = true; + mips16_ext = TRUE; s += 3; break; } @@ -9175,7 +9402,7 @@ mips16_ip (str, ip) } if (mips_opts.noautoextend && ! mips16_ext) - mips16_small = true; + mips16_small = TRUE; if ((insn = (struct mips_opcode *) hash_find (mips16_op_hash, str)) == NULL) { @@ -9190,7 +9417,7 @@ mips16_ip (str, ip) ip->insn_mo = insn; ip->insn_opcode = insn->match; - ip->use_extend = false; + ip->use_extend = FALSE; imm_expr.X_op = O_absent; imm_reloc[0] = BFD_RELOC_UNUSED; imm_reloc[1] = BFD_RELOC_UNUSED; @@ -9222,7 +9449,7 @@ mips16_ip (str, ip) && insn->pinfo != INSN_MACRO) { mips16_immed (NULL, 0, *imm_reloc - BFD_RELOC_UNUSED, - imm_expr.X_add_number, true, mips16_small, + imm_expr.X_add_number, TRUE, mips16_small, mips16_ext, &ip->insn_opcode, &ip->use_extend, &ip->extend); imm_expr.X_op = O_absent; @@ -9460,10 +9687,10 @@ mips16_ip (str, ip) my_getExpression (&imm_expr, s + sizeof "%gprel" - 1); if (imm_expr.X_op == O_symbol) { - mips16_ext = true; + mips16_ext = TRUE; *imm_reloc = BFD_RELOC_MIPS16_GPREL; s = expr_end; - ip->use_extend = true; + ip->use_extend = TRUE; ip->extend = 0; continue; } @@ -9739,16 +9966,16 @@ mips16_immed (file, line, type, val, war unsigned int line; int type; offsetT val; - boolean warn; - boolean small; - boolean ext; + bfd_boolean warn; + bfd_boolean small; + bfd_boolean ext; unsigned long *insn; - boolean *use_extend; + bfd_boolean *use_extend; unsigned short *extend; { register const struct mips16_immed_operand *op; int mintiny, maxtiny; - boolean needext; + bfd_boolean needext; op = mips16_immed_operands; while (op->type != type) @@ -9783,9 +10010,9 @@ mips16_immed (file, line, type, val, war if ((val & ((1 << op->shift) - 1)) != 0 || val < (mintiny << op->shift) || val > (maxtiny << op->shift)) - needext = true; + needext = TRUE; else - needext = false; + needext = FALSE; if (warn && ext && ! needext) as_warn_where (file, line, @@ -9797,7 +10024,7 @@ mips16_immed (file, line, type, val, war { int insnval; - *use_extend = false; + *use_extend = FALSE; insnval = ((val >> op->shift) & ((1 << op->nbits) - 1)); insnval <<= op->op_shift; *insn |= insnval; @@ -9821,7 +10048,7 @@ mips16_immed (file, line, type, val, war as_bad_where (file, line, _("operand value out of range for instruction")); - *use_extend = true; + *use_extend = TRUE; if (op->extbits == 16) { extval = ((val >> 11) & 0x1f) | (val & 0x7e0); @@ -10269,8 +10496,10 @@ struct option md_longopts[] = #define OPTION_NO_RELAX_BRANCH (OPTION_MD_BASE + 40) {"relax-branch", no_argument, NULL, OPTION_RELAX_BRANCH}, {"no-relax-branch", no_argument, NULL, OPTION_NO_RELAX_BRANCH}, +#define OPTION_MIPS32R2 (OPTION_MD_BASE + 41) + {"mips32r2", no_argument, NULL, OPTION_MIPS32R2}, #ifdef OBJ_ELF -#define OPTION_ELF_BASE (OPTION_MD_BASE + 41) +#define OPTION_ELF_BASE (OPTION_MD_BASE + 42) #define OPTION_CALL_SHARED (OPTION_ELF_BASE + 0) {"KPIC", no_argument, NULL, OPTION_CALL_SHARED}, {"call_shared", no_argument, NULL, OPTION_CALL_SHARED}, @@ -10391,6 +10620,10 @@ md_parse_option (c, arg) file_mips_isa = ISA_MIPS32; break; + case OPTION_MIPS32R2: + file_mips_isa = ISA_MIPS32R2; + break; + case OPTION_MIPS64: file_mips_isa = ISA_MIPS64; break; @@ -10445,12 +10678,12 @@ md_parse_option (c, arg) case OPTION_MIPS16: mips_opts.mips16 = 1; - mips_no_prev_insn (false); + mips_no_prev_insn (FALSE); break; case OPTION_NO_MIPS16: mips_opts.mips16 = 0; - mips_no_prev_insn (false); + mips_no_prev_insn (FALSE); break; case OPTION_MIPS3D: @@ -10619,20 +10852,20 @@ md_parse_option (c, arg) #endif /* OBJ_ELF */ case OPTION_M7000_HILO_FIX: - mips_7000_hilo_fix = true; + mips_7000_hilo_fix = TRUE; break; case OPTION_MNO_7000_HILO_FIX: - mips_7000_hilo_fix = false; + mips_7000_hilo_fix = FALSE; break; #ifdef OBJ_ELF case OPTION_MDEBUG: - mips_flag_mdebug = true; + mips_flag_mdebug = TRUE; break; case OPTION_NO_MDEBUG: - mips_flag_mdebug = false; + mips_flag_mdebug = FALSE; break; #endif /* OBJ_ELF */ @@ -10809,14 +11042,7 @@ md_pcrel_from (fixP) if (OUTPUT_FLAVOR != bfd_target_aout_flavour && fixP->fx_addsy != (symbolS *) NULL && ! S_IS_DEFINED (fixP->fx_addsy)) - { - /* This makes a branch to an undefined symbol be a branch to the - current location. */ - if (mips_pic == EMBEDDED_PIC) - return 4; - else - return 1; - } + return 4; /* Return the address of the delay slot. */ return fixP->fx_size + fixP->fx_where + fixP->fx_frag->fr_address; @@ -11047,16 +11273,16 @@ md_apply_fix3 (fixP, valP, seg) value -= symval; howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type); - if (value != 0 && howto->partial_inplace + if (value != 0 && howto && howto->partial_inplace && (! fixP->fx_pcrel || howto->pcrel_offset)) { /* In this case, the bfd_install_relocation routine will incorrectly add the symbol value back in. We just want the addend to appear in the object file. - + howto->pcrel_offset is added for R_MIPS_PC16, which is generated for code like - + globl g1 .text .text .space 20 @@ -11111,8 +11337,7 @@ md_apply_fix3 (fixP, valP, seg) /* BFD's REL handling, for MIPS, is _very_ weird. This gives the right results, but it can't possibly be the way things are supposed to work. */ - if ((fixP->fx_r_type != BFD_RELOC_16_PCREL - && fixP->fx_r_type != BFD_RELOC_16_PCREL_S2) + if (fixP->fx_r_type != BFD_RELOC_16_PCREL_S2 || S_GET_SEGMENT (fixP->fx_addsy) != undefined_section) value += fixP->fx_frag->fr_address + fixP->fx_where; } @@ -11286,15 +11511,12 @@ md_apply_fix3 (fixP, valP, seg) as_bad_where (fixP->fx_file, fixP->fx_line, _("Branch to odd address (%lx)"), (long) value); - /* Fall through. */ - - case BFD_RELOC_16_PCREL: /* * We need to save the bits in the instruction since fixup_segment() * might be deleting the relocation entry (i.e., a branch within * the current segment). */ - if (!fixP->fx_done && value != 0) + if (!fixP->fx_done && (value != 0 || HAVE_NEWABI)) break; /* If 'value' is zero, the remaining reloc code won't actually do the store, so it must be done here. This is probably @@ -11480,7 +11702,7 @@ mips_align (to, fill, label) int fill; symbolS *label; { - mips_emit_delays (false); + mips_emit_delays (FALSE); frag_align (to, fill, 0); record_alignment (now_seg, to); if (label != NULL) @@ -11546,7 +11768,7 @@ s_align (x) void mips_flush_pending_output () { - mips_emit_delays (false); + mips_emit_delays (FALSE); mips_clear_insn_labels (); } @@ -11573,7 +11795,7 @@ s_change_sec (sec) obj_elf_section_change_hook (); #endif - mips_emit_delays (false); + mips_emit_delays (FALSE); switch (sec) { case 't': @@ -11638,7 +11860,7 @@ s_change_sec (sec) auto_align = 1; } - + void s_change_section (ignore) int ignore ATTRIBUTE_UNUSED; @@ -11651,7 +11873,7 @@ s_change_section (ignore) int section_flag; int section_entry_size; int section_alignment; - + if (OUTPUT_FLAVOR != bfd_target_elf_flavour) return; @@ -11712,7 +11934,7 @@ s_cons (log_size) symbolS *label; label = insn_labels != NULL ? insn_labels->label : NULL; - mips_emit_delays (false); + mips_emit_delays (FALSE); if (log_size > 0 && auto_align) mips_align (log_size, 0, label); mips_clear_insn_labels (); @@ -11727,7 +11949,7 @@ s_float_cons (type) label = insn_labels != NULL ? insn_labels->label : NULL; - mips_emit_delays (false); + mips_emit_delays (FALSE); if (auto_align) { @@ -11868,7 +12090,7 @@ s_mipsset (x) } else if (strcmp (name, "noreorder") == 0) { - mips_emit_delays (true); + mips_emit_delays (TRUE); mips_opts.noreorder = 1; mips_any_noreorder = 1; } @@ -11922,27 +12144,49 @@ s_mipsset (x) mips_opts.ase_mdmx = 0; else if (strncmp (name, "mips", 4) == 0) { - int isa; + int reset = 0; /* Permit the user to change the ISA on the fly. Needless to say, misuse can cause serious problems. */ - isa = atoi (name + 4); - switch (isa) + if (strcmp (name, "mips0") == 0) + { + reset = 1; + mips_opts.isa = file_mips_isa; + } + else if (strcmp (name, "mips1") == 0) + mips_opts.isa = ISA_MIPS1; + else if (strcmp (name, "mips2") == 0) + mips_opts.isa = ISA_MIPS2; + else if (strcmp (name, "mips3") == 0) + mips_opts.isa = ISA_MIPS3; + else if (strcmp (name, "mips4") == 0) + mips_opts.isa = ISA_MIPS4; + else if (strcmp (name, "mips5") == 0) + mips_opts.isa = ISA_MIPS5; + else if (strcmp (name, "mips32") == 0) + mips_opts.isa = ISA_MIPS32; + else if (strcmp (name, "mips32r2") == 0) + mips_opts.isa = ISA_MIPS32R2; + else if (strcmp (name, "mips64") == 0) + mips_opts.isa = ISA_MIPS64; + else + as_bad (_("unknown ISA level %s"), name + 4); + + switch (mips_opts.isa) { case 0: - mips_opts.gp32 = file_mips_gp32; - mips_opts.fp32 = file_mips_fp32; break; - case 1: - case 2: - case 32: + case ISA_MIPS1: + case ISA_MIPS2: + case ISA_MIPS32: + case ISA_MIPS32R2: mips_opts.gp32 = 1; mips_opts.fp32 = 1; break; - case 3: - case 4: - case 5: - case 64: + case ISA_MIPS3: + case ISA_MIPS4: + case ISA_MIPS5: + case ISA_MIPS64: mips_opts.gp32 = 0; mips_opts.fp32 = 0; break; @@ -11950,18 +12194,10 @@ s_mipsset (x) as_bad (_("unknown ISA level %s"), name + 4); break; } - - switch (isa) + if (reset) { - case 0: mips_opts.isa = file_mips_isa; break; - case 1: mips_opts.isa = ISA_MIPS1; break; - case 2: mips_opts.isa = ISA_MIPS2; break; - case 3: mips_opts.isa = ISA_MIPS3; break; - case 4: mips_opts.isa = ISA_MIPS4; break; - case 5: mips_opts.isa = ISA_MIPS5; break; - case 32: mips_opts.isa = ISA_MIPS32; break; - case 64: mips_opts.isa = ISA_MIPS64; break; - default: as_bad (_("unknown ISA level %s"), name + 4); break; + mips_opts.gp32 = file_mips_gp32; + mips_opts.fp32 = file_mips_fp32; } } else if (strcmp (name, "autoextend") == 0) @@ -11989,7 +12225,7 @@ s_mipsset (x) /* If we're changing the reorder mode we need to handle delay slots correctly. */ if (s->options.noreorder && ! mips_opts.noreorder) - mips_emit_delays (true); + mips_emit_delays (TRUE); else if (! s->options.noreorder && mips_opts.noreorder) { if (prev_nop_frag != NULL) @@ -12310,7 +12546,7 @@ s_gpword (ignore) } label = insn_labels != NULL ? insn_labels->label : NULL; - mips_emit_delays (true); + mips_emit_delays (TRUE); if (auto_align) mips_align (2, 0, label); mips_clear_insn_labels (); @@ -12325,7 +12561,7 @@ s_gpword (ignore) p = frag_more (4); md_number_to_chars (p, (valueT) 0, 4); - fix_new_exp (frag_now, p - frag_now->fr_literal, 4, &ex, false, + fix_new_exp (frag_now, p - frag_now->fr_literal, 4, &ex, FALSE, BFD_RELOC_GPREL32); demand_empty_rest_of_line (); @@ -12347,7 +12583,7 @@ s_gpdword (ignore) } label = insn_labels != NULL ? insn_labels->label : NULL; - mips_emit_delays (true); + mips_emit_delays (TRUE); if (auto_align) mips_align (3, 0, label); mips_clear_insn_labels (); @@ -12362,14 +12598,14 @@ s_gpdword (ignore) p = frag_more (8); md_number_to_chars (p, (valueT) 0, 8); - fix_new_exp (frag_now, p - frag_now->fr_literal, 8, &ex, false, + fix_new_exp (frag_now, p - frag_now->fr_literal, 8, &ex, FALSE, BFD_RELOC_GPREL32); /* GPREL32 composed with 64 gives a 64-bit GP offset. */ ex.X_op = O_absent; ex.X_add_symbol = 0; ex.X_add_number = 0; - fix_new_exp (frag_now, p - frag_now->fr_literal, 8, &ex, false, + fix_new_exp (frag_now, p - frag_now->fr_literal, 8, &ex, FALSE, BFD_RELOC_64); demand_empty_rest_of_line (); @@ -12873,7 +13109,7 @@ relaxed_branch_length (fragp, sec, updat asection *sec; int update; { - boolean toofar; + bfd_boolean toofar; int length; if (fragp @@ -12895,14 +13131,13 @@ relaxed_branch_length (fragp, sec, updat /* If the symbol is not defined or it's in a different segment, assume the user knows what's going on and emit a short branch. */ - toofar = false; + toofar = FALSE; else - toofar = true; + toofar = TRUE; if (fragp && update && toofar != RELAX_BRANCH_TOOFAR (fragp->fr_subtype)) fragp->fr_subtype - = RELAX_BRANCH_ENCODE (RELAX_BRANCH_RELOC_S2 (fragp->fr_subtype), - RELAX_BRANCH_UNCOND (fragp->fr_subtype), + = RELAX_BRANCH_ENCODE (RELAX_BRANCH_UNCOND (fragp->fr_subtype), RELAX_BRANCH_LIKELY (fragp->fr_subtype), RELAX_BRANCH_LINK (fragp->fr_subtype), toofar); @@ -12926,7 +13161,7 @@ relaxed_branch_length (fragp, sec, updat if (fragp ? !RELAX_BRANCH_UNCOND (fragp->fr_subtype) : (update >= 0)) length += 8; } - + return length; } @@ -12941,13 +13176,13 @@ md_estimate_size_before_relax (fragp, se asection *segtype; { int change = 0; - boolean linkonce = false; + bfd_boolean linkonce = FALSE; if (RELAX_BRANCH_P (fragp->fr_subtype)) { - fragp->fr_var = relaxed_branch_length (fragp, segtype, false); - + fragp->fr_var = relaxed_branch_length (fragp, segtype, FALSE); + return fragp->fr_var; } @@ -12987,14 +13222,14 @@ md_estimate_size_before_relax (fragp, se { if ((bfd_get_section_flags (stdoutput, symsec) & SEC_LINK_ONCE) != 0) - linkonce = true; + linkonce = TRUE; /* The GNU toolchain uses an extension for ELF: a section beginning with the magic string .gnu.linkonce is a linkonce section. */ if (strncmp (segment_name (symsec), ".gnu.linkonce", sizeof ".gnu.linkonce" - 1) == 0) - linkonce = true; + linkonce = TRUE; } /* This must duplicate the test in adjust_reloc_syms. */ @@ -13333,8 +13568,8 @@ mips_relax_frag (sec, fragp, stretch) if (RELAX_BRANCH_P (fragp->fr_subtype)) { offsetT old_var = fragp->fr_var; - - fragp->fr_var = relaxed_branch_length (fragp, sec, true); + + fragp->fr_var = relaxed_branch_length (fragp, sec, TRUE); return fragp->fr_var - old_var; } @@ -13377,14 +13612,14 @@ md_convert_frag (abfd, asec, fragp) unsigned long insn; expressionS exp; fixS *fixp; - + buf = (bfd_byte *)fragp->fr_literal + fragp->fr_fix; if (target_big_endian) insn = bfd_getb32 (buf); else insn = bfd_getl32 (buf); - + if (!RELAX_BRANCH_TOOFAR (fragp->fr_subtype)) { /* We generate a fixup instead of applying it right now @@ -13396,12 +13631,10 @@ md_convert_frag (abfd, asec, fragp) fixp = fix_new_exp (fragp, buf - (bfd_byte *)fragp->fr_literal, 4, &exp, 1, - RELAX_BRANCH_RELOC_S2 (fragp->fr_subtype) - ? BFD_RELOC_16_PCREL_S2 - : BFD_RELOC_16_PCREL); + BFD_RELOC_16_PCREL_S2); fixp->fx_file = fragp->fr_file; fixp->fx_line = fragp->fr_line; - + md_number_to_chars ((char *)buf, insn, 4); buf += 4; } @@ -13434,7 +13667,7 @@ md_convert_frag (abfd, asec, fragp) assert ((insn & 0xfc0e0000) == 0x04000000); insn ^= 0x00010000; break; - + case 1: /* beq 0x10000000 bne 0x14000000 blez 0x18000000 bgtz 0x1c000000 */ @@ -13471,7 +13704,7 @@ md_convert_frag (abfd, asec, fragp) /* Convert to instruction count. */ i >>= 2; /* Branch counts from the next instruction. */ - i--; + i--; insn |= i; /* Branch over the jump. */ md_number_to_chars ((char *)buf, insn, 4); @@ -13543,7 +13776,7 @@ md_convert_frag (abfd, asec, fragp) md_number_to_chars ((char*)buf, insn, 4); buf += 4; - + if (mips_opts.isa == ISA_MIPS1) { /* nop */ @@ -13558,7 +13791,7 @@ md_convert_frag (abfd, asec, fragp) 4, &exp, 0, BFD_RELOC_LO16); fixp->fx_file = fragp->fr_file; fixp->fx_line = fragp->fr_line; - + md_number_to_chars ((char*)buf, insn, 4); buf += 4; @@ -13585,11 +13818,11 @@ md_convert_frag (abfd, asec, fragp) { int type; register const struct mips16_immed_operand *op; - boolean small, ext; + bfd_boolean small, ext; offsetT val; bfd_byte *buf; unsigned long insn; - boolean use_extend; + bfd_boolean use_extend; unsigned short extend; type = RELAX_MIPS16_TYPE (fragp->fr_subtype); @@ -13599,13 +13832,13 @@ md_convert_frag (abfd, asec, fragp) if (RELAX_MIPS16_EXTENDED (fragp->fr_subtype)) { - small = false; - ext = true; + small = FALSE; + ext = TRUE; } else { - small = true; - ext = false; + small = TRUE; + ext = FALSE; } resolve_symbol_value (fragp->fr_symbol); @@ -14266,6 +14499,7 @@ static const struct mips_cpu_info mips_c { "mips4", 1, ISA_MIPS4, CPU_R8000 }, { "mips5", 1, ISA_MIPS5, CPU_MIPS5 }, { "mips32", 1, ISA_MIPS32, CPU_MIPS32 }, + { "mips32r2", 1, ISA_MIPS32R2, CPU_MIPS32R2 }, { "mips64", 1, ISA_MIPS64, CPU_MIPS64 }, /* MIPS I */ @@ -14326,7 +14560,7 @@ static const struct mips_cpu_info mips_c Note: this function is shared between GCC and GAS. */ -static boolean +static bfd_boolean mips_strict_matching_cpu_name_p (canonical, given) const char *canonical, *given; { @@ -14343,21 +14577,21 @@ mips_strict_matching_cpu_name_p (canonic Note: this function is shared between GCC and GAS. */ -static boolean +static bfd_boolean mips_matching_cpu_name_p (canonical, given) const char *canonical, *given; { /* First see if the name matches exactly, or with a final "000" turned into "k". */ if (mips_strict_matching_cpu_name_p (canonical, given)) - return true; + return TRUE; /* If not, try comparing based on numerical designation alone. See if GIVEN is an unadorned number, or 'r' followed by a number. */ if (TOLOWER (*given) == 'r') given++; if (!ISDIGIT (*given)) - return false; + return FALSE; /* Skip over some well-known prefixes in the canonical name, hoping to find a number there too. */ @@ -14492,6 +14726,7 @@ MIPS options:\n\ -mips4 generate MIPS ISA IV instructions\n\ -mips5 generate MIPS ISA V instructions\n\ -mips32 generate MIPS32 ISA instructions\n\ +-mips32r2 generate MIPS32 release 2 ISA instructions\n\ -mips64 generate MIPS64 ISA instructions\n\ -march=CPU/-mtune=CPU generate code/schedule for CPU, where CPU is one of:\n")); diff -uprN binutils-2.13.90.0.16/gas/config/tc-mips.h binutils-2.13.90.0.18/gas/config/tc-mips.h --- binutils-2.13.90.0.16/gas/config/tc-mips.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/tc-mips.h Tue Jan 21 10:21:33 2003 @@ -97,7 +97,7 @@ struct mips_cl_insn unsigned long insn_opcode; const struct mips_opcode *insn_mo; /* The next two fields are used when generating mips16 code. */ - boolean use_extend; + bfd_boolean use_extend; unsigned short extend; }; @@ -185,4 +185,7 @@ extern void mips_enable_auto_align PARAM extern enum dwarf2_format mips_dwarf2_format PARAMS ((void)); #define DWARF2_FORMAT() mips_dwarf2_format () +#define DWARF2_ADDR_SIZE(bfd) \ + (DWARF2_FORMAT () == dwarf2_format_32bit ? 4 : 8) + #endif /* TC_MIPS */ diff -uprN binutils-2.13.90.0.16/gas/config/tc-mn10200.c binutils-2.13.90.0.18/gas/config/tc-mn10200.c --- binutils-2.13.90.0.16/gas/config/tc-mn10200.c Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.18/gas/config/tc-mn10200.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* tc-mn10200.c -- Assembler code for the Matsushita 10200 - Copyright 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -81,9 +81,9 @@ static unsigned long check_operand PARAM const struct mn10200_operand *, offsetT)); static int reg_name_search PARAMS ((const struct reg_name *, int, const char *)); -static boolean data_register_name PARAMS ((expressionS *expressionP)); -static boolean address_register_name PARAMS ((expressionS *expressionP)); -static boolean other_register_name PARAMS ((expressionS *expressionP)); +static bfd_boolean data_register_name PARAMS ((expressionS *expressionP)); +static bfd_boolean address_register_name PARAMS ((expressionS *expressionP)); +static bfd_boolean other_register_name PARAMS ((expressionS *expressionP)); /* Fixups. */ #define MAX_INSN_FIXUPS (5) @@ -182,7 +182,7 @@ reg_name_search (regs, regcount, name) * its original state. */ -static boolean +static bfd_boolean data_register_name (expressionP) expressionS *expressionP; { @@ -210,12 +210,12 @@ data_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Summary of register_name(). @@ -229,7 +229,7 @@ data_register_name (expressionP) * its original state. */ -static boolean +static bfd_boolean address_register_name (expressionP) expressionS *expressionP; { @@ -257,12 +257,12 @@ address_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Summary of register_name(). @@ -276,7 +276,7 @@ address_register_name (expressionP) * its original state. */ -static boolean +static bfd_boolean other_register_name (expressionP) expressionS *expressionP; { @@ -304,12 +304,12 @@ other_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } void @@ -322,15 +322,15 @@ none yet\n")); int md_parse_option (c, arg) - int c; - char *arg; + int c ATTRIBUTE_UNUSED; + char *arg ATTRIBUTE_UNUSED; { return 0; } symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -378,7 +378,7 @@ md_atof (type, litp, sizep) void md_convert_frag (abfd, sec, fragP) - bfd *abfd; + bfd *abfd ATTRIBUTE_UNUSED; asection *sec; fragS *fragP; { @@ -437,7 +437,7 @@ md_convert_frag (abfd, sec, fragP) fragP->fr_literal[offset] = opcode; /* Create a fixup for the reversed conditional branch. */ - sprintf (buf, ".%s_%d", FAKE_LABEL_NAME, label_count++); + sprintf (buf, ".%s_%ld", FAKE_LABEL_NAME, label_count++); fix_new (fragP, fragP->fr_fix + 1, 1, symbol_new (buf, sec, 0, fragP->fr_next), fragP->fr_offset, 1, BFD_RELOC_8_PCREL); @@ -494,7 +494,7 @@ md_convert_frag (abfd, sec, fragP) fragP->fr_literal[offset] = opcode; /* Create a fixup for the reversed conditional branch. */ - sprintf (buf, ".%s_%d", FAKE_LABEL_NAME, label_count++); + sprintf (buf, ".%s_%ld", FAKE_LABEL_NAME, label_count++); fix_new (fragP, fragP->fr_fix + 1, 1, symbol_new (buf, sec, 0, fragP->fr_next), fragP->fr_offset, 1, BFD_RELOC_8_PCREL); @@ -582,7 +582,7 @@ md_convert_frag (abfd, sec, fragP) fragP->fr_literal[offset + 1] = opcode; /* Create a fixup for the reversed conditional branch. */ - sprintf (buf, ".%s_%d", FAKE_LABEL_NAME, label_count++); + sprintf (buf, ".%s_%ld", FAKE_LABEL_NAME, label_count++); fix_new (fragP, fragP->fr_fix + 2, 1, symbol_new (buf, sec, 0, fragP->fr_next), fragP->fr_offset, 1, BFD_RELOC_8_PCREL); @@ -662,7 +662,7 @@ md_convert_frag (abfd, sec, fragP) fragP->fr_literal[offset + 1] = opcode; /* Create a fixup for the reversed conditional branch. */ - sprintf (buf, ".%s_%d", FAKE_LABEL_NAME, label_count++); + sprintf (buf, ".%s_%ld", FAKE_LABEL_NAME, label_count++); fix_new (fragP, fragP->fr_fix + 2, 1, symbol_new (buf, sec, 0, fragP->fr_next), fragP->fr_offset, 1, BFD_RELOC_8_PCREL); @@ -1227,7 +1227,7 @@ keep_going: arelent * tc_gen_reloc (seg, fixp) - asection *seg; + asection *seg ATTRIBUTE_UNUSED; fixS *fixp; { arelent *reloc; @@ -1242,26 +1242,9 @@ tc_gen_reloc (seg, fixp) return NULL; } reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; - - if (fixp->fx_addsy && fixp->fx_subsy) - { - if ((S_GET_SEGMENT (fixp->fx_addsy) != S_GET_SEGMENT (fixp->fx_subsy)) - || S_GET_SEGMENT (fixp->fx_addsy) == undefined_section) - { - as_bad_where (fixp->fx_file, fixp->fx_line, - "Difference of symbols in different sections is not supported"); - return NULL; - } - reloc->sym_ptr_ptr = &bfd_abs_symbol; - reloc->addend = (S_GET_VALUE (fixp->fx_addsy) - - S_GET_VALUE (fixp->fx_subsy) + fixp->fx_offset); - } - else - { - reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); - *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); - reloc->addend = fixp->fx_offset; - } + reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); + reloc->addend = fixp->fx_offset; return reloc; } @@ -1375,7 +1358,7 @@ mn10200_insert_operand (insnp, extension static unsigned long check_operand (insn, operand, val) - unsigned long insn; + unsigned long insn ATTRIBUTE_UNUSED; const struct mn10200_operand *operand; offsetT val; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-mn10300.c binutils-2.13.90.0.18/gas/config/tc-mn10300.c --- binutils-2.13.90.0.16/gas/config/tc-mn10300.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-mn10300.c Mon Dec 16 12:22:53 2002 @@ -89,10 +89,12 @@ static unsigned long check_operand PARAM const struct mn10300_operand *, offsetT)); static int reg_name_search PARAMS ((const struct reg_name *, int, const char *)); -static boolean data_register_name PARAMS ((expressionS *expressionP)); -static boolean address_register_name PARAMS ((expressionS *expressionP)); -static boolean other_register_name PARAMS ((expressionS *expressionP)); -static void set_arch_mach PARAMS ((unsigned int)); +static bfd_boolean data_register_name PARAMS ((expressionS *expressionP)); +static bfd_boolean address_register_name PARAMS ((expressionS *expressionP)); +static bfd_boolean other_register_name PARAMS ((expressionS *expressionP)); +static bfd_boolean r_register_name PARAMS ((expressionS *expressionP)); +static bfd_boolean xr_register_name PARAMS ((expressionS *expressionP)); +static void set_arch_mach PARAMS ((int)); /* Set linkrelax here to avoid fixups in most sections. */ int linkrelax = 1; @@ -293,7 +295,7 @@ reg_name_search (regs, regcount, name) * its original state. */ -static boolean +static bfd_boolean r_register_name (expressionP) expressionS *expressionP; { @@ -321,12 +323,12 @@ r_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Summary of register_name(). @@ -340,7 +342,7 @@ r_register_name (expressionP) * its original state. */ -static boolean +static bfd_boolean xr_register_name (expressionP) expressionS *expressionP; { @@ -368,12 +370,12 @@ xr_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Summary of register_name(). @@ -387,7 +389,7 @@ xr_register_name (expressionP) * its original state. */ -static boolean +static bfd_boolean data_register_name (expressionP) expressionS *expressionP; { @@ -415,12 +417,12 @@ data_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Summary of register_name(). @@ -434,7 +436,7 @@ data_register_name (expressionP) * its original state. */ -static boolean +static bfd_boolean address_register_name (expressionP) expressionS *expressionP; { @@ -462,12 +464,12 @@ address_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Summary of register_name(). @@ -481,7 +483,7 @@ address_register_name (expressionP) * its original state. */ -static boolean +static bfd_boolean other_register_name (expressionP) expressionS *expressionP; { @@ -510,12 +512,12 @@ other_register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } void @@ -2008,7 +2010,7 @@ mn10300_force_relocation (fixp) /* Return zero if the fixup in fixp should be left alone and not adjusted. */ -boolean +bfd_boolean mn10300_fix_adjustable (fixp) struct fix *fixp; { @@ -2152,7 +2154,7 @@ check_operand (insn, operand, val) static void set_arch_mach (mach) - unsigned int mach; + int mach; { if (!bfd_set_arch_mach (stdoutput, bfd_arch_mn10300, mach)) as_warn (_("could not set architecture and machine")); diff -uprN binutils-2.13.90.0.16/gas/config/tc-mn10300.h binutils-2.13.90.0.18/gas/config/tc-mn10300.h --- binutils-2.13.90.0.16/gas/config/tc-mn10300.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-mn10300.h Mon Dec 16 12:22:53 2002 @@ -47,7 +47,24 @@ extern int mn10300_force_relocation PARA (! SEG_NORMAL (SEG) \ || ((SEG)->flags & SEC_CODE) != 0) -/* Fixup debug sections since we will never relax them. */ +/* We validate subtract arguments within tc_gen_reloc(), so don't + report errors at this point. */ +#define TC_VALIDATE_FIX_SUB(FIX) 1 + +/* Fixup debug sections since we will never relax them. Ideally, we + could do away with this and instead check every single fixup with + TC_FORCE_RELOCATION and TC_FORCE_RELOCATION_SUB_NAME, verifying + that the sections of the referenced symbols (and not the sections + in which the fixup appears) may be subject to relaxation. We'd + still have to check the section in which the fixup appears, because + we want to do some simplifications in debugging info that might + break in real code. + + Using the infrastructure in write.c to simplify subtraction fixups + would enable us to remove a lot of code from tc_gen_reloc(), but + this is simpler, faster, and produces almost the same effect. + Also, in the macros above, we can't check whether the fixup is in a + debugging section or not, so we have to use this for now. */ #define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_ALLOC) #define md_operand(x) @@ -63,7 +80,7 @@ extern int mn10300_force_relocation PARA /* Don't bother to adjust relocs. */ #define tc_fix_adjustable(FIX) 0 /* #define tc_fix_adjustable(FIX) mn10300_fix_adjustable (FIX) */ -extern boolean mn10300_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean mn10300_fix_adjustable PARAMS ((struct fix *)); /* We do relaxing in the assembler as well as the linker. */ extern const struct relax_type md_relax_table[]; diff -uprN binutils-2.13.90.0.16/gas/config/tc-msp430.c binutils-2.13.90.0.18/gas/config/tc-msp430.c --- binutils-2.13.90.0.16/gas/config/tc-msp430.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/config/tc-msp430.c Tue Jan 21 10:21:33 2003 @@ -0,0 +1,1552 @@ +/* tc-msp430.c -- Assembler code for the Texas Instruments MSP430 + + Copyright (C) 2002 Free Software Foundation, Inc. + Contributed by Dmitry Diky + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS 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 GAS; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include +#include +#include + +#define PUSH_1X_WORKAROUND +#include "as.h" +#include "subsegs.h" +#include "opcode/msp430.h" +#include "safe-ctype.h" + +const char comment_chars[] = ";"; +const char line_comment_chars[] = "#"; +const char line_separator_chars[] = ""; +const char EXP_CHARS[] = "eE"; +const char FLT_CHARS[] = "dD"; + +/* Handle long expressions. */ +extern LITTLENUM_TYPE generic_bignum[]; + +static struct hash_control *msp430_hash; + +static unsigned int msp430_operands + PARAMS ((struct msp430_opcode_s *, char *)); +static int msp430_srcoperand + PARAMS ((struct msp430_operand_s *, char *, int, int *)); +static int msp430_dstoperand + PARAMS ((struct msp430_operand_s *, char *, int)); +static char *parse_exp + PARAMS ((char *, expressionS *)); +static inline char *skip_space + PARAMS ((char *)); +static int check_reg + PARAMS ((char *)); +static void msp430_set_arch + PARAMS ((int)); +static void show_mcu_list + PARAMS ((FILE *)); +static void del_spaces + PARAMS ((char *)); + +#define MAX_OP_LEN 64 + +struct mcu_type_s +{ + char *name; + int isa; + int mach; +}; + +#define MSP430_ISA_11 11 +#define MSP430_ISA_12 12 +#define MSP430_ISA_13 13 +#define MSP430_ISA_14 14 +#define MSP430_ISA_41 41 +#define MSP430_ISA_31 31 +#define MSP430_ISA_32 32 +#define MSP430_ISA_33 33 +#define MSP430_ISA_110 110 +#define MSP430_ISA_43 43 +#define MSP430_ISA_44 44 +#define MSP430_ISA_15 15 +#define MSP430_ISA_16 16 + +#define CHECK_RELOC_MSP430 ((imm_op || byte_op)?BFD_RELOC_MSP430_16_BYTE:BFD_RELOC_MSP430_16) +#define CHECK_RELOC_MSP430_PCREL ((imm_op || byte_op)?BFD_RELOC_MSP430_16_PCREL_BYTE:BFD_RELOC_MSP430_16_PCREL) + +static struct mcu_type_s mcu_types[] = +{ + {"msp1", MSP430_ISA_11, bfd_mach_msp11}, + {"msp2", MSP430_ISA_14, bfd_mach_msp14}, + {"msp430x110", MSP430_ISA_11, bfd_mach_msp11}, + {"msp430x112", MSP430_ISA_11, bfd_mach_msp11}, + {"msp430x122", MSP430_ISA_12, bfd_mach_msp12}, + {"msp430x122", MSP430_ISA_12, bfd_mach_msp12}, + {"msp430x1222",MSP430_ISA_12, bfd_mach_msp12}, + {"msp430x123", MSP430_ISA_12, bfd_mach_msp12}, + {"msp430x1232",MSP430_ISA_12, bfd_mach_msp12}, + {"msp430x133", MSP430_ISA_13, bfd_mach_msp13}, + {"msp430x135", MSP430_ISA_13, bfd_mach_msp13}, + {"msp430x147", MSP430_ISA_14, bfd_mach_msp14}, + {"msp430x148", MSP430_ISA_14, bfd_mach_msp14}, + {"msp430x149", MSP430_ISA_14, bfd_mach_msp14}, + {"msp430x412", MSP430_ISA_41, bfd_mach_msp41}, + {"msp430x413", MSP430_ISA_41, bfd_mach_msp41}, + {"msp430x311", MSP430_ISA_31, bfd_mach_msp31}, + {"msp430x312", MSP430_ISA_31, bfd_mach_msp31}, + {"msp430x313", MSP430_ISA_31, bfd_mach_msp31}, + {"msp430x314", MSP430_ISA_31, bfd_mach_msp31}, + {"msp430x315", MSP430_ISA_31, bfd_mach_msp31}, + {"msp430x323", MSP430_ISA_32, bfd_mach_msp32}, + {"msp430x325", MSP430_ISA_32, bfd_mach_msp32}, + {"msp430x336", MSP430_ISA_33, bfd_mach_msp33}, + {"msp430x337", MSP430_ISA_33, bfd_mach_msp33}, + {"msp430x1101",MSP430_ISA_110, bfd_mach_msp110}, + {"msp430x1111",MSP430_ISA_110, bfd_mach_msp110}, + {"msp430x1121",MSP430_ISA_110, bfd_mach_msp110}, + {"msp430x1331",MSP430_ISA_13, bfd_mach_msp13}, + {"msp430x1351",MSP430_ISA_13, bfd_mach_msp13}, + {"msp430x435", MSP430_ISA_43, bfd_mach_msp43}, + {"msp430x436", MSP430_ISA_43, bfd_mach_msp43}, + {"msp430x447", MSP430_ISA_44, bfd_mach_msp44}, + {"msp430x448", MSP430_ISA_44, bfd_mach_msp44}, + {"msp430x449", MSP430_ISA_44, bfd_mach_msp44}, + {"msp430x167", MSP430_ISA_16, bfd_mach_msp16}, + {"msp430x168", MSP430_ISA_16, bfd_mach_msp16}, + {"msp430x169", MSP430_ISA_16, bfd_mach_msp16}, + {"msp430x155", MSP430_ISA_15, bfd_mach_msp15}, + {"msp430x156", MSP430_ISA_15, bfd_mach_msp15}, + {"msp430x157", MSP430_ISA_15, bfd_mach_msp15}, + + {NULL, 0, 0} +}; + + +static struct mcu_type_s default_mcu = + { "msp430x11", MSP430_ISA_11, bfd_mach_msp11 }; + +static struct mcu_type_s *msp430_mcu = &default_mcu; + +const pseudo_typeS md_pseudo_table[] = +{ + {"arch", msp430_set_arch, 0}, + {NULL, NULL, 0} +}; + +#define OPTION_MMCU 'm' + +const char *md_shortopts = "m:"; + +struct option md_longopts[] = +{ + {"mmcu", required_argument, NULL, OPTION_MMCU}, + {NULL, no_argument, NULL, 0} +}; + +size_t md_longopts_size = sizeof (md_longopts); + +static void +show_mcu_list (stream) + FILE *stream; +{ + int i; + + fprintf (stream, _("Known MCU names:\n")); + + for (i = 0; mcu_types[i].name; i++) + fprintf (stream, _("\t %s\n"), mcu_types[i].name); + + fprintf (stream, "\n"); +} + +void +md_show_usage (stream) + FILE *stream; +{ + fprintf (stream, + _("MSP430 options:\n" + " -mmcu=[msp430-name] select microcontroller type\n" + " msp430x1101 msp430x1111 msp430x1121\n" + " msp430x1331 msp430x1351\n" + " msp430x1222 msp430x1232\n" + " msp430x311 msp430x312 msp430x313 msp430x314 msp430x315\n" + " msp430x323 msp430x325\n" + " msp430x336 msp430x337\n" + " msp430x412 msp430x413\n" + " msp430x110 msp430x112\n" + " msp430x122 msp430x123\n" + " msp430x133 msp430x135\n" + " msp430x147 msp430x148 msp430x149\n" + " msp430x167 msp430x168 msp430x169\n" + " msp430x155 msp430x156 msp430x157\n" + " msp430x447 msp430x448 msp430x449\n" + " msp430x435 msp430x436\n")); + + show_mcu_list (stream); +} + +static char * +extract_word (char *from, char *to, int limit) +{ + char *op_start; + char *op_end; + int size = 0; + + /* Drop leading whitespace. */ + from = skip_space (from); + *to = 0; + + /* Find the op code end. */ + for (op_start = op_end = from; *op_end != 0 && is_part_of_name (*op_end);) + { + to[size++] = *op_end++; + if (size + 1 >= limit) + break; + } + + to[size] = 0; + return op_end; +} + +static void +msp430_set_arch (dummy) + int dummy ATTRIBUTE_UNUSED; +{ + char *str = (char *) alloca (32); /* 32 for good measure. */ + + input_line_pointer = extract_word (input_line_pointer, str, 32); + + md_parse_option (OPTION_MMCU, str); + bfd_set_arch_mach (stdoutput, TARGET_ARCH, msp430_mcu->mach); +} + +int +md_parse_option (c, arg) + int c; + char *arg; +{ + int i; + + switch (c) + { + case OPTION_MMCU: + for (i = 0; mcu_types[i].name; ++i) + if (strcmp (mcu_types[i].name, arg) == 0) + break; + + if (!mcu_types[i].name) + { + show_mcu_list (stderr); + as_fatal (_("unknown MCU: %s\n"), arg); + } + + if (msp430_mcu == &default_mcu || msp430_mcu->mach == mcu_types[i].mach) + msp430_mcu = &mcu_types[i]; + else + as_fatal (_("redefinition of mcu type %s' to %s'"), + msp430_mcu->name, mcu_types[i].name); + return 1; + } + + return 0; +} + +symbolS * +md_undefined_symbol (name) + char *name ATTRIBUTE_UNUSED; +{ + return 0; +} + +static inline char * +skip_space (s) + char *s; +{ + while (ISSPACE (*s)) + ++s; + return s; +} + +/* Delete spaces from s: X ( r 1 2) => X(r12). */ + +static void +del_spaces (s) + char *s; +{ + while (*s) + { + if (ISSPACE (*s)) + { + char *m = s + 1; + + while (ISSPACE (*m) && *m) + m++; + memmove (s, m, strlen (m) + 1); + } + else + s++; + } +} + +/* Extract one word from FROM and copy it to TO. Delimeters are ",;\n" */ + +static char * +extract_operand (char *from, char *to, int limit) +{ + int size = 0; + + /* Drop leading whitespace. */ + from = skip_space (from); + + while (size < limit && *from) + { + *(to + size) = *from; + if (*from == ',' || *from == ';' || *from == '\n') + break; + from++; + size++; + } + + *(to + size) = 0; + del_spaces (to); + + from++; + + return from; +} + +static char * +extract_cmd (char *from, char *to, int limit) +{ + int size = 0; + + while (*from && ! ISSPACE (*from) && *from != '.' && limit > size) + { + *(to + size) = *from; + from++; + size++; + } + + *(to + size) = 0; + + return from; +} + +/* Turn a string in input_line_pointer into a floating point constant + of type TYPE, and store the appropriate bytes in *LITP. The number + of LITTLENUMS emitted is stored in *SIZEP. An error message is + returned, or NULL on OK. */ + +char * +md_atof (type, litP, sizeP) + int type; + char *litP; + int *sizeP; +{ + int prec; + LITTLENUM_TYPE words[4]; + LITTLENUM_TYPE *wordP; + char *t; + + switch (type) + { + case 'f': + prec = 2; + break; + case 'd': + prec = 4; + break; + default: + *sizeP = 0; + return _("bad call to md_atof"); + } + + t = atof_ieee (input_line_pointer, type, words); + if (t) + input_line_pointer = t; + + *sizeP = prec * sizeof (LITTLENUM_TYPE); + + /* This loop outputs the LITTLENUMs in REVERSE order. */ + for (wordP = words + prec - 1; prec--;) + { + md_number_to_chars (litP, (valueT) (*wordP--), sizeof (LITTLENUM_TYPE)); + litP += sizeof (LITTLENUM_TYPE); + } + + return NULL; +} + +void +md_convert_frag (abfd, sec, fragP) + bfd *abfd ATTRIBUTE_UNUSED; + asection *sec ATTRIBUTE_UNUSED; + fragS *fragP ATTRIBUTE_UNUSED; +{ + abort (); +} + +void +md_begin () +{ + struct msp430_opcode_s *opcode; + msp430_hash = hash_new (); + + for (opcode = msp430_opcodes; opcode->name; opcode++) + hash_insert (msp430_hash, opcode->name, (char *) opcode); + + bfd_set_arch_mach (stdoutput, TARGET_ARCH, msp430_mcu->mach); +} + +void +md_assemble (str) + char *str; +{ + struct msp430_opcode_s *opcode; + char cmd[32]; + unsigned int i = 0; + + str = skip_space (str); /* Skip leading spaces. */ + str = extract_cmd (str, cmd, sizeof (cmd)); + + while (cmd[i] && i < sizeof (cmd)) + { + char a = tolower (cmd[i]); + cmd[i] = a; + i++; + } + + if (!cmd[0]) + { + as_bad (_("can't find opcode ")); + return; + } + + opcode = (struct msp430_opcode_s *) hash_find (msp430_hash, cmd); + + if (opcode == NULL) + { + as_bad (_("unknown opcode `%s'"), cmd); + return; + } + + { + char *__t = input_line_pointer; + msp430_operands (opcode, str); + input_line_pointer = __t; + } +} + +/* Parse instruction operands. + Return binary opcode. */ + +static unsigned int +msp430_operands (opcode, line) + struct msp430_opcode_s *opcode; + char *line; +{ + int bin = opcode->bin_opcode; /* opcode mask. */ + int __is; + char l1[MAX_OP_LEN], l2[MAX_OP_LEN]; + char *frag; + int where; + struct msp430_operand_s op1, op2; + int res = 0; + static short ZEROS = 0; + int byte_op, imm_op; + + /* opcode is the one from opcodes table + line contains something like + [.w] @r2+, 5(R1) + or + .b @r2+, 5(R1). */ + + /* Check if byte or word operation. */ + if (*line == '.' && tolower (*(line + 1)) == 'b') + { + bin |= BYTE_OPERATION; + byte_op = 1; + } + else + byte_op = 0; + + /* skip .[bwBW]. */ + while (! ISSPACE (*line) && *line) + line++; + + if (opcode->insn_opnumb && (!*line || *line == '\n')) + { + as_bad (_("instruction %s requires %d operand(s)"), + opcode->name, opcode->insn_opnumb); + return 0; + } + + memset (l1, 0, sizeof (l1)); + memset (l2, 0, sizeof (l2)); + memset (&op1, 0, sizeof (op1)); + memset (&op2, 0, sizeof (op2)); + + imm_op = 0; + + switch (opcode->fmt) + { + case 0: /* Emulated. */ + switch (opcode->insn_opnumb) + { + case 0: + /* Set/clear bits instructions. */ + __is = 2; + frag = frag_more (__is); + bfd_putl16 ((bfd_vma) bin, frag); + break; + case 1: + /* Something which works with destination operand. */ + line = extract_operand (line, l1, sizeof (l1)); + res = msp430_dstoperand (&op1, l1, opcode->bin_opcode); + if (res) + break; + + bin |= (op1.reg | (op1.am << 7)); + __is = 1 + op1.ol; + frag = frag_more (2 * __is); + where = frag - frag_now->fr_literal; + bfd_putl16 ((bfd_vma) bin, frag); + + if (op1.mode == OP_EXP) + { + where += 2; + bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + + if (op1.reg) + fix_new_exp (frag_now, where, 2, + &(op1.exp), FALSE, CHECK_RELOC_MSP430); + else + fix_new_exp (frag_now, where, 2, + &(op1.exp), TRUE, CHECK_RELOC_MSP430_PCREL); + } + break; + + case 2: + { + char l2[16]; + + /* Shift instruction. */ + line = extract_operand (line, l1, sizeof (l1)); + strncpy (l2, l1, 16); + res = msp430_srcoperand (&op1, l1, opcode->bin_opcode, &imm_op); + res += msp430_dstoperand (&op2, l2, opcode->bin_opcode); + + if (res) + break; /* An error occured. All warnings were done before. */ + + bin |= (op2.reg | (op1.reg << 8) | (op1.am << 4) | (op2.am << 7)); + + __is = 1 + op1.ol + op2.ol; /* insn size in words. */ + frag = frag_more (2 * __is); + where = frag - frag_now->fr_literal; + bfd_putl16 ((bfd_vma) bin, frag); + + if (op1.mode == OP_EXP) + { + where += 2; /* Advance 'where' as we do not know _where_. */ + bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + + if (op1.reg || (op1.reg == 0 && op1.am == 3)) /* Not PC relative. */ + fix_new_exp (frag_now, where, 2, + &(op1.exp), FALSE, CHECK_RELOC_MSP430); + else + fix_new_exp (frag_now, where, 2, + &(op1.exp), TRUE, CHECK_RELOC_MSP430_PCREL); + } + + if (op2.mode == OP_EXP) + { + imm_op = 0; + bfd_putl16 ((bfd_vma) ZEROS, frag + 2 + ((__is == 3) ? 2 : 0)); + + if (op2.reg) /* Not PC relative. */ + fix_new_exp (frag_now, where + 2, 2, + &(op2.exp), FALSE, CHECK_RELOC_MSP430); + else + fix_new_exp (frag_now, where + 2, 2, + &(op2.exp), TRUE, CHECK_RELOC_MSP430_PCREL); + } + break; + } + case 3: + /* Branch instruction => mov dst, r0. */ + line = extract_operand (line, l1, sizeof (l1)); + + res = msp430_srcoperand (&op1, l1, opcode->bin_opcode, &imm_op); + if (res) + break; + + byte_op = 0; + imm_op = 0; + + bin |= ((op1.reg << 8) | (op1.am << 4)); + __is = 1 + op1.ol; + frag = frag_more (2 * __is); + where = frag - frag_now->fr_literal; + bfd_putl16 ((bfd_vma) bin, frag); + + if (op1.mode == OP_EXP) + { + where += 2; + bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + + if (op1.reg || (op1.reg == 0 && op1.am == 3)) + fix_new_exp (frag_now, where, 2, + &(op1.exp), FALSE, CHECK_RELOC_MSP430); + else + fix_new_exp (frag_now, where, 2, + &(op1.exp), TRUE, CHECK_RELOC_MSP430_PCREL); + } + break; + } + break; + + case 1: /* Format 1, double operand. */ + line = extract_operand (line, l1, sizeof (l1)); + line = extract_operand (line, l2, sizeof (l2)); + res = msp430_srcoperand (&op1, l1, opcode->bin_opcode, &imm_op); + res += msp430_dstoperand (&op2, l2, opcode->bin_opcode); + + if (res) + break; /* Error occured. All warnings were done before. */ + + bin |= (op2.reg | (op1.reg << 8) | (op1.am << 4) | (op2.am << 7)); + + __is = 1 + op1.ol + op2.ol; /* insn size in words. */ + frag = frag_more (2 * __is); + where = frag - frag_now->fr_literal; + bfd_putl16 ((bfd_vma) bin, frag); + + if (op1.mode == OP_EXP) + { + where += 2; /* Advance where as we do not know _where_. */ + bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + + if (op1.reg || (op1.reg == 0 && op1.am == 3)) /* Not PC relative. */ + fix_new_exp (frag_now, where, 2, + &(op1.exp), FALSE, CHECK_RELOC_MSP430); + else + fix_new_exp (frag_now, where, 2, + &(op1.exp), TRUE, CHECK_RELOC_MSP430_PCREL); + } + + if (op2.mode == OP_EXP) + { + imm_op = 0; + bfd_putl16 ((bfd_vma) ZEROS, frag + 2 + ((__is == 3) ? 2 : 0)); + + if (op2.reg) /* Not PC relative. */ + fix_new_exp (frag_now, where + 2, 2, + &(op2.exp), FALSE, CHECK_RELOC_MSP430); + else + fix_new_exp (frag_now, where + 2, 2, + &(op2.exp), TRUE, CHECK_RELOC_MSP430_PCREL); + } + break; + + case 2: /* Single-operand mostly instr. */ + if (opcode->insn_opnumb == 0) + { + /* reti instruction. */ + frag = frag_more (2); + bfd_putl16 ((bfd_vma) bin, frag); + break; + } + + line = extract_operand (line, l1, sizeof (l1)); + res = msp430_srcoperand (&op1, l1, opcode->bin_opcode, &imm_op); + if (res) + break; /* Error in operand. */ + + bin |= op1.reg | (op1.am << 4); + __is = 1 + op1.ol; + frag = frag_more (2 * __is); + where = frag - frag_now->fr_literal; + bfd_putl16 ((bfd_vma) bin, frag); + + if (op1.mode == OP_EXP) + { + bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + + if (op1.reg || (op1.reg == 0 && op1.am == 3)) /* Not PC relative. */ + fix_new_exp (frag_now, where + 2, 2, + &(op1.exp), FALSE, CHECK_RELOC_MSP430); + else + fix_new_exp (frag_now, where + 2, 2, + &(op1.exp), TRUE, CHECK_RELOC_MSP430_PCREL); + } + break; + + case 3: /* Conditional jumps instructions. */ + line = extract_operand (line, l1, sizeof (l1)); + /* l1 is a label. */ + if (l1[0]) + { + char *m = l1; + expressionS exp; + + if (*m == '$') + m++; + + parse_exp (m, &exp); + frag = frag_more (2); /* Instr size is 1 word. */ + + /* In order to handle something like: + + and #0x8000, r5 + tst r5 + jz 4 ; skip next 4 bytes + inv r5 + inc r5 + nop ; will jump here if r5 positive or zero + + jCOND -n ;assumes jump n bytes backward: + + mov r5,r6 + jmp -2 + + is equial to: + lab: + mov r5,r6 + jmp lab + + jCOND $n ; jump from PC in either direction. */ + + if (exp.X_op == O_constant) + { + int x = exp.X_add_number; + + if (x & 1) + { + as_warn (_("Even number required. Rounded to %d"), x + 1); + x++; + } + + if ((*l1 == '$' && x > 0) || x < 0) + x -= 2; + + x >>= 1; + + if (x > 512 || x < -511) + { + as_bad (_("Wrong displacement %d"), x << 1); + break; + } + + bin |= x & 0x3ff; + bfd_putl16 ((bfd_vma) bin, frag); + } + else if (exp.X_op == O_symbol && *l1 != '$') + { + where = frag - frag_now->fr_literal; + fix_new_exp (frag_now, where, 2, + &exp, TRUE, BFD_RELOC_MSP430_10_PCREL); + + bfd_putl16 ((bfd_vma) bin, frag); + } + else if (*l1 == '$') + { + as_bad (_("instruction requires label sans '$'")); + break; + } + else + { + as_bad (_ + ("instruction requires label or value in range -511:512")); + break; + } + } + else + { + as_bad (_("instruction requires label")); + break; + } + break; + + default: + as_bad (_("Ilegal instruction or not implmented opcode.")); + } + + input_line_pointer = line; + return 0; +} + +static int +msp430_dstoperand (op, l, bin) + struct msp430_operand_s *op; + char *l; + int bin; +{ + int dummy; + int ret = msp430_srcoperand (op, l, bin, &dummy); + if (ret) + return ret; + + if (op->am == 2) + { + char *__tl = "0"; + + op->mode = OP_EXP; + op->am = 1; + op->ol = 1; + parse_exp (__tl, &(op->exp)); + if (op->exp.X_op != O_constant || op->exp.X_add_number != 0) + { + as_bad (_("Internal bug. Try to use 0(r%d) instead of @r%d"), + op->reg, op->reg); + return 1; + } + return 0; + } + + if (op->am > 1) + { + as_bad (_ + ("this addressing mode is not applicable for destination operand")); + return 1; + } + return 0; +} + + +static int +check_reg (t) + char *t; +{ + /* If this is a reg numb, str 't' must be a number from 0 - 15. */ + + if (strlen (t) > 2 && *(t + 2) != '+') + return 1; + + while (*t) + { + if ((*t < '0' || *t > '9') && *t != '+') + break; + t++; + } + + if (*t) + return 1; + + return 0; +} + + +static int +msp430_srcoperand (op, l, bin, imm_op) + struct msp430_operand_s *op; + char *l; + int bin; + int *imm_op; +{ + char *__tl = l; + + /* Check if an immediate #VALUE. The hash sign should be only at the beginning! */ + if (*l == '#') + { + char *h = l; + int vshift = -1; + int rval = 0; + + /* Check if there is: + llo(x) - least significant 16 bits, x &= 0xffff + lhi(x) - x = (x >> 16) & 0xffff, + hlo(x) - x = (x >> 32) & 0xffff, + hhi(x) - x = (x >> 48) & 0xffff + The value _MUST_ be constant expression: #hlo(1231231231). */ + + *imm_op = 1; + + if (strncasecmp (h, "#llo(", 5) == 0) + { + vshift = 0; + rval = 3; + } + else if (strncasecmp (h, "#lhi(", 5) == 0) + { + vshift = 1; + rval = 3; + } + else if (strncasecmp (h, "#hlo(", 5) == 0) + { + vshift = 2; + rval = 3; + } + else if (strncasecmp (h, "#hhi(", 5) == 0) + { + vshift = 3; + rval = 3; + } + else if (strncasecmp (h, "#lo(", 4) == 0) + { + vshift = 0; + rval = 2; + } + else if (strncasecmp (h, "#hi(", 4) == 0) + { + vshift = 1; + rval = 2; + } + + op->reg = 0; /* Reg PC. */ + op->am = 3; + op->ol = 1; /* Immediate will follow an instruction. */ + __tl = h + 1 + rval; + op->mode = OP_EXP; + parse_exp (__tl, &(op->exp)); + if (op->exp.X_op == O_constant) + { + int x = op->exp.X_add_number; + + if (vshift == 0) + { + x = x & 0xffff; + op->exp.X_add_number = x; + } + else if (vshift == 1) + { + x = (x >> 16) & 0xffff; + op->exp.X_add_number = x; + } + else if (vshift > 1) + { + if (x < 0) + op->exp.X_add_number = -1; + else + op->exp.X_add_number = 0; /* Nothing left. */ + x = op->exp.X_add_number; + } + + if (op->exp.X_add_number > 65535 || op->exp.X_add_number < -32768) + { + as_bad (_("value %ld out of range. Use #lo() or #hi()"), x); + return 1; + } + + /* Now check constants. */ + /* Substitude register mode with a constant generator if applicable. */ + + x = (short) x; /* Extend sign. */ + + if (x == 0) + { + op->reg = 3; + op->am = 0; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == 1) + { + op->reg = 3; + op->am = 1; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == 2) + { + op->reg = 3; + op->am = 2; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == -1) + { + op->reg = 3; + op->am = 3; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == 4) + { +#ifdef PUSH_1X_WORKAROUND + if (bin == 0x1200 + && (msp430_mcu->isa == MSP430_ISA_11 + || msp430_mcu->isa == MSP430_ISA_12 + || msp430_mcu->isa == MSP430_ISA_13 + || msp430_mcu->isa == MSP430_ISA_14)) + { + /* Remove warning as confusing. + as_warn(_("Hardware push bug workaround")); */ + } + else +#endif + { + op->reg = 2; + op->am = 2; + op->ol = 0; + op->mode = OP_REG; + } + } + else if (x == 8) + { +#ifdef PUSH_1X_WORKAROUND + if (bin == 0x1200 + && (msp430_mcu->isa == MSP430_ISA_11 + || msp430_mcu->isa == MSP430_ISA_12 + || msp430_mcu->isa == MSP430_ISA_13 + || msp430_mcu->isa == MSP430_ISA_14)) + { + /* Remove warning as confusing. + as_warn(_("Hardware push bug workaround")); */ + } + else +#endif + { + op->reg = 2; + op->am = 3; + op->ol = 0; + op->mode = OP_REG; + } + } + } + else if (op->exp.X_op == O_symbol) + { + op->mode = OP_EXP; + } + else if (op->exp.X_op == O_big) + { + short x; + if (vshift != -1) + { + op->exp.X_op = O_constant; + op->exp.X_add_number = 0xffff & generic_bignum[vshift]; + x = op->exp.X_add_number; + } + else + { + as_bad (_ + ("unknown expression in operand %s. use #llo() #lhi() #hlo() #hhi() "), + l); + return 1; + } + + if (x == 0) + { + op->reg = 3; + op->am = 0; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == 1) + { + op->reg = 3; + op->am = 1; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == 2) + { + op->reg = 3; + op->am = 2; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == -1) + { + op->reg = 3; + op->am = 3; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == 4) + { + op->reg = 2; + op->am = 2; + op->ol = 0; + op->mode = OP_REG; + } + else if (x == 8) + { + op->reg = 2; + op->am = 3; + op->ol = 0; + op->mode = OP_REG; + } + } + else + { + as_bad (_("unknown operand %s"), l); + } + return 0; + } + + /* Check if absolute &VALUE (assume that we can construct something like ((a&b)<<7 + 25). */ + if (*l == '&') + { + char *h = l; + + op->reg = 2; /* reg 2 in absolute addr mode. */ + op->am = 1; /* mode As == 01 bin. */ + op->ol = 1; /* Immediate value followed by instruction. */ + __tl = h + 1; + parse_exp (__tl, &(op->exp)); + op->mode = OP_EXP; + if (op->exp.X_op == O_constant) + { + int x = op->exp.X_add_number; + if (x > 65535 || x < -32768) + { + as_bad (_("value out of range: %d"), x); + return 1; + } + } + else if (op->exp.X_op == O_symbol) + { + } + else + { + as_bad (_("unknown expression in operand %s"), l); + return 1; + } + return 0; + } + + /* Check if inderect register mode @Rn / postincrement @Rn+. */ + if (*l == '@') + { + char *t = l; + char *m = strchr (l, '+'); + + if (t != l) + { + as_bad (_("unknown addressing mode %s"), l); + return 1; + } + + t++; + if (*t != 'r' && *t != 'R') + { + as_bad (_("unknown addressing mode %s"), l); + return 1; + } + + t++; /* Points to the reg value. */ + + if (check_reg (t)) + { + as_bad (_("Bad register name r%s"), t); + return 1; + } + + op->mode = OP_REG; + op->am = m ? 3 : 2; + op->ol = 0; + if (m) + *m = 0; /* strip '+' */ + op->reg = atoi (t); + if (op->reg < 0 || op->reg > 15) + { + as_bad (_("MSP430 does not have %d registers"), op->reg); + return 1; + } + + return 0; + } + + /* Check if register indexed X(Rn). */ + do + { + char *h = strrchr (l, '('); + char *m = strrchr (l, ')'); + char *t; + + *imm_op = 1; + + if (!h) + break; + if (!m) + { + as_bad (_("')' required")); + return 1; + } + + t = h; + op->am = 1; + op->ol = 1; + /* Extract a register. */ + t++; /* Advance pointer. */ + + if (*t != 'r' && *t != 'R') + { + as_bad (_ + ("unknown operator %s. Did you mean X(Rn) or #[hl][hl][oi](CONST) ?"), + l); + return 1; + } + t++; + + op->reg = *t - '0'; + if (op->reg > 9 || op->reg < 0) + { + as_bad (_("unknown operator (r%s substituded as a register name"), + t); + return 1; + } + t++; + if (*t != ')') + { + op->reg = op->reg * 10; + op->reg += *t - '0'; + + if (op->reg > 15) + { + as_bad (_("unknown operator %s"), l); + return 1; + } + if (op->reg == 2) + { + as_bad (_("r2 should not be used in indexed addressing mode")); + return 1; + } + + if (*(t + 1) != ')') + { + as_bad (_("unknown operator %s"), l); + return 1; + } + } + + /* Extract constant. */ + __tl = l; + *h = 0; + op->mode = OP_EXP; + parse_exp (__tl, &(op->exp)); + if (op->exp.X_op == O_constant) + { + int x = op->exp.X_add_number; + + if (x > 65535 || x < -32768) + { + as_bad (_("value out of range: %d"), x); + return 1; + } + + if (x == 0) + { + op->mode = OP_REG; + op->am = 2; + op->ol = 0; + return 0; + } + } + else if (op->exp.X_op == O_symbol) + { + } + else + { + as_bad (_("unknown expression in operand %s"), l); + return 1; + } + + return 0; + } + while (0); + + /* Register mode 'mov r1,r2'. */ + do + { + char *t = l; + + /* Operand should be a register. */ + if (*t == 'r' || *t == 'R') + { + int x = atoi (t + 1); + + if (check_reg (t + 1)) + break; + + if (x < 0 || x > 15) + break; /* Symbolic mode. */ + + op->mode = OP_REG; + op->am = 0; + op->ol = 0; + op->reg = x; + return 0; + } + } + while (0); + + /* Symbolic mode 'mov a, b' == 'mov x(pc), y(pc)'. */ + do + { + char *t = l; + + __tl = l; + + while (*t) + { + /* alpha/number underline dot for labels. */ + if (! ISALNUM (*t) && *t != '_' && *t != '.') + { + as_bad (_("unknown operand %s"), l); + return 1; + } + t++; + } + + op->mode = OP_EXP; + op->reg = 0; /* PC relative... be careful. */ + op->am = 1; + op->ol = 1; + __tl = l; + parse_exp (__tl, &(op->exp)); + return 0; + } + while (0); + + /* Unreachable. */ + as_bad (_("unknown addressing mode for operand %s"), l); + return 1; +} + + +/* GAS will call this function for each section at the end of the assembly, + to permit the CPU backend to adjust the alignment of a section. */ + +valueT +md_section_align (seg, addr) + asection *seg; + valueT addr; +{ + int align = bfd_get_section_alignment (stdoutput, seg); + + return ((addr + (1 << align) - 1) & (-1 << align)); +} + +/* If you define this macro, it should return the offset between the + address of a PC relative fixup and the position from which the PC + relative adjustment should be made. On many processors, the base + of a PC relative instruction is the next instruction, so this + macro would return the length of an instruction. */ + +long +md_pcrel_from_section (fixp, sec) + fixS *fixp; + segT sec; +{ + if (fixp->fx_addsy != (symbolS *) NULL + && (!S_IS_DEFINED (fixp->fx_addsy) + || (S_GET_SEGMENT (fixp->fx_addsy) != sec))) + return 0; + + return fixp->fx_frag->fr_address + fixp->fx_where; +} + +/* GAS will call this for each fixup. It should store the correct + value in the object file. */ + +void +md_apply_fix3 (fixp, valuep, seg) + fixS *fixp; + valueT *valuep; + segT seg; +{ + unsigned char *where; + unsigned long insn; + long value; + + if (fixp->fx_addsy == (symbolS *) NULL) + { + value = *valuep; + fixp->fx_done = 1; + } + else if (fixp->fx_pcrel) + { + segT s = S_GET_SEGMENT (fixp->fx_addsy); + + if (fixp->fx_addsy && (s == seg || s == absolute_section)) + { + value = S_GET_VALUE (fixp->fx_addsy) + *valuep; + fixp->fx_done = 1; + } + else + value = *valuep; + } + else + { + value = fixp->fx_offset; + + if (fixp->fx_subsy != (symbolS *) NULL) + { + if (S_GET_SEGMENT (fixp->fx_subsy) == absolute_section) + { + value -= S_GET_VALUE (fixp->fx_subsy); + fixp->fx_done = 1; + } + else + { + /* We don't actually support subtracting a symbol. */ + as_bad_where (fixp->fx_file, fixp->fx_line, + _("expression too complex")); + } + } + } + + switch (fixp->fx_r_type) + { + default: + fixp->fx_no_overflow = 1; + break; + case BFD_RELOC_MSP430_10_PCREL: + break; + } + + if (fixp->fx_done) + { + /* Fetch the instruction, insert the fully resolved operand + value, and stuff the instruction back again. */ + + where = fixp->fx_frag->fr_literal + fixp->fx_where; + + insn = bfd_getl16 (where); + + switch (fixp->fx_r_type) + { + case BFD_RELOC_MSP430_10_PCREL: + if (value & 1) + as_bad_where (fixp->fx_file, fixp->fx_line, + _("odd address operand: %ld"), value); + + /* Jumps are in words. */ + value >>= 1; + --value; /* Correct PC. */ + + if (value < -512 || value > 511) + as_bad_where (fixp->fx_file, fixp->fx_line, + _("operand out of range: %ld"), value); + + value &= 0x3ff; /* get rid of extended sign */ + bfd_putl16 ((bfd_vma) (value | insn), where); + break; + + case BFD_RELOC_MSP430_16_PCREL: + if (value & 1) + as_bad_where (fixp->fx_file, fixp->fx_line, + _("odd address operand: %ld"), value); + + /* Nothing to be corrected here. */ + if (value < -32768 || value > 65536) + as_bad_where (fixp->fx_file, fixp->fx_line, + _("operand out of range: %ld"), value); + + value &= 0xffff; /* Get rid of extended sign. */ + bfd_putl16 ((bfd_vma) value, where); + break; + + case BFD_RELOC_MSP430_16_PCREL_BYTE: + /* Nothing to be corrected here. */ + if (value < -32768 || value > 65536) + as_bad_where (fixp->fx_file, fixp->fx_line, + _("operand out of range: %ld"), value); + + value &= 0xffff; /* Get rid of extended sign. */ + bfd_putl16 ((bfd_vma) value, where); + break; + + case BFD_RELOC_32: + bfd_putl16 ((bfd_vma) value, where); + break; + + case BFD_RELOC_MSP430_16: + case BFD_RELOC_16: + case BFD_RELOC_MSP430_16_BYTE: + value &= 0xffff; + bfd_putl16 ((bfd_vma) value, where); + break; + + default: + as_fatal (_("line %d: unknown relocation type: 0x%x"), + fixp->fx_line, fixp->fx_r_type); + break; + } + } + else + { + fixp->fx_addnumber = value; + } + return; +} + +/* A `BFD_ASSEMBLER' GAS will call this to generate a reloc. GAS + will pass the resulting reloc to `bfd_install_relocation'. This + currently works poorly, as `bfd_install_relocation' often does the + wrong thing, and instances of `tc_gen_reloc' have been written to + work around the problems, which in turns makes it difficult to fix + `bfd_install_relocation'. */ + +/* If while processing a fixup, a reloc really needs to be created + then it is done here. */ + +arelent * +tc_gen_reloc (seg, fixp) + asection *seg ATTRIBUTE_UNUSED; + fixS *fixp; +{ + arelent *reloc; + + reloc = (arelent *) xmalloc (sizeof (arelent)); + + reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); + + reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; + reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); + if (reloc->howto == (reloc_howto_type *) NULL) + { + as_bad_where (fixp->fx_file, fixp->fx_line, + _("reloc %d not supported by object file format"), + (int) fixp->fx_r_type); + return NULL; + } + + if (fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT + || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY) + reloc->address = fixp->fx_offset; + + reloc->addend = fixp->fx_offset; + + return reloc; +} + +/* Parse ordinary expression. */ + +static char * +parse_exp (s, op) + char *s; + expressionS *op; +{ + input_line_pointer = s; + expression (op); + if (op->X_op == O_absent) + as_bad (_("missing operand")); + return input_line_pointer; +} + + +int +md_estimate_size_before_relax (fragp, seg) + fragS *fragp ATTRIBUTE_UNUSED; + asection *seg ATTRIBUTE_UNUSED; +{ + abort (); + return 0; +} diff -uprN binutils-2.13.90.0.16/gas/config/tc-msp430.h binutils-2.13.90.0.18/gas/config/tc-msp430.h --- binutils-2.13.90.0.16/gas/config/tc-msp430.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/config/tc-msp430.h Tue Jan 21 10:21:33 2003 @@ -0,0 +1,114 @@ +/* This file is tc-msp430.h + Copyright (C) 2002 Free Software Foundation, Inc. + + Contributed by Dmitry Diky + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS 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 GAS; see the file COPYING. If not, write to the Free + Software Foundation, 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. */ + +#ifndef BFD_ASSEMBLER + #error MSP430 support requires BFD_ASSEMBLER +#endif + +#define TC_MSP430 +/* By convention, you should define this macro in the `.h' file. For + example, `tc-m68k.h' defines `TC_M68K'. You might have to use this + if it is necessary to add CPU specific code to the object format + file. */ + +#define TARGET_FORMAT "elf32-msp430" +/* This macro is the BFD target name to use when creating the output + file. This will normally depend upon the `OBJ_FMT' macro. */ + +#define TARGET_ARCH bfd_arch_msp430 +/* This macro is the BFD architecture to pass to `bfd_set_arch_mach'. */ + +#define TARGET_MACH 0 +/* This macro is the BFD machine number to pass to + `bfd_set_arch_mach'. If it is not defined, GAS will use 0. */ + +#define TARGET_BYTES_BIG_ENDIAN 0 +/* You should define this macro to be non-zero if the target is big + endian, and zero if the target is little endian. */ + +#define ONLY_STANDARD_ESCAPES +/* If you define this macro, GAS will warn about the use of + nonstandard escape sequences in a string. */ + +#define md_operand(x) +/* GAS will call this function for any expression that can not be + recognized. When the function is called, `input_line_pointer' + will point to the start of the expression. */ + +#define md_number_to_chars number_to_chars_littleendian +/* This should just call either `number_to_chars_bigendian' or + `number_to_chars_littleendian', whichever is appropriate. On + targets like the MIPS which support options to change the + endianness, which function to call is a runtime decision. On + other targets, `md_number_to_chars' can be a simple macro. */ + +#define WORKING_DOT_WORD +/* +`md_short_jump_size' +`md_long_jump_size' +`md_create_short_jump' +`md_create_long_jump' + If `WORKING_DOT_WORD' is defined, GAS will not do broken word + processing (*note Broken words::.). Otherwise, you should set + `md_short_jump_size' to the size of a short jump (a jump that is + just long enough to jump around a long jmp) and + `md_long_jump_size' to the size of a long jump (a jump that can go + anywhere in the function), You should define + `md_create_short_jump' to create a short jump around a long jump, + and define `md_create_long_jump' to create a long jump. */ + +#define MD_APPLY_FIX3 + +#define TC_HANDLES_FX_DONE + +#undef RELOC_EXPANSION_POSSIBLE +/* If you define this macro, it means that `tc_gen_reloc' may return + multiple relocation entries for a single fixup. In this case, the + return value of `tc_gen_reloc' is a pointer to a null terminated + array. */ + +#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC) +/* If you define this macro, it should return the offset between the + address of a PC relative fixup and the position from which the PC + relative adjustment should be made. On many processors, the base + of a PC relative instruction is the next instruction, so this + macro would return the length of an instruction. */ + +extern long md_pcrel_from_section PARAMS ((struct fix *, segT)); + +#define LISTING_WORD_SIZE 2 +/* The number of bytes to put into a word in a listing. This affects + the way the bytes are clumped together in the listing. For + example, a value of 2 might print `1234 5678' where a value of 1 + would print `12 34 56 78'. The default value is 4. */ + +#define LEX_DOLLAR 0 +/* MSP430 port does not use `$' as a logical line separator */ + +#define TC_IMPLICIT_LCOMM_ALIGNMENT(SIZE, P2VAR) (P2VAR) = 0 +/* An `.lcomm' directive with no explicit alignment parameter will + use this macro to set P2VAR to the alignment that a request for + SIZE bytes will have. The alignment is expressed as a power of + two. If no alignment should take place, the macro definition + should do nothing. Some targets define a `.bss' directive that is + also affected by this macro. The default definition will set + P2VAR to the truncated power of two of sizes up to eight bytes. */ diff -uprN binutils-2.13.90.0.16/gas/config/tc-ns32k.c binutils-2.13.90.0.18/gas/config/tc-ns32k.c --- binutils-2.13.90.0.16/gas/config/tc-ns32k.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gas/config/tc-ns32k.c Mon Dec 16 12:22:53 2002 @@ -890,13 +890,15 @@ evaluate_expr (resultP, ptr) opcode. Be carefull not to put to objects in the same iif-slot. */ -static void encode_operand PARAMS ((int argc, char **argv, char *operandsP, char *, char, char)); +static void encode_operand + PARAMS ((int, char **, const char *, const char *, char, char)); + static void encode_operand (argc, argv, operandsP, suffixP, im_size, opcode_bit_ptr) int argc; char **argv; - char *operandsP; - char *suffixP; + const char *operandsP; + const char *suffixP; char im_size ATTRIBUTE_UNUSED; char opcode_bit_ptr; { @@ -1077,13 +1079,15 @@ encode_operand (argc, argv, operandsP, s Return-value = recursive_level. */ /* Build iif of one assembly text line. */ -static int parse PARAMS ((char *, int)); +static int parse PARAMS ((const char *, int)); + static int parse (line, recursive_level) - char *line; + const char *line; int recursive_level; { - char *lineptr, c, suffix_separator; + const char *lineptr; + char c, suffix_separator; int i; unsigned int argc; int arg_type; @@ -1097,12 +1101,12 @@ parse (line, recursive_level) continue; c = *lineptr; - *lineptr = '\0'; + *(char *) lineptr = '\0'; if (!(desc = (struct ns32k_opcode *) hash_find (inst_hash_handle, line))) as_fatal (_("No such opcode")); - *lineptr = c; + *(char *) lineptr = c; } else { @@ -1637,7 +1641,9 @@ md_begin () const struct ns32k_opcode *ptr; const char *stat; inst_hash_handle = hash_new (); + const struct ns32k_opcode *endop; + endop = ns32k_opcodes + sizeof (ns32k_opcodes) / sizeof (ns32k_opcodes[0]); for (ptr = ns32k_opcodes; ptr < endop; ptr++) { if ((stat = hash_insert (inst_hash_handle, ptr->name, (char *) ptr))) diff -uprN binutils-2.13.90.0.16/gas/config/tc-openrisc.c binutils-2.13.90.0.18/gas/config/tc-openrisc.c --- binutils-2.13.90.0.16/gas/config/tc-openrisc.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-openrisc.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* tc-openrisc.c -- Assembler for the OpenRISC family. - Copyright (C) 2001, 2002 Free Software Foundation. + Copyright 2001, 2002 Free Software Foundation. Contributed by Johan Rydberg, jrydberg@opencores.org This file is part of GAS, the GNU Assembler. @@ -83,6 +83,8 @@ md_show_usage (stream) { } +static void ignore_pseudo PARAMS ((int)); + static void ignore_pseudo (val) int val ATTRIBUTE_UNUSED; @@ -443,7 +445,6 @@ md_atof (type, litP, sizeP) int prec; LITTLENUM_TYPE words [MAX_LITTLENUMS]; char * t; - char * atof_ieee (); switch (type) { @@ -483,7 +484,7 @@ md_atof (type, litP, sizeP) return 0; } -boolean +bfd_boolean openrisc_fix_adjustable (fixP) fixS * fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-openrisc.h binutils-2.13.90.0.18/gas/config/tc-openrisc.h --- binutils-2.13.90.0.16/gas/config/tc-openrisc.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-openrisc.h Mon Dec 16 12:22:53 2002 @@ -52,7 +52,7 @@ extern const char openrisc_comment_chars #define md_apply_fix3 gas_cgen_md_apply_fix3 -extern boolean openrisc_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean openrisc_fix_adjustable PARAMS ((struct fix *)); #define tc_fix_adjustable(FIX) openrisc_fix_adjustable (FIX) /* When relaxing, we need to emit various relocs we otherwise wouldn't. */ diff -uprN binutils-2.13.90.0.16/gas/config/tc-or32.c binutils-2.13.90.0.18/gas/config/tc-or32.c --- binutils-2.13.90.0.16/gas/config/tc-or32.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-or32.c Mon Dec 16 12:22:53 2002 @@ -117,9 +117,7 @@ static unsigned long jalr_r9_opcode; static int check_invalid_opcode PARAMS ((unsigned long)); static void encode PARAMS ((const struct machine_opcode *, unsigned long *, signed long, char)); -#ifdef BFD_ASSEMBLER -static char * parse_operand PARAMS ((char *, expressionS *, int)); -#endif +static char *parse_operand PARAMS ((char *, expressionS *, int)); /* Set bits in machine opcode according to insn->encoding description and passed operand. */ @@ -352,7 +350,7 @@ parse_operand (s, operandp, opt) } #else -char * +static char * parse_operand (s, operandp, opt) char *s; expressionS *operandp; @@ -1087,7 +1085,7 @@ md_apply_fix3 (fixP, valP, seg) break; case RELOC_WDISP30: - val = (val >>= 2) + 1; + val = (val >> 2) + 1; buf[0] |= (val >> 24) & 0x3f; buf[1] = (val >> 16); buf[2] = val >> 8; @@ -1111,7 +1109,7 @@ md_apply_fix3 (fixP, valP, seg) break; case RELOC_WDISP22: - val = (val >>= 2) + 1; + val = (val >> 2) + 1; /* FALLTHROUGH */ case RELOC_BASE22: buf[1] |= (val >> 16) & 0x3f; @@ -1427,8 +1425,6 @@ md_undefined_symbol (name) /* Register name. */ if (name[0] == 'r' || name[0] == 'R' || name[0] == 'a' || name[0] == 'b') { - long maxreg; - /* Parse the number, make sure it has no extra zeroes or trailing chars. */ regnum = atol (& name[1]); diff -uprN binutils-2.13.90.0.16/gas/config/tc-pj.c binutils-2.13.90.0.18/gas/config/tc-pj.c --- binutils-2.13.90.0.16/gas/config/tc-pj.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-pj.c Mon Dec 16 12:22:53 2002 @@ -34,6 +34,21 @@ const char line_comment_chars[] = "/!#"; static int pending_reloc; static struct hash_control *opcode_hash_control; +static void little + PARAMS ((int)); +static void big + PARAMS ((int)); +static char *parse_exp_save_ilp + PARAMS ((char *, expressionS *)); +static int c_to_r + PARAMS ((char)); +static void ipush_code + PARAMS ((pj_opc_info_t *, char *)); +static void fake_opcode + PARAMS ((const char *, void (*) (struct pj_opc_info_t *, char *))); +static void alias + PARAMS ((const char *, const char *)); + static void little (ignore) int ignore ATTRIBUTE_UNUSED; @@ -155,15 +170,17 @@ ipush_code (opcode, str) pj_opc_info_t *opcode ATTRIBUTE_UNUSED; char *str; { - int mod = 0; char *b = frag_more (6); expressionS arg; b[0] = 0x11; b[3] = 0xed; - parse_exp_save_ilp (str + 1, &arg, &mod); - if (mod) - as_bad (_("can't have relocation for ipush")); + parse_exp_save_ilp (str + 1, &arg); + if (pending_reloc) + { + as_bad (_("can't have relocation for ipush")); + pending_reloc = 0; + } fix_new_exp (frag_now, b - frag_now->fr_literal + 1, 2, &arg, 0, BFD_RELOC_PJ_CODE_DIR16); @@ -177,13 +194,13 @@ ipush_code (opcode, str) static void fake_opcode (name, func) const char *name; - void (*func) (); + void (*func) PARAMS ((struct pj_opc_info_t *, char *)); { pj_opc_info_t *fake = (pj_opc_info_t *) xmalloc (sizeof (pj_opc_info_t)); fake->opcode = -1; fake->opcode_next = -1; - fake->name = (const char *) func; + fake->u.func = func; hash_insert (opcode_hash_control, name, (char *) fake); } @@ -210,8 +227,8 @@ md_begin () opcode_hash_control = hash_new (); /* Insert names into hash table. */ - for (opcode = pj_opc_info; opcode->name; opcode++) - hash_insert (opcode_hash_control, opcode->name, (char *) opcode); + for (opcode = pj_opc_info; opcode->u.name; opcode++) + hash_insert (opcode_hash_control, opcode->u.name, (char *) opcode); /* Insert the only fake opcode. */ fake_opcode ("ipush", ipush_code); @@ -278,7 +295,7 @@ md_assemble (str) { /* It's a fake opcode. Dig out the args and pretend that was what we were passed. */ - ((void (*) ()) opcode->name) (opcode, op_end); + (*opcode->u.func) (opcode, op_end); } else { @@ -404,10 +421,10 @@ md_parse_option (c, arg) switch (c) { case OPTION_LITTLE: - little (); + little (0); break; case OPTION_BIG: - big (); + big (0); break; default: return 0; diff -uprN binutils-2.13.90.0.16/gas/config/tc-ppc.c binutils-2.13.90.0.18/gas/config/tc-ppc.c --- binutils-2.13.90.0.16/gas/config/tc-ppc.c Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/gas/config/tc-ppc.c Mon Dec 16 12:22:53 2002 @@ -47,9 +47,9 @@ static int set_target_endian = 0; /* Whether to use user friendly register names. */ #ifndef TARGET_REG_NAMES_P #ifdef TE_PE -#define TARGET_REG_NAMES_P true +#define TARGET_REG_NAMES_P TRUE #else -#define TARGET_REG_NAMES_P false +#define TARGET_REG_NAMES_P FALSE #endif #endif @@ -83,9 +83,9 @@ static int set_target_endian = 0; #define SEX16(val) ((((val) & 0xffff) ^ 0x8000) - 0x8000) -static boolean reg_names_p = TARGET_REG_NAMES_P; +static bfd_boolean reg_names_p = TARGET_REG_NAMES_P; -static boolean register_name PARAMS ((expressionS *)); +static bfd_boolean register_name PARAMS ((expressionS *)); static void ppc_set_cpu PARAMS ((void)); static unsigned long ppc_insert_operand PARAMS ((unsigned long insn, const struct powerpc_operand *operand, @@ -603,7 +603,7 @@ reg_name_search (regs, regcount, name) * original state. */ -static boolean +static bfd_boolean register_name (expressionP) expressionS *expressionP; { @@ -618,7 +618,7 @@ register_name (expressionP) name = ++input_line_pointer; else if (!reg_names_p || !ISALPHA (name[0])) - return false; + return FALSE; c = get_symbol_end (); reg_number = reg_name_search (pre_defined_registers, REG_NAME_CNT, name); @@ -635,12 +635,12 @@ register_name (expressionP) /* Make the rest nice. */ expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* This function is called for each symbol seen in an expression. It @@ -648,7 +648,7 @@ register_name (expressionP) to use for condition codes. */ /* Whether to do the special parsing. */ -static boolean cr_operand; +static bfd_boolean cr_operand; /* Names to recognize in a condition code. This table is sorted. */ static const struct pd_reg cr_names[] = @@ -716,12 +716,12 @@ static flagword ppc_flags = 0; /* Whether this is Solaris or not. */ #ifdef TARGET_SOLARIS_COMMENT -#define SOLARIS_P true +#define SOLARIS_P TRUE #else -#define SOLARIS_P false +#define SOLARIS_P FALSE #endif -static boolean msolaris = SOLARIS_P; +static bfd_boolean msolaris = SOLARIS_P; #endif #ifdef OBJ_XCOFF @@ -796,8 +796,8 @@ symbolS *GOT_symbol; /* Pre-defined "_G #define PPC_APUINFO_EFS 0x101 #define PPC_APUINFO_BRLOCK 0x102 -/* - * We keep a list of APUinfo +/* + * We keep a list of APUinfo */ unsigned long *ppc_apuinfo_list; unsigned int ppc_apuinfo_num; @@ -891,8 +891,8 @@ md_parse_option (c, arg) /* -m601 means to assemble for the PowerPC 601, which includes instructions that are holdovers from the Power. */ else if (strcmp (arg, "601") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC - | PPC_OPCODE_601 | PPC_OPCODE_32; + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_601 | PPC_OPCODE_32); /* -mppc, -mppc32, -m603, and -m604 mean to assemble for the PowerPC 603/604. */ else if (strcmp (arg, "ppc") == 0 @@ -902,28 +902,29 @@ md_parse_option (c, arg) ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; /* -m403 and -m405 mean to assemble for the PowerPC 403/405. */ else if (strcmp (arg, "403") == 0 - || strcmp (arg, "405") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC - | PPC_OPCODE_403 | PPC_OPCODE_32; + || strcmp (arg, "405") == 0) + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_403 | PPC_OPCODE_32); else if (strcmp (arg, "7400") == 0 - || strcmp (arg, "7410") == 0 - || strcmp (arg, "7450") == 0 - || strcmp (arg, "7455") == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC - | PPC_OPCODE_ALTIVEC | PPC_OPCODE_32; + || strcmp (arg, "7410") == 0 + || strcmp (arg, "7450") == 0 + || strcmp (arg, "7455") == 0) + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_ALTIVEC | PPC_OPCODE_32); else if (strcmp (arg, "altivec") == 0) - { - if (ppc_cpu == 0) - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_ALTIVEC; - else - ppc_cpu |= PPC_OPCODE_ALTIVEC; - } + { + if (ppc_cpu == 0) + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_ALTIVEC; + else + ppc_cpu |= PPC_OPCODE_ALTIVEC; + } else if (strcmp (arg, "e500") == 0 || strcmp (arg, "e500x2") == 0) { - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE - | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK - | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK | PPC_OPCODE_RFMCI; - } + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | PPC_OPCODE_SPE + | PPC_OPCODE_ISEL | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK + | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK + | PPC_OPCODE_RFMCI); + } else if (strcmp (arg, "spe") == 0) { if (ppc_cpu == 0) @@ -939,8 +940,8 @@ md_parse_option (c, arg) } else if (strcmp (arg, "ppc64bridge") == 0) { - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC - | PPC_OPCODE_64_BRIDGE | PPC_OPCODE_64; + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_64_BRIDGE | PPC_OPCODE_64); } /* -mbooke/-mbooke32 mean enable 32-bit BookE support. */ else if (strcmp (arg, "booke") == 0 || strcmp (arg, "booke32") == 0) @@ -950,13 +951,13 @@ md_parse_option (c, arg) /* -mbooke64 means enable 64-bit BookE support. */ else if (strcmp (arg, "booke64") == 0) { - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_BOOKE | - PPC_OPCODE_BOOKE64 | PPC_OPCODE_64; + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_BOOKE + | PPC_OPCODE_BOOKE64 | PPC_OPCODE_64); } else if (strcmp (arg, "power4") == 0) { - ppc_cpu = PPC_OPCODE_PPC| PPC_OPCODE_CLASSIC - | PPC_OPCODE_64 | PPC_OPCODE_POWER4; + ppc_cpu = (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC + | PPC_OPCODE_64 | PPC_OPCODE_POWER4); } /* -mcom means assemble for the common intersection between Power and PowerPC. At present, we just allow the union, rather @@ -968,10 +969,10 @@ md_parse_option (c, arg) ppc_cpu = PPC_OPCODE_ANY | PPC_OPCODE_32; else if (strcmp (arg, "regnames") == 0) - reg_names_p = true; + reg_names_p = TRUE; else if (strcmp (arg, "no-regnames") == 0) - reg_names_p = false; + reg_names_p = FALSE; #ifdef OBJ_ELF /* -mrelocatable/-mrelocatable-lib -- warn about initializations @@ -1008,13 +1009,13 @@ md_parse_option (c, arg) else if (strcmp (arg, "solaris") == 0) { - msolaris = true; + msolaris = TRUE; ppc_comment_chars = ppc_solaris_comment_chars; } else if (strcmp (arg, "no-solaris") == 0) { - msolaris = false; + msolaris = FALSE; ppc_comment_chars = ppc_eabi_comment_chars; } #endif @@ -1116,12 +1117,12 @@ ppc_set_cpu () else if (strcmp (default_cpu, "rs6000") == 0) ppc_cpu = PPC_OPCODE_POWER | PPC_OPCODE_32; else if (strncmp (default_cpu, "powerpc", 7) == 0) - { - if (default_cpu[7] == '6' && default_cpu[8] == '4') - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; - else - ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; - } + { + if (default_cpu[7] == '6' && default_cpu[8] == '4') + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64; + else + ppc_cpu = PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_32; + } else as_fatal (_("Unknown default cpu = %s, os = %s"), default_cpu, default_os); @@ -1197,7 +1198,7 @@ md_begin () const struct powerpc_opcode *op_end; const struct powerpc_macro *macro; const struct powerpc_macro *macro_end; - boolean dup_insn = false; + bfd_boolean dup_insn = FALSE; ppc_set_cpu (); @@ -1244,7 +1245,7 @@ md_begin () as_bad (_("Internal assembler error for instruction %s"), op->name); - dup_insn = true; + dup_insn = TRUE; } } } @@ -1263,7 +1264,7 @@ md_begin () if (retval != (const char *) NULL) { as_bad (_("Internal assembler error for macro %s"), macro->name); - dup_insn = true; + dup_insn = TRUE; } } } @@ -1329,7 +1330,7 @@ ppc_cleanup () apuinfo_secp = subseg_new (".PPC.EMB.apuinfo", 0); bfd_set_section_flags (stdoutput, apuinfo_secp, - SEC_HAS_CONTENTS | SEC_READONLY | SEC_MERGE); + SEC_HAS_CONTENTS | SEC_READONLY); p = frag_more (4); md_number_to_chars (p, (valueT) 8, 4); @@ -1345,8 +1346,8 @@ ppc_cleanup () for (i = 0; i < ppc_apuinfo_num; i++) { - p = frag_more (4); - md_number_to_chars (p, (valueT) ppc_apuinfo_list[i], 4); + p = frag_more (4); + md_number_to_chars (p, (valueT) ppc_apuinfo_list[i], 4); } frag_align (2, 0, 0); @@ -1968,7 +1969,7 @@ ppc_apuinfo_section_add (apu, version) for (i = 0; i < ppc_apuinfo_num; i++) if (ppc_apuinfo_list[i] == APUID (apu, version)) return; - + if (ppc_apuinfo_num == ppc_apuinfo_num_alloc) { if (ppc_apuinfo_num_alloc == 0) @@ -2272,9 +2273,9 @@ md_assemble (str) if (! register_name (&ex)) { if ((operand->flags & PPC_OPERAND_CR) != 0) - cr_operand = true; + cr_operand = TRUE; expression (&ex); - cr_operand = false; + cr_operand = FALSE; } } @@ -2491,19 +2492,19 @@ md_assemble (str) { /* These are all version "1". */ if (opcode->flags & PPC_OPCODE_SPE) - ppc_apuinfo_section_add (PPC_APUINFO_SPE, 1); + ppc_apuinfo_section_add (PPC_APUINFO_SPE, 1); if (opcode->flags & PPC_OPCODE_ISEL) - ppc_apuinfo_section_add (PPC_APUINFO_ISEL, 1); + ppc_apuinfo_section_add (PPC_APUINFO_ISEL, 1); if (opcode->flags & PPC_OPCODE_EFS) - ppc_apuinfo_section_add (PPC_APUINFO_EFS, 1); + ppc_apuinfo_section_add (PPC_APUINFO_EFS, 1); if (opcode->flags & PPC_OPCODE_BRLOCK) - ppc_apuinfo_section_add (PPC_APUINFO_BRLOCK, 1); + ppc_apuinfo_section_add (PPC_APUINFO_BRLOCK, 1); if (opcode->flags & PPC_OPCODE_PMR) - ppc_apuinfo_section_add (PPC_APUINFO_PMR, 1); + ppc_apuinfo_section_add (PPC_APUINFO_PMR, 1); if (opcode->flags & PPC_OPCODE_CACHELCK) - ppc_apuinfo_section_add (PPC_APUINFO_CACHELCK, 1); + ppc_apuinfo_section_add (PPC_APUINFO_CACHELCK, 1); if (opcode->flags & PPC_OPCODE_RFMCI) - ppc_apuinfo_section_add (PPC_APUINFO_RFMCI, 1); + ppc_apuinfo_section_add (PPC_APUINFO_RFMCI, 1); } #endif @@ -2759,7 +2760,7 @@ ppc_byte (ignore) /* This is set if we are creating a .stabx symbol, since we don't want to handle symbol suffixes for such symbols. */ -static boolean ppc_stab_symbol; +static bfd_boolean ppc_stab_symbol; /* The .comm and .lcomm pseudo-ops for XCOFF. XCOFF puts common symbols in the .bss segment as though they were local common @@ -3202,9 +3203,9 @@ ppc_stabx (ignore) } ++input_line_pointer; - ppc_stab_symbol = true; + ppc_stab_symbol = TRUE; sym = symbol_make (name); - ppc_stab_symbol = false; + ppc_stab_symbol = FALSE; symbol_get_tc (sym)->real_name = name; @@ -3933,11 +3934,11 @@ ppc_previous (ignore) /* pseudo-op: .pdata behaviour: predefined read only data section - double word aligned + double word aligned errors: None warnings: None initial: .section .pdata "adr3" - a - don't know -- maybe a misprint + a - don't know -- maybe a misprint d - initialized data r - readable 3 - double word aligned (that would be 4 byte boundary) @@ -3969,11 +3970,11 @@ ppc_pdata (ignore) /* pseudo-op: .ydata behaviour: predefined read only data section - double word aligned + double word aligned errors: None warnings: None initial: .section .ydata "drw3" - a - don't know -- maybe a misprint + a - don't know -- maybe a misprint d - initialized data r - readable 3 - double word aligned (that would be 4 byte boundary) @@ -4003,7 +4004,7 @@ ppc_ydata (ignore) /* pseudo-op: .reldata behaviour: predefined read write data section - double word aligned (4-byte) + double word aligned (4-byte) FIXME: relocation is applied to it FIXME: what's the difference between this and .data? errors: None @@ -4041,7 +4042,7 @@ ppc_reldata (ignore) /* pseudo-op: .rdata behaviour: predefined read only data section - double word aligned + double word aligned errors: None warnings: None initial: .section .rdata "dr3" @@ -4071,7 +4072,7 @@ ppc_rdata (ignore) /* pseudo-op: .ualong behaviour: much like .int, with the exception that no alignment is - performed. + performed. FIXME: test the alignment statement errors: None warnings: None */ @@ -4086,7 +4087,7 @@ ppc_ualong (ignore) /* pseudo-op: .znop behaviour: Issue a nop instruction - Issue a IMAGE_REL_PPC_IFGLUE relocation against it, using + Issue a IMAGE_REL_PPC_IFGLUE relocation against it, using the supplied symbol name. errors: None warnings: Missing symbol name */ @@ -4648,7 +4649,7 @@ ppc_frob_label (sym) seen. It tells ppc_adjust_symtab whether it needs to look through the symbols. */ -static boolean ppc_saw_abs; +static bfd_boolean ppc_saw_abs; /* Change the name of a symbol just before writing it out. Set the real name if the .rename pseudo-op was used. Otherwise, remove any @@ -4791,7 +4792,7 @@ ppc_frob_symbol (sym) { /* This is an absolute symbol. The csect will be created by ppc_adjust_symtab. */ - ppc_saw_abs = true; + ppc_saw_abs = TRUE; a->x_csect.x_smtyp = XTY_LD; if (symbol_get_tc (sym)->class == -1) symbol_get_tc (sym)->class = XMC_XO; @@ -4959,7 +4960,7 @@ ppc_adjust_symtab () coffsymbol (symbol_get_bfdsym (sym))->native[i].fix_scnlen = 1; } - ppc_saw_abs = false; + ppc_saw_abs = FALSE; } /* Set the VMA for a section. This is called on all the sections in diff -uprN binutils-2.13.90.0.16/gas/config/tc-s390.c binutils-2.13.90.0.18/gas/config/tc-s390.c --- binutils-2.13.90.0.16/gas/config/tc-s390.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/tc-s390.c Tue Jan 21 10:21:33 2003 @@ -41,15 +41,15 @@ static enum s390_opcode_arch_val current static int current_arch_mask = 1 << S390_OPCODE_ESA; static int current_arch_requested = 0; -/* Whether to use user friendly register names. Default is true. */ +/* Whether to use user friendly register names. Default is TRUE. */ #ifndef TARGET_REG_NAMES_P -#define TARGET_REG_NAMES_P true +#define TARGET_REG_NAMES_P TRUE #endif -static boolean reg_names_p = TARGET_REG_NAMES_P; +static bfd_boolean reg_names_p = TARGET_REG_NAMES_P; /* Set to TRUE if we want to warn about zero base/index registers. */ -static boolean warn_areg_zero = FALSE; +static bfd_boolean warn_areg_zero = FALSE; /* Generic assembler global variables which must be defined by all targets. */ @@ -204,7 +204,7 @@ static const struct pd_reg pre_defined_r static int reg_name_search PARAMS ((const struct pd_reg *, int, const char *)); -static boolean register_name PARAMS ((expressionS *)); +static bfd_boolean register_name PARAMS ((expressionS *)); static void init_default_arch PARAMS ((void)); static void s390_insert_operand PARAMS ((unsigned char *, const struct s390_operand *, offsetT, char *, @@ -256,7 +256,7 @@ reg_name_search (regs, regcount, name) * original state. */ -static boolean +static bfd_boolean register_name (expressionP) expressionS *expressionP; { @@ -270,7 +270,7 @@ register_name (expressionP) if (name[0] == '%' && ISALPHA (name[1])) name = ++input_line_pointer; else - return false; + return FALSE; c = get_symbol_end (); reg_number = reg_name_search (pre_defined_registers, REG_NAME_CNT, name); @@ -287,12 +287,12 @@ register_name (expressionP) /* Make the rest nice. */ expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } /* Local variables. */ @@ -366,10 +366,10 @@ md_parse_option (c, arg) break; case 'm': if (arg != NULL && strcmp (arg, "regnames") == 0) - reg_names_p = true; + reg_names_p = TRUE; else if (arg != NULL && strcmp (arg, "no-regnames") == 0) - reg_names_p = false; + reg_names_p = FALSE; else if (arg != NULL && strcmp (arg, "warn-areg-zero") == 0) warn_areg_zero = TRUE; @@ -440,7 +440,7 @@ md_begin () { register const struct s390_opcode *op; const struct s390_opcode *op_end; - boolean dup_insn = false; + bfd_boolean dup_insn = FALSE; const char *retval; /* Give a warning if the combination -m64-bit and -Aesa is used. */ @@ -462,7 +462,7 @@ md_begin () { as_bad (_("Internal assembler error for instruction format %s"), op->name); - dup_insn = true; + dup_insn = TRUE; } } @@ -476,7 +476,7 @@ md_begin () if (retval != (const char *) NULL) { as_bad (_("Internal assembler error for instruction %s"), op->name); - dup_insn = true; + dup_insn = TRUE; } } @@ -606,7 +606,10 @@ typedef enum ELF_SUFFIX_NONE = 0, ELF_SUFFIX_GOT, ELF_SUFFIX_PLT, - ELF_SUFFIX_GOTENT + ELF_SUFFIX_GOTENT, + ELF_SUFFIX_GOTOFF, + ELF_SUFFIX_GOTPLT, + ELF_SUFFIX_PLTOFF } elf_suffix_type; @@ -635,6 +638,9 @@ s390_elf_suffix (str_p, exp_p) { "got12", 5, ELF_SUFFIX_GOT }, { "plt", 3, ELF_SUFFIX_PLT }, { "gotent", 6, ELF_SUFFIX_GOTENT }, + { "gotoff", 6, ELF_SUFFIX_GOTOFF }, + { "gotplt", 6, ELF_SUFFIX_GOTPLT }, + { "pltoff", 6, ELF_SUFFIX_PLTOFF }, { NULL, 0, ELF_SUFFIX_NONE } }; @@ -956,10 +962,26 @@ s390_elf_cons (nbytes) reloc = BFD_RELOC_32_GOT_PCREL; else if (nbytes == 8 && suffix == ELF_SUFFIX_GOT) reloc = BFD_RELOC_390_GOT64; + else if (nbytes == 2 && suffix == ELF_SUFFIX_GOTOFF) + reloc = BFD_RELOC_16_GOTOFF; + else if (nbytes == 4 && suffix == ELF_SUFFIX_GOTOFF) + reloc = BFD_RELOC_32_GOTOFF; + else if (nbytes == 8 && suffix == ELF_SUFFIX_GOTOFF) + reloc = BFD_RELOC_390_GOTOFF64; + else if (nbytes == 2 && suffix == ELF_SUFFIX_PLTOFF) + reloc = BFD_RELOC_390_PLTOFF16; + else if (nbytes == 4 && suffix == ELF_SUFFIX_PLTOFF) + reloc = BFD_RELOC_390_PLTOFF32; + else if (nbytes == 8 && suffix == ELF_SUFFIX_PLTOFF) + reloc = BFD_RELOC_390_PLTOFF64; else if (nbytes == 4 && suffix == ELF_SUFFIX_PLT) reloc = BFD_RELOC_390_PLT32; else if (nbytes == 8 && suffix == ELF_SUFFIX_PLT) reloc = BFD_RELOC_390_PLT64; + else if (nbytes == 4 && suffix == ELF_SUFFIX_GOTPLT) + reloc = BFD_RELOC_390_GOTPLT32; + else if (nbytes == 8 && suffix == ELF_SUFFIX_GOTPLT) + reloc = BFD_RELOC_390_GOTPLT64; else reloc = BFD_RELOC_UNUSED; @@ -973,9 +995,9 @@ s390_elf_cons (nbytes) where = frag_more (nbytes); md_number_to_chars (where, 0, size); /* To make fixup_segment do the pc relative conversion the - pcrel parameter on the fix_new_exp call needs to be false. */ + pcrel parameter on the fix_new_exp call needs to be FALSE. */ fix_new_exp (frag_now, where - frag_now->fr_literal, - size, &exp, false, reloc); + size, &exp, FALSE, reloc); } else as_bad (_("relocation not applicable")); @@ -1080,11 +1102,11 @@ md_gather_operands (str, insn, opcode) { if ((operand->flags & S390_OPERAND_INDEX) && ex.X_add_number == 0 - && warn_areg_zero == TRUE) + && warn_areg_zero) as_warn ("index register specified but zero"); if ((operand->flags & S390_OPERAND_BASE) && ex.X_add_number == 0 - && warn_areg_zero == TRUE) + && warn_areg_zero) as_warn ("base register specified but zero"); s390_insert_operand (insn, operand, ex.X_add_number, NULL, 0); } @@ -1121,6 +1143,30 @@ md_gather_operands (str, insn, opcode) && (operand->bits == 32)) reloc = BFD_RELOC_390_GOTENT; } + else if (suffix == ELF_SUFFIX_GOTOFF) + { + if ((operand->flags & S390_OPERAND_SIGNED) + && (operand->bits == 16)) + reloc = BFD_RELOC_16_GOTOFF; + } + else if (suffix == ELF_SUFFIX_PLTOFF) + { + if ((operand->flags & S390_OPERAND_SIGNED) + && (operand->bits == 16)) + reloc = BFD_RELOC_390_PLTOFF16; + } + else if (suffix == ELF_SUFFIX_GOTPLT) + { + if ((operand->flags & S390_OPERAND_DISP) + && (operand->bits == 12)) + reloc = BFD_RELOC_390_GOTPLT12; + else if ((operand->flags & S390_OPERAND_SIGNED) + && (operand->bits == 16)) + reloc = BFD_RELOC_390_GOTPLT16; + else if ((operand->flags & S390_OPERAND_PCREL) + && (operand->bits == 32)) + reloc = BFD_RELOC_390_GOTPLTENT; + } if (suffix != ELF_SUFFIX_NONE && reloc == BFD_RELOC_UNUSED) as_bad (_("invalid operand suffix")); @@ -1633,7 +1679,12 @@ tc_s390_fix_adjustable (fixP) if ((S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0) return 0; /* adjust_reloc_syms doesn't know about the GOT. */ - if ( fixP->fx_r_type == BFD_RELOC_32_GOTOFF + if ( fixP->fx_r_type == BFD_RELOC_16_GOTOFF + || fixP->fx_r_type == BFD_RELOC_32_GOTOFF + || fixP->fx_r_type == BFD_RELOC_390_GOTOFF64 + || fixP->fx_r_type == BFD_RELOC_390_PLTOFF16 + || fixP->fx_r_type == BFD_RELOC_390_PLTOFF32 + || fixP->fx_r_type == BFD_RELOC_390_PLTOFF64 || fixP->fx_r_type == BFD_RELOC_390_PLT16DBL || fixP->fx_r_type == BFD_RELOC_390_PLT32 || fixP->fx_r_type == BFD_RELOC_390_PLT32DBL @@ -1643,6 +1694,11 @@ tc_s390_fix_adjustable (fixP) || fixP->fx_r_type == BFD_RELOC_32_GOT_PCREL || fixP->fx_r_type == BFD_RELOC_390_GOT64 || fixP->fx_r_type == BFD_RELOC_390_GOTENT + || fixP->fx_r_type == BFD_RELOC_390_GOTPLT12 + || fixP->fx_r_type == BFD_RELOC_390_GOTPLT16 + || fixP->fx_r_type == BFD_RELOC_390_GOTPLT32 + || fixP->fx_r_type == BFD_RELOC_390_GOTPLT64 + || fixP->fx_r_type == BFD_RELOC_390_GOTPLTENT || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return 0; @@ -1650,7 +1706,7 @@ tc_s390_fix_adjustable (fixP) } /* Return true if we must always emit a reloc for a type and false if - there is some hope of resolving it a assembly time. */ + there is some hope of resolving it at assembly time. */ int tc_s390_force_relocation (fixp) struct fix *fixp; @@ -1662,6 +1718,10 @@ tc_s390_force_relocation (fixp) case BFD_RELOC_390_GOT12: case BFD_RELOC_32_GOT_PCREL: case BFD_RELOC_32_GOTOFF: + case BFD_RELOC_390_GOTOFF64: + case BFD_RELOC_390_PLTOFF16: + case BFD_RELOC_390_PLTOFF32: + case BFD_RELOC_390_PLTOFF64: case BFD_RELOC_390_GOTPC: case BFD_RELOC_390_GOT16: case BFD_RELOC_390_GOTPCDBL: @@ -1671,6 +1731,11 @@ tc_s390_force_relocation (fixp) case BFD_RELOC_390_PLT16DBL: case BFD_RELOC_390_PLT32DBL: case BFD_RELOC_390_PLT64: + case BFD_RELOC_390_GOTPLT12: + case BFD_RELOC_390_GOTPLT16: + case BFD_RELOC_390_GOTPLT32: + case BFD_RELOC_390_GOTPLT64: + case BFD_RELOC_390_GOTPLTENT: case BFD_RELOC_VTABLE_INHERIT: case BFD_RELOC_VTABLE_ENTRY: return 1; @@ -1702,7 +1767,10 @@ md_apply_fix3 (fixP, valP, seg) where = fixP->fx_frag->fr_literal + fixP->fx_where; if (fixP->fx_subsy != NULL) - abort (); + as_bad_where (fixP->fx_file, fixP->fx_line, + "cannot emit relocation %s against subsy symbol %s", + bfd_get_reloc_code_name (fixP->fx_r_type), + S_GET_NAME (fixP->fx_subsy)); if (fixP->fx_addsy != NULL) { @@ -1799,6 +1867,7 @@ md_apply_fix3 (fixP, valP, seg) break; case BFD_RELOC_390_12: case BFD_RELOC_390_GOT12: + case BFD_RELOC_390_GOTPLT12: if (fixP->fx_done) { unsigned short mop; @@ -1825,6 +1894,8 @@ md_apply_fix3 (fixP, valP, seg) md_number_to_chars (where, value, 2); break; case BFD_RELOC_390_GOT16: + case BFD_RELOC_390_PLTOFF16: + case BFD_RELOC_390_GOTPLT16: if (fixP->fx_done) md_number_to_chars (where, value, 2); break; @@ -1850,7 +1921,9 @@ md_apply_fix3 (fixP, valP, seg) md_number_to_chars (where, value, 4); break; case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_390_PLTOFF32: case BFD_RELOC_390_PLT32: + case BFD_RELOC_390_GOTPLT32: if (fixP->fx_done) md_number_to_chars (where, value, 4); break; @@ -1858,6 +1931,7 @@ md_apply_fix3 (fixP, valP, seg) case BFD_RELOC_390_PLT32DBL: case BFD_RELOC_390_GOTPCDBL: case BFD_RELOC_390_GOTENT: + case BFD_RELOC_390_GOTPLTENT: value += 2; if (fixP->fx_done) md_number_to_chars (where, (offsetT) value >> 1, 4); @@ -1868,8 +1942,15 @@ md_apply_fix3 (fixP, valP, seg) md_number_to_chars (where, value, sizeof (int)); break; + case BFD_RELOC_390_GOTOFF64: + if (fixP->fx_done) + md_number_to_chars (where, value, 8); + break; + case BFD_RELOC_390_GOT64: + case BFD_RELOC_390_PLTOFF64: case BFD_RELOC_390_PLT64: + case BFD_RELOC_390_GOTPLT64: if (fixP->fx_done) md_number_to_chars (where, value, 8); break; diff -uprN binutils-2.13.90.0.16/gas/config/tc-sh.c binutils-2.13.90.0.18/gas/config/tc-sh.c --- binutils-2.13.90.0.16/gas/config/tc-sh.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/config/tc-sh.c Mon Dec 16 12:22:53 2002 @@ -71,7 +71,7 @@ static void build_relax PARAMS ((sh_opco static char *insert_loop_bounds PARAMS ((char *, sh_operand_info *)); static unsigned int build_Mytes PARAMS ((sh_opcode_info *, sh_operand_info *)); -static boolean sh_local_pcrel PARAMS ((fixS *fix)); +static bfd_boolean sh_local_pcrel PARAMS ((fixS *fix)); #ifdef OBJ_ELF static void sh_elf_cons PARAMS ((int)); @@ -826,7 +826,7 @@ sh_elf_cons (nbytes) #ifdef HAVE_SH64 /* Update existing range to include a previous insn, if there was one. */ - sh64_update_contents_mark (true); + sh64_update_contents_mark (TRUE); /* We need to make sure the contents type is set to data. */ sh64_flag_output (); @@ -2348,13 +2348,13 @@ md_assemble (str) { /* If we've seen pseudo-directives, make sure any emitted data or frags are marked as data. */ - if (seen_insn == false) + if (!seen_insn) { - sh64_update_contents_mark (true); + sh64_update_contents_mark (TRUE); sh64_set_contents_type (CRT_SH5_ISA16); } - seen_insn = true; + seen_insn = TRUE; } #endif /* HAVE_SH64 */ @@ -2685,19 +2685,19 @@ md_parse_option (c, arg) break; case OPTION_NO_MIX: - sh64_mix = false; + sh64_mix = FALSE; break; case OPTION_SHCOMPACT_CONST_CRANGE: - sh64_shcompact_const_crange = true; + sh64_shcompact_const_crange = TRUE; break; case OPTION_NO_EXPAND: - sh64_expand = false; + sh64_expand = FALSE; break; case OPTION_PT32: - sh64_pt32 = true; + sh64_pt32 = TRUE; break; #endif /* HAVE_SH64 */ @@ -3062,7 +3062,7 @@ md_convert_frag (headers, seg, fragP) default: #ifdef HAVE_SH64 - shmedia_md_convert_frag (headers, seg, fragP, true); + shmedia_md_convert_frag (headers, seg, fragP, TRUE); #else abort (); #endif @@ -3208,18 +3208,18 @@ sh_handle_align (frag) /* See whether the relocation should be resolved locally. */ -static boolean +static bfd_boolean sh_local_pcrel (fix) fixS *fix; { - return (! sh_relax && - (fix->fx_r_type == BFD_RELOC_SH_PCDISP8BY2 - || fix->fx_r_type == BFD_RELOC_SH_PCDISP12BY2 - || fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY2 - || fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY4 - || fix->fx_r_type == BFD_RELOC_8_PCREL - || fix->fx_r_type == BFD_RELOC_SH_SWITCH16 - || fix->fx_r_type == BFD_RELOC_SH_SWITCH32)); + return (! sh_relax + && (fix->fx_r_type == BFD_RELOC_SH_PCDISP8BY2 + || fix->fx_r_type == BFD_RELOC_SH_PCDISP12BY2 + || fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY2 + || fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY4 + || fix->fx_r_type == BFD_RELOC_8_PCREL + || fix->fx_r_type == BFD_RELOC_SH_SWITCH16 + || fix->fx_r_type == BFD_RELOC_SH_SWITCH32)); } /* See whether we need to force a relocation into the output file. @@ -3264,7 +3264,7 @@ sh_force_relocation (fix) } #ifdef OBJ_ELF -boolean +bfd_boolean sh_fix_adjustable (fixP) fixS *fixP; { @@ -3516,7 +3516,7 @@ md_apply_fix3 (fixP, valP, seg) /* Make the jump instruction point to the address of the operand. At runtime we merely add the offset to the actual PLT entry. */ * valP = 0xfffffffc; - val = 0; + val = fixP->fx_offset; if (fixP->fx_subsy) val -= S_GET_VALUE (fixP->fx_subsy); fixP->fx_addnumber = val; @@ -3544,18 +3544,22 @@ md_apply_fix3 (fixP, valP, seg) md_number_to_chars (buf, val, 4); break; - case BFD_RELOC_32_GOT_PCREL: - case BFD_RELOC_SH_GOTPLT32: case BFD_RELOC_SH_TLS_GD_32: case BFD_RELOC_SH_TLS_LD_32: case BFD_RELOC_SH_TLS_IE_32: + S_SET_THREAD_LOCAL (fixP->fx_addsy); + /* Fallthrough */ + case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_SH_GOTPLT32: * valP = 0; /* Fully resolved at runtime. No addend. */ md_number_to_chars (buf, 0, 4); break; - case BFD_RELOC_32_GOTOFF: case BFD_RELOC_SH_TLS_LDO_32: case BFD_RELOC_SH_TLS_LE_32: + S_SET_THREAD_LOCAL (fixP->fx_addsy); + /* Fallthrough */ + case BFD_RELOC_32_GOTOFF: md_number_to_chars (buf, val, 4); break; #endif diff -uprN binutils-2.13.90.0.16/gas/config/tc-sh.h binutils-2.13.90.0.18/gas/config/tc-sh.h --- binutils-2.13.90.0.16/gas/config/tc-sh.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-sh.h Tue Jan 21 10:21:33 2003 @@ -138,7 +138,7 @@ extern void sh_frob_file PARAMS ((void)) #define DO_NOT_STRIP 0 -/* This macro translates between an internal fix and an coff reloc type */ +/* This macro translates between an internal fix and a coff reloc type. */ #define TC_COFF_FIX2RTYPE(fix) ((fix)->fx_r_type) #define BFD_ARCH TARGET_ARCH @@ -211,7 +211,7 @@ extern void sh_elf_final_processing PARA #define TC_RELOC_GLOBAL_OFFSET_TABLE BFD_RELOC_SH_GOTPC #define tc_fix_adjustable(FIX) sh_fix_adjustable(FIX) -extern boolean sh_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean sh_fix_adjustable PARAMS ((struct fix *)); /* Values passed to md_apply_fix3 don't include symbol values. */ #define MD_APPLY_SYM_VALUE(FIX) 0 diff -uprN binutils-2.13.90.0.16/gas/config/tc-sh64.c binutils-2.13.90.0.18/gas/config/tc-sh64.c --- binutils-2.13.90.0.16/gas/config/tc-sh64.c Wed Oct 9 21:09:41 2002 +++ binutils-2.13.90.0.18/gas/config/tc-sh64.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* tc-sh64.c -- Assemble code for the Hitachi Super-H SHcompact and SHmedia. - Copyright (C) 2000, 2001, 2002 Free Software Foundation. + Copyright 2000, 2001, 2002 Free Software Foundation. This file is part of GAS, the GNU Assembler. @@ -87,36 +87,36 @@ static enum sh64_abi_values sh64_abi = s /* A note that says if we're in a sequence of insns without label settings, segment or ISA mode changes or emitted data. */ -static boolean seen_insn = false; +static bfd_boolean seen_insn = FALSE; -/* This is set to true in shmedia_md_end, so that we don't emit any +/* This is set to TRUE in shmedia_md_end, so that we don't emit any .cranges entries when the assembler calls output functions while grinding along after all input is seen. */ -static boolean sh64_end_of_assembly = false; +static bfd_boolean sh64_end_of_assembly = FALSE; /* Controlled by the option -no-mix, this invalidates mixing SHcompact and SHmedia code in the same section, and also invalidates mixing data and SHmedia code in the same section. No .cranges will therefore be emitted, unless -shcompact-const-crange is specified and there is a constant pool in SHcompact code. */ -static boolean sh64_mix = true; +static bfd_boolean sh64_mix = TRUE; -static boolean sh64_shcompact_const_crange = false; +static bfd_boolean sh64_shcompact_const_crange = FALSE; /* Controlled by the option -no-expand, this says whether or not we expand MOVI and PT/PTA/PTB. When we do not expand these insns to fit an operand, we will emit errors for operands out of range and generate the basic instruction and reloc for an external symbol. */ -static boolean sh64_expand = true; +static bfd_boolean sh64_expand = TRUE; /* Controlled by the option -expand-pt32, this says whether we expand PT/PTA/PTB of an external symbol to (only) 32 or (the full) 64 bits when -abi=64 is in effect. */ -static boolean sh64_pt32 = false; +static bfd_boolean sh64_pt32 = FALSE; /* When emitting a .cranges descriptor, we want to avoid getting recursive calls through emit_expr. */ -static boolean emitting_crange = false; +static bfd_boolean emitting_crange = FALSE; /* SHmedia mnemonics. */ static struct hash_control *shmedia_opcode_hash_control = NULL; @@ -133,32 +133,58 @@ static const unsigned char shmedia_littl (SHMEDIA_NOP_OPC >> 16) & 255, (SHMEDIA_NOP_OPC >> 24) & 255 }; -static void shmedia_md_begin PARAMS ((void)); -static int shmedia_parse_reg PARAMS ((char *, int *, int *, shmedia_arg_type)); -static void shmedia_md_assemble PARAMS ((char *)); -static void shmedia_md_apply_fix3 PARAMS ((fixS *, valueT *)); -static int shmedia_md_estimate_size_before_relax PARAMS ((fragS *, segT)); -static int shmedia_init_reloc PARAMS ((arelent *, fixS *)); -static char *shmedia_get_operands PARAMS ((shmedia_opcode_info *, char *, shmedia_operands_info *)); -static void s_sh64_mode PARAMS ((int)); -static void s_sh64_abi PARAMS ((int)); -static void shmedia_md_convert_frag PARAMS ((bfd *, segT, fragS *, boolean)); -static void shmedia_check_limits PARAMS ((offsetT *, bfd_reloc_code_real_type, fixS *)); -static void sh64_set_contents_type PARAMS ((enum sh64_elf_cr_type)); -static void shmedia_get_operand PARAMS ((char **, shmedia_operand_info *, shmedia_arg_type)); -static unsigned long shmedia_immediate_op PARAMS ((char *, shmedia_operand_info *, int, bfd_reloc_code_real_type)); -static char *shmedia_parse_exp PARAMS ((char *, shmedia_operand_info *)); -static void shmedia_frob_file_before_adjust PARAMS ((void)); -static void sh64_emit_crange PARAMS ((symbolS *, symbolS *, enum sh64_elf_cr_type)); -static void sh64_flush_last_crange PARAMS ((bfd *, asection *, PTR)); -static void sh64_flag_output PARAMS ((void)); -static void sh64_update_contents_mark PARAMS ((boolean)); -static void sh64_vtable_entry PARAMS ((int)); -static void sh64_vtable_inherit PARAMS ((int)); -static char * strip_datalabels PARAMS ((void)); -static int shmedia_build_Mytes PARAMS ((shmedia_opcode_info *, shmedia_operands_info *)); -static shmedia_opcode_info * shmedia_find_cooked_opcode PARAMS ((char **)); -static unsigned long shmedia_mask_number PARAMS ((unsigned long, bfd_reloc_code_real_type)); +static void shmedia_md_begin + PARAMS ((void)); +static int shmedia_parse_reg + PARAMS ((char *, int *, int *, shmedia_arg_type)); +static void shmedia_md_assemble + PARAMS ((char *)); +static void shmedia_md_apply_fix3 + PARAMS ((fixS *, valueT *)); +static int shmedia_md_estimate_size_before_relax + PARAMS ((fragS *, segT)); +static int shmedia_init_reloc + PARAMS ((arelent *, fixS *)); +static char *shmedia_get_operands + PARAMS ((shmedia_opcode_info *, char *, shmedia_operands_info *)); +static void s_sh64_mode + PARAMS ((int)); +static void s_sh64_abi + PARAMS ((int)); +static void shmedia_md_convert_frag + PARAMS ((bfd *, segT, fragS *, bfd_boolean)); +static void shmedia_check_limits + PARAMS ((offsetT *, bfd_reloc_code_real_type, fixS *)); +static void sh64_set_contents_type + PARAMS ((enum sh64_elf_cr_type)); +static void shmedia_get_operand + PARAMS ((char **, shmedia_operand_info *, shmedia_arg_type)); +static unsigned long shmedia_immediate_op + PARAMS ((char *, shmedia_operand_info *, int, bfd_reloc_code_real_type)); +static char *shmedia_parse_exp + PARAMS ((char *, shmedia_operand_info *)); +static void shmedia_frob_file_before_adjust + PARAMS ((void)); +static void sh64_emit_crange + PARAMS ((symbolS *, symbolS *, enum sh64_elf_cr_type)); +static void sh64_flush_last_crange + PARAMS ((bfd *, asection *, PTR)); +static void sh64_flag_output + PARAMS ((void)); +static void sh64_update_contents_mark + PARAMS ((bfd_boolean)); +static void sh64_vtable_entry + PARAMS ((int)); +static void sh64_vtable_inherit + PARAMS ((int)); +static char * strip_datalabels + PARAMS ((void)); +static int shmedia_build_Mytes + PARAMS ((shmedia_opcode_info *, shmedia_operands_info *)); +static shmedia_opcode_info * shmedia_find_cooked_opcode + PARAMS ((char **)); +static unsigned long shmedia_mask_number + PARAMS ((unsigned long, bfd_reloc_code_real_type)); #include "tc-sh.c" @@ -169,7 +195,7 @@ shmedia_md_end () /* First, update the last range to include whatever data was last emitted. */ - sh64_update_contents_mark (true); + sh64_update_contents_mark (TRUE); /* Make sure frags generated after this point are not marked with the wrong ISA; make them easily spottable. We still want to distinguish @@ -178,7 +204,7 @@ shmedia_md_end () if (sh64_isa_mode != sh64_isa_unspecified) sh64_isa_mode = sh64_isa_sh5_guard; - sh64_end_of_assembly = true; + sh64_end_of_assembly = TRUE; bfd_map_over_sections (stdoutput, sh64_flush_last_crange, NULL); @@ -315,7 +341,7 @@ sh64_do_align (n, fill, len, max) int max; { /* Update region, or put a data region in front. */ - sh64_update_contents_mark (true); + sh64_update_contents_mark (TRUE); /* Only make a frag if we HAVE to... */ if (n != 0 && !need_pass_2) @@ -334,7 +360,7 @@ sh64_do_align (n, fill, len, max) } /* Update mark for current region with current type. */ - sh64_update_contents_mark (false); + sh64_update_contents_mark (FALSE); } /* The MAX_MEM_FOR_RS_ALIGN_CODE worker. We have to find out the ISA of @@ -801,7 +827,7 @@ shmedia_md_convert_frag (output_bfd, seg bfd *output_bfd ATTRIBUTE_UNUSED; segT seg ATTRIBUTE_UNUSED; fragS *fragP; - boolean final; + bfd_boolean final; { /* Pointer to first byte in variable-sized part of the frag. */ char *var_partp; @@ -819,7 +845,7 @@ shmedia_md_convert_frag (output_bfd, seg and offsets to varying parts. */ symbolS *symbolP = fragP->fr_symbol; - boolean reloc_needed + bfd_boolean reloc_needed = (! final || sh_relax || symbolP == NULL @@ -1915,7 +1941,7 @@ shmedia_md_estimate_size_before_relax (f expressionS *exp; /* For ELF, we can't relax externally visible symbols; see tc-i386.c. */ - boolean sym_relaxable + bfd_boolean sym_relaxable = (fragP->fr_symbol && S_GET_SEGMENT (fragP->fr_symbol) == segment_type && ! S_IS_EXTERNAL (fragP->fr_symbol) @@ -2153,7 +2179,7 @@ shmedia_md_estimate_size_before_relax (f /* MOVI expansions that get here have not been converted to PC-relative frags, but instead expanded by md_number_to_chars or by calling shmedia_md_convert_frag - with final == false. We must not have them around as + with final == FALSE. We must not have them around as frags anymore; symbols would be prematurely evaluated when relaxing. We will not need to have md_convert_frag called again with them; any further handling is through @@ -2814,11 +2840,11 @@ shmedia_md_assemble (str) /* Start a SHmedia code region, if there has been pseudoinsns or similar seen since the last one. */ - if (seen_insn == false) + if (!seen_insn) { - sh64_update_contents_mark (true); + sh64_update_contents_mark (TRUE); sh64_set_contents_type (CRT_SH5_ISA32); - seen_insn = true; + seen_insn = TRUE; } op_end = shmedia_get_operands (opcode, op_end, &operands); @@ -2867,7 +2893,7 @@ s_sh64_mode (ignore) /* Make sure data up to this location is handled according to the previous ISA. */ - sh64_update_contents_mark (true); + sh64_update_contents_mark (TRUE); while (!is_end_of_line[(unsigned char) *input_line_pointer]) input_line_pointer++; @@ -2893,7 +2919,7 @@ s_sh64_mode (ignore) /* Contents type up to this new point is the same as before; don't add a data region just because the new frag we created. */ - sh64_update_contents_mark (false); + sh64_update_contents_mark (FALSE); *input_line_pointer = ch; demand_empty_rest_of_line (); @@ -3157,7 +3183,7 @@ sh64_set_contents_type (new_contents_typ /* We will not be called when emitting .cranges output, since callers stop that. Validize that assumption. */ - know (emitting_crange == false); + know (!emitting_crange); seginfo = seg_info (now_seg); @@ -3223,10 +3249,10 @@ sh64_set_contents_type (new_contents_typ as_bad ( _("SHmedia code not allowed in same section as constants and SHcompact code")); - emitting_crange = true; + emitting_crange = TRUE; sh64_emit_crange (seginfo->tc_segment_info_data.mode_start_symbol, symp, contents_type); - emitting_crange = false; + emitting_crange = FALSE; seginfo->tc_segment_info_data.emitted_ranges++; } @@ -3387,7 +3413,7 @@ sh64_exclude_symbol (symp) static void sh64_update_contents_mark (update_type) - boolean update_type; + bfd_boolean update_type; { segment_info_type *seginfo; seginfo = seg_info (now_seg); @@ -3433,7 +3459,7 @@ sh64_update_contents_mark (update_type) } } - seen_insn = false; + seen_insn = FALSE; } /* Called when the assembler is about to output some data, or maybe it's @@ -3442,7 +3468,7 @@ sh64_update_contents_mark (update_type) void sh64_flush_pending_output () { - sh64_update_contents_mark (true); + sh64_update_contents_mark (TRUE); sh_flush_pending_output (); } @@ -3494,9 +3520,9 @@ static void sh64_flag_output () { if (sh64_isa_mode != sh64_isa_unspecified - && seen_insn == false - && sh64_end_of_assembly == false - && ! emitting_crange) + && !seen_insn + && !sh64_end_of_assembly + && !emitting_crange) { md_flush_pending_output (); sh64_set_contents_type (CRT_DATA); diff -uprN binutils-2.13.90.0.16/gas/config/tc-sparc.c binutils-2.13.90.0.18/gas/config/tc-sparc.c --- binutils-2.13.90.0.16/gas/config/tc-sparc.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-sparc.c Mon Dec 16 12:22:53 2002 @@ -138,7 +138,9 @@ static void s_common PARAMS ((int)); static void s_empty PARAMS ((int)); static void s_uacons PARAMS ((int)); static void s_ncons PARAMS ((int)); +#ifdef OBJ_ELF static void s_register PARAMS ((int)); +#endif const pseudo_typeS md_pseudo_table[] = { @@ -2891,7 +2893,7 @@ void md_apply_fix3 (fixP, valP, segment) fixS *fixP; valueT *valP; - segT segment; + segT segment ATTRIBUTE_UNUSED; { char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; offsetT val = * (offsetT *) valP; @@ -3246,7 +3248,7 @@ md_apply_fix3 (fixP, valP, segment) arelent ** tc_gen_reloc (section, fixp) - asection *section; + asection *section ATTRIBUTE_UNUSED; fixS *fixp; { static arelent *relocs[3]; diff -uprN binutils-2.13.90.0.16/gas/config/tc-tic30.c binutils-2.13.90.0.18/gas/config/tc-tic30.c --- binutils-2.13.90.0.16/gas/config/tc-tic30.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-tic30.c Mon Dec 16 12:22:53 2002 @@ -27,6 +27,11 @@ #include "as.h" #include "safe-ctype.h" #include "opcode/tic30.h" +#ifdef ANSI_PROTOTYPES +#include +#else +#include +#endif /* Put here all non-digit non-letter charcters that may occur in an operand. */ @@ -77,53 +82,27 @@ const pseudo_typeS md_pseudo_table[] = { {0, 0, 0} }; -#ifdef USE_STDARG - -#include +int debug PARAMS ((const char *string, ...)); int -debug (const char *string, ...) +debug VPARAMS ((const char *string, ...)) { if (flag_debug) { - va_list argptr; char str[100]; - va_start (argptr, string); + VA_OPEN (argptr, string); + VA_FIXEDARG (argptr, const char *, string); vsprintf (str, string, argptr); + VA_CLOSE (argptr); if (str[0] == '\0') return (0); - va_end (argptr); fputs (str, USE_STDOUT ? stdout : stderr); return strlen (str); } else return 0; } -#else -int -debug (string, va_alist) - const char *string; - va_dcl -{ - if (flag_debug) - { - va_list argptr; - char str[100]; - int cnt; - - va_start (argptr, string); - cnt = vsprintf (str, string, argptr); - if (str[0] == NULL) - return (0); - va_end (argptr); - fputs (str, USE_STDOUT ? stdout : stderr); - return (cnt); - } - else - return 0; -} -#endif /* hash table for opcode lookup */ static struct hash_control *op_hash; @@ -263,7 +242,7 @@ template *opcode; struct tic30_insn { template *tm; /* Template of current instruction */ unsigned opcode; /* Final opcode */ - int operands; /* Number of given operands */ + unsigned int operands; /* Number of given operands */ /* Type of operand given in instruction */ operand *operand_type[MAX_OPERANDS]; unsigned addressing_mode; /* Final addressing mode of instruction */ @@ -280,7 +259,7 @@ md_assemble (line) char *current_posn; char *token_start; char save_char; - int count; + unsigned int count; debug ("In md_assemble() with argument %s\n", line); memset (&insn, '\0', sizeof (insn)); @@ -426,8 +405,8 @@ md_assemble (line) /* Check that number of operands is correct */ if (insn.operands != insn.tm->operands) { - int i; - int numops = insn.tm->operands; + unsigned int i; + unsigned int numops = insn.tm->operands; /* If operands are not the same, then see if any of the operands are not required. Then recheck with number of given operands. If they are still not the same, then give an error, otherwise carry on. */ @@ -787,7 +766,7 @@ md_assemble (line) } debug ("Addressing mode: %08X\n", insn.addressing_mode); { - int i; + unsigned int i; for (i = 0; i < insn.operands; i++) { if (insn.operand_type[i]->immediate.label) @@ -801,7 +780,7 @@ md_assemble (line) struct tic30_par_insn { partemplate *tm; /* Template of current parallel instruction */ - int operands[2]; /* Number of given operands for each insn */ + unsigned operands[2]; /* Number of given operands for each insn */ /* Type of operand given in instruction */ operand *operand_type[2][MAX_OPERANDS]; int swap_operands; /* Whether to swap operands around. */ @@ -838,7 +817,7 @@ tic30_parallel_insn (char *token) {0}; char second_opcode[6] = {0}; - int i; + unsigned int i; int current_opcode = -1; int char_ptr = 0; @@ -1012,7 +991,7 @@ tic30_parallel_insn (char *token) int num_ind = 0; for (count = 0; count < 2; count++) { - int i; + unsigned int i; for (i = 0; i < p_insn.operands[count]; i++) { if ((p_insn.operand_type[count][i]->op_type & @@ -1193,7 +1172,7 @@ tic30_parallel_insn (char *token) md_number_to_chars (p, (valueT) p_insn.opcode, INSN_SIZE); } { - int i, j; + unsigned int i, j; for (i = 0; i < 2; i++) for (j = 0; j < p_insn.operands[i]; j++) free (p_insn.operand_type[i][j]); @@ -1207,7 +1186,7 @@ operand * tic30_operand (token) char *token; { - int count; + unsigned int count; char ind_buffer[strlen (token)]; operand *current_op; @@ -1411,7 +1390,7 @@ tic30_operand (token) current_op->immediate.resolved = 1; } current_op->op_type = Disp | Abs24 | Imm16 | Imm24; - if (current_op->immediate.u_number >= 0 && current_op->immediate.u_number <= 31) + if (current_op->immediate.u_number <= 31) current_op->op_type |= IVector; } } @@ -1540,8 +1519,8 @@ tic30_unrecognized_line (c) int md_estimate_size_before_relax (fragP, segment) - fragS *fragP; - segT segment; + fragS *fragP ATTRIBUTE_UNUSED; + segT segment ATTRIBUTE_UNUSED; { debug ("In md_estimate_size_before_relax()\n"); return 0; @@ -1549,9 +1528,9 @@ md_estimate_size_before_relax (fragP, se void md_convert_frag (abfd, sec, fragP) - bfd *abfd; - segT sec; - register fragS *fragP; + bfd *abfd ATTRIBUTE_UNUSED; + segT sec ATTRIBUTE_UNUSED; + register fragS *fragP ATTRIBUTE_UNUSED; { debug ("In md_convert_frag()\n"); } @@ -1588,8 +1567,8 @@ md_apply_fix3 (fixP, valP, seg) int md_parse_option (c, arg) - int c; - char *arg; + int c ATTRIBUTE_UNUSED; + char *arg ATTRIBUTE_UNUSED; { debug ("In md_parse_option()\n"); return 0; @@ -1597,14 +1576,14 @@ md_parse_option (c, arg) void md_show_usage (stream) - FILE *stream; + FILE *stream ATTRIBUTE_UNUSED; { debug ("In md_show_usage()\n"); } symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { debug ("In md_undefined_symbol()\n"); return (symbolS *) 0; @@ -1800,7 +1779,7 @@ md_number_to_chars (buf, val, n) arelent * tc_gen_reloc (section, fixP) - asection *section; + asection *section ATTRIBUTE_UNUSED; fixS *fixP; { arelent *rel; @@ -1843,14 +1822,8 @@ tc_gen_reloc (section, fixP) } void -tc_aout_pre_write_hook () -{ - debug ("In tc_aout_pre_write_hook()\n"); -} - -void md_operand (expressionP) - expressionS *expressionP; + expressionS *expressionP ATTRIBUTE_UNUSED; { debug ("In md_operand()\n"); } diff -uprN binutils-2.13.90.0.16/gas/config/tc-tic30.h binutils-2.13.90.0.18/gas/config/tc-tic30.h --- binutils-2.13.90.0.16/gas/config/tc-tic30.h Fri Mar 9 11:17:09 2001 +++ binutils-2.13.90.0.18/gas/config/tc-tic30.h Mon Dec 16 12:22:53 2002 @@ -52,4 +52,6 @@ char *output_invalid PARAMS ((int c)); extern int tic30_unrecognized_line PARAMS ((int)); +#define tc_aout_pre_write_hook {} + #endif diff -uprN binutils-2.13.90.0.16/gas/config/tc-tic54x.c binutils-2.13.90.0.18/gas/config/tc-tic54x.c --- binutils-2.13.90.0.16/gas/config/tc-tic54x.c Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/gas/config/tc-tic54x.c Tue Jan 21 10:21:33 2003 @@ -4144,7 +4144,7 @@ encode_operand (insn, type, operand) } return 1; case OP_RND: - /* Make sure this agrees with with the OP_DST operand. */ + /* Make sure this agrees with the OP_DST operand. */ if (!((TOUPPER (operand->buf[0]) == 'B') ^ ((insn->opcode[0].word & (1 << 8)) != 0))) { @@ -4354,7 +4354,7 @@ emit_insn (insn) if (insn->opcode[i].unresolved) fix_new_exp (frag_now, p - frag_now->fr_literal, insn->opcode[i].r_nchars, &insn->opcode[i].addr_expr, - false, insn->opcode[i].r_type); + FALSE, insn->opcode[i].r_type); } } diff -uprN binutils-2.13.90.0.16/gas/config/tc-tic80.c binutils-2.13.90.0.18/gas/config/tc-tic80.c --- binutils-2.13.90.0.16/gas/config/tc-tic80.c Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.18/gas/config/tc-tic80.c Mon Dec 16 12:22:53 2002 @@ -26,7 +26,7 @@ as_fatal (_("internal error:%s:%d: %s\n"), __FILE__, __LINE__, what) #define internal_error_a(what,arg) \ - as_fatal (_("internal error:%s:%d: %s %d\n"), __FILE__, __LINE__, what, arg) + as_fatal (_("internal error:%s:%d: %s %ld\n"), __FILE__, __LINE__, what, arg) /* Generic assembler global variables which must be defined by all targets. */ @@ -57,8 +57,6 @@ const char FLT_CHARS[] = "fF"; function to call to execute this pseudo-op integer arg to pass to the function */ -extern void obj_coff_section (); - const pseudo_typeS md_pseudo_table[] = { { "align", s_align_bytes, 4 }, /* Do byte alignment, default is a 4 byte boundary */ { "word", cons, 4 }, /* FIXME: Should this be machine independent? */ @@ -85,8 +83,8 @@ static int tic80_relax = 0; int md_estimate_size_before_relax (fragP, segment_type) - fragS *fragP; - segT segment_type; + fragS *fragP ATTRIBUTE_UNUSED; + segT segment_type ATTRIBUTE_UNUSED; { internal_error (_("Relaxation is a luxury we can't afford")); return (-1); @@ -96,7 +94,7 @@ md_estimate_size_before_relax (fragP, se symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } @@ -118,7 +116,6 @@ md_atof (type, litP, sizeP) LITTLENUM_TYPE words[MAX_LITTLENUMS]; LITTLENUM_TYPE *wordP; char *t; - char *atof_ieee (); switch (type) { @@ -170,20 +167,21 @@ const_overflow (num, bits, flags) int retval = 0; /* Only need to check fields less than 32 bits wide. */ - if (bits < 32) - if (flags & TIC80_OPERAND_SIGNED) - { - max = (1 << (bits - 1)) - 1; - min = - (1 << (bits - 1)); - retval = ((long) num > max) || ((long) num < min); - } - else - { - max = (1 << bits) - 1; - min = 0; - retval = (num > max) || (num < min); - } - return (retval); + if (bits >= 32) + return retval; + + if (flags & TIC80_OPERAND_SIGNED) + { + max = (1 << (bits - 1)) - 1; + min = - (1 << (bits - 1)); + retval = (long) num > max || (long) num < min; + } + else + { + max = (1 << bits) - 1; + retval = num > (unsigned long) max; + } + return retval; } /* get_operands () parses a string of operands and fills in a passed @@ -201,8 +199,6 @@ get_operands (exp) { char *p = input_line_pointer; int numexp = 0; - int mflag = 0; - int sflag = 0; int parens = 0; while (*p) @@ -426,9 +422,9 @@ find_opcode (opcode, myops) expression that supplies additional information about the operand, such as ":m" or ":s" modifiers. Check to see that the operand matches this requirement. */ - if (!((num & TIC80_OPERAND_M_SI) && (flags & TIC80_OPERAND_M_SI) - || (num & TIC80_OPERAND_M_LI) && (flags & TIC80_OPERAND_M_LI) - || (num & TIC80_OPERAND_SCALED) && (flags & TIC80_OPERAND_SCALED))) + if (!((num & flags & TIC80_OPERAND_M_SI) + || (num & flags & TIC80_OPERAND_M_LI) + || (num & flags & TIC80_OPERAND_SCALED))) { match = 0; } @@ -465,7 +461,7 @@ find_opcode (opcode, myops) case O_logical_or: case O_max: default: - internal_error_a (_("unhandled expression type"), X_op); + internal_error_a (_("unhandled expression type"), (long) X_op); } } if (!match) @@ -709,7 +705,7 @@ build_insn (opcode, opers) else { internal_error_a (_("unhandled operand modifier"), - opers[expi].X_add_number); + (long) opers[expi].X_add_number); } break; case O_big: @@ -750,7 +746,7 @@ build_insn (opcode, opers) case O_logical_or: case O_max: default: - internal_error_a (_("unhandled expression"), X_op); + internal_error_a (_("unhandled expression"), (long) X_op); break; } } @@ -779,7 +775,6 @@ md_assemble (str) unsigned char *input_line_save; struct tic80_opcode *opcode; expressionS myops[16]; - unsigned long insn; /* Ensure there is something there to assemble. */ assert (str); @@ -890,7 +885,8 @@ md_begin () valu = PDS_VALUE (pdsp) & ~TIC80_OPERAND_MASK; break; default: - internal_error_a (_("unhandled predefined symbol bits"), symtype); + internal_error_a (_("unhandled predefined symbol bits"), + (long) symtype); break; } symbol_table_insert (symbol_create (PDS_NAME (pdsp), segment, valu, @@ -925,7 +921,7 @@ size_t md_longopts_size = sizeof (md_lon int md_parse_option (c, arg) int c; - char *arg; + char *arg ATTRIBUTE_UNUSED; { switch (c) { @@ -1000,7 +996,7 @@ md_apply_fix3 (fixP, valP, seg) break; default: internal_error_a (_("unhandled relocation type in fixup"), - fixP->fx_r_type); + (long) fixP->fx_r_type); break; } @@ -1034,9 +1030,9 @@ md_pcrel_from (fixP) void md_convert_frag (headers, seg, fragP) - object_headers *headers; - segT seg; - fragS *fragP; + object_headers *headers ATTRIBUTE_UNUSED; + segT seg ATTRIBUTE_UNUSED; + fragS *fragP ATTRIBUTE_UNUSED; { internal_error (_("md_convert_frag() not implemented yet")); abort (); @@ -1044,7 +1040,7 @@ md_convert_frag (headers, seg, fragP) void tc_coff_symbol_emit_hook (ignore) - symbolS *ignore; + symbolS *ignore ATTRIBUTE_UNUSED; { } diff -uprN binutils-2.13.90.0.16/gas/config/tc-tic80.h binutils-2.13.90.0.18/gas/config/tc-tic80.h --- binutils-2.13.90.0.16/gas/config/tc-tic80.h Fri Mar 9 11:17:11 2001 +++ binutils-2.13.90.0.18/gas/config/tc-tic80.h Tue Jan 21 10:21:33 2003 @@ -52,10 +52,10 @@ #define TC_COUNT_RELOC(fixp) ((fixp) -> fx_addsy != NULL) -/* This macro translates between an internal fix and an coff reloc type */ +/* This macro translates between an internal fix and a coff reloc type. */ #define TC_COFF_FIX2RTYPE(fixP) tc_coff_fix2rtype(fixP) -extern short tc_coff_fix2rtype (); +extern short tc_coff_fix2rtype PARAMS ((struct fix *)); #endif /* OBJ_COFF */ diff -uprN binutils-2.13.90.0.16/gas/config/tc-v850.c binutils-2.13.90.0.18/gas/config/tc-v850.c --- binutils-2.13.90.0.16/gas/config/tc-v850.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/gas/config/tc-v850.c Mon Dec 16 12:22:53 2002 @@ -33,8 +33,8 @@ static bfd_reloc_code_real_type hold_cons_reloc = BFD_RELOC_UNUSED; /* Set to TRUE if we want to be pedantic about signed overflows. */ -static boolean warn_signed_overflows = FALSE; -static boolean warn_unsigned_overflows = FALSE; +static bfd_boolean warn_signed_overflows = FALSE; +static bfd_boolean warn_unsigned_overflows = FALSE; /* Indicates the target BFD machine number. */ static int machine = -1; @@ -652,14 +652,14 @@ static const struct reg_name cc_names[] success, or -1 on failure. */ static int reg_name_search - PARAMS ((const struct reg_name *, int, const char *, boolean)); + PARAMS ((const struct reg_name *, int, const char *, bfd_boolean)); static int reg_name_search (regs, regcount, name, accept_numbers) const struct reg_name *regs; int regcount; const char *name; - boolean accept_numbers; + bfd_boolean accept_numbers; { int middle, low, high; int cmp; @@ -714,9 +714,9 @@ reg_name_search (regs, regcount, name, a * Input_line_pointer->(next non-blank) char after operand, or is in * its original state. */ -static boolean register_name PARAMS ((expressionS *)); +static bfd_boolean register_name PARAMS ((expressionS *)); -static boolean +static bfd_boolean register_name (expressionP) expressionS *expressionP; { @@ -746,14 +746,14 @@ register_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } else { /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } } @@ -771,13 +771,14 @@ register_name (expressionP) * Input_line_pointer->(next non-blank) char after operand, or is in * its original state. */ -static boolean system_register_name PARAMS ((expressionS *, boolean, boolean)); +static bfd_boolean system_register_name + PARAMS ((expressionS *, bfd_boolean, bfd_boolean)); -static boolean +static bfd_boolean system_register_name (expressionP, accept_numbers, accept_list_names) expressionS *expressionP; - boolean accept_numbers; - boolean accept_list_names; + bfd_boolean accept_numbers; + bfd_boolean accept_list_names; { int reg_number; char *name; @@ -833,14 +834,14 @@ system_register_name (expressionP, accep expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } else { /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } } @@ -854,9 +855,9 @@ system_register_name (expressionP, accep * Input_line_pointer->(next non-blank) char after operand, or is in * its original state. */ -static boolean cc_name PARAMS ((expressionS *)); +static bfd_boolean cc_name PARAMS ((expressionS *)); -static boolean +static bfd_boolean cc_name (expressionP) expressionS *expressionP; { @@ -884,14 +885,14 @@ cc_name (expressionP) expressionP->X_add_symbol = NULL; expressionP->X_op_symbol = NULL; - return true; + return TRUE; } else { /* Reset the line as if we had not done anything. */ input_line_pointer = start; - return false; + return FALSE; } } @@ -1058,7 +1059,7 @@ parse_register_list (insn, operand) return _("illegal register included in list"); } } - else if (system_register_name (&exp, true, true)) + else if (system_register_name (&exp, TRUE, TRUE)) { if (regs == type1_regs) { @@ -1488,13 +1489,13 @@ static bfd_reloc_code_real_type v850_reloc_prefix (operand) const struct v850_operand *operand; { - boolean paren_skipped = false; + bfd_boolean paren_skipped = FALSE; /* Skip leading opening parenthesis. */ if (*input_line_pointer == '(') { ++input_line_pointer; - paren_skipped = true; + paren_skipped = TRUE; } #define CHECK_(name, reloc) \ @@ -1651,7 +1652,7 @@ md_assemble (str) char *f; int i; int match; - boolean extra_data_after_insn = false; + bfd_boolean extra_data_after_insn = FALSE; unsigned extra_data_len = 0; unsigned long extra_data = 0; char *saved_input_line_pointer; @@ -1699,7 +1700,7 @@ md_assemble (str) fc = 0; next_opindex = 0; insn = opcode->opcode; - extra_data_after_insn = false; + extra_data_after_insn = FALSE; input_line_pointer = str = start_of_operands; @@ -1785,7 +1786,7 @@ md_assemble (str) goto error; } - extra_data_after_insn = true; + extra_data_after_insn = TRUE; extra_data_len = 4; extra_data = 0; break; @@ -1814,7 +1815,7 @@ md_assemble (str) goto error; } - extra_data_after_insn = true; + extra_data_after_insn = TRUE; extra_data_len = 4; extra_data = ex.X_add_number; } @@ -1851,7 +1852,7 @@ md_assemble (str) } else if ((operand->flags & V850_OPERAND_SRG) != 0) { - if (!system_register_name (&ex, true, false)) + if (!system_register_name (&ex, TRUE, FALSE)) { errmsg = _("invalid system register name"); } @@ -1911,7 +1912,7 @@ md_assemble (str) errmsg = _("constant too big to fit into instruction"); } - extra_data_after_insn = true; + extra_data_after_insn = TRUE; extra_data_len = 2; extra_data = ex.X_add_number; ex.X_add_number = 0; @@ -1923,7 +1924,7 @@ md_assemble (str) if (ex.X_op != O_constant) errmsg = _("constant expression expected"); - extra_data_after_insn = true; + extra_data_after_insn = TRUE; extra_data_len = 4; extra_data = ex.X_add_number; ex.X_add_number = 0; @@ -1974,7 +1975,7 @@ md_assemble (str) &symbol_rootP, &symbol_lastP); } } - else if (system_register_name (&ex, false, false) + else if (system_register_name (&ex, FALSE, FALSE) && (operand->flags & V850_OPERAND_SRG) == 0) { errmsg = _("syntax error: system register not expected"); @@ -2148,7 +2149,7 @@ md_assemble (str) f = frag_more (extra_data_len); md_number_to_chars (f, extra_data, extra_data_len); - extra_data_after_insn = false; + extra_data_after_insn = FALSE; } } @@ -2450,7 +2451,7 @@ cons_fix_new_v850 (frag, where, size, ex hold_cons_reloc = BFD_RELOC_UNUSED; } -boolean +bfd_boolean v850_fix_adjustable (fixP) fixS *fixP; { diff -uprN binutils-2.13.90.0.16/gas/config/tc-v850.h binutils-2.13.90.0.18/gas/config/tc-v850.h --- binutils-2.13.90.0.16/gas/config/tc-v850.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-v850.h Mon Dec 16 12:22:53 2002 @@ -38,7 +38,7 @@ #define md_operand(x) #define tc_fix_adjustable(FIX) v850_fix_adjustable (FIX) -extern boolean v850_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean v850_fix_adjustable PARAMS ((struct fix *)); #define TC_FORCE_RELOCATION(FIX) v850_force_relocation(FIX) extern int v850_force_relocation PARAMS ((struct fix *)); diff -uprN binutils-2.13.90.0.16/gas/config/tc-w65.c binutils-2.13.90.0.18/gas/config/tc-w65.c --- binutils-2.13.90.0.16/gas/config/tc-w65.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-w65.c Mon Dec 16 12:22:53 2002 @@ -49,7 +49,12 @@ const char line_comment_chars[] = "!#"; #define OP_BVC 0x50 #define OP_BVS 0x70 -void s_longa (); +static void s_longa PARAMS ((int)); +static char *parse_exp PARAMS ((char *)); +static char *get_operands PARAMS ((const struct opinfo *, char *)); +static const struct opinfo *get_specific PARAMS ((const struct opinfo *)); +static void build_Mytes PARAMS ((const struct opinfo *)); + const pseudo_typeS md_pseudo_table[] = { {"int", cons, 2}, @@ -59,15 +64,10 @@ const pseudo_typeS md_pseudo_table[] = { {0, 0, 0} }; -void cons (); -void s_align_bytes (); - #if 0 int md_reloc_size; #endif -static int relax; /* set if -relax seen */ - const char EXP_CHARS[] = "eE"; /* Chars that mean this number is a floating point constant. */ @@ -124,8 +124,9 @@ relax_typeS md_relax_table[C (END, 0)] = should set up all the tables, etc that the MD part of the assembler needs. */ -void +static void s_longa (xmode) + int xmode; { int *p = xmode ? &X : &M; while (*input_line_pointer == ' ') @@ -148,7 +149,7 @@ s_longa (xmode) void md_begin () { - struct opinfo *opcode; + const struct opinfo *opcode; char *prev_name = ""; opcode_hash_control = hash_new (); @@ -161,12 +162,6 @@ md_begin () prev_name = opcode->name; hash_insert (opcode_hash_control, opcode->name, (char *) opcode); } - else - { - /* Make all the opcodes with the same name point to the same - string. */ - opcode->name = prev_name; - } } flag_signed_overflow_ok = 1; @@ -174,30 +169,13 @@ md_begin () static expressionS immediate; /* absolute expression */ static expressionS immediate1; /* absolute expression */ - -static symbolS * -dot () -{ - const char *fake; - - /* JF: '.' is pseudo symbol with value of current location - in current segment. */ - fake = FAKE_LABEL_NAME; - return symbol_new (fake, - now_seg, - (valueT) frag_now_fix (), - frag_now); - -} - int expr_size; int expr_shift; int tc_cons_reloc; void -w65_expression (dest, bytes) +w65_expression (dest) expressionS *dest; - unsigned int bytes; { expr_size = 0; expr_shift = 0; @@ -227,16 +205,15 @@ w65_expression (dest, bytes) int amode; static char * -parse_exp (s, bytes) +parse_exp (s) char *s; - int bytes; { char *save; char *new; save = input_line_pointer; input_line_pointer = s; - w65_expression (&immediate, bytes); + w65_expression (&immediate); if (immediate.X_op == O_absent) as_bad (_("missing operand")); new = input_line_pointer; @@ -246,7 +223,7 @@ parse_exp (s, bytes) static char * get_operands (info, ptr) - struct opinfo *info; + const struct opinfo *info; char *ptr; { register int override_len = 0; @@ -474,7 +451,7 @@ get_operands (info, ptr) } else { - ptr = parse_exp (ptr, 2); + ptr = parse_exp (ptr); if (ptr[0] == ',') { if (ptr[1] == 'y') @@ -591,9 +568,9 @@ get_operands (info, ptr) addressing modes, return the opcode which matches the opcodes provided. */ -static struct opinfo * +static const struct opinfo * get_specific (opcode) - struct opinfo *opcode; + const struct opinfo *opcode; { int ocode = opcode->code; @@ -605,28 +582,11 @@ get_specific (opcode) return 0; } -int -check (operand, low, high) - expressionS *operand; - int low; - int high; -{ - if (operand->X_op != O_constant - || operand->X_add_number < low - || operand->X_add_number > high) - { - as_bad ("operand must be absolute in range %d..%d", low, high); - } - return operand->X_add_number; -} - -static int log2[] = { 0, 0, 1, 0, 2 }; - /* Now we know what sort of opcodes it is, let's build the bytes. */ static void build_Mytes (opcode) - struct opinfo *opcode; + const struct opinfo *opcode; { int size; int type; @@ -656,6 +616,8 @@ build_Mytes (opcode) switch (opcode->amode) { GETINFO (size, type, pcrel); + default: + abort (); } /* If something special was done in the expression modify the @@ -707,12 +669,8 @@ void md_assemble (str) char *str; { - unsigned char *op_start; - unsigned char *op_end; - struct opinfo *opcode; + const struct opinfo *opcode; char name[20]; - int nlen = 0; - char *p; /* Drop leading whitespace */ while (*str == ' ') @@ -756,27 +714,13 @@ md_assemble (str) build_Mytes (opcode); } -void -tc_crawl_symbol_chain (headers) - object_headers *headers; -{ - printf (_("call to tc_crawl_symbol_chain \n")); -} - symbolS * md_undefined_symbol (name) - char *name; + char *name ATTRIBUTE_UNUSED; { return 0; } -void -tc_headers_hook (headers) - object_headers *headers; -{ - printf (_("call to tc_headers_hook \n")); -} - /* Various routines to kill one day. */ /* Equal to MAX_PRECISION in atof-ieee.c. */ #define MAX_LITTLENUMS 6 @@ -796,7 +740,6 @@ md_atof (type, litP, sizeP) LITTLENUM_TYPE words[MAX_LITTLENUMS]; LITTLENUM_TYPE *wordP; char *t; - char *atof_ieee (); switch (type) { @@ -843,26 +786,19 @@ md_atof (type, litP, sizeP) int md_parse_option (c, a) - int c; - char *a; + int c ATTRIBUTE_UNUSED; + char *a ATTRIBUTE_UNUSED; { return 0; } -void -tc_Nout_fix_to_chars () -{ - printf (_("call to tc_Nout_fix_to_chars \n")); - abort (); -} - /* Called after relaxing, change the frags so they know how big they are. */ void md_convert_frag (headers, seg, fragP) - object_headers *headers; - segT seg; + object_headers *headers ATTRIBUTE_UNUSED; + segT seg ATTRIBUTE_UNUSED; fragS *fragP; { int disp_size = 0; @@ -1058,7 +994,7 @@ md_pcrel_from (fixP) void tc_coff_symbol_emit_hook (x) - symbolS *x; + symbolS *x ATTRIBUTE_UNUSED; { } @@ -1194,7 +1130,7 @@ struct option md_longopts[] = { void md_show_usage (stream) - FILE *stream; + FILE *stream ATTRIBUTE_UNUSED; { } diff -uprN binutils-2.13.90.0.16/gas/config/tc-w65.h binutils-2.13.90.0.18/gas/config/tc-w65.h --- binutils-2.13.90.0.16/gas/config/tc-w65.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-w65.h Tue Jan 21 10:21:33 2003 @@ -29,7 +29,7 @@ struct fix; #define WORKING_DOT_WORD -/* This macro translates between an internal fix and an coff reloc type */ +/* This macro translates between an internal fix and a coff reloc type. */ #define TC_COFF_FIX2RTYPE(fixP) tc_coff_fix2rtype (fixP) #define BFD_ARCH bfd_arch_w65 @@ -47,7 +47,11 @@ extern void tc_reloc_mangle #define RELOC_32 1234 #define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep (frag) -#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) w65_expression (EXP, NBYTES) +int tc_coff_sizemachdep PARAMS ((fragS *)); + +#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) w65_expression (EXP) +void w65_expression PARAMS ((expressionS *)); + #define TC_COUNT_RELOC(x) (1) #define TC_CONS_RELOC tc_cons_reloc #define DONT_OVERFLOW diff -uprN binutils-2.13.90.0.16/gas/config/tc-xstormy16.c binutils-2.13.90.0.18/gas/config/tc-xstormy16.c --- binutils-2.13.90.0.16/gas/config/tc-xstormy16.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-xstormy16.c Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ /* tc-xstormy16.c -- Assembler for the Sanyo XSTORMY16. - Copyright (C) 2000, 2001, 2002 Free Software Foundation. + Copyright 2000, 2001, 2002 Free Software Foundation. This file is part of GAS, the GNU Assembler. @@ -331,23 +331,31 @@ md_cgen_lookup_reloc (insn, operand, fix case XSTORMY16_OPERAND_IMM3: case XSTORMY16_OPERAND_IMM3B: case XSTORMY16_OPERAND_IMM4: - case XSTORMY16_OPERAND_IMM12: case XSTORMY16_OPERAND_HMEM8: return BFD_RELOC_NONE; + case XSTORMY16_OPERAND_IMM12: + fixP->fx_where += 2; + return BFD_RELOC_XSTORMY16_12; + case XSTORMY16_OPERAND_IMM8: case XSTORMY16_OPERAND_LMEM8: return fixP->fx_pcrel ? BFD_RELOC_8_PCREL : BFD_RELOC_8; case XSTORMY16_OPERAND_IMM16: + /* This might have been processed at parse time. */ fixP->fx_where += 2; + if (fixP->fx_cgen.opinfo && fixP->fx_cgen.opinfo != BFD_RELOC_NONE) + return fixP->fx_cgen.opinfo; return fixP->fx_pcrel ? BFD_RELOC_16_PCREL : BFD_RELOC_16; case XSTORMY16_OPERAND_ABS24: return BFD_RELOC_XSTORMY16_24; - case XSTORMY16_OPERAND_REL8_2: case XSTORMY16_OPERAND_REL8_4: + fixP->fx_addnumber -= 2; + case XSTORMY16_OPERAND_REL8_2: + fixP->fx_addnumber -= 2; fixP->fx_pcrel = 1; return BFD_RELOC_8_PCREL; @@ -355,6 +363,7 @@ md_cgen_lookup_reloc (insn, operand, fix fixP->fx_where += 2; /* Fall through... */ case XSTORMY16_OPERAND_REL12A: + fixP->fx_addnumber -= 2; fixP->fx_pcrel = 1; return BFD_RELOC_XSTORMY16_REL_12; @@ -388,7 +397,7 @@ xstormy16_force_relocation (fix) /* Return true if a relocation against a symbol may be replaced with a relocation against section+offset. */ -boolean +bfd_boolean xstormy16_fix_adjustable (fixP) fixS * fixP; { @@ -417,6 +426,12 @@ xstormy16_md_apply_fix3 (fixP, valueP, s /* Canonical name, since used a lot. */ CGEN_CPU_DESC cd = gas_cgen_cpu_desc; + /* md_cgen_lookup_reloc() will adjust this to compensate for where + in the opcode the relocation happens, for pcrel relocations. We + have no other way of keeping track of what this offset needs to + be. */ + fixP->fx_addnumber = 0; + /* This port has pc-relative relocs and DIFF_EXPR_OK defined, so it must deal with turning a BFD_RELOC_{8,16,32,64} into a BFD_RELOC_*_PCREL for the case of @@ -491,7 +506,7 @@ xstormy16_md_apply_fix3 (fixP, valueP, s /* The operand isn't fully resolved. Determine a BFD reloc value based on the operand information and leave it to bfd_install_relocation. Note that this doesn't work when - partial_inplace == false. */ + !partial_inplace. */ reloc_type = md_cgen_lookup_reloc (insn, operand, fixP); if (reloc_type != BFD_RELOC_NONE) @@ -550,7 +565,7 @@ xstormy16_md_apply_fix3 (fixP, valueP, s /* Tuck `value' away for use by tc_gen_reloc. See the comment describing fx_addnumber in write.h. This field is misnamed (or misused :-). */ - fixP->fx_addnumber = value; + fixP->fx_addnumber += value; } diff -uprN binutils-2.13.90.0.16/gas/config/tc-xstormy16.h binutils-2.13.90.0.18/gas/config/tc-xstormy16.h --- binutils-2.13.90.0.16/gas/config/tc-xstormy16.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-xstormy16.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* tc-xstormy16.h -- Header file for tc-xstormy16.c. - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -48,7 +48,7 @@ #define md_apply_fix3 xstormy16_md_apply_fix3 #define tc_fix_adjustable(FIX) xstormy16_fix_adjustable (FIX) -extern boolean xstormy16_fix_adjustable PARAMS ((struct fix *)); +extern bfd_boolean xstormy16_fix_adjustable PARAMS ((struct fix *)); #define TC_FORCE_RELOCATION(fix) xstormy16_force_relocation (fix) extern int xstormy16_force_relocation PARAMS ((struct fix *)); diff -uprN binutils-2.13.90.0.16/gas/config/tc-z8k.c binutils-2.13.90.0.18/gas/config/tc-z8k.c --- binutils-2.13.90.0.16/gas/config/tc-z8k.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/config/tc-z8k.c Tue Jan 21 10:21:33 2003 @@ -38,18 +38,24 @@ extern int coff_flags; int segmented_mode; const int md_reloc_size; -void cons (); +static void s_segm PARAMS ((int)); +static void s_unseg PARAMS ((int)); +static void even PARAMS ((int)); +static int tohex PARAMS ((int)); +static void sval PARAMS ((int)); -void -s_segm () +static void +s_segm (ignore) + int ignore ATTRIBUTE_UNUSED; { segmented_mode = 1; machine = bfd_mach_z8001; coff_flags = F_Z8001; } -void -s_unseg () +static void +s_unseg (ignore) + int ignore ATTRIBUTE_UNUSED; { segmented_mode = 0; machine = bfd_mach_z8002; @@ -57,15 +63,14 @@ s_unseg () } static void -even () +even (ignore) + int ignore ATTRIBUTE_UNUSED; { frag_align (1, 0, 0); record_alignment (now_seg, 1); } -void obj_coff_section (); - -int +static int tohex (c) int c; { @@ -76,8 +81,9 @@ tohex (c) return c - 'A' + 10; } -void -sval () +static void +sval (ignore) + int ignore ATTRIBUTE_UNUSED; { SKIP_WHITESPACE (); if (*input_line_pointer == '\'') @@ -149,26 +155,21 @@ static struct hash_control *opcode_hash_ void md_begin () { - opcode_entry_type *opcode; - char *prev_name = ""; - int idx = 0; + const opcode_entry_type *opcode; + int idx = -1; opcode_hash_control = hash_new (); for (opcode = z8k_table; opcode->name; opcode++) { /* Only enter unique codes into the table. */ - if (strcmp (opcode->name, prev_name)) - { - hash_insert (opcode_hash_control, opcode->name, (char *) opcode); - idx++; - } - opcode->idx = idx; - prev_name = opcode->name; + if (idx != opcode->idx) + hash_insert (opcode_hash_control, opcode->name, (char *) opcode); + idx = opcode->idx; } /* Default to z8002. */ - s_unseg (); + s_unseg (0); /* Insert the pseudo ops, too. */ for (idx = 0; md_pseudo_table[idx].poc_name; idx++) @@ -215,7 +216,34 @@ int the_ctrl; int the_flags; int the_interrupt; -char * +static char *whatreg PARAMS ((int *, char *)); +static char *parse_reg PARAMS ((char *, int *, unsigned int *)); +static char *parse_exp PARAMS ((char *, expressionS *)); +static char *checkfor PARAMS ((char *, char)); +static void regword PARAMS ((int, char *)); +static void regaddr PARAMS ((int, char *)); +static void get_ctrl_operand + PARAMS ((char **, struct z8k_op *, unsigned int)); +static void get_flags_operand + PARAMS ((char **, struct z8k_op *, unsigned int)); +static void get_interrupt_operand + PARAMS ((char **, struct z8k_op *, unsigned int)); +static void get_cc_operand + PARAMS ((char **, struct z8k_op *, unsigned int)); +static void get_operand + PARAMS ((char **, struct z8k_op *, unsigned int)); +static char *get_operands + PARAMS ((const opcode_entry_type *, char *, op_type *)); +static opcode_entry_type *get_specific + PARAMS ((opcode_entry_type *, op_type *)); +static void newfix + PARAMS ((int, int, expressionS *)); +static char *apply_fix + PARAMS ((char *, int, expressionS *, int)); +static void build_bytes + PARAMS ((opcode_entry_type *, struct z8k_op *)); + +static char * whatreg (reg, src) int *reg; char *src; @@ -249,7 +277,7 @@ whatreg (reg, src) /* Try to parse a reg name. Return a pointer to the first character in SRC after the reg name. */ -char * +static char * parse_reg (src, mode, reg) char *src; int *mode; @@ -329,7 +357,7 @@ parse_reg (src, mode, reg) return res; } -char * +static char * parse_exp (s, op) char *s; expressionS *op; @@ -724,7 +752,7 @@ get_operand (ptr, mode, dst) static char * get_operands (opcode, op_end, operand) - opcode_entry_type *opcode; + const opcode_entry_type *opcode; char *op_end; op_type *operand; { @@ -825,7 +853,6 @@ static opcode_entry_type * get_specific (opcode, operands) opcode_entry_type *opcode; op_type *operands; - { opcode_entry_type *this_try = opcode; int found = 0; @@ -844,7 +871,7 @@ get_specific (opcode, operands) if ((mode & CLASS_MASK) != (this_try->arg_info[i] & CLASS_MASK)) { - /* It could be an pc rel operand, if this is a da mode + /* It could be a pc rel operand, if this is a da mode and we like disps, then insert it. */ if (mode == CLASS_DA && this_try->arg_info[i] == CLASS_DISP) @@ -1288,7 +1315,6 @@ md_atof (type, litP, sizeP) LITTLENUM_TYPE words[MAX_LITTLENUMS]; LITTLENUM_TYPE *wordP; char *t; - char *atof_ieee (); switch (type) { @@ -1351,9 +1377,9 @@ md_parse_option (c, arg) { case 'z': if (!strcmp (arg, "8001")) - s_segm (); + s_segm (0); else if (!strcmp (arg, "8002")) - s_unseg (); + s_unseg (0); else { as_bad (_("invalid architecture -z%s"), arg); @@ -1379,13 +1405,6 @@ Z8K options:\n\ } void -tc_aout_fix_to_chars () -{ - printf (_("call to tc_aout_fix_to_chars \n")); - abort (); -} - -void md_convert_frag (headers, seg, fragP) object_headers *headers ATTRIBUTE_UNUSED; segT seg ATTRIBUTE_UNUSED; diff -uprN binutils-2.13.90.0.16/gas/config/tc-z8k.h binutils-2.13.90.0.18/gas/config/tc-z8k.h --- binutils-2.13.90.0.16/gas/config/tc-z8k.h Fri Mar 9 11:17:12 2001 +++ binutils-2.13.90.0.18/gas/config/tc-z8k.h Tue Jan 21 10:21:33 2003 @@ -33,7 +33,7 @@ struct internal_reloc; #define LOCAL_LABEL(x) 0 #endif -/* This macro translates between an internal fix and an coff reloc type */ +/* This macro translates between an internal fix and a coff reloc type. */ #define TC_COFF_FIX2RTYPE(fixP) abort (); #define BFD_ARCH bfd_arch_z8k diff -uprN binutils-2.13.90.0.16/gas/configure binutils-2.13.90.0.18/gas/configure --- binutils-2.13.90.0.16/gas/configure Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gas/configure Tue Jan 21 10:21:32 2003 @@ -2268,6 +2268,7 @@ for this_target in $target $canon_target x86_64) cpu_type=i386 arch=x86_64;; ia64) cpu_type=ia64 ;; ip2k) cpu_type=ip2k endian=big ;; + iq2000) cpu_type=iq2000 endian=big ;; m6811|m6812|m68hc12) cpu_type=m68hc11 ;; m680[012346]0) cpu_type=m68k ;; m68008) cpu_type=m68k ;; @@ -2463,6 +2464,8 @@ EOF ip2k-*-*) fmt=elf ;; + iq2000-*-elf) fmt=elf bfd_gas=yes ;; + m32r-*-*) fmt=elf ;; m68hc11-*-* | m6811-*-*) fmt=elf ;; @@ -2521,6 +2524,7 @@ EOF mmix-*-*) fmt=elf ;; mn10200-*-*) fmt=elf ;; mn10300-*-*) fmt=elf ;; + msp430-*-*) fmt=elf ;; openrisc-*-*) fmt=elf ;; or32-*-rtems*) fmt=coff ;; or32-*-coff) fmt=coff ;; @@ -2632,6 +2636,7 @@ EOF *-*-xray | *-*-hms) fmt=coff ;; *-*-sim) fmt=coff ;; *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf dev=yes ;; + *-*-aros*) fmt=elf em=linux bfd_gas=yes ;; *-*-vxworks) fmt=aout ;; *-*-netware) fmt=elf ;; esac @@ -2670,6 +2675,9 @@ EOF mipsisa32 | mipsisa32el) mips_cpu=mips32 ;; + mipsisa32r2 | mipsisa32r2el) + mips_cpu=mips32r2 + ;; mipsisa64 | mipsisa64el) mips_cpu=mips64 ;; @@ -2679,6 +2687,9 @@ EOF mips64vr | mips64vrel) mips_cpu=vr4100 ;; + mipsisa32r2*) + mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'` + ;; mips64* | mipsisa64* | mipsisa32*) mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'` ;; @@ -2744,7 +2755,7 @@ EOF # Any other special object files needed ? case ${cpu_type} in - fr30 | ip2k | m32r | openrisc) + fr30 | ip2k | iq2000 | m32r | openrisc) using_cgen=yes ;; @@ -3167,7 +3178,7 @@ EOF # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3171: checking for $ac_word" >&5 +echo "configure:3182: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3197,7 +3208,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3201: checking for $ac_word" >&5 +echo "configure:3212: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3248,7 +3259,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3252: checking for $ac_word" >&5 +echo "configure:3263: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3280,7 +3291,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:3284: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:3295: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -3291,12 +3302,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 3295 "configure" +#line 3306 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:3300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -3322,12 +3333,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:3326: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:3337: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:3331: checking whether we are using GNU C" >&5 +echo "configure:3342: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3336,7 +3347,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3340: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3351: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -3355,7 +3366,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:3359: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:3370: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3392,7 +3403,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3396: checking for $ac_word" >&5 +echo "configure:3407: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3423,7 +3434,7 @@ done test -n "$YACC" || YACC="yacc" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:3427: checking how to run the C preprocessor" >&5 +echo "configure:3438: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -3438,13 +3449,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3448: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3459: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3455,13 +3466,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3465: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3472,13 +3483,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3482: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3493: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3508,7 +3519,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3512: checking for $ac_word" >&5 +echo "configure:3523: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3541,7 +3552,7 @@ test -n "$LEX" || LEX="$missing_dir/miss # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3545: checking for $ac_word" >&5 +echo "configure:3556: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3575,7 +3586,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:3579: checking for yywrap in -l$ac_lib" >&5 +echo "configure:3590: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3583,7 +3594,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3609: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3617,7 +3628,7 @@ fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:3621: checking lex output file root" >&5 +echo "configure:3632: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3638,7 +3649,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:3642: checking whether yytext is a pointer" >&5 +echo "configure:3653: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3650,14 +3661,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPU ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -3683,7 +3694,7 @@ ALL_LINGUAS="fr tr es" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3687: checking for $ac_word" >&5 +echo "configure:3698: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3711,12 +3722,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3715: checking for ANSI C header files" >&5 +echo "configure:3726: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3724,7 +3735,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3739: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3741,7 +3752,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3759,7 +3770,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3780,7 +3791,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -3791,7 +3802,7 @@ if (XOR (islower (i), ISLOWER (i)) || to exit (0); } EOF -if { (eval echo configure:3795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -3815,12 +3826,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:3819: checking for working const" >&5 +echo "configure:3830: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3884: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -3890,21 +3901,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:3894: checking for inline" >&5 +echo "configure:3905: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3930,12 +3941,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3934: checking for off_t" >&5 +echo "configure:3945: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3963,12 +3974,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3967: checking for size_t" >&5 +echo "configure:3978: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3998,19 +4009,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:4002: checking for working alloca.h" >&5 +echo "configure:4013: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:4014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -4031,12 +4042,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:4035: checking for alloca" >&5 +echo "configure:4046: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -4096,12 +4107,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:4100: checking whether alloca needs Cray hooks" >&5 +echo "configure:4111: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4130: checking for $ac_func" >&5 +echo "configure:4141: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4181,7 +4192,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:4185: checking stack direction for C alloca" >&5 +echo "configure:4196: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4189,7 +4200,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -4233,17 +4244,17 @@ for ac_hdr in stdlib.h unistd.h sys/stat do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4237: checking for $ac_hdr" >&5 +echo "configure:4248: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4272,12 +4283,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4276: checking for $ac_func" >&5 +echo "configure:4287: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4325,7 +4336,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:4329: checking for working mmap" >&5 +echo "configure:4340: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4333,7 +4344,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -4514,17 +4525,17 @@ unistd.h values.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4518: checking for $ac_hdr" >&5 +echo "configure:4529: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4554,12 +4565,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4558: checking for $ac_func" >&5 +echo "configure:4569: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4611,12 +4622,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4615: checking for $ac_func" >&5 +echo "configure:4626: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4673,19 +4684,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:4677: checking for LC_MESSAGES" >&5 +echo "configure:4688: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:4689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -4706,7 +4717,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:4710: checking whether NLS is requested" >&5 +echo "configure:4721: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -4726,7 +4737,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:4730: checking whether included gettext is requested" >&5 +echo "configure:4741: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -4745,17 +4756,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:4749: checking for libintl.h" >&5 +echo "configure:4760: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4759: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4770: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4772,19 +4783,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:4776: checking for gettext in libc" >&5 +echo "configure:4787: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:4788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -4800,7 +4811,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:4804: checking for bindtextdomain in -lintl" >&5 +echo "configure:4815: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4808,7 +4819,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4835,19 +4846,19 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:4839: checking for gettext in libintl" >&5 +echo "configure:4850: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libintl=yes else @@ -4875,7 +4886,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4879: checking for $ac_word" >&5 +echo "configure:4890: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4909,12 +4920,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4913: checking for $ac_func" >&5 +echo "configure:4924: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4964,7 +4975,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4968: checking for $ac_word" >&5 +echo "configure:4979: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5000,7 +5011,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5004: checking for $ac_word" >&5 +echo "configure:5015: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5032,7 +5043,7 @@ else fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -5072,7 +5083,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5076: checking for $ac_word" >&5 +echo "configure:5087: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5106,7 +5117,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5110: checking for $ac_word" >&5 +echo "configure:5121: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5142,7 +5153,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5146: checking for $ac_word" >&5 +echo "configure:5157: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5232,7 +5243,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:5236: checking for catalogs to be installed" >&5 +echo "configure:5247: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -5260,17 +5271,17 @@ echo "configure:5236: checking for catal if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:5264: checking for linux/version.h" >&5 +echo "configure:5275: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5333,7 +5344,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:5337: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:5348: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -5358,7 +5369,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:5362: checking for executable suffix" >&5 +echo "configure:5373: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5368,7 +5379,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:5372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:5383: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -5393,17 +5404,17 @@ for ac_hdr in string.h stdlib.h memory.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5397: checking for $ac_hdr" >&5 +echo "configure:5408: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5407: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5433,7 +5444,7 @@ done # Put this here so that autoconf's "cross-compiling" message doesn't confuse # people who are not cross-compiling but are compiling cross-assemblers. echo $ac_n "checking whether compiling a cross-assembler""... $ac_c" 1>&6 -echo "configure:5437: checking whether compiling a cross-assembler" >&5 +echo "configure:5448: checking whether compiling a cross-assembler" >&5 if test "${host}" = "${target}"; then cross_gas=no else @@ -5448,19 +5459,19 @@ echo "$ac_t""$cross_gas" 1>&6 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:5452: checking for working alloca.h" >&5 +echo "configure:5463: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:5464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -5481,12 +5492,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:5485: checking for alloca" >&5 +echo "configure:5496: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -5546,12 +5557,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:5550: checking whether alloca needs Cray hooks" >&5 +echo "configure:5561: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5580: checking for $ac_func" >&5 +echo "configure:5591: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5631,7 +5642,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:5635: checking stack direction for C alloca" >&5 +echo "configure:5646: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5639,7 +5650,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -5680,21 +5691,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:5684: checking for inline" >&5 +echo "configure:5695: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -5724,12 +5735,12 @@ esac for ac_func in unlink remove do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5728: checking for $ac_func" >&5 +echo "configure:5739: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5781,12 +5792,12 @@ done for ac_func in sbrk do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5785: checking for $ac_func" >&5 +echo "configure:5796: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5844,7 +5855,7 @@ case $host in ;; *-ncr-sysv4.3*) echo $ac_n "checking for _mwvalidcheckl in -lmw""... $ac_c" 1>&6 -echo "configure:5848: checking for _mwvalidcheckl in -lmw" >&5 +echo "configure:5859: checking for _mwvalidcheckl in -lmw" >&5 ac_lib_var=`echo mw'_'_mwvalidcheckl | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5852,7 +5863,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmw $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5878: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5884,7 +5895,7 @@ else fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:5888: checking for main in -lm" >&5 +echo "configure:5899: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5892,14 +5903,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5922,7 +5933,7 @@ fi ;; *) echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:5926: checking for main in -lm" >&5 +echo "configure:5937: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5930,14 +5941,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5968,12 +5979,12 @@ esac # enough, but on some of those systems, the assert macro relies on requoting # working properly! echo $ac_n "checking for working assert macro""... $ac_c" 1>&6 -echo "configure:5972: checking for working assert macro" >&5 +echo "configure:5983: checking for working assert macro" >&5 if eval "test \"`echo '$''{'gas_cv_assert_ok'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5989,7 +6000,7 @@ assert (a == b ; return 0; } EOF -if { (eval echo configure:5993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_assert_ok=yes else @@ -6030,12 +6041,12 @@ gas_test_headers=" " echo $ac_n "checking whether declaration is required for strstr""... $ac_c" 1>&6 -echo "configure:6034: checking whether declaration is required for strstr" >&5 +echo "configure:6045: checking whether declaration is required for strstr" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_strstr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_strstr=no else @@ -6067,12 +6078,12 @@ fi echo $ac_n "checking whether declaration is required for malloc""... $ac_c" 1>&6 -echo "configure:6071: checking whether declaration is required for malloc" >&5 +echo "configure:6082: checking whether declaration is required for malloc" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_malloc=no else @@ -6104,12 +6115,12 @@ fi echo $ac_n "checking whether declaration is required for free""... $ac_c" 1>&6 -echo "configure:6108: checking whether declaration is required for free" >&5 +echo "configure:6119: checking whether declaration is required for free" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_free'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_free=no else @@ -6141,12 +6152,12 @@ fi echo $ac_n "checking whether declaration is required for sbrk""... $ac_c" 1>&6 -echo "configure:6145: checking whether declaration is required for sbrk" >&5 +echo "configure:6156: checking whether declaration is required for sbrk" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_sbrk'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_sbrk=no else @@ -6178,12 +6189,12 @@ fi echo $ac_n "checking whether declaration is required for environ""... $ac_c" 1>&6 -echo "configure:6182: checking whether declaration is required for environ" >&5 +echo "configure:6193: checking whether declaration is required for environ" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_environ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_environ=no else @@ -6218,12 +6229,12 @@ fi # for it? echo $ac_n "checking whether declaration is required for errno""... $ac_c" 1>&6 -echo "configure:6222: checking whether declaration is required for errno" >&5 +echo "configure:6233: checking whether declaration is required for errno" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_errno=no else diff -uprN binutils-2.13.90.0.16/gas/configure.in binutils-2.13.90.0.18/gas/configure.in --- binutils-2.13.90.0.16/gas/configure.in Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gas/configure.in Tue Jan 21 10:21:32 2003 @@ -123,6 +123,7 @@ changequote(,)dnl x86_64) cpu_type=i386 arch=x86_64;; ia64) cpu_type=ia64 ;; ip2k) cpu_type=ip2k endian=big ;; + iq2000) cpu_type=iq2000 endian=big ;; m6811|m6812|m68hc12) cpu_type=m68hc11 ;; m680[012346]0) cpu_type=m68k ;; changequote([,])dnl @@ -315,6 +316,8 @@ changequote([,])dnl ip2k-*-*) fmt=elf ;; + iq2000-*-elf) fmt=elf bfd_gas=yes ;; + m32r-*-*) fmt=elf ;; m68hc11-*-* | m6811-*-*) fmt=elf ;; @@ -373,6 +376,7 @@ changequote([,])dnl mmix-*-*) fmt=elf ;; mn10200-*-*) fmt=elf ;; mn10300-*-*) fmt=elf ;; + msp430-*-*) fmt=elf ;; openrisc-*-*) fmt=elf ;; or32-*-rtems*) fmt=coff ;; or32-*-coff) fmt=coff ;; @@ -482,6 +486,7 @@ changequote([,])dnl *-*-xray | *-*-hms) fmt=coff ;; *-*-sim) fmt=coff ;; *-*-elf | *-*-sysv4* | *-*-solaris*) fmt=elf dev=yes ;; + *-*-aros*) fmt=elf em=linux bfd_gas=yes ;; *-*-vxworks) fmt=aout ;; *-*-netware) fmt=elf ;; esac @@ -518,6 +523,9 @@ changequote([,])dnl mipsisa32 | mipsisa32el) mips_cpu=mips32 ;; + mipsisa32r2 | mipsisa32r2el) + mips_cpu=mips32r2 + ;; mipsisa64 | mipsisa64el) mips_cpu=mips64 ;; @@ -527,6 +535,11 @@ changequote([,])dnl mips64vr | mips64vrel) mips_cpu=vr4100 ;; + mipsisa32r2*) +changequote(,)dnl + mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'` +changequote([,])dnl + ;; mips64* | mipsisa64* | mipsisa32*) changequote(,)dnl mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'` @@ -588,7 +601,7 @@ changequote([,])dnl # Any other special object files needed ? case ${cpu_type} in - fr30 | ip2k | m32r | openrisc) + fr30 | ip2k | iq2000 | m32r | openrisc) using_cgen=yes ;; diff -uprN binutils-2.13.90.0.16/gas/doc/Makefile.am binutils-2.13.90.0.18/gas/doc/Makefile.am --- binutils-2.13.90.0.16/gas/doc/Makefile.am Mon Jul 29 08:19:18 2002 +++ binutils-2.13.90.0.18/gas/doc/Makefile.am Tue Jan 21 10:21:33 2003 @@ -15,8 +15,6 @@ POD2MAN = pod2man --center="GNU Developm man_MANS = as.1 -# The gasp.texi file is now deprecated, as GASP has been deprecated. -# It will disappear in a future release. info_TEXINFOS = as.texinfo asconfig.texi: $(CONFIG).texi @@ -46,6 +44,7 @@ CPU_DOCS = \ c-m88k.texi \ c-mips.texi \ c-mmix.texi \ + c-msp430.texi \ c-ns32k.texi \ c-pdp11.texi \ c-pj.texi \ @@ -71,7 +70,7 @@ install: install-info # This one isn't ready for prime time yet. Not even a little bit. -noinst_TEXINFOS = internals.texi gasp.texi +noinst_TEXINFOS = internals.texi DISTCLEANFILES = asconfig.texi @@ -85,7 +84,7 @@ info: $(MANS) # Build the man page from the texinfo file # The sed command removes the no-adjust Nroff command so that # the man output looks standard. -as.1: $(srcdir)/as.texinfo +as.1: $(srcdir)/as.texinfo asconfig.texi gasver.texi $(CPU_DOCS) touch $@ -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod -($(POD2MAN) as.pod | \ diff -uprN binutils-2.13.90.0.16/gas/doc/Makefile.in binutils-2.13.90.0.18/gas/doc/Makefile.in --- binutils-2.13.90.0.16/gas/doc/Makefile.in Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/gas/doc/Makefile.in Tue Jan 21 10:21:33 2003 @@ -133,8 +133,6 @@ POD2MAN = pod2man --center="GNU Developm man_MANS = as.1 -# The gasp.texi file is now deprecated, as GASP has been deprecated. -# It will disappear in a future release. info_TEXINFOS = as.texinfo CPU_DOCS = \ @@ -158,6 +156,7 @@ CPU_DOCS = \ c-m88k.texi \ c-mips.texi \ c-mmix.texi \ + c-msp430.texi \ c-ns32k.texi \ c-pdp11.texi \ c-pj.texi \ @@ -173,7 +172,7 @@ CPU_DOCS = \ # This one isn't ready for prime time yet. Not even a little bit. -noinst_TEXINFOS = internals.texi gasp.texi +noinst_TEXINFOS = internals.texi DISTCLEANFILES = asconfig.texi @@ -195,7 +194,7 @@ DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = tar +TAR = gtar GZIP_ENV = --best all: all-redirect .SUFFIXES: @@ -472,7 +471,7 @@ info: $(MANS) # Build the man page from the texinfo file # The sed command removes the no-adjust Nroff command so that # the man output looks standard. -as.1: $(srcdir)/as.texinfo +as.1: $(srcdir)/as.texinfo asconfig.texi gasver.texi $(CPU_DOCS) touch $@ -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod -($(POD2MAN) as.pod | \ diff -uprN binutils-2.13.90.0.16/gas/doc/all.texi binutils-2.13.90.0.18/gas/doc/all.texi --- binutils-2.13.90.0.16/gas/doc/all.texi Mon Jul 29 08:19:18 2002 +++ binutils-2.13.90.0.18/gas/doc/all.texi Tue Jan 21 10:21:33 2003 @@ -48,6 +48,7 @@ @set MCORE @set MIPS @set MMIX +@set MSP430 @set PDP11 @set PJ @set PPC diff -uprN binutils-2.13.90.0.16/gas/doc/as.texinfo binutils-2.13.90.0.18/gas/doc/as.texinfo --- binutils-2.13.90.0.16/gas/doc/as.texinfo Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/doc/as.texinfo Tue Jan 21 10:21:33 2003 @@ -362,7 +362,9 @@ gcc(1), ld(1), and the Info entries for @ifset M68HC11 @emph{Target M68HC11 options:} - [@b{-m68hc11}|@b{-m68hc12}] + [@b{-m68hc11}|@b{-m68hc12}|@b{-m68hcs12}] + [@b{-mshort}|@b{-mlong}] + [@b{-mshort-double}|@b{-mlong-double}] [@b{--force-long-branchs}] [@b{--short-branchs}] [@b{--strict-direct-mode}] [@b{--print-insn-syntax}] [@b{--print-opcodes}] [@b{--generate-example}] @@ -381,7 +383,8 @@ gcc(1), ld(1), and the Info entries for [@b{-non_shared}] [@b{-xgot}] [@b{--membedded-pic}] [@b{-mabi}=@var{ABI}] [@b{-32}] [@b{-n32}] [@b{-64}] [@b{-mfp32}] [@b{-mgp32}] [@b{-march}=@var{CPU}] [@b{-mtune}=@var{CPU}] [@b{-mips1}] [@b{-mips2}] - [@b{-mips3}] [@b{-mips4}] [@b{-mips5}] [@b{-mips32}] [@b{-mips64}] + [@b{-mips3}] [@b{-mips4}] [@b{-mips5}] [@b{-mips32}] [@b{-mips32r2}] + [@b{-mips64}] [@b{-construct-floats}] [@b{-no-construct-floats}] [@b{-trap}] [@b{-no-break}] [@b{-break}] [@b{-no-trap}] [@b{-mfix7000}] [@b{-mno-fix7000}] @@ -798,10 +801,22 @@ Motorola 68HC11 or 68HC12 series. @table @gcctabopt -@item -m68hc11 | -m68hc12 +@item -m68hc11 | -m68hc12 | -m68hcs12 Specify what processor is the target. The default is defined by the configuration option when building the assembler. +@item -mshort +Specify to use the 16-bit integer ABI. + +@item -mlong +Specify to use the 32-bit integer ABI. + +@item -mshort-double +Specify to use the 32-bit double ABI. + +@item -mlong-double +Specify to use the 64-bit double ABI. + @item --force-long-branchs Relative branches are turned into absolute ones. This concerns conditional branches, unconditional branches and branches to a @@ -895,13 +910,16 @@ Generate ``little endian'' format output @itemx -mips4 @itemx -mips5 @itemx -mips32 +@itemx -mips32r2 @itemx -mips64 Generate code for a particular @sc{mips} Instruction Set Architecture level. @samp{-mips1} is an alias for @samp{-march=r3000}, @samp{-mips2} is an alias for @samp{-march=r6000}, @samp{-mips3} is an alias for @samp{-march=r4000} and @samp{-mips4} is an alias for @samp{-march=r8000}. -@samp{-mips5}, @samp{-mips32}, and @samp{-mips64} correspond to generic -@samp{MIPS V}, @samp{MIPS32}, and @samp{MIPS64} ISA processors, +@samp{-mips5}, @samp{-mips32}, @samp{-mips32r2}, and @samp{-mips64} +correspond to generic +@samp{MIPS V}, @samp{MIPS32}, @samp{MIPS32 Release 2}, and +@samp{MIPS64} ISA processors, respectively. @item -march=@var{CPU} @@ -1389,7 +1407,7 @@ gcc -c -g -O -Wa,-alh,-L file.c @noindent This passes two options to the assembler: @samp{-alh} (emit a listing to -standard output with with high-level and assembly source) and @samp{-L} (retain +standard output with high-level and assembly source) and @samp{-L} (retain local symbols in the symbol table). Usually you do not need to use this @samp{-Wa} mechanism, since many compiler @@ -5744,6 +5762,9 @@ subject, see the hardware manufacturer's @ifset MMIX * MMIX-Dependent:: MMIX Dependent Features @end ifset +@ifset MSP430 +* MSP430-Dependent:: MSP430 Dependent Features +@end ifset @ifset SH * SH-Dependent:: Hitachi SH Dependent Features * SH64-Dependent:: Hitachi SH64 Dependent Features @@ -5892,6 +5913,10 @@ family. @include c-mmix.texi @end ifset +@ifset MSP430 +@include c-msp430.texi +@end ifset + @ifset NS32K @include c-ns32k.texi @end ifset diff -uprN binutils-2.13.90.0.16/gas/doc/c-alpha.texi binutils-2.13.90.0.18/gas/doc/c-alpha.texi --- binutils-2.13.90.0.16/gas/doc/c-alpha.texi Thu Aug 8 22:49:56 2002 +++ binutils-2.13.90.0.18/gas/doc/c-alpha.texi Tue Jan 21 10:21:33 2003 @@ -413,7 +413,7 @@ is in effect. When @code{at} is in effe if @code{$at} is used by the programmer. @item macro -Enables the expasion of macro instructions. Note that variants of real +Enables the expansion of macro instructions. Note that variants of real instructions, such as @code{br label} vs @code{br $31,label} are considered alternate forms and not macros. diff -uprN binutils-2.13.90.0.16/gas/doc/c-arm.texi binutils-2.13.90.0.18/gas/doc/c-arm.texi --- binutils-2.13.90.0.16/gas/doc/c-arm.texi Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gas/doc/c-arm.texi Tue Jan 21 10:21:33 2003 @@ -289,7 +289,7 @@ The ARM family uses @sc{ieee} floating-p This is the generic @var{.align} directive. For the ARM however if the first argument is zero (ie no alignment is needed) the assembler will behave as if the argument had been 2 (ie pad to the next four byte -boundary). This is for compatability with ARM's own assembler. +boundary). This is for compatibility with ARM's own assembler. @cindex @code{req} directive, ARM @item @var{name} .req @var{register name} diff -uprN binutils-2.13.90.0.16/gas/doc/c-d10v.texi binutils-2.13.90.0.18/gas/doc/c-d10v.texi --- binutils-2.13.90.0.16/gas/doc/c-d10v.texi Fri Mar 9 11:17:14 2001 +++ binutils-2.13.90.0.18/gas/doc/c-d10v.texi Tue Jan 21 10:21:33 2003 @@ -227,7 +227,7 @@ Any symbol followed by @code{@@word} wil shifted right by 2. This is used in situations such as loading a register with the address of a function (or any other code fragment). For example, if you want to load a register with the location of the function @code{main} then -jump to that function, you could do it as follws: +jump to that function, you could do it as follows: @smallexample @group ldi r2, main@@word diff -uprN binutils-2.13.90.0.16/gas/doc/c-i370.texi binutils-2.13.90.0.18/gas/doc/c-i370.texi --- binutils-2.13.90.0.16/gas/doc/c-i370.texi Fri Mar 9 11:38:19 2001 +++ binutils-2.13.90.0.18/gas/doc/c-i370.texi Tue Jan 21 10:21:33 2003 @@ -73,7 +73,7 @@ for r3 and rpgt or r.pgt for r4. @samp{*} is the current location counter. Unlike @samp{.} it is always relative to the last USING directive. Note that this means that -expressions cannot use multiplication, as any occurence of @samp{*} +expressions cannot use multiplication, as any occurrence of @samp{*} will be interpreted as a location counter. All labels are relative to the last USING. Thus, branches to a label @@ -103,7 +103,7 @@ directive). @cindex floating point, ESA/390 (@sc{ieee}) @cindex ESA/390 floating point (@sc{ieee}) The assembler generates only @sc{ieee} floating-point numbers. The older -floiating point formats are not supported. +floating point formats are not supported. @node ESA/390 Directives diff -uprN binutils-2.13.90.0.16/gas/doc/c-i960.texi binutils-2.13.90.0.18/gas/doc/c-i960.texi --- binutils-2.13.90.0.16/gas/doc/c-i960.texi Fri Mar 9 11:17:14 2001 +++ binutils-2.13.90.0.18/gas/doc/c-i960.texi Tue Jan 21 10:21:33 2003 @@ -76,7 +76,7 @@ number of times the branch @emph{was} ta @cindex branch statistics table, i960 A table of every such @code{Label} is also generated, so that the external postprocessor @code{gbr960} (supplied by Intel) can locate all -the counters. This table is always labelled @samp{__BRANCH_TABLE__}; +the counters. This table is always labeled @samp{__BRANCH_TABLE__}; this is a local symbol to permit collecting statistics for many separate object files. The table is word aligned, and begins with a two-word header. The first word, initialized to 0, is used in maintaining linked diff -uprN binutils-2.13.90.0.16/gas/doc/c-ia64.texi binutils-2.13.90.0.18/gas/doc/c-ia64.texi --- binutils-2.13.90.0.16/gas/doc/c-ia64.texi Thu Mar 7 11:52:37 2002 +++ binutils-2.13.90.0.18/gas/doc/c-ia64.texi Tue Jan 21 10:21:33 2003 @@ -44,7 +44,7 @@ flag in the ELF file header. This option instructs the assembler to mark the resulting object file as using the ``constant GP without function descriptor'' data model. This model is like the ``constant GP'' model, except that it -additionaly does away with function descriptors. What this means is +additionally does away with function descriptors. What this means is that the address of a function refers directly to the function's code entry-point. Normally, such an address would refer to a function descriptor, which contains both the code entry-point and the GP-value diff -uprN binutils-2.13.90.0.16/gas/doc/c-mips.texi binutils-2.13.90.0.18/gas/doc/c-mips.texi --- binutils-2.13.90.0.16/gas/doc/c-mips.texi Wed Oct 2 10:17:19 2002 +++ binutils-2.13.90.0.18/gas/doc/c-mips.texi Tue Jan 21 10:21:33 2003 @@ -65,13 +65,15 @@ to select big-endian output, and @samp{- @itemx -mips4 @itemx -mips5 @itemx -mips32 +@itemx -mips32r2 @itemx -mips64 Generate code for a particular MIPS Instruction Set Architecture level. @samp{-mips1} corresponds to the @sc{r2000} and @sc{r3000} processors, @samp{-mips2} to the @sc{r6000} processor, @samp{-mips3} to the @sc{r4000} processor, and @samp{-mips4} to the @sc{r8000} and -@sc{r10000} processors. @samp{-mips5}, @samp{-mips32}, and -@samp{-mips64} correspond to generic @sc{MIPS V}, @sc{MIPS32}, and +@sc{r10000} processors. @samp{-mips5}, @samp{-mips32}, @samp{-mips32r2}, and +@samp{-mips64} correspond to generic @sc{MIPS V}, @sc{MIPS32}, +@sc{MIPS32 Release 2}, and @sc{MIPS64} ISA processors, respectively. You can also switch instruction sets during the assembly; see @ref{MIPS ISA, Directives to override the ISA level}. @@ -286,8 +288,8 @@ assembly language programmers! @kindex @code{.set mips@var{n}} @sc{gnu} @code{@value{AS}} supports an additional directive to change the @sc{mips} Instruction Set Architecture level on the fly: @code{.set -mips@var{n}}. @var{n} should be a number from 0 to 5, or 32 or 64. -The values 1 to 5, 32, and 64 make the assembler accept instructions +mips@var{n}}. @var{n} should be a number from 0 to 5, or 32, 32r2, or 64. +The values other than 0 make the assembler accept instructions for the corresponding @sc{isa} level, from that point on in the assembly. @code{.set mips@var{n}} affects not only which instructions are permitted, but also how certain macros are expanded. @code{.set diff -uprN binutils-2.13.90.0.16/gas/doc/c-mmix.texi binutils-2.13.90.0.18/gas/doc/c-mmix.texi --- binutils-2.13.90.0.16/gas/doc/c-mmix.texi Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gas/doc/c-mmix.texi Tue Jan 21 10:21:33 2003 @@ -65,7 +65,7 @@ at link time if the operand does not fit The @code{mmixal} documentation (@pxref{mmixsite}) specifies that global registers allocated with the @samp{GREG} directive (@pxref{MMIX-greg}) and initialized to the same non-zero value, will refer to the same global -register. This isn't strictly enforcable in @code{@value{AS}} since the +register. This isn't strictly enforceable in @code{@value{AS}} since the final addresses aren't known until link-time, but it will do an effort unless the @samp{--no-merge-gregs} option is specified. (Register merging isn't yet implemented in @code{@value{LD}}.) diff -uprN binutils-2.13.90.0.16/gas/doc/c-msp430.texi binutils-2.13.90.0.18/gas/doc/c-msp430.texi --- binutils-2.13.90.0.16/gas/doc/c-msp430.texi Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/doc/c-msp430.texi Tue Jan 21 10:21:33 2003 @@ -0,0 +1,164 @@ +@c Copyright 2002 Free Software Foundation, Inc. +@c This is part of the GAS manual. +@c For copying conditions, see the file as.texinfo. +@ifset GENERIC +@page +@node MSP430-Dependent +@chapter MSP 430 Dependent Features +@end ifset +@ifclear GENERIC +@node Machine Dependencies +@chapter MSP 430 Dependent Features +@end ifclear + +@cindex MSP 430 support +@cindex 430 support +@menu +* MSP430 Options:: Options +* MSP430 Syntax:: Syntax +* MSP430 Floating Point:: Floating Point +* MSP430 Directives:: MSP 430 Machine Directives +* MSP430 Opcodes:: Opcodes +@end menu + +@node MSP430 Options +@section Options +@cindex MSP 430 options (none) +@cindex options for MSP430 (none) +@code{@value{AS}} has only -m flag which selects the mpu arch. Currently has +no effect. + +@node MSP430 Syntax +@section Syntax +@menu +* MSP430-Macros:: Macros +* MSP430-Chars:: Special Characters +* MSP430-Regs:: Register Names +* MSP430-Ext:: Assembler Extensions +@end menu + +@node MSP430-Macros +@subsection Macros + +@cindex Macros, MSP 430 +@cindex MSP 430 macros +The macro syntax used on the MSP 430 is like that described in the MSP +430 Family Assembler Specification. Normal @code{@value{AS}} +macros should still work. + +Additional built-in macros are: + +@table @code + +@item llo(exp) +Extracts least significant word from 32-bit expression 'exp'. + +@item lhi(exp) +Extracts most significant word from 32-bit expression 'exp'. + +@item hlo(exp) +Extracts 3rd word from 64-bit expression 'exp'. + +@item hhi(exp) +Extracts 4rd word from 64-bit expression 'exp'. + +@end table + +They normally being used as an immediate source operand. +@smallexample + mov #llo(1), r10 ; == mov #1, r10 + mov #lhi(1), r10 ; == mov #0, r10 +@end smallexample + +@node MSP430-Chars +@subsection Special Characters + +@cindex line comment character, MSP 430 +@cindex MSP 430 line comment character +@samp{;} is the line comment character. + +@cindex identifiers, MSP 430 +@cindex MSP 430 identifiers +The character @samp{$} in jump instructions indicates current location and +implemented only for TI syntax compatibility. + +@node MSP430-Regs +@subsection Register Names + +@cindex MSP 430 register names +@cindex register names, MSP 430 +General-purpose registers are represented by predefined symbols of the +form @samp{r@var{N}} (for global registers), where @var{N} represents +a number between @code{0} and @code{15}. The leading +letters may be in either upper or lower case; for example, @samp{r13} +and @samp{R7} are both valid register names. + +@cindex special purpose registers, MSP 430 +Register names @samp{PC}, @samp{SP} and @samp{SR} cannot be used as register names +and will be treated as variables. Use @samp{r0}, @samp{r1}, and @samp{r2} instead. + + +@node MSP430-Ext +@subsection Assembler Extensions +@cindex MSP430 Assembler Extensions + +@table @code + +@item @@rN +As destination operand being treated as @samp{0(rn)} + +@item 0(rN) +As source operand being treated as @samp{@@rn} + +@item jCOND +N +Skips next N bytes followed by jump instruction and equivalent to +@samp{jCOND $+N+2} + +@end table + + +@node MSP430 Floating Point +@section Floating Point + +@cindex floating point, MSP 430 (@sc{ieee}) +@cindex MSP 430 floating point (@sc{ieee}) +The MSP 430 family uses @sc{ieee} 32-bit floating-point numbers. + +@node MSP430 Directives +@section MSP 430 Machine Directives + +@cindex machine directives, MSP 430 +@cindex MSP 430 machine directives +@table @code +@cindex @code{file} directive, MSP 430 +@item .file +This directive is ignored; it is accepted for compatibility with other +MSP 430 assemblers. + +@quotation +@emph{Warning:} in other versions of the @sc{gnu} assembler, @code{.file} is +used for the directive called @code{.app-file} in the MSP 430 support. +@end quotation + +@cindex @code{line} directive, MSP 430 +@item .line +This directive is ignored; it is accepted for compatibility with other +MSP 430 assemblers. + +@cindex @code{sect} directive, MSP 430 +@item .arch +Currently this directive is ignored; it is accepted for compatibility with other +MSP 430 assemblers. + +@end table + +@node MSP430 Opcodes +@section Opcodes + +@cindex MSP 430 opcodes +@cindex opcodes for MSP 430 +@code{@value{AS}} implements all the standard MSP 430 opcodes. No +additional pseudo-instructions are needed on this family. + +For information on the 430 machine instruction set, see @cite{MSP430 +User's Manual, document slau049b}, Texas Instrument, Inc. diff -uprN binutils-2.13.90.0.16/gas/doc/c-ns32k.texi binutils-2.13.90.0.18/gas/doc/c-ns32k.texi --- binutils-2.13.90.0.16/gas/doc/c-ns32k.texi Fri Mar 9 11:17:15 2001 +++ binutils-2.13.90.0.18/gas/doc/c-ns32k.texi Tue Jan 21 10:21:33 2003 @@ -16,7 +16,7 @@ is compiled. @section Syntax I don't know anything about the 32x32 syntax assembled by -@code{@value{AS}}. Someone who undersands the processor (I've never seen +@code{@value{AS}}. Someone who understands the processor (I've never seen one) and the possible syntaxes should write this section. @section Floating Point diff -uprN binutils-2.13.90.0.16/gas/doc/c-pdp11.texi binutils-2.13.90.0.18/gas/doc/c-pdp11.texi --- binutils-2.13.90.0.16/gas/doc/c-pdp11.texi Fri Mar 9 11:17:15 2001 +++ binutils-2.13.90.0.18/gas/doc/c-pdp11.texi Tue Jan 21 10:21:33 2003 @@ -40,7 +40,7 @@ Generate position-independent (or positi The default is to generate position-independent code. @end table -@subsection Instruction Set Extention Options +@subsection Instruction Set Extension Options These options enables or disables the use of extensions over the base line instruction set as introduced by the first PDP-11 CPU: the KA11. @@ -63,7 +63,7 @@ Disable all instruction set extensions. @cindex -mcis @cindex -mno-cis @item -mcis | -mno-cis -Enable (or disable) the use of the commersial instruction set, which +Enable (or disable) the use of the commercial instruction set, which consists of these instructions: @code{ADDNI}, @code{ADDN}, @code{ADDPI}, @code{ADDP}, @code{ASHNI}, @code{ASHN}, @code{ASHPI}, @code{ASHP}, @code{CMPCI}, @code{CMPC}, @code{CMPNI}, @code{CMPN}, @code{CMPPI}, @@ -96,7 +96,7 @@ consists of these instructions: @code{AS @cindex -mno-kev11 @item -mfis | -mkev11 @itemx -mno-fis | -mno-kev11 -Enable (or diasble) the use of the KEV11 floating-point instructions: +Enable (or disable) the use of the KEV11 floating-point instructions: @code{FADD}, @code{FDIV}, @code{FMUL}, and @code{FSUB}. @cindex -mfpp diff -uprN binutils-2.13.90.0.16/gas/doc/c-pj.texi binutils-2.13.90.0.18/gas/doc/c-pj.texi --- binutils-2.13.90.0.16/gas/doc/c-pj.texi Fri Mar 9 11:17:15 2001 +++ binutils-2.13.90.0.18/gas/doc/c-pj.texi Tue Jan 21 10:21:33 2003 @@ -15,7 +15,7 @@ @cindex PJ options @cindex options, PJ -@code{@value{AS}} has two addiitional command-line options for the picoJava +@code{@value{AS}} has two additional command-line options for the picoJava architecture. @table @code @item -ml diff -uprN binutils-2.13.90.0.16/gas/doc/c-sh64.texi binutils-2.13.90.0.18/gas/doc/c-sh64.texi --- binutils-2.13.90.0.16/gas/doc/c-sh64.texi Thu Mar 7 11:52:37 2002 +++ binutils-2.13.90.0.18/gas/doc/c-sh64.texi Tue Jan 21 10:21:33 2003 @@ -144,7 +144,7 @@ example: In that example, the first longword may or may not have the least significant bit set depending on whether the label is an SHmedia label or an SHcompact label. The second longword will be the actual address -of the label, regardless of what type of lable it is. +of the label, regardless of what type of label it is. @node SH64 Directives @section SH64 Machine Directives diff -uprN binutils-2.13.90.0.16/gas/doc/c-sparc.texi binutils-2.13.90.0.18/gas/doc/c-sparc.texi --- binutils-2.13.90.0.16/gas/doc/c-sparc.texi Fri Mar 9 11:17:15 2001 +++ binutils-2.13.90.0.18/gas/doc/c-sparc.texi Tue Jan 21 10:21:33 2003 @@ -162,7 +162,7 @@ line is also ignored. This directive declares use of a global application or system register. It must be followed by a register name %g2, %g3, %g6 or %g7, comma and the symbol name for that register. If symbol name is @code{#scratch}, -it is a scratch register, if it is @code{#ignore}, it just surpresses any +it is a scratch register, if it is @code{#ignore}, it just suppresses any errors about using undeclared global register, but does not emit any information about it into the object file. This can be useful e.g. if you save the register before use and restore it after. diff -uprN binutils-2.13.90.0.16/gas/doc/c-tic54x.texi binutils-2.13.90.0.18/gas/doc/c-tic54x.texi --- binutils-2.13.90.0.16/gas/doc/c-tic54x.texi Fri Mar 9 11:17:15 2001 +++ binutils-2.13.90.0.18/gas/doc/c-tic54x.texi Tue Jan 21 10:21:33 2003 @@ -618,7 +618,7 @@ equivalent of those, and the structure o @code{.field} and @code{.string} are also allowed; the size of @code{.field} is one bit, and @code{.string} is considered to be one word in size. Only element descriptors, structure/union tags, -@code{.align} and conditioanl assembly directies are allowed within +@code{.align} and conditional assembly directives are allowed within @code{.struct}/@code{.endstruct}. @code{.align} aligns member offsets to word boundaries only. @var{ssize}, if provided, will always be assigned the size of the structure. @@ -650,7 +650,7 @@ Starting offset for the union is always @cindex @code{usect} directive, C54X @item [@var{symbol}] .usect "@var{section_name}", @var{size}, [,[@var{blocking_flag}] [,@var{alignment_flag}]] -Reserve space for variables in a named, uninitialzed section (similar to +Reserve space for variables in a named, uninitialized section (similar to .bss). @code{.usect} allows definitions sections independent of .bss. @var{symbol} points to the first location reserved by this allocation. The symbol may be used as a variable name. @var{size} is the allocated @@ -692,7 +692,7 @@ If the number of arguments passed the ma number of parameters defined, the last parameter is assigned the string equivalent of all remaining arguments. If fewer arguments are given than parameters, the missing parameters are assigned empty strings. To -include a comma in an argument, you must enclose the agument in quotes. +include a comma in an argument, you must enclose the argument in quotes. @cindex subsym builtins, C54X @cindex C54X subsym builtins @@ -764,4 +764,4 @@ Returns the reference point of the struc The following symbols are recognized as memory-mapped registers: @table @code -@end table \ No newline at end of file +@end table diff -uprN binutils-2.13.90.0.16/gas/doc/c-v850.texi binutils-2.13.90.0.18/gas/doc/c-v850.texi --- binutils-2.13.90.0.16/gas/doc/c-v850.texi Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/doc/c-v850.texi Tue Jan 21 10:21:33 2003 @@ -281,7 +281,7 @@ address of the label 'here' and store it @samp{movea lo(here), r6, r6} The reason for this special behaviour is that movea performs a sign -extention on its immediate operand. So for example if the address of +extension on its immediate operand. So for example if the address of 'here' was 0xFFFFFFFF then without the special behaviour of the hi() pseudo-op the movhi instruction would put 0xFFFF0000 into r6, then the movea instruction would takes its immediate operand, 0xFFFF, sign extend diff -uprN binutils-2.13.90.0.16/gas/doc/c-vax.texi binutils-2.13.90.0.18/gas/doc/c-vax.texi --- binutils-2.13.90.0.16/gas/doc/c-vax.texi Fri Mar 9 11:17:15 2001 +++ binutils-2.13.90.0.18/gas/doc/c-vax.texi Tue Jan 21 10:21:33 2003 @@ -2,7 +2,7 @@ @c Free Software Foundation, Inc. @c This is part of the GAS manual. @c For copying conditions, see the file as.texinfo. -@c VAX/VMS description exhanced and corrected by Klaus K"aempf, kkaempf@progis.de +@c VAX/VMS description enhanced and corrected by Klaus K"aempf, kkaempf@progis.de @ifset GENERIC @node Vax-Dependent @chapter VAX Dependent Features diff -uprN binutils-2.13.90.0.16/gas/doc/gasp.texi binutils-2.13.90.0.18/gas/doc/gasp.texi --- binutils-2.13.90.0.16/gas/doc/gasp.texi Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/gas/doc/gasp.texi Wed Dec 31 16:00:00 1969 @@ -1,1456 +0,0 @@ -\input texinfo @c -*- Texinfo -*- -@setfilename gasp.info -@c -@c This file documents the assembly preprocessor "GASP" -@c -@c Copyright 1994, 1995, 2000, 2002 Free Software Foundation, Inc. -@c -@c Permission is granted to copy, distribute and/or modify this document -@c under the terms of the GNU Free Documentation License, Version 1.1 -@c or any later version published by the Free Software Foundation; -@c with no Invariant Sections, with no Front-Cover Texts, and with no -@c Back-Cover Texts. A copy of the license is included in the -@c section entitled "GNU Free Documentation License". - -@ifinfo -@format -START-INFO-DIR-ENTRY -* gasp: (gasp). The GNU Assembler Preprocessor -END-INFO-DIR-ENTRY -@end format -@end ifinfo - -@syncodeindex ky cp -@syncodeindex fn cp - -@finalout -@setchapternewpage odd -@settitle GASP -@titlepage -@c FIXME boring title -@title GASP, an assembly preprocessor -@subtitle for GASP version 1 -@sp 1 -@subtitle March 1994 -@author Roland Pesch -@page - -@tex -{\parskip=0pt \hfill Cygnus Support\par -} -@end tex - -@vskip 0pt plus 1filll -Copyright @copyright{} 1994, 1995, 2000, 2002 Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with no - Back-Cover Texts. A copy of the license is included in the - section entitled "GNU Free Documentation License". - -@end titlepage - -@ifinfo -Copyright @copyright{} 1994, 1995, 2000, 2002 Free Software Foundation, Inc. - -@ignore -Permission is granted to process this file through TeX and print the -results, provided the printed document carries a copying permission -notice identical to this one except for the removal of this paragraph -(this paragraph not being relevant to the printed manual). -@end ignore - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with no - Back-Cover Texts. A copy of the license is included in the - section entitled "GNU Free Documentation License". - - -@node Top -@top GASP - -GASP is a preprocessor for assembly programs. - -This file describes version 1 of GASP. - -Steve Chamberlain wrote GASP; Roland Pesch wrote this manual. - -@menu -* Overview:: What is GASP? -* Invoking GASP:: Command line options. -* Commands:: Preprocessor commands. -* GNU Free Documentation License:: GNU Free Documentation License -* Index:: Index. -@end menu -@end ifinfo - -@node Overview -@chapter What is GASP? - -The primary purpose of the @sc{gnu} assembler is to assemble the output of -other programs---notably compilers. When you have to hand-code -specialized routines in assembly, that means the @sc{gnu} assembler is -an unfriendly processor: it has no directives for macros, conditionals, -or many other conveniences that you might expect. - -In some cases you can simply use the C preprocessor, or a generalized -preprocessor like @sc{m4}; but this can be awkward, since none of these -things are designed with assembly in mind. - -@sc{gasp} fills this need. It is expressly designed to provide the -facilities you need with hand-coded assembly code. Implementing it as a -preprocessor, rather than part of the assembler, allows the maximum -flexibility: you can use it with hand-coded assembly, without paying a -penalty of added complexity in the assembler you use for compiler -output. - -@emph{Note} The use of @sc{gasp} has now been deprecated. Anything -that it could do can now be done by the macro facilities built into -@sc{gas} itself. At some point in the future the @sc{gasp} sources will -be removed entirely from the binutils distribution. - -Here is a small example to give the flavor of @sc{gasp}. This input to -@sc{gasp} - -@cartouche -@example - .MACRO saveregs from=8 to=14 -count .ASSIGNA \from - ! save r\from..r\to - .AWHILE \&count LE \to - mov r\&count,@@-sp -count .ASSIGNA \&count + 1 - .AENDW - .ENDM - - saveregs from=12 - -bar: mov #H'dead+10,r0 -foo .SDATAC "hello"<10> - .END -@end example -@end cartouche - -@noindent -generates this assembly program: - -@cartouche -@example - ! save r12..r14 - mov r12,@@-sp - mov r13,@@-sp - mov r14,@@-sp - -bar: mov #57005+10,r0 -foo: .byte 6,104,101,108,108,111,10 -@end example -@end cartouche - -@node Invoking GASP -@chapter Command Line Options - -@c FIXME! Or is there a simpler way, calling from GAS option? -The simplest way to use @sc{gasp} is to run it as a filter and assemble -its output. In Unix and its ilk, you can do this, for example: - -@c FIXME! GASP filename suffix convention? -@example -$ gasp prog.asm | as -o prog.o -@end example - -Naturally, there are also a few command-line options to allow you to -request variations on this basic theme. Here is the full set of -possibilities for the @sc{gasp} command line. - -@example -gasp [ -a | --alternate ] - [ -c @var{char} | --commentchar @var{char} ] - [ -d | --debug ] [ -h | --help ] [ -M | --mri ] - [ -o @var{outfile} | --output @var{outfile} ] - [ -p | --print ] [ -s | --copysource ] - [ -u | --unreasonable ] [ -v | --version ] - @var{infile} @dots{} -@end example - -@ftable @code -@item @var{infile} @dots{} -@c FIXME! Why not stdin as default infile? -The input file names. You must specify at least one input file; if you -specify more, @sc{gasp} preprocesses them all, concatenating the output -in the order you list the @var{infile} arguments. - -Mark the end of each input file with the preprocessor command -@code{.END}. @xref{Other Commands,, Miscellaneous commands}. - -@item -a -@itemx --alternate -Use alternative macro syntax. @xref{Alternate,, Alternate macro -syntax}, for a discussion of how this syntax differs from the default -@sc{gasp} syntax. - -@cindex comment character, changing -@cindex semicolon, as comment -@cindex exclamation mark, as comment -@cindex shriek, as comment -@cindex bang, as comment -@cindex @code{!} default comment char -@cindex @code{;} as comment char -@item -c '@var{char}' -@itemx --commentchar '@var{char}' -Use @var{char} as the comment character. The default comment character -is @samp{!}. For example, to use a semicolon as the comment character, -specify @w{@samp{-c ';'}} on the @sc{gasp} command line. Since -assembler command characters often have special significance to command -shells, it is a good idea to quote or escape @var{char} when you specify -a comment character. - -For the sake of simplicity, all examples in this manual use the default -comment character @samp{!}. - -@item -d -@itemx --debug -Show debugging statistics. In this version of @sc{gasp}, this option -produces statistics about the string buffers that @sc{gasp} allocates -internally. For each defined buffersize @var{s}, @sc{gasp} shows the -number of strings @var{n} that it allocated, with a line like this: - -@example -strings size @var{s} : @var{n} -@end example - -@noindent -@sc{gasp} displays these statistics on the standard error stream, when -done preprocessing. - -@item -h -@itemx --help -Display a summary of the @sc{gasp} command line options. - -@item -M -@itemx --mri -Use MRI compatibility mode. Using this option causes @sc{gasp} to -accept the syntax and pseudo-ops used by the Microtec Research -@code{ASM68K} assembler. - -@item -o @var{outfile} -@itemx --output @var{outfile} -Write the output in a file called @var{outfile}. If you do not use the -@samp{-o} option, @sc{gasp} writes its output on the standard output -stream. - -@item -p -@itemx --print -Print line numbers. @sc{gasp} obeys this option @emph{only} if you also -specify @samp{-s} to copy source lines to its output. With @samp{-s --p}, @sc{gasp} displays the line number of each source line copied -(immediately after the comment character at the beginning of the line). - -@item -s -@itemx --copysource -Copy the source lines to the output file. Use this option -to see the effect of each preprocessor line on the @sc{gasp} output. -@sc{gasp} places a comment character (@samp{!} by default) at -the beginning of each source line it copies, so that you can use this -option and still assemble the result. - -@item -u -@itemx --unreasonable -Bypass ``unreasonable expansion'' limit. Since you can define @sc{gasp} -macros inside other macro definitions, the preprocessor normally -includes a sanity check. If your program requires more than 1,000 -nested expansions, @sc{gasp} normally exits with an error message. Use -this option to turn off this check, allowing unlimited nested -expansions. - -@item -v -@itemx --version -Display the @sc{gasp} version number. -@end ftable - -@node Commands -@chapter Preprocessor Commands - -@sc{gasp} commands have a straightforward syntax that fits in well with -assembly conventions. In general, a command extends for a line, and may -have up to three fields: an optional label, the command itself, and -optional arguments to the command. You can write commands in upper or -lower case, though this manual shows them in upper case. @xref{Syntax -Details,, Details of the GASP syntax}, for more information. - -@menu -* Conditionals:: -* Loops:: -* Variables:: -* Macros:: -* Data:: -* Listings:: -* Other Commands:: -* Syntax Details:: -* Alternate:: -@end menu - -@node Conditionals -@section Conditional assembly - -The conditional-assembly directives allow you to include or exclude -portions of an assembly depending on how a pair of expressions, or a -pair of strings, compare. - -The overall structure of conditionals is familiar from many other -contexts. @code{.AIF} marks the start of a conditional, and precedes -assembly for the case when the condition is true. An optional -@code{.AELSE} precedes assembly for the converse case, and an -@code{.AENDI} marks the end of the condition. - -@c FIXME! Why doesn't -u turn off this check? -You may nest conditionals up to a depth of 100; @sc{gasp} rejects -nesting beyond that, because it may indicate a bug in your macro -structure. - -@c FIXME! Why isn't there something like cpp's -D option? Conditionals -@c would be much more useful if there were. -Conditionals are primarily useful inside macro definitions, where you -often need different effects depending on argument values. -@xref{Macros,, Defining your own directives}, for details about defining -macros. - -@ftable @code -@item .AIF @var{expra} @var{cmp} @var{exprb} -@itemx .AIF "@var{stra}" @var{cmp} "@var{strb}" - -The governing condition goes on the same line as the @code{.AIF} -preprocessor command. You may compare either two strings, or two -expressions. - -When you compare strings, only two conditional @var{cmp} comparison -operators are available: @samp{EQ} (true if @var{stra} and @var{strb} -are identical), and @samp{NE} (the opposite). - -When you compare two expressions, @emph{both expressions must be -absolute} (@pxref{Expressions,, Arithmetic expressions in GASP}). You -can use these @var{cmp} comparison operators with expressions: - -@ftable @code -@item EQ -Are @var{expra} and @var{exprb} equal? (For strings, are @var{stra} and -@var{strb} identical?) - -@item NE -Are @var{expra} and @var{exprb} different? (For strings, are @var{stra} -and @var{strb} different? - -@item LT -Is @var{expra} less than @var{exprb}? (Not allowed for strings.) - -@item LE -Is @var{expra} less than or equal to @var{exprb}? (Not allowed for strings.) - -@item GT -Is @var{expra} greater than @var{exprb}? (Not allowed for strings.) - -@item GE -Is @var{expra} greater than or equal to @var{exprb}? (Not allowed for -strings.) -@end ftable - -@item .AELSE -Marks the start of assembly code to be included if the condition fails. -Optional, and only allowed within a conditional (between @code{.AIF} and -@code{.AENDI}). - -@item .AENDI -Marks the end of a conditional assembly. -@end ftable - -@node Loops -@section Repetitive sections of assembly - -Two preprocessor directives allow you to repeatedly issue copies of the -same block of assembly code. - -@ftable @code -@item .AREPEAT @var{aexp} -@itemx .AENDR -If you simply need to repeat the same block of assembly over and over a -fixed number of times, sandwich one instance of the repeated block -between @code{.AREPEAT} and @code{.AENDR}. Specify the number of -copies as @var{aexp} (which must be an absolute expression). For -example, this repeats two assembly statements three times in succession: - -@cartouche -@example - .AREPEAT 3 - rotcl r2 - div1 r0,r1 - .AENDR -@end example -@end cartouche - -@item .AWHILE @var{expra} @var{cmp} @var{exprb} -@itemx .AENDW -@itemx .AWHILE @var{stra} @var{cmp} @var{strb} -@itemx .AENDW -To repeat a block of assembly depending on a conditional test, rather -than repeating it for a specific number of times, use @code{.AWHILE}. -@code{.AENDW} marks the end of the repeated block. The conditional -comparison works exactly the same way as for @code{.AIF}, with the same -comparison operators (@pxref{Conditionals,, Conditional assembly}). - -Since the terms of the comparison must be absolute expression, -@code{.AWHILE} is primarily useful within macros. @xref{Macros,, -Defining your own directives}. -@end ftable - -@cindex loops, breaking out of -@cindex breaking out of loops -You can use the @code{.EXITM} preprocessor directive to break out of -loops early (as well as to break out of macros). @xref{Macros,, -Defining your own directives}. - -@node Variables -@section Preprocessor variables - -You can use variables in @sc{gasp} to represent strings, registers, or -the results of expressions. - -You must distinguish two kinds of variables: -@enumerate -@item -Variables defined with @code{.EQU} or @code{.ASSIGN}. To evaluate this -kind of variable in your assembly output, simply mention its name. For -example, these two lines define and use a variable @samp{eg}: - -@cartouche -@example -eg .EQU FLIP-64 - @dots{} - mov.l eg,r0 -@end example -@end cartouche - -@emph{Do not use} this kind of variable in conditional expressions or -while loops; @sc{gasp} only evaluates these variables when writing -assembly output. - -@item -Variables for use during preprocessing. You can define these -with @code{.ASSIGNC} or @code{.ASSIGNA}. To evaluate this -kind of variable, write @samp{\&} before the variable name; for example, - -@cartouche -@example -opcit .ASSIGNA 47 - @dots{} - .AWHILE \&opcit GT 0 - @dots{} - .AENDW -@end example -@end cartouche - -@sc{gasp} treats macro arguments almost the same way, but to evaluate -them you use the prefix @samp{\} rather than @samp{\&}. -@xref{Macros,, Defining your own directives}. -@end enumerate - -@ftable @code -@item @var{pvar} .EQU @var{expr} -@c FIXME! Anything to beware of re GAS directive of same name? -Assign preprocessor variable @var{pvar} the value of the expression -@var{expr}. There are no restrictions on redefinition; use @samp{.EQU} -with the same @var{pvar} as often as you find it convenient. - -@item @var{pvar} .ASSIGN @var{expr} -Almost the same as @code{.EQU}, save that you may not redefine -@var{pvar} using @code{.ASSIGN} once it has a value. -@c FIXME!! Supposed to work this way, apparently, but on 9feb94 works -@c just like .EQU - -@item @var{pvar} .ASSIGNA @var{aexpr} -Define a variable with a numeric value, for use during preprocessing. -@var{aexpr} must be an absolute expression. You can redefine variables -with @code{.ASSIGNA} at any time. - -@item @var{pvar} .ASSIGNC "@var{str}" -Define a variable with a string value, for use during preprocessing. -You can redefine variables with @code{.ASSIGNC} at any time. - -@item @var{pvar} .REG (@var{register}) -Use @code{.REG} to define a variable that represents a register. In -particular, @var{register} is @emph{not evaluated} as an expression. -You may use @code{.REG} at will to redefine register variables. -@end ftable - -All these directives accept the variable name in the ``label'' position, -that is at the left margin. You may specify a colon after the variable -name if you wish; the first example above could have started @samp{eg:} -with the same effect. - -@c pagebreak makes for better aesthetics---ensures macro and expansion together -@page -@node Macros -@section Defining your own directives - -The commands @code{.MACRO} and @code{.ENDM} allow you to define macros -that generate assembly output. You can use these macros with a syntax -similar to built-in @sc{gasp} or assembler directives. For example, -this definition specifies a macro @code{SUM} that adds together a range of -consecutive registers: - -@cartouche -@example - .MACRO SUM FROM=0, TO=9 - ! \FROM \TO - mov r\FROM,r10 -COUNT .ASSIGNA \FROM+1 - .AWHILE \&COUNT LE \TO - add r\&COUNT,r10 -COUNT .ASSIGNA \&COUNT+1 - .AENDW - .ENDM -@end example -@end cartouche - -@noindent -With that definition, @samp{SUM 0,5} generates this assembly output: - -@cartouche -@example - ! 0 5 - mov r0,r10 - add r1,r10 - add r2,r10 - add r3,r10 - add r4,r10 - add r5,r10 -@end example -@end cartouche - -@ftable @code -@item .MACRO @var{macname} -@itemx .MACRO @var{macname} @var{macargs} @dots{} -Begin the definition of a macro called @var{macname}. If your macro -definition requires arguments, specify their names after the macro name, -separated by commas or spaces. You can supply a default value for any -macro argument by following the name with @samp{=@var{deflt}}. For -example, these are all valid @code{.MACRO} statements: - -@table @code -@item .MACRO COMM -Begin the definition of a macro called @code{COMM}, which takes no -arguments. - -@item .MACRO PLUS1 P, P1 -@itemx .MACRO PLUS1 P P1 -Either statement begins the definition of a macro called @code{PLUS1}, -which takes two arguments; within the macro definition, write -@samp{\P} or @samp{\P1} to evaluate the arguments. - -@item .MACRO RESERVE_STR P1=0 P2 -Begin the definition of a macro called @code{RESERVE_STR}, with two -arguments. The first argument has a default value, but not the second. -After the definition is complete, you can call the macro either as -@samp{RESERVE_STR @var{a},@var{b}} (with @samp{\P1} evaluating to -@var{a} and @samp{\P2} evaluating to @var{b}), or as @samp{RESERVE_STR -,@var{b}} (with @samp{\P1} evaluating as the default, in this case -@samp{0}, and @samp{\P2} evaluating to @var{b}). -@end table - -When you call a macro, you can specify the argument values either by -position, or by keyword. For example, @samp{SUM 9,17} is equivalent to -@samp{SUM TO=17, FROM=9}. Macro arguments are preprocessor variables -similar to the variables you define with @samp{.ASSIGNA} or -@samp{.ASSIGNC}; in particular, you can use them in conditionals or for -loop control. (The only difference is the prefix you write to evaluate -the variable: for a macro argument, write @samp{\@var{argname}}, but for -a preprocessor variable, write @samp{\&@var{varname}}.) - -@item @var{name} .MACRO -@itemx @var{name} .MACRO ( @var{macargs} @dots{} ) -@c FIXME check: I think no error _and_ no args recognized if I use form -@c NAME .MACRO ARG ARG -An alternative form of introducing a macro definition: specify the macro -name in the label position, and the arguments (if any) between -parentheses after the name. Defaulting rules and usage work the same -way as for the other macro definition syntax. - -@item .ENDM -Mark the end of a macro definition. - -@item .EXITM -Exit early from the current macro definition, @code{.AREPEAT} loop, or -@code{.AWHILE} loop. - -@cindex number of macros executed -@cindex macros, count executed -@item \@@ -@sc{gasp} maintains a counter of how many macros it has -executed in this pseudo-variable; you can copy that number to your -output with @samp{\@@}, but @emph{only within a macro definition}. - -@item LOCAL @var{name} [ , @dots{} ] -@emph{Warning: @code{LOCAL} is only available if you select ``alternate -macro syntax'' with @samp{-a} or @samp{--alternate}.} @xref{Alternate,, -Alternate macro syntax}. - -Generate a string replacement for each of the @var{name} arguments, and -replace any instances of @var{name} in each macro expansion. The -replacement string is unique in the assembly, and different for each -separate macro expansion. @code{LOCAL} allows you to write macros that -define symbols, without fear of conflict between separate macro expansions. -@end ftable - -@node Data -@section Data output - -In assembly code, you often need to specify working areas of memory; -depending on the application, you may want to initialize such memory or -not. @sc{gasp} provides preprocessor directives to help you avoid -repetitive coding for both purposes. - -You can use labels as usual to mark the data areas. - -@menu -* Initialized:: -* Uninitialized:: -@end menu - -@node Initialized -@subsection Initialized data - -These are the @sc{gasp} directives for initialized data, and the standard -@sc{gnu} assembler directives they expand to: - -@ftable @code -@item .DATA @var{expr}, @var{expr}, @dots{} -@itemx .DATA.B @var{expr}, @var{expr}, @dots{} -@itemx .DATA.W @var{expr}, @var{expr}, @dots{} -@itemx .DATA.L @var{expr}, @var{expr}, @dots{} -Evaluate arithmetic expressions @var{expr}, and emit the corresponding -@code{as} directive (labelled with @var{lab}). The unqualified -@code{.DATA} emits @samp{.long}; @code{.DATA.B} emits @samp{.byte}; -@code{.DATA.W} emits @samp{.short}; and @code{.DATA.L} emits -@samp{.long}. - -For example, @samp{foo .DATA 1,2,3} emits @samp{foo: .long 1,2,3}. - -@item .DATAB @var{repeat}, @var{expr} -@itemx .DATAB.B @var{repeat}, @var{expr} -@itemx .DATAB.W @var{repeat}, @var{expr} -@itemx .DATAB.L @var{repeat}, @var{expr} -@c FIXME! Looks like gasp accepts and ignores args after 2nd. -Make @code{as} emit @var{repeat} copies of the value of the expression -@var{expr} (using the @code{as} directive @code{.fill}). -@samp{.DATAB.B} repeats one-byte values; @samp{.DATAB.W} repeats -two-byte values; and @samp{.DATAB.L} repeats four-byte values. -@samp{.DATAB} without a suffix repeats four-byte values, just like -@samp{.DATAB.L}. - -@c FIXME! Allowing zero might be useful for edge conditions in macros. -@var{repeat} must be an absolute expression with a positive value. - -@item .SDATA "@var{str}" @dots{} -String data. Emits a concatenation of bytes, precisely as you specify -them (in particular, @emph{nothing is added to mark the end} of the -string). @xref{Constants,, String and numeric constants}, for details -about how to write strings. @code{.SDATA} concatenates multiple -arguments, making it easy to switch between string representations. You -can use commas to separate the individual arguments for clarity, if you -choose. - -@item .SDATAB @var{repeat}, "@var{str}" @dots{} -Repeated string data. The first argument specifies how many copies of -the string to emit; the remaining arguments specify the string, in the -same way as the arguments to @code{.SDATA}. - -@item .SDATAZ "@var{str}" @dots{} -Zero-terminated string data. Just like @code{.SDATA}, except that -@code{.SDATAZ} writes a zero byte at the end of the string. - -@item .SDATAC "@var{str}" @dots{} -Count-prefixed string data. Just like @code{.SDATA}, except that -@sc{gasp} precedes the string with a leading one-byte count. For -example, @samp{.SDATAC "HI"} generates @samp{.byte 2,72,73}. Since the -count field is only one byte, you can only use @code{.SDATAC} for -strings less than 256 bytes in length. -@end ftable - -@node Uninitialized -@subsection Uninitialized data - -@c FIXME! .space different on some platforms, notably HPPA. Config? -Use the @code{.RES}, @code{.SRES}, @code{.SRESC}, and @code{.SRESZ} -directives to reserve memory and leave it uninitialized. @sc{gasp} -resolves these directives to appropriate calls of the @sc{gnu} -@code{as} @code{.space} directive. - -@ftable @code -@item .RES @var{count} -@itemx .RES.B @var{count} -@itemx .RES.W @var{count} -@itemx .RES.L @var{count} -Reserve room for @var{count} uninitialized elements of data. The -suffix specifies the size of each element: @code{.RES.B} reserves -@var{count} bytes, @code{.RES.W} reserves @var{count} pairs of bytes, -and @code{.RES.L} reserves @var{count} quartets. @code{.RES} without a -suffix is equivalent to @code{.RES.L}. - -@item .SRES @var{count} -@itemx .SRES.B @var{count} -@itemx .SRES.W @var{count} -@itemx .SRES.L @var{count} -@c FIXME! This is boring. Shouldn't it at least have a different -@c default size? (e.g. the "S" suggests "string", for which .B -@c would be more appropriate) -@code{.SRES} is a synonym for @samp{.RES}. - -@item .SRESC @var{count} -@itemx .SRESC.B @var{count} -@itemx .SRESC.W @var{count} -@itemx .SRESC.L @var{count} -Like @code{.SRES}, but reserves space for @code{@var{count}+1} elements. - -@item .SRESZ @var{count} -@itemx .SRESZ.B @var{count} -@itemx .SRESZ.W @var{count} -@itemx .SRESZ.L @var{count} -Like @code{.SRES}, but reserves space for @code{@var{count}+1} elements. -@end ftable - -@node Listings -@section Assembly listing control - -The @sc{gasp} listing-control directives correspond to -related @sc{gnu} @code{as} directives. - -@ftable @code -@item .PRINT LIST -@itemx .PRINT NOLIST -Print control. This directive emits the @sc{gnu} @code{as} directive -@code{.list} or @code{.nolist}, according to its argument. @xref{List,, -@code{.list}, as.info, Using as}, for details on how these directives -interact. - -@item .FORM LIN=@var{ln} -@itemx .FORM COL=@var{cols} -@itemx .FORM LIN=@var{ln} COL=@var{cols} -Specify the page size for assembly listings: @var{ln} represents the -number of lines, and @var{cols} the number of columns. You may specify -either page dimension independently, or both together. If you do not -specify the number of lines, @sc{gasp} assumes 60 lines; if you do not -specify the number of columns, @sc{gasp} assumes 132 columns. -(Any values you may have specified in previous instances of @code{.FORM} -do @emph{not} carry over as defaults.) Emits the @code{.psize} -assembler directive. - -@item .HEADING @var{string} -Specify @var{string} as the title of your assembly listings. Emits -@samp{.title "@var{string}"}. - -@item .PAGE -Force a new page in assembly listings. Emits @samp{.eject}. -@end ftable - -@node Other Commands -@section Miscellaneous commands - -@ftable @code -@item .ALTERNATE -Use the alternate macro syntax henceforth in the assembly. -@xref{Alternate,, Alternate macro syntax}. - -@item .ORG -@c FIXME! This is very strange, since _GAS_ understands .org -This command is recognized, but not yet implemented. @sc{gasp} -generates an error message for programs that use @code{.ORG}. - -@item .RADIX @var{s} -@c FIXME no test cases in testsuite/gasp -@sc{gasp} understands numbers in any of base two, eight, ten, or -sixteen. You can encode the base explicitly in any numeric constant -(@pxref{Constants,, String and numeric constants}). If you write -numbers without an explicit indication of the base, the most recent -@samp{.RADIX @var{s}} command determines how they are interpreted. -@var{s} is a single letter, one of the following: - -@table @code -@item .RADIX B -Base 2. - -@item .RADIX Q -Base 8. - -@item .RADIX D -Base 10. This is the original default radix. - -@item .RADIX H -Base 16. -@end table - -You may specify the argument @var{s} in lower case (any of @samp{bqdh}) -with the same effects. - -@item .EXPORT @var{name} -@itemx .GLOBAL @var{name} -@c FIXME! No test cases in testsuite/gasp -Declare @var{name} global (emits @samp{.global @var{name}}). The two -directives are synonymous. - -@item .PROGRAM -No effect: @sc{gasp} accepts this directive, and silently ignores it. - -@item .END -Mark end of each preprocessor file. @sc{gasp} issues a warning if it -reaches end of file without seeing this command. - -@item .INCLUDE "@var{str}" -Preprocess the file named by @var{str}, as if its contents appeared -where the @code{.INCLUDE} directive does. @sc{gasp} imposes a maximum -limit of 30 stacked include files, as a sanity check. -@c FIXME! Why is include depth not affected by -u? - -@item .ALIGN @var{size} -@c FIXME! Why is this not utterly pointless? -Evaluate the absolute expression @var{size}, and emit the assembly -instruction @samp{.align @var{size}} using the result. -@end ftable - -@node Syntax Details -@section Details of the GASP syntax - -Since @sc{gasp} is meant to work with assembly code, its statement -syntax has no surprises for the assembly programmer. - -@cindex whitespace -@emph{Whitespace} (blanks or tabs; @emph{not} newline) is partially -significant, in that it delimits up to three fields in a line. The -amount of whitespace does not matter; you may line up fields in separate -lines if you wish, but @sc{gasp} does not require that. - -@cindex fields of @sc{gasp} source line -@cindex label field -The @emph{first field}, an optional @dfn{label}, must be flush left in a -line (with no leading whitespace) if it appears at all. You may use a -colon after the label if you wish; @sc{gasp} neither requires the colon -nor objects to it (but will not include it as part of the label name). - -@cindex directive field -The @emph{second field}, which must appear after some whitespace, -contains a @sc{gasp} or assembly @dfn{directive}. - -@cindex argument fields -Any @emph{further fields} on a line are @dfn{arguments} to the -directive; you can separate them from one another using either commas or -whitespace. - -@menu -* Markers:: -* Constants:: -* Symbols:: -* Expressions:: -* String Builtins:: -@end menu - -@node Markers -@subsection Special syntactic markers - -@sc{gasp} recognizes a few special markers: to delimit comments, to -continue a statement on the next line, to separate symbols from other -characters, and to copy text to the output literally. (One other -special marker, @samp{\@@}, works only within macro definitions; -@pxref{Macros,, Defining your own directives}.) - -@cindex comments -The trailing part of any @sc{gasp} source line may be a @dfn{comment}. -A comment begins with the first unquoted comment character (@samp{!} by -default), or an escaped or doubled comment character (@samp{\!} or -@samp{!!} by default), and extends to the end of a line. You can -specify what comment character to use with the @samp{-c} option -(@pxref{Invoking GASP,, Command Line Options}). The two kinds of -comment markers lead to slightly different treatment: - -@table @code -@item ! -A single, un-escaped comment character generates an assembly comment in -the @sc{gasp} output. @sc{gasp} evaluates any preprocessor variables -(macro arguments, or variables defined with @code{.ASSIGNA} or -@code{.ASSIGNC}) present. For example, a macro that begins like this - -@example - .MACRO SUM FROM=0, TO=9 - ! \FROM \TO -@end example - -@noindent -issues as the first line of output a comment that records the -values you used to call the macro. - -@c comments, preprocessor-only -@c preprocessor-only comments -@c GASP-only comments -@item \! -@itemx !! -Either an escaped comment character, or a double comment character, -marks a @sc{gasp} source comment. @sc{gasp} does not copy such comments -to the assembly output. -@end table - -@cindex continuation character -@kindex + -To @emph{continue a statement} on the next line of the file, begin the -second line with the character @samp{+}. - -@cindex literal copy to output -@cindex copying literally to output -@cindex preprocessing, avoiding -@cindex avoiding preprocessing -Occasionally you may want to prevent @sc{gasp} from preprocessing some -particular bit of text. To @emph{copy literally} from the @sc{gasp} -source to its output, place @samp{\(} before the string to copy, and -@samp{)} at the end. For example, write @samp{\(\!)} if you need the -characters @samp{\!} in your assembly output. - -@cindex symbol separator -@cindex text, separating from symbols -@cindex symbols, separating from text -To @emph{separate a preprocessor variable} from text to appear -immediately after its value, write a single quote (@code{'}). For -example, @samp{.SDATA "\P'1"} writes a string built by concatenating the -value of @code{P} and the digit @samp{1}. (You cannot achieve this by -writing just @samp{\P1}, since @samp{P1} is itself a valid name for a -preprocessor variable.) - -@node Constants -@subsection String and numeric constants - -There are two ways of writing @dfn{string constants} in @sc{gasp}: as -literal text, and by numeric byte value. Specify a string literal -between double quotes (@code{"@var{str}"}). Specify an individual -numeric byte value as an absolute expression between angle brackets -(@code{<@var{expr}>}. Directives that output strings allow you to -specify any number of either kind of value, in whatever order is -convenient, and concatenate the result. (Alternate syntax mode -introduces a number of alternative string notations; @pxref{Alternate,, -Alternate macro syntax}.) - -@c Details of numeric notation, e.g. base prefixes -You can write @dfn{numeric constants} either in a specific base, or in -whatever base is currently selected (either 10, or selected by the most -recent @code{.RADIX}). - -To write a number in a @emph{specific base}, use the pattern -@code{@var{s}'@var{ddd}}: a base specifier character @var{s}, followed -by a single quote followed by digits @var{ddd}. The base specifier -character matches those you can specify with @code{.RADIX}: @samp{B} for -base 2, @samp{Q} for base 8, @samp{D} for base 10, and @samp{H} for base -16. (You can write this character in lower case if you prefer.) - -You can write floating point constants using the same syntax recognised -by GAS @ref{Flonums,,Flonums,as,The GNU Assembler.}. A constraint is -that these constants will be interpreted as decimal values irrespective -of the currently selected base. - -@c FIXME! What are rules for recognizing number in deflt base? Whatever -@c is left over after parsing other things?? - -@node Symbols -@subsection Symbols - -@sc{gasp} recognizes symbol names that start with any alphabetic character, -@samp{_}, or @samp{$}, and continue with any of the same characters or -with digits. Label names follow the same rules. - -@node Expressions -@subsection Arithmetic expressions in GASP - -@cindex absolute expressions -@cindex relocatable expressions -There are two kinds of expressions, depending on their result: -@dfn{absolute} expressions, which resolve to a constant (that is, they -do not involve any values unknown to @sc{gasp}), and @dfn{relocatable} -expressions, which must reduce to the form - -@example -@var{addsym}+@var{const}-@var{subsym} -@end example - -@noindent -where @var{addsym} and @var{subsym} are assembly symbols of unknown -value, and @var{const} is a constant. - -Arithmetic for @sc{gasp} expressions follows very similar rules to C. -You can use parentheses to change precedence; otherwise, arithmetic -primitives have decreasing precedence in the order of the following -list. - -@enumerate -@item -Single-argument @code{+} (identity), @code{-} (arithmetic opposite), or -@code{~} (bitwise negation). @emph{The argument must be an absolute -expression.} - -@item -@code{*} (multiplication) and @code{/} (division). @emph{Both arguments -must be absolute expressions.} - -@item -@code{+} (addition) and @code{-} (subtraction). @emph{At least one argument -must be absolute.} -@c FIXME! Actually, subtraction doesn't check for this. - -@item -@code{&} (bitwise and). @emph{Both arguments must be absolute.} - -@item -@c FIXME! I agree ~ is a better notation than ^ for xor, but is the -@c improvement worth differing from C? -@code{|} (bitwise or) and @code{~} (bitwise exclusive or; @code{^} in -C). @emph{Both arguments must be absolute.} -@end enumerate - -@node String Builtins -@subsection String primitives - -You can use these primitives to manipulate strings (in the argument -field of @sc{gasp} statements): - -@ftable @code -@item .LEN("@var{str}") -Calculate the length of string @code{"@var{str}"}, as an absolute -expression. For example, @samp{.RES.B .LEN("sample")} reserves six -bytes of memory. - -@item .INSTR("@var{string}", "@var{seg}", @var{ix}) -Search for the first occurrence of @var{seg} after position @var{ix} of -@var{string}. For example, @samp{.INSTR("ABCDEFG", "CDE", 0)} evaluates -to the absolute result @code{2}. - -The result is @code{-1} if @var{seg} does not occur in @var{string} -after position @var{ix}. - -@item .SUBSTR("@var{string}",@var{start},@var{len}) -The substring of @var{string} beginning at byte number @var{start} and -extending for @var{len} bytes. -@end ftable - -@node Alternate -@section Alternate macro syntax - -If you specify @samp{-a} or @samp{--alternate} on the @sc{gasp} command -line, the preprocessor uses somewhat different syntax. This syntax is -reminiscent of the syntax of Phar Lap macro assembler, but it -is @emph{not} meant to be a full emulation of Phar Lap or similar -assemblers. In particular, @sc{gasp} does not support directives such -as @code{DB} and @code{IRP}, even in alternate syntax mode. - -In particular, @samp{-a} (or @samp{--alternate}) elicits these -differences: - -@table @emph -@item Preprocessor directives -You can use @sc{gasp} preprocessor directives without a leading @samp{.} -dot. For example, you can write @samp{SDATA} with the same effect as -@samp{.SDATA}. - -@item LOCAL -One additional directive, @code{LOCAL}, is available. @xref{Macros,, -Defining your own directives}, for an explanation of how to use -@code{LOCAL}. - -@need 2000 -@item String delimiters -You can write strings delimited in these other ways besides -@code{"@var{string}"}: - -@table @code -@item '@var{string}' -You can delimit strings with single-quote charaters. - -@item <@var{string}> -You can delimit strings with matching angle brackets. -@end table - -@item single-character string escape -To include any single character literally in a string (even if the -character would otherwise have some special meaning), you can prefix the -character with @samp{!} (an exclamation mark). For example, you can -write @samp{<4.3 !> 5.4!!>} to get the literal text @samp{4.3 > 5.4!}. - -@item Expression results as strings -You can write @samp{%@var{expr}} to evaluate the expression @var{expr} -and use the result as a string. -@end table - -@node GNU Free Documentation License -@chapter GNU Free Documentation License - - GNU Free Documentation License - - Version 1.1, March 2000 - - Copyright (C) 2000 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. - - -0. PREAMBLE - -The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone -the effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get -credit for their work, while not being considered responsible for -modifications made by others. - -This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - - -1. APPLICABILITY AND DEFINITIONS - -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you". - -A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A "Secondary Section" is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - -The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - -A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup has been designed to thwart or discourage -subsequent modification by readers is not Transparent. A copy that is -not "Transparent" is called "Opaque". - -Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML -or XML using a publicly available DTD, and standard-conforming simple -HTML designed for human modification. Opaque formats include -PostScript, PDF, proprietary formats that can be read and edited only -by proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the -machine-generated HTML produced by some word processors for output -purposes only. - -The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - - -2. VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - -3. COPYING IN QUANTITY - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must enclose -the copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - - -4. MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -A. Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions - (which should, if there were any, be listed in the History section - of the Document). You may use the same title as a previous version - if the original publisher of that version gives permission. -B. List on the Title Page, as authors, one or more persons or entities - responsible for authorship of the modifications in the Modified - Version, together with at least five of the principal authors of the - Document (all of its principal authors, if it has less than five). -C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. -D. Preserve all the copyright notices of the Document. -E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. -F. Include, immediately after the copyright notices, a license notice - giving the public permission to use the Modified Version under the - terms of this License, in the form shown in the Addendum below. -G. Preserve in that license notice the full lists of Invariant Sections - and required Cover Texts given in the Document's license notice. -H. Include an unaltered copy of this License. -I. Preserve the section entitled "History", and its title, and add to - it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. If - there is no section entitled "History" in the Document, create one - stating the title, year, authors, and publisher of the Document as - given on its Title Page, then add an item describing the Modified - Version as stated in the previous sentence. -J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and likewise - the network locations given in the Document for previous versions - it was based on. These may be placed in the "History" section. - You may omit a network location for a work that was published at - least four years before the Document itself, or if the original - publisher of the version it refers to gives permission. -K. In any section entitled "Acknowledgements" or "Dedications", - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. -L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. -M. Delete any section entitled "Endorsements". Such a section - may not be included in the Modified Version. -N. Do not retitle any existing section as "Endorsements" - or to conflict in title with any Invariant Section. - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties--for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - -5. COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications". You must delete all sections -entitled "Endorsements." - - -6. COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - - -7. AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version -of the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they -are not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. -Otherwise they must appear on covers around the whole aggregate. - - -8. TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the -original English version of this License. In case of a disagreement -between the translation and the original English version of this -License, the original English version will prevail. - - -9. TERMINATION - -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document 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. - - -10. FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation 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. See -http://www.gnu.org/copyleft/. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - - -ADDENDUM: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - -@smallexample - Copyright (c) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License". -@end smallexample - -If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no -Front-Cover Texts, write "no Front-Cover Texts" instead of -"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. - -@node Index -@unnumbered Index - -@printindex cp - -@contents -@bye diff -uprN binutils-2.13.90.0.16/gas/doc/internals.texi binutils-2.13.90.0.18/gas/doc/internals.texi --- binutils-2.13.90.0.16/gas/doc/internals.texi Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/doc/internals.texi Tue Jan 21 10:21:33 2003 @@ -1421,7 +1421,7 @@ colon, the adjoining tokens can be disti preprocessor so that whitespace around colons is preserved. This is useful when colons might be removed from the input after preprocessing but before assembling, so that adjoining tokens can still be distinguished if there is -whitespace, or concatentated if there is not. +whitespace, or concatenated if there is not. @item tc_frob_section @cindex tc_frob_section @@ -1437,7 +1437,7 @@ symbols. @item tc_frob_symbol @cindex tc_frob_symbol If you define this macro, GAS will call it for each symbol. You can indicate -that the symbol should not be included in the object file by definining this +that the symbol should not be included in the object file by defining this macro to set its second argument to a non-zero value. @item tc_frob_file @@ -1503,6 +1503,12 @@ This define only affects @code{.debug_in sections generated by the assembler. DWARF 2 sections generated by other tools will be unaffected by this setting. +@item DWARF2_ADDR_SIZE (@var{bfd}) +@cindex DWARF2_ADDR_SIZE +It should return the size of an address, as it should be represented in +debugging info. If you don't define this macro, the default definition uses +the number of bits per address, as defined in @var{bfd}, divided by 8. + @end table @node Object format backend @@ -1548,7 +1554,7 @@ another. @item obj_sec_sym_ok_for_reloc @cindex obj_sec_sym_ok_for_reloc You may define this macro to indicate that it is OK to use a section symbol in -a relocateion entry. If it is not, GAS will define a new symbol at the start +a relocation entry. If it is not, GAS will define a new symbol at the start of a section. @item EMIT_SECTION_SYMBOLS @@ -1590,7 +1596,7 @@ symbols. @item obj_frob_symbol @cindex obj_frob_symbol If you define this macro, GAS will call it for each symbol. You can indicate -that the symbol should not be included in the object file by definining this +that the symbol should not be included in the object file by defining this macro to set its second argument to a non-zero value. @item obj_frob_file @@ -1652,7 +1658,7 @@ case, don't describe the smaller-range, The @code{fr_subtype} field of a frag is an index into a CPU-specific relaxation table. That table entry indicates the range of values that can be stored, the number of bytes that will have to be added to the frag to -accomodate the addressing mode, and the index of the next entry to examine if +accommodate the addressing mode, and the index of the next entry to examine if the value to be stored is outside the range accessible by the current addressing mode. The @code{fr_symbol} field of the frag indicates what symbol is to be accessed; the @code{fr_offset} field is added in. @@ -1740,7 +1746,7 @@ It can be accessed via @code{fr_opcode} If you generate frags separately for the basic insn opcode and any relaxable operands, do not call @code{fix_new} thinking you can emit fixups for the -opcode field from the relaxable frag. It is not garanteed to be the same frag. +opcode field from the relaxable frag. It is not guaranteed to be the same frag. If you need to emit fixups for the opcode field from inspection of the relaxable frag, then you need to generate a common frag for both the basic opcode and relaxable fields, or you need to provide the frag for the opcode to diff -uprN binutils-2.13.90.0.16/gas/dwarf2dbg.c binutils-2.13.90.0.18/gas/dwarf2dbg.c --- binutils-2.13.90.0.16/gas/dwarf2dbg.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/dwarf2dbg.c Tue Jan 21 10:21:32 2003 @@ -44,9 +44,14 @@ #include "dwarf2dbg.h" #ifndef DWARF2_FORMAT -#define DWARF2_FORMAT() dwarf2_format_32bit +# define DWARF2_FORMAT() dwarf2_format_32bit #endif +#ifndef DWARF2_ADDR_SIZE +# define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8); +#endif + + #ifdef BFD_ASSEMBLER #include "subsegs.h" @@ -136,9 +141,9 @@ static struct file_entry *files; static unsigned int files_in_use; static unsigned int files_allocated; -/* True when we've seen a .loc directive recently. Used to avoid +/* TRUE when we've seen a .loc directive recently. Used to avoid doing work when there's nothing to do. */ -static boolean loc_directive_seen; +static bfd_boolean loc_directive_seen; /* Current location as indicated by the most recent .loc directive. */ static struct dwarf2_line_info current; @@ -303,7 +308,7 @@ dwarf2_emit_insn (size) /* Unless we generate DWARF2 debugging information for each assembler line, we only emit one line symbol for one LOC. */ if (debug_type != DEBUG_DWARF2) - loc_directive_seen = false; + loc_directive_seen = FALSE; } else if (debug_type != DEBUG_DWARF2) return; @@ -435,7 +440,7 @@ dwarf2_directive_loc (dummy) current.column = column; current.flags = DWARF2_FLAG_BEGIN_STMT; - loc_directive_seen = true; + loc_directive_seen = TRUE; #ifndef NO_LISTING if (listing) @@ -596,6 +601,26 @@ out_set_addr (seg, frag, ofs) emit_expr (&expr, sizeof_address); } +#if DWARF2_LINE_MIN_INSN_LENGTH > 1 +static void scale_addr_delta PARAMS ((addressT *)); + +static void +scale_addr_delta (addr_delta) + addressT *addr_delta; +{ + static int printed_this = 0; + if (*addr_delta % DWARF2_LINE_MIN_INSN_LENGTH != 0) + { + if (!printed_this) + as_bad("unaligned opcodes detected in executable segment"); + printed_this = 1; + } + *addr_delta /= DWARF2_LINE_MIN_INSN_LENGTH; +} +#else +#define scale_addr_delta(A) +#endif + /* Encode a pair of line and address skips as efficiently as possible. Note that the line skip is signed, whereas the address skip is unsigned. @@ -612,10 +637,7 @@ size_inc_line_addr (line_delta, addr_del int len = 0; /* Scale the address delta by the minimum instruction length. */ -#if DWARF2_LINE_MIN_INSN_LENGTH > 1 - assert (addr_delta % DWARF2_LINE_MIN_INSN_LENGTH == 0); - addr_delta /= DWARF2_LINE_MIN_INSN_LENGTH; -#endif + scale_addr_delta (&addr_delta); /* INT_MAX is a signal that this is actually a DW_LNE_end_sequence. We cannot use special opcodes here, since we want the end_sequence @@ -678,11 +700,9 @@ emit_inc_line_addr (line_delta, addr_del int need_copy = 0; char *end = p + len; -#if DWARF2_LINE_MIN_INSN_LENGTH > 1 /* Scale the address delta by the minimum instruction length. */ - assert (addr_delta % DWARF2_LINE_MIN_INSN_LENGTH == 0); - addr_delta /= DWARF2_LINE_MIN_INSN_LENGTH; -#endif + scale_addr_delta (&addr_delta); + /* INT_MAX is a signal that this is actually a DW_LNE_end_sequence. We cannot use special opcodes here, since we want the end_sequence to emit the matrix entry. */ @@ -1326,7 +1346,7 @@ dwarf2_finish () return; /* Calculate the size of an address for the target machine. */ - sizeof_address = bfd_arch_bits_per_address (stdoutput) / 8; + sizeof_address = DWARF2_ADDR_SIZE (stdoutput); /* Create and switch to the line number section. */ line_seg = subseg_new (".debug_line", 0); diff -uprN binutils-2.13.90.0.16/gas/gasp.c binutils-2.13.90.0.18/gas/gasp.c --- binutils-2.13.90.0.16/gas/gasp.c Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.18/gas/gasp.c Wed Dec 31 16:00:00 1969 @@ -1,3761 +0,0 @@ -/* gasp.c - Gnu assembler preprocessor main program. - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 - Free Software Foundation, Inc. - - Written by Steve and Judy Chamberlain of Cygnus Support, - sac@cygnus.com - - This file is part of GASP, the GNU Assembler Preprocessor. - - GASP is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GASP 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 GASP; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -/* -This program translates the input macros and stuff into a form -suitable for gas to consume. - - gasp [-sdhau] [-c char] [-o ] * - - -s copy source to output - -c comments are started with instead of ! - -u allow unreasonable stuff - -p print line numbers - -d print debugging stats - -s semi colons start comments - -a use alternate syntax - Pseudo ops can start with or without a . - Labels have to be in first column. - -I specify include dir - Macro arg parameters subsituted by name, don't need the &. - String can start with ' too. - Strings can be surrounded by <..> - A % in a string evaluates the expression - Literal char in a string with ! -*/ - -#include "config.h" -#include "bin-bugs.h" - -#include -#include -#include -#include "getopt.h" - -#ifdef HAVE_STDLIB_H -#include -#endif - -#ifdef NEED_MALLOC_DECLARATION -extern char *malloc (); -#endif - -#include "ansidecl.h" -#include "libiberty.h" -#include "safe-ctype.h" -#include "sb.h" -#include "macro.h" -#include "asintl.h" -#include "xregex.h" - -char *program_version = "1.2"; - -/* This is normally declared in as.h, but we don't include that. We - need the function because other files linked with gasp.c might call - it. */ -extern void as_abort PARAMS ((const char *, int, const char *)); - -/* The default obstack chunk size. If we set this to zero, the - obstack code will use whatever will fit in a 4096 byte block. This - is used by the hash table code used by macro.c. */ -int chunksize = 0; - -#define MAX_INCLUDES 30 /* Maximum include depth. */ -#define MAX_REASONABLE 1000 /* Maximum number of expansions. */ - -int unreasonable; /* -u on command line. */ -int stats; /* -d on command line. */ -int print_line_number; /* -p flag on command line. */ -int copysource; /* -c flag on command line. */ -int warnings; /* Number of WARNINGs generated so far. */ -int errors; /* Number of ERRORs generated so far. */ -int fatals; /* Number of fatal ERRORs generated so far (either 0 or 1). */ -int alternate = 0; /* -a on command line. */ -int mri = 0; /* -M on command line. */ -char comment_char = '!'; -int radix = 10; /* Default radix. */ - -int had_end; /* Seen .END. */ - -/* The output stream. */ -FILE *outfile; - -/* The attributes of each character are stored as a bit pattern - chartype, which gives us quick tests. */ - -#define FIRSTBIT 1 -#define NEXTBIT 2 -#define SEPBIT 4 -#define WHITEBIT 8 -#define COMMENTBIT 16 -#define BASEBIT 32 -#define ISCOMMENTCHAR(x) (chartype[(unsigned char)(x)] & COMMENTBIT) -#define ISFIRSTCHAR(x) (chartype[(unsigned char)(x)] & FIRSTBIT) -#define ISNEXTCHAR(x) (chartype[(unsigned char)(x)] & NEXTBIT) -#define ISSEP(x) (chartype[(unsigned char)(x)] & SEPBIT) -#define ISWHITE(x) (chartype[(unsigned char)(x)] & WHITEBIT) -#define ISBASE(x) (chartype[(unsigned char)(x)] & BASEBIT) -static char chartype[256]; - -/* Conditional assembly uses the `ifstack'. Each aif pushes another - entry onto the stack, and sets the on flag if it should. The aelse - sets hadelse, and toggles on. An aend pops a level. We limit to - 100 levels of nesting, not because we're facists pigs with read - only minds, but because more than 100 levels of nesting is probably - a bug in the user's macro structure. */ - -#define IFNESTING 100 -struct { - int on; /* Is the level being output. */ - int hadelse; /* Has an aelse been seen. */ -} ifstack[IFNESTING]; - -int ifi; - -/* The final and intermediate results of expression evaluation are kept in - exp_t's. Note that a symbol is not an sb, but a pointer into the input - line. It must be coped somewhere safe before the next line is read in. */ - -typedef struct { - char *name; - int len; -} symbol; - -typedef struct { - int value; /* Constant part. */ - symbol add_symbol; /* Name part. */ - symbol sub_symbol; /* Name part. */ -} exp_t; - -/* Hashing is done in a pretty standard way. A hash_table has a - pointer to a vector of pointers to hash_entrys, and the size of the - vector. A hash_entry contains a union of all the info we like to - store in hash table. If there is a hash collision, hash_entries - with the same hash are kept in a chain. */ - -/* What the data in a hash_entry means. */ -typedef enum { - hash_integer, /* Name->integer mapping. */ - hash_string, /* Name->string mapping. */ - hash_macro, /* Name is a macro. */ - hash_formal /* Name is a formal argument. */ -} hash_type; - -typedef struct hs { - sb key; /* Symbol name. */ - hash_type type; /* Symbol meaning. */ - union { - sb s; - int i; - struct macro_struct *m; - struct formal_struct *f; - } value; - struct hs *next; /* Next hash_entry with same hash key. */ -} hash_entry; - -typedef struct { - hash_entry **table; - int size; -} hash_table; - -/* How we nest files and expand macros etc. - - We keep a stack of of include_stack structs. Each include file - pushes a new level onto the stack. We keep an sb with a pushback - too. unget chars are pushed onto the pushback sb, getchars first - checks the pushback sb before reading from the input stream. - - Small things are expanded by adding the text of the item onto the - pushback sb. Larger items are grown by pushing a new level and - allocating the entire pushback buf for the item. Each time - something like a macro is expanded, the stack index is changed. We - can then perform an exitm by popping all entries off the stack with - the same stack index. If we're being reasonable, we can detect - recusive expansion by checking the index is reasonably small. */ - -typedef enum { - include_file, include_repeat, include_while, include_macro -} include_type; - -struct include_stack { - sb pushback; /* Current pushback stream. */ - int pushback_index; /* Next char to read from stream. */ - FILE *handle; /* Open file. */ - sb name; /* Name of file. */ - int linecount; /* Number of lines read so far. */ - include_type type; - int index; /* Index of this layer. */ -} include_stack[MAX_INCLUDES]; - -struct include_stack *sp; -#define isp (sp - include_stack) - -/* Include file list. */ - -typedef struct include_path { - struct include_path *next; - sb path; -} include_path; - -include_path *paths_head; -include_path *paths_tail; - -static void quit PARAMS ((void)); -static void hash_new_table PARAMS ((int, hash_table *)); -static int hash PARAMS ((sb *)); -static hash_entry *hash_create PARAMS ((hash_table *, sb *)); -static void hash_add_to_string_table PARAMS ((hash_table *, sb *, sb *, int)); -static void hash_add_to_int_table PARAMS ((hash_table *, sb *, int)); -static hash_entry *hash_lookup PARAMS ((hash_table *, sb *)); -static void checkconst PARAMS ((int, exp_t *)); -static int is_flonum PARAMS ((int, sb *)); -static int chew_flonum PARAMS ((int, sb *, sb *)); -static int sb_strtol PARAMS ((int, sb *, int, int *)); -static int level_0 PARAMS ((int, sb *, exp_t *)); -static int level_1 PARAMS ((int, sb *, exp_t *)); -static int level_2 PARAMS ((int, sb *, exp_t *)); -static int level_3 PARAMS ((int, sb *, exp_t *)); -static int level_4 PARAMS ((int, sb *, exp_t *)); -static int level_5 PARAMS ((int, sb *, exp_t *)); -static int exp_parse PARAMS ((int, sb *, exp_t *)); -static void exp_string PARAMS ((exp_t *, sb *)); -static int exp_get_abs PARAMS ((const char *, int, sb *, int *)); -#if 0 -static void strip_comments PARAMS ((sb *)); -#endif -static void unget PARAMS ((int)); -static void include_buf PARAMS ((sb *, sb *, include_type, int)); -static void include_print_where_line PARAMS ((FILE *)); -static void include_print_line PARAMS ((FILE *)); -static int get_line PARAMS ((sb *)); -static int grab_label PARAMS ((sb *, sb *)); -static void change_base PARAMS ((int, sb *, sb *)); -static void do_end PARAMS ((sb *)); -static void do_assign PARAMS ((int, int, sb *)); -static void do_radix PARAMS ((sb *)); -static int get_opsize PARAMS ((int, sb *, int *)); -static int eol PARAMS ((int, sb *)); -static void do_data PARAMS ((int, sb *, int)); -static void do_datab PARAMS ((int, sb *)); -static void do_align PARAMS ((int, sb *)); -static void do_res PARAMS ((int, sb *, int)); -static void do_export PARAMS ((sb *)); -static void do_print PARAMS ((int, sb *)); -static void do_heading PARAMS ((int, sb *)); -static void do_page PARAMS ((void)); -static void do_form PARAMS ((int, sb *)); -static int get_any_string PARAMS ((int, sb *, sb *, int, int)); -static int skip_openp PARAMS ((int, sb *)); -static int skip_closep PARAMS ((int, sb *)); -static int dolen PARAMS ((int, sb *, sb *)); -static int doinstr PARAMS ((int, sb *, sb *)); -static int dosubstr PARAMS ((int, sb *, sb *)); -static void process_assigns PARAMS ((int, sb *, sb *)); -static int get_and_process PARAMS ((int, sb *, sb *)); -static void process_file PARAMS ((void)); -static void free_old_entry PARAMS ((hash_entry *)); -static void do_assigna PARAMS ((int, sb *)); -static void do_assignc PARAMS ((int, sb *)); -static void do_reg PARAMS ((int, sb *)); -static int condass_lookup_name PARAMS ((sb *, int, sb *, int)); -static int whatcond PARAMS ((int, sb *, int *)); -static int istrue PARAMS ((int, sb *)); -static void do_aif PARAMS ((int, sb *)); -static void do_aelse PARAMS ((void)); -static void do_aendi PARAMS ((void)); -static int condass_on PARAMS ((void)); -static void do_if PARAMS ((int, sb *, int)); -static int get_mri_string PARAMS ((int, sb *, sb *, int)); -static void do_ifc PARAMS ((int, sb *, int)); -static void do_aendr PARAMS ((void)); -static void do_awhile PARAMS ((int, sb *)); -static void do_aendw PARAMS ((void)); -static void do_exitm PARAMS ((void)); -static void do_arepeat PARAMS ((int, sb *)); -static void do_endm PARAMS ((void)); -static void do_irp PARAMS ((int, sb *, int)); -static void do_local PARAMS ((int, sb *)); -static void do_macro PARAMS ((int, sb *)); -static int macro_op PARAMS ((int, sb *)); -static int getstring PARAMS ((int, sb *, sb *)); -static void do_sdata PARAMS ((int, sb *, int)); -static void do_sdatab PARAMS ((int, sb *)); -static int new_file PARAMS ((const char *)); -static void do_include PARAMS ((int, sb *)); -static void include_pop PARAMS ((void)); -static int get PARAMS ((void)); -static int linecount PARAMS ((void)); -static int include_next_index PARAMS ((void)); -static void chartype_init PARAMS ((void)); -static int process_pseudo_op PARAMS ((int, sb *, sb *)); -static void add_keyword PARAMS ((const char *, int)); -static void process_init PARAMS ((void)); -static void do_define PARAMS ((const char *)); -static void show_usage PARAMS ((FILE *, int)); -static void show_help PARAMS ((void)); - -#define FATAL(x) \ - do \ - { \ - include_print_where_line (stderr); \ - fprintf x; \ - fatals++; \ - quit (); \ - } \ - while (0) - -#define ERROR(x) \ - do \ - { \ - include_print_where_line (stderr); \ - fprintf x; \ - errors++; \ - } \ - while (0) - -#define WARNING(x) \ - do \ - { \ - include_print_where_line (stderr); \ - fprintf x; \ - warnings++; \ - } \ - while (0) - -/* Exit the program and return the right ERROR code. */ - -static void -quit () -{ - int exitcode; - if (fatals + errors) - exitcode = 1; - else - exitcode = 0; - - if (stats) - { - int i; - for (i = 0; i < sb_max_power_two; i++) - { - fprintf (stderr, "strings size %8d : %d\n", - 1 << i, string_count[i]); - } - } - exit (exitcode); -} - -/* Hash table maintenance. */ - -/* Build a new hash table with size buckets - and fill in the info at ptr. */ - -static void -hash_new_table (size, ptr) - int size; - hash_table *ptr; -{ - int i; - ptr->size = size; - ptr->table = (hash_entry **) xmalloc (size * (sizeof (hash_entry *))); - /* Fill with null-pointer, not zero-bit-pattern. */ - for (i = 0; i < size; i++) - ptr->table[i] = 0; -} - -/* Calculate and return the hash value of the sb at key. */ - -static int -hash (key) - sb *key; -{ - int k = 0x1234; - int i; - char *p = key->ptr; - for (i = 0; i < key->len; i++) - { - k ^= (k << 2) ^ *p; - p++; - } - return k & 0xf0fff; -} - -/* Look up key in hash_table tab. If present, then return it, - otherwise build a new one and fill it with hash_integer. */ - -static hash_entry * -hash_create (tab, key) - hash_table *tab; - sb *key; -{ - int k = hash (key) % tab->size; - hash_entry *p; - hash_entry **table = tab->table; - - p = table[k]; - - while (1) - { - if (!p) - { - hash_entry *n = (hash_entry *) xmalloc (sizeof (hash_entry)); - n->next = table[k]; - sb_new (&n->key); - sb_add_sb (&n->key, key); - table[k] = n; - n->type = hash_integer; - return n; - } - if (strncmp (table[k]->key.ptr, key->ptr, key->len) == 0) - { - return p; - } - p = p->next; - } -} - -/* Add sb name with key into hash_table tab. - If replacing old value and again, then ERROR. */ - -static void -hash_add_to_string_table (tab, key, name, again) - hash_table *tab; - sb *key; - sb *name; - int again; -{ - hash_entry *ptr = hash_create (tab, key); - if (ptr->type == hash_integer) - { - sb_new (&ptr->value.s); - } - if (ptr->value.s.len) - { - if (!again) - ERROR ((stderr, _("redefinition not allowed\n"))); - } - - ptr->type = hash_string; - sb_reset (&ptr->value.s); - - sb_add_sb (&ptr->value.s, name); -} - -/* Add integer name to hash_table tab with sb key. */ - -static void -hash_add_to_int_table (tab, key, name) - hash_table *tab; - sb *key; - int name; -{ - hash_entry *ptr = hash_create (tab, key); - ptr->value.i = name; -} - -/* Look up sb key in hash_table tab. - If found, return hash_entry result, else 0. */ - -static hash_entry * -hash_lookup (tab, key) - hash_table *tab; - sb *key; -{ - int k = hash (key) % tab->size; - hash_entry **table = tab->table; - hash_entry *p = table[k]; - while (p) - { - if (p->key.len == key->len - && strncmp (p->key.ptr, key->ptr, key->len) == 0) - return p; - p = p->next; - } - return 0; -} - -/* expressions - - are handled in a really simple recursive decent way. each bit of - the machine takes an index into an sb and a pointer to an exp_t, - modifies the *exp_t and returns the index of the first character - past the part of the expression parsed. - - expression precedence: - ( ) - unary + - ~ - * / - + - - & - | ~ -*/ - -/* Make sure that the exp_t at term is constant. - If not the give the op ERROR. */ - -static void -checkconst (op, term) - int op; - exp_t *term; -{ - if (term->add_symbol.len - || term->sub_symbol.len) - { - ERROR ((stderr, _("the %c operator cannot take non-absolute arguments.\n"), op)); - } -} - -/* Chew the flonum from the string starting at idx. Adjust idx to - point to the next character after the flonum. */ - -static int -chew_flonum (idx, string, out) - int idx; - sb *string; - sb *out; -{ - sb buf; - regex_t reg; - regmatch_t match; - - /* Duplicate and null terminate `string'. */ - sb_new (&buf); - sb_add_sb (&buf, string); - sb_add_char (&buf, '\0'); - - if (regcomp (®, "([0-9]*\\.[0-9]+([eE][+-]?[0-9]+)?)", REG_EXTENDED) != 0) - return idx; - if (regexec (®, &buf.ptr[idx], 1, &match, 0) != 0) - return idx; - - /* Copy the match to the output. */ - assert (match.rm_eo >= match.rm_so); - sb_add_buffer (out, &buf.ptr[idx], match.rm_eo - match.rm_so); - - sb_kill (&buf); - regfree (®); - idx += match.rm_eo; - return idx; -} - -static int -is_flonum (idx, string) - int idx; - sb *string; -{ - sb buf; - regex_t reg; - int rc; - - /* Duplicate and null terminate `string'. */ - sb_new (&buf); - sb_add_sb (&buf, string); - sb_add_char (&buf, '\0'); - - if (regcomp (®, "^[0-9]*\\.[0-9]+([eE][+-]?[0-9]+)?", REG_EXTENDED) != 0) - return 0; - - rc = regexec (®, &buf.ptr[idx], 0, NULL, 0); - sb_kill (&buf); - regfree (®); - return (rc == 0); -} - -/* Turn the number in string at idx into a number of base, fill in - ptr, and return the index of the first character not in the number. */ - -static int -sb_strtol (idx, string, base, ptr) - int idx; - sb *string; - int base; - int *ptr; -{ - int value = 0; - idx = sb_skip_white (idx, string); - - while (idx < string->len) - { - int ch = string->ptr[idx]; - int dig = 0; - if (ISDIGIT (ch)) - dig = ch - '0'; - else if (ch >= 'a' && ch <= 'f') - dig = ch - 'a' + 10; - else if (ch >= 'A' && ch <= 'F') - dig = ch - 'A' + 10; - else - break; - - if (dig >= base) - break; - - value = value * base + dig; - idx++; - } - *ptr = value; - return idx; -} - -static int -level_0 (idx, string, lhs) - int idx; - sb *string; - exp_t *lhs; -{ - lhs->add_symbol.len = 0; - lhs->add_symbol.name = 0; - - lhs->sub_symbol.len = 0; - lhs->sub_symbol.name = 0; - - idx = sb_skip_white (idx, string); - - lhs->value = 0; - - if (ISDIGIT (string->ptr[idx])) - { - idx = sb_strtol (idx, string, 10, &lhs->value); - } - else if (ISFIRSTCHAR (string->ptr[idx])) - { - int len = 0; - lhs->add_symbol.name = string->ptr + idx; - while (idx < string->len && ISNEXTCHAR (string->ptr[idx])) - { - idx++; - len++; - } - lhs->add_symbol.len = len; - } - else if (string->ptr[idx] == '"') - { - sb acc; - sb_new (&acc); - ERROR ((stderr, _("string where expression expected.\n"))); - idx = getstring (idx, string, &acc); - sb_kill (&acc); - } - else - { - ERROR ((stderr, _("can't find primary in expression.\n"))); - idx++; - } - return sb_skip_white (idx, string); -} - -static int -level_1 (idx, string, lhs) - int idx; - sb *string; - exp_t *lhs; -{ - idx = sb_skip_white (idx, string); - - switch (string->ptr[idx]) - { - case '+': - idx = level_1 (idx + 1, string, lhs); - break; - case '~': - idx = level_1 (idx + 1, string, lhs); - checkconst ('~', lhs); - lhs->value = ~lhs->value; - break; - case '-': - { - symbol t; - idx = level_1 (idx + 1, string, lhs); - lhs->value = -lhs->value; - t = lhs->add_symbol; - lhs->add_symbol = lhs->sub_symbol; - lhs->sub_symbol = t; - break; - } - case '(': - idx++; - idx = level_5 (sb_skip_white (idx, string), string, lhs); - if (string->ptr[idx] != ')') - ERROR ((stderr, _("misplaced closing parens.\n"))); - else - idx++; - break; - default: - idx = level_0 (idx, string, lhs); - break; - } - return sb_skip_white (idx, string); -} - -static int -level_2 (idx, string, lhs) - int idx; - sb *string; - exp_t *lhs; -{ - exp_t rhs; - - idx = level_1 (idx, string, lhs); - - while (idx < string->len && (string->ptr[idx] == '*' - || string->ptr[idx] == '/')) - { - char op = string->ptr[idx++]; - idx = level_1 (idx, string, &rhs); - switch (op) - { - case '*': - checkconst ('*', lhs); - checkconst ('*', &rhs); - lhs->value *= rhs.value; - break; - case '/': - checkconst ('/', lhs); - checkconst ('/', &rhs); - if (rhs.value == 0) - ERROR ((stderr, _("attempt to divide by zero.\n"))); - else - lhs->value /= rhs.value; - break; - } - } - return sb_skip_white (idx, string); -} - -static int -level_3 (idx, string, lhs) - int idx; - sb *string; - exp_t *lhs; -{ - exp_t rhs; - - idx = level_2 (idx, string, lhs); - - while (idx < string->len - && (string->ptr[idx] == '+' - || string->ptr[idx] == '-')) - { - char op = string->ptr[idx++]; - idx = level_2 (idx, string, &rhs); - switch (op) - { - case '+': - lhs->value += rhs.value; - if (lhs->add_symbol.name && rhs.add_symbol.name) - { - ERROR ((stderr, _("can't add two relocatable expressions\n"))); - } - /* Change nn+symbol to symbol + nn. */ - if (rhs.add_symbol.name) - { - lhs->add_symbol = rhs.add_symbol; - } - break; - case '-': - lhs->value -= rhs.value; - lhs->sub_symbol = rhs.add_symbol; - break; - } - } - return sb_skip_white (idx, string); -} - -static int -level_4 (idx, string, lhs) - int idx; - sb *string; - exp_t *lhs; -{ - exp_t rhs; - - idx = level_3 (idx, string, lhs); - - while (idx < string->len && - string->ptr[idx] == '&') - { - char op = string->ptr[idx++]; - idx = level_3 (idx, string, &rhs); - switch (op) - { - case '&': - checkconst ('&', lhs); - checkconst ('&', &rhs); - lhs->value &= rhs.value; - break; - } - } - return sb_skip_white (idx, string); -} - -static int -level_5 (idx, string, lhs) - int idx; - sb *string; - exp_t *lhs; -{ - exp_t rhs; - - idx = level_4 (idx, string, lhs); - - while (idx < string->len - && (string->ptr[idx] == '|' || string->ptr[idx] == '~')) - { - char op = string->ptr[idx++]; - idx = level_4 (idx, string, &rhs); - switch (op) - { - case '|': - checkconst ('|', lhs); - checkconst ('|', &rhs); - lhs->value |= rhs.value; - break; - case '~': - checkconst ('~', lhs); - checkconst ('~', &rhs); - lhs->value ^= rhs.value; - break; - } - } - return sb_skip_white (idx, string); -} - -/* Parse the expression at offset idx into string, fill up res with - the result. Return the index of the first char past the - expression. */ - -static int -exp_parse (idx, string, res) - int idx; - sb *string; - exp_t *res; -{ - return level_5 (sb_skip_white (idx, string), string, res); -} - -/* Turn the expression at exp into text and glue it onto the end of - string. */ - -static void -exp_string (exp, string) - exp_t *exp; - sb *string; -{ - int np = 0; - int ad = 0; - sb_reset (string); - - if (exp->add_symbol.len) - { - sb_add_buffer (string, exp->add_symbol.name, exp->add_symbol.len); - np = 1; - ad = 1; - } - if (exp->value) - { - char buf[20]; - if (np) - sb_add_char (string, '+'); - sprintf (buf, "%d", exp->value); - sb_add_string (string, buf); - np = 1; - ad = 1; - } - if (exp->sub_symbol.len) - { - sb_add_char (string, '-'); - sb_add_buffer (string, exp->add_symbol.name, exp->add_symbol.len); - np = 0; - ad = 1; - } - - if (!ad) - sb_add_char (string, '0'); -} - -/* Parse the expression at offset idx into sb in. Return the value in - val. If the expression is not constant, give ERROR emsg. Return - the index of the first character past the end of the expression. */ - -static int -exp_get_abs (emsg, idx, in, val) - const char *emsg; - int idx; - sb *in; - int *val; -{ - exp_t res; - idx = exp_parse (idx, in, &res); - if (res.add_symbol.len || res.sub_symbol.len) - ERROR ((stderr, "%s", emsg)); - *val = res.value; - return idx; -} - -/* Current label parsed from line. */ -sb label; - -/* Hash table for all assigned variables. */ -hash_table assign_hash_table; - -/* Hash table for keyword. */ -hash_table keyword_hash_table; - -/* Hash table for eq variables. */ -hash_table vars; - -#define in_comment ';' - -#if 0 -static void -strip_comments (out) - sb *out; -{ - char *s = out->ptr; - int i = 0; - for (i = 0; i < out->len; i++) - { - if (ISCOMMENTCHAR (s[i])) - { - out->len = i; - return; - } - } -} -#endif - -/* Push back character ch so that it can be read again. */ - -static void -unget (ch) - int ch; -{ - if (ch == '\n') - { - sp->linecount--; - } - if (sp->pushback_index) - sp->pushback_index--; - else - sb_add_char (&sp->pushback, ch); -} - -/* Push the sb ptr onto the include stack, with the given name, type - and index. */ - -static void -include_buf (name, ptr, type, index) - sb *name; - sb *ptr; - include_type type; - int index; -{ - sp++; - if (sp - include_stack >= MAX_INCLUDES) - FATAL ((stderr, _("unreasonable nesting.\n"))); - sb_new (&sp->name); - sb_add_sb (&sp->name, name); - sp->handle = 0; - sp->linecount = 1; - sp->pushback_index = 0; - sp->type = type; - sp->index = index; - sb_new (&sp->pushback); - sb_add_sb (&sp->pushback, ptr); -} - -/* Used in ERROR messages, print info on where the include stack is - onto file. */ - -static void -include_print_where_line (file) - FILE *file; -{ - struct include_stack *p = include_stack + 1; - - while (p <= sp) - { - fprintf (file, "%s:%d ", sb_name (&p->name), p->linecount - 1); - p++; - } -} - -/* Used in listings, print the line number onto file. */ - -static void -include_print_line (file) - FILE *file; -{ - int n; - struct include_stack *p = include_stack + 1; - - n = fprintf (file, "%4d", p->linecount); - p++; - while (p <= sp) - { - n += fprintf (file, ".%d", p->linecount); - p++; - } - while (n < 8 * 3) - { - fprintf (file, " "); - n++; - } -} - -/* Read a line from the top of the include stack into sb in. */ - -static int -get_line (in) - sb *in; -{ - int online = 0; - int more = 1; - - if (copysource) - { - putc (comment_char, outfile); - if (print_line_number) - include_print_line (outfile); - } - - while (1) - { - int ch = get (); - - while (ch == '\r') - ch = get (); - - if (ch == EOF) - { - if (online) - { - WARNING ((stderr, _("End of file not at start of line.\n"))); - if (copysource) - putc ('\n', outfile); - ch = '\n'; - } - else - more = 0; - break; - } - - if (copysource) - { - putc (ch, outfile); - } - - if (ch == '\n') - { - ch = get (); - online = 0; - if (ch == '+') - { - /* Continued line. */ - if (copysource) - { - putc (comment_char, outfile); - putc ('+', outfile); - } - ch = get (); - } - else - { - if (ch != EOF) - unget (ch); - break; - } - } - else - { - sb_add_char (in, ch); - } - online++; - } - - return more; -} - -/* Find a label from sb in and put it in out. */ - -static int -grab_label (in, out) - sb *in; - sb *out; -{ - int i = 0; - sb_reset (out); - if (ISFIRSTCHAR (in->ptr[i]) || in->ptr[i] == '\\') - { - sb_add_char (out, in->ptr[i]); - i++; - while ((ISNEXTCHAR (in->ptr[i]) - || in->ptr[i] == '\\' - || in->ptr[i] == '&') - && i < in->len) - { - sb_add_char (out, in->ptr[i]); - i++; - } - } - return i; -} - -/* Find all strange base stuff and turn into decimal. Also - find all the other numbers and convert them from the default radix. */ - -static void -change_base (idx, in, out) - int idx; - sb *in; - sb *out; -{ - char buffer[20]; - - while (idx < in->len) - { - if (in->ptr[idx] == '\\' - && idx + 1 < in->len - && in->ptr[idx + 1] == '(') - { - idx += 2; - while (idx < in->len - && in->ptr[idx] != ')') - { - sb_add_char (out, in->ptr[idx]); - idx++; - } - if (idx < in->len) - idx++; - } - else if (idx < in->len - 1 && in->ptr[idx + 1] == '\'' && ! mri) - { - int base; - int value; - switch (in->ptr[idx]) - { - case 'b': - case 'B': - base = 2; - break; - case 'q': - case 'Q': - base = 8; - break; - case 'h': - case 'H': - base = 16; - break; - case 'd': - case 'D': - base = 10; - break; - default: - ERROR ((stderr, _("Illegal base character %c.\n"), in->ptr[idx])); - base = 10; - break; - } - - idx = sb_strtol (idx + 2, in, base, &value); - sprintf (buffer, "%d", value); - sb_add_string (out, buffer); - } - else if (ISFIRSTCHAR (in->ptr[idx])) - { - /* Copy entire names through quickly. */ - sb_add_char (out, in->ptr[idx]); - idx++; - while (idx < in->len && ISNEXTCHAR (in->ptr[idx])) - { - sb_add_char (out, in->ptr[idx]); - idx++; - } - } - else if (is_flonum (idx, in)) - { - idx = chew_flonum (idx, in, out); - } - else if (ISDIGIT (in->ptr[idx])) - { - int value; - /* All numbers must start with a digit, let's chew it and - spit out decimal. */ - idx = sb_strtol (idx, in, radix, &value); - sprintf (buffer, "%d", value); - sb_add_string (out, buffer); - - /* Skip all undigsested letters. */ - while (idx < in->len && ISNEXTCHAR (in->ptr[idx])) - { - sb_add_char (out, in->ptr[idx]); - idx++; - } - } - else if (in->ptr[idx] == '"' || in->ptr[idx] == '\'') - { - char tchar = in->ptr[idx]; - /* Copy entire names through quickly. */ - sb_add_char (out, in->ptr[idx]); - idx++; - while (idx < in->len && in->ptr[idx] != tchar) - { - sb_add_char (out, in->ptr[idx]); - idx++; - } - } - else - { - /* Nothing special, just pass it through. */ - sb_add_char (out, in->ptr[idx]); - idx++; - } - } - -} - -/* .end */ - -static void -do_end (in) - sb *in; -{ - had_end = 1; - if (mri) - fprintf (outfile, "%s\n", sb_name (in)); -} - -/* .assign */ - -static void -do_assign (again, idx, in) - int again; - int idx; - sb *in; -{ - /* Stick label in symbol table with following value. */ - exp_t e; - sb acc; - - sb_new (&acc); - idx = exp_parse (idx, in, &e); - exp_string (&e, &acc); - hash_add_to_string_table (&assign_hash_table, &label, &acc, again); - sb_kill (&acc); -} - -/* .radix [b|q|d|h] */ - -static void -do_radix (ptr) - sb *ptr; -{ - int idx = sb_skip_white (0, ptr); - switch (ptr->ptr[idx]) - { - case 'B': - case 'b': - radix = 2; - break; - case 'q': - case 'Q': - radix = 8; - break; - case 'd': - case 'D': - radix = 10; - break; - case 'h': - case 'H': - radix = 16; - break; - default: - ERROR ((stderr, _("radix is %c must be one of b, q, d or h"), radix)); - } -} - -/* Parse off a .b, .w or .l. */ - -static int -get_opsize (idx, in, size) - int idx; - sb *in; - int *size; -{ - *size = 4; - if (in->ptr[idx] == '.') - { - idx++; - } - switch (in->ptr[idx]) - { - case 'b': - case 'B': - *size = 1; - break; - case 'w': - case 'W': - *size = 2; - break; - case 'l': - case 'L': - *size = 4; - break; - case ' ': - case '\t': - break; - default: - ERROR ((stderr, _("size must be one of b, w or l, is %c.\n"), in->ptr[idx])); - break; - } - idx++; - - return idx; -} - -static int -eol (idx, line) - int idx; - sb *line; -{ - idx = sb_skip_white (idx, line); - if (idx < line->len - && ISCOMMENTCHAR(line->ptr[idx])) - return 1; - if (idx >= line->len) - return 1; - return 0; -} - -/* .data [.b|.w|.l] * - or d[bwl] * */ - -static void -do_data (idx, in, size) - int idx; - sb *in; - int size; -{ - int opsize = 4; - char *opname = ".yikes!"; - sb acc; - sb_new (&acc); - - if (!size) - { - idx = get_opsize (idx, in, &opsize); - } - else - { - opsize = size; - } - switch (opsize) - { - case 4: - opname = ".long"; - break; - case 2: - opname = ".short"; - break; - case 1: - opname = ".byte"; - break; - } - - fprintf (outfile, "%s\t", opname); - - idx = sb_skip_white (idx, in); - - if (alternate - && idx < in->len - && in->ptr[idx] == '"') - { - int i; - idx = getstring (idx, in, &acc); - for (i = 0; i < acc.len; i++) - { - if (i) - fprintf (outfile, ","); - fprintf (outfile, "%d", acc.ptr[i]); - } - } - else - { - while (!eol (idx, in)) - { - exp_t e; - idx = exp_parse (idx, in, &e); - exp_string (&e, &acc); - sb_add_char (&acc, 0); - fprintf (outfile, "%s", acc.ptr); - if (idx < in->len && in->ptr[idx] == ',') - { - fprintf (outfile, ","); - idx++; - } - } - } - sb_kill (&acc); - sb_print_at (outfile, idx, in); - fprintf (outfile, "\n"); -} - -/* .datab [.b|.w|.l] , */ - -static void -do_datab (idx, in) - int idx; - sb *in; -{ - int opsize; - int repeat; - int fill; - - idx = get_opsize (idx, in, &opsize); - - idx = exp_get_abs (_("datab repeat must be constant.\n"), idx, in, &repeat); - idx = sb_skip_comma (idx, in); - idx = exp_get_abs (_("datab data must be absolute.\n"), idx, in, &fill); - - fprintf (outfile, ".fill\t%d,%d,%d\n", repeat, opsize, fill); -} - -/* .align */ - -static void -do_align (idx, in) - int idx; - sb *in; -{ - int al, have_fill, fill; - - idx = exp_get_abs (_("align needs absolute expression.\n"), idx, in, &al); - idx = sb_skip_white (idx, in); - have_fill = 0; - fill = 0; - if (! eol (idx, in)) - { - idx = sb_skip_comma (idx, in); - idx = exp_get_abs (_(".align needs absolute fill value.\n"), idx, in, - &fill); - have_fill = 1; - } - - fprintf (outfile, ".align %d", al); - if (have_fill) - fprintf (outfile, ",%d", fill); - fprintf (outfile, "\n"); -} - -/* .res[.b|.w|.l] */ - -static void -do_res (idx, in, type) - int idx; - sb *in; - int type; -{ - int size = 4; - int count = 0; - - idx = get_opsize (idx, in, &size); - while (!eol (idx, in)) - { - idx = sb_skip_white (idx, in); - if (in->ptr[idx] == ',') - idx++; - idx = exp_get_abs (_("res needs absolute expression for fill count.\n"), idx, in, &count); - - if (type == 'c' || type == 'z') - count++; - - fprintf (outfile, ".space %d\n", count * size); - } -} - -/* .export */ - -static void -do_export (in) - sb *in; -{ - fprintf (outfile, ".global %s\n", sb_name (in)); -} - -/* .print [list] [nolist] */ - -static void -do_print (idx, in) - int idx; - sb *in; -{ - idx = sb_skip_white (idx, in); - while (idx < in->len) - { - if (strncasecmp (in->ptr + idx, "LIST", 4) == 0) - { - fprintf (outfile, ".list\n"); - idx += 4; - } - else if (strncasecmp (in->ptr + idx, "NOLIST", 6) == 0) - { - fprintf (outfile, ".nolist\n"); - idx += 6; - } - idx++; - } -} - -/* .head */ - -static void -do_heading (idx, in) - int idx; - sb *in; -{ - sb head; - sb_new (&head); - idx = getstring (idx, in, &head); - fprintf (outfile, ".title \"%s\"\n", sb_name (&head)); - sb_kill (&head); -} - -/* .page */ - -static void -do_page () -{ - fprintf (outfile, ".eject\n"); -} - -/* .form [lin=] [col=] */ - -static void -do_form (idx, in) - int idx; - sb *in; -{ - int lines = 60; - int columns = 132; - idx = sb_skip_white (idx, in); - - while (idx < in->len) - { - - if (strncasecmp (in->ptr + idx, "LIN=", 4) == 0) - { - idx += 4; - idx = exp_get_abs (_("form LIN= needs absolute expresssion.\n"), idx, in, &lines); - } - - if (strncasecmp (in->ptr + idx, _("COL="), 4) == 0) - { - idx += 4; - idx = exp_get_abs (_("form COL= needs absolute expresssion.\n"), idx, in, &columns); - } - - idx++; - } - fprintf (outfile, ".psize %d,%d\n", lines, columns); - -} - -/* Fetch string from the input stream, - rules: - 'Bxyx -> return 'Bxyza - % -> return string of decimal value of x - "" -> return string - xyx -> return xyz -*/ - -static int -get_any_string (idx, in, out, expand, pretend_quoted) - int idx; - sb *in; - sb *out; - int expand; - int pretend_quoted; -{ - sb_reset (out); - idx = sb_skip_white (idx, in); - - if (idx < in->len) - { - if (in->len > 2 && in->ptr[idx + 1] == '\'' && ISBASE (in->ptr[idx])) - { - while (!ISSEP (in->ptr[idx])) - sb_add_char (out, in->ptr[idx++]); - } - else if (in->ptr[idx] == '%' - && alternate - && expand) - { - int val; - char buf[20]; - /* Turns the next expression into a string. */ - /* xgettext: no-c-format */ - idx = exp_get_abs (_("% operator needs absolute expression"), - idx + 1, - in, - &val); - sprintf (buf, "%d", val); - sb_add_string (out, buf); - } - else if (in->ptr[idx] == '"' - || in->ptr[idx] == '<' - || (alternate && in->ptr[idx] == '\'')) - { - if (alternate && expand) - { - /* Keep the quotes. */ - sb_add_char (out, '\"'); - - idx = getstring (idx, in, out); - sb_add_char (out, '\"'); - - } - else - { - idx = getstring (idx, in, out); - } - } - else - { - while (idx < in->len - && (in->ptr[idx] == '"' - || in->ptr[idx] == '\'' - || pretend_quoted - || !ISSEP (in->ptr[idx]))) - { - if (in->ptr[idx] == '"' - || in->ptr[idx] == '\'') - { - char tchar = in->ptr[idx]; - sb_add_char (out, in->ptr[idx++]); - while (idx < in->len - && in->ptr[idx] != tchar) - sb_add_char (out, in->ptr[idx++]); - if (idx == in->len) - return idx; - } - sb_add_char (out, in->ptr[idx++]); - } - } - } - - return idx; -} - -/* Skip along sb in starting at idx, suck off whitespace a ( and more - whitespace. Return the idx of the next char. */ - -static int -skip_openp (idx, in) - int idx; - sb *in; -{ - idx = sb_skip_white (idx, in); - if (in->ptr[idx] != '(') - ERROR ((stderr, _("misplaced ( .\n"))); - idx = sb_skip_white (idx + 1, in); - return idx; -} - -/* Skip along sb in starting at idx, suck off whitespace a ) and more - whitespace. Return the idx of the next char. */ - -static int -skip_closep (idx, in) - int idx; - sb *in; -{ - idx = sb_skip_white (idx, in); - if (in->ptr[idx] != ')') - ERROR ((stderr, _("misplaced ).\n"))); - idx = sb_skip_white (idx + 1, in); - return idx; -} - -/* .len */ - -static int -dolen (idx, in, out) - int idx; - sb *in; - sb *out; -{ - - sb stringout; - char buffer[10]; - - sb_new (&stringout); - idx = skip_openp (idx, in); - idx = get_and_process (idx, in, &stringout); - idx = skip_closep (idx, in); - sprintf (buffer, "%d", stringout.len); - sb_add_string (out, buffer); - - sb_kill (&stringout); - return idx; -} - -/* .instr */ - -static int -doinstr (idx, in, out) - int idx; - sb *in; - sb *out; -{ - sb string; - sb search; - int i; - int start; - int res; - char buffer[10]; - - sb_new (&string); - sb_new (&search); - idx = skip_openp (idx, in); - idx = get_and_process (idx, in, &string); - idx = sb_skip_comma (idx, in); - idx = get_and_process (idx, in, &search); - idx = sb_skip_comma (idx, in); - if (ISDIGIT (in->ptr[idx])) - { - idx = exp_get_abs (_(".instr needs absolute expresson.\n"), idx, in, &start); - } - else - { - start = 0; - } - idx = skip_closep (idx, in); - res = -1; - for (i = start; i < string.len; i++) - { - if (strncmp (string.ptr + i, search.ptr, search.len) == 0) - { - res = i; - break; - } - } - sprintf (buffer, "%d", res); - sb_add_string (out, buffer); - sb_kill (&string); - sb_kill (&search); - return idx; -} - -static int -dosubstr (idx, in, out) - int idx; - sb *in; - sb *out; -{ - sb string; - int pos; - int len; - sb_new (&string); - - idx = skip_openp (idx, in); - idx = get_and_process (idx, in, &string); - idx = sb_skip_comma (idx, in); - idx = exp_get_abs (_("need absolute position.\n"), idx, in, &pos); - idx = sb_skip_comma (idx, in); - idx = exp_get_abs (_("need absolute length.\n"), idx, in, &len); - idx = skip_closep (idx, in); - - if (len < 0 || pos < 0 || - pos > string.len - || pos + len > string.len) - { - sb_add_string (out, " "); - } - else - { - sb_add_char (out, '"'); - while (len > 0) - { - sb_add_char (out, string.ptr[pos++]); - len--; - } - sb_add_char (out, '"'); - } - sb_kill (&string); - return idx; -} - -/* Scan line, change tokens in the hash table to their replacements. */ - -static void -process_assigns (idx, in, buf) - int idx; - sb *in; - sb *buf; -{ - while (idx < in->len) - { - hash_entry *ptr; - if (in->ptr[idx] == '\\' - && idx + 1 < in->len - && in->ptr[idx + 1] == '(') - { - do - { - sb_add_char (buf, in->ptr[idx]); - idx++; - } - while (idx < in->len && in->ptr[idx - 1] != ')'); - } - else if (in->ptr[idx] == '\\' - && idx + 1 < in->len - && in->ptr[idx + 1] == '&') - { - idx = condass_lookup_name (in, idx + 2, buf, 1); - } - else if (in->ptr[idx] == '\\' - && idx + 1 < in->len - && in->ptr[idx + 1] == '$') - { - idx = condass_lookup_name (in, idx + 2, buf, 0); - } - else if (idx + 3 < in->len - && in->ptr[idx] == '.' - && TOUPPER (in->ptr[idx + 1]) == 'L' - && TOUPPER (in->ptr[idx + 2]) == 'E' - && TOUPPER (in->ptr[idx + 3]) == 'N') - idx = dolen (idx + 4, in, buf); - else if (idx + 6 < in->len - && in->ptr[idx] == '.' - && TOUPPER (in->ptr[idx + 1]) == 'I' - && TOUPPER (in->ptr[idx + 2]) == 'N' - && TOUPPER (in->ptr[idx + 3]) == 'S' - && TOUPPER (in->ptr[idx + 4]) == 'T' - && TOUPPER (in->ptr[idx + 5]) == 'R') - idx = doinstr (idx + 6, in, buf); - else if (idx + 7 < in->len - && in->ptr[idx] == '.' - && TOUPPER (in->ptr[idx + 1]) == 'S' - && TOUPPER (in->ptr[idx + 2]) == 'U' - && TOUPPER (in->ptr[idx + 3]) == 'B' - && TOUPPER (in->ptr[idx + 4]) == 'S' - && TOUPPER (in->ptr[idx + 5]) == 'T' - && TOUPPER (in->ptr[idx + 6]) == 'R') - idx = dosubstr (idx + 7, in, buf); - else if (ISFIRSTCHAR (in->ptr[idx])) - { - /* May be a simple name subsitution, see if we have a word. */ - sb acc; - int cur = idx + 1; - while (cur < in->len - && (ISNEXTCHAR (in->ptr[cur]))) - cur++; - - sb_new (&acc); - sb_add_buffer (&acc, in->ptr + idx, cur - idx); - ptr = hash_lookup (&assign_hash_table, &acc); - if (ptr) - { - /* Found a definition for it. */ - sb_add_sb (buf, &ptr->value.s); - } - else - { - /* No definition, just copy the word. */ - sb_add_sb (buf, &acc); - } - sb_kill (&acc); - idx = cur; - } - else - { - sb_add_char (buf, in->ptr[idx++]); - } - } -} - -static int -get_and_process (idx, in, out) - int idx; - sb *in; - sb *out; -{ - sb t; - sb_new (&t); - idx = get_any_string (idx, in, &t, 1, 0); - process_assigns (0, &t, out); - sb_kill (&t); - return idx; -} - -static void -process_file () -{ - sb line; - sb t1, t2; - sb acc; - sb label_in; - int more; - - sb_new (&line); - sb_new (&t1); - sb_new (&t2); - sb_new (&acc); - sb_new (&label_in); - sb_reset (&line); - more = get_line (&line); - while (more) - { - /* Find any label and pseudo op that we're intested in. */ - int l; - if (line.len == 0) - { - if (condass_on ()) - fprintf (outfile, "\n"); - } - else if (mri - && (line.ptr[0] == '*' - || line.ptr[0] == '!')) - { - /* MRI line comment. */ - fprintf (outfile, "%s", sb_name (&line)); - } - else - { - l = grab_label (&line, &label_in); - sb_reset (&label); - - if (line.ptr[l] == ':') - l++; - while (ISWHITE (line.ptr[l]) && l < line.len) - l++; - - if (label_in.len) - { - int do_assigns; - - /* Munge the label, unless this is EQU or ASSIGN. */ - do_assigns = 1; - if (l < line.len - && (line.ptr[l] == '.' || alternate || mri)) - { - int lx = l; - - if (line.ptr[lx] == '.') - ++lx; - if (lx + 3 <= line.len - && strncasecmp ("EQU", line.ptr + lx, 3) == 0 - && (lx + 3 == line.len - || ! ISFIRSTCHAR (line.ptr[lx + 3]))) - do_assigns = 0; - else if (lx + 6 <= line.len - && strncasecmp ("ASSIGN", line.ptr + lx, 6) == 0 - && (lx + 6 == line.len - || ! ISFIRSTCHAR (line.ptr[lx + 6]))) - do_assigns = 0; - } - - if (do_assigns) - process_assigns (0, &label_in, &label); - else - sb_add_sb (&label, &label_in); - } - - if (l < line.len) - { - if (process_pseudo_op (l, &line, &acc)) - { - - } - else if (condass_on ()) - { - if (macro_op (l, &line)) - { - - } - else - { - { - if (label.len) - { - fprintf (outfile, "%s:\t", sb_name (&label)); - } - else - fprintf (outfile, "\t"); - sb_reset (&t1); - process_assigns (l, &line, &t1); - sb_reset (&t2); - change_base (0, &t1, &t2); - fprintf (outfile, "%s\n", sb_name (&t2)); - } - } - } - } - else - { - /* Only a label on this line. */ - if (label.len && condass_on ()) - { - fprintf (outfile, "%s:\n", sb_name (&label)); - } - } - } - - if (had_end) - break; - sb_reset (&line); - more = get_line (&line); - } - - if (!had_end && !mri) - WARNING ((stderr, _("END missing from end of file.\n"))); -} - -static void -free_old_entry (ptr) - hash_entry *ptr; -{ - if (ptr) - { - if (ptr->type == hash_string) - sb_kill (&ptr->value.s); - } -} - -/* name: .ASSIGNA */ - -static void -do_assigna (idx, in) - int idx; - sb *in; -{ - sb tmp; - int val; - sb_new (&tmp); - - process_assigns (idx, in, &tmp); - idx = exp_get_abs (_(".ASSIGNA needs constant expression argument.\n"), 0, &tmp, &val); - - if (!label.len) - { - ERROR ((stderr, _(".ASSIGNA without label.\n"))); - } - else - { - hash_entry *ptr = hash_create (&vars, &label); - free_old_entry (ptr); - ptr->type = hash_integer; - ptr->value.i = val; - } - sb_kill (&tmp); -} - -/* name: .ASSIGNC */ - -static void -do_assignc (idx, in) - int idx; - sb *in; -{ - sb acc; - sb_new (&acc); - idx = getstring (idx, in, &acc); - - if (!label.len) - { - ERROR ((stderr, _(".ASSIGNS without label.\n"))); - } - else - { - hash_entry *ptr = hash_create (&vars, &label); - free_old_entry (ptr); - ptr->type = hash_string; - sb_new (&ptr->value.s); - sb_add_sb (&ptr->value.s, &acc); - } - sb_kill (&acc); -} - -/* name: .REG (reg) */ - -static void -do_reg (idx, in) - int idx; - sb *in; -{ - /* Remove reg stuff from inside parens. */ - sb what; - if (!mri) - idx = skip_openp (idx, in); - else - idx = sb_skip_white (idx, in); - sb_new (&what); - while (idx < in->len - && (mri - ? ! eol (idx, in) - : in->ptr[idx] != ')')) - { - sb_add_char (&what, in->ptr[idx]); - idx++; - } - hash_add_to_string_table (&assign_hash_table, &label, &what, 1); - sb_kill (&what); -} - -static int -condass_lookup_name (inbuf, idx, out, warn) - sb *inbuf; - int idx; - sb *out; - int warn; -{ - hash_entry *ptr; - sb condass_acc; - sb_new (&condass_acc); - - while (idx < inbuf->len - && ISNEXTCHAR (inbuf->ptr[idx])) - { - sb_add_char (&condass_acc, inbuf->ptr[idx++]); - } - - if (inbuf->ptr[idx] == '\'') - idx++; - ptr = hash_lookup (&vars, &condass_acc); - - if (!ptr) - { - if (warn) - { - WARNING ((stderr, _("Can't find preprocessor variable %s.\n"), sb_name (&condass_acc))); - } - else - { - sb_add_string (out, "0"); - } - } - else - { - if (ptr->type == hash_integer) - { - char buffer[30]; - sprintf (buffer, "%d", ptr->value.i); - sb_add_string (out, buffer); - } - else - { - sb_add_sb (out, &ptr->value.s); - } - } - sb_kill (&condass_acc); - return idx; -} - -#define EQ 1 -#define NE 2 -#define GE 3 -#define LT 4 -#define LE 5 -#define GT 6 -#define NEVER 7 - -static int -whatcond (idx, in, val) - int idx; - sb *in; - int *val; -{ - int cond; - - idx = sb_skip_white (idx, in); - cond = NEVER; - if (idx + 1 < in->len) - { - char *p; - char a, b; - - p = in->ptr + idx; - a = TOUPPER (p[0]); - b = TOUPPER (p[1]); - if (a == 'E' && b == 'Q') - cond = EQ; - else if (a == 'N' && b == 'E') - cond = NE; - else if (a == 'L' && b == 'T') - cond = LT; - else if (a == 'L' && b == 'E') - cond = LE; - else if (a == 'G' && b == 'T') - cond = GT; - else if (a == 'G' && b == 'E') - cond = GE; - } - if (cond == NEVER) - { - ERROR ((stderr, _("Comparison operator must be one of EQ, NE, LT, LE, GT or GE.\n"))); - cond = NEVER; - } - idx = sb_skip_white (idx + 2, in); - *val = cond; - return idx; -} - -static int -istrue (idx, in) - int idx; - sb *in; -{ - int res; - sb acc_a; - sb cond; - sb acc_b; - sb_new (&acc_a); - sb_new (&cond); - sb_new (&acc_b); - idx = sb_skip_white (idx, in); - - if (in->ptr[idx] == '"') - { - int cond; - int same; - /* This is a string comparision. */ - idx = getstring (idx, in, &acc_a); - idx = whatcond (idx, in, &cond); - idx = getstring (idx, in, &acc_b); - same = acc_a.len == acc_b.len - && (strncmp (acc_a.ptr, acc_b.ptr, acc_a.len) == 0); - - if (cond != EQ && cond != NE) - { - ERROR ((stderr, _("Comparison operator for strings must be EQ or NE\n"))); - res = 0; - } - else - res = (cond != EQ) ^ same; - } - else - /* This is a numeric expression. */ - { - int vala; - int valb; - int cond; - idx = exp_get_abs (_("Conditional operator must have absolute operands.\n"), idx, in, &vala); - idx = whatcond (idx, in, &cond); - idx = sb_skip_white (idx, in); - if (in->ptr[idx] == '"') - { - WARNING ((stderr, _("String compared against expression.\n"))); - res = 0; - } - else - { - idx = exp_get_abs (_("Conditional operator must have absolute operands.\n"), idx, in, &valb); - switch (cond) - { - default: - res = 42; - break; - case EQ: - res = vala == valb; - break; - case NE: - res = vala != valb; - break; - case LT: - res = vala < valb; - break; - case LE: - res = vala <= valb; - break; - case GT: - res = vala > valb; - break; - case GE: - res = vala >= valb; - break; - case NEVER: - res = 0; - break; - } - } - } - - sb_kill (&acc_a); - sb_kill (&cond); - sb_kill (&acc_b); - return res; -} - -/* .AIF */ - -static void -do_aif (idx, in) - int idx; - sb *in; -{ - if (ifi >= IFNESTING) - { - FATAL ((stderr, _("AIF nesting unreasonable.\n"))); - } - ifi++; - ifstack[ifi].on = ifstack[ifi - 1].on ? istrue (idx, in) : 0; - ifstack[ifi].hadelse = 0; -} - -/* .AELSE */ - -static void -do_aelse () -{ - ifstack[ifi].on = ifstack[ifi - 1].on ? !ifstack[ifi].on : 0; - if (ifstack[ifi].hadelse) - { - ERROR ((stderr, _("Multiple AELSEs in AIF.\n"))); - } - ifstack[ifi].hadelse = 1; -} - -/* .AENDI */ - -static void -do_aendi () -{ - if (ifi != 0) - { - ifi--; - } - else - { - ERROR ((stderr, _("AENDI without AIF.\n"))); - } -} - -static int -condass_on () -{ - return ifstack[ifi].on; -} - -/* MRI IFEQ, IFNE, IFLT, IFLE, IFGE, IFGT. */ - -static void -do_if (idx, in, cond) - int idx; - sb *in; - int cond; -{ - int val; - int res; - - if (ifi >= IFNESTING) - { - FATAL ((stderr, _("IF nesting unreasonable.\n"))); - } - - idx = exp_get_abs (_("Conditional operator must have absolute operands.\n"), - idx, in, &val); - switch (cond) - { - default: - case EQ: res = val == 0; break; - case NE: res = val != 0; break; - case LT: res = val < 0; break; - case LE: res = val <= 0; break; - case GE: res = val >= 0; break; - case GT: res = val > 0; break; - } - - ifi++; - ifstack[ifi].on = ifstack[ifi - 1].on ? res : 0; - ifstack[ifi].hadelse = 0; -} - -/* Get a string for the MRI IFC or IFNC pseudo-ops. */ - -static int -get_mri_string (idx, in, val, terminator) - int idx; - sb *in; - sb *val; - int terminator; -{ - idx = sb_skip_white (idx, in); - - if (idx < in->len - && in->ptr[idx] == '\'') - { - sb_add_char (val, '\''); - for (++idx; idx < in->len; ++idx) - { - sb_add_char (val, in->ptr[idx]); - if (in->ptr[idx] == '\'') - { - ++idx; - if (idx >= in->len - || in->ptr[idx] != '\'') - break; - } - } - idx = sb_skip_white (idx, in); - } - else - { - int i; - - while (idx < in->len - && in->ptr[idx] != terminator) - { - sb_add_char (val, in->ptr[idx]); - ++idx; - } - i = val->len - 1; - while (i >= 0 && ISWHITE (val->ptr[i])) - --i; - val->len = i + 1; - } - - return idx; -} - -/* MRI IFC, IFNC */ - -static void -do_ifc (idx, in, ifnc) - int idx; - sb *in; - int ifnc; -{ - sb first; - sb second; - int res; - - if (ifi >= IFNESTING) - { - FATAL ((stderr, _("IF nesting unreasonable.\n"))); - } - - sb_new (&first); - sb_new (&second); - - idx = get_mri_string (idx, in, &first, ','); - - if (idx >= in->len || in->ptr[idx] != ',') - { - ERROR ((stderr, _("Bad format for IF or IFNC.\n"))); - return; - } - - idx = get_mri_string (idx + 1, in, &second, ';'); - - res = (first.len == second.len - && strncmp (first.ptr, second.ptr, first.len) == 0); - res ^= ifnc; - - ifi++; - ifstack[ifi].on = ifstack[ifi - 1].on ? res : 0; - ifstack[ifi].hadelse = 0; -} - -/* .ENDR */ - -static void -do_aendr () -{ - if (!mri) - ERROR ((stderr, _("AENDR without a AREPEAT.\n"))); - else - ERROR ((stderr, _("ENDR without a REPT.\n"))); -} - -/* .AWHILE */ - -static void -do_awhile (idx, in) - int idx; - sb *in; -{ - int line = linecount (); - sb exp; - sb sub; - int doit; - - sb_new (&sub); - sb_new (&exp); - - process_assigns (idx, in, &exp); - doit = istrue (0, &exp); - - if (! buffer_and_nest ("AWHILE", "AENDW", &sub, get_line)) - FATAL ((stderr, _("AWHILE without a AENDW at %d.\n"), line - 1)); - - /* Turn - .AWHILE exp - foo - .AENDW - into - foo - .AWHILE exp - foo - .ENDW - */ - - if (doit) - { - int index = include_next_index (); - - sb copy; - sb_new (©); - sb_add_sb (©, &sub); - sb_add_sb (©, in); - sb_add_string (©, "\n"); - sb_add_sb (©, &sub); - sb_add_string (©, "\t.AENDW\n"); - /* Push another WHILE. */ - include_buf (&exp, ©, include_while, index); - sb_kill (©); - } - sb_kill (&exp); - sb_kill (&sub); -} - -/* .AENDW */ - -static void -do_aendw () -{ - ERROR ((stderr, _("AENDW without a AENDW.\n"))); -} - -/* .EXITM - - Pop things off the include stack until the type and index changes. */ - -static void -do_exitm () -{ - include_type type = sp->type; - if (type == include_repeat - || type == include_while - || type == include_macro) - { - int index = sp->index; - include_pop (); - while (sp->index == index - && sp->type == type) - { - include_pop (); - } - } -} - -/* .AREPEAT */ - -static void -do_arepeat (idx, in) - int idx; - sb *in; -{ - int line = linecount (); - sb exp; /* Buffer with expression in it. */ - sb copy; /* Expanded repeat block. */ - sb sub; /* Contents of AREPEAT. */ - int rc; - int ret; - char buffer[30]; - - sb_new (&exp); - sb_new (©); - sb_new (&sub); - process_assigns (idx, in, &exp); - idx = exp_get_abs (_("AREPEAT must have absolute operand.\n"), 0, &exp, &rc); - if (!mri) - ret = buffer_and_nest ("AREPEAT", "AENDR", &sub, get_line); - else - ret = buffer_and_nest ("REPT", "ENDR", &sub, get_line); - if (! ret) - FATAL ((stderr, _("AREPEAT without a AENDR at %d.\n"), line - 1)); - if (rc > 0) - { - /* Push back the text following the repeat, and another repeat block - so - .AREPEAT 20 - foo - .AENDR - gets turned into - foo - .AREPEAT 19 - foo - .AENDR - */ - int index = include_next_index (); - sb_add_sb (©, &sub); - if (rc > 1) - { - if (!mri) - sprintf (buffer, "\t.AREPEAT %d\n", rc - 1); - else - sprintf (buffer, "\tREPT %d\n", rc - 1); - sb_add_string (©, buffer); - sb_add_sb (©, &sub); - if (!mri) - sb_add_string (©, " .AENDR\n"); - else - sb_add_string (©, " ENDR\n"); - } - - include_buf (&exp, ©, include_repeat, index); - } - sb_kill (&exp); - sb_kill (&sub); - sb_kill (©); -} - -/* .ENDM */ - -static void -do_endm () -{ - ERROR ((stderr, _(".ENDM without a matching .MACRO.\n"))); -} - -/* MRI IRP pseudo-op. */ - -static void -do_irp (idx, in, irpc) - int idx; - sb *in; - int irpc; -{ - const char *err; - sb out; - - sb_new (&out); - - err = expand_irp (irpc, idx, in, &out, get_line, comment_char); - if (err != NULL) - ERROR ((stderr, "%s\n", err)); - - fprintf (outfile, "%s", sb_terminate (&out)); - - sb_kill (&out); -} - -/* Macro processing. */ - -/* Parse off LOCAL n1, n2,... Invent a label name for it. */ - -static void -do_local (idx, line) - int idx ATTRIBUTE_UNUSED; - sb *line ATTRIBUTE_UNUSED; -{ - ERROR ((stderr, _("LOCAL outside of MACRO"))); -} - -static void -do_macro (idx, in) - int idx; - sb *in; -{ - const char *err; - int line = linecount (); - - err = define_macro (idx, in, &label, get_line, (const char **) NULL); - if (err != NULL) - ERROR ((stderr, _("macro at line %d: %s\n"), line - 1, err)); -} - -static int -macro_op (idx, in) - int idx; - sb *in; -{ - const char *err; - sb out; - sb name; - - if (! macro_defined) - return 0; - - sb_terminate (in); - if (! check_macro (in->ptr + idx, &out, comment_char, &err, NULL)) - return 0; - - if (err != NULL) - ERROR ((stderr, "%s\n", err)); - - sb_new (&name); - sb_add_string (&name, _("macro expansion")); - - include_buf (&name, &out, include_macro, include_next_index ()); - - sb_kill (&name); - sb_kill (&out); - - return 1; -} - -/* String handling. */ - -static int -getstring (idx, in, acc) - int idx; - sb *in; - sb *acc; -{ - idx = sb_skip_white (idx, in); - - while (idx < in->len - && (in->ptr[idx] == '"' - || in->ptr[idx] == '<' - || (in->ptr[idx] == '\'' && alternate))) - { - if (in->ptr[idx] == '<') - { - if (alternate || mri) - { - int nest = 0; - idx++; - while ((in->ptr[idx] != '>' || nest) - && idx < in->len) - { - if (in->ptr[idx] == '!') - { - idx++; - sb_add_char (acc, in->ptr[idx++]); - } - else - { - if (in->ptr[idx] == '>') - nest--; - if (in->ptr[idx] == '<') - nest++; - sb_add_char (acc, in->ptr[idx++]); - } - } - idx++; - } - else - { - int code; - idx++; - idx = exp_get_abs (_("Character code in string must be absolute expression.\n"), - idx, in, &code); - sb_add_char (acc, code); - - if (in->ptr[idx] != '>') - ERROR ((stderr, _("Missing > for character code.\n"))); - idx++; - } - } - else if (in->ptr[idx] == '"' || in->ptr[idx] == '\'') - { - char tchar = in->ptr[idx]; - idx++; - while (idx < in->len) - { - if (alternate && in->ptr[idx] == '!') - { - idx++; - sb_add_char (acc, in->ptr[idx++]); - } - else - { - if (in->ptr[idx] == tchar) - { - idx++; - if (idx >= in->len || in->ptr[idx] != tchar) - break; - } - sb_add_char (acc, in->ptr[idx]); - idx++; - } - } - } - } - - return idx; -} - -/* .SDATA[C|Z] */ - -static void -do_sdata (idx, in, type) - int idx; - sb *in; - int type; -{ - int nc = 0; - int pidx = -1; - sb acc; - sb_new (&acc); - fprintf (outfile, ".byte\t"); - - while (!eol (idx, in)) - { - int i; - sb_reset (&acc); - idx = sb_skip_white (idx, in); - while (!eol (idx, in)) - { - pidx = idx = get_any_string (idx, in, &acc, 0, 1); - if (type == 'c') - { - if (acc.len > 255) - { - ERROR ((stderr, _("string for SDATAC longer than 255 characters (%d).\n"), acc.len)); - } - fprintf (outfile, "%d", acc.len); - nc = 1; - } - - for (i = 0; i < acc.len; i++) - { - if (nc) - { - fprintf (outfile, ","); - } - fprintf (outfile, "%d", acc.ptr[i]); - nc = 1; - } - - if (type == 'z') - { - if (nc) - fprintf (outfile, ","); - fprintf (outfile, "0"); - } - idx = sb_skip_comma (idx, in); - if (idx == pidx) - break; - } - if (!alternate && in->ptr[idx] != ',' && idx != in->len) - { - fprintf (outfile, "\n"); - ERROR ((stderr, _("illegal character in SDATA line (0x%x).\n"), - in->ptr[idx])); - break; - } - idx++; - } - sb_kill (&acc); - fprintf (outfile, "\n"); -} - -/* .SDATAB */ - -static void -do_sdatab (idx, in) - int idx; - sb *in; -{ - int repeat; - int i; - sb acc; - sb_new (&acc); - - idx = exp_get_abs (_("Must have absolute SDATAB repeat count.\n"), idx, in, &repeat); - if (repeat <= 0) - { - ERROR ((stderr, _("Must have positive SDATAB repeat count (%d).\n"), repeat)); - repeat = 1; - } - - idx = sb_skip_comma (idx, in); - idx = getstring (idx, in, &acc); - - for (i = 0; i < repeat; i++) - { - if (i) - fprintf (outfile, "\t"); - fprintf (outfile, ".byte\t"); - sb_print (outfile, &acc); - fprintf (outfile, "\n"); - } - sb_kill (&acc); - -} - -static int -new_file (name) - const char *name; -{ - FILE *newone = fopen (name, "r"); - if (!newone) - return 0; - - if (isp == MAX_INCLUDES) - FATAL ((stderr, _("Unreasonable include depth (%ld).\n"), (long) isp)); - - sp++; - sp->handle = newone; - - sb_new (&sp->name); - sb_add_string (&sp->name, name); - - sp->linecount = 1; - sp->pushback_index = 0; - sp->type = include_file; - sp->index = 0; - sb_new (&sp->pushback); - return 1; -} - -static void -do_include (idx, in) - int idx; - sb *in; -{ - sb t; - sb cat; - include_path *includes; - - sb_new (&t); - sb_new (&cat); - - if (! mri) - idx = getstring (idx, in, &t); - else - { - idx = sb_skip_white (idx, in); - while (idx < in->len && ! ISWHITE (in->ptr[idx])) - { - sb_add_char (&t, in->ptr[idx]); - ++idx; - } - } - - for (includes = paths_head; includes; includes = includes->next) - { - sb_reset (&cat); - sb_add_sb (&cat, &includes->path); - sb_add_char (&cat, '/'); - sb_add_sb (&cat, &t); - if (new_file (sb_name (&cat))) - { - break; - } - } - if (!includes) - { - if (! new_file (sb_name (&t))) - FATAL ((stderr, _("Can't open include file `%s'.\n"), sb_name (&t))); - } - sb_kill (&cat); - sb_kill (&t); -} - -static void -include_pop () -{ - if (sp != include_stack) - { - if (sp->handle) - fclose (sp->handle); - sp--; - } -} - -/* Get the next character from the include stack. If there's anything - in the pushback buffer, take that first. If we're at eof, pop from - the stack and try again. Keep the linecount up to date. */ - -static int -get () -{ - int r; - - if (sp->pushback.len != sp->pushback_index) - { - r = (char) (sp->pushback.ptr[sp->pushback_index++]); - /* When they've all gone, reset the pointer. */ - if (sp->pushback_index == sp->pushback.len) - { - sp->pushback.len = 0; - sp->pushback_index = 0; - } - } - else if (sp->handle) - { - r = getc (sp->handle); - } - else - r = EOF; - - if (r == EOF && isp) - { - include_pop (); - r = get (); - while (r == EOF && isp) - { - include_pop (); - r = get (); - } - return r; - } - if (r == '\n') - { - sp->linecount++; - } - - return r; -} - -static int -linecount () -{ - return sp->linecount; -} - -static int -include_next_index () -{ - static int index; - if (!unreasonable - && index > MAX_REASONABLE) - FATAL ((stderr, _("Unreasonable expansion (-u turns off check).\n"))); - return ++index; -} - -/* Initialize the chartype vector. */ - -static void -chartype_init () -{ - int x; - for (x = 0; x < 256; x++) - { - if (ISALPHA (x) || x == '_' || x == '$') - chartype[x] |= FIRSTBIT; - - if (mri && x == '.') - chartype[x] |= FIRSTBIT; - - if (ISDIGIT (x) || ISALPHA (x) || x == '_' || x == '$') - chartype[x] |= NEXTBIT; - - if (x == ' ' || x == '\t' || x == ',' || x == '"' || x == ';' - || x == '"' || x == '<' || x == '>' || x == ')' || x == '(') - chartype[x] |= SEPBIT; - - if (x == 'b' || x == 'B' - || x == 'q' || x == 'Q' - || x == 'h' || x == 'H' - || x == 'd' || x == 'D') - chartype [x] |= BASEBIT; - - if (x == ' ' || x == '\t') - chartype[x] |= WHITEBIT; - - if (x == comment_char) - chartype[x] |= COMMENTBIT; - } -} - -/* What to do with all the keywords. */ -#define PROCESS 0x1000 /* Run substitution over the line. */ -#define LAB 0x2000 /* Spit out the label. */ - -#define K_EQU (PROCESS|1) -#define K_ASSIGN (PROCESS|2) -#define K_REG (PROCESS|3) -#define K_ORG (PROCESS|4) -#define K_RADIX (PROCESS|5) -#define K_DATA (LAB|PROCESS|6) -#define K_DATAB (LAB|PROCESS|7) -#define K_SDATA (LAB|PROCESS|8) -#define K_SDATAB (LAB|PROCESS|9) -#define K_SDATAC (LAB|PROCESS|10) -#define K_SDATAZ (LAB|PROCESS|11) -#define K_RES (LAB|PROCESS|12) -#define K_SRES (LAB|PROCESS|13) -#define K_SRESC (LAB|PROCESS|14) -#define K_SRESZ (LAB|PROCESS|15) -#define K_EXPORT (LAB|PROCESS|16) -#define K_GLOBAL (LAB|PROCESS|17) -#define K_PRINT (LAB|PROCESS|19) -#define K_FORM (LAB|PROCESS|20) -#define K_HEADING (LAB|PROCESS|21) -#define K_PAGE (LAB|PROCESS|22) -#define K_IMPORT (LAB|PROCESS|23) -#define K_PROGRAM (LAB|PROCESS|24) -#define K_END (PROCESS|25) -#define K_INCLUDE (PROCESS|26) -#define K_IGNORED (PROCESS|27) -#define K_ASSIGNA (PROCESS|28) -#define K_ASSIGNC (29) -#define K_AIF (PROCESS|30) -#define K_AELSE (PROCESS|31) -#define K_AENDI (PROCESS|32) -#define K_AREPEAT (PROCESS|33) -#define K_AENDR (PROCESS|34) -#define K_AWHILE (35) -#define K_AENDW (PROCESS|36) -#define K_EXITM (37) -#define K_MACRO (PROCESS|38) -#define K_ENDM (39) -#define K_ALIGN (PROCESS|LAB|40) -#define K_ALTERNATE (41) -#define K_DB (LAB|PROCESS|42) -#define K_DW (LAB|PROCESS|43) -#define K_DL (LAB|PROCESS|44) -#define K_LOCAL (45) -#define K_IFEQ (PROCESS|46) -#define K_IFNE (PROCESS|47) -#define K_IFLT (PROCESS|48) -#define K_IFLE (PROCESS|49) -#define K_IFGE (PROCESS|50) -#define K_IFGT (PROCESS|51) -#define K_IFC (PROCESS|52) -#define K_IFNC (PROCESS|53) -#define K_IRP (PROCESS|54) -#define K_IRPC (PROCESS|55) - -struct keyword { - char *name; - int code; - int extra; -}; - -static struct keyword kinfo[] = { - { "EQU", K_EQU, 0 }, - { "ALTERNATE", K_ALTERNATE, 0 }, - { "ASSIGN", K_ASSIGN, 0 }, - { "REG", K_REG, 0 }, - { "ORG", K_ORG, 0 }, - { "RADIX", K_RADIX, 0 }, - { "DATA", K_DATA, 0 }, - { "DB", K_DB, 0 }, - { "DW", K_DW, 0 }, - { "DL", K_DL, 0 }, - { "DATAB", K_DATAB, 0 }, - { "SDATA", K_SDATA, 0 }, - { "SDATAB", K_SDATAB, 0 }, - { "SDATAZ", K_SDATAZ, 0 }, - { "SDATAC", K_SDATAC, 0 }, - { "RES", K_RES, 0 }, - { "SRES", K_SRES, 0 }, - { "SRESC", K_SRESC, 0 }, - { "SRESZ", K_SRESZ, 0 }, - { "EXPORT", K_EXPORT, 0 }, - { "GLOBAL", K_GLOBAL, 0 }, - { "PRINT", K_PRINT, 0 }, - { "FORM", K_FORM, 0 }, - { "HEADING", K_HEADING, 0 }, - { "PAGE", K_PAGE, 0 }, - { "PROGRAM", K_IGNORED, 0 }, - { "END", K_END, 0 }, - { "INCLUDE", K_INCLUDE, 0 }, - { "ASSIGNA", K_ASSIGNA, 0 }, - { "ASSIGNC", K_ASSIGNC, 0 }, - { "AIF", K_AIF, 0 }, - { "AELSE", K_AELSE, 0 }, - { "AENDI", K_AENDI, 0 }, - { "AREPEAT", K_AREPEAT, 0 }, - { "AENDR", K_AENDR, 0 }, - { "EXITM", K_EXITM, 0 }, - { "MACRO", K_MACRO, 0 }, - { "ENDM", K_ENDM, 0 }, - { "AWHILE", K_AWHILE, 0 }, - { "ALIGN", K_ALIGN, 0 }, - { "AENDW", K_AENDW, 0 }, - { "ALTERNATE", K_ALTERNATE, 0 }, - { "LOCAL", K_LOCAL, 0 }, - { NULL, 0, 0 } -}; - -/* Although the conditional operators are handled by gas, we need to - handle them here as well, in case they are used in a recursive - macro to end the recursion. */ - -static struct keyword mrikinfo[] = { - { "IFEQ", K_IFEQ, 0 }, - { "IFNE", K_IFNE, 0 }, - { "IFLT", K_IFLT, 0 }, - { "IFLE", K_IFLE, 0 }, - { "IFGE", K_IFGE, 0 }, - { "IFGT", K_IFGT, 0 }, - { "IFC", K_IFC, 0 }, - { "IFNC", K_IFNC, 0 }, - { "ELSEC", K_AELSE, 0 }, - { "ENDC", K_AENDI, 0 }, - { "MEXIT", K_EXITM, 0 }, - { "REPT", K_AREPEAT, 0 }, - { "IRP", K_IRP, 0 }, - { "IRPC", K_IRPC, 0 }, - { "ENDR", K_AENDR, 0 }, - { NULL, 0, 0 } -}; - -/* Look for a pseudo op on the line. If one's there then call - its handler. */ - -static int -process_pseudo_op (idx, line, acc) - int idx; - sb *line; - sb *acc; -{ - int oidx = idx; - - if (line->ptr[idx] == '.' || alternate || mri) - { - /* Scan forward and find pseudo name. */ - char *in; - hash_entry *ptr; - - char *s; - char *e; - if (line->ptr[idx] == '.') - idx++; - in = line->ptr + idx; - s = in; - e = s; - sb_reset (acc); - - while (idx < line->len && *e && ISFIRSTCHAR (*e)) - { - sb_add_char (acc, *e); - e++; - idx++; - } - - ptr = hash_lookup (&keyword_hash_table, acc); - - if (!ptr) - { -#if 0 - /* This one causes lots of pain when trying to preprocess - ordinary code. */ - WARNING ((stderr, _("Unrecognised pseudo op `%s'.\n"), - sb_name (acc))); -#endif - return 0; - } - if (ptr->value.i & LAB) - { - /* Output the label. */ - if (label.len) - { - fprintf (outfile, "%s:\t", sb_name (&label)); - } - else - fprintf (outfile, "\t"); - } - - if (mri && ptr->value.i == K_END) - { - sb t; - - sb_new (&t); - sb_add_buffer (&t, line->ptr + oidx, idx - oidx); - fprintf (outfile, "\t%s", sb_name (&t)); - sb_kill (&t); - } - - if (ptr->value.i & PROCESS) - { - /* Polish the rest of the line before handling the pseudo op. */ -#if 0 - strip_comments (line); -#endif - sb_reset (acc); - process_assigns (idx, line, acc); - sb_reset (line); - change_base (0, acc, line); - idx = 0; - } - if (!condass_on ()) - { - switch (ptr->value.i) - { - case K_AIF: - do_aif (idx, line); - break; - case K_AELSE: - do_aelse (); - break; - case K_AENDI: - do_aendi (); - break; - } - return 1; - } - else - { - switch (ptr->value.i) - { - case K_ALTERNATE: - alternate = 1; - macro_init (1, mri, 0, exp_get_abs); - return 1; - case K_AELSE: - do_aelse (); - return 1; - case K_AENDI: - do_aendi (); - return 1; - case K_ORG: - ERROR ((stderr, _("ORG command not allowed.\n"))); - break; - case K_RADIX: - do_radix (line); - return 1; - case K_DB: - do_data (idx, line, 1); - return 1; - case K_DW: - do_data (idx, line, 2); - return 1; - case K_DL: - do_data (idx, line, 4); - return 1; - case K_DATA: - do_data (idx, line, 0); - return 1; - case K_DATAB: - do_datab (idx, line); - return 1; - case K_SDATA: - do_sdata (idx, line, 0); - return 1; - case K_SDATAB: - do_sdatab (idx, line); - return 1; - case K_SDATAC: - do_sdata (idx, line, 'c'); - return 1; - case K_SDATAZ: - do_sdata (idx, line, 'z'); - return 1; - case K_ASSIGN: - do_assign (0, 0, line); - return 1; - case K_AIF: - do_aif (idx, line); - return 1; - case K_AREPEAT: - do_arepeat (idx, line); - return 1; - case K_AENDW: - do_aendw (); - return 1; - case K_AWHILE: - do_awhile (idx, line); - return 1; - case K_AENDR: - do_aendr (); - return 1; - case K_EQU: - do_assign (1, idx, line); - return 1; - case K_ALIGN: - do_align (idx, line); - return 1; - case K_RES: - do_res (idx, line, 0); - return 1; - case K_SRES: - do_res (idx, line, 's'); - return 1; - case K_INCLUDE: - do_include (idx, line); - return 1; - case K_LOCAL: - do_local (idx, line); - return 1; - case K_MACRO: - do_macro (idx, line); - return 1; - case K_ENDM: - do_endm (); - return 1; - case K_SRESC: - do_res (idx, line, 'c'); - return 1; - case K_PRINT: - do_print (idx, line); - return 1; - case K_FORM: - do_form (idx, line); - return 1; - case K_HEADING: - do_heading (idx, line); - return 1; - case K_PAGE: - do_page (); - return 1; - case K_GLOBAL: - case K_EXPORT: - do_export (line); - return 1; - case K_IMPORT: - return 1; - case K_SRESZ: - do_res (idx, line, 'z'); - return 1; - case K_IGNORED: - return 1; - case K_END: - do_end (line); - return 1; - case K_ASSIGNA: - do_assigna (idx, line); - return 1; - case K_ASSIGNC: - do_assignc (idx, line); - return 1; - case K_EXITM: - do_exitm (); - return 1; - case K_REG: - do_reg (idx, line); - return 1; - case K_IFEQ: - do_if (idx, line, EQ); - return 1; - case K_IFNE: - do_if (idx, line, NE); - return 1; - case K_IFLT: - do_if (idx, line, LT); - return 1; - case K_IFLE: - do_if (idx, line, LE); - return 1; - case K_IFGE: - do_if (idx, line, GE); - return 1; - case K_IFGT: - do_if (idx, line, GT); - return 1; - case K_IFC: - do_ifc (idx, line, 0); - return 1; - case K_IFNC: - do_ifc (idx, line, 1); - return 1; - case K_IRP: - do_irp (idx, line, 0); - return 1; - case K_IRPC: - do_irp (idx, line, 1); - return 1; - } - } - } - return 0; -} - -/* Add a keyword to the hash table. */ - -static void -add_keyword (name, code) - const char *name; - int code; -{ - sb label; - int j; - - sb_new (&label); - sb_add_string (&label, name); - - hash_add_to_int_table (&keyword_hash_table, &label, code); - - sb_reset (&label); - for (j = 0; name[j]; j++) - sb_add_char (&label, name[j] - 'A' + 'a'); - hash_add_to_int_table (&keyword_hash_table, &label, code); - - sb_kill (&label); -} - -/* Build the keyword hash table - put each keyword in the table twice, - once upper and once lower case. */ - -static void -process_init () -{ - int i; - - for (i = 0; kinfo[i].name; i++) - add_keyword (kinfo[i].name, kinfo[i].code); - - if (mri) - { - for (i = 0; mrikinfo[i].name; i++) - add_keyword (mrikinfo[i].name, mrikinfo[i].code); - } -} - -static void -do_define (string) - const char *string; -{ - sb label; - int res = 1; - hash_entry *ptr; - sb_new (&label); - - while (*string) - { - if (*string == '=') - { - sb value; - sb_new (&value); - string++; - while (*string) - { - sb_add_char (&value, *string); - string++; - } - exp_get_abs (_("Invalid expression on command line.\n"), - 0, &value, &res); - sb_kill (&value); - break; - } - sb_add_char (&label, *string); - - string++; - } - - ptr = hash_create (&vars, &label); - free_old_entry (ptr); - ptr->type = hash_integer; - ptr->value.i = res; - sb_kill (&label); -} - -char *program_name; - -/* The list of long options. */ -static struct option long_options[] = -{ - { "alternate", no_argument, 0, 'a' }, - { "include", required_argument, 0, 'I' }, - { "commentchar", required_argument, 0, 'c' }, - { "copysource", no_argument, 0, 's' }, - { "debug", no_argument, 0, 'd' }, - { "help", no_argument, 0, 'h' }, - { "mri", no_argument, 0, 'M' }, - { "output", required_argument, 0, 'o' }, - { "print", no_argument, 0, 'p' }, - { "unreasonable", no_argument, 0, 'u' }, - { "version", no_argument, 0, 'v' }, - { "define", required_argument, 0, 'd' }, - { NULL, no_argument, 0, 0 } -}; - -/* Show a usage message and exit. */ -static void -show_usage (file, status) - FILE *file; - int status; -{ - fprintf (file, _("\ -Usage: %s \n\ - [-a] [--alternate] enter alternate macro mode\n\ - [-c char] [--commentchar char] change the comment character from !\n\ - [-d] [--debug] print some debugging info\n\ - [-h] [--help] print this message\n\ - [-M] [--mri] enter MRI compatibility mode\n\ - [-o out] [--output out] set the output file\n\ - [-p] [--print] print line numbers\n"), program_name); - fprintf (file, _("\ - [-s] [--copysource] copy source through as comments \n\ - [-u] [--unreasonable] allow unreasonable nesting\n\ - [-v] [--version] print the program version\n\ - [-Dname=value] create preprocessor variable called name, with value\n\ - [-Ipath] add to include path list\n\ - [in-file]\n")); - if (status == 0) - printf (_("Report bugs to %s\n"), REPORT_BUGS_TO); - exit (status); -} - -/* Display a help message and exit. */ - -static void -show_help () -{ - printf (_("%s: Gnu Assembler Macro Preprocessor\n"), program_name); - show_usage (stdout, 0); -} - -int main PARAMS ((int, char **)); - -int -main (argc, argv) - int argc; - char **argv; -{ - int opt; - char *out_name = 0; - sp = include_stack; - - ifstack[0].on = 1; - ifi = 0; - -#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES) - setlocale (LC_MESSAGES, ""); -#endif -#if defined (HAVE_SETLOCALE) - setlocale (LC_CTYPE, ""); -#endif - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); - - program_name = argv[0]; - xmalloc_set_program_name (program_name); - - hash_new_table (101, &keyword_hash_table); - hash_new_table (101, &assign_hash_table); - hash_new_table (101, &vars); - - sb_new (&label); - - while ((opt = getopt_long (argc, argv, "I:sdhavc:upo:D:M", long_options, - (int *) NULL)) - != EOF) - { - switch (opt) - { - case 'o': - out_name = optarg; - break; - case 'u': - unreasonable = 1; - break; - case 'I': - { - include_path *p = (include_path *) xmalloc (sizeof (include_path)); - p->next = NULL; - sb_new (&p->path); - sb_add_string (&p->path, optarg); - if (paths_tail) - paths_tail->next = p; - else - paths_head = p; - paths_tail = p; - } - break; - case 'p': - print_line_number = 1; - break; - case 'c': - comment_char = optarg[0]; - break; - case 'a': - alternate = 1; - break; - case 's': - copysource = 1; - break; - case 'd': - stats = 1; - break; - case 'D': - do_define (optarg); - break; - case 'M': - mri = 1; - comment_char = ';'; - break; - case 'h': - show_help (); - /* NOTREACHED */ - case 'v': - /* This output is intended to follow the GNU standards document. */ - printf (_("GNU assembler pre-processor %s\n"), program_version); - printf (_("Copyright 1996 Free Software Foundation, Inc.\n")); - printf (_("\ -This program is free software; you may redistribute it under the terms of\n\ -the GNU General Public License. This program has absolutely no warranty.\n")); - exit (0); - /* NOTREACHED */ - case 0: - break; - default: - show_usage (stderr, 1); - /* NOTREACHED */ - } - } - - process_init (); - - macro_init (alternate, mri, 0, exp_get_abs); - - if (out_name) - { - outfile = fopen (out_name, "w"); - if (!outfile) - { - fprintf (stderr, _("%s: Can't open output file `%s'.\n"), - program_name, out_name); - exit (1); - } - } - else - { - outfile = stdout; - } - - chartype_init (); - if (!outfile) - outfile = stdout; - - /* Process all the input files. */ - - while (optind < argc) - { - if (new_file (argv[optind])) - { - process_file (); - } - else - { - fprintf (stderr, _("%s: Can't open input file `%s'.\n"), - program_name, argv[optind]); - exit (1); - } - optind++; - } - - quit (); - return 0; -} - -/* This function is used because an abort in some of the other files - may be compiled into as_abort because they include as.h. */ - -void -as_abort (file, line, fn) - const char *file, *fn; - int line; -{ - fprintf (stderr, _("Internal error, aborting at %s line %d"), file, line); - if (fn) - fprintf (stderr, " in %s", fn); - fprintf (stderr, _("\nPlease report this bug.\n")); - exit (1); -} diff -uprN binutils-2.13.90.0.16/gas/macro.c binutils-2.13.90.0.18/gas/macro.c --- binutils-2.13.90.0.16/gas/macro.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gas/macro.c Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ -/* macro.c - macro support for gas and gasp - Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +/* macro.c - macro support for gas + Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Steve and Judy Chamberlain of Cygnus Support, @@ -63,7 +63,7 @@ extern void *alloca (); #include "asintl.h" /* The routines in this file handle macro definition and expansion. - They are called by both gasp and gas. */ + They are called by gas. */ /* Internal functions. */ @@ -75,8 +75,8 @@ static int get_apost_token PARAMS ((int, static int sub_actual PARAMS ((int, sb *, sb *, struct hash_control *, int, sb *, int)); static const char *macro_expand_body - PARAMS ((sb *, sb *, formal_entry *, struct hash_control *, int, int)); -static const char *macro_expand PARAMS ((int, sb *, macro_entry *, sb *, int)); + PARAMS ((sb *, sb *, formal_entry *, struct hash_control *, int)); +static const char *macro_expand PARAMS ((int, sb *, macro_entry *, sb *)); #define ISWHITE(x) ((x) == ' ' || (x) == '\t') @@ -93,13 +93,13 @@ static const char *macro_expand PARAMS ( /* The macro hash table. */ -static struct hash_control *macro_hash; +struct hash_control *macro_hash; /* Whether any macros have been defined. */ int macro_defined; -/* Whether we are in GASP alternate mode. */ +/* Whether we are in alternate syntax mode. */ static int macro_alternate; @@ -653,12 +653,11 @@ sub_actual (start, in, t, formal_hash, k /* Expand the body of a macro. */ static const char * -macro_expand_body (in, out, formals, formal_hash, comment_char, locals) +macro_expand_body (in, out, formals, formal_hash, locals) sb *in; sb *out; formal_entry *formals; struct hash_control *formal_hash; - int comment_char; int locals; { sb t; @@ -689,14 +688,7 @@ macro_expand_body (in, out, formals, for else if (in->ptr[src] == '\\') { src++; - if (in->ptr[src] == comment_char && comment_char != '\0') - { - /* This is a comment, just drop the rest of the line. */ - while (src < in->len - && in->ptr[src] != '\n') - src++; - } - else if (in->ptr[src] == '(') + if (in->ptr[src] == '(') { /* Sub in till the next ')' literally. */ src++; @@ -779,7 +771,7 @@ macro_expand_body (in, out, formals, for formal_entry *f; src = sb_skip_white (src + 5, in); - while (in->ptr[src] != '\n' && in->ptr[src] != comment_char) + while (in->ptr[src] != '\n') { static int loccnt; char buf[20]; @@ -806,17 +798,6 @@ macro_expand_body (in, out, formals, for } } } - else if (comment_char != '\0' - && in->ptr[src] == comment_char - && src + 1 < in->len - && in->ptr[src + 1] == comment_char - && !inquote) - { - /* Two comment chars in a row cause the rest of the line to - be dropped. */ - while (src < in->len && in->ptr[src] != '\n') - src++; - } else if (in->ptr[src] == '"' || (macro_mri && in->ptr[src] == '\'')) { @@ -899,12 +880,11 @@ macro_expand_body (in, out, formals, for body. */ static const char * -macro_expand (idx, in, m, out, comment_char) +macro_expand (idx, in, m, out) int idx; sb *in; macro_entry *m; sb *out; - int comment_char; { sb t; formal_entry *ptr; @@ -954,7 +934,7 @@ macro_expand (idx, in, m, out, comment_c /* Peel off the actuals and store them away in the hash tables' actuals. */ idx = sb_skip_white (idx, in); - while (idx < in->len && in->ptr[idx] != comment_char) + while (idx < in->len) { int scan; @@ -1056,8 +1036,7 @@ macro_expand (idx, in, m, out, comment_c sb_add_string (&ptr->actual, buffer); } - err = macro_expand_body (&m->sub, out, m->formals, m->formal_hash, - comment_char, 1); + err = macro_expand_body (&m->sub, out, m->formals, m->formal_hash, 1); if (err != NULL) return err; @@ -1090,14 +1069,12 @@ macro_expand (idx, in, m, out, comment_c } /* Check for a macro. If one is found, put the expansion into - *EXPAND. COMMENT_CHAR is the comment character--this is used by - gasp. Return 1 if a macro is found, 0 otherwise. */ + *EXPAND. Return 1 if a macro is found, 0 otherwise. */ int -check_macro (line, expand, comment_char, error, info) +check_macro (line, expand, error, info) const char *line; sb *expand; - int comment_char; const char **error; macro_entry **info; { @@ -1135,7 +1112,7 @@ check_macro (line, expand, comment_char, sb_add_char (&line_sb, *s++); sb_new (expand); - *error = macro_expand (0, &line_sb, macro, expand, comment_char); + *error = macro_expand (0, &line_sb, macro, expand); sb_kill (&line_sb); @@ -1160,13 +1137,12 @@ delete_macro (name) success, or an error message otherwise. */ const char * -expand_irp (irpc, idx, in, out, get_line, comment_char) +expand_irp (irpc, idx, in, out, get_line) int irpc; int idx; sb *in; sb *out; int (*get_line) PARAMS ((sb *)); - int comment_char; { const char *mn; sb sub; @@ -1204,10 +1180,10 @@ expand_irp (irpc, idx, in, out, get_line sb_reset (out); idx = sb_skip_comma (idx, in); - if (idx >= in->len || in->ptr[idx] == comment_char) + if (idx >= in->len) { /* Expand once with a null string. */ - err = macro_expand_body (&sub, out, &f, h, comment_char, 0); + err = macro_expand_body (&sub, out, &f, h, 0); if (err != NULL) return err; } @@ -1215,7 +1191,7 @@ expand_irp (irpc, idx, in, out, get_line { if (irpc && in->ptr[idx] == '"') ++idx; - while (idx < in->len && in->ptr[idx] != comment_char) + while (idx < in->len) { if (!irpc) idx = get_any_string (idx, in, &f.actual, 1, 0); @@ -1226,7 +1202,7 @@ expand_irp (irpc, idx, in, out, get_line int nxt; nxt = sb_skip_white (idx + 1, in); - if (nxt >= in->len || in->ptr[nxt] == comment_char) + if (nxt >= in->len) { idx = nxt; break; @@ -1236,7 +1212,7 @@ expand_irp (irpc, idx, in, out, get_line sb_add_char (&f.actual, in->ptr[idx]); ++idx; } - err = macro_expand_body (&sub, out, &f, h, comment_char, 0); + err = macro_expand_body (&sub, out, &f, h, 0); if (err != NULL) return err; if (!irpc) diff -uprN binutils-2.13.90.0.16/gas/macro.h binutils-2.13.90.0.18/gas/macro.h --- binutils-2.13.90.0.16/gas/macro.h Thu May 23 15:10:10 2002 +++ binutils-2.13.90.0.18/gas/macro.h Mon Dec 16 12:22:52 2002 @@ -1,5 +1,5 @@ -/* macro.h - header file for macro support for gas and gasp - Copyright 1994, 1995, 1996, 1997, 1998, 2000 +/* macro.h - header file for macro support for gas + Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. Written by Steve and Judy Chamberlain of Cygnus Support, @@ -37,14 +37,14 @@ name and its default value. Each time the macro is expanded, the formals get the actual values attatched to them. */ -/* describe the formal arguments to a macro */ +/* Describe the formal arguments to a macro. */ typedef struct formal_struct { - struct formal_struct *next; /* next formal in list */ - sb name; /* name of the formal */ - sb def; /* the default value */ - sb actual; /* the actual argument (changed on each expansion) */ - int index; /* the index of the formal 0..formal_count-1 */ + struct formal_struct *next; /* Next formal in list. */ + sb name; /* Name of the formal. */ + sb def; /* The default value. */ + sb actual; /* The actual argument (changed on each expansion). */ + int index; /* The index of the formal 0..formal_count - 1. */ } formal_entry; /* Other values found in the index field of a formal_entry. */ @@ -52,13 +52,14 @@ typedef struct formal_struct { #define NARG_INDEX (-2) #define LOCAL_INDEX (-3) -/* describe the macro. */ +/* Describe the macro. */ -typedef struct macro_struct { - sb sub; /* substitution text. */ - int formal_count; /* number of formal args. */ - formal_entry *formals; /* pointer to list of formal_structs */ - struct hash_control *formal_hash; /* hash table of formals. */ +typedef struct macro_struct +{ + sb sub; /* Substitution text. */ + int formal_count; /* Number of formal args. */ + formal_entry *formals; /* Pointer to list of formal_structs. */ + struct hash_control *formal_hash; /* Hash table of formals. */ } macro_entry; /* Whether any macros have been defined. */ @@ -72,16 +73,16 @@ extern int macro_nest; extern int buffer_and_nest PARAMS ((const char *, const char *, sb *, int (*) PARAMS ((sb *)))); extern void macro_init - PARAMS ((int alternate, int mri, int strip_at, - int (*) PARAMS ((const char *, int, sb *, int *)))); -extern void macro_mri_mode PARAMS ((int)); + PARAMS ((int, int, int, int (*) PARAMS ((const char *, int, sb *, int *)))); +extern void macro_mri_mode + PARAMS ((int)); extern const char *define_macro - PARAMS ((int idx, sb *in, sb *label, int (*get_line) PARAMS ((sb *)), - const char **namep)); -extern int check_macro PARAMS ((const char *, sb *, int, const char **, - macro_entry **)); -extern void delete_macro PARAMS ((const char *)); + PARAMS ((int, sb *, sb *, int (*) PARAMS ((sb *)), const char **)); +extern int check_macro + PARAMS ((const char *, sb *, const char **, macro_entry **)); +extern void delete_macro + PARAMS ((const char *)); extern const char *expand_irp - PARAMS ((int, int, sb *, sb *, int (*) PARAMS ((sb *)), int)); + PARAMS ((int, int, sb *, sb *, int (*) PARAMS ((sb *)))); #endif diff -uprN binutils-2.13.90.0.16/gas/makefile.vms binutils-2.13.90.0.18/gas/makefile.vms --- binutils-2.13.90.0.16/gas/makefile.vms Thu Jun 3 11:01:59 1999 +++ binutils-2.13.90.0.18/gas/makefile.vms Mon Dec 16 12:22:52 2002 @@ -45,8 +45,6 @@ OBJS=targ-cpu.obj,obj-format.obj,atof-ta literal.obj,messages.obj,output-file.obj,read.obj,subsegs.obj,symbols.obj,\ write.obj,listing.obj,ecoff.obj,stabs.obj,sb.obj,macro.obj,ehopt.obj -GASPOBJS = gasp.obj,macro.obj,sb.obj,hash.obj - LIBIBERTY = [-.libiberty]libiberty.olb ifeq ($(ARCH),ALPHA) @@ -59,7 +57,7 @@ LIBOPCODES = BFDDEP = endif -all: config.status $(BFDDEP) as.exe gasp.exe +all: config.status $(BFDDEP) as.exe as.exe: $(OBJS) $(LIBOPCODES) $(LIBBFD) $(LIBIBERTY) ifeq ($(ARCH),ALPHA) @@ -68,13 +66,6 @@ else link$(LFLAGS)/exe=$@ $(OBJS),$(LIBIBERTY)/lib$(LIBS) endif -gasp.exe: $(GASPOBJS) $(LIBBFD) $(LIBIBERTY) -ifeq ($(ARCH),ALPHA) - link$(LFLAGS)/exe=$@ $(GASPOBJS),$(LIBBFD)/lib,$(LIBIBERTY)/lib$(LIBS) -else - link$(LFLAGS)/exe=$@ $(GASPOBJS),$(LIBIBERTY)/lib$(LIBS) -endif - config.status: $$ @config-gas @@ -108,7 +99,7 @@ targ-cpu.obj: targ-cpu.c targ-cpu.h [.co gmake -f makefile.vms "CC=$(CC)" $(CD) [-.gas] -install: as.exe gasp.exe +install: as.exe $(CP) $^ GNU_ROOT\:[BIN] clean: diff -uprN binutils-2.13.90.0.16/gas/mpw-make.sed binutils-2.13.90.0.18/gas/mpw-make.sed --- binutils-2.13.90.0.16/gas/mpw-make.sed Thu Jun 3 11:01:59 1999 +++ binutils-2.13.90.0.18/gas/mpw-make.sed Mon Dec 16 12:22:52 2002 @@ -58,18 +58,15 @@ LOCAL_LOADLIBES = \ # Whack out the config.h dependency, it only causes excess rebuilds. /{OBJS}/s/{OBJS} \\Option-f "{o}"config.h/{OBJS} \\Option-f/ -/gasp.c/s/gasp\.c "{o}"config.h/gasp.c/ # ALL_CFLAGS includes TDEFINES, which is not desirable at link time. /CC_LD/s/ALL_CFLAGS/CFLAGS/g # The resource file is called mac-as.r. /as.new.r/s/as\.new\.r/mac-as.r/ -/gasp.new.r/s/gasp\.new\.r/mac-as.r/ # ...and the PROG_NAME doesn't have a .new in it. /PROG_NAME/s/PROG_NAME='"'as.new'"'/PROG_NAME='"'as'"'/ -/PROG_NAME/s/PROG_NAME='"'gasp.new'"'/PROG_NAME='"'gasp'"'/ # Whack out recursive makes, they won't work. /^[ ][ ]*srcroot=/,/^[ ][ ]*(cd /d @@ -90,7 +87,6 @@ install \\Option-f all install-only\ install-only \\Option-f\ NewFolderRecursive "{bindir}"\ Duplicate -y :as.new "{bindir}"as\ - Duplicate -y :gasp.new "{bindir}"gasp\ # Whack out config-rebuilding targets, they won't work. diff -uprN binutils-2.13.90.0.16/gas/po/POTFILES.in binutils-2.13.90.0.18/gas/po/POTFILES.in --- binutils-2.13.90.0.16/gas/po/POTFILES.in Mon Jul 29 08:19:18 2002 +++ binutils-2.13.90.0.18/gas/po/POTFILES.in Tue Jan 21 10:21:33 2003 @@ -98,6 +98,8 @@ config/tc-mn10200.c config/tc-mn10200.h config/tc-mn10300.c config/tc-mn10300.h +config/tc-msp430.c +config/tc-msp430.h config/tc-ns32k.c config/tc-ns32k.h config/tc-openrisc.c @@ -161,7 +163,6 @@ flonum.h frags.c frags.c frags.h -gasp.c hash.c hash.c hash.h diff -uprN binutils-2.13.90.0.16/gas/read.c binutils-2.13.90.0.18/gas/read.c --- binutils-2.13.90.0.16/gas/read.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/read.c Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* read.c - read a source file - Copyright 1986, 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -862,7 +862,7 @@ read_a_source_file (name) const char *err; macro_entry *macro; - if (check_macro (s, &out, '\0', &err, ¯o)) + if (check_macro (s, &out, &err, ¯o)) { if (err != NULL) as_bad ("%s", err); @@ -1855,7 +1855,7 @@ s_irp (irpc) sb_new (&out); - err = expand_irp (irpc, 0, &s, &out, get_line_sb, '\0'); + err = expand_irp (irpc, 0, &s, &out, get_line_sb); if (err != NULL) as_bad_where (file, line, "%s", err); @@ -2296,8 +2296,7 @@ get_line_sb (line) return 1; } -/* Define a macro. This is an interface to macro.c, which is shared - between gas and gasp. */ +/* Define a macro. This is an interface to macro.c. */ void s_macro (ignore) @@ -3591,6 +3590,7 @@ emit_expr (exp, nbytes) x->sub = exp->X_op_symbol; x->addnum = exp->X_add_number; x->added = 0; + x->use_jump = 0; new_broken_words++; return; } @@ -4802,18 +4802,25 @@ get_known_segmented_expression (expP) } offsetT -get_absolute_expression () +get_absolute_expr (exp) + expressionS *exp; { - expressionS exp; - - expression (&exp); - if (exp.X_op != O_constant) + expression (exp); + if (exp->X_op != O_constant) { - if (exp.X_op != O_absent) + if (exp->X_op != O_absent) as_bad (_("bad or irreducible absolute expression")); - exp.X_add_number = 0; + exp->X_add_number = 0; } - return exp.X_add_number; + return exp->X_add_number; +} + +offsetT +get_absolute_expression () +{ + expressionS exp; + + return get_absolute_expr (&exp); } char /* Return terminator. */ diff -uprN binutils-2.13.90.0.16/gas/read.h binutils-2.13.90.0.18/gas/read.h --- binutils-2.13.90.0.16/gas/read.h Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.18/gas/read.h Tue Jan 21 10:21:32 2003 @@ -1,6 +1,6 @@ /* read.h - of read.c Copyright 1986, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -105,6 +105,7 @@ extern void aout_process_stab PARAMS ((i extern char *demand_copy_C_string PARAMS ((int *len_pointer)); extern char get_absolute_expression_and_terminator PARAMS ((long *val_pointer)); +extern offsetT get_absolute_expr PARAMS ((expressionS *)); extern offsetT get_absolute_expression PARAMS ((void)); extern unsigned int next_char_of_string PARAMS ((void)); extern void s_mri_sect PARAMS ((char *)); diff -uprN binutils-2.13.90.0.16/gas/subsegs.c binutils-2.13.90.0.18/gas/subsegs.c --- binutils-2.13.90.0.16/gas/subsegs.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/subsegs.c Mon Dec 16 12:22:52 2002 @@ -426,7 +426,7 @@ subseg_get (segname, force_new) if (! seginfo) { /* Check whether output_section is set first because secptr may - be bfd_abs_section_ptr. */ + be bfd_abs_section_ptr. */ if (secptr->output_section != secptr) secptr->output_section = secptr; seginfo = (segment_info_type *) xmalloc (sizeof (*seginfo)); @@ -529,13 +529,13 @@ section_symbol (sec) if (! EMIT_SECTION_SYMBOLS || symbol_table_frozen) { /* Here we know it won't be going into the symbol table. */ - s = symbol_create (sec->name, sec, 0, &zero_address_frag); + s = symbol_create (sec->symbol->name, sec, 0, &zero_address_frag); } else { - s = symbol_find_base (sec->name, 0); + s = symbol_find_base (sec->symbol->name, 0); if (s == NULL) - s = symbol_new (sec->name, sec, 0, &zero_address_frag); + s = symbol_new (sec->symbol->name, sec, 0, &zero_address_frag); else { if (S_GET_SEGMENT (s) == undefined_section) diff -uprN binutils-2.13.90.0.16/gas/symbols.c binutils-2.13.90.0.18/gas/symbols.c --- binutils-2.13.90.0.16/gas/symbols.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/symbols.c Mon Dec 16 12:22:52 2002 @@ -66,6 +66,7 @@ static long dollar_label_instance PARAMS static long fb_label_instance PARAMS ((long)); static void print_binary PARAMS ((FILE *, const char *, expressionS *)); +static void report_op_error PARAMS ((symbolS *, symbolS *, symbolS *)); /* Return a pointer to a new symbol. Die if we can't make a new symbol. Fill in the symbol's values. Add symbol to end of symbol @@ -837,6 +838,63 @@ verify_symbol_chain_2 (sym) verify_symbol_chain (p, n); } +static void +report_op_error (symp, left, right) + symbolS *symp; + symbolS *left, *right; +{ + char *file; + unsigned int line; + segT seg_left = S_GET_SEGMENT (left); + segT seg_right = right ? S_GET_SEGMENT (right) : 0; + + if (expr_symbol_where (symp, &file, &line)) + { + if (seg_left == undefined_section) + as_bad_where (file, line, + _("undefined symbol `%s' in operation"), + S_GET_NAME (left)); + if (seg_right == undefined_section) + as_bad_where (file, line, + _("undefined symbol `%s' in operation"), + S_GET_NAME (right)); + if (seg_left != undefined_section + && seg_right != undefined_section) + { + if (right) + as_bad_where (file, line, + _("invalid sections for operation on `%s' and `%s'"), + S_GET_NAME (left), S_GET_NAME (right)); + else + as_bad_where (file, line, + _("invalid section for operation on `%s'"), + S_GET_NAME (left)); + } + + } + else + { + if (seg_left == undefined_section) + as_bad (_("undefined symbol `%s' in operation setting `%s'"), + S_GET_NAME (left), S_GET_NAME (symp)); + if (seg_right == undefined_section) + as_bad (_("undefined symbol `%s' in operation setting `%s'"), + S_GET_NAME (right), S_GET_NAME (symp)); + if (seg_left != undefined_section + && seg_right != undefined_section) + { + if (right) + as_bad_where (file, line, + _("invalid sections for operation on `%s' and `%s' setting `%s'"), + S_GET_NAME (left), S_GET_NAME (right), S_GET_NAME (symp)); + else + as_bad_where (file, line, + _("invalid section for operation on `%s' setting `%s'"), + S_GET_NAME (left), S_GET_NAME (symp)); + } + } +} + /* Resolve the value of a symbol. This is called during the final pass over the symbol table to resolve any symbols with complex values. */ @@ -1002,6 +1060,17 @@ resolve_symbol_value (symp) left = resolve_symbol_value (add_symbol); seg_left = S_GET_SEGMENT (add_symbol); + /* By reducing these to the relevant dyadic operator, we get + !S -> S == 0 permitted on anything, + -S -> 0 - S only permitted on absolute + ~S -> S ^ ~0 only permitted on absolute */ + if (op != O_logical_not && seg_left != absolute_section + && finalize_syms) + report_op_error (symp, add_symbol, NULL); + + if (final_seg == expr_section || final_seg == undefined_section) + final_seg = absolute_section; + if (op == O_uminus) left = -left; else if (op == O_logical_not) @@ -1010,8 +1079,6 @@ resolve_symbol_value (symp) left = ~left; final_val += left + symp->sy_frag->fr_address; - if (final_seg == expr_section || final_seg == undefined_section) - final_seg = seg_left; resolved = symbol_resolved_p (add_symbol); break; @@ -1077,57 +1144,19 @@ resolve_symbol_value (symp) Don't emit messages unless we're finalizing the symbol value, otherwise we may get the same message multiple times. */ - if ((op == O_eq || op == O_ne) - || ((op == O_subtract - || op == O_lt || op == O_le || op == O_ge || op == O_gt) - && seg_left == seg_right - && (seg_left != undefined_section - || add_symbol == op_symbol)) - || (seg_left == absolute_section - && seg_right == absolute_section)) - { - if (final_seg == expr_section || final_seg == undefined_section) - final_seg = absolute_section; - } - else if (finalize_syms) - { - char *file; - unsigned int line; - - if (expr_symbol_where (symp, &file, &line)) - { - if (seg_left == undefined_section) - as_bad_where (file, line, - _("undefined symbol `%s' in operation"), - S_GET_NAME (symp->sy_value.X_add_symbol)); - if (seg_right == undefined_section) - as_bad_where (file, line, - _("undefined symbol `%s' in operation"), - S_GET_NAME (symp->sy_value.X_op_symbol)); - if (seg_left != undefined_section - && seg_right != undefined_section) - as_bad_where (file, line, - _("invalid section for operation")); - } - else - { - if (seg_left == undefined_section) - as_bad (_("undefined symbol `%s' in operation setting `%s'"), - S_GET_NAME (symp->sy_value.X_add_symbol), - S_GET_NAME (symp)); - if (seg_right == undefined_section) - as_bad (_("undefined symbol `%s' in operation setting `%s'"), - S_GET_NAME (symp->sy_value.X_op_symbol), - S_GET_NAME (symp)); - if (seg_left != undefined_section - && seg_right != undefined_section) - as_bad (_("invalid section for operation setting `%s'"), - S_GET_NAME (symp)); - } - /* Prevent the error propagating. */ - if (final_seg == expr_section || final_seg == undefined_section) - final_seg = absolute_section; - } + if (finalize_syms + && !(seg_left == absolute_section + && seg_right == absolute_section) + && !(op == O_eq || op == O_ne) + && !((op == O_subtract + || op == O_lt || op == O_le || op == O_ge || op == O_gt) + && seg_left == seg_right + && (seg_left != undefined_section + || add_symbol == op_symbol))) + report_op_error (symp, add_symbol, op_symbol); + + if (final_seg == expr_section || final_seg == undefined_section) + final_seg = absolute_section; /* Check for division by zero. */ if ((op == O_divide || op == O_modulus) && right == 0) @@ -1951,6 +1980,25 @@ S_SET_WEAK (s) } void +S_SET_THREAD_LOCAL (s) + symbolS *s; +{ + if (LOCAL_SYMBOL_CHECK (s)) + s = local_symbol_convert ((struct local_symbol *) s); + if (bfd_is_com_section (s->bsym->section) + && (s->bsym->flags & BSF_THREAD_LOCAL) != 0) + return; + s->bsym->flags |= BSF_THREAD_LOCAL; + if ((s->bsym->flags & BSF_FUNCTION) != 0) + as_bad (_("Accessing function `%s' as thread-local object"), + S_GET_NAME (s)); + else if (! bfd_is_und_section (s->bsym->section) + && (s->bsym->section->flags & SEC_THREAD_LOCAL) == 0) + as_bad (_("Accessing `%s' as thread-local object"), + S_GET_NAME (s)); +} + +void S_SET_NAME (s, name) symbolS *s; char *name; diff -uprN binutils-2.13.90.0.16/gas/symbols.h binutils-2.13.90.0.18/gas/symbols.h --- binutils-2.13.90.0.16/gas/symbols.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/symbols.h Mon Dec 16 12:22:52 2002 @@ -102,6 +102,7 @@ extern void S_SET_EXTERNAL PARAMS ((symb extern void S_SET_NAME PARAMS ((symbolS *, char *)); extern void S_CLEAR_EXTERNAL PARAMS ((symbolS *)); extern void S_SET_WEAK PARAMS ((symbolS *)); +extern void S_SET_THREAD_LOCAL PARAMS ((symbolS *)); #endif #ifndef WORKING_DOT_WORD diff -uprN binutils-2.13.90.0.16/gas/testsuite/ChangeLog binutils-2.13.90.0.18/gas/testsuite/ChangeLog --- binutils-2.13.90.0.16/gas/testsuite/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/testsuite/ChangeLog Tue Jan 21 10:21:33 2003 @@ -1,3 +1,266 @@ +2003-01-21 Adrian Bunk + + * gas/sparc/sparc.exp (sparc_elf_setup): All NetBSD ELF targets + should pass these tests. + +2003-01-20 Martin Schwidefsky + + * gas/s390/reloc.d: Add tests for the new gotoff, gotplt and pltoff + relocations. + * gas/s390/reloc.s: Likewise. + * gas/s390/reloc64.d: Likewise. + * gas/s390/reloc64.s: Likewise. + +2003-01-07 DJ Delorie + + * gas/xstormy16/reloc-2.d: Adjust for fixed REL12 relocs. + +2003-01-02 Jeff Johnston + + * gas/iq2000: New testsuite. + +2003-01-02 Chris Demetriou + + * gas/mips/elf_arch_mips32r2.d: Fix file description comment. + +2002-12-31 Chris Demetriou + + * gas/mips/cp0sel-names-mips32.d: New test. + * gas/mips/cp0sel-names-mips32r2.d: New test. + * gas/mips/cp0sel-names-mips64.d: New test. + * gas/mips/cp0sel-names-numeric.d: New test. + * gas/mips/cp0sel-names-sb1.d: New test. + * gas/mips/cp0sel-names.s: New test source file. + * gas/mips/mips.exp: Run new tests. + +2002-12-30 Chris Demetriou + + * gas/mips/elf_arch_mips1.d: New test. + * gas/mips/elf_arch_mips2.d: New test. + * gas/mips/elf_arch_mips3.d: New test. + * gas/mips/elf_arch_mips4.d: New test. + * gas/mips/elf_arch_mips5.d: New test. + * gas/mips/elf_arch_mips32.d: New test. + * gas/mips/elf_arch_mips32r2.d: New test. + * gas/mips/elf_arch_mips64.d: New test. + * gas/mips/empty.s: New test source file. + * gas/mips/mips.exp: Run new tests. + + * gas/mips/elf_ase_mips16.d: Change to use empty.s + * gas/mips/elf_ase_mips16.s: Remove. + +2002-12-30 Chris Demetriou + + * gas/mips/cp0-names-mips32r2.d: New test. + * gas/mips/hwr-names-mips32r2.d: New test. + * gas/mips/hwr-names-numeric.d: New test. + * gas/mips/hwr-names.s: New test source file. + * gas/mips/mips32r2.d: New test. + * gas/mips/mips32r2.s: New test source file. + * gas/mips/mips32r2-ill.l: New test. + * gas/mips/mips32r2-ill.s: New test source file. + * gas/mips/mips.exp: Add mips32r2 architecture data array + entry. Run new tests mentioned above. + +2002-12-24 Dmitry Diky + + * gas/msp430: New directory. + * gas/msp430/msp430.exp: Test msp430 assembler. + * gas/msp430/opcode.s: Test source file. + * gas/msp430/opcode.s: Expected disassembly. + +2002-12-27 Chris Demetriou + + * gas/mips/mips.exp: Define the notion of an "architecture data + array," add comments indicating how to add a new architecture and + suggestions for adding new tests. Populate the architecture data + array with many known architectures and convert many tests to + be run for multiple architectures. + (mips_arches): New global array. + (mips_arch_create, mips_arch_list_all, mips_arch_data) + (mips_arch_displayname, mips_arch_properties) + (mips_arch_as_flags, mips_arch_objdump_flags, mips_arch_matches) + (mips_arch_list_matching): New functions to operate on mips_arches. + (run_dump_test_arch, run_dump_test_arches, run_list_test_arch) + (run_list_test_arches): New functions. + (run_list_test): Document and add an optional "test name" argument. + * gas/mips/abs.d: Remove CPU-specific assembler and objdump flags, + and CPU names from test names. + * gas/mips/add.d: Likewise. + * gas/mips/and.d: Likewise. + * gas/mips/dli.d: Likewise. + * gas/mips/jal-empic-elf-2.d: Likewise. + * gas/mips/jal-empic-elf-3.d: Likewise. + * gas/mips/jal-empic-elf.d: Likewise. + * gas/mips/lb-svr4pic.d: Likewise. + * gas/mips/lb.d: Likewise. + * gas/mips/mips32.d: Likewise. + * gas/mips/mips4.d: Likewise. + * gas/mips/mips64.d: Likewise. + * gas/mips/rol-hw.d: Likewise. + * gas/mips/rol.d: Likewise. + * gas/mips/rol64-hw.d: Likewise. + * gas/mips/rol64.d: Likewise. + * gas/mips/elf-jal.d: Likewise. Also, indicate ELF in test name. + * gas/mips/mips64-mdmx.d: Tweak printed name to indicate that this + test uses the -mdmx flag. + * gas/mips/mips64-mips3d.d: Tweak printed name to indicate that + this test uses the -mips3d flag. + * gas/mips/mips64-mips3d-incl.d: New file. + +2002-12-27 Chris Demetriou + + * gas/mips/cp0-names-mips32.d: New file. + * gas/mips/cp0-names-mips64.d: New file. + * gas/mips/cp0-names-numeric.d: New file. + * gas/mips/cp0-names-sb1.d: New file. + * gas/mips/cp0-names.s: New file. + * gas/mips/fpr-names-32.d: New file. + * gas/mips/fpr-names-64.d: New file. + * gas/mips/fpr-names-n32.d: New file. + * gas/mips/fpr-names-numeric.d: New file. + * gas/mips/fpr-names.s: New file. + * gas/mips/gpr-names-32.d: New file. + * gas/mips/gpr-names-64.d: New file. + * gas/mips/gpr-names-n32.d: New file. + * gas/mips/gpr-names-numeric.d: New file. + * gas/mips/gpr-names.s: New file. + * gas/mips/mips.exp: Run new tests. + +2002-12-20 Chris Demetriou + + * lib/gas-defs.exp (run_dump_test): Add a new optional argument, + "extra_options". + +2002-12-18 Chris Demetriou + + * gas/mips/rol.s: Add ".set noat" and some new instructions to test. + * gas/mips/rol64.s: Likewise. + * gas/mips/rol.l: New file. + * gas/mips/rol.d: Adjust to use rol.l and for rol.s changes. + * gas/mips/rol64.l: New file. + * gas/mips/rol64.d: Adjust to use rol64.l and for rol64.s changes. + * gas/mips/rol-hw.d: New file. + * gas/mips/rol-hw.l: New file. + * gas/mips/rol64-hw.d: New file. + * gas/mips/rol64-hw.l: New file. + * gas/mips/mips.exp: Run rol-hw and rol64-hw tests. + +2002-12-12 Alexandre Oliva + + * gas/mips/beq.d: Comment out branches to undefined symbols, + no longer supported. + * gas/mips/beq.s: Likewise. + * gas/mips/bge.d: Likewise. + * gas/mips/bge.s: Likewise. + * gas/mips/bgeu.d: Likewise. + * gas/mips/bgeu.s: Likewise. + * gas/mips/blt.d: Likewise. + * gas/mips/blt.s: Likewise. + * gas/mips/bltu.d: Likewise. + * gas/mips/bltu.s: Likewise. + * gas/mips/mips.exp: Change branch-misc-2 test to run_list_test. + * gas/mips/branch-misc-2.d: Removed. + * gas/mips/branch-misc-2.s: Added branches to undefined symbols. + * gas/mips/branch-misc-2.l: New. + +2002-12-09 Aldy Hernandez + + * gas/ppc/booke.d: Fix msync and mbar to reflect reality. + + * gas/ppc/e500.d: Fix m[tf]pmr to reflect reality. + +2002-12-08 Stephane Carrez + + * gas/m68hc11/m68hc11.exp (gas_m68hc11_error): New function; + (gas_m68hc11_warning): New function. + (gas_m68hc11_message): New function. + (top): New tests for assembler errors. + (gas_m68hc11_opcode_list): New function. + (top): New tests for opcode list. + +2002-12-08 Stephane Carrez + + * gas/m68hc11/bug-1825.s: Add some tests. + * gas/m68hc11/bug-1825.d: Update. + * gas/m68hc11/opers12.d: Update. + * gas/m68hc11/opers12-dwarf2.d: Update. + +2002-12-05 Richard Henderson + + * gas/ia64/ltoff22x-1.[ds]: New. + * gas/ia64/ia64.exp: Run it. + +2002-12-05 Jim Wilson + + * gas/ia64/opc-x.d: Regenerate. + +2002-12-05 Alan Modra + + * gas/arm/adrl.s: Pad end of .text. + * gas/arm/adrl.d: Adjust to suit. + +2002-12-04 David Mosberger + + * gas/ia64/opc-b.d: Update for instructions added by SDM2.1. + * gas/ia64/opc-b.s: Ditto. + * gas/ia64/opc-f.d: Ditto. + * gas/ia64/opc-f.s: Ditto. + * gas/ia64/opc-i.d: Ditto. + * gas/ia64/opc-i.s: Ditto. + * gas/ia64/opc-m.d: Ditto. + * gas/ia64/opc-m.s: Ditto. + * gas/ia64/opc-x.d: Ditto. + * gas/ia64/opc-x.s: Ditto. + +2002-12-03 Richard Henderson + + * gas/ia64/ldxmov-1.[ds]: New. + * gas/ia64/ldxmov-2.[ls]: New. + * gas/ia64/ia64.exp: Run them. + +2002-12-03 Alan Modra + + * gas/arm/adrl.s: Test behaviour against globals too. + * gas/arm/adrl.d: Adjust. + +2002-12-02 Nick Clifton + + * gasp: Remove entire directory tree. (Gasp has been removed from + binutils). + * config/default.asp (GASP): Remove definition and initialization. + +2002-12-01 Stephane Carrez + + * gas/m68hc11/m68hc11.exp: Rename from all.exp; run the new tests. + * gas/m68hc11/all.exp: Remove. + * gas/m68hc11/indexed12.d: New test. + * gas/m68hc11/indexed12.s: Likewise. + * gas/m68hc11/bug-1825.d: Likewise. + * gas/m68hc11/bug-1825.s: Likewise. + +2002-12-01 Stephane Carrez + + * gas/m68hc11/insns.s: Don't use .comm for stack symbol so that objdump + can find the real symbol and not a gas internal debug symbol. + * gas/m68hc11/insns.d: Update. + * gas/m68hc11/insns-dwarf2.d: Update. + * gas/m68hc11/insns12.d: Update. + * gas/m68hc11/opers12.s (min5b, min9b): Use 16 and -256 for the min. + * gas/m68hc11/opers12.d: Update after indexed offset operand fixes. + * gas/m68hc11/opers12-dwarf2.d: Likewise. + +2002-11-30 Kaz Kojima + + * sh/gas/sh/pic.s: Add a test for ".long foo@PLT+.-2-label". + * sh/gas/sh/pic.d: Add expected output. + +2002-11-29 Nick Clifton + + * gas/arm/arch5tej.s: Replace "nop"s with tests of breakpoint + instruction. + * gas/arm/arch5tej.d: Expect "bkpt"s not nops. + 2002-11-26 Hans-Peter Nilsson * gas/cris/rd-bcnst.d, gas/cris/rd-bcnst.d: New test. diff -uprN binutils-2.13.90.0.16/gas/testsuite/config/default.exp binutils-2.13.90.0.18/gas/testsuite/config/default.exp --- binutils-2.13.90.0.16/gas/testsuite/config/default.exp Fri Apr 6 15:33:18 2001 +++ binutils-2.13.90.0.18/gas/testsuite/config/default.exp Mon Dec 16 12:22:53 2002 @@ -5,11 +5,6 @@ if ![info exists AS] then { set AS [findfile $base_dir/../as-new "../as-new" [transform as]] } -global GASP -if ![info exists GASP] then { - set GASP [findfile $base_dir/../gasp-new "../gasp-new" [transform gasp]] -} - global ASFLAGS if ![info exists ASFLAGS] then { set ASFLAGS "" diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/arm/adrl.d binutils-2.13.90.0.18/gas/testsuite/gas/arm/adrl.d --- binutils-2.13.90.0.16/gas/testsuite/gas/arm/adrl.d Sat Jun 23 00:05:22 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/arm/adrl.d Mon Dec 16 12:22:53 2002 @@ -17,4 +17,11 @@ Disassembly of section .text: 0+201c <.*> e1a00000 nop \(mov r0,r0\) 0+2020 <.*> 028f0000 addeq r0, pc, #0 ; 0x0 0+2024 <.*> e1a00000 nop \(mov r0,r0\) +0+2028 <.*> e24f0030 sub r0, pc, #48 ; 0x30 +0+202c <.*> e2400c20 sub r0, r0, #8192 ; 0x2000 +0+2030 <.*> e28f0c21 add r0, pc, #8448 ; 0x2100 +0+2034 <.*> e1a00000 nop \(mov r0,r0\) + ... +0+4030 <.*> e28fec01 add lr, pc, #256 ; 0x100 + ... ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/arm/adrl.s binutils-2.13.90.0.18/gas/testsuite/gas/arm/adrl.s --- binutils-2.13.90.0.16/gas/testsuite/gas/arm/adrl.s Sat Jun 23 00:05:22 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/arm/adrl.s Mon Dec 16 12:22:53 2002 @@ -1,7 +1,8 @@ @ test ADRL pseudo-op -.text -foo: -.align 0 + .text + .global foo +foo: + .align 0 1: .space 8192 2: @@ -11,5 +12,13 @@ foo: adrl r0, 2f adrEQl r0, 2f 2: - .space 8200 + adrl r0, foo + adrl r0, X + .space 8184 1: + adral lr, X + .space 0x0104 + + .globl X; +X: + .p2align 5,0 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/arm/arch5tej.d binutils-2.13.90.0.18/gas/testsuite/gas/arm/arch5tej.d --- binutils-2.13.90.0.16/gas/testsuite/gas/arm/arch5tej.d Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/arm/arch5tej.d Mon Dec 16 12:22:53 2002 @@ -13,5 +13,5 @@ Disassembly of section .text: 0+0c <[^>]*> 012fff20 ? bxjeq r0 0+10 <[^>]*> 412fff20 ? bxjmi r0 0+14 <[^>]*> 512fff27 ? bxjpl r7 -0+18 <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) -0+1c <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\) +0+18 <[^>]*> e1200070 ? bkpt 0x0000 +0+1c <[^>]*> e120007a ? bkpt 0x000a diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/arm/arch5tej.s binutils-2.13.90.0.18/gas/testsuite/gas/arm/arch5tej.s --- binutils-2.13.90.0.16/gas/testsuite/gas/arm/arch5tej.s Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/arm/arch5tej.s Mon Dec 16 12:22:53 2002 @@ -7,8 +7,6 @@ label: bxjeq r0 bxjmi r0 bxjpl r7 - - # Add two nop instructions to ensure that the output - # is aligned as will automatically be done for arm-aout. - nop - nop + + bkpt @ Support for a breakpoint without an argument + bkpt 10 @ is a feature added to GAS. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/h8300/cmpsi2.s binutils-2.13.90.0.18/gas/testsuite/gas/h8300/cmpsi2.s --- binutils-2.13.90.0.16/gas/testsuite/gas/h8300/cmpsi2.s Thu Jun 3 11:02:02 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gas/h8300/cmpsi2.s Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ # 1 "libgcc1.S" -;; libgcc1 routines for the Hitachi h8/300 cpu. +;; libgcc1 routines for the Hitachi H8/300 cpu. ;; Contributed by Steve Chamberlain. ;; sac@cygnus.com .section .text diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ia64.exp binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ia64.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ia64.exp Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ia64.exp Mon Dec 16 12:22:53 2002 @@ -36,4 +36,7 @@ if [istarget "ia64-*"] then { run_dump_test "dv-safe" run_dump_test "dv-srlz" run_dump_test "tls" + run_dump_test "ldxmov-1" + run_list_test "ldxmov-2" "" + run_dump_test "ltoff22x-1" } diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-1.d binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-1.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-1.d Mon Dec 16 12:22:53 2002 @@ -0,0 +1,18 @@ +#objdump: -dr +#name: ia64 ldxmov-1 + +.*: file format elf64-ia64-little + +Disassembly of section \.text: + +0*0000000 <\.text>: + 0: 18 10 00 06 18 10 \[MMB\] ld8 r2=\[r3\] + 0: LDXMOV foo + 1: LDXMOV \.data + 6: 40 00 14 30 20 00 ld8 r4=\[r5\] + c: 00 00 00 20 nop\.b 0x0 + 10: 19 30 00 0e 18 10 \[MMB\] ld8 r6=\[r7\] + 10: LDXMOV foo\+0x64 + 11: LDXMOV \.data\+0x64 + 16: 80 00 24 30 20 00 ld8 r8=\[r9\] + 1c: 00 00 00 20 nop.b 0x0;; diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-1.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-1.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-1.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,8 @@ + .text + ld8.mov r2 = [r3], foo# + ld8.mov r4 = [r5], bar# + ld8.mov r6 = [r7], foo# + 100 + ld8.mov r8 = [r9], bar# + 100 + + .data +bar: diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-2.l binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-2.l --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-2.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-2.l Mon Dec 16 12:22:53 2002 @@ -0,0 +1,5 @@ +.*: Assembler messages: +.*:5: Warning: Use of 'ld8.mov' violates RAW dependency .*number is 2 +.*:4: Warning: This is the location of the conflicting usage +.*:8: Warning: Use of 'mov' violates RAW dependency .*number is 2 +.*:7: Warning: This is the location of the conflicting usage diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-2.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-2.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ldxmov-2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ldxmov-2.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,8 @@ + .text + .explicit + + mov r2 = r0 + ld8.mov r3 = [r2], foo# + ;; + ld8.mov r2 = [r0], foo# + mov r3 = r2 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ltoff22x-1.d binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ltoff22x-1.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ltoff22x-1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ltoff22x-1.d Mon Dec 16 12:22:53 2002 @@ -0,0 +1,10 @@ +# objdump: -r +# name: ia64 ltoff22x-1 + +.*: +file format .* + +RELOCATION RECORDS FOR \[\.text\]: +OFFSET TYPE VALUE +0000000000000000 LTOFF22X foo + + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ltoff22x-1.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ltoff22x-1.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/ltoff22x-1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/ltoff22x-1.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,4 @@ + .text + addl r3 = @ltoffx(foo#), gp + nop.i 0 + nop.i 0 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-b.d binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-b.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-b.d Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-b.d Mon Dec 16 12:22:53 2002 @@ -1012,3 +1012,9 @@ Disassembly of section .text: 2be0: 17 00 00 00 00 08 \[BBB\] nop\.b 0x0 2be6: 00 00 00 00 10 00 nop\.b 0x0 2bec: 00 00 40 00 epc;; + 2bf0: 16 f8 ff 0f 00 00 \[BBB\] break\.b 0x1ffff + 2bf6: 00 00 00 02 10 e0 hint\.b 0x0 + 2bfc: ff 3f 04 20 hint\.b 0x1ffff + 2c00: 1d 00 00 00 01 00 \[MFB\] nop\.m 0x0 + 2c06: 00 00 00 02 00 e0 nop\.f 0x0 + 2c0c: ff 3f 00 20 nop\.b 0x1ffff;; diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-b.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-b.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-b.s Sun Apr 23 09:41:25 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-b.s Mon Dec 16 12:22:53 2002 @@ -824,3 +824,10 @@ { .bbb; nop.b 0; nop.b 0; epc ;; } .L1: + + # instructions added by SDM2.1: + + break.b 0x1ffff + hint.b @pause + hint.b 0x1ffff + nop.b 0x1ffff diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-f.d binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-f.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-f.d Sat Sep 30 08:54:38 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-f.d Mon Dec 16 12:22:53 2002 @@ -1560,3 +1560,12 @@ Disassembly of section \.text: 2050: 1d 00 00 00 01 00 \[MFB\] nop\.m 0x0 2056: 00 00 00 02 00 00 nop\.f 0x0 205c: 00 00 00 20 nop\.b 0x0;; + 2060: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0 + 2066: 00 00 00 03 00 00 hint\.f 0x0 + 206c: 00 00 00 20 nop\.b 0x0 + 2070: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0 + 2076: 00 00 00 03 00 00 hint\.f 0x0 + 207c: 00 00 00 20 nop\.b 0x0 + 2080: 1d 00 00 00 01 00 \[MFB\] nop\.m 0x0 + 2086: f0 ff 1f 03 00 00 hint\.f 0x1ffff + 208c: 00 00 00 20 nop\.b 0x0;; diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-f.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-f.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-f.s Sat Sep 30 08:54:38 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-f.s Mon Dec 16 12:22:53 2002 @@ -605,3 +605,8 @@ _start: break.f 0 nop.f 0;; + # instructions added by SDM2.1: + + hint.f 0 + hint.f @pause + hint.f 0x1ffff diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-i.d binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-i.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-i.d Sat Sep 30 08:54:38 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-i.d Mon Dec 16 12:22:53 2002 @@ -243,3 +243,9 @@ Disassembly of section \.text: 976: 30 20 18 84 03 60 mov\.ret\.dptk b3=r4,a70 <_start\+0xa70> 97c: 40 70 08 07 mov\.ret\.dptk\.imp b3=r4,a70 <_start\+0xa70>;; \.\.\. + a70: 00 00 00 80 01 00 \[MII\] hint\.m 0x0 + a76: 00 00 00 03 00 00 hint\.i 0x0 + a7c: 00 00 06 00 hint\.i 0x0 + a80: 0d 00 00 00 01 00 \[MFI\] nop\.m 0x0 + a86: 00 00 00 02 00 e0 nop\.f 0x0 + a8c: ff ff 07 08 hint\.i 0x1fffff;; diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-i.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-i.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-i.s Tue May 2 10:09:09 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-i.s Mon Dec 16 12:22:53 2002 @@ -206,3 +206,9 @@ _start: .space 240 .L6: + # instructions added by SDM2.1: + + hint @pause + hint.i 0 + hint.i @pause + hint.i 0x1fffff diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-m.d binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-m.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-m.d Thu Dec 21 16:35:27 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-m.d Mon Dec 16 12:22:53 2002 @@ -1285,7 +1285,7 @@ Disassembly of section \.text: 1a96: f0 ff 1f 00 00 00 break\.m 0x1ffff 1a9c: 00 00 00 20 nop\.b 0x0 1aa0: 18 00 00 00 01 00 \[MMB\] nop\.m 0x0 - 1aa6: f0 ff 1f 00 00 00 break\.m 0x1ffff + 1aa6: f0 ff 1f 02 00 00 nop\.m 0x1ffff 1aac: 00 00 00 20 nop\.b 0x0 1ab0: 18 20 18 0a 38 04 \[MMB\] probe\.r r4=r5,r6 1ab6: 40 30 14 72 08 00 probe\.w r4=r5,r6 @@ -1323,6 +1323,36 @@ Disassembly of section \.text: 1b60: 18 20 00 0a 1a 04 \[MMB\] thash r4=r5 1b66: 40 00 14 36 08 00 ttag r4=r5 1b6c: 00 00 00 20 nop\.b 0x0 - 1b70: 19 20 00 0a 1e 04 \[MMB\] tpa r4=r5 + 1b70: 18 20 00 0a 1e 04 \[MMB\] tpa r4=r5 1b76: 40 00 14 3e 08 00 tak r4=r5 - 1b7c: 00 00 00 20 nop\.b 0x0;; + 1b7c: 00 00 00 20 nop\.b 0x0 + 1b80: 18 00 00 80 01 00 \[MMB\] hint\.m 0x0 + 1b86: 00 00 00 03 00 00 hint\.m 0x0 + 1b8c: 00 00 00 20 nop\.b 0x0 + 1b90: 18 f8 ff 8f 01 00 \[MMB\] hint\.m 0x1ffff + 1b96: 40 30 14 02 22 00 cmp8xchg16\.acq r4=\[r5\],r6,ar\.csd,ar\.ccv + 1b9c: 00 00 00 20 nop\.b 0x0 + 1ba0: 18 20 18 0a 03 11 \[MMB\] cmp8xchg16\.acq\.nt1 r4=\[r5\],r6,ar\.csd,ar\.ccv + 1ba6: 40 30 14 0e 22 00 cmp8xchg16\.acq\.nta r4=\[r5\],r6,ar\.csd,ar\.ccv + 1bac: 00 00 00 20 nop\.b 0x0 + 1bb0: 18 20 18 0a 21 11 \[MMB\] cmp8xchg16\.rel r4=\[r5\],r6,ar\.csd,ar\.ccv + 1bb6: 40 30 14 46 22 00 cmp8xchg16\.rel\.nt1 r4=\[r5\],r6,ar\.csd,ar\.ccv + 1bbc: 00 00 00 20 nop\.b 0x0 + 1bc0: 18 20 18 0a 27 11 \[MMB\] cmp8xchg16\.rel\.nta r4=\[r5\],r6,ar\.csd,ar\.ccv + 1bc6: 00 00 10 60 0c 00 fc\.i r4 + 1bcc: 00 00 00 20 nop\.b 0x0 + 1bd0: 18 20 00 0a 41 11 \[MMB\] ld16 r4,ar\.csd=\[r5\] + 1bd6: 40 00 14 86 22 00 ld16\.nt1 r4,ar\.csd=\[r5\] + 1bdc: 00 00 00 20 nop\.b 0x0 + 1be0: 18 20 00 0a 47 11 \[MMB\] ld16\.nta r4,ar\.csd=\[r5\] + 1be6: 40 00 14 c2 22 00 ld16\.acq r4,ar\.csd=\[r5\] + 1bec: 00 00 00 20 nop\.b 0x0 + 1bf0: 18 20 00 0a 63 11 \[MMB\] ld16\.acq\.nt1 r4,ar\.csd=\[r5\] + 1bf6: 40 00 14 ce 22 00 ld16\.acq\.nta r4,ar\.csd=\[r5\] + 1bfc: 00 00 00 20 nop\.b 0x0 + 1c00: 18 00 14 08 81 11 \[MMB\] st16 \[r4\]=r5,ar\.csd + 1c06: 00 28 10 0e 23 00 st16\.nta \[r4\]=r5,ar\.csd + 1c0c: 00 00 00 20 nop\.b 0x0 + 1c10: 19 00 14 08 a1 11 \[MMB\] st16\.rel \[r4\]=r5,ar\.csd + 1c16: 00 28 10 4e 23 00 st16\.rel\.nta \[r4\]=r5,ar\.csd + 1c1c: 00 00 00 20 nop\.b 0x0;; diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-m.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-m.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-m.s Sun Apr 23 09:41:25 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-m.s Mon Dec 16 12:22:53 2002 @@ -1,7 +1,6 @@ .text .type _start,@function _start: - ld1 r4 = [r5] ld1 r4 = [r5], r6 ld1 r4 = [r5], -256 @@ -976,7 +975,7 @@ _start: break.m 0x1ffff nop.m 0 - break.m 0x1ffff + nop.m 0x1ffff probe.r r4 = r5, r6 probe.w r4 = r5, r6 @@ -1007,3 +1006,32 @@ _start: tpa r4 = r5 tak r4 = r5 + # instructions added by SDM2.1: + + hint.m 0 + hint.m @pause + hint.m 0x1ffff + + cmp8xchg16.acq r4 = [r5], r6, ar25, ar.ccv + cmp8xchg16.acq.nt1 r4 = [r5], r6, ar.csd, ar.ccv + cmp8xchg16.acq.nta r4 = [r5], r6, ar.csd, ar.ccv + + cmp8xchg16.rel r4 = [r5], r6, ar.csd, ar.ccv + cmp8xchg16.rel.nt1 r4 = [r5], r6, ar.csd, ar.ccv + cmp8xchg16.rel.nta r4 = [r5], r6, ar.csd, ar.ccv + + fc.i r4 + + ld16 r4, ar25 = [r5] + ld16.nt1 r4, ar.csd = [r5] + ld16.nta r4, ar.csd = [r5] + + ld16.acq r4, ar25 = [r5] + ld16.acq.nt1 r4, ar.csd = [r5] + ld16.acq.nta r4, ar.csd = [r5] + + st16 [r4] = r5, ar25 + st16.nta [r4] = r5, ar.csd + + st16.rel [r4] = r5, ar.csd + st16.rel.nta [r4] = r5, ar.csd diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-x.d binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-x.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-x.d Sun Apr 23 09:41:25 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-x.d Mon Dec 16 12:22:53 2002 @@ -7,23 +7,32 @@ Disassembly of section .text: 0000000000000000 <_start>: 0: 04 00 00 00 01 00 \[MLX\] nop\.m 0x0 - ... - e: 00 00 04 00 break\.x 0x0 - 12: 00 00 01 c0 ff ff \[MLX\] nop\.m 0x0 - 18: ff ff 7f e0 ff ff break\.x 0x3fffffffffffffff - 1e: 01 08 04 00 - 22: 00 00 01 00 00 00 \[MLX\] nop\.m 0x0 - 28: 00 00 00 00 00 00 nop\.x 0x0 - 2e: 04 00 04 00 - 32: 00 00 01 c0 ff ff \[MLX\] nop\.m 0x0 - 38: ff ff 7f e0 ff ff nop\.x 0x3fffffffffffffff - 3e: 05 08 04 00 - 42: 00 00 01 00 00 00 \[MLX\] nop\.m 0x0 - 48: 00 00 00 80 00 00 movl r4=0x0 - 4e: 00 60 04 00 - 52: 00 00 01 c0 ff ff \[MLX\] nop\.m 0x0 - 58: ff ff 7f 80 f0 f7 movl r4=0xffffffffffffffff - 5e: ff 6f 05 00 - 62: 00 00 01 80 90 78 \[MLX\] nop\.m 0x0 - 68: 56 34 12 80 f0 76 movl r4=0x1234567890abcdef;; - 6e: 6d 66 00 00 + 6: 00 00 00 00 00 00 break\.x 0x0 + c: 00 00 00 00 + 10: 04 00 00 00 01 c0 \[MLX\] nop\.m 0x0 + 16: ff ff ff ff 7f e0 break\.x 0x3fffffffffffffff + 1c: ff ff 01 08 + 20: 04 00 00 00 01 00 \[MLX\] nop\.m 0x0 + 26: 00 00 00 00 00 00 nop\.x 0x0 + 2c: 00 00 04 00 + 30: 04 00 00 00 01 c0 \[MLX\] nop\.m 0x0 + 36: ff ff ff ff 7f e0 nop\.x 0x3fffffffffffffff + 3c: ff ff 05 08 + 40: 04 00 00 00 01 00 \[MLX\] nop\.m 0x0 + 46: 00 00 00 00 00 80 movl r4=0x0 + 4c: 00 00 00 60 + 50: 04 00 00 00 01 c0 \[MLX\] nop\.m 0x0 + 56: ff ff ff ff 7f 80 movl r4=0xffffffffffffffff + 5c: f0 f7 ff 6f + 60: 04 00 00 00 01 80 \[MLX\] nop\.m 0x0 + 66: 90 78 56 34 12 80 movl r4=0x1234567890abcdef + 6c: f0 76 6d 66 + 70: 04 00 00 00 01 00 \[MLX\] nop\.m 0x0 + 76: 00 00 00 00 00 00 hint\.x 0x0 + 7c: 00 00 06 00 + 80: 04 00 00 00 01 00 \[MLX\] nop\.m 0x0 + 86: 00 00 00 00 00 00 hint\.x 0x0 + 8c: 00 00 06 00 + 90: 05 00 00 00 01 c0 \[MLX\] nop\.m 0x0 + 96: ff ff ff ff 7f e0 hint\.x 0x3fffffffffffffff;; + 9c: ff ff 07 08 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-x.s binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-x.s --- binutils-2.13.90.0.16/gas/testsuite/gas/ia64/opc-x.s Sun Apr 23 09:41:25 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ia64/opc-x.s Mon Dec 16 12:22:53 2002 @@ -4,7 +4,7 @@ _start: break.x 0 break.x 0x3fffffffffffffff - + nop.x 0 nop.x 0x3fffffffffffffff @@ -12,3 +12,8 @@ _start: movl r4 = 0xffffffffffffffff movl r4 = 0x1234567890abcdef + # instructions added by SDM2.1: + + hint.x 0 + hint.x @pause + hint.x 0x3fffffffffffffff diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/allinsn.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/allinsn.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/allinsn.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/allinsn.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,442 @@ +#as: +#objdump: -dr +#name: allinsn + +.*: +file format .* + +Disassembly of section .text: + +00000000 : + 0: 00 00 00 20 add r0,r0,r0 + +00000004 : + 4: 20 00 ff fc addi r0,r0,0xfffc + +00000008 : + 8: 24 00 00 04 addiu r0,r0,0x4 + +0000000c : + c: 00 00 00 21 addu r0,r0,r0 + +00000010 : + 10: 00 00 00 29 ado16 r0,r0,r0 + +00000014 : + 14: 00 00 00 24 and r0,r0,r0 + +00000018 : + 18: 30 00 de ad andi r0,r0,0xdead + +0000001c : + 1c: b0 00 00 00 andoi r0,r0,0x0 + +00000020 : + 20: fc 00 00 00 andoui r0,r0,0x0 + +00000024 : + 24: 00 00 00 2d mrgb r0,r0,r0,0x0 + +00000028 : + 28: 00 00 00 27 nor r0,r0,r0 + +0000002c : + 2c: 00 00 00 25 or r0,r0,r0 + +00000030 : + 30: 34 00 ff ff ori r0,r0,0xffff + +00000034 : + 34: bc 00 00 00 orui r0,r0,0x0 + +00000038 : + 38: 9c 00 00 00 ram r0,r0,0x0,0x0,0x0 + +0000003c : + 3c: 00 00 00 00 nop + +00000040 : + 40: 00 00 00 04 sllv r0,r0,r0 + +00000044 : + 44: 00 00 00 01 slmv r0,r0,r0,0x0 + +00000048 : + 48: 00 00 00 2a slt r0,r0,r0 + +0000004c : + 4c: 28 00 00 00 slti r0,r0,0x0 + +00000050 : + 50: 2c 00 00 00 sltiu r0,r0,0x0 + +00000054 : + 54: 00 00 00 2b sltu r0,r0,r0 + +00000058 : + 58: 00 00 00 03 sra r0,r0,0x0 + +0000005c : + 5c: 00 00 00 07 srav r0,r0,r0 + +00000060 : + 60: 00 00 00 02 srl r0,r0,0x0 + +00000064 : + 64: 00 00 00 06 srlv r0,r0,r0 + +00000068 : + 68: 00 00 00 05 srmv r0,r0,r0,0x0 + +0000006c : + 6c: 00 00 00 22 sub r0,r0,r0 + +00000070 : + 70: 00 00 00 23 subu r0,r0,r0 + +00000074 : + 74: 00 00 00 26 xor r0,r0,r0 + +00000078 : + 78: 38 00 00 00 xori r0,r0,0x0 + +0000007c : + 7c: 70 00 ff e0 bbi r0\(0x0\),0 + +00000080 : + 80: 78 00 ff df bbin r0\(0x0\),0 + +00000084 : + 84: 74 00 ff de bbv r0,r0,0 + +00000088 : + 88: 7c 00 ff dd bbvn r0,r0,0 + +0000008c : + 8c: 10 00 ff dc beq r0,r0,0 + +00000090 : + 90: 50 00 ff db beql r0,r0,0 + +00000094 : + 94: 04 01 ff da bgez r0,0 + +00000098 : + 98: 04 11 ff d9 bgezal r0,0 + +0000009c : + 9c: 04 13 ff d8 bgezall r0,0 + +000000a0 : + a0: 04 03 ff d7 bgezl r0,0 + +000000a4 : + a4: 1c 00 ff d6 bgtz r0,0 + +000000a8 : + a8: 5c 00 ff d5 bgtzl r0,0 + +000000ac : + ac: 18 00 ff d4 blez r0,0 + +000000b0 : + b0: 58 00 ff d3 blezl r0,0 + +000000b4 : + b4: 04 00 ff d2 bltz r0,0 + +000000b8 : + b8: 04 02 ff d1 bltzl r0,0 + +000000bc : + bc: 04 10 ff d0 bltzal r0,0 + +000000c0 : + c0: 04 12 ff cf bltzall r0,0 + +000000c4 : + c4: b4 00 ff ce bmb r0,r0,0 + +000000c8 : + c8: 60 00 ff cd bmb0 r0,r0,0 + +000000cc : + cc: 64 00 ff cc bmb1 r0,r0,0 + +000000d0 : + d0: 68 00 ff cb bmb2 r0,r0,0 + +000000d4 : + d4: 6c 00 ff ca bmb3 r0,r0,0 + +000000d8 : + d8: 14 00 ff c9 bne r0,r0,0 + +000000dc : + dc: 54 00 ff c8 bnel r0,r0,0 + +000000e0 : + e0: 04 06 ff c7 bctxt r0,0 + +000000e4 : + e4: 41 00 ff c6 bc0f 0 + +000000e8 : + e8: 41 02 ff c5 bc0fl 0 + +000000ec : + ec: 4d 00 ff c4 bc3f 0 + +000000f0 : + f0: 4d 02 ff c3 bc3fl 0 + +000000f4 : + f4: 41 01 ff c2 bc0t 0 + +000000f8 : + f8: 41 03 ff c1 bc0tl 0 + +000000fc : + fc: 4d 01 ff c0 bc3t 0 + +00000100 : + 100: 4d 03 ff bf bc3tl 0 + +00000104 : + 104: 00 00 00 0d break + +00000108 : + 108: 40 40 00 00 cfc0 r0,r0 + +0000010c : + 10c: 44 40 00 00 cfc1 r0,r0 + +00000110 : + 110: 48 40 00 00 cfc2 r0,r0 + +00000114 : + 114: 4c 40 00 00 cfc3 r0,r0 + +00000118 : + 118: 4d 20 00 00 chkhdr r0,r0 + +0000011c : + 11c: 40 c0 00 00 ctc0 r0,r0 + +00000120 : + 120: 44 c0 00 00 ctc1 r0,r0 + +00000124 : + 124: 48 c0 00 00 ctc2 r0,r0 + +00000128 : + 128: 4c c0 00 00 ctc3 r0,r0 + +0000012c : + 12c: 00 00 00 0a jcr r0 + 130: 00 00 00 00 nop + +00000134 : + 134: 48 20 00 03 luc32 r0,r0 + +00000138 : + 138: 48 20 00 07 luc32l r0,r0 + +0000013c : + 13c: 48 20 00 0b luc64 r0,r0 + +00000140 : + 140: 48 20 00 0f luc64l r0,r0 + +00000144 : + 144: 48 20 00 08 luk r0,r0 + +00000148 : + 148: 48 20 00 04 lulck r0 + +0000014c : + 14c: 48 20 00 02 lum32 r0,r0 + +00000150 : + 150: 48 20 00 06 lum32l r0,r0 + +00000154 : + 154: 48 20 00 0a lum64 r0,r0 + +00000158 : + 158: 48 20 00 0e lum64l r0,r0 + +0000015c : + 15c: 48 20 00 01 lur r0,r0 + +00000160 : + 160: 48 20 00 05 lurl r0,r0 + +00000164 : + 164: 48 20 00 00 luulck r0 + +00000168 : + 168: 40 00 00 00 mfc0 r0,r0 + +0000016c : + 16c: 44 00 00 00 mfc1 r0,r0 + +00000170 : + 170: 48 00 00 00 mfc2 r0,r0 + +00000174 : + 174: 4c 00 00 00 mfc3 r0,r0 + +00000178 : + 178: 40 80 00 00 mtc0 r0,r0 + +0000017c : + 17c: 44 80 00 00 mtc1 r0,r0 + +00000180 : + 180: 48 80 00 00 mtc2 r0,r0 + +00000184 : + 184: 4c 80 00 00 mtc3 r0,r0 + +00000188 : + 188: 4c 20 00 04 rb r0,r0 + +0000018c : + 18c: 4f 00 00 00 rbr1 r0,0x0,0x0 + +00000190 : + 190: 4f 40 00 00 rbr30 r0,0x0,0x0 + +00000194 : + 194: 42 00 00 10 rfe + +00000198 : + 198: 4c 20 00 06 rx r0,r0 + +0000019c : + 19c: 4f 80 00 00 rxr1 r0,0x0,0x0 + +000001a0 : + 1a0: 4f c0 00 00 rxr30 r0,0x0,0x0 + +000001a4 : + 1a4: 00 00 00 0e sleep + +000001a8 : + 1a8: 48 20 00 10 srrd r0 + +000001ac : + 1ac: 48 20 00 14 srrdl r0 + +000001b0 : + 1b0: 48 20 00 16 srulck r0 + +000001b4 : + 1b4: 48 20 00 11 srwr r0,r0 + +000001b8 : + 1b8: 48 20 00 15 srwru r0,r0 + +000001bc : + 1bc: 00 00 00 0c syscall + +000001c0 : + 1c0: 4c 20 00 08 trapqfl + +000001c4 : + 1c4: 4c 20 00 09 trapqne + +000001c8 : + 1c8: 4c 20 00 00 wb r0,r0 + +000001cc : + 1cc: 4c 20 00 01 wbu r0,r0 + +000001d0 : + 1d0: 4e 03 00 00 wbr1 r3,0x0,0x0 + +000001d4 : + 1d4: 4e 20 00 00 wbr1u r0,0x0,0x0 + +000001d8 : + 1d8: 4e 40 00 00 wbr30 r0,0x0,0x0 + +000001dc : + 1dc: 4e 60 00 00 wbr30u r0,0x0,0x0 + +000001e0 : + 1e0: 4c 20 00 02 wx r0,r0 + +000001e4 : + 1e4: 4c 20 00 03 wxu r0,r0 + +000001e8 : + 1e8: 4e 80 00 00 wxr1 r0,0x0,0x0 + +000001ec : + 1ec: 4e a0 00 00 wxr1u r0,0x0,0x0 + +000001f0 : + 1f0: 4e c0 00 00 wxr30 r0,0x0,0x0 + +000001f4 : + 1f4: 4e e0 00 00 wxr30u r0,0x0,0x0 + +000001f8 : + 1f8: 08 00 00 00 j 0 + 1f8: R_IQ2000_OFFSET_16 .text + +000001fc : + 1fc: 0c 00 00 00 jal 0 + 1fc: R_IQ2000_OFFSET_16 .text + +00000200 : + 200: 00 00 00 09 jalr r0,r0 + +00000204 : + 204: 00 00 00 08 jr r0 + +00000208 : + 208: 80 00 10 24 lb r0,0x1024\(r0\) + +0000020c : + 20c: 90 00 10 24 lbu r0,0x1024\(r0\) + +00000210 : + 210: c0 00 10 24 ldw r0,0x1024\(r0\) + +00000214 : + 214: 84 00 10 24 lh r0,0x1024\(r0\) + +00000218 : + 218: 94 00 10 24 lhu r0,0x1024\(r0\) + +0000021c : + 21c: 3c 00 ff ff lui r0,0xffff + +00000220 : + 220: 8c 00 10 24 lw r0,0x1024\(r0\) + +00000224 : + 224: a0 00 10 24 sb r0,0x1024\(r0\) + +00000228 : + 228: e0 00 10 24 sdw r0,0x1024\(r0\) + +0000022c : + 22c: a4 00 10 24 sh r0,0x1024\(r0\) + +00000230 : + 230: ac 00 10 24 sw r0,0x1024\(r0\) + +00000234 : + 234: 4c 20 00 0a traprel r0 + +00000238 : + 238: 4c 21 00 07 pkrl r0,r1 + +0000023c : + 23c: 4f a0 00 00 pkrlr1 r0,0x0,0x0 + +00000240 : + 240: 4f e0 00 00 pkrlr30 r0,0x0,0x0 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/allinsn.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/allinsn.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/allinsn.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/allinsn.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,6 @@ +# IQ2000 assembler testsuite. + +if [istarget iq2000*-*-*] { + run_dump_test "allinsn" + run_dump_test "q10allinsn" +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/allinsn.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/allinsn.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/allinsn.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/allinsn.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,582 @@ + .data +foodata: .word 42 + .text +footext: + .text + .global add +add: + add %0,%0,%0 + .text + .global addi +addi: + addi %0,%0,-4 + .text + .global addiu +addiu: + addiu %0,%0,4 + .text + .global addu +addu: + addu %0,%0,%0 + .text + .global ado16 +ado16: + ado16 %0,%0,%0 + .text + .global and +and: + and %0,%0,%0 + .text + .global andi +andi: + andi %0,%0,0xdead + .text + .global andoi +andoi: + andoi %0,%0,0 + .text + .global andoui +andoui: + andoui %0,%0,0 + .text + .global mrgb +mrgb: + mrgb %0,%0,%0,0 + .text + .global nor +nor: + nor %0,%0,%0 + .text + .global or +or: + or %0,%0,%0 + .text + .global ori +ori: + ori %0,%0,-1 + .text + .global orui +orui: + orui %0,%0,0 + .text + .global ram +ram: + ram %0,%0,0,0,0 + .text + .global sll +sll: + sll %0,%0,0 + .text + .global sllv +sllv: + sllv %0,%0,%0 + .text + .global slmv +slmv: + slmv %0,%0,%0,0 + .text + .global slt +slt: + slt %0,%0,%0 + .text + .global slti +slti: + slti %0,%0,0 + .text + .global sltiu +sltiu: + sltiu %0,%0,0 + .text + .global sltu +sltu: + sltu %0,%0,%0 + .text + .global sra +sra: + sra %0,%0,0 + .text + .global srav +srav: + srav %0,%0,%0 + .text + .global srl +srl: + srl %0,%0,0 + .text + .global srlv +srlv: + srlv %0,%0,%0 + .text + .global srmv +srmv: + srmv %0,%0,%0,0 + .text + .global sub +sub: + sub %0,%0,%0 + .text + .global subu +subu: + subu %0,%0,%0 + .text + .global xor +xor: + xor %0,%0,%0 + .text + .global xori +xori: + xori %0,%0,0 + .text + .global bbi +bbi: + bbi %0(0),footext + .text + .global bbin +bbin: + bbin %0(0),footext + .text + .global bbv +bbv: + bbv %0,%0,footext + .text + .global bbvn +bbvn: + bbvn %0,%0,footext + .text + .global beq +beq: + beq %0,%0,footext + .text + .global beql +beql: + beql %0,%0,footext + .text + .global bgez +bgez: + bgez %0,footext + .text + .global bgezal +bgezal: + bgezal %0,footext + .text + .global bgezall +bgezall: + bgezall %0,footext + .text + .global bgezl +bgezl: + bgezl %0,footext + .text + .global bgtz +bgtz: + bgtz %0,footext + .text + .global bgtzl +bgtzl: + bgtzl %0,footext + .text + .global blez +blez: + blez %0,footext + .text + .global blezl +blezl: + blezl %0,footext + .text + .global bltz +bltz: + bltz %0,footext + .text + .global bltzl +bltzl: + bltzl %0,footext + .text + .global bltzal +bltzal: + bltzal %0,footext + .text + .global bltzall +bltzall: + bltzall %0,footext + .text + .global bmb +bmb: + bmb %0,%0,footext + .text + .global bmb0 +bmb0: + bmb0 %0,%0,footext + .text + .global bmb1 +bmb1: + bmb1 %0,%0,footext + .text + .global bmb2 +bmb2: + bmb2 %0,%0,footext + .text + .global bmb3 +bmb3: + bmb3 %0,%0,footext + .text + .global bne +bne: + bne %0,%0,footext + .text + .global bnel +bnel: + bnel %0,%0,footext + .text + .global bctxt +bctxt: + bctxt %0,footext + .text + .global bc0f +bc0f: + bc0f footext + .text + .global bc0fl +bc0fl: + bc0fl footext + .text + .global bc3f +bc3f: + bc3f footext + .text + .global bc3fl +bc3fl: + bc3fl footext + .text + .global bc0t +bc0t: + bc0t footext + .text + .global bc0tl +bc0tl: + bc0tl footext + .text + .global bc3t +bc3t: + bc3t footext + .text + .global bc3tl +bc3tl: + bc3tl footext + .text + .global break +break: + break + .text + .global cfc0 +cfc0: + cfc0 %0,%0 + .text + .global cfc1 +cfc1: + cfc1 %0,%0 + .text + .global cfc2 +cfc2: + cfc2 %0,%0 + .text + .global cfc3 +cfc3: + cfc3 %0,%0 + .text + .global chkhdr +chkhdr: + chkhdr %0,%0 + .text + .global ctc0 +ctc0: + ctc0 %0,%0 + .text + .global ctc1 +ctc1: + ctc1 %0,%0 + .text + .global ctc2 +ctc2: + ctc2 %0,%0 + .text + .global ctc3 +ctc3: + ctc3 %0,%0 + .text + .global jcr +jcr: + jcr %0 + .text + .global luc32 + nop +luc32: + # insert a nop here to pacify the assembler (luc32 may not follow jcr). + luc32 %0,%0 + .text + .global luc32l +luc32l: + luc32l %0,%0 + .text + .global luc64 +luc64: + luc64 %0,%0 + .text + .global luc64l +luc64l: + luc64l %0,%0 + .text + .global luk +luk: + luk %0,%0 + .text + .global lulck +lulck: + lulck %0 + .text + .global lum32 +lum32: + lum32 %0,%0 + .text + .global lum32l +lum32l: + lum32l %0,%0 + .text + .global lum64 +lum64: + lum64 %0,%0 + .text + .global lum64l +lum64l: + lum64l %0,%0 + .text + .global lur +lur: + lur %0,%0 + .text + .global lurl +lurl: + lurl %0,%0 + .text + .global luulck +luulck: + luulck %0 + .text + .global mfc0 +mfc0: + mfc0 %0,%0 + .text + .global mfc1 +mfc1: + mfc1 %0,%0 + .text + .global mfc2 +mfc2: + mfc2 %0,%0 + .text + .global mfc3 +mfc3: + mfc3 %0,%0 + .text + .global mtc0 +mtc0: + mtc0 %0,%0 + .text + .global mtc1 +mtc1: + mtc1 %0,%0 + .text + .global mtc2 +mtc2: + mtc2 %0,%0 + .text + .global mtc3 +mtc3: + mtc3 %0,%0 + .text + .global rb +rb: + rb %0,%0 + .text + .global rbr1 +rbr1: + rbr1 %0,0,0 + .text + .global rbr30 +rbr30: + rbr30 %0,0,0 + .text + .global rfe +rfe: + rfe + .text + .global rx +rx: + rx %0,%0 + .text + .global rxr1 +rxr1: + rxr1 %0,0,0 + .text + .global rxr30 +rxr30: + rxr30 %0,0,0 + .text + .global sleep +sleep: + sleep + .text + .global srrd +srrd: + srrd %0 + .text + .global srrdl +srrdl: + srrdl %0 + .text + .global srulck +srulck: + srulck %0 + .text + .global srwr +srwr: + srwr %0,%0 + .text + .global srwru +srwru: + srwru %0,%0 + .text + .global syscall +syscall: + syscall + .text + .global trapqfl +trapqfl: + trapqfl + .text + .global trapqne +trapqne: + trapqne + .text + .global wb +wb: + wb %0,%0 + .text + .global wbu +wbu: + wbu %0,%0 + .text + .global wbr1 +wbr1: + wbr1 %3,0,0 + .text + .global wbr1u +wbr1u: + wbr1u %0,0,0 + .text + .global wbr30 +wbr30: + wbr30 %0,0,0 + .text + .global wbr30u +wbr30u: + wbr30u %0,0,0 + .text + .global wx +wx: + wx %0,%0 + .text + .global wxu +wxu: + wxu %0,%0 + .text + .global wxr1 +wxr1: + wxr1 %0,0,0 + .text + .global wxr1u +wxr1u: + wxr1u %0,0,0 + .text + .global wxr30 +wxr30: + wxr30 %0,0,0 + .text + .global wxr30u +wxr30u: + wxr30u %0,0,0 + .text + .global j +j: + j footext + .text + .global jal +jal: + jal footext + .text + .global jalr +jalr: + jalr %0,%0 + .text + .global jr +jr: + jr %0 + .text + .global lb +lb: + lb %0,0x1024(%0) + .text + .global lbu +lbu: + lbu %0,0x1024(%0) + .text + .global ldw +ldw: + ldw %0,0x1024(%0) + .text + .global lh +lh: + lh %0,0x1024(%0) + .text + .global lhu +lhu: + lhu %0,0x1024(%0) + .text + .global lui +lui: + lui %0,-1 + .text + .global lw +lw: + lw %0,0x1024(%0) + .text + .global sb +sb: + sb %0,0x1024(%0) + .text + .global sdw +sdw: + sdw %0,0x1024(%0) + .text + .global sh +sh: + sh %0,0x1024(%0) + .text + .global sw +sw: + sw %0,0x1024(%0) + .text + .global traprel +traprel: + traprel %0 + .text + .global pkrl +pkrl: + pkrl %0,%1 + .text + .global pkrlr1 +pkrlr1: + pkrlr1 %0,0,0 + .text + .global pkrlr30 +pkrlr30: + pkrlr30 %0,0,0 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard0.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard0.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard0.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard0.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,11 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + lw %10, foodata(%1) + add %10, %1, %2 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard1.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard1.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard1.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,11 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + lw %1, foodata(%1) + add %0, %1, %2 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard2.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard2.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard2.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,11 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + lw %2, foodata(%1) + add %0, %1, %2 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard3.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard3.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard3.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard3.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,14 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + lw %31, foodata(%1) + jal footext + +footext: + nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard4.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard4.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard4.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard4.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,11 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + ldw %10, foodata(%12) + add %3, %10, %9 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard5.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard5.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/hazard5.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/hazard5.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,11 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + ldw %8, foodata(%4) + add %8, %1, %9 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/load-hazards.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/load-hazards.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/load-hazards.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/load-hazards.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,63 @@ +# Test for warnings when producing load hazards (instructions that +# reference the target of load one stage further down the pipeline. +# Written by Ben Elliston (bje@redhat.com) + +# Run GAS and check that it emits the desired warning for the test case. +# Arguments: +# file -- name of the test case to assemble. +# testname -- a string describing the test. +# warnpattern -- a regular expression, suitable for use by the Tcl +# regexp command, to decide if the warning string was emitted by +# the assembler to stderr. + +proc iq2000_warning_test { file testname {warnpattern ""} } { + global comp_output + + gas_run $file "" ">/dev/null" + verbose "output was $comp_output" 2 + + if {$warnpattern == ""} { + if {$comp_output == ""} { pass $testname } else { fail $testname } + return + } + + if {[regexp "Warning: $warnpattern" $comp_output]} { + pass $testname + } else { + fail $testname + } +} + +if [istarget iq2000*-*-*] { + foreach file [glob -nocomplain -- $srcdir/$subdir/hazard*.s] { + set file [file tail $file] + switch -- $file { + "hazard0.s" { + set warnpattern "operand references R10 of previous load" + } + "hazard1.s" { + set warnpattern "operand references R1 of previous load" + } + "hazard2.s" { + set warnpattern "operand references R2 of previous load" + } + "hazard3.s" { + set warnpattern "instruction implicitly accesses R31 of previous load" + } + "hazard4.s" { + set warnpattern "operand references R10 of previous load" + } + "hazard5.s" { + set warnpattern "operand references R8 of previous load" + } + default { + error "no expected result specified for $file" + return + } + } + iq2000_warning_test $file "assembler emits load hazard warning for $file" $warnpattern + } + + set testname "assembler emits no warnings when there are no load hazards" + iq2000_warning_test nohazard.s $testname +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/nohazard.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/nohazard.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/nohazard.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/nohazard.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,20 @@ +# This test case includes a number of cases where there is no load +# hazard between a load and the instruction which follows it in +# the pipeline. + +.data +.text + lw %0, 0x40(%0) + add %1, %2, %3 + lh %0, 0x80(%0) + add %1, %2, %3 + lb %0, 0x80(%0) + add %1, %2, %3 + lw %0, 0x80(%0) + nop + add %0, %0, %0 + ldw %0, 0x80(%3) + nop + ldw %0, 0x80(%3) + add %2, %3, %4 + \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/noyield.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/noyield.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/noyield.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/noyield.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,13 @@ +# This test case includes a number of cases where a yield instruction +# (e.g. SLEEP) does NOT appear in the branch delay slot. + +.text +test1: beq %0, %0, test2 + # nop in the branch delay slot. + nop +test2: sleep + nop +test3: sleep + beq %0, %0, test4 + nop +test4: sleep diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/odd-ldw.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/odd-ldw.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/odd-ldw.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/odd-ldw.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,6 @@ +# Test for errors when using an odd numbered base register for LDW. +# Written by Ben Elliston (bje@redhat.com) + +if [istarget iq2000*-*-*] { + gas_test_error oddldw.s "" "emits error for odd numbered register in double word load" +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/odd-sdw.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/odd-sdw.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/odd-sdw.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/odd-sdw.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,6 @@ +# Test for errors when using an odd numbered base register for SDW. +# Written by Ben Elliston (bje@redhat.com) + +if [istarget iq2000*-*-*] { + gas_test_error oddsdw.s "" "emits error for odd numbered register in double word store" +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/oddldw.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/oddldw.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/oddldw.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/oddldw.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,10 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + ldw %1, foodata(%12) diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/oddsdw.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/oddsdw.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/oddsdw.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/oddsdw.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,10 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + sdw %1, foodata(%12) diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10allinsn.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10allinsn.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10allinsn.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10allinsn.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,492 @@ +#as: -m10 +#objdump: -drz +#name: q10allinsn + +.*: +file format .* + +Disassembly of section .text: + +00000000 : + 0: 03 be 00 20 add r0,r29,r30 + +00000004 : + 4: 20 00 ff fc addi r0,r0,0xfffc + +00000008 : + 8: 24 00 00 04 addiu r0,r0,0x4 + +0000000c : + c: 03 be 00 21 addu r0,r29,r30 + +00000010 : + 10: 03 be 00 29 ado16 r0,r29,r30 + +00000014 : + 14: 03 be 00 24 and r0,r29,r30 + +00000018 : + 18: 30 00 de ad andi r0,r0,0xdead + +0000001c : + 1c: b0 00 00 00 andoi r0,r0,0x0 + +00000020 : + 20: bc 00 00 00 andoui r0,r0,0x0 + +00000024 : + 24: 03 a0 00 2d mrgb r0,r29,r0,0x0 + +00000028 : + 28: 03 be 00 27 nor r0,r29,r30 + +0000002c : + 2c: 03 be 00 25 or r0,r29,r30 + 30: 03 be 08 25 or r1,r29,r30 + +00000034 : + 34: 34 00 ff ff ori r0,r0,0xffff + +00000038 : + 38: 3c 20 00 00 orui r0,r1,0x0 + +0000003c : + 3c: 9c 00 00 00 ram r0,r0,0x0,0x0,0x0 + +00000040 : + 40: 00 00 00 00 nop + 44: 00 02 08 00 sll r1,r2,0x0 + +00000048 : + 48: 03 dd 00 04 sllv r0,r29,r30 + +0000004c : + 4c: 00 00 00 01 slmv r0,r0,r0,0x0 + +00000050 : + 50: 03 be 00 2a slt r0,r29,r30 + +00000054 : + 54: 28 00 00 00 slti r0,r0,0x0 + +00000058 : + 58: 2c 00 00 00 sltiu r0,r0,0x0 + +0000005c : + 5c: 03 be 00 2b sltu r0,r29,r30 + +00000060 : + 60: 00 00 00 03 sra r0,r0,0x0 + +00000064 : + 64: 03 dd 00 07 srav r0,r29,r30 + +00000068 : + 68: 00 00 00 02 srl r0,r0,0x0 + +0000006c : + 6c: 03 dd 00 06 srlv r0,r29,r30 + +00000070 : + 70: 00 00 00 05 srmv r0,r0,r0,0x0 + +00000074 : + 74: 03 be 00 22 sub r0,r29,r30 + +00000078 : + 78: 03 be 00 23 subu r0,r29,r30 + +0000007c : + 7c: 00 00 00 26 xor r0,r0,r0 + +00000080 : + 80: 38 00 00 00 xori r0,r0,0x0 + +00000084 : + 84: 70 00 ff ff bbi r0\(0x0\),84 + +00000088 : + 88: f0 00 ff fe bbil r0\(0x0\),84 + +0000008c : + 8c: f8 00 ff fd bbinl r0\(0x0\),84 + +00000090 : + 90: 78 00 ff fc bbin r0\(0x0\),84 + +00000094 : + 94: 74 00 ff fb bbv r0,r0,84 + +00000098 : + 98: f4 00 ff fa bbvl r0,r0,84 + +0000009c : + 9c: 7c 00 ff f9 bbvn r0,r0,84 + +000000a0 : + a0: fc 00 ff f8 bbvnl r0,r0,84 + +000000a4 : + a4: 10 00 ff f7 beq r0,r0,84 + +000000a8 : + a8: 50 00 ff f6 beql r0,r0,84 + +000000ac : + ac: 04 01 ff f5 bgez r0,84 + +000000b0 : + b0: 04 11 ff f4 bgezal r0,84 + +000000b4 : + b4: 04 13 ff f3 bgezall r0,84 + +000000b8 : + b8: 04 03 ff f2 bgezl r0,84 + +000000bc : + bc: 04 05 ff f1 bgtz r0,84 + +000000c0 : + c0: 04 15 ff f0 bgtzal r0,84 + +000000c4 : + c4: 04 17 ff ef bgtzall r0,84 + +000000c8 : + c8: 04 07 ff ee bgtzl r0,84 + +000000cc : + cc: 04 04 ff ed blez r0,84 + +000000d0 : + d0: 04 14 ff ec blezal r0,84 + +000000d4 : + d4: 04 16 ff eb blezall r0,84 + +000000d8 : + d8: 04 06 ff ea blezl r0,84 + +000000dc : + dc: 04 00 ff e9 bltz r0,84 + +000000e0 : + e0: 04 02 ff e8 bltzl r0,84 + +000000e4 : + e4: 04 10 ff e7 bltzal r0,84 + +000000e8 : + e8: 04 12 ff e6 bltzall r0,84 + +000000ec : + ec: 18 00 ff e5 bmb r0,r0,84 + +000000f0 : + f0: 60 00 ff e4 bmb0 r0,r0,84 + +000000f4 : + f4: 64 00 ff e3 bmb1 r0,r0,84 + +000000f8 : + f8: 68 00 ff e2 bmb2 r0,r0,84 + +000000fc : + fc: 6c 00 ff e1 bmb3 r0,r0,84 + +00000100 : + 100: 58 00 ff e0 bmbl r0,r0,84 + +00000104 : + 104: 14 00 ff df bne r0,r0,84 + +00000108 : + 108: 54 00 ff de bnel r0,r0,84 + +0000010c : + 10c: 00 00 00 0d break + +00000110 : + 110: 04 08 ff dc bri r0,84 + +00000114 : + 114: 04 09 ff db brv r0,84 + +00000118 : + 118: 4c 00 00 26 chkhdr r0,r0 + +0000011c : + 11c: 08 00 00 00 j 0 + 11c: R_IQ2000_OFFSET_16 .text\+0x124 + +00000120 : + 120: 0c 00 00 00 jal r0,0 + 120: R_IQ2000_OFFSET_16 .text\+0x124 + +00000124 : + 124: 00 00 00 09 jalr r0,r0 + +00000128 : + 128: 00 00 00 08 jr r0 + +0000012c : + 12c: 80 00 10 24 lb r0,0x1024\(r0\) + +00000130 : + 130: 90 00 10 24 lbu r0,0x1024\(r0\) + +00000134 : + 134: 84 00 10 24 lh r0,0x1024\(r0\) + +00000138 : + 138: 94 00 10 24 lhu r0,0x1024\(r0\) + +0000013c : + 13c: 3c 00 ff ff lui r0,0xffff + 140: 3c 1d 00 00 lui r29,0x0 + 140: R_IQ2000_HI16 foodata + 144: 37 bd 00 00 ori r29,r29,0x0 + 144: R_IQ2000_LO16 foodata + +00000148 : + 148: 3c 0b 00 00 lui r11,0x0 + 148: R_IQ2000_HI16 foodata + 14c: 35 6b 00 00 ori r11,r11,0x0 + 14c: R_IQ2000_LO16 foodata + +00000150 : + 150: 8c 00 10 24 lw r0,0x1024\(r0\) + +00000154 : + 154: a0 00 10 24 sb r0,0x1024\(r0\) + +00000158 : + 158: a4 00 10 24 sh r0,0x1024\(r0\) + +0000015c : + 15c: ac 00 10 24 sw r0,0x1024\(r0\) + +00000160 : + 160: 4c 1e e8 04 swrd r29,r30 + +00000164 : + 164: 4c 1e e8 05 swrdl r29,r30 + +00000168 : + 168: 4f be 00 06 swwr r0,r29,r30 + +0000016c : + 16c: 4f be 00 07 swwru r0,r29,r30 + +00000170 : + 170: 4f be 00 08 rba r0,r29,r30 + +00000174 : + 174: 4f be 00 09 rbal r0,r29,r30 + +00000178 : + 178: 4f be 00 0a rbar r0,r29,r30 + +0000017c : + 17c: 4c 1e e0 0c dwrd r28,r30 + +00000180 : + 180: 4c 1e e0 0d dwrdl r28,r30 + +00000184 : + 184: 4f be 00 10 wba r0,r29,r30 + +00000188 : + 188: 4f be 00 11 wbau r0,r29,r30 + +0000018c : + 18c: 4f be 00 12 wbac r0,r29,r30 + +00000190 : + 190: 4f be 00 14 crc32 r0,r29,r30 + +00000194 : + 194: 4f be 00 15 crc32b r0,r29,r30 + +00000198 : + 198: 4c 1e e8 00 cfc r29,r30 + +0000019c : + 19c: 4c 1c e8 01 lock r29,r28 + +000001a0 : + 1a0: 4f be 00 02 ctc r29,r30 + +000001a4 : + 1a4: 4c 1e e8 03 unlk r29,r30 + +000001a8 : + 1a8: 4c 1d 00 20 mcid r0,r29 + +000001ac : + 1ac: 4c 00 f0 22 dba r30 + +000001b0 : + 1b0: 4c 1e 00 21 dbd r0,r0,r30 + +000001b4 : + 1b4: 4f c0 00 23 dpwt r0,r30 + +000001b8 : + 1b8: 4c 00 f8 24 avail r31 + +000001bc : + 1bc: 4f c0 00 25 free r0,r30 + +000001c0 : + 1c0: 4f c0 00 27 tstod r0,r30 + +000001c4 : + 1c4: 00 00 00 0e yield + +000001c8 : + 1c8: 4f be 00 28 pkrla r0,r29,r30 + +000001cc : + 1cc: 4f be 00 2b pkrlac r0,r29,r30 + +000001d0 : + 1d0: 4f be 00 29 pkrlau r0,r29,r30 + +000001d4 : + 1d4: 4f be 00 2a pkrlah r0,r29,r30 + +000001d8 : + 1d8: 4c 00 f8 2c cmphdr r31 + +000001dc : + 1dc: 4c 1e ec 09 cam36 r29,r30,0x1,0x1 + +000001e0 : + 1e0: 4c 1e 04 52 cam72 r0,r30,0x2,0x2 + +000001e4 : + 1e4: 4c 1d 04 9b cam144 r0,r29,0x3,0x3 + +000001e8 : + 1e8: 4c 1d 04 a4 cam144 r0,r29,0x4,0x4 + +000001ec : + 1ec: 4f be 00 ab cm32and r0,r29,r30 + +000001f0 : + 1f0: 4f be 00 a3 cm32andn r0,r29,r30 + +000001f4 : + 1f4: 4f be 00 aa cm32or r0,r29,r30 + +000001f8 : + 1f8: 4f be 00 b0 cm32ra r0,r29,r30 + +000001fc : + 1fc: 4c 1e e8 a1 cm32rd r29,r30 + +00000200 : + 200: 4c 1d 00 a4 cm32ri r0,r29 + +00000204 : + 204: 4f be 00 a0 cm32rs r0,r29,r30 + +00000208 : + 208: 4f be 00 b8 cm32sa r0,r29,r30 + +0000020c : + 20c: 4c 1d 00 a9 cm32sd r0,r29 + +00000210 : + 210: 4c 1d 00 ac cm32si r0,r29 + +00000214 : + 214: 4f be 00 a8 cm32ss r0,r29,r30 + +00000218 : + 218: 4f be 00 a2 cm32xor r0,r29,r30 + +0000021c : + 21c: 4c 1c 00 85 cm64clr r0,r28 + +00000220 : + 220: 4f 9e 00 90 cm64ra r0,r28,r30 + +00000224 : + 224: 4c 1c 00 81 cm64rd r0,r28 + +00000228 : + 228: 4c 1c 00 84 cm64ri r0,r28 + +0000022c : + 22c: 4f 9e 00 94 cm64ria2 r0,r28,r30 + +00000230 : + 230: 4f 9e 00 80 cm64rs r0,r28,r30 + +00000234 : + 234: 4f 9e 00 98 cm64sa r0,r28,r30 + +00000238 : + 238: 4c 1c 00 89 cm64sd r0,r28 + +0000023c : + 23c: 4c 1c 00 8c cm64si r0,r28 + +00000240 : + 240: 4f 9e 00 9c cm64sia2 r0,r28,r30 + +00000244 : + 244: 4f be 00 88 cm64ss r0,r29,r30 + +00000248 : + 248: 4f be 00 95 cm128ria2 r0,r29,r30 + +0000024c : + 24c: 4f be 00 90 cm64ra r0,r29,r30 + +00000250 : + 250: 4f be 00 b7 cm128ria4 r0,r29,r30,0x7 + +00000254 : + 254: 4f be 00 9d cm128sia2 r0,r29,r30 + +00000258 : + 258: 4f be 00 98 cm64sa r0,r29,r30 + +0000025c : + 25c: 4f be 00 bf cm128sia4 r0,r29,r30,0x7 + +00000260 : + 260: 4f be 00 a6 cm128vsa r0,r29,r30 + +00000264 : + 264: 4b fd 08 3f pkrli r1,r31,r29,0x3f + +00000268 : + 268: 4b fd 0b 3f pkrlic r1,r31,r29,0x3f + +0000026c : + 26c: 4b fd 0a 3f pkrlih r1,r31,r29,0x3f + +00000270 : + 270: 4b fd 09 3f pkrliu r1,r31,r29,0x3f + +00000274 : + 274: 4f bc 12 20 rbi r2,r29,r28,0x20 + +00000278 : + 278: 4f bc 13 20 rbil r2,r29,r28,0x20 + +0000027c : + 27c: 4f bc 11 20 rbir r2,r29,r28,0x20 + +00000280 : + 280: 4c 22 06 20 wbi r0,r1,r2,0x20 + +00000284 : + 284: 4c 22 05 20 wbic r0,r1,r2,0x20 + +00000288 : + 288: 4c 22 07 20 wbiu r0,r1,r2,0x20 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10allinsn.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10allinsn.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10allinsn.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10allinsn.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,641 @@ + .globl foodata + .data + .align 2 +foodata: + .word 42 + .text + .global add +add: + add %0,%29,%30 + .text + .global addi +addi: + addi %0,%0,-4 + .text + .global addiu +addiu: + addiu %0,%0,4 + .text + .global addu +addu: + addu %0,%29,%30 + .text + .global ado16 +ado16: + ado16 %0,%29,%30 + .text + .global and +and: + and %0,%29,%30 + .text + .global andi +andi: + andi %0,%0,0xdead + .text + .global andoi +andoi: + andoi %0,%0,0 + .text + .global andoui +andoui: + andoui %0,%0,0 + .text + .global mrgb +mrgb: + mrgb %0,%29,%0,0 + .text + .global nor +nor: + nor %0,%29,%30 + .text + .global or +or: + or %0,%29,%30 + or %1,%29,%30 + .text + .global ori +ori: + ori %0,%0,-1 + .text + .global orui +orui: + orui %0,%1,0 + .text + .global ram +ram: + ram %0,%0,0,0,0 + .text + .global sll +sll: + sll %0,%0,0 + sll %1,%2,0 + .text + .global sllv +sllv: + sllv %0,%29,%30 + .text + .global slmv +slmv: + slmv %0,%0,%0,0 + .text + .global slt +slt: + slt %0,%29,%30 + .text + .global slti +slti: + slti %0,%0,0 + .text + .global sltiu +sltiu: + sltiu %0,%0,0 + .text + .global sltu +sltu: + sltu %0,%29,%30 + .text + .global sra +sra: + sra %0,%0,0 + .text + .global srav +srav: + srav %0,%29,%30 + .text + .global srl +srl: + srl %0,%0,0 + .text + .global srlv +srlv: + srlv %0,%29,%30 + .text + .global srmv +srmv: + srmv %0,%0,%0,0 + .text + .global sub +sub: + sub %0,%29,%30 + .text + .global subu +subu: + subu %0,%29,%30 + .text + .global xor +xor: + xor %0,%0,%0 + .global xori +xori: + xori %0,%0,0 +footext: + .text + .global bbi +bbi: + bbi %0(0),footext + .text + .global bbil +bbil: + bbil %0(0),footext + .text + .global bbinl +bbinl: + bbinl %0(0),footext + .text + .global bbin +bbin: + bbin %0(0),footext + .text + .global bbv +bbv: + bbv %0,%0,footext + .text + .global bbvl +bbvl: + bbvl %0,%0,footext + .text + .global bbvn +bbvn: + bbvn %0,%0,footext + .text + .global bbvnl +bbvnl: + bbvnl %0,%0,footext + .text + .global beq +beq: + beq %0,%0,footext + .text + .global beql +beql: + beql %0,%0,footext + .text + .global bgez +bgez: + bgez %0,footext + .text + .global bgezal +bgezal: + bgezal %0,footext + .text + .global bgezall +bgezall: + bgezall %0,footext + .text + .global bgezl +bgezl: + bgezl %0,footext + .text + .global bgtz +bgtz: + bgtz %0,footext + .text + .global bgtzal +bgtzal: + bgtzal %0,footext + .text + .global bgtzall +bgtzall: + bgtzall %0,footext + .text + .global bgtzl +bgtzl: + bgtzl %0,footext + .text + .global blez +blez: + blez %0,footext + .text + .global blezal +blezal: + blezal %0,footext + .text + .global blezall +blezall: + blezall %0,footext + .text + .global blezl +blezl: + blezl %0,footext + .text + .global bltz +bltz: + bltz %0,footext + .text + .global bltzl +bltzl: + bltzl %0,footext + .text + .global bltzal +bltzal: + bltzal %0,footext + .text + .global bltzall +bltzall: + bltzall %0,footext + .text + .global bmb +bmb: + bmb %0,%0,footext + .text + .global bmb0 +bmb0: + bmb0 %0,%0,footext + .text + .global bmb1 +bmb1: + bmb1 %0,%0,footext + .text + .global bmb2 +bmb2: + bmb2 %0,%0,footext + .text + .global bmb3 +bmb3: + bmb3 %0,%0,footext + .text + .global bmbl +bmbl: + bmbl %0,%0,footext + .text + .global bne +bne: + bne %0,%0,footext + .text + .global bnel +bnel: + bnel %0,%0,footext + .text + .global break +break: + break + .text + .global bri +bri: + bri %0,footext + .text + .global brv +brv: + brv %0,footext + .text + .global chkhdr +chkhdr: + chkhdr %0,%0 + .text + .global j +j: + j bartext + .text + .global jal +jal: + jal %0,bartext +bartext: + .text + .global jalr +jalr: + jalr %0,%0 + .text + .global jr +jr: + jr %0 + .text + .global lb +lb: + lb %0,0x1024(%0) + .text + .global lbu +lbu: + lbu %0,0x1024(%0) + .text + .global lh +lh: + lh %0,0x1024(%0) + .text + .global lhu +lhu: + lhu %0,0x1024(%0) + .text + .global lui +lui: + lui %0,-1 + lui %29,%hi(foodata) + ori %29,%29,%lo(foodata) + .text + .global la +la: + la %11,foodata + .global lw +lw: + lw %0,0x1024(%0) + .text + .global sb +sb: + sb %0,0x1024(%0) + .text + .global sh +sh: + sh %0,0x1024(%0) + .text + .global sw +sw: + sw %0,0x1024(%0) + .text + .global swrd +swrd: + swrd %29,%30 + .text + .global swrdl +swrdl: + swrdl %29,%30 + .text + .global swwr +swwr: + swwr %0,%29,%30 + .text + .global swwru +swwru: + swwru %0,%29,%30 + .text + .global rba +rba: + rba %0,%29,%30 + .text + .global rbal +rbal: + rbal %0,%29,%30 + .text + .global rbar +rbar: + rbar %0,%29,%30 + .text + .global dwrd +dwrd: + dwrd %28,%30 + .text + .global dwrdl +dwrdl: + dwrdl %28,%30 + .text + .global wba +wba: + wba %0,%29,%30 + .text + .global wbau +wbau: + wbau %0,%29,%30 + .text + .global wbac +wbac: + wbac %0,%29,%30 + .text + .global crc32 +crc32: + crc32 %0,%29,%30 + .text + .global crc32b +crc32b: + crc32b %0,%29,%30 + .text + .global cfc +cfc: + cfc %29,%30 + .text + .global lock +lock: + lock %29,%28 + .text + .global ctc +ctc: + ctc %29,%30 + .text + .global unlk +unlk: + unlk %29,%30 + .text + .global mcid +mcid: + mcid %0,%29 + .text + .global dba +dba: + dba %30 + .text + .global dbd +dbd: + dbd %0,%30 + .text + .global dpwt +dpwt: + dpwt %0,%30 + .text + .global avail +avail: + avail %31 + .text + .global free +free: + free %0,%30 + .text + .global tstod +tstod: + tstod %0,%30 + .global yield +yield: + yield + .text + .global pkrla +pkrla: + pkrla %0,%29,%30 + .text + .global pkrlac +pkrlac: + pkrlac %0,%29,%30 + .text + .global pkrlau +pkrlau: + pkrlau %0,%29,%30 + .text + .global pkrlah +pkrlah: + pkrlah %0,%29,%30 + .text + .global cmphdr +cmphdr: + cmphdr %31 + .text + .global cam36 +cam36: + cam36 %29,%30,1,1 + .text + .global cam72 +cam72: + cam72 %0,%30,2,2 + .text + .global cam144 +cam144: + cam144 %0,%29,3,3 + .text + .global cam288 +cam288: + cam144 %0,%29,4,4 + .text + .global cm32and +cm32and: + cm32and %0,%29,%30 + .text + .global cm32andn +cm32andn: + cm32andn %0,%29,%30 + .text + .global cm32or +cm32or: + cm32or %0,%29,%30 + .text + .global cm32ra +cm32ra: + cm32ra %0,%29,%30 + .text + .global cm32rd +cm32rd: + cm32rd %29,%30 + .text + .global cm32ri +cm32ri: + cm32ri %0,%29 + .text + .global cm32rs +cm32rs: + cm32rs %0,%29,%30 + .text + .global cm32sa +cm32sa: + cm32sa %0,%29,%30 + .text + .global cm32sd +cm32sd: + cm32sd %0,%29 + .text + .global cm32si +cm32si: + cm32si %0,%29 + .text + .global cm32ss +cm32ss: + cm32ss %0,%29,%30 + .text + .global cm32xor +cm32xor: + cm32xor %0,%29,%30 + .text + .global cm64clr +cm64clr: + cm64clr %0,%28 + .text + .global cm64ra +cm64ra: + cm64ra %0,%28,%30 + .text + .global cm64rd +cm64rd: + cm64rd %0,%28 + .text + .global cm64ri +cm64ri: + cm64ri %0,%28 + .text + .global cm64ria2 +cm64ria2: + cm64ria2 %0,%28,%30 + .text + .global cm64rs +cm64rs: + cm64rs %0,%28,%30 + .text + .global cm64sa +cm64sa: + cm64sa %0,%28,%30 + .text + .global cm64sd +cm64sd: + cm64sd %0,%28 + .text + .global cm64si +cm64si: + cm64si %0,%28 + .text + .global cm64sia2 +cm64sia2: + cm64sia2 %0,%28,%30 + .text + .global cm64ss +cm64ss: + cm64ss %0,%29,%30 + .text + .global cm128ria2 +cm128ria2: + cm128ria2 %0,%29,%30 + .text + .global cm128ria30 +cm128ria3: + cm128ria3 %0,%29,%30,0 + .text + .global cm128ria4 +cm128ria4: + cm128ria4 %0,%29,%30,7 + .text + .global cm128sia2 +cm128sia2: + cm128sia2 %0,%29,%30 + .text + .global cm128sia3 +cm128sia3: + cm128sia3 %0,%29,%30,0 + .text + .global cm128sia4 +cm128sia4: + cm128sia4 %0,%29,%30,7 + .text + .global cm128vsa +cm128vsa: + cm128vsa %0,%29,%30 + .text + .global pkrli +pkrli: + pkrli %1,%31,%29,63 + .text + .global pkrlic +pkrlic: + pkrlic %1,%31,%29,63 + .text + .global pkrlih +pkrlih: + pkrlih %1,%31,%29,63 + .text + .global pkrliu +pkrliu: + pkrliu %1,%31,%29,63 + .text + .global rbi +rbi: + rbi %2,%29,%28,32 + .text + .global rbil +rbil: + rbil %2,%29,%28,32 + .text + .global rbir +rbir: + rbir %2,%29,%28,32 + .text + .global wbi +wbi: + wbi %0,%1,%2,32 + .text + .global wbic +wbic: + wbic %0,%1,%2,32 + .text + .global wbiu +wbiu: + wbiu %0,%1,%2,32 + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10hazard3.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10hazard3.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10hazard3.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10hazard3.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,14 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + lw %31, foodata(%1) + jal %31,footext + +footext: + nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10hazard4.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10hazard4.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10hazard4.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10hazard4.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,11 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + lw %10, foodata(%12) + add %3, %10, %9 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10hazard5.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10hazard5.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10hazard5.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10hazard5.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,11 @@ +# This test case includes a single case of a load hazard, whereby an +# instruction references a register which is the target of a load. +# The assembler must warn about this! + +.data +foodata: + .word 42 + +.text + lw %1, foodata(%4) + add %8, %1, %9 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10load-hazards.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10load-hazards.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10load-hazards.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10load-hazards.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,62 @@ +# Test for warnings when producing load hazards (instructions that +# reference the target of load one stage further down the pipeline. + +# Run GAS and check that it emits the desired warning for the test case. +# Arguments: +# file -- name of the test case to assemble. +# testname -- a string describing the test. +# warnpattern -- a regular expression, suitable for use by the Tcl +# regexp command, to decide if the warning string was emitted by +# the assembler to stderr. + +proc iq2000_warning_test { file testname {warnpattern ""} } { + global comp_output + + gas_run $file "-m10" ">/dev/null" + verbose "output was $comp_output" 2 + + if {$warnpattern == ""} { + if {$comp_output == ""} { pass $testname } else { fail $testname } + return + } + + if {[regexp "Warning: $warnpattern" $comp_output]} { + pass $testname + } else { + fail $testname + } +} + +if [istarget iq2000*-*-*] { + foreach file [glob -nocomplain -- $srcdir/$subdir/q10hazard*.s] { + set file [file tail $file] + switch -- $file { + "q10hazard0.s" { + set warnpattern "operand references R10 of previous load" + } + "q10hazard1.s" { + set warnpattern "operand references R1 of previous load" + } + "q10hazard2.s" { + set warnpattern "operand references R2 of previous load" + } + "q10hazard3.s" { + set warnpattern "operand references R31 of previous load" + } + "q10hazard4.s" { + set warnpattern "operand references R10 of previous load" + } + "q10hazard5.s" { + set warnpattern "operand references R1 of previous load" + } + default { + error "no expected result specified for $file" + return + } + } + iq2000_warning_test $file "assembler emits load hazard warning for $file" $warnpattern + } + + set testname "assembler emits no warnings when there are no load hazards" + iq2000_warning_test q10nohazard.s $testname +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10nohazard.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10nohazard.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10nohazard.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10nohazard.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,20 @@ +# This test case includes a number of cases where there is no load +# hazard between a load and the instruction which follows it in +# the pipeline. + +.data +.text + lw %0, 0x40(%0) + add %1, %2, %3 + lh %0, 0x80(%0) + add %1, %2, %3 + lb %0, 0x80(%0) + add %1, %2, %3 + lw %0, 0x80(%0) + nop + add %0, %0, %0 + lw %0, 0x80(%3) + nop + lw %0, 0x80(%3) + add %2, %3, %4 + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10noyield.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10noyield.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10noyield.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10noyield.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,14 @@ +# This test case includes a number of cases where a yield instruction +# (e.g. SLEEP) does NOT appear in the branch delay slot. + +.text +test1: beq %0, %0, test2 + # nop in the branch delay slot. + nop +test2: cfc %0, %0 + nop +test3: cfc %0, %0 + beq %0, %0, test4 + nop +test4: sub %1,%2,%3 + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test0.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test0.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test0.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test0.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,361 @@ +#as: -m10 +#objdump: -drz +#name: q10test0 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 08 20 add r1,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 00 00 addi r1,r1,0x0 + c: 00 00 00 00 nop + 10: 24 21 00 00 addiu r1,r1,0x0 + 14: 00 00 00 00 nop + 18: 00 21 08 21 addu r1,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 08 29 ado16 r1,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 08 24 and r1,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 00 00 andi r1,r1,0x0 + 34: 00 00 00 00 nop + 38: b0 21 00 00 andoi r1,r1,0x0 + 3c: 00 00 00 00 nop + 40: bc 21 00 00 andoui r1,r1,0x0 + 44: 00 00 00 00 nop + 48: 3c 01 00 00 lui r1,0x0 + 4c: 00 00 00 00 nop + 50: 00 21 08 2d mrgb r1,r1,r1,0x0 + 54: 00 00 00 00 nop + 58: 00 21 08 27 nor r1,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 08 25 or r1,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 00 00 ori r1,r1,0x0 + 6c: 00 00 00 00 nop + 70: 3c 21 00 00 orui r1,r1,0x0 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 08 04 sllv r1,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 08 2a slt r1,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 00 00 slti r1,r1,0x0 + 94: 00 00 00 00 nop + 98: 2c 21 00 00 sltiu r1,r1,0x0 + 9c: 00 00 00 00 nop + a0: 00 21 08 2b sltu r1,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 08 07 srav r1,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 08 06 srlv r1,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 08 22 sub r1,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 08 23 subu r1,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 08 26 xor r1,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 00 00 xori r1,r1,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 08 05 srmv r1,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 08 01 slmv r1,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 01 08 00 ram r1,r1,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 70 20 ff bd bbi r1\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 78 20 ff bb bbin r1\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 74 21 ff b9 bbv r1,r1,0 <_start> + 11c: 00 00 00 00 nop + 120: 7c 21 ff b7 bbvn r1,r1,0 <_start> + 124: 00 00 00 00 nop + 128: f0 20 ff b5 bbil r1\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: f8 20 ff b3 bbinl r1\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f4 21 ff b1 bbvl r1,r1,0 <_start> + 13c: 00 00 00 00 nop + 140: fc 21 ff af bbvnl r1,r1,0 <_start> + 144: 00 00 00 00 nop + 148: 10 21 ff ad beq r1,r1,0 <_start> + 14c: 00 00 00 00 nop + 150: 50 21 ff ab beql r1,r1,0 <_start> + 154: 00 00 00 00 nop + 158: 04 21 ff a9 bgez r1,0 <_start> + 15c: 00 00 00 00 nop + 160: 04 35 ff a7 bgtzal r1,0 <_start> + 164: 00 00 00 00 nop + 168: 04 31 ff a5 bgezal r1,0 <_start> + 16c: 00 00 00 00 nop + 170: 04 37 ff a3 bgtzall r1,0 <_start> + 174: 00 00 00 00 nop + 178: 04 33 ff a1 bgezall r1,0 <_start> + 17c: 00 00 00 00 nop + 180: 04 23 ff 9f bgezl r1,0 <_start> + 184: 00 00 00 00 nop + 188: 04 27 ff 9d bgtzl r1,0 <_start> + 18c: 00 00 00 00 nop + 190: 04 25 ff 9b bgtz r1,0 <_start> + 194: 00 00 00 00 nop + 198: 04 24 ff 99 blez r1,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 04 34 ff 97 blezal r1,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 04 20 ff 95 bltz r1,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 04 30 ff 93 bltzal r1,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 04 26 ff 91 blezl r1,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 04 22 ff 8f bltzl r1,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 04 36 ff 8d blezall r1,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 04 32 ff 8b bltzall r1,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 18 21 ff 89 bmb r1,r1,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 58 21 ff 87 bmbl r1,r1,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 60 21 ff 85 bmb0 r1,r1,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 64 21 ff 83 bmb1 r1,r1,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 68 21 ff 81 bmb2 r1,r1,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6c 21 ff 7f bmb3 r1,r1,0 <_start> + 204: 00 00 00 00 nop + 208: 14 21 ff 7d bne r1,r1,0 <_start> + 20c: 00 00 00 00 nop + 210: 54 21 ff 7b bnel r1,r1,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 01 00 00 jal r1,0 <_start> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 00 00 lw r1,0x0\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 00 00 lh r1,0x0\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 00 00 lb r1,0x0\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 00 00 lhu r1,0x0\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 00 00 lbu r1,0x0\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 00 00 sb r1,0x0\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 00 00 sh r1,0x0\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 00 00 sw r1,0x0\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 21 08 08 rba r1,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 08 0a rbar r1,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 08 09 rbal r1,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 08 10 wba r1,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 08 12 wbac r1,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 08 11 wbau r1,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 0a 00 rbi r1,r1,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4c 21 09 00 rbir r1,r1,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4c 21 0b 00 rbil r1,r1,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4c 21 0e 00 wbi r1,r1,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4c 21 0d 00 wbic r1,r1,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4c 21 0f 00 wbiu r1,r1,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4c 21 08 28 pkrla r1,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 08 2b pkrlac r1,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 08 2a pkrlah r1,r1,r1 + 304: 00 00 00 00 nop + 308: 4c 21 08 29 pkrlau r1,r1,r1 + 30c: 00 00 00 00 nop + 310: 48 21 08 00 pkrli r1,r1,r1,0x0 + 314: 00 00 00 00 nop + 318: 48 21 0b 00 pkrlic r1,r1,r1,0x0 + 31c: 00 00 00 00 nop + 320: 48 21 0a 00 pkrlih r1,r1,r1,0x0 + 324: 00 00 00 00 nop + 328: 48 21 09 00 pkrliu r1,r1,r1,0x0 + 32c: 00 00 00 00 nop + 330: 4c 01 08 01 lock r1,r1 + 334: 00 00 00 00 nop + 338: 4c 01 08 03 unlk r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 21 08 06 swwr r1,r1,r1 + 344: 00 00 00 00 nop + 348: 4c 21 08 07 swwru r1,r1,r1 + 34c: 00 00 00 00 nop + 350: 4c 01 08 04 swrd r1,r1 + 354: 00 00 00 00 nop + 358: 4c 01 08 05 swrdl r1,r1 + 35c: 00 00 00 00 nop + 360: 4c 02 10 0c dwrd r2,r2 + 364: 00 00 00 00 nop + 368: 4c 02 10 0d dwrdl r2,r2 + 36c: 00 00 00 00 nop + 370: 4c 01 0c 00 cam36 r1,r1,0x0,0x0 + 374: 00 00 00 00 nop + 378: 4c 01 0c 40 cam72 r1,r1,0x0,0x0 + 37c: 00 00 00 00 nop + 380: 4c 01 0c 80 cam144 r1,r1,0x0,0x0 + 384: 00 00 00 00 nop + 388: 4c 01 0c c0 cam288 r1,r1,0x0,0x0 + 38c: 00 00 00 00 nop + 390: 4c 21 08 ab cm32and r1,r1,r1 + 394: 00 00 00 00 nop + 398: 4c 21 08 a3 cm32andn r1,r1,r1 + 39c: 00 00 00 00 nop + 3a0: 4c 21 08 aa cm32or r1,r1,r1 + 3a4: 00 00 00 00 nop + 3a8: 4c 21 08 b0 cm32ra r1,r1,r1 + 3ac: 00 00 00 00 nop + 3b0: 4c 01 08 a1 cm32rd r1,r1 + 3b4: 00 00 00 00 nop + 3b8: 4c 01 08 a4 cm32ri r1,r1 + 3bc: 00 00 00 00 nop + 3c0: 4c 21 08 a0 cm32rs r1,r1,r1 + 3c4: 00 00 00 00 nop + 3c8: 4c 21 08 b8 cm32sa r1,r1,r1 + 3cc: 00 00 00 00 nop + 3d0: 4c 01 08 a9 cm32sd r1,r1 + 3d4: 00 00 00 00 nop + 3d8: 4c 01 08 ac cm32si r1,r1 + 3dc: 00 00 00 00 nop + 3e0: 4c 21 08 a8 cm32ss r1,r1,r1 + 3e4: 00 00 00 00 nop + 3e8: 4c 21 08 a2 cm32xor r1,r1,r1 + 3ec: 00 00 00 00 nop + 3f0: 4c 02 10 85 cm64clr r2,r2 + 3f4: 00 00 00 00 nop + 3f8: 4c 42 10 90 cm64ra r2,r2,r2 + 3fc: 00 00 00 00 nop + 400: 4c 02 10 81 cm64rd r2,r2 + 404: 00 00 00 00 nop + 408: 4c 02 10 84 cm64ri r2,r2 + 40c: 00 00 00 00 nop + 410: 4c 42 10 94 cm64ria2 r2,r2,r2 + 414: 00 00 00 00 nop + 418: 4c 42 10 80 cm64rs r2,r2,r2 + 41c: 00 00 00 00 nop + 420: 4c 42 10 98 cm64sa r2,r2,r2 + 424: 00 00 00 00 nop + 428: 4c 02 10 89 cm64sd r2,r2 + 42c: 00 00 00 00 nop + 430: 4c 02 10 8c cm64si r2,r2 + 434: 00 00 00 00 nop + 438: 4c 42 10 9c cm64sia2 r2,r2,r2 + 43c: 00 00 00 00 nop + 440: 4c 42 10 88 cm64ss r2,r2,r2 + 444: 00 00 00 00 nop + 448: 4c 42 10 95 cm128ria2 r2,r2,r2 + 44c: 00 00 00 00 nop + 450: 4c 42 10 90 cm64ra r2,r2,r2 + 454: 00 00 00 00 nop + 458: 4c 42 10 91 cm128ria3 r2,r2,r2,0x1 + 45c: 00 00 00 00 nop + 460: 4c 42 10 92 cm128ria3 r2,r2,r2,0x2 + 464: 00 00 00 00 nop + 468: 4c 42 10 93 cm128ria3 r2,r2,r2,0x3 + 46c: 00 00 00 00 nop + 470: 4c 42 10 b0 cm32ra r2,r2,r2 + 474: 00 00 00 00 nop + 478: 4c 42 10 b1 cm128ria4 r2,r2,r2,0x1 + 47c: 00 00 00 00 nop + 480: 4c 42 10 b2 cm128ria4 r2,r2,r2,0x2 + 484: 00 00 00 00 nop + 488: 4c 42 10 b3 cm128ria4 r2,r2,r2,0x3 + 48c: 00 00 00 00 nop + 490: 4c 42 10 b4 cm128ria4 r2,r2,r2,0x4 + 494: 00 00 00 00 nop + 498: 4c 42 10 b5 cm128ria4 r2,r2,r2,0x5 + 49c: 00 00 00 00 nop + 4a0: 4c 42 10 b6 cm128ria4 r2,r2,r2,0x6 + 4a4: 00 00 00 00 nop + 4a8: 4c 42 10 b7 cm128ria4 r2,r2,r2,0x7 + 4ac: 00 00 00 00 nop + 4b0: 4c 42 10 9d cm128sia2 r2,r2,r2 + 4b4: 00 00 00 00 nop + 4b8: 4c 42 10 98 cm64sa r2,r2,r2 + 4bc: 00 00 00 00 nop + 4c0: 4c 42 10 99 cm128sia3 r2,r2,r2,0x1 + 4c4: 00 00 00 00 nop + 4c8: 4c 42 10 9a cm128sia3 r2,r2,r2,0x2 + 4cc: 00 00 00 00 nop + 4d0: 4c 42 10 9b cm128sia3 r2,r2,r2,0x3 + 4d4: 00 00 00 00 nop + 4d8: 4c 21 08 b8 cm32sa r1,r1,r1 + 4dc: 00 00 00 00 nop + 4e0: 4c 21 08 b9 cm128sia4 r1,r1,r1,0x1 + 4e4: 00 00 00 00 nop + 4e8: 4c 21 08 ba cm128sia4 r1,r1,r1,0x2 + 4ec: 00 00 00 00 nop + 4f0: 4c 21 08 bb cm128sia4 r1,r1,r1,0x3 + 4f4: 00 00 00 00 nop + 4f8: 4c 21 08 bc cm128sia4 r1,r1,r1,0x4 + 4fc: 00 00 00 00 nop + 500: 4c 21 08 bd cm128sia4 r1,r1,r1,0x5 + 504: 00 00 00 00 nop + 508: 4c 21 08 be cm128sia4 r1,r1,r1,0x6 + 50c: 00 00 00 00 nop + 510: 4c 21 08 bf cm128sia4 r1,r1,r1,0x7 + 514: 00 00 00 00 nop + 518: 4c 21 08 a6 cm128vsa r1,r1,r1 + 51c: 00 00 00 00 nop + 520: 4c 21 08 14 crc32 r1,r1,r1 + 524: 00 00 00 00 nop + 528: 4c 21 08 15 crc32b r1,r1,r1 + 52c: 00 00 00 00 nop + 530: 4c 20 08 26 chkhdr r1,r1 + 534: 00 00 00 00 nop + 538: 4c 00 08 24 avail r1 + 53c: 00 00 00 00 nop + 540: 4c 20 08 25 free r1,r1 + 544: 00 00 00 00 nop + 548: 00 00 00 0e yield + 54c: 00 00 00 00 nop + 550: 4c 20 08 27 tstod r1,r1 + 554: 00 00 00 00 nop + 558: 4c 00 08 2c cmphdr r1 + 55c: 00 00 00 00 nop + 560: 4c 01 08 20 mcid r1,r1 + 564: 00 00 00 00 nop + 568: 4c 00 08 22 dba r1 + 56c: 00 00 00 00 nop + 570: 4c 01 08 21 dbd r1,r0,r1 + 574: 00 00 00 00 nop + 578: 4c 20 08 23 dpwt r1,r1 + 57c: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test0.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test0.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test0.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test0.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,354 @@ +.global _start +_start: + ADD %1,%1,%1 + NOP + ADDI %1,%1,0 + NOP + ADDIU %1,%1,0 + NOP + ADDU %1,%1,%1 + NOP + ADO16 %1,%1,%1 + NOP + AND %1,%1,%1 + NOP + ANDI %1,%1,0 + NOP + ANDOI %1,%1,0 + NOP + ANDOUI %1,%1,0 + NOP + LUI %1,0 + NOP + MRGB %1,%1,%1,0 + NOP + NOR %1,%1,%1 + NOP + OR %1,%1,%1 + NOP + ORI %1,%1,0 + NOP + ORUI %1,%1,0 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%1 + NOP + SLT %1,%1,%1 + NOP + SLTI %1,%1,0 + NOP + SLTIU %1,%1,0 + NOP + SLTU %1,%1,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%1 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%1 + NOP + SUB %1,%1,%1 + NOP + SUBU %1,%1,%1 + NOP + XOR %1,%1,%1 + NOP + XORI %1,%1,0 + NOP + NOP + NOP + SRMV %1,%1,%1,0 + NOP + SLMV %1,%1,%1,0 + NOP + RAM %1,%1,0,0,0 + NOP + BBI %1(0),_start + NOP + BBIN %1(0),_start + NOP + BBV %1,%1,_start + NOP + BBVN %1,%1,_start + NOP + BBIL %1(0),_start + NOP + BBINL %1(0),_start + NOP + BBVL %1,%1,_start + NOP + BBVNL %1,%1,_start + NOP + BEQ %1,%1,_start + NOP + BEQL %1,%1,_start + NOP + BGEZ %1,_start + NOP + BGTZAL %1,_start + NOP + BGEZAL %1,_start + NOP + BGTZALL %1,_start + NOP + BGEZALL %1,_start + NOP + BGEZL %1,_start + NOP + BGTZL %1,_start + NOP + BGTZ %1,_start + NOP + BLEZ %1,_start + NOP + BLEZAL %1,_start + NOP + BLTZ %1,_start + NOP + BLTZAL %1,_start + NOP + BLEZL %1,_start + NOP + BLTZL %1,_start + NOP + BLEZALL %1,_start + NOP + BLTZALL %1,_start + NOP + BMB %1,%1,_start + NOP + BMBL %1,%1,_start + NOP + BMB0 %1,%1,_start + NOP + BMB1 %1,%1,_start + NOP + BMB2 %1,%1,_start + NOP + BMB3 %1,%1,_start + NOP + BNE %1,%1,_start + NOP + BNEL %1,%1,_start + NOP + J 0 + NOP + JAL %1,0 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %1,%1 + NOP + LW %1,0(%1) + NOP + LH %1,0(%1) + NOP + LB %1,0(%1) + NOP + LHU %1,0(%1) + NOP + LBU %1,0(%1) + NOP + SB %1,0(%1) + NOP + SH %1,0(%1) + NOP + SW %1,0(%1) + NOP + RBA %1,%1,%1 + NOP + RBAR %1,%1,%1 + NOP + RBAL %1,%1,%1 + NOP + WBA %1,%1,%1 + NOP + WBAC %1,%1,%1 + NOP + WBAU %1,%1,%1 + NOP + RBI %1,%1,%1,0 + NOP + RBIR %1,%1,%1,0 + NOP + RBIL %1,%1,%1,0 + NOP + WBI %1,%1,%1,0 + NOP + WBIC %1,%1,%1,0 + NOP + WBIU %1,%1,%1,0 + NOP + PKRLA %1,%1,%1 + NOP + PKRLAC %1,%1,%1 + NOP + PKRLAH %1,%1,%1 + NOP + PKRLAU %1,%1,%1 + NOP + PKRLI %1,%1,%1,0 + NOP + PKRLIC %1,%1,%1,0 + NOP + PKRLIH %1,%1,%1,0 + NOP + PKRLIU %1,%1,%1,0 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %1,%1,%1 + NOP + SWWRU %1,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP + DWRD %2,%2 + NOP + DWRDL %2,%2 + NOP + CAM36 %1,%1,0,0 + NOP + CAM72 %1,%1,0,0 + NOP + CAM144 %1,%1,0,0 + NOP + CAM288 %1,%1,0,0 + NOP + CM32AND %1,%1,%1 + NOP + CM32ANDN %1,%1,%1 + NOP + CM32OR %1,%1,%1 + NOP + CM32RA %1,%1,%1 + NOP + CM32RD %1,%1 + NOP + CM32RI %1,%1 + NOP + CM32RS %1,%1,%1 + NOP + CM32SA %1,%1,%1 + NOP + CM32SD %1,%1 + NOP + CM32SI %1,%1 + NOP + CM32SS %1,%1,%1 + NOP + CM32XOR %1,%1,%1 + NOP + CM64CLR %2,%2 + NOP + CM64RA %2,%2,%2 + NOP + CM64RD %2,%2 + NOP + CM64RI %2,%2 + NOP + CM64RIA2 %2,%2,%2 + NOP + CM64RS %2,%2,%2 + NOP + CM64SA %2,%2,%2 + NOP + CM64SD %2,%2 + NOP + CM64SI %2,%2 + NOP + CM64SIA2 %2,%2,%2 + NOP + CM64SS %2,%2,%2 + NOP + CM128RIA2 %2,%2,%2 + NOP + CM128RIA3 %2,%2,%2,0 + NOP + CM128RIA3 %2,%2,%2,1 + NOP + CM128RIA3 %2,%2,%2,2 + NOP + CM128RIA3 %2,%2,%2,3 + NOP + CM128RIA4 %2,%2,%2,0 + NOP + CM128RIA4 %2,%2,%2,1 + NOP + CM128RIA4 %2,%2,%2,2 + NOP + CM128RIA4 %2,%2,%2,3 + NOP + CM128RIA4 %2,%2,%2,4 + NOP + CM128RIA4 %2,%2,%2,5 + NOP + CM128RIA4 %2,%2,%2,6 + NOP + CM128RIA4 %2,%2,%2,7 + NOP + CM128SIA2 %2,%2,%2 + NOP + CM128SIA3 %2,%2,%2,0 + NOP + CM128SIA3 %2,%2,%2,1 + NOP + CM128SIA3 %2,%2,%2,2 + NOP + CM128SIA3 %2,%2,%2,3 + NOP + CM128SIA4 %1,%1,%1,0 + NOP + CM128SIA4 %1,%1,%1,1 + NOP + CM128SIA4 %1,%1,%1,2 + NOP + CM128SIA4 %1,%1,%1,3 + NOP + CM128SIA4 %1,%1,%1,4 + NOP + CM128SIA4 %1,%1,%1,5 + NOP + CM128SIA4 %1,%1,%1,6 + NOP + CM128SIA4 %1,%1,%1,7 + NOP + CM128VSA %1,%1,%1 + NOP + CRC32 %1,%1,%1 + NOP + CRC32B %1,%1,%1 + NOP + CHKHDR %1,%1 + NOP + AVAIL %1 + NOP + FREE %1,%1 + NOP + YIELD + NOP + TSTOD %1,%1 + NOP + CMPHDR %1 + NOP + MCID %1,%1 + NOP + DBA %1 + NOP + DBD %1,%1 + NOP + DPWT %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test1.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test1.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test1.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,317 @@ +#as: -m10 +#objdump: -drz +#name: q10test1 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 03 e1 08 20 add r1,r31,r1 + 4: 00 00 00 00 nop + 8: 23 e1 00 00 addi r1,r31,0x0 + c: 00 00 00 00 nop + 10: 27 e1 00 00 addiu r1,r31,0x0 + 14: 00 00 00 00 nop + 18: 03 e1 08 21 addu r1,r31,r1 + 1c: 00 00 00 00 nop + 20: 03 e1 08 29 ado16 r1,r31,r1 + 24: 00 00 00 00 nop + 28: 03 e1 08 24 and r1,r31,r1 + 2c: 00 00 00 00 nop + 30: 33 e1 00 00 andi r1,r31,0x0 + 34: 00 00 00 00 nop + 38: b3 e1 00 00 andoi r1,r31,0x0 + 3c: 00 00 00 00 nop + 40: bf e1 00 00 andoui r1,r31,0x0 + 44: 00 00 00 00 nop + 48: 3c 01 00 00 lui r1,0x0 + 4c: 00 00 00 00 nop + 50: 03 e1 08 2d mrgb r1,r31,r1,0x0 + 54: 00 00 00 00 nop + 58: 03 e1 08 27 nor r1,r31,r1 + 5c: 00 00 00 00 nop + 60: 03 e1 08 25 or r1,r31,r1 + 64: 00 00 00 00 nop + 68: 37 e1 00 00 ori r1,r31,0x0 + 6c: 00 00 00 00 nop + 70: 3f e1 00 00 orui r1,r31,0x0 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 03 e1 08 04 sllv r1,r1,r31 + 84: 00 00 00 00 nop + 88: 03 e1 08 2a slt r1,r31,r1 + 8c: 00 00 00 00 nop + 90: 2b e1 00 00 slti r1,r31,0x0 + 94: 00 00 00 00 nop + 98: 2f e1 00 00 sltiu r1,r31,0x0 + 9c: 00 00 00 00 nop + a0: 03 e1 08 2b sltu r1,r31,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 03 e1 08 07 srav r1,r1,r31 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 03 e1 08 06 srlv r1,r1,r31 + c4: 00 00 00 00 nop + c8: 03 e1 08 22 sub r1,r31,r1 + cc: 00 00 00 00 nop + d0: 03 e1 08 23 subu r1,r31,r1 + d4: 00 00 00 00 nop + d8: 03 e1 08 26 xor r1,r31,r1 + dc: 00 00 00 00 nop + e0: 3b e1 00 00 xori r1,r31,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 3f 08 05 srmv r1,r31,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 3f 08 01 slmv r1,r31,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 01 08 00 ram r1,r1,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 73 e0 ff bd bbi r31\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 7b e0 ff bb bbin r31\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 77 e1 ff b9 bbv r31,r1,0 <_start> + 11c: 00 00 00 00 nop + 120: 7f e1 ff b7 bbvn r31,r1,0 <_start> + 124: 00 00 00 00 nop + 128: f3 e0 ff b5 bbil r31\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: fb e0 ff b3 bbinl r31\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f7 e1 ff b1 bbvl r31,r1,0 <_start> + 13c: 00 00 00 00 nop + 140: ff e1 ff af bbvnl r31,r1,0 <_start> + 144: 00 00 00 00 nop + 148: 13 e1 ff ad beq r31,r1,0 <_start> + 14c: 00 00 00 00 nop + 150: 53 e1 ff ab beql r31,r1,0 <_start> + 154: 00 00 00 00 nop + 158: 07 e1 ff a9 bgez r31,0 <_start> + 15c: 00 00 00 00 nop + 160: 07 f5 ff a7 bgtzal r31,0 <_start> + 164: 00 00 00 00 nop + 168: 07 f1 ff a5 bgezal r31,0 <_start> + 16c: 00 00 00 00 nop + 170: 07 f7 ff a3 bgtzall r31,0 <_start> + 174: 00 00 00 00 nop + 178: 07 f3 ff a1 bgezall r31,0 <_start> + 17c: 00 00 00 00 nop + 180: 07 e3 ff 9f bgezl r31,0 <_start> + 184: 00 00 00 00 nop + 188: 07 e7 ff 9d bgtzl r31,0 <_start> + 18c: 00 00 00 00 nop + 190: 07 e5 ff 9b bgtz r31,0 <_start> + 194: 00 00 00 00 nop + 198: 07 e4 ff 99 blez r31,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 07 f4 ff 97 blezal r31,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 07 e0 ff 95 bltz r31,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 07 f0 ff 93 bltzal r31,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 07 e6 ff 91 blezl r31,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 07 e2 ff 8f bltzl r31,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 07 f6 ff 8d blezall r31,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 07 f2 ff 8b bltzall r31,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 1b e1 ff 89 bmb r31,r1,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 5b e1 ff 87 bmbl r31,r1,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 63 e1 ff 85 bmb0 r31,r1,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 67 e1 ff 83 bmb1 r31,r1,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 6b e1 ff 81 bmb2 r31,r1,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6f e1 ff 7f bmb3 r31,r1,0 <_start> + 204: 00 00 00 00 nop + 208: 17 e1 ff 7d bne r31,r1,0 <_start> + 20c: 00 00 00 00 nop + 210: 57 e1 ff 7b bnel r31,r1,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 1f 00 00 jal 0 <_start> + 224: 00 00 00 00 nop + 228: 03 e0 08 09 jalr r1,r31 + 22c: 00 00 00 00 nop + 230: 03 e0 00 08 jr r31 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4f e1 00 02 ctc r31,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8f e1 00 00 lw r1,0x0\(r31\) + 254: 00 00 00 00 nop + 258: 87 e1 00 00 lh r1,0x0\(r31\) + 25c: 00 00 00 00 nop + 260: 83 e1 00 00 lb r1,0x0\(r31\) + 264: 00 00 00 00 nop + 268: 97 e1 00 00 lhu r1,0x0\(r31\) + 26c: 00 00 00 00 nop + 270: 93 e1 00 00 lbu r1,0x0\(r31\) + 274: 00 00 00 00 nop + 278: a3 e1 00 00 sb r1,0x0\(r31\) + 27c: 00 00 00 00 nop + 280: a7 e1 00 00 sh r1,0x0\(r31\) + 284: 00 00 00 00 nop + 288: af e1 00 00 sw r1,0x0\(r31\) + 28c: 00 00 00 00 nop + 290: 4c 21 f8 08 rba r31,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 f8 0a rbar r31,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 f8 09 rbal r31,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 f8 10 wba r31,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 f8 12 wbac r31,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 f8 11 wbau r31,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 fa 00 rbi r31,r1,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4c 21 f9 00 rbir r31,r1,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4c 21 fb 00 rbil r31,r1,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4c 21 fe 00 wbi r31,r1,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4c 21 fd 00 wbic r31,r1,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4c 21 ff 00 wbiu r31,r1,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4c 21 f8 28 pkrla r31,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 f8 2a pkrlah r31,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 f8 29 pkrlau r31,r1,r1 + 304: 00 00 00 00 nop + 308: 48 21 f8 00 pkrli r31,r1,r1,0x0 + 30c: 00 00 00 00 nop + 310: 48 21 fa 00 pkrlih r31,r1,r1,0x0 + 314: 00 00 00 00 nop + 318: 48 21 f9 00 pkrliu r31,r1,r1,0x0 + 31c: 00 00 00 00 nop + 320: 4c 01 08 01 lock r1,r1 + 324: 00 00 00 00 nop + 328: 4c 01 08 03 unlk r1,r1 + 32c: 00 00 00 00 nop + 330: 4c 21 f8 06 swwr r31,r1,r1 + 334: 00 00 00 00 nop + 338: 4c 21 f8 07 swwru r31,r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 01 08 04 swrd r1,r1 + 344: 00 00 00 00 nop + 348: 4c 01 08 05 swrdl r1,r1 + 34c: 00 00 00 00 nop + 350: 4c 02 10 0c dwrd r2,r2 + 354: 00 00 00 00 nop + 358: 4c 02 10 0d dwrdl r2,r2 + 35c: 00 00 00 00 nop + 360: 4c 1f 0c 08 cam36 r1,r31,0x1,0x0 + 364: 00 00 00 00 nop + 368: 4c 1f 0c 41 cam72 r1,r31,0x1,0x0 + 36c: 00 00 00 00 nop + 370: 4c 1f 0c 81 cam144 r1,r31,0x1,0x0 + 374: 00 00 00 00 nop + 378: 4c 1f 0c c1 cam288 r1,r31,0x1,0x0 + 37c: 00 00 00 00 nop + 380: 4f e1 08 ab cm32and r1,r31,r1 + 384: 00 00 00 00 nop + 388: 4f e1 08 a3 cm32andn r1,r31,r1 + 38c: 00 00 00 00 nop + 390: 4f e1 08 aa cm32or r1,r31,r1 + 394: 00 00 00 00 nop + 398: 4f e1 08 b0 cm32ra r1,r31,r1 + 39c: 00 00 00 00 nop + 3a0: 4c 01 08 a1 cm32rd r1,r1 + 3a4: 00 00 00 00 nop + 3a8: 4c 01 08 a4 cm32ri r1,r1 + 3ac: 00 00 00 00 nop + 3b0: 4f e1 08 a0 cm32rs r1,r31,r1 + 3b4: 00 00 00 00 nop + 3b8: 4f e1 08 b8 cm32sa r1,r31,r1 + 3bc: 00 00 00 00 nop + 3c0: 4c 01 08 a9 cm32sd r1,r1 + 3c4: 00 00 00 00 nop + 3c8: 4c 01 08 ac cm32si r1,r1 + 3cc: 00 00 00 00 nop + 3d0: 4f e1 08 a8 cm32ss r1,r31,r1 + 3d4: 00 00 00 00 nop + 3d8: 4f e1 08 a2 cm32xor r1,r31,r1 + 3dc: 00 00 00 00 nop + 3e0: 4c 02 10 85 cm64clr r2,r2 + 3e4: 00 00 00 00 nop + 3e8: 4f e2 10 90 cm64ra r2,r31,r2 + 3ec: 00 00 00 00 nop + 3f0: 4c 02 10 81 cm64rd r2,r2 + 3f4: 00 00 00 00 nop + 3f8: 4c 02 10 84 cm64ri r2,r2 + 3fc: 00 00 00 00 nop + 400: 4f e2 10 94 cm64ria2 r2,r31,r2 + 404: 00 00 00 00 nop + 408: 4f e2 10 80 cm64rs r2,r31,r2 + 40c: 00 00 00 00 nop + 410: 4f e2 10 98 cm64sa r2,r31,r2 + 414: 00 00 00 00 nop + 418: 4c 02 10 89 cm64sd r2,r2 + 41c: 00 00 00 00 nop + 420: 4c 02 10 8c cm64si r2,r2 + 424: 00 00 00 00 nop + 428: 4f e2 10 9c cm64sia2 r2,r31,r2 + 42c: 00 00 00 00 nop + 430: 4f e2 10 88 cm64ss r2,r31,r2 + 434: 00 00 00 00 nop + 438: 4f e2 10 95 cm128ria2 r2,r31,r2 + 43c: 00 00 00 00 nop + 440: 4f e2 10 90 cm64ra r2,r31,r2 + 444: 00 00 00 00 nop + 448: 4f e2 10 b1 cm128ria4 r2,r31,r2,0x1 + 44c: 00 00 00 00 nop + 450: 4f e2 10 9d cm128sia2 r2,r31,r2 + 454: 00 00 00 00 nop + 458: 4f e2 10 98 cm64sa r2,r31,r2 + 45c: 00 00 00 00 nop + 460: 4f e1 08 b8 cm32sa r1,r31,r1 + 464: 00 00 00 00 nop + 468: 4f e1 08 a6 cm128vsa r1,r31,r1 + 46c: 00 00 00 00 nop + 470: 4f e1 08 14 crc32 r1,r31,r1 + 474: 00 00 00 00 nop + 478: 4f e1 08 15 crc32b r1,r31,r1 + 47c: 00 00 00 00 nop + 480: 4c 20 08 26 chkhdr r1,r1 + 484: 00 00 00 00 nop + 488: 4c 00 08 24 avail r1 + 48c: 00 00 00 00 nop + 490: 4c 20 08 25 free r1,r1 + 494: 00 00 00 00 nop + 498: 4f e0 08 27 tstod r1,r31 + 49c: 00 00 00 00 nop + 4a0: 00 00 00 0e yield + 4a4: 00 00 00 00 nop + 4a8: 4c 00 08 2c cmphdr r1 + 4ac: 00 00 00 00 nop + 4b0: 4c 01 08 20 mcid r1,r1 + 4b4: 00 00 00 00 nop + 4b8: 4c 00 f8 22 dba r31 + 4bc: 00 00 00 00 nop + 4c0: 4c 01 08 21 dbd r1,r0,r1 + 4c4: 00 00 00 00 nop + 4c8: 4c 20 08 23 dpwt r1,r1 + 4cc: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test1.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test1.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test1.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,310 @@ +.global _start +_start: + ADD %1,%31,%1 + NOP + ADDI %1,%31,0 + NOP + ADDIU %1,%31,0 + NOP + ADDU %1,%31,%1 + NOP + ADO16 %1,%31,%1 + NOP + AND %1,%31,%1 + NOP + ANDI %1,%31,0 + NOP + ANDOI %1,%31,0 + NOP + ANDOUI %1,%31,0 + NOP + LUI %1,0 + NOP + MRGB %1,%31,%1,0 + NOP + NOR %1,%31,%1 + NOP + OR %1,%31,%1 + NOP + ORI %1,%31,0 + NOP + ORUI %1,%31,0 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%31 + NOP + SLT %1,%31,%1 + NOP + SLTI %1,%31,0 + NOP + SLTIU %1,%31,0 + NOP + SLTU %1,%31,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%31 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%31 + NOP + SUB %1,%31,%1 + NOP + SUBU %1,%31,%1 + NOP + XOR %1,%31,%1 + NOP + XORI %1,%31,0 + NOP + NOP + NOP + SRMV %1,%31,%1,0 + NOP + SLMV %1,%31,%1,0 + NOP + RAM %1,%1,0,0,0 + NOP + BBI %31(0),_start + NOP + BBIN %31(0),_start + NOP + BBV %31,%1,_start + NOP + BBVN %31,%1,_start + NOP + BBIL %31(0),_start + NOP + BBINL %31(0),_start + NOP + BBVL %31,%1,_start + NOP + BBVNL %31,%1,_start + NOP + BEQ %31,%1,_start + NOP + BEQL %31,%1,_start + NOP + BGEZ %31,_start + NOP + BGTZAL %31,_start + NOP + BGEZAL %31,_start + NOP + BGTZALL %31,_start + NOP + BGEZALL %31,_start + NOP + BGEZL %31,_start + NOP + BGTZL %31,_start + NOP + BGTZ %31,_start + NOP + BLEZ %31,_start + NOP + BLEZAL %31,_start + NOP + BLTZ %31,_start + NOP + BLTZAL %31,_start + NOP + BLEZL %31,_start + NOP + BLTZL %31,_start + NOP + BLEZALL %31,_start + NOP + BLTZALL %31,_start + NOP + BMB %31,%1,_start + NOP + BMBL %31,%1,_start + NOP + BMB0 %31,%1,_start + NOP + BMB1 %31,%1,_start + NOP + BMB2 %31,%1,_start + NOP + BMB3 %31,%1,_start + NOP + BNE %31,%1,_start + NOP + BNEL %31,%1,_start + NOP + J 0 + NOP + JAL %31,0 + NOP + JALR %1,%31 + NOP + JR %31 + NOP + BREAK + NOP + CTC %31,%1 + NOP + CFC %1,%1 + NOP + LW %1,0(%31) + NOP + LH %1,0(%31) + NOP + LB %1,0(%31) + NOP + LHU %1,0(%31) + NOP + LBU %1,0(%31) + NOP + SB %1,0(%31) + NOP + SH %1,0(%31) + NOP + SW %1,0(%31) + NOP + RBA %31,%1,%1 + NOP + RBAR %31,%1,%1 + NOP + RBAL %31,%1,%1 + NOP + WBA %31,%1,%1 + NOP + WBAC %31,%1,%1 + NOP + WBAU %31,%1,%1 + NOP + RBI %31,%1,%1,0 + NOP + RBIR %31,%1,%1,0 + NOP + RBIL %31,%1,%1,0 + NOP + WBI %31,%1,%1,0 + NOP + WBIC %31,%1,%1,0 + NOP + WBIU %31,%1,%1,0 + NOP + PKRLA %31,%1,%1 + NOP + PKRLAH %31,%1,%1 + NOP + PKRLAU %31,%1,%1 + NOP + PKRLI %31,%1,%1,0 + NOP + PKRLIH %31,%1,%1,0 + NOP + PKRLIU %31,%1,%1,0 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %31,%1,%1 + NOP + SWWRU %31,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP + DWRD %2,%2 + NOP + DWRDL %2,%2 + NOP + CAM36 %1,%31,1,0 + NOP + CAM72 %1,%31,1,0 + NOP + CAM144 %1,%31,1,0 + NOP + CAM288 %1,%31,1,0 + NOP + CM32AND %1,%31,%1 + NOP + CM32ANDN %1,%31,%1 + NOP + CM32OR %1,%31,%1 + NOP + CM32RA %1,%31,%1 + NOP + CM32RD %1,%1 + NOP + CM32RI %1,%1 + NOP + CM32RS %1,%31,%1 + NOP + CM32SA %1,%31,%1 + NOP + CM32SD %1,%1 + NOP + CM32SI %1,%1 + NOP + CM32SS %1,%31,%1 + NOP + CM32XOR %1,%31,%1 + NOP + CM64CLR %2,%2 + NOP + CM64RA %2,%31,%2 + NOP + CM64RD %2,%2 + NOP + CM64RI %2,%2 + NOP + CM64RIA2 %2,%31,%2 + NOP + CM64RS %2,%31,%2 + NOP + CM64SA %2,%31,%2 + NOP + CM64SD %2,%2 + NOP + CM64SI %2,%2 + NOP + CM64SIA2 %2,%31,%2 + NOP + CM64SS %2,%31,%2 + NOP + CM128RIA2 %2,%31,%2 + NOP + CM128RIA3 %2,%31,%2,0 + NOP + CM128RIA4 %2,%31,%2,1 + NOP + CM128SIA2 %2,%31,%2 + NOP + CM128SIA3 %2,%31,%2,0 + NOP + CM128SIA4 %1,%31,%1,0 + NOP + CM128VSA %1,%31,%1 + NOP + CRC32 %1,%31,%1 + NOP + CRC32B %1,%31,%1 + NOP + CHKHDR %1,%1 + NOP + AVAIL %1 + NOP + FREE %1,%1 + NOP + TSTOD %1,%31 + NOP + YIELD + NOP + CMPHDR %1 + NOP + MCID %1,%1 + NOP + DBA %31 + NOP + DBD %1,%1 + NOP + DPWT %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test10.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test10.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test10.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test10.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,301 @@ +#as: -m10 +#objdump: -drz +#name: q10test10 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 08 20 add r1,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 00 00 addi r1,r1,0x0 + c: 00 00 00 00 nop + 10: 24 21 00 00 addiu r1,r1,0x0 + 14: 00 00 00 00 nop + 18: 00 21 08 21 addu r1,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 08 29 ado16 r1,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 08 24 and r1,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 00 00 andi r1,r1,0x0 + 34: 00 00 00 00 nop + 38: b0 21 00 00 andoi r1,r1,0x0 + 3c: 00 00 00 00 nop + 40: bc 21 00 00 andoui r1,r1,0x0 + 44: 00 00 00 00 nop + 48: 3c 01 00 00 lui r1,0x0 + 4c: 00 00 00 00 nop + 50: 00 21 0f ed mrgb r1,r1,r1,0x1f + 54: 00 00 00 00 nop + 58: 00 21 08 27 nor r1,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 08 25 or r1,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 00 00 ori r1,r1,0x0 + 6c: 00 00 00 00 nop + 70: 3c 21 00 00 orui r1,r1,0x0 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 08 04 sllv r1,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 08 2a slt r1,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 00 00 slti r1,r1,0x0 + 94: 00 00 00 00 nop + 98: 2c 21 00 00 sltiu r1,r1,0x0 + 9c: 00 00 00 00 nop + a0: 00 21 08 2b sltu r1,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 08 07 srav r1,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 08 06 srlv r1,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 08 22 sub r1,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 08 23 subu r1,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 08 26 xor r1,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 00 00 xori r1,r1,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 08 05 srmv r1,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 08 01 slmv r1,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 21 08 01 ram r1,r1,0x0,0x1,0x1 + 104: 00 00 00 00 nop + 108: 70 20 ff bd bbi r1\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 78 20 ff bb bbin r1\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 74 21 ff b9 bbv r1,r1,0 <_start> + 11c: 00 00 00 00 nop + 120: 7c 21 ff b7 bbvn r1,r1,0 <_start> + 124: 00 00 00 00 nop + 128: f0 20 ff b5 bbil r1\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: f8 20 ff b3 bbinl r1\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f4 21 ff b1 bbvl r1,r1,0 <_start> + 13c: 00 00 00 00 nop + 140: fc 21 ff af bbvnl r1,r1,0 <_start> + 144: 00 00 00 00 nop + 148: 10 21 ff ad beq r1,r1,0 <_start> + 14c: 00 00 00 00 nop + 150: 50 21 ff ab beql r1,r1,0 <_start> + 154: 00 00 00 00 nop + 158: 04 21 ff a9 bgez r1,0 <_start> + 15c: 00 00 00 00 nop + 160: 04 35 ff a7 bgtzal r1,0 <_start> + 164: 00 00 00 00 nop + 168: 04 31 ff a5 bgezal r1,0 <_start> + 16c: 00 00 00 00 nop + 170: 04 37 ff a3 bgtzall r1,0 <_start> + 174: 00 00 00 00 nop + 178: 04 33 ff a1 bgezall r1,0 <_start> + 17c: 00 00 00 00 nop + 180: 04 23 ff 9f bgezl r1,0 <_start> + 184: 00 00 00 00 nop + 188: 04 27 ff 9d bgtzl r1,0 <_start> + 18c: 00 00 00 00 nop + 190: 04 25 ff 9b bgtz r1,0 <_start> + 194: 00 00 00 00 nop + 198: 04 24 ff 99 blez r1,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 04 34 ff 97 blezal r1,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 04 20 ff 95 bltz r1,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 04 30 ff 93 bltzal r1,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 04 26 ff 91 blezl r1,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 04 22 ff 8f bltzl r1,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 04 36 ff 8d blezall r1,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 04 32 ff 8b bltzall r1,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 18 21 ff 89 bmb r1,r1,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 58 21 ff 87 bmbl r1,r1,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 60 21 ff 85 bmb0 r1,r1,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 64 21 ff 83 bmb1 r1,r1,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 68 21 ff 81 bmb2 r1,r1,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6c 21 ff 7f bmb3 r1,r1,0 <_start> + 204: 00 00 00 00 nop + 208: 14 21 ff 7d bne r1,r1,0 <_start> + 20c: 00 00 00 00 nop + 210: 54 21 ff 7b bnel r1,r1,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 01 00 00 jal r1,0 <_start> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 00 00 lw r1,0x0\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 00 00 lh r1,0x0\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 00 00 lb r1,0x0\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 00 00 lhu r1,0x0\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 00 00 lbu r1,0x0\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 00 00 sb r1,0x0\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 00 00 sh r1,0x0\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 00 00 sw r1,0x0\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 21 08 08 rba r1,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 08 0a rbar r1,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 08 09 rbal r1,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 08 10 wba r1,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 08 12 wbac r1,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 08 11 wbau r1,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 0a ff rbi r1,r1,r1,0xff + 2c4: 00 00 00 00 nop + 2c8: 4c 21 09 ff rbir r1,r1,r1,0xff + 2cc: 00 00 00 00 nop + 2d0: 4c 21 0b ff rbil r1,r1,r1,0xff + 2d4: 00 00 00 00 nop + 2d8: 4c 21 0e ff wbi r1,r1,r1,0xff + 2dc: 00 00 00 00 nop + 2e0: 4c 21 0d ff wbic r1,r1,r1,0xff + 2e4: 00 00 00 00 nop + 2e8: 4c 21 0f ff wbiu r1,r1,r1,0xff + 2ec: 00 00 00 00 nop + 2f0: 4c 21 08 28 pkrla r1,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 08 2a pkrlah r1,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 08 29 pkrlau r1,r1,r1 + 304: 00 00 00 00 nop + 308: 48 21 08 ff pkrli r1,r1,r1,0xff + 30c: 00 00 00 00 nop + 310: 48 21 0a ff pkrlih r1,r1,r1,0xff + 314: 00 00 00 00 nop + 318: 48 21 09 ff pkrliu r1,r1,r1,0xff + 31c: 00 00 00 00 nop + 320: 4c 01 08 01 lock r1,r1 + 324: 00 00 00 00 nop + 328: 4c 01 08 03 unlk r1,r1 + 32c: 00 00 00 00 nop + 330: 4c 21 08 06 swwr r1,r1,r1 + 334: 00 00 00 00 nop + 338: 4c 21 08 07 swwru r1,r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 01 08 04 swrd r1,r1 + 344: 00 00 00 00 nop + 348: 4c 01 08 05 swrdl r1,r1 + 34c: 00 00 00 00 nop + 350: 4c 01 0c 07 cam36 r1,r1,0x0,0x7 + 354: 00 00 00 00 nop + 358: 4c 01 0c 78 cam72 r1,r1,0x0,0x7 + 35c: 00 00 00 00 nop + 360: 4c 01 0c b8 cam144 r1,r1,0x0,0x7 + 364: 00 00 00 00 nop + 368: 4c 01 0c f8 cam288 r1,r1,0x0,0x7 + 36c: 00 00 00 00 nop + 370: 4c 21 08 ab cm32and r1,r1,r1 + 374: 00 00 00 00 nop + 378: 4c 21 08 a3 cm32andn r1,r1,r1 + 37c: 00 00 00 00 nop + 380: 4c 21 08 aa cm32or r1,r1,r1 + 384: 00 00 00 00 nop + 388: 4c 21 08 b0 cm32ra r1,r1,r1 + 38c: 00 00 00 00 nop + 390: 4c 01 08 a1 cm32rd r1,r1 + 394: 00 00 00 00 nop + 398: 4c 01 08 a4 cm32ri r1,r1 + 39c: 00 00 00 00 nop + 3a0: 4c 21 08 a0 cm32rs r1,r1,r1 + 3a4: 00 00 00 00 nop + 3a8: 4c 21 08 b8 cm32sa r1,r1,r1 + 3ac: 00 00 00 00 nop + 3b0: 4c 01 08 a9 cm32sd r1,r1 + 3b4: 00 00 00 00 nop + 3b8: 4c 01 08 ac cm32si r1,r1 + 3bc: 00 00 00 00 nop + 3c0: 4c 21 08 a8 cm32ss r1,r1,r1 + 3c4: 00 00 00 00 nop + 3c8: 4c 21 08 a2 cm32xor r1,r1,r1 + 3cc: 00 00 00 00 nop + 3d0: 4c 02 10 85 cm64clr r2,r2 + 3d4: 00 00 00 00 nop + 3d8: 4c 42 10 90 cm64ra r2,r2,r2 + 3dc: 00 00 00 00 nop + 3e0: 4c 02 10 81 cm64rd r2,r2 + 3e4: 00 00 00 00 nop + 3e8: 4c 02 10 84 cm64ri r2,r2 + 3ec: 00 00 00 00 nop + 3f0: 4c 42 10 94 cm64ria2 r2,r2,r2 + 3f4: 00 00 00 00 nop + 3f8: 4c 42 10 80 cm64rs r2,r2,r2 + 3fc: 00 00 00 00 nop + 400: 4c 42 10 98 cm64sa r2,r2,r2 + 404: 00 00 00 00 nop + 408: 4c 02 10 89 cm64sd r2,r2 + 40c: 00 00 00 00 nop + 410: 4c 02 10 8c cm64si r2,r2 + 414: 00 00 00 00 nop + 418: 4c 42 10 9c cm64sia2 r2,r2,r2 + 41c: 00 00 00 00 nop + 420: 4c 42 10 88 cm64ss r2,r2,r2 + 424: 00 00 00 00 nop + 428: 4c 42 10 95 cm128ria2 r2,r2,r2 + 42c: 00 00 00 00 nop + 430: 4c 21 08 14 crc32 r1,r1,r1 + 434: 00 00 00 00 nop + 438: 4c 21 08 15 crc32b r1,r1,r1 + 43c: 00 00 00 00 nop + 440: 4c 20 08 26 chkhdr r1,r1 + 444: 00 00 00 00 nop + 448: 4c 00 08 24 avail r1 + 44c: 00 00 00 00 nop + 450: 4c 20 08 25 free r1,r1 + 454: 00 00 00 00 nop + 458: 4c 20 08 27 tstod r1,r1 + 45c: 00 00 00 00 nop + 460: 00 00 00 0e yield + 464: 00 00 00 00 nop + 468: 4c 00 08 2c cmphdr r1 + 46c: 00 00 00 00 nop + 470: 4c 01 08 20 mcid r1,r1 + 474: 00 00 00 00 nop + 478: 4c 00 08 22 dba r1 + 47c: 00 00 00 00 nop + 480: 4c 01 08 21 dbd r1,r0,r1 + 484: 00 00 00 00 nop + 488: 4c 20 08 23 dpwt r1,r1 + 48c: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test10.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test10.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test10.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test10.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,294 @@ +.global _start +_start: + ADD %1,%1,%1 + NOP + ADDI %1,%1,0 + NOP + ADDIU %1,%1,0 + NOP + ADDU %1,%1,%1 + NOP + ADO16 %1,%1,%1 + NOP + AND %1,%1,%1 + NOP + ANDI %1,%1,0 + NOP + ANDOI %1,%1,0 + NOP + ANDOUI %1,%1,0 + NOP + LUI %1,0 + NOP + MRGB %1,%1,%1,31 + NOP + NOR %1,%1,%1 + NOP + OR %1,%1,%1 + NOP + ORI %1,%1,0 + NOP + ORUI %1,%1,0 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%1 + NOP + SLT %1,%1,%1 + NOP + SLTI %1,%1,0 + NOP + SLTIU %1,%1,0 + NOP + SLTU %1,%1,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%1 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%1 + NOP + SUB %1,%1,%1 + NOP + SUBU %1,%1,%1 + NOP + XOR %1,%1,%1 + NOP + XORI %1,%1,0 + NOP + NOP + NOP + SRMV %1,%1,%1,0 + NOP + SLMV %1,%1,%1,0 + NOP + RAM %1,%1,0,1,1 + NOP + BBI %1(0),_start + NOP + BBIN %1(0),_start + NOP + BBV %1,%1,_start + NOP + BBVN %1,%1,_start + NOP + BBIL %1(0),_start + NOP + BBINL %1(0),_start + NOP + BBVL %1,%1,_start + NOP + BBVNL %1,%1,_start + NOP + BEQ %1,%1,_start + NOP + BEQL %1,%1,_start + NOP + BGEZ %1,_start + NOP + BGTZAL %1,_start + NOP + BGEZAL %1,_start + NOP + BGTZALL %1,_start + NOP + BGEZALL %1,_start + NOP + BGEZL %1,_start + NOP + BGTZL %1,_start + NOP + BGTZ %1,_start + NOP + BLEZ %1,_start + NOP + BLEZAL %1,_start + NOP + BLTZ %1,_start + NOP + BLTZAL %1,_start + NOP + BLEZL %1,_start + NOP + BLTZL %1,_start + NOP + BLEZALL %1,_start + NOP + BLTZALL %1,_start + NOP + BMB %1,%1,_start + NOP + BMBL %1,%1,_start + NOP + BMB0 %1,%1,_start + NOP + BMB1 %1,%1,_start + NOP + BMB2 %1,%1,_start + NOP + BMB3 %1,%1,_start + NOP + BNE %1,%1,_start + NOP + BNEL %1,%1,_start + NOP + J 0 + NOP + JAL %1,0 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %1,%1 + NOP + LW %1,0(%1) + NOP + LH %1,0(%1) + NOP + LB %1,0(%1) + NOP + LHU %1,0(%1) + NOP + LBU %1,0(%1) + NOP + SB %1,0(%1) + NOP + SH %1,0(%1) + NOP + SW %1,0(%1) + NOP + RBA %1,%1,%1 + NOP + RBAR %1,%1,%1 + NOP + RBAL %1,%1,%1 + NOP + WBA %1,%1,%1 + NOP + WBAC %1,%1,%1 + NOP + WBAU %1,%1,%1 + NOP + RBI %1,%1,%1,255 + NOP + RBIR %1,%1,%1,255 + NOP + RBIL %1,%1,%1,255 + NOP + WBI %1,%1,%1,255 + NOP + WBIC %1,%1,%1,255 + NOP + WBIU %1,%1,%1,255 + NOP + PKRLA %1,%1,%1 + NOP + PKRLAH %1,%1,%1 + NOP + PKRLAU %1,%1,%1 + NOP + PKRLI %1,%1,%1,255 + NOP + PKRLIH %1,%1,%1,255 + NOP + PKRLIU %1,%1,%1,255 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %1,%1,%1 + NOP + SWWRU %1,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP + CAM36 %1,%1,0,7 + NOP + CAM72 %1,%1,0,7 + NOP + CAM144 %1,%1,0,7 + NOP + CAM288 %1,%1,0,7 + NOP + CM32AND %1,%1,%1 + NOP + CM32ANDN %1,%1,%1 + NOP + CM32OR %1,%1,%1 + NOP + CM32RA %1,%1,%1 + NOP + CM32RD %1,%1 + NOP + CM32RI %1,%1 + NOP + CM32RS %1,%1,%1 + NOP + CM32SA %1,%1,%1 + NOP + CM32SD %1,%1 + NOP + CM32SI %1,%1 + NOP + CM32SS %1,%1,%1 + NOP + CM32XOR %1,%1,%1 + NOP + CM64CLR %2,%2 + NOP + CM64RA %2,%2,%2 + NOP + CM64RD %2,%2 + NOP + CM64RI %2,%2 + NOP + CM64RIA2 %2,%2,%2 + NOP + CM64RS %2,%2,%2 + NOP + CM64SA %2,%2,%2 + NOP + CM64SD %2,%2 + NOP + CM64SI %2,%2 + NOP + CM64SIA2 %2,%2,%2 + NOP + CM64SS %2,%2,%2 + NOP + CM128RIA2 %2,%2,%2 + NOP + CRC32 %1,%1,%1 + NOP + CRC32B %1,%1,%1 + NOP + CHKHDR %1,%1 + NOP + AVAIL %1 + NOP + FREE %1,%1 + NOP + TSTOD %1,%1 + NOP + YIELD + NOP + CMPHDR %1 + NOP + MCID %1,%1 + NOP + DBA %1 + NOP + DBD %1,%1 + NOP + DPWT %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test11.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test11.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test11.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test11.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,225 @@ +#as: -m10 +#objdump: -drz +#name: q10test11 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 08 20 add r1,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 00 00 addi r1,r1,0x0 + c: 00 00 00 00 nop + 10: 24 21 00 00 addiu r1,r1,0x0 + 14: 00 00 00 00 nop + 18: 00 21 08 21 addu r1,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 08 29 ado16 r1,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 08 24 and r1,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 00 00 andi r1,r1,0x0 + 34: 00 00 00 00 nop + 38: b0 21 00 00 andoi r1,r1,0x0 + 3c: 00 00 00 00 nop + 40: bc 21 00 00 andoui r1,r1,0x0 + 44: 00 00 00 00 nop + 48: 3c 01 00 00 lui r1,0x0 + 4c: 00 00 00 00 nop + 50: 00 21 08 6d mrgb r1,r1,r1,0x1 + 54: 00 00 00 00 nop + 58: 00 21 08 27 nor r1,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 08 25 or r1,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 00 00 ori r1,r1,0x0 + 6c: 00 00 00 00 nop + 70: 3c 21 00 00 orui r1,r1,0x0 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 08 04 sllv r1,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 08 2a slt r1,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 00 00 slti r1,r1,0x0 + 94: 00 00 00 00 nop + 98: 2c 21 00 00 sltiu r1,r1,0x0 + 9c: 00 00 00 00 nop + a0: 00 21 08 2b sltu r1,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 08 07 srav r1,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 08 06 srlv r1,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 08 22 sub r1,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 08 23 subu r1,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 08 26 xor r1,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 00 00 xori r1,r1,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 08 05 srmv r1,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 08 01 slmv r1,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9d e1 08 01 ram r1,r1,0x0,0x1,0xf + 104: 00 00 00 00 nop + 108: 70 20 ff bd bbi r1\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 78 20 ff bb bbin r1\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 74 21 ff b9 bbv r1,r1,0 <_start> + 11c: 00 00 00 00 nop + 120: 7c 21 ff b7 bbvn r1,r1,0 <_start> + 124: 00 00 00 00 nop + 128: f0 20 ff b5 bbil r1\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: f8 20 ff b3 bbinl r1\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f4 21 ff b1 bbvl r1,r1,0 <_start> + 13c: 00 00 00 00 nop + 140: fc 21 ff af bbvnl r1,r1,0 <_start> + 144: 00 00 00 00 nop + 148: 10 21 ff ad beq r1,r1,0 <_start> + 14c: 00 00 00 00 nop + 150: 50 21 ff ab beql r1,r1,0 <_start> + 154: 00 00 00 00 nop + 158: 04 21 ff a9 bgez r1,0 <_start> + 15c: 00 00 00 00 nop + 160: 04 35 ff a7 bgtzal r1,0 <_start> + 164: 00 00 00 00 nop + 168: 04 31 ff a5 bgezal r1,0 <_start> + 16c: 00 00 00 00 nop + 170: 04 37 ff a3 bgtzall r1,0 <_start> + 174: 00 00 00 00 nop + 178: 04 33 ff a1 bgezall r1,0 <_start> + 17c: 00 00 00 00 nop + 180: 04 23 ff 9f bgezl r1,0 <_start> + 184: 00 00 00 00 nop + 188: 04 27 ff 9d bgtzl r1,0 <_start> + 18c: 00 00 00 00 nop + 190: 04 25 ff 9b bgtz r1,0 <_start> + 194: 00 00 00 00 nop + 198: 04 24 ff 99 blez r1,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 04 34 ff 97 blezal r1,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 04 20 ff 95 bltz r1,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 04 30 ff 93 bltzal r1,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 04 26 ff 91 blezl r1,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 04 22 ff 8f bltzl r1,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 04 36 ff 8d blezall r1,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 04 32 ff 8b bltzall r1,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 18 21 ff 89 bmb r1,r1,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 58 21 ff 87 bmbl r1,r1,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 60 21 ff 85 bmb0 r1,r1,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 64 21 ff 83 bmb1 r1,r1,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 68 21 ff 81 bmb2 r1,r1,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6c 21 ff 7f bmb3 r1,r1,0 <_start> + 204: 00 00 00 00 nop + 208: 14 21 ff 7d bne r1,r1,0 <_start> + 20c: 00 00 00 00 nop + 210: 54 21 ff 7b bnel r1,r1,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 01 00 00 jal r1,0 <_start> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 00 00 lw r1,0x0\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 00 00 lh r1,0x0\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 00 00 lb r1,0x0\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 00 00 lhu r1,0x0\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 00 00 lbu r1,0x0\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 00 00 sb r1,0x0\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 00 00 sh r1,0x0\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 00 00 sw r1,0x0\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 21 08 08 rba r1,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 08 0a rbar r1,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 08 09 rbal r1,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 08 10 wba r1,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 08 12 wbac r1,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 08 11 wbau r1,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 0a 00 rbi r1,r1,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4c 21 09 00 rbir r1,r1,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4c 21 0b 00 rbil r1,r1,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4c 21 0e 00 wbi r1,r1,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4c 21 0d 00 wbic r1,r1,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4c 21 0f 00 wbiu r1,r1,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4c 21 08 28 pkrla r1,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 08 2b pkrlac r1,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 08 2a pkrlah r1,r1,r1 + 304: 00 00 00 00 nop + 308: 4c 21 08 29 pkrlau r1,r1,r1 + 30c: 00 00 00 00 nop + 310: 48 21 08 00 pkrli r1,r1,r1,0x0 + 314: 00 00 00 00 nop + 318: 48 21 0b 00 pkrlic r1,r1,r1,0x0 + 31c: 00 00 00 00 nop + 320: 48 21 0a 00 pkrlih r1,r1,r1,0x0 + 324: 00 00 00 00 nop + 328: 48 21 09 00 pkrliu r1,r1,r1,0x0 + 32c: 00 00 00 00 nop + 330: 4c 01 08 01 lock r1,r1 + 334: 00 00 00 00 nop + 338: 4c 01 08 03 unlk r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 21 08 06 swwr r1,r1,r1 + 344: 00 00 00 00 nop + 348: 4c 21 08 07 swwru r1,r1,r1 + 34c: 00 00 00 00 nop + 350: 4c 01 08 04 swrd r1,r1 + 354: 00 00 00 00 nop + 358: 4c 01 08 05 swrdl r1,r1 + 35c: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test11.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test11.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test11.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test11.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,218 @@ +.global _start +_start: + ADD %1,%1,%1 + NOP + ADDI %1,%1,0 + NOP + ADDIU %1,%1,0 + NOP + ADDU %1,%1,%1 + NOP + ADO16 %1,%1,%1 + NOP + AND %1,%1,%1 + NOP + ANDI %1,%1,0 + NOP + ANDOI %1,%1,0 + NOP + ANDOUI %1,%1,0 + NOP + LUI %1,0 + NOP + MRGB %1,%1,%1,1 + NOP + NOR %1,%1,%1 + NOP + OR %1,%1,%1 + NOP + ORI %1,%1,0 + NOP + ORUI %1,%1,0 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%1 + NOP + SLT %1,%1,%1 + NOP + SLTI %1,%1,0 + NOP + SLTIU %1,%1,0 + NOP + SLTU %1,%1,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%1 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%1 + NOP + SUB %1,%1,%1 + NOP + SUBU %1,%1,%1 + NOP + XOR %1,%1,%1 + NOP + XORI %1,%1,0 + NOP + NOP + NOP + SRMV %1,%1,%1,0 + NOP + SLMV %1,%1,%1,0 + NOP + RAM %1,%1,0,1,15 + NOP + BBI %1(0),_start + NOP + BBIN %1(0),_start + NOP + BBV %1,%1,_start + NOP + BBVN %1,%1,_start + NOP + BBIL %1(0),_start + NOP + BBINL %1(0),_start + NOP + BBVL %1,%1,_start + NOP + BBVNL %1,%1,_start + NOP + BEQ %1,%1,_start + NOP + BEQL %1,%1,_start + NOP + BGEZ %1,_start + NOP + BGTZAL %1,_start + NOP + BGEZAL %1,_start + NOP + BGTZALL %1,_start + NOP + BGEZALL %1,_start + NOP + BGEZL %1,_start + NOP + BGTZL %1,_start + NOP + BGTZ %1,_start + NOP + BLEZ %1,_start + NOP + BLEZAL %1,_start + NOP + BLTZ %1,_start + NOP + BLTZAL %1,_start + NOP + BLEZL %1,_start + NOP + BLTZL %1,_start + NOP + BLEZALL %1,_start + NOP + BLTZALL %1,_start + NOP + BMB %1,%1,_start + NOP + BMBL %1,%1,_start + NOP + BMB0 %1,%1,_start + NOP + BMB1 %1,%1,_start + NOP + BMB2 %1,%1,_start + NOP + BMB3 %1,%1,_start + NOP + BNE %1,%1,_start + NOP + BNEL %1,%1,_start + NOP + J 0 + NOP + JAL %1,0 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %1,%1 + NOP + LW %1,0(%1) + NOP + LH %1,0(%1) + NOP + LB %1,0(%1) + NOP + LHU %1,0(%1) + NOP + LBU %1,0(%1) + NOP + SB %1,0(%1) + NOP + SH %1,0(%1) + NOP + SW %1,0(%1) + NOP + RBA %1,%1,%1 + NOP + RBAR %1,%1,%1 + NOP + RBAL %1,%1,%1 + NOP + WBA %1,%1,%1 + NOP + WBAC %1,%1,%1 + NOP + WBAU %1,%1,%1 + NOP + RBI %1,%1,%1,0 + NOP + RBIR %1,%1,%1,0 + NOP + RBIL %1,%1,%1,0 + NOP + WBI %1,%1,%1,0 + NOP + WBIC %1,%1,%1,0 + NOP + WBIU %1,%1,%1,0 + NOP + PKRLA %1,%1,%1 + NOP + PKRLAC %1,%1,%1 + NOP + PKRLAH %1,%1,%1 + NOP + PKRLAU %1,%1,%1 + NOP + PKRLI %1,%1,%1,0 + NOP + PKRLIC %1,%1,%1,0 + NOP + PKRLIH %1,%1,%1,0 + NOP + PKRLIU %1,%1,%1,0 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %1,%1,%1 + NOP + SWWRU %1,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test12.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test12.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test12.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test12.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,221 @@ +#as: -m10 +#objdump: -drz +#name: q10test12 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 08 20 add r1,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 00 00 addi r1,r1,0x0 + c: 00 00 00 00 nop + 10: 24 21 00 00 addiu r1,r1,0x0 + 14: 00 00 00 00 nop + 18: 00 21 08 21 addu r1,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 08 29 ado16 r1,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 08 24 and r1,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 00 00 andi r1,r1,0x0 + 34: 00 00 00 00 nop + 38: b0 21 00 00 andoi r1,r1,0x0 + 3c: 00 00 00 00 nop + 40: bc 21 00 00 andoui r1,r1,0x0 + 44: 00 00 00 00 nop + 48: 3c 01 00 00 lui r1,0x0 + 4c: 00 00 00 00 nop + 50: 00 21 08 6d mrgb r1,r1,r1,0x1 + 54: 00 00 00 00 nop + 58: 00 21 08 27 nor r1,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 08 25 or r1,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 00 00 ori r1,r1,0x0 + 6c: 00 00 00 00 nop + 70: 3c 21 00 00 orui r1,r1,0x0 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 08 04 sllv r1,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 08 2a slt r1,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 00 00 slti r1,r1,0x0 + 94: 00 00 00 00 nop + 98: 2c 21 00 00 sltiu r1,r1,0x0 + 9c: 00 00 00 00 nop + a0: 00 21 08 2b sltu r1,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 08 07 srav r1,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 08 06 srlv r1,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 08 22 sub r1,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 08 23 subu r1,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 08 26 xor r1,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 00 00 xori r1,r1,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 08 05 srmv r1,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 08 01 slmv r1,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 21 08 0f ram r1,r1,0x0,0xf,0x1 + 104: 00 00 00 00 nop + 108: 70 20 ff bd bbi r1\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 78 20 ff bb bbin r1\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 74 21 ff b9 bbv r1,r1,0 <_start> + 11c: 00 00 00 00 nop + 120: 7c 21 ff b7 bbvn r1,r1,0 <_start> + 124: 00 00 00 00 nop + 128: f0 20 ff b5 bbil r1\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: f8 20 ff b3 bbinl r1\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f4 21 ff b1 bbvl r1,r1,0 <_start> + 13c: 00 00 00 00 nop + 140: fc 21 ff af bbvnl r1,r1,0 <_start> + 144: 00 00 00 00 nop + 148: 10 21 ff ad beq r1,r1,0 <_start> + 14c: 00 00 00 00 nop + 150: 50 21 ff ab beql r1,r1,0 <_start> + 154: 00 00 00 00 nop + 158: 04 21 ff a9 bgez r1,0 <_start> + 15c: 00 00 00 00 nop + 160: 04 35 ff a7 bgtzal r1,0 <_start> + 164: 00 00 00 00 nop + 168: 04 31 ff a5 bgezal r1,0 <_start> + 16c: 00 00 00 00 nop + 170: 04 37 ff a3 bgtzall r1,0 <_start> + 174: 00 00 00 00 nop + 178: 04 33 ff a1 bgezall r1,0 <_start> + 17c: 00 00 00 00 nop + 180: 04 23 ff 9f bgezl r1,0 <_start> + 184: 00 00 00 00 nop + 188: 04 27 ff 9d bgtzl r1,0 <_start> + 18c: 00 00 00 00 nop + 190: 04 25 ff 9b bgtz r1,0 <_start> + 194: 00 00 00 00 nop + 198: 04 24 ff 99 blez r1,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 04 34 ff 97 blezal r1,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 04 20 ff 95 bltz r1,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 04 30 ff 93 bltzal r1,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 04 26 ff 91 blezl r1,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 04 22 ff 8f bltzl r1,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 04 36 ff 8d blezall r1,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 04 32 ff 8b bltzall r1,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 18 21 ff 89 bmb r1,r1,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 58 21 ff 87 bmbl r1,r1,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 60 21 ff 85 bmb0 r1,r1,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 64 21 ff 83 bmb1 r1,r1,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 68 21 ff 81 bmb2 r1,r1,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6c 21 ff 7f bmb3 r1,r1,0 <_start> + 204: 00 00 00 00 nop + 208: 14 21 ff 7d bne r1,r1,0 <_start> + 20c: 00 00 00 00 nop + 210: 54 21 ff 7b bnel r1,r1,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 01 00 00 jal r1,0 <_start> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 00 00 lw r1,0x0\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 00 00 lh r1,0x0\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 00 00 lb r1,0x0\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 00 00 lhu r1,0x0\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 00 00 lbu r1,0x0\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 00 00 sb r1,0x0\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 00 00 sh r1,0x0\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 00 00 sw r1,0x0\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 21 08 08 rba r1,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 08 0a rbar r1,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 08 09 rbal r1,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 08 10 wba r1,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 08 12 wbac r1,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 08 11 wbau r1,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 0a 00 rbi r1,r1,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4c 21 09 00 rbir r1,r1,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4c 21 0b 00 rbil r1,r1,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4c 21 0e 00 wbi r1,r1,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4c 21 0d 00 wbic r1,r1,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4c 21 0f 00 wbiu r1,r1,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4c 21 08 28 pkrla r1,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 08 2a pkrlah r1,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 08 29 pkrlau r1,r1,r1 + 304: 00 00 00 00 nop + 308: 48 21 08 00 pkrli r1,r1,r1,0x0 + 30c: 00 00 00 00 nop + 310: 48 21 0a 00 pkrlih r1,r1,r1,0x0 + 314: 00 00 00 00 nop + 318: 48 21 09 00 pkrliu r1,r1,r1,0x0 + 31c: 00 00 00 00 nop + 320: 4c 01 08 01 lock r1,r1 + 324: 00 00 00 00 nop + 328: 4c 01 08 03 unlk r1,r1 + 32c: 00 00 00 00 nop + 330: 4c 21 08 06 swwr r1,r1,r1 + 334: 00 00 00 00 nop + 338: 4c 21 08 07 swwru r1,r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 01 08 04 swrd r1,r1 + 344: 00 00 00 00 nop + 348: 4c 01 08 05 swrdl r1,r1 + 34c: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test12.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test12.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test12.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test12.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,214 @@ +.global _start +_start: + ADD %1,%1,%1 + NOP + ADDI %1,%1,0 + NOP + ADDIU %1,%1,0 + NOP + ADDU %1,%1,%1 + NOP + ADO16 %1,%1,%1 + NOP + AND %1,%1,%1 + NOP + ANDI %1,%1,0 + NOP + ANDOI %1,%1,0 + NOP + ANDOUI %1,%1,0 + NOP + LUI %1,0 + NOP + MRGB %1,%1,%1,1 + NOP + NOR %1,%1,%1 + NOP + OR %1,%1,%1 + NOP + ORI %1,%1,0 + NOP + ORUI %1,%1,0 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%1 + NOP + SLT %1,%1,%1 + NOP + SLTI %1,%1,0 + NOP + SLTIU %1,%1,0 + NOP + SLTU %1,%1,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%1 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%1 + NOP + SUB %1,%1,%1 + NOP + SUBU %1,%1,%1 + NOP + XOR %1,%1,%1 + NOP + XORI %1,%1,0 + NOP + NOP + NOP + SRMV %1,%1,%1,0 + NOP + SLMV %1,%1,%1,0 + NOP + RAM %1,%1,0,15,1 + NOP + BBI %1(0),_start + NOP + BBIN %1(0),_start + NOP + BBV %1,%1,_start + NOP + BBVN %1,%1,_start + NOP + BBIL %1(0),_start + NOP + BBINL %1(0),_start + NOP + BBVL %1,%1,_start + NOP + BBVNL %1,%1,_start + NOP + BEQ %1,%1,_start + NOP + BEQL %1,%1,_start + NOP + BGEZ %1,_start + NOP + BGTZAL %1,_start + NOP + BGEZAL %1,_start + NOP + BGTZALL %1,_start + NOP + BGEZALL %1,_start + NOP + BGEZL %1,_start + NOP + BGTZL %1,_start + NOP + BGTZ %1,_start + NOP + BLEZ %1,_start + NOP + BLEZAL %1,_start + NOP + BLTZ %1,_start + NOP + BLTZAL %1,_start + NOP + BLEZL %1,_start + NOP + BLTZL %1,_start + NOP + BLEZALL %1,_start + NOP + BLTZALL %1,_start + NOP + BMB %1,%1,_start + NOP + BMBL %1,%1,_start + NOP + BMB0 %1,%1,_start + NOP + BMB1 %1,%1,_start + NOP + BMB2 %1,%1,_start + NOP + BMB3 %1,%1,_start + NOP + BNE %1,%1,_start + NOP + BNEL %1,%1,_start + NOP + J 0 + NOP + JAL %1,0 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %1,%1 + NOP + LW %1,0(%1) + NOP + LH %1,0(%1) + NOP + LB %1,0(%1) + NOP + LHU %1,0(%1) + NOP + LBU %1,0(%1) + NOP + SB %1,0(%1) + NOP + SH %1,0(%1) + NOP + SW %1,0(%1) + NOP + RBA %1,%1,%1 + NOP + RBAR %1,%1,%1 + NOP + RBAL %1,%1,%1 + NOP + WBA %1,%1,%1 + NOP + WBAC %1,%1,%1 + NOP + WBAU %1,%1,%1 + NOP + RBI %1,%1,%1,0 + NOP + RBIR %1,%1,%1,0 + NOP + RBIL %1,%1,%1,0 + NOP + WBI %1,%1,%1,0 + NOP + WBIC %1,%1,%1,0 + NOP + WBIU %1,%1,%1,0 + NOP + PKRLA %1,%1,%1 + NOP + PKRLAH %1,%1,%1 + NOP + PKRLAU %1,%1,%1 + NOP + PKRLI %1,%1,%1,0 + NOP + PKRLIH %1,%1,%1,0 + NOP + PKRLIU %1,%1,%1,0 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %1,%1,%1 + NOP + SWWRU %1,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test2.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test2.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,319 @@ +#as: -m10 +#objdump: -drz +#name: q10test2 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 f8 20 add r31,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 00 00 addi r1,r1,0x0 + c: 00 00 00 00 nop + 10: 24 21 00 00 addiu r1,r1,0x0 + 14: 00 00 00 00 nop + 18: 00 21 f8 21 addu r31,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 f8 29 ado16 r31,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 f8 24 and r31,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 00 00 andi r1,r1,0x0 + 34: 00 00 00 00 nop + 38: b0 21 00 00 andoi r1,r1,0x0 + 3c: 00 00 00 00 nop + 40: bc 21 00 00 andoui r1,r1,0x0 + 44: 00 00 00 00 nop + 48: 3c 01 00 00 lui r1,0x0 + 4c: 00 00 00 00 nop + 50: 00 21 f8 2d mrgb r31,r1,r1,0x0 + 54: 00 00 00 00 nop + 58: 00 21 f8 27 nor r31,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 f8 25 or r31,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 00 00 ori r1,r1,0x0 + 6c: 00 00 00 00 nop + 70: 3c 21 00 00 orui r1,r1,0x0 + 74: 00 00 00 00 nop + 78: 00 01 f8 00 sll r31,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 f8 04 sllv r31,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 f8 2a slt r31,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 00 00 slti r1,r1,0x0 + 94: 00 00 00 00 nop + 98: 2c 21 00 00 sltiu r1,r1,0x0 + 9c: 00 00 00 00 nop + a0: 00 21 f8 2b sltu r31,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 f8 03 sra r31,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 f8 07 srav r31,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 f8 02 srl r31,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 f8 06 srlv r31,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 f8 22 sub r31,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 f8 23 subu r31,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 f8 26 xor r31,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 00 00 xori r1,r1,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 f8 05 srmv r31,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 f8 01 slmv r31,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 01 f8 00 ram r31,r1,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 70 20 ff bd bbi r1\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 78 20 ff bb bbin r1\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 74 21 ff b9 bbv r1,r1,0 <_start> + 11c: 00 00 00 00 nop + 120: 7c 21 ff b7 bbvn r1,r1,0 <_start> + 124: 00 00 00 00 nop + 128: f0 20 ff b5 bbil r1\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: f8 20 ff b3 bbinl r1\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f4 21 ff b1 bbvl r1,r1,0 <_start> + 13c: 00 00 00 00 nop + 140: fc 21 ff af bbvnl r1,r1,0 <_start> + 144: 00 00 00 00 nop + 148: 10 21 ff ad beq r1,r1,0 <_start> + 14c: 00 00 00 00 nop + 150: 50 21 ff ab beql r1,r1,0 <_start> + 154: 00 00 00 00 nop + 158: 04 21 ff a9 bgez r1,0 <_start> + 15c: 00 00 00 00 nop + 160: 04 35 ff a7 bgtzal r1,0 <_start> + 164: 00 00 00 00 nop + 168: 04 31 ff a5 bgezal r1,0 <_start> + 16c: 00 00 00 00 nop + 170: 04 37 ff a3 bgtzall r1,0 <_start> + 174: 00 00 00 00 nop + 178: 04 33 ff a1 bgezall r1,0 <_start> + 17c: 00 00 00 00 nop + 180: 04 23 ff 9f bgezl r1,0 <_start> + 184: 00 00 00 00 nop + 188: 04 27 ff 9d bgtzl r1,0 <_start> + 18c: 00 00 00 00 nop + 190: 04 25 ff 9b bgtz r1,0 <_start> + 194: 00 00 00 00 nop + 198: 04 24 ff 99 blez r1,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 04 34 ff 97 blezal r1,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 04 20 ff 95 bltz r1,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 04 30 ff 93 bltzal r1,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 04 26 ff 91 blezl r1,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 04 22 ff 8f bltzl r1,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 04 36 ff 8d blezall r1,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 04 32 ff 8b bltzall r1,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 18 21 ff 89 bmb r1,r1,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 58 21 ff 87 bmbl r1,r1,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 60 21 ff 85 bmb0 r1,r1,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 64 21 ff 83 bmb1 r1,r1,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 68 21 ff 81 bmb2 r1,r1,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6c 21 ff 7f bmb3 r1,r1,0 <_start> + 204: 00 00 00 00 nop + 208: 14 21 ff 7d bne r1,r1,0 <_start> + 20c: 00 00 00 00 nop + 210: 54 21 ff 7b bnel r1,r1,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 01 00 00 jal r1,0 <_start> + 224: 00 00 00 00 nop + 228: 00 20 f8 09 jalr r31,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 f8 00 cfc r31,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 00 00 lw r1,0x0\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 00 00 lh r1,0x0\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 00 00 lb r1,0x0\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 00 00 lhu r1,0x0\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 00 00 lbu r1,0x0\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 00 00 sb r1,0x0\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 00 00 sh r1,0x0\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 00 00 sw r1,0x0\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 3f 08 08 rba r1,r1,r31 + 294: 00 00 00 00 nop + 298: 4c 3f 08 0a rbar r1,r1,r31 + 29c: 00 00 00 00 nop + 2a0: 4c 3f 08 09 rbal r1,r1,r31 + 2a4: 00 00 00 00 nop + 2a8: 4c 3f 08 10 wba r1,r1,r31 + 2ac: 00 00 00 00 nop + 2b0: 4c 3f 08 12 wbac r1,r1,r31 + 2b4: 00 00 00 00 nop + 2b8: 4c 3f 08 11 wbau r1,r1,r31 + 2bc: 00 00 00 00 nop + 2c0: 4c 3f 0a 00 rbi r1,r1,r31,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4c 3f 09 00 rbir r1,r1,r31,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4c 3f 0b 00 rbil r1,r1,r31,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4c 3f 0e 00 wbi r1,r1,r31,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4c 3f 0d 00 wbic r1,r1,r31,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4c 3f 0f 00 wbiu r1,r1,r31,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4c 3f 08 28 pkrla r1,r1,r31 + 2f4: 00 00 00 00 nop + 2f8: 4c 3f 08 2b pkrlac r1,r1,r31 + 2fc: 00 00 00 00 nop + 300: 4c 3f 08 2a pkrlah r1,r1,r31 + 304: 00 00 00 00 nop + 308: 4c 3f 08 29 pkrlau r1,r1,r31 + 30c: 00 00 00 00 nop + 310: 48 3f 08 00 pkrli r1,r1,r31,0x0 + 314: 00 00 00 00 nop + 318: 48 3f 0b 00 pkrlic r1,r1,r31,0x0 + 31c: 00 00 00 00 nop + 320: 48 3f 0a 00 pkrlih r1,r1,r31,0x0 + 324: 00 00 00 00 nop + 328: 48 3f 09 00 pkrliu r1,r1,r31,0x0 + 32c: 00 00 00 00 nop + 330: 4c 1f 08 01 lock r1,r31 + 334: 00 00 00 00 nop + 338: 4c 1f 08 03 unlk r1,r31 + 33c: 00 00 00 00 nop + 340: 4c 3f 08 06 swwr r1,r1,r31 + 344: 00 00 00 00 nop + 348: 4c 3f 08 07 swwru r1,r1,r31 + 34c: 00 00 00 00 nop + 350: 4c 01 f8 04 swrd r31,r1 + 354: 00 00 00 00 nop + 358: 4c 01 f8 05 swrdl r31,r1 + 35c: 00 00 00 00 nop + 360: 4c 02 f0 0c dwrd r30,r2 + 364: 00 00 00 00 nop + 368: 4c 02 f0 0d dwrdl r30,r2 + 36c: 00 00 00 00 nop + 370: 4c 01 fc 10 cam36 r31,r1,0x2,0x0 + 374: 00 00 00 00 nop + 378: 4c 01 fc 42 cam72 r31,r1,0x2,0x0 + 37c: 00 00 00 00 nop + 380: 4c 01 fc 82 cam144 r31,r1,0x2,0x0 + 384: 00 00 00 00 nop + 388: 4c 01 fc c2 cam288 r31,r1,0x2,0x0 + 38c: 00 00 00 00 nop + 390: 4c 21 f8 ab cm32and r31,r1,r1 + 394: 00 00 00 00 nop + 398: 4c 21 f8 a3 cm32andn r31,r1,r1 + 39c: 00 00 00 00 nop + 3a0: 4c 21 f8 aa cm32or r31,r1,r1 + 3a4: 00 00 00 00 nop + 3a8: 4c 21 f8 b0 cm32ra r31,r1,r1 + 3ac: 00 00 00 00 nop + 3b0: 4c 01 f8 a1 cm32rd r31,r1 + 3b4: 00 00 00 00 nop + 3b8: 4c 01 f8 a4 cm32ri r31,r1 + 3bc: 00 00 00 00 nop + 3c0: 4c 21 f8 a0 cm32rs r31,r1,r1 + 3c4: 00 00 00 00 nop + 3c8: 4c 21 f8 b8 cm32sa r31,r1,r1 + 3cc: 00 00 00 00 nop + 3d0: 4c 01 f8 a9 cm32sd r31,r1 + 3d4: 00 00 00 00 nop + 3d8: 4c 01 f8 ac cm32si r31,r1 + 3dc: 00 00 00 00 nop + 3e0: 4c 21 f8 a8 cm32ss r31,r1,r1 + 3e4: 00 00 00 00 nop + 3e8: 4c 21 f8 a2 cm32xor r31,r1,r1 + 3ec: 00 00 00 00 nop + 3f0: 4c 02 f0 85 cm64clr r30,r2 + 3f4: 00 00 00 00 nop + 3f8: 4c 42 f0 90 cm64ra r30,r2,r2 + 3fc: 00 00 00 00 nop + 400: 4c 02 f0 81 cm64rd r30,r2 + 404: 00 00 00 00 nop + 408: 4c 02 f0 84 cm64ri r30,r2 + 40c: 00 00 00 00 nop + 410: 4c 42 f0 94 cm64ria2 r30,r2,r2 + 414: 00 00 00 00 nop + 418: 4c 42 f0 80 cm64rs r30,r2,r2 + 41c: 00 00 00 00 nop + 420: 4c 42 f0 98 cm64sa r30,r2,r2 + 424: 00 00 00 00 nop + 428: 4c 02 f0 89 cm64sd r30,r2 + 42c: 00 00 00 00 nop + 430: 4c 02 f0 8c cm64si r30,r2 + 434: 00 00 00 00 nop + 438: 4c 42 f0 9c cm64sia2 r30,r2,r2 + 43c: 00 00 00 00 nop + 440: 4c 42 f0 88 cm64ss r30,r2,r2 + 444: 00 00 00 00 nop + 448: 4c 42 f0 95 cm128ria2 r30,r2,r2 + 44c: 00 00 00 00 nop + 450: 4c 42 f0 92 cm128ria3 r30,r2,r2,0x2 + 454: 00 00 00 00 nop + 458: 4c 42 f0 b2 cm128ria4 r30,r2,r2,0x2 + 45c: 00 00 00 00 nop + 460: 4c 42 f0 9d cm128sia2 r30,r2,r2 + 464: 00 00 00 00 nop + 468: 4c 42 f0 9a cm128sia3 r30,r2,r2,0x2 + 46c: 00 00 00 00 nop + 470: 4c 21 f8 ba cm128sia4 r31,r1,r1,0x2 + 474: 00 00 00 00 nop + 478: 4c 21 f8 a6 cm128vsa r31,r1,r1 + 47c: 00 00 00 00 nop + 480: 4c 21 f8 14 crc32 r31,r1,r1 + 484: 00 00 00 00 nop + 488: 4c 21 f8 15 crc32b r31,r1,r1 + 48c: 00 00 00 00 nop + 490: 4c 20 f8 26 chkhdr r31,r1 + 494: 00 00 00 00 nop + 498: 4c 00 f8 24 avail r31 + 49c: 00 00 00 00 nop + 4a0: 4c 20 f8 25 free r31,r1 + 4a4: 00 00 00 00 nop + 4a8: 4c 20 f8 27 tstod r31,r1 + 4ac: 00 00 00 00 nop + 4b0: 4c 00 f8 2c cmphdr r31 + 4b4: 00 00 00 00 nop + 4b8: 4c 01 f8 20 mcid r31,r1 + 4bc: 00 00 00 00 nop + 4c0: 4c 00 f8 22 dba r31 + 4c4: 00 00 00 00 nop + 4c8: 4c 1f 08 21 dbd r1,r0,r31 + 4cc: 00 00 00 00 nop + 4d0: 4f e0 08 23 dpwt r1,r31 + 4d4: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test2.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test2.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test2.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,312 @@ +.global _start +_start: + ADD %31,%1,%1 + NOP + ADDI %1,%1,0 + NOP + ADDIU %1,%1,0 + NOP + ADDU %31,%1,%1 + NOP + ADO16 %31,%1,%1 + NOP + AND %31,%1,%1 + NOP + ANDI %1,%1,0 + NOP + ANDOI %1,%1,0 + NOP + ANDOUI %1,%1,0 + NOP + LUI %1,0 + NOP + MRGB %31,%1,%1,0 + NOP + NOR %31,%1,%1 + NOP + OR %31,%1,%1 + NOP + ORI %1,%1,0 + NOP + ORUI %1,%1,0 + NOP + SLL %31,%1,0 + NOP + SLLV %31,%1,%1 + NOP + SLT %31,%1,%1 + NOP + SLTI %1,%1,0 + NOP + SLTIU %1,%1,0 + NOP + SLTU %31,%1,%1 + NOP + SRA %31,%1,0 + NOP + SRAV %31,%1,%1 + NOP + SRL %31,%1,0 + NOP + SRLV %31,%1,%1 + NOP + SUB %31,%1,%1 + NOP + SUBU %31,%1,%1 + NOP + XOR %31,%1,%1 + NOP + XORI %1,%1,0 + NOP + NOP + NOP + SRMV %31,%1,%1,0 + NOP + SLMV %31,%1,%1,0 + NOP + RAM %31,%1,0,0,0 + NOP + BBI %1(0),_start + NOP + BBIN %1(0),_start + NOP + BBV %1,%1,_start + NOP + BBVN %1,%1,_start + NOP + BBIL %1(0),_start + NOP + BBINL %1(0),_start + NOP + BBVL %1,%1,_start + NOP + BBVNL %1,%1,_start + NOP + BEQ %1,%1,_start + NOP + BEQL %1,%1,_start + NOP + BGEZ %1,_start + NOP + BGTZAL %1,_start + NOP + BGEZAL %1,_start + NOP + BGTZALL %1,_start + NOP + BGEZALL %1,_start + NOP + BGEZL %1,_start + NOP + BGTZL %1,_start + NOP + BGTZ %1,_start + NOP + BLEZ %1,_start + NOP + BLEZAL %1,_start + NOP + BLTZ %1,_start + NOP + BLTZAL %1,_start + NOP + BLEZL %1,_start + NOP + BLTZL %1,_start + NOP + BLEZALL %1,_start + NOP + BLTZALL %1,_start + NOP + BMB %1,%1,_start + NOP + BMBL %1,%1,_start + NOP + BMB0 %1,%1,_start + NOP + BMB1 %1,%1,_start + NOP + BMB2 %1,%1,_start + NOP + BMB3 %1,%1,_start + NOP + BNE %1,%1,_start + NOP + BNEL %1,%1,_start + NOP + J 0 + NOP + JAL %1,0 + NOP + JALR %31,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %31,%1 + NOP + LW %1,0(%1) + NOP + LH %1,0(%1) + NOP + LB %1,0(%1) + NOP + LHU %1,0(%1) + NOP + LBU %1,0(%1) + NOP + SB %1,0(%1) + NOP + SH %1,0(%1) + NOP + SW %1,0(%1) + NOP + RBA %1,%1,%31 + NOP + RBAR %1,%1,%31 + NOP + RBAL %1,%1,%31 + NOP + WBA %1,%1,%31 + NOP + WBAC %1,%1,%31 + NOP + WBAU %1,%1,%31 + NOP + RBI %1,%1,%31,0 + NOP + RBIR %1,%1,%31,0 + NOP + RBIL %1,%1,%31,0 + NOP + WBI %1,%1,%31,0 + NOP + WBIC %1,%1,%31,0 + NOP + WBIU %1,%1,%31,0 + NOP + PKRLA %1,%1,%31 + NOP + PKRLAC %1,%1,%31 + NOP + PKRLAH %1,%1,%31 + NOP + PKRLAU %1,%1,%31 + NOP + PKRLI %1,%1,%31,0 + NOP + PKRLIC %1,%1,%31,0 + NOP + PKRLIH %1,%1,%31,0 + NOP + PKRLIU %1,%1,%31,0 + NOP + LOCK %1,%31 + NOP + UNLK %1,%31 + NOP + SWWR %1,%1,%31 + NOP + SWWRU %1,%1,%31 + NOP + SWRD %31,%1 + NOP + SWRDL %31,%1 + NOP + DWRD %30,%2 + NOP + DWRDL %30,%2 + NOP + CAM36 %31,%1,2,0 + NOP + CAM72 %31,%1,2,0 + NOP + CAM144 %31,%1,2,0 + NOP + CAM288 %31,%1,2,0 + NOP + CM32AND %31,%1,%1 + NOP + CM32ANDN %31,%1,%1 + NOP + CM32OR %31,%1,%1 + NOP + CM32RA %31,%1,%1 + NOP + CM32RD %31,%1 + NOP + CM32RI %31,%1 + NOP + CM32RS %31,%1,%1 + NOP + CM32SA %31,%1,%1 + NOP + CM32SD %31,%1 + NOP + CM32SI %31,%1 + NOP + CM32SS %31,%1,%1 + NOP + CM32XOR %31,%1,%1 + NOP + CM64CLR %30,%2 + NOP + CM64RA %30,%2,%2 + NOP + CM64RD %30,%2 + NOP + CM64RI %30,%2 + NOP + CM64RIA2 %30,%2,%2 + NOP + CM64RS %30,%2,%2 + NOP + CM64SA %30,%2,%2 + NOP + CM64SD %30,%2 + NOP + CM64SI %30,%2 + NOP + CM64SIA2 %30,%2,%2 + NOP + CM64SS %30,%2,%2 + NOP + CM128RIA2 %30,%2,%2 + NOP + CM128RIA3 %30,%2,%2,2 + NOP + CM128RIA4 %30,%2,%2,2 + NOP + CM128SIA2 %30,%2,%2 + NOP + CM128SIA3 %30,%2,%2,2 + NOP + CM128SIA4 %31,%1,%1,2 + NOP + CM128VSA %31,%1,%1 + NOP + CRC32 %31,%1,%1 + NOP + CRC32B %31,%1,%1 + NOP + CHKHDR %31,%1 + NOP + AVAIL %31 + NOP + FREE %31,%1 + NOP + TSTOD %31,%1 + NOP + CMPHDR %31 + NOP + MCID %31,%1 + NOP + DBA %31 + NOP + DBD %1,%31 + NOP + DPWT %1,%31 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test3.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test3.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test3.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test3.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,313 @@ +#as: -m10 +#objdump: -drz +#name: q10test3 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 3f 08 20 add r1,r1,r31 + 4: 00 00 00 00 nop + 8: 20 3f 00 00 addi r31,r1,0x0 + c: 00 00 00 00 nop + 10: 24 3f 00 00 addiu r31,r1,0x0 + 14: 00 00 00 00 nop + 18: 00 3f 08 21 addu r1,r1,r31 + 1c: 00 00 00 00 nop + 20: 00 3f 08 29 ado16 r1,r1,r31 + 24: 00 00 00 00 nop + 28: 00 3f 08 24 and r1,r1,r31 + 2c: 00 00 00 00 nop + 30: 30 3f 00 00 andi r31,r1,0x0 + 34: 00 00 00 00 nop + 38: b0 3f 00 00 andoi r31,r1,0x0 + 3c: 00 00 00 00 nop + 40: bc 3f 00 00 andoui r31,r1,0x0 + 44: 00 00 00 00 nop + 48: 3c 1f 00 00 lui r31,0x0 + 4c: 00 00 00 00 nop + 50: 00 3f 08 2d mrgb r1,r1,r31,0x0 + 54: 00 00 00 00 nop + 58: 00 3f 08 27 nor r1,r1,r31 + 5c: 00 00 00 00 nop + 60: 00 3f 08 25 or r1,r1,r31 + 64: 00 00 00 00 nop + 68: 34 3f 00 00 ori r31,r1,0x0 + 6c: 00 00 00 00 nop + 70: 3c 3f 00 00 orui r31,r1,0x0 + 74: 00 00 00 00 nop + 78: 00 1f 08 00 sll r1,r31,0x0 + 7c: 00 00 00 00 nop + 80: 00 3f 08 04 sllv r1,r31,r1 + 84: 00 00 00 00 nop + 88: 00 3f 08 2a slt r1,r1,r31 + 8c: 00 00 00 00 nop + 90: 28 3f 00 00 slti r31,r1,0x0 + 94: 00 00 00 00 nop + 98: 2c 3f 00 00 sltiu r31,r1,0x0 + 9c: 00 00 00 00 nop + a0: 00 3f 08 2b sltu r1,r1,r31 + a4: 00 00 00 00 nop + a8: 00 1f 08 03 sra r1,r31,0x0 + ac: 00 00 00 00 nop + b0: 00 3f 08 07 srav r1,r31,r1 + b4: 00 00 00 00 nop + b8: 00 1f 08 02 srl r1,r31,0x0 + bc: 00 00 00 00 nop + c0: 00 3f 08 06 srlv r1,r31,r1 + c4: 00 00 00 00 nop + c8: 00 3f 08 22 sub r1,r1,r31 + cc: 00 00 00 00 nop + d0: 00 3f 08 23 subu r1,r1,r31 + d4: 00 00 00 00 nop + d8: 00 3f 08 26 xor r1,r1,r31 + dc: 00 00 00 00 nop + e0: 38 3f 00 00 xori r31,r1,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 03 e1 08 05 srmv r1,r1,r31,0x0 + f4: 00 00 00 00 nop + f8: 03 e1 08 01 slmv r1,r1,r31,0x0 + fc: 00 00 00 00 nop + 100: 9c 1f 08 00 ram r1,r31,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 70 20 ff bd bbi r1\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 78 20 ff bb bbin r1\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 74 3f ff b9 bbv r1,r31,0 <_start> + 11c: 00 00 00 00 nop + 120: 7c 3f ff b7 bbvn r1,r31,0 <_start> + 124: 00 00 00 00 nop + 128: f0 20 ff b5 bbil r1\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: f8 20 ff b3 bbinl r1\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f4 3f ff b1 bbvl r1,r31,0 <_start> + 13c: 00 00 00 00 nop + 140: fc 3f ff af bbvnl r1,r31,0 <_start> + 144: 00 00 00 00 nop + 148: 10 3f ff ad beq r1,r31,0 <_start> + 14c: 00 00 00 00 nop + 150: 50 3f ff ab beql r1,r31,0 <_start> + 154: 00 00 00 00 nop + 158: 04 21 ff a9 bgez r1,0 <_start> + 15c: 00 00 00 00 nop + 160: 04 35 ff a7 bgtzal r1,0 <_start> + 164: 00 00 00 00 nop + 168: 04 31 ff a5 bgezal r1,0 <_start> + 16c: 00 00 00 00 nop + 170: 04 37 ff a3 bgtzall r1,0 <_start> + 174: 00 00 00 00 nop + 178: 04 33 ff a1 bgezall r1,0 <_start> + 17c: 00 00 00 00 nop + 180: 04 23 ff 9f bgezl r1,0 <_start> + 184: 00 00 00 00 nop + 188: 04 27 ff 9d bgtzl r1,0 <_start> + 18c: 00 00 00 00 nop + 190: 04 25 ff 9b bgtz r1,0 <_start> + 194: 00 00 00 00 nop + 198: 04 24 ff 99 blez r1,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 04 34 ff 97 blezal r1,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 04 20 ff 95 bltz r1,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 04 30 ff 93 bltzal r1,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 04 26 ff 91 blezl r1,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 04 22 ff 8f bltzl r1,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 04 36 ff 8d blezall r1,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 04 32 ff 8b bltzall r1,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 18 3f ff 89 bmb r1,r31,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 58 3f ff 87 bmbl r1,r31,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 60 3f ff 85 bmb0 r1,r31,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 64 3f ff 83 bmb1 r1,r31,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 68 3f ff 81 bmb2 r1,r31,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6c 3f ff 7f bmb3 r1,r31,0 <_start> + 204: 00 00 00 00 nop + 208: 14 3f ff 7d bne r1,r31,0 <_start> + 20c: 00 00 00 00 nop + 210: 54 3f ff 7b bnel r1,r31,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 01 00 00 jal r1,0 <_start> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 3f 00 02 ctc r1,r31 + 244: 00 00 00 00 nop + 248: 4c 1f 08 00 cfc r1,r31 + 24c: 00 00 00 00 nop + 250: 8c 3f 00 00 lw r31,0x0\(r1\) + 254: 00 00 00 00 nop + 258: 84 3f 00 00 lh r31,0x0\(r1\) + 25c: 00 00 00 00 nop + 260: 80 3f 00 00 lb r31,0x0\(r1\) + 264: 00 00 00 00 nop + 268: 94 3f 00 00 lhu r31,0x0\(r1\) + 26c: 00 00 00 00 nop + 270: 90 3f 00 00 lbu r31,0x0\(r1\) + 274: 00 00 00 00 nop + 278: a0 3f 00 00 sb r31,0x0\(r1\) + 27c: 00 00 00 00 nop + 280: a4 3f 00 00 sh r31,0x0\(r1\) + 284: 00 00 00 00 nop + 288: ac 3f 00 00 sw r31,0x0\(r1\) + 28c: 00 00 00 00 nop + 290: 4f e1 08 08 rba r1,r31,r1 + 294: 00 00 00 00 nop + 298: 4f e1 08 0a rbar r1,r31,r1 + 29c: 00 00 00 00 nop + 2a0: 4f e1 08 09 rbal r1,r31,r1 + 2a4: 00 00 00 00 nop + 2a8: 4f e1 08 10 wba r1,r31,r1 + 2ac: 00 00 00 00 nop + 2b0: 4f e1 08 12 wbac r1,r31,r1 + 2b4: 00 00 00 00 nop + 2b8: 4f e1 08 11 wbau r1,r31,r1 + 2bc: 00 00 00 00 nop + 2c0: 4f e1 0a 00 rbi r1,r31,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4f e1 09 00 rbir r1,r31,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4f e1 0b 00 rbil r1,r31,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4f e1 0e 00 wbi r1,r31,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4f e1 0d 00 wbic r1,r31,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4f e1 0f 00 wbiu r1,r31,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4f e1 08 28 pkrla r1,r31,r1 + 2f4: 00 00 00 00 nop + 2f8: 4f e1 08 2a pkrlah r1,r31,r1 + 2fc: 00 00 00 00 nop + 300: 4f e1 08 29 pkrlau r1,r31,r1 + 304: 00 00 00 00 nop + 308: 4b e1 08 00 pkrli r1,r31,r1,0x0 + 30c: 00 00 00 00 nop + 310: 4b e1 0a 00 pkrlih r1,r31,r1,0x0 + 314: 00 00 00 00 nop + 318: 4b e1 09 00 pkrliu r1,r31,r1,0x0 + 31c: 00 00 00 00 nop + 320: 4c 01 f8 01 lock r31,r1 + 324: 00 00 00 00 nop + 328: 4c 01 f8 03 unlk r31,r1 + 32c: 00 00 00 00 nop + 330: 4f e1 08 06 swwr r1,r31,r1 + 334: 00 00 00 00 nop + 338: 4f e1 08 07 swwru r1,r31,r1 + 33c: 00 00 00 00 nop + 340: 4c 1f 08 04 swrd r1,r31 + 344: 00 00 00 00 nop + 348: 4c 1f 08 05 swrdl r1,r31 + 34c: 00 00 00 00 nop + 350: 4c 1e 10 0c dwrd r2,r30 + 354: 00 00 00 00 nop + 358: 4c 1e 10 0d dwrdl r2,r30 + 35c: 00 00 00 00 nop + 360: 4c 1f 0c 18 cam36 r1,r31,0x3,0x0 + 364: 00 00 00 00 nop + 368: 4c 1f 0c 43 cam72 r1,r31,0x3,0x0 + 36c: 00 00 00 00 nop + 370: 4c 1f 0c 83 cam144 r1,r31,0x3,0x0 + 374: 00 00 00 00 nop + 378: 4c 1f 0c c3 cam288 r1,r31,0x3,0x0 + 37c: 00 00 00 00 nop + 380: 4c 3f 08 ab cm32and r1,r1,r31 + 384: 00 00 00 00 nop + 388: 4c 3f 08 a3 cm32andn r1,r1,r31 + 38c: 00 00 00 00 nop + 390: 4c 3f 08 aa cm32or r1,r1,r31 + 394: 00 00 00 00 nop + 398: 4c 3f 08 b0 cm32ra r1,r1,r31 + 39c: 00 00 00 00 nop + 3a0: 4c 1f 08 a1 cm32rd r1,r31 + 3a4: 00 00 00 00 nop + 3a8: 4c 1f 08 a4 cm32ri r1,r31 + 3ac: 00 00 00 00 nop + 3b0: 4c 3f 08 a0 cm32rs r1,r1,r31 + 3b4: 00 00 00 00 nop + 3b8: 4c 3f 08 b8 cm32sa r1,r1,r31 + 3bc: 00 00 00 00 nop + 3c0: 4c 1f 08 a9 cm32sd r1,r31 + 3c4: 00 00 00 00 nop + 3c8: 4c 1f 08 ac cm32si r1,r31 + 3cc: 00 00 00 00 nop + 3d0: 4c 3f 08 a8 cm32ss r1,r1,r31 + 3d4: 00 00 00 00 nop + 3d8: 4c 3f 08 a2 cm32xor r1,r1,r31 + 3dc: 00 00 00 00 nop + 3e0: 4c 1e 10 85 cm64clr r2,r30 + 3e4: 00 00 00 00 nop + 3e8: 4c 5e 10 90 cm64ra r2,r2,r30 + 3ec: 00 00 00 00 nop + 3f0: 4c 1e 10 81 cm64rd r2,r30 + 3f4: 00 00 00 00 nop + 3f8: 4c 1e 10 84 cm64ri r2,r30 + 3fc: 00 00 00 00 nop + 400: 4c 5e 10 94 cm64ria2 r2,r2,r30 + 404: 00 00 00 00 nop + 408: 4c 5e 10 80 cm64rs r2,r2,r30 + 40c: 00 00 00 00 nop + 410: 4c 5e 10 98 cm64sa r2,r2,r30 + 414: 00 00 00 00 nop + 418: 4c 1e 10 89 cm64sd r2,r30 + 41c: 00 00 00 00 nop + 420: 4c 1e 10 8c cm64si r2,r30 + 424: 00 00 00 00 nop + 428: 4c 5e 10 9c cm64sia2 r2,r2,r30 + 42c: 00 00 00 00 nop + 430: 4c 5e 10 88 cm64ss r2,r2,r30 + 434: 00 00 00 00 nop + 438: 4c 5e 10 95 cm128ria2 r2,r2,r30 + 43c: 00 00 00 00 nop + 440: 4c 5e 10 93 cm128ria3 r2,r2,r30,0x3 + 444: 00 00 00 00 nop + 448: 4c 5e 10 b3 cm128ria4 r2,r2,r30,0x3 + 44c: 00 00 00 00 nop + 450: 4c 5e 10 9d cm128sia2 r2,r2,r30 + 454: 00 00 00 00 nop + 458: 4c 5e 10 9b cm128sia3 r2,r2,r30,0x3 + 45c: 00 00 00 00 nop + 460: 4c 3f 08 bb cm128sia4 r1,r1,r31,0x3 + 464: 00 00 00 00 nop + 468: 4c 3f 08 a6 cm128vsa r1,r1,r31 + 46c: 00 00 00 00 nop + 470: 4c 3f 08 14 crc32 r1,r1,r31 + 474: 00 00 00 00 nop + 478: 4c 3f 08 15 crc32b r1,r1,r31 + 47c: 00 00 00 00 nop + 480: 4f e0 08 26 chkhdr r1,r31 + 484: 00 00 00 00 nop + 488: 4c 00 08 24 avail r1 + 48c: 00 00 00 00 nop + 490: 4c 20 f8 25 free r31,r1 + 494: 00 00 00 00 nop + 498: 4c 00 08 2c cmphdr r1 + 49c: 00 00 00 00 nop + 4a0: 4c 1f 08 20 mcid r1,r31 + 4a4: 00 00 00 00 nop + 4a8: 4c 00 f8 22 dba r31 + 4ac: 00 00 00 00 nop + 4b0: 4c 01 f8 21 dbd r31,r0,r1 + 4b4: 00 00 00 00 nop + 4b8: 4c 20 f8 23 dpwt r31,r1 + 4bc: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test3.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test3.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test3.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test3.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,306 @@ +.global _start +_start: + ADD %1,%1,%31 + NOP + ADDI %31,%1,0 + NOP + ADDIU %31,%1,0 + NOP + ADDU %1,%1,%31 + NOP + ADO16 %1,%1,%31 + NOP + AND %1,%1,%31 + NOP + ANDI %31,%1,0 + NOP + ANDOI %31,%1,0 + NOP + ANDOUI %31,%1,0 + NOP + LUI %31,0 + NOP + MRGB %1,%1,%31,0 + NOP + NOR %1,%1,%31 + NOP + OR %1,%1,%31 + NOP + ORI %31,%1,0 + NOP + ORUI %31,%1,0 + NOP + SLL %1,%31,0 + NOP + SLLV %1,%31,%1 + NOP + SLT %1,%1,%31 + NOP + SLTI %31,%1,0 + NOP + SLTIU %31,%1,0 + NOP + SLTU %1,%1,%31 + NOP + SRA %1,%31,0 + NOP + SRAV %1,%31,%1 + NOP + SRL %1,%31,0 + NOP + SRLV %1,%31,%1 + NOP + SUB %1,%1,%31 + NOP + SUBU %1,%1,%31 + NOP + XOR %1,%1,%31 + NOP + XORI %31,%1,0 + NOP + NOP + NOP + SRMV %1,%1,%31,0 + NOP + SLMV %1,%1,%31,0 + NOP + RAM %1,%31,0,0,0 + NOP + BBI %1(0),_start + NOP + BBIN %1(0),_start + NOP + BBV %1,%31,_start + NOP + BBVN %1,%31,_start + NOP + BBIL %1(0),_start + NOP + BBINL %1(0),_start + NOP + BBVL %1,%31,_start + NOP + BBVNL %1,%31,_start + NOP + BEQ %1,%31,_start + NOP + BEQL %1,%31,_start + NOP + BGEZ %1,_start + NOP + BGTZAL %1,_start + NOP + BGEZAL %1,_start + NOP + BGTZALL %1,_start + NOP + BGEZALL %1,_start + NOP + BGEZL %1,_start + NOP + BGTZL %1,_start + NOP + BGTZ %1,_start + NOP + BLEZ %1,_start + NOP + BLEZAL %1,_start + NOP + BLTZ %1,_start + NOP + BLTZAL %1,_start + NOP + BLEZL %1,_start + NOP + BLTZL %1,_start + NOP + BLEZALL %1,_start + NOP + BLTZALL %1,_start + NOP + BMB %1,%31,_start + NOP + BMBL %1,%31,_start + NOP + BMB0 %1,%31,_start + NOP + BMB1 %1,%31,_start + NOP + BMB2 %1,%31,_start + NOP + BMB3 %1,%31,_start + NOP + BNE %1,%31,_start + NOP + BNEL %1,%31,_start + NOP + J 0 + NOP + JAL %1,0 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%31 + NOP + CFC %1,%31 + NOP + LW %31,0(%1) + NOP + LH %31,0(%1) + NOP + LB %31,0(%1) + NOP + LHU %31,0(%1) + NOP + LBU %31,0(%1) + NOP + SB %31,0(%1) + NOP + SH %31,0(%1) + NOP + SW %31,0(%1) + NOP + RBA %1,%31,%1 + NOP + RBAR %1,%31,%1 + NOP + RBAL %1,%31,%1 + NOP + WBA %1,%31,%1 + NOP + WBAC %1,%31,%1 + NOP + WBAU %1,%31,%1 + NOP + RBI %1,%31,%1,0 + NOP + RBIR %1,%31,%1,0 + NOP + RBIL %1,%31,%1,0 + NOP + WBI %1,%31,%1,0 + NOP + WBIC %1,%31,%1,0 + NOP + WBIU %1,%31,%1,0 + NOP + PKRLA %1,%31,%1 + NOP + PKRLAH %1,%31,%1 + NOP + PKRLAU %1,%31,%1 + NOP + PKRLI %1,%31,%1,0 + NOP + PKRLIH %1,%31,%1,0 + NOP + PKRLIU %1,%31,%1,0 + NOP + LOCK %31,%1 + NOP + UNLK %31,%1 + NOP + SWWR %1,%31,%1 + NOP + SWWRU %1,%31,%1 + NOP + SWRD %1,%31 + NOP + SWRDL %1,%31 + NOP + DWRD %2,%30 + NOP + DWRDL %2,%30 + NOP + CAM36 %1,%31,3,0 + NOP + CAM72 %1,%31,3,0 + NOP + CAM144 %1,%31,3,0 + NOP + CAM288 %1,%31,3,0 + NOP + CM32AND %1,%1,%31 + NOP + CM32ANDN %1,%1,%31 + NOP + CM32OR %1,%1,%31 + NOP + CM32RA %1,%1,%31 + NOP + CM32RD %1,%31 + NOP + CM32RI %1,%31 + NOP + CM32RS %1,%1,%31 + NOP + CM32SA %1,%1,%31 + NOP + CM32SD %1,%31 + NOP + CM32SI %1,%31 + NOP + CM32SS %1,%1,%31 + NOP + CM32XOR %1,%1,%31 + NOP + CM64CLR %2,%30 + NOP + CM64RA %2,%2,%30 + NOP + CM64RD %2,%30 + NOP + CM64RI %2,%30 + NOP + CM64RIA2 %2,%2,%30 + NOP + CM64RS %2,%2,%30 + NOP + CM64SA %2,%2,%30 + NOP + CM64SD %2,%30 + NOP + CM64SI %2,%30 + NOP + CM64SIA2 %2,%2,%30 + NOP + CM64SS %2,%2,%30 + NOP + CM128RIA2 %2,%2,%30 + NOP + CM128RIA3 %2,%2,%30,3 + NOP + CM128RIA4 %2,%2,%30,3 + NOP + CM128SIA2 %2,%2,%30 + NOP + CM128SIA3 %2,%2,%30,3 + NOP + CM128SIA4 %1,%1,%31,3 + NOP + CM128VSA %1,%1,%31 + NOP + CRC32 %1,%1,%31 + NOP + CRC32B %1,%1,%31 + NOP + CHKHDR %1,%31 + NOP + AVAIL %1 + NOP + FREE %31,%1 + NOP + CMPHDR %1 + NOP + MCID %1,%31 + NOP + DBA %31 + NOP + DBD %31,%1 + NOP + DPWT %31,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test4.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test4.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test4.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test4.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,315 @@ +#as: -m10 +#objdump: -drz +#name: q10test4 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 03 df 08 20 add r1,r30,r31 + 4: 00 00 00 00 nop + 8: 23 df 00 00 addi r31,r30,0x0 + c: 00 00 00 00 nop + 10: 27 df 00 00 addiu r31,r30,0x0 + 14: 00 00 00 00 nop + 18: 03 df 08 21 addu r1,r30,r31 + 1c: 00 00 00 00 nop + 20: 03 df 08 29 ado16 r1,r30,r31 + 24: 00 00 00 00 nop + 28: 03 df 08 24 and r1,r30,r31 + 2c: 00 00 00 00 nop + 30: 33 df 00 00 andi r31,r30,0x0 + 34: 00 00 00 00 nop + 38: b3 df 00 00 andoi r31,r30,0x0 + 3c: 00 00 00 00 nop + 40: bf df 00 00 andoui r31,r30,0x0 + 44: 00 00 00 00 nop + 48: 3c 1f 00 00 lui r31,0x0 + 4c: 00 00 00 00 nop + 50: 03 df 08 2d mrgb r1,r30,r31,0x0 + 54: 00 00 00 00 nop + 58: 03 df 08 27 nor r1,r30,r31 + 5c: 00 00 00 00 nop + 60: 03 df 08 25 or r1,r30,r31 + 64: 00 00 00 00 nop + 68: 37 df 00 00 ori r31,r30,0x0 + 6c: 00 00 00 00 nop + 70: 3f df 00 00 orui r31,r30,0x0 + 74: 00 00 00 00 nop + 78: 00 1f 08 00 sll r1,r31,0x0 + 7c: 00 00 00 00 nop + 80: 03 df 08 04 sllv r1,r31,r30 + 84: 00 00 00 00 nop + 88: 03 df 08 2a slt r1,r30,r31 + 8c: 00 00 00 00 nop + 90: 2b df 00 00 slti r31,r30,0x0 + 94: 00 00 00 00 nop + 98: 2f df 00 00 sltiu r31,r30,0x0 + 9c: 00 00 00 00 nop + a0: 03 df 08 2b sltu r1,r30,r31 + a4: 00 00 00 00 nop + a8: 00 1f 08 03 sra r1,r31,0x0 + ac: 00 00 00 00 nop + b0: 03 df 08 07 srav r1,r31,r30 + b4: 00 00 00 00 nop + b8: 00 1f 08 02 srl r1,r31,0x0 + bc: 00 00 00 00 nop + c0: 03 df 08 06 srlv r1,r31,r30 + c4: 00 00 00 00 nop + c8: 03 df 08 22 sub r1,r30,r31 + cc: 00 00 00 00 nop + d0: 03 df 08 23 subu r1,r30,r31 + d4: 00 00 00 00 nop + d8: 03 df 08 26 xor r1,r30,r31 + dc: 00 00 00 00 nop + e0: 3b df 00 00 xori r31,r30,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 03 fe 08 05 srmv r1,r30,r31,0x0 + f4: 00 00 00 00 nop + f8: 03 fe 08 01 slmv r1,r30,r31,0x0 + fc: 00 00 00 00 nop + 100: 9c 1f 08 00 ram r1,r31,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 73 c0 ff bd bbi r30\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 7b c0 ff bb bbin r30\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 77 df ff b9 bbv r30,r31,0 <_start> + 11c: 00 00 00 00 nop + 120: 7f df ff b7 bbvn r30,r31,0 <_start> + 124: 00 00 00 00 nop + 128: f3 c0 ff b5 bbil r30\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: fb c0 ff b3 bbinl r30\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f7 df ff b1 bbvl r30,r31,0 <_start> + 13c: 00 00 00 00 nop + 140: ff df ff af bbvnl r30,r31,0 <_start> + 144: 00 00 00 00 nop + 148: 13 df ff ad beq r30,r31,0 <_start> + 14c: 00 00 00 00 nop + 150: 53 df ff ab beql r30,r31,0 <_start> + 154: 00 00 00 00 nop + 158: 07 c1 ff a9 bgez r30,0 <_start> + 15c: 00 00 00 00 nop + 160: 07 d5 ff a7 bgtzal r30,0 <_start> + 164: 00 00 00 00 nop + 168: 07 d1 ff a5 bgezal r30,0 <_start> + 16c: 00 00 00 00 nop + 170: 07 d7 ff a3 bgtzall r30,0 <_start> + 174: 00 00 00 00 nop + 178: 07 d3 ff a1 bgezall r30,0 <_start> + 17c: 00 00 00 00 nop + 180: 07 c3 ff 9f bgezl r30,0 <_start> + 184: 00 00 00 00 nop + 188: 07 c7 ff 9d bgtzl r30,0 <_start> + 18c: 00 00 00 00 nop + 190: 07 c5 ff 9b bgtz r30,0 <_start> + 194: 00 00 00 00 nop + 198: 07 c4 ff 99 blez r30,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 07 d4 ff 97 blezal r30,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 07 c0 ff 95 bltz r30,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 07 d0 ff 93 bltzal r30,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 07 c6 ff 91 blezl r30,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 07 c2 ff 8f bltzl r30,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 07 d6 ff 8d blezall r30,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 07 d2 ff 8b bltzall r30,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 1b df ff 89 bmb r30,r31,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 5b df ff 87 bmbl r30,r31,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 63 df ff 85 bmb0 r30,r31,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 67 df ff 83 bmb1 r30,r31,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 6b df ff 81 bmb2 r30,r31,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6f df ff 7f bmb3 r30,r31,0 <_start> + 204: 00 00 00 00 nop + 208: 17 df ff 7d bne r30,r31,0 <_start> + 20c: 00 00 00 00 nop + 210: 57 df ff 7b bnel r30,r31,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 1e 00 00 jal r30,0 <_start> + 224: 00 00 00 00 nop + 228: 03 c0 08 09 jalr r1,r30 + 22c: 00 00 00 00 nop + 230: 03 c0 00 08 jr r30 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4f df 00 02 ctc r30,r31 + 244: 00 00 00 00 nop + 248: 4c 1f 08 00 cfc r1,r31 + 24c: 00 00 00 00 nop + 250: 8f df 00 00 lw r31,0x0\(r30\) + 254: 00 00 00 00 nop + 258: 87 df 00 00 lh r31,0x0\(r30\) + 25c: 00 00 00 00 nop + 260: 83 df 00 00 lb r31,0x0\(r30\) + 264: 00 00 00 00 nop + 268: 97 df 00 00 lhu r31,0x0\(r30\) + 26c: 00 00 00 00 nop + 270: 93 df 00 00 lbu r31,0x0\(r30\) + 274: 00 00 00 00 nop + 278: a3 df 00 00 sb r31,0x0\(r30\) + 27c: 00 00 00 00 nop + 280: a7 df 00 00 sh r31,0x0\(r30\) + 284: 00 00 00 00 nop + 288: af df 00 00 sw r31,0x0\(r30\) + 28c: 00 00 00 00 nop + 290: 4f e1 f0 08 rba r30,r31,r1 + 294: 00 00 00 00 nop + 298: 4f e1 f0 0a rbar r30,r31,r1 + 29c: 00 00 00 00 nop + 2a0: 4f e1 f0 09 rbal r30,r31,r1 + 2a4: 00 00 00 00 nop + 2a8: 4f e1 f0 10 wba r30,r31,r1 + 2ac: 00 00 00 00 nop + 2b0: 4f e1 f0 12 wbac r30,r31,r1 + 2b4: 00 00 00 00 nop + 2b8: 4f e1 f0 11 wbau r30,r31,r1 + 2bc: 00 00 00 00 nop + 2c0: 4f e1 f2 00 rbi r30,r31,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4f e1 f1 00 rbir r30,r31,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4f e1 f3 00 rbil r30,r31,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4f e1 f6 00 wbi r30,r31,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4f e1 f5 00 wbic r30,r31,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4f e1 f7 00 wbiu r30,r31,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4f e1 f0 28 pkrla r30,r31,r1 + 2f4: 00 00 00 00 nop + 2f8: 4f e1 f0 2a pkrlah r30,r31,r1 + 2fc: 00 00 00 00 nop + 300: 4f e1 f0 29 pkrlau r30,r31,r1 + 304: 00 00 00 00 nop + 308: 4b e1 f0 00 pkrli r30,r31,r1,0x0 + 30c: 00 00 00 00 nop + 310: 4b e1 f2 00 pkrlih r30,r31,r1,0x0 + 314: 00 00 00 00 nop + 318: 4b e1 f1 00 pkrliu r30,r31,r1,0x0 + 31c: 00 00 00 00 nop + 320: 4c 01 f8 01 lock r31,r1 + 324: 00 00 00 00 nop + 328: 4c 01 f8 03 unlk r31,r1 + 32c: 00 00 00 00 nop + 330: 4f e1 f0 06 swwr r30,r31,r1 + 334: 00 00 00 00 nop + 338: 4f e1 f0 07 swwru r30,r31,r1 + 33c: 00 00 00 00 nop + 340: 4c 1f 08 04 swrd r1,r31 + 344: 00 00 00 00 nop + 348: 4c 1f 08 05 swrdl r1,r31 + 34c: 00 00 00 00 nop + 350: 4c 1e 10 0c dwrd r2,r30 + 354: 00 00 00 00 nop + 358: 4c 1e 10 0d dwrdl r2,r30 + 35c: 00 00 00 00 nop + 360: 4c 1e 0c 20 cam36 r1,r30,0x4,0x0 + 364: 00 00 00 00 nop + 368: 4c 1e 0c 44 cam72 r1,r30,0x4,0x0 + 36c: 00 00 00 00 nop + 370: 4c 1e 0c 84 cam144 r1,r30,0x4,0x0 + 374: 00 00 00 00 nop + 378: 4c 1e 0c c4 cam288 r1,r30,0x4,0x0 + 37c: 00 00 00 00 nop + 380: 4f df 08 ab cm32and r1,r30,r31 + 384: 00 00 00 00 nop + 388: 4f df 08 a3 cm32andn r1,r30,r31 + 38c: 00 00 00 00 nop + 390: 4f df 08 aa cm32or r1,r30,r31 + 394: 00 00 00 00 nop + 398: 4f df 08 b0 cm32ra r1,r30,r31 + 39c: 00 00 00 00 nop + 3a0: 4c 1f 08 a1 cm32rd r1,r31 + 3a4: 00 00 00 00 nop + 3a8: 4c 1f 08 a4 cm32ri r1,r31 + 3ac: 00 00 00 00 nop + 3b0: 4f df 08 a0 cm32rs r1,r30,r31 + 3b4: 00 00 00 00 nop + 3b8: 4f df 08 b8 cm32sa r1,r30,r31 + 3bc: 00 00 00 00 nop + 3c0: 4c 1f 08 a9 cm32sd r1,r31 + 3c4: 00 00 00 00 nop + 3c8: 4c 1f 08 ac cm32si r1,r31 + 3cc: 00 00 00 00 nop + 3d0: 4f df 08 a8 cm32ss r1,r30,r31 + 3d4: 00 00 00 00 nop + 3d8: 4f df 08 a2 cm32xor r1,r30,r31 + 3dc: 00 00 00 00 nop + 3e0: 4c 1e 10 85 cm64clr r2,r30 + 3e4: 00 00 00 00 nop + 3e8: 4f de 10 90 cm64ra r2,r30,r30 + 3ec: 00 00 00 00 nop + 3f0: 4c 1e 10 81 cm64rd r2,r30 + 3f4: 00 00 00 00 nop + 3f8: 4c 1e 10 84 cm64ri r2,r30 + 3fc: 00 00 00 00 nop + 400: 4f de 10 94 cm64ria2 r2,r30,r30 + 404: 00 00 00 00 nop + 408: 4f de 10 80 cm64rs r2,r30,r30 + 40c: 00 00 00 00 nop + 410: 4f de 10 98 cm64sa r2,r30,r30 + 414: 00 00 00 00 nop + 418: 4c 1e 10 89 cm64sd r2,r30 + 41c: 00 00 00 00 nop + 420: 4c 1e 10 8c cm64si r2,r30 + 424: 00 00 00 00 nop + 428: 4f de 10 9c cm64sia2 r2,r30,r30 + 42c: 00 00 00 00 nop + 430: 4f de 10 88 cm64ss r2,r30,r30 + 434: 00 00 00 00 nop + 438: 4f de 10 95 cm128ria2 r2,r30,r30 + 43c: 00 00 00 00 nop + 440: 4f de 10 93 cm128ria3 r2,r30,r30,0x3 + 444: 00 00 00 00 nop + 448: 4f de 10 b4 cm128ria4 r2,r30,r30,0x4 + 44c: 00 00 00 00 nop + 450: 4f de 10 9d cm128sia2 r2,r30,r30 + 454: 00 00 00 00 nop + 458: 4f de 10 9b cm128sia3 r2,r30,r30,0x3 + 45c: 00 00 00 00 nop + 460: 4f df 08 bc cm128sia4 r1,r30,r31,0x4 + 464: 00 00 00 00 nop + 468: 4f df 08 a6 cm128vsa r1,r30,r31 + 46c: 00 00 00 00 nop + 470: 4f df 08 14 crc32 r1,r30,r31 + 474: 00 00 00 00 nop + 478: 4f df 08 15 crc32b r1,r30,r31 + 47c: 00 00 00 00 nop + 480: 4f e0 08 26 chkhdr r1,r31 + 484: 00 00 00 00 nop + 488: 4c 00 08 24 avail r1 + 48c: 00 00 00 00 nop + 490: 4c 20 f8 25 free r31,r1 + 494: 00 00 00 00 nop + 498: 4c 20 f8 27 tstod r31,r1 + 49c: 00 00 00 00 nop + 4a0: 4c 00 08 2c cmphdr r1 + 4a4: 00 00 00 00 nop + 4a8: 4c 1f 08 20 mcid r1,r31 + 4ac: 00 00 00 00 nop + 4b0: 4c 00 f0 22 dba r30 + 4b4: 00 00 00 00 nop + 4b8: 4c 01 f8 21 dbd r31,r0,r1 + 4bc: 00 00 00 00 nop + 4c0: 4c 20 f8 23 dpwt r31,r1 + 4c4: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test4.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test4.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test4.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test4.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,308 @@ +.global _start +_start: + ADD %1,%30,%31 + NOP + ADDI %31,%30,0 + NOP + ADDIU %31,%30,0 + NOP + ADDU %1,%30,%31 + NOP + ADO16 %1,%30,%31 + NOP + AND %1,%30,%31 + NOP + ANDI %31,%30,0 + NOP + ANDOI %31,%30,0 + NOP + ANDOUI %31,%30,0 + NOP + LUI %31,0 + NOP + MRGB %1,%30,%31,0 + NOP + NOR %1,%30,%31 + NOP + OR %1,%30,%31 + NOP + ORI %31,%30,0 + NOP + ORUI %31,%30,0 + NOP + SLL %1,%31,0 + NOP + SLLV %1,%31,%30 + NOP + SLT %1,%30,%31 + NOP + SLTI %31,%30,0 + NOP + SLTIU %31,%30,0 + NOP + SLTU %1,%30,%31 + NOP + SRA %1,%31,0 + NOP + SRAV %1,%31,%30 + NOP + SRL %1,%31,0 + NOP + SRLV %1,%31,%30 + NOP + SUB %1,%30,%31 + NOP + SUBU %1,%30,%31 + NOP + XOR %1,%30,%31 + NOP + XORI %31,%30,0 + NOP + NOP + NOP + SRMV %1,%30,%31,0 + NOP + SLMV %1,%30,%31,0 + NOP + RAM %1,%31,0,0,0 + NOP + BBI %30(0),_start + NOP + BBIN %30(0),_start + NOP + BBV %30,%31,_start + NOP + BBVN %30,%31,_start + NOP + BBIL %30(0),_start + NOP + BBINL %30(0),_start + NOP + BBVL %30,%31,_start + NOP + BBVNL %30,%31,_start + NOP + BEQ %30,%31,_start + NOP + BEQL %30,%31,_start + NOP + BGEZ %30,_start + NOP + BGTZAL %30,_start + NOP + BGEZAL %30,_start + NOP + BGTZALL %30,_start + NOP + BGEZALL %30,_start + NOP + BGEZL %30,_start + NOP + BGTZL %30,_start + NOP + BGTZ %30,_start + NOP + BLEZ %30,_start + NOP + BLEZAL %30,_start + NOP + BLTZ %30,_start + NOP + BLTZAL %30,_start + NOP + BLEZL %30,_start + NOP + BLTZL %30,_start + NOP + BLEZALL %30,_start + NOP + BLTZALL %30,_start + NOP + BMB %30,%31,_start + NOP + BMBL %30,%31,_start + NOP + BMB0 %30,%31,_start + NOP + BMB1 %30,%31,_start + NOP + BMB2 %30,%31,_start + NOP + BMB3 %30,%31,_start + NOP + BNE %30,%31,_start + NOP + BNEL %30,%31,_start + NOP + J 0 + NOP + JAL %30,0 + NOP + JALR %1,%30 + NOP + JR %30 + NOP + BREAK + NOP + CTC %30,%31 + NOP + CFC %1,%31 + NOP + LW %31,0(%30) + NOP + LH %31,0(%30) + NOP + LB %31,0(%30) + NOP + LHU %31,0(%30) + NOP + LBU %31,0(%30) + NOP + SB %31,0(%30) + NOP + SH %31,0(%30) + NOP + SW %31,0(%30) + NOP + RBA %30,%31,%1 + NOP + RBAR %30,%31,%1 + NOP + RBAL %30,%31,%1 + NOP + WBA %30,%31,%1 + NOP + WBAC %30,%31,%1 + NOP + WBAU %30,%31,%1 + NOP + RBI %30,%31,%1,0 + NOP + RBIR %30,%31,%1,0 + NOP + RBIL %30,%31,%1,0 + NOP + WBI %30,%31,%1,0 + NOP + WBIC %30,%31,%1,0 + NOP + WBIU %30,%31,%1,0 + NOP + PKRLA %30,%31,%1 + NOP + PKRLAH %30,%31,%1 + NOP + PKRLAU %30,%31,%1 + NOP + PKRLI %30,%31,%1,0 + NOP + PKRLIH %30,%31,%1,0 + NOP + PKRLIU %30,%31,%1,0 + NOP + LOCK %31,%1 + NOP + UNLK %31,%1 + NOP + SWWR %30,%31,%1 + NOP + SWWRU %30,%31,%1 + NOP + SWRD %1,%31 + NOP + SWRDL %1,%31 + NOP + DWRD %2,%30 + NOP + DWRDL %2,%30 + NOP + CAM36 %1,%30,4,0 + NOP + CAM72 %1,%30,4,0 + NOP + CAM144 %1,%30,4,0 + NOP + CAM288 %1,%30,4,0 + NOP + CM32AND %1,%30,%31 + NOP + CM32ANDN %1,%30,%31 + NOP + CM32OR %1,%30,%31 + NOP + CM32RA %1,%30,%31 + NOP + CM32RD %1,%31 + NOP + CM32RI %1,%31 + NOP + CM32RS %1,%30,%31 + NOP + CM32SA %1,%30,%31 + NOP + CM32SD %1,%31 + NOP + CM32SI %1,%31 + NOP + CM32SS %1,%30,%31 + NOP + CM32XOR %1,%30,%31 + NOP + CM64CLR %2,%30 + NOP + CM64RA %2,%30,%30 + NOP + CM64RD %2,%30 + NOP + CM64RI %2,%30 + NOP + CM64RIA2 %2,%30,%30 + NOP + CM64RS %2,%30,%30 + NOP + CM64SA %2,%30,%30 + NOP + CM64SD %2,%30 + NOP + CM64SI %2,%30 + NOP + CM64SIA2 %2,%30,%30 + NOP + CM64SS %2,%30,%30 + NOP + CM128RIA2 %2,%30,%30 + NOP + CM128RIA3 %2,%30,%30,3 + NOP + CM128RIA4 %2,%30,%30,4 + NOP + CM128SIA2 %2,%30,%30 + NOP + CM128SIA3 %2,%30,%30,3 + NOP + CM128SIA4 %1,%30,%31,4 + NOP + CM128VSA %1,%30,%31 + NOP + CRC32 %1,%30,%31 + NOP + CRC32B %1,%30,%31 + NOP + CHKHDR %1,%31 + NOP + AVAIL %1 + NOP + FREE %31,%1 + NOP + TSTOD %31,%1 + NOP + CMPHDR %1 + NOP + MCID %1,%31 + NOP + DBA %30 + NOP + DBD %31,%1 + NOP + DPWT %31,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test5.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test5.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test5.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test5.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,315 @@ +#as: -m10 +#objdump: -drz +#name: q10test5 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 03 df f0 20 add r30,r30,r31 + 4: 00 00 00 00 nop + 8: 23 df 00 00 addi r31,r30,0x0 + c: 00 00 00 00 nop + 10: 27 df 00 00 addiu r31,r30,0x0 + 14: 00 00 00 00 nop + 18: 03 df f0 21 addu r30,r30,r31 + 1c: 00 00 00 00 nop + 20: 03 df f0 29 ado16 r30,r30,r31 + 24: 00 00 00 00 nop + 28: 03 df f0 24 and r30,r30,r31 + 2c: 00 00 00 00 nop + 30: 33 df 00 00 andi r31,r30,0x0 + 34: 00 00 00 00 nop + 38: b3 df 00 00 andoi r31,r30,0x0 + 3c: 00 00 00 00 nop + 40: bf df 00 00 andoui r31,r30,0x0 + 44: 00 00 00 00 nop + 48: 3c 1f 00 00 lui r31,0x0 + 4c: 00 00 00 00 nop + 50: 03 df f0 2d mrgb r30,r30,r31,0x0 + 54: 00 00 00 00 nop + 58: 03 df f0 27 nor r30,r30,r31 + 5c: 00 00 00 00 nop + 60: 03 df f0 25 or r30,r30,r31 + 64: 00 00 00 00 nop + 68: 37 df 00 00 ori r31,r30,0x0 + 6c: 00 00 00 00 nop + 70: 3f df 00 00 orui r31,r30,0x0 + 74: 00 00 00 00 nop + 78: 00 1f f0 00 sll r30,r31,0x0 + 7c: 00 00 00 00 nop + 80: 03 df f0 04 sllv r30,r31,r30 + 84: 00 00 00 00 nop + 88: 03 df f0 2a slt r30,r30,r31 + 8c: 00 00 00 00 nop + 90: 2b df 00 00 slti r31,r30,0x0 + 94: 00 00 00 00 nop + 98: 2f df 00 00 sltiu r31,r30,0x0 + 9c: 00 00 00 00 nop + a0: 03 df f0 2b sltu r30,r30,r31 + a4: 00 00 00 00 nop + a8: 00 1f f0 03 sra r30,r31,0x0 + ac: 00 00 00 00 nop + b0: 03 df f0 07 srav r30,r31,r30 + b4: 00 00 00 00 nop + b8: 00 1f f0 02 srl r30,r31,0x0 + bc: 00 00 00 00 nop + c0: 03 df f0 06 srlv r30,r31,r30 + c4: 00 00 00 00 nop + c8: 03 df f0 22 sub r30,r30,r31 + cc: 00 00 00 00 nop + d0: 03 df f0 23 subu r30,r30,r31 + d4: 00 00 00 00 nop + d8: 03 df f0 26 xor r30,r30,r31 + dc: 00 00 00 00 nop + e0: 3b df 00 00 xori r31,r30,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 03 fe f0 05 srmv r30,r30,r31,0x0 + f4: 00 00 00 00 nop + f8: 03 fe f0 01 slmv r30,r30,r31,0x0 + fc: 00 00 00 00 nop + 100: 9c 1f f0 00 ram r30,r31,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 73 c0 ff bd bbi r30\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 7b c0 ff bb bbin r30\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 77 df ff b9 bbv r30,r31,0 <_start> + 11c: 00 00 00 00 nop + 120: 7f df ff b7 bbvn r30,r31,0 <_start> + 124: 00 00 00 00 nop + 128: f3 c0 ff b5 bbil r30\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: fb c0 ff b3 bbinl r30\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f7 df ff b1 bbvl r30,r31,0 <_start> + 13c: 00 00 00 00 nop + 140: ff df ff af bbvnl r30,r31,0 <_start> + 144: 00 00 00 00 nop + 148: 13 df ff ad beq r30,r31,0 <_start> + 14c: 00 00 00 00 nop + 150: 53 df ff ab beql r30,r31,0 <_start> + 154: 00 00 00 00 nop + 158: 07 c1 ff a9 bgez r30,0 <_start> + 15c: 00 00 00 00 nop + 160: 07 d5 ff a7 bgtzal r30,0 <_start> + 164: 00 00 00 00 nop + 168: 07 d1 ff a5 bgezal r30,0 <_start> + 16c: 00 00 00 00 nop + 170: 07 d7 ff a3 bgtzall r30,0 <_start> + 174: 00 00 00 00 nop + 178: 07 d3 ff a1 bgezall r30,0 <_start> + 17c: 00 00 00 00 nop + 180: 07 c3 ff 9f bgezl r30,0 <_start> + 184: 00 00 00 00 nop + 188: 07 c7 ff 9d bgtzl r30,0 <_start> + 18c: 00 00 00 00 nop + 190: 07 c5 ff 9b bgtz r30,0 <_start> + 194: 00 00 00 00 nop + 198: 07 c4 ff 99 blez r30,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 07 d4 ff 97 blezal r30,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 07 c0 ff 95 bltz r30,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 07 d0 ff 93 bltzal r30,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 07 c6 ff 91 blezl r30,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 07 c2 ff 8f bltzl r30,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 07 d6 ff 8d blezall r30,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 07 d2 ff 8b bltzall r30,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 1b df ff 89 bmb r30,r31,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 5b df ff 87 bmbl r30,r31,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 63 df ff 85 bmb0 r30,r31,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 67 df ff 83 bmb1 r30,r31,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 6b df ff 81 bmb2 r30,r31,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6f df ff 7f bmb3 r30,r31,0 <_start> + 204: 00 00 00 00 nop + 208: 17 df ff 7d bne r30,r31,0 <_start> + 20c: 00 00 00 00 nop + 210: 57 df ff 7b bnel r30,r31,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 1e 00 00 jal r30,0 <_start> + 224: 00 00 00 00 nop + 228: 03 c0 f0 09 jalr r30,r30 + 22c: 00 00 00 00 nop + 230: 03 c0 00 08 jr r30 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4f df 00 02 ctc r30,r31 + 244: 00 00 00 00 nop + 248: 4c 1f f0 00 cfc r30,r31 + 24c: 00 00 00 00 nop + 250: 8f df 00 00 lw r31,0x0\(r30\) + 254: 00 00 00 00 nop + 258: 87 df 00 00 lh r31,0x0\(r30\) + 25c: 00 00 00 00 nop + 260: 83 df 00 00 lb r31,0x0\(r30\) + 264: 00 00 00 00 nop + 268: 97 df 00 00 lhu r31,0x0\(r30\) + 26c: 00 00 00 00 nop + 270: 93 df 00 00 lbu r31,0x0\(r30\) + 274: 00 00 00 00 nop + 278: a3 df 00 00 sb r31,0x0\(r30\) + 27c: 00 00 00 00 nop + 280: a7 df 00 00 sh r31,0x0\(r30\) + 284: 00 00 00 00 nop + 288: af df 00 00 sw r31,0x0\(r30\) + 28c: 00 00 00 00 nop + 290: 4f fe f0 08 rba r30,r31,r30 + 294: 00 00 00 00 nop + 298: 4f fe f0 0a rbar r30,r31,r30 + 29c: 00 00 00 00 nop + 2a0: 4f fe f0 09 rbal r30,r31,r30 + 2a4: 00 00 00 00 nop + 2a8: 4f fe f0 10 wba r30,r31,r30 + 2ac: 00 00 00 00 nop + 2b0: 4f fe f0 12 wbac r30,r31,r30 + 2b4: 00 00 00 00 nop + 2b8: 4f fe f0 11 wbau r30,r31,r30 + 2bc: 00 00 00 00 nop + 2c0: 4f fe f2 00 rbi r30,r31,r30,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4f fe f1 00 rbir r30,r31,r30,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4f fe f3 00 rbil r30,r31,r30,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4f fe f6 00 wbi r30,r31,r30,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4f fe f5 00 wbic r30,r31,r30,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4f fe f7 00 wbiu r30,r31,r30,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4f fe f0 28 pkrla r30,r31,r30 + 2f4: 00 00 00 00 nop + 2f8: 4f fe f0 2a pkrlah r30,r31,r30 + 2fc: 00 00 00 00 nop + 300: 4f fe f0 29 pkrlau r30,r31,r30 + 304: 00 00 00 00 nop + 308: 4b fe f0 00 pkrli r30,r31,r30,0x0 + 30c: 00 00 00 00 nop + 310: 4b fe f2 00 pkrlih r30,r31,r30,0x0 + 314: 00 00 00 00 nop + 318: 4b fe f1 00 pkrliu r30,r31,r30,0x0 + 31c: 00 00 00 00 nop + 320: 4c 1e f8 01 lock r31,r30 + 324: 00 00 00 00 nop + 328: 4c 1e f8 03 unlk r31,r30 + 32c: 00 00 00 00 nop + 330: 4f fe f0 06 swwr r30,r31,r30 + 334: 00 00 00 00 nop + 338: 4f fe f0 07 swwru r30,r31,r30 + 33c: 00 00 00 00 nop + 340: 4c 1f f0 04 swrd r30,r31 + 344: 00 00 00 00 nop + 348: 4c 1f f0 05 swrdl r30,r31 + 34c: 00 00 00 00 nop + 350: 4c 1e f0 0c dwrd r30,r30 + 354: 00 00 00 00 nop + 358: 4c 1e f0 0d dwrdl r30,r30 + 35c: 00 00 00 00 nop + 360: 4c 1f f4 28 cam36 r30,r31,0x5,0x0 + 364: 00 00 00 00 nop + 368: 4c 1f f4 45 cam72 r30,r31,0x5,0x0 + 36c: 00 00 00 00 nop + 370: 4c 1f f4 85 cam144 r30,r31,0x5,0x0 + 374: 00 00 00 00 nop + 378: 4c 1f f4 c5 cam288 r30,r31,0x5,0x0 + 37c: 00 00 00 00 nop + 380: 4f df f0 ab cm32and r30,r30,r31 + 384: 00 00 00 00 nop + 388: 4f df f0 a3 cm32andn r30,r30,r31 + 38c: 00 00 00 00 nop + 390: 4f df f0 aa cm32or r30,r30,r31 + 394: 00 00 00 00 nop + 398: 4f df f0 b0 cm32ra r30,r30,r31 + 39c: 00 00 00 00 nop + 3a0: 4c 1f f0 a1 cm32rd r30,r31 + 3a4: 00 00 00 00 nop + 3a8: 4c 1f f0 a4 cm32ri r30,r31 + 3ac: 00 00 00 00 nop + 3b0: 4f df f0 a0 cm32rs r30,r30,r31 + 3b4: 00 00 00 00 nop + 3b8: 4f df f0 b8 cm32sa r30,r30,r31 + 3bc: 00 00 00 00 nop + 3c0: 4c 1f f0 a9 cm32sd r30,r31 + 3c4: 00 00 00 00 nop + 3c8: 4c 1f f0 ac cm32si r30,r31 + 3cc: 00 00 00 00 nop + 3d0: 4f df f0 a8 cm32ss r30,r30,r31 + 3d4: 00 00 00 00 nop + 3d8: 4f df f0 a2 cm32xor r30,r30,r31 + 3dc: 00 00 00 00 nop + 3e0: 4c 1e f0 85 cm64clr r30,r30 + 3e4: 00 00 00 00 nop + 3e8: 4f de f0 90 cm64ra r30,r30,r30 + 3ec: 00 00 00 00 nop + 3f0: 4c 1e f0 81 cm64rd r30,r30 + 3f4: 00 00 00 00 nop + 3f8: 4c 1e f0 84 cm64ri r30,r30 + 3fc: 00 00 00 00 nop + 400: 4f de f0 94 cm64ria2 r30,r30,r30 + 404: 00 00 00 00 nop + 408: 4f de f0 80 cm64rs r30,r30,r30 + 40c: 00 00 00 00 nop + 410: 4f de f0 98 cm64sa r30,r30,r30 + 414: 00 00 00 00 nop + 418: 4c 1e f0 89 cm64sd r30,r30 + 41c: 00 00 00 00 nop + 420: 4c 1e f0 8c cm64si r30,r30 + 424: 00 00 00 00 nop + 428: 4f de f0 9c cm64sia2 r30,r30,r30 + 42c: 00 00 00 00 nop + 430: 4f de f0 88 cm64ss r30,r30,r30 + 434: 00 00 00 00 nop + 438: 4f de f0 95 cm128ria2 r30,r30,r30 + 43c: 00 00 00 00 nop + 440: 4f de f0 93 cm128ria3 r30,r30,r30,0x3 + 444: 00 00 00 00 nop + 448: 4f de f0 b5 cm128ria4 r30,r30,r30,0x5 + 44c: 00 00 00 00 nop + 450: 4f de f0 9d cm128sia2 r30,r30,r30 + 454: 00 00 00 00 nop + 458: 4f de f0 9b cm128sia3 r30,r30,r30,0x3 + 45c: 00 00 00 00 nop + 460: 4f df f0 bd cm128sia4 r30,r30,r31,0x5 + 464: 00 00 00 00 nop + 468: 4f df f0 a6 cm128vsa r30,r30,r31 + 46c: 00 00 00 00 nop + 470: 4f df f0 14 crc32 r30,r30,r31 + 474: 00 00 00 00 nop + 478: 4f df f0 15 crc32b r30,r30,r31 + 47c: 00 00 00 00 nop + 480: 4f e0 f0 26 chkhdr r30,r31 + 484: 00 00 00 00 nop + 488: 4c 00 f0 24 avail r30 + 48c: 00 00 00 00 nop + 490: 4f c0 f8 25 free r31,r30 + 494: 00 00 00 00 nop + 498: 4f c0 f8 27 tstod r31,r30 + 49c: 00 00 00 00 nop + 4a0: 4c 00 f0 2c cmphdr r30 + 4a4: 00 00 00 00 nop + 4a8: 4c 1f f0 20 mcid r30,r31 + 4ac: 00 00 00 00 nop + 4b0: 4c 00 f0 22 dba r30 + 4b4: 00 00 00 00 nop + 4b8: 4c 1e f8 21 dbd r31,r0,r30 + 4bc: 00 00 00 00 nop + 4c0: 4f c0 f8 23 dpwt r31,r30 + 4c4: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test5.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test5.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test5.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test5.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,308 @@ +.global _start +_start: + ADD %30,%30,%31 + NOP + ADDI %31,%30,0 + NOP + ADDIU %31,%30,0 + NOP + ADDU %30,%30,%31 + NOP + ADO16 %30,%30,%31 + NOP + AND %30,%30,%31 + NOP + ANDI %31,%30,0 + NOP + ANDOI %31,%30,0 + NOP + ANDOUI %31,%30,0 + NOP + LUI %31,0 + NOP + MRGB %30,%30,%31,0 + NOP + NOR %30,%30,%31 + NOP + OR %30,%30,%31 + NOP + ORI %31,%30,0 + NOP + ORUI %31,%30,0 + NOP + SLL %30,%31,0 + NOP + SLLV %30,%31,%30 + NOP + SLT %30,%30,%31 + NOP + SLTI %31,%30,0 + NOP + SLTIU %31,%30,0 + NOP + SLTU %30,%30,%31 + NOP + SRA %30,%31,0 + NOP + SRAV %30,%31,%30 + NOP + SRL %30,%31,0 + NOP + SRLV %30,%31,%30 + NOP + SUB %30,%30,%31 + NOP + SUBU %30,%30,%31 + NOP + XOR %30,%30,%31 + NOP + XORI %31,%30,0 + NOP + NOP + NOP + SRMV %30,%30,%31,0 + NOP + SLMV %30,%30,%31,0 + NOP + RAM %30,%31,0,0,0 + NOP + BBI %30(0),_start + NOP + BBIN %30(0),_start + NOP + BBV %30,%31,_start + NOP + BBVN %30,%31,_start + NOP + BBIL %30(0),_start + NOP + BBINL %30(0),_start + NOP + BBVL %30,%31,_start + NOP + BBVNL %30,%31,_start + NOP + BEQ %30,%31,_start + NOP + BEQL %30,%31,_start + NOP + BGEZ %30,_start + NOP + BGTZAL %30,_start + NOP + BGEZAL %30,_start + NOP + BGTZALL %30,_start + NOP + BGEZALL %30,_start + NOP + BGEZL %30,_start + NOP + BGTZL %30,_start + NOP + BGTZ %30,_start + NOP + BLEZ %30,_start + NOP + BLEZAL %30,_start + NOP + BLTZ %30,_start + NOP + BLTZAL %30,_start + NOP + BLEZL %30,_start + NOP + BLTZL %30,_start + NOP + BLEZALL %30,_start + NOP + BLTZALL %30,_start + NOP + BMB %30,%31,_start + NOP + BMBL %30,%31,_start + NOP + BMB0 %30,%31,_start + NOP + BMB1 %30,%31,_start + NOP + BMB2 %30,%31,_start + NOP + BMB3 %30,%31,_start + NOP + BNE %30,%31,_start + NOP + BNEL %30,%31,_start + NOP + J 0 + NOP + JAL %30,0 + NOP + JALR %30,%30 + NOP + JR %30 + NOP + BREAK + NOP + CTC %30,%31 + NOP + CFC %30,%31 + NOP + LW %31,0(%30) + NOP + LH %31,0(%30) + NOP + LB %31,0(%30) + NOP + LHU %31,0(%30) + NOP + LBU %31,0(%30) + NOP + SB %31,0(%30) + NOP + SH %31,0(%30) + NOP + SW %31,0(%30) + NOP + RBA %30,%31,%30 + NOP + RBAR %30,%31,%30 + NOP + RBAL %30,%31,%30 + NOP + WBA %30,%31,%30 + NOP + WBAC %30,%31,%30 + NOP + WBAU %30,%31,%30 + NOP + RBI %30,%31,%30,0 + NOP + RBIR %30,%31,%30,0 + NOP + RBIL %30,%31,%30,0 + NOP + WBI %30,%31,%30,0 + NOP + WBIC %30,%31,%30,0 + NOP + WBIU %30,%31,%30,0 + NOP + PKRLA %30,%31,%30 + NOP + PKRLAH %30,%31,%30 + NOP + PKRLAU %30,%31,%30 + NOP + PKRLI %30,%31,%30,0 + NOP + PKRLIH %30,%31,%30,0 + NOP + PKRLIU %30,%31,%30,0 + NOP + LOCK %31,%30 + NOP + UNLK %31,%30 + NOP + SWWR %30,%31,%30 + NOP + SWWRU %30,%31,%30 + NOP + SWRD %30,%31 + NOP + SWRDL %30,%31 + NOP + DWRD %30,%30 + NOP + DWRDL %30,%30 + NOP + CAM36 %30,%31,5,0 + NOP + CAM72 %30,%31,5,0 + NOP + CAM144 %30,%31,5,0 + NOP + CAM288 %30,%31,5,0 + NOP + CM32AND %30,%30,%31 + NOP + CM32ANDN %30,%30,%31 + NOP + CM32OR %30,%30,%31 + NOP + CM32RA %30,%30,%31 + NOP + CM32RD %30,%31 + NOP + CM32RI %30,%31 + NOP + CM32RS %30,%30,%31 + NOP + CM32SA %30,%30,%31 + NOP + CM32SD %30,%31 + NOP + CM32SI %30,%31 + NOP + CM32SS %30,%30,%31 + NOP + CM32XOR %30,%30,%31 + NOP + CM64CLR %30,%30 + NOP + CM64RA %30,%30,%30 + NOP + CM64RD %30,%30 + NOP + CM64RI %30,%30 + NOP + CM64RIA2 %30,%30,%30 + NOP + CM64RS %30,%30,%30 + NOP + CM64SA %30,%30,%30 + NOP + CM64SD %30,%30 + NOP + CM64SI %30,%30 + NOP + CM64SIA2 %30,%30,%30 + NOP + CM64SS %30,%30,%30 + NOP + CM128RIA2 %30,%30,%30 + NOP + CM128RIA3 %30,%30,%30,3 + NOP + CM128RIA4 %30,%30,%30,5 + NOP + CM128SIA2 %30,%30,%30 + NOP + CM128SIA3 %30,%30,%30,3 + NOP + CM128SIA4 %30,%30,%31,5 + NOP + CM128VSA %30,%30,%31 + NOP + CRC32 %30,%30,%31 + NOP + CRC32B %30,%30,%31 + NOP + CHKHDR %30,%31 + NOP + AVAIL %30 + NOP + FREE %31,%30 + NOP + TSTOD %31,%30 + NOP + CMPHDR %30 + NOP + MCID %30,%31 + NOP + DBA %30 + NOP + DBD %31,%30 + NOP + DPWT %31,%30 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test6.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test6.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test6.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test6.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,315 @@ +#as: -m10 +#objdump: -drz +#name: q10test6 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 03 de f0 20 add r30,r30,r30 + 4: 00 00 00 00 nop + 8: 23 de 00 00 addi r30,r30,0x0 + c: 00 00 00 00 nop + 10: 27 de 00 00 addiu r30,r30,0x0 + 14: 00 00 00 00 nop + 18: 03 de f0 21 addu r30,r30,r30 + 1c: 00 00 00 00 nop + 20: 03 de f0 29 ado16 r30,r30,r30 + 24: 00 00 00 00 nop + 28: 03 de f0 24 and r30,r30,r30 + 2c: 00 00 00 00 nop + 30: 33 de 00 00 andi r30,r30,0x0 + 34: 00 00 00 00 nop + 38: b3 de 00 00 andoi r30,r30,0x0 + 3c: 00 00 00 00 nop + 40: bf de 00 00 andoui r30,r30,0x0 + 44: 00 00 00 00 nop + 48: 3c 1e 00 00 lui r30,0x0 + 4c: 00 00 00 00 nop + 50: 03 de f0 2d mrgb r30,r30,r30,0x0 + 54: 00 00 00 00 nop + 58: 03 de f0 27 nor r30,r30,r30 + 5c: 00 00 00 00 nop + 60: 03 de f0 25 or r30,r30,r30 + 64: 00 00 00 00 nop + 68: 37 de 00 00 ori r30,r30,0x0 + 6c: 00 00 00 00 nop + 70: 3f de 00 00 orui r30,r30,0x0 + 74: 00 00 00 00 nop + 78: 00 1e f0 00 sll r30,r30,0x0 + 7c: 00 00 00 00 nop + 80: 03 de f0 04 sllv r30,r30,r30 + 84: 00 00 00 00 nop + 88: 03 de f0 2a slt r30,r30,r30 + 8c: 00 00 00 00 nop + 90: 2b de 00 00 slti r30,r30,0x0 + 94: 00 00 00 00 nop + 98: 2f de 00 00 sltiu r30,r30,0x0 + 9c: 00 00 00 00 nop + a0: 03 de f0 2b sltu r30,r30,r30 + a4: 00 00 00 00 nop + a8: 00 1e f0 03 sra r30,r30,0x0 + ac: 00 00 00 00 nop + b0: 03 de f0 07 srav r30,r30,r30 + b4: 00 00 00 00 nop + b8: 00 1e f0 02 srl r30,r30,0x0 + bc: 00 00 00 00 nop + c0: 03 de f0 06 srlv r30,r30,r30 + c4: 00 00 00 00 nop + c8: 03 de f0 22 sub r30,r30,r30 + cc: 00 00 00 00 nop + d0: 03 de f0 23 subu r30,r30,r30 + d4: 00 00 00 00 nop + d8: 03 de f0 26 xor r30,r30,r30 + dc: 00 00 00 00 nop + e0: 3b de 00 00 xori r30,r30,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 03 de f0 05 srmv r30,r30,r30,0x0 + f4: 00 00 00 00 nop + f8: 03 de f0 01 slmv r30,r30,r30,0x0 + fc: 00 00 00 00 nop + 100: 9c 1e f0 00 ram r30,r30,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 73 c0 ff bd bbi r30\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 7b c0 ff bb bbin r30\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 77 de ff b9 bbv r30,r30,0 <_start> + 11c: 00 00 00 00 nop + 120: 7f de ff b7 bbvn r30,r30,0 <_start> + 124: 00 00 00 00 nop + 128: f3 c0 ff b5 bbil r30\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: fb c0 ff b3 bbinl r30\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f7 de ff b1 bbvl r30,r30,0 <_start> + 13c: 00 00 00 00 nop + 140: ff de ff af bbvnl r30,r30,0 <_start> + 144: 00 00 00 00 nop + 148: 13 de ff ad beq r30,r30,0 <_start> + 14c: 00 00 00 00 nop + 150: 53 de ff ab beql r30,r30,0 <_start> + 154: 00 00 00 00 nop + 158: 07 c1 ff a9 bgez r30,0 <_start> + 15c: 00 00 00 00 nop + 160: 07 d5 ff a7 bgtzal r30,0 <_start> + 164: 00 00 00 00 nop + 168: 07 d1 ff a5 bgezal r30,0 <_start> + 16c: 00 00 00 00 nop + 170: 07 d7 ff a3 bgtzall r30,0 <_start> + 174: 00 00 00 00 nop + 178: 07 d3 ff a1 bgezall r30,0 <_start> + 17c: 00 00 00 00 nop + 180: 07 c3 ff 9f bgezl r30,0 <_start> + 184: 00 00 00 00 nop + 188: 07 c7 ff 9d bgtzl r30,0 <_start> + 18c: 00 00 00 00 nop + 190: 07 c5 ff 9b bgtz r30,0 <_start> + 194: 00 00 00 00 nop + 198: 07 c4 ff 99 blez r30,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 07 d4 ff 97 blezal r30,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 07 c0 ff 95 bltz r30,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 07 d0 ff 93 bltzal r30,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 07 c6 ff 91 blezl r30,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 07 c2 ff 8f bltzl r30,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 07 d6 ff 8d blezall r30,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 07 d2 ff 8b bltzall r30,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 1b de ff 89 bmb r30,r30,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 5b de ff 87 bmbl r30,r30,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 63 de ff 85 bmb0 r30,r30,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 67 de ff 83 bmb1 r30,r30,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 6b de ff 81 bmb2 r30,r30,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6f de ff 7f bmb3 r30,r30,0 <_start> + 204: 00 00 00 00 nop + 208: 17 de ff 7d bne r30,r30,0 <_start> + 20c: 00 00 00 00 nop + 210: 57 de ff 7b bnel r30,r30,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 1e 00 00 jal r30,0 <_start> + 224: 00 00 00 00 nop + 228: 03 c0 f0 09 jalr r30,r30 + 22c: 00 00 00 00 nop + 230: 03 c0 00 08 jr r30 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4f de 00 02 ctc r30,r30 + 244: 00 00 00 00 nop + 248: 4c 1e f0 00 cfc r30,r30 + 24c: 00 00 00 00 nop + 250: 8f de 00 00 lw r30,0x0\(r30\) + 254: 00 00 00 00 nop + 258: 87 de 00 00 lh r30,0x0\(r30\) + 25c: 00 00 00 00 nop + 260: 83 de 00 00 lb r30,0x0\(r30\) + 264: 00 00 00 00 nop + 268: 97 de 00 00 lhu r30,0x0\(r30\) + 26c: 00 00 00 00 nop + 270: 93 de 00 00 lbu r30,0x0\(r30\) + 274: 00 00 00 00 nop + 278: a3 de 00 00 sb r30,0x0\(r30\) + 27c: 00 00 00 00 nop + 280: a7 de 00 00 sh r30,0x0\(r30\) + 284: 00 00 00 00 nop + 288: af de 00 00 sw r30,0x0\(r30\) + 28c: 00 00 00 00 nop + 290: 4f de f0 08 rba r30,r30,r30 + 294: 00 00 00 00 nop + 298: 4f de f0 0a rbar r30,r30,r30 + 29c: 00 00 00 00 nop + 2a0: 4f de f0 09 rbal r30,r30,r30 + 2a4: 00 00 00 00 nop + 2a8: 4f de f0 10 wba r30,r30,r30 + 2ac: 00 00 00 00 nop + 2b0: 4f de f0 12 wbac r30,r30,r30 + 2b4: 00 00 00 00 nop + 2b8: 4f de f0 11 wbau r30,r30,r30 + 2bc: 00 00 00 00 nop + 2c0: 4f de f2 00 rbi r30,r30,r30,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4f de f1 00 rbir r30,r30,r30,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4f de f3 00 rbil r30,r30,r30,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4f de f6 00 wbi r30,r30,r30,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4f de f5 00 wbic r30,r30,r30,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4f de f7 00 wbiu r30,r30,r30,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4f de f0 28 pkrla r30,r30,r30 + 2f4: 00 00 00 00 nop + 2f8: 4f de f0 2a pkrlah r30,r30,r30 + 2fc: 00 00 00 00 nop + 300: 4f de f0 29 pkrlau r30,r30,r30 + 304: 00 00 00 00 nop + 308: 4b de f0 00 pkrli r30,r30,r30,0x0 + 30c: 00 00 00 00 nop + 310: 4b de f2 00 pkrlih r30,r30,r30,0x0 + 314: 00 00 00 00 nop + 318: 4b de f1 00 pkrliu r30,r30,r30,0x0 + 31c: 00 00 00 00 nop + 320: 4c 1e f0 01 lock r30,r30 + 324: 00 00 00 00 nop + 328: 4c 1e f0 03 unlk r30,r30 + 32c: 00 00 00 00 nop + 330: 4f de f0 06 swwr r30,r30,r30 + 334: 00 00 00 00 nop + 338: 4f de f0 07 swwru r30,r30,r30 + 33c: 00 00 00 00 nop + 340: 4c 1e f0 04 swrd r30,r30 + 344: 00 00 00 00 nop + 348: 4c 1e f0 05 swrdl r30,r30 + 34c: 00 00 00 00 nop + 350: 4c 1e f0 0c dwrd r30,r30 + 354: 00 00 00 00 nop + 358: 4c 1e f0 0d dwrdl r30,r30 + 35c: 00 00 00 00 nop + 360: 4c 1e f4 30 cam36 r30,r30,0x6,0x0 + 364: 00 00 00 00 nop + 368: 4c 1e f4 46 cam72 r30,r30,0x6,0x0 + 36c: 00 00 00 00 nop + 370: 4c 1e f4 86 cam144 r30,r30,0x6,0x0 + 374: 00 00 00 00 nop + 378: 4c 1e f4 c6 cam288 r30,r30,0x6,0x0 + 37c: 00 00 00 00 nop + 380: 4f de f0 ab cm32and r30,r30,r30 + 384: 00 00 00 00 nop + 388: 4f de f0 a3 cm32andn r30,r30,r30 + 38c: 00 00 00 00 nop + 390: 4f de f0 aa cm32or r30,r30,r30 + 394: 00 00 00 00 nop + 398: 4f de f0 b0 cm32ra r30,r30,r30 + 39c: 00 00 00 00 nop + 3a0: 4c 1e f0 a1 cm32rd r30,r30 + 3a4: 00 00 00 00 nop + 3a8: 4c 1e f0 a4 cm32ri r30,r30 + 3ac: 00 00 00 00 nop + 3b0: 4f de f0 a0 cm32rs r30,r30,r30 + 3b4: 00 00 00 00 nop + 3b8: 4f de f0 b8 cm32sa r30,r30,r30 + 3bc: 00 00 00 00 nop + 3c0: 4c 1e f0 a9 cm32sd r30,r30 + 3c4: 00 00 00 00 nop + 3c8: 4c 1e f0 ac cm32si r30,r30 + 3cc: 00 00 00 00 nop + 3d0: 4f de f0 a8 cm32ss r30,r30,r30 + 3d4: 00 00 00 00 nop + 3d8: 4f de f0 a2 cm32xor r30,r30,r30 + 3dc: 00 00 00 00 nop + 3e0: 4c 1e f0 85 cm64clr r30,r30 + 3e4: 00 00 00 00 nop + 3e8: 4f de f0 90 cm64ra r30,r30,r30 + 3ec: 00 00 00 00 nop + 3f0: 4c 1e f0 81 cm64rd r30,r30 + 3f4: 00 00 00 00 nop + 3f8: 4c 1e f0 84 cm64ri r30,r30 + 3fc: 00 00 00 00 nop + 400: 4f de f0 94 cm64ria2 r30,r30,r30 + 404: 00 00 00 00 nop + 408: 4f de f0 80 cm64rs r30,r30,r30 + 40c: 00 00 00 00 nop + 410: 4f de f0 98 cm64sa r30,r30,r30 + 414: 00 00 00 00 nop + 418: 4c 1e f0 89 cm64sd r30,r30 + 41c: 00 00 00 00 nop + 420: 4c 1e f0 8c cm64si r30,r30 + 424: 00 00 00 00 nop + 428: 4f de f0 9c cm64sia2 r30,r30,r30 + 42c: 00 00 00 00 nop + 430: 4f de f0 88 cm64ss r30,r30,r30 + 434: 00 00 00 00 nop + 438: 4f de f0 95 cm128ria2 r30,r30,r30 + 43c: 00 00 00 00 nop + 440: 4f de f0 93 cm128ria3 r30,r30,r30,0x3 + 444: 00 00 00 00 nop + 448: 4f de f0 b6 cm128ria4 r30,r30,r30,0x6 + 44c: 00 00 00 00 nop + 450: 4f de f0 9d cm128sia2 r30,r30,r30 + 454: 00 00 00 00 nop + 458: 4f de f0 9b cm128sia3 r30,r30,r30,0x3 + 45c: 00 00 00 00 nop + 460: 4f de f0 be cm128sia4 r30,r30,r30,0x6 + 464: 00 00 00 00 nop + 468: 4f de f0 a6 cm128vsa r30,r30,r30 + 46c: 00 00 00 00 nop + 470: 4f de f0 14 crc32 r30,r30,r30 + 474: 00 00 00 00 nop + 478: 4f de f0 15 crc32b r30,r30,r30 + 47c: 00 00 00 00 nop + 480: 4f c0 f0 26 chkhdr r30,r30 + 484: 00 00 00 00 nop + 488: 4c 00 f0 24 avail r30 + 48c: 00 00 00 00 nop + 490: 4f c0 f0 25 free r30,r30 + 494: 00 00 00 00 nop + 498: 4f c0 f0 27 tstod r30,r30 + 49c: 00 00 00 00 nop + 4a0: 4c 00 f0 2c cmphdr r30 + 4a4: 00 00 00 00 nop + 4a8: 4c 1e f0 20 mcid r30,r30 + 4ac: 00 00 00 00 nop + 4b0: 4c 00 f0 22 dba r30 + 4b4: 00 00 00 00 nop + 4b8: 4c 1e f0 21 dbd r30,r0,r30 + 4bc: 00 00 00 00 nop + 4c0: 4f c0 f0 23 dpwt r30,r30 + 4c4: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test6.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test6.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test6.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test6.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,308 @@ +.global _start +_start: + ADD %30,%30,%30 + NOP + ADDI %30,%30,0 + NOP + ADDIU %30,%30,0 + NOP + ADDU %30,%30,%30 + NOP + ADO16 %30,%30,%30 + NOP + AND %30,%30,%30 + NOP + ANDI %30,%30,0 + NOP + ANDOI %30,%30,0 + NOP + ANDOUI %30,%30,0 + NOP + LUI %30,0 + NOP + MRGB %30,%30,%30,0 + NOP + NOR %30,%30,%30 + NOP + OR %30,%30,%30 + NOP + ORI %30,%30,0 + NOP + ORUI %30,%30,0 + NOP + SLL %30,%30,0 + NOP + SLLV %30,%30,%30 + NOP + SLT %30,%30,%30 + NOP + SLTI %30,%30,0 + NOP + SLTIU %30,%30,0 + NOP + SLTU %30,%30,%30 + NOP + SRA %30,%30,0 + NOP + SRAV %30,%30,%30 + NOP + SRL %30,%30,0 + NOP + SRLV %30,%30,%30 + NOP + SUB %30,%30,%30 + NOP + SUBU %30,%30,%30 + NOP + XOR %30,%30,%30 + NOP + XORI %30,%30,0 + NOP + NOP + NOP + SRMV %30,%30,%30,0 + NOP + SLMV %30,%30,%30,0 + NOP + RAM %30,%30,0,0,0 + NOP + BBI %30(0),_start + NOP + BBIN %30(0),_start + NOP + BBV %30,%30,_start + NOP + BBVN %30,%30,_start + NOP + BBIL %30(0),_start + NOP + BBINL %30(0),_start + NOP + BBVL %30,%30,_start + NOP + BBVNL %30,%30,_start + NOP + BEQ %30,%30,_start + NOP + BEQL %30,%30,_start + NOP + BGEZ %30,_start + NOP + BGTZAL %30,_start + NOP + BGEZAL %30,_start + NOP + BGTZALL %30,_start + NOP + BGEZALL %30,_start + NOP + BGEZL %30,_start + NOP + BGTZL %30,_start + NOP + BGTZ %30,_start + NOP + BLEZ %30,_start + NOP + BLEZAL %30,_start + NOP + BLTZ %30,_start + NOP + BLTZAL %30,_start + NOP + BLEZL %30,_start + NOP + BLTZL %30,_start + NOP + BLEZALL %30,_start + NOP + BLTZALL %30,_start + NOP + BMB %30,%30,_start + NOP + BMBL %30,%30,_start + NOP + BMB0 %30,%30,_start + NOP + BMB1 %30,%30,_start + NOP + BMB2 %30,%30,_start + NOP + BMB3 %30,%30,_start + NOP + BNE %30,%30,_start + NOP + BNEL %30,%30,_start + NOP + J 0 + NOP + JAL %30,0 + NOP + JALR %30,%30 + NOP + JR %30 + NOP + BREAK + NOP + CTC %30,%30 + NOP + CFC %30,%30 + NOP + LW %30,0(%30) + NOP + LH %30,0(%30) + NOP + LB %30,0(%30) + NOP + LHU %30,0(%30) + NOP + LBU %30,0(%30) + NOP + SB %30,0(%30) + NOP + SH %30,0(%30) + NOP + SW %30,0(%30) + NOP + RBA %30,%30,%30 + NOP + RBAR %30,%30,%30 + NOP + RBAL %30,%30,%30 + NOP + WBA %30,%30,%30 + NOP + WBAC %30,%30,%30 + NOP + WBAU %30,%30,%30 + NOP + RBI %30,%30,%30,0 + NOP + RBIR %30,%30,%30,0 + NOP + RBIL %30,%30,%30,0 + NOP + WBI %30,%30,%30,0 + NOP + WBIC %30,%30,%30,0 + NOP + WBIU %30,%30,%30,0 + NOP + PKRLA %30,%30,%30 + NOP + PKRLAH %30,%30,%30 + NOP + PKRLAU %30,%30,%30 + NOP + PKRLI %30,%30,%30,0 + NOP + PKRLIH %30,%30,%30,0 + NOP + PKRLIU %30,%30,%30,0 + NOP + LOCK %30,%30 + NOP + UNLK %30,%30 + NOP + SWWR %30,%30,%30 + NOP + SWWRU %30,%30,%30 + NOP + SWRD %30,%30 + NOP + SWRDL %30,%30 + NOP + DWRD %30,%30 + NOP + DWRDL %30,%30 + NOP + CAM36 %30,%30,6,0 + NOP + CAM72 %30,%30,6,0 + NOP + CAM144 %30,%30,6,0 + NOP + CAM288 %30,%30,6,0 + NOP + CM32AND %30,%30,%30 + NOP + CM32ANDN %30,%30,%30 + NOP + CM32OR %30,%30,%30 + NOP + CM32RA %30,%30,%30 + NOP + CM32RD %30,%30 + NOP + CM32RI %30,%30 + NOP + CM32RS %30,%30,%30 + NOP + CM32SA %30,%30,%30 + NOP + CM32SD %30,%30 + NOP + CM32SI %30,%30 + NOP + CM32SS %30,%30,%30 + NOP + CM32XOR %30,%30,%30 + NOP + CM64CLR %30,%30 + NOP + CM64RA %30,%30,%30 + NOP + CM64RD %30,%30 + NOP + CM64RI %30,%30 + NOP + CM64RIA2 %30,%30,%30 + NOP + CM64RS %30,%30,%30 + NOP + CM64SA %30,%30,%30 + NOP + CM64SD %30,%30 + NOP + CM64SI %30,%30 + NOP + CM64SIA2 %30,%30,%30 + NOP + CM64SS %30,%30,%30 + NOP + CM128RIA2 %30,%30,%30 + NOP + CM128RIA3 %30,%30,%30,3 + NOP + CM128RIA4 %30,%30,%30,6 + NOP + CM128SIA2 %30,%30,%30 + NOP + CM128SIA3 %30,%30,%30,3 + NOP + CM128SIA4 %30,%30,%30,6 + NOP + CM128VSA %30,%30,%30 + NOP + CRC32 %30,%30,%30 + NOP + CRC32B %30,%30,%30 + NOP + CHKHDR %30,%30 + NOP + AVAIL %30 + NOP + FREE %30,%30 + NOP + TSTOD %30,%30 + NOP + CMPHDR %30 + NOP + MCID %30,%30 + NOP + DBA %30 + NOP + DBD %30,%30 + NOP + DPWT %30,%30 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test7.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test7.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test7.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test7.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,301 @@ +#as: -m10 +#objdump: -drz +#name: q10test7 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 08 20 add r1,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 00 08 addi r1,r1,0x8 + c: 00 00 00 00 nop + 10: 24 21 00 08 addiu r1,r1,0x8 + 14: 00 00 00 00 nop + 18: 00 21 08 21 addu r1,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 08 29 ado16 r1,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 08 24 and r1,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 00 08 andi r1,r1,0x8 + 34: 00 00 00 00 nop + 38: b0 21 00 08 andoi r1,r1,0x8 + 3c: 00 00 00 00 nop + 40: bc 21 00 08 andoui r1,r1,0x8 + 44: 00 00 00 00 nop + 48: 3c 01 00 08 lui r1,0x8 + 4c: 00 00 00 00 nop + 50: 00 21 08 2d mrgb r1,r1,r1,0x0 + 54: 00 00 00 00 nop + 58: 00 21 08 27 nor r1,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 08 25 or r1,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 00 08 ori r1,r1,0x8 + 6c: 00 00 00 00 nop + 70: 3c 21 00 08 orui r1,r1,0x8 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 08 04 sllv r1,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 08 2a slt r1,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 00 08 slti r1,r1,0x8 + 94: 00 00 00 00 nop + 98: 2c 21 00 08 sltiu r1,r1,0x8 + 9c: 00 00 00 00 nop + a0: 00 21 08 2b sltu r1,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 08 07 srav r1,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 08 06 srlv r1,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 08 22 sub r1,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 08 23 subu r1,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 08 26 xor r1,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 00 08 xori r1,r1,0x8 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 08 05 srmv r1,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 08 01 slmv r1,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 01 08 00 ram r1,r1,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 70 21 00 02 bbi r1\(0x1\),114 <_start\+0x114> + 10c: 00 00 00 00 nop + 110: 78 21 00 02 bbin r1\(0x1\),11c <_start\+0x11c> + 114: 00 00 00 00 nop + 118: 74 21 00 02 bbv r1,r1,124 <_start\+0x124> + 11c: 00 00 00 00 nop + 120: 7c 21 00 02 bbvn r1,r1,12c <_start\+0x12c> + 124: 00 00 00 00 nop + 128: f0 21 00 02 bbil r1\(0x1\),134 <_start\+0x134> + 12c: 00 00 00 00 nop + 130: f8 21 00 02 bbinl r1\(0x1\),13c <_start\+0x13c> + 134: 00 00 00 00 nop + 138: f4 21 00 02 bbvl r1,r1,144 <_start\+0x144> + 13c: 00 00 00 00 nop + 140: fc 21 00 02 bbvnl r1,r1,14c <_start\+0x14c> + 144: 00 00 00 00 nop + 148: 10 21 00 02 beq r1,r1,154 <_start\+0x154> + 14c: 00 00 00 00 nop + 150: 50 21 00 02 beql r1,r1,15c <_start\+0x15c> + 154: 00 00 00 00 nop + 158: 04 21 00 02 bgez r1,164 <_start\+0x164> + 15c: 00 00 00 00 nop + 160: 04 35 00 02 bgtzal r1,16c <_start\+0x16c> + 164: 00 00 00 00 nop + 168: 04 31 00 02 bgezal r1,174 <_start\+0x174> + 16c: 00 00 00 00 nop + 170: 04 37 00 02 bgtzall r1,17c <_start\+0x17c> + 174: 00 00 00 00 nop + 178: 04 33 00 02 bgezall r1,184 <_start\+0x184> + 17c: 00 00 00 00 nop + 180: 04 23 00 02 bgezl r1,18c <_start\+0x18c> + 184: 00 00 00 00 nop + 188: 04 27 00 02 bgtzl r1,194 <_start\+0x194> + 18c: 00 00 00 00 nop + 190: 04 25 00 02 bgtz r1,19c <_start\+0x19c> + 194: 00 00 00 00 nop + 198: 04 24 00 02 blez r1,1a4 <_start\+0x1a4> + 19c: 00 00 00 00 nop + 1a0: 04 34 00 02 blezal r1,1ac <_start\+0x1ac> + 1a4: 00 00 00 00 nop + 1a8: 04 20 00 02 bltz r1,1b4 <_start\+0x1b4> + 1ac: 00 00 00 00 nop + 1b0: 04 30 00 02 bltzal r1,1bc <_start\+0x1bc> + 1b4: 00 00 00 00 nop + 1b8: 04 26 00 02 blezl r1,1c4 <_start\+0x1c4> + 1bc: 00 00 00 00 nop + 1c0: 04 22 00 02 bltzl r1,1cc <_start\+0x1cc> + 1c4: 00 00 00 00 nop + 1c8: 04 36 00 02 blezall r1,1d4 <_start\+0x1d4> + 1cc: 00 00 00 00 nop + 1d0: 04 32 00 02 bltzall r1,1dc <_start\+0x1dc> + 1d4: 00 00 00 00 nop + 1d8: 18 21 00 02 bmb r1,r1,1e4 <_start\+0x1e4> + 1dc: 00 00 00 00 nop + 1e0: 58 21 00 02 bmbl r1,r1,1ec <_start\+0x1ec> + 1e4: 00 00 00 00 nop + 1e8: 60 21 00 02 bmb0 r1,r1,1f4 <_start\+0x1f4> + 1ec: 00 00 00 00 nop + 1f0: 64 21 00 02 bmb1 r1,r1,1fc <_start\+0x1fc> + 1f4: 00 00 00 00 nop + 1f8: 68 21 00 02 bmb2 r1,r1,204 <_start\+0x204> + 1fc: 00 00 00 00 nop + 200: 6c 21 00 02 bmb3 r1,r1,20c <_start\+0x20c> + 204: 00 00 00 00 nop + 208: 14 21 00 02 bne r1,r1,214 <_start\+0x214> + 20c: 00 00 00 00 nop + 210: 54 21 00 02 bnel r1,r1,21c <_start\+0x21c> + 214: 00 00 00 00 nop + 218: 08 00 00 02 j 8 <_start\+0x8> + 21c: 00 00 00 00 nop + 220: 0c 01 00 02 jal r1,8 <_start\+0x8> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 00 08 lw r1,0x8\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 00 08 lh r1,0x8\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 00 08 lb r1,0x8\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 00 08 lhu r1,0x8\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 00 08 lbu r1,0x8\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 00 08 sb r1,0x8\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 00 08 sh r1,0x8\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 00 08 sw r1,0x8\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 21 08 08 rba r1,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 08 0a rbar r1,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 08 09 rbal r1,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 08 10 wba r1,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 08 12 wbac r1,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 08 11 wbau r1,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 0a 00 rbi r1,r1,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4c 21 09 00 rbir r1,r1,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4c 21 0b 00 rbil r1,r1,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4c 21 0e 00 wbi r1,r1,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4c 21 0d 00 wbic r1,r1,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4c 21 0f 00 wbiu r1,r1,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4c 21 08 28 pkrla r1,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 08 2a pkrlah r1,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 08 29 pkrlau r1,r1,r1 + 304: 00 00 00 00 nop + 308: 48 21 08 00 pkrli r1,r1,r1,0x0 + 30c: 00 00 00 00 nop + 310: 48 21 0a 00 pkrlih r1,r1,r1,0x0 + 314: 00 00 00 00 nop + 318: 48 21 09 00 pkrliu r1,r1,r1,0x0 + 31c: 00 00 00 00 nop + 320: 4c 01 08 01 lock r1,r1 + 324: 00 00 00 00 nop + 328: 4c 01 08 03 unlk r1,r1 + 32c: 00 00 00 00 nop + 330: 4c 21 08 06 swwr r1,r1,r1 + 334: 00 00 00 00 nop + 338: 4c 21 08 07 swwru r1,r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 01 08 04 swrd r1,r1 + 344: 00 00 00 00 nop + 348: 4c 01 08 05 swrdl r1,r1 + 34c: 00 00 00 00 nop + 350: 4c 02 10 0c dwrd r2,r2 + 354: 00 00 00 00 nop + 358: 4c 02 10 0d dwrdl r2,r2 + 35c: 00 00 00 00 nop + 360: 4c 21 08 ab cm32and r1,r1,r1 + 364: 00 00 00 00 nop + 368: 4c 21 08 a3 cm32andn r1,r1,r1 + 36c: 00 00 00 00 nop + 370: 4c 21 08 aa cm32or r1,r1,r1 + 374: 00 00 00 00 nop + 378: 4c 21 08 b0 cm32ra r1,r1,r1 + 37c: 00 00 00 00 nop + 380: 4c 01 08 a1 cm32rd r1,r1 + 384: 00 00 00 00 nop + 388: 4c 01 08 a4 cm32ri r1,r1 + 38c: 00 00 00 00 nop + 390: 4c 21 08 a0 cm32rs r1,r1,r1 + 394: 00 00 00 00 nop + 398: 4c 21 08 b8 cm32sa r1,r1,r1 + 39c: 00 00 00 00 nop + 3a0: 4c 01 08 a9 cm32sd r1,r1 + 3a4: 00 00 00 00 nop + 3a8: 4c 01 08 ac cm32si r1,r1 + 3ac: 00 00 00 00 nop + 3b0: 4c 21 08 a8 cm32ss r1,r1,r1 + 3b4: 00 00 00 00 nop + 3b8: 4c 21 08 a2 cm32xor r1,r1,r1 + 3bc: 00 00 00 00 nop + 3c0: 4c 02 10 85 cm64clr r2,r2 + 3c4: 00 00 00 00 nop + 3c8: 4c 42 10 90 cm64ra r2,r2,r2 + 3cc: 00 00 00 00 nop + 3d0: 4c 02 10 81 cm64rd r2,r2 + 3d4: 00 00 00 00 nop + 3d8: 4c 02 10 84 cm64ri r2,r2 + 3dc: 00 00 00 00 nop + 3e0: 4c 42 10 94 cm64ria2 r2,r2,r2 + 3e4: 00 00 00 00 nop + 3e8: 4c 42 10 80 cm64rs r2,r2,r2 + 3ec: 00 00 00 00 nop + 3f0: 4c 42 10 98 cm64sa r2,r2,r2 + 3f4: 00 00 00 00 nop + 3f8: 4c 02 10 89 cm64sd r2,r2 + 3fc: 00 00 00 00 nop + 400: 4c 02 10 8c cm64si r2,r2 + 404: 00 00 00 00 nop + 408: 4c 42 10 9c cm64sia2 r2,r2,r2 + 40c: 00 00 00 00 nop + 410: 4c 42 10 88 cm64ss r2,r2,r2 + 414: 00 00 00 00 nop + 418: 4c 42 10 95 cm128ria2 r2,r2,r2 + 41c: 00 00 00 00 nop + 420: 4c 42 10 b7 cm128ria4 r2,r2,r2,0x7 + 424: 00 00 00 00 nop + 428: 4c 42 10 9d cm128sia2 r2,r2,r2 + 42c: 00 00 00 00 nop + 430: 4c 21 08 bf cm128sia4 r1,r1,r1,0x7 + 434: 00 00 00 00 nop + 438: 4c 21 08 a6 cm128vsa r1,r1,r1 + 43c: 00 00 00 00 nop + 440: 4c 21 08 14 crc32 r1,r1,r1 + 444: 00 00 00 00 nop + 448: 4c 21 08 15 crc32b r1,r1,r1 + 44c: 00 00 00 00 nop + 450: 4c 20 08 26 chkhdr r1,r1 + 454: 00 00 00 00 nop + 458: 4c 00 08 24 avail r1 + 45c: 00 00 00 00 nop + 460: 4c 20 08 25 free r1,r1 + 464: 00 00 00 00 nop + 468: 4c 00 08 2c cmphdr r1 + 46c: 00 00 00 00 nop + 470: 4c 01 08 20 mcid r1,r1 + 474: 00 00 00 00 nop + 478: 4c 00 08 22 dba r1 + 47c: 00 00 00 00 nop + 480: 4c 01 08 21 dbd r1,r0,r1 + 484: 00 00 00 00 nop + 488: 4c 20 08 23 dpwt r1,r1 + 48c: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test7.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test7.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test7.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test7.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,294 @@ +.global _start +_start: + ADD %1,%1,%1 + NOP + ADDI %1,%1,8 + NOP + ADDIU %1,%1,8 + NOP + ADDU %1,%1,%1 + NOP + ADO16 %1,%1,%1 + NOP + AND %1,%1,%1 + NOP + ANDI %1,%1,8 + NOP + ANDOI %1,%1,8 + NOP + ANDOUI %1,%1,8 + NOP + LUI %1,8 + NOP + MRGB %1,%1,%1,0 + NOP + NOR %1,%1,%1 + NOP + OR %1,%1,%1 + NOP + ORI %1,%1,8 + NOP + ORUI %1,%1,8 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%1 + NOP + SLT %1,%1,%1 + NOP + SLTI %1,%1,8 + NOP + SLTIU %1,%1,8 + NOP + SLTU %1,%1,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%1 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%1 + NOP + SUB %1,%1,%1 + NOP + SUBU %1,%1,%1 + NOP + XOR %1,%1,%1 + NOP + XORI %1,%1,8 + NOP + NOP + NOP + SRMV %1,%1,%1,0 + NOP + SLMV %1,%1,%1,0 + NOP + RAM %1,%1,0,0,0 + NOP + BBI %1(1),8 + NOP + BBIN %1(1),8 + NOP + BBV %1,%1,8 + NOP + BBVN %1,%1,8 + NOP + BBIL %1(1),8 + NOP + BBINL %1(1),8 + NOP + BBVL %1,%1,8 + NOP + BBVNL %1,%1,8 + NOP + BEQ %1,%1,8 + NOP + BEQL %1,%1,8 + NOP + BGEZ %1,8 + NOP + BGTZAL %1,8 + NOP + BGEZAL %1,8 + NOP + BGTZALL %1,8 + NOP + BGEZALL %1,8 + NOP + BGEZL %1,8 + NOP + BGTZL %1,8 + NOP + BGTZ %1,8 + NOP + BLEZ %1,8 + NOP + BLEZAL %1,8 + NOP + BLTZ %1,8 + NOP + BLTZAL %1,8 + NOP + BLEZL %1,8 + NOP + BLTZL %1,8 + NOP + BLEZALL %1,8 + NOP + BLTZALL %1,8 + NOP + BMB %1,%1,8 + NOP + BMBL %1,%1,8 + NOP + BMB0 %1,%1,8 + NOP + BMB1 %1,%1,8 + NOP + BMB2 %1,%1,8 + NOP + BMB3 %1,%1,8 + NOP + BNE %1,%1,8 + NOP + BNEL %1,%1,8 + NOP + J 8 + NOP + JAL %1,8 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %1,%1 + NOP + LW %1,8(%1) + NOP + LH %1,8(%1) + NOP + LB %1,8(%1) + NOP + LHU %1,8(%1) + NOP + LBU %1,8(%1) + NOP + SB %1,8(%1) + NOP + SH %1,8(%1) + NOP + SW %1,8(%1) + NOP + RBA %1,%1,%1 + NOP + RBAR %1,%1,%1 + NOP + RBAL %1,%1,%1 + NOP + WBA %1,%1,%1 + NOP + WBAC %1,%1,%1 + NOP + WBAU %1,%1,%1 + NOP + RBI %1,%1,%1,0 + NOP + RBIR %1,%1,%1,0 + NOP + RBIL %1,%1,%1,0 + NOP + WBI %1,%1,%1,0 + NOP + WBIC %1,%1,%1,0 + NOP + WBIU %1,%1,%1,0 + NOP + PKRLA %1,%1,%1 + NOP + PKRLAH %1,%1,%1 + NOP + PKRLAU %1,%1,%1 + NOP + PKRLI %1,%1,%1,0 + NOP + PKRLIH %1,%1,%1,0 + NOP + PKRLIU %1,%1,%1,0 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %1,%1,%1 + NOP + SWWRU %1,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP + DWRD %2,%2 + NOP + DWRDL %2,%2 + NOP + CM32AND %1,%1,%1 + NOP + CM32ANDN %1,%1,%1 + NOP + CM32OR %1,%1,%1 + NOP + CM32RA %1,%1,%1 + NOP + CM32RD %1,%1 + NOP + CM32RI %1,%1 + NOP + CM32RS %1,%1,%1 + NOP + CM32SA %1,%1,%1 + NOP + CM32SD %1,%1 + NOP + CM32SI %1,%1 + NOP + CM32SS %1,%1,%1 + NOP + CM32XOR %1,%1,%1 + NOP + CM64CLR %2,%2 + NOP + CM64RA %2,%2,%2 + NOP + CM64RD %2,%2 + NOP + CM64RI %2,%2 + NOP + CM64RIA2 %2,%2,%2 + NOP + CM64RS %2,%2,%2 + NOP + CM64SA %2,%2,%2 + NOP + CM64SD %2,%2 + NOP + CM64SI %2,%2 + NOP + CM64SIA2 %2,%2,%2 + NOP + CM64SS %2,%2,%2 + NOP + CM128RIA2 %2,%2,%2 + NOP + CM128RIA4 %2,%2,%2,7 + NOP + CM128SIA2 %2,%2,%2 + NOP + CM128SIA4 %1,%1,%1,7 + NOP + CM128VSA %1,%1,%1 + NOP + CRC32 %1,%1,%1 + NOP + CRC32B %1,%1,%1 + NOP + CHKHDR %1,%1 + NOP + AVAIL %1 + NOP + FREE %1,%1 + NOP + CMPHDR %1 + NOP + MCID %1,%1 + NOP + DBA %1 + NOP + DBD %1,%1 + NOP + DPWT %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test8.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test8.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test8.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test8.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,327 @@ +#as: -m10 +#objdump: -drz +#name: q10test8 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 08 20 add r1,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 ff f8 addi r1,r1,0xfff8 + c: 00 00 00 00 nop + 10: 24 21 ff f8 addiu r1,r1,0xfff8 + 14: 00 00 00 00 nop + 18: 00 21 08 21 addu r1,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 08 29 ado16 r1,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 08 24 and r1,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 ff f8 andi r1,r1,0xfff8 + 34: 00 00 00 00 nop + 38: b0 21 ff f8 andoi r1,r1,0xfff8 + 3c: 00 00 00 00 nop + 40: bc 21 ff f8 andoui r1,r1,0xfff8 + 44: 00 00 00 00 nop + 48: 3c 01 ff f8 lui r1,0xfff8 + 4c: 00 00 00 00 nop + 50: 00 21 08 2d mrgb r1,r1,r1,0x0 + 54: 00 00 00 00 nop + 58: 00 21 08 27 nor r1,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 08 25 or r1,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 ff f8 ori r1,r1,0xfff8 + 6c: 00 00 00 00 nop + 70: 3c 21 ff f8 orui r1,r1,0xfff8 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 08 04 sllv r1,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 08 2a slt r1,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 ff f8 slti r1,r1,0xfff8 + 94: 00 00 00 00 nop + 98: 2c 21 ff f8 sltiu r1,r1,0xfff8 + 9c: 00 00 00 00 nop + a0: 00 21 08 2b sltu r1,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 08 07 srav r1,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 08 06 srlv r1,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 08 22 sub r1,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 08 23 subu r1,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 08 26 xor r1,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 ff f8 xori r1,r1,0xfff8 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 08 05 srmv r1,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 08 01 slmv r1,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 01 08 00 ram r1,r1,0x0,0x0,0x0 + 104: 00 00 00 00 nop + 108: 70 3f 00 00 bbi r1\(0x1f\),10c <_start\+0x10c> + 108: R_IQ2000_PC16 _startxfff8 + 10c: 00 00 00 00 nop + 110: 78 3f 00 00 bbin r1\(0x1f\),114 <_start\+0x114> + 110: R_IQ2000_PC16 _startxfff8 + 114: 00 00 00 00 nop + 118: 74 21 00 00 bbv r1,r1,11c <_start\+0x11c> + 118: R_IQ2000_PC16 _startxfff8 + 11c: 00 00 00 00 nop + 120: 7c 21 00 00 bbvn r1,r1,124 <_start\+0x124> + 120: R_IQ2000_PC16 _startxfff8 + 124: 00 00 00 00 nop + 128: f0 3f 00 00 bbil r1\(0x1f\),12c <_start\+0x12c> + 128: R_IQ2000_PC16 _startxfff8 + 12c: 00 00 00 00 nop + 130: f8 3f 00 00 bbinl r1\(0x1f\),134 <_start\+0x134> + 130: R_IQ2000_PC16 _startxfff8 + 134: 00 00 00 00 nop + 138: f4 21 00 00 bbvl r1,r1,13c <_start\+0x13c> + 138: R_IQ2000_PC16 _startxfff8 + 13c: 00 00 00 00 nop + 140: fc 21 00 00 bbvnl r1,r1,144 <_start\+0x144> + 140: R_IQ2000_PC16 _startxfff8 + 144: 00 00 00 00 nop + 148: 10 21 00 00 beq r1,r1,14c <_start\+0x14c> + 148: R_IQ2000_PC16 _startxfff8 + 14c: 00 00 00 00 nop + 150: 50 21 00 00 beql r1,r1,154 <_start\+0x154> + 150: R_IQ2000_PC16 _startxfff8 + 154: 00 00 00 00 nop + 158: 04 21 00 00 bgez r1,15c <_start\+0x15c> + 158: R_IQ2000_PC16 _startxfff8 + 15c: 00 00 00 00 nop + 160: 04 35 00 00 bgtzal r1,164 <_start\+0x164> + 160: R_IQ2000_PC16 _startxfff8 + 164: 00 00 00 00 nop + 168: 04 31 00 00 bgezal r1,16c <_start\+0x16c> + 168: R_IQ2000_PC16 _startxfff8 + 16c: 00 00 00 00 nop + 170: 04 37 00 00 bgtzall r1,174 <_start\+0x174> + 170: R_IQ2000_PC16 _startxfff8 + 174: 00 00 00 00 nop + 178: 04 33 00 00 bgezall r1,17c <_start\+0x17c> + 178: R_IQ2000_PC16 _startxfff8 + 17c: 00 00 00 00 nop + 180: 04 23 00 00 bgezl r1,184 <_start\+0x184> + 180: R_IQ2000_PC16 _startxfff8 + 184: 00 00 00 00 nop + 188: 04 27 00 00 bgtzl r1,18c <_start\+0x18c> + 188: R_IQ2000_PC16 _startxfff8 + 18c: 00 00 00 00 nop + 190: 04 25 00 00 bgtz r1,194 <_start\+0x194> + 190: R_IQ2000_PC16 _startxfff8 + 194: 00 00 00 00 nop + 198: 04 24 00 00 blez r1,19c <_start\+0x19c> + 198: R_IQ2000_PC16 _startxfff8 + 19c: 00 00 00 00 nop + 1a0: 04 34 00 00 blezal r1,1a4 <_start\+0x1a4> + 1a0: R_IQ2000_PC16 _startxfff8 + 1a4: 00 00 00 00 nop + 1a8: 04 20 00 00 bltz r1,1ac <_start\+0x1ac> + 1a8: R_IQ2000_PC16 _startxfff8 + 1ac: 00 00 00 00 nop + 1b0: 04 30 00 00 bltzal r1,1b4 <_start\+0x1b4> + 1b0: R_IQ2000_PC16 _startxfff8 + 1b4: 00 00 00 00 nop + 1b8: 04 26 00 00 blezl r1,1bc <_start\+0x1bc> + 1b8: R_IQ2000_PC16 _startxfff8 + 1bc: 00 00 00 00 nop + 1c0: 04 22 00 00 bltzl r1,1c4 <_start\+0x1c4> + 1c0: R_IQ2000_PC16 _startxfff8 + 1c4: 00 00 00 00 nop + 1c8: 04 36 00 00 blezall r1,1cc <_start\+0x1cc> + 1c8: R_IQ2000_PC16 _startxfff8 + 1cc: 00 00 00 00 nop + 1d0: 04 32 00 00 bltzall r1,1d4 <_start\+0x1d4> + 1d0: R_IQ2000_PC16 _startxfff8 + 1d4: 00 00 00 00 nop + 1d8: 18 21 00 00 bmb r1,r1,1dc <_start\+0x1dc> + 1d8: R_IQ2000_PC16 _startxfff8 + 1dc: 00 00 00 00 nop + 1e0: 58 21 00 00 bmbl r1,r1,1e4 <_start\+0x1e4> + 1e0: R_IQ2000_PC16 _startxfff8 + 1e4: 00 00 00 00 nop + 1e8: 60 21 00 00 bmb0 r1,r1,1ec <_start\+0x1ec> + 1e8: R_IQ2000_PC16 _startxfff8 + 1ec: 00 00 00 00 nop + 1f0: 64 21 00 00 bmb1 r1,r1,1f4 <_start\+0x1f4> + 1f0: R_IQ2000_PC16 _startxfff8 + 1f4: 00 00 00 00 nop + 1f8: 68 21 00 00 bmb2 r1,r1,1fc <_start\+0x1fc> + 1f8: R_IQ2000_PC16 _startxfff8 + 1fc: 00 00 00 00 nop + 200: 6c 21 00 00 bmb3 r1,r1,204 <_start\+0x204> + 200: R_IQ2000_PC16 _startxfff8 + 204: 00 00 00 00 nop + 208: 14 21 00 00 bne r1,r1,20c <_start\+0x20c> + 208: R_IQ2000_PC16 _startxfff8 + 20c: 00 00 00 00 nop + 210: 54 21 00 00 bnel r1,r1,214 <_start\+0x214> + 210: R_IQ2000_PC16 _startxfff8 + 214: 00 00 00 00 nop + 218: 08 00 3f fe j fff8 <_start\+0xfff8> + 21c: 00 00 00 00 nop + 220: 0c 01 3f fe jal r1,fff8 <_start\+0xfff8> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 ff f8 lw r1,0xfff8\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 ff f8 lh r1,0xfff8\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 ff f8 lb r1,0xfff8\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 ff f8 lhu r1,0xfff8\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 ff f8 lbu r1,0xfff8\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 ff f8 sb r1,0xfff8\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 ff f8 sh r1,0xfff8\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 ff f8 sw r1,0xfff8\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 21 08 08 rba r1,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 08 0a rbar r1,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 08 09 rbal r1,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 08 10 wba r1,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 08 12 wbac r1,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 08 11 wbau r1,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 0a 00 rbi r1,r1,r1,0x0 + 2c4: 00 00 00 00 nop + 2c8: 4c 21 09 00 rbir r1,r1,r1,0x0 + 2cc: 00 00 00 00 nop + 2d0: 4c 21 0b 00 rbil r1,r1,r1,0x0 + 2d4: 00 00 00 00 nop + 2d8: 4c 21 0e 00 wbi r1,r1,r1,0x0 + 2dc: 00 00 00 00 nop + 2e0: 4c 21 0d 00 wbic r1,r1,r1,0x0 + 2e4: 00 00 00 00 nop + 2e8: 4c 21 0f 00 wbiu r1,r1,r1,0x0 + 2ec: 00 00 00 00 nop + 2f0: 4c 21 08 28 pkrla r1,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 08 2a pkrlah r1,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 08 29 pkrlau r1,r1,r1 + 304: 00 00 00 00 nop + 308: 48 21 08 00 pkrli r1,r1,r1,0x0 + 30c: 00 00 00 00 nop + 310: 48 21 0a 00 pkrlih r1,r1,r1,0x0 + 314: 00 00 00 00 nop + 318: 48 21 09 00 pkrliu r1,r1,r1,0x0 + 31c: 00 00 00 00 nop + 320: 4c 01 08 01 lock r1,r1 + 324: 00 00 00 00 nop + 328: 4c 01 08 03 unlk r1,r1 + 32c: 00 00 00 00 nop + 330: 4c 21 08 06 swwr r1,r1,r1 + 334: 00 00 00 00 nop + 338: 4c 21 08 07 swwru r1,r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 01 08 04 swrd r1,r1 + 344: 00 00 00 00 nop + 348: 4c 01 08 05 swrdl r1,r1 + 34c: 00 00 00 00 nop + 350: 4c 02 10 0c dwrd r2,r2 + 354: 00 00 00 00 nop + 358: 4c 02 10 0d dwrdl r2,r2 + 35c: 00 00 00 00 nop + 360: 4c 21 08 ab cm32and r1,r1,r1 + 364: 00 00 00 00 nop + 368: 4c 21 08 a3 cm32andn r1,r1,r1 + 36c: 00 00 00 00 nop + 370: 4c 21 08 aa cm32or r1,r1,r1 + 374: 00 00 00 00 nop + 378: 4c 21 08 b0 cm32ra r1,r1,r1 + 37c: 00 00 00 00 nop + 380: 4c 01 08 a1 cm32rd r1,r1 + 384: 00 00 00 00 nop + 388: 4c 01 08 a4 cm32ri r1,r1 + 38c: 00 00 00 00 nop + 390: 4c 21 08 a0 cm32rs r1,r1,r1 + 394: 00 00 00 00 nop + 398: 4c 21 08 b8 cm32sa r1,r1,r1 + 39c: 00 00 00 00 nop + 3a0: 4c 01 08 a9 cm32sd r1,r1 + 3a4: 00 00 00 00 nop + 3a8: 4c 01 08 ac cm32si r1,r1 + 3ac: 00 00 00 00 nop + 3b0: 4c 21 08 a8 cm32ss r1,r1,r1 + 3b4: 00 00 00 00 nop + 3b8: 4c 21 08 a2 cm32xor r1,r1,r1 + 3bc: 00 00 00 00 nop + 3c0: 4c 02 10 85 cm64clr r2,r2 + 3c4: 00 00 00 00 nop + 3c8: 4c 42 10 90 cm64ra r2,r2,r2 + 3cc: 00 00 00 00 nop + 3d0: 4c 02 10 81 cm64rd r2,r2 + 3d4: 00 00 00 00 nop + 3d8: 4c 02 10 84 cm64ri r2,r2 + 3dc: 00 00 00 00 nop + 3e0: 4c 42 10 94 cm64ria2 r2,r2,r2 + 3e4: 00 00 00 00 nop + 3e8: 4c 42 10 80 cm64rs r2,r2,r2 + 3ec: 00 00 00 00 nop + 3f0: 4c 42 10 98 cm64sa r2,r2,r2 + 3f4: 00 00 00 00 nop + 3f8: 4c 02 10 89 cm64sd r2,r2 + 3fc: 00 00 00 00 nop + 400: 4c 02 10 8c cm64si r2,r2 + 404: 00 00 00 00 nop + 408: 4c 42 10 9c cm64sia2 r2,r2,r2 + 40c: 00 00 00 00 nop + 410: 4c 42 10 88 cm64ss r2,r2,r2 + 414: 00 00 00 00 nop + 418: 4c 42 10 95 cm128ria2 r2,r2,r2 + 41c: 00 00 00 00 nop + 420: 4c 21 08 14 crc32 r1,r1,r1 + 424: 00 00 00 00 nop + 428: 4c 21 08 15 crc32b r1,r1,r1 + 42c: 00 00 00 00 nop + 430: 4c 20 08 26 chkhdr r1,r1 + 434: 00 00 00 00 nop + 438: 4c 00 08 24 avail r1 + 43c: 00 00 00 00 nop + 440: 4c 20 08 25 free r1,r1 + 444: 00 00 00 00 nop + 448: 4c 00 08 2c cmphdr r1 + 44c: 00 00 00 00 nop + 450: 4c 01 08 20 mcid r1,r1 + 454: 00 00 00 00 nop + 458: 4c 00 08 22 dba r1 + 45c: 00 00 00 00 nop + 460: 4c 01 08 21 dbd r1,r0,r1 + 464: 00 00 00 00 nop + 468: 4c 20 08 23 dpwt r1,r1 + 46c: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test8.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test8.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test8.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test8.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,286 @@ +.global _start +_start: + ADD %1,%1,%1 + NOP + ADDI %1,%1,0xfff8 + NOP + ADDIU %1,%1,0xfff8 + NOP + ADDU %1,%1,%1 + NOP + ADO16 %1,%1,%1 + NOP + AND %1,%1,%1 + NOP + ANDI %1,%1,0xfff8 + NOP + ANDOI %1,%1,0xfff8 + NOP + ANDOUI %1,%1,0xfff8 + NOP + LUI %1,0xfff8 + NOP + MRGB %1,%1,%1,0 + NOP + NOR %1,%1,%1 + NOP + OR %1,%1,%1 + NOP + ORI %1,%1,0xfff8 + NOP + ORUI %1,%1,0xfff8 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%1 + NOP + SLT %1,%1,%1 + NOP + SLTI %1,%1,0xfff8 + NOP + SLTIU %1,%1,0xfff8 + NOP + SLTU %1,%1,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%1 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%1 + NOP + SUB %1,%1,%1 + NOP + SUBU %1,%1,%1 + NOP + XOR %1,%1,%1 + NOP + XORI %1,%1,0xfff8 + NOP + NOP + NOP + SRMV %1,%1,%1,0 + NOP + SLMV %1,%1,%1,0 + NOP + RAM %1,%1,0,0,0 + NOP + BBI %1(31),_startxfff8 + NOP + BBIN %1(31),_startxfff8 + NOP + BBV %1,%1,_startxfff8 + NOP + BBVN %1,%1,_startxfff8 + NOP + BBIL %1(31),_startxfff8 + NOP + BBINL %1(31),_startxfff8 + NOP + BBVL %1,%1,_startxfff8 + NOP + BBVNL %1,%1,_startxfff8 + NOP + BEQ %1,%1,_startxfff8 + NOP + BEQL %1,%1,_startxfff8 + NOP + BGEZ %1,_startxfff8 + NOP + BGTZAL %1,_startxfff8 + NOP + BGEZAL %1,_startxfff8 + NOP + BGTZALL %1,_startxfff8 + NOP + BGEZALL %1,_startxfff8 + NOP + BGEZL %1,_startxfff8 + NOP + BGTZL %1,_startxfff8 + NOP + BGTZ %1,_startxfff8 + NOP + BLEZ %1,_startxfff8 + NOP + BLEZAL %1,_startxfff8 + NOP + BLTZ %1,_startxfff8 + NOP + BLTZAL %1,_startxfff8 + NOP + BLEZL %1,_startxfff8 + NOP + BLTZL %1,_startxfff8 + NOP + BLEZALL %1,_startxfff8 + NOP + BLTZALL %1,_startxfff8 + NOP + BMB %1,%1,_startxfff8 + NOP + BMBL %1,%1,_startxfff8 + NOP + BMB0 %1,%1,_startxfff8 + NOP + BMB1 %1,%1,_startxfff8 + NOP + BMB2 %1,%1,_startxfff8 + NOP + BMB3 %1,%1,_startxfff8 + NOP + BNE %1,%1,_startxfff8 + NOP + BNEL %1,%1,_startxfff8 + NOP + J 0xfff8 + NOP + JAL %1,0xfff8 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %1,%1 + NOP + LW %1,0xfff8(%1) + NOP + LH %1,0xfff8(%1) + NOP + LB %1,0xfff8(%1) + NOP + LHU %1,0xfff8(%1) + NOP + LBU %1,0xfff8(%1) + NOP + SB %1,0xfff8(%1) + NOP + SH %1,0xfff8(%1) + NOP + SW %1,0xfff8(%1) + NOP + RBA %1,%1,%1 + NOP + RBAR %1,%1,%1 + NOP + RBAL %1,%1,%1 + NOP + WBA %1,%1,%1 + NOP + WBAC %1,%1,%1 + NOP + WBAU %1,%1,%1 + NOP + RBI %1,%1,%1,0 + NOP + RBIR %1,%1,%1,0 + NOP + RBIL %1,%1,%1,0 + NOP + WBI %1,%1,%1,0 + NOP + WBIC %1,%1,%1,0 + NOP + WBIU %1,%1,%1,0 + NOP + PKRLA %1,%1,%1 + NOP + PKRLAH %1,%1,%1 + NOP + PKRLAU %1,%1,%1 + NOP + PKRLI %1,%1,%1,0 + NOP + PKRLIH %1,%1,%1,0 + NOP + PKRLIU %1,%1,%1,0 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %1,%1,%1 + NOP + SWWRU %1,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP + DWRD %2,%2 + NOP + DWRDL %2,%2 + NOP + CM32AND %1,%1,%1 + NOP + CM32ANDN %1,%1,%1 + NOP + CM32OR %1,%1,%1 + NOP + CM32RA %1,%1,%1 + NOP + CM32RD %1,%1 + NOP + CM32RI %1,%1 + NOP + CM32RS %1,%1,%1 + NOP + CM32SA %1,%1,%1 + NOP + CM32SD %1,%1 + NOP + CM32SI %1,%1 + NOP + CM32SS %1,%1,%1 + NOP + CM32XOR %1,%1,%1 + NOP + CM64CLR %2,%2 + NOP + CM64RA %2,%2,%2 + NOP + CM64RD %2,%2 + NOP + CM64RI %2,%2 + NOP + CM64RIA2 %2,%2,%2 + NOP + CM64RS %2,%2,%2 + NOP + CM64SA %2,%2,%2 + NOP + CM64SD %2,%2 + NOP + CM64SI %2,%2 + NOP + CM64SIA2 %2,%2,%2 + NOP + CM64SS %2,%2,%2 + NOP + CM128RIA2 %2,%2,%2 + NOP + CRC32 %1,%1,%1 + NOP + CRC32B %1,%1,%1 + NOP + CHKHDR %1,%1 + NOP + AVAIL %1 + NOP + FREE %1,%1 + NOP + CMPHDR %1 + NOP + MCID %1,%1 + NOP + DBA %1 + NOP + DBD %1,%1 + NOP + DPWT %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test9.d binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test9.d --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test9.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test9.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,291 @@ +#as: -m10 +#objdump: -drz +#name: q10test9 + +.*: +file format .* + +Disassembly of section .text: + +00000000 <_start>: + 0: 00 21 08 20 add r1,r1,r1 + 4: 00 00 00 00 nop + 8: 20 21 00 00 addi r1,r1,0x0 + c: 00 00 00 00 nop + 10: 24 21 00 00 addiu r1,r1,0x0 + 14: 00 00 00 00 nop + 18: 00 21 08 21 addu r1,r1,r1 + 1c: 00 00 00 00 nop + 20: 00 21 08 29 ado16 r1,r1,r1 + 24: 00 00 00 00 nop + 28: 00 21 08 24 and r1,r1,r1 + 2c: 00 00 00 00 nop + 30: 30 21 00 00 andi r1,r1,0x0 + 34: 00 00 00 00 nop + 38: b0 21 00 00 andoi r1,r1,0x0 + 3c: 00 00 00 00 nop + 40: bc 21 00 00 andoui r1,r1,0x0 + 44: 00 00 00 00 nop + 48: 3c 01 00 00 lui r1,0x0 + 4c: 00 00 00 00 nop + 50: 00 21 08 6d mrgb r1,r1,r1,0x1 + 54: 00 00 00 00 nop + 58: 00 21 08 27 nor r1,r1,r1 + 5c: 00 00 00 00 nop + 60: 00 21 08 25 or r1,r1,r1 + 64: 00 00 00 00 nop + 68: 34 21 00 00 ori r1,r1,0x0 + 6c: 00 00 00 00 nop + 70: 3c 21 00 00 orui r1,r1,0x0 + 74: 00 00 00 00 nop + 78: 00 01 08 00 sll r1,r1,0x0 + 7c: 00 00 00 00 nop + 80: 00 21 08 04 sllv r1,r1,r1 + 84: 00 00 00 00 nop + 88: 00 21 08 2a slt r1,r1,r1 + 8c: 00 00 00 00 nop + 90: 28 21 00 00 slti r1,r1,0x0 + 94: 00 00 00 00 nop + 98: 2c 21 00 00 sltiu r1,r1,0x0 + 9c: 00 00 00 00 nop + a0: 00 21 08 2b sltu r1,r1,r1 + a4: 00 00 00 00 nop + a8: 00 01 08 03 sra r1,r1,0x0 + ac: 00 00 00 00 nop + b0: 00 21 08 07 srav r1,r1,r1 + b4: 00 00 00 00 nop + b8: 00 01 08 02 srl r1,r1,0x0 + bc: 00 00 00 00 nop + c0: 00 21 08 06 srlv r1,r1,r1 + c4: 00 00 00 00 nop + c8: 00 21 08 22 sub r1,r1,r1 + cc: 00 00 00 00 nop + d0: 00 21 08 23 subu r1,r1,r1 + d4: 00 00 00 00 nop + d8: 00 21 08 26 xor r1,r1,r1 + dc: 00 00 00 00 nop + e0: 38 21 00 00 xori r1,r1,0x0 + e4: 00 00 00 00 nop + e8: 00 00 00 00 nop + ec: 00 00 00 00 nop + f0: 00 21 08 05 srmv r1,r1,r1,0x0 + f4: 00 00 00 00 nop + f8: 00 21 08 01 slmv r1,r1,r1,0x0 + fc: 00 00 00 00 nop + 100: 9c 21 08 01 ram r1,r1,0x0,0x1,0x1 + 104: 00 00 00 00 nop + 108: 70 20 ff bd bbi r1\(0x0\),0 <_start> + 10c: 00 00 00 00 nop + 110: 78 20 ff bb bbin r1\(0x0\),0 <_start> + 114: 00 00 00 00 nop + 118: 74 21 ff b9 bbv r1,r1,0 <_start> + 11c: 00 00 00 00 nop + 120: 7c 21 ff b7 bbvn r1,r1,0 <_start> + 124: 00 00 00 00 nop + 128: f0 20 ff b5 bbil r1\(0x0\),0 <_start> + 12c: 00 00 00 00 nop + 130: f8 20 ff b3 bbinl r1\(0x0\),0 <_start> + 134: 00 00 00 00 nop + 138: f4 21 ff b1 bbvl r1,r1,0 <_start> + 13c: 00 00 00 00 nop + 140: fc 21 ff af bbvnl r1,r1,0 <_start> + 144: 00 00 00 00 nop + 148: 10 21 ff ad beq r1,r1,0 <_start> + 14c: 00 00 00 00 nop + 150: 50 21 ff ab beql r1,r1,0 <_start> + 154: 00 00 00 00 nop + 158: 04 21 ff a9 bgez r1,0 <_start> + 15c: 00 00 00 00 nop + 160: 04 35 ff a7 bgtzal r1,0 <_start> + 164: 00 00 00 00 nop + 168: 04 31 ff a5 bgezal r1,0 <_start> + 16c: 00 00 00 00 nop + 170: 04 37 ff a3 bgtzall r1,0 <_start> + 174: 00 00 00 00 nop + 178: 04 33 ff a1 bgezall r1,0 <_start> + 17c: 00 00 00 00 nop + 180: 04 23 ff 9f bgezl r1,0 <_start> + 184: 00 00 00 00 nop + 188: 04 27 ff 9d bgtzl r1,0 <_start> + 18c: 00 00 00 00 nop + 190: 04 25 ff 9b bgtz r1,0 <_start> + 194: 00 00 00 00 nop + 198: 04 24 ff 99 blez r1,0 <_start> + 19c: 00 00 00 00 nop + 1a0: 04 34 ff 97 blezal r1,0 <_start> + 1a4: 00 00 00 00 nop + 1a8: 04 20 ff 95 bltz r1,0 <_start> + 1ac: 00 00 00 00 nop + 1b0: 04 30 ff 93 bltzal r1,0 <_start> + 1b4: 00 00 00 00 nop + 1b8: 04 26 ff 91 blezl r1,0 <_start> + 1bc: 00 00 00 00 nop + 1c0: 04 22 ff 8f bltzl r1,0 <_start> + 1c4: 00 00 00 00 nop + 1c8: 04 36 ff 8d blezall r1,0 <_start> + 1cc: 00 00 00 00 nop + 1d0: 04 32 ff 8b bltzall r1,0 <_start> + 1d4: 00 00 00 00 nop + 1d8: 18 21 ff 89 bmb r1,r1,0 <_start> + 1dc: 00 00 00 00 nop + 1e0: 58 21 ff 87 bmbl r1,r1,0 <_start> + 1e4: 00 00 00 00 nop + 1e8: 60 21 ff 85 bmb0 r1,r1,0 <_start> + 1ec: 00 00 00 00 nop + 1f0: 64 21 ff 83 bmb1 r1,r1,0 <_start> + 1f4: 00 00 00 00 nop + 1f8: 68 21 ff 81 bmb2 r1,r1,0 <_start> + 1fc: 00 00 00 00 nop + 200: 6c 21 ff 7f bmb3 r1,r1,0 <_start> + 204: 00 00 00 00 nop + 208: 14 21 ff 7d bne r1,r1,0 <_start> + 20c: 00 00 00 00 nop + 210: 54 21 ff 7b bnel r1,r1,0 <_start> + 214: 00 00 00 00 nop + 218: 08 00 00 00 j 0 <_start> + 21c: 00 00 00 00 nop + 220: 0c 01 00 00 jal r1,0 <_start> + 224: 00 00 00 00 nop + 228: 00 20 08 09 jalr r1,r1 + 22c: 00 00 00 00 nop + 230: 00 20 00 08 jr r1 + 234: 00 00 00 00 nop + 238: 00 00 00 0d break + 23c: 00 00 00 00 nop + 240: 4c 21 00 02 ctc r1,r1 + 244: 00 00 00 00 nop + 248: 4c 01 08 00 cfc r1,r1 + 24c: 00 00 00 00 nop + 250: 8c 21 00 00 lw r1,0x0\(r1\) + 254: 00 00 00 00 nop + 258: 84 21 00 00 lh r1,0x0\(r1\) + 25c: 00 00 00 00 nop + 260: 80 21 00 00 lb r1,0x0\(r1\) + 264: 00 00 00 00 nop + 268: 94 21 00 00 lhu r1,0x0\(r1\) + 26c: 00 00 00 00 nop + 270: 90 21 00 00 lbu r1,0x0\(r1\) + 274: 00 00 00 00 nop + 278: a0 21 00 00 sb r1,0x0\(r1\) + 27c: 00 00 00 00 nop + 280: a4 21 00 00 sh r1,0x0\(r1\) + 284: 00 00 00 00 nop + 288: ac 21 00 00 sw r1,0x0\(r1\) + 28c: 00 00 00 00 nop + 290: 4c 21 08 08 rba r1,r1,r1 + 294: 00 00 00 00 nop + 298: 4c 21 08 0a rbar r1,r1,r1 + 29c: 00 00 00 00 nop + 2a0: 4c 21 08 09 rbal r1,r1,r1 + 2a4: 00 00 00 00 nop + 2a8: 4c 21 08 10 wba r1,r1,r1 + 2ac: 00 00 00 00 nop + 2b0: 4c 21 08 12 wbac r1,r1,r1 + 2b4: 00 00 00 00 nop + 2b8: 4c 21 08 11 wbau r1,r1,r1 + 2bc: 00 00 00 00 nop + 2c0: 4c 21 0a 08 rbi r1,r1,r1,0x8 + 2c4: 00 00 00 00 nop + 2c8: 4c 21 09 08 rbir r1,r1,r1,0x8 + 2cc: 00 00 00 00 nop + 2d0: 4c 21 0b 08 rbil r1,r1,r1,0x8 + 2d4: 00 00 00 00 nop + 2d8: 4c 21 0e 08 wbi r1,r1,r1,0x8 + 2dc: 00 00 00 00 nop + 2e0: 4c 21 0d 08 wbic r1,r1,r1,0x8 + 2e4: 00 00 00 00 nop + 2e8: 4c 21 0f 08 wbiu r1,r1,r1,0x8 + 2ec: 00 00 00 00 nop + 2f0: 4c 21 08 28 pkrla r1,r1,r1 + 2f4: 00 00 00 00 nop + 2f8: 4c 21 08 2a pkrlah r1,r1,r1 + 2fc: 00 00 00 00 nop + 300: 4c 21 08 29 pkrlau r1,r1,r1 + 304: 00 00 00 00 nop + 308: 48 21 08 08 pkrli r1,r1,r1,0x8 + 30c: 00 00 00 00 nop + 310: 48 21 0a 08 pkrlih r1,r1,r1,0x8 + 314: 00 00 00 00 nop + 318: 48 21 09 08 pkrliu r1,r1,r1,0x8 + 31c: 00 00 00 00 nop + 320: 4c 01 08 01 lock r1,r1 + 324: 00 00 00 00 nop + 328: 4c 01 08 03 unlk r1,r1 + 32c: 00 00 00 00 nop + 330: 4c 21 08 06 swwr r1,r1,r1 + 334: 00 00 00 00 nop + 338: 4c 21 08 07 swwru r1,r1,r1 + 33c: 00 00 00 00 nop + 340: 4c 01 08 04 swrd r1,r1 + 344: 00 00 00 00 nop + 348: 4c 01 08 05 swrdl r1,r1 + 34c: 00 00 00 00 nop + 350: 4c 02 10 0c dwrd r2,r2 + 354: 00 00 00 00 nop + 358: 4c 02 10 0d dwrdl r2,r2 + 35c: 00 00 00 00 nop + 360: 4c 21 08 ab cm32and r1,r1,r1 + 364: 00 00 00 00 nop + 368: 4c 21 08 a3 cm32andn r1,r1,r1 + 36c: 00 00 00 00 nop + 370: 4c 21 08 aa cm32or r1,r1,r1 + 374: 00 00 00 00 nop + 378: 4c 21 08 b0 cm32ra r1,r1,r1 + 37c: 00 00 00 00 nop + 380: 4c 01 08 a1 cm32rd r1,r1 + 384: 00 00 00 00 nop + 388: 4c 01 08 a4 cm32ri r1,r1 + 38c: 00 00 00 00 nop + 390: 4c 21 08 a0 cm32rs r1,r1,r1 + 394: 00 00 00 00 nop + 398: 4c 21 08 b8 cm32sa r1,r1,r1 + 39c: 00 00 00 00 nop + 3a0: 4c 01 08 a9 cm32sd r1,r1 + 3a4: 00 00 00 00 nop + 3a8: 4c 01 08 ac cm32si r1,r1 + 3ac: 00 00 00 00 nop + 3b0: 4c 21 08 a8 cm32ss r1,r1,r1 + 3b4: 00 00 00 00 nop + 3b8: 4c 21 08 a2 cm32xor r1,r1,r1 + 3bc: 00 00 00 00 nop + 3c0: 4c 02 10 85 cm64clr r2,r2 + 3c4: 00 00 00 00 nop + 3c8: 4c 42 10 90 cm64ra r2,r2,r2 + 3cc: 00 00 00 00 nop + 3d0: 4c 02 10 81 cm64rd r2,r2 + 3d4: 00 00 00 00 nop + 3d8: 4c 02 10 84 cm64ri r2,r2 + 3dc: 00 00 00 00 nop + 3e0: 4c 42 10 94 cm64ria2 r2,r2,r2 + 3e4: 00 00 00 00 nop + 3e8: 4c 42 10 80 cm64rs r2,r2,r2 + 3ec: 00 00 00 00 nop + 3f0: 4c 42 10 98 cm64sa r2,r2,r2 + 3f4: 00 00 00 00 nop + 3f8: 4c 02 10 89 cm64sd r2,r2 + 3fc: 00 00 00 00 nop + 400: 4c 02 10 8c cm64si r2,r2 + 404: 00 00 00 00 nop + 408: 4c 42 10 9c cm64sia2 r2,r2,r2 + 40c: 00 00 00 00 nop + 410: 4c 42 10 88 cm64ss r2,r2,r2 + 414: 00 00 00 00 nop + 418: 4c 42 10 14 crc32 r2,r2,r2 + 41c: 00 00 00 00 nop + 420: 4c 42 10 15 crc32b r2,r2,r2 + 424: 00 00 00 00 nop + 428: 4c 40 10 26 chkhdr r2,r2 + 42c: 00 00 00 00 nop + 430: 4c 00 08 24 avail r1 + 434: 00 00 00 00 nop + 438: 4c 20 08 25 free r1,r1 + 43c: 00 00 00 00 nop + 440: 4c 00 08 2c cmphdr r1 + 444: 00 00 00 00 nop + 448: 4c 01 08 20 mcid r1,r1 + 44c: 00 00 00 00 nop + 450: 4c 00 08 22 dba r1 + 454: 00 00 00 00 nop + 458: 4c 01 08 21 dbd r1,r0,r1 + 45c: 00 00 00 00 nop + 460: 4c 20 08 23 dpwt r1,r1 + 464: 00 00 00 00 nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test9.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test9.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10test9.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10test9.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,284 @@ +.global _start +_start: + ADD %1,%1,%1 + NOP + ADDI %1,%1,0 + NOP + ADDIU %1,%1,0 + NOP + ADDU %1,%1,%1 + NOP + ADO16 %1,%1,%1 + NOP + AND %1,%1,%1 + NOP + ANDI %1,%1,0 + NOP + ANDOI %1,%1,0 + NOP + ANDOUI %1,%1,0 + NOP + LUI %1,0 + NOP + MRGB %1,%1,%1,1 + NOP + NOR %1,%1,%1 + NOP + OR %1,%1,%1 + NOP + ORI %1,%1,0 + NOP + ORUI %1,%1,0 + NOP + SLL %1,%1,0 + NOP + SLLV %1,%1,%1 + NOP + SLT %1,%1,%1 + NOP + SLTI %1,%1,0 + NOP + SLTIU %1,%1,0 + NOP + SLTU %1,%1,%1 + NOP + SRA %1,%1,0 + NOP + SRAV %1,%1,%1 + NOP + SRL %1,%1,0 + NOP + SRLV %1,%1,%1 + NOP + SUB %1,%1,%1 + NOP + SUBU %1,%1,%1 + NOP + XOR %1,%1,%1 + NOP + XORI %1,%1,0 + NOP + NOP + NOP + SRMV %1,%1,%1,0 + NOP + SLMV %1,%1,%1,0 + NOP + RAM %1,%1,0,1,1 + NOP + BBI %1(0),_start + NOP + BBIN %1(0),_start + NOP + BBV %1,%1,_start + NOP + BBVN %1,%1,_start + NOP + BBIL %1(0),_start + NOP + BBINL %1(0),_start + NOP + BBVL %1,%1,_start + NOP + BBVNL %1,%1,_start + NOP + BEQ %1,%1,_start + NOP + BEQL %1,%1,_start + NOP + BGEZ %1,_start + NOP + BGTZAL %1,_start + NOP + BGEZAL %1,_start + NOP + BGTZALL %1,_start + NOP + BGEZALL %1,_start + NOP + BGEZL %1,_start + NOP + BGTZL %1,_start + NOP + BGTZ %1,_start + NOP + BLEZ %1,_start + NOP + BLEZAL %1,_start + NOP + BLTZ %1,_start + NOP + BLTZAL %1,_start + NOP + BLEZL %1,_start + NOP + BLTZL %1,_start + NOP + BLEZALL %1,_start + NOP + BLTZALL %1,_start + NOP + BMB %1,%1,_start + NOP + BMBL %1,%1,_start + NOP + BMB0 %1,%1,_start + NOP + BMB1 %1,%1,_start + NOP + BMB2 %1,%1,_start + NOP + BMB3 %1,%1,_start + NOP + BNE %1,%1,_start + NOP + BNEL %1,%1,_start + NOP + J 0 + NOP + JAL %1,0 + NOP + JALR %1,%1 + NOP + JR %1 + NOP + BREAK + NOP + CTC %1,%1 + NOP + CFC %1,%1 + NOP + LW %1,0(%1) + NOP + LH %1,0(%1) + NOP + LB %1,0(%1) + NOP + LHU %1,0(%1) + NOP + LBU %1,0(%1) + NOP + SB %1,0(%1) + NOP + SH %1,0(%1) + NOP + SW %1,0(%1) + NOP + RBA %1,%1,%1 + NOP + RBAR %1,%1,%1 + NOP + RBAL %1,%1,%1 + NOP + WBA %1,%1,%1 + NOP + WBAC %1,%1,%1 + NOP + WBAU %1,%1,%1 + NOP + RBI %1,%1,%1,8 + NOP + RBIR %1,%1,%1,8 + NOP + RBIL %1,%1,%1,8 + NOP + WBI %1,%1,%1,8 + NOP + WBIC %1,%1,%1,8 + NOP + WBIU %1,%1,%1,8 + NOP + PKRLA %1,%1,%1 + NOP + PKRLAH %1,%1,%1 + NOP + PKRLAU %1,%1,%1 + NOP + PKRLI %1,%1,%1,8 + NOP + PKRLIH %1,%1,%1,8 + NOP + PKRLIU %1,%1,%1,8 + NOP + LOCK %1,%1 + NOP + UNLK %1,%1 + NOP + SWWR %1,%1,%1 + NOP + SWWRU %1,%1,%1 + NOP + SWRD %1,%1 + NOP + SWRDL %1,%1 + NOP + DWRD %2,%2 + NOP + DWRDL %2,%2 + NOP + CM32AND %1,%1,%1 + NOP + CM32ANDN %1,%1,%1 + NOP + CM32OR %1,%1,%1 + NOP + CM32RA %1,%1,%1 + NOP + CM32RD %1,%1 + NOP + CM32RI %1,%1 + NOP + CM32RS %1,%1,%1 + NOP + CM32SA %1,%1,%1 + NOP + CM32SD %1,%1 + NOP + CM32SI %1,%1 + NOP + CM32SS %1,%1,%1 + NOP + CM32XOR %1,%1,%1 + NOP + CM64CLR %2,%2 + NOP + CM64RA %2,%2,%2 + NOP + CM64RD %2,%2 + NOP + CM64RI %2,%2 + NOP + CM64RIA2 %2,%2,%2 + NOP + CM64RS %2,%2,%2 + NOP + CM64SA %2,%2,%2 + NOP + CM64SD %2,%2 + NOP + CM64SI %2,%2 + NOP + CM64SIA2 %2,%2,%2 + NOP + CM64SS %2,%2,%2 + NOP + CRC32 %2,%2,%2 + NOP + CRC32B %2,%2,%2 + NOP + CHKHDR %2,%2 + NOP + AVAIL %1 + NOP + FREE %1,%1 + NOP + CMPHDR %1 + NOP + MCID %1,%1 + NOP + DBA %1 + NOP + DBD %1,%1 + NOP + DPWT %1,%1 + NOP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10yield.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10yield.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/q10yield.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/q10yield.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,39 @@ +# Test for warnings when placing yield instructions into IQ2000's +# branch delay slot. Written by Ben Elliston (bje@redhat.com) + +# Run GAS and check that it emits the desired warning for the test case. +# Arguments: +# file -- name of the test case to assemble. +# testname -- a string describing the test. +# warnpattern -- a regular expression, suitable for use by the Tcl +# regexp command, to decide if the warning string was emitted by +# the assembler to stderr. + +proc iq2000_warning_test { file testname {warnpattern ""} } { + global comp_output + + gas_run $file "-m10" ">/dev/null" + verbose "output was $comp_output" 2 + + if {$warnpattern == ""} { + if {$comp_output == ""} { pass $testname } else { fail $testname } + return + } + + if {[regexp "Warning: $warnpattern" $comp_output]} { + pass $testname + } else { + fail $testname + } +} + +if [istarget iq2000*-*-*] { + foreach file [glob -nocomplain -- $srcdir/$subdir/q10yield*.s] { + set file [file tail $file] + iq2000_warning_test $file \ + "assembler emits yield instruction in delay slot warning for $file" \ + "instruction \[a-zA-Z0-9\]+ may not follow a branch/jump" + } + set testname "assembler emits no warnings for non-yield instruction in delay slot" + iq2000_warning_test q10noyield.s $testname +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/test.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/test.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/test.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/test.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,17 @@ +# IQ2000 assembler testsuite. + +if [istarget iq2000*-*-*] { + run_dump_test "q10test0" + run_dump_test "q10test1" + run_dump_test "q10test2" + run_dump_test "q10test3" + run_dump_test "q10test4" + run_dump_test "q10test5" + run_dump_test "q10test6" + run_dump_test "q10test7" + run_dump_test "q10test8" + run_dump_test "q10test9" + run_dump_test "q10test10" + run_dump_test "q10test11" + run_dump_test "q10test12" +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield.exp binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,39 @@ +# Test for warnings when placing yield instructions into IQ2000's +# branch delay slot. Written by Ben Elliston (bje@redhat.com) + +# Run GAS and check that it emits the desired error for the test case. +# Arguments: +# file -- name of the test case to assemble. +# testname -- a string describing the test. +# pattern -- a regular expression, suitable for use by the Tcl +# regexp command, to decide if the error string was emitted by +# the assembler to stderr. + +proc iq2000_error_test { file testname {pattern ""} } { + global comp_output + + gas_run $file "" ">/dev/null" + verbose "output was $comp_output" 2 + + if {$pattern == ""} { + if {$comp_output == ""} { pass $testname } else { fail $testname } + return + } + + if {[regexp "Error: $pattern" $comp_output]} { + pass $testname + } else { + fail $testname + } +} + +if [istarget iq2000*-*-*] { + foreach file [glob -nocomplain -- $srcdir/$subdir/yield*.s] { + set file [file tail $file] + iq2000_error_test $file \ + "assembler emits yield instruction in delay slot error for $file" \ + "the yielding instruction \[a-zA-Z0-9\]+ may not be in a delay slot." + } + set testname "assembler emits no warnings for non-yield instruction in delay slot" + iq2000_error_test noyield.s $testname +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield0.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield0.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield0.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield0.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,140 @@ +# This test case includes a single case of a yield instruction +# (e.g. SLEEP) appearing in the branch delay slot. We expect +# the assembler to issue a warning about this! + +.text + # yield insn in the branch delay slot. + beq %0,%0,foo + cfc2 %1, %1 + + # likewise for the rest. + beq %0,%0,foo + cfc3 %1, %1 + + beq %0,%0,foo + chkhdr %1, %1 + + beq %0,%0,foo + luc32 %1, %1 + + beq %0,%0,foo + luc32l %1, %1 + + beq %0,%0,foo + luc64 %1, %1 + + beq %0,%0,foo + luc64l %1, %1 + + beq %0,%0,foo + lulck %1 + + beq %0,%0,foo + lum32 %1, %1 + + beq %0,%0,foo + lum32l %1, %1 + + beq %0,%0,foo + lum64 %1, %1 + + beq %0,%0,foo + lum64l %1, %1 + + beq %0,%0,foo + lur %1, %1 + + beq %0,%0,foo + lurl %1, %1 + + beq %0,%0,foo + luulck %1 + + beq %0,%0,foo + mfc2 %1, %1 + + beq %0,%0,foo + mfc3 %1, %1 + + beq %0,%0,foo + rb %1, %1 + + beq %0,%0,foo + rbr1 %1, 1, 1 + + beq %0,%0,foo + rbr30 %1, 1, 1 + + beq %0,%0,foo + rx %1, %1 + + beq %0,%0,foo + rxr1 %1, 1, 1 + + beq %0,%0,foo + rxr30 %1, 1, 1 + + beq %0,%0,foo + sleep + + beq %0,%0,foo + srrd %1 + + beq %0,%0,foo + srrdl %1 + + beq %0,%0,foo + srulck %1 + + beq %0,%0,foo + srwr %1, %1 + + beq %0,%0,foo + srwru %1, %1 + + beq %0,%0,foo + syscall + + beq %0,%0,foo + trapqfl + + beq %0,%0,foo + trapqne + + beq %0,%0,foo + wb %1, %1 + + beq %0,%0,foo + wbu %1, %1 + + beq %0,%0,foo + wbr1 %1, 1, 1 + + beq %0,%0,foo + wbr1u %1, 1, 1 + + beq %0,%0,foo + wbr30 %1, 1, 1 + + beq %0,%0,foo + wbr30u %1, 1, 1 + + beq %0,%0,foo + wx %1, %1 + + beq %0,%0,foo + wxu %1, %1 + + beq %0,%0,foo + wxr1 %1, 1, 1 + + beq %0,%0,foo + wxr1u %1, 1, 1 + + beq %0,%0,foo + wxr30 %1, 1, 1 + + beq %0,%0,foo + wxr30u %1, 1, 1 + +foo: nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield1.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield1.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield1.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,9 @@ +# This test case includes a single case of a yield instruction +# (e.g. SLEEP) appearing in the branch delay slot. We expect +# the assembler to issue a warning about this! + +.text + jalr %3, %4 + # sleep insn in the branch delay slot. + sleep +foo: nop \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield2.s binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield2.s --- binutils-2.13.90.0.16/gas/testsuite/gas/iq2000/yield2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/iq2000/yield2.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,10 @@ +# This test case includes a single case of a yield instruction +# (e.g. SLEEP) appearing in the branch delay slot. We expect +# the assembler to issue a warning about this! + +.text + sleep + beq %0, %0, foo + # sleep insn in the branch delay slot. + sleep +foo: nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/all.exp binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/all.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/all.exp Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/all.exp Wed Dec 31 16:00:00 1969 @@ -1,26 +0,0 @@ -# -# Some generic m68HC11 tests -# -if ![istarget "m68hc11-*-*"] then { - if ![istarget "m6811-*-*"] then { - if ![istarget "m68hc12-*-*"] then { - if ![istarget "m6812-*-*"] then { - return - } - } - } -} -run_dump_test insns -run_dump_test lbranch -run_dump_test all_insns -run_dump_test insns-dwarf2 -run_dump_test lbranch-dwarf2 - -# Compliance with Motorola Assembly Language Input Standard -run_dump_test malis - -# Some 68HC12 tests -run_dump_test opers12 -run_dump_test opers12-dwarf2 -run_dump_test branchs12 -run_dump_test insns12 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/bug-1825.d binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/bug-1825.d --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/bug-1825.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/bug-1825.d Mon Dec 16 12:22:53 2002 @@ -0,0 +1,117 @@ +#objdump: -S -r +#as: -m68hc12 -gdwarf2 +#name: 68HC12 PC-relative addressing modes (bug-1825) + +.*: file format elf32\-m68hc12 + +Disassembly of section \.text: + +0+ <_main>: +;;; + \.sect \.text + \.globl _main +_main: + nop + 0: a7 nop + ldx L1,pc ; Assemble to 5\-bit > 0 offset + 1: ee c2 ldx 2,PC \{5 \} + bra L2 + 3: 20 02 bra 7 + 3: R_M68HC12_RL_JUMP \*ABS\* + +0+5 : + 5: aa bb oraa 5,SP\- + +0+7 : +L1: + .dc.w 0xaabb +L2: + subd L1,pc ; Assemble to 5\-bit < 0 offset + 7: a3 dc subd \-4,PC \{5 \} + +0+9 : + 9: a7 nop + a: a7 nop + b: a7 nop + c: a7 nop + d: a7 nop + e: a7 nop + f: a7 nop + 10: a7 nop + 11: a7 nop + 12: a7 nop + 13: a7 nop + 14: a7 nop + 15: a7 nop + 16: a7 nop +L3: + .ds.b 14, 0xA7 + ldab L3,pc ; 5\-bit < 0 offset + 17: e6 d0 ldab \-16,PC \{9 \} + ldab L4,pc ; 5\-bit > 0 offset + 19: e6 cf ldab 15,PC \{2a \} + ... + +0+2a : + ... + .skip 15 +L4: + .skip 128 + subd L4,pc ; 9\-bit < 0 offset + aa: a3 f9 7d subd \-131,PC \{2a \} + addd L5,pc ; 9\-bit > 0 offset + ad: e3 f8 80 addd 128,PC \{130 \} + ... + +0+130 : + ... + 22c: 00 bgnd + .skip 128 +L5: + .skip 256\-3 + orab L5,pc ; 9 bit < 0 offset \(min value\) + 22d: ea f9 00 orab \-256,PC \{130 \} + oraa L6,pc ; 9 bit > 0 offset \(max value\) + 230: aa f8 ff oraa 255,PC \{332 \} + ... + +0+332 : + ... + 42e: 00 bgnd + 42f: 00 bgnd + .skip 255 +L6: + .skip 256\-2 + orab L6,pc ; 16 bit < 0 offset + 430: ea fa fe fe orab \-258,PC \{332 \} + anda _main,pc ; 16 bit < 0 offset + 434: a4 fa fb c8 anda \-1080,PC \{0 <_main>\} + andb L7,pc + 438: e4 fa 01 00 andb 256,PC \{53c \} + ... + +0+53c : + .skip 256 +L7: + stab external,pc ; External 16\-bit PCREL + 53c: 6b fa fa c0 stab \-1344,PC \{0 <_main>\} + 53e: R_M68HC12_PCREL_16 external + ldd _table,pc + 540: ec cf ldd 15,PC \{551 <_table>\} + addd _table\+2,pc + 542: e3 cf addd 15,PC \{553 <_table\+0x2>\} + subd _table\+4,pc + 544: a3 cf subd 15,PC \{555 <_table\+0x4>\} + addd _table\+8,pc + 546: e3 f8 10 addd 16,PC \{559 <_table\+0x8>\} + addd _table\+12,pc + 549: e3 f8 11 addd 17,PC \{55d <_table\+0xc>\} + addd _table\+16,pc + 54c: e3 f8 12 addd 18,PC \{561 <.L0>\} + rts + 54f: 3d rts + nop + 550: a7 nop + +0+551 <_table>: + ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/bug-1825.s binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/bug-1825.s --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/bug-1825.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/bug-1825.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,46 @@ +;;; Bug #1825: gas assemble PC-relative indexed addressing modes incorrectly +;;; http://savannah.gnu.org/bugs/?func=detailbug&bug_id=1825&group_id=2424 +;;; + .sect .text + .globl _main +_main: + nop + ldx L1,pc ; Assemble to 5-bit > 0 offset + bra L2 +L1: + .dc.w 0xaabb +L2: + subd L1,pc ; Assemble to 5-bit < 0 offset +L3: + .ds.b 14, 0xA7 + ldab L3,pc ; 5-bit < 0 offset + ldab L4,pc ; 5-bit > 0 offset + .skip 15 +L4: + .skip 128 + subd L4,pc ; 9-bit < 0 offset + addd L5,pc ; 9-bit > 0 offset + .skip 128 +L5: + .skip 256-3 + orab L5,pc ; 9 bit < 0 offset (min value) + oraa L6,pc ; 9 bit > 0 offset (max value) + .skip 255 +L6: + .skip 256-2 + orab L6,pc ; 16 bit < 0 offset + anda _main,pc ; 16 bit < 0 offset + andb L7,pc + .skip 256 +L7: + stab external,pc ; External 16-bit PCREL + ldd _table,pc + addd _table+2,pc + subd _table+4,pc + addd _table+8,pc + addd _table+12,pc + addd _table+16,pc + rts + nop +_table: + .ds.b 16,0 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/indexed12.d binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/indexed12.d --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/indexed12.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/indexed12.d Mon Dec 16 12:22:53 2002 @@ -0,0 +1,206 @@ +#objdump: -S +#as: -m68hc12 -gdwarf2 +#name: 68HC12 indexed addressing mode with 5, 9 and 16-bit offsets (indexed12) +#source: indexed12.s + +.*: +file format elf32\-m68hc12 + +Disassembly of section .text: + +0+ <_main>: +;; + .sect .text + .globl _main +_main: + nop + 0: a7 nop +;;; Global check \(1st\) + ldab L1\-_main,x ; Offset/const of these 2 insns must be + 1: e6 e0 93 ldab 147,X + ldaa #L1\-_main ; identical \(likewise for 2nd global check\) + 4: 86 93 ldaa #147 +;;; Test gas relax with difference of symbols \(same section\) + ldaa L2\-L1,x ; \-> ldaa 2,x \(5\-bit offset\), text seg + 6: a6 02 ldaa 2,X + adda L1\-L2,y ; \-> adda \-2,y \(5\-bit offset\), text seg + 8: ab 5e adda \-2,Y + + orab L7\-L6,sp ; \-> orab 8,sp \(5\-bit offset\), text seg + a: ea 88 orab 8,SP + anda L8\-L7,sp ; \-> anda 15,sp \(5\-bit offset\), text seg + c: a4 8f anda 15,SP + eora L7\-L8,sp ; \-> eora \-15,sp \(5\-bit offset\), text seg + e: a8 91 eora \-15,SP + eorb L7\-L9,sp ; \-> eorb \-16,sp \(5\-bit offset\), text seg + 10: e8 90 eorb \-16,SP + + andb L9\-L7,sp ; \-> andb 16,sp \(9\-bit offset\), text seg + 12: e4 f0 10 andb 16,SP + staa L7\-L10,x ; \-> staa \-17,x \(9\-bit offset\), text seg + 15: 6a e1 ef staa \-17,X + stab L11\-L10,y ; \-> stab 128,y \(9\-bit offset\), text seg + 18: 6b e8 80 stab 128,Y + stab L10\-L11,y ; \-> stab \-128,y \(9\-bit offset\), text seg + 1b: 6b e9 80 stab \-128,Y + stab L11\-L10\+1,y ; \-> stab 129,y \(9\-bit offset\), text seg + 1e: 6b e8 81 stab 129,Y + stab L10\-L11\-1,y ; \-> stab \-129,y \(9\-bit offset\), text seg + 21: 6b e9 7f stab \-129,Y + stab L11\-1\-L10,y ; \-> stab 127,y \(9\-bit offset\), text seg + 24: 6b e8 7f stab 127,Y + stab L10\-1\-L11,y ; \-> stab \-129,y \(9\-bit offset\), text seg + 27: 6b e9 7f stab \-129,Y + + tst L12\-L10,x ; \-> tst 255,x \(9\-bit offset\), text seg + 2a: e7 e0 ff tst 255,X + tst L10\-L12,x ; \-> tst \-255,x \(9\-bit offset\), text seg + 2d: e7 e1 01 tst \-255,X + tst L12\-L10\+1,x ; \-> tst 256,x \(16\-bit offset\), text seg + 30: e7 e2 01 00 tst 256,X + mina L13\-L10,x ; \-> mina 256,x \(16\-bit offset\) + 34: 18 19 e2 01 mina 256,X + 38: 00 + mina L10\-L13,x ; \-> mina \-256,x \(9\-bit offset\) + 39: 18 19 e1 00 mina \-256,X + + maxa L14\-L10,x ; \-> maxa 257,x \(16\-bit offset\) + 3d: 18 18 e2 01 maxa 257,X + 41: 01 + maxa L10\-L14,x ; \-> maxa \-257,x \(16\-bit offset\) + 42: 18 18 e2 fe maxa \-257,X + 46: ff + +;;; Test gas relax with difference of symbols \(different section\) + ldaa D2\-D1,x ; \-> ldaa 2,x \(5\-bit offset\), data seg + 47: a6 02 ldaa 2,X + adda D1\-D2,y ; \-> adda \-2,y \(5\-bit offset\), data seg + 49: ab 5e adda \-2,Y + + orab D7\-D6,sp ; \-> orab 8,sp \(5\-bit offset\), data seg + 4b: ea 88 orab 8,SP + anda D8\-D7,sp ; \-> anda 15,sp \(5\-bit offset\), data seg + 4d: a4 8f anda 15,SP + eora D7\-D8,sp ; \-> eora \-15,sp \(5\-bit offset\), data seg + 4f: a8 91 eora \-15,SP + eorb D7\-D9,sp ; \-> eorb \-16,sp \(5\-bit offset\), data seg + 51: e8 90 eorb \-16,SP + + andb D9\-D7,sp ; \-> andb 16,sp \(9\-bit offset\), data seg + 53: e4 f0 10 andb 16,SP + staa D7\-D10,x ; \-> staa \-17,x \(9\-bit offset\), data seg + 56: 6a e1 ef staa \-17,X + stab D11\-D10,y ; \-> stab 128,y \(9\-bit offset\), data seg + 59: 6b e8 80 stab 128,Y + stab D10\-D11,y ; \-> stab \-128,y \(9\-bit offset\), data seg + 5c: 6b e9 80 stab \-128,Y + stab D11\-D10\+1,y ; \-> stab 129,y \(9\-bit offset\), data seg + 5f: 6b e8 81 stab 129,Y + stab D10\-D11\+1,y ; \-> stab \-127,y \(9\-bit offset\), data seg + 62: 6b e9 81 stab \-127,Y + stab D11\-1\-D10,y ; \-> stab 127,y \(9\-bit offset\), data seg + 65: 6b e8 7f stab 127,Y + stab D10\-1\-D11,y ; \-> stab \-129,y \(9\-bit offset\), data seg + 68: 6b e9 7f stab \-129,Y + + tst D12\-D10,x ; \-> tst 255,x \(9\-bit offset\), data seg + 6b: e7 e0 ff tst 255,X + tst D10\-D12,x ; \-> tst \-255,x \(9\-bit offset\), data seg + 6e: e7 e1 01 tst \-255,X + tst D12\-D10\+1,x ; \-> tst 256,x \(16\-bit offset\), data seg + 71: e7 e2 01 00 tst 256,X + mina D13\-D10,x ; \-> mina 256,x \(16\-bit offset\) + 75: 18 19 e2 01 mina 256,X + 79: 00 + mina D10\-D13,x ; \-> mina \-256,x \(9\-bit offset\) + 7a: 18 19 e1 00 mina \-256,X + + maxa D14\-D10,x ; \-> maxa 257,x \(16\-bit offset\) + 7e: 18 18 e2 01 maxa 257,X + 82: 01 + maxa D10\-D14,x ; \-> maxa \-257,x \(16\-bit offset\) + 83: 18 18 e2 fe maxa \-257,X + 87: ff + +;;; Global check \(2nd\) + ldab L1\-_main,x + 88: e6 e0 93 ldab 147,X + ldaa #L1\-_main + 8b: 86 93 ldaa #147 + +;;; Indexed addressing with external symbol + ldab _external\+128,x + 8d: e6 e2 00 80 ldab 128,X + bra L2 + 91: 20 02 bra 95 + +0+93 : + 93: aa bb oraa 5,SP\- + +0+95 : + 95: a7 nop + 96: a7 nop + 97: a7 nop + 98: a7 nop + 99: a7 nop + 9a: a7 nop + 9b: a7 nop + 9c: a7 nop + +0+9d : + 9d: a7 nop + 9e: a7 nop + 9f: a7 nop + a0: a7 nop + a1: a7 nop + a2: a7 nop + a3: a7 nop + a4: a7 nop + a5: a7 nop + a6: a7 nop + a7: a7 nop + a8: a7 nop + a9: a7 nop + aa: a7 nop + ab: a7 nop + +0+ac : +L1: + .dc.w 0xaabb +L2: +L6: + .ds.b 8, 0xa7 +L7: + .ds.b 15, 0xa7 +L8: + nop + ac: a7 nop + +0+ad : +L9: + nop + ad: a7 nop + +0+ae : + ... + +0+12e : + ... + +0+1ad : +L10: + .skip 128 +L11: + .skip 127 +L12: + nop + 1ad: a7 nop + +0+1ae : +L13: + nop + 1ae: a7 nop + +0+1af : +L14: + rts + 1af: 3d rts diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/indexed12.s binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/indexed12.s --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/indexed12.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/indexed12.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,115 @@ +;; +;; This file verifies the 68HC12 indexed addressing modes +;; with a 5, 9 and 16-bit offset. +;; + .sect .text + .globl _main +_main: + nop +;;; Global check (1st) + ldab L1-_main,x ; Offset/const of these 2 insns must be + ldaa #L1-_main ; identical (likewise for 2nd global check) +;;; Test gas relax with difference of symbols (same section) + ldaa L2-L1,x ; -> ldaa 2,x (5-bit offset), text seg + adda L1-L2,y ; -> adda -2,y (5-bit offset), text seg + + orab L7-L6,sp ; -> orab 8,sp (5-bit offset), text seg + anda L8-L7,sp ; -> anda 15,sp (5-bit offset), text seg + eora L7-L8,sp ; -> eora -15,sp (5-bit offset), text seg + eorb L7-L9,sp ; -> eorb -16,sp (5-bit offset), text seg + + andb L9-L7,sp ; -> andb 16,sp (9-bit offset), text seg + staa L7-L10,x ; -> staa -17,x (9-bit offset), text seg + stab L11-L10,y ; -> stab 128,y (9-bit offset), text seg + stab L10-L11,y ; -> stab -128,y (9-bit offset), text seg + stab L11-L10+1,y ; -> stab 129,y (9-bit offset), text seg + stab L10-L11-1,y ; -> stab -129,y (9-bit offset), text seg + stab L11-1-L10,y ; -> stab 127,y (9-bit offset), text seg + stab L10-1-L11,y ; -> stab -129,y (9-bit offset), text seg + + tst L12-L10,x ; -> tst 255,x (9-bit offset), text seg + tst L10-L12,x ; -> tst -255,x (9-bit offset), text seg + tst L12-L10+1,x ; -> tst 256,x (16-bit offset), text seg + mina L13-L10,x ; -> mina 256,x (16-bit offset) + mina L10-L13,x ; -> mina -256,x (9-bit offset) + + maxa L14-L10,x ; -> maxa 257,x (16-bit offset) + maxa L10-L14,x ; -> maxa -257,x (16-bit offset) + +;;; Test gas relax with difference of symbols (different section) + ldaa D2-D1,x ; -> ldaa 2,x (5-bit offset), data seg + adda D1-D2,y ; -> adda -2,y (5-bit offset), data seg + + orab D7-D6,sp ; -> orab 8,sp (5-bit offset), data seg + anda D8-D7,sp ; -> anda 15,sp (5-bit offset), data seg + eora D7-D8,sp ; -> eora -15,sp (5-bit offset), data seg + eorb D7-D9,sp ; -> eorb -16,sp (5-bit offset), data seg + + andb D9-D7,sp ; -> andb 16,sp (9-bit offset), data seg + staa D7-D10,x ; -> staa -17,x (9-bit offset), data seg + stab D11-D10,y ; -> stab 128,y (9-bit offset), data seg + stab D10-D11,y ; -> stab -128,y (9-bit offset), data seg + stab D11-D10+1,y ; -> stab 129,y (9-bit offset), data seg + stab D10-D11+1,y ; -> stab -127,y (9-bit offset), data seg + stab D11-1-D10,y ; -> stab 127,y (9-bit offset), data seg + stab D10-1-D11,y ; -> stab -129,y (9-bit offset), data seg + + tst D12-D10,x ; -> tst 255,x (9-bit offset), data seg + tst D10-D12,x ; -> tst -255,x (9-bit offset), data seg + tst D12-D10+1,x ; -> tst 256,x (16-bit offset), data seg + mina D13-D10,x ; -> mina 256,x (16-bit offset) + mina D10-D13,x ; -> mina -256,x (9-bit offset) + + maxa D14-D10,x ; -> maxa 257,x (16-bit offset) + maxa D10-D14,x ; -> maxa -257,x (16-bit offset) + +;;; Global check (2nd) + ldab L1-_main,x + ldaa #L1-_main + +;;; Indexed addressing with external symbol + ldab _external+128,x + bra L2 +L1: + .dc.w 0xaabb +L2: +L6: + .ds.b 8, 0xa7 +L7: + .ds.b 15, 0xa7 +L8: + nop +L9: + nop +L10: + .skip 128 +L11: + .skip 127 +L12: + nop +L13: + nop +L14: + rts + + .sect .data +D1: + .dc.w 0xaabb +D2: +D6: + .ds.b 8, 0xa7 +D7: + .ds.b 15, 0xa7 +D8: + nop +D9: + nop +D10: + .skip 128 +D11: + .skip 127 +D12: + nop +D13: + nop +D14: diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns-dwarf2.d binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns-dwarf2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns-dwarf2.d Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns-dwarf2.d Mon Dec 16 12:22:53 2002 @@ -15,7 +15,7 @@ Disassembly of section .text: _start: lds #stack\+1024 - 0: 8e 04 00 lds #400 <.L0\+0x3a4> + 0: 8e 04 00 lds #400 ldx #1 3: ce 00 01 ldx #1 <_start\+0x1> @@ -87,7 +87,7 @@ test2: brclr \*ZD2\+2, #40, test2 3d: 13 02 28 d6 brclr \*2 <_start\+0x2> #\$28 17 ldy #24\+_start-44 - 41: 18 ce ff ec ldy #ffec <.L0\+0xff90> + 41: 18 ce ff ec ldy #ffec ldd B_low,y 45: 18 ec 0c ldd 12,y addd A_low,y diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns.d binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns.d --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns.d Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns.d Mon Dec 16 12:22:53 2002 @@ -7,7 +7,7 @@ .*: +file format elf32\-m68hc11 Disassembly of section .text: -0+0+ <_start> lds #0+0400 +0+0+ <_start> lds #0+0400 [ ]+1: R_M68HC11_16 stack 0+0003 <_start\+0x3> ldx #0+0001 <_start\+0x1> 0+0006 jsr 0+0+ <_start> @@ -48,7 +48,7 @@ Disassembly of section .text: 0+003d brclr \*0+0002 <_start\+0x2> #\$28 0+0017 [ ]+3d: R_M68HC11_RL_JUMP \*ABS\* [ ]+3e: R_M68HC11_8 ZD2 -0+0041 ldy #0+ffec +0+0041 ldy #0+ffec [ ]+43: R_M68HC11_16 _start 0+0045 ldd 12,y 0+0048 addd 44,y diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns.s binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns.s --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns.s Tue Jun 20 10:25:46 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns.s Mon Dec 16 12:22:53 2002 @@ -57,4 +57,7 @@ L1: .sect .data -.comm stack, 1024 + .sect .bss +stack: + .space 1024 +stack_end: diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns12.d binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns12.d --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/insns12.d Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/insns12.d Mon Dec 16 12:22:53 2002 @@ -1,6 +1,6 @@ #objdump: -d --prefix-addresses --reloc #as: -m68hc12 -#name: insns12 +#name: 68HC12 specific instructions (insns12) .*: +file format elf32-m68hc12 @@ -79,7 +79,7 @@ Disassembly of section .text: 0+a1 emul 0+a2 emuls 0+a4 etbl 3,X -0+a7 etbl 4,PC +0+a7 etbl 4,PC \{0+ae \} 0+aa rev 0+ac revw 0+ae wav diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/m68hc11.exp binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/m68hc11.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/m68hc11.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/m68hc11.exp Mon Dec 16 12:22:53 2002 @@ -0,0 +1,166 @@ +# +# Some generic m68HC11 tests +# +if ![istarget "m68hc11-*-*"] then { + if ![istarget "m6811-*-*"] then { + if ![istarget "m68hc12-*-*"] then { + if ![istarget "m6812-*-*"] then { + return + } + } + } +} + +# Simple test for --print-opcodes (list of supported opcodes) +# We don't check the list result but just the syntax and the +# number it +proc gas_m68hc11_opcode_list { flags expect_count } { + global comp_output + + set testname "Opcode list generation \[$flags\]" + gas_run "x.s" "--print-opcodes $flags" "" + + set lines [split $comp_output "\n"] + set cnt [llength $lines] + verbose -log "Found $cnt opcodes" + if { $cnt == $expect_count } then { + pass $testname + } else { + fail $testname + } +} + +gas_m68hc11_opcode_list "-m68hc11" 149 +gas_m68hc11_opcode_list "-m68hc12" 192 + + +# Test for a message produced when assembling a file +proc gas_m68hc11_message { kind options line expect } { + global srcdir + global subdir + + regsub -all "\n" "$line: $expect" " " title + + # Make a file containing the instructions to assemble. + set fd [open "$srcdir/$subdir/tst-m68hc1x.s" "w"]; + puts -nonewline $fd "$line" + close $fd + + verbose -log "Test: $title" + gas_start "tst-m68hc1x.s" "$options" + set ok 0 + while 1 { + expect { + -re ".*: Assembler messages:\n" { } + -re ".*1: $kind: $expect" { incr ok; break } + timeout { perror "timeout\n"; break } + eof { verbose "EOF from gas"; break } + } + } + #sleep 1 # Uncomment this line when using gcov + gas_finish + if { $ok > 0 } then { + pass $title + } else { + fail $title + } + catch "exec rm -f $srcdir/$subdir/tst-m68hc1x.s" +} + +# Test for an error message produced by gas +proc gas_m68hc11_error { options line expect } { + gas_m68hc11_message "Error" $options $line $expect +} + +# Test for a warning message produced by gas +proc gas_m68hc11_warning { options line expect } { + gas_m68hc11_message "Warning" $options $line $expect +} + +# ------------------ +# 68HC11 error tests +gas_m68hc11_error "" "puld\n" "Opcode .puld. is not recognized" +gas_m68hc11_error "" "ldab\n" "Invalid operand for .ldab." +gas_m68hc11_error "" "ldab 256,x\n" "Operand out of 8-bit range:.*256" +gas_m68hc11_error "" "ldab 257,y\n" "Operand out of 8-bit range:.*257" +gas_m68hc11_error "" "ldab -1,y\n" "Operand out of 8-bit range:.*-1" +gas_m68hc11_error "" "ldab bar,y\nbar=300" "value of 300 too large for field of 1 byte" +gas_m68hc11_error "" "jmp \#23\n" "Immediate operand is not allowed" +gas_m68hc11_error "" "ldab \[d,pc\]\n" "Indirect indexed addressing is not valid for 68HC11" +gas_m68hc11_error "" "ldab ,t\n" "Spurious .,. or bad indirect register" +gas_m68hc11_error "" "ldab 1,t\n" "Garbage at end of instruction:.*,t" +gas_m68hc11_error "" "ldab 1,,x\n" "Garbage at end of instruction:.*,x" +gas_m68hc11_error "" "ldab 1,+x\n" "Pre-increment mode is not valid" +gas_m68hc11_error "" "ldab 1,-x\n" "Pre-increment mode is not valid" +gas_m68hc11_error "" "ldab 1,x+\n" "Post-increment mode is not valid" +gas_m68hc11_error "" "ldab 1,x-\n" "Post-decrement mode is not valid" +gas_m68hc11_error "" "ldd \#65536\n" "Operand out of 16-bit range" +gas_m68hc11_error "--short-branchs" "bne 200\n" \ + "Operand out of range for a relative branch" +gas_m68hc11_error "" "bar\n" "Opcode .bar. is not recognized." +gas_m68hc11_error "--print-insn-syntax" "bne\n" \ + "Instruction formats for .bne..*" + +# ------------------ +# 68HC12 error tests +gas_m68hc11_error "-m68hc12" "ldab x,y\n" "Invalid accumulator register" +gas_m68hc11_error "-m68hc12" "ldab \[d,y\n" \ + "Missing .\]. to close indexed-indirect mode" +gas_m68hc11_error "-m68hc12" "ldab 0,\n" "Garbage at end of instruction: .,." +gas_m68hc11_error "-m68hc12" "ldab \[d\]\n" \ + "Missing second register or offset for indexed-indirect mode" +gas_m68hc11_error "-m68hc12" "ldab \[d x\]\n" \ + "Missing second register for indexed-indirect mode" +gas_m68hc11_error "-m68hc12" "ldab \[d d\]\n" \ + "Missing second register for indexed-indirect mode" +gas_m68hc11_error "-m68hc12" "ldab \[pc d\]\n" \ + "Missing second register for indexed-indirect mode" +gas_m68hc11_error "-m68hc12" "ldab 65536,x\n" \ + "Offset out of 16-bit range:" +gas_m68hc11_error "-m68hc12 -S" "ibeq d,500\n" \ + "Operand out of range for a relative branch" +gas_m68hc11_error "-m68hc12" "ibeq pc,3\n" \ + "Invalid register for dbcc/tbcc instruction" +gas_m68hc11_error "-m68hc12 -S" "ibeq pc,500\n" \ + "Invalid register for dbcc/tbcc instruction" +gas_m68hc11_error "-m68hc12" "orab 9,+x\n" \ + "Increment/decrement value is out of range" +gas_m68hc11_error "-m68hc12" "orab -9,x-\n" \ + "Increment/decrement value is out of range" +gas_m68hc11_error "-m68hc12" "orab -3,-pc\n" \ + "Invalid register for post/pre increment" +gas_m68hc11_error "-m68hc12" "trap \#0\n" "Trap id .0. is out of range" +gas_m68hc11_error "-m68hc12" "trap \#300\n" "Trap id .300. is out of range" +gas_m68hc11_error "-m68hc12" "trap \#bar\n" "The trap id must be a constant" +gas_m68hc11_error "-m68hc12" "sex x,d\n" \ + "Invalid source register for this instruction, use .tfr." +gas_m68hc11_error "-m68hc12" "tfr pc,a\n" "Invalid source register" +gas_m68hc11_error "-m68hc12" "movb 200,x,3,y\n" \ + "Offset out of 5-bit range for movw/movb insn: 200" +gas_m68hc11_error "-m68hc12" "movb 2,x,300,y\n" \ + "Offset out of 5-bit range for movw/movb insn: 300" + +# ------------------ +# Specific commands +gas_m68hc11_warning "" ".mode \"bar\"\n" "Invalid mode: .bar." +gas_m68hc11_error "" ".relax 23\n" "bad .relax format" +gas_m68hc11_error "" ".relax bar-23\n" "bad .relax format" +gas_m68hc11_warning "" ".far bar bar\n" "rest of line ignored" + + +run_dump_test insns +run_dump_test lbranch +run_dump_test all_insns +run_dump_test insns-dwarf2 +run_dump_test lbranch-dwarf2 + +# Compliance with Motorola Assembly Language Input Standard +run_dump_test malis + +# Some 68HC12 tests +run_dump_test opers12 +run_dump_test opers12-dwarf2 +run_dump_test branchs12 +run_dump_test insns12 +run_dump_test indexed12 +run_dump_test bug-1825 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/opers12-dwarf2.d binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/opers12-dwarf2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/opers12-dwarf2.d Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/opers12-dwarf2.d Mon Dec 16 12:22:53 2002 @@ -55,7 +55,7 @@ L1: ldy ,x ldd \[32768,pc\] 39: ec fb 80 00 ldd \[32768,PC\] ldd L1,pc - 3d: ec f8 09 ldd 9,PC + 3d: ec f9 c9 ldd -55,PC \{9 \} std a,x ; Two\-reg index 40: 6c e4 std A,X ldx b,x @@ -199,43 +199,43 @@ t2: leax t2\-t1,y f5: 1a 44 leax 4,Y leax toto,x - f7: 1a e2 00 64 leax 100,X + f7: 1a e0 64 leax 100,X leas toto\+titi,sp - fb: 1b f2 00 6e leas 110,SP + fa: 1b f0 6e leas 110,SP leay titi,x - ff: 19 e2 00 0a leay 10,X + fd: 19 0a leay 10,X leas bb,y - 103: 1b ea 28 00 leas 10240,Y + ff: 1b ea 28 00 leas 10240,Y leas min5b,pc - 107: 1b fa 00 ff leas 255,PC + 103: 1b d0 leas -16,PC \{f5 \} leas max5b,pc - 10b: 1b fa 00 00 leas 0,PC + 105: 1b cf leas 15,PC \{116 \} leas min9b,pc - 10f: 1b fa 00 ff leas 255,PC + 107: 1b fa ff 00 leas -256,PC \{b \} leas max9b,pc - 113: 1b fa 00 00 leas 0,PC + 10b: 1b f8 ff leas 255,PC \{20d <.L0\+0xd9>\} ;; ;; Disassembler bug with movb ;; movb #23,0x2345 - 117: 18 0b 17 23 movb #23, 2345 <.L0\+0x2208> - 11b: 45 + 10e: 18 0b 17 23 movb #23, 2345 <.L0\+0x2211> + 112: 45 movb #40,12,sp - 11c: 18 08 8c 28 movb #40, 12,SP + 113: 18 08 8c 28 movb #40, 12,SP movb #39,3,\+sp - 120: 18 08 a2 27 movb #39, 3,\+SP + 117: 18 08 a2 27 movb #39, 3,\+SP movb #20,14,sp - 124: 18 08 8e 14 movb #20, 14,SP + 11b: 18 08 8e 14 movb #20, 14,SP movw #0x3210,0x3456 - 128: 18 03 32 10 movw #3210 , 3456 - 12c: 34 56 + 11f: 18 03 32 10 movw #3210 , 3456 + 123: 34 56 movw #0x4040,12,sp - 12e: 18 00 8c 40 movw #4040 , 12,SP - 132: 40 + 125: 18 00 8c 40 movw #4040 , 12,SP + 129: 40 movw #0x3900,3,\+sp - 133: 18 00 a2 39 movw #3900 , 3,\+SP - 137: 00 + 12a: 18 00 a2 39 movw #3900 , 3,\+SP + 12e: 00 movw #0x2000,14,sp - 138: 18 00 8e 20 movw #2000 <.L0\+0x1ec3>, 14,SP - 13c: 00 + 12f: 18 00 8e 20 movw #2000 <.L0\+0x1ecc>, 14,SP + 133: 00 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/opers12.d binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/opers12.d --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/opers12.d Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/opers12.d Mon Dec 16 12:22:53 2002 @@ -1,6 +1,6 @@ #objdump: -d --prefix-addresses --reloc #as: -m68hc12 -#name: opers +#name: 68HC12 specific addressing modes (opers12) .*: +file format elf32\-m68hc12 @@ -26,8 +26,7 @@ Disassembly of section .text: 0+0031 ldaa \[257,Y\] 0+0035 ldab \[32767,SP\] 0+0039 ldd \[32768,PC\] -0+003d ldd 9,PC -[ ]+3f: R_M68HC12_8 \.text +0+003d ldd \-55,PC \{0+9 \} 0+0040 std A,X 0+0042 ldx B,X 0+0044 stx D,Y @@ -97,18 +96,18 @@ Disassembly of section .text: [ ]+f3: R_M68HC12_16 abort 0+00f5 leax 4,Y 0+00f7 leax 100,X -0+00fb leas 110,SP -0+00ff leay 10,X -0+0103 leas 10240,Y -0+0107 leas 255,PC -0+010b leas 0,PC -0+010f leas 255,PC -0+0113 leas 0,PC -0+0117 movb #23, 0+2345 -0+011c movb #40, 12,SP -0+0120 movb #39, 3,\+SP -0+0124 movb #20, 14,SP -0+0128 movw #0+3210 , 0+3456 -0+012e movw #0+4040 , 12,SP -0+0133 movw #0+3900 , 3,\+SP -0+0138 movw #0+2000 , 14,SP +0+00fa leas 110,SP +0+00fd leay 10,X +0+00ff leas 10240,Y +0+0103 leas -16,PC \{0+f5 \} +0+0105 leas 15,PC \{0+116 \} +0+0107 leas -256,PC \{0+b \} +0+010b leas 255,PC \{0+20d \} +0+010e movb #23, 0+2345 +0+0113 movb #40, 12,SP +0+0117 movb #39, 3,\+SP +0+011b movb #20, 14,SP +0+011f movw #0+3210 , 0+3456 +0+0125 movw #0+4040 , 12,SP +0+012a movw #0+3900 , 3,\+SP +0+012f movw #0+2000 , 14,SP diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/opers12.s binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/opers12.s --- binutils-2.13.90.0.16/gas/testsuite/gas/m68hc11/opers12.s Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/m68hc11/opers12.s Mon Dec 16 12:22:53 2002 @@ -115,8 +115,8 @@ t2: titi = 10 toto = 100 -min5b= -15 +min5b= -16 max5b= 15 -min9b= -255 +min9b= -256 max9b= 255 bb = 10240 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/abs.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/abs.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/abs.d Sat Jul 14 10:29:15 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/abs.d Tue Jan 21 10:21:33 2003 @@ -1,5 +1,4 @@ -#objdump: -dr --prefix-addresses -mmips:4000 -#as:-march=4000 +#objdump: -dr --prefix-addresses #name: MIPS abs # Test the abs macro. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/add.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/add.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/add.d Mon May 21 10:36:59 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/add.d Tue Jan 21 10:21:33 2003 @@ -1,4 +1,4 @@ -#objdump: -dr --prefix-addresses -mmips:4000 +#objdump: -dr --prefix-addresses #name: MIPS add # Test the add macro. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/and.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/and.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/and.d Mon May 21 10:36:59 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/and.d Tue Jan 21 10:21:33 2003 @@ -1,4 +1,4 @@ -#objdump: -dr --prefix-addresses -mmips:4000 +#objdump: -dr --prefix-addresses #name: MIPS and # Test the and macro. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/beq.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/beq.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/beq.d Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/beq.d Mon Dec 16 12:22:53 2002 @@ -39,10 +39,10 @@ Disassembly of section .text: 0+20070 <[^>]*> jal 0+0000 [ ]*20070: (MIPS_JMP|JMPADDR|R_MIPS_26) .text 0+20074 <[^>]*> nop -0+20078 <[^>]*> b 0+20078 -[ ]*20078: R_MIPS_PC16 external_label -0+2007c <[^>]*> nop -0+20080 <[^>]*> bal 0+20080 -[ ]*20080: R_MIPS_PC16 external_label -0+20084 <[^>]*> nop +#0+20078 <[^>]*> b 0+20078 +#[ ]*20078: R_MIPS_PC16 external_label +#0+2007c <[^>]*> nop +#0+20080 <[^>]*> bal 0+20080 +#[ ]*20080: R_MIPS_PC16 external_label +#0+20084 <[^>]*> nop ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/beq.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/beq.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/beq.s Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/beq.s Mon Dec 16 12:22:53 2002 @@ -23,8 +23,8 @@ text_label: bal text_label # Branch to an external label. - b external_label - bal external_label +# b external_label +# bal external_label # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/bge.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/bge.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/bge.d Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/bge.d Mon Dec 16 12:22:53 2002 @@ -51,20 +51,20 @@ Disassembly of section .text: 0+00a8 <[^>]*> slt at,a1,a0 0+00ac <[^>]*> bnezl at,0+0000 0+00b0 <[^>]*> nop -0+00b4 <[^>]*> slt at,a0,a1 -0+00b8 <[^>]*> beqz at,000000b8 -[ ]*b8: R_MIPS_PC16 external_label -0+00bc <[^>]*> nop -0+00c0 <[^>]*> slt at,a1,a0 -0+00c4 <[^>]*> bnez at,000000c4 -[ ]*c4: R_MIPS_PC16 external_label -0+00c8 <[^>]*> nop -0+00cc <[^>]*> slt at,a0,a1 -0+00d0 <[^>]*> beqzl at,000000d0 -[ ]*d0: R_MIPS_PC16 external_label -0+00d4 <[^>]*> nop -0+00d8 <[^>]*> slt at,a1,a0 -0+00dc <[^>]*> bnezl at,000000dc -[ ]*dc: R_MIPS_PC16 external_label -0+00e0 <[^>]*> nop +#0+00b4 <[^>]*> slt at,a0,a1 +#0+00b8 <[^>]*> beqz at,000000b8 +#[ ]*b8: R_MIPS_PC16 external_label +#0+00bc <[^>]*> nop +#0+00c0 <[^>]*> slt at,a1,a0 +#0+00c4 <[^>]*> bnez at,000000c4 +#[ ]*c4: R_MIPS_PC16 external_label +#0+00c8 <[^>]*> nop +#0+00cc <[^>]*> slt at,a0,a1 +#0+00d0 <[^>]*> beqzl at,000000d0 +#[ ]*d0: R_MIPS_PC16 external_label +#0+00d4 <[^>]*> nop +#0+00d8 <[^>]*> slt at,a1,a0 +#0+00dc <[^>]*> bnezl at,000000dc +#[ ]*dc: R_MIPS_PC16 external_label +#0+00e0 <[^>]*> nop ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/bge.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/bge.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/bge.s Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/bge.s Mon Dec 16 12:22:53 2002 @@ -25,10 +25,10 @@ text_label: bgtl $4,$5,text_label # Branch to an external label. - bge $4,$5,external_label - bgt $4,$5,external_label - bgel $4,$5,external_label - bgtl $4,$5,external_label +# bge $4,$5,external_label +# bgt $4,$5,external_label +# bgel $4,$5,external_label +# bgtl $4,$5,external_label # Round to a 16 byte boundary, for ease in testing multiple targets. nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/bgeu.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/bgeu.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/bgeu.d Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/bgeu.d Mon Dec 16 12:22:53 2002 @@ -45,20 +45,20 @@ Disassembly of section .text: 0+0090 <[^>]*> sltu at,a1,a0 0+0094 <[^>]*> bnezl at,0+0000 0+0098 <[^>]*> nop -0+009c <[^>]*> sltu at,a0,a1 -0+00a0 <[^>]*> beqz at,000000a0 -[ ]*a0: R_MIPS_PC16 external_label -0+00a4 <[^>]*> nop -0+00a8 <[^>]*> sltu at,a1,a0 -0+00ac <[^>]*> bnez at,000000ac -[ ]*ac: R_MIPS_PC16 external_label -0+00b0 <[^>]*> nop -0+00b4 <[^>]*> sltu at,a0,a1 -0+00b8 <[^>]*> beqzl at,000000b8 -[ ]*b8: R_MIPS_PC16 external_label -0+00bc <[^>]*> nop -0+00c0 <[^>]*> sltu at,a1,a0 -0+00c4 <[^>]*> bnezl at,000000c4 -[ ]*c4: R_MIPS_PC16 external_label -0+00c8 <[^>]*> nop +#0+009c <[^>]*> sltu at,a0,a1 +#0+00a0 <[^>]*> beqz at,000000a0 +#[ ]*a0: R_MIPS_PC16 external_label +#0+00a4 <[^>]*> nop +#0+00a8 <[^>]*> sltu at,a1,a0 +#0+00ac <[^>]*> bnez at,000000ac +#[ ]*ac: R_MIPS_PC16 external_label +#0+00b0 <[^>]*> nop +#0+00b4 <[^>]*> sltu at,a0,a1 +#0+00b8 <[^>]*> beqzl at,000000b8 +#[ ]*b8: R_MIPS_PC16 external_label +#0+00bc <[^>]*> nop +#0+00c0 <[^>]*> sltu at,a1,a0 +#0+00c4 <[^>]*> bnezl at,000000c4 +#[ ]*c4: R_MIPS_PC16 external_label +#0+00c8 <[^>]*> nop ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/bgeu.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/bgeu.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/bgeu.s Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/bgeu.s Mon Dec 16 12:22:53 2002 @@ -23,10 +23,10 @@ text_label: bgtul $4,$5,text_label # Branch to an external label. - bgeu $4,$5,external_label - bgtu $4,$5,external_label - bgeul $4,$5,external_label - bgtul $4,$5,external_label +# bgeu $4,$5,external_label +# bgtu $4,$5,external_label +# bgeul $4,$5,external_label +# bgtul $4,$5,external_label # Round to a 16 byte boundary, for ease in testing multiple targets. nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/blt.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/blt.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/blt.d Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/blt.d Mon Dec 16 12:22:53 2002 @@ -51,20 +51,20 @@ Disassembly of section .text: 0+00a8 <[^>]*> slt at,a1,a0 0+00ac <[^>]*> beqzl at,0+0000 0+00b0 <[^>]*> nop -0+00b4 <[^>]*> slt at,a0,a1 -0+00b8 <[^>]*> bnez at,000000b8 -[ ]*b8: R_MIPS_PC16 external_label -0+00bc <[^>]*> nop -0+00c0 <[^>]*> slt at,a1,a0 -0+00c4 <[^>]*> beqz at,000000c4 -[ ]*c4: R_MIPS_PC16 external_label -0+00c8 <[^>]*> nop -0+00cc <[^>]*> slt at,a0,a1 -0+00d0 <[^>]*> bnezl at,000000d0 -[ ]*d0: R_MIPS_PC16 external_label -0+00d4 <[^>]*> nop -0+00d8 <[^>]*> slt at,a1,a0 -0+00dc <[^>]*> beqzl at,000000dc -[ ]*dc: R_MIPS_PC16 external_label -0+00e0 <[^>]*> nop +#0+00b4 <[^>]*> slt at,a0,a1 +#0+00b8 <[^>]*> bnez at,000000b8 +#[ ]*b8: R_MIPS_PC16 external_label +#0+00bc <[^>]*> nop +#0+00c0 <[^>]*> slt at,a1,a0 +#0+00c4 <[^>]*> beqz at,000000c4 +#[ ]*c4: R_MIPS_PC16 external_label +#0+00c8 <[^>]*> nop +#0+00cc <[^>]*> slt at,a0,a1 +#0+00d0 <[^>]*> bnezl at,000000d0 +#[ ]*d0: R_MIPS_PC16 external_label +#0+00d4 <[^>]*> nop +#0+00d8 <[^>]*> slt at,a1,a0 +#0+00dc <[^>]*> beqzl at,000000dc +#[ ]*dc: R_MIPS_PC16 external_label +#0+00e0 <[^>]*> nop ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/blt.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/blt.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/blt.s Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/blt.s Mon Dec 16 12:22:53 2002 @@ -25,10 +25,10 @@ text_label: blel $4,$5,text_label # Branch to an external label. - blt $4,$5,external_label - ble $4,$5,external_label - bltl $4,$5,external_label - blel $4,$5,external_label +# blt $4,$5,external_label +# ble $4,$5,external_label +# bltl $4,$5,external_label +# blel $4,$5,external_label # Round to a 16 byte boundary, for ease in testing multiple targets. nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/bltu.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/bltu.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/bltu.d Fri Nov 16 14:05:52 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/bltu.d Mon Dec 16 12:22:53 2002 @@ -45,20 +45,20 @@ Disassembly of section .text: 0+0090 <[^>]*> sltu at,a1,a0 0+0094 <[^>]*> beqzl at,0+0000 0+0098 <[^>]*> nop -0+009c <[^>]*> sltu at,a0,a1 -0+00a0 <[^>]*> bnez at,000000a0 -[ ]*a0: R_MIPS_PC16 external_label -0+00a4 <[^>]*> nop -0+00a8 <[^>]*> sltu at,a1,a0 -0+00ac <[^>]*> beqz at,000000ac -[ ]*ac: R_MIPS_PC16 external_label -0+00b0 <[^>]*> nop -0+00b4 <[^>]*> sltu at,a0,a1 -0+00b8 <[^>]*> bnezl at,000000b8 -[ ]*b8: R_MIPS_PC16 external_label -0+00bc <[^>]*> nop -0+00c0 <[^>]*> sltu at,a1,a0 -0+00c4 <[^>]*> beqzl at,000000c4 -[ ]*c4: R_MIPS_PC16 external_label -0+00c8 <[^>]*> nop +#0+009c <[^>]*> sltu at,a0,a1 +#0+00a0 <[^>]*> bnez at,000000a0 +#[ ]*a0: R_MIPS_PC16 external_label +#0+00a4 <[^>]*> nop +#0+00a8 <[^>]*> sltu at,a1,a0 +#0+00ac <[^>]*> beqz at,000000ac +#[ ]*ac: R_MIPS_PC16 external_label +#0+00b0 <[^>]*> nop +#0+00b4 <[^>]*> sltu at,a0,a1 +#0+00b8 <[^>]*> bnezl at,000000b8 +#[ ]*b8: R_MIPS_PC16 external_label +#0+00bc <[^>]*> nop +#0+00c0 <[^>]*> sltu at,a1,a0 +#0+00c4 <[^>]*> beqzl at,000000c4 +#[ ]*c4: R_MIPS_PC16 external_label +#0+00c8 <[^>]*> nop ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/bltu.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/bltu.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/bltu.s Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/bltu.s Mon Dec 16 12:22:53 2002 @@ -23,10 +23,10 @@ text_label: bleul $4,$5,text_label # Branch to an external label. - bltu $4,$5,external_label - bleu $4,$5,external_label - bltul $4,$5,external_label - bleul $4,$5,external_label +# bltu $4,$5,external_label +# bleu $4,$5,external_label +# bltul $4,$5,external_label +# bleul $4,$5,external_label # Round to a 16 byte boundary, for ease in testing multiple targets. nop diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/branch-misc-2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/branch-misc-2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/branch-misc-2.d Wed Oct 2 10:17:19 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/branch-misc-2.d Wed Dec 31 16:00:00 1969 @@ -1,33 +0,0 @@ -#objdump: -dr --prefix-addresses --show-raw-insn -#name: MIPS branch-misc-2 - -# Test the branches to global symbols in current file. - -.*: +file format .*mips.* - -Disassembly of section .text: - \.\.\. - \.\.\. - \.\.\. -0+003c <[^>]*> 0411fffc bal 00000030 -[ ]*3c: R_MIPS_PC16 g1 -0+0040 <[^>]*> 00000000 nop -0+0044 <[^>]*> 0411fffc bal 00000038 -[ ]*44: R_MIPS_PC16 g2 -0+0048 <[^>]*> 00000000 nop -0+004c <[^>]*> 0411fffc bal 00000040 -[ ]*4c: R_MIPS_PC16 g3 -0+0050 <[^>]*> 00000000 nop -0+0054 <[^>]*> 0411fffc bal 00000048 -[ ]*54: R_MIPS_PC16 g4 -0+0058 <[^>]*> 00000000 nop -0+005c <[^>]*> 0411fffc bal 00000050 -[ ]*5c: R_MIPS_PC16 g5 -0+0060 <[^>]*> 00000000 nop -0+0064 <[^>]*> 0411fffc bal 00000058 -[ ]*64: R_MIPS_PC16 g6 -0+0068 <[^>]*> 00000000 nop - \.\.\. - \.\.\. - \.\.\. - \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/branch-misc-2.l binutils-2.13.90.0.18/gas/testsuite/gas/mips/branch-misc-2.l --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/branch-misc-2.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/branch-misc-2.l Mon Dec 16 12:22:53 2002 @@ -0,0 +1,9 @@ +.*: Assembler messages: +.*:21: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +.*:22: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +.*:23: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +.*:24: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +.*:25: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +.*:26: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +.*:35: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format +.*:36: Error: Can not represent BFD_RELOC_16_PCREL_S2 relocation in this object file format diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/branch-misc-2.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/branch-misc-2.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/branch-misc-2.s Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/branch-misc-2.s Mon Dec 16 12:22:53 2002 @@ -7,6 +7,8 @@ .globl g5 .text .globl g6 .text + .globl x1 .text + .text g1: .space 20 @@ -30,5 +32,8 @@ g5: .space 20 g6: + b x1 + b x2 + # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-mips32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-mips32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-mips32.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-mips32.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,cp0-names=mips32 +#name: MIPS CP0 register disassembly (mips32) +#source: cp0-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800000 mtc0 \$0,c0_index +0+0004 <[^>]*> 40800800 mtc0 \$0,c0_random +0+0008 <[^>]*> 40801000 mtc0 \$0,c0_entrylo0 +0+000c <[^>]*> 40801800 mtc0 \$0,c0_entrylo1 +0+0010 <[^>]*> 40802000 mtc0 \$0,c0_context +0+0014 <[^>]*> 40802800 mtc0 \$0,c0_pagemask +0+0018 <[^>]*> 40803000 mtc0 \$0,c0_wired +0+001c <[^>]*> 40803800 mtc0 \$0,\$7 +0+0020 <[^>]*> 40804000 mtc0 \$0,c0_badvaddr +0+0024 <[^>]*> 40804800 mtc0 \$0,c0_count +0+0028 <[^>]*> 40805000 mtc0 \$0,c0_entryhi +0+002c <[^>]*> 40805800 mtc0 \$0,c0_compare +0+0030 <[^>]*> 40806000 mtc0 \$0,c0_status +0+0034 <[^>]*> 40806800 mtc0 \$0,c0_cause +0+0038 <[^>]*> 40807000 mtc0 \$0,c0_epc +0+003c <[^>]*> 40807800 mtc0 \$0,c0_prid +0+0040 <[^>]*> 40808000 mtc0 \$0,c0_config +0+0044 <[^>]*> 40808800 mtc0 \$0,c0_lladdr +0+0048 <[^>]*> 40809000 mtc0 \$0,c0_watchlo +0+004c <[^>]*> 40809800 mtc0 \$0,c0_watchhi +0+0050 <[^>]*> 4080a000 mtc0 \$0,c0_xcontext +0+0054 <[^>]*> 4080a800 mtc0 \$0,\$21 +0+0058 <[^>]*> 4080b000 mtc0 \$0,\$22 +0+005c <[^>]*> 4080b800 mtc0 \$0,c0_debug +0+0060 <[^>]*> 4080c000 mtc0 \$0,c0_depc +0+0064 <[^>]*> 4080c800 mtc0 \$0,c0_perfcnt +0+0068 <[^>]*> 4080d000 mtc0 \$0,c0_errctl +0+006c <[^>]*> 4080d800 mtc0 \$0,c0_cacheerr +0+0070 <[^>]*> 4080e000 mtc0 \$0,c0_taglo +0+0074 <[^>]*> 4080e800 mtc0 \$0,c0_taghi +0+0078 <[^>]*> 4080f000 mtc0 \$0,c0_errorepc +0+007c <[^>]*> 4080f800 mtc0 \$0,c0_desave + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-mips32r2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-mips32r2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-mips32r2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-mips32r2.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,cp0-names=mips32r2 +#name: MIPS CP0 register disassembly (mips32r2) +#source: cp0-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800000 mtc0 \$0,c0_index +0+0004 <[^>]*> 40800800 mtc0 \$0,c0_random +0+0008 <[^>]*> 40801000 mtc0 \$0,c0_entrylo0 +0+000c <[^>]*> 40801800 mtc0 \$0,c0_entrylo1 +0+0010 <[^>]*> 40802000 mtc0 \$0,c0_context +0+0014 <[^>]*> 40802800 mtc0 \$0,c0_pagemask +0+0018 <[^>]*> 40803000 mtc0 \$0,c0_wired +0+001c <[^>]*> 40803800 mtc0 \$0,c0_hwrena +0+0020 <[^>]*> 40804000 mtc0 \$0,c0_badvaddr +0+0024 <[^>]*> 40804800 mtc0 \$0,c0_count +0+0028 <[^>]*> 40805000 mtc0 \$0,c0_entryhi +0+002c <[^>]*> 40805800 mtc0 \$0,c0_compare +0+0030 <[^>]*> 40806000 mtc0 \$0,c0_status +0+0034 <[^>]*> 40806800 mtc0 \$0,c0_cause +0+0038 <[^>]*> 40807000 mtc0 \$0,c0_epc +0+003c <[^>]*> 40807800 mtc0 \$0,c0_prid +0+0040 <[^>]*> 40808000 mtc0 \$0,c0_config +0+0044 <[^>]*> 40808800 mtc0 \$0,c0_lladdr +0+0048 <[^>]*> 40809000 mtc0 \$0,c0_watchlo +0+004c <[^>]*> 40809800 mtc0 \$0,c0_watchhi +0+0050 <[^>]*> 4080a000 mtc0 \$0,c0_xcontext +0+0054 <[^>]*> 4080a800 mtc0 \$0,\$21 +0+0058 <[^>]*> 4080b000 mtc0 \$0,\$22 +0+005c <[^>]*> 4080b800 mtc0 \$0,c0_debug +0+0060 <[^>]*> 4080c000 mtc0 \$0,c0_depc +0+0064 <[^>]*> 4080c800 mtc0 \$0,c0_perfcnt +0+0068 <[^>]*> 4080d000 mtc0 \$0,c0_errctl +0+006c <[^>]*> 4080d800 mtc0 \$0,c0_cacheerr +0+0070 <[^>]*> 4080e000 mtc0 \$0,c0_taglo +0+0074 <[^>]*> 4080e800 mtc0 \$0,c0_taghi +0+0078 <[^>]*> 4080f000 mtc0 \$0,c0_errorepc +0+007c <[^>]*> 4080f800 mtc0 \$0,c0_desave + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-mips64.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-mips64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-mips64.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-mips64.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,cp0-names=mips64 +#name: MIPS CP0 register disassembly (mips64) +#source: cp0-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800000 mtc0 \$0,c0_index +0+0004 <[^>]*> 40800800 mtc0 \$0,c0_random +0+0008 <[^>]*> 40801000 mtc0 \$0,c0_entrylo0 +0+000c <[^>]*> 40801800 mtc0 \$0,c0_entrylo1 +0+0010 <[^>]*> 40802000 mtc0 \$0,c0_context +0+0014 <[^>]*> 40802800 mtc0 \$0,c0_pagemask +0+0018 <[^>]*> 40803000 mtc0 \$0,c0_wired +0+001c <[^>]*> 40803800 mtc0 \$0,\$7 +0+0020 <[^>]*> 40804000 mtc0 \$0,c0_badvaddr +0+0024 <[^>]*> 40804800 mtc0 \$0,c0_count +0+0028 <[^>]*> 40805000 mtc0 \$0,c0_entryhi +0+002c <[^>]*> 40805800 mtc0 \$0,c0_compare +0+0030 <[^>]*> 40806000 mtc0 \$0,c0_status +0+0034 <[^>]*> 40806800 mtc0 \$0,c0_cause +0+0038 <[^>]*> 40807000 mtc0 \$0,c0_epc +0+003c <[^>]*> 40807800 mtc0 \$0,c0_prid +0+0040 <[^>]*> 40808000 mtc0 \$0,c0_config +0+0044 <[^>]*> 40808800 mtc0 \$0,c0_lladdr +0+0048 <[^>]*> 40809000 mtc0 \$0,c0_watchlo +0+004c <[^>]*> 40809800 mtc0 \$0,c0_watchhi +0+0050 <[^>]*> 4080a000 mtc0 \$0,c0_xcontext +0+0054 <[^>]*> 4080a800 mtc0 \$0,\$21 +0+0058 <[^>]*> 4080b000 mtc0 \$0,\$22 +0+005c <[^>]*> 4080b800 mtc0 \$0,c0_debug +0+0060 <[^>]*> 4080c000 mtc0 \$0,c0_depc +0+0064 <[^>]*> 4080c800 mtc0 \$0,c0_perfcnt +0+0068 <[^>]*> 4080d000 mtc0 \$0,c0_errctl +0+006c <[^>]*> 4080d800 mtc0 \$0,c0_cacheerr +0+0070 <[^>]*> 4080e000 mtc0 \$0,c0_taglo +0+0074 <[^>]*> 4080e800 mtc0 \$0,c0_taghi +0+0078 <[^>]*> 4080f000 mtc0 \$0,c0_errorepc +0+007c <[^>]*> 4080f800 mtc0 \$0,c0_desave + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-numeric.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-numeric.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-numeric.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-numeric.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,cp0-names=numeric +#name: MIPS CP0 register disassembly (numeric) +#source: cp0-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800000 mtc0 \$0,\$0 +0+0004 <[^>]*> 40800800 mtc0 \$0,\$1 +0+0008 <[^>]*> 40801000 mtc0 \$0,\$2 +0+000c <[^>]*> 40801800 mtc0 \$0,\$3 +0+0010 <[^>]*> 40802000 mtc0 \$0,\$4 +0+0014 <[^>]*> 40802800 mtc0 \$0,\$5 +0+0018 <[^>]*> 40803000 mtc0 \$0,\$6 +0+001c <[^>]*> 40803800 mtc0 \$0,\$7 +0+0020 <[^>]*> 40804000 mtc0 \$0,\$8 +0+0024 <[^>]*> 40804800 mtc0 \$0,\$9 +0+0028 <[^>]*> 40805000 mtc0 \$0,\$10 +0+002c <[^>]*> 40805800 mtc0 \$0,\$11 +0+0030 <[^>]*> 40806000 mtc0 \$0,\$12 +0+0034 <[^>]*> 40806800 mtc0 \$0,\$13 +0+0038 <[^>]*> 40807000 mtc0 \$0,\$14 +0+003c <[^>]*> 40807800 mtc0 \$0,\$15 +0+0040 <[^>]*> 40808000 mtc0 \$0,\$16 +0+0044 <[^>]*> 40808800 mtc0 \$0,\$17 +0+0048 <[^>]*> 40809000 mtc0 \$0,\$18 +0+004c <[^>]*> 40809800 mtc0 \$0,\$19 +0+0050 <[^>]*> 4080a000 mtc0 \$0,\$20 +0+0054 <[^>]*> 4080a800 mtc0 \$0,\$21 +0+0058 <[^>]*> 4080b000 mtc0 \$0,\$22 +0+005c <[^>]*> 4080b800 mtc0 \$0,\$23 +0+0060 <[^>]*> 4080c000 mtc0 \$0,\$24 +0+0064 <[^>]*> 4080c800 mtc0 \$0,\$25 +0+0068 <[^>]*> 4080d000 mtc0 \$0,\$26 +0+006c <[^>]*> 4080d800 mtc0 \$0,\$27 +0+0070 <[^>]*> 4080e000 mtc0 \$0,\$28 +0+0074 <[^>]*> 4080e800 mtc0 \$0,\$29 +0+0078 <[^>]*> 4080f000 mtc0 \$0,\$30 +0+007c <[^>]*> 4080f800 mtc0 \$0,\$31 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-sb1.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-sb1.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names-sb1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names-sb1.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,cp0-names=sb1 +#name: MIPS CP0 register disassembly (sb1) +#source: cp0-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800000 mtc0 \$0,c0_index +0+0004 <[^>]*> 40800800 mtc0 \$0,c0_random +0+0008 <[^>]*> 40801000 mtc0 \$0,c0_entrylo0 +0+000c <[^>]*> 40801800 mtc0 \$0,c0_entrylo1 +0+0010 <[^>]*> 40802000 mtc0 \$0,c0_context +0+0014 <[^>]*> 40802800 mtc0 \$0,c0_pagemask +0+0018 <[^>]*> 40803000 mtc0 \$0,c0_wired +0+001c <[^>]*> 40803800 mtc0 \$0,\$7 +0+0020 <[^>]*> 40804000 mtc0 \$0,c0_badvaddr +0+0024 <[^>]*> 40804800 mtc0 \$0,c0_count +0+0028 <[^>]*> 40805000 mtc0 \$0,c0_entryhi +0+002c <[^>]*> 40805800 mtc0 \$0,c0_compare +0+0030 <[^>]*> 40806000 mtc0 \$0,c0_status +0+0034 <[^>]*> 40806800 mtc0 \$0,c0_cause +0+0038 <[^>]*> 40807000 mtc0 \$0,c0_epc +0+003c <[^>]*> 40807800 mtc0 \$0,c0_prid +0+0040 <[^>]*> 40808000 mtc0 \$0,c0_config +0+0044 <[^>]*> 40808800 mtc0 \$0,c0_lladdr +0+0048 <[^>]*> 40809000 mtc0 \$0,c0_watchlo +0+004c <[^>]*> 40809800 mtc0 \$0,c0_watchhi +0+0050 <[^>]*> 4080a000 mtc0 \$0,c0_xcontext +0+0054 <[^>]*> 4080a800 mtc0 \$0,\$21 +0+0058 <[^>]*> 4080b000 mtc0 \$0,\$22 +0+005c <[^>]*> 4080b800 mtc0 \$0,c0_debug +0+0060 <[^>]*> 4080c000 mtc0 \$0,c0_depc +0+0064 <[^>]*> 4080c800 mtc0 \$0,c0_perfcnt +0+0068 <[^>]*> 4080d000 mtc0 \$0,c0_errctl +0+006c <[^>]*> 4080d800 mtc0 \$0,c0_cacheerr_i +0+0070 <[^>]*> 4080e000 mtc0 \$0,c0_taglo_i +0+0074 <[^>]*> 4080e800 mtc0 \$0,c0_taghi_i +0+0078 <[^>]*> 4080f000 mtc0 \$0,c0_errorepc +0+007c <[^>]*> 4080f800 mtc0 \$0,c0_desave + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0-names.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0-names.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,44 @@ +# source file to test objdump's disassembly using various styles of +# CP0 register names. + + .set noreorder + .set noat + + .globl text_label .text +text_label: + + mtc0 $0, $0 + mtc0 $0, $1 + mtc0 $0, $2 + mtc0 $0, $3 + mtc0 $0, $4 + mtc0 $0, $5 + mtc0 $0, $6 + mtc0 $0, $7 + mtc0 $0, $8 + mtc0 $0, $9 + mtc0 $0, $10 + mtc0 $0, $11 + mtc0 $0, $12 + mtc0 $0, $13 + mtc0 $0, $14 + mtc0 $0, $15 + mtc0 $0, $16 + mtc0 $0, $17 + mtc0 $0, $18 + mtc0 $0, $19 + mtc0 $0, $20 + mtc0 $0, $21 + mtc0 $0, $22 + mtc0 $0, $23 + mtc0 $0, $24 + mtc0 $0, $25 + mtc0 $0, $26 + mtc0 $0, $27 + mtc0 $0, $28 + mtc0 $0, $29 + mtc0 $0, $30 + mtc0 $0, $31 + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-mips32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-mips32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-mips32.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-mips32.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,235 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32 -M gpr-names=numeric,cp0-names=mips32 +#name: MIPS CP0 with sel register disassembly (mips32) +#as: -march=mips32 +#source: cp0sel-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800001 mtc0 \$0,\$0,1 +0+0004 <[^>]*> 40800002 mtc0 \$0,\$0,2 +0+0008 <[^>]*> 40800003 mtc0 \$0,\$0,3 +0+000c <[^>]*> 40800004 mtc0 \$0,\$0,4 +0+0010 <[^>]*> 40800005 mtc0 \$0,\$0,5 +0+0014 <[^>]*> 40800006 mtc0 \$0,\$0,6 +0+0018 <[^>]*> 40800007 mtc0 \$0,\$0,7 +0+001c <[^>]*> 40800801 mtc0 \$0,\$1,1 +0+0020 <[^>]*> 40800802 mtc0 \$0,\$1,2 +0+0024 <[^>]*> 40800803 mtc0 \$0,\$1,3 +0+0028 <[^>]*> 40800804 mtc0 \$0,\$1,4 +0+002c <[^>]*> 40800805 mtc0 \$0,\$1,5 +0+0030 <[^>]*> 40800806 mtc0 \$0,\$1,6 +0+0034 <[^>]*> 40800807 mtc0 \$0,\$1,7 +0+0038 <[^>]*> 40801001 mtc0 \$0,\$2,1 +0+003c <[^>]*> 40801002 mtc0 \$0,\$2,2 +0+0040 <[^>]*> 40801003 mtc0 \$0,\$2,3 +0+0044 <[^>]*> 40801004 mtc0 \$0,\$2,4 +0+0048 <[^>]*> 40801005 mtc0 \$0,\$2,5 +0+004c <[^>]*> 40801006 mtc0 \$0,\$2,6 +0+0050 <[^>]*> 40801007 mtc0 \$0,\$2,7 +0+0054 <[^>]*> 40801801 mtc0 \$0,\$3,1 +0+0058 <[^>]*> 40801802 mtc0 \$0,\$3,2 +0+005c <[^>]*> 40801803 mtc0 \$0,\$3,3 +0+0060 <[^>]*> 40801804 mtc0 \$0,\$3,4 +0+0064 <[^>]*> 40801805 mtc0 \$0,\$3,5 +0+0068 <[^>]*> 40801806 mtc0 \$0,\$3,6 +0+006c <[^>]*> 40801807 mtc0 \$0,\$3,7 +0+0070 <[^>]*> 40802001 mtc0 \$0,\$4,1 +0+0074 <[^>]*> 40802002 mtc0 \$0,\$4,2 +0+0078 <[^>]*> 40802003 mtc0 \$0,\$4,3 +0+007c <[^>]*> 40802004 mtc0 \$0,\$4,4 +0+0080 <[^>]*> 40802005 mtc0 \$0,\$4,5 +0+0084 <[^>]*> 40802006 mtc0 \$0,\$4,6 +0+0088 <[^>]*> 40802007 mtc0 \$0,\$4,7 +0+008c <[^>]*> 40802801 mtc0 \$0,\$5,1 +0+0090 <[^>]*> 40802802 mtc0 \$0,\$5,2 +0+0094 <[^>]*> 40802803 mtc0 \$0,\$5,3 +0+0098 <[^>]*> 40802804 mtc0 \$0,\$5,4 +0+009c <[^>]*> 40802805 mtc0 \$0,\$5,5 +0+00a0 <[^>]*> 40802806 mtc0 \$0,\$5,6 +0+00a4 <[^>]*> 40802807 mtc0 \$0,\$5,7 +0+00a8 <[^>]*> 40803001 mtc0 \$0,\$6,1 +0+00ac <[^>]*> 40803002 mtc0 \$0,\$6,2 +0+00b0 <[^>]*> 40803003 mtc0 \$0,\$6,3 +0+00b4 <[^>]*> 40803004 mtc0 \$0,\$6,4 +0+00b8 <[^>]*> 40803005 mtc0 \$0,\$6,5 +0+00bc <[^>]*> 40803006 mtc0 \$0,\$6,6 +0+00c0 <[^>]*> 40803007 mtc0 \$0,\$6,7 +0+00c4 <[^>]*> 40803801 mtc0 \$0,\$7,1 +0+00c8 <[^>]*> 40803802 mtc0 \$0,\$7,2 +0+00cc <[^>]*> 40803803 mtc0 \$0,\$7,3 +0+00d0 <[^>]*> 40803804 mtc0 \$0,\$7,4 +0+00d4 <[^>]*> 40803805 mtc0 \$0,\$7,5 +0+00d8 <[^>]*> 40803806 mtc0 \$0,\$7,6 +0+00dc <[^>]*> 40803807 mtc0 \$0,\$7,7 +0+00e0 <[^>]*> 40804001 mtc0 \$0,\$8,1 +0+00e4 <[^>]*> 40804002 mtc0 \$0,\$8,2 +0+00e8 <[^>]*> 40804003 mtc0 \$0,\$8,3 +0+00ec <[^>]*> 40804004 mtc0 \$0,\$8,4 +0+00f0 <[^>]*> 40804005 mtc0 \$0,\$8,5 +0+00f4 <[^>]*> 40804006 mtc0 \$0,\$8,6 +0+00f8 <[^>]*> 40804007 mtc0 \$0,\$8,7 +0+00fc <[^>]*> 40804801 mtc0 \$0,\$9,1 +0+0100 <[^>]*> 40804802 mtc0 \$0,\$9,2 +0+0104 <[^>]*> 40804803 mtc0 \$0,\$9,3 +0+0108 <[^>]*> 40804804 mtc0 \$0,\$9,4 +0+010c <[^>]*> 40804805 mtc0 \$0,\$9,5 +0+0110 <[^>]*> 40804806 mtc0 \$0,\$9,6 +0+0114 <[^>]*> 40804807 mtc0 \$0,\$9,7 +0+0118 <[^>]*> 40805001 mtc0 \$0,\$10,1 +0+011c <[^>]*> 40805002 mtc0 \$0,\$10,2 +0+0120 <[^>]*> 40805003 mtc0 \$0,\$10,3 +0+0124 <[^>]*> 40805004 mtc0 \$0,\$10,4 +0+0128 <[^>]*> 40805005 mtc0 \$0,\$10,5 +0+012c <[^>]*> 40805006 mtc0 \$0,\$10,6 +0+0130 <[^>]*> 40805007 mtc0 \$0,\$10,7 +0+0134 <[^>]*> 40805801 mtc0 \$0,\$11,1 +0+0138 <[^>]*> 40805802 mtc0 \$0,\$11,2 +0+013c <[^>]*> 40805803 mtc0 \$0,\$11,3 +0+0140 <[^>]*> 40805804 mtc0 \$0,\$11,4 +0+0144 <[^>]*> 40805805 mtc0 \$0,\$11,5 +0+0148 <[^>]*> 40805806 mtc0 \$0,\$11,6 +0+014c <[^>]*> 40805807 mtc0 \$0,\$11,7 +0+0150 <[^>]*> 40806001 mtc0 \$0,\$12,1 +0+0154 <[^>]*> 40806002 mtc0 \$0,\$12,2 +0+0158 <[^>]*> 40806003 mtc0 \$0,\$12,3 +0+015c <[^>]*> 40806004 mtc0 \$0,\$12,4 +0+0160 <[^>]*> 40806005 mtc0 \$0,\$12,5 +0+0164 <[^>]*> 40806006 mtc0 \$0,\$12,6 +0+0168 <[^>]*> 40806007 mtc0 \$0,\$12,7 +0+016c <[^>]*> 40806801 mtc0 \$0,\$13,1 +0+0170 <[^>]*> 40806802 mtc0 \$0,\$13,2 +0+0174 <[^>]*> 40806803 mtc0 \$0,\$13,3 +0+0178 <[^>]*> 40806804 mtc0 \$0,\$13,4 +0+017c <[^>]*> 40806805 mtc0 \$0,\$13,5 +0+0180 <[^>]*> 40806806 mtc0 \$0,\$13,6 +0+0184 <[^>]*> 40806807 mtc0 \$0,\$13,7 +0+0188 <[^>]*> 40807001 mtc0 \$0,\$14,1 +0+018c <[^>]*> 40807002 mtc0 \$0,\$14,2 +0+0190 <[^>]*> 40807003 mtc0 \$0,\$14,3 +0+0194 <[^>]*> 40807004 mtc0 \$0,\$14,4 +0+0198 <[^>]*> 40807005 mtc0 \$0,\$14,5 +0+019c <[^>]*> 40807006 mtc0 \$0,\$14,6 +0+01a0 <[^>]*> 40807007 mtc0 \$0,\$14,7 +0+01a4 <[^>]*> 40807801 mtc0 \$0,\$15,1 +0+01a8 <[^>]*> 40807802 mtc0 \$0,\$15,2 +0+01ac <[^>]*> 40807803 mtc0 \$0,\$15,3 +0+01b0 <[^>]*> 40807804 mtc0 \$0,\$15,4 +0+01b4 <[^>]*> 40807805 mtc0 \$0,\$15,5 +0+01b8 <[^>]*> 40807806 mtc0 \$0,\$15,6 +0+01bc <[^>]*> 40807807 mtc0 \$0,\$15,7 +0+01c0 <[^>]*> 40808001 mtc0 \$0,c0_config1 +0+01c4 <[^>]*> 40808002 mtc0 \$0,c0_config2 +0+01c8 <[^>]*> 40808003 mtc0 \$0,c0_config3 +0+01cc <[^>]*> 40808004 mtc0 \$0,\$16,4 +0+01d0 <[^>]*> 40808005 mtc0 \$0,\$16,5 +0+01d4 <[^>]*> 40808006 mtc0 \$0,\$16,6 +0+01d8 <[^>]*> 40808007 mtc0 \$0,\$16,7 +0+01dc <[^>]*> 40808801 mtc0 \$0,\$17,1 +0+01e0 <[^>]*> 40808802 mtc0 \$0,\$17,2 +0+01e4 <[^>]*> 40808803 mtc0 \$0,\$17,3 +0+01e8 <[^>]*> 40808804 mtc0 \$0,\$17,4 +0+01ec <[^>]*> 40808805 mtc0 \$0,\$17,5 +0+01f0 <[^>]*> 40808806 mtc0 \$0,\$17,6 +0+01f4 <[^>]*> 40808807 mtc0 \$0,\$17,7 +0+01f8 <[^>]*> 40809001 mtc0 \$0,c0_watchlo,1 +0+01fc <[^>]*> 40809002 mtc0 \$0,c0_watchlo,2 +0+0200 <[^>]*> 40809003 mtc0 \$0,c0_watchlo,3 +0+0204 <[^>]*> 40809004 mtc0 \$0,c0_watchlo,4 +0+0208 <[^>]*> 40809005 mtc0 \$0,c0_watchlo,5 +0+020c <[^>]*> 40809006 mtc0 \$0,c0_watchlo,6 +0+0210 <[^>]*> 40809007 mtc0 \$0,c0_watchlo,7 +0+0214 <[^>]*> 40809801 mtc0 \$0,c0_watchhi,1 +0+0218 <[^>]*> 40809802 mtc0 \$0,c0_watchhi,2 +0+021c <[^>]*> 40809803 mtc0 \$0,c0_watchhi,3 +0+0220 <[^>]*> 40809804 mtc0 \$0,c0_watchhi,4 +0+0224 <[^>]*> 40809805 mtc0 \$0,c0_watchhi,5 +0+0228 <[^>]*> 40809806 mtc0 \$0,c0_watchhi,6 +0+022c <[^>]*> 40809807 mtc0 \$0,c0_watchhi,7 +0+0230 <[^>]*> 4080a001 mtc0 \$0,\$20,1 +0+0234 <[^>]*> 4080a002 mtc0 \$0,\$20,2 +0+0238 <[^>]*> 4080a003 mtc0 \$0,\$20,3 +0+023c <[^>]*> 4080a004 mtc0 \$0,\$20,4 +0+0240 <[^>]*> 4080a005 mtc0 \$0,\$20,5 +0+0244 <[^>]*> 4080a006 mtc0 \$0,\$20,6 +0+0248 <[^>]*> 4080a007 mtc0 \$0,\$20,7 +0+024c <[^>]*> 4080a801 mtc0 \$0,\$21,1 +0+0250 <[^>]*> 4080a802 mtc0 \$0,\$21,2 +0+0254 <[^>]*> 4080a803 mtc0 \$0,\$21,3 +0+0258 <[^>]*> 4080a804 mtc0 \$0,\$21,4 +0+025c <[^>]*> 4080a805 mtc0 \$0,\$21,5 +0+0260 <[^>]*> 4080a806 mtc0 \$0,\$21,6 +0+0264 <[^>]*> 4080a807 mtc0 \$0,\$21,7 +0+0268 <[^>]*> 4080b001 mtc0 \$0,\$22,1 +0+026c <[^>]*> 4080b002 mtc0 \$0,\$22,2 +0+0270 <[^>]*> 4080b003 mtc0 \$0,\$22,3 +0+0274 <[^>]*> 4080b004 mtc0 \$0,\$22,4 +0+0278 <[^>]*> 4080b005 mtc0 \$0,\$22,5 +0+027c <[^>]*> 4080b006 mtc0 \$0,\$22,6 +0+0280 <[^>]*> 4080b007 mtc0 \$0,\$22,7 +0+0284 <[^>]*> 4080b801 mtc0 \$0,\$23,1 +0+0288 <[^>]*> 4080b802 mtc0 \$0,\$23,2 +0+028c <[^>]*> 4080b803 mtc0 \$0,\$23,3 +0+0290 <[^>]*> 4080b804 mtc0 \$0,\$23,4 +0+0294 <[^>]*> 4080b805 mtc0 \$0,\$23,5 +0+0298 <[^>]*> 4080b806 mtc0 \$0,\$23,6 +0+029c <[^>]*> 4080b807 mtc0 \$0,\$23,7 +0+02a0 <[^>]*> 4080c001 mtc0 \$0,\$24,1 +0+02a4 <[^>]*> 4080c002 mtc0 \$0,\$24,2 +0+02a8 <[^>]*> 4080c003 mtc0 \$0,\$24,3 +0+02ac <[^>]*> 4080c004 mtc0 \$0,\$24,4 +0+02b0 <[^>]*> 4080c005 mtc0 \$0,\$24,5 +0+02b4 <[^>]*> 4080c006 mtc0 \$0,\$24,6 +0+02b8 <[^>]*> 4080c007 mtc0 \$0,\$24,7 +0+02bc <[^>]*> 4080c801 mtc0 \$0,c0_perfcnt,1 +0+02c0 <[^>]*> 4080c802 mtc0 \$0,c0_perfcnt,2 +0+02c4 <[^>]*> 4080c803 mtc0 \$0,c0_perfcnt,3 +0+02c8 <[^>]*> 4080c804 mtc0 \$0,c0_perfcnt,4 +0+02cc <[^>]*> 4080c805 mtc0 \$0,c0_perfcnt,5 +0+02d0 <[^>]*> 4080c806 mtc0 \$0,c0_perfcnt,6 +0+02d4 <[^>]*> 4080c807 mtc0 \$0,c0_perfcnt,7 +0+02d8 <[^>]*> 4080d001 mtc0 \$0,\$26,1 +0+02dc <[^>]*> 4080d002 mtc0 \$0,\$26,2 +0+02e0 <[^>]*> 4080d003 mtc0 \$0,\$26,3 +0+02e4 <[^>]*> 4080d004 mtc0 \$0,\$26,4 +0+02e8 <[^>]*> 4080d005 mtc0 \$0,\$26,5 +0+02ec <[^>]*> 4080d006 mtc0 \$0,\$26,6 +0+02f0 <[^>]*> 4080d007 mtc0 \$0,\$26,7 +0+02f4 <[^>]*> 4080d801 mtc0 \$0,c0_cacheerr,1 +0+02f8 <[^>]*> 4080d802 mtc0 \$0,c0_cacheerr,2 +0+02fc <[^>]*> 4080d803 mtc0 \$0,c0_cacheerr,3 +0+0300 <[^>]*> 4080d804 mtc0 \$0,\$27,4 +0+0304 <[^>]*> 4080d805 mtc0 \$0,\$27,5 +0+0308 <[^>]*> 4080d806 mtc0 \$0,\$27,6 +0+030c <[^>]*> 4080d807 mtc0 \$0,\$27,7 +0+0310 <[^>]*> 4080e001 mtc0 \$0,c0_datalo +0+0314 <[^>]*> 4080e002 mtc0 \$0,\$28,2 +0+0318 <[^>]*> 4080e003 mtc0 \$0,\$28,3 +0+031c <[^>]*> 4080e004 mtc0 \$0,\$28,4 +0+0320 <[^>]*> 4080e005 mtc0 \$0,\$28,5 +0+0324 <[^>]*> 4080e006 mtc0 \$0,\$28,6 +0+0328 <[^>]*> 4080e007 mtc0 \$0,\$28,7 +0+032c <[^>]*> 4080e801 mtc0 \$0,c0_datahi +0+0330 <[^>]*> 4080e802 mtc0 \$0,\$29,2 +0+0334 <[^>]*> 4080e803 mtc0 \$0,\$29,3 +0+0338 <[^>]*> 4080e804 mtc0 \$0,\$29,4 +0+033c <[^>]*> 4080e805 mtc0 \$0,\$29,5 +0+0340 <[^>]*> 4080e806 mtc0 \$0,\$29,6 +0+0344 <[^>]*> 4080e807 mtc0 \$0,\$29,7 +0+0348 <[^>]*> 4080f001 mtc0 \$0,\$30,1 +0+034c <[^>]*> 4080f002 mtc0 \$0,\$30,2 +0+0350 <[^>]*> 4080f003 mtc0 \$0,\$30,3 +0+0354 <[^>]*> 4080f004 mtc0 \$0,\$30,4 +0+0358 <[^>]*> 4080f005 mtc0 \$0,\$30,5 +0+035c <[^>]*> 4080f006 mtc0 \$0,\$30,6 +0+0360 <[^>]*> 4080f007 mtc0 \$0,\$30,7 +0+0364 <[^>]*> 4080f801 mtc0 \$0,\$31,1 +0+0368 <[^>]*> 4080f802 mtc0 \$0,\$31,2 +0+036c <[^>]*> 4080f803 mtc0 \$0,\$31,3 +0+0370 <[^>]*> 4080f804 mtc0 \$0,\$31,4 +0+0374 <[^>]*> 4080f805 mtc0 \$0,\$31,5 +0+0378 <[^>]*> 4080f806 mtc0 \$0,\$31,6 +0+037c <[^>]*> 4080f807 mtc0 \$0,\$31,7 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-mips32r2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-mips32r2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-mips32r2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-mips32r2.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,235 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32 -M gpr-names=numeric,cp0-names=mips32r2 +#name: MIPS CP0 with sel register disassembly (mips32r2) +#as: -march=mips32 +#source: cp0sel-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800001 mtc0 \$0,\$0,1 +0+0004 <[^>]*> 40800002 mtc0 \$0,\$0,2 +0+0008 <[^>]*> 40800003 mtc0 \$0,\$0,3 +0+000c <[^>]*> 40800004 mtc0 \$0,\$0,4 +0+0010 <[^>]*> 40800005 mtc0 \$0,\$0,5 +0+0014 <[^>]*> 40800006 mtc0 \$0,\$0,6 +0+0018 <[^>]*> 40800007 mtc0 \$0,\$0,7 +0+001c <[^>]*> 40800801 mtc0 \$0,\$1,1 +0+0020 <[^>]*> 40800802 mtc0 \$0,\$1,2 +0+0024 <[^>]*> 40800803 mtc0 \$0,\$1,3 +0+0028 <[^>]*> 40800804 mtc0 \$0,\$1,4 +0+002c <[^>]*> 40800805 mtc0 \$0,\$1,5 +0+0030 <[^>]*> 40800806 mtc0 \$0,\$1,6 +0+0034 <[^>]*> 40800807 mtc0 \$0,\$1,7 +0+0038 <[^>]*> 40801001 mtc0 \$0,\$2,1 +0+003c <[^>]*> 40801002 mtc0 \$0,\$2,2 +0+0040 <[^>]*> 40801003 mtc0 \$0,\$2,3 +0+0044 <[^>]*> 40801004 mtc0 \$0,\$2,4 +0+0048 <[^>]*> 40801005 mtc0 \$0,\$2,5 +0+004c <[^>]*> 40801006 mtc0 \$0,\$2,6 +0+0050 <[^>]*> 40801007 mtc0 \$0,\$2,7 +0+0054 <[^>]*> 40801801 mtc0 \$0,\$3,1 +0+0058 <[^>]*> 40801802 mtc0 \$0,\$3,2 +0+005c <[^>]*> 40801803 mtc0 \$0,\$3,3 +0+0060 <[^>]*> 40801804 mtc0 \$0,\$3,4 +0+0064 <[^>]*> 40801805 mtc0 \$0,\$3,5 +0+0068 <[^>]*> 40801806 mtc0 \$0,\$3,6 +0+006c <[^>]*> 40801807 mtc0 \$0,\$3,7 +0+0070 <[^>]*> 40802001 mtc0 \$0,c0_contextconfig +0+0074 <[^>]*> 40802002 mtc0 \$0,\$4,2 +0+0078 <[^>]*> 40802003 mtc0 \$0,\$4,3 +0+007c <[^>]*> 40802004 mtc0 \$0,\$4,4 +0+0080 <[^>]*> 40802005 mtc0 \$0,\$4,5 +0+0084 <[^>]*> 40802006 mtc0 \$0,\$4,6 +0+0088 <[^>]*> 40802007 mtc0 \$0,\$4,7 +0+008c <[^>]*> 40802801 mtc0 \$0,c0_pagegrain +0+0090 <[^>]*> 40802802 mtc0 \$0,\$5,2 +0+0094 <[^>]*> 40802803 mtc0 \$0,\$5,3 +0+0098 <[^>]*> 40802804 mtc0 \$0,\$5,4 +0+009c <[^>]*> 40802805 mtc0 \$0,\$5,5 +0+00a0 <[^>]*> 40802806 mtc0 \$0,\$5,6 +0+00a4 <[^>]*> 40802807 mtc0 \$0,\$5,7 +0+00a8 <[^>]*> 40803001 mtc0 \$0,\$6,1 +0+00ac <[^>]*> 40803002 mtc0 \$0,\$6,2 +0+00b0 <[^>]*> 40803003 mtc0 \$0,\$6,3 +0+00b4 <[^>]*> 40803004 mtc0 \$0,\$6,4 +0+00b8 <[^>]*> 40803005 mtc0 \$0,\$6,5 +0+00bc <[^>]*> 40803006 mtc0 \$0,\$6,6 +0+00c0 <[^>]*> 40803007 mtc0 \$0,\$6,7 +0+00c4 <[^>]*> 40803801 mtc0 \$0,\$7,1 +0+00c8 <[^>]*> 40803802 mtc0 \$0,\$7,2 +0+00cc <[^>]*> 40803803 mtc0 \$0,\$7,3 +0+00d0 <[^>]*> 40803804 mtc0 \$0,\$7,4 +0+00d4 <[^>]*> 40803805 mtc0 \$0,\$7,5 +0+00d8 <[^>]*> 40803806 mtc0 \$0,\$7,6 +0+00dc <[^>]*> 40803807 mtc0 \$0,\$7,7 +0+00e0 <[^>]*> 40804001 mtc0 \$0,\$8,1 +0+00e4 <[^>]*> 40804002 mtc0 \$0,\$8,2 +0+00e8 <[^>]*> 40804003 mtc0 \$0,\$8,3 +0+00ec <[^>]*> 40804004 mtc0 \$0,\$8,4 +0+00f0 <[^>]*> 40804005 mtc0 \$0,\$8,5 +0+00f4 <[^>]*> 40804006 mtc0 \$0,\$8,6 +0+00f8 <[^>]*> 40804007 mtc0 \$0,\$8,7 +0+00fc <[^>]*> 40804801 mtc0 \$0,\$9,1 +0+0100 <[^>]*> 40804802 mtc0 \$0,\$9,2 +0+0104 <[^>]*> 40804803 mtc0 \$0,\$9,3 +0+0108 <[^>]*> 40804804 mtc0 \$0,\$9,4 +0+010c <[^>]*> 40804805 mtc0 \$0,\$9,5 +0+0110 <[^>]*> 40804806 mtc0 \$0,\$9,6 +0+0114 <[^>]*> 40804807 mtc0 \$0,\$9,7 +0+0118 <[^>]*> 40805001 mtc0 \$0,\$10,1 +0+011c <[^>]*> 40805002 mtc0 \$0,\$10,2 +0+0120 <[^>]*> 40805003 mtc0 \$0,\$10,3 +0+0124 <[^>]*> 40805004 mtc0 \$0,\$10,4 +0+0128 <[^>]*> 40805005 mtc0 \$0,\$10,5 +0+012c <[^>]*> 40805006 mtc0 \$0,\$10,6 +0+0130 <[^>]*> 40805007 mtc0 \$0,\$10,7 +0+0134 <[^>]*> 40805801 mtc0 \$0,\$11,1 +0+0138 <[^>]*> 40805802 mtc0 \$0,\$11,2 +0+013c <[^>]*> 40805803 mtc0 \$0,\$11,3 +0+0140 <[^>]*> 40805804 mtc0 \$0,\$11,4 +0+0144 <[^>]*> 40805805 mtc0 \$0,\$11,5 +0+0148 <[^>]*> 40805806 mtc0 \$0,\$11,6 +0+014c <[^>]*> 40805807 mtc0 \$0,\$11,7 +0+0150 <[^>]*> 40806001 mtc0 \$0,c0_intctl +0+0154 <[^>]*> 40806002 mtc0 \$0,c0_srsctl +0+0158 <[^>]*> 40806003 mtc0 \$0,c0_srsmap +0+015c <[^>]*> 40806004 mtc0 \$0,\$12,4 +0+0160 <[^>]*> 40806005 mtc0 \$0,\$12,5 +0+0164 <[^>]*> 40806006 mtc0 \$0,\$12,6 +0+0168 <[^>]*> 40806007 mtc0 \$0,\$12,7 +0+016c <[^>]*> 40806801 mtc0 \$0,\$13,1 +0+0170 <[^>]*> 40806802 mtc0 \$0,\$13,2 +0+0174 <[^>]*> 40806803 mtc0 \$0,\$13,3 +0+0178 <[^>]*> 40806804 mtc0 \$0,\$13,4 +0+017c <[^>]*> 40806805 mtc0 \$0,\$13,5 +0+0180 <[^>]*> 40806806 mtc0 \$0,\$13,6 +0+0184 <[^>]*> 40806807 mtc0 \$0,\$13,7 +0+0188 <[^>]*> 40807001 mtc0 \$0,\$14,1 +0+018c <[^>]*> 40807002 mtc0 \$0,\$14,2 +0+0190 <[^>]*> 40807003 mtc0 \$0,\$14,3 +0+0194 <[^>]*> 40807004 mtc0 \$0,\$14,4 +0+0198 <[^>]*> 40807005 mtc0 \$0,\$14,5 +0+019c <[^>]*> 40807006 mtc0 \$0,\$14,6 +0+01a0 <[^>]*> 40807007 mtc0 \$0,\$14,7 +0+01a4 <[^>]*> 40807801 mtc0 \$0,c0_ebase +0+01a8 <[^>]*> 40807802 mtc0 \$0,\$15,2 +0+01ac <[^>]*> 40807803 mtc0 \$0,\$15,3 +0+01b0 <[^>]*> 40807804 mtc0 \$0,\$15,4 +0+01b4 <[^>]*> 40807805 mtc0 \$0,\$15,5 +0+01b8 <[^>]*> 40807806 mtc0 \$0,\$15,6 +0+01bc <[^>]*> 40807807 mtc0 \$0,\$15,7 +0+01c0 <[^>]*> 40808001 mtc0 \$0,c0_config1 +0+01c4 <[^>]*> 40808002 mtc0 \$0,c0_config2 +0+01c8 <[^>]*> 40808003 mtc0 \$0,c0_config3 +0+01cc <[^>]*> 40808004 mtc0 \$0,\$16,4 +0+01d0 <[^>]*> 40808005 mtc0 \$0,\$16,5 +0+01d4 <[^>]*> 40808006 mtc0 \$0,\$16,6 +0+01d8 <[^>]*> 40808007 mtc0 \$0,\$16,7 +0+01dc <[^>]*> 40808801 mtc0 \$0,\$17,1 +0+01e0 <[^>]*> 40808802 mtc0 \$0,\$17,2 +0+01e4 <[^>]*> 40808803 mtc0 \$0,\$17,3 +0+01e8 <[^>]*> 40808804 mtc0 \$0,\$17,4 +0+01ec <[^>]*> 40808805 mtc0 \$0,\$17,5 +0+01f0 <[^>]*> 40808806 mtc0 \$0,\$17,6 +0+01f4 <[^>]*> 40808807 mtc0 \$0,\$17,7 +0+01f8 <[^>]*> 40809001 mtc0 \$0,c0_watchlo,1 +0+01fc <[^>]*> 40809002 mtc0 \$0,c0_watchlo,2 +0+0200 <[^>]*> 40809003 mtc0 \$0,c0_watchlo,3 +0+0204 <[^>]*> 40809004 mtc0 \$0,c0_watchlo,4 +0+0208 <[^>]*> 40809005 mtc0 \$0,c0_watchlo,5 +0+020c <[^>]*> 40809006 mtc0 \$0,c0_watchlo,6 +0+0210 <[^>]*> 40809007 mtc0 \$0,c0_watchlo,7 +0+0214 <[^>]*> 40809801 mtc0 \$0,c0_watchhi,1 +0+0218 <[^>]*> 40809802 mtc0 \$0,c0_watchhi,2 +0+021c <[^>]*> 40809803 mtc0 \$0,c0_watchhi,3 +0+0220 <[^>]*> 40809804 mtc0 \$0,c0_watchhi,4 +0+0224 <[^>]*> 40809805 mtc0 \$0,c0_watchhi,5 +0+0228 <[^>]*> 40809806 mtc0 \$0,c0_watchhi,6 +0+022c <[^>]*> 40809807 mtc0 \$0,c0_watchhi,7 +0+0230 <[^>]*> 4080a001 mtc0 \$0,\$20,1 +0+0234 <[^>]*> 4080a002 mtc0 \$0,\$20,2 +0+0238 <[^>]*> 4080a003 mtc0 \$0,\$20,3 +0+023c <[^>]*> 4080a004 mtc0 \$0,\$20,4 +0+0240 <[^>]*> 4080a005 mtc0 \$0,\$20,5 +0+0244 <[^>]*> 4080a006 mtc0 \$0,\$20,6 +0+0248 <[^>]*> 4080a007 mtc0 \$0,\$20,7 +0+024c <[^>]*> 4080a801 mtc0 \$0,\$21,1 +0+0250 <[^>]*> 4080a802 mtc0 \$0,\$21,2 +0+0254 <[^>]*> 4080a803 mtc0 \$0,\$21,3 +0+0258 <[^>]*> 4080a804 mtc0 \$0,\$21,4 +0+025c <[^>]*> 4080a805 mtc0 \$0,\$21,5 +0+0260 <[^>]*> 4080a806 mtc0 \$0,\$21,6 +0+0264 <[^>]*> 4080a807 mtc0 \$0,\$21,7 +0+0268 <[^>]*> 4080b001 mtc0 \$0,\$22,1 +0+026c <[^>]*> 4080b002 mtc0 \$0,\$22,2 +0+0270 <[^>]*> 4080b003 mtc0 \$0,\$22,3 +0+0274 <[^>]*> 4080b004 mtc0 \$0,\$22,4 +0+0278 <[^>]*> 4080b005 mtc0 \$0,\$22,5 +0+027c <[^>]*> 4080b006 mtc0 \$0,\$22,6 +0+0280 <[^>]*> 4080b007 mtc0 \$0,\$22,7 +0+0284 <[^>]*> 4080b801 mtc0 \$0,c0_tracecontrol +0+0288 <[^>]*> 4080b802 mtc0 \$0,c0_tracecontrol2 +0+028c <[^>]*> 4080b803 mtc0 \$0,c0_usertracedata +0+0290 <[^>]*> 4080b804 mtc0 \$0,c0_tracebpc +0+0294 <[^>]*> 4080b805 mtc0 \$0,\$23,5 +0+0298 <[^>]*> 4080b806 mtc0 \$0,\$23,6 +0+029c <[^>]*> 4080b807 mtc0 \$0,\$23,7 +0+02a0 <[^>]*> 4080c001 mtc0 \$0,\$24,1 +0+02a4 <[^>]*> 4080c002 mtc0 \$0,\$24,2 +0+02a8 <[^>]*> 4080c003 mtc0 \$0,\$24,3 +0+02ac <[^>]*> 4080c004 mtc0 \$0,\$24,4 +0+02b0 <[^>]*> 4080c005 mtc0 \$0,\$24,5 +0+02b4 <[^>]*> 4080c006 mtc0 \$0,\$24,6 +0+02b8 <[^>]*> 4080c007 mtc0 \$0,\$24,7 +0+02bc <[^>]*> 4080c801 mtc0 \$0,c0_perfcnt,1 +0+02c0 <[^>]*> 4080c802 mtc0 \$0,c0_perfcnt,2 +0+02c4 <[^>]*> 4080c803 mtc0 \$0,c0_perfcnt,3 +0+02c8 <[^>]*> 4080c804 mtc0 \$0,c0_perfcnt,4 +0+02cc <[^>]*> 4080c805 mtc0 \$0,c0_perfcnt,5 +0+02d0 <[^>]*> 4080c806 mtc0 \$0,c0_perfcnt,6 +0+02d4 <[^>]*> 4080c807 mtc0 \$0,c0_perfcnt,7 +0+02d8 <[^>]*> 4080d001 mtc0 \$0,\$26,1 +0+02dc <[^>]*> 4080d002 mtc0 \$0,\$26,2 +0+02e0 <[^>]*> 4080d003 mtc0 \$0,\$26,3 +0+02e4 <[^>]*> 4080d004 mtc0 \$0,\$26,4 +0+02e8 <[^>]*> 4080d005 mtc0 \$0,\$26,5 +0+02ec <[^>]*> 4080d006 mtc0 \$0,\$26,6 +0+02f0 <[^>]*> 4080d007 mtc0 \$0,\$26,7 +0+02f4 <[^>]*> 4080d801 mtc0 \$0,c0_cacheerr,1 +0+02f8 <[^>]*> 4080d802 mtc0 \$0,c0_cacheerr,2 +0+02fc <[^>]*> 4080d803 mtc0 \$0,c0_cacheerr,3 +0+0300 <[^>]*> 4080d804 mtc0 \$0,\$27,4 +0+0304 <[^>]*> 4080d805 mtc0 \$0,\$27,5 +0+0308 <[^>]*> 4080d806 mtc0 \$0,\$27,6 +0+030c <[^>]*> 4080d807 mtc0 \$0,\$27,7 +0+0310 <[^>]*> 4080e001 mtc0 \$0,c0_datalo +0+0314 <[^>]*> 4080e002 mtc0 \$0,c0_taglo1 +0+0318 <[^>]*> 4080e003 mtc0 \$0,c0_datalo1 +0+031c <[^>]*> 4080e004 mtc0 \$0,c0_taglo2 +0+0320 <[^>]*> 4080e005 mtc0 \$0,c0_datalo2 +0+0324 <[^>]*> 4080e006 mtc0 \$0,c0_taglo3 +0+0328 <[^>]*> 4080e007 mtc0 \$0,c0_datalo3 +0+032c <[^>]*> 4080e801 mtc0 \$0,c0_datahi +0+0330 <[^>]*> 4080e802 mtc0 \$0,c0_taghi1 +0+0334 <[^>]*> 4080e803 mtc0 \$0,c0_datahi1 +0+0338 <[^>]*> 4080e804 mtc0 \$0,c0_taghi2 +0+033c <[^>]*> 4080e805 mtc0 \$0,c0_datahi2 +0+0340 <[^>]*> 4080e806 mtc0 \$0,c0_taghi3 +0+0344 <[^>]*> 4080e807 mtc0 \$0,c0_datahi3 +0+0348 <[^>]*> 4080f001 mtc0 \$0,\$30,1 +0+034c <[^>]*> 4080f002 mtc0 \$0,\$30,2 +0+0350 <[^>]*> 4080f003 mtc0 \$0,\$30,3 +0+0354 <[^>]*> 4080f004 mtc0 \$0,\$30,4 +0+0358 <[^>]*> 4080f005 mtc0 \$0,\$30,5 +0+035c <[^>]*> 4080f006 mtc0 \$0,\$30,6 +0+0360 <[^>]*> 4080f007 mtc0 \$0,\$30,7 +0+0364 <[^>]*> 4080f801 mtc0 \$0,\$31,1 +0+0368 <[^>]*> 4080f802 mtc0 \$0,\$31,2 +0+036c <[^>]*> 4080f803 mtc0 \$0,\$31,3 +0+0370 <[^>]*> 4080f804 mtc0 \$0,\$31,4 +0+0374 <[^>]*> 4080f805 mtc0 \$0,\$31,5 +0+0378 <[^>]*> 4080f806 mtc0 \$0,\$31,6 +0+037c <[^>]*> 4080f807 mtc0 \$0,\$31,7 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-mips64.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-mips64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-mips64.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-mips64.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,235 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32 -M gpr-names=numeric,cp0-names=mips64 +#name: MIPS CP0 with sel register disassembly (mips64) +#as: -march=mips32 +#source: cp0sel-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800001 mtc0 \$0,\$0,1 +0+0004 <[^>]*> 40800002 mtc0 \$0,\$0,2 +0+0008 <[^>]*> 40800003 mtc0 \$0,\$0,3 +0+000c <[^>]*> 40800004 mtc0 \$0,\$0,4 +0+0010 <[^>]*> 40800005 mtc0 \$0,\$0,5 +0+0014 <[^>]*> 40800006 mtc0 \$0,\$0,6 +0+0018 <[^>]*> 40800007 mtc0 \$0,\$0,7 +0+001c <[^>]*> 40800801 mtc0 \$0,\$1,1 +0+0020 <[^>]*> 40800802 mtc0 \$0,\$1,2 +0+0024 <[^>]*> 40800803 mtc0 \$0,\$1,3 +0+0028 <[^>]*> 40800804 mtc0 \$0,\$1,4 +0+002c <[^>]*> 40800805 mtc0 \$0,\$1,5 +0+0030 <[^>]*> 40800806 mtc0 \$0,\$1,6 +0+0034 <[^>]*> 40800807 mtc0 \$0,\$1,7 +0+0038 <[^>]*> 40801001 mtc0 \$0,\$2,1 +0+003c <[^>]*> 40801002 mtc0 \$0,\$2,2 +0+0040 <[^>]*> 40801003 mtc0 \$0,\$2,3 +0+0044 <[^>]*> 40801004 mtc0 \$0,\$2,4 +0+0048 <[^>]*> 40801005 mtc0 \$0,\$2,5 +0+004c <[^>]*> 40801006 mtc0 \$0,\$2,6 +0+0050 <[^>]*> 40801007 mtc0 \$0,\$2,7 +0+0054 <[^>]*> 40801801 mtc0 \$0,\$3,1 +0+0058 <[^>]*> 40801802 mtc0 \$0,\$3,2 +0+005c <[^>]*> 40801803 mtc0 \$0,\$3,3 +0+0060 <[^>]*> 40801804 mtc0 \$0,\$3,4 +0+0064 <[^>]*> 40801805 mtc0 \$0,\$3,5 +0+0068 <[^>]*> 40801806 mtc0 \$0,\$3,6 +0+006c <[^>]*> 40801807 mtc0 \$0,\$3,7 +0+0070 <[^>]*> 40802001 mtc0 \$0,\$4,1 +0+0074 <[^>]*> 40802002 mtc0 \$0,\$4,2 +0+0078 <[^>]*> 40802003 mtc0 \$0,\$4,3 +0+007c <[^>]*> 40802004 mtc0 \$0,\$4,4 +0+0080 <[^>]*> 40802005 mtc0 \$0,\$4,5 +0+0084 <[^>]*> 40802006 mtc0 \$0,\$4,6 +0+0088 <[^>]*> 40802007 mtc0 \$0,\$4,7 +0+008c <[^>]*> 40802801 mtc0 \$0,\$5,1 +0+0090 <[^>]*> 40802802 mtc0 \$0,\$5,2 +0+0094 <[^>]*> 40802803 mtc0 \$0,\$5,3 +0+0098 <[^>]*> 40802804 mtc0 \$0,\$5,4 +0+009c <[^>]*> 40802805 mtc0 \$0,\$5,5 +0+00a0 <[^>]*> 40802806 mtc0 \$0,\$5,6 +0+00a4 <[^>]*> 40802807 mtc0 \$0,\$5,7 +0+00a8 <[^>]*> 40803001 mtc0 \$0,\$6,1 +0+00ac <[^>]*> 40803002 mtc0 \$0,\$6,2 +0+00b0 <[^>]*> 40803003 mtc0 \$0,\$6,3 +0+00b4 <[^>]*> 40803004 mtc0 \$0,\$6,4 +0+00b8 <[^>]*> 40803005 mtc0 \$0,\$6,5 +0+00bc <[^>]*> 40803006 mtc0 \$0,\$6,6 +0+00c0 <[^>]*> 40803007 mtc0 \$0,\$6,7 +0+00c4 <[^>]*> 40803801 mtc0 \$0,\$7,1 +0+00c8 <[^>]*> 40803802 mtc0 \$0,\$7,2 +0+00cc <[^>]*> 40803803 mtc0 \$0,\$7,3 +0+00d0 <[^>]*> 40803804 mtc0 \$0,\$7,4 +0+00d4 <[^>]*> 40803805 mtc0 \$0,\$7,5 +0+00d8 <[^>]*> 40803806 mtc0 \$0,\$7,6 +0+00dc <[^>]*> 40803807 mtc0 \$0,\$7,7 +0+00e0 <[^>]*> 40804001 mtc0 \$0,\$8,1 +0+00e4 <[^>]*> 40804002 mtc0 \$0,\$8,2 +0+00e8 <[^>]*> 40804003 mtc0 \$0,\$8,3 +0+00ec <[^>]*> 40804004 mtc0 \$0,\$8,4 +0+00f0 <[^>]*> 40804005 mtc0 \$0,\$8,5 +0+00f4 <[^>]*> 40804006 mtc0 \$0,\$8,6 +0+00f8 <[^>]*> 40804007 mtc0 \$0,\$8,7 +0+00fc <[^>]*> 40804801 mtc0 \$0,\$9,1 +0+0100 <[^>]*> 40804802 mtc0 \$0,\$9,2 +0+0104 <[^>]*> 40804803 mtc0 \$0,\$9,3 +0+0108 <[^>]*> 40804804 mtc0 \$0,\$9,4 +0+010c <[^>]*> 40804805 mtc0 \$0,\$9,5 +0+0110 <[^>]*> 40804806 mtc0 \$0,\$9,6 +0+0114 <[^>]*> 40804807 mtc0 \$0,\$9,7 +0+0118 <[^>]*> 40805001 mtc0 \$0,\$10,1 +0+011c <[^>]*> 40805002 mtc0 \$0,\$10,2 +0+0120 <[^>]*> 40805003 mtc0 \$0,\$10,3 +0+0124 <[^>]*> 40805004 mtc0 \$0,\$10,4 +0+0128 <[^>]*> 40805005 mtc0 \$0,\$10,5 +0+012c <[^>]*> 40805006 mtc0 \$0,\$10,6 +0+0130 <[^>]*> 40805007 mtc0 \$0,\$10,7 +0+0134 <[^>]*> 40805801 mtc0 \$0,\$11,1 +0+0138 <[^>]*> 40805802 mtc0 \$0,\$11,2 +0+013c <[^>]*> 40805803 mtc0 \$0,\$11,3 +0+0140 <[^>]*> 40805804 mtc0 \$0,\$11,4 +0+0144 <[^>]*> 40805805 mtc0 \$0,\$11,5 +0+0148 <[^>]*> 40805806 mtc0 \$0,\$11,6 +0+014c <[^>]*> 40805807 mtc0 \$0,\$11,7 +0+0150 <[^>]*> 40806001 mtc0 \$0,\$12,1 +0+0154 <[^>]*> 40806002 mtc0 \$0,\$12,2 +0+0158 <[^>]*> 40806003 mtc0 \$0,\$12,3 +0+015c <[^>]*> 40806004 mtc0 \$0,\$12,4 +0+0160 <[^>]*> 40806005 mtc0 \$0,\$12,5 +0+0164 <[^>]*> 40806006 mtc0 \$0,\$12,6 +0+0168 <[^>]*> 40806007 mtc0 \$0,\$12,7 +0+016c <[^>]*> 40806801 mtc0 \$0,\$13,1 +0+0170 <[^>]*> 40806802 mtc0 \$0,\$13,2 +0+0174 <[^>]*> 40806803 mtc0 \$0,\$13,3 +0+0178 <[^>]*> 40806804 mtc0 \$0,\$13,4 +0+017c <[^>]*> 40806805 mtc0 \$0,\$13,5 +0+0180 <[^>]*> 40806806 mtc0 \$0,\$13,6 +0+0184 <[^>]*> 40806807 mtc0 \$0,\$13,7 +0+0188 <[^>]*> 40807001 mtc0 \$0,\$14,1 +0+018c <[^>]*> 40807002 mtc0 \$0,\$14,2 +0+0190 <[^>]*> 40807003 mtc0 \$0,\$14,3 +0+0194 <[^>]*> 40807004 mtc0 \$0,\$14,4 +0+0198 <[^>]*> 40807005 mtc0 \$0,\$14,5 +0+019c <[^>]*> 40807006 mtc0 \$0,\$14,6 +0+01a0 <[^>]*> 40807007 mtc0 \$0,\$14,7 +0+01a4 <[^>]*> 40807801 mtc0 \$0,\$15,1 +0+01a8 <[^>]*> 40807802 mtc0 \$0,\$15,2 +0+01ac <[^>]*> 40807803 mtc0 \$0,\$15,3 +0+01b0 <[^>]*> 40807804 mtc0 \$0,\$15,4 +0+01b4 <[^>]*> 40807805 mtc0 \$0,\$15,5 +0+01b8 <[^>]*> 40807806 mtc0 \$0,\$15,6 +0+01bc <[^>]*> 40807807 mtc0 \$0,\$15,7 +0+01c0 <[^>]*> 40808001 mtc0 \$0,c0_config1 +0+01c4 <[^>]*> 40808002 mtc0 \$0,c0_config2 +0+01c8 <[^>]*> 40808003 mtc0 \$0,c0_config3 +0+01cc <[^>]*> 40808004 mtc0 \$0,\$16,4 +0+01d0 <[^>]*> 40808005 mtc0 \$0,\$16,5 +0+01d4 <[^>]*> 40808006 mtc0 \$0,\$16,6 +0+01d8 <[^>]*> 40808007 mtc0 \$0,\$16,7 +0+01dc <[^>]*> 40808801 mtc0 \$0,\$17,1 +0+01e0 <[^>]*> 40808802 mtc0 \$0,\$17,2 +0+01e4 <[^>]*> 40808803 mtc0 \$0,\$17,3 +0+01e8 <[^>]*> 40808804 mtc0 \$0,\$17,4 +0+01ec <[^>]*> 40808805 mtc0 \$0,\$17,5 +0+01f0 <[^>]*> 40808806 mtc0 \$0,\$17,6 +0+01f4 <[^>]*> 40808807 mtc0 \$0,\$17,7 +0+01f8 <[^>]*> 40809001 mtc0 \$0,c0_watchlo,1 +0+01fc <[^>]*> 40809002 mtc0 \$0,c0_watchlo,2 +0+0200 <[^>]*> 40809003 mtc0 \$0,c0_watchlo,3 +0+0204 <[^>]*> 40809004 mtc0 \$0,c0_watchlo,4 +0+0208 <[^>]*> 40809005 mtc0 \$0,c0_watchlo,5 +0+020c <[^>]*> 40809006 mtc0 \$0,c0_watchlo,6 +0+0210 <[^>]*> 40809007 mtc0 \$0,c0_watchlo,7 +0+0214 <[^>]*> 40809801 mtc0 \$0,c0_watchhi,1 +0+0218 <[^>]*> 40809802 mtc0 \$0,c0_watchhi,2 +0+021c <[^>]*> 40809803 mtc0 \$0,c0_watchhi,3 +0+0220 <[^>]*> 40809804 mtc0 \$0,c0_watchhi,4 +0+0224 <[^>]*> 40809805 mtc0 \$0,c0_watchhi,5 +0+0228 <[^>]*> 40809806 mtc0 \$0,c0_watchhi,6 +0+022c <[^>]*> 40809807 mtc0 \$0,c0_watchhi,7 +0+0230 <[^>]*> 4080a001 mtc0 \$0,\$20,1 +0+0234 <[^>]*> 4080a002 mtc0 \$0,\$20,2 +0+0238 <[^>]*> 4080a003 mtc0 \$0,\$20,3 +0+023c <[^>]*> 4080a004 mtc0 \$0,\$20,4 +0+0240 <[^>]*> 4080a005 mtc0 \$0,\$20,5 +0+0244 <[^>]*> 4080a006 mtc0 \$0,\$20,6 +0+0248 <[^>]*> 4080a007 mtc0 \$0,\$20,7 +0+024c <[^>]*> 4080a801 mtc0 \$0,\$21,1 +0+0250 <[^>]*> 4080a802 mtc0 \$0,\$21,2 +0+0254 <[^>]*> 4080a803 mtc0 \$0,\$21,3 +0+0258 <[^>]*> 4080a804 mtc0 \$0,\$21,4 +0+025c <[^>]*> 4080a805 mtc0 \$0,\$21,5 +0+0260 <[^>]*> 4080a806 mtc0 \$0,\$21,6 +0+0264 <[^>]*> 4080a807 mtc0 \$0,\$21,7 +0+0268 <[^>]*> 4080b001 mtc0 \$0,\$22,1 +0+026c <[^>]*> 4080b002 mtc0 \$0,\$22,2 +0+0270 <[^>]*> 4080b003 mtc0 \$0,\$22,3 +0+0274 <[^>]*> 4080b004 mtc0 \$0,\$22,4 +0+0278 <[^>]*> 4080b005 mtc0 \$0,\$22,5 +0+027c <[^>]*> 4080b006 mtc0 \$0,\$22,6 +0+0280 <[^>]*> 4080b007 mtc0 \$0,\$22,7 +0+0284 <[^>]*> 4080b801 mtc0 \$0,\$23,1 +0+0288 <[^>]*> 4080b802 mtc0 \$0,\$23,2 +0+028c <[^>]*> 4080b803 mtc0 \$0,\$23,3 +0+0290 <[^>]*> 4080b804 mtc0 \$0,\$23,4 +0+0294 <[^>]*> 4080b805 mtc0 \$0,\$23,5 +0+0298 <[^>]*> 4080b806 mtc0 \$0,\$23,6 +0+029c <[^>]*> 4080b807 mtc0 \$0,\$23,7 +0+02a0 <[^>]*> 4080c001 mtc0 \$0,\$24,1 +0+02a4 <[^>]*> 4080c002 mtc0 \$0,\$24,2 +0+02a8 <[^>]*> 4080c003 mtc0 \$0,\$24,3 +0+02ac <[^>]*> 4080c004 mtc0 \$0,\$24,4 +0+02b0 <[^>]*> 4080c005 mtc0 \$0,\$24,5 +0+02b4 <[^>]*> 4080c006 mtc0 \$0,\$24,6 +0+02b8 <[^>]*> 4080c007 mtc0 \$0,\$24,7 +0+02bc <[^>]*> 4080c801 mtc0 \$0,c0_perfcnt,1 +0+02c0 <[^>]*> 4080c802 mtc0 \$0,c0_perfcnt,2 +0+02c4 <[^>]*> 4080c803 mtc0 \$0,c0_perfcnt,3 +0+02c8 <[^>]*> 4080c804 mtc0 \$0,c0_perfcnt,4 +0+02cc <[^>]*> 4080c805 mtc0 \$0,c0_perfcnt,5 +0+02d0 <[^>]*> 4080c806 mtc0 \$0,c0_perfcnt,6 +0+02d4 <[^>]*> 4080c807 mtc0 \$0,c0_perfcnt,7 +0+02d8 <[^>]*> 4080d001 mtc0 \$0,\$26,1 +0+02dc <[^>]*> 4080d002 mtc0 \$0,\$26,2 +0+02e0 <[^>]*> 4080d003 mtc0 \$0,\$26,3 +0+02e4 <[^>]*> 4080d004 mtc0 \$0,\$26,4 +0+02e8 <[^>]*> 4080d005 mtc0 \$0,\$26,5 +0+02ec <[^>]*> 4080d006 mtc0 \$0,\$26,6 +0+02f0 <[^>]*> 4080d007 mtc0 \$0,\$26,7 +0+02f4 <[^>]*> 4080d801 mtc0 \$0,c0_cacheerr,1 +0+02f8 <[^>]*> 4080d802 mtc0 \$0,c0_cacheerr,2 +0+02fc <[^>]*> 4080d803 mtc0 \$0,c0_cacheerr,3 +0+0300 <[^>]*> 4080d804 mtc0 \$0,\$27,4 +0+0304 <[^>]*> 4080d805 mtc0 \$0,\$27,5 +0+0308 <[^>]*> 4080d806 mtc0 \$0,\$27,6 +0+030c <[^>]*> 4080d807 mtc0 \$0,\$27,7 +0+0310 <[^>]*> 4080e001 mtc0 \$0,c0_datalo +0+0314 <[^>]*> 4080e002 mtc0 \$0,\$28,2 +0+0318 <[^>]*> 4080e003 mtc0 \$0,\$28,3 +0+031c <[^>]*> 4080e004 mtc0 \$0,\$28,4 +0+0320 <[^>]*> 4080e005 mtc0 \$0,\$28,5 +0+0324 <[^>]*> 4080e006 mtc0 \$0,\$28,6 +0+0328 <[^>]*> 4080e007 mtc0 \$0,\$28,7 +0+032c <[^>]*> 4080e801 mtc0 \$0,c0_datahi +0+0330 <[^>]*> 4080e802 mtc0 \$0,\$29,2 +0+0334 <[^>]*> 4080e803 mtc0 \$0,\$29,3 +0+0338 <[^>]*> 4080e804 mtc0 \$0,\$29,4 +0+033c <[^>]*> 4080e805 mtc0 \$0,\$29,5 +0+0340 <[^>]*> 4080e806 mtc0 \$0,\$29,6 +0+0344 <[^>]*> 4080e807 mtc0 \$0,\$29,7 +0+0348 <[^>]*> 4080f001 mtc0 \$0,\$30,1 +0+034c <[^>]*> 4080f002 mtc0 \$0,\$30,2 +0+0350 <[^>]*> 4080f003 mtc0 \$0,\$30,3 +0+0354 <[^>]*> 4080f004 mtc0 \$0,\$30,4 +0+0358 <[^>]*> 4080f005 mtc0 \$0,\$30,5 +0+035c <[^>]*> 4080f006 mtc0 \$0,\$30,6 +0+0360 <[^>]*> 4080f007 mtc0 \$0,\$30,7 +0+0364 <[^>]*> 4080f801 mtc0 \$0,\$31,1 +0+0368 <[^>]*> 4080f802 mtc0 \$0,\$31,2 +0+036c <[^>]*> 4080f803 mtc0 \$0,\$31,3 +0+0370 <[^>]*> 4080f804 mtc0 \$0,\$31,4 +0+0374 <[^>]*> 4080f805 mtc0 \$0,\$31,5 +0+0378 <[^>]*> 4080f806 mtc0 \$0,\$31,6 +0+037c <[^>]*> 4080f807 mtc0 \$0,\$31,7 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-numeric.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-numeric.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-numeric.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-numeric.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,235 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32 -M gpr-names=numeric,cp0-names=numeric +#name: MIPS CP0 with sel register disassembly (numeric) +#as: -march=mips32 +#source: cp0sel-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800001 mtc0 \$0,\$0,1 +0+0004 <[^>]*> 40800002 mtc0 \$0,\$0,2 +0+0008 <[^>]*> 40800003 mtc0 \$0,\$0,3 +0+000c <[^>]*> 40800004 mtc0 \$0,\$0,4 +0+0010 <[^>]*> 40800005 mtc0 \$0,\$0,5 +0+0014 <[^>]*> 40800006 mtc0 \$0,\$0,6 +0+0018 <[^>]*> 40800007 mtc0 \$0,\$0,7 +0+001c <[^>]*> 40800801 mtc0 \$0,\$1,1 +0+0020 <[^>]*> 40800802 mtc0 \$0,\$1,2 +0+0024 <[^>]*> 40800803 mtc0 \$0,\$1,3 +0+0028 <[^>]*> 40800804 mtc0 \$0,\$1,4 +0+002c <[^>]*> 40800805 mtc0 \$0,\$1,5 +0+0030 <[^>]*> 40800806 mtc0 \$0,\$1,6 +0+0034 <[^>]*> 40800807 mtc0 \$0,\$1,7 +0+0038 <[^>]*> 40801001 mtc0 \$0,\$2,1 +0+003c <[^>]*> 40801002 mtc0 \$0,\$2,2 +0+0040 <[^>]*> 40801003 mtc0 \$0,\$2,3 +0+0044 <[^>]*> 40801004 mtc0 \$0,\$2,4 +0+0048 <[^>]*> 40801005 mtc0 \$0,\$2,5 +0+004c <[^>]*> 40801006 mtc0 \$0,\$2,6 +0+0050 <[^>]*> 40801007 mtc0 \$0,\$2,7 +0+0054 <[^>]*> 40801801 mtc0 \$0,\$3,1 +0+0058 <[^>]*> 40801802 mtc0 \$0,\$3,2 +0+005c <[^>]*> 40801803 mtc0 \$0,\$3,3 +0+0060 <[^>]*> 40801804 mtc0 \$0,\$3,4 +0+0064 <[^>]*> 40801805 mtc0 \$0,\$3,5 +0+0068 <[^>]*> 40801806 mtc0 \$0,\$3,6 +0+006c <[^>]*> 40801807 mtc0 \$0,\$3,7 +0+0070 <[^>]*> 40802001 mtc0 \$0,\$4,1 +0+0074 <[^>]*> 40802002 mtc0 \$0,\$4,2 +0+0078 <[^>]*> 40802003 mtc0 \$0,\$4,3 +0+007c <[^>]*> 40802004 mtc0 \$0,\$4,4 +0+0080 <[^>]*> 40802005 mtc0 \$0,\$4,5 +0+0084 <[^>]*> 40802006 mtc0 \$0,\$4,6 +0+0088 <[^>]*> 40802007 mtc0 \$0,\$4,7 +0+008c <[^>]*> 40802801 mtc0 \$0,\$5,1 +0+0090 <[^>]*> 40802802 mtc0 \$0,\$5,2 +0+0094 <[^>]*> 40802803 mtc0 \$0,\$5,3 +0+0098 <[^>]*> 40802804 mtc0 \$0,\$5,4 +0+009c <[^>]*> 40802805 mtc0 \$0,\$5,5 +0+00a0 <[^>]*> 40802806 mtc0 \$0,\$5,6 +0+00a4 <[^>]*> 40802807 mtc0 \$0,\$5,7 +0+00a8 <[^>]*> 40803001 mtc0 \$0,\$6,1 +0+00ac <[^>]*> 40803002 mtc0 \$0,\$6,2 +0+00b0 <[^>]*> 40803003 mtc0 \$0,\$6,3 +0+00b4 <[^>]*> 40803004 mtc0 \$0,\$6,4 +0+00b8 <[^>]*> 40803005 mtc0 \$0,\$6,5 +0+00bc <[^>]*> 40803006 mtc0 \$0,\$6,6 +0+00c0 <[^>]*> 40803007 mtc0 \$0,\$6,7 +0+00c4 <[^>]*> 40803801 mtc0 \$0,\$7,1 +0+00c8 <[^>]*> 40803802 mtc0 \$0,\$7,2 +0+00cc <[^>]*> 40803803 mtc0 \$0,\$7,3 +0+00d0 <[^>]*> 40803804 mtc0 \$0,\$7,4 +0+00d4 <[^>]*> 40803805 mtc0 \$0,\$7,5 +0+00d8 <[^>]*> 40803806 mtc0 \$0,\$7,6 +0+00dc <[^>]*> 40803807 mtc0 \$0,\$7,7 +0+00e0 <[^>]*> 40804001 mtc0 \$0,\$8,1 +0+00e4 <[^>]*> 40804002 mtc0 \$0,\$8,2 +0+00e8 <[^>]*> 40804003 mtc0 \$0,\$8,3 +0+00ec <[^>]*> 40804004 mtc0 \$0,\$8,4 +0+00f0 <[^>]*> 40804005 mtc0 \$0,\$8,5 +0+00f4 <[^>]*> 40804006 mtc0 \$0,\$8,6 +0+00f8 <[^>]*> 40804007 mtc0 \$0,\$8,7 +0+00fc <[^>]*> 40804801 mtc0 \$0,\$9,1 +0+0100 <[^>]*> 40804802 mtc0 \$0,\$9,2 +0+0104 <[^>]*> 40804803 mtc0 \$0,\$9,3 +0+0108 <[^>]*> 40804804 mtc0 \$0,\$9,4 +0+010c <[^>]*> 40804805 mtc0 \$0,\$9,5 +0+0110 <[^>]*> 40804806 mtc0 \$0,\$9,6 +0+0114 <[^>]*> 40804807 mtc0 \$0,\$9,7 +0+0118 <[^>]*> 40805001 mtc0 \$0,\$10,1 +0+011c <[^>]*> 40805002 mtc0 \$0,\$10,2 +0+0120 <[^>]*> 40805003 mtc0 \$0,\$10,3 +0+0124 <[^>]*> 40805004 mtc0 \$0,\$10,4 +0+0128 <[^>]*> 40805005 mtc0 \$0,\$10,5 +0+012c <[^>]*> 40805006 mtc0 \$0,\$10,6 +0+0130 <[^>]*> 40805007 mtc0 \$0,\$10,7 +0+0134 <[^>]*> 40805801 mtc0 \$0,\$11,1 +0+0138 <[^>]*> 40805802 mtc0 \$0,\$11,2 +0+013c <[^>]*> 40805803 mtc0 \$0,\$11,3 +0+0140 <[^>]*> 40805804 mtc0 \$0,\$11,4 +0+0144 <[^>]*> 40805805 mtc0 \$0,\$11,5 +0+0148 <[^>]*> 40805806 mtc0 \$0,\$11,6 +0+014c <[^>]*> 40805807 mtc0 \$0,\$11,7 +0+0150 <[^>]*> 40806001 mtc0 \$0,\$12,1 +0+0154 <[^>]*> 40806002 mtc0 \$0,\$12,2 +0+0158 <[^>]*> 40806003 mtc0 \$0,\$12,3 +0+015c <[^>]*> 40806004 mtc0 \$0,\$12,4 +0+0160 <[^>]*> 40806005 mtc0 \$0,\$12,5 +0+0164 <[^>]*> 40806006 mtc0 \$0,\$12,6 +0+0168 <[^>]*> 40806007 mtc0 \$0,\$12,7 +0+016c <[^>]*> 40806801 mtc0 \$0,\$13,1 +0+0170 <[^>]*> 40806802 mtc0 \$0,\$13,2 +0+0174 <[^>]*> 40806803 mtc0 \$0,\$13,3 +0+0178 <[^>]*> 40806804 mtc0 \$0,\$13,4 +0+017c <[^>]*> 40806805 mtc0 \$0,\$13,5 +0+0180 <[^>]*> 40806806 mtc0 \$0,\$13,6 +0+0184 <[^>]*> 40806807 mtc0 \$0,\$13,7 +0+0188 <[^>]*> 40807001 mtc0 \$0,\$14,1 +0+018c <[^>]*> 40807002 mtc0 \$0,\$14,2 +0+0190 <[^>]*> 40807003 mtc0 \$0,\$14,3 +0+0194 <[^>]*> 40807004 mtc0 \$0,\$14,4 +0+0198 <[^>]*> 40807005 mtc0 \$0,\$14,5 +0+019c <[^>]*> 40807006 mtc0 \$0,\$14,6 +0+01a0 <[^>]*> 40807007 mtc0 \$0,\$14,7 +0+01a4 <[^>]*> 40807801 mtc0 \$0,\$15,1 +0+01a8 <[^>]*> 40807802 mtc0 \$0,\$15,2 +0+01ac <[^>]*> 40807803 mtc0 \$0,\$15,3 +0+01b0 <[^>]*> 40807804 mtc0 \$0,\$15,4 +0+01b4 <[^>]*> 40807805 mtc0 \$0,\$15,5 +0+01b8 <[^>]*> 40807806 mtc0 \$0,\$15,6 +0+01bc <[^>]*> 40807807 mtc0 \$0,\$15,7 +0+01c0 <[^>]*> 40808001 mtc0 \$0,\$16,1 +0+01c4 <[^>]*> 40808002 mtc0 \$0,\$16,2 +0+01c8 <[^>]*> 40808003 mtc0 \$0,\$16,3 +0+01cc <[^>]*> 40808004 mtc0 \$0,\$16,4 +0+01d0 <[^>]*> 40808005 mtc0 \$0,\$16,5 +0+01d4 <[^>]*> 40808006 mtc0 \$0,\$16,6 +0+01d8 <[^>]*> 40808007 mtc0 \$0,\$16,7 +0+01dc <[^>]*> 40808801 mtc0 \$0,\$17,1 +0+01e0 <[^>]*> 40808802 mtc0 \$0,\$17,2 +0+01e4 <[^>]*> 40808803 mtc0 \$0,\$17,3 +0+01e8 <[^>]*> 40808804 mtc0 \$0,\$17,4 +0+01ec <[^>]*> 40808805 mtc0 \$0,\$17,5 +0+01f0 <[^>]*> 40808806 mtc0 \$0,\$17,6 +0+01f4 <[^>]*> 40808807 mtc0 \$0,\$17,7 +0+01f8 <[^>]*> 40809001 mtc0 \$0,\$18,1 +0+01fc <[^>]*> 40809002 mtc0 \$0,\$18,2 +0+0200 <[^>]*> 40809003 mtc0 \$0,\$18,3 +0+0204 <[^>]*> 40809004 mtc0 \$0,\$18,4 +0+0208 <[^>]*> 40809005 mtc0 \$0,\$18,5 +0+020c <[^>]*> 40809006 mtc0 \$0,\$18,6 +0+0210 <[^>]*> 40809007 mtc0 \$0,\$18,7 +0+0214 <[^>]*> 40809801 mtc0 \$0,\$19,1 +0+0218 <[^>]*> 40809802 mtc0 \$0,\$19,2 +0+021c <[^>]*> 40809803 mtc0 \$0,\$19,3 +0+0220 <[^>]*> 40809804 mtc0 \$0,\$19,4 +0+0224 <[^>]*> 40809805 mtc0 \$0,\$19,5 +0+0228 <[^>]*> 40809806 mtc0 \$0,\$19,6 +0+022c <[^>]*> 40809807 mtc0 \$0,\$19,7 +0+0230 <[^>]*> 4080a001 mtc0 \$0,\$20,1 +0+0234 <[^>]*> 4080a002 mtc0 \$0,\$20,2 +0+0238 <[^>]*> 4080a003 mtc0 \$0,\$20,3 +0+023c <[^>]*> 4080a004 mtc0 \$0,\$20,4 +0+0240 <[^>]*> 4080a005 mtc0 \$0,\$20,5 +0+0244 <[^>]*> 4080a006 mtc0 \$0,\$20,6 +0+0248 <[^>]*> 4080a007 mtc0 \$0,\$20,7 +0+024c <[^>]*> 4080a801 mtc0 \$0,\$21,1 +0+0250 <[^>]*> 4080a802 mtc0 \$0,\$21,2 +0+0254 <[^>]*> 4080a803 mtc0 \$0,\$21,3 +0+0258 <[^>]*> 4080a804 mtc0 \$0,\$21,4 +0+025c <[^>]*> 4080a805 mtc0 \$0,\$21,5 +0+0260 <[^>]*> 4080a806 mtc0 \$0,\$21,6 +0+0264 <[^>]*> 4080a807 mtc0 \$0,\$21,7 +0+0268 <[^>]*> 4080b001 mtc0 \$0,\$22,1 +0+026c <[^>]*> 4080b002 mtc0 \$0,\$22,2 +0+0270 <[^>]*> 4080b003 mtc0 \$0,\$22,3 +0+0274 <[^>]*> 4080b004 mtc0 \$0,\$22,4 +0+0278 <[^>]*> 4080b005 mtc0 \$0,\$22,5 +0+027c <[^>]*> 4080b006 mtc0 \$0,\$22,6 +0+0280 <[^>]*> 4080b007 mtc0 \$0,\$22,7 +0+0284 <[^>]*> 4080b801 mtc0 \$0,\$23,1 +0+0288 <[^>]*> 4080b802 mtc0 \$0,\$23,2 +0+028c <[^>]*> 4080b803 mtc0 \$0,\$23,3 +0+0290 <[^>]*> 4080b804 mtc0 \$0,\$23,4 +0+0294 <[^>]*> 4080b805 mtc0 \$0,\$23,5 +0+0298 <[^>]*> 4080b806 mtc0 \$0,\$23,6 +0+029c <[^>]*> 4080b807 mtc0 \$0,\$23,7 +0+02a0 <[^>]*> 4080c001 mtc0 \$0,\$24,1 +0+02a4 <[^>]*> 4080c002 mtc0 \$0,\$24,2 +0+02a8 <[^>]*> 4080c003 mtc0 \$0,\$24,3 +0+02ac <[^>]*> 4080c004 mtc0 \$0,\$24,4 +0+02b0 <[^>]*> 4080c005 mtc0 \$0,\$24,5 +0+02b4 <[^>]*> 4080c006 mtc0 \$0,\$24,6 +0+02b8 <[^>]*> 4080c007 mtc0 \$0,\$24,7 +0+02bc <[^>]*> 4080c801 mtc0 \$0,\$25,1 +0+02c0 <[^>]*> 4080c802 mtc0 \$0,\$25,2 +0+02c4 <[^>]*> 4080c803 mtc0 \$0,\$25,3 +0+02c8 <[^>]*> 4080c804 mtc0 \$0,\$25,4 +0+02cc <[^>]*> 4080c805 mtc0 \$0,\$25,5 +0+02d0 <[^>]*> 4080c806 mtc0 \$0,\$25,6 +0+02d4 <[^>]*> 4080c807 mtc0 \$0,\$25,7 +0+02d8 <[^>]*> 4080d001 mtc0 \$0,\$26,1 +0+02dc <[^>]*> 4080d002 mtc0 \$0,\$26,2 +0+02e0 <[^>]*> 4080d003 mtc0 \$0,\$26,3 +0+02e4 <[^>]*> 4080d004 mtc0 \$0,\$26,4 +0+02e8 <[^>]*> 4080d005 mtc0 \$0,\$26,5 +0+02ec <[^>]*> 4080d006 mtc0 \$0,\$26,6 +0+02f0 <[^>]*> 4080d007 mtc0 \$0,\$26,7 +0+02f4 <[^>]*> 4080d801 mtc0 \$0,\$27,1 +0+02f8 <[^>]*> 4080d802 mtc0 \$0,\$27,2 +0+02fc <[^>]*> 4080d803 mtc0 \$0,\$27,3 +0+0300 <[^>]*> 4080d804 mtc0 \$0,\$27,4 +0+0304 <[^>]*> 4080d805 mtc0 \$0,\$27,5 +0+0308 <[^>]*> 4080d806 mtc0 \$0,\$27,6 +0+030c <[^>]*> 4080d807 mtc0 \$0,\$27,7 +0+0310 <[^>]*> 4080e001 mtc0 \$0,\$28,1 +0+0314 <[^>]*> 4080e002 mtc0 \$0,\$28,2 +0+0318 <[^>]*> 4080e003 mtc0 \$0,\$28,3 +0+031c <[^>]*> 4080e004 mtc0 \$0,\$28,4 +0+0320 <[^>]*> 4080e005 mtc0 \$0,\$28,5 +0+0324 <[^>]*> 4080e006 mtc0 \$0,\$28,6 +0+0328 <[^>]*> 4080e007 mtc0 \$0,\$28,7 +0+032c <[^>]*> 4080e801 mtc0 \$0,\$29,1 +0+0330 <[^>]*> 4080e802 mtc0 \$0,\$29,2 +0+0334 <[^>]*> 4080e803 mtc0 \$0,\$29,3 +0+0338 <[^>]*> 4080e804 mtc0 \$0,\$29,4 +0+033c <[^>]*> 4080e805 mtc0 \$0,\$29,5 +0+0340 <[^>]*> 4080e806 mtc0 \$0,\$29,6 +0+0344 <[^>]*> 4080e807 mtc0 \$0,\$29,7 +0+0348 <[^>]*> 4080f001 mtc0 \$0,\$30,1 +0+034c <[^>]*> 4080f002 mtc0 \$0,\$30,2 +0+0350 <[^>]*> 4080f003 mtc0 \$0,\$30,3 +0+0354 <[^>]*> 4080f004 mtc0 \$0,\$30,4 +0+0358 <[^>]*> 4080f005 mtc0 \$0,\$30,5 +0+035c <[^>]*> 4080f006 mtc0 \$0,\$30,6 +0+0360 <[^>]*> 4080f007 mtc0 \$0,\$30,7 +0+0364 <[^>]*> 4080f801 mtc0 \$0,\$31,1 +0+0368 <[^>]*> 4080f802 mtc0 \$0,\$31,2 +0+036c <[^>]*> 4080f803 mtc0 \$0,\$31,3 +0+0370 <[^>]*> 4080f804 mtc0 \$0,\$31,4 +0+0374 <[^>]*> 4080f805 mtc0 \$0,\$31,5 +0+0378 <[^>]*> 4080f806 mtc0 \$0,\$31,6 +0+037c <[^>]*> 4080f807 mtc0 \$0,\$31,7 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-sb1.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-sb1.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names-sb1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names-sb1.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,235 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32 -M gpr-names=numeric,cp0-names=sb1 +#name: MIPS CP0 with sel register disassembly (sb1) +#as: -march=mips32 +#source: cp0sel-names.s + +# Check objdump's handling of -M cp0-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 40800001 mtc0 \$0,\$0,1 +0+0004 <[^>]*> 40800002 mtc0 \$0,\$0,2 +0+0008 <[^>]*> 40800003 mtc0 \$0,\$0,3 +0+000c <[^>]*> 40800004 mtc0 \$0,\$0,4 +0+0010 <[^>]*> 40800005 mtc0 \$0,\$0,5 +0+0014 <[^>]*> 40800006 mtc0 \$0,\$0,6 +0+0018 <[^>]*> 40800007 mtc0 \$0,\$0,7 +0+001c <[^>]*> 40800801 mtc0 \$0,\$1,1 +0+0020 <[^>]*> 40800802 mtc0 \$0,\$1,2 +0+0024 <[^>]*> 40800803 mtc0 \$0,\$1,3 +0+0028 <[^>]*> 40800804 mtc0 \$0,\$1,4 +0+002c <[^>]*> 40800805 mtc0 \$0,\$1,5 +0+0030 <[^>]*> 40800806 mtc0 \$0,\$1,6 +0+0034 <[^>]*> 40800807 mtc0 \$0,\$1,7 +0+0038 <[^>]*> 40801001 mtc0 \$0,\$2,1 +0+003c <[^>]*> 40801002 mtc0 \$0,\$2,2 +0+0040 <[^>]*> 40801003 mtc0 \$0,\$2,3 +0+0044 <[^>]*> 40801004 mtc0 \$0,\$2,4 +0+0048 <[^>]*> 40801005 mtc0 \$0,\$2,5 +0+004c <[^>]*> 40801006 mtc0 \$0,\$2,6 +0+0050 <[^>]*> 40801007 mtc0 \$0,\$2,7 +0+0054 <[^>]*> 40801801 mtc0 \$0,\$3,1 +0+0058 <[^>]*> 40801802 mtc0 \$0,\$3,2 +0+005c <[^>]*> 40801803 mtc0 \$0,\$3,3 +0+0060 <[^>]*> 40801804 mtc0 \$0,\$3,4 +0+0064 <[^>]*> 40801805 mtc0 \$0,\$3,5 +0+0068 <[^>]*> 40801806 mtc0 \$0,\$3,6 +0+006c <[^>]*> 40801807 mtc0 \$0,\$3,7 +0+0070 <[^>]*> 40802001 mtc0 \$0,\$4,1 +0+0074 <[^>]*> 40802002 mtc0 \$0,\$4,2 +0+0078 <[^>]*> 40802003 mtc0 \$0,\$4,3 +0+007c <[^>]*> 40802004 mtc0 \$0,\$4,4 +0+0080 <[^>]*> 40802005 mtc0 \$0,\$4,5 +0+0084 <[^>]*> 40802006 mtc0 \$0,\$4,6 +0+0088 <[^>]*> 40802007 mtc0 \$0,\$4,7 +0+008c <[^>]*> 40802801 mtc0 \$0,\$5,1 +0+0090 <[^>]*> 40802802 mtc0 \$0,\$5,2 +0+0094 <[^>]*> 40802803 mtc0 \$0,\$5,3 +0+0098 <[^>]*> 40802804 mtc0 \$0,\$5,4 +0+009c <[^>]*> 40802805 mtc0 \$0,\$5,5 +0+00a0 <[^>]*> 40802806 mtc0 \$0,\$5,6 +0+00a4 <[^>]*> 40802807 mtc0 \$0,\$5,7 +0+00a8 <[^>]*> 40803001 mtc0 \$0,\$6,1 +0+00ac <[^>]*> 40803002 mtc0 \$0,\$6,2 +0+00b0 <[^>]*> 40803003 mtc0 \$0,\$6,3 +0+00b4 <[^>]*> 40803004 mtc0 \$0,\$6,4 +0+00b8 <[^>]*> 40803005 mtc0 \$0,\$6,5 +0+00bc <[^>]*> 40803006 mtc0 \$0,\$6,6 +0+00c0 <[^>]*> 40803007 mtc0 \$0,\$6,7 +0+00c4 <[^>]*> 40803801 mtc0 \$0,\$7,1 +0+00c8 <[^>]*> 40803802 mtc0 \$0,\$7,2 +0+00cc <[^>]*> 40803803 mtc0 \$0,\$7,3 +0+00d0 <[^>]*> 40803804 mtc0 \$0,\$7,4 +0+00d4 <[^>]*> 40803805 mtc0 \$0,\$7,5 +0+00d8 <[^>]*> 40803806 mtc0 \$0,\$7,6 +0+00dc <[^>]*> 40803807 mtc0 \$0,\$7,7 +0+00e0 <[^>]*> 40804001 mtc0 \$0,\$8,1 +0+00e4 <[^>]*> 40804002 mtc0 \$0,\$8,2 +0+00e8 <[^>]*> 40804003 mtc0 \$0,\$8,3 +0+00ec <[^>]*> 40804004 mtc0 \$0,\$8,4 +0+00f0 <[^>]*> 40804005 mtc0 \$0,\$8,5 +0+00f4 <[^>]*> 40804006 mtc0 \$0,\$8,6 +0+00f8 <[^>]*> 40804007 mtc0 \$0,\$8,7 +0+00fc <[^>]*> 40804801 mtc0 \$0,\$9,1 +0+0100 <[^>]*> 40804802 mtc0 \$0,\$9,2 +0+0104 <[^>]*> 40804803 mtc0 \$0,\$9,3 +0+0108 <[^>]*> 40804804 mtc0 \$0,\$9,4 +0+010c <[^>]*> 40804805 mtc0 \$0,\$9,5 +0+0110 <[^>]*> 40804806 mtc0 \$0,\$9,6 +0+0114 <[^>]*> 40804807 mtc0 \$0,\$9,7 +0+0118 <[^>]*> 40805001 mtc0 \$0,\$10,1 +0+011c <[^>]*> 40805002 mtc0 \$0,\$10,2 +0+0120 <[^>]*> 40805003 mtc0 \$0,\$10,3 +0+0124 <[^>]*> 40805004 mtc0 \$0,\$10,4 +0+0128 <[^>]*> 40805005 mtc0 \$0,\$10,5 +0+012c <[^>]*> 40805006 mtc0 \$0,\$10,6 +0+0130 <[^>]*> 40805007 mtc0 \$0,\$10,7 +0+0134 <[^>]*> 40805801 mtc0 \$0,\$11,1 +0+0138 <[^>]*> 40805802 mtc0 \$0,\$11,2 +0+013c <[^>]*> 40805803 mtc0 \$0,\$11,3 +0+0140 <[^>]*> 40805804 mtc0 \$0,\$11,4 +0+0144 <[^>]*> 40805805 mtc0 \$0,\$11,5 +0+0148 <[^>]*> 40805806 mtc0 \$0,\$11,6 +0+014c <[^>]*> 40805807 mtc0 \$0,\$11,7 +0+0150 <[^>]*> 40806001 mtc0 \$0,\$12,1 +0+0154 <[^>]*> 40806002 mtc0 \$0,\$12,2 +0+0158 <[^>]*> 40806003 mtc0 \$0,\$12,3 +0+015c <[^>]*> 40806004 mtc0 \$0,\$12,4 +0+0160 <[^>]*> 40806005 mtc0 \$0,\$12,5 +0+0164 <[^>]*> 40806006 mtc0 \$0,\$12,6 +0+0168 <[^>]*> 40806007 mtc0 \$0,\$12,7 +0+016c <[^>]*> 40806801 mtc0 \$0,\$13,1 +0+0170 <[^>]*> 40806802 mtc0 \$0,\$13,2 +0+0174 <[^>]*> 40806803 mtc0 \$0,\$13,3 +0+0178 <[^>]*> 40806804 mtc0 \$0,\$13,4 +0+017c <[^>]*> 40806805 mtc0 \$0,\$13,5 +0+0180 <[^>]*> 40806806 mtc0 \$0,\$13,6 +0+0184 <[^>]*> 40806807 mtc0 \$0,\$13,7 +0+0188 <[^>]*> 40807001 mtc0 \$0,\$14,1 +0+018c <[^>]*> 40807002 mtc0 \$0,\$14,2 +0+0190 <[^>]*> 40807003 mtc0 \$0,\$14,3 +0+0194 <[^>]*> 40807004 mtc0 \$0,\$14,4 +0+0198 <[^>]*> 40807005 mtc0 \$0,\$14,5 +0+019c <[^>]*> 40807006 mtc0 \$0,\$14,6 +0+01a0 <[^>]*> 40807007 mtc0 \$0,\$14,7 +0+01a4 <[^>]*> 40807801 mtc0 \$0,\$15,1 +0+01a8 <[^>]*> 40807802 mtc0 \$0,\$15,2 +0+01ac <[^>]*> 40807803 mtc0 \$0,\$15,3 +0+01b0 <[^>]*> 40807804 mtc0 \$0,\$15,4 +0+01b4 <[^>]*> 40807805 mtc0 \$0,\$15,5 +0+01b8 <[^>]*> 40807806 mtc0 \$0,\$15,6 +0+01bc <[^>]*> 40807807 mtc0 \$0,\$15,7 +0+01c0 <[^>]*> 40808001 mtc0 \$0,c0_config1 +0+01c4 <[^>]*> 40808002 mtc0 \$0,\$16,2 +0+01c8 <[^>]*> 40808003 mtc0 \$0,\$16,3 +0+01cc <[^>]*> 40808004 mtc0 \$0,\$16,4 +0+01d0 <[^>]*> 40808005 mtc0 \$0,\$16,5 +0+01d4 <[^>]*> 40808006 mtc0 \$0,\$16,6 +0+01d8 <[^>]*> 40808007 mtc0 \$0,\$16,7 +0+01dc <[^>]*> 40808801 mtc0 \$0,\$17,1 +0+01e0 <[^>]*> 40808802 mtc0 \$0,\$17,2 +0+01e4 <[^>]*> 40808803 mtc0 \$0,\$17,3 +0+01e8 <[^>]*> 40808804 mtc0 \$0,\$17,4 +0+01ec <[^>]*> 40808805 mtc0 \$0,\$17,5 +0+01f0 <[^>]*> 40808806 mtc0 \$0,\$17,6 +0+01f4 <[^>]*> 40808807 mtc0 \$0,\$17,7 +0+01f8 <[^>]*> 40809001 mtc0 \$0,c0_watchlo,1 +0+01fc <[^>]*> 40809002 mtc0 \$0,\$18,2 +0+0200 <[^>]*> 40809003 mtc0 \$0,\$18,3 +0+0204 <[^>]*> 40809004 mtc0 \$0,\$18,4 +0+0208 <[^>]*> 40809005 mtc0 \$0,\$18,5 +0+020c <[^>]*> 40809006 mtc0 \$0,\$18,6 +0+0210 <[^>]*> 40809007 mtc0 \$0,\$18,7 +0+0214 <[^>]*> 40809801 mtc0 \$0,c0_watchhi,1 +0+0218 <[^>]*> 40809802 mtc0 \$0,\$19,2 +0+021c <[^>]*> 40809803 mtc0 \$0,\$19,3 +0+0220 <[^>]*> 40809804 mtc0 \$0,\$19,4 +0+0224 <[^>]*> 40809805 mtc0 \$0,\$19,5 +0+0228 <[^>]*> 40809806 mtc0 \$0,\$19,6 +0+022c <[^>]*> 40809807 mtc0 \$0,\$19,7 +0+0230 <[^>]*> 4080a001 mtc0 \$0,\$20,1 +0+0234 <[^>]*> 4080a002 mtc0 \$0,\$20,2 +0+0238 <[^>]*> 4080a003 mtc0 \$0,\$20,3 +0+023c <[^>]*> 4080a004 mtc0 \$0,\$20,4 +0+0240 <[^>]*> 4080a005 mtc0 \$0,\$20,5 +0+0244 <[^>]*> 4080a006 mtc0 \$0,\$20,6 +0+0248 <[^>]*> 4080a007 mtc0 \$0,\$20,7 +0+024c <[^>]*> 4080a801 mtc0 \$0,\$21,1 +0+0250 <[^>]*> 4080a802 mtc0 \$0,\$21,2 +0+0254 <[^>]*> 4080a803 mtc0 \$0,\$21,3 +0+0258 <[^>]*> 4080a804 mtc0 \$0,\$21,4 +0+025c <[^>]*> 4080a805 mtc0 \$0,\$21,5 +0+0260 <[^>]*> 4080a806 mtc0 \$0,\$21,6 +0+0264 <[^>]*> 4080a807 mtc0 \$0,\$21,7 +0+0268 <[^>]*> 4080b001 mtc0 \$0,\$22,1 +0+026c <[^>]*> 4080b002 mtc0 \$0,\$22,2 +0+0270 <[^>]*> 4080b003 mtc0 \$0,\$22,3 +0+0274 <[^>]*> 4080b004 mtc0 \$0,\$22,4 +0+0278 <[^>]*> 4080b005 mtc0 \$0,\$22,5 +0+027c <[^>]*> 4080b006 mtc0 \$0,\$22,6 +0+0280 <[^>]*> 4080b007 mtc0 \$0,\$22,7 +0+0284 <[^>]*> 4080b801 mtc0 \$0,\$23,1 +0+0288 <[^>]*> 4080b802 mtc0 \$0,\$23,2 +0+028c <[^>]*> 4080b803 mtc0 \$0,c0_edebug +0+0290 <[^>]*> 4080b804 mtc0 \$0,\$23,4 +0+0294 <[^>]*> 4080b805 mtc0 \$0,\$23,5 +0+0298 <[^>]*> 4080b806 mtc0 \$0,\$23,6 +0+029c <[^>]*> 4080b807 mtc0 \$0,\$23,7 +0+02a0 <[^>]*> 4080c001 mtc0 \$0,\$24,1 +0+02a4 <[^>]*> 4080c002 mtc0 \$0,\$24,2 +0+02a8 <[^>]*> 4080c003 mtc0 \$0,\$24,3 +0+02ac <[^>]*> 4080c004 mtc0 \$0,\$24,4 +0+02b0 <[^>]*> 4080c005 mtc0 \$0,\$24,5 +0+02b4 <[^>]*> 4080c006 mtc0 \$0,\$24,6 +0+02b8 <[^>]*> 4080c007 mtc0 \$0,\$24,7 +0+02bc <[^>]*> 4080c801 mtc0 \$0,c0_perfcnt,1 +0+02c0 <[^>]*> 4080c802 mtc0 \$0,c0_perfcnt,2 +0+02c4 <[^>]*> 4080c803 mtc0 \$0,c0_perfcnt,3 +0+02c8 <[^>]*> 4080c804 mtc0 \$0,c0_perfcnt,4 +0+02cc <[^>]*> 4080c805 mtc0 \$0,c0_perfcnt,5 +0+02d0 <[^>]*> 4080c806 mtc0 \$0,c0_perfcnt,6 +0+02d4 <[^>]*> 4080c807 mtc0 \$0,c0_perfcnt,7 +0+02d8 <[^>]*> 4080d001 mtc0 \$0,c0_buserr_pa +0+02dc <[^>]*> 4080d002 mtc0 \$0,\$26,2 +0+02e0 <[^>]*> 4080d003 mtc0 \$0,\$26,3 +0+02e4 <[^>]*> 4080d004 mtc0 \$0,\$26,4 +0+02e8 <[^>]*> 4080d005 mtc0 \$0,\$26,5 +0+02ec <[^>]*> 4080d006 mtc0 \$0,\$26,6 +0+02f0 <[^>]*> 4080d007 mtc0 \$0,\$26,7 +0+02f4 <[^>]*> 4080d801 mtc0 \$0,c0_cacheerr_d +0+02f8 <[^>]*> 4080d802 mtc0 \$0,\$27,2 +0+02fc <[^>]*> 4080d803 mtc0 \$0,c0_cacheerr_d_pa +0+0300 <[^>]*> 4080d804 mtc0 \$0,\$27,4 +0+0304 <[^>]*> 4080d805 mtc0 \$0,\$27,5 +0+0308 <[^>]*> 4080d806 mtc0 \$0,\$27,6 +0+030c <[^>]*> 4080d807 mtc0 \$0,\$27,7 +0+0310 <[^>]*> 4080e001 mtc0 \$0,c0_datalo_i +0+0314 <[^>]*> 4080e002 mtc0 \$0,c0_taglo_d +0+0318 <[^>]*> 4080e003 mtc0 \$0,c0_datalo_d +0+031c <[^>]*> 4080e004 mtc0 \$0,\$28,4 +0+0320 <[^>]*> 4080e005 mtc0 \$0,\$28,5 +0+0324 <[^>]*> 4080e006 mtc0 \$0,\$28,6 +0+0328 <[^>]*> 4080e007 mtc0 \$0,\$28,7 +0+032c <[^>]*> 4080e801 mtc0 \$0,c0_datahi_i +0+0330 <[^>]*> 4080e802 mtc0 \$0,c0_taghi_d +0+0334 <[^>]*> 4080e803 mtc0 \$0,c0_datahi_d +0+0338 <[^>]*> 4080e804 mtc0 \$0,\$29,4 +0+033c <[^>]*> 4080e805 mtc0 \$0,\$29,5 +0+0340 <[^>]*> 4080e806 mtc0 \$0,\$29,6 +0+0344 <[^>]*> 4080e807 mtc0 \$0,\$29,7 +0+0348 <[^>]*> 4080f001 mtc0 \$0,\$30,1 +0+034c <[^>]*> 4080f002 mtc0 \$0,\$30,2 +0+0350 <[^>]*> 4080f003 mtc0 \$0,\$30,3 +0+0354 <[^>]*> 4080f004 mtc0 \$0,\$30,4 +0+0358 <[^>]*> 4080f005 mtc0 \$0,\$30,5 +0+035c <[^>]*> 4080f006 mtc0 \$0,\$30,6 +0+0360 <[^>]*> 4080f007 mtc0 \$0,\$30,7 +0+0364 <[^>]*> 4080f801 mtc0 \$0,\$31,1 +0+0368 <[^>]*> 4080f802 mtc0 \$0,\$31,2 +0+036c <[^>]*> 4080f803 mtc0 \$0,\$31,3 +0+0370 <[^>]*> 4080f804 mtc0 \$0,\$31,4 +0+0374 <[^>]*> 4080f805 mtc0 \$0,\$31,5 +0+0378 <[^>]*> 4080f806 mtc0 \$0,\$31,6 +0+037c <[^>]*> 4080f807 mtc0 \$0,\$31,7 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/cp0sel-names.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/cp0sel-names.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,236 @@ +# source file to test objdump's disassembly using various styles of +# CP0 (w/ non-zero select code) register names. + + .set noreorder + .set noat + + .globl text_label .text +text_label: + + mtc0 $0, $0, 1 + mtc0 $0, $0, 2 + mtc0 $0, $0, 3 + mtc0 $0, $0, 4 + mtc0 $0, $0, 5 + mtc0 $0, $0, 6 + mtc0 $0, $0, 7 + mtc0 $0, $1, 1 + mtc0 $0, $1, 2 + mtc0 $0, $1, 3 + mtc0 $0, $1, 4 + mtc0 $0, $1, 5 + mtc0 $0, $1, 6 + mtc0 $0, $1, 7 + mtc0 $0, $2, 1 + mtc0 $0, $2, 2 + mtc0 $0, $2, 3 + mtc0 $0, $2, 4 + mtc0 $0, $2, 5 + mtc0 $0, $2, 6 + mtc0 $0, $2, 7 + mtc0 $0, $3, 1 + mtc0 $0, $3, 2 + mtc0 $0, $3, 3 + mtc0 $0, $3, 4 + mtc0 $0, $3, 5 + mtc0 $0, $3, 6 + mtc0 $0, $3, 7 + mtc0 $0, $4, 1 + mtc0 $0, $4, 2 + mtc0 $0, $4, 3 + mtc0 $0, $4, 4 + mtc0 $0, $4, 5 + mtc0 $0, $4, 6 + mtc0 $0, $4, 7 + mtc0 $0, $5, 1 + mtc0 $0, $5, 2 + mtc0 $0, $5, 3 + mtc0 $0, $5, 4 + mtc0 $0, $5, 5 + mtc0 $0, $5, 6 + mtc0 $0, $5, 7 + mtc0 $0, $6, 1 + mtc0 $0, $6, 2 + mtc0 $0, $6, 3 + mtc0 $0, $6, 4 + mtc0 $0, $6, 5 + mtc0 $0, $6, 6 + mtc0 $0, $6, 7 + mtc0 $0, $7, 1 + mtc0 $0, $7, 2 + mtc0 $0, $7, 3 + mtc0 $0, $7, 4 + mtc0 $0, $7, 5 + mtc0 $0, $7, 6 + mtc0 $0, $7, 7 + mtc0 $0, $8, 1 + mtc0 $0, $8, 2 + mtc0 $0, $8, 3 + mtc0 $0, $8, 4 + mtc0 $0, $8, 5 + mtc0 $0, $8, 6 + mtc0 $0, $8, 7 + mtc0 $0, $9, 1 + mtc0 $0, $9, 2 + mtc0 $0, $9, 3 + mtc0 $0, $9, 4 + mtc0 $0, $9, 5 + mtc0 $0, $9, 6 + mtc0 $0, $9, 7 + mtc0 $0, $10, 1 + mtc0 $0, $10, 2 + mtc0 $0, $10, 3 + mtc0 $0, $10, 4 + mtc0 $0, $10, 5 + mtc0 $0, $10, 6 + mtc0 $0, $10, 7 + mtc0 $0, $11, 1 + mtc0 $0, $11, 2 + mtc0 $0, $11, 3 + mtc0 $0, $11, 4 + mtc0 $0, $11, 5 + mtc0 $0, $11, 6 + mtc0 $0, $11, 7 + mtc0 $0, $12, 1 + mtc0 $0, $12, 2 + mtc0 $0, $12, 3 + mtc0 $0, $12, 4 + mtc0 $0, $12, 5 + mtc0 $0, $12, 6 + mtc0 $0, $12, 7 + mtc0 $0, $13, 1 + mtc0 $0, $13, 2 + mtc0 $0, $13, 3 + mtc0 $0, $13, 4 + mtc0 $0, $13, 5 + mtc0 $0, $13, 6 + mtc0 $0, $13, 7 + mtc0 $0, $14, 1 + mtc0 $0, $14, 2 + mtc0 $0, $14, 3 + mtc0 $0, $14, 4 + mtc0 $0, $14, 5 + mtc0 $0, $14, 6 + mtc0 $0, $14, 7 + mtc0 $0, $15, 1 + mtc0 $0, $15, 2 + mtc0 $0, $15, 3 + mtc0 $0, $15, 4 + mtc0 $0, $15, 5 + mtc0 $0, $15, 6 + mtc0 $0, $15, 7 + mtc0 $0, $16, 1 + mtc0 $0, $16, 2 + mtc0 $0, $16, 3 + mtc0 $0, $16, 4 + mtc0 $0, $16, 5 + mtc0 $0, $16, 6 + mtc0 $0, $16, 7 + mtc0 $0, $17, 1 + mtc0 $0, $17, 2 + mtc0 $0, $17, 3 + mtc0 $0, $17, 4 + mtc0 $0, $17, 5 + mtc0 $0, $17, 6 + mtc0 $0, $17, 7 + mtc0 $0, $18, 1 + mtc0 $0, $18, 2 + mtc0 $0, $18, 3 + mtc0 $0, $18, 4 + mtc0 $0, $18, 5 + mtc0 $0, $18, 6 + mtc0 $0, $18, 7 + mtc0 $0, $19, 1 + mtc0 $0, $19, 2 + mtc0 $0, $19, 3 + mtc0 $0, $19, 4 + mtc0 $0, $19, 5 + mtc0 $0, $19, 6 + mtc0 $0, $19, 7 + mtc0 $0, $20, 1 + mtc0 $0, $20, 2 + mtc0 $0, $20, 3 + mtc0 $0, $20, 4 + mtc0 $0, $20, 5 + mtc0 $0, $20, 6 + mtc0 $0, $20, 7 + mtc0 $0, $21, 1 + mtc0 $0, $21, 2 + mtc0 $0, $21, 3 + mtc0 $0, $21, 4 + mtc0 $0, $21, 5 + mtc0 $0, $21, 6 + mtc0 $0, $21, 7 + mtc0 $0, $22, 1 + mtc0 $0, $22, 2 + mtc0 $0, $22, 3 + mtc0 $0, $22, 4 + mtc0 $0, $22, 5 + mtc0 $0, $22, 6 + mtc0 $0, $22, 7 + mtc0 $0, $23, 1 + mtc0 $0, $23, 2 + mtc0 $0, $23, 3 + mtc0 $0, $23, 4 + mtc0 $0, $23, 5 + mtc0 $0, $23, 6 + mtc0 $0, $23, 7 + mtc0 $0, $24, 1 + mtc0 $0, $24, 2 + mtc0 $0, $24, 3 + mtc0 $0, $24, 4 + mtc0 $0, $24, 5 + mtc0 $0, $24, 6 + mtc0 $0, $24, 7 + mtc0 $0, $25, 1 + mtc0 $0, $25, 2 + mtc0 $0, $25, 3 + mtc0 $0, $25, 4 + mtc0 $0, $25, 5 + mtc0 $0, $25, 6 + mtc0 $0, $25, 7 + mtc0 $0, $26, 1 + mtc0 $0, $26, 2 + mtc0 $0, $26, 3 + mtc0 $0, $26, 4 + mtc0 $0, $26, 5 + mtc0 $0, $26, 6 + mtc0 $0, $26, 7 + mtc0 $0, $27, 1 + mtc0 $0, $27, 2 + mtc0 $0, $27, 3 + mtc0 $0, $27, 4 + mtc0 $0, $27, 5 + mtc0 $0, $27, 6 + mtc0 $0, $27, 7 + mtc0 $0, $28, 1 + mtc0 $0, $28, 2 + mtc0 $0, $28, 3 + mtc0 $0, $28, 4 + mtc0 $0, $28, 5 + mtc0 $0, $28, 6 + mtc0 $0, $28, 7 + mtc0 $0, $29, 1 + mtc0 $0, $29, 2 + mtc0 $0, $29, 3 + mtc0 $0, $29, 4 + mtc0 $0, $29, 5 + mtc0 $0, $29, 6 + mtc0 $0, $29, 7 + mtc0 $0, $30, 1 + mtc0 $0, $30, 2 + mtc0 $0, $30, 3 + mtc0 $0, $30, 4 + mtc0 $0, $30, 5 + mtc0 $0, $30, 6 + mtc0 $0, $30, 7 + mtc0 $0, $31, 1 + mtc0 $0, $31, 2 + mtc0 $0, $31, 3 + mtc0 $0, $31, 4 + mtc0 $0, $31, 5 + mtc0 $0, $31, 6 + mtc0 $0, $31, 7 + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/dli.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/dli.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/dli.d Mon May 21 10:36:59 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/dli.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,5 @@ -#objdump: -dr --prefix-addresses -mmips:4000 +#objdump: -dr --prefix-addresses #name: MIPS dli -#as: -mips3 # Test the dli macro. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf-jal.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf-jal.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf-jal.d Sat Jun 9 00:13:01 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf-jal.d Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ -#objdump: -dr --prefix-addresses -mmips:4000 -#name: MIPS jal +#objdump: -dr --prefix-addresses +#name: MIPS ELF jal #source: jal.s # Test the jal macro. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips1.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips1.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips1.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,10 @@ +# name: ELF MIPS1 markings +# source: empty.s +# objdump: -p +# as: -march=mips1 + +.*:.*file format.*elf.*mips.* +# Note: objdump omits leading zeros, so must check for the fact that +# flags are _not_ 8 chars long. +private flags = (.......|......|.....|....|...|..|.): .*\[mips1\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips2.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,8 @@ +# name: ELF MIPS2 markings +# source: empty.s +# objdump: -p +# as: -march=mips2 + +.*:.*file format.*elf.*mips.* +private flags = 1.......: .*\[mips2\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips3.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips3.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips3.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips3.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,8 @@ +# name: ELF MIPS3 markings +# source: empty.s +# objdump: -p +# as: -march=mips3 + +.*:.*file format.*elf.*mips.* +private flags = 2.......: .*\[mips3\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips32.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips32.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,8 @@ +# name: ELF MIPS32 markings +# source: empty.s +# objdump: -p +# as: -march=mips32 + +.*:.*file format.*elf.*mips.* +private flags = 5.......: .*\[mips32\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips32r2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips32r2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips32r2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips32r2.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,8 @@ +# name: ELF MIPS32r2 markings +# source: empty.s +# objdump: -p +# as: -march=mips32r2 + +.*:.*file format.*elf.*mips.* +private flags = 7.......: .*\[mips32r2\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips4.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips4.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips4.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips4.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,8 @@ +# name: ELF MIPS4 markings +# source: empty.s +# objdump: -p +# as: -march=mips4 + +.*:.*file format.*elf.*mips.* +private flags = 3.......: .*\[mips4\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips5.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips5.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips5.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips5.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,8 @@ +# name: ELF MIPS5 markings +# source: empty.s +# objdump: -p +# as: -march=mips5 + +.*:.*file format.*elf.*mips.* +private flags = 4.......: .*\[mips5\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips64.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_arch_mips64.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_arch_mips64.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,8 @@ +# name: ELF MIPS64 markings +# source: empty.s +# objdump: -p +# as: -march=mips64 + +.*:.*file format.*elf.*mips.* +private flags = 6.......: .*\[mips64\].* + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_ase_mips16.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_ase_mips16.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_ase_mips16.d Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_ase_mips16.d Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ # name: ELF MIPS16 ASE markings -# source: elf_ase_mips16.s +# source: empty.s # objdump: -p # as: -mips16 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_ase_mips16.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_ase_mips16.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/elf_ase_mips16.s Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/elf_ase_mips16.s Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ -# Test of MIPS16 ASE file markings. - - # no actual contents necessary! diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/empty.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/empty.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/empty.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/empty.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,3 @@ +# An empty source file for tests that need no instructions. + + # No actual contents necessary! diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-32.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-32.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,fpr-names=32 +#name: MIPS FPR disassembly (32) +#source: fpr-names.s + +# Check objdump's handling of -M fpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 44800000 mtc1 \$0,fv0 +0+0004 <[^>]*> 44800800 mtc1 \$0,fv0f +0+0008 <[^>]*> 44801000 mtc1 \$0,fv1 +0+000c <[^>]*> 44801800 mtc1 \$0,fv1f +0+0010 <[^>]*> 44802000 mtc1 \$0,ft0 +0+0014 <[^>]*> 44802800 mtc1 \$0,ft0f +0+0018 <[^>]*> 44803000 mtc1 \$0,ft1 +0+001c <[^>]*> 44803800 mtc1 \$0,ft1f +0+0020 <[^>]*> 44804000 mtc1 \$0,ft2 +0+0024 <[^>]*> 44804800 mtc1 \$0,ft2f +0+0028 <[^>]*> 44805000 mtc1 \$0,ft3 +0+002c <[^>]*> 44805800 mtc1 \$0,ft3f +0+0030 <[^>]*> 44806000 mtc1 \$0,fa0 +0+0034 <[^>]*> 44806800 mtc1 \$0,fa0f +0+0038 <[^>]*> 44807000 mtc1 \$0,fa1 +0+003c <[^>]*> 44807800 mtc1 \$0,fa1f +0+0040 <[^>]*> 44808000 mtc1 \$0,ft4 +0+0044 <[^>]*> 44808800 mtc1 \$0,ft4f +0+0048 <[^>]*> 44809000 mtc1 \$0,ft5 +0+004c <[^>]*> 44809800 mtc1 \$0,ft5f +0+0050 <[^>]*> 4480a000 mtc1 \$0,fs0 +0+0054 <[^>]*> 4480a800 mtc1 \$0,fs0f +0+0058 <[^>]*> 4480b000 mtc1 \$0,fs1 +0+005c <[^>]*> 4480b800 mtc1 \$0,fs1f +0+0060 <[^>]*> 4480c000 mtc1 \$0,fs2 +0+0064 <[^>]*> 4480c800 mtc1 \$0,fs2f +0+0068 <[^>]*> 4480d000 mtc1 \$0,fs3 +0+006c <[^>]*> 4480d800 mtc1 \$0,fs3f +0+0070 <[^>]*> 4480e000 mtc1 \$0,fs4 +0+0074 <[^>]*> 4480e800 mtc1 \$0,fs4f +0+0078 <[^>]*> 4480f000 mtc1 \$0,fs5 +0+007c <[^>]*> 4480f800 mtc1 \$0,fs5f + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-64.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-64.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-64.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,fpr-names=64 +#name: MIPS FPR disassembly (64) +#source: fpr-names.s + +# Check objdump's handling of -M fpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 44800000 mtc1 \$0,fv0 +0+0004 <[^>]*> 44800800 mtc1 \$0,ft12 +0+0008 <[^>]*> 44801000 mtc1 \$0,fv1 +0+000c <[^>]*> 44801800 mtc1 \$0,ft13 +0+0010 <[^>]*> 44802000 mtc1 \$0,ft0 +0+0014 <[^>]*> 44802800 mtc1 \$0,ft1 +0+0018 <[^>]*> 44803000 mtc1 \$0,ft2 +0+001c <[^>]*> 44803800 mtc1 \$0,ft3 +0+0020 <[^>]*> 44804000 mtc1 \$0,ft4 +0+0024 <[^>]*> 44804800 mtc1 \$0,ft5 +0+0028 <[^>]*> 44805000 mtc1 \$0,ft6 +0+002c <[^>]*> 44805800 mtc1 \$0,ft7 +0+0030 <[^>]*> 44806000 mtc1 \$0,fa0 +0+0034 <[^>]*> 44806800 mtc1 \$0,fa1 +0+0038 <[^>]*> 44807000 mtc1 \$0,fa2 +0+003c <[^>]*> 44807800 mtc1 \$0,fa3 +0+0040 <[^>]*> 44808000 mtc1 \$0,fa4 +0+0044 <[^>]*> 44808800 mtc1 \$0,fa5 +0+0048 <[^>]*> 44809000 mtc1 \$0,fa6 +0+004c <[^>]*> 44809800 mtc1 \$0,fa7 +0+0050 <[^>]*> 4480a000 mtc1 \$0,ft8 +0+0054 <[^>]*> 4480a800 mtc1 \$0,ft9 +0+0058 <[^>]*> 4480b000 mtc1 \$0,ft10 +0+005c <[^>]*> 4480b800 mtc1 \$0,ft11 +0+0060 <[^>]*> 4480c000 mtc1 \$0,fs0 +0+0064 <[^>]*> 4480c800 mtc1 \$0,fs1 +0+0068 <[^>]*> 4480d000 mtc1 \$0,fs2 +0+006c <[^>]*> 4480d800 mtc1 \$0,fs3 +0+0070 <[^>]*> 4480e000 mtc1 \$0,fs4 +0+0074 <[^>]*> 4480e800 mtc1 \$0,fs5 +0+0078 <[^>]*> 4480f000 mtc1 \$0,fs6 +0+007c <[^>]*> 4480f800 mtc1 \$0,fs7 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-n32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-n32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-n32.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-n32.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,fpr-names=n32 +#name: MIPS FPR disassembly (n32) +#source: fpr-names.s + +# Check objdump's handling of -M fpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 44800000 mtc1 \$0,fv0 +0+0004 <[^>]*> 44800800 mtc1 \$0,ft14 +0+0008 <[^>]*> 44801000 mtc1 \$0,fv1 +0+000c <[^>]*> 44801800 mtc1 \$0,ft15 +0+0010 <[^>]*> 44802000 mtc1 \$0,ft0 +0+0014 <[^>]*> 44802800 mtc1 \$0,ft1 +0+0018 <[^>]*> 44803000 mtc1 \$0,ft2 +0+001c <[^>]*> 44803800 mtc1 \$0,ft3 +0+0020 <[^>]*> 44804000 mtc1 \$0,ft4 +0+0024 <[^>]*> 44804800 mtc1 \$0,ft5 +0+0028 <[^>]*> 44805000 mtc1 \$0,ft6 +0+002c <[^>]*> 44805800 mtc1 \$0,ft7 +0+0030 <[^>]*> 44806000 mtc1 \$0,fa0 +0+0034 <[^>]*> 44806800 mtc1 \$0,fa1 +0+0038 <[^>]*> 44807000 mtc1 \$0,fa2 +0+003c <[^>]*> 44807800 mtc1 \$0,fa3 +0+0040 <[^>]*> 44808000 mtc1 \$0,fa4 +0+0044 <[^>]*> 44808800 mtc1 \$0,fa5 +0+0048 <[^>]*> 44809000 mtc1 \$0,fa6 +0+004c <[^>]*> 44809800 mtc1 \$0,fa7 +0+0050 <[^>]*> 4480a000 mtc1 \$0,fs0 +0+0054 <[^>]*> 4480a800 mtc1 \$0,ft8 +0+0058 <[^>]*> 4480b000 mtc1 \$0,fs1 +0+005c <[^>]*> 4480b800 mtc1 \$0,ft9 +0+0060 <[^>]*> 4480c000 mtc1 \$0,fs2 +0+0064 <[^>]*> 4480c800 mtc1 \$0,ft10 +0+0068 <[^>]*> 4480d000 mtc1 \$0,fs3 +0+006c <[^>]*> 4480d800 mtc1 \$0,ft11 +0+0070 <[^>]*> 4480e000 mtc1 \$0,fs4 +0+0074 <[^>]*> 4480e800 mtc1 \$0,ft12 +0+0078 <[^>]*> 4480f000 mtc1 \$0,fs5 +0+007c <[^>]*> 4480f800 mtc1 \$0,ft13 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-numeric.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-numeric.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names-numeric.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names-numeric.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,fpr-names=numeric +#name: MIPS FPR disassembly (numeric) +#source: fpr-names.s + +# Check objdump's handling of -M fpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 44800000 mtc1 \$0,\$f0 +0+0004 <[^>]*> 44800800 mtc1 \$0,\$f1 +0+0008 <[^>]*> 44801000 mtc1 \$0,\$f2 +0+000c <[^>]*> 44801800 mtc1 \$0,\$f3 +0+0010 <[^>]*> 44802000 mtc1 \$0,\$f4 +0+0014 <[^>]*> 44802800 mtc1 \$0,\$f5 +0+0018 <[^>]*> 44803000 mtc1 \$0,\$f6 +0+001c <[^>]*> 44803800 mtc1 \$0,\$f7 +0+0020 <[^>]*> 44804000 mtc1 \$0,\$f8 +0+0024 <[^>]*> 44804800 mtc1 \$0,\$f9 +0+0028 <[^>]*> 44805000 mtc1 \$0,\$f10 +0+002c <[^>]*> 44805800 mtc1 \$0,\$f11 +0+0030 <[^>]*> 44806000 mtc1 \$0,\$f12 +0+0034 <[^>]*> 44806800 mtc1 \$0,\$f13 +0+0038 <[^>]*> 44807000 mtc1 \$0,\$f14 +0+003c <[^>]*> 44807800 mtc1 \$0,\$f15 +0+0040 <[^>]*> 44808000 mtc1 \$0,\$f16 +0+0044 <[^>]*> 44808800 mtc1 \$0,\$f17 +0+0048 <[^>]*> 44809000 mtc1 \$0,\$f18 +0+004c <[^>]*> 44809800 mtc1 \$0,\$f19 +0+0050 <[^>]*> 4480a000 mtc1 \$0,\$f20 +0+0054 <[^>]*> 4480a800 mtc1 \$0,\$f21 +0+0058 <[^>]*> 4480b000 mtc1 \$0,\$f22 +0+005c <[^>]*> 4480b800 mtc1 \$0,\$f23 +0+0060 <[^>]*> 4480c000 mtc1 \$0,\$f24 +0+0064 <[^>]*> 4480c800 mtc1 \$0,\$f25 +0+0068 <[^>]*> 4480d000 mtc1 \$0,\$f26 +0+006c <[^>]*> 4480d800 mtc1 \$0,\$f27 +0+0070 <[^>]*> 4480e000 mtc1 \$0,\$f28 +0+0074 <[^>]*> 4480e800 mtc1 \$0,\$f29 +0+0078 <[^>]*> 4480f000 mtc1 \$0,\$f30 +0+007c <[^>]*> 4480f800 mtc1 \$0,\$f31 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/fpr-names.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/fpr-names.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,44 @@ +# source file to test objdump's disassembly using various styles of +# FPR names. + + .set noreorder + .set noat + + .globl text_label .text +text_label: + + mtc1 $0, $f0 + mtc1 $0, $f1 + mtc1 $0, $f2 + mtc1 $0, $f3 + mtc1 $0, $f4 + mtc1 $0, $f5 + mtc1 $0, $f6 + mtc1 $0, $f7 + mtc1 $0, $f8 + mtc1 $0, $f9 + mtc1 $0, $f10 + mtc1 $0, $f11 + mtc1 $0, $f12 + mtc1 $0, $f13 + mtc1 $0, $f14 + mtc1 $0, $f15 + mtc1 $0, $f16 + mtc1 $0, $f17 + mtc1 $0, $f18 + mtc1 $0, $f19 + mtc1 $0, $f20 + mtc1 $0, $f21 + mtc1 $0, $f22 + mtc1 $0, $f23 + mtc1 $0, $f24 + mtc1 $0, $f25 + mtc1 $0, $f26 + mtc1 $0, $f27 + mtc1 $0, $f28 + mtc1 $0, $f29 + mtc1 $0, $f30 + mtc1 $0, $f31 + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-32.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-32.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=32 +#name: MIPS GPR disassembly (32) +#source: gpr-names.s + +# Check objdump's handling of -M gpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 3c000000 lui zero,0x0 +0+0004 <[^>]*> 3c010000 lui at,0x0 +0+0008 <[^>]*> 3c020000 lui v0,0x0 +0+000c <[^>]*> 3c030000 lui v1,0x0 +0+0010 <[^>]*> 3c040000 lui a0,0x0 +0+0014 <[^>]*> 3c050000 lui a1,0x0 +0+0018 <[^>]*> 3c060000 lui a2,0x0 +0+001c <[^>]*> 3c070000 lui a3,0x0 +0+0020 <[^>]*> 3c080000 lui t0,0x0 +0+0024 <[^>]*> 3c090000 lui t1,0x0 +0+0028 <[^>]*> 3c0a0000 lui t2,0x0 +0+002c <[^>]*> 3c0b0000 lui t3,0x0 +0+0030 <[^>]*> 3c0c0000 lui t4,0x0 +0+0034 <[^>]*> 3c0d0000 lui t5,0x0 +0+0038 <[^>]*> 3c0e0000 lui t6,0x0 +0+003c <[^>]*> 3c0f0000 lui t7,0x0 +0+0040 <[^>]*> 3c100000 lui s0,0x0 +0+0044 <[^>]*> 3c110000 lui s1,0x0 +0+0048 <[^>]*> 3c120000 lui s2,0x0 +0+004c <[^>]*> 3c130000 lui s3,0x0 +0+0050 <[^>]*> 3c140000 lui s4,0x0 +0+0054 <[^>]*> 3c150000 lui s5,0x0 +0+0058 <[^>]*> 3c160000 lui s6,0x0 +0+005c <[^>]*> 3c170000 lui s7,0x0 +0+0060 <[^>]*> 3c180000 lui t8,0x0 +0+0064 <[^>]*> 3c190000 lui t9,0x0 +0+0068 <[^>]*> 3c1a0000 lui k0,0x0 +0+006c <[^>]*> 3c1b0000 lui k1,0x0 +0+0070 <[^>]*> 3c1c0000 lui gp,0x0 +0+0074 <[^>]*> 3c1d0000 lui sp,0x0 +0+0078 <[^>]*> 3c1e0000 lui s8,0x0 +0+007c <[^>]*> 3c1f0000 lui ra,0x0 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-64.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-64.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-64.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=64 +#name: MIPS GPR disassembly (64) +#source: gpr-names.s + +# Check objdump's handling of -M gpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 3c000000 lui zero,0x0 +0+0004 <[^>]*> 3c010000 lui at,0x0 +0+0008 <[^>]*> 3c020000 lui v0,0x0 +0+000c <[^>]*> 3c030000 lui v1,0x0 +0+0010 <[^>]*> 3c040000 lui a0,0x0 +0+0014 <[^>]*> 3c050000 lui a1,0x0 +0+0018 <[^>]*> 3c060000 lui a2,0x0 +0+001c <[^>]*> 3c070000 lui a3,0x0 +0+0020 <[^>]*> 3c080000 lui a4,0x0 +0+0024 <[^>]*> 3c090000 lui a5,0x0 +0+0028 <[^>]*> 3c0a0000 lui a6,0x0 +0+002c <[^>]*> 3c0b0000 lui a7,0x0 +0+0030 <[^>]*> 3c0c0000 lui t0,0x0 +0+0034 <[^>]*> 3c0d0000 lui t1,0x0 +0+0038 <[^>]*> 3c0e0000 lui t2,0x0 +0+003c <[^>]*> 3c0f0000 lui t3,0x0 +0+0040 <[^>]*> 3c100000 lui s0,0x0 +0+0044 <[^>]*> 3c110000 lui s1,0x0 +0+0048 <[^>]*> 3c120000 lui s2,0x0 +0+004c <[^>]*> 3c130000 lui s3,0x0 +0+0050 <[^>]*> 3c140000 lui s4,0x0 +0+0054 <[^>]*> 3c150000 lui s5,0x0 +0+0058 <[^>]*> 3c160000 lui s6,0x0 +0+005c <[^>]*> 3c170000 lui s7,0x0 +0+0060 <[^>]*> 3c180000 lui t8,0x0 +0+0064 <[^>]*> 3c190000 lui t9,0x0 +0+0068 <[^>]*> 3c1a0000 lui k0,0x0 +0+006c <[^>]*> 3c1b0000 lui k1,0x0 +0+0070 <[^>]*> 3c1c0000 lui gp,0x0 +0+0074 <[^>]*> 3c1d0000 lui sp,0x0 +0+0078 <[^>]*> 3c1e0000 lui s8,0x0 +0+007c <[^>]*> 3c1f0000 lui ra,0x0 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-n32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-n32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-n32.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-n32.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=n32 +#name: MIPS GPR disassembly (n32) +#source: gpr-names.s + +# Check objdump's handling of -M gpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 3c000000 lui zero,0x0 +0+0004 <[^>]*> 3c010000 lui at,0x0 +0+0008 <[^>]*> 3c020000 lui v0,0x0 +0+000c <[^>]*> 3c030000 lui v1,0x0 +0+0010 <[^>]*> 3c040000 lui a0,0x0 +0+0014 <[^>]*> 3c050000 lui a1,0x0 +0+0018 <[^>]*> 3c060000 lui a2,0x0 +0+001c <[^>]*> 3c070000 lui a3,0x0 +0+0020 <[^>]*> 3c080000 lui a4,0x0 +0+0024 <[^>]*> 3c090000 lui a5,0x0 +0+0028 <[^>]*> 3c0a0000 lui a6,0x0 +0+002c <[^>]*> 3c0b0000 lui a7,0x0 +0+0030 <[^>]*> 3c0c0000 lui t0,0x0 +0+0034 <[^>]*> 3c0d0000 lui t1,0x0 +0+0038 <[^>]*> 3c0e0000 lui t2,0x0 +0+003c <[^>]*> 3c0f0000 lui t3,0x0 +0+0040 <[^>]*> 3c100000 lui s0,0x0 +0+0044 <[^>]*> 3c110000 lui s1,0x0 +0+0048 <[^>]*> 3c120000 lui s2,0x0 +0+004c <[^>]*> 3c130000 lui s3,0x0 +0+0050 <[^>]*> 3c140000 lui s4,0x0 +0+0054 <[^>]*> 3c150000 lui s5,0x0 +0+0058 <[^>]*> 3c160000 lui s6,0x0 +0+005c <[^>]*> 3c170000 lui s7,0x0 +0+0060 <[^>]*> 3c180000 lui t8,0x0 +0+0064 <[^>]*> 3c190000 lui t9,0x0 +0+0068 <[^>]*> 3c1a0000 lui k0,0x0 +0+006c <[^>]*> 3c1b0000 lui k1,0x0 +0+0070 <[^>]*> 3c1c0000 lui gp,0x0 +0+0074 <[^>]*> 3c1d0000 lui sp,0x0 +0+0078 <[^>]*> 3c1e0000 lui s8,0x0 +0+007c <[^>]*> 3c1f0000 lui ra,0x0 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-numeric.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-numeric.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names-numeric.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names-numeric.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,42 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric +#name: MIPS GPR disassembly (numeric) +#source: gpr-names.s + +# Check objdump's handling of -M gpr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 3c000000 lui \$0,0x0 +0+0004 <[^>]*> 3c010000 lui \$1,0x0 +0+0008 <[^>]*> 3c020000 lui \$2,0x0 +0+000c <[^>]*> 3c030000 lui \$3,0x0 +0+0010 <[^>]*> 3c040000 lui \$4,0x0 +0+0014 <[^>]*> 3c050000 lui \$5,0x0 +0+0018 <[^>]*> 3c060000 lui \$6,0x0 +0+001c <[^>]*> 3c070000 lui \$7,0x0 +0+0020 <[^>]*> 3c080000 lui \$8,0x0 +0+0024 <[^>]*> 3c090000 lui \$9,0x0 +0+0028 <[^>]*> 3c0a0000 lui \$10,0x0 +0+002c <[^>]*> 3c0b0000 lui \$11,0x0 +0+0030 <[^>]*> 3c0c0000 lui \$12,0x0 +0+0034 <[^>]*> 3c0d0000 lui \$13,0x0 +0+0038 <[^>]*> 3c0e0000 lui \$14,0x0 +0+003c <[^>]*> 3c0f0000 lui \$15,0x0 +0+0040 <[^>]*> 3c100000 lui \$16,0x0 +0+0044 <[^>]*> 3c110000 lui \$17,0x0 +0+0048 <[^>]*> 3c120000 lui \$18,0x0 +0+004c <[^>]*> 3c130000 lui \$19,0x0 +0+0050 <[^>]*> 3c140000 lui \$20,0x0 +0+0054 <[^>]*> 3c150000 lui \$21,0x0 +0+0058 <[^>]*> 3c160000 lui \$22,0x0 +0+005c <[^>]*> 3c170000 lui \$23,0x0 +0+0060 <[^>]*> 3c180000 lui \$24,0x0 +0+0064 <[^>]*> 3c190000 lui \$25,0x0 +0+0068 <[^>]*> 3c1a0000 lui \$26,0x0 +0+006c <[^>]*> 3c1b0000 lui \$27,0x0 +0+0070 <[^>]*> 3c1c0000 lui \$28,0x0 +0+0074 <[^>]*> 3c1d0000 lui \$29,0x0 +0+0078 <[^>]*> 3c1e0000 lui \$30,0x0 +0+007c <[^>]*> 3c1f0000 lui \$31,0x0 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/gpr-names.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/gpr-names.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,44 @@ +# source file to test objdump's disassembly using various styles of +# GPR names. + + .set noreorder + .set noat + + .globl text_label .text +text_label: + + lui $0, 0 + lui $1, 0 + lui $2, 0 + lui $3, 0 + lui $4, 0 + lui $5, 0 + lui $6, 0 + lui $7, 0 + lui $8, 0 + lui $9, 0 + lui $10, 0 + lui $11, 0 + lui $12, 0 + lui $13, 0 + lui $14, 0 + lui $15, 0 + lui $16, 0 + lui $17, 0 + lui $18, 0 + lui $19, 0 + lui $20, 0 + lui $21, 0 + lui $22, 0 + lui $23, 0 + lui $24, 0 + lui $25, 0 + lui $26, 0 + lui $27, 0 + lui $28, 0 + lui $29, 0 + lui $30, 0 + lui $31, 0 + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/hwr-names-mips32r2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/hwr-names-mips32r2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/hwr-names-mips32r2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/hwr-names-mips32r2.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,43 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32r2 -M gpr-names=numeric,hwr-names=mips32r2 +#name: MIPS HWR disassembly (mips32r2) +#as: -mips32r2 +#source: hwr-names.s + +# Check objdump's handling of -M hwr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 7c00003b rdhwr \$0,hwr_cpunum +0+0004 <[^>]*> 7c00083b rdhwr \$0,hwr_synci_step +0+0008 <[^>]*> 7c00103b rdhwr \$0,hwr_cc +0+000c <[^>]*> 7c00183b rdhwr \$0,hwr_ccres +0+0010 <[^>]*> 7c00203b rdhwr \$0,\$4 +0+0014 <[^>]*> 7c00283b rdhwr \$0,\$5 +0+0018 <[^>]*> 7c00303b rdhwr \$0,\$6 +0+001c <[^>]*> 7c00383b rdhwr \$0,\$7 +0+0020 <[^>]*> 7c00403b rdhwr \$0,\$8 +0+0024 <[^>]*> 7c00483b rdhwr \$0,\$9 +0+0028 <[^>]*> 7c00503b rdhwr \$0,\$10 +0+002c <[^>]*> 7c00583b rdhwr \$0,\$11 +0+0030 <[^>]*> 7c00603b rdhwr \$0,\$12 +0+0034 <[^>]*> 7c00683b rdhwr \$0,\$13 +0+0038 <[^>]*> 7c00703b rdhwr \$0,\$14 +0+003c <[^>]*> 7c00783b rdhwr \$0,\$15 +0+0040 <[^>]*> 7c00803b rdhwr \$0,\$16 +0+0044 <[^>]*> 7c00883b rdhwr \$0,\$17 +0+0048 <[^>]*> 7c00903b rdhwr \$0,\$18 +0+004c <[^>]*> 7c00983b rdhwr \$0,\$19 +0+0050 <[^>]*> 7c00a03b rdhwr \$0,\$20 +0+0054 <[^>]*> 7c00a83b rdhwr \$0,\$21 +0+0058 <[^>]*> 7c00b03b rdhwr \$0,\$22 +0+005c <[^>]*> 7c00b83b rdhwr \$0,\$23 +0+0060 <[^>]*> 7c00c03b rdhwr \$0,\$24 +0+0064 <[^>]*> 7c00c83b rdhwr \$0,\$25 +0+0068 <[^>]*> 7c00d03b rdhwr \$0,\$26 +0+006c <[^>]*> 7c00d83b rdhwr \$0,\$27 +0+0070 <[^>]*> 7c00e03b rdhwr \$0,\$28 +0+0074 <[^>]*> 7c00e83b rdhwr \$0,\$29 +0+0078 <[^>]*> 7c00f03b rdhwr \$0,\$30 +0+007c <[^>]*> 7c00f83b rdhwr \$0,\$31 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/hwr-names-numeric.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/hwr-names-numeric.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/hwr-names-numeric.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/hwr-names-numeric.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,43 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32r2 -M gpr-names=numeric,hwr-names=numeric +#name: MIPS HWR disassembly (numeric) +#as: -mips32r2 +#source: hwr-names.s + +# Check objdump's handling of -M hwr-names=foo options. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 7c00003b rdhwr \$0,\$0 +0+0004 <[^>]*> 7c00083b rdhwr \$0,\$1 +0+0008 <[^>]*> 7c00103b rdhwr \$0,\$2 +0+000c <[^>]*> 7c00183b rdhwr \$0,\$3 +0+0010 <[^>]*> 7c00203b rdhwr \$0,\$4 +0+0014 <[^>]*> 7c00283b rdhwr \$0,\$5 +0+0018 <[^>]*> 7c00303b rdhwr \$0,\$6 +0+001c <[^>]*> 7c00383b rdhwr \$0,\$7 +0+0020 <[^>]*> 7c00403b rdhwr \$0,\$8 +0+0024 <[^>]*> 7c00483b rdhwr \$0,\$9 +0+0028 <[^>]*> 7c00503b rdhwr \$0,\$10 +0+002c <[^>]*> 7c00583b rdhwr \$0,\$11 +0+0030 <[^>]*> 7c00603b rdhwr \$0,\$12 +0+0034 <[^>]*> 7c00683b rdhwr \$0,\$13 +0+0038 <[^>]*> 7c00703b rdhwr \$0,\$14 +0+003c <[^>]*> 7c00783b rdhwr \$0,\$15 +0+0040 <[^>]*> 7c00803b rdhwr \$0,\$16 +0+0044 <[^>]*> 7c00883b rdhwr \$0,\$17 +0+0048 <[^>]*> 7c00903b rdhwr \$0,\$18 +0+004c <[^>]*> 7c00983b rdhwr \$0,\$19 +0+0050 <[^>]*> 7c00a03b rdhwr \$0,\$20 +0+0054 <[^>]*> 7c00a83b rdhwr \$0,\$21 +0+0058 <[^>]*> 7c00b03b rdhwr \$0,\$22 +0+005c <[^>]*> 7c00b83b rdhwr \$0,\$23 +0+0060 <[^>]*> 7c00c03b rdhwr \$0,\$24 +0+0064 <[^>]*> 7c00c83b rdhwr \$0,\$25 +0+0068 <[^>]*> 7c00d03b rdhwr \$0,\$26 +0+006c <[^>]*> 7c00d83b rdhwr \$0,\$27 +0+0070 <[^>]*> 7c00e03b rdhwr \$0,\$28 +0+0074 <[^>]*> 7c00e83b rdhwr \$0,\$29 +0+0078 <[^>]*> 7c00f03b rdhwr \$0,\$30 +0+007c <[^>]*> 7c00f83b rdhwr \$0,\$31 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/hwr-names.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/hwr-names.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/hwr-names.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/hwr-names.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,44 @@ +# source file to test objdump's disassembly using various styles of +# HWR (hardware register) names. + + .set noreorder + .set noat + + .globl text_label .text +text_label: + + rdhwr $0, $0 + rdhwr $0, $1 + rdhwr $0, $2 + rdhwr $0, $3 + rdhwr $0, $4 + rdhwr $0, $5 + rdhwr $0, $6 + rdhwr $0, $7 + rdhwr $0, $8 + rdhwr $0, $9 + rdhwr $0, $10 + rdhwr $0, $11 + rdhwr $0, $12 + rdhwr $0, $13 + rdhwr $0, $14 + rdhwr $0, $15 + rdhwr $0, $16 + rdhwr $0, $17 + rdhwr $0, $18 + rdhwr $0, $19 + rdhwr $0, $20 + rdhwr $0, $21 + rdhwr $0, $22 + rdhwr $0, $23 + rdhwr $0, $24 + rdhwr $0, $25 + rdhwr $0, $26 + rdhwr $0, $27 + rdhwr $0, $28 + rdhwr $0, $29 + rdhwr $0, $30 + rdhwr $0, $31 + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/jal-empic-elf-2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/jal-empic-elf-2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/jal-empic-elf-2.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/jal-empic-elf-2.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ -#objdump: -dr --prefix-addresses -mmips:3000 --show-raw-insn +#objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS jal-empic-elf-2 -#as: -mips1 -membedded-pic +#as: -membedded-pic # Test the jal macro harder with -membedded-pic. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/jal-empic-elf-3.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/jal-empic-elf-3.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/jal-empic-elf-3.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/jal-empic-elf-3.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ -#objdump: -dr --prefix-addresses -mmips:3000 --show-raw-insn +#objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS jal-empic-elf-3 -#as: -mips1 -membedded-pic +#as: -membedded-pic # Test the jal macro harder with -membedded-pic. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/jal-empic-elf.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/jal-empic-elf.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/jal-empic-elf.d Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/jal-empic-elf.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ -#objdump: -dr --prefix-addresses -mmips:3000 --show-raw-insn +#objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS jal-empic-elf -#as: -mips1 -membedded-pic +#as: -membedded-pic #source: jal.s # Test the jal macro with -membedded-pic. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/lb-svr4pic.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/lb-svr4pic.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/lb-svr4pic.d Mon May 21 10:37:01 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/lb-svr4pic.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ -#objdump: -dr --prefix-addresses -mmips:3000 +#objdump: -dr --prefix-addresses #name: MIPS lb-svr4pic -#as: -mips1 -KPIC +#as: -KPIC #source: lb-pic.s # Test the lb macro with -KPIC. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/lb.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/lb.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/lb.d Fri Aug 10 14:08:01 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/lb.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,5 @@ -#objdump: -dr --prefix-addresses -mmips:3000 +#objdump: -dr --prefix-addresses #name: MIPS lb -#as: -mips1 # Test the lb macro. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips.exp binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips.exp Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips.exp Tue Jan 21 10:21:33 2003 @@ -2,15 +2,292 @@ # Some generic MIPS tests # +# When adding a new test to this file, try to do the following things: +# +# * If testing assembly and disassembly of code, don't forget to test +# the actual bit encodings of the instructions (using the +# --show-raw-insn flag to objdump). +# +# * Try to run the test for as many architectures as appropriate, +# using the "run_dump_test_arches" or "run_list_test_arches" functions, +# along with the output from a call to "mips_arch_list_matching." +# +# * Be sure to compare the test output before and after your testsuite +# changes, to verify that existing and new tests were run as expected. +# Look for expect ERROR messages in the testsuite .log file to make sure +# the new expect code did not contain errors. + +# To add support for a new CPU to this file, add an appropriate entry +# to the sequence of "mips_arch_create" function calls below, and test +# the result. The new CPU should automatically be used when running +# various tests. If the new CPU is the default CPU for any tool +# targets, make sure the call to "mips_arch_create" reflects that fact. + + # "LOSE" marks information about tests which fail at a particular point # in time, but which are not XFAILed. Either they used to pass # and indicate either regressions or the need to tweak the tests to keep # up the with code, or they are new tests and it is unknown whether or not # they should pass as-is for the given object formats. -proc run_list_test { name opts } { + +# The functions below create and manipulate an "architecture data +# array" which contains entries for each MIPS architecture (or CPU) +# known to these tests. The array contains the following information +# for each architecture, indexed by the name of the architecture +# described by the entry: +# +# displayname: The name of the entry to be used for pretty-printing. +# +# gprsize: The size in bits of General Purpose Registers provided by +# the architecture (must be 32 or 64). +# +# props: A list of text strings which are associated with the +# architecture. These include the architecture name as well as +# information about what instructions the CPU supports. When matching +# based on properties, an additional property is added to the normal +# property list, "gpr" so that tests can match CPUs which +# have GPRs of a specific size. The following properties are most +# useful when matching properties for generic (i.e., not CPU-specific) +# tests: +# +# mips1, mips2, mips3, mips4, mips5, mips32, mips64 +# The architecture includes the instructions defined +# by that MIPS ISA. +# +# mips3d The architecture includes the MIPS-3D ASE. +# +# ror The architecture includes hardware rotate instructions. +# +# gpr32, gpr64 +# The architecture provides 32- or 64-bit General Purpose +# Registers. +# +# as_flags: The assembler flags used when assembling tests for this +# architecture. +# +# objdump_flags: The objdump flags used when disassembling tests for +# this architecture. +# +# Most entries in the architecture array will have values in all of +# the fields above. One entry, "default" represents the default CPU +# based on the target of the assembler being built. If always has +# empty "as_flags" and "objdump_flags." + +# mips_arch_create ARCH GPRSIZE EXTENDS PROPS AS_FLAGS OBJDUMP_FLAGS \ +# (optional:) DEFAULT_FOR_TARGETS +# +# This function creates a new entry in the architecture data array, +# for the architecture or CPU named ARCH, and fills in the entry +# according to the rest of the arguments. +# +# The new entry's property list is initialized to contain ARCH, any +# properties specified by PROPS, and the properties associated with +# the entry specified by EXTENDS. (The new architecture is considered +# to extend the capabilities provided by that architecture.) +# +# If DEFAULT_FOR_TARGETS is specified, it is a list of targets for which +# this architecture is the default architecture. If "istarget" returns +# true for any of the targets in the list, a "default" entry will be +# added to the architecture array which indicates that ARCH is the default +# architecture. +proc mips_arch_create {arch gprsize extends props as_flags objdump_flags + {default_for_targets {}}} { + global mips_arches + + if { [info exists mips_arches($arch)] } { + error "mips_arch_create: arch \"$arch\" already exists" + } + if { $gprsize != 32 && $gprsize != 64 } { + error "mips_arch_create: invalid GPR size $gprsize" + } + + set archdata(displayname) $arch + set archdata(gprsize) $gprsize + set archdata(as_flags) $as_flags + set archdata(objdump_flags) $objdump_flags + set archdata(props) $arch + eval lappend archdata(props) $props + if { [string length $extends] != 0 } { + eval lappend archdata(props) [mips_arch_properties $extends 0] + } + + set mips_arches($arch) [array get archdata] + + # Set as default if appropriate. + foreach target $default_for_targets { + if { [istarget $target] } { + if { [info exists mips_arches(default)] } { + error "mips_arch_create: default arch already exists" + } + + set archdata(displayname) "default = $arch" + set archdata(as_flags) "" + set archdata(objdump_flags) "" + + set mips_arches(default) [array get archdata] + break + } + } +} + +# mips_arch_list_all +# +# This function returns the list of all names of entries in the +# architecture data array (including the default entry, if a default +# is known). +proc mips_arch_list_all {} { + global mips_arches + return [lsort -dictionary [array names mips_arches]] +} + +# mips_arch_data ARCH +# +# This function returns the information associated with ARCH +# in the architecture data array, in "array get" form. +proc mips_arch_data {arch} { + global mips_arches + + if { ! [info exists mips_arches($arch)] } { + error "mips_arch_data: unknown arch \"$arch\"" + } + return $mips_arches($arch) +} + +# mips_arch_displayname ARCH +# +# This function returns the printable name associated with ARCH in +# the architecture data array. +proc mips_arch_displayname {arch} { + array set archdata [mips_arch_data $arch] + return $archdata(displayname) +} + +# mips_arch_properties ARCH (optional:) INCLUDE_GPRSIZE +# +# This function returns the property list associated with ARCH in the +# architecture data array. If INCLUDE_GPRSIZE is non-zero, an additional +# "gpr32" or "gpr64" property will be returned as part of the list based +# on the architecture's GPR size. +proc mips_arch_properties {arch {include_gprsize 1}} { + array set archdata [mips_arch_data $arch] + set props $archdata(props) + if { $include_gprsize } { + lappend props gpr$archdata(gprsize) + } + return $props +} + +# mips_arch_as_flags ARCH +# +# This function returns the assembler flags associated with ARCH in +# the architecture data array. +proc mips_arch_as_flags {arch} { + array set archdata [mips_arch_data $arch] + return $archdata(as_flags) +} + +# mips_arch_objdump_flags ARCH +# +# This function returns the objdump disassembly flags associated with +# ARCH in the architecture data array. +proc mips_arch_objdump_flags {arch} { + array set archdata [mips_arch_data $arch] + return $archdata(objdump_flags) +} + +# mips_arch_matches ARCH PROPMATCHLIST +# +# This function returns non-zero if ARCH matches the set of properties +# described by PROPMATCHLIST. Each entry in PROPMATCHLIST can either +# be the name of a property which must be matched, or "!" followed by +# the name of a property which must not be matched. ARCH matches +# PROPMATCHLIST if and only if all of the conditions specified by +# PROPMATCHLIST are satisfied. +proc mips_arch_matches {arch propmatchlist} { + foreach pm $propmatchlist { + if { [string match {!*} $pm] } { + # fail if present. + set inverted 1 + set p [string range $pm 1 end] + } { + # fail if not present. + set inverted 0 + set p $pm + } + + set loc [lsearch -exact [mips_arch_properties $arch] $p] + + # required-absent and found, or required-present and not found: fail. + if { ($inverted && $loc != -1) || (! $inverted && $loc == -1) } { + return 0 + } + } + return 1 +} + +# mips_arch_list_matching ARGS +# +# This function returns a list of all architectures which match +# the conditions described by its arguments. Its arguments are +# taken as a list and used as the PROPMATCHLIST in a call to +# "mips_arch_matches" for each known architecture. +proc mips_arch_list_matching {args} { + set l "" + foreach arch [mips_arch_list_all] { + # For now, don't match default arch until we know what its + # properties actually are. + if { [string compare $arch default] == 0 + && [string length [mips_arch_properties default]] == 0} { + continue; + } + if { [mips_arch_matches $arch $args] } { + lappend l $arch + } + } + return $l +} + + +# The functions below facilitate running various types of tests. + +# run_dump_test_arch NAME ARCH +# +# Invoke "run_dump_test" for test NAME, with extra assembler and +# disassembler flags to test architecture ARCH. +proc run_dump_test_arch { name arch } { + global subdir + + if [catch {run_dump_test $name \ + "{name {([mips_arch_displayname $arch])}} + {objdump {[mips_arch_objdump_flags $arch]}} + {as {[mips_arch_as_flags $arch]}}"} rv] { + perror "$rv" + untested "$subdir/$name ($arch)" + } +} + +# run_dump_test_arches NAME ARCH_LIST +# +# Invoke "run_dump_test_arch" for test NAME, for each architecture +# listed in ARCH_LIST. +proc run_dump_test_arches { name arch_list } { + foreach arch $arch_list { + run_dump_test_arch "$name" "$arch" + } +} + +# run_list_test NAME OPTS (optional): TESTNAME +# +# Assemble the file "NAME.d" and compare the assembler standard error +# output against the regular expressions given in the file "NAME.l". +# The assembler is passed the flags given in OPTS. If TESTNAME is +# provided, it will be used as the name of the test. +proc run_list_test { name opts {testname {}} } { global srcdir subdir - set testname "MIPS $name" + if { [string length $testname] == 0 } then { + set testname "MIPS $name" + } set file $srcdir/$subdir/$name gas_run ${name}.s $opts ">&dump.out" if { [regexp_diff "dump.out" "${file}.l"] } then { @@ -21,6 +298,76 @@ proc run_list_test { name opts } { pass $testname } +# run_list_test_arch NAME OPTS ARCH +# +# Invoke "run_list_test" for test NAME with options OPTS, with extra +# assembler flags to test architecture ARCH. +proc run_list_test_arch { name opts arch } { + global subdir + + set testname "MIPS $name ([mips_arch_displayname $arch])" + if [catch {run_list_test "$name" "$opts [mips_arch_as_flags $arch]" \ + "$testname"} rv] { + perror "$rv" + untested "$testname" + } +} + +# run_list_test_arches NAME OPTS ARCH_LIST +# +# Invoke "run_list_test_arch" for test NAME with options OPTS, for each +# architecture listed in ARCH_LIST. +proc run_list_test_arches { name opts arch_list } { + foreach arch $arch_list { + run_list_test_arch "$name" "$opts" "$arch" + } +} + + +# Create the architecture data array by providing data for all +# known architectures. +# +# Note that several targets pick default CPU based on ABI. We +# can't easily handle that; do NOT list those targets as defaulting +# to any architecture. +mips_arch_create mips1 32 {} {} \ + { -march=mips1 -mtune=mips1 } { -mmips:3000 } +mips_arch_create mips2 32 mips1 {} \ + { -march=mips2 -mtune=mips2 } { -mmips:6000 } +mips_arch_create mips3 64 mips2 {} \ + { -march=mips3 -mtune=mips3 } { -mmips:4000 } +mips_arch_create mips4 64 mips3 {} \ + { -march=mips4 -mtune=mips4 } { -mmips:8000 } +mips_arch_create mips5 64 mips4 {} \ + { -march=mips5 -mtune=mips5 } { -mmips:mips5 } +mips_arch_create mips32 32 mips2 {} \ + { -march=mips32 -mtune=mips32 } { -mmips:isa32 } \ + { mipsisa32-*-* mipsisa32el-*-* } +mips_arch_create mips32r2 32 mips32 { ror } \ + { -march=mips32r2 -mtune=mips32r2 } \ + { -mmips:isa32r2 } \ + { mipsisa32r2-*-* mipsisa32r2el-*-* } +mips_arch_create mips64 64 mips5 { mips32 } \ + { -march=mips64 -mtune=mips64 } { -mmips:isa64 } \ + { mipsisa64-*-* mipsisa64el-*-* } +mips_arch_create r3000 32 mips1 {} \ + { -march=r3000 -mtune=r3000 } { -mmips:3000 } +mips_arch_create r3900 32 mips1 {} \ + { -march=r3900 -mtune=r3900 } { -mmips:3900 } \ + { mipstx39-*-* mipstx39el-*-* } +mips_arch_create r4000 64 mips3 {} \ + { -march=r4000 -mtune=r4000 } { -mmips:4000 } +mips_arch_create vr5400 64 mips4 { ror } \ + { -march=vr5400 -mtune=vr5400 } { -mmips:5400 } +mips_arch_create sb1 64 mips64 { mips3d } \ + { -march=sb1 -mtune=sb1 } { -mmips:sb1 } \ + { mipsisa64sb1-*-* mipsisa64sb1el-*-* } + + +# +# And now begin the actual tests! +# + if { [istarget mips*-*-*] } then { set no_mips16 0 set elf [expr [istarget *-*-elf*] || [istarget *-*-irix5*] || [istarget *-*-irix6* ] || [istarget *-*-linux*] || [istarget *-*-netbsd*] ] @@ -41,9 +388,9 @@ if { [istarget mips*-*-*] } then { set el "" } - run_dump_test "abs" - run_dump_test "add" - run_dump_test "and" + run_dump_test_arches "abs" [mips_arch_list_matching mips1] + run_dump_test_arches "add" [mips_arch_list_matching mips1] + run_dump_test_arches "and" [mips_arch_list_matching mips1] run_dump_test "break20" run_dump_test "trap20" @@ -51,22 +398,24 @@ if { [istarget mips*-*-*] } then { # See http://sources.redhat.com/ml/binutils/2001-10/msg00418.html for # more information. Not sure if the fixes there are correct; should # branches to external labels be allowed for ECOFF? - run_dump_test "beq" - run_dump_test "bge" - run_dump_test "bgeu" - run_dump_test "blt" - run_dump_test "bltu" - run_dump_test "branch-misc-1" - run_dump_test "branch-misc-2" + # XXX FIXME: the following tests require -mips2 disasm for + # branch-likely instructions. They should be split. + run_dump_test_arches "beq" [mips_arch_list_matching mips2] + run_dump_test_arches "bge" [mips_arch_list_matching mips2] + run_dump_test_arches "bgeu" [mips_arch_list_matching mips2] + run_dump_test_arches "blt" [mips_arch_list_matching mips2] + run_dump_test_arches "bltu" [mips_arch_list_matching mips2] + run_dump_test_arches "branch-misc-1" [mips_arch_list_matching mips1] + run_list_test_arches "branch-misc-2" "" [mips_arch_list_matching mips1] if $ilocks { run_dump_test "div-ilocks" } else { run_dump_test "div" } - run_dump_test "dli" + run_dump_test_arches "dli" [mips_arch_list_matching mips3] if $elf { - run_dump_test "elf-jal" + run_dump_test_arches "elf-jal" [mips_arch_list_matching mips1] } else { run_dump_test "jal" } @@ -76,10 +425,12 @@ if { [istarget mips*-*-*] } then { # It appears that it broke between 2000-03-11 00:00UTC and # 2000-03-12 00:00 UTC. if $ecoff { run_dump_test "jal-empic" } - if $elf { run_dump_test "jal-empic-elf" } - if $elf { run_dump_test "jal-empic-elf-2" } - if $elf { run_dump_test "jal-empic-elf-3" } - run_list_test "jal-range" "" + if $elf { + run_dump_test_arches "jal-empic-elf" [mips_arch_list_matching mips1] + run_dump_test_arches "jal-empic-elf-2" [mips_arch_list_matching mips1] + run_dump_test_arches "jal-empic-elf-3" [mips_arch_list_matching mips1] + } + run_list_test_arches "jal-range" "" [mips_arch_list_matching mips1] if !$aout { run_dump_test "la" } if $elf { run_dump_test "la-svr4pic" } if $elf { run_dump_test "la-xgot" } @@ -87,8 +438,14 @@ if { [istarget mips*-*-*] } then { # Not sure when it first cropped up, but may be related to addition of # "la" -> "addiu" pattern in MIPS opcode table long ago. if $ecoff { run_dump_test "la-empic" } - if !$aout { run_dump_test "lb" } - if $elf { run_dump_test "lb-svr4pic" } + if !$aout { + # XXX FIXME: Has mips2 and later insns with mips1 disassemblies. + # (Should split and then use appropriate arch lists.) + run_dump_test_arches "lb" [mips_arch_list_matching !mips2] + } + if $elf { + run_dump_test_arches "lb-svr4pic" [mips_arch_list_matching mips1] + } if $elf { # Both versions specify the cpu, so we can run both regardless of # the interlocking in the configured default cpu. @@ -110,7 +467,7 @@ if { [istarget mips*-*-*] } then { if $elf { run_dump_test "ld-svr4pic" } if $elf { run_dump_test "ld-xgot" } if $ecoff { run_dump_test "ld-empic" } - run_dump_test "li" + run_dump_test_arches "li" [mips_arch_list_matching mips1] if !$aout { run_dump_test "lifloat" } if $elf { run_dump_test "lif-svr4pic" } if $elf { run_dump_test "lif-xgot" } @@ -118,14 +475,19 @@ if { [istarget mips*-*-*] } then { # It appears that it broke between 2000-03-11 00:00UTC and # 2000-03-12 00:00 UTC. if $ecoff { run_dump_test "lif-empic" } - run_dump_test "mips4" + run_dump_test_arches "mips4" [mips_arch_list_matching mips4] if $ilocks { run_dump_test "mul-ilocks" } else { run_dump_test "mul" } - run_dump_test "rol" - run_dump_test "rol64" + + run_dump_test_arches "rol" [mips_arch_list_matching !ror] + run_dump_test_arches "rol-hw" [mips_arch_list_matching ror] + + run_dump_test_arches "rol64" [mips_arch_list_matching gpr64 !ror] + run_dump_test_arches "rol64-hw" [mips_arch_list_matching gpr64 ror] + if !$aout { run_dump_test "sb" } run_dump_test "trunc" if !$aout { run_dump_test "ulh" } @@ -161,9 +523,17 @@ if { [istarget mips*-*-*] } then { run_dump_test "perfcount" run_dump_test "lineno" run_dump_test "sync" - run_dump_test "mips32" - run_dump_test "mips64" + + run_dump_test_arches "mips32" [mips_arch_list_matching mips32] + + run_dump_test_arches "mips32r2" [mips_arch_list_matching mips32r2] + run_list_test_arches "mips32r2-ill" "" [mips_arch_list_matching mips32r2] + + run_dump_test_arches "mips64" [mips_arch_list_matching mips64] + run_dump_test "mips64-mips3d" + run_dump_test_arches "mips64-mips3d-incl" [mips_arch_list_matching mips3d] + run_dump_test "mips64-mdmx" run_dump_test "sb1-ext-mdmx" run_dump_test "sb1-ext-ps" @@ -193,6 +563,16 @@ if { [istarget mips*-*-*] } then { run_dump_test "elf_e_flags3" run_dump_test "elf_e_flags4" + # Check EF_MIPS_ARCH markings for each supported architecture. + run_dump_test "elf_arch_mips1" + run_dump_test "elf_arch_mips2" + run_dump_test "elf_arch_mips3" + run_dump_test "elf_arch_mips4" + run_dump_test "elf_arch_mips5" + run_dump_test "elf_arch_mips32" + run_dump_test "elf_arch_mips32r2" + run_dump_test "elf_arch_mips64" + # Verify that ASE markings are handled properly. if { !$no_mips16 } { run_dump_test "elf_ase_mips16" } @@ -232,4 +612,31 @@ if { [istarget mips*-*-*] } then { } run_dump_test "elf-consthilo" } + + # tests of objdump's ability to disassemble using different + # register names. + run_dump_test "gpr-names-numeric" + run_dump_test "gpr-names-32" + run_dump_test "gpr-names-n32" + run_dump_test "gpr-names-64" + + run_dump_test "fpr-names-numeric" + run_dump_test "fpr-names-32" + run_dump_test "fpr-names-n32" + run_dump_test "fpr-names-64" + + run_dump_test "cp0-names-numeric" + run_dump_test "cp0-names-mips32" + run_dump_test "cp0-names-mips32r2" + run_dump_test "cp0-names-mips64" + run_dump_test "cp0-names-sb1" + + run_dump_test "cp0sel-names-numeric" + run_dump_test "cp0sel-names-mips32" + run_dump_test "cp0sel-names-mips32r2" + run_dump_test "cp0sel-names-mips64" + run_dump_test "cp0sel-names-sb1" + + run_dump_test "hwr-names-numeric" + run_dump_test "hwr-names-mips32r2" } diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32.d Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,5 @@ -#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa32 +#objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS MIPS32 instructions -#as: -mips32 # Check MIPS32 instruction assembly diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2-ill.l binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2-ill.l --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2-ill.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2-ill.l Tue Jan 21 10:21:33 2003 @@ -0,0 +1,15 @@ +.*: Assembler messages: +.*:12: Error: Improper position \([0-9]*\) +.*:15: Error: Improper position \(32\) +.*:18: Error: Improper extract size \(0, position 0\) +.*:21: Error: Improper extract size \(33, position 0\) +.*:24: Error: Improper extract size \(0, position 0\) +.*:27: Error: Improper extract size \(2, position 31\) +.*:30: Error: Improper position \([0-9]*\) +.*:33: Error: Improper position \(32\) +.*:36: Error: Improper insert size \(0, position 0\) +.*:39: Error: Improper insert size \(33, position 0\) +.*:42: Error: Improper insert size \(0, position 0\) +.*:45: Error: Improper insert size \(2, position 31\) +.*:54: Warning: Float register should be even, was 1 +.*:57: Warning: Float register should be even, was 1 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2-ill.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2-ill.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2-ill.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2-ill.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,60 @@ +# source file to test illegal mips32r2 instructions + + .set noreorder + .set noat + + .text +text_label: + + # insert and extract position/size checks: + + # ext constraint: 0 <= pos < 32 + ext $4, $5, -1, 1 # error + ext $4, $5, 0, 1 + ext $4, $5, 31, 1 + ext $4, $5, 32, 1 # error + + # ext constraint: 0 < size <= 32 + ext $4, $5, 0, 0 # error + ext $4, $5, 0, 1 + ext $4, $5, 0, 32 + ext $4, $5, 0, 33 # error + + # ext constraint: 0 < (pos+size) <= 32 + ext $4, $5, 0, 0 # error + ext $4, $5, 0, 1 + ext $4, $5, 31, 1 + ext $4, $5, 31, 2 # error + + # ins constraint: 0 <= pos < 32 + ins $4, $5, -1, 1 # error + ins $4, $5, 0, 1 + ins $4, $5, 31, 1 + ins $4, $5, 32, 1 # error + + # ins constraint: 0 < size <= 32 + ins $4, $5, 0, 0 # error + ins $4, $5, 0, 1 + ins $4, $5, 0, 32 + ins $4, $5, 0, 33 # error + + # ins constraint: 0 < (pos+size) <= 32 + ins $4, $5, 0, 0 # error + ins $4, $5, 0, 1 + ins $4, $5, 31, 1 + ins $4, $5, 31, 2 # error + + # FP register checks. + # + # Even registers are supported w/ 32-bit FPU, odd + # registers supported only for 64-bit FPU. + # This file tests 32-bit FPU. + + mfhc1 $17, $f0 + mfhc1 $17, $f1 # warn + + mthc1 $17, $f0 + mthc1 $17, $f1 # warn + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,46 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M reg-names=numeric +#name: MIPS MIPS32r2 instructions + +# Check MIPS32 Release 2 (mips32r2) instruction assembly + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 000000c0 ehb +0+0004 <[^>]*> 7ca43980 ext \$4,\$5,0x6,0x8 +0+0008 <[^>]*> 7ca46984 ins \$4,\$5,0x6,0x8 +0+000c <[^>]*> 0100fc09 jalr.hb \$8 +0+0010 <[^>]*> 0120a409 jalr.hb \$20,\$9 +0+0014 <[^>]*> 01000408 jr.hb \$8 +0+0018 <[^>]*> 7c0a003b rdhwr \$10,\$0 +0+001c <[^>]*> 7c0b083b rdhwr \$11,\$1 +0+0020 <[^>]*> 7c0c103b rdhwr \$12,\$2 +0+0024 <[^>]*> 7c0d183b rdhwr \$13,\$3 +0+0028 <[^>]*> 7c0e203b rdhwr \$14,\$4 +0+002c <[^>]*> 7c0f283b rdhwr \$15,\$5 +0+0030 <[^>]*> 002acf02 ror \$25,\$10,0x1c +0+0034 <[^>]*> 002ac902 ror \$25,\$10,0x4 +0+0038 <[^>]*> 0004c823 negu \$25,\$4 +0+003c <[^>]*> 032ac846 rorv \$25,\$10,\$25 +0+0040 <[^>]*> 008ac846 rorv \$25,\$10,\$4 +0+0044 <[^>]*> 008ac846 rorv \$25,\$10,\$4 +0+0048 <[^>]*> 7c073c20 seb \$7,\$7 +0+004c <[^>]*> 7c0a4420 seb \$8,\$10 +0+0050 <[^>]*> 7c073e20 seh \$7,\$7 +0+0054 <[^>]*> 7c0a4620 seh \$8,\$10 +0+0058 <[^>]*> 055f5555 synci 21845\(\$10\) +0+005c <[^>]*> 7c0738a0 wsbh \$7,\$7 +0+0060 <[^>]*> 7c0a40a0 wsbh \$8,\$10 +0+0064 <[^>]*> 41606000 di +0+0068 <[^>]*> 41606000 di +0+006c <[^>]*> 416a6000 di \$10 +0+0070 <[^>]*> 41606020 ei +0+0074 <[^>]*> 41606020 ei +0+0078 <[^>]*> 416a6020 ei \$10 +0+007c <[^>]*> 41595000 rdpgpr \$10,\$25 +0+0080 <[^>]*> 41d95000 wrpgpr \$10,\$25 +0+0084 <[^>]*> 44710000 mfhc1 \$17,\$f0 +0+0088 <[^>]*> 44f10000 mthc1 \$17,\$f0 +0+008c <[^>]*> 48715555 mfhc2 \$17,0x5555 +0+0090 <[^>]*> 48f15555 mthc2 \$17,0x5555 + ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips32r2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips32r2.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,81 @@ +# source file to test assembly of mips32r2 instructions + + .set noreorder + .set noat + + .text +text_label: + + # unprivileged CPU instructions + + ehb + + ext $4, $5, 6, 8 + + ins $4, $5, 6, 8 + + jalr.hb $8 + jalr.hb $20, $9 + + jr.hb $8 + + # Note, further testing of rdhwr is done in hwr-names-mips32r2.d + rdhwr $10, $0 + rdhwr $11, $1 + rdhwr $12, $2 + rdhwr $13, $3 + rdhwr $14, $4 + rdhwr $15, $5 + + # This file checks that in fact HW rotate will + # be used for this arch, and checks assembly + # of the official MIPS mnemonics. (Note that disassembly + # uses the traditional "ror" and "rorv" mnemonics.) + # Additional rotate tests are done by rol-hw.d. + rotl $25, $10, 4 + rotr $25, $10, 4 + rotl $25, $10, $4 + rotr $25, $10, $4 + rotrv $25, $10, $4 + + seb $7 + seb $8, $10 + + seh $7 + seh $8, $10 + + synci 0x5555($10) + + wsbh $7 + wsbh $8, $10 + + # cp0 instructions + + di + di $0 + di $10 + + ei + ei $0 + ei $10 + + rdpgpr $10, $25 + + wrpgpr $10, $25 + + # FPU (cp1) instructions + # + # Even registers are supported w/ 32-bit FPU, odd + # registers supported only for 64-bit FPU. + # Only the 32-bit FPU instructions are tested here. + + mfhc1 $17, $f0 + mthc1 $17, $f0 + + # cp2 instructions + + mfhc2 $17, 0x5555 + mthc2 $17, 0x5555 + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips4.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips4.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips4.d Fri Jul 6 09:26:11 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips4.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,5 @@ -#objdump: -dr --prefix-addresses -mmips:5000 +#objdump: -dr --prefix-addresses #name: MIPS mips4 -#as: -mips4 -mtune=r5000 # Test the mips4 macros. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64-mdmx.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64-mdmx.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64-mdmx.d Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64-mdmx.d Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa64 -#name: MIPS MIPS64 MDMX ASE instructions +#name: MIPS MIPS64 MDMX ASE instructions (-mdmx flag) #as: -mips64 -mdmx # Check MIPS64 MDMX ASE instruction assembly and disassembly diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64-mips3d-incl.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64-mips3d-incl.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64-mips3d-incl.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64-mips3d-incl.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,140 @@ +#objdump: -dr --prefix-addresses --show-raw-insn +#name: MIPS MIPS64 MIPS-3D ASE instructions +#source: mips64-mips3d.s + +# Check MIPS64 MIPS-3D ASE instruction assembly and disassembly +# Same as mips64-mips3d.d, but does not need -mips3d assembler +# flag because the archiectures that use this always include MIPS-3D. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> 46d34118 addr\.ps \$f4,\$f8,\$f19 +0+0004 <[^>]*> 4520fffe bc1any2f \$fcc0,0+0000 +0+0008 <[^>]*> 00000000 nop +0+000c <[^>]*> 4528fffc bc1any2f \$fcc2,0+0000 +0+0010 <[^>]*> 00000000 nop +0+0014 <[^>]*> 4521fffa bc1any2t \$fcc0,0+0000 +0+0018 <[^>]*> 00000000 nop +0+001c <[^>]*> 4531fff8 bc1any2t \$fcc4,0+0000 +0+0020 <[^>]*> 00000000 nop +0+0024 <[^>]*> 4540fff6 bc1any4f \$fcc0,0+0000 +0+0028 <[^>]*> 00000000 nop +0+002c <[^>]*> 4550fff4 bc1any4f \$fcc4,0+0000 +0+0030 <[^>]*> 00000000 nop +0+0034 <[^>]*> 4541fff2 bc1any4t \$fcc0,0+0000 +0+0038 <[^>]*> 00000000 nop +0+003c <[^>]*> 4551fff0 bc1any4t \$fcc4,0+0000 +0+0040 <[^>]*> 00000000 nop +0+0044 <[^>]*> 46334070 cabs\.f\.d \$fcc0,\$f8,\$f19 +0+0048 <[^>]*> 46334270 cabs\.f\.d \$fcc2,\$f8,\$f19 +0+004c <[^>]*> 46134070 cabs\.f\.s \$fcc0,\$f8,\$f19 +0+0050 <[^>]*> 46134270 cabs\.f\.s \$fcc2,\$f8,\$f19 +0+0054 <[^>]*> 46d34070 cabs\.f\.ps \$fcc0,\$f8,\$f19 +0+0058 <[^>]*> 46d34270 cabs\.f\.ps \$fcc2,\$f8,\$f19 +0+005c <[^>]*> 46334071 cabs\.un\.d \$fcc0,\$f8,\$f19 +0+0060 <[^>]*> 46334271 cabs\.un\.d \$fcc2,\$f8,\$f19 +0+0064 <[^>]*> 46134071 cabs\.un\.s \$fcc0,\$f8,\$f19 +0+0068 <[^>]*> 46134271 cabs\.un\.s \$fcc2,\$f8,\$f19 +0+006c <[^>]*> 46d34071 cabs\.un\.ps \$fcc0,\$f8,\$f19 +0+0070 <[^>]*> 46d34271 cabs\.un\.ps \$fcc2,\$f8,\$f19 +0+0074 <[^>]*> 46334072 cabs\.eq\.d \$fcc0,\$f8,\$f19 +0+0078 <[^>]*> 46334272 cabs\.eq\.d \$fcc2,\$f8,\$f19 +0+007c <[^>]*> 46134072 cabs\.eq\.s \$fcc0,\$f8,\$f19 +0+0080 <[^>]*> 46134272 cabs\.eq\.s \$fcc2,\$f8,\$f19 +0+0084 <[^>]*> 46d34072 cabs\.eq\.ps \$fcc0,\$f8,\$f19 +0+0088 <[^>]*> 46d34272 cabs\.eq\.ps \$fcc2,\$f8,\$f19 +0+008c <[^>]*> 46334073 cabs\.ueq\.d \$fcc0,\$f8,\$f19 +0+0090 <[^>]*> 46334273 cabs\.ueq\.d \$fcc2,\$f8,\$f19 +0+0094 <[^>]*> 46134073 cabs\.ueq\.s \$fcc0,\$f8,\$f19 +0+0098 <[^>]*> 46134273 cabs\.ueq\.s \$fcc2,\$f8,\$f19 +0+009c <[^>]*> 46d34073 cabs\.ueq\.ps \$fcc0,\$f8,\$f19 +0+00a0 <[^>]*> 46d34273 cabs\.ueq\.ps \$fcc2,\$f8,\$f19 +0+00a4 <[^>]*> 46334074 cabs\.olt\.d \$fcc0,\$f8,\$f19 +0+00a8 <[^>]*> 46334274 cabs\.olt\.d \$fcc2,\$f8,\$f19 +0+00ac <[^>]*> 46134074 cabs\.olt\.s \$fcc0,\$f8,\$f19 +0+00b0 <[^>]*> 46134274 cabs\.olt\.s \$fcc2,\$f8,\$f19 +0+00b4 <[^>]*> 46d34074 cabs\.olt\.ps \$fcc0,\$f8,\$f19 +0+00b8 <[^>]*> 46d34274 cabs\.olt\.ps \$fcc2,\$f8,\$f19 +0+00bc <[^>]*> 46334075 cabs\.ult\.d \$fcc0,\$f8,\$f19 +0+00c0 <[^>]*> 46334275 cabs\.ult\.d \$fcc2,\$f8,\$f19 +0+00c4 <[^>]*> 46134075 cabs\.ult\.s \$fcc0,\$f8,\$f19 +0+00c8 <[^>]*> 46134275 cabs\.ult\.s \$fcc2,\$f8,\$f19 +0+00cc <[^>]*> 46d34075 cabs\.ult\.ps \$fcc0,\$f8,\$f19 +0+00d0 <[^>]*> 46d34275 cabs\.ult\.ps \$fcc2,\$f8,\$f19 +0+00d4 <[^>]*> 46334076 cabs\.ole\.d \$fcc0,\$f8,\$f19 +0+00d8 <[^>]*> 46334276 cabs\.ole\.d \$fcc2,\$f8,\$f19 +0+00dc <[^>]*> 46134076 cabs\.ole\.s \$fcc0,\$f8,\$f19 +0+00e0 <[^>]*> 46134276 cabs\.ole\.s \$fcc2,\$f8,\$f19 +0+00e4 <[^>]*> 46d34076 cabs\.ole\.ps \$fcc0,\$f8,\$f19 +0+00e8 <[^>]*> 46d34276 cabs\.ole\.ps \$fcc2,\$f8,\$f19 +0+00ec <[^>]*> 46334077 cabs\.ule\.d \$fcc0,\$f8,\$f19 +0+00f0 <[^>]*> 46334277 cabs\.ule\.d \$fcc2,\$f8,\$f19 +0+00f4 <[^>]*> 46134077 cabs\.ule\.s \$fcc0,\$f8,\$f19 +0+00f8 <[^>]*> 46134277 cabs\.ule\.s \$fcc2,\$f8,\$f19 +0+00fc <[^>]*> 46d34077 cabs\.ule\.ps \$fcc0,\$f8,\$f19 +0+0100 <[^>]*> 46d34277 cabs\.ule\.ps \$fcc2,\$f8,\$f19 +0+0104 <[^>]*> 46334078 cabs\.sf\.d \$fcc0,\$f8,\$f19 +0+0108 <[^>]*> 46334278 cabs\.sf\.d \$fcc2,\$f8,\$f19 +0+010c <[^>]*> 46134078 cabs\.sf\.s \$fcc0,\$f8,\$f19 +0+0110 <[^>]*> 46134278 cabs\.sf\.s \$fcc2,\$f8,\$f19 +0+0114 <[^>]*> 46d34078 cabs\.sf\.ps \$fcc0,\$f8,\$f19 +0+0118 <[^>]*> 46d34278 cabs\.sf\.ps \$fcc2,\$f8,\$f19 +0+011c <[^>]*> 46334079 cabs\.ngle\.d \$fcc0,\$f8,\$f19 +0+0120 <[^>]*> 46334279 cabs\.ngle\.d \$fcc2,\$f8,\$f19 +0+0124 <[^>]*> 46134079 cabs\.ngle\.s \$fcc0,\$f8,\$f19 +0+0128 <[^>]*> 46134279 cabs\.ngle\.s \$fcc2,\$f8,\$f19 +0+012c <[^>]*> 46d34079 cabs\.ngle\.ps \$fcc0,\$f8,\$f19 +0+0130 <[^>]*> 46d34279 cabs\.ngle\.ps \$fcc2,\$f8,\$f19 +0+0134 <[^>]*> 4633407a cabs\.seq\.d \$fcc0,\$f8,\$f19 +0+0138 <[^>]*> 4633427a cabs\.seq\.d \$fcc2,\$f8,\$f19 +0+013c <[^>]*> 4613407a cabs\.seq\.s \$fcc0,\$f8,\$f19 +0+0140 <[^>]*> 4613427a cabs\.seq\.s \$fcc2,\$f8,\$f19 +0+0144 <[^>]*> 46d3407a cabs\.seq\.ps \$fcc0,\$f8,\$f19 +0+0148 <[^>]*> 46d3427a cabs\.seq\.ps \$fcc2,\$f8,\$f19 +0+014c <[^>]*> 4633407b cabs\.ngl\.d \$fcc0,\$f8,\$f19 +0+0150 <[^>]*> 4633427b cabs\.ngl\.d \$fcc2,\$f8,\$f19 +0+0154 <[^>]*> 4613407b cabs\.ngl\.s \$fcc0,\$f8,\$f19 +0+0158 <[^>]*> 4613427b cabs\.ngl\.s \$fcc2,\$f8,\$f19 +0+015c <[^>]*> 46d3407b cabs\.ngl\.ps \$fcc0,\$f8,\$f19 +0+0160 <[^>]*> 46d3427b cabs\.ngl\.ps \$fcc2,\$f8,\$f19 +0+0164 <[^>]*> 4633407c cabs\.lt\.d \$fcc0,\$f8,\$f19 +0+0168 <[^>]*> 4633427c cabs\.lt\.d \$fcc2,\$f8,\$f19 +0+016c <[^>]*> 4613407c cabs\.lt\.s \$fcc0,\$f8,\$f19 +0+0170 <[^>]*> 4613427c cabs\.lt\.s \$fcc2,\$f8,\$f19 +0+0174 <[^>]*> 46d3407c cabs\.lt\.ps \$fcc0,\$f8,\$f19 +0+0178 <[^>]*> 46d3427c cabs\.lt\.ps \$fcc2,\$f8,\$f19 +0+017c <[^>]*> 4633407d cabs\.nge\.d \$fcc0,\$f8,\$f19 +0+0180 <[^>]*> 4633427d cabs\.nge\.d \$fcc2,\$f8,\$f19 +0+0184 <[^>]*> 4613407d cabs\.nge\.s \$fcc0,\$f8,\$f19 +0+0188 <[^>]*> 4613427d cabs\.nge\.s \$fcc2,\$f8,\$f19 +0+018c <[^>]*> 46d3407d cabs\.nge\.ps \$fcc0,\$f8,\$f19 +0+0190 <[^>]*> 46d3427d cabs\.nge\.ps \$fcc2,\$f8,\$f19 +0+0194 <[^>]*> 4633407e cabs\.le\.d \$fcc0,\$f8,\$f19 +0+0198 <[^>]*> 4633427e cabs\.le\.d \$fcc2,\$f8,\$f19 +0+019c <[^>]*> 4613407e cabs\.le\.s \$fcc0,\$f8,\$f19 +0+01a0 <[^>]*> 4613427e cabs\.le\.s \$fcc2,\$f8,\$f19 +0+01a4 <[^>]*> 46d3407e cabs\.le\.ps \$fcc0,\$f8,\$f19 +0+01a8 <[^>]*> 46d3427e cabs\.le\.ps \$fcc2,\$f8,\$f19 +0+01ac <[^>]*> 4633407f cabs\.ngt\.d \$fcc0,\$f8,\$f19 +0+01b0 <[^>]*> 4633427f cabs\.ngt\.d \$fcc2,\$f8,\$f19 +0+01b4 <[^>]*> 4613407f cabs\.ngt\.s \$fcc0,\$f8,\$f19 +0+01b8 <[^>]*> 4613427f cabs\.ngt\.s \$fcc2,\$f8,\$f19 +0+01bc <[^>]*> 46d3407f cabs\.ngt\.ps \$fcc0,\$f8,\$f19 +0+01c0 <[^>]*> 46d3427f cabs\.ngt\.ps \$fcc2,\$f8,\$f19 +0+01c4 <[^>]*> 46c09924 cvt\.pw\.ps \$f4,\$f19 +0+01c8 <[^>]*> 46809926 cvt\.ps\.pw \$f4,\$f19 +0+01cc <[^>]*> 46d3411a mulr\.ps \$f4,\$f8,\$f19 +0+01d0 <[^>]*> 46209a1d recip1\.d \$f8,\$f19 +0+01d4 <[^>]*> 46009a1d recip1\.s \$f8,\$f19 +0+01d8 <[^>]*> 46c09a1d recip1\.ps \$f8,\$f19 +0+01dc <[^>]*> 4633411c recip2\.d \$f4,\$f8,\$f19 +0+01e0 <[^>]*> 4613411c recip2\.s \$f4,\$f8,\$f19 +0+01e4 <[^>]*> 46d3411c recip2\.ps \$f4,\$f8,\$f19 +0+01e8 <[^>]*> 46209a1e rsqrt1\.d \$f8,\$f19 +0+01ec <[^>]*> 46009a1e rsqrt1\.s \$f8,\$f19 +0+01f0 <[^>]*> 46c09a1e rsqrt1\.ps \$f8,\$f19 +0+01f4 <[^>]*> 4633411f rsqrt2\.d \$f4,\$f8,\$f19 +0+01f8 <[^>]*> 4613411f rsqrt2\.s \$f4,\$f8,\$f19 +0+01fc <[^>]*> 46d3411f rsqrt2\.ps \$f4,\$f8,\$f19 + \.\.\. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64-mips3d.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64-mips3d.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64-mips3d.d Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64-mips3d.d Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ #objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa64 -#name: MIPS MIPS64 MIPS-3D ASE instructions +#name: MIPS MIPS64 MIPS-3D ASE instructions (-mips3d flag) #as: -mips64 -mips3d # Check MIPS64 MIPS-3D ASE instruction assembly and disassembly diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/mips64.d Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/mips64.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,5 @@ -#objdump: -dr --prefix-addresses --show-raw-insn -mmips:isa64 +#objdump: -dr --prefix-addresses --show-raw-insn #name: MIPS MIPS64 instructions -#as: -mips64 # Check MIPS64 instruction assembly diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol-hw.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol-hw.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol-hw.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol-hw.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,29 @@ +#objdump: -dr --prefix-addresses +#name: MIPS hardware rol/ror +#source: rol.s +#stderr: rol-hw.l + +# Test the rol and ror macros. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> negu at,a1 +0+0004 <[^>]*> rorv a0,a0,at +0+0008 <[^>]*> negu a0,a2 +0+000c <[^>]*> rorv a0,a1,a0 +0+0010 <[^>]*> ror a0,a0,0x1f +0+0014 <[^>]*> ror a0,a1,0x1f +0+0018 <[^>]*> ror a0,a1,0x0 +0+001c <[^>]*> rorv a0,a0,a1 +0+0020 <[^>]*> rorv a0,a1,a2 +0+0024 <[^>]*> ror a0,a0,0x1 +0+0028 <[^>]*> ror a0,a1,0x1 +0+002c <[^>]*> ror a0,a1,0x0 +0+0030 <[^>]*> ror a0,a1,0x0 +0+0034 <[^>]*> ror a0,a1,0x1f +0+0038 <[^>]*> ror a0,a1,0x1 +0+003c <[^>]*> ror a0,a1,0x0 +0+0040 <[^>]*> ror a0,a1,0x1 +0+0044 <[^>]*> ror a0,a1,0x1f + ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol-hw.l binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol-hw.l --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol-hw.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol-hw.l Tue Jan 21 10:21:33 2003 @@ -0,0 +1,2 @@ +.*: Assembler messages: +.*:7: Warning: Macro used \$at after "\.set noat" diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol.d Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ -#objdump: -dr --prefix-addresses -mmips:3000 -#as: -march=r3000 -mtune=r3000 -#name: MIPS R3000 rol +#objdump: -dr --prefix-addresses +#name: MIPS macro rol/ror +#stderr: rol.l # Test the rol and ror macros. @@ -37,4 +37,18 @@ Disassembly of section .text: 0+006c <[^>]*> sll a0,a1,0x1f 0+0070 <[^>]*> or a0,a0,at 0+0074 <[^>]*> srl a0,a1,0x0 +0+0078 <[^>]*> srl a0,a1,0x0 +0+007c <[^>]*> sll at,a1,0x1 +0+0080 <[^>]*> srl a0,a1,0x1f +0+0084 <[^>]*> or a0,a0,at +0+0088 <[^>]*> sll at,a1,0x1f +0+008c <[^>]*> srl a0,a1,0x1 +0+0090 <[^>]*> or a0,a0,at +0+0094 <[^>]*> srl a0,a1,0x0 +0+0098 <[^>]*> srl at,a1,0x1 +0+009c <[^>]*> sll a0,a1,0x1f +0+00a0 <[^>]*> or a0,a0,at +0+00a4 <[^>]*> srl at,a1,0x1f +0+00a8 <[^>]*> sll a0,a1,0x1 +0+00ac <[^>]*> or a0,a0,at ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol.l binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol.l --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol.l Tue Jan 21 10:21:33 2003 @@ -0,0 +1,13 @@ +.*: Assembler messages: +.*:7: Warning: Macro used \$at after "\.set noat" +.*:8: Warning: Macro used \$at after "\.set noat" +.*:9: Warning: Macro used \$at after "\.set noat" +.*:10: Warning: Macro used \$at after "\.set noat" +.*:13: Warning: Macro used \$at after "\.set noat" +.*:14: Warning: Macro used \$at after "\.set noat" +.*:15: Warning: Macro used \$at after "\.set noat" +.*:16: Warning: Macro used \$at after "\.set noat" +.*:20: Warning: Macro used \$at after "\.set noat" +.*:21: Warning: Macro used \$at after "\.set noat" +.*:24: Warning: Macro used \$at after "\.set noat" +.*:25: Warning: Macro used \$at after "\.set noat" diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol.s Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol.s Tue Jan 21 10:21:33 2003 @@ -1,5 +1,8 @@ # Source file used to test the rol and ror macros. + # generate warnings for all uses of AT. + .set noat + foo: rol $4,$5 rol $4,$5,$6 @@ -12,4 +15,13 @@ foo: ror $4,1 ror $4,$5,1 ror $4,$5,0 + + rol $4,$5,32 + rol $4,$5,33 + rol $4,$5,63 + + ror $4,$5,32 + ror $4,$5,33 + ror $4,$5,63 + .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64-hw.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64-hw.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64-hw.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64-hw.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,43 @@ +#objdump: -dr --prefix-addresses +#name: MIPS hardware drol/dror +#source: rol64.s +#stderr: rol64-hw.l + +# Test the drol and dror macros. + +.*: +file format .*mips.* + +Disassembly of section .text: +0+0000 <[^>]*> dnegu at,a1 +0+0004 <[^>]*> drorv a0,a0,at +0+0008 <[^>]*> dnegu a0,a2 +0+000c <[^>]*> drorv a0,a1,a0 +0+0010 <[^>]*> dror32 a0,a0,0x1f +0+0014 <[^>]*> dror a0,a1,0x0 +0+0018 <[^>]*> dror32 a0,a1,0x1f +0+001c <[^>]*> dror32 a0,a1,0x1 +0+0020 <[^>]*> dror32 a0,a1,0x0 +0+0024 <[^>]*> dror a0,a1,0x1f +0+0028 <[^>]*> dror a0,a1,0x1 +0+002c <[^>]*> dror a0,a1,0x0 +0+0030 <[^>]*> drorv a0,a0,a1 +0+0034 <[^>]*> drorv a0,a1,a2 +0+0038 <[^>]*> dror a0,a0,0x1 +0+003c <[^>]*> dror a0,a1,0x0 +0+0040 <[^>]*> dror a0,a1,0x1 +0+0044 <[^>]*> dror a0,a1,0x1f +0+0048 <[^>]*> dror32 a0,a1,0x0 +0+004c <[^>]*> dror32 a0,a1,0x1 +0+0050 <[^>]*> dror32 a0,a1,0x1f +0+0054 <[^>]*> dror a0,a1,0x0 +0+0058 <[^>]*> dror32 a0,a1,0x1f +0+005c <[^>]*> dror32 a0,a1,0x1 +0+0060 <[^>]*> dror32 a0,a1,0x0 +0+0064 <[^>]*> dror a0,a1,0x1f +0+0068 <[^>]*> dror a0,a1,0x1 +0+006c <[^>]*> dror a0,a1,0x1 +0+0070 <[^>]*> dror a0,a1,0x1f +0+0074 <[^>]*> dror32 a0,a1,0x0 +0+0078 <[^>]*> dror32 a0,a1,0x1 +0+007c <[^>]*> dror32 a0,a1,0x1f + ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64-hw.l binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64-hw.l --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64-hw.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64-hw.l Tue Jan 21 10:21:33 2003 @@ -0,0 +1,2 @@ +.*: Assembler messages: +.*:7: Warning: Macro used \$at after "\.set noat" diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64.d binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64.d Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64.d Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ -#objdump: -dr --prefix-addresses -mmips:4000 -#as: -march=r4000 -mtune=r4000 -#name: MIPS R4000 drol +#objdump: -dr --prefix-addresses +#name: MIPS macro drol/dror +#stderr: rol64.l # Test the drol and dror macros. @@ -63,4 +63,34 @@ Disassembly of section .text: 0+00d4 <[^>]*> dsll a0,a1,0x1 0+00d8 <[^>]*> or a0,a0,at 0+00dc <[^>]*> dsrl a0,a1,0x0 +0+00e0 <[^>]*> dsll at,a1,0x1 +0+00e4 <[^>]*> dsrl32 a0,a1,0x1f +0+00e8 <[^>]*> or a0,a0,at +0+00ec <[^>]*> dsll at,a1,0x1f +0+00f0 <[^>]*> dsrl32 a0,a1,0x1 +0+00f4 <[^>]*> or a0,a0,at +0+00f8 <[^>]*> dsll32 at,a1,0x0 +0+00fc <[^>]*> dsrl32 a0,a1,0x0 +0+0100 <[^>]*> or a0,a0,at +0+0104 <[^>]*> dsll32 at,a1,0x1 +0+0108 <[^>]*> dsrl a0,a1,0x1f +0+010c <[^>]*> or a0,a0,at +0+0110 <[^>]*> dsll32 at,a1,0x1f +0+0114 <[^>]*> dsrl a0,a1,0x1 +0+0118 <[^>]*> or a0,a0,at +0+011c <[^>]*> dsrl at,a1,0x1 +0+0120 <[^>]*> dsll32 a0,a1,0x1f +0+0124 <[^>]*> or a0,a0,at +0+0128 <[^>]*> dsrl at,a1,0x1f +0+012c <[^>]*> dsll32 a0,a1,0x1 +0+0130 <[^>]*> or a0,a0,at +0+0134 <[^>]*> dsrl32 at,a1,0x0 +0+0138 <[^>]*> dsll32 a0,a1,0x0 +0+013c <[^>]*> or a0,a0,at +0+0140 <[^>]*> dsrl32 at,a1,0x1 +0+0144 <[^>]*> dsll a0,a1,0x1f +0+0148 <[^>]*> or a0,a0,at +0+014c <[^>]*> dsrl32 at,a1,0x1f +0+0150 <[^>]*> dsll a0,a1,0x1 +0+0154 <[^>]*> or a0,a0,at ... diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64.l binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64.l --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64.l Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64.l Tue Jan 21 10:21:33 2003 @@ -0,0 +1,27 @@ +.*: Assembler messages: +.*:7: Warning: Macro used \$at after "\.set noat" +.*:8: Warning: Macro used \$at after "\.set noat" +.*:9: Warning: Macro used \$at after "\.set noat" +.*:11: Warning: Macro used \$at after "\.set noat" +.*:12: Warning: Macro used \$at after "\.set noat" +.*:13: Warning: Macro used \$at after "\.set noat" +.*:14: Warning: Macro used \$at after "\.set noat" +.*:15: Warning: Macro used \$at after "\.set noat" +.*:18: Warning: Macro used \$at after "\.set noat" +.*:19: Warning: Macro used \$at after "\.set noat" +.*:20: Warning: Macro used \$at after "\.set noat" +.*:22: Warning: Macro used \$at after "\.set noat" +.*:23: Warning: Macro used \$at after "\.set noat" +.*:24: Warning: Macro used \$at after "\.set noat" +.*:25: Warning: Macro used \$at after "\.set noat" +.*:26: Warning: Macro used \$at after "\.set noat" +.*:29: Warning: Macro used \$at after "\.set noat" +.*:30: Warning: Macro used \$at after "\.set noat" +.*:31: Warning: Macro used \$at after "\.set noat" +.*:32: Warning: Macro used \$at after "\.set noat" +.*:33: Warning: Macro used \$at after "\.set noat" +.*:35: Warning: Macro used \$at after "\.set noat" +.*:36: Warning: Macro used \$at after "\.set noat" +.*:37: Warning: Macro used \$at after "\.set noat" +.*:38: Warning: Macro used \$at after "\.set noat" +.*:39: Warning: Macro used \$at after "\.set noat" diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64.s binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64.s --- binutils-2.13.90.0.16/gas/testsuite/gas/mips/rol64.s Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/mips/rol64.s Tue Jan 21 10:21:33 2003 @@ -1,5 +1,8 @@ # Source file used to test the drol and dror macros. + # generate warnings for all uses of AT. + .set noat + foo: drol $4,$5 drol $4,$5,$6 @@ -23,5 +26,17 @@ foo: dror $4,$5,63 dror $4,$5,64 + drol $4,$5,65 + drol $4,$5,95 + drol $4,$5,96 + drol $4,$5,97 + drol $4,$5,127 + + dror $4,$5,65 + dror $4,$5,95 + dror $4,$5,96 + dror $4,$5,97 + dror $4,$5,127 + # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... .space 8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/msp430/msp430.exp binutils-2.13.90.0.18/gas/testsuite/gas/msp430/msp430.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/msp430/msp430.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/msp430/msp430.exp Tue Jan 21 10:21:33 2003 @@ -0,0 +1,20 @@ +# +# msp430 tests +# +proc run_list_test { name opts } { + global srcdir subdir + set testname "msp430 $name" + set file $srcdir/$subdir/$name + gas_run ${name}.s $opts ">&dump.out" + if { [regexp_diff "dump.out" "${file}.l"] } then { + fail $testname + verbose "output is [file_contents "dump.out"]" 2 + exit + return + } + pass $testname +} + +if [expr [istarget "msp430-*-*"]] then { + run_dump_test "opcode" +} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/msp430/opcode.d binutils-2.13.90.0.18/gas/testsuite/gas/msp430/opcode.d --- binutils-2.13.90.0.16/gas/testsuite/gas/msp430/opcode.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/msp430/opcode.d Tue Jan 21 10:21:33 2003 @@ -0,0 +1,45 @@ +#objdump: -d --prefix-addresses --show-raw-insn +#name: MSP430 basic instructions + +.*: +file format .*msp.* + +Disassembly of section .text: +0+000 <[^>]*> 1b f3 and #1, r11 ;r3 As==01 +0+002 <[^>]*> 3a e3 inv r10 ; +0+004 <[^>]*> 3b e0 ff 00 xor #255, r11 ;#0x00ff +0+008 <[^>]*> 3c d2 bis #8, r12 ;r2 As==11 +0+00a <[^>]*> 3d b0 10 00 bit #16, r13 ;#0x0010 +0+00e <[^>]*> 3e c0 a0 00 bic #160, r14 ;#0x00a0 +0+012 <[^>]*> 0f 93 cmp #0, r15 ;r3 As==00 +0+014 <[^>]*> 1a 83 dec r10 ; +0+016 <[^>]*> 0b 73 sbc r11 ; +0+018 <[^>]*> 1c 53 inc r12 ; +0+01a <[^>]*> 2d 63 addc #2, r13 ;r3 As==10 +0+01c <[^>]*> 0e 12 push r14 ; +0+01e <[^>]*> 3f 41 pop r15 ; +0+020 <[^>]*> 8a 11 sxt r10 ; +0+022 <[^>]*> 0b 11 rra r11 ; +0+024 <[^>]*> 8c 10 swpb r12 ; +0+026 <[^>]*> 0d 10 rrc r13 ; +0+028 <[^>]*> 30 41 ret +0+02a <[^>]*> 31 40 00 00 mov #0, r1 ;#0x0000 +0+02e <[^>]*> b0 12 00 00 call #0 ;#0x0000 +0+032 <[^>]*> 1e 42 00 00 mov &0x0000,r14 ;0x0000 +0+036 <[^>]*> 0f 4e mov r14, r15 ; +0+038 <[^>]*> 0f 5f rla r15 ; +0+03a <[^>]*> 0f 7f subc r15, r15 ; +0+03c <[^>]*> 3f e3 inv r15 ; +0+03e <[^>]*> b0 12 00 00 call #0 ;#0x0000 +0+042 <[^>]*> 82 4e 00 00 mov r14, &0x0000 ; +0+046 <[^>]*> 82 4f 00 00 mov r15, &0x0000 ; +0+04a <[^>]*> 1e 42 00 00 mov &0x0000,r14 ;0x0000 +0+04e <[^>]*> 0f 4e mov r14, r15 ; +0+050 <[^>]*> 0f 5f rla r15 ; +0+052 <[^>]*> 0f 7f subc r15, r15 ; +0+054 <[^>]*> 3f e3 inv r15 ; +0+056 <[^>]*> b0 12 00 00 call #0 ;#0x0000 +0+05a <[^>]*> 82 4e 00 00 mov r14, &0x0000 ; +0+05e <[^>]*> 82 4f 00 00 mov r15, &0x0000 ; +0+062 <[^>]*> 3f 40 f0 00 mov #240, r15 ;#0x00f0 +0+066 <[^>]*> 30 40 00 00 br #0x0000 ; + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/msp430/opcode.s binutils-2.13.90.0.18/gas/testsuite/gas/msp430/opcode.s --- binutils-2.13.90.0.16/gas/testsuite/gas/msp430/opcode.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gas/testsuite/gas/msp430/opcode.s Tue Jan 21 10:21:33 2003 @@ -0,0 +1,54 @@ + .arch msp430x123 + .text + .p2align 1,0 + +.global foo +foo: + and #1, r11 + inv r10 + xor #0x00ff, r11 + bis #8, r12 + bit #0x10, r13 + bic #0xa0, r14 + cmp #0, r15 + sub #1, r10 + subc #0, r11 + add #1, r12 + addc #2, r13 + push r14 + pop r15 + sxt r10 + rra r11 + swpb r12 + rrc r13 + ret + + .p2align 1,0 +.global main + .type main,@function +main: + mov #(__stack-0), r1 + call #foo + mov &a, r14 + mov r14, r15 + rla r15 + subc r15, r15 + inv r15 + call #__floatsisf + mov r14, &c + mov r15, &c+2 + mov &b, r14 + mov r14, r15 + rla r15 + subc r15, r15 + inv r15 + call #__floatsisf + mov r14, &d + mov r15, &d+2 + mov #llo(240), r15 + br #__stop_progExec__ + .comm a,2,2 + .comm b,2,2 + .comm c,4,2 + .comm d,4,2 + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ppc/booke.d binutils-2.13.90.0.18/gas/testsuite/gas/ppc/booke.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ppc/booke.d Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ppc/booke.d Mon Dec 16 12:22:53 2002 @@ -134,7 +134,7 @@ Disassembly of section \.text: 1a0: 7c aa 3a 86 mfdcr r5,234 1a4: 7c e6 03 06 mtdcrx r6,r7 1a8: 7d 10 6b 86 mtdcr 432,r8 - 1ac: 7c 00 04 ac sync + 1ac: 7c 00 04 ac msync 1b0: 7c 09 55 ec dcba r9,r10 - 1b4: 7c 00 06 ac eieio + 1b4: 7c 00 06 ac mbar 0 Disassembly of section \.data: diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/ppc/e500.d binutils-2.13.90.0.18/gas/testsuite/gas/ppc/e500.d --- binutils-2.13.90.0.16/gas/testsuite/gas/ppc/e500.d Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/ppc/e500.d Mon Dec 16 12:22:53 2002 @@ -13,8 +13,8 @@ Disassembly of section \.text: c: 7d 4b 61 0c dcbtstls 10,r11,r12 10: 7d ae 7b cc icbtls 13,r14,r15 14: 7e 11 91 cc icblc 16,r17,r18 - 18: 7c 89 43 9c mtpmr r41,r4 - 1c: 7c ab 52 9c mfpmr r5,r43 + 18: 7c 89 33 9c mtpmr 201,r4 + 1c: 7c ab 32 9c mfpmr r5,203 20: 7c 00 04 0c bblels 24: 7c 00 04 4c bbelr 28: 7d 00 83 a6 mtspefscr r8 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc.d binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc.d --- binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc.d Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc.d Tue Jan 21 10:21:33 2003 @@ -28,4 +28,18 @@ Disassembly of section .text: [ ]*2c: R_390_PC16DBL test_R_390_PC16DBL\+0x2 2e: a7 e5 00 00 [ ]*bras %r14,2e [ ]*30: R_390_PC16DBL test_R_390_PLT16DBL\+0x2 - 32: 07 07 [ ]*bcr 0,%r7 + 32: a7 08 00 00 [ ]*lhi %r0,0 +[ ]*34: R_390_GOTOFF16 test_R_390_GOTOFF16 + 36: 00 00 00 00 [ ]*.long 0x00000000 +[ ]*36: R_390_GOTOFF32 test_R_390_GOTOFF32 + 3a: a7 08 00 00 [ ]*lhi %r0,0 +[ ]*3c: R_390_PLTOFF16 test_R_390_PLTOFF16 + 3e: 00 00 00 00 [ ]*.long 0x00000000 +[ ]*3e: R_390_PLTOFF32 test_R_390_PLTOFF32 + 42: 58 01 20 00 [ ]*l %r0,0\(%r1,%r2\) +[ ]*44: R_390_GOTPLT12 test_R_390_GOTPLT12 + 46: a7 08 00 00 [ ]*lhi %r0,0 +[ ]*48: R_390_GOTPLT16 test_R_390_GOTPLT16 + 4a: 00 00 00 00 [ ]*.long 0x00000000 +[ ]*4a: R_390_GOTPLT32 test_R_390_GOTPLT32 + 4e: 07 07 [ ]*bcr 0,%r7 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc.s binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc.s --- binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc.s Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc.s Tue Jan 21 10:21:33 2003 @@ -12,3 +12,10 @@ foo: lhi %r0,test_R_390_PC16-foo bras %r14,test_R_390_PC16DBL bras %r14,test_R_390_PLT16DBL + lhi %r0,test_R_390_GOTOFF16@GOTOFF + .long test_R_390_GOTOFF32@GOTOFF + lhi %r0,test_R_390_PLTOFF16@PLTOFF + .long test_R_390_PLTOFF32@PLTOFF + l %r0,test_R_390_GOTPLT12@GOTPLT(%r1,%r2) + lhi %r0,test_R_390_GOTPLT16@GOTPLT + .long test_R_390_GOTPLT32@GOTPLT diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc64.d binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc64.d --- binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc64.d Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc64.d Tue Jan 21 10:21:33 2003 @@ -17,4 +17,10 @@ Disassembly of section .text: [ ]*24: R_390_PLT64 test_R_390_PLT64 2c: c0 10 00 00 00 00 [ ]*larl %r1,2c [ ]*2e: R_390_GOTENT test_R_390_GOTENT\+0x2 - 32: 07 07 [ ]*bcr 0,%r7 +[ ]*... +[ ]*32: R_390_GOTOFF64 test_R_390_GOTOFF64 +[ ]*3a: R_390_PLTOFF64 test_R_390_PLTOFF64 +[ ]*42: R_390_GOTPLT64 test_R_390_GOTPLT64 + 4a: c0 10 00 00 00 00 [ ]*larl %r1,4a +[ ]*4c: R_390_GOTPLTENT test_R_390_GOTPLTENT\+0x2 + diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc64.s binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc64.s --- binutils-2.13.90.0.16/gas/testsuite/gas/s390/reloc64.s Mon Oct 1 15:25:25 2001 +++ binutils-2.13.90.0.18/gas/testsuite/gas/s390/reloc64.s Tue Jan 21 10:21:33 2003 @@ -7,3 +7,7 @@ foo: .quad test_R_390_GOT64@GOT .quad test_R_390_PLT64@PLT larl %r1,test_R_390_GOTENT@GOT + .quad test_R_390_GOTOFF64@GOTOFF + .quad test_R_390_PLTOFF64@PLTOFF + .quad test_R_390_GOTPLT64@GOTPLT + larl %r1,test_R_390_GOTPLTENT@GOTPLT diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/sh/pic.d binutils-2.13.90.0.18/gas/testsuite/gas/sh/pic.d --- binutils-2.13.90.0.16/gas/testsuite/gas/sh/pic.d Thu Feb 7 10:21:04 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/sh/pic.d Mon Dec 16 12:22:53 2002 @@ -38,3 +38,6 @@ Disassembly of section \.text: 0x00000040 00 00 \.word 0x0000 40: R_SH_PLT32 foo 0x00000042 00 14 mov\.b r1,@\(r0,r0\) +0x00000044 00 00 \.word 0x0000 + 44: R_SH_PLT32 foo +0x00000046 00 1e mov\.l @\(r0,r1\),r0 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/sh/pic.s binutils-2.13.90.0.18/gas/testsuite/gas/sh/pic.s --- binutils-2.13.90.0.16/gas/testsuite/gas/sh/pic.s Thu Feb 7 10:21:04 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/sh/pic.s Mon Dec 16 12:22:53 2002 @@ -39,3 +39,5 @@ .long foo@PLT + . - (.LPLTcall_old + 2) .Lfooplt_new: .long foo@PLT - (.LPLTcall_new + 2 - .) +.Lfooplt_old2: + .long foo@PLT + . - 2 - .LPLTcall_old diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/sparc/sparc.exp binutils-2.13.90.0.18/gas/testsuite/gas/sparc/sparc.exp --- binutils-2.13.90.0.16/gas/testsuite/gas/sparc/sparc.exp Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/sparc/sparc.exp Tue Jan 21 10:21:33 2003 @@ -21,6 +21,7 @@ proc sparc_elf_setup { } { setup_xfail "sparc*-fujitsu-none" "sparc*-*-*n*bsd*" setup_xfail "sparc*-*-coff" "sparc*-*-lynxos*" clear_xfail "sparc64*-*-*n*bsd*" + clear_xfail "sparc*-*-netbsdelf*" } if [istarget sparc*-*-*] { diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/allinsn.d binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/allinsn.d --- binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/allinsn.d Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/allinsn.d Tue Jan 21 10:21:33 2003 @@ -1232,3 +1232,111 @@ Disassembly of section \.text: 9ca: c1 15 callr 0xf8c 9cc: 53 16 callr 0x1020 9ce: d3 13 callr 0xda2 + +000009d0 : + 9d0: 08 70 00 00 mov\.b r0,\(r0,0\) + 9d2: R_XSTORMY16_12 extsym + 9d4: ff 71 00 00 mov\.w r7,\(r15,0\) + 9d6: R_XSTORMY16_12 extsym\+0xffffffff + 9d8: 8c 71 00 00 mov\.w r4,\(r8,0\) + 9da: R_XSTORMY16_12 extsym\+0xfffff800 + 9dc: 7b 70 00 00 mov\.b r3,\(r7,0\) + 9de: R_XSTORMY16_12 extsym\+0x7ff + 9e0: 19 71 00 00 mov\.w r1,\(r1,0\) + 9e2: R_XSTORMY16_12 extsym\+0x1 + 9e4: 8e 71 00 00 mov\.w r6,\(r8,0\) + 9e6: R_XSTORMY16_12 extsym\+0xfffffe3c + 9e8: bc 71 00 00 mov\.w r4,\(r11,0\) + 9ea: R_XSTORMY16_12 extsym\+0x23c + 9ec: 19 70 00 00 mov\.b r1,\(r1,0\) + 9ee: R_XSTORMY16_12 extsym\+0xfffff94a + +000009f0 : + 9f0: 08 60 00 00 mov\.b r0,\(r0\+\+,0\) + 9f2: R_XSTORMY16_12 extsym + 9f4: ff 61 00 00 mov\.w r7,\(r15\+\+,0\) + 9f6: R_XSTORMY16_12 extsym\+0xffffffff + 9f8: 8c 61 00 00 mov\.w r4,\(r8\+\+,0\) + 9fa: R_XSTORMY16_12 extsym\+0xfffff800 + 9fc: 7b 60 00 00 mov\.b r3,\(r7\+\+,0\) + 9fe: R_XSTORMY16_12 extsym\+0x7ff + a00: 19 61 00 00 mov\.w r1,\(r1\+\+,0\) + a02: R_XSTORMY16_12 extsym\+0x1 + a04: 0e 61 00 00 mov\.w r6,\(r0\+\+,0\) + a06: R_XSTORMY16_12 extsym\+0xffffffc0 + a08: ff 60 00 00 mov\.b r7,\(r15\+\+,0\) + a0a: R_XSTORMY16_12 extsym\+0x424 + a0c: 78 60 00 00 mov\.b r0,\(r7\+\+,0\) + a0e: R_XSTORMY16_12 extsym\+0x34f + +00000a10 : + a10: 08 68 00 00 mov\.b r0,\(--r0,0\) + a12: R_XSTORMY16_12 extsym + a14: ff 69 00 00 mov\.w r7,\(--r15,0\) + a16: R_XSTORMY16_12 extsym\+0xffffffff + a18: 8c 69 00 00 mov\.w r4,\(--r8,0\) + a1a: R_XSTORMY16_12 extsym\+0xfffff800 + a1c: 7b 68 00 00 mov\.b r3,\(--r7,0\) + a1e: R_XSTORMY16_12 extsym\+0x7ff + a20: 19 69 00 00 mov\.w r1,\(--r1,0\) + a22: R_XSTORMY16_12 extsym\+0x1 + a24: f8 69 00 00 mov\.w r0,\(--r15,0\) + a26: R_XSTORMY16_12 extsym\+0x6f4 + a28: 1e 69 00 00 mov\.w r6,\(--r1,0\) + a2a: R_XSTORMY16_12 extsym\+0x5e2 + a2c: 3f 69 00 00 mov\.w r7,\(--r3,0\) + a2e: R_XSTORMY16_12 extsym\+0xfffff80f + +00000a30 : + a30: 08 72 00 00 mov\.b \(r0,0\),r0 + a32: R_XSTORMY16_12 extsym + a34: ff 73 00 00 mov\.w \(r15,0\),r7 + a36: R_XSTORMY16_12 extsym\+0xffffffff + a38: 8c 73 00 00 mov\.w \(r8,0\),r4 + a3a: R_XSTORMY16_12 extsym\+0xfffff800 + a3c: 7b 72 00 00 mov\.b \(r7,0\),r3 + a3e: R_XSTORMY16_12 extsym\+0x7ff + a40: 19 73 00 00 mov\.w \(r1,0\),r1 + a42: R_XSTORMY16_12 extsym\+0x1 + a44: 7d 73 00 00 mov\.w \(r7,0\),r5 + a46: R_XSTORMY16_12 extsym\+0x79c + a48: 3c 72 00 00 mov\.b \(r3,0\),r4 + a4a: R_XSTORMY16_12 extsym\+0xfffffcb4 + a4c: f8 73 00 00 mov\.w \(r15,0\),r0 + a4e: R_XSTORMY16_12 extsym\+0x6a8 + +00000a50 : + a50: 08 62 00 00 mov\.b \(r0\+\+,0\),r0 + a52: R_XSTORMY16_12 extsym + a54: ff 63 00 00 mov\.w \(r15\+\+,0\),r7 + a56: R_XSTORMY16_12 extsym\+0xffffffff + a58: 8c 63 00 00 mov\.w \(r8\+\+,0\),r4 + a5a: R_XSTORMY16_12 extsym\+0xfffff800 + a5c: 7b 62 00 00 mov\.b \(r7\+\+,0\),r3 + a5e: R_XSTORMY16_12 extsym\+0x7ff + a60: 19 63 00 00 mov\.w \(r1\+\+,0\),r1 + a62: R_XSTORMY16_12 extsym\+0x1 + a64: 2f 63 00 00 mov\.w \(r2\+\+,0\),r7 + a66: R_XSTORMY16_12 extsym\+0xffffff50 + a68: 8c 63 00 00 mov\.w \(r8\+\+,0\),r4 + a6a: R_XSTORMY16_12 extsym\+0x56d + a6c: 38 62 00 00 mov\.b \(r3\+\+,0\),r0 + a6e: R_XSTORMY16_12 extsym\+0x2f + +00000a70 : + a70: 08 6a 00 00 mov\.b \(--r0,0\),r0 + a72: R_XSTORMY16_12 extsym + a74: ff 6b 00 00 mov\.w \(--r15,0\),r7 + a76: R_XSTORMY16_12 extsym\+0xffffffff + a78: 8c 6b 00 00 mov\.w \(--r8,0\),r4 + a7a: R_XSTORMY16_12 extsym\+0xfffff800 + a7c: 7b 6a 00 00 mov\.b \(--r7,0\),r3 + a7e: R_XSTORMY16_12 extsym\+0x7ff + a80: 19 6b 00 00 mov\.w \(--r1,0\),r1 + a82: R_XSTORMY16_12 extsym\+0x1 + a84: 8c 6a 00 00 mov\.b \(--r8,0\),r4 + a86: R_XSTORMY16_12 extsym\+0x3ec + a88: ea 6b 00 00 mov\.w \(--r14,0\),r2 + a8a: R_XSTORMY16_12 extsym\+0xfffffa5c + a8c: 5c 6a 00 00 mov\.b \(--r5,0\),r4 + a8e: R_XSTORMY16_12 extsym\+0xfffffc61 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/allinsn.s binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/allinsn.s --- binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/allinsn.s Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/allinsn.s Tue Jan 21 10:21:33 2003 @@ -1360,3 +1360,68 @@ callrimm: callr 1472+(.+2) callr 1618+(.+2) callr 978+(.+2) + +movgrgrsi: + mov.b r0,(r0,extsym) + mov.w r7,(r15,extsym-1) + mov.w r4,(r8,extsym-2048) + mov.b r3,(r7,extsym+2047) + mov.w r1,(r1,extsym+1) + mov.w r6,(r8,extsym-452) + mov.w r4,(r11,extsym+572) + mov.b r1,(r1,extsym-1718) + .text + .global movgrgriipostinc +movgrgrsipostinc: + mov.b r0,(r0++,extsym) + mov.w r7,(r15++,extsym-1) + mov.w r4,(r8++,extsym-2048) + mov.b r3,(r7++,extsym+2047) + mov.w r1,(r1++,extsym+1) + mov.w r6,(r0++,extsym-64) + mov.b r7,(r15++,extsym+1060) + mov.b r0,(r7++,extsym+847) + .text + .global movgrgriipredec +movgrgrsipredec: + mov.b r0,(--r0,extsym) + mov.w r7,(--r15,extsym-1) + mov.w r4,(--r8,extsym-2048) + mov.b r3,(--r7,extsym+2047) + mov.w r1,(--r1,extsym+1) + mov.w r0,(--r15,extsym+1780) + mov.w r6,(--r1,extsym+1506) + mov.w r7,(--r3,extsym-2033) + .text + .global movgriigr +movgrsigr: + mov.b (r0,extsym),r0 + mov.w (r15,extsym-1),r7 + mov.w (r8,extsym-2048),r4 + mov.b (r7,extsym+2047),r3 + mov.w (r1,extsym+1),r1 + mov.w (r7,extsym+1948),r5 + mov.b (r3,extsym-844),r4 + mov.w (r15,extsym+1704),r0 + .text + .global movgriipostincgr +movgrsipostincgr: + mov.b (r0++,extsym),r0 + mov.w (r15++,extsym-1),r7 + mov.w (r8++,extsym-2048),r4 + mov.b (r7++,extsym+2047),r3 + mov.w (r1++,extsym+1),r1 + mov.w (r2++,extsym-176),r7 + mov.w (r8++,extsym+1389),r4 + mov.b (r3++,extsym+47),r0 + .text + .global movgriipredecgr +movgrsipredecgr: + mov.b (--r0,extsym),r0 + mov.w (--r15,extsym-1),r7 + mov.w (--r8,extsym-2048),r4 + mov.b (--r7,extsym+2047),r3 + mov.w (--r1,extsym+1),r1 + mov.b (--r8,extsym+1004),r4 + mov.w (--r14,extsym-1444),r2 + mov.b (--r5,extsym-927),r4 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/allinsn.sh binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/allinsn.sh --- binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/allinsn.sh Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/allinsn.sh Tue Jan 21 10:21:33 2003 @@ -1399,6 +1399,71 @@ callrimm: callr 1472+(.+2) callr 1618+(.+2) callr 978+(.+2) + +movgrgrsi: + mov.b r0,(r0,extsym) + mov.w r7,(r15,extsym-1) + mov.w r4,(r8,extsym-2048) + mov.b r3,(r7,extsym+2047) + mov.w r1,(r1,extsym+1) + mov.w r6,(r8,extsym-452) + mov.w r4,(r11,extsym+572) + mov.b r1,(r1,extsym-1718) + .text + .global movgrgriipostinc +movgrgrsipostinc: + mov.b r0,(r0++,extsym) + mov.w r7,(r15++,extsym-1) + mov.w r4,(r8++,extsym-2048) + mov.b r3,(r7++,extsym+2047) + mov.w r1,(r1++,extsym+1) + mov.w r6,(r0++,extsym-64) + mov.b r7,(r15++,extsym+1060) + mov.b r0,(r7++,extsym+847) + .text + .global movgrgriipredec +movgrgrsipredec: + mov.b r0,(--r0,extsym) + mov.w r7,(--r15,extsym-1) + mov.w r4,(--r8,extsym-2048) + mov.b r3,(--r7,extsym+2047) + mov.w r1,(--r1,extsym+1) + mov.w r0,(--r15,extsym+1780) + mov.w r6,(--r1,extsym+1506) + mov.w r7,(--r3,extsym-2033) + .text + .global movgriigr +movgrsigr: + mov.b (r0,extsym),r0 + mov.w (r15,extsym-1),r7 + mov.w (r8,extsym-2048),r4 + mov.b (r7,extsym+2047),r3 + mov.w (r1,extsym+1),r1 + mov.w (r7,extsym+1948),r5 + mov.b (r3,extsym-844),r4 + mov.w (r15,extsym+1704),r0 + .text + .global movgriipostincgr +movgrsipostincgr: + mov.b (r0++,extsym),r0 + mov.w (r15++,extsym-1),r7 + mov.w (r8++,extsym-2048),r4 + mov.b (r7++,extsym+2047),r3 + mov.w (r1++,extsym+1),r1 + mov.w (r2++,extsym-176),r7 + mov.w (r8++,extsym+1389),r4 + mov.b (r3++,extsym+47),r0 + .text + .global movgriipredecgr +movgrsipredecgr: + mov.b (--r0,extsym),r0 + mov.w (--r15,extsym-1),r7 + mov.w (--r8,extsym-2048),r4 + mov.b (--r7,extsym+2047),r3 + mov.w (--r1,extsym+1),r1 + mov.b (--r8,extsym+1004),r4 + mov.w (--r14,extsym-1444),r2 + mov.b (--r5,extsym-927),r4 EOF # Finally, generate the .d file. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/reloc-2.d binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/reloc-2.d --- binutils-2.13.90.0.16/gas/testsuite/gas/xstormy16/reloc-2.d Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gas/xstormy16/reloc-2.d Tue Jan 21 10:21:33 2003 @@ -27,13 +27,13 @@ Disassembly of section \.text: 30: 00 79 00 00 mov\.w 0x0,#0x0 32: R_XSTORMY16_16 global 34: fe d0 bge 0x34 - 34: R_XSTORMY16_PC8 global + 34: R_XSTORMY16_PC8 global\+0xfffffffe 36: fc c0 00 00 bge Rx,#0x0,0x36 - 36: R_XSTORMY16_PC8 global + 36: R_XSTORMY16_PC8 global\+0xfffffffc 3a: 00 0d fc 0f bge r0,r0,0x3a - 3c: R_XSTORMY16_REL_12 global + 3c: R_XSTORMY16_REL_12 global\+0xfffffffe 3e: fe 1f br 0x3e - 3e: R_XSTORMY16_REL_12 global + 3e: R_XSTORMY16_REL_12 global\+0xfffffffe 40: 0a d0 bge 0x4c 42: 06 c0 00 00 bge Rx,#0x0,0x4c 46: 00 0d 02 00 bge r0,r0,0x4c diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/INC1.H binutils-2.13.90.0.18/gas/testsuite/gasp/INC1.H --- binutils-2.13.90.0.16/gas/testsuite/gasp/INC1.H Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/INC1.H Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ -FILE 1 FIRST LINE - .INCLUDE "INC2.H" -FILE 1 LAST LINE diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/INC2.H binutils-2.13.90.0.18/gas/testsuite/gasp/INC2.H --- binutils-2.13.90.0.16/gas/testsuite/gasp/INC2.H Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/INC2.H Wed Dec 31 16:00:00 1969 @@ -1,2 +0,0 @@ - FILE 2 FIRST LINE - FILE 2 LAST LINE diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/assign.asm binutils-2.13.90.0.18/gas/testsuite/gasp/assign.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/assign.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/assign.asm Wed Dec 31 16:00:00 1969 @@ -1,13 +0,0 @@ - -foo: .ASSIGNC "hello" -BAR: .ASSIGNA 12+34 - - \&foo'foo - \&foo\&foo\&foo - \&foo \&foo \&foo - \&BAR\&bar\&BAR - - - - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/assign.err binutils-2.13.90.0.18/gas/testsuite/gasp/assign.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/assign.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/assign.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -assign.asm:8 Can't find preprocessor variable bar. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/assign.out binutils-2.13.90.0.18/gas/testsuite/gasp/assign.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/assign.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/assign.out Wed Dec 31 16:00:00 1969 @@ -1,22 +0,0 @@ -! - -!foo: .ASSIGNC "hello" -!BAR: .ASSIGNA 12+34 -! - -! \&foo'foo - hellofoo -! \&foo\&foo\&foo - hellohellohello -! \&foo \&foo \&foo - hello hello hello -! \&BAR\&bar\&BAR - 4646 -! - -! - -! - -! -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/condass.asm binutils-2.13.90.0.18/gas/testsuite/gasp/condass.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/condass.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/condass.asm Wed Dec 31 16:00:00 1969 @@ -1,129 +0,0 @@ - .AIF 1 EQ 1 - OK - .AELSE - BAD - .AENDI - .AIF 1 EQ 2 - BAD - .AELSE - OK - .AENDI - .AIF 1 EQ 2 - BAD - .AELSE - OK - .AIF 1 EQ 2 - BAD - .AELSE - OK - .AENDI - .AENDI - .AIF 1 LT 2 - OK - .AENDI - .AIF 1 EQ 2 - BAD - .AENDI - .AIF 1 NE 2 - OK - .AENDI - .AIF 1 LE 2 - OK - .AENDI - .AIF 1 GT 2 - BAD - .AENDI - .AIF 3 GE 2 - OK - .AENDI - .AIF 3 LT 2 - BAD - .AENDI - .AIF 3 EQ 2 - BAD - .AENDI - .AIF 3 NE 2 - OK - .AENDI - .AIF 3 LE 2 - BAD - .AENDI - .AIF 3 GT 2 - OK - .AENDI - .AIF 3 GE 2 - OK - .AENDI - .AIF "FOO" EQ "BAR" - BAD - .AENDI - .AIF "FOO" EQ "FOO" - OK - .AENDI - .AIF "FOO" NE "BAR" - OK - .AENDI - .AIF "FOO" EQ "FOO" - OK - .AENDI - .AIF 1 EQ 1 - .AIF 1 EQ 1 - OK - .AELSE - BAD - .AENDI - .AIF 1 EQ 0 - BAD - .AELSE - OK - .AENDI - OK - .AELSE - BAD - .AENDI - .AIF 1 EQ 0 - BAD - .AELSE - OK - .AENDI - .AIF 1 EQ 1 - OK - .AELSE - BAD - .AENDI - .AIF 1 EQ 0 - BAD - .AELSE - .AIF 1 EQ 1 - OK - .AELSE - BAD - .AENDI - .AIF 1 EQ 0 - BAD - .AELSE - OK - .AENDI - OK - .AENDI - .AIF 1 EQ 1 - OK - .AIF 1 EQ 1 - OK - .AELSE - BAD - .AENDI - .AIF 1 EQ 0 - BAD - .AELSE - OK - .AENDI - .AELSE - BAD - .AENDI - .AIF 1 EQ 0 - BAD - .AELSE - OK - .AENDI - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/condass.out binutils-2.13.90.0.18/gas/testsuite/gasp/condass.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/condass.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/condass.out Wed Dec 31 16:00:00 1969 @@ -1,155 +0,0 @@ -! .AIF 1 EQ 1 -! OK - OK -! .AELSE -! BAD -! .AENDI -! .AIF 1 EQ 2 -! BAD -! .AELSE -! OK - OK -! .AENDI -! .AIF 1 EQ 2 -! BAD -! .AELSE -! OK - OK -! .AIF 1 EQ 2 -! BAD -! .AELSE -! OK - OK -! .AENDI -! .AENDI -! .AIF 1 LT 2 -! OK - OK -! .AENDI -! .AIF 1 EQ 2 -! BAD -! .AENDI -! .AIF 1 NE 2 -! OK - OK -! .AENDI -! .AIF 1 LE 2 -! OK - OK -! .AENDI -! .AIF 1 GT 2 -! BAD -! .AENDI -! .AIF 3 GE 2 -! OK - OK -! .AENDI -! .AIF 3 LT 2 -! BAD -! .AENDI -! .AIF 3 EQ 2 -! BAD -! .AENDI -! .AIF 3 NE 2 -! OK - OK -! .AENDI -! .AIF 3 LE 2 -! BAD -! .AENDI -! .AIF 3 GT 2 -! OK - OK -! .AENDI -! .AIF 3 GE 2 -! OK - OK -! .AENDI -! .AIF "FOO" EQ "BAR" -! BAD -! .AENDI -! .AIF "FOO" EQ "FOO" -! OK - OK -! .AENDI -! .AIF "FOO" NE "BAR" -! OK - OK -! .AENDI -! .AIF "FOO" EQ "FOO" -! OK - OK -! .AENDI -! .AIF 1 EQ 1 -! .AIF 1 EQ 1 -! OK - OK -! .AELSE -! BAD -! .AENDI -! .AIF 1 EQ 0 -! BAD -! .AELSE -! OK - OK -! .AENDI -! OK - OK -! .AELSE -! BAD -! .AENDI -! .AIF 1 EQ 0 -! BAD -! .AELSE -! OK - OK -! .AENDI -! .AIF 1 EQ 1 -! OK - OK -! .AELSE -! BAD -! .AENDI -! .AIF 1 EQ 0 -! BAD -! .AELSE -! .AIF 1 EQ 1 -! OK - OK -! .AELSE -! BAD -! .AENDI -! .AIF 1 EQ 0 -! BAD -! .AELSE -! OK - OK -! .AENDI -! OK - OK -! .AENDI -! .AIF 1 EQ 1 -! OK - OK -! .AIF 1 EQ 1 -! OK - OK -! .AELSE -! BAD -! .AENDI -! .AIF 1 EQ 0 -! BAD -! .AELSE -! OK - OK -! .AENDI -! .AELSE -! BAD -! .AENDI -! .AIF 1 EQ 0 -! BAD -! .AELSE -! OK - OK -! .AENDI -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/crash.asm binutils-2.13.90.0.18/gas/testsuite/gasp/crash.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/crash.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/crash.asm Wed Dec 31 16:00:00 1969 @@ -1,22 +0,0 @@ - - Stuff to try and crash it - -foo: .MACRO - HI -bar: .MACRO - THERE - bar - .ENDM - - - .ENDM - foo - foo - foo - foo - foo - bar - - - - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/crash.err binutils-2.13.90.0.18/gas/testsuite/gasp/crash.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/crash.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/crash.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -crash.asm:18 Unreasonable expansion (-u turns off check). diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/crash.out binutils-2.13.90.0.18/gas/testsuite/gasp/crash.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/crash.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/crash.out Wed Dec 31 16:00:00 1969 @@ -1,3059 +0,0 @@ -! - -! Stuff to try and crash it - Stuff to try and crash it -! - -!foo: .MACRO -! HI -!bar: .MACRO -! THERE -! bar -! .ENDM -! -! -! .ENDM -! foo -! HI - HI -!bar: .MACRO -! THERE -! bar -! .ENDM -! - -! - -! foo -! HI - HI -!bar: .MACRO -! THERE -! bar -! .ENDM -! - -! - -! foo -! HI - HI -!bar: .MACRO -! THERE -! bar -! .ENDM -! - -! - -! foo -! HI - HI -!bar: .MACRO -! THERE -! bar -! .ENDM -! - -! - -! foo -! HI - HI -!bar: .MACRO -! THERE -! bar -! .ENDM -! - -! - -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar -! THERE - THERE -! bar diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/crash1.asm binutils-2.13.90.0.18/gas/testsuite/gasp/crash1.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/crash1.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/crash1.asm Wed Dec 31 16:00:00 1969 @@ -1,13 +0,0 @@ - - - .MACRO foo a b c=a - \a \b \c \d - .ENDM - - foo 1 2 - foo 1 2 3 4 - foo 1 - foo - - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/crash1.out binutils-2.13.90.0.18/gas/testsuite/gasp/crash1.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/crash1.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/crash1.out Wed Dec 31 16:00:00 1969 @@ -1,24 +0,0 @@ -! - -! - -! .MACRO foo a b c=a -! \a \b \c \d -! .ENDM -! - -! foo 1 2 -! 1 2 a \d - 1 2 a \d -! foo 1 2 3 4 -! foo 1 -! 1 a \d - 1 a \d -! foo -! a \d - a \d -! - -! - -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/crash2.asm binutils-2.13.90.0.18/gas/testsuite/gasp/crash2.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/crash2.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/crash2.asm Wed Dec 31 16:00:00 1969 @@ -1,41 +0,0 @@ - -foo: .ASSIGNA 1 - \&foo+1 - \&foo+1 -foo: .ASSIGNC "foo" - \&foo+1 - \&foo+1 - -foo: .ASSIGNA 1 - \&foo+1 - \&foo+1 -foo: .ASSIGNC "foo" - \&foo+1 - \&foo+1 - -foo: .ASSIGNA 1 - \&foo+1 - \&foo+1 -foo: .ASSIGNC "foo" - \&foo+1 - \&foo+1 - -foo: .ASSIGNA 1 - \&foo+1 - \&foo+1 -foo: .ASSIGNC "foo" - \&foo+1 - \&foo+1 - -foo: .ASSIGNA 1 - \&foo+1 - \&foo+1 -foo: .ASSIGNC "foo" - \&foo+1 - \&foo+1 - foo - foo foo - foo foo - foo - .END - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/crash2.out binutils-2.13.90.0.18/gas/testsuite/gasp/crash2.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/crash2.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/crash2.out Wed Dec 31 16:00:00 1969 @@ -1,69 +0,0 @@ -! - -!foo: .ASSIGNA 1 -! \&foo+1 - 1+1 -! \&foo+1 - 1+1 -!foo: .ASSIGNC "foo" -! \&foo+1 - foo+1 -! \&foo+1 - foo+1 -! - -!foo: .ASSIGNA 1 -! \&foo+1 - 1+1 -! \&foo+1 - 1+1 -!foo: .ASSIGNC "foo" -! \&foo+1 - foo+1 -! \&foo+1 - foo+1 -! - -!foo: .ASSIGNA 1 -! \&foo+1 - 1+1 -! \&foo+1 - 1+1 -!foo: .ASSIGNC "foo" -! \&foo+1 - foo+1 -! \&foo+1 - foo+1 -! - -!foo: .ASSIGNA 1 -! \&foo+1 - 1+1 -! \&foo+1 - 1+1 -!foo: .ASSIGNC "foo" -! \&foo+1 - foo+1 -! \&foo+1 - foo+1 -! - -!foo: .ASSIGNA 1 -! \&foo+1 - 1+1 -! \&foo+1 - 1+1 -!foo: .ASSIGNC "foo" -! \&foo+1 - foo+1 -! \&foo+1 - foo+1 -! foo - foo -! foo foo - foo foo -! foo foo - foo foo -! foo - foo -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/data.asm binutils-2.13.90.0.18/gas/testsuite/gasp/data.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/data.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/data.asm Wed Dec 31 16:00:00 1969 @@ -1,23 +0,0 @@ - -foo .DATA 1,2,3 -bar .DATA 1,2,3,4,5 ,6 - .DATA.B 12345,12,2 - .DATA.W 9,2,12,3,13+41,foo+9 - .DATA.L 2~99 - - - - .DATAB 1,2,3 - .DATAB 1,2,3 - - - - - .DATAB 1,9+32 - - .DATAB.L 1,H'11111111 - .DATAB.W 2,H'2222 - .DATAB.B 3,H'333 - - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/data.out binutils-2.13.90.0.18/gas/testsuite/gasp/data.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/data.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/data.out Wed Dec 31 16:00:00 1969 @@ -1,45 +0,0 @@ -! - -!foo .DATA 1,2,3 -foo: .long 1,2,3 -!bar .DATA 1,2,3,4,5 ,6 -bar: .long 1,2,3,4,5,6 -! .DATA.B 12345,12,2 - .byte 12345,12,2 -! .DATA.W 9,2,12,3,13+41,foo+9 - .short 9,2,12,3,54,foo+9 -! .DATA.L 2~99 - .long 97 -! - -! - -! - -! .DATAB 1,2,3 - .fill 1,4,2 -! .DATAB 1,2,3 - .fill 1,4,2 -! - -! - -! - -! - -! .DATAB 1,9+32 - .fill 1,4,41 -! - -! .DATAB.L 1,H'11111111 - .fill 1,4,286331153 -! .DATAB.W 2,H'2222 - .fill 2,2,8738 -! .DATAB.B 3,H'333 - .fill 3,1,819 -! - -! - -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/exp.asm binutils-2.13.90.0.18/gas/testsuite/gasp/exp.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/exp.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/exp.asm Wed Dec 31 16:00:00 1969 @@ -1,80 +0,0 @@ - -; test all ops - -a1 .EQU 4+10 -a2 .EQU 4-10 -a3 .EQU 4&10 -a4 .EQU 4|2 -a5 .EQU 4~2 -a6 .EQU 4*10 -a7 .EQU 40/10 -a8 .EQU +7 -a9 .EQU -7 -a10 .EQU ~7 - - - a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 - -; test the priorities - -b1 .EQU 1|2~3&4+5-8*7/2 -b2 .EQU (1|2~(3&(4+5-(8*(7/2))))) -b3 .EQU 10*2/3*4 -b4 .EQU (((10*2)/3)*4) -b5 .EQU 10+2-3+4 -b6 .EQU (((10+2)-3)+4) - - b1 b2 b3 b4 - -; test association - -c1 .EQU -~3 -c2 .EQU ~-3 -c3 .EQU -(~3) -c4 .EQU ~(-3) - - c1 c2 c3 c4 - -; test rules for symbols - -ok1 .EQU FOO -ok2 .EQU FOO+10 -ok3 .EQU 10+FOO -ok4 .EQU FOO-10 - - ok1 - ok2 - ok3 - ok4 - -ok5 .EQU FOO+3+4+5+6 -ok6 .EQU FOO-BAR - - ok5 - ok6 - -bad1 .EQU FOO+FOO -bad2 .EQU FOO*2 -bad3 .EQU FOO/2 -bad4 .EQU FOO|2 -bad5 .EQU FOO&2 -bad6 .EQU FOO~2 -bad7 .EQU FOO*2 - -; test spacing - -space1 .EQU 1 + 2 +3+FOO + 3 -space2 - -; from the SH manual - - .DATA.L 1+(2-(3+(4-5))),1 - - .DATA.L -H'fffffff1+H'000000f0*H'00000010|H'000000f0&H'0000ffff,H'00000fff - - .DATA.L -~-~H'0000000f,H'00 - - - - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/exp.err binutils-2.13.90.0.18/gas/testsuite/gasp/exp.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/exp.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/exp.err Wed Dec 31 16:00:00 1969 @@ -1,7 +0,0 @@ -exp.asm:56 can't add two relocatable expressions -exp.asm:57 the * operator cannot take non-absolute arguments. -exp.asm:58 the / operator cannot take non-absolute arguments. -exp.asm:59 the | operator cannot take non-absolute arguments. -exp.asm:60 the & operator cannot take non-absolute arguments. -exp.asm:61 the ~ operator cannot take non-absolute arguments. -exp.asm:62 the * operator cannot take non-absolute arguments. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/exp.out binutils-2.13.90.0.18/gas/testsuite/gasp/exp.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/exp.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/exp.out Wed Dec 31 16:00:00 1969 @@ -1,124 +0,0 @@ -! - -!; test all ops - ; test all ops -! - -!a1 .EQU 4+10 -!a2 .EQU 4-10 -!a3 .EQU 4&10 -!a4 .EQU 4|2 -!a5 .EQU 4~2 -!a6 .EQU 4*10 -!a7 .EQU 40/10 -!a8 .EQU +7 -!a9 .EQU -7 -!a10 .EQU ~7 -! - -! - -! a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 - 14 -6 0 6 6 40 4 7 -7 -8 -! - -!; test the priorities - ; test the priorities -! - -!b1 .EQU 1|2~3&4+5-8*7/2 -!b2 .EQU (1|2~(3&(4+5-(8*(7/2))))) -!b3 .EQU 10*2/3*4 -!b4 .EQU (((10*2)/3)*4) -!b5 .EQU 10+2-3+4 -!b6 .EQU (((10+2)-3)+4) -! - -! b1 b2 b3 b4 - 2 2 24 24 -! - -!; test association - ; test association -! - -!c1 .EQU -~3 -!c2 .EQU ~-3 -!c3 .EQU -(~3) -!c4 .EQU ~(-3) -! - -! c1 c2 c3 c4 - 4 2 4 2 -! - -!; test rules for symbols - ; test rules for symbols -! - -!ok1 .EQU FOO -!ok2 .EQU FOO+10 -!ok3 .EQU 10+FOO -!ok4 .EQU FOO-10 -! - -! ok1 - FOO -! ok2 - FOO+10 -! ok3 - FOO+10 -! ok4 - FOO+-10 -! - -!ok5 .EQU FOO+3+4+5+6 -!ok6 .EQU FOO-BAR -! - -! ok5 - FOO+18 -! ok6 - FOO-FOO -! - -!bad1 .EQU FOO+FOO -!bad2 .EQU FOO*2 -!bad3 .EQU FOO/2 -!bad4 .EQU FOO|2 -!bad5 .EQU FOO&2 -!bad6 .EQU FOO~2 -!bad7 .EQU FOO*2 -! - -!; test spacing - ; test spacing -! - -!space1 .EQU 1 + 2 +3+FOO + 3 -!space2 -space2: -! - -!; from the SH manual - ; from the SH manual -! - -! .DATA.L 1+(2-(3+(4-5))),1 - .long 1,1 -! - -! .DATA.L -H'fffffff1+H'000000f0*H'00000010|H'000000f0&H'0000ffff,H'00000fff - .long 4095,4095 -! - -! .DATA.L -~-~H'0000000f,H'00 - .long 17,0 -! - -! - -! -! - -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/flonums.asm binutils-2.13.90.0.18/gas/testsuite/gasp/flonums.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/flonums.asm Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/flonums.asm Wed Dec 31 16:00:00 1969 @@ -1,19 +0,0 @@ -.RADIX Q - ! test floats now - .float -H'C - .float -9.0 - .float 0.9 - .float +0.9 - .float +.9 - .float -00.0009 - .float -2.900 - .float 1.1e+10 - .float +1.1e+10 - .float +1.1e-10 - .float -1.1E+10 - .float +1.1E+1000 - .float +1.1E+0001 10 - .float 11.11E-10 10 - .float H'C.3 - .float H'C.H'C -.END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/flonums.out binutils-2.13.90.0.18/gas/testsuite/gasp/flonums.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/flonums.out Thu Mar 7 11:52:38 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/flonums.out Wed Dec 31 16:00:00 1969 @@ -1,36 +0,0 @@ -!.RADIX Q -! ! test floats now - ! test floats now -! .float -H'C - .float -12 -! .float -9.0 - .float -9.0 -! .float 0.9 - .float 0.9 -! .float +0.9 - .float +0.9 -! .float +.9 - .float +.9 -! .float -00.0009 - .float -00.0009 -! .float -2.900 - .float -2.900 -! .float 1.1e+10 - .float 1.1e+10 -! .float +1.1e+10 - .float +1.1e+10 -! .float +1.1e-10 - .float +1.1e-10 -! .float -1.1E+10 - .float -1.1E+10 -! .float +1.1E+1000 - .float +1.1E+1000 -! .float +1.1E+0001 10 - .float +1.1E+0001 8 -! .float 11.11E-10 10 - .float 11.11E-10 8 -! .float H'C.3 - .float 12.3 -! .float H'C.H'C - .float 12.12 -!.END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/gasp.exp binutils-2.13.90.0.18/gas/testsuite/gasp/gasp.exp --- binutils-2.13.90.0.16/gas/testsuite/gasp/gasp.exp Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/gasp.exp Wed Dec 31 16:00:00 1969 @@ -1,40 +0,0 @@ -# Test gasp. - -# GASP is now deprecated (and not built by default) -# so if it does not exist, do not test it. -global GASP -if {![info exists GASP] || ! [file exists $GASP] } then { - return 1 -} - -proc gasp_test { filename testname opt } { - global GASP - global srcdir - global host_triplet - - send_log "$srcdir/lib/run $GASP -I$srcdir/gasp -s $opt $filename.asm -o gasp.out\n" - catch "exec $srcdir/lib/run $GASP -I$srcdir/gasp -s $opt $filename.asm -o gasp.out" errs - catch "exec diff gasp.out $filename.out" diffs - set diffs [prune_warnings $diffs] - if ![string match "" $diffs] { - send_log "$diffs\n" - verbose $diffs - fail $testname - return 0 - } else { - pass $testname - } - -} - -foreach src [ lsort [ glob $srcdir/gasp/*.asm ] ] { - regsub -all ".asm" $src "" t - regsub "^.*/(\[^/\]*)$" $t "gasp \\1" testname - gasp_test $t $testname "" -} - -foreach src [ lsort [ glob $srcdir/gasp/mri/*.asm ] ] { - regsub -all ".asm" $src "" t - regsub "^.*/(\[^/\]*)$" $t "gasp MRI \\1" testname - gasp_test $t $testname "-M" -} diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/include.asm binutils-2.13.90.0.18/gas/testsuite/gasp/include.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/include.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/include.asm Wed Dec 31 16:00:00 1969 @@ -1,4 +0,0 @@ - HI - .INCLUDE "INC1.H" - THERE - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/include.out binutils-2.13.90.0.18/gas/testsuite/gasp/include.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/include.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/include.out Wed Dec 31 16:00:00 1969 @@ -1,15 +0,0 @@ -! HI - HI -! .INCLUDE "INC1.H" -!FILE 1 FIRST LINE -FILE: 1 FIRST LINE -! .INCLUDE "INC2.H" -! FILE 2 FIRST LINE - FILE 2 FIRST LINE -! FILE 2 LAST LINE - FILE 2 LAST LINE -!FILE 1 LAST LINE -FILE: 1 LAST LINE -! THERE - THERE -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/listing.asm binutils-2.13.90.0.18/gas/testsuite/gasp/listing.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/listing.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/listing.asm Wed Dec 31 16:00:00 1969 @@ -1,15 +0,0 @@ - - - .HEADING " ""QUOTE"" " - .PAGE - .PRINT LIST - foo - .PRINT NOLIST - foo - - - .FORM LIN=12 - .FORM COL=90 - .FORM LIN=123 COL=23 - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/listing.out binutils-2.13.90.0.18/gas/testsuite/gasp/listing.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/listing.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/listing.out Wed Dec 31 16:00:00 1969 @@ -1,28 +0,0 @@ -! - -! - -! .HEADING " ""QUOTE"" " - .title " "QUOTE" " -! .PAGE - .eject -! .PRINT LIST - .list -! foo - foo -! .PRINT NOLIST - .nolist -! foo - foo -! - -! - -! .FORM LIN=12 - .psize 12,132 -! .FORM COL=90 - .psize 60,90 -! .FORM LIN=123 COL=23 - .psize 123,23 -! -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/macro.asm binutils-2.13.90.0.18/gas/testsuite/gasp/macro.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/macro.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/macro.asm Wed Dec 31 16:00:00 1969 @@ -1,102 +0,0 @@ - .MACRO SUM FROM=0, TO=9 - ; \FROM \TO - MOV R\FROM,R10 -COUNT .ASSIGNA \FROM+1 - .AWHILE \&COUNT LE \TO - MOV R\&COUNT,R10 -COUNT .ASSIGNA \&COUNT+1 - .AENDW - .ENDM - - SUM 0,5 - SUM TO=5 - SUM FROM=2, TO=5 - - -; hi this is a comment - .MACRO BACK_SLASH_SET - \(MOV #"\",R0) - .ENDM - BACK_SLASH_SET - .MACRO COMM - bar ; this comment will get copied out - foo \; this one will get dropped - .ENDM - COMM - BACK_SLASH_SET - .MACRO PLUS2 - ADD #1,R\&V1 - .SDATA "\&V'1" - .ENDM -V .ASSIGNC "R" -V1 .ASSIGNA 1 - PLUS2 - .MACRO PLUS1 P,P1 - ADD #1,\P1 - .SDATA "\P'1" - .ENDM - PLUS1 R,R1 - - .MACRO SUM P1 - MOV R0,R10 - ADD R1,R10 - ADD R2,R10 - \P1 - ADD R3,R10 - .ENDM - - SUM .EXITM - - .MACRO foo bar=a default=b - \bar - \default - bar - default - .ENDM - foo default=dog bar=cat - foo X Y - foo - foo bar=cat default=dog - - - .MACRO foo bar - HI - HI \bar - HI - .ENDM - - foo 1 - foo 123 - foo 1 2 3 4 - foo - - - .MACRO PUSH Rn - MOV.L \Rn,@-r15 - .ENDM - PUSH R0 - PUSH R1 - - - .MACRO RES_STR STR, Rn - MOV.L #str\@,\Rn - BRA end_str\@ - NOP -str\@ .SDATA "\STR" - .ALIGN 2 -end_str\@ - .ENDM - - RES_STR "ONE",R0 - RES_STR "TWO",R1 - RES_STR "THREE",R2 - - - - RES_STR STR=donkey Rn=R1 - RES_STR donkey,R1 - RES_STR donkey Rn=R1 - .END - - - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/macro.out binutils-2.13.90.0.18/gas/testsuite/gasp/macro.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/macro.out Tue May 2 10:09:12 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/macro.out Wed Dec 31 16:00:00 1969 @@ -1,382 +0,0 @@ -! .MACRO SUM FROM=0, TO=9 -! ; \FROM \TO -! MOV R\FROM,R10 -!COUNT .ASSIGNA \FROM+1 -! .AWHILE \&COUNT LE \TO -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! .ENDM -! - -! SUM 0,5 -! ; 0 5 - ; 0 5 -! MOV R0,R10 - MOV R0,R10 -!COUNT .ASSIGNA 0+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R1,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R2,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R3,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R4,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R5,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! SUM TO=5 -! ; 0 5 - ; 0 5 -! MOV R0,R10 - MOV R0,R10 -!COUNT .ASSIGNA 0+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R1,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R2,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R3,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R4,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R5,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! SUM FROM=2, TO=5 -! ; 2 5 - ; 2 5 -! MOV R2,R10 - MOV R2,R10 -!COUNT .ASSIGNA 2+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R3,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R4,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! MOV R\&COUNT,R10 - MOV R5,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AWHILE \&COUNT LE 5 -! MOV R\&COUNT,R10 -!COUNT .ASSIGNA \&COUNT+1 -! .AENDW -! - -! - -!; hi this is a comment - ; hi this is a comment -! .MACRO BACK_SLASH_SET -! \(MOV #"\",R0) -! .ENDM -! BACK_SLASH_SET -! MOV #"\",R0 - MOV #"\",R0 -! .MACRO COMM -! bar ; this comment will get copied out -! foo \; this one will get dropped -! .ENDM -! COMM -! bar ; this comment will get copied out - bar ; this comment will get copied out -! foo \; this one will get dropped - foo \; this one will get dropped -! BACK_SLASH_SET -! MOV #"\",R0 - MOV #"\",R0 -! .MACRO PLUS2 -! ADD #1,R\&V1 -! .SDATA "\&V'1" -! .ENDM -!V .ASSIGNC "R" -!V1 .ASSIGNA 1 -! PLUS2 -! ADD #1,R\&V1 - ADD #1,R1 -! .SDATA "\&V'1" - .byte 82,49 -! .MACRO PLUS1 P,P1 -! ADD #1,\P1 -! .SDATA "\P'1" -! .ENDM -! PLUS1 R,R1 -! ADD #1,R1 - ADD #1,R1 -! .SDATA "R1" - .byte 82,49 -! - -! .MACRO SUM P1 -! MOV R0,R10 -! ADD R1,R10 -! ADD R2,R10 -! \P1 -! ADD R3,R10 -! .ENDM -! - -! SUM .EXITM -! MOV R0,R10 - MOV R0,R10 -! ADD R1,R10 - ADD R1,R10 -! ADD R2,R10 - ADD R2,R10 -! .EXITM -! - -! .MACRO foo bar=a default=b -! \bar -! \default -! bar -! default -! .ENDM -! foo default=dog bar=cat -! cat - cat -! dog - dog -! bar - bar -! default - default -! foo X Y -! X - X -! Y - Y -! bar - bar -! default - default -! foo -! a - a -! b - b -! bar - bar -! default - default -! foo bar=cat default=dog -! cat - cat -! dog - dog -! bar - bar -! default - default -! - -! - -! .MACRO foo bar -! HI -! HI \bar -! HI -! .ENDM -! - -! foo 1 -! HI - HI -! HI 1 - HI 1 -! HI - HI -! foo 123 -! HI - HI -! HI 123 - HI 123 -! HI - HI -! foo 1 2 3 4 -! foo -! HI - HI -! HI - HI -! HI - HI -! - -! -! .MACRO PUSH Rn -! MOV.L \Rn,@-r15 -! .ENDM -! PUSH R0 -! MOV.L R0,@-r15 - MOV.L R0,@-r15 -! PUSH R1 -! MOV.L R1,@-r15 - MOV.L R1,@-r15 -! - -! - -! .MACRO RES_STR STR, Rn -! MOV.L #str\@,\Rn -! BRA end_str\@ -! NOP -!str\@ .SDATA "\STR" -! .ALIGN 2 -!end_str\@ -! .ENDM -! -! RES_STR "ONE",R0 -! MOV.L #str18,R0 - MOV.L #str18,R0 -! BRA end_str18 - BRA end_str18 -! NOP - NOP -!str18 .SDATA "ONE" -str18: .byte 79,78,69 -! .ALIGN 2 - .align 2 -!end_str18 -end_str18: -! RES_STR "TWO",R1 -! MOV.L #str19,R1 - MOV.L #str19,R1 -! BRA end_str19 - BRA end_str19 -! NOP - NOP -!str19 .SDATA "TWO" -str19: .byte 84,87,79 -! .ALIGN 2 - .align 2 -!end_str19 -end_str19: -! RES_STR "THREE",R2 -! MOV.L #str20,R2 - MOV.L #str20,R2 -! BRA end_str20 - BRA end_str20 -! NOP - NOP -!str20 .SDATA "THREE" -str20: .byte 84,72,82,69,69 -! .ALIGN 2 - .align 2 -!end_str20 -end_str20: -! - -! - -! - -! RES_STR STR=donkey Rn=R1 -! MOV.L #str21,R1 - MOV.L #str21,R1 -! BRA end_str21 - BRA end_str21 -! NOP - NOP -!str21 .SDATA "donkey" -str21: .byte 100,111,110,107,101,121 -! .ALIGN 2 - .align 2 -!end_str21 -end_str21: -! RES_STR donkey,R1 -! MOV.L #str22,R1 - MOV.L #str22,R1 -! BRA end_str22 - BRA end_str22 -! NOP - NOP -!str22 .SDATA "donkey" -str22: .byte 100,111,110,107,101,121 -! .ALIGN 2 - .align 2 -!end_str22 -end_str22: -! RES_STR donkey Rn=R1 -! MOV.L #str23,R1 - MOV.L #str23,R1 -! BRA end_str23 - BRA end_str23 -! NOP - NOP -!str23 .SDATA "donkey" -str23: .byte 100,111,110,107,101,121 -! .ALIGN 2 - .align 2 -!end_str23 -end_str23: -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mdouble.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mdouble.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mdouble.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mdouble.asm Wed Dec 31 16:00:00 1969 @@ -1,47 +0,0 @@ - - .MACRO HI - A - \! this is hidden - B - ! this is not - C - .ENDM - Hello - HI - Emily - - - H'0f - 200+H'0F - -XX .ASSIGNA Q'100 -! Definition: - .MACRO GET X=100,Y,Z - MOV #\X+H'0F,@B - \Y -\Z JMP @MAIN -L\@ ADD #1,@HL - MOV #0,@C \! Clear C - ADD #2,@C - ADD #\&XX, @C - .ENDM - - NOP - -!Call: - GET 200,"ADD #1,@B", ENTRY - .END - - ; Definition: - - - NOP - - ;Call: - MOV #200+0F,@B - ADD #1,@B -ENTRY: JMP @MAIN -L00000: ADD #1,@HL - MOV #0,@C - ADD #2,@C - ADD #0, @C diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mdouble.out binutils-2.13.90.0.18/gas/testsuite/gasp/mdouble.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mdouble.out Tue May 2 10:09:12 2000 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mdouble.out Wed Dec 31 16:00:00 1969 @@ -1,68 +0,0 @@ -! - -! .MACRO HI -! A -! \! this is hidden -! B -! ! this is not -! C -! .ENDM -! Hello - Hello -! HI -! A - A -! -! B - B -! ! this is not - ! this is not -! C - C -! Emily - Emily -! -! - -! H'0f - 15 -! 200+H'0F - 200+15 -! - -!XX .ASSIGNA Q'100 -!! Definition: - ! Definition: -! .MACRO GET X=100,Y,Z -! MOV #\X+H'0F,@B -! \Y -!\Z JMP @MAIN -!L\@ ADD #1,@HL -! MOV #0,@C \! Clear C -! ADD #2,@C -! ADD #\&XX, @C -! .ENDM -! - -! NOP - NOP -! - -!!Call: - !Call: -! GET 200,"ADD #1,@B", ENTRY -! MOV #200+H'0F,@B - MOV #200+15,@B -! ADD #1,@B - ADD #1,@B -!ENTRY JMP @MAIN -ENTRY: JMP @MAIN -!L1 ADD #1,@HL -L1: ADD #1,@HL -! MOV #0,@C - MOV #0,@C -! ADD #2,@C - ADD #2,@C -! ADD #\&XX, @C - ADD #64, @C -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/embed.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mri/embed.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/embed.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/embed.asm Wed Dec 31 16:00:00 1969 @@ -1,5 +0,0 @@ -embed macro label -addr&&label dc.l label - endm - - embed foo diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/embed.out binutils-2.13.90.0.18/gas/testsuite/gasp/mri/embed.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/embed.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/embed.out Wed Dec 31 16:00:00 1969 @@ -1,9 +0,0 @@ -;embed macro label -;addr&&label dc.l label -; endm -; - -; embed foo -;addrfoo dc.l foo -addrfoo: dc.l foo -; \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/exists.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mri/exists.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/exists.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/exists.asm Wed Dec 31 16:00:00 1969 @@ -1,10 +0,0 @@ -exists macro arg1,arg2 - ifne ==arg2 - move arg1,arg2 - elsec - push arg1 - endc - endm - - exists foo,bar - exists foo diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/exists.out binutils-2.13.90.0.18/gas/testsuite/gasp/mri/exists.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/exists.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/exists.out Wed Dec 31 16:00:00 1969 @@ -1,24 +0,0 @@ -;exists macro arg1,arg2 -; ifne ==arg2 -; move arg1,arg2 -; elsec -; push arg1 -; endc -; endm -; - -; exists foo,bar -; ifne -1 -; move foo,bar - move foo,bar -; elsec -; push foo -; endc -; exists foo -; ifne 0 -; move foo, -; elsec -; push foo - push foo -; endc -; \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irp.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irp.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irp.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irp.asm Wed Dec 31 16:00:00 1969 @@ -1,4 +0,0 @@ - irp param,arg1,arg2,arg3 - dc.l param - endr - end quit diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irp.out binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irp.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irp.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irp.out Wed Dec 31 16:00:00 1969 @@ -1,8 +0,0 @@ -; irp param,arg1,arg2,arg3 -; dc.l param -; endr - dc.l arg1 - dc.l arg2 - dc.l arg3 -; end quit - end quit diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irpc.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irpc.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irpc.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irpc.asm Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ - irpc dummy,1234 - dc.l dummy - endr diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irpc.out binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irpc.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/irpc.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/irpc.out Wed Dec 31 16:00:00 1969 @@ -1,8 +0,0 @@ -; irpc dummy,1234 -; dc.l dummy -; endr - dc.l 1 - dc.l 2 - dc.l 3 - dc.l 4 -; \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/macro.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mri/macro.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/macro.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/macro.asm Wed Dec 31 16:00:00 1969 @@ -1,8 +0,0 @@ -get macro arg1,arg2,arg3 - dc.l arg1 - arg2 -arg3 dc.l \4 - move.\0 d0,d1 - endm - - get.b 1,,label,four diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/macro.out binutils-2.13.90.0.18/gas/testsuite/gasp/mri/macro.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/macro.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/macro.out Wed Dec 31 16:00:00 1969 @@ -1,18 +0,0 @@ -;get macro arg1,arg2,arg3 -; dc.l arg1 -; arg2 -;arg3 dc.l \4 -; move.\0 d0,d1 -; endm -; - -; get.b 1,,label,four -; dc.l 1 - dc.l 1 -; dc.l 2 - dc.l 2 -;label dc.l four -label: dc.l four -; move.b d0,d1 - move.b d0,d1 -; \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/narg.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mri/narg.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/narg.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/narg.asm Wed Dec 31 16:00:00 1969 @@ -1,9 +0,0 @@ -loop macro arg1,arg2,arg3 - dc.l NARG - ifne NARG - dc.l arg1 - loop arg2,arg3 - endc - endm - - loop 1,2,3 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/narg.out binutils-2.13.90.0.18/gas/testsuite/gasp/mri/narg.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/narg.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/narg.out Wed Dec 31 16:00:00 1969 @@ -1,38 +0,0 @@ -;loop macro arg1,arg2,arg3 -; dc.l NARG -; ifne NARG -; dc.l arg1 -; loop arg2,arg3 -; endc -; endm -; - -; loop 1,2,3 -; dc.l 3 - dc.l 3 -; ifne 3 -; dc.l 1 - dc.l 1 -; loop 2,3 -; dc.l 2 - dc.l 2 -; ifne 2 -; dc.l 2 - dc.l 2 -; loop 3, -; dc.l 1 - dc.l 1 -; ifne 1 -; dc.l 3 - dc.l 3 -; loop , -; dc.l 0 - dc.l 0 -; ifne 0 -; dc.l -; loop , -; endc -; endc -; endc -; endc -; \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/rept.asm binutils-2.13.90.0.18/gas/testsuite/gasp/mri/rept.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/rept.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/rept.asm Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ - rept 3 - dc.l 1 - endr diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/mri/rept.out binutils-2.13.90.0.18/gas/testsuite/gasp/mri/rept.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/mri/rept.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/mri/rept.out Wed Dec 31 16:00:00 1969 @@ -1,16 +0,0 @@ -; rept 3 -; dc.l 1 -; endr -; dc.l 1 - dc.l 1 -; REPT 2 -; dc.l 1 -; ENDR -; dc.l 1 - dc.l 1 -; REPT 1 -; dc.l 1 -; ENDR -; dc.l 1 - dc.l 1 -; \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl1.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl1.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl1.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl1.asm Wed Dec 31 16:00:00 1969 @@ -1,20 +0,0 @@ - - .ALTERNATE - -alloc MACRO val1,val2 - DB val1 - DB val2 - ENDM - - alloc "that's" 'show biz' - alloc 0,1 - alloc 0 1 - alloc 0 1 - alloc ,1 - - - - - - - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl1.err binutils-2.13.90.0.18/gas/testsuite/gasp/pl1.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl1.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl1.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -END missing from end of file. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl1.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl1.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl1.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl1.out Wed Dec 31 16:00:00 1969 @@ -1,49 +0,0 @@ -! -! .ALTERNATE -! - -!alloc MACRO val1,val2 -! DB val1 -! DB val2 -! ENDM -! - -! alloc "that's" 'show biz' -! DB "that's" - .byte 116,104,97,116,39,115 -! DB "show biz" - .byte 115,104,111,119,32,98,105,122 -! alloc 0,1 -! DB 0 - .byte 0 -! DB 1 - .byte 1 -! alloc 0 1 -! DB 0 - .byte 0 -! DB 1 - .byte 1 -! alloc 0 1 -! DB 0 - .byte 0 -! DB 1 - .byte 1 -! alloc ,1 -! DB - .byte -! DB 1 - .byte 1 -! - -! - -! -! - -! - -! - -! - -! \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl2.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl2.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl2.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl2.asm Wed Dec 31 16:00:00 1969 @@ -1,28 +0,0 @@ - - - .ALTERNATE - - ! ok - !! also ok - -foo MACRO - ! you can see me - !! but not me - ! you can see me - !! but not me - but this "SHOULD !!BE OK" - ENDM - - foo - - -define MACRO val1,val2 - DB val1 ! this comment will show up - DB val2 !! this on won't - ENDM - - define 0,1 - - - END - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl2.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl2.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl2.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl2.out Wed Dec 31 16:00:00 1969 @@ -1,51 +0,0 @@ -! - -! - -! .ALTERNATE -! - -! ! ok - ! ok -! !! also ok - !! also ok -! - -!foo MACRO -! ! you can see me -! !! but not me -! ! you can see me -! !! but not me -! but this "SHOULD !!BE OK" -! ENDM -! - -! foo -! ! you can see me - ! you can see me -! -! ! you can see me - ! you can see me -! -! but this "SHOULD !!BE OK" - but this "SHOULD !!BE OK" -! - -! - -!define MACRO val1,val2 -! DB val1 ! this comment will show up -! DB val2 !! this on won't -! ENDM -! - -! define 0,1 -! DB 0 ! this comment will show up - .byte 0! this comment will show up -! DB 1 - .byte 1 -! - -! - -! END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl3.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl3.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl3.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl3.asm Wed Dec 31 16:00:00 1969 @@ -1,30 +0,0 @@ - .ALTERNATE - -foo MACRO string - LOCAL lab1, lab2 -lab1: DATA.L lab2 -lab2: SDATA string - ENDM - - foo "An example" - foo "using LOCAL" - -! test of LOCAL directive - -chk_err MACRO limit - LOCAL skip !! frob - LOCAL zap,dog,barf -barf: cmp ax,limit !! check value against - !! limit - jle skip !! skip call if OK -skip: call error - foo dog - zap dog - nop - ENDM - - chk_err 5 - chk_err 10 - - - END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl3.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl3.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl3.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl3.out Wed Dec 31 16:00:00 1969 @@ -1,86 +0,0 @@ -! .ALTERNATE -! - -!foo MACRO string -! LOCAL lab1, lab2 -!lab1: DATA.L lab2 -!lab2: SDATA string -! ENDM -! - -! foo "An example" -! -!LL0001: DATA.L LL0002 -LL0001: .long LL0002 -!LL0002: SDATA "An example" -LL0002: .byte 65,110,32,101,120,97,109,112,108,101 -! foo "using LOCAL" -! -!LL0003: DATA.L LL0004 -LL0003: .long LL0004 -!LL0004: SDATA "using LOCAL" -LL0004: .byte 117,115,105,110,103,32,76,79,67,65,76 -! - -!! test of LOCAL directive - ! test of LOCAL directive -! - -!chk_err MACRO limit -! LOCAL skip !! frob -! LOCAL zap,dog,barf -!barf: cmp ax,limit !! check value against -! !! limit -! jle skip !! skip call if OK -!skip: call error -! foo dog -! zap dog -! nop -! ENDM -! - -! chk_err 5 -! -! -!LL0008: cmp ax,5 -LL0008: cmp ax,5 -! -! jle LL0005 - jle LL0005 -!LL0005: call error -LL0005: call error -! foo LL0007 -! -!LL0009: DATA.L LL000a -LL0009: .long LL000a -!LL000a: SDATA LL0007 -LL000a: .byte 76,76,48,48,48,55 -! LL0006 LL0007 - LL0006 LL0007 -! nop - nop -! chk_err 10 -! -! -!LL000e: cmp ax,10 -LL000e: cmp ax,10 -! -! jle LL000b - jle LL000b -!LL000b: call error -LL000b: call error -! foo LL000d -! -!LL000f: DATA.L LL0010 -LL000f: .long LL0010 -!LL0010: SDATA LL000d -LL0010: .byte 76,76,48,48,48,100 -! LL000c LL000d - LL000c LL000d -! nop - nop -! - -! - -! END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl4.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl4.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl4.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl4.asm Wed Dec 31 16:00:00 1969 @@ -1,10 +0,0 @@ - .ALTERNATE -! test of macro substitution around &s - - -foo MACRO a,b - x&a&b - ENDM - - foo 3 2 - END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl4.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl4.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl4.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl4.out Wed Dec 31 16:00:00 1969 @@ -1,16 +0,0 @@ -! .ALTERNATE -!! test of macro substitution around &s - ! test of macro substitution around &s -! - -! - -!foo MACRO a,b -! x&a&b -! ENDM -! - -! foo 3 2 -! x32 - x32 -! END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl5.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl5.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl5.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl5.asm Wed Dec 31 16:00:00 1969 @@ -1,15 +0,0 @@ -! test of literal text operator - .ALTERNATE -foop MACRO str1,str2 - SDATA "str1" - SDATA str2 - ENDM - - - - foop this< is a with angle brackets> - foop this< is a string with spaces> - foop this < is a string with a !>> - - - END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl5.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl5.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl5.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl5.out Wed Dec 31 16:00:00 1969 @@ -1,32 +0,0 @@ -!! test of literal text operator - ! test of literal text operator -! .ALTERNATE -!foop MACRO str1,str2 -! SDATA "str1" -! SDATA str2 -! ENDM -! - -! - -! -! foop this< is a with angle brackets> -! SDATA "this" - .byte 116,104,105,115 -! SDATA " is a with angle brackets" - .byte 32,105,115,32,97,32,60,115,116,114,105,110,103,62,32,119,105,116,104,32,97,110,103,108,101,32,98,114,97,99,107,101,116,115 -! foop this< is a string with spaces> -! SDATA "this" - .byte 116,104,105,115 -! SDATA " is a string with spaces" - .byte 32,105,115,32,97,32,115,116,114,105,110,103,32,119,105,116,104,32,115,112,97,99,101,115 -! foop this < is a string with a !>> -! SDATA "this" - .byte 116,104,105,115 -! SDATA " is a string with a >" - .byte 32,105,115,32,97,32,115,116,114,105,110,103,32,119,105,116,104,32,97,32,62 -! - -! - -! END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl6.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl6.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl6.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl6.asm Wed Dec 31 16:00:00 1969 @@ -1,21 +0,0 @@ - .ALTERNATE -! test of expression operator -define MACRO val, string - SDATA val - SDATA string - ENDM - define "1","99%of100" ! notice % within string - define %1 + 2, "=3" - - - define % 1 + 2 %3+4 - - define %3*4-2 <=10> - - define %3*4-2 5 - - define %1 + 2, - - ! has no effect - - end diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl6.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl6.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl6.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl6.out Wed Dec 31 16:00:00 1969 @@ -1,54 +0,0 @@ -! .ALTERNATE -!! test of expression operator - ! test of expression operator -!define MACRO val, string -! SDATA val -! SDATA string -! ENDM -! define "1","99%of100" ! notice % within string -! SDATA "1" - .byte 49 -! SDATA "99%of100" - .byte 57,57,37,111,102,49,48,48 -! define %1 + 2, "=3" -! SDATA 3 - .byte 51 -! SDATA "=3" - .byte 61,51 -! - -! - -! define % 1 + 2 %3+4 -! SDATA 3 - .byte 51 -! SDATA 7 - .byte 55 -! - -! define %3*4-2 <=10> -! SDATA 10 - .byte 49,48 -! SDATA "=10" - .byte 61,49,48 -! - -! define %3*4-2 5 -! SDATA 10 - .byte 49,48 -! SDATA 5 - .byte 53 -! - -! define %1 + 2, -! SDATA 3 - .byte 51 -! SDATA "is equal to %1 + 2, right?" - .byte 105,115,32,101,113,117,97,108,32,116,111,32,37,49,32,43,32,50,44,32,114,105,103,104,116,63 -! - -! ! has no effect - ! has no effect -! - -! end diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl7.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl7.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl7.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl7.asm Wed Dec 31 16:00:00 1969 @@ -1,12 +0,0 @@ - .ALTERNATE -! test of string operators -define MACRO str1,str2 - SDATA str1 - SDATA "str2" -ENDM - define one" way to get "spaces,0 - define "lot's! of ,chars%", 0 - - - - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl7.err binutils-2.13.90.0.18/gas/testsuite/gasp/pl7.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl7.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl7.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -END missing from end of file. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl7.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl7.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl7.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl7.out Wed Dec 31 16:00:00 1969 @@ -1,26 +0,0 @@ -! .ALTERNATE -!! test of string operators - ! test of string operators -!define MACRO str1,str2 -! SDATA str1 -! SDATA "str2" -!ENDM -! define one" way to get "spaces,0 -! SDATA one" way to get "spaces - .byte 111,110,101,34,32,119,97,121,32,116,111,32,103,101,116,32,34,115,112,97,99,101,115 -! SDATA "0" - .byte 48 -! define "lot's! of ,chars%", 0 -! SDATA "lot's of ,chars%" - .byte 108,111,116,39,115,32,111,102,32,60,115,112,101,99,105,97,108,62,44,99,104,97,114,115,37 -! SDATA "0" - .byte 48 -! - -! - -! - -! - -! \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl8.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pl8.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl8.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl8.asm Wed Dec 31 16:00:00 1969 @@ -1,18 +0,0 @@ - - .ALTERNATE - SDATA %1+2+3 - SDATA "5" - - - - MACRO foo - SDATA "HI" !! this will go - SDATA "THERE ! this will stay - ENDM - - foo - - - SDATA example!>!!> - SDATA " example>!" - END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pl8.out binutils-2.13.90.0.18/gas/testsuite/gasp/pl8.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pl8.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pl8.out Wed Dec 31 16:00:00 1969 @@ -1,33 +0,0 @@ -! - -! .ALTERNATE -! SDATA %1+2+3 - .byte 37,49,43,50,43,51,32 -! SDATA "5" - .byte 53 -! - -! - -! - -! MACRO foo -! SDATA "HI" !! this will go -! SDATA "THERE ! this will stay -! ENDM -! - -! foo -! SDATA "HI" - .byte 72,73 -! SDATA "THERE ! this will stay - .byte 84,72,69,82,69,9,32,116,104,105,115,32,119,105,108,108,32,115,116,97,121 -! - -! - -! SDATA example!>!!> - .byte 60,116,104,105,115,32,105,115,32,60,97,32,119,97,99,107,121,62,32,101,120,97,109,112,108,101,62,33 -! SDATA " example>!" - .byte 60,116,104,105,115,32,105,115,32,60,97,32,119,97,99,107,121,62,32,101,120,97,109,112,108,101,62,34 -! END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pr7583.asm binutils-2.13.90.0.18/gas/testsuite/gasp/pr7583.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/pr7583.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pr7583.asm Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ - - .sdata "v1.0000" - .end diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/pr7583.out binutils-2.13.90.0.18/gas/testsuite/gasp/pr7583.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/pr7583.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/pr7583.out Wed Dec 31 16:00:00 1969 @@ -1,5 +0,0 @@ -! - -! .sdata "v1.0000" - .byte 118,49,46,48,48,48,48 -! .end diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reg.asm binutils-2.13.90.0.18/gas/testsuite/gasp/reg.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/reg.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reg.asm Wed Dec 31 16:00:00 1969 @@ -1,9 +0,0 @@ - - -foo .REG (r1) - add foo,foo - -bar .reg (r2) - add bar,foo - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reg.out binutils-2.13.90.0.18/gas/testsuite/gasp/reg.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/reg.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reg.out Wed Dec 31 16:00:00 1969 @@ -1,15 +0,0 @@ -! - -! - -!foo .REG (r1) -! add foo,foo - add r1,r1 -! - -!bar .reg (r2) -! add bar,foo - add r2,r1 -! - -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/rep.asm binutils-2.13.90.0.18/gas/testsuite/gasp/rep.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/rep.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/rep.asm Wed Dec 31 16:00:00 1969 @@ -1,13 +0,0 @@ - .AREPEAT 5 - FIVE - .AREPEAT 2 - TWO - .AENDR - .AREPEAT 3 - THREE - .AREPEAT 2 - TWO - .AENDR - .AENDR - .AENDR - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/rep.out binutils-2.13.90.0.18/gas/testsuite/gasp/rep.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/rep.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/rep.out Wed Dec 31 16:00:00 1969 @@ -1,391 +0,0 @@ -! .AREPEAT 5 -! FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! .AENDR -! FIVE - FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 2 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 4 -! FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! .AENDR -! FIVE - FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 2 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 3 -! FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! .AENDR -! FIVE - FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 2 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 2 -! FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! .AENDR -! FIVE - FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 2 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! .AENDR -! FIVE - FIVE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 3 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 2 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! THREE -! .AREPEAT 2 -! TWO -! .AENDR -! .AENDR -! THREE - THREE -! .AREPEAT 2 -! TWO -! .AENDR -! TWO - TWO -! .AREPEAT 1 -! TWO -! .AENDR -! TWO - TWO -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/repeat.asm binutils-2.13.90.0.18/gas/testsuite/gasp/repeat.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/repeat.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/repeat.asm Wed Dec 31 16:00:00 1969 @@ -1,14 +0,0 @@ - - .AREPEAT 10 - TEN - .AREPEAT 2 - TWENTY - .AENDR - .AENDR - - .AREPEAT 3 - ROTCL R2 - DIV1 R0,R1 - .AENDR - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/repeat.out binutils-2.13.90.0.18/gas/testsuite/gasp/repeat.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/repeat.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/repeat.out Wed Dec 31 16:00:00 1969 @@ -1,211 +0,0 @@ -! - -! .AREPEAT 10 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 9 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 8 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 7 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 6 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 5 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 4 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 3 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 2 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! .AENDR -! TEN - TEN -! .AREPEAT 2 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! .AREPEAT 1 -! TWENTY -! .AENDR -! TWENTY - TWENTY -! - -! .AREPEAT 3 -! ROTCL R2 -! DIV1 R0,R1 -! .AENDR -! ROTCL R2 - ROTCL R2 -! DIV1 R0,R1 - DIV1 R0,R1 -! .AREPEAT 2 -! ROTCL R2 -! DIV1 R0,R1 -! .AENDR -! ROTCL R2 - ROTCL R2 -! DIV1 R0,R1 - DIV1 R0,R1 -! .AREPEAT 1 -! ROTCL R2 -! DIV1 R0,R1 -! .AENDR -! ROTCL R2 - ROTCL R2 -! DIV1 R0,R1 - DIV1 R0,R1 -! - -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr.asm binutils-2.13.90.0.18/gas/testsuite/gasp/reperr.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr.asm Wed Dec 31 16:00:00 1969 @@ -1,2 +0,0 @@ - - .REPEAT 10 diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr.err binutils-2.13.90.0.18/gas/testsuite/gasp/reperr.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -END missing from end of file. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr.out binutils-2.13.90.0.18/gas/testsuite/gasp/reperr.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr.out Wed Dec 31 16:00:00 1969 @@ -1,5 +0,0 @@ -! - -! .REPEAT 10 - .REPEAT 10 -! \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr1.asm binutils-2.13.90.0.18/gas/testsuite/gasp/reperr1.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr1.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr1.asm Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ - - .AREPEAT 10 - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr1.err binutils-2.13.90.0.18/gas/testsuite/gasp/reperr1.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr1.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr1.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -End of file whilst inside AREPEAT, started on line 3. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr1.out binutils-2.13.90.0.18/gas/testsuite/gasp/reperr1.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr1.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr1.out Wed Dec 31 16:00:00 1969 @@ -1,5 +0,0 @@ -! - -! .AREPEAT 10 -! .END -! \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr2.asm binutils-2.13.90.0.18/gas/testsuite/gasp/reperr2.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr2.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr2.asm Wed Dec 31 16:00:00 1969 @@ -1,6 +0,0 @@ - - .AREPEAT 5 - .AENDR - .AENDR - .END - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr2.err binutils-2.13.90.0.18/gas/testsuite/gasp/reperr2.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr2.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr2.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -reperr2.asm:4 AENDR without a AREPEAT. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr2.out binutils-2.13.90.0.18/gas/testsuite/gasp/reperr2.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr2.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr2.out Wed Dec 31 16:00:00 1969 @@ -1,14 +0,0 @@ -! - -! .AREPEAT 5 -! .AENDR -! .AREPEAT 4 -! .AENDR -! .AREPEAT 3 -! .AENDR -! .AREPEAT 2 -! .AENDR -! .AREPEAT 1 -! .AENDR -! .AENDR -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr3.asm binutils-2.13.90.0.18/gas/testsuite/gasp/reperr3.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr3.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr3.asm Wed Dec 31 16:00:00 1969 @@ -1,21 +0,0 @@ - .AREPEAT 4 - .AREPEAT 4 - .AREPEAT 4 - .AREPEAT 4 - stuff - .AENDR - which - .AENDR - will - .AENDR - get - .AENDR - repetaed - .AENDR - - .AENDR - .AENDR - .AENDR - .AENDR - .AENDR - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr3.err binutils-2.13.90.0.18/gas/testsuite/gasp/reperr3.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr3.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr3.err Wed Dec 31 16:00:00 1969 @@ -1,6 +0,0 @@ -reperr3.asm:14 AENDR without a AREPEAT. -reperr3.asm:16 AENDR without a AREPEAT. -reperr3.asm:17 AENDR without a AREPEAT. -reperr3.asm:18 AENDR without a AREPEAT. -reperr3.asm:19 AENDR without a AREPEAT. -reperr3.asm:20 AENDR without a AREPEAT. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/reperr3.out binutils-2.13.90.0.18/gas/testsuite/gasp/reperr3.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/reperr3.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/reperr3.out Wed Dec 31 16:00:00 1969 @@ -1,2035 +0,0 @@ -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! get -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 3 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 2 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 1 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! get - get -! .AREPEAT 3 -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! get -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 3 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 2 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 1 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! get - get -! .AREPEAT 2 -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! get -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 3 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 2 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 1 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! get - get -! .AREPEAT 1 -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! get -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 3 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 2 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! .AREPEAT 1 -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! will -! .AENDR -! .AREPEAT 4 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 3 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 2 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! .AREPEAT 1 -! .AREPEAT 4 -! stuff -! .AENDR -! which -! .AENDR -! .AREPEAT 4 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 3 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 2 -! stuff -! .AENDR -! stuff - stuff -! .AREPEAT 1 -! stuff -! .AENDR -! stuff - stuff -! which - which -! will - will -! get - get -! repetaed - repetaed -! .AENDR -! - -! .AENDR -! .AENDR -! .AENDR -! .AENDR -! .AENDR -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/sdata.asm binutils-2.13.90.0.18/gas/testsuite/gasp/sdata.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/sdata.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/sdata.asm Wed Dec 31 16:00:00 1969 @@ -1,24 +0,0 @@ - - - .SDATA "HI","STEVE" - .SDATA "HI" , "STEVE" , <72>,<73>,<83><69><86><69> - - .SDATA "H""I" , "STEVE" , <72>,<73>,<83><69><86><69> - - - - .SDATA "SHOULD NOT FAIL" "HERE" - .SDATA "SHOULD FAIL" foo "HERE" - - .SDATAB 8,"BOINK" - - ; examples from book - - .SDATAB 2,"AAAAA" - .SDATAB 2,"""BBB""" - .SDATAB 2,"AABB" - - -a1: .SDATAZ "HI" -a2: .SDATAC "HI" -a3: .SDATA "HI" diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/sdata.err binutils-2.13.90.0.18/gas/testsuite/gasp/sdata.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/sdata.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/sdata.err Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ -sdata.asm:19 Character code in string must be absolute expression. -sdata.asm:19 Missing > for character code. -END missing from end of file. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/sdata.out binutils-2.13.90.0.18/gas/testsuite/gasp/sdata.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/sdata.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/sdata.out Wed Dec 31 16:00:00 1969 @@ -1,59 +0,0 @@ -! - -! - -! .SDATA "HI","STEVE" - .byte 72,73,83,84,69,86,69 -! .SDATA "HI" , "STEVE" , <72>,<73>,<83><69><86><69> - .byte 72,73,83,84,69,86,69,72,73,83,69,86,69 -! - -! .SDATA "H""I" , "STEVE" , <72>,<73>,<83><69><86><69> - .byte 72,34,73,83,84,69,86,69,72,73,83,69,86,69 -! - -! - -! - -! .SDATA "SHOULD NOT FAIL" "HERE" - .byte 83,72,79,85,76,68,32,78,79,84,32,70,65,73,76,72,69,82,69 -! .SDATA "SHOULD FAIL" foo "HERE" - .byte 83,72,79,85,76,68,32,70,65,73,76,102,111,111,32,34,72,69,82,69,34,32 -! - -! .SDATAB 8,"BOINK" - .byte 66,79,73,78,75 - .byte 66,79,73,78,75 - .byte 66,79,73,78,75 - .byte 66,79,73,78,75 - .byte 66,79,73,78,75 - .byte 66,79,73,78,75 - .byte 66,79,73,78,75 - .byte 66,79,73,78,75 -! - -! ; examples from book - ; examples from book -! - -! .SDATAB 2,"AAAAA" - .byte 65,65,65,65,65 - .byte 65,65,65,65,65 -! .SDATAB 2,"""BBB""" - .byte 34,66,66,66,34 - .byte 34,66,66,66,34 -! .SDATAB 2,"AABB" - .byte 65,65,66,66,0 - .byte 65,65,66,66,0 -! - -! - -!a1: .SDATAZ "HI" -a1: .byte 72,73,0 -!a2: .SDATAC "HI" -a2: .byte 2,72,73 -!a3: .SDATA "HI" -a3: .byte 72,73 -! \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/sfunc.asm binutils-2.13.90.0.18/gas/testsuite/gasp/sfunc.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/sfunc.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/sfunc.asm Wed Dec 31 16:00:00 1969 @@ -1,26 +0,0 @@ - - .MACRO RESERVE_STR P1=0 P2 - .SDATA .SUBSTR("ABCDEFG",\P1,\P2) - .ENDM - - RESERVE_STR 2,2 - RESERVE_STR ,3 - - - .MACRO FIND_STR P1 - .DATA.W .INSTR("ABCDEFG","\P1", 0) - .ENDM - - FIND_STR CDE - FIND_STR H - - .MACRO RESERVE_LENGTH P1 - .ALIGN 4 - .SRES .LEN("\P1") - .ENDM - - RESERVE_LENGTH ABCDEF - RESERVE_LENGTH ABC - - .END - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/sfunc.out binutils-2.13.90.0.18/gas/testsuite/gasp/sfunc.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/sfunc.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/sfunc.out Wed Dec 31 16:00:00 1969 @@ -1,49 +0,0 @@ -! - -! .MACRO RESERVE_STR P1=0 P2 -! .SDATA .SUBSTR("ABCDEFG",\P1,\P2) -! .ENDM -! - -! RESERVE_STR 2,2 -! .SDATA .SUBSTR("ABCDEFG",2,2) - .byte 67,68 -! RESERVE_STR ,3 -! .SDATA .SUBSTR("ABCDEFG",0,3) - .byte 65,66,67 -! - -! - -! .MACRO FIND_STR P1 -! .DATA.W .INSTR("ABCDEFG","\P1", 0) -! .ENDM -! - -! FIND_STR CDE -! .DATA.W .INSTR("ABCDEFG","CDE", 0) - .short 2 -! FIND_STR H -! .DATA.W .INSTR("ABCDEFG","H", 0) - .short -1 -! - -! .MACRO RESERVE_LENGTH P1 -! .ALIGN 4 -! .SRES .LEN("\P1") -! .ENDM -! - -! RESERVE_LENGTH ABCDEF -! .ALIGN 4 - .align 4 -! .SRES .LEN("ABCDEF") - .space 24 -! RESERVE_LENGTH ABC -! .ALIGN 4 - .align 4 -! .SRES .LEN("ABC") - .space 12 -! - -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/t1.asm binutils-2.13.90.0.18/gas/testsuite/gasp/t1.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/t1.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/t1.asm Wed Dec 31 16:00:00 1969 @@ -1,3 +0,0 @@ - - test for eof in middle of line - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/t1.out binutils-2.13.90.0.18/gas/testsuite/gasp/t1.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/t1.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/t1.out Wed Dec 31 16:00:00 1969 @@ -1,5 +0,0 @@ -! - -! test for eof in middle of line - test for eof in middle of line -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/t2.asm binutils-2.13.90.0.18/gas/testsuite/gasp/t2.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/t2.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/t2.asm Wed Dec 31 16:00:00 1969 @@ -1,8 +0,0 @@ - - - test -+ continued -+ lines - - - .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/t2.out binutils-2.13.90.0.18/gas/testsuite/gasp/t2.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/t2.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/t2.out Wed Dec 31 16:00:00 1969 @@ -1,13 +0,0 @@ -! - -! - -! test -!+continued -!+lines - testcontinuedlines -! - -! - -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/t3.asm binutils-2.13.90.0.18/gas/testsuite/gasp/t3.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/t3.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/t3.asm Wed Dec 31 16:00:00 1969 @@ -1,12 +0,0 @@ - - test base convertions - - B'1001000 - Q'210 - D'136 - H'88 - - FOOB'1001000BAR - FOOQ'210BAR - FOOD'136BAR - FOOH'88BAR diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/t3.err binutils-2.13.90.0.18/gas/testsuite/gasp/t3.err --- binutils-2.13.90.0.16/gas/testsuite/gasp/t3.err Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/t3.err Wed Dec 31 16:00:00 1969 @@ -1 +0,0 @@ -END missing from end of file. diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/t3.out binutils-2.13.90.0.18/gas/testsuite/gasp/t3.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/t3.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/t3.out Wed Dec 31 16:00:00 1969 @@ -1,25 +0,0 @@ -! - -! test base convertions - test base convertions -! - -! B'1001000 - 72 -! Q'210 - 136 -! D'136 - 136 -! H'88 - 136 -! - -! FOOB'1001000BAR - FOOB'1001000BAR -! FOOQ'210BAR - FOOQ'210BAR -! FOOD'136BAR - FOOD'136BAR -! FOOH'88BAR - FOOH'88BAR -! \ No newline at end of file diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/while.asm binutils-2.13.90.0.18/gas/testsuite/gasp/while.asm --- binutils-2.13.90.0.16/gas/testsuite/gasp/while.asm Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/while.asm Wed Dec 31 16:00:00 1969 @@ -1,18 +0,0 @@ - donkey -bar .ASSIGNA 0 - .AWHILE \&bar LT 5 - HI BAR IS \&bar -foo .ASSIGNA 0 - .AWHILE \&foo LT 2 - HI BEFORE - .AREPEAT 2 - HI MEDIUM \&foo \&bar - .AENDR - HI AFTER -foo .ASSIGNA \&foo + 1 - .AENDW -bar .ASSIGNA \&bar + 1 - AND ITS NOW \&bar - .AENDW - .END - diff -uprN binutils-2.13.90.0.16/gas/testsuite/gasp/while.out binutils-2.13.90.0.18/gas/testsuite/gasp/while.out --- binutils-2.13.90.0.16/gas/testsuite/gasp/while.out Thu Jun 3 11:02:04 1999 +++ binutils-2.13.90.0.18/gas/testsuite/gasp/while.out Wed Dec 31 16:00:00 1969 @@ -1,388 +0,0 @@ -! donkey - donkey -!bar .ASSIGNA 0 -! .AWHILE \&bar LT 5 -! HI BAR IS \&bar -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar -! .AENDW -! HI BAR IS \&bar - HI BAR IS 0 -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 0 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 0 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 0 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 0 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar - AND ITS NOW 1 -! .AWHILE \&bar LT 5 -! HI BAR IS \&bar -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar -! .AENDW -! HI BAR IS \&bar - HI BAR IS 1 -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 1 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 1 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 1 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 1 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar - AND ITS NOW 2 -! .AWHILE \&bar LT 5 -! HI BAR IS \&bar -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar -! .AENDW -! HI BAR IS \&bar - HI BAR IS 2 -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 2 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 2 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 2 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 2 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar - AND ITS NOW 3 -! .AWHILE \&bar LT 5 -! HI BAR IS \&bar -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar -! .AENDW -! HI BAR IS \&bar - HI BAR IS 3 -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 3 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 3 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 3 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 3 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar - AND ITS NOW 4 -! .AWHILE \&bar LT 5 -! HI BAR IS \&bar -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar -! .AENDW -! HI BAR IS \&bar - HI BAR IS 4 -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 4 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 0 4 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -! HI BEFORE - HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 4 -! .AREPEAT 1 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI MEDIUM \&foo \&bar - HI MEDIUM 1 4 -! HI AFTER - HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar - AND ITS NOW 5 -! .AWHILE \&bar LT 5 -! HI BAR IS \&bar -!foo .ASSIGNA 0 -! .AWHILE \&foo LT 2 -! HI BEFORE -! .AREPEAT 2 -! HI MEDIUM \&foo \&bar -! .AENDR -! HI AFTER -!foo .ASSIGNA \&foo + 1 -! .AENDW -!bar .ASSIGNA \&bar + 1 -! AND ITS NOW \&bar -! .AENDW -! .END diff -uprN binutils-2.13.90.0.16/gas/testsuite/lib/gas-defs.exp binutils-2.13.90.0.18/gas/testsuite/lib/gas-defs.exp --- binutils-2.13.90.0.16/gas/testsuite/lib/gas-defs.exp Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gas/testsuite/lib/gas-defs.exp Tue Jan 21 10:21:33 2003 @@ -183,7 +183,7 @@ proc gas_init { args } { } -# run_dump_test FILE +# run_dump_test FILE (optional:) EXTRA_OPTIONS # # Assemble a .s file, then run some utility on it and check the output. # @@ -207,6 +207,12 @@ proc gas_init { args } { # list ends with the first line that doesn't match the above syntax # (hmm, not great for error detection). # +# The optional EXTRA_OPTIONS argument to `run_dump_test' is a list of +# two-element lists. The first element of each is an option name, and +# the second additional arguments to be added on to the end of the +# option list as given in FILE.d. (If omitted, no additional options +# are added.) +# # The interesting options are: # # name: TEST-NAME @@ -247,7 +253,7 @@ proc gas_init { args } { # regexps in FILE.d. `regexp_diff' is defined later in this file; see # further comments there. -proc run_dump_test { name } { +proc run_dump_test { name {extra_options {}} } { global subdir srcdir global OBJDUMP NM AS OBJCOPY READELF global OBJDUMPFLAGS NMFLAGS ASFLAGS OBJCOPYFLAGS READELFFLAGS @@ -293,6 +299,22 @@ proc run_dump_test { name } { set opts($opt_name) $opt_val } + foreach i $extra_options { + set opt_name [lindex $i 0] + set opt_val [lindex $i 1] + if ![info exists opts($opt_name)] { + perror "unknown option $opt_name given in extra_opts" + unresolved $subdir/$name + return + } + # add extra option to end of existing option, adding space + # if necessary. + if [string length $opts($opt_name)] { + append opts($opt_name) " " + } + append opts($opt_name) $opt_val + } + if {$opts(PROG) != ""} { switch -- $opts(PROG) { objdump diff -uprN binutils-2.13.90.0.16/gas/write.c binutils-2.13.90.0.18/gas/write.c --- binutils-2.13.90.0.16/gas/write.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/gas/write.c Mon Dec 16 12:22:52 2002 @@ -691,11 +691,11 @@ size_seg (abfd, sec, xxx) else flags &= ~SEC_RELOC; x = bfd_set_section_flags (abfd, sec, flags); - assert (x == true); + assert (x); newsize = md_section_align (sec, size); x = bfd_set_section_size (abfd, sec, newsize); - assert (x == true); + assert (x); /* If the size had to be rounded up, add some padding in the last non-empty frag. */ @@ -1148,7 +1148,7 @@ write_contents (abfd, sec, xxx) x = bfd_set_section_contents (stdoutput, sec, f->fr_literal, (file_ptr) offset, (bfd_size_type) f->fr_fix); - if (x == false) + if (!x) { bfd_perror (stdoutput->filename); as_perror (_("FATAL: Can't write %s"), stdoutput->filename); @@ -1172,7 +1172,7 @@ write_contents (abfd, sec, xxx) fill_literal, (file_ptr) offset, (bfd_size_type) fill_size); - if (x == false) + if (!x) { bfd_perror (stdoutput->filename); as_perror (_("FATAL: Can't write %s"), @@ -1206,7 +1206,7 @@ write_contents (abfd, sec, xxx) x = bfd_set_section_contents (stdoutput, sec, buf, (file_ptr) offset, (bfd_size_type) n_per_buf * fill_size); - if (x != true) + if (!x) as_fatal (_("cannot write to output file")); offset += n_per_buf * fill_size; } @@ -1340,7 +1340,7 @@ set_symtab () int nsyms; asymbol **asympp; symbolS *symp; - boolean result; + bfd_boolean result; extern PTR bfd_alloc PARAMS ((bfd *, bfd_size_type)); /* Count symbols. We can't rely on a count made by the loop in @@ -1366,7 +1366,7 @@ set_symtab () else asympp = 0; result = bfd_set_symtab (stdoutput, asympp, nsyms); - assert (result == true); + assert (result); symbol_table_frozen = 1; } #endif @@ -1409,7 +1409,25 @@ subsegs_finish () any alignment is meaningless, and, moreover, will look weird if we are generating a listing. */ if (!had_errors ()) - alignment = SUB_SEGMENT_ALIGN (now_seg, frchainP); + { + alignment = SUB_SEGMENT_ALIGN (now_seg, frchainP); +#ifdef BFD_ASSEMBLER + if ((bfd_get_section_flags (now_seg->owner, now_seg) & SEC_MERGE) + && now_seg->entsize) + { + unsigned int entsize = now_seg->entsize; + int entalign = 0; + + while ((entsize & 1) == 0) + { + ++entalign; + entsize >>= 1; + } + if (entalign > alignment) + alignment = entalign; + } +#endif + } if (subseg_text_p (now_seg)) frag_align_code (alignment, 0); @@ -1606,7 +1624,7 @@ write_object_file () #ifdef OBJ_BOUT || fragP->fr_next == data_frag_root #endif - || ((fragP->fr_next->fr_address - fragP->fr_address) + || ((offsetT) (fragP->fr_next->fr_address - fragP->fr_address) == (fragP->fr_fix + fragP->fr_offset * fragP->fr_var)))) abort (); #endif diff -uprN binutils-2.13.90.0.16/gprof/ChangeLog binutils-2.13.90.0.18/gprof/ChangeLog --- binutils-2.13.90.0.16/gprof/ChangeLog Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gprof/ChangeLog Mon Dec 16 12:22:53 2002 @@ -1,3 +1,17 @@ +2002-12-02 Nick Clifton + + * configure.in (LINGUAS): Add pt_BR. + * configure: Regenerate. + * po/pt_BR: New Brazillian Portugese translation. + +2002-11-30 Alan Modra + + * basic_blocks.c, basic_blocks.h, cg_arcs.c, cg_dfn.c, cg_print.c, + corefile.c, gmon_io.c, gprof.c, gprof.h, hist.c, mips.c, source.c, + source.h, sym_ids.c, sym_ids.h, symtab.h, tahoe.c, vax.c: Replace + boolean with bfd_boolean, true with TRUE, false with FALSE. + Formatting. + 2002-11-12 Nick Clifton * configure.in (ALL_LINGUAS): Add da. diff -uprN binutils-2.13.90.0.16/gprof/basic_blocks.c binutils-2.13.90.0.18/gprof/basic_blocks.c --- binutils-2.13.90.0.16/gprof/basic_blocks.c Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/basic_blocks.c Mon Dec 16 12:22:53 2002 @@ -38,7 +38,7 @@ static void fskip_string PARAMS ((FILE * static void annotate_with_count PARAMS ((char *, unsigned int, int, PTR)); /* Default option values: */ -boolean bb_annotate_all_lines = false; +bfd_boolean bb_annotate_all_lines = FALSE; unsigned long bb_min_calls = 1; int bb_table_length = 10; @@ -150,8 +150,8 @@ bb_read_rec (ifp, filename) care about anymore. */ if ((fread (&ncalls, sizeof (ncalls), 1, ifp) != 1) || (fread (&addr, sizeof (addr), 1, ifp) != 1) - || (fskip_string (ifp), false) - || (fskip_string (ifp), false) + || (fskip_string (ifp), FALSE) + || (fskip_string (ifp), FALSE) || (fread (&line_num, sizeof (line_num), 1, ifp) != 1)) { perror (filename); @@ -193,11 +193,11 @@ bb_read_rec (ifp, filename) } else { - static boolean user_warned = false; + static bfd_boolean user_warned = FALSE; if (!user_warned) { - user_warned = true; + user_warned = TRUE; fprintf (stderr, _("%s: warning: ignoring basic-block exec counts (use -l or --line)\n"), whoami); @@ -262,7 +262,7 @@ print_exec_counts () unsigned int i, j, len; if (first_output) - first_output = false; + first_output = FALSE; else printf ("\f\n"); diff -uprN binutils-2.13.90.0.16/gprof/basic_blocks.h binutils-2.13.90.0.18/gprof/basic_blocks.h --- binutils-2.13.90.0.16/gprof/basic_blocks.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/basic_blocks.h Mon Dec 16 12:22:53 2002 @@ -21,7 +21,7 @@ Foundation, Inc., 59 Temple Place - Suit #define basic_blocks_h /* Options: */ -extern boolean bb_annotate_all_lines; /* Force annotation of all lines? */ +extern bfd_boolean bb_annotate_all_lines; /* Force annotation of all lines? */ extern int bb_table_length; /* Length of most-used bb table. */ extern unsigned long bb_min_calls; /* Minimum execution count. */ diff -uprN binutils-2.13.90.0.16/gprof/cg_arcs.c binutils-2.13.90.0.18/gprof/cg_arcs.c --- binutils-2.13.90.0.16/gprof/cg_arcs.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gprof/cg_arcs.c Mon Dec 16 12:22:53 2002 @@ -316,7 +316,7 @@ cycle_link () ++num; ++cyc; sym_init (cyc); - cyc->cg.print_flag = true; /* should this be printed? */ + cyc->cg.print_flag = TRUE; /* should this be printed? */ cyc->cg.top_order = DFN_NAN; /* graph call chain top-sort order */ cyc->cg.cyc.num = num; /* internal number of cycle on */ cyc->cg.cyc.head = cyc; /* pointer to head of cycle */ @@ -375,7 +375,7 @@ inherit_flags (child) if (child == head) { /* just a regular child, check its parents: */ - child->cg.print_flag = false; + child->cg.print_flag = FALSE; child->cg.prop.fract = 0.0; for (arc = child->cg.parents; arc; arc = arc->next_parent) { @@ -403,7 +403,7 @@ inherit_flags (child) * Its a member of a cycle, look at all parents from outside * the cycle. */ - head->cg.print_flag = false; + head->cg.print_flag = FALSE; head->cg.prop.fract = 0.0; for (member = head->cg.cyc.next; member; member = member->cg.cyc.next) { @@ -481,7 +481,7 @@ propagate_flags (symbols) || (syms[INCL_GRAPH].len == 0 && !sym_lookup (&syms[EXCL_GRAPH], child->addr))) { - child->cg.print_flag = true; + child->cg.print_flag = TRUE; } } else @@ -494,7 +494,7 @@ propagate_flags (symbols) if (!sym_lookup (&syms[INCL_GRAPH], child->addr) && sym_lookup (&syms[EXCL_GRAPH], child->addr)) { - child->cg.print_flag = false; + child->cg.print_flag = FALSE; } } if (child->cg.prop.fract == 0.0) @@ -632,7 +632,7 @@ cg_assemble () parent->cg.prop.fract = 0.0; parent->cg.prop.self = 0.0; parent->cg.prop.child = 0.0; - parent->cg.print_flag = false; + parent->cg.print_flag = FALSE; parent->cg.top_order = DFN_NAN; parent->cg.cyc.num = 0; parent->cg.cyc.head = parent; diff -uprN binutils-2.13.90.0.16/gprof/cg_dfn.c binutils-2.13.90.0.18/gprof/cg_dfn.c --- binutils-2.13.90.0.16/gprof/cg_dfn.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gprof/cg_dfn.c Mon Dec 16 12:22:53 2002 @@ -44,8 +44,8 @@ typedef struct } DFN_Stack; -static boolean is_numbered PARAMS ((Sym *)); -static boolean is_busy PARAMS ((Sym *)); +static bfd_boolean is_numbered PARAMS ((Sym *)); +static bfd_boolean is_busy PARAMS ((Sym *)); static void find_cycle PARAMS ((Sym *)); static void pre_visit PARAMS ((Sym *)); static void post_visit PARAMS ((Sym *)); @@ -59,7 +59,7 @@ int dfn_counter = DFN_NAN; /* * Is CHILD already numbered? */ -static boolean +static bfd_boolean is_numbered (child) Sym *child; { @@ -70,15 +70,15 @@ is_numbered (child) /* * Is CHILD already busy? */ -static boolean +static bfd_boolean is_busy (child) Sym *child; { if (child->cg.top_order == DFN_NAN) { - return false; + return FALSE; } - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/gprof/cg_print.c binutils-2.13.90.0.18/gprof/cg_print.c --- binutils-2.13.90.0.16/gprof/cg_print.c Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/cg_print.c Mon Dec 16 12:22:53 2002 @@ -63,7 +63,7 @@ static void print_header () { if (first_output) - first_output = false; + first_output = FALSE; else printf ("\f\n"); diff -uprN binutils-2.13.90.0.16/gprof/configure binutils-2.13.90.0.18/gprof/configure --- binutils-2.13.90.0.16/gprof/configure Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gprof/configure Mon Dec 16 12:22:53 2002 @@ -2485,7 +2485,7 @@ fi done -ALL_LINGUAS="fr tr sv es id da" +ALL_LINGUAS="fr tr sv es id da pt_BR" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 echo "configure:2491: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. diff -uprN binutils-2.13.90.0.16/gprof/configure.in binutils-2.13.90.0.18/gprof/configure.in --- binutils-2.13.90.0.16/gprof/configure.in Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/gprof/configure.in Mon Dec 16 12:22:53 2002 @@ -23,7 +23,7 @@ AC_PROG_INSTALL AC_CHECK_FUNCS(setmode) -ALL_LINGUAS="fr tr sv es id da" +ALL_LINGUAS="fr tr sv es id da pt_BR" CY_GNU_GETTEXT LIBIBERTY_HAVE_WEAK_SYMBOL diff -uprN binutils-2.13.90.0.16/gprof/corefile.c binutils-2.13.90.0.18/gprof/corefile.c --- binutils-2.13.90.0.16/gprof/corefile.c Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.18/gprof/corefile.c Mon Dec 16 12:22:53 2002 @@ -41,7 +41,7 @@ unsigned int symbol_map_count; static void read_function_mappings PARAMS ((const char *)); static int core_sym_class PARAMS ((asymbol *)); -static boolean get_src_info +static bfd_boolean get_src_info PARAMS ((bfd_vma, const char **, const char **, int *)); extern void i386_find_call PARAMS ((Sym *, bfd_vma, bfd_vma)); @@ -277,7 +277,7 @@ find_call (parent, p_lowpc, p_highpc) whoami, bfd_printable_name(core_bfd)); /* Don't give the error more than once. */ - ignore_direct_calls = false; + ignore_direct_calls = FALSE; } } @@ -370,7 +370,7 @@ core_sym_class (sym) /* Get whatever source info we can get regarding address ADDR. */ -static boolean +static bfd_boolean get_src_info (addr, filename, name, line_num) bfd_vma addr; const char **filename; @@ -390,14 +390,14 @@ get_src_info (addr, filename, name, line *filename = fname; *name = func_name; *line_num = l; - return true; + return TRUE; } else { DBG (AOUTDEBUG, printf ("[get_src_info] no info for 0x%lx (%s:%d,%s)\n", (long) addr, fname ? fname : "", l, func_name ? func_name : "")); - return false; + return FALSE; } } @@ -536,11 +536,11 @@ core_create_function_syms (cbfd) } } - symtab.limit->is_func = true; - symtab.limit->is_bb_head = true; + symtab.limit->is_func = TRUE; + symtab.limit->is_bb_head = TRUE; if (class == 't') - symtab.limit->is_static = true; + symtab.limit->is_static = TRUE; /* Keep track of the minimum and maximum vma addresses used by all symbols. When computing the max_vma, use the ending address of the diff -uprN binutils-2.13.90.0.16/gprof/gmon_io.c binutils-2.13.90.0.18/gprof/gmon_io.c --- binutils-2.13.90.0.16/gprof/gmon_io.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gprof/gmon_io.c Mon Dec 16 12:22:53 2002 @@ -586,7 +586,7 @@ gmon_out_read (filename) printf (nbbs == 1 ? _("\t%d basic-block count record\n") : _("\t%d basic-block count records\n"), nbbs); - first_output = false; + first_output = FALSE; } } diff -uprN binutils-2.13.90.0.16/gprof/gprof.c binutils-2.13.90.0.18/gprof/gprof.c --- binutils-2.13.90.0.16/gprof/gprof.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/gprof/gprof.c Mon Dec 16 12:22:53 2002 @@ -58,19 +58,19 @@ long hz = HZ_WRONG; int debug_level = 0; int output_style = 0; int output_width = 80; -boolean bsd_style_output = false; -boolean demangle = true; -boolean discard_underscores = true; -boolean ignore_direct_calls = false; -boolean ignore_static_funcs = false; -boolean ignore_zeros = true; -boolean line_granularity = false; -boolean print_descriptions = true; -boolean print_path = false; -boolean ignore_non_functions = false; +bfd_boolean bsd_style_output = FALSE; +bfd_boolean demangle = TRUE; +bfd_boolean discard_underscores = TRUE; +bfd_boolean ignore_direct_calls = FALSE; +bfd_boolean ignore_static_funcs = FALSE; +bfd_boolean ignore_zeros = TRUE; +bfd_boolean line_granularity = FALSE; +bfd_boolean print_descriptions = TRUE; +bfd_boolean print_path = FALSE; +bfd_boolean ignore_non_functions = FALSE; File_Format file_format = FF_AUTO; -boolean first_output = true; +bfd_boolean first_output = TRUE; char copyright[] = "@(#) Copyright (c) 1983 Regents of the University of California.\n\ @@ -214,7 +214,7 @@ main (argc, argv) switch (ch) { case 'a': - ignore_static_funcs = true; + ignore_static_funcs = TRUE; break; case 'A': if (optarg) @@ -225,14 +225,14 @@ main (argc, argv) user_specified |= STYLE_ANNOTATED_SOURCE; break; case 'b': - print_descriptions = false; + print_descriptions = FALSE; break; case 'B': output_style |= STYLE_CALL_GRAPH; user_specified |= STYLE_CALL_GRAPH; break; case 'c': - ignore_direct_calls = true; + ignore_direct_calls = TRUE; break; case 'C': if (optarg) @@ -258,7 +258,7 @@ main (argc, argv) #endif /* DEBUG */ break; case 'D': - ignore_non_functions = true; + ignore_non_functions = TRUE; break; case 'E': sym_id_add (optarg, EXCL_TIME); @@ -301,10 +301,10 @@ main (argc, argv) sym_id_add (optarg, EXCL_ARCS); break; case 'l': - line_granularity = true; + line_granularity = TRUE; break; case 'L': - print_path = true; + print_path = TRUE; break; case 'm': bb_min_calls = (unsigned long) strtoul (optarg, (char **) NULL, 10); @@ -414,7 +414,7 @@ main (argc, argv) } break; case 'T': - bsd_style_output = true; + bsd_style_output = TRUE; break; case 'v': /* This output is intended to follow the GNU standards document. */ @@ -431,13 +431,13 @@ This program is free software. This pro } break; case 'x': - bb_annotate_all_lines = true; + bb_annotate_all_lines = TRUE; break; case 'y': - create_annotation_files = true; + create_annotation_files = TRUE; break; case 'z': - ignore_zeros = false; + ignore_zeros = FALSE; break; case 'Z': if (optarg) @@ -452,12 +452,12 @@ This program is free software. This pro user_specified |= STYLE_ANNOTATED_SOURCE; break; case OPTION_DEMANGLE: - demangle = true; + demangle = TRUE; if (optarg != NULL) style = optarg; break; case OPTION_NO_DEMANGLE: - demangle = false; + demangle = FALSE; break; case OPTION_DEMANGLER: demangler = optarg; diff -uprN binutils-2.13.90.0.16/gprof/gprof.h binutils-2.13.90.0.18/gprof/gprof.h --- binutils-2.13.90.0.16/gprof/gprof.h Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gprof/gprof.h Mon Dec 16 12:22:53 2002 @@ -119,20 +119,20 @@ extern long hz; /* ticks per second */ extern int debug_level; /* debug level */ extern int output_style; extern int output_width; /* controls column width in index */ -extern boolean bsd_style_output; /* as opposed to FSF style output */ -extern boolean demangle; /* demangle symbol names? */ -extern boolean discard_underscores; /* discard leading underscores? */ -extern boolean ignore_direct_calls; /* don't count direct calls */ -extern boolean ignore_static_funcs; /* suppress static functions */ -extern boolean ignore_zeros; /* ignore unused symbols/files */ -extern boolean line_granularity; /* function or line granularity? */ -extern boolean print_descriptions; /* output profile description */ -extern boolean print_path; /* print path or just filename? */ -extern boolean ignore_non_functions; /* Ignore non-function symbols. */ +extern bfd_boolean bsd_style_output; /* as opposed to FSF style output */ +extern bfd_boolean demangle; /* demangle symbol names? */ +extern bfd_boolean discard_underscores; /* discard leading underscores? */ +extern bfd_boolean ignore_direct_calls; /* don't count direct calls */ +extern bfd_boolean ignore_static_funcs; /* suppress static functions */ +extern bfd_boolean ignore_zeros; /* ignore unused symbols/files */ +extern bfd_boolean line_granularity; /* function or line granularity? */ +extern bfd_boolean print_descriptions; /* output profile description */ +extern bfd_boolean print_path; /* print path or just filename? */ +extern bfd_boolean ignore_non_functions; /* Ignore non-function symbols. */ extern File_Format file_format; /* requested file format */ -extern boolean first_output; /* no output so far? */ +extern bfd_boolean first_output; /* no output so far? */ extern void done PARAMS ((int status)) ATTRIBUTE_NORETURN; diff -uprN binutils-2.13.90.0.16/gprof/hist.c binutils-2.13.90.0.18/gprof/hist.c --- binutils-2.13.90.0.16/gprof/hist.c Thu Mar 7 11:52:39 2002 +++ binutils-2.13.90.0.18/gprof/hist.c Mon Dec 16 12:22:53 2002 @@ -468,7 +468,7 @@ hist_print () bfd_vma addr; if (first_output) - first_output = false; + first_output = FALSE; else printf ("\f\n"); diff -uprN binutils-2.13.90.0.16/gprof/mips.c binutils-2.13.90.0.18/gprof/mips.c --- binutils-2.13.90.0.16/gprof/mips.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gprof/mips.c Mon Dec 16 12:22:53 2002 @@ -48,11 +48,11 @@ mips_find_call (parent, p_lowpc, p_highp unsigned int op; int offset; Sym *child; - static boolean inited = false; + static bfd_boolean inited = FALSE; if (!inited) { - inited = true; + inited = TRUE; sym_init (&indirect_child); indirect_child.name = _(""); indirect_child.cg.prop.fract = 1.0; diff -uprN binutils-2.13.90.0.16/gprof/po/pt_BR.po binutils-2.13.90.0.18/gprof/po/pt_BR.po --- binutils-2.13.90.0.16/gprof/po/pt_BR.po Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/gprof/po/pt_BR.po Mon Dec 16 12:22:53 2002 @@ -0,0 +1,551 @@ +# gprof: translation to Brazilian Portuguese (pt_BR) +# Copyright (C) 2002 Free Software Foundation, Inc. +# Alexandre Folle de Menezes , 2002. +# based on the version 2.12.91 translation to Spanish (es) by +# Cristian Othón Martínez Vera , 2002. +# +msgid "" +msgstr "" +"Project-Id-Version: gprof 2.12.91\n" +"POT-Creation-Date: 2002-07-23 15:58-0400\n" +"PO-Revision-Date: 2002-11-29 03:00-0300\n" +"Last-Translator: Alexandre Folle de Menezes \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: alpha.c:93 mips.c:47 +msgid "" +msgstr "" + +#: alpha.c:110 mips.c:64 +#, c-format +msgid "[find_call] %s: 0x%lx to 0x%lx\n" +msgstr "[find_call] %s: 0x%lx até 0x%lx\n" + +#: alpha.c:132 +#, c-format +msgid "[find_call] 0x%lx: jsr%s \n" +msgstr "[find_call] 0x%lx: jsr%s \n" + +#: alpha.c:142 +#, c-format +msgid "[find_call] 0x%lx: bsr" +msgstr "[find_call] 0x%lx: bsr" + +#: basic_blocks.c:134 call_graph.c:94 hist.c:98 +#, c-format +msgid "%s: %s: unexpected end of file\n" +msgstr "%s: %s: final de arquivo inesperado\n" + +#: basic_blocks.c:202 +#, c-format +msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n" +msgstr "%s: aviso: ignorando os contadores de execução de blocos básicos (use -l ou --line)\n" + +#. FIXME: This only works if bfd_vma is unsigned long. +#: basic_blocks.c:295 basic_blocks.c:305 +#, c-format +msgid "%s:%d: (%s:0x%lx) %lu executions\n" +msgstr "%s:%d: (%s:0x%lx) %lu execuções\n" + +#: basic_blocks.c:296 basic_blocks.c:306 +msgid "" +msgstr "" + +#: basic_blocks.c:553 +#, c-format +msgid "" +"\n" +"\n" +"Top %d Lines:\n" +"\n" +" Line Count\n" +"\n" +msgstr "" +"\n" +"\n" +"%d Linhas Principais:\n" +"\n" +" Linha Contador\n" +"\n" + +#: basic_blocks.c:577 +msgid "" +"\n" +"Execution Summary:\n" +"\n" +msgstr "" +"\n" +"Resumo da Execução:\n" +"\n" + +#: basic_blocks.c:578 +#, c-format +msgid "%9ld Executable lines in this file\n" +msgstr "%9ld Linhas executáveis neste arquivo\n" + +#: basic_blocks.c:580 +#, c-format +msgid "%9ld Lines executed\n" +msgstr "%9ld Linhas executadas\n" + +#: basic_blocks.c:581 +#, c-format +msgid "%9.2f Percent of the file executed\n" +msgstr "%9.2f Percentagem executada do arquivo\n" + +#: basic_blocks.c:585 +#, c-format +msgid "" +"\n" +"%9lu Total number of line executions\n" +msgstr "" +"\n" +"%9lu Número total de execuções de linha\n" + +#: basic_blocks.c:587 +#, c-format +msgid "%9.2f Average executions per line\n" +msgstr "%9.2f Média de execuções por linha\n" + +#: call_graph.c:71 +#, c-format +msgid "[cg_tally] arc from %s to %s traversed %lu times\n" +msgstr "[cg_tally] arco de %s até %s percorido %lu vezes\n" + +#: cg_print.c:73 +msgid "" +"\t\t Call graph (explanation follows)\n" +"\n" +msgstr "" +"\t\t Gráfico de chamadas (explicação adiante)\n" +"\n" + +#: cg_print.c:75 +msgid "" +"\t\t\tCall graph\n" +"\n" +msgstr "" +"\t\t\tGráfico de chamadas\n" +"\n" + +#: cg_print.c:78 hist.c:363 +#, c-format +msgid "" +"\n" +"granularity: each sample hit covers %ld byte(s)" +msgstr "" +"\n" +"granularidade: cada elemento de amostra cobre %ld byte(s)" + +#: cg_print.c:82 +#, c-format +msgid "" +" for %.2f%% of %.2f seconds\n" +"\n" +msgstr "" +" para %.2f%% de %.2f segundos\n" +"\n" + +#: cg_print.c:86 +msgid "" +" no time propagated\n" +"\n" +msgstr "" +" nenhum tempo propagado\n" +"\n" + +#: cg_print.c:95 cg_print.c:98 cg_print.c:100 +msgid "called" +msgstr "chamado" + +#: cg_print.c:95 cg_print.c:100 +msgid "total" +msgstr "total" + +#: cg_print.c:95 +msgid "parents" +msgstr "pais" + +#: cg_print.c:97 cg_print.c:98 +msgid "index" +msgstr "índice" + +#: cg_print.c:97 +msgid "%time" +msgstr "%tempo" + +#: cg_print.c:97 cg_print.c:98 +msgid "self" +msgstr "si mesmo" + +#: cg_print.c:97 +msgid "descendants" +msgstr "descendentes" + +#: cg_print.c:98 hist.c:389 +msgid "name" +msgstr "nome" + +#: cg_print.c:100 +msgid "children" +msgstr "filhos" + +#: cg_print.c:105 +#, c-format +msgid "index %% time self children called name\n" +msgstr "ind %% tempo si_mesmo filhos chamado nome\n" + +#: cg_print.c:129 +#, c-format +msgid " [%d]\n" +msgstr " [%d]\n" + +#: cg_print.c:363 +#, c-format +msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s \n" +msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s \n" + +#: cg_print.c:364 +#, c-format +msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s \n" +msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s \n" + +#: cg_print.c:604 +msgid "" +"Index by function name\n" +"\n" +msgstr "" +"Índice por nome de função\n" +"\n" + +#: cg_print.c:661 cg_print.c:670 +#, c-format +msgid "" +msgstr "" + +#: corefile.c:64 +#, c-format +msgid "%s: could not open %s.\n" +msgstr "%s: impossível abrir %s.\n" + +#: corefile.c:78 corefile.c:112 +#, c-format +msgid "%s: unable to parse mapping file %s.\n" +msgstr "%s: impossível analisar o arquivo de mapeamento %s.\n" + +#: corefile.c:155 +#, c-format +msgid "%s: %s: not in a.out format\n" +msgstr "%s: %s: não está no formato a.out\n" + +#: corefile.c:166 +#, c-format +msgid "%s: can't find .text section in %s\n" +msgstr "%s: impossível encontrar a seção .text em %s\n" + +#: corefile.c:225 +#, c-format +msgid "%s: ran out room for %lu bytes of text space\n" +msgstr "%s: terminou o espaço para %lu bytes de espaço de texto\n" + +#: corefile.c:239 +#, c-format +msgid "%s: can't do -c\n" +msgstr "%s: impossível fazer -c\n" + +#: corefile.c:276 +#, c-format +msgid "%s: -c not supported on architecture %s\n" +msgstr "%s: -c não tem suporte na arquitetura %s\n" + +#: corefile.c:447 +#, c-format +msgid "%s: file `%s' has no symbols\n" +msgstr "%s: o arquivo `%s' não tem símbolos\n" + +#: corefile.c:748 +#, c-format +msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n" +msgstr "%s: alguém contou mal: ltab.len=%d em lugar de %ld\n" + +#: gmon_io.c:96 gmon_io.c:159 gmon_io.c:219 gmon_io.c:251 gmon_io.c:422 +#: gmon_io.c:449 gmon_io.c:646 gmon_io.c:671 +#, c-format +msgid "%s: bits per address has unexpected value of %u\n" +msgstr "%s: bits por endereço tem valor inesperado de %u\n" + +#: gmon_io.c:288 gmon_io.c:383 +#, c-format +msgid "%s: file too short to be a gmon file\n" +msgstr "%s: o arquivo é muito pequeno para ser um arquivo gmon\n" + +#: gmon_io.c:298 gmon_io.c:432 +#, c-format +msgid "%s: file `%s' has bad magic cookie\n" +msgstr "%s: o arquivo `%s' tem um magic cookie inválido\n" + +#: gmon_io.c:309 +#, c-format +msgid "%s: file `%s' has unsupported version %d\n" +msgstr "%s: o arquivo `%s' tem a versão %d, que não é suportada\n" + +#: gmon_io.c:339 +#, c-format +msgid "%s: %s: found bad tag %d (file corrupted?)\n" +msgstr "%s: %s: marca %d inválida encontrada (arquivo corrompido?)\n" + +#: gmon_io.c:405 +#, c-format +msgid "%s: profiling rate incompatible with first gmon file\n" +msgstr "%s: taxa de análises de perfil incompatível com o primeiro arquivo gmon\n" + +#: gmon_io.c:465 +#, c-format +msgid "%s: incompatible with first gmon file\n" +msgstr "%s: incompatível com o primeiro arquivo gmon\n" + +#: gmon_io.c:493 +#, c-format +msgid "%s: file '%s' does not appear to be in gmon.out format\n" +msgstr "%s: o arquivo '%s' não parece estar no formato gmon.out\n" + +# FIXME: comprobar con el código si bins es abreviatura de binarios o +# se refiere a la denominación inglesa de 'papelera'. cfuga +#: gmon_io.c:514 +#, c-format +msgid "%s: unexpected EOF after reading %d/%d bins\n" +msgstr "%s: final de arquivo inesperado depois de ler %d/%d binários\n" + +#: gmon_io.c:547 +msgid "time is in ticks, not seconds\n" +msgstr "o tempo está em tiques, não em segundos\n" + +#: gmon_io.c:553 gmon_io.c:742 +#, c-format +msgid "%s: don't know how to deal with file format %d\n" +msgstr "%s: não sei como lidar com o arquivo de formato %d\n" + +#: gmon_io.c:560 +#, c-format +msgid "File `%s' (version %d) contains:\n" +msgstr "O arquivo `%s' (versão %d) contém:\n" + +#: gmon_io.c:563 +#, c-format +msgid "\t%d histogram record\n" +msgstr "\t%d registro de histograma\n" + +#: gmon_io.c:564 +#, c-format +msgid "\t%d histogram records\n" +msgstr "\t%d registros de histogramas\n" + +#: gmon_io.c:566 +#, c-format +msgid "\t%d call-graph record\n" +msgstr "\t%d registro de gráfico de chamadas\n" + +#: gmon_io.c:567 +#, c-format +msgid "\t%d call-graph records\n" +msgstr "\t%d registros de gráficos de chamadas\n" + +#: gmon_io.c:569 +#, c-format +msgid "\t%d basic-block count record\n" +msgstr "\t%d registro de contagem de blocos básicos\n" + +#: gmon_io.c:570 +#, c-format +msgid "\t%d basic-block count records\n" +msgstr "\t%d registros de contagens de blocos básicos\n" + +#: gprof.c:152 +#, c-format +msgid "" +"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n" +"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n" +"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n" +"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n" +"\t[--[no-]time=name] [--all-lines] [--brief] [--debug[=level]]\n" +"\t[--function-ordering] [--file-ordering]\n" +"\t[--directory-path=dirs] [--display-unused-functions]\n" +"\t[--file-format=name] [--file-info] [--help] [--line] [--min-count=n]\n" +"\t[--no-static] [--print-path] [--separate-files]\n" +"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n" +"\t[--version] [--width=n] [--ignore-non-functions]\n" +"\t[--demangle[=STYLE]] [--no-demangle]\n" +"\t[image-file] [profile-file...]\n" +msgstr "" +"Modo de empleo: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][nome]] [-I dirs]\n" +"\t[-d[num]] [-k de/a] [-m contagem-min] [-t tamanho-tabela]\n" +"\t[--[no-]annotated-source[=nome]] [--[no-]exec-counts[=nome]]\n" +"\t[--[no-]flat-profile[=nome]] [--[no-]graph[=nome]]\n" +"\t[--[no-]time=nome] [--all-lines] [--brief] [--debug[=nível]]\n" +"\t[--function-ordering] [--file-ordering]\n" +"\t[--directory-path=dirs] [--display-unused-functions]\n" +"\t[--file-format=nome] [--file-info] [--help] [--line] [--min-count=n]\n" +"\t[--no-static] [--print-path] [--separate-files]\n" +"\t[--static-call-graph] [--sum] [--table-length=long] [--traditional]\n" +"\t[--version] [--width=n] [--ignore-non-functions]\n" +"\t[--demangle[=ESTILO]] [--no-demangle]\n" +"\t[arquivo-imagen] [arquivo-perfil...]\n" + +#: gprof.c:168 +#, c-format +msgid "Report bugs to %s\n" +msgstr "Reportar bugs para %s\n" + +#: gprof.c:242 +#, c-format +msgid "%s: debugging not supported; -d ignored\n" +msgstr "%s: não há suporte para depuração; -d ignorado\n" + +#: gprof.c:322 +#, c-format +msgid "%s: unknown file format %s\n" +msgstr "%s: formato de arquivo %s desconhecido\n" + +#. This output is intended to follow the GNU standards document. +#: gprof.c:406 +#, c-format +msgid "GNU gprof %s\n" +msgstr "GNU gprof %s\n" + +#: gprof.c:407 +msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n" +msgstr "Basado no BSD gprof, copyright 1983 Regents of the University of California.\n" + +#: gprof.c:408 +msgid "This program is free software. This program has absolutely no warranty.\n" +msgstr "Este programa é software livre. Este programa não tem absolutamente nenhuma garantia.\n" + +#: gprof.c:449 +#, c-format +msgid "%s: unknown demangling style `%s'\n" +msgstr "%s: estilo de desembaralhamento desconhecido `%s'\n" + +#: gprof.c:469 +#, c-format +msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n" +msgstr "%s: Apenas um de --function-ordering e --file-ordering pode ser especificado.\n" + +#: gprof.c:569 +#, c-format +msgid "%s: sorry, file format `prof' is not yet supported\n" +msgstr "%s: perdão, o formato de arquivo `prof' ainda não é suportado\n" + +#: gprof.c:630 +#, c-format +msgid "%s: gmon.out file is missing histogram\n" +msgstr "%s: falta o histograma do arquivo gmon.out\n" + +#: gprof.c:637 +#, c-format +msgid "%s: gmon.out file is missing call-graph data\n" +msgstr "%s: faltam os dados do gráfico de chamadas do arquivo gmon.out\n" + +#: hist.c:127 +#, c-format +msgid "%s: `%s' is incompatible with first gmon file\n" +msgstr "%s: `%s' é incompatível com o primeiro arquivo gmon\n" + +#: hist.c:143 +#, c-format +msgid "%s: %s: unexpected EOF after reading %d of %d samples\n" +msgstr "%s: %s: final de arquivo inesperado depois de ler %d de %d amostras\n" + +#: hist.c:359 +#, c-format +msgid "%c%c/call" +msgstr "%c%c/chamada" + +#: hist.c:367 +#, c-format +msgid "" +" for %.2f%% of %.2f %s\n" +"\n" +msgstr "" +" para %.2f%% de %.2f %s\n" +"\n" + +#: hist.c:373 +#, c-format +msgid "" +"\n" +"Each sample counts as %g %s.\n" +msgstr "" +"\n" +"Cada amostra conta como %g %s.\n" + +#: hist.c:378 +msgid "" +" no time accumulated\n" +"\n" +msgstr "" +" não há tempo acumulado\n" +"\n" + +#: hist.c:385 +msgid "cumulative" +msgstr "cumulativo" + +#: hist.c:385 +msgid "self " +msgstr "si mesmo " + +#: hist.c:385 +msgid "total " +msgstr "total " + +#: hist.c:388 +msgid "time" +msgstr "tempo" + +#: hist.c:388 +msgid "calls" +msgstr "chamadas" + +#: hist.c:481 +msgid "" +"\n" +"\n" +"\n" +"flat profile:\n" +msgstr "" +"\n" +"\n" +"\n" +"perfil plano:\n" + +#: hist.c:487 +msgid "Flat profile:\n" +msgstr "Perfil plano:\n" + +#: mips.c:75 +#, c-format +msgid "[find_call] 0x%lx: jal" +msgstr "[find_call] 0x%lx: jal" + +#: mips.c:100 +#, c-format +msgid "[find_call] 0x%lx: jalr\n" +msgstr "[find_call] 0x%lx: jalr\n" + +#: source.c:166 +#, c-format +msgid "%s: could not locate `%s'\n" +msgstr "%s: impossível encontrar `%s'\n" + +#: source.c:241 +#, c-format +msgid "*** File %s:\n" +msgstr "*** Arquivo %s:\n" + +#: utils.c:99 +#, c-format +msgid " " +msgstr " " diff -uprN binutils-2.13.90.0.16/gprof/source.c binutils-2.13.90.0.18/gprof/source.c --- binutils-2.13.90.0.16/gprof/source.c Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/source.c Mon Dec 16 12:22:53 2002 @@ -28,7 +28,7 @@ #define EXT_ANNO "-ann" /* Postfix of annotated files. */ /* Default option values. */ -boolean create_annotation_files = false; +bfd_boolean create_annotation_files = FALSE; Search_List src_search_list = {0, 0}; Source_File *first_src_file = 0; @@ -97,9 +97,9 @@ annotate_source (sf, max_width, annote, void (*annote) PARAMS ((char *, unsigned int, int, void *)); void *arg; { - static boolean first_file = true; + static bfd_boolean first_file = TRUE; int i, line_num, nread; - boolean new_line; + bfd_boolean new_line; char buf[8192]; char fname[PATH_MAX]; char *annotation, *name_only; @@ -114,7 +114,7 @@ annotate_source (sf, max_width, annote, sle = 0; /* Don't use search list for absolute paths. */ name_only = 0; - while (true) + while (TRUE) { DBG (SRCDEBUG, printf ("[annotate_source]: looking for %s, trying %s\n", sf->name, fname)); @@ -229,12 +229,12 @@ annotate_source (sf, max_width, annote, if (ofp == stdout) { if (first_file) - first_file = false; + first_file = FALSE; else fputc ('\n', ofp); if (first_output) - first_output = false; + first_output = FALSE; else fprintf (ofp, "\f\n"); @@ -243,7 +243,7 @@ annotate_source (sf, max_width, annote, annotation = xmalloc (max_width + 1); line_num = 1; - new_line = true; + new_line = TRUE; while ((nread = fread (buf, 1, sizeof (buf), ifp)) > 0) { @@ -254,7 +254,7 @@ annotate_source (sf, max_width, annote, (*annote) (annotation, max_width, line_num, arg); fputs (annotation, ofp); ++line_num; - new_line = false; + new_line = FALSE; } new_line = (buf[i] == '\n'); diff -uprN binutils-2.13.90.0.16/gprof/source.h binutils-2.13.90.0.18/gprof/source.h --- binutils-2.13.90.0.16/gprof/source.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/source.h Mon Dec 16 12:22:53 2002 @@ -33,7 +33,9 @@ typedef struct source_file Source_File; /* Options. */ -extern boolean create_annotation_files; /* Create annotated output files? */ + +/* Create annotated output files? */ +extern bfd_boolean create_annotation_files; /* List of directories to search for source files. */ extern Search_List src_search_list; diff -uprN binutils-2.13.90.0.16/gprof/sym_ids.c binutils-2.13.90.0.18/gprof/sym_ids.c --- binutils-2.13.90.0.16/gprof/sym_ids.c Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/sym_ids.c Mon Dec 16 12:22:53 2002 @@ -33,7 +33,7 @@ struct sym_id struct sym_id *next; char *spec; /* Parsing modifies this. */ Table_Id which_table; - boolean has_right; + bfd_boolean has_right; struct match { @@ -46,10 +46,14 @@ struct sym_id } *id_list; -static void parse_spec PARAMS ((char *, Sym *)); -static void parse_id PARAMS ((struct sym_id *)); -static boolean match PARAMS ((Sym *, Sym *)); -static void extend_match PARAMS ((struct match *, Sym *, Sym_Table *, boolean)); +static void parse_spec + PARAMS ((char *, Sym *)); +static void parse_id + PARAMS ((struct sym_id *)); +static bfd_boolean match + PARAMS ((Sym *, Sym *)); +static void extend_match + PARAMS ((struct match *, Sym *, Sym_Table *, bfd_boolean)); Sym_Table syms[NUM_TABLES]; @@ -179,7 +183,7 @@ parse_id (id) { parse_spec (slash + 1, &id->right.sym); *slash = '\0'; - id->has_right = true; + id->has_right = TRUE; } parse_spec (id->spec, &id->left.sym); @@ -216,17 +220,17 @@ parse_id (id) /* Return TRUE iff PATTERN matches SYM. */ -static boolean +static bfd_boolean match (pattern, sym) Sym *pattern; Sym *sym; { - return (pattern->file ? pattern->file == sym->file : true) - && (pattern->line_num ? pattern->line_num == sym->line_num : true) + return (pattern->file ? pattern->file == sym->file : TRUE) + && (pattern->line_num ? pattern->line_num == sym->line_num : TRUE) && (pattern->name ? strcmp (pattern->name, sym->name+(discard_underscores && sym->name[0] == '_')) == 0 - : true); + : TRUE); } @@ -235,7 +239,7 @@ extend_match (m, sym, tab, second_pass) struct match *m; Sym *sym; Sym_Table *tab; - boolean second_pass; + bfd_boolean second_pass; { if (m->prev_match != sym - 1) { @@ -286,10 +290,10 @@ sym_id_parse () for (id = id_list; id; id = id->next) { if (match (&id->left.sym, sym)) - extend_match (&id->left, sym, &syms[id->which_table], false); + extend_match (&id->left, sym, &syms[id->which_table], FALSE); if (id->has_right && match (&id->right.sym, sym)) - extend_match (&id->right, sym, &right_ids, false); + extend_match (&id->right, sym, &right_ids, FALSE); } } @@ -317,10 +321,10 @@ sym_id_parse () for (id = id_list; id; id = id->next) { if (match (&id->left.sym, sym)) - extend_match (&id->left, sym, &syms[id->which_table], true); + extend_match (&id->left, sym, &syms[id->which_table], TRUE); if (id->has_right && match (&id->right.sym, sym)) - extend_match (&id->right, sym, &right_ids, true); + extend_match (&id->right, sym, &right_ids, TRUE); } } @@ -368,7 +372,7 @@ sym_id_parse () time requesting -k a/b. Fortunately, those symbol tables don't get very big (the user has to type them!), so a linear search is probably tolerable. */ -boolean +bfd_boolean sym_id_arc_is_present (sym_tab, from, to) Sym_Table *sym_tab; Sym *from; @@ -380,8 +384,8 @@ sym_id_arc_is_present (sym_tab, from, to { if (from->addr >= sym->addr && from->addr <= sym->end_addr && arc_lookup (sym, to)) - return true; + return TRUE; } - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/gprof/sym_ids.h binutils-2.13.90.0.18/gprof/sym_ids.h --- binutils-2.13.90.0.16/gprof/sym_ids.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/sym_ids.h Mon Dec 16 12:22:53 2002 @@ -35,8 +35,8 @@ Table_Id; extern Sym_Table syms[NUM_TABLES]; -extern void sym_id_add PARAMS ((const char *, Table_Id)); -extern void sym_id_parse PARAMS ((void)); -extern boolean sym_id_arc_is_present PARAMS ((Sym_Table *, Sym *, Sym *)); +extern void sym_id_add PARAMS ((const char *, Table_Id)); +extern void sym_id_parse PARAMS ((void)); +extern bfd_boolean sym_id_arc_is_present PARAMS ((Sym_Table *, Sym *, Sym *)); #endif /* sym_ids_h */ diff -uprN binutils-2.13.90.0.16/gprof/symtab.h binutils-2.13.90.0.18/gprof/symtab.h --- binutils-2.13.90.0.16/gprof/symtab.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/gprof/symtab.h Mon Dec 16 12:22:53 2002 @@ -77,7 +77,7 @@ typedef struct sym double child_time; /* Cumulative ticks in children. */ int index; /* Index in the graph list. */ int top_order; /* Graph call chain top-sort order. */ - boolean print_flag; /* Should this be printed? */ + bfd_boolean print_flag; /* Should this be printed? */ struct { double fract; /* What % of time propagates. */ diff -uprN binutils-2.13.90.0.16/gprof/tahoe.c binutils-2.13.90.0.18/gprof/tahoe.c --- binutils-2.13.90.0.16/gprof/tahoe.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gprof/tahoe.c Mon Dec 16 12:22:53 2002 @@ -231,11 +231,11 @@ tahoe_find_call (parent, p_lowpc, p_high tahoe_operandenum mode; tahoe_operandenum firstmode; bfd_vma pc, destpc; - static boolean inited = false; + static bfd_boolean inited = FALSE; if (!inited) { - inited = true; + inited = TRUE; sym_init (&indirectchild); indirectchild.cg.prop.fract = 1.0; indirectchild.cg.cyc.head = &indirectchild; diff -uprN binutils-2.13.90.0.16/gprof/vax.c binutils-2.13.90.0.18/gprof/vax.c --- binutils-2.13.90.0.16/gprof/vax.c Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/gprof/vax.c Mon Dec 16 12:22:53 2002 @@ -242,11 +242,11 @@ vax_find_call (parent, p_lowpc, p_highpc operandenum mode; operandenum firstmode; bfd_vma pc, destpc; - static boolean inited = false; + static bfd_boolean inited = FALSE; if (!inited) { - inited = true; + inited = TRUE; sym_init (&indirectchild); indirectchild.cg.prop.fract = 1.0; indirectchild.cg.cyc.head = &indirectchild; diff -uprN binutils-2.13.90.0.16/include/ChangeLog binutils-2.13.90.0.18/include/ChangeLog --- binutils-2.13.90.0.16/include/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/include/ChangeLog Tue Jan 21 10:21:33 2003 @@ -1,3 +1,41 @@ +2003-01-20 Svein E. Seldal + + * coff/tic4x.h (TICOFF_TARGET_MACHINE_GET): Fixed define bug + * coff/ti.h (TICOFF_TARGET_MACHINE_GET): Added macros + +2002-07-17 Geoffrey Keating + + * splay-tree.h (GTY): Define if undefined. + (splay_tree_allocate_fn): Return PTR for compatibility, not void *. + (struct splay_tree_node_s): Support gengtype. + (struct splay_tree_s): Likewise. Make allocate_data a PTR, + not a void *. + +2002-01-02 Ben Elliston + + * dis-asm.h (print_insn_iq2000): Declare. + +2002-12-24 Dmitry Diky + + * dis-asm.h: Add msp430 disassembler prototype. + +2002-12-27 Chris Demetriou + + * dis-asm.h (print_mips_disassembler_options): Prototype. + +2002-12-23 Alan Modra + + * bfdlink.h (struct bfd_link_info): Add "strip_discarded". + +2002-12-20 Alan Modra + + * bfdlink.h (struct bfd_link_info): Replace bfd_boolean fields with + bit-fields. Rearrange to put all like types together. + +2002-11-30 Alan Modra + + * bfdlink.h: Replace boolean with bfd_boolean. Formatting. + 2002-11-23 Simon Burge * libiberty.h (basename): Add NetBSD to the list. diff -uprN binutils-2.13.90.0.16/include/bfdlink.h binutils-2.13.90.0.18/include/bfdlink.h --- binutils-2.13.90.0.16/include/bfdlink.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/include/bfdlink.h Tue Jan 21 10:21:33 2003 @@ -128,14 +128,14 @@ struct bfd_link_hash_entry struct { /* The linker needs to know three things about common - symbols: the size, the alignment, and the section in - which the symbol should be placed. We store the size - here, and we allocate a small structure to hold the - section and the alignment. The alignment is stored as a - power of two. We don't store all the information - directly because we don't want to increase the size of - the union; this structure is a major space user in the - linker. */ + symbols: the size, the alignment, and the section in + which the symbol should be placed. We store the size + here, and we allocate a small structure to hold the + section and the alignment. The alignment is stored as a + power of two. We don't store all the information + directly because we don't want to increase the size of + the union; this structure is a major space user in the + linker. */ bfd_size_type size; /* Common symbol size. */ struct bfd_link_hash_common_entry { @@ -167,25 +167,25 @@ struct bfd_link_hash_table enum bfd_link_hash_table_type type; }; -/* Look up an entry in a link hash table. If FOLLOW is true, this +/* Look up an entry in a link hash table. If FOLLOW is TRUE, this follows bfd_link_hash_indirect and bfd_link_hash_warning links to the real symbol. */ extern struct bfd_link_hash_entry *bfd_link_hash_lookup - PARAMS ((struct bfd_link_hash_table *, const char *, boolean create, - boolean copy, boolean follow)); + PARAMS ((struct bfd_link_hash_table *, const char *, bfd_boolean create, + bfd_boolean copy, bfd_boolean follow)); /* Look up an entry in the main linker hash table if the symbol might be wrapped. This should only be used for references to an undefined symbol, not for definitions of a symbol. */ extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup - PARAMS ((bfd *, struct bfd_link_info *, const char *, boolean, boolean, - boolean)); + PARAMS ((bfd *, struct bfd_link_info *, const char *, bfd_boolean, + bfd_boolean, bfd_boolean)); /* Traverse a link hash table. */ extern void bfd_link_hash_traverse PARAMS ((struct bfd_link_hash_table *, - boolean (*) (struct bfd_link_hash_entry *, PTR), + bfd_boolean (*) (struct bfd_link_hash_entry *, PTR), PTR)); /* Add an entry to the undefs list. */ @@ -203,49 +203,46 @@ struct bfd_sym_chain struct bfd_link_info { - /* Function callbacks. */ - const struct bfd_link_callbacks *callbacks; - - /* true if BFD should generate a relocateable object file. */ - boolean relocateable; + /* TRUE if BFD should generate a relocatable object file. */ + unsigned int relocateable: 1; - /* true if BFD should generate relocation information in the final + /* TRUE if BFD should generate relocation information in the final executable. */ - boolean emitrelocations; + unsigned int emitrelocations: 1; - /* true if BFD should generate a "task linked" object file, + /* TRUE if BFD should generate a "task linked" object file, similar to relocatable but also with globals converted to statics. */ - boolean task_link; + unsigned int task_link: 1; - /* true if BFD should generate a shared object. */ - boolean shared; + /* TRUE if BFD should generate a shared object. */ + unsigned int shared: 1; - /* true if BFD should pre-bind symbols in a shared object. */ - boolean symbolic; + /* TRUE if BFD should pre-bind symbols in a shared object. */ + unsigned int symbolic: 1; - /* true if BFD should export all symbols in the dynamic symbol table + /* TRUE if BFD should export all symbols in the dynamic symbol table of an executable, rather than only those used. */ - boolean export_dynamic; + unsigned int export_dynamic: 1; - /* true if shared objects should be linked directly, not shared. */ - boolean static_link; + /* TRUE if shared objects should be linked directly, not shared. */ + unsigned int static_link: 1; - /* true if the output file should be in a traditional format. This + /* TRUE if the output file should be in a traditional format. This is equivalent to the setting of the BFD_TRADITIONAL_FORMAT flag on the output file, but may be checked when reading the input files. */ - boolean traditional_format; + unsigned int traditional_format: 1; - /* true if we want to produced optimized output files. This might + /* TRUE if we want to produced optimized output files. This might need much more time and therefore must be explicitly selected. */ - boolean optimize; + unsigned int optimize: 1; - /* true if BFD should generate errors for undefined symbols + /* TRUE if BFD should generate errors for undefined symbols even if generating a shared object. */ - boolean no_undefined; + unsigned int no_undefined: 1; - /* true if BFD should allow undefined symbols in shared objects even + /* TRUE if BFD should allow undefined symbols in shared objects even when no_undefined is set to disallow undefined symbols. The net result will be that undefined symbols in regular objects will still trigger an error, but undefined symbols in shared objects @@ -257,13 +254,39 @@ struct bfd_link_info appropriate for the current architecture. I.E. dynamically select an appropriate memset function. Apparently it is also normal for HPPA shared libraries to have undefined symbols. */ - boolean allow_shlib_undefined; + unsigned int allow_shlib_undefined: 1; + + /* TRUE if ok to have multiple definition. */ + unsigned int allow_multiple_definition: 1; + + /* TRUE if ok to have version with no definition. */ + unsigned int allow_undefined_version: 1; + + /* TRUE if symbols should be retained in memory, FALSE if they + should be freed and reread. */ + unsigned int keep_memory: 1; + + /* TRUE if every symbol should be reported back via the notice + callback. */ + unsigned int notice_all: 1; + + /* TRUE if executable should not contain copy relocs. + Setting this true may result in a non-sharable text segment. */ + unsigned int nocopyreloc: 1; + + /* TRUE if the new ELF dynamic tags are enabled. */ + unsigned int new_dtags: 1; - /* true if ok to have multiple definition. */ - boolean allow_multiple_definition; + /* TRUE if non-PLT relocs should be merged into one reloc section + and sorted so that relocs against the same symbol come together. */ + unsigned int combreloc: 1; + + /* TRUE if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment + should be created. */ + unsigned int eh_frame_hdr: 1; - /* true if ok to have version with no definition. */ - boolean allow_undefined_version; + /* TRUE if global symbols in discarded sections should be stripped. */ + unsigned int strip_discarded: 1; /* Which symbols to strip. */ enum bfd_link_strip strip; @@ -271,24 +294,12 @@ struct bfd_link_info /* Which local symbols to discard. */ enum bfd_link_discard discard; - /* true if symbols should be retained in memory, false if they - should be freed and reread. */ - boolean keep_memory; - - /* The list of input BFD's involved in the link. These are chained - together via the link_next field. */ - bfd *input_bfds; - - /* If a symbol should be created for each input BFD, this is section - where those symbols should be placed. It must be a section in - the output BFD. It may be NULL, in which case no such symbols - will be created. This is to support CREATE_OBJECT_SYMBOLS in the - linker command language. */ - asection *create_object_symbols_section; + /* Criteria for skipping symbols when detemining + whether to include an object from an archive. */ + enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols; - /* List of global symbol names that are starting points for marking - sections against garbage collection. */ - struct bfd_sym_chain *gc_sym_list; + /* Function callbacks. */ + const struct bfd_link_callbacks *callbacks; /* Hash table handled by BFD. */ struct bfd_link_hash_table *hash; @@ -297,12 +308,8 @@ struct bfd_link_info strip_some. */ struct bfd_hash_table *keep_hash; - /* true if every symbol should be reported back via the notice - callback. */ - boolean notice_all; - /* Hash table of symbols to report back via the notice callback. If - this is NULL, and notice_all is false, then no symbols are + this is NULL, and notice_all is FALSE, then no symbols are reported back. */ struct bfd_hash_table *notice_hash; @@ -310,14 +317,24 @@ struct bfd_link_info option). If this is NULL, no symbols are being wrapped. */ struct bfd_hash_table *wrap_hash; + /* The list of input BFD's involved in the link. These are chained + together via the link_next field. */ + bfd *input_bfds; + + /* If a symbol should be created for each input BFD, this is section + where those symbols should be placed. It must be a section in + the output BFD. It may be NULL, in which case no such symbols + will be created. This is to support CREATE_OBJECT_SYMBOLS in the + linker command language. */ + asection *create_object_symbols_section; + + /* List of global symbol names that are starting points for marking + sections against garbage collection. */ + struct bfd_sym_chain *gc_sym_list; + /* If a base output file is wanted, then this points to it */ PTR base_file; - /* If non-zero, specifies that branches which are problematic for the - MPC860 C0 (or earlier) should be checked for and modified. It gives the - number of bytes that should be checked at the end of each text page. */ - int mpc860c0; - /* The function to call when the executable or shared object is loaded. */ const char *init_function; @@ -326,16 +343,12 @@ struct bfd_link_info unloaded. */ const char *fini_function; - /* true if the new ELF dynamic tags are enabled. */ - boolean new_dtags; - - /* May be used to set DT_FLAGS for ELF. */ - bfd_vma flags; - - /* May be used to set DT_FLAGS_1 for ELF. */ - bfd_vma flags_1; + /* If non-zero, specifies that branches which are problematic for the + MPC860 C0 (or earlier) should be checked for and modified. It gives the + number of bytes that should be checked at the end of each text page. */ + int mpc860c0; - /* Non-zero if auto-import thunks for DATA items in pei386 DLLs + /* Non-zero if auto-import thunks for DATA items in pei386 DLLs should be generated/linked against. Set to 1 if this feature is explicitly requested by the user, -1 if enabled by default. */ int pei386_auto_import; @@ -345,30 +358,20 @@ struct bfd_link_info is explicitly requested by the user, -1 if enabled by default. */ int pei386_runtime_pseudo_reloc; - /* True if non-PLT relocs should be merged into one reloc section - and sorted so that relocs against the same symbol come together. */ - boolean combreloc; - - /* True if executable should not contain copy relocs. - Setting this true may result in a non-sharable text segment. */ - boolean nocopyreloc; - - /* True if .eh_frame_hdr section and PT_GNU_EH_FRAME ELF segment - should be created. */ - boolean eh_frame_hdr; - /* How many spare .dynamic DT_NULL entries should be added? */ unsigned int spare_dynamic_tags; - /* Criteria for skipping symbols when detemining - whether to include an object from an archive. */ - enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols; + /* May be used to set DT_FLAGS for ELF. */ + bfd_vma flags; + + /* May be used to set DT_FLAGS_1 for ELF. */ + bfd_vma flags_1; }; /* This structures holds a set of callback functions. These are called by the BFD linker routines. The first argument to each callback function is the bfd_link_info structure being used. Each - function returns a boolean value. If the function returns false, + function returns a boolean value. If the function returns FALSE, then the BFD function which called it will return with a failure indication. */ @@ -378,23 +381,18 @@ struct bfd_link_callbacks archive. ABFD is the archive element being added. NAME is the name of the symbol which caused the archive element to be pulled in. */ - boolean (*add_archive_element) PARAMS ((struct bfd_link_info *, - bfd *abfd, - const char *name)); + bfd_boolean (*add_archive_element) + PARAMS ((struct bfd_link_info *, bfd *abfd, const char *name)); /* A function which is called when a symbol is found with multiple definitions. NAME is the symbol which is defined multiple times. OBFD is the old BFD, OSEC is the old section, OVAL is the old value, NBFD is the new BFD, NSEC is the new section, and NVAL is the new value. OBFD may be NULL. OSEC and NSEC may be bfd_com_section or bfd_ind_section. */ - boolean (*multiple_definition) PARAMS ((struct bfd_link_info *, - const char *name, - bfd *obfd, - asection *osec, - bfd_vma oval, - bfd *nbfd, - asection *nsec, - bfd_vma nval)); + bfd_boolean (*multiple_definition) + PARAMS ((struct bfd_link_info *, const char *name, + bfd *obfd, asection *osec, bfd_vma oval, + bfd *nbfd, asection *nsec, bfd_vma nval)); /* A function which is called when a common symbol is defined multiple times. NAME is the symbol appearing multiple times. OBFD is the BFD of the existing symbol; it may be NULL if this is @@ -406,34 +404,29 @@ struct bfd_link_callbacks symbol, one of bfd_link_hash_defined, bfd_link_hash_common, or bfd_link_hash_indirect. If NTYPE is bfd_link_hash_common, NSIZE is the size of the new symbol. */ - boolean (*multiple_common) PARAMS ((struct bfd_link_info *, - const char *name, - bfd *obfd, - enum bfd_link_hash_type otype, - bfd_vma osize, - bfd *nbfd, - enum bfd_link_hash_type ntype, - bfd_vma nsize)); + bfd_boolean (*multiple_common) + PARAMS ((struct bfd_link_info *, const char *name, + bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize, + bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize)); /* A function which is called to add a symbol to a set. ENTRY is the link hash table entry for the set itself (e.g., __CTOR_LIST__). RELOC is the relocation to use for an entry in the set when generating a relocateable file, and is also used to get the size of the entry when generating an executable file. ABFD, SEC and VALUE identify the value to add to the set. */ - boolean (*add_to_set) PARAMS ((struct bfd_link_info *, - struct bfd_link_hash_entry *entry, - bfd_reloc_code_real_type reloc, - bfd *abfd, asection *sec, bfd_vma value)); + bfd_boolean (*add_to_set) + PARAMS ((struct bfd_link_info *, struct bfd_link_hash_entry *entry, + bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec, + bfd_vma value)); /* A function which is called when the name of a g++ constructor or destructor is found. This is only called by some object file - formats. CONSTRUCTOR is true for a constructor, false for a + formats. CONSTRUCTOR is TRUE for a constructor, FALSE for a destructor. This will use BFD_RELOC_CTOR when generating a relocateable file. NAME is the name of the symbol found. ABFD, SECTION and VALUE are the value of the symbol. */ - boolean (*constructor) PARAMS ((struct bfd_link_info *, - boolean constructor, - const char *name, bfd *abfd, asection *sec, - bfd_vma value)); + bfd_boolean (*constructor) + PARAMS ((struct bfd_link_info *, bfd_boolean constructor, + const char *name, bfd *abfd, asection *sec, bfd_vma value)); /* A function which is called to issue a linker warning. For example, this is called when there is a reference to a warning symbol. WARNING is the warning to be issued. SYMBOL is the name @@ -441,20 +434,17 @@ struct bfd_link_callbacks there is none. ABFD, SECTION and ADDRESS identify the location which trigerred the warning; either ABFD or SECTION or both may be NULL if the location is not known. */ - boolean (*warning) PARAMS ((struct bfd_link_info *, - const char *warning, const char *symbol, - bfd *abfd, asection *section, - bfd_vma address)); + bfd_boolean (*warning) + PARAMS ((struct bfd_link_info *, const char *warning, const char *symbol, + bfd *abfd, asection *section, bfd_vma address)); /* A function which is called when a relocation is attempted against an undefined symbol. NAME is the symbol which is undefined. ABFD, SECTION and ADDRESS identify the location from which the reference is made. FATAL indicates whether an undefined symbol is a fatal error or not. In some cases SECTION may be NULL. */ - boolean (*undefined_symbol) PARAMS ((struct bfd_link_info *, - const char *name, bfd *abfd, - asection *section, - bfd_vma address, - boolean fatal)); + bfd_boolean (*undefined_symbol) + PARAMS ((struct bfd_link_info *, const char *name, bfd *abfd, + asection *section, bfd_vma address, bfd_boolean fatal)); /* A function which is called when a reloc overflow occurs. NAME is the name of the symbol or section the reloc is against, RELOC_NAME is the name of the relocation, and ADDEND is any @@ -462,11 +452,9 @@ struct bfd_link_callbacks location at which the overflow occurs; if this is the result of a bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then ABFD will be NULL. */ - boolean (*reloc_overflow) PARAMS ((struct bfd_link_info *, - const char *name, - const char *reloc_name, bfd_vma addend, - bfd *abfd, asection *section, - bfd_vma address)); + bfd_boolean (*reloc_overflow) + PARAMS ((struct bfd_link_info *, const char *name, const char *reloc_name, + bfd_vma addend, bfd *abfd, asection *section, bfd_vma address)); /* A function which is called when a dangerous reloc is performed. The canonical example is an a29k IHCONST reloc which does not follow an IHIHALF reloc. MESSAGE is an appropriate message. @@ -474,26 +462,25 @@ struct bfd_link_callbacks problem occurred; if this is the result of a bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then ABFD will be NULL. */ - boolean (*reloc_dangerous) PARAMS ((struct bfd_link_info *, - const char *message, - bfd *abfd, asection *section, - bfd_vma address)); + bfd_boolean (*reloc_dangerous) + PARAMS ((struct bfd_link_info *, const char *message, + bfd *abfd, asection *section, bfd_vma address)); /* A function which is called when a reloc is found to be attached to a symbol which is not being written out. NAME is the name of the symbol. ABFD, SECTION and ADDRESS identify the location of the reloc; if this is the result of a bfd_section_reloc_link_order or bfd_symbol_reloc_link_order, then ABFD will be NULL. */ - boolean (*unattached_reloc) PARAMS ((struct bfd_link_info *, - const char *name, - bfd *abfd, asection *section, - bfd_vma address)); + bfd_boolean (*unattached_reloc) + PARAMS ((struct bfd_link_info *, const char *name, + bfd *abfd, asection *section, bfd_vma address)); /* A function which is called when a symbol in notice_hash is defined or referenced. NAME is the symbol. ABFD, SECTION and ADDRESS are the value of the symbol. If SECTION is bfd_und_section, this is a reference. */ - boolean (*notice) PARAMS ((struct bfd_link_info *, const char *name, - bfd *abfd, asection *section, bfd_vma address)); + bfd_boolean (*notice) + PARAMS ((struct bfd_link_info *, const char *name, + bfd *abfd, asection *section, bfd_vma address)); }; /* The linker builds link_order structures which tell the code how to @@ -513,20 +500,20 @@ enum bfd_link_order_type /* This is the link_order structure itself. These form a chain attached to the section whose contents they are describing. */ -struct bfd_link_order +struct bfd_link_order { /* Next link_order in chain. */ struct bfd_link_order *next; /* Type of link_order. */ enum bfd_link_order_type type; /* Offset within output section. */ - bfd_vma offset; + bfd_vma offset; /* Size within output section. */ bfd_size_type size; /* Type specific information. */ - union + union { - struct + struct { /* Section to include. If this is used, then section->output_section must be the section the @@ -609,7 +596,7 @@ struct bfd_elf_version_expr /* Regular expression. */ const char *pattern; /* Matching function. */ - int (*match) PARAMS((struct bfd_elf_version_expr *, const char *)); + int (*match) PARAMS ((struct bfd_elf_version_expr *, const char *)); /* Defined by ".symver". */ unsigned int symver: 1; /* Defined by version script. */ diff -uprN binutils-2.13.90.0.16/include/coff/ChangeLog binutils-2.13.90.0.18/include/coff/ChangeLog --- binutils-2.13.90.0.16/include/coff/ChangeLog Fri Mar 22 14:06:16 2002 +++ binutils-2.13.90.0.18/include/coff/ChangeLog Mon Dec 16 12:22:53 2002 @@ -1,3 +1,8 @@ +2002-11-30 Alan Modra + + * ecoff.h: Replace boolean with bfd_boolean. + * xcoff.h: Likewise. + 2002-03-18 Tom Rix * rs6k64.h: Add U64_TOCMAGIC, AIX 5 64 bit magic number. diff -uprN binutils-2.13.90.0.16/include/coff/ecoff.h binutils-2.13.90.0.18/include/coff/ecoff.h --- binutils-2.13.90.0.16/include/coff/ecoff.h Thu Mar 15 14:53:03 2001 +++ binutils-2.13.90.0.18/include/coff/ecoff.h Mon Dec 16 12:22:53 2002 @@ -2,22 +2,22 @@ This does not include symbol information, found in sym.h and symconst.h. - Copyright 2001 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 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. */ - + #ifndef ECOFF_H #define ECOFF_H @@ -430,8 +430,8 @@ struct ecoff_debug_swap /* Function to read symbol data and set up pointers in ecoff_debug_info structure. The section argument is used for ELF, not straight ECOFF. */ - boolean (*read_debug_info) PARAMS ((bfd *, asection *, - struct ecoff_debug_info *)); + bfd_boolean (*read_debug_info) + PARAMS ((bfd *, asection *, struct ecoff_debug_info *)); }; #endif /* ! defined (ECOFF_H) */ diff -uprN binutils-2.13.90.0.16/include/coff/ti.h binutils-2.13.90.0.18/include/coff/ti.h --- binutils-2.13.90.0.16/include/coff/ti.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/include/coff/ti.h Tue Jan 21 10:21:33 2003 @@ -57,6 +57,14 @@ struct external_filehdr #error "TICOFF_TARGET_ARCH needs to be defined for your CPU" #endif +#ifndef TICOFF_TARGET_MACHINE_GET +#define TICOFF_TARGET_MACHINE_GET(FLAGS) 0 +#endif + +#ifndef TICOFF_TARGET_MACHINE_SET +#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE) +#endif + /* Default to COFF2 for file output */ #ifndef TICOFF_DEFAULT_MAGIC #define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC diff -uprN binutils-2.13.90.0.16/include/coff/tic4x.h binutils-2.13.90.0.18/include/coff/tic4x.h --- binutils-2.13.90.0.16/include/coff/tic4x.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/include/coff/tic4x.h Tue Jan 21 10:21:33 2003 @@ -30,14 +30,14 @@ /* We use COFF2. */ #define TICOFF_DEFAULT_MAGIC TICOFF2MAGIC -#define TICOFF_TARGET_MACHINE_GET (FLAGS) \ +#define TICOFF_TARGET_MACHINE_GET(FLAGS) \ (((FLAGS) & F_VERS) ? bfd_mach_c4x : bfd_mach_c3x) -#define TICOFF_TARGET_MACHINE_SET (FLAGSP, MACHINE) \ +#define TICOFF_TARGET_MACHINE_SET(FLAGSP, MACHINE) \ do \ { \ if ((MACHINE) == bfd_mach_c4x) \ - *(FLAGSP) = F_VERS; \ + *(FLAGSP) |= F_VERS; \ } \ while (0) diff -uprN binutils-2.13.90.0.16/include/coff/xcoff.h binutils-2.13.90.0.18/include/coff/xcoff.h --- binutils-2.13.90.0.16/include/coff/xcoff.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/include/coff/xcoff.h Mon Dec 16 12:22:53 2002 @@ -1,6 +1,6 @@ /* Internal format of XCOFF object file data structures for BFD. - Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor , Cygnus Support. @@ -366,10 +366,10 @@ struct xcoff_link_hash_table unsigned long file_align; /* Whether the .text section must be read-only. */ - boolean textro; + bfd_boolean textro; /* Whether garbage collection was done. */ - boolean gc; + bfd_boolean gc; /* A linked list of symbols for which we have size information. */ struct xcoff_link_size_list @@ -391,7 +391,7 @@ struct xcoff_link_hash_table struct xcoff_loader_info { /* Set if a problem occurred. */ - boolean failed; + bfd_boolean failed; /* Output BFD. */ bfd *output_bfd; @@ -400,7 +400,7 @@ struct xcoff_loader_info struct bfd_link_info *info; /* Whether all defined symbols should be exported. */ - boolean export_defineds; + bfd_boolean export_defineds; /* Number of ldsym structures. */ size_t ldsym_count; @@ -604,7 +604,7 @@ struct xcoff_ar_hdr_big /* We often have to distinguish between the old and big file format. Make it a bit cleaner. We can use `xcoff_ardata' here because the `hdr' member has the same size and position in both formats. - is the default format, return true even when xcoff_ardata is + is the default format, return TRUE even when xcoff_ardata is NULL. */ #ifndef SMALL_ARCHIVE /* Creates big archives by default */ diff -uprN binutils-2.13.90.0.16/include/dis-asm.h binutils-2.13.90.0.18/include/dis-asm.h --- binutils-2.13.90.0.16/include/dis-asm.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/include/dis-asm.h Tue Jan 21 10:21:33 2003 @@ -217,6 +217,7 @@ extern int print_insn_mcore PARAMS ((bf extern int print_insn_mmix PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_mn10200 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_mn10300 PARAMS ((bfd_vma, disassemble_info*)); +extern int print_insn_msp430 PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_ns32k PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_openrisc PARAMS ((bfd_vma, disassemble_info*)); extern int print_insn_big_or32 PARAMS ((bfd_vma, disassemble_info*)); @@ -239,10 +240,12 @@ extern int print_insn_xstormy16 PARAMS extern int print_insn_sh64 PARAMS ((bfd_vma, disassemble_info *)); extern int print_insn_sh64x_media PARAMS ((bfd_vma, disassemble_info *)); extern int print_insn_frv PARAMS ((bfd_vma, disassemble_info *)); +extern int print_insn_iq2000 PARAMS ((bfd_vma, disassemble_info *)); extern disassembler_ftype arc_get_disassembler PARAMS ((void *)); extern disassembler_ftype cris_get_disassembler PARAMS ((bfd *)); +extern void print_mips_disassembler_options PARAMS ((FILE *)); extern void print_ppc_disassembler_options PARAMS ((FILE *)); extern void print_arm_disassembler_options PARAMS ((FILE *)); extern void parse_arm_disassembler_option PARAMS ((char *)); diff -uprN binutils-2.13.90.0.16/include/elf/ChangeLog binutils-2.13.90.0.18/include/elf/ChangeLog --- binutils-2.13.90.0.16/include/elf/ChangeLog Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/include/elf/ChangeLog Tue Jan 21 10:21:33 2003 @@ -1,12 +1,101 @@ +2003-01-20 Martin Schwidefsky + + * s390.h: Rename R_390_GOTOFF to R_390_GOTOFF32. Add new gotoff, + gotplt and pltoff relocations. + +2003-01-17 Alan Modra + + * common.h: Formatting, typo fixes. + (DT_ENCODING): Correct value. + +2003-01-17 Fabio Alemagna + + * common.h (ELFOSABI_AROS): Define. + (ELFOSABI_OPENVMS): Likewise. + (ELFOSABI_NSK): Likewise. + +2003-01-16 Alan Modra + + * ppc.h: Split out ppc64 definitions to.. + * pcc64.h: ..here. New file. + (R_PPC64_REL30): Rename from R_PPC64_ADDR30. + +2003-01-13 Dmitry Diky + + * elf/common.h (EM_MSP430): Change e_machine value to officially + assigned. + +2003-01-02 Ben Elliston + + * common.h (EM_IQ2000): Define. + * iq2000.h: New file. + +2002-12-30 Chris Demetriou + + * mips.h (E_MIPS_ARCH_32R2): New define. + +2002-12-24 Dmitry Diky + + * common.h: Define msp430 machine numbers. + * msp430.h: New file. Define msp430 relocs. + +2002-12-20 DJ Delorie + + * xstormy16.h: Add XSTORMY16_12. + +2002-12-16 Andrew MacLeod + + * xstormy16.h (START_RELOC_NUMBERS) Add relocation numbers + for R_XSTORMY16_LO16 and R_XSTORMY16_HI16. + +2002-12-10 James Cownie + + * dwarf2.h (DW_TAG_upc_shared_type, DW_TAG_upc_strict_type, + DW_TAG_upc_relaxed_type, DW_AT_upc_threads_scaled, DW_LANG_Upc): + Define. + +2002-12-01 Stephane Carrez + + * m68hc11.h (EF_M68HC12_MACH, EF_M68HCS12_MACH): Define. + (EF_M68HC11_MACH_MASK, EF_M68HC11_MACH): Define. + (EF_M68HC11_MERGE_MACH, EF_M68HC11_CAN_MERGE_MACH): Define. + +2002-11-30 Alan Modra + + * mmix.h: Replace boolean with bfd_boolean. + * sh.h: Likewise. + +2002-11-28 Alan Modra + + * internal.h (elf32_internal_ehdr, Elf32_Internal_Ehdr, + elf64_internal_ehdr, Elf64_Internal_Ehdr, elf32_internal_phdr, + Elf32_Internal_Phdr, elf64_internal_phdr, Elf64_Internal_Phdr, + elf32_internal_shdr, Elf32_Internal_Shdr, elf64_internal_shdr, + Elf64_Internal_Shdr, elf32_internal_sym, elf64_internal_sym, + Elf32_Internal_Sym, Elf64_Internal_Sym, Elf32_Internal_Note, + elf32_internal_note, elf32_internal_rel, Elf32_Internal_Rel, + elf64_internal_rel, Elf64_Internal_Rel, elf32_internal_rela, + elf64_internal_rela, Elf32_Internal_Rela, Elf64_Internal_Rela, + elf32_internal_dyn, elf64_internal_dyn, Elf32_Internal_Dyn, + Elf64_Internal_Dyn, elf32_internal_verdef, elf64_internal_verdef, + elf32_internal_verdaux, elf64_internal_verdaux, elf32_internal_verneed, + elf64_internal_verneed, elf32_internal_vernaux, elf64_internal_vernaux, + elf32_internal_versym, elf64_internal_versym, Elf32_Internal_Verdef, + Elf64_Internal_Verdef, Elf32_Internal_Verdaux, Elf64_Internal_Verdaux, + Elf32_Internal_Verneed, Elf64_Internal_Verneed, Elf32_Internal_Vernaux, + Elf64_Internal_Vernaux, Elf32_Internal_Versym, Elf64_Internal_Versym, + Elf32_Internal_Syminfo, Elf64_Internal_Syminfo): Delete. + (Elf_Internal_Rel): Delete. + 2002-10-11 Kaz Kojima * sh.h: Add SH TLS relocs. 2002-09-30 Gavin Romig-Koch - Ken Raeburn - Aldy Hernandez - Eric Christopher - Richard Sandiford + Ken Raeburn + Aldy Hernandez + Eric Christopher + Richard Sandiford * mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New. @@ -44,9 +133,9 @@ Graham Stott Jeff Johnston - * common.h (EM_IP2K): New macro. + * common.h (EM_IP2K): New macro. (EM_IP2K_OLD): New macro. - * ip2k.h: New file. + * ip2k.h: New file. 2002-07-01 Matt Thomas diff -uprN binutils-2.13.90.0.16/include/elf/common.h binutils-2.13.90.0.18/include/elf/common.h --- binutils-2.13.90.0.16/include/elf/common.h Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/include/elf/common.h Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ /* ELF support for BFD. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002 + 2001, 2002, 2003 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support, from information published @@ -35,46 +35,49 @@ Foundation, Inc., 59 Temple Place - Suit /* Fields in e_ident[] */ #define EI_MAG0 0 /* File identification byte 0 index */ -#define ELFMAG0 0x7F /* Magic number byte 0 */ +#define ELFMAG0 0x7F /* Magic number byte 0 */ #define EI_MAG1 1 /* File identification byte 1 index */ -#define ELFMAG1 'E' /* Magic number byte 1 */ +#define ELFMAG1 'E' /* Magic number byte 1 */ #define EI_MAG2 2 /* File identification byte 2 index */ -#define ELFMAG2 'L' /* Magic number byte 2 */ +#define ELFMAG2 'L' /* Magic number byte 2 */ #define EI_MAG3 3 /* File identification byte 3 index */ -#define ELFMAG3 'F' /* Magic number byte 3 */ +#define ELFMAG3 'F' /* Magic number byte 3 */ #define EI_CLASS 4 /* File class */ -#define ELFCLASSNONE 0 /* Invalid class */ -#define ELFCLASS32 1 /* 32-bit objects */ -#define ELFCLASS64 2 /* 64-bit objects */ +#define ELFCLASSNONE 0 /* Invalid class */ +#define ELFCLASS32 1 /* 32-bit objects */ +#define ELFCLASS64 2 /* 64-bit objects */ #define EI_DATA 5 /* Data encoding */ -#define ELFDATANONE 0 /* Invalid data encoding */ -#define ELFDATA2LSB 1 /* 2's complement, little endian */ -#define ELFDATA2MSB 2 /* 2's complement, big endian */ +#define ELFDATANONE 0 /* Invalid data encoding */ +#define ELFDATA2LSB 1 /* 2's complement, little endian */ +#define ELFDATA2MSB 2 /* 2's complement, big endian */ #define EI_VERSION 6 /* File version */ -#define EI_OSABI 7 /* Operating System/ABI indication */ -#define ELFOSABI_NONE 0 /* UNIX System V ABI */ -#define ELFOSABI_HPUX 1 /* HP-UX operating system */ -#define ELFOSABI_NETBSD 2 /* NetBSD */ -#define ELFOSABI_LINUX 3 /* GNU/Linux */ -#define ELFOSABI_HURD 4 /* GNU/Hurd */ -#define ELFOSABI_SOLARIS 6 /* Solaris */ -#define ELFOSABI_AIX 7 /* AIX */ -#define ELFOSABI_IRIX 8 /* IRIX */ -#define ELFOSABI_FREEBSD 9 /* FreeBSD */ -#define ELFOSABI_TRU64 10 /* TRU64 UNIX */ -#define ELFOSABI_MODESTO 11 /* Novell Modesto */ -#define ELFOSABI_OPENBSD 12 /* OpenBSD */ -#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ -#define ELFOSABI_ARM 97 /* ARM */ +#define EI_OSABI 7 /* Operating System/ABI indication */ +#define ELFOSABI_NONE 0 /* UNIX System V ABI */ +#define ELFOSABI_HPUX 1 /* HP-UX operating system */ +#define ELFOSABI_NETBSD 2 /* NetBSD */ +#define ELFOSABI_LINUX 3 /* GNU/Linux */ +#define ELFOSABI_HURD 4 /* GNU/Hurd */ +#define ELFOSABI_SOLARIS 6 /* Solaris */ +#define ELFOSABI_AIX 7 /* AIX */ +#define ELFOSABI_IRIX 8 /* IRIX */ +#define ELFOSABI_FREEBSD 9 /* FreeBSD */ +#define ELFOSABI_TRU64 10 /* TRU64 UNIX */ +#define ELFOSABI_MODESTO 11 /* Novell Modesto */ +#define ELFOSABI_OPENBSD 12 /* OpenBSD */ +#define ELFOSABI_OPENVMS 13 /* OpenVMS */ +#define ELFOSABI_NSK 14 /* Hewlett-Packard Non-Stop Kernel */ +#define ELFOSABI_AROS 15 /* Amiga Research OS */ +#define ELFOSABI_ARM 97 /* ARM */ +#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ -#define EI_ABIVERSION 8 /* ABI version */ +#define EI_ABIVERSION 8 /* ABI version */ #define EI_PAD 9 /* Start of padding bytes */ @@ -86,8 +89,8 @@ Foundation, Inc., 59 Temple Place - Suit #define ET_EXEC 2 /* Executable file */ #define ET_DYN 3 /* Shared object file */ #define ET_CORE 4 /* Core file */ -#define ET_LOOS 0xFE00 /* Operating system-specific */ -#define ET_HIOS 0xFEFF /* Operating system-specific */ +#define ET_LOOS 0xFE00 /* Operating system-specific */ +#define ET_HIOS 0xFEFF /* Operating system-specific */ #define ET_LOPROC 0xFF00 /* Processor-specific */ #define ET_HIPROC 0xFFFF /* Processor-specific */ @@ -95,88 +98,89 @@ Foundation, Inc., 59 Temple Place - Suit are officially assigned by registry@caldera.com. See below for a list of ad-hoc numbers used during initial development. */ -#define EM_NONE 0 /* No machine */ -#define EM_M32 1 /* AT&T WE 32100 */ -#define EM_SPARC 2 /* SUN SPARC */ -#define EM_386 3 /* Intel 80386 */ -#define EM_68K 4 /* Motorola m68k family */ -#define EM_88K 5 /* Motorola m88k family */ -#define EM_486 6 /* Intel 80486 *//* Reserved for future use */ -#define EM_860 7 /* Intel 80860 */ -#define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */ -#define EM_S370 9 /* IBM System/370 */ -#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian (Oct 4 1999 Draft)*/ /* Depreciated */ - -#define EM_PARISC 15 /* HPPA */ - -#define EM_VPP550 17 /* Fujitsu VPP500 */ -#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ -#define EM_960 19 /* Intel 80960 */ -#define EM_PPC 20 /* PowerPC */ -#define EM_PPC64 21 /* 64-bit PowerPC */ -#define EM_S390 22 /* IBM S/390 */ - -#define EM_V800 36 /* NEC V800 series */ -#define EM_FR20 37 /* Fujitsu FR20 */ -#define EM_RH32 38 /* TRW RH32 */ -#define EM_MCORE 39 /* Motorola M*Core */ /* May also be taken by Fujitsu MMA */ -#define EM_RCE 39 /* Old name for MCore */ -#define EM_ARM 40 /* ARM */ -#define EM_OLD_ALPHA 41 /* Digital Alpha */ -#define EM_SH 42 /* Hitachi SH */ -#define EM_SPARCV9 43 /* SPARC v9 64-bit */ -#define EM_TRICORE 44 /* Siemens Tricore embedded processor */ -#define EM_ARC 45 /* ARC Cores */ -#define EM_H8_300 46 /* Hitachi H8/300 */ -#define EM_H8_300H 47 /* Hitachi H8/300H */ -#define EM_H8S 48 /* Hitachi H8S */ -#define EM_H8_500 49 /* Hitachi H8/500 */ -#define EM_IA_64 50 /* Intel IA-64 Processor */ -#define EM_MIPS_X 51 /* Stanford MIPS-X */ -#define EM_COLDFIRE 52 /* Motorola Coldfire */ -#define EM_68HC12 53 /* Motorola M68HC12 */ -#define EM_MMA 54 /* Fujitsu Multimedia Accelerator */ -#define EM_PCP 55 /* Siemens PCP */ -#define EM_NCPU 56 /* Sony nCPU embedded RISC processor */ -#define EM_NDR1 57 /* Denso NDR1 microprocesspr */ -#define EM_STARCORE 58 /* Motorola Star*Core processor */ -#define EM_ME16 59 /* Toyota ME16 processor */ -#define EM_ST100 60 /* STMicroelectronics ST100 processor */ -#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded processor */ -#define EM_X86_64 62 /* Advanced Micro Devices X86-64 processor */ - -#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */ -#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */ -#define EM_FX66 66 /* Siemens FX66 microcontroller */ -#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */ -#define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */ -#define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */ -#define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */ -#define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */ -#define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */ -#define EM_SVX 73 /* Silicon Graphics SVx */ -#define EM_ST19 74 /* STMicroelectronics ST19 8-bit cpu */ -#define EM_VAX 75 /* Digital VAX */ -#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ -#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded cpu */ -#define EM_FIREPATH 78 /* Element 14 64-bit DSP processor */ -#define EM_ZSP 79 /* LSI Logic's 16-bit DSP processor */ -#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */ -#define EM_HUANY 81 /* Harvard's machine-independent format */ -#define EM_PRISM 82 /* SiTera Prism */ -#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ -#define EM_FR30 84 /* Fujitsu FR30 */ -#define EM_D10V 85 /* Mitsubishi D10V */ -#define EM_D30V 86 /* Mitsubishi D30V */ -#define EM_V850 87 /* NEC v850 */ -#define EM_M32R 88 /* Mitsubishi M32R */ -#define EM_MN10300 89 /* Matsushita MN10300 */ -#define EM_MN10200 90 /* Matsushita MN10200 */ -#define EM_PJ 91 /* picoJava */ -#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ -#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */ -#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ -#define EM_IP2K 101 /* Ubicom IP2022 micro controller */ +#define EM_NONE 0 /* No machine */ +#define EM_M32 1 /* AT&T WE 32100 */ +#define EM_SPARC 2 /* SUN SPARC */ +#define EM_386 3 /* Intel 80386 */ +#define EM_68K 4 /* Motorola m68k family */ +#define EM_88K 5 /* Motorola m88k family */ +#define EM_486 6 /* Intel 80486 *//* Reserved for future use */ +#define EM_860 7 /* Intel 80860 */ +#define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */ +#define EM_S370 9 /* IBM System/370 */ +#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian (Oct 4 1999 Draft) Deprecated */ + +#define EM_PARISC 15 /* HPPA */ + +#define EM_VPP550 17 /* Fujitsu VPP500 */ +#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ +#define EM_960 19 /* Intel 80960 */ +#define EM_PPC 20 /* PowerPC */ +#define EM_PPC64 21 /* 64-bit PowerPC */ +#define EM_S390 22 /* IBM S/390 */ + +#define EM_V800 36 /* NEC V800 series */ +#define EM_FR20 37 /* Fujitsu FR20 */ +#define EM_RH32 38 /* TRW RH32 */ +#define EM_MCORE 39 /* Motorola M*Core */ /* May also be taken by Fujitsu MMA */ +#define EM_RCE 39 /* Old name for MCore */ +#define EM_ARM 40 /* ARM */ +#define EM_OLD_ALPHA 41 /* Digital Alpha */ +#define EM_SH 42 /* Hitachi SH */ +#define EM_SPARCV9 43 /* SPARC v9 64-bit */ +#define EM_TRICORE 44 /* Siemens Tricore embedded processor */ +#define EM_ARC 45 /* ARC Cores */ +#define EM_H8_300 46 /* Hitachi H8/300 */ +#define EM_H8_300H 47 /* Hitachi H8/300H */ +#define EM_H8S 48 /* Hitachi H8S */ +#define EM_H8_500 49 /* Hitachi H8/500 */ +#define EM_IA_64 50 /* Intel IA-64 Processor */ +#define EM_MIPS_X 51 /* Stanford MIPS-X */ +#define EM_COLDFIRE 52 /* Motorola Coldfire */ +#define EM_68HC12 53 /* Motorola M68HC12 */ +#define EM_MMA 54 /* Fujitsu Multimedia Accelerator */ +#define EM_PCP 55 /* Siemens PCP */ +#define EM_NCPU 56 /* Sony nCPU embedded RISC processor */ +#define EM_NDR1 57 /* Denso NDR1 microprocesspr */ +#define EM_STARCORE 58 /* Motorola Star*Core processor */ +#define EM_ME16 59 /* Toyota ME16 processor */ +#define EM_ST100 60 /* STMicroelectronics ST100 processor */ +#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ embedded processor */ +#define EM_X86_64 62 /* Advanced Micro Devices X86-64 processor */ + +#define EM_PDP10 64 /* Digital Equipment Corp. PDP-10 */ +#define EM_PDP11 65 /* Digital Equipment Corp. PDP-11 */ +#define EM_FX66 66 /* Siemens FX66 microcontroller */ +#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */ +#define EM_ST7 68 /* STMicroelectronics ST7 8-bit microcontroller */ +#define EM_68HC16 69 /* Motorola MC68HC16 Microcontroller */ +#define EM_68HC11 70 /* Motorola MC68HC11 Microcontroller */ +#define EM_68HC08 71 /* Motorola MC68HC08 Microcontroller */ +#define EM_68HC05 72 /* Motorola MC68HC05 Microcontroller */ +#define EM_SVX 73 /* Silicon Graphics SVx */ +#define EM_ST19 74 /* STMicroelectronics ST19 8-bit cpu */ +#define EM_VAX 75 /* Digital VAX */ +#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ +#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded cpu */ +#define EM_FIREPATH 78 /* Element 14 64-bit DSP processor */ +#define EM_ZSP 79 /* LSI Logic's 16-bit DSP processor */ +#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */ +#define EM_HUANY 81 /* Harvard's machine-independent format */ +#define EM_PRISM 82 /* SiTera Prism */ +#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ +#define EM_FR30 84 /* Fujitsu FR30 */ +#define EM_D10V 85 /* Mitsubishi D10V */ +#define EM_D30V 86 /* Mitsubishi D30V */ +#define EM_V850 87 /* NEC v850 */ +#define EM_M32R 88 /* Mitsubishi M32R */ +#define EM_MN10300 89 /* Matsushita MN10300 */ +#define EM_MN10200 90 /* Matsushita MN10200 */ +#define EM_PJ 91 /* picoJava */ +#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ +#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */ +#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ +#define EM_IP2K 101 /* Ubicom IP2022 micro controller */ +#define EM_MSP430 105 /* TI msp430 micro controller */ /* If it is necessary to assign new unofficial EM_* values, please pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision @@ -188,9 +192,9 @@ Foundation, Inc., 59 Temple Place - Suit Normally, each entity or maintainer responsible for a machine with an unofficial e_machine number should eventually ask registry@caldera.com for - an officially blessed number to be added to the list above. */ + an officially blessed number to be added to the list above. */ -#define EM_PJ_OLD 99 /* picoJava */ +#define EM_PJ_OLD 99 /* picoJava */ /* Cygnus PowerPC ELF backend. Written in the absence of an ABI. */ #define EM_CYGNUS_POWERPC 0x9025 @@ -202,11 +206,11 @@ Foundation, Inc., 59 Temple Place - Suit /* Old version of PowerPC, this should be removed shortly. */ #define EM_PPC_OLD 17 -/* (Depreciated) Temporary number for the OpenRISC processor. */ -#define EM_OR32 0x8472 +/* (Deprecated) Temporary number for the OpenRISC processor. */ +#define EM_OR32 0x8472 /* Cygnus M32R ELF backend. Written in the absence of an ABI. */ -#define EM_CYGNUS_M32R 0x9041 +#define EM_CYGNUS_M32R 0x9041 /* Alpha backend magic number. Written in the absence of an ABI. */ #define EM_ALPHA 0x9026 @@ -243,14 +247,20 @@ Foundation, Inc., 59 Temple Place - Suit Written in the absense of an ABI. */ #define EM_DLX 0x5aa5 -#define EM_XSTORMY16 0xad45 +#define EM_XSTORMY16 0xad45 /* FRV magic number - no EABI available??. */ #define EM_CYGNUS_FRV 0x5441 /* Ubicom IP2xxx; no ABI */ -#define EM_IP2K_OLD 0x8217 +#define EM_IP2K_OLD 0x8217 +/* MSP430 magic number + Written in the absense everything. */ +#define EM_MSP430_OLD 0x1059 + +/* Vitesse IQ2000. */ +#define EM_IQ2000 0xFEBA /* See the above comment before you add a new EM_* value here. */ /* Values for e_version. */ @@ -260,7 +270,7 @@ Foundation, Inc., 59 Temple Place - Suit /* Values for program header, p_type field. */ -#define PT_NULL 0 /* Program header table entry unused */ +#define PT_NULL 0 /* Program header table entry unused */ #define PT_LOAD 1 /* Loadable program segment */ #define PT_DYNAMIC 2 /* Dynamic linking information */ #define PT_INTERP 3 /* Program interpreter */ @@ -268,8 +278,8 @@ Foundation, Inc., 59 Temple Place - Suit #define PT_SHLIB 5 /* Reserved, unspecified semantics */ #define PT_PHDR 6 /* Entry for header table itself */ #define PT_TLS 7 /* Thread local storage segment */ -#define PT_LOOS 0x60000000 /* OS-specific */ -#define PT_HIOS 0x6fffffff /* OS-specific */ +#define PT_LOOS 0x60000000 /* OS-specific */ +#define PT_HIOS 0x6fffffff /* OS-specific */ #define PT_LOPROC 0x70000000 /* Processor-specific */ #define PT_HIPROC 0x7FFFFFFF /* Processor-specific */ @@ -299,14 +309,14 @@ Foundation, Inc., 59 Temple Place - Suit #define SHT_SHLIB 10 /* Reserved, unspecified semantics */ #define SHT_DYNSYM 11 /* Dynamic linking symbol table */ -#define SHT_INIT_ARRAY 14 /* Array of ptrs to init functions */ -#define SHT_FINI_ARRAY 15 /* Array of ptrs to finish functions */ +#define SHT_INIT_ARRAY 14 /* Array of ptrs to init functions */ +#define SHT_FINI_ARRAY 15 /* Array of ptrs to finish functions */ #define SHT_PREINIT_ARRAY 16 /* Array of ptrs to pre-init funcs */ -#define SHT_GROUP 17 /* Section contains a section group */ +#define SHT_GROUP 17 /* Section contains a section group */ #define SHT_SYMTAB_SHNDX 18 /* Indicies for SHN_XINDEX entries */ -#define SHT_LOOS 0x60000000 /* First of OS specific semantics */ -#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ +#define SHT_LOOS 0x60000000 /* First of OS specific semantics */ +#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ #define SHT_GNU_LIBLIST 0x6ffffff7 /* List of prelink dependencies */ @@ -335,7 +345,7 @@ Foundation, Inc., 59 Temple Place - Suit #define SHF_MERGE (1 << 4) /* Data in this section can be merged */ #define SHF_STRINGS (1 << 5) /* Contains null terminated character strings */ #define SHF_INFO_LINK (1 << 6) /* sh_info holds section header table index */ -#define SHF_LINK_ORDER (1 << 7) /* Preserve section ordering when linking */ +#define SHF_LINK_ORDER (1 << 7) /* Preserve section ordering when linking */ #define SHF_OS_NONCONFORMING (1 << 8) /* OS specific processing required */ #define SHF_GROUP (1 << 9) /* Member of a section group */ #define SHF_TLS (1 << 10) /* Thread local storage section */ @@ -350,7 +360,7 @@ Foundation, Inc., 59 Temple Place - Suit #define NT_FPREGSET 2 /* Contains copy of fpregset struct */ #define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */ #define NT_TASKSTRUCT 4 /* Contains copy of task struct */ -#define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */ +#define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */ /* note name must be "LINUX". */ /* Note segments for core files on dir-style procfs systems. */ @@ -423,8 +433,8 @@ Foundation, Inc., 59 Temple Place - Suit #define STB_LOCAL 0 /* Symbol not visible outside obj */ #define STB_GLOBAL 1 /* Symbol visible outside obj */ #define STB_WEAK 2 /* Like globals, lower precedence */ -#define STB_LOOS 10 /* OS-specific semantics */ -#define STB_HIOS 12 /* OS-specific semantics */ +#define STB_LOOS 10 /* OS-specific semantics */ +#define STB_HIOS 12 /* OS-specific semantics */ #define STB_LOPROC 13 /* Application-specific semantics */ #define STB_HIPROC 15 /* Application-specific semantics */ @@ -435,8 +445,8 @@ Foundation, Inc., 59 Temple Place - Suit #define STT_FILE 4 /* Symbol gives a file name */ #define STT_COMMON 5 /* An uninitialised common block */ #define STT_TLS 6 /* Thread local data object */ -#define STT_LOOS 10 /* OS-specific semantics */ -#define STT_HIOS 12 /* OS-specific semantics */ +#define STT_LOOS 10 /* OS-specific semantics */ +#define STT_HIOS 12 /* OS-specific semantics */ #define STT_LOPROC 13 /* Application-specific semantics */ #define STT_HIPROC 15 /* Application-specific semantics */ @@ -447,12 +457,12 @@ Foundation, Inc., 59 Temple Place - Suit #define SHN_LORESERVE 0xFF00 /* Begin range of reserved indices */ #define SHN_LOPROC 0xFF00 /* Begin range of appl-specific */ #define SHN_HIPROC 0xFF1F /* End range of appl-specific */ -#define SHN_LOOS 0xFF20 /* OS specific semantics, lo */ -#define SHN_HIOS 0xFF3F /* OS specific semantics, hi */ -#define SHN_ABS 0xFFF1 /* Associated symbol is absolute */ -#define SHN_COMMON 0xFFF2 /* Associated symbol is in common */ -#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */ -#define SHN_HIRESERVE 0xFFFF /* End range of reserved indices */ +#define SHN_LOOS 0xFF20 /* OS specific semantics, lo */ +#define SHN_HIOS 0xFF3F /* OS specific semantics, hi */ +#define SHN_ABS 0xFFF1 /* Associated symbol is absolute */ +#define SHN_COMMON 0xFFF2 /* Associated symbol is in common */ +#define SHN_XINDEX 0xFFFF /* Section index is held elsewhere */ +#define SHN_HIRESERVE 0xFFFF /* End range of reserved indices */ #define SHN_BAD ((unsigned) -1) /* Used internally by bfd */ /* The following constants control how a symbol may be accessed once it has @@ -499,32 +509,31 @@ Foundation, Inc., 59 Temple Place - Suit #define DT_DEBUG 21 #define DT_TEXTREL 22 #define DT_JMPREL 23 -#define DT_BIND_NOW 24 -#define DT_INIT_ARRAY 25 -#define DT_FINI_ARRAY 26 +#define DT_BIND_NOW 24 +#define DT_INIT_ARRAY 25 +#define DT_FINI_ARRAY 26 #define DT_INIT_ARRAYSZ 27 #define DT_FINI_ARRAYSZ 28 -#define DT_RUNPATH 29 -#define DT_FLAGS 30 - -#define DT_ENCODING 32 +#define DT_RUNPATH 29 +#define DT_FLAGS 30 +#define DT_ENCODING 31 #define DT_PREINIT_ARRAY 32 #define DT_PREINIT_ARRAYSZ 33 /* Note, the Oct 4, 1999 draft of the ELF ABI changed the values for DT_LOOS and DT_HIOS. Some implementations however, use - values outside of the new range (see below). */ + values outside of the new range (see below). */ #define OLD_DT_LOOS 0x60000000 -#define DT_LOOS 0x6000000d -#define DT_HIOS 0x6fff0000 -#define OLD_DT_HIOS 0x6fffffff +#define DT_LOOS 0x6000000d +#define DT_HIOS 0x6fff0000 +#define OLD_DT_HIOS 0x6fffffff -#define DT_LOPROC 0x70000000 -#define DT_HIPROC 0x7fffffff +#define DT_LOPROC 0x70000000 +#define DT_HIPROC 0x7fffffff /* The next four dynamic tags are used on Solaris. We support them - everywhere. Note these values lie outside of the (new) range for - OS specific values. This is a deliberate special case and we + everywhere. Note these values lie outside of the (new) range for + OS specific values. This is a deliberate special case and we maintain it for backwards compatability. */ #define DT_VALRNGLO 0x6ffffd00 #define DT_GNU_PRELINKED 0x6ffffdf5 @@ -583,7 +592,7 @@ Foundation, Inc., 59 Temple Place - Suit defined here is the same as the one in on Solaris 8. */ #define DTF_1_CONFEXP 0x00000002 -/* Flag values used in the DT_POSFLAG_1 .dynamic entry. */ +/* Flag values used in the DT_POSFLAG_1 .dynamic entry. */ #define DF_P1_LAZYLOAD 0x00000001 #define DF_P1_GROUPPERM 0x00000002 @@ -603,7 +612,7 @@ Foundation, Inc., 59 Temple Place - Suit #define DF_1_NODUMP 0x00001000 #define DF_1_CONLFAT 0x00002000 -/* Flag values for the DT_FLAGS entry. */ +/* Flag values for the DT_FLAGS entry. */ #define DF_ORIGIN (1 << 0) #define DF_SYMBOLIC (1 << 1) #define DF_TEXTREL (1 << 2) @@ -670,7 +679,7 @@ Foundation, Inc., 59 Temple Place - Suit #define SYMINFO_CURRENT 1 #define SYMINFO_NUM 2 -/* Section Group Flags. */ +/* Section Group Flags. */ #define GRP_COMDAT 0x1 /* A COMDAT group */ diff -uprN binutils-2.13.90.0.16/include/elf/dwarf2.h binutils-2.13.90.0.18/include/elf/dwarf2.h --- binutils-2.13.90.0.16/include/elf/dwarf2.h Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/include/elf/dwarf2.h Mon Dec 16 12:22:53 2002 @@ -87,7 +87,7 @@ typedef struct } DWARF2_Internal_PubNames; -/* Strcuture found in .debug_info section. */ +/* Structure found in .debug_info section. */ typedef struct { unsigned char cu_length [4]; @@ -194,7 +194,11 @@ enum dwarf_tag DW_TAG_function_template = 0x4102, /* For C++. */ DW_TAG_class_template = 0x4103, /* For C++. */ DW_TAG_GNU_BINCL = 0x4104, - DW_TAG_GNU_EINCL = 0x4105 + DW_TAG_GNU_EINCL = 0x4105, + /* Extensions for UPC. See: http://upc.gwu.edu/~upc. */ + DW_TAG_upc_shared_type = 0x8765, + DW_TAG_upc_strict_type = 0x8766, + DW_TAG_upc_relaxed_type = 0x8767 }; #define DW_TAG_lo_user 0x4080 @@ -309,7 +313,7 @@ enum dwarf_attribute DW_AT_call_column = 0x57, DW_AT_call_file = 0x58, DW_AT_call_line = 0x59, - /* SGI/MIPS Extensions. */ + /* SGI/MIPS extensions. */ DW_AT_MIPS_fde = 0x2001, DW_AT_MIPS_loop_begin = 0x2002, DW_AT_MIPS_tail_loop_begin = 0x2003, @@ -329,8 +333,10 @@ enum dwarf_attribute DW_AT_body_begin = 0x2105, DW_AT_body_end = 0x2106, DW_AT_GNU_vector = 0x2107, - /* VMS Extensions. */ - DW_AT_VMS_rtnbeg_pd_address = 0x2201 + /* VMS extensions. */ + DW_AT_VMS_rtnbeg_pd_address = 0x2201, + /* UPC extension. */ + DW_AT_upc_threads_scaled = 0x3210 }; #define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */ @@ -678,7 +684,9 @@ enum dwarf_source_language DW_LANG_Ada95 = 0x000d, DW_LANG_Fortran95 = 0x000e, /* MIPS. */ - DW_LANG_Mips_Assembler = 0x8001 + DW_LANG_Mips_Assembler = 0x8001, + /* UPC. */ + DW_LANG_Upc = 0x8765 }; #define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */ diff -uprN binutils-2.13.90.0.16/include/elf/internal.h binutils-2.13.90.0.18/include/elf/internal.h --- binutils-2.13.90.0.16/include/elf/internal.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/include/elf/internal.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* ELF support for BFD. - Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001 + Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support, from information published @@ -58,11 +58,6 @@ typedef struct elf_internal_ehdr { unsigned int e_shstrndx; /* Section header string table index */ } Elf_Internal_Ehdr; -#define elf32_internal_ehdr elf_internal_ehdr -#define Elf32_Internal_Ehdr Elf_Internal_Ehdr -#define elf64_internal_ehdr elf_internal_ehdr -#define Elf64_Internal_Ehdr Elf_Internal_Ehdr - /* Program header */ struct elf_internal_phdr { @@ -77,10 +72,6 @@ struct elf_internal_phdr { }; typedef struct elf_internal_phdr Elf_Internal_Phdr; -#define elf32_internal_phdr elf_internal_phdr -#define Elf32_Internal_Phdr Elf_Internal_Phdr -#define elf64_internal_phdr elf_internal_phdr -#define Elf64_Internal_Phdr Elf_Internal_Phdr /* Section header */ @@ -101,11 +92,6 @@ typedef struct elf_internal_shdr { unsigned char *contents; /* Section contents. */ } Elf_Internal_Shdr; -#define elf32_internal_shdr elf_internal_shdr -#define Elf32_Internal_Shdr Elf_Internal_Shdr -#define elf64_internal_shdr elf_internal_shdr -#define Elf64_Internal_Shdr Elf_Internal_Shdr - /* Symbol table entry */ struct elf_internal_sym { @@ -119,11 +105,6 @@ struct elf_internal_sym { typedef struct elf_internal_sym Elf_Internal_Sym; -#define elf32_internal_sym elf_internal_sym -#define elf64_internal_sym elf_internal_sym -#define Elf32_Internal_Sym Elf_Internal_Sym -#define Elf64_Internal_Sym Elf_Internal_Sym - /* Note segments */ typedef struct elf_internal_note { @@ -134,33 +115,15 @@ typedef struct elf_internal_note { char * descdata; /* Start of the desc data */ bfd_vma descpos; /* File offset of the descdata */ } Elf_Internal_Note; -#define Elf32_Internal_Note Elf_Internal_Note -#define elf32_internal_note elf_internal_note /* Relocation Entries */ -typedef struct elf_internal_rel { - bfd_vma r_offset; /* Location at which to apply the action */ - /* This needs to support 64-bit values in elf64. */ - bfd_vma r_info; /* index and type of relocation */ -} Elf_Internal_Rel; - -#define elf32_internal_rel elf_internal_rel -#define Elf32_Internal_Rel Elf_Internal_Rel -#define elf64_internal_rel elf_internal_rel -#define Elf64_Internal_Rel Elf_Internal_Rel - typedef struct elf_internal_rela { bfd_vma r_offset; /* Location at which to apply the action */ bfd_vma r_info; /* Index and Type of relocation */ bfd_vma r_addend; /* Constant addend used to compute value */ } Elf_Internal_Rela; -#define elf32_internal_rela elf_internal_rela -#define elf64_internal_rela elf_internal_rela -#define Elf32_Internal_Rela Elf_Internal_Rela -#define Elf64_Internal_Rela Elf_Internal_Rela - /* dynamic section structure */ typedef struct elf_internal_dyn { @@ -173,11 +136,6 @@ typedef struct elf_internal_dyn { } d_un; } Elf_Internal_Dyn; -#define elf32_internal_dyn elf_internal_dyn -#define elf64_internal_dyn elf_internal_dyn -#define Elf32_Internal_Dyn Elf_Internal_Dyn -#define Elf64_Internal_Dyn Elf_Internal_Dyn - /* This structure appears in a SHT_GNU_verdef section. */ typedef struct elf_internal_verdef { @@ -257,30 +215,6 @@ typedef struct } Elf_Internal_Syminfo; -#define elf32_internal_verdef elf_internal_verdef -#define elf64_internal_verdef elf_internal_verdef -#define elf32_internal_verdaux elf_internal_verdaux -#define elf64_internal_verdaux elf_internal_verdaux -#define elf32_internal_verneed elf_internal_verneed -#define elf64_internal_verneed elf_internal_verneed -#define elf32_internal_vernaux elf_internal_vernaux -#define elf64_internal_vernaux elf_internal_vernaux -#define elf32_internal_versym elf_internal_versym -#define elf64_internal_versym elf_internal_versym - -#define Elf32_Internal_Verdef Elf_Internal_Verdef -#define Elf64_Internal_Verdef Elf_Internal_Verdef -#define Elf32_Internal_Verdaux Elf_Internal_Verdaux -#define Elf64_Internal_Verdaux Elf_Internal_Verdaux -#define Elf32_Internal_Verneed Elf_Internal_Verneed -#define Elf64_Internal_Verneed Elf_Internal_Verneed -#define Elf32_Internal_Vernaux Elf_Internal_Vernaux -#define Elf64_Internal_Vernaux Elf_Internal_Vernaux -#define Elf32_Internal_Versym Elf_Internal_Versym -#define Elf64_Internal_Versym Elf_Internal_Versym -#define Elf32_Internal_Syminfo Elf_Internal_Syminfo -#define Elf64_Internal_Syminfo Elf_Internal_Syminfo - /* This structure is used to describe how sections should be assigned to program segments. */ diff -uprN binutils-2.13.90.0.16/include/elf/iq2000.h binutils-2.13.90.0.18/include/elf/iq2000.h --- binutils-2.13.90.0.16/include/elf/iq2000.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/include/elf/iq2000.h Tue Jan 21 10:21:33 2003 @@ -0,0 +1,58 @@ +/* IQ2000 ELF support for BFD. + Copyright (C) 2002 Free Software Foundation, Inc. + +This file is part of BFD, the Binary File Descriptor library. + +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. */ + +#ifndef _ELF_IQ2000_H +#define _ELF_IQ2000_H + +#include "elf/reloc-macros.h" + +/* Relocations. */ +START_RELOC_NUMBERS (elf_iq2000_reloc_type) + RELOC_NUMBER (R_IQ2000_NONE, 0) + RELOC_NUMBER (R_IQ2000_16, 1) + RELOC_NUMBER (R_IQ2000_32, 2) + RELOC_NUMBER (R_IQ2000_26, 3) + RELOC_NUMBER (R_IQ2000_PC16, 4) + RELOC_NUMBER (R_IQ2000_HI16, 5) + RELOC_NUMBER (R_IQ2000_LO16, 6) + RELOC_NUMBER (R_IQ2000_OFFSET_16, 7) + RELOC_NUMBER (R_IQ2000_OFFSET_21, 8) + RELOC_NUMBER (R_IQ2000_UHI16, 9) + RELOC_NUMBER (R_IQ2000_32_DEBUG, 10) + RELOC_NUMBER (R_IQ2000_GNU_VTINHERIT, 200) + RELOC_NUMBER (R_IQ2000_GNU_VTENTRY, 201) +END_RELOC_NUMBERS(R_IQ2000_max) + +#define EF_IQ2000_CPU_IQ2000 0x00000001 /* default */ +#define EF_IQ2000_CPU_IQ10 0x00000002 /* IQ10 */ +#define EF_IQ2000_CPU_MASK 0x00000003 /* specific cpu bits */ +#define EF_IQ2000_ALL_FLAGS (EF_IQ2000_CPU_MASK) + +/* Define the data & instruction memory discriminator. In a linked + executable, an symbol should be deemed to point to an instruction + if ((address & IQ2000_INSN_MASK) == IQ2000_INSN_VALUE), and similarly + for the data space. */ + +#define IQ2000_DATA_MASK 0x80000000 +#define IQ2000_DATA_VALUE 0x00000000 +#define IQ2000_INSN_MASK 0x80000000 +#define IQ2000_INSN_VALUE 0x80000000 + + +#endif /* _ELF_IQ2000_H */ diff -uprN binutils-2.13.90.0.16/include/elf/m68hc11.h binutils-2.13.90.0.18/include/elf/m68hc11.h --- binutils-2.13.90.0.16/include/elf/m68hc11.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.18/include/elf/m68hc11.h Mon Dec 16 12:22:53 2002 @@ -64,6 +64,24 @@ END_RELOC_NUMBERS (R_M68HC11_max) /* Uses 68HC12 memory banks. */ #define E_M68HC12_BANKS 0x000000004 +#define EF_M68HC11_MACH_MASK 0xF0 +#define EF_M68HC11_GENERIC 0x00 /* Generic 68HC12/backward compatibility. */ +#define EF_M68HC12_MACH 0x10 /* 68HC12 microcontroller. */ +#define EF_M68HCS12_MACH 0x20 /* 68HCS12 microcontroller. */ +#define EF_M68HC11_MACH(mach) ((mach) & EF_M68HC11_MACH_MASK) + +/* True if we can merge machines. A generic HC12 can work on any proc + but once we have specific code, merge is not possible. */ +#define EF_M68HC11_CAN_MERGE_MACH(mach1, mach2) \ + ((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \ + || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC) \ + || (EF_M68HC11_MACH (mach2) == EF_M68HC11_GENERIC)) + +#define EF_M68HC11_MERGE_MACH(mach1, mach2) \ + (((EF_M68HC11_MACH (mach1) == EF_M68HC11_MACH (mach2)) \ + || (EF_M68HC11_MACH (mach1) == EF_M68HC11_GENERIC)) ? \ + EF_M68HC11_MACH (mach2) : EF_M68HC11_MACH (mach1)) + /* Special values for the st_other field in the symbol table. These are used for 68HC12 to identify far functions (must be called with diff -uprN binutils-2.13.90.0.16/include/elf/mips.h binutils-2.13.90.0.18/include/elf/mips.h --- binutils-2.13.90.0.16/include/elf/mips.h Wed Oct 2 10:17:20 2002 +++ binutils-2.13.90.0.18/include/elf/mips.h Tue Jan 21 10:21:33 2003 @@ -145,6 +145,9 @@ END_RELOC_NUMBERS (R_MIPS_maxext) /* -mips64 code. */ #define E_MIPS_ARCH_64 0x60000000 +/* -mips32r2 code. */ +#define E_MIPS_ARCH_32R2 0x70000000 + /* The ABI of the file. Also see EF_MIPS_ABI2 above. */ #define EF_MIPS_ABI 0x0000F000 diff -uprN binutils-2.13.90.0.16/include/elf/mmix.h binutils-2.13.90.0.18/include/elf/mmix.h --- binutils-2.13.90.0.16/include/elf/mmix.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/include/elf/mmix.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* MMIX support for BFD. - Copyright (C) 2001, 2002 Free Software Foundation, Inc. + Copyright 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -157,11 +157,11 @@ END_RELOC_NUMBERS (R_MMIX_max) #define MMO_SEC_DEBUGGING 0x10000 #ifdef BFD_ARCH_SIZE -extern boolean _bfd_mmix_prepare_linker_allocated_gregs +extern bfd_boolean _bfd_mmix_prepare_linker_allocated_gregs PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_mmix_finalize_linker_allocated_gregs +extern bfd_boolean _bfd_mmix_finalize_linker_allocated_gregs PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean _bfd_mmix_check_all_relocs +extern bfd_boolean _bfd_mmix_check_all_relocs PARAMS ((bfd *, struct bfd_link_info *)); #endif diff -uprN binutils-2.13.90.0.16/include/elf/msp430.h binutils-2.13.90.0.18/include/elf/msp430.h --- binutils-2.13.90.0.16/include/elf/msp430.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/include/elf/msp430.h Tue Jan 21 10:21:33 2003 @@ -0,0 +1,55 @@ +/* MSP430 ELF support for BFD. + Copyright (C) 2002 Free Software Foundation, Inc. + Contributed by Dmitry Diky + + This file is part of BFD, the Binary File Descriptor library. + + 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. */ + +#ifndef _ELF_MSP430_H +#define _ELF_MSP430_H + +#include "elf/reloc-macros.h" + +/* Processor specific flags for the ELF header e_flags field. */ +#define EF_MSP430_MACH 0xff + +#define E_MSP430_MACH_MSP430x11x1 110 +#define E_MSP430_MACH_MSP430x11 11 +#define E_MSP430_MACH_MSP430x12 12 +#define E_MSP430_MACH_MSP430x13 13 +#define E_MSP430_MACH_MSP430x14 14 +#define E_MSP430_MACH_MSP430x31 31 +#define E_MSP430_MACH_MSP430x32 32 +#define E_MSP430_MACH_MSP430x33 33 +#define E_MSP430_MACH_MSP430x41 41 +#define E_MSP430_MACH_MSP430x43 43 +#define E_MSP430_MACH_MSP430x44 44 +#define E_MSP430_MACH_MSP430x15 15 +#define E_MSP430_MACH_MSP430x16 16 + +/* Relocations. */ +START_RELOC_NUMBERS (elf_msp430_reloc_type) + RELOC_NUMBER (R_MSP430_NONE, 0) + RELOC_NUMBER (R_MSP430_32, 1) + RELOC_NUMBER (R_MSP430_10_PCREL, 2) + RELOC_NUMBER (R_MSP430_16, 3) + RELOC_NUMBER (R_MSP430_16_PCREL, 4) + RELOC_NUMBER (R_MSP430_16_BYTE, 5) + RELOC_NUMBER (R_MSP430_16_PCREL_BYTE, 6) + +END_RELOC_NUMBERS (R_MSP430_max) + +#endif /* _ELF_MSP430_H */ diff -uprN binutils-2.13.90.0.16/include/elf/ppc.h binutils-2.13.90.0.18/include/elf/ppc.h --- binutils-2.13.90.0.16/include/elf/ppc.h Thu Mar 7 11:52:39 2002 +++ binutils-2.13.90.0.18/include/elf/ppc.h Tue Jan 21 10:21:33 2003 @@ -1,5 +1,6 @@ /* PPC ELF support for BFD. - Copyright 1995, 1996, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003 + Free Software Foundation, Inc. By Michael Meissner, Cygnus Support, , from information in the System V Application Binary Interface, PowerPC Processor Supplement @@ -70,39 +71,6 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) RELOC_NUMBER (R_PPC_SECTOFF_HA, 36) RELOC_NUMBER (R_PPC_ADDR30, 37) -/* The following relocs are from the 64-bit PowerPC ELF ABI. */ - RELOC_NUMBER (R_PPC64_ADDR64, 38) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHER, 39) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA, 40) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST, 41) - RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA, 42) - RELOC_NUMBER (R_PPC64_UADDR64, 43) - RELOC_NUMBER (R_PPC64_REL64, 44) - RELOC_NUMBER (R_PPC64_PLT64, 45) - RELOC_NUMBER (R_PPC64_PLTREL64, 46) - RELOC_NUMBER (R_PPC64_TOC16, 47) - RELOC_NUMBER (R_PPC64_TOC16_LO, 48) - RELOC_NUMBER (R_PPC64_TOC16_HI, 49) - RELOC_NUMBER (R_PPC64_TOC16_HA, 50) - RELOC_NUMBER (R_PPC64_TOC, 51) - RELOC_NUMBER (R_PPC64_PLTGOT16, 52) - RELOC_NUMBER (R_PPC64_PLTGOT16_LO, 53) - RELOC_NUMBER (R_PPC64_PLTGOT16_HI, 54) - RELOC_NUMBER (R_PPC64_PLTGOT16_HA, 55) - -/* The following relocs were added in the 64-bit PowerPC ELF ABI revision 1.2. */ - RELOC_NUMBER (R_PPC64_ADDR16_DS, 56) - RELOC_NUMBER (R_PPC64_ADDR16_LO_DS, 57) - RELOC_NUMBER (R_PPC64_GOT16_DS, 58) - RELOC_NUMBER (R_PPC64_GOT16_LO_DS, 59) - RELOC_NUMBER (R_PPC64_PLT16_LO_DS, 60) - RELOC_NUMBER (R_PPC64_SECTOFF_DS, 61) - RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS, 62) - RELOC_NUMBER (R_PPC64_TOC16_DS, 63) - RELOC_NUMBER (R_PPC64_TOC16_LO_DS, 64) - RELOC_NUMBER (R_PPC64_PLTGOT16_DS, 65) - RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS, 66) - /* The remaining relocs are from the Embedded ELF ABI, and are not in the SVR4 ELF ABI. */ RELOC_NUMBER (R_PPC_EMB_NADDR32, 101) @@ -132,51 +100,6 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type) END_RELOC_NUMBERS (R_PPC_max) -/* Aliases for R_PPC64-relocs. */ -#define R_PPC64_NONE R_PPC_NONE -#define R_PPC64_ADDR32 R_PPC_ADDR32 -#define R_PPC64_ADDR24 R_PPC_ADDR24 -#define R_PPC64_ADDR16 R_PPC_ADDR16 -#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO -#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI -#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA -#define R_PPC64_ADDR14 R_PPC_ADDR14 -#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN -#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN -#define R_PPC64_REL24 R_PPC_REL24 -#define R_PPC64_REL14 R_PPC_REL14 -#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN -#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN -#define R_PPC64_GOT16 R_PPC_GOT16 -#define R_PPC64_GOT16_LO R_PPC_GOT16_LO -#define R_PPC64_GOT16_HI R_PPC_GOT16_HI -#define R_PPC64_GOT16_HA R_PPC_GOT16_HA -#define R_PPC64_COPY R_PPC_COPY -#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT -#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT -#define R_PPC64_RELATIVE R_PPC_RELATIVE -#define R_PPC64_UADDR32 R_PPC_UADDR32 -#define R_PPC64_UADDR16 R_PPC_UADDR16 -#define R_PPC64_REL32 R_PPC_REL32 -#define R_PPC64_PLT32 R_PPC_PLT32 -#define R_PPC64_PLTREL32 R_PPC_PLTREL32 -#define R_PPC64_PLT16_LO R_PPC_PLT16_LO -#define R_PPC64_PLT16_HI R_PPC_PLT16_HI -#define R_PPC64_PLT16_HA R_PPC_PLT16_HA -#define R_PPC64_SECTOFF R_PPC_SECTOFF -#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO -#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI -#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA -#define R_PPC64_ADDR30 R_PPC_ADDR30 -#define R_PPC64_GNU_VTINHERIT R_PPC_GNU_VTINHERIT -#define R_PPC64_GNU_VTENTRY R_PPC_GNU_VTENTRY - -/* Specify the start of the .glink section. */ -#define DT_PPC64_GLINK DT_LOPROC - -/* Specify the start and size of the .opd section. */ -#define DT_PPC64_OPD (DT_LOPROC + 1) -#define DT_PPC64_OPDSZ (DT_LOPROC + 2) /* Processor specific flags for the ELF header e_flags field. */ diff -uprN binutils-2.13.90.0.16/include/elf/ppc64.h binutils-2.13.90.0.18/include/elf/ppc64.h --- binutils-2.13.90.0.16/include/elf/ppc64.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/include/elf/ppc64.h Tue Jan 21 10:21:33 2003 @@ -0,0 +1,111 @@ +/* PPC64 ELF support for BFD. + Copyright 2003 Free Software Foundation, Inc. + +This file is part of BFD, the Binary File Descriptor library. + +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. */ + +#ifndef _ELF_PPC64_H +#define _ELF_PPC64_H + +#include "elf/reloc-macros.h" + +/* Relocations. */ +START_RELOC_NUMBERS (elf_ppc64_reloc_type) + RELOC_NUMBER (R_PPC64_NONE, 0) + RELOC_NUMBER (R_PPC64_ADDR32, 1) + RELOC_NUMBER (R_PPC64_ADDR24, 2) + RELOC_NUMBER (R_PPC64_ADDR16, 3) + RELOC_NUMBER (R_PPC64_ADDR16_LO, 4) + RELOC_NUMBER (R_PPC64_ADDR16_HI, 5) + RELOC_NUMBER (R_PPC64_ADDR16_HA, 6) + RELOC_NUMBER (R_PPC64_ADDR14, 7) + RELOC_NUMBER (R_PPC64_ADDR14_BRTAKEN, 8) + RELOC_NUMBER (R_PPC64_ADDR14_BRNTAKEN, 9) + RELOC_NUMBER (R_PPC64_REL24, 10) + RELOC_NUMBER (R_PPC64_REL14, 11) + RELOC_NUMBER (R_PPC64_REL14_BRTAKEN, 12) + RELOC_NUMBER (R_PPC64_REL14_BRNTAKEN, 13) + RELOC_NUMBER (R_PPC64_GOT16, 14) + RELOC_NUMBER (R_PPC64_GOT16_LO, 15) + RELOC_NUMBER (R_PPC64_GOT16_HI, 16) + RELOC_NUMBER (R_PPC64_GOT16_HA, 17) + /* 18 unused. 32-bit reloc is R_PPC_PLTREL24. */ + RELOC_NUMBER (R_PPC64_COPY, 19) + RELOC_NUMBER (R_PPC64_GLOB_DAT, 20) + RELOC_NUMBER (R_PPC64_JMP_SLOT, 21) + RELOC_NUMBER (R_PPC64_RELATIVE, 22) + /* 23 unused. 32-bit reloc is R_PPC_LOCAL24PC. */ + RELOC_NUMBER (R_PPC64_UADDR32, 24) + RELOC_NUMBER (R_PPC64_UADDR16, 25) + RELOC_NUMBER (R_PPC64_REL32, 26) + RELOC_NUMBER (R_PPC64_PLT32, 27) + RELOC_NUMBER (R_PPC64_PLTREL32, 28) + RELOC_NUMBER (R_PPC64_PLT16_LO, 29) + RELOC_NUMBER (R_PPC64_PLT16_HI, 30) + RELOC_NUMBER (R_PPC64_PLT16_HA, 31) + /* 32 unused. 32-bit reloc is R_PPC_SDAREL16. */ + RELOC_NUMBER (R_PPC64_SECTOFF, 33) + RELOC_NUMBER (R_PPC64_SECTOFF_LO, 34) + RELOC_NUMBER (R_PPC64_SECTOFF_HI, 35) + RELOC_NUMBER (R_PPC64_SECTOFF_HA, 36) + RELOC_NUMBER (R_PPC64_REL30, 37) + RELOC_NUMBER (R_PPC64_ADDR64, 38) + RELOC_NUMBER (R_PPC64_ADDR16_HIGHER, 39) + RELOC_NUMBER (R_PPC64_ADDR16_HIGHERA, 40) + RELOC_NUMBER (R_PPC64_ADDR16_HIGHEST, 41) + RELOC_NUMBER (R_PPC64_ADDR16_HIGHESTA, 42) + RELOC_NUMBER (R_PPC64_UADDR64, 43) + RELOC_NUMBER (R_PPC64_REL64, 44) + RELOC_NUMBER (R_PPC64_PLT64, 45) + RELOC_NUMBER (R_PPC64_PLTREL64, 46) + RELOC_NUMBER (R_PPC64_TOC16, 47) + RELOC_NUMBER (R_PPC64_TOC16_LO, 48) + RELOC_NUMBER (R_PPC64_TOC16_HI, 49) + RELOC_NUMBER (R_PPC64_TOC16_HA, 50) + RELOC_NUMBER (R_PPC64_TOC, 51) + RELOC_NUMBER (R_PPC64_PLTGOT16, 52) + RELOC_NUMBER (R_PPC64_PLTGOT16_LO, 53) + RELOC_NUMBER (R_PPC64_PLTGOT16_HI, 54) + RELOC_NUMBER (R_PPC64_PLTGOT16_HA, 55) + +/* The following relocs were added in the 64-bit PowerPC ELF ABI + revision 1.2. */ + RELOC_NUMBER (R_PPC64_ADDR16_DS, 56) + RELOC_NUMBER (R_PPC64_ADDR16_LO_DS, 57) + RELOC_NUMBER (R_PPC64_GOT16_DS, 58) + RELOC_NUMBER (R_PPC64_GOT16_LO_DS, 59) + RELOC_NUMBER (R_PPC64_PLT16_LO_DS, 60) + RELOC_NUMBER (R_PPC64_SECTOFF_DS, 61) + RELOC_NUMBER (R_PPC64_SECTOFF_LO_DS, 62) + RELOC_NUMBER (R_PPC64_TOC16_DS, 63) + RELOC_NUMBER (R_PPC64_TOC16_LO_DS, 64) + RELOC_NUMBER (R_PPC64_PLTGOT16_DS, 65) + RELOC_NUMBER (R_PPC64_PLTGOT16_LO_DS, 66) + + /* These are GNU extensions to enable C++ vtable garbage collection. */ + RELOC_NUMBER (R_PPC64_GNU_VTINHERIT, 253) + RELOC_NUMBER (R_PPC64_GNU_VTENTRY, 254) + +END_RELOC_NUMBERS (R_PPC64_max) + +/* Specify the start of the .glink section. */ +#define DT_PPC64_GLINK DT_LOPROC + +/* Specify the start and size of the .opd section. */ +#define DT_PPC64_OPD (DT_LOPROC + 1) +#define DT_PPC64_OPDSZ (DT_LOPROC + 2) + +#endif /* _ELF_PPC64_H */ diff -uprN binutils-2.13.90.0.16/include/elf/s390.h binutils-2.13.90.0.18/include/elf/s390.h --- binutils-2.13.90.0.16/include/elf/s390.h Thu Mar 15 14:53:08 2001 +++ binutils-2.13.90.0.18/include/elf/s390.h Tue Jan 21 10:21:33 2003 @@ -49,7 +49,7 @@ START_RELOC_NUMBERS (elf_s390_reloc_type RELOC_NUMBER (R_390_GLOB_DAT, 10) /* Create GOT entry. */ RELOC_NUMBER (R_390_JMP_SLOT, 11) /* Create PLT entry. */ RELOC_NUMBER (R_390_RELATIVE, 12) /* Adjust by program base. */ - RELOC_NUMBER (R_390_GOTOFF, 13) /* 32 bit offset to GOT. */ + RELOC_NUMBER (R_390_GOTOFF32, 13) /* 32 bit offset to GOT. */ RELOC_NUMBER (R_390_GOTPC, 14) /* 32 bit PC relative offset to GOT. */ RELOC_NUMBER (R_390_GOT16, 15) /* 16 bit GOT offset. */ RELOC_NUMBER (R_390_PC16, 16) /* PC relative 16 bit. */ @@ -63,6 +63,16 @@ START_RELOC_NUMBERS (elf_s390_reloc_type RELOC_NUMBER (R_390_GOT64, 24) /* 64 bit GOT offset. */ RELOC_NUMBER (R_390_PLT64, 25) /* 64 bit PC relative PLT address. */ RELOC_NUMBER (R_390_GOTENT, 26) /* 32 bit PC rel. to GOT entry >> 1. */ + RELOC_NUMBER (R_390_GOTOFF16, 27) /* 16 bit offset to GOT. */ + RELOC_NUMBER (R_390_GOTOFF64, 28) /* 64 bit offset to GOT. */ + RELOC_NUMBER (R_390_GOTPLT12, 29) /* 12 bit offset to jump slot. */ + RELOC_NUMBER (R_390_GOTPLT16, 30) /* 16 bit offset to jump slot. */ + RELOC_NUMBER (R_390_GOTPLT32, 31) /* 32 bit offset to jump slot. */ + RELOC_NUMBER (R_390_GOTPLT64, 32) /* 64 bit offset to jump slot. */ + RELOC_NUMBER (R_390_GOTPLTENT, 33) /* 32 bit rel. offset to jump slot. */ + RELOC_NUMBER (R_390_PLTOFF16, 34) /* 16 bit offset from GOT to PLT. */ + RELOC_NUMBER (R_390_PLTOFF32, 35) /* 32 bit offset from GOT to PLT. */ + RELOC_NUMBER (R_390_PLTOFF64, 36) /* 16 bit offset from GOT to PLT. */ /* These are GNU extensions to enable C++ vtable garbage collection. */ RELOC_NUMBER (R_390_GNU_VTINHERIT, 250) RELOC_NUMBER (R_390_GNU_VTENTRY, 251) diff -uprN binutils-2.13.90.0.16/include/elf/sh.h binutils-2.13.90.0.18/include/elf/sh.h --- binutils-2.13.90.0.16/include/elf/sh.h Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/include/elf/sh.h Mon Dec 16 12:22:53 2002 @@ -106,7 +106,7 @@ extern enum sh64_elf_cr_type sh64_get_co /* Simpler interface. FIXME: This seems redundant now that we export the interface above. */ -extern boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma)); +extern bfd_boolean sh64_address_is_shmedia PARAMS ((asection *, bfd_vma)); extern int _bfd_sh64_crange_qsort_cmpb PARAMS ((const void *, const void *)); extern int _bfd_sh64_crange_qsort_cmpl PARAMS ((const void *, const void *)); diff -uprN binutils-2.13.90.0.16/include/elf/xstormy16.h binutils-2.13.90.0.18/include/elf/xstormy16.h --- binutils-2.13.90.0.16/include/elf/xstormy16.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/include/elf/xstormy16.h Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ /* XSTORMY16 ELF support for BFD. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -37,6 +37,10 @@ START_RELOC_NUMBERS (elf_xstormy16_reloc RELOC_NUMBER (R_XSTORMY16_24, 8) RELOC_NUMBER (R_XSTORMY16_FPTR16, 9) + RELOC_NUMBER (R_XSTORMY16_LO16, 10) + RELOC_NUMBER (R_XSTORMY16_HI16, 11) + RELOC_NUMBER (R_XSTORMY16_12, 12) + RELOC_NUMBER (R_XSTORMY16_GNU_VTINHERIT, 128) RELOC_NUMBER (R_XSTORMY16_GNU_VTENTRY, 129) END_RELOC_NUMBERS (R_XSTORMY16_max) diff -uprN binutils-2.13.90.0.16/include/gdb/ChangeLog binutils-2.13.90.0.18/include/gdb/ChangeLog --- binutils-2.13.90.0.16/include/gdb/ChangeLog Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/include/gdb/ChangeLog Tue Jan 21 10:21:33 2003 @@ -1,3 +1,7 @@ +2002-12-26 Kazu Hirata + + * sim-h8300.h: Remove ^M. + 2002-07-29 Andrey Volkov * sim-h8300.h: Rename all enums from H8300_ to SIM_H8300_ diff -uprN binutils-2.13.90.0.16/include/gdb/sim-h8300.h binutils-2.13.90.0.18/include/gdb/sim-h8300.h --- binutils-2.13.90.0.16/include/gdb/sim-h8300.h Thu Aug 1 17:49:32 2002 +++ binutils-2.13.90.0.18/include/gdb/sim-h8300.h Tue Jan 21 10:21:33 2003 @@ -1,36 +1,36 @@ -/* This file defines the interface between the h8300 simulator and gdb. - Copyright (C) 2002 Free Software Foundation, Inc. - -This file is part of GDB. - -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 +/* This file defines the interface between the h8300 simulator and gdb. + Copyright (C) 2002 Free Software Foundation, Inc. + +This file is part of GDB. + +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. */ -#if !defined (SIM_H8300_H) -#define SIM_H8300_H - -#ifdef __cplusplus +#if !defined (SIM_H8300_H) +#define SIM_H8300_H + +#ifdef __cplusplus extern "C" { //} #endif - -/* The simulator makes use of the following register information. */ - + +/* The simulator makes use of the following register information. */ + enum sim_h8300_regs { /* Registers common to all the H8 variants. */ /* Start here: */ - SIM_H8300_R0_REGNUM, + SIM_H8300_R0_REGNUM, SIM_H8300_R1_REGNUM, SIM_H8300_R2_REGNUM, SIM_H8300_R3_REGNUM, @@ -42,8 +42,8 @@ extern "C" { //} SIM_H8300_CCR_REGNUM, /* Contains processor status */ SIM_H8300_PC_REGNUM, /* Contains program counter */ /* End here */ - - SIM_H8300_EXR_REGNUM, /* Contains extended processor status + + SIM_H8300_EXR_REGNUM, /* Contains extended processor status H8S and higher */ SIM_H8300_MACL_REGNUM, /* Lower part of MAC register (26xx only)*/ SIM_H8300_MACH_REGNUM, /* High part of MAC register (26xx only) */ @@ -55,11 +55,11 @@ extern "C" { //} enum { - SIM_H8300_ARG_FIRST_REGNUM = SIM_H8300_R0_REGNUM, /* first reg in which an arg - may be passed */ - SIM_H8300_ARG_LAST_REGNUM = SIM_H8300_R3_REGNUM, /* last reg in which an arg + SIM_H8300_ARG_FIRST_REGNUM = SIM_H8300_R0_REGNUM, /* first reg in which an arg may be passed */ - SIM_H8300_FP_REGNUM = SIM_H8300_R6_REGNUM, /* Contain address of executing + SIM_H8300_ARG_LAST_REGNUM = SIM_H8300_R3_REGNUM, /* last reg in which an arg + may be passed */ + SIM_H8300_FP_REGNUM = SIM_H8300_R6_REGNUM, /* Contain address of executing stack frame */ SIM_H8300_SP_REGNUM = SIM_H8300_R7_REGNUM /* Contains address of top of stack */ }; @@ -71,8 +71,8 @@ extern "C" { //} SIM_H8300_NUM_REGS = 16 }; -#ifdef __cplusplus +#ifdef __cplusplus } #endif - + #endif /* SIM_H8300_H */ diff -uprN binutils-2.13.90.0.16/include/opcode/ChangeLog binutils-2.13.90.0.18/include/opcode/ChangeLog --- binutils-2.13.90.0.16/include/opcode/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/include/opcode/ChangeLog Tue Jan 21 10:21:33 2003 @@ -1,3 +1,73 @@ +2003-01-07 Chris Demetriou + + * mips.h: Fix missing space in comment. + (INSN_ISA1, INSN_ISA2, INSN_ISA3, INSN_ISA4, INSN_ISA5) + (INSN_ISA32, INSN_ISA32R2, INSN_ISA64): Shift values right + by four bits. + +2003-01-02 Chris Demetriou + + * mips.h: Update copyright years to include 2002 (which had + been missed previously) and 2003. Make comments about "+A", + "+B", and "+C" operand types more descriptive. + +2002-12-31 Chris Demetriou + + * mips.h: Note that the "+D" operand type name is now used. + +2002-12-30 Chris Demetriou + + * mips.h: Document "+" as the start of two-character operand + type names, and add new "K", "+A", "+B", and "+C" operand types. + (OP_MASK_INSMSB, OP_SH_INSMSB, OP_MASK_EXTMSB) + (OP_SH_EXTMSB, INSN_ISA32R2, ISA_MIPS32R2, CPU_MIPS32R2): New + defines. + +2002-12-24 Dmitry Diky + + * msp430.h: New file. Defines msp430 opcodes. + +2002-12-30 D.Venkatasubramanian + + * h8300.h: Added some more pseudo opcodes for system call + processing. + +2002-12-19 Chris Demetriou + + * mips.h (OP_OP_COP0, OP_OP_COP1, OP_OP_COP2, OP_OP_COP3) + (OP_OP_LWC1, OP_OP_LWC2, OP_OP_LWC3, OP_OP_LDC1, OP_OP_LDC2) + (OP_OP_LDC3, OP_OP_SWC1, OP_OP_SWC2, OP_OP_SWC3, OP_OP_SDC1) + (OP_OP_SDC2, OP_OP_SDC3): Define. + +2002-12-16 Alan Modra + + * hppa.h (completer_chars): #if 0 out. + + * ns32k.h (struct ns32k_opcode): Constify "name", "operands" and + "default_args". + (struct not_wot): Constify "args". + (struct not): Constify "name". + (numopcodes): Delete. + (endop): Delete. + +2002-12-13 Alan Modra + + * pj.h (pj_opc_info_t): Add union. + +2002-12-04 David Mosberger + + * ia64.h: Fix copyright message. + (IA64_OPND_AR_CSD): New operand kind. + +2002-12-03 Richard Henderson + + * ia64.h (enum ia64_opnd): Add IA64_OPND_LDXMOV. + +2002-12-03 Alan Modra + + * cgen.h (struct cgen_maybe_multi_ifield): Add "const PTR p" to union. + Constify "leaf" and "multi". + 2002-11-19 Klee Dienes * h8300.h (h8_opcode): Remove 'noperands', 'idx', and 'size' diff -uprN binutils-2.13.90.0.16/include/opcode/cgen.h binutils-2.13.90.0.18/include/opcode/cgen.h --- binutils-2.13.90.0.16/include/opcode/cgen.h Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/include/opcode/cgen.h Mon Dec 16 12:22:53 2002 @@ -1,6 +1,7 @@ /* Header file for targets using CGEN: Cpu tools GENerator. -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of GDB, the GNU debugger, and the GNU Binutils. @@ -620,8 +621,9 @@ typedef struct cgen_maybe_multi_ifield n: indexed by array of more cgen_maybe_multi_ifields. */ union { - struct cgen_maybe_multi_ifield * multi; - struct cgen_ifld * leaf; + const PTR p; + const struct cgen_maybe_multi_ifield * multi; + const struct cgen_ifld * leaf; } val; } CGEN_MAYBE_MULTI_IFLD; diff -uprN binutils-2.13.90.0.16/include/opcode/h8300.h binutils-2.13.90.0.18/include/opcode/h8300.h --- binutils-2.13.90.0.16/include/opcode/h8300.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/include/opcode/h8300.h Tue Jan 21 10:21:33 2003 @@ -301,6 +301,16 @@ struct h8_opcode #define O_STM 86 #define O_STMAC 87 #define O_LAST 88 +/* Change made for System Call processing. */ +#define O_SYS_CREAT 100 +#define O_SYS_OPEN 101 +#define O_SYS_READ 102 +#define O_SYS_WRITE 103 +#define O_SYS_LSEEK 104 +#define O_SYS_CLOSE 105 +#define O_SYS_STAT 106 +#define O_SYS_FSTAT 107 +/* End of System Call specific Changes. */ #define SB 0 #define SW 1 #define SL 2 diff -uprN binutils-2.13.90.0.16/include/opcode/hppa.h binutils-2.13.90.0.18/include/opcode/hppa.h --- binutils-2.13.90.0.16/include/opcode/hppa.h Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/include/opcode/hppa.h Mon Dec 16 12:22:53 2002 @@ -1,6 +1,6 @@ /* Table of opcodes for the PA-RISC. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, - 2001 + 2001, 2002 Free Software Foundation, Inc. Contributed by the Center for Software Science at the @@ -271,10 +271,12 @@ Float registers for fmpyadd and fmpysub: */ +#if 0 /* List of characters not to put a space after. Note that "," is included, as the "spopN" operations use literal commas in their completer sections. */ static const char *const completer_chars = ",CcY<>?!@+&U~FfGHINnOoZMadu|/=0123%e$m}"; +#endif /* The order of the opcodes in this table is significant: diff -uprN binutils-2.13.90.0.16/include/opcode/ia64.h binutils-2.13.90.0.18/include/opcode/ia64.h --- binutils-2.13.90.0.16/include/opcode/ia64.h Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.18/include/opcode/ia64.h Mon Dec 16 12:22:53 2002 @@ -1,7 +1,6 @@ /* ia64.h -- Header file for ia64 opcode table - Copyright (C) 1998, 1999, 2002 David Mosberger-Tang - - See the file HP-COPYRIGHT for additional information. */ + Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc. + Contributed by David Mosberger-Tang */ #ifndef opcode_ia64_h #define opcode_ia64_h @@ -39,13 +38,14 @@ enum ia64_unit }; /* Changes to this enumeration must be propagated to the operand table in - bfd/cpu-ia64-opc.c - */ + bfd/cpu-ia64-opc.c + */ enum ia64_opnd { IA64_OPND_NIL, /* no operand---MUST BE FIRST!*/ /* constants */ + IA64_OPND_AR_CSD, /* application register csd (ar.csd) */ IA64_OPND_AR_CCV, /* application register ccv (ar.ccv) */ IA64_OPND_AR_PFS, /* application register pfs (ar.pfs) */ IA64_OPND_C1, /* the constant 1 */ @@ -133,6 +133,7 @@ enum ia64_opnd IA64_OPND_TGT25b, /* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */ IA64_OPND_TGT25c, /* signed 25-bit (ip + 16*bits 13-32, 36) */ IA64_OPND_TGT64, /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */ + IA64_OPND_LDXMOV, /* any symbol, generates R_IA64_LDXMOV. */ IA64_OPND_COUNT /* # of operand types (MUST BE LAST!) */ }; @@ -287,7 +288,7 @@ struct ia64_opcode /* Used by ia64_find_next_opcode (). */ short ent_index; - /* Opcode dependencies. */ + /* Opcode dependencies. */ const struct ia64_opcode_dependency *dependencies; }; diff -uprN binutils-2.13.90.0.16/include/opcode/mips.h binutils-2.13.90.0.18/include/opcode/mips.h --- binutils-2.13.90.0.16/include/opcode/mips.h Wed Oct 2 10:17:20 2002 +++ binutils-2.13.90.0.18/include/opcode/mips.h Tue Jan 21 10:21:33 2003 @@ -1,5 +1,5 @@ /* mips.h. Mips opcode list for GDB, the GNU debugger. - Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 + Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Ralph Campbell and OSF Commented and modified by Ian Lance Taylor, Cygnus Support @@ -142,6 +142,27 @@ Software Foundation, 59 Temple Place - S #define OP_SH_VECBYTE 22 #define OP_MASK_VECALIGN 0x7 /* Vector byte-align (alni.ob) op. */ #define OP_SH_VECALIGN 21 +#define OP_MASK_INSMSB 0x1f /* "ins" MSB. */ +#define OP_SH_INSMSB 11 +#define OP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */ +#define OP_SH_EXTMSBD 11 + +#define OP_OP_COP0 0x10 +#define OP_OP_COP1 0x11 +#define OP_OP_COP2 0x12 +#define OP_OP_COP3 0x13 +#define OP_OP_LWC1 0x31 +#define OP_OP_LWC2 0x32 +#define OP_OP_LWC3 0x33 /* a.k.a. pref */ +#define OP_OP_LDC1 0x35 +#define OP_OP_LDC2 0x36 +#define OP_OP_LDC3 0x37 /* a.k.a. ld */ +#define OP_OP_SWC1 0x39 +#define OP_OP_SWC2 0x3a +#define OP_OP_SWC3 0x3b +#define OP_OP_SDC1 0x3d +#define OP_OP_SDC2 0x3e +#define OP_OP_SDC3 0x3f /* a.k.a. sd */ /* Values in the 'VSEL' field. */ #define MDMX_FMTSEL_IMM_QH 0x1d @@ -211,6 +232,15 @@ struct mips_opcode "J" 19 bit wait function code (OP_*_CODE19) "x" accept and ignore register name "z" must be zero register + "K" 5 bit Hardware Register (rdhwr instruction) (OP_*_RD) + "+A" 5 bit ins/ext position, which becomes LSB (OP_*_SHAMT). + Enforces: 0 <= pos < 32. + "+B" 5 bit ins size, which becomes MSB (OP_*_INSMSB). + Requires that "+A" occur first to set position. + Enforces: 0 < (pos+size) <= 32. + "+C" 5 bit ext size, which becomes MSBD (OP_*_EXTMSBD). + Requires that "+A" occur first to set position. + Enforces: 0 < (pos+size) <= 32. Floating point instructions: "D" 5 bit destination register (OP_*_FD) @@ -230,6 +260,8 @@ struct mips_opcode "e" 5 bit vector register byte specifier (OP_*_VECBYTE) "%" 3 bit immediate vr5400 vector alignment operand (OP_*_VECALIGN) see also "k" above + "+D" Combined destination register ("G") and sel ("H") for CP0 ops, + for pretty-printing in disassembly only. Macro instructions: "A" General 32 bit expression @@ -251,11 +283,16 @@ struct mips_opcode "()" parens surrounding optional value "," separates operands "[]" brackets around index for vector-op scalar operand specifier (vr5400) + "+" Start of extension sequence. Characters used so far, for quick reference when adding more: - "%[]<>()," - "ABCDEFGHIJLMNOPQRSTUVWXYZ" + "%[]<>(),+" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefhijklopqrstuvwxz" + + Extension character sequences used so far ("+" followed by the + following), for quick reference when adding more: + "ABCD" */ /* These are the bits which may be set in the pinfo field of an @@ -336,17 +373,18 @@ struct mips_opcode /* Masks used to mark instructions to indicate which MIPS ISA level they were introduced in. ISAs, as defined below, are logical - ORs of these bits, indicatingthat they support the instructions + ORs of these bits, indicating that they support the instructions defined at the given level. */ #define INSN_ISA_MASK 0x00000fff -#define INSN_ISA1 0x00000010 -#define INSN_ISA2 0x00000020 -#define INSN_ISA3 0x00000040 -#define INSN_ISA4 0x00000080 -#define INSN_ISA5 0x00000100 -#define INSN_ISA32 0x00000200 -#define INSN_ISA64 0x00000400 +#define INSN_ISA1 0x00000001 +#define INSN_ISA2 0x00000002 +#define INSN_ISA3 0x00000004 +#define INSN_ISA4 0x00000008 +#define INSN_ISA5 0x00000010 +#define INSN_ISA32 0x00000020 +#define INSN_ISA64 0x00000040 +#define INSN_ISA32R2 0x00000080 /* Masks used for MIPS-defined ASEs. */ #define INSN_ASE_MASK 0x0000f000 @@ -389,9 +427,12 @@ struct mips_opcode #define ISA_MIPS3 (ISA_MIPS2 | INSN_ISA3) #define ISA_MIPS4 (ISA_MIPS3 | INSN_ISA4) #define ISA_MIPS5 (ISA_MIPS4 | INSN_ISA5) + #define ISA_MIPS32 (ISA_MIPS2 | INSN_ISA32) #define ISA_MIPS64 (ISA_MIPS5 | INSN_ISA32 | INSN_ISA64) +#define ISA_MIPS32R2 (ISA_MIPS32 | INSN_ISA32R2) + /* CPU defines, use instead of hardcoding processor number. Keep this in sync with bfd/archures.c in order for machine selection to work. */ #define CPU_UNKNOWN 0 /* Gas internal use. */ @@ -415,6 +456,7 @@ struct mips_opcode #define CPU_R12000 12000 #define CPU_MIPS16 16 #define CPU_MIPS32 32 +#define CPU_MIPS32R2 33 #define CPU_MIPS5 5 #define CPU_MIPS64 64 #define CPU_SB1 12310201 /* octal 'SB', 01. */ diff -uprN binutils-2.13.90.0.16/include/opcode/msp430.h binutils-2.13.90.0.18/include/opcode/msp430.h --- binutils-2.13.90.0.16/include/opcode/msp430.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/include/opcode/msp430.h Tue Jan 21 10:21:33 2003 @@ -0,0 +1,111 @@ +/* Opcode table for the TI MSP430 microcontrollers + + Copyright 2002 Free Software Foundation, Inc. + Contributed by Dmitry Diky + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef __MSP430_H_ +#define __MSP430_H_ + +struct msp430_operand_s +{ + int ol; /* Operand length words. */ + int am; /* Addr mode. */ + int reg; /* Register. */ + int mode; /* Pperand mode. */ +#define OP_REG 0 +#define OP_EXP 1 +#ifndef DASM_SECTION + expressionS exp; +#endif +}; + +#define BYTE_OPERATION (1 << 6) /* Byte operation flag for all instructions. */ + +struct msp430_opcode_s +{ + char *name; + int fmt; + int insn_opnumb; + int bin_opcode; + int bin_mask; +}; + +#define MSP_INSN(name, size, numb, bin, mask) { #name, size, numb, bin, mask } + +static struct msp430_opcode_s msp430_opcodes[] = +{ + MSP_INSN (and, 1, 2, 0xf000, 0xf000), + MSP_INSN (inv, 0, 1, 0xe330, 0xfff0), + MSP_INSN (xor, 1, 2, 0xe000, 0xf000), + MSP_INSN (setz, 0, 0, 0xd322, 0xffff), + MSP_INSN (setc, 0, 0, 0xd312, 0xffff), + MSP_INSN (eint, 0, 0, 0xd232, 0xffff), + MSP_INSN (setn, 0, 0, 0xd222, 0xffff), + MSP_INSN (bis, 1, 2, 0xd000, 0xf000), + MSP_INSN (clrz, 0, 0, 0xc322, 0xffff), + MSP_INSN (clrc, 0, 0, 0xc312, 0xffff), + MSP_INSN (dint, 0, 0, 0xc232, 0xffff), + MSP_INSN (clrn, 0, 0, 0xc222, 0xffff), + MSP_INSN (bic, 1, 2, 0xc000, 0xf000), + MSP_INSN (bit, 1, 2, 0xb000, 0xf000), + MSP_INSN (dadc, 0, 1, 0xa300, 0xff30), + MSP_INSN (dadd, 1, 2, 0xa000, 0xf000), + MSP_INSN (tst, 0, 1, 0x9300, 0xff30), + MSP_INSN (cmp, 1, 2, 0x9000, 0xf000), + MSP_INSN (decd, 0, 1, 0x8320, 0xff30), + MSP_INSN (dec, 0, 1, 0x8310, 0xff30), + MSP_INSN (sub, 1, 2, 0x8000, 0xf000), + MSP_INSN (sbc, 0, 1, 0x7300, 0xff30), + MSP_INSN (subc, 1, 2, 0x7000, 0xf000), + MSP_INSN (adc, 0, 1, 0x6300, 0xff30), + MSP_INSN (rlc, 0, 2, 0x6000, 0xf000), + MSP_INSN (addc, 1, 2, 0x6000, 0xf000), + MSP_INSN (incd, 0, 1, 0x5320, 0xff30), + MSP_INSN (inc, 0, 1, 0x5310, 0xff30), + MSP_INSN (rla, 0, 2, 0x5000, 0xf000), + MSP_INSN (add, 1, 2, 0x5000, 0xf000), + MSP_INSN (nop, 0, 0, 0x4303, 0xffff), + MSP_INSN (clr, 0, 1, 0x4300, 0xff30), + MSP_INSN (ret, 0, 0, 0x4130, 0xff30), + MSP_INSN (pop, 0, 1, 0x4130, 0xff30), + MSP_INSN (br, 0, 3, 0x4000, 0xf000), + MSP_INSN (mov, 1, 2, 0x4000, 0xf000), + MSP_INSN (jmp, 3, 1, 0x3c00, 0xfc00), + MSP_INSN (jl, 3, 1, 0x3800, 0xfc00), + MSP_INSN (jge, 3, 1, 0x3400, 0xfc00), + MSP_INSN (jn, 3, 1, 0x3000, 0xfc00), + MSP_INSN (jc, 3, 1, 0x2c00, 0xfc00), + MSP_INSN (jhs, 3, 1, 0x2c00, 0xfc00), + MSP_INSN (jnc, 3, 1, 0x2800, 0xfc00), + MSP_INSN (jlo, 3, 1, 0x2800, 0xfc00), + MSP_INSN (jz, 3, 1, 0x2400, 0xfc00), + MSP_INSN (jeq, 3, 1, 0x2400, 0xfc00), + MSP_INSN (jnz, 3, 1, 0x2000, 0xfc00), + MSP_INSN (jne, 3, 1, 0x2000, 0xfc00), + MSP_INSN (reti, 2, 0, 0x1300, 0xffc0), + MSP_INSN (call, 2, 1, 0x1280, 0xffc0), + MSP_INSN (push, 2, 1, 0x1200, 0xff80), + MSP_INSN (sxt, 2, 1, 0x1180, 0xffc0), + MSP_INSN (rra, 2, 1, 0x1100, 0xff80), + MSP_INSN (swpb, 2, 1, 0x1080, 0xffc0), + MSP_INSN (rrc, 2, 1, 0x1000, 0xff80), + + /* End of instruction set. */ + { NULL, 0, 0, 0, 0 } +}; + +#endif diff -uprN binutils-2.13.90.0.16/include/opcode/ns32k.h binutils-2.13.90.0.18/include/opcode/ns32k.h --- binutils-2.13.90.0.16/include/opcode/ns32k.h Thu Mar 15 14:53:16 2001 +++ binutils-2.13.90.0.18/include/opcode/ns32k.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* ns32k-opcode.h -- Opcode table for National Semi 32k processor - Copyright 1987, 1991, 1994 Free Software Foundation, Inc. + Copyright 1987, 1991, 1994, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -37,7 +37,7 @@ the Free Software Foundation, 59 Temple the opcode or the addition of data to the opcode. The operands in the source instruction are checked for inconsistent semantics. - + F : 32 bit float general form L : 64 bit float " B : byte " @@ -80,13 +80,13 @@ column 1 instructions 6 size in bytes of immediate */ struct ns32k_opcode { - char *name; + const char *name; unsigned char opcode_id_size; /* not used by the assembler */ unsigned char opcode_size; unsigned long opcode_seed; - char *operands; + const char *operands; unsigned char im_size; /* not used by dissassembler */ - char *default_args; /* default to those args when none given */ + const char *default_args; /* default to those args when none given */ char default_modec; /* default to this addr-mode when ambigous ie when the argument of a general addr-mode is a plain constant */ @@ -103,20 +103,20 @@ struct ns32k_opcode { struct not_wot /* ns32k opcode table: wot to do with this */ /* particular opcode */ { - int obits; /* number of opcode bits */ - int ibits; /* number of instruction bits */ - ns32k_opcodeT code; /* op-code (may be > 8 bits!) */ - char *args; /* how to compile said opcode */ + int obits; /* number of opcode bits */ + int ibits; /* number of instruction bits */ + ns32k_opcodeT code; /* op-code (may be > 8 bits!) */ + const char *args; /* how to compile said opcode */ }; struct not /* ns32k opcode text */ { - char * name; /* opcode name: lowercase string [key] */ - struct not_wot detail; /* rest of opcode table [datum] */ + const char *name; /* opcode name: lowercase string [key] */ + struct not_wot detail; /* rest of opcode table [datum] */ }; /* Instructions look like this: - + basic instruction--1, 2, or 3 bytes index byte for operand A, if operand A is indexed--1 byte index byte for operand B, if operand B is indexed--1 byte @@ -130,7 +130,7 @@ struct not /* ns32k opcode text */ The implied operands are associated with operands other than A and B. Each operand has a digit and a letter. - + The digit gives the position in the assembly language. The letter, one of the following, tells us what kind of operand it is. */ @@ -482,10 +482,6 @@ static const struct ns32k_opcode ns32k_o { "scalbl", 14,24, 0x10fe, "1L2Z", 8, "", DEF_MODEC,DEF_MODEL }, }; -static const int numopcodes=sizeof(ns32k_opcodes)/sizeof(ns32k_opcodes[0]); - -static const struct ns32k_opcode *const endop = ns32k_opcodes+sizeof(ns32k_opcodes)/sizeof(ns32k_opcodes[0]); - #define MAX_ARGS 4 #define ARG_LEN 50 diff -uprN binutils-2.13.90.0.16/include/opcode/pj.h binutils-2.13.90.0.18/include/opcode/pj.h --- binutils-2.13.90.0.16/include/opcode/pj.h Thu Mar 15 14:53:16 2001 +++ binutils-2.13.90.0.18/include/opcode/pj.h Mon Dec 16 12:22:53 2002 @@ -36,11 +36,14 @@ Foundation, Inc., 59 Temple Place - Suit #define UNS(x) (!!((x) & (1<<3))) -typedef struct +typedef struct pj_opc_info_t { short opcode; short opcode_next; char len; unsigned char arg[2]; - const char *name; + union { + const char *name; + void (*func) PARAMS ((struct pj_opc_info_t *, char *)); + } u; } pj_opc_info_t; diff -uprN binutils-2.13.90.0.16/include/splay-tree.h binutils-2.13.90.0.18/include/splay-tree.h --- binutils-2.13.90.0.16/include/splay-tree.h Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/include/splay-tree.h Tue Jan 21 10:21:33 2003 @@ -36,6 +36,10 @@ extern "C" { #include "ansidecl.h" +#ifndef GTY +#define GTY(X) +#endif + /* Use typedefs for the key and data types to facilitate changing these types, if necessary. These types should be sufficiently wide that any pointer or scalar can be cast to these types, and then @@ -65,7 +69,7 @@ typedef int (*splay_tree_foreach_fn) PAR node structures. The first argument is the number of bytes needed; the second is a data pointer the splay tree functions pass through to the allocator. This function must never return zero. */ -typedef void *(*splay_tree_allocate_fn) PARAMS((int, void *)); +typedef PTR (*splay_tree_allocate_fn) PARAMS((int, void *)); /* The type of a function used to free memory allocated using the corresponding splay_tree_allocate_fn. The first argument is the @@ -74,24 +78,24 @@ typedef void *(*splay_tree_allocate_fn) typedef void (*splay_tree_deallocate_fn) PARAMS((void *, void *)); /* The nodes in the splay tree. */ -struct splay_tree_node_s +struct splay_tree_node_s GTY(()) { /* The key. */ - splay_tree_key key; + splay_tree_key GTY ((use_param1 (""))) key; /* The value. */ - splay_tree_value value; + splay_tree_value GTY ((use_param2 (""))) value; /* The left and right children, respectively. */ - splay_tree_node left; - splay_tree_node right; + splay_tree_node GTY ((use_params (""))) left; + splay_tree_node GTY ((use_params (""))) right; }; /* The splay tree itself. */ -typedef struct splay_tree_s +struct splay_tree_s GTY(()) { /* The root of the tree. */ - splay_tree_node root; + splay_tree_node GTY ((use_params (""))) root; /* The comparision function. */ splay_tree_compare_fn comp; @@ -105,9 +109,10 @@ typedef struct splay_tree_s /* Allocate/free functions, and a data pointer to pass to them. */ splay_tree_allocate_fn allocate; splay_tree_deallocate_fn deallocate; - void *allocate_data; + PTR GTY((skip (""))) allocate_data; -} *splay_tree; +}; +typedef struct splay_tree_s *splay_tree; extern splay_tree splay_tree_new PARAMS((splay_tree_compare_fn, splay_tree_delete_key_fn, diff -uprN binutils-2.13.90.0.16/ld/ChangeLog binutils-2.13.90.0.18/ld/ChangeLog --- binutils-2.13.90.0.16/ld/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/ChangeLog Tue Jan 21 10:21:33 2003 @@ -1,3 +1,289 @@ +2003-01-21 Nick Clifton + + * emulparams/tic3xcoff-onchip.sh: Rename to ...z + * emulparams/tic3xcoff_onchip.sh: ...this. + * Makefile.am (etic3xcoff_onchip.c): Fix name of generated C file. + * Makefile.in: Regenerate. + +2003-01-21 Fabio Alemagna + + * configure.tgt: Handle i[3456]86-*-aros* + +2003-01-19 Svein E. Seldal + + * Makefile.am: Added etic3xcoff.o and etic4xcoff_onchip.o + * Makefile.in: Regenerate + * configure.tgt: Added extra target emulations + * emulparams/tic3xcoff.sh: Remove old settings + * emulparams/tic4xcoff.sh: Ditto + * emulparams/tic3xcoff-onchip.sh: Added new + * scripttempl/tic4xcoff.sc: Revise and combine both c3x and c4x + * scripttempl/tic3xcoff.sc: Remove + +2003-01-17 Andreas Jaeger + + * emultempl/elf32.em (gld${EMULATION_NAME}_add_sysroot): Do not + skip ':'. + +2003-01-16 Alan Modra + + * Makefile.in: Regenerate. + +2002-01-14 Charles Wilson + + * ld/ld.texinfo (node WIN32): Some clarifications + and formatting fixups. + +2003-01-09 Chris Demetriou + + * ldmain.c (get_emulation): Sort -mipsNN checks in the usual + order, and handle (ignore) -mips32r2. + +2003-01-09 Daniel Jacobowitz + + * ldmain.c (main): Make sure ld_sysroot is initialized. + +2003-01-06 Daniel Jacobowitz + + * Makefile.am (eelf32iq10.c): Fix tab/whitespace mixup. + + * Makefile.am (ldmain.o): Add @TARGET_SYSTEM_ROOT_DEFINE@. + (GENSCRIPTS): Add @use_sysroot@. + * Makefile.in: Regenerated. + * configure.host: Move setting of NATIVE_LIB_DIRS to... + * configure.tgt: ... here. Use ${target} instead of ${host} + for NATIVE_LIB_DIRS. + * configure.in: Add --with-sysroot. + * configure: Regenerated. + * genscripts.sh: Accept use_sysroot option. Set new variables + NATIVE and USE_LIBPATH. Prepend "=" to directory names if + $use_sysroot. Don't search $tool_lib if $use_sysroot. + * ldfile.c (ldfile_add_library_path): Handle leading '='. + * ldmain.c (TARGET_SYSTEM_ROOT): Define if not defined. + (ld_sysroot): New variable. + (main): Initialize ld_sysroot. + * ldmain.h (ld_sysroot): New extern. + * emultempl/elf32.em: Use NATIVE and USE_LIBPATH instead of + searching $EMULATION_LIBPATH. + (gld${EMULATION_NAME}_add_sysroot): New function. + (gld${EMULATION_NAME}_check_ld_so_conf): Use it. Honor ld_sysroot. + (gld${EMULATION_NAME}_after_open): Likewise. Only search + environment variables if $NATIVE. + * ld.texinfo (Options): Mention "=" prefix in the description of -L. + * NEWS: Mention --with-sysroot. + + * emulparams/elf32bmipn32-defs.sh: Set NATIVE and LIBPATH_SUFFIX + instead of setting LIB_PATH. + * emulparams/elf32ppc.sh: Likewise. + * emulparams/elf64_s390.sh: Likewise. + * emulparams/elf64_sparc.sh: Likewise. + * emulparams/elf64ppc.sh: Likewise. + * emulparams/elf_x86_64.sh: Likewise. + + * emulparams/elf64_aix.sh: Add "=" prefixes to LIB_PATH. + * emulparams/elf64hppa.sh: Add "=" prefixes to LIB_PATH. + +2003-01-03 Charles Wilson + + * ld/pe-dll.c (autofilter_symbollist): Add cygwin_crt0. + +2003-01-04 Daniel Jacobowitz + + * Makefile.am (ldmain.o): Pass BINDIR. + * Makefile.in: Regenerated. + * ldmain.c (set_scripts_dir): Use make_relative_prefix for the first + search path. + +2003-01-02 Ben Elliston + + * Makefile.am (ALL_EMULATIONS): Add eelf32iq2000.o. + (eelf32iq2000.c): New target. + * Makefile.in: Regenerate. + * configure.tgt: Handle iq2000-*-elf. + * emulparams/elf32iq10.sh: New file. + * emulparams/elf32iq2000.sh: New file. + * scripttempl/iq2000.sc: New file. + +2003-01-02 Charles Wilson + + * pe-dll.c (autofilter_symbollist): Add do_pseudo_reloc + and _pei386_runtime_relocator to the exclude list. + +2003-01-01 Kazu Hirata + + * ldfile.c: Fix comment typos. + * ldlang.c: Likewise. + * mri.c: Likewise. + * pe-dll.c: Likewise. + +2003-01-01 Daniel Jacobowitz + + Suggested by Manfred Hollstein : + * Makefile.am (ld.1): Depend on configdoc.texi + and ldver.texi. + * Makefile.in: Regenerated. + +2002-12-24 Dmitry Diky + + * Makefile.am: Add msp430 target. + * configure.tgt: Likewise. + * Makefile.in: Regenerate. + * emulparams/msp430x???.sh: New files. Linker script parameters + for various msp430 configurations. + * gen-doc.texi: Enable msp430 documenation. + * ld.texinfo: Document msp430 sections. + * scripttempl/elf32msp430.sc: New file. Linker script for msp430. + * scripttempl/elf32msp430_3.sc: New file. Linker script for msp430. + +2002-12-30 Ralf Habacker + Charles Wilson + + * ld/config.in (HAVE_REALPATH): New entry. + (HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H): Removed: obsolete. + +2002-12-30 Ralf Habacker + + * ld.texinfo: New win32 topics: 'symbol aliasing' and 'export dll + symbols'. + +2002-12-23 Alan Modra + + * ldmain.c (main): Init "strip_discarded". + * lexsup.c (OPTION_STRIP_DISCARDED): Define. + (OPTION_NO_STRIP_DISCARDED): Define. + (ld_options): Add "strip-discarded" and "no-strip-discarded". + (parse_args): Handle them. + +2002-12-23 Nick Clifton + + * ld.h (struct args_type): Add new field + 'accept_unknown_input_architecture'. + * ldmain.c (main): Initialise 'accept_unknown_input_architecture' + to false. + * ldlang.c (lang_check): Pass accept_unknown_input_architecture to + bfd_arch_get_compatible. + * ldfile.c (ldfile_try_open_bfd): Likewise. + * lexsup.c (ld_options): Add new command line switch + --accept-unknown-input-architecture and its inverse. + (parse_args): Handle --accept-unknown-input-architecture. + * ld.texinfo: Document new linker option. + * NEWS: Mention new linker option. + +2002-12-20 Alan Modra + + * ldmain.c (main): Re-order link_info initialization. Init all + fields. + +2002-12-19 Charles Wilson + + * ld.texinfo: Clarify and extend the documentation + in the Machine Dependent, WIN32 section. + +2002-12-18 Ralf Habacker + + * ld.texinfo: Add win32 machine depending section. + * gen-doc.texi: Enable win32 machine depending section. + + * configure.host: Add win32 library search path. + +2002-12-17 Ralf Habacker + + * ld/emultempl/pe.em (pe_find_data_imports): Don't search for data + import when auto-import is disabled. + +2002-12-17 Danny Smith + + * emultempl/pe.em (..._recognized_file): Use LD_PATHMAX+1 to + account for trailing '\0'. + +2002-12-17 Nick Clifton + + * emultempl/pe.em (longopts): Duplicate entry for --compact-implib + so that it is not confused with -c. + +2002-12-13 Ralf Habacker + Charles Wilson + + * configure.in: Add check for realpath function. + * configure: Regenerate. + * config.in: Regenerate. + * aclocal.m4: Regenerate. + * deffile.h: Add .data field to def_file_import + structure. + * pe-dll.c (pe_proces_import_defs): Use .data field of + def_file_import structure to initialize flag_data field of + def_file_export structure. + (pe_implied_import_dll): New variables exp_funcbase and + [data|bss]_[start|end]. Use DLL's internal name to set dll_name, + not filename (which may be a symlink). Scan the sections and + initialize [data|bss]_[start|end]. When scanning the export + table, skip _nm_ symbols, and mark any symbols whose rva indicates + that it is in the .bss or .data sections as data. + * sysdep.h: Include limits.h and sys/param.h, and define + LD_PATHMAX as appropriate. Also define REALPATH as realpath if it + exists, NULL otherwise. + * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Call + pe_process_import_defs before pe_find_data_imports, so that + auto-import will check the virtual implib as well as "real" + implibs. + (gld_${EMULATION_NAME}_recognized_file): Use REALPATH to follow + symlinks to their target; check that the target's extension is + .dll before calling pe_implied_import_dll(), not the filename + itself (which may be a symlink). + +2002-12-10 Alan Modra + + * emultempl/elf32.em (struct orphan_save): Add os_tail field. + (gld${EMULATION_NAME}_place_orphan): Re-order output_section_statement + list too. + +2002-12-08 Alan Modra + + * ldlang.h: Formatting. + +2002-12-07 Alan Modra + + * ldlang.c (init_os): Ensure sections mentioned in load_base + are initialized. + +2002-12-05 Alan Modra + + * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Set + load_base for orphans that follow a section with load_base set. + +2002-12-01 H.J. Lu + + * ld.texinfo: Remove the extra `;' in sample version script. + +2002-11-30 Alan Modra + + * configure.host: Correct dynamic-linker for powerpc64 hosts. + + * Makefile.am (eelf32ppcwindiss.c): Correct dependencies. + * Makefile.in: Regenerate. + + * ld.h, ldcref.c, ldctor.c, ldctor.h, ldemul.c, ldemul.h, ldexp.c, + ldexp.h, ldfile.c, ldfile.h, ldgram.y, ldlang.c, ldlang.h, ldmain.c, + ldmain.h, ldmisc.c, ldwrite.c, lexsup.c, mri.c, pe-dll.c, pe-dll.h, + emulparams/elf32b4300.sh, emultempl/aix.em, emultempl/armcoff.em, + emultempl/armelf.em, emultempl/armelf_oabi.em, emultempl/beos.em, + emultempl/elf32.em, emultempl/generic.em, emultempl/gld960.em, + emultempl/gld960c.em, emultempl/hppaelf.em, emultempl/linux.em, + emultempl/lnk960.em, emultempl/m68kcoff.em, emultempl/mipsecoff.em, + emultempl/mmix-elfnmmo.em, emultempl/mmixelf.em, emultempl/mmo.em, + emultempl/needrelax.em, emultempl/pe.em, emultempl/ppc64elf.em, + emultempl/sh64elf.em, emultempl/sunos.em, emultempl/ticoff.em: Replace + boolean with bfd_boolean, true with TRUE, false with FALSE. Simplify + comparisons of bfd_boolean vars with TRUE/FALSE. Formatting. + +2002-11-27 David O'Brien + + * configure.host: Fix generic FreeBSD configuration entry. + +2002-11-27 H.J. Lu + + * ld.texinfo: Add the missing `;' to sample version scripts. + 2002-11-20 Alan Modra * emulparams/elf64ppc.sh (SEGMENT_SIZE): Don't define. diff -uprN binutils-2.13.90.0.16/ld/ChangeLog.linux binutils-2.13.90.0.18/ld/ChangeLog.linux --- binutils-2.13.90.0.16/ld/ChangeLog.linux Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/ld/ChangeLog.linux Tue Jan 21 10:21:33 2003 @@ -1,3 +1,17 @@ +2003-01-17 H.J. Lu + + * emultempl/elf32.em: Back out the multilib change. + * emultempl/gld960.em: Likewise. + * emultempl/gld960c.em: Likewise. + * emultempl/lnk960.em: Likewise. + * emultempl/sunos.em: Likewise. + * ld.h: Likewise. + * ldfile.c: Likewise. + * ldfile.h: Likewise. + * ldgram.y: Likewise. + * ldmain.c: Likewise. + * lexsup.c: Likewise. + 2002-07-05 H.J. Lu * ldlang.c (lang_size_sections_1): Partially undo the last diff -uprN binutils-2.13.90.0.16/ld/Makefile.am binutils-2.13.90.0.18/ld/Makefile.am --- binutils-2.13.90.0.16/ld/Makefile.am Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/Makefile.am Tue Jan 21 10:21:33 2003 @@ -166,6 +166,8 @@ ALL_EMULATIONS = \ eelf32frv.o \ eelf32i370.o \ eelf32ip2k.o \ + eelf32iq2000.o \ + eelf32iq10.o \ eelf32l4300.o \ eelf32lmip.o \ eelf32lppc.o \ @@ -245,6 +247,44 @@ ALL_EMULATIONS = \ emipslit.o \ emipslnews.o \ emipspe.o \ + emsp430x1101.o \ + emsp430x1111.o \ + emsp430x1121.o \ + emsp430x1331.o \ + emsp430x1351.o \ + emsp430x149.o \ + emsp430x148.o \ + emsp430x147.o \ + emsp430x135.o \ + emsp430x133.o \ + emsp430x110.o \ + emsp430x112.o \ + emsp430x122.o \ + emsp430x1222.o \ + emsp430x123.o \ + emsp430x1232.o \ + emsp430x412.o \ + emsp430x413.o \ + emsp430x311.o \ + emsp430x312.o \ + emsp430x313.o \ + emsp430x314.o \ + emsp430x315.o \ + emsp430x323.o \ + emsp430x325.o \ + emsp430x336.o \ + emsp430x337.o \ + emsp430x435.o \ + emsp430x436.o \ + emsp430x447.o \ + emsp430x448.o \ + emsp430x449.o \ + emsp430x169.o \ + emsp430x168.o \ + emsp430x167.o \ + emsp430x155.o \ + emsp430x156.o \ + emsp430x157.o \ enews.o \ ens32knbsd.o \ eor32.o \ @@ -284,6 +324,8 @@ ALL_EMULATIONS = \ esun4.o \ etic30aout.o \ etic30coff.o \ + etic3xcoff.o \ + etic3xcoff_onchip.o \ etic4xcoff.o \ etic54xcoff.o \ etic80coff.o \ @@ -353,7 +395,10 @@ po/POTFILES.in: @MAINT@ Makefile && mv tmp $(srcdir)/po/POTFILES.in ldmain.o: ldmain.c config.status - $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' -DSCRIPTDIR='"$(scriptdir)"' -DTARGET='"@target@"' $(srcdir)/ldmain.c + $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' \ + -DSCRIPTDIR='"$(scriptdir)"' -DBINDIR='"$(bindir)"' \ + -DTARGET='"@target@"' @TARGET_SYSTEM_ROOT_DEFINE@ \ + $(srcdir)/ldmain.c ldemul-list.h: Makefile (echo "/* This file is automatically generated. DO NOT EDIT! */";\ @@ -375,7 +420,7 @@ stringify.sed: ${srcdir}/emultempl/$(STR # These all start with e so 'make clean' can find them. -GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" +GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed @TDIRS@ @@ -624,7 +669,8 @@ eelf32ppcnto.c: $(srcdir)/emulparams/elf $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" -eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh ${GEN_DEPENDS} +eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ @@ -661,6 +707,12 @@ eelf32i370.c: $(srcdir)/emulparams/elf32 eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/ip2k.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" +eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" +eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)" @@ -938,6 +990,162 @@ emn10300.c: $(srcdir)/emulparams/mn10300 emn10200.c: $(srcdir)/emulparams/mn10200.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" +emsp430x1101.c: $(srcdir)/emulparams/msp430x1101.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1101 "$(tdir_msp430x1101)" +emsp430x1111.c: $(srcdir)/emulparams/msp430x1111.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1111 "$(tdir_msp430x1111)" +emsp430x1121.c: $(srcdir)/emulparams/msp430x1121.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1121 "$(tdir_msp430x1121)" +emsp430x1331.c: $(srcdir)/emulparams/msp430x1331.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1331 "$(tdir_msp430x1331)" +emsp430x1351.c: $(srcdir)/emulparams/msp430x1351.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1351 "$(tdir_msp430x1351)" +emsp430x149.c: $(srcdir)/emulparams/msp430x149.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x149 "$(tdir_msp430x149)" +emsp430x148.c: $(srcdir)/emulparams/msp430x148.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x148 "$(tdir_msp430x148)" +emsp430x449.c: $(srcdir)/emulparams/msp430x449.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" +emsp430x448.c: $(srcdir)/emulparams/msp430x448.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" +emsp430x447.c: $(srcdir)/emulparams/msp430x447.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" +emsp430x412.c: $(srcdir)/emulparams/msp430x412.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" +emsp430x413.c: $(srcdir)/emulparams/msp430x413.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" +emsp430x147.c: $(srcdir)/emulparams/msp430x147.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x147 "$(tdir_msp430x147)" +emsp430x135.c: $(srcdir)/emulparams/msp430x135.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" +emsp430x133.c: $(srcdir)/emulparams/msp430x133.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x133 "$(tdir_msp430x133)" +emsp430x110.c: $(srcdir)/emulparams/msp430x110.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x110 "$(tdir_msp430x110)" +emsp430x112.c: $(srcdir)/emulparams/msp430x112.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" +emsp430x122.c: $(srcdir)/emulparams/msp430x122.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x122 "$(tdir_msp430x122)" +emsp430x1222.c: $(srcdir)/emulparams/msp430x1222.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1222 "$(tdir_msp430x1222)" +emsp430x123.c: $(srcdir)/emulparams/msp430x123.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" +emsp430x1232.c: $(srcdir)/emulparams/msp430x1232.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1232 "$(tdir_msp430x1232)" +emsp430x311.c: $(srcdir)/emulparams/msp430x311.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x311 "$(tdir_msp430x311)" +emsp430x312.c: $(srcdir)/emulparams/msp430x312.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x312 "$(tdir_msp430x312)" +emsp430x313.c: $(srcdir)/emulparams/msp430x313.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x313 "$(tdir_msp430x313)" +emsp430x314.c: $(srcdir)/emulparams/msp430x314.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x314 "$(tdir_msp430x314)" +emsp430x315.c: $(srcdir)/emulparams/msp430x315.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x315 "$(tdir_msp430x315)" +emsp430x323.c: $(srcdir)/emulparams/msp430x323.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x323 "$(tdir_msp430x323)" +emsp430x325.c: $(srcdir)/emulparams/msp430x325.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x325 "$(tdir_msp430x325)" +emsp430x336.c: $(srcdir)/emulparams/msp430x336.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x336 "$(tdir_msp430x336)" +emsp430x337.c: $(srcdir)/emulparams/msp430x337.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x337 "$(tdir_msp430x337)" +emsp430x435.c: $(srcdir)/emulparams/msp430x435.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" +emsp430x436.c: $(srcdir)/emulparams/msp430x436.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" +emsp430x437.c: $(srcdir)/emulparams/msp430x437.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" +emsp430x167.c: $(srcdir)/emulparams/msp430x167.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" +emsp430x168.c: $(srcdir)/emulparams/msp430x167.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" +emsp430x169.c: $(srcdir)/emulparams/msp430x169.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" +emsp430x155.c: $(srcdir)/emulparams/msp430x155.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x155 "$(tdir_msp430x155)" +emsp430x156.c: $(srcdir)/emulparams/msp430x156.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x156 "$(tdir_msp430x156)" +emsp430x157.c: $(srcdir)/emulparams/msp430x157.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x157 "$(tdir_msp430x157)" enews.c: $(srcdir)/emulparams/news.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} news "$(tdir_news)" @@ -1093,6 +1301,12 @@ etic30aout.c: $(srcdir)/emulparams/tic30 etic30coff.c: $(srcdir)/emulparams/tic30coff.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic30coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic30coff "$(tdir_tic30coff)" +etic3xcoff.c: $(srcdir)/emulparams/tic3xcoff.sh \ + $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} tic3xcoff "$(tdir_tic4xcoff)" +etic3xcoff_onchip.c: $(srcdir)/emulparams/tic3xcoff_onchip.sh \ + $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} tic3xcoff_onchip "$(tdir_tic4xcoff)" etic4xcoff.c: $(srcdir)/emulparams/tic4xcoff.sh \ $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic4xcoff "$(tdir_tic4xcoff)" @@ -1242,7 +1456,7 @@ ld.dvi: $(srcdir)/ld.texinfo configdoc.t # Build the man page from the texinfo file # The sed command removes the no-adjust Nroff command so that # the man output looks standard. -ld.1: $(srcdir)/ld.texinfo +ld.1: $(srcdir)/ld.texinfo configdoc.texi ldver.texi touch $@ -$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod -($(POD2MAN) ld.pod | \ diff -uprN binutils-2.13.90.0.16/ld/Makefile.in binutils-2.13.90.0.18/ld/Makefile.in --- binutils-2.13.90.0.16/ld/Makefile.in Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/Makefile.in Tue Jan 21 10:21:33 2003 @@ -1,6 +1,6 @@ -# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am +# Makefile.in generated automatically by automake 1.4 from Makefile.am -# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -100,12 +100,15 @@ POSUB = @POSUB@ RANLIB = @RANLIB@ STRINGIFY = @STRINGIFY@ STRIP = @STRIP@ +TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ +TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ bfdincludedir = @bfdincludedir@ bfdlibdir = @bfdlibdir@ l = @l@ +use_sysroot = @use_sysroot@ INTLLIBS = @INTLLIBS@ @@ -277,6 +280,8 @@ ALL_EMULATIONS = \ eelf32frv.o \ eelf32i370.o \ eelf32ip2k.o \ + eelf32iq2000.o \ + eelf32iq10.o \ eelf32l4300.o \ eelf32lmip.o \ eelf32lppc.o \ @@ -356,6 +361,44 @@ ALL_EMULATIONS = \ emipslit.o \ emipslnews.o \ emipspe.o \ + emsp430x1101.o \ + emsp430x1111.o \ + emsp430x1121.o \ + emsp430x1331.o \ + emsp430x1351.o \ + emsp430x149.o \ + emsp430x148.o \ + emsp430x147.o \ + emsp430x135.o \ + emsp430x133.o \ + emsp430x110.o \ + emsp430x112.o \ + emsp430x122.o \ + emsp430x1222.o \ + emsp430x123.o \ + emsp430x1232.o \ + emsp430x412.o \ + emsp430x413.o \ + emsp430x311.o \ + emsp430x312.o \ + emsp430x313.o \ + emsp430x314.o \ + emsp430x315.o \ + emsp430x323.o \ + emsp430x325.o \ + emsp430x336.o \ + emsp430x337.o \ + emsp430x435.o \ + emsp430x436.o \ + emsp430x447.o \ + emsp430x448.o \ + emsp430x449.o \ + emsp430x169.o \ + emsp430x168.o \ + emsp430x167.o \ + emsp430x155.o \ + emsp430x156.o \ + emsp430x157.o \ enews.o \ ens32knbsd.o \ eor32.o \ @@ -395,6 +438,8 @@ ALL_EMULATIONS = \ esun4.o \ etic30aout.o \ etic30coff.o \ + etic3xcoff.o \ + etic3xcoff_onchip.o \ etic4xcoff.o \ etic54xcoff.o \ etic80coff.o \ @@ -467,7 +512,7 @@ POTFILES = $(CFILES) $(HFILES) $(EMULATI # These all start with e so 'make clean' can find them. -GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" +GENSCRIPTS = LIB_PATH='${LIB_PATH}' $(SHELL) $(srcdir)/genscripts.sh ${srcdir} ${libdir} "${exec_prefix}" @host@ @target@ @target_alias@ "@EMULATION_LIBPATH@" "@NATIVE_LIB_DIRS@" @use_sysroot@ GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed # We need this for automake to use YLWRAP. @@ -726,7 +771,7 @@ uninstall-info: else ii=; fi; \ list='$(INFO_DEPS)'; \ for file in $$list; do \ - test -z "$$ii" \ + test -z "$ii" \ || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ done @$(NORMAL_UNINSTALL) @@ -839,7 +884,7 @@ maintainer-clean-recursive: dot_seen=no; \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev="$$subdir $$rev"; \ - test "$$subdir" != "." || dot_seen=yes; \ + test "$$subdir" = "." && dot_seen=yes; \ done; \ test "$$dot_seen" = "no" && rev=". $$rev"; \ target=`echo $@ | sed s/-recursive//`; \ @@ -1081,7 +1126,10 @@ po/POTFILES.in: @MAINT@ Makefile && mv tmp $(srcdir)/po/POTFILES.in ldmain.o: ldmain.c config.status - $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' -DSCRIPTDIR='"$(scriptdir)"' -DTARGET='"@target@"' $(srcdir)/ldmain.c + $(COMPILE) -c -DDEFAULT_EMULATION='"$(EMUL)"' \ + -DSCRIPTDIR='"$(scriptdir)"' -DBINDIR='"$(bindir)"' \ + -DTARGET='"@target@"' @TARGET_SYSTEM_ROOT_DEFINE@ \ + $(srcdir)/ldmain.c ldemul-list.h: Makefile (echo "/* This file is automatically generated. DO NOT EDIT! */";\ @@ -1347,7 +1395,8 @@ eelf32ppcnto.c: $(srcdir)/emulparams/elf $(srcdir)/emulparams/elf32ppc.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcnto "$(tdir_elf32ppcnto)" -eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh ${GEN_DEPENDS} +eelf32ppcwindiss.c: $(srcdir)/emulparams/elf32ppcwindiss.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ppcwindiss "$(tdir_elf32ppcwindiss)" eelf32lsmip.c: $(srcdir)/emulparams/elf32lsmip.sh \ $(srcdir)/emulparams/elf32lmip.sh $(srcdir)/emulparams/elf32bmip.sh \ @@ -1384,6 +1433,12 @@ eelf32i370.c: $(srcdir)/emulparams/elf32 eelf32ip2k.c: $(srcdir)/emulparams/elf32ip2k.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/ip2k.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf32ip2k "$(tdir_ip2k)" +eelf32iq2000.c: $(srcdir)/emulparams/elf32iq2000.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq2000 "$(tdir_iq2000)" +eelf32iq10.c: $(srcdir)/emulparams/elf32iq10.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/iq2000.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf32iq10 "$(tdir_iq10)" eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)" @@ -1661,6 +1716,162 @@ emn10300.c: $(srcdir)/emulparams/mn10300 emn10200.c: $(srcdir)/emulparams/mn10200.sh \ $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} mn10200 "$(tdir_mn10200)" +emsp430x1101.c: $(srcdir)/emulparams/msp430x1101.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1101 "$(tdir_msp430x1101)" +emsp430x1111.c: $(srcdir)/emulparams/msp430x1111.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1111 "$(tdir_msp430x1111)" +emsp430x1121.c: $(srcdir)/emulparams/msp430x1121.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1121 "$(tdir_msp430x1121)" +emsp430x1331.c: $(srcdir)/emulparams/msp430x1331.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1331 "$(tdir_msp430x1331)" +emsp430x1351.c: $(srcdir)/emulparams/msp430x1351.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1351 "$(tdir_msp430x1351)" +emsp430x149.c: $(srcdir)/emulparams/msp430x149.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x149 "$(tdir_msp430x149)" +emsp430x148.c: $(srcdir)/emulparams/msp430x148.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x148 "$(tdir_msp430x148)" +emsp430x449.c: $(srcdir)/emulparams/msp430x449.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x449 "$(tdir_msp430x449)" +emsp430x448.c: $(srcdir)/emulparams/msp430x448.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x448 "$(tdir_msp430x448)" +emsp430x447.c: $(srcdir)/emulparams/msp430x447.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x447 "$(tdir_msp430x447)" +emsp430x412.c: $(srcdir)/emulparams/msp430x412.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x412 "$(tdir_msp430x412)" +emsp430x413.c: $(srcdir)/emulparams/msp430x413.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x413 "$(tdir_msp430x413)" +emsp430x147.c: $(srcdir)/emulparams/msp430x147.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x147 "$(tdir_msp430x147)" +emsp430x135.c: $(srcdir)/emulparams/msp430x135.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x135 "$(tdir_msp430x135)" +emsp430x133.c: $(srcdir)/emulparams/msp430x133.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x133 "$(tdir_msp430x133)" +emsp430x110.c: $(srcdir)/emulparams/msp430x110.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x110 "$(tdir_msp430x110)" +emsp430x112.c: $(srcdir)/emulparams/msp430x112.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x112 "$(tdir_msp430x112)" +emsp430x122.c: $(srcdir)/emulparams/msp430x122.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x122 "$(tdir_msp430x122)" +emsp430x1222.c: $(srcdir)/emulparams/msp430x1222.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1222 "$(tdir_msp430x1222)" +emsp430x123.c: $(srcdir)/emulparams/msp430x123.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x123 "$(tdir_msp430x123)" +emsp430x1232.c: $(srcdir)/emulparams/msp430x1232.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x1232 "$(tdir_msp430x1232)" +emsp430x311.c: $(srcdir)/emulparams/msp430x311.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x311 "$(tdir_msp430x311)" +emsp430x312.c: $(srcdir)/emulparams/msp430x312.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x312 "$(tdir_msp430x312)" +emsp430x313.c: $(srcdir)/emulparams/msp430x313.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x313 "$(tdir_msp430x313)" +emsp430x314.c: $(srcdir)/emulparams/msp430x314.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x314 "$(tdir_msp430x314)" +emsp430x315.c: $(srcdir)/emulparams/msp430x315.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x315 "$(tdir_msp430x315)" +emsp430x323.c: $(srcdir)/emulparams/msp430x323.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x323 "$(tdir_msp430x323)" +emsp430x325.c: $(srcdir)/emulparams/msp430x325.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x325 "$(tdir_msp430x325)" +emsp430x336.c: $(srcdir)/emulparams/msp430x336.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x336 "$(tdir_msp430x336)" +emsp430x337.c: $(srcdir)/emulparams/msp430x337.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430_3.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x337 "$(tdir_msp430x337)" +emsp430x435.c: $(srcdir)/emulparams/msp430x435.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x435 "$(tdir_msp430x435)" +emsp430x436.c: $(srcdir)/emulparams/msp430x436.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x436 "$(tdir_msp430x436)" +emsp430x437.c: $(srcdir)/emulparams/msp430x437.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x437 "$(tdir_msp430x437)" +emsp430x167.c: $(srcdir)/emulparams/msp430x167.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x167 "$(tdir_msp430x167)" +emsp430x168.c: $(srcdir)/emulparams/msp430x167.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x168 "$(tdir_msp430x168)" +emsp430x169.c: $(srcdir)/emulparams/msp430x169.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x169 "$(tdir_msp430x169)" +emsp430x155.c: $(srcdir)/emulparams/msp430x155.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x155 "$(tdir_msp430x155)" +emsp430x156.c: $(srcdir)/emulparams/msp430x156.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x156 "$(tdir_msp430x156)" +emsp430x157.c: $(srcdir)/emulparams/msp430x157.sh \ + $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf32msp430.sc \ + ${GEN_DEPENDS} + ${GENSCRIPTS} msp430x157 "$(tdir_msp430x157)" enews.c: $(srcdir)/emulparams/news.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS} ${GENSCRIPTS} news "$(tdir_news)" @@ -1816,6 +2027,12 @@ etic30aout.c: $(srcdir)/emulparams/tic30 etic30coff.c: $(srcdir)/emulparams/tic30coff.sh \ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/tic30coff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic30coff "$(tdir_tic30coff)" +etic3xcoff.c: $(srcdir)/emulparams/tic3xcoff.sh \ + $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} tic3xcoff "$(tdir_tic4xcoff)" +etic3xcoff_onchip.c: $(srcdir)/emulparams/tic3xcoff_onchip.sh \ + $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} + ${GENSCRIPTS} tic3xcoff_onchip "$(tdir_tic4xcoff)" etic4xcoff.c: $(srcdir)/emulparams/tic4xcoff.sh \ $(srcdir)/emultempl/ticoff.em $(srcdir)/scripttempl/tic4xcoff.sc ${GEN_DEPENDS} ${GENSCRIPTS} tic4xcoff "$(tdir_tic4xcoff)" @@ -1954,7 +2171,7 @@ ld.dvi: $(srcdir)/ld.texinfo configdoc.t # Build the man page from the texinfo file # The sed command removes the no-adjust Nroff command so that # the man output looks standard. -ld.1: $(srcdir)/ld.texinfo +ld.1: $(srcdir)/ld.texinfo configdoc.texi ldver.texi touch $@ -$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod -($(POD2MAN) ld.pod | \ diff -uprN binutils-2.13.90.0.16/ld/NEWS binutils-2.13.90.0.18/ld/NEWS --- binutils-2.13.90.0.16/ld/NEWS Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/NEWS Tue Jan 21 10:21:33 2003 @@ -1,5 +1,12 @@ -*- text -*- +* Added --with-sysroot configure switch to specify a target system root, for + linking against a target filesystem image. + +* Added --accept-unknown-linker-format to restore old linker behaviour (pre + 2.14) of silently accepting and linking in any files in an unknown binary + file format. + * Added --no-omagic to undo the effects of the -N option. * Support for Texas Instruments TMS320C4x and TMS320C3x series of diff -uprN binutils-2.13.90.0.16/ld/aclocal.m4 binutils-2.13.90.0.18/ld/aclocal.m4 --- binutils-2.13.90.0.16/ld/aclocal.m4 Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/ld/aclocal.m4 Mon Dec 16 12:22:53 2002 @@ -28,6 +28,24 @@ AC_DEFUN([CY_WITH_NLS],) AC_SUBST(INTLLIBS) ]) +#serial 1 +# This test replaces the one in autoconf. +# Currently this macro should have the same name as the autoconf macro +# because gettext's gettext.m4 (distributed in the automake package) +# still uses it. Otherwise, the use in gettext.m4 makes autoheader +# give these diagnostics: +# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX +# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX + +undefine([AC_ISC_POSIX]) + +AC_DEFUN([AC_ISC_POSIX], + [ + dnl This test replaces the obsolescent AC_ISC_POSIX kludge. + AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) + ] +) + # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. diff -uprN binutils-2.13.90.0.16/ld/config.in binutils-2.13.90.0.18/ld/config.in --- binutils-2.13.90.0.16/ld/config.in Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/ld/config.in Tue Jan 21 10:21:33 2003 @@ -70,6 +70,9 @@ /* Define if you have the putenv function. */ #undef HAVE_PUTENV +/* Define if you have the realpath function. */ +#undef HAVE_REALPATH + /* Define if you have the sbrk function. */ #undef HAVE_SBRK @@ -127,12 +130,6 @@ /* Define if you have the header file. */ #undef HAVE_SYS_PARAM_H -/* Define if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define if you have the header file. */ -#undef HAVE_SYS_TYPES_H - /* Define if you have the header file. */ #undef HAVE_UNISTD_H diff -uprN binutils-2.13.90.0.16/ld/configure binutils-2.13.90.0.18/ld/configure --- binutils-2.13.90.0.16/ld/configure Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/ld/configure Tue Jan 21 10:21:33 2003 @@ -30,6 +30,8 @@ ac_help="$ac_help ac_help="$ac_help --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)" ac_help="$ac_help + --with-sysroot[=DIR] Search for usr/lib et al within DIR." +ac_help="$ac_help --enable-build-warnings enable build-time compiler warnings if gcc is used" ac_help="$ac_help --disable-nls do not use Native Language Support" @@ -548,12 +550,12 @@ else fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:552: checking for Cygwin environment" >&5 +echo "configure:554: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:570: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -581,19 +583,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:585: checking for mingw32 environment" >&5 +echo "configure:587: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -658,7 +660,7 @@ else { echo "configure: error: can not r fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:662: checking host system type" >&5 +echo "configure:664: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -679,7 +681,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)- echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:683: checking target system type" >&5 +echo "configure:685: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -697,7 +699,7 @@ target_os=`echo $target | sed 's/^\([^-] echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:701: checking build system type" >&5 +echo "configure:703: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -719,249 +721,49 @@ test "$host_alias" != "$target_alias" && NONENONEs,x,x, && program_prefix=${target_alias}- -# Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:726: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="gcc" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:756: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_prog_rejected=no - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - break - fi - done - IFS="$ac_save_ifs" -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$ac_dir/$ac_word" "$@" - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - - if test -z "$CC"; then - case "`uname -s`" in - *win32* | *WIN32*) - # Extract the first word of "cl", so it can be a program name with args. -set dummy cl; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:807: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6 +echo "configure:727: checking for strerror in -lcposix" >&5 +ac_lib_var=`echo cposix'_'strerror | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="cl" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -CC="$ac_cv_prog_CC" -if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - ;; - esac - fi - test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } -fi - -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:839: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -cat > conftest.$ac_ext << EOF - -#line 850 "configure" + ac_save_LIBS="$LIBS" +LIBS="-lcposix $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - ac_cv_prog_cc_works=yes - # If we can't run a trivial program, we are probably using a cross compiler. - if (./conftest; exit) 2>/dev/null; then - ac_cv_prog_cc_cross=no - else - ac_cv_prog_cc_cross=yes - fi +if { (eval echo configure:746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - ac_cv_prog_cc_works=no -fi -rm -fr conftest* -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross - -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -if test $ac_cv_prog_cc_works = no; then - { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } -fi -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:881: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 -echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 -cross_compiling=$ac_cv_prog_cc_cross - -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:886: checking whether we are using GNU C" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes -else - ac_cv_prog_gcc=no -fi -fi - -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 - -if test $ac_cv_prog_gcc = yes; then - GCC=yes -else - GCC= -fi - -ac_test_CFLAGS="${CFLAGS+set}" -ac_save_CFLAGS="$CFLAGS" -CFLAGS= -echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:914: checking whether ${CC-cc} accepts -g" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - echo 'void f(){}' > conftest.c -if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then - ac_cv_prog_cc_g=yes -else - ac_cv_prog_cc_g=no + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* +LIBS="$ac_save_LIBS" fi - -echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS="$ac_save_CFLAGS" -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi - -echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 -echo "configure:946: checking for POSIXized ISC" >&5 -if test -d /etc/conf/kconfig.d && - grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 -then +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - ISC=yes # If later tests want to check for ISC. - cat >> confdefs.h <<\EOF -#define _POSIX_SOURCE 1 -EOF - - if test "$GCC" = yes; then - CC="$CC -posix" - else - CC="$CC -Xp" - fi + LIBS="$LIBS -lcposix" else echo "$ac_t""no" 1>&6 - ISC= fi + + BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in` # Find a good install program. We prefer a C program (faster), @@ -976,7 +778,7 @@ BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOM # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:980: checking for a BSD compatible install" >&5 +echo "configure:782: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1029,7 +831,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:1033: checking whether build environment is sane" >&5 +echo "configure:835: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -1086,7 +888,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:1090: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:892: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1132,7 +934,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:1136: checking for working aclocal" >&5 +echo "configure:938: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1145,7 +947,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:1149: checking for working autoconf" >&5 +echo "configure:951: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1158,7 +960,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:1162: checking for working automake" >&5 +echo "configure:964: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1171,7 +973,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:1175: checking for working autoheader" >&5 +echo "configure:977: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1184,7 +986,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:1188: checking for working makeinfo" >&5 +echo "configure:990: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1267,6 +1069,228 @@ else enable_fast_install=yes fi +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1076: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1106: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1157: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:1189: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 1200 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:1205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:1231: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1236: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1264: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" @@ -1279,7 +1303,7 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1283: checking for ld used by GCC" >&5 +echo "configure:1307: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -1309,10 +1333,10 @@ echo "configure:1283: checking for ld us esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1313: checking for GNU ld" >&5 +echo "configure:1337: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1316: checking for non-GNU ld" >&5 +echo "configure:1340: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1347,7 +1371,7 @@ else fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1351: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1375: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1364,7 +1388,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 -echo "configure:1368: checking for $LD option to reload object files" >&5 +echo "configure:1392: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1376,7 +1400,7 @@ reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1380: checking for BSD-compatible nm" >&5 +echo "configure:1404: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1414,7 +1438,7 @@ NM="$lt_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1418: checking whether ln -s works" >&5 +echo "configure:1442: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1435,7 +1459,7 @@ else fi echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:1439: checking how to recognise dependant libraries" >&5 +echo "configure:1463: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1602,13 +1626,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:1606: checking for object suffix" >&5 +echo "configure:1630: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:1612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -1628,7 +1652,7 @@ ac_objext=$ac_cv_objext echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1632: checking for executable suffix" >&5 +echo "configure:1656: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1638,7 +1662,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -1671,7 +1695,7 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 -echo "configure:1675: checking for ${ac_tool_prefix}file" >&5 +echo "configure:1699: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1733,7 +1757,7 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 -echo "configure:1737: checking for file" >&5 +echo "configure:1761: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1804,7 +1828,7 @@ esac # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1808: checking for $ac_word" >&5 +echo "configure:1832: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1836,7 +1860,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1840: checking for $ac_word" >&5 +echo "configure:1864: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1871,7 +1895,7 @@ fi # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1875: checking for $ac_word" >&5 +echo "configure:1899: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1903,7 +1927,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1907: checking for $ac_word" >&5 +echo "configure:1931: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1970,8 +1994,8 @@ test x"$pic_mode" = xno && libtool_flags case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 1974 "configure"' > conftest.$ac_ext - if { (eval echo configure:1975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 1998 "configure"' > conftest.$ac_ext + if { (eval echo configure:1999: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -1990,7 +2014,7 @@ case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo configure:1994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:2018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *ELF-32*) HPUX_IA64_MODE="32" @@ -2008,7 +2032,7 @@ ia64-*-hpux*) SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:2012: checking whether the C compiler needs -belf" >&5 +echo "configure:2036: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2021,14 +2045,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else @@ -2172,6 +2196,46 @@ else want64=false fi +# Check whether --with-sysroot or --without-sysroot was given. +if test "${with_sysroot+set}" = set; then + withval="$with_sysroot" + + case ${with_sysroot} in + yes) { echo "configure: error: with-sysroot must specify path" 1>&2; exit 1; } ;; + *) TARGET_SYSTEM_ROOT=$with_sysroot ;; + esac + + TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' + use_sysroot=yes + + if test "x$exec_prefix" = xNONE; then + if test "x$prefix" = xNONE; then + test_prefix=/usr/local + else + test_prefix=$prefix + fi + else + test_prefix=$exec_prefix + fi + case ${TARGET_SYSTEM_ROOT} in + ${test_prefix}*) + t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE" + TARGET_SYSTEM_ROOT_DEFINE="$t" + ;; + esac + +else + + use_sysroot=no + TARGET_SYSTEM_ROOT= + TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"' + +fi + + + + + build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" # Check whether --enable-build-warnings or --disable-build-warnings was given. if test "${enable_build_warnings+set}" = set; then @@ -2211,7 +2275,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2215: checking for $ac_word" >&5 +echo "configure:2279: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2241,7 +2305,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2245: checking for $ac_word" >&5 +echo "configure:2309: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2292,7 +2356,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2296: checking for $ac_word" >&5 +echo "configure:2360: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2324,7 +2388,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2328: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:2392: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2335,12 +2399,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 2339 "configure" +#line 2403 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -2366,12 +2430,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:2370: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2434: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:2375: checking whether we are using GNU C" >&5 +echo "configure:2439: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2380,7 +2444,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2448: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -2399,7 +2463,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:2403: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2467: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2442,7 +2506,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:2446: checking for a BSD compatible install" >&5 +echo "configure:2510: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2497,7 +2561,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA= ALL_LINGUAS="fr sv tr es da" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2501: checking how to run the C preprocessor" >&5 +echo "configure:2565: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2512,13 +2576,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2529,13 +2593,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2603: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2546,13 +2610,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2556: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2620: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2579,7 +2643,7 @@ echo "$ac_t""$CPP" 1>&6 # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2583: checking for $ac_word" >&5 +echo "configure:2647: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2607,12 +2671,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:2611: checking for ANSI C header files" >&5 +echo "configure:2675: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2620,7 +2684,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2624: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2688: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2637,7 +2701,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2655,7 +2719,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -2676,7 +2740,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -2687,7 +2751,7 @@ if (XOR (islower (i), ISLOWER (i)) || to exit (0); } EOF -if { (eval echo configure:2691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -2711,12 +2775,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2715: checking for working const" >&5 +echo "configure:2779: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2833: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2786,21 +2850,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:2790: checking for inline" >&5 +echo "configure:2854: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2868: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -2826,12 +2890,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:2830: checking for off_t" >&5 +echo "configure:2894: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2859,12 +2923,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:2863: checking for size_t" >&5 +echo "configure:2927: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2894,19 +2958,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:2898: checking for working alloca.h" >&5 +echo "configure:2962: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:2910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -2927,12 +2991,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:2931: checking for alloca" >&5 +echo "configure:2995: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -2992,12 +3056,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:2996: checking whether alloca needs Cray hooks" >&5 +echo "configure:3060: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3026: checking for $ac_func" >&5 +echo "configure:3090: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3118: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3077,7 +3141,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:3081: checking stack direction for C alloca" >&5 +echo "configure:3145: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3085,7 +3149,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -3129,17 +3193,17 @@ for ac_hdr in stdlib.h unistd.h sys/stat do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3133: checking for $ac_hdr" >&5 +echo "configure:3197: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3143: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3207: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3168,12 +3232,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3172: checking for $ac_func" >&5 +echo "configure:3236: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3221,7 +3285,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:3225: checking for working mmap" >&5 +echo "configure:3289: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3229,7 +3293,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -3410,17 +3474,17 @@ unistd.h values.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3414: checking for $ac_hdr" >&5 +echo "configure:3478: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3424: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3450,12 +3514,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3454: checking for $ac_func" >&5 +echo "configure:3518: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3507,12 +3571,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3511: checking for $ac_func" >&5 +echo "configure:3575: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3569,19 +3633,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:3573: checking for LC_MESSAGES" >&5 +echo "configure:3637: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:3585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -3602,7 +3666,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:3606: checking whether NLS is requested" >&5 +echo "configure:3670: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -3622,7 +3686,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:3626: checking whether included gettext is requested" >&5 +echo "configure:3690: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -3641,17 +3705,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:3645: checking for libintl.h" >&5 +echo "configure:3709: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3719: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3668,19 +3732,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:3672: checking for gettext in libc" >&5 +echo "configure:3736: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:3684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -3696,7 +3760,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:3700: checking for bindtextdomain in -lintl" >&5 +echo "configure:3764: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3704,7 +3768,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3731,19 +3795,19 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:3735: checking for gettext in libintl" >&5 +echo "configure:3799: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libintl=yes else @@ -3771,7 +3835,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3775: checking for $ac_word" >&5 +echo "configure:3839: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3805,12 +3869,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3809: checking for $ac_func" >&5 +echo "configure:3873: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3860,7 +3924,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3864: checking for $ac_word" >&5 +echo "configure:3928: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3896,7 +3960,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3900: checking for $ac_word" >&5 +echo "configure:3964: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3928,7 +3992,7 @@ else fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -3968,7 +4032,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3972: checking for $ac_word" >&5 +echo "configure:4036: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4002,7 +4066,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4006: checking for $ac_word" >&5 +echo "configure:4070: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4038,7 +4102,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4042: checking for $ac_word" >&5 +echo "configure:4106: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4128,7 +4192,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:4132: checking for catalogs to be installed" >&5 +echo "configure:4196: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -4156,17 +4220,17 @@ echo "configure:4132: checking for catal if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:4160: checking for linux/version.h" >&5 +echo "configure:4224: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4231,7 +4295,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:4235: checking for executable suffix" >&5 +echo "configure:4299: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4241,7 +4305,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:4245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:4309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -4267,7 +4331,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4271: checking for $ac_word" >&5 +echo "configure:4335: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4303,7 +4367,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4307: checking for $ac_word" >&5 +echo "configure:4371: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4336,7 +4400,7 @@ test -n "$LEX" || LEX=""$missing_dir/mis # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4340: checking for $ac_word" >&5 +echo "configure:4404: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4370,7 +4434,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:4374: checking for yywrap in -l$ac_lib" >&5 +echo "configure:4438: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4378,7 +4442,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4412,7 +4476,7 @@ fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:4416: checking lex output file root" >&5 +echo "configure:4480: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4433,7 +4497,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:4437: checking whether yytext is a pointer" >&5 +echo "configure:4501: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4445,14 +4509,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPU ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -4475,7 +4539,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:4479: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:4543: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -4509,17 +4573,17 @@ for ac_hdr in string.h strings.h stdlib. do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4513: checking for $ac_hdr" >&5 +echo "configure:4577: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4545,15 +4609,15 @@ else fi done -for ac_func in sbrk +for ac_func in sbrk realpath do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4552: checking for $ac_func" >&5 +echo "configure:4616: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4605,12 +4669,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/di do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:4609: checking for $ac_hdr that defines DIR" >&5 +echo "configure:4673: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -4618,7 +4682,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:4622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -4643,7 +4707,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:4647: checking for opendir in -ldir" >&5 +echo "configure:4711: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4651,7 +4715,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4684,7 +4748,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:4688: checking for opendir in -lx" >&5 +echo "configure:4752: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4692,7 +4756,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4727,12 +4791,12 @@ fi echo $ac_n "checking whether weak symbol works""... $ac_c" 1>&6 -echo "configure:4731: checking whether weak symbol works" >&5 +echo "configure:4795: checking whether weak symbol works" >&5 if eval "test \"`echo '$''{'libiberty_cv_have_weak_symbol'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4809: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libiberty_cv_have_weak_symbol=no else @@ -4765,14 +4829,14 @@ if test $libiberty_cv_have_weak_symbol = # demangler may use dlopen. echo $ac_n "checking for library containing dlopen""... $ac_c" 1>&6 -echo "configure:4769: checking for library containing dlopen" >&5 +echo "configure:4833: checking for library containing dlopen" >&5 if eval "test \"`echo '$''{'ac_cv_search_dlopen'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_dlopen="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_dlopen="none required" else @@ -4794,7 +4858,7 @@ rm -f conftest* test "$ac_cv_search_dlopen" = "no" && for i in dl; do LIBS="-l$i $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_dlopen="-l$i" break @@ -4837,12 +4901,12 @@ EOF esac echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6 -echo "configure:4841: checking whether strstr must be declared" >&5 +echo "configure:4905: checking whether strstr must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4863,7 +4927,7 @@ int main() { char *(*pfn) = (char *(*)) strstr ; return 0; } EOF -if { (eval echo configure:4867: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4931: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_strstr=no else @@ -4884,12 +4948,12 @@ EOF fi echo $ac_n "checking whether free must be declared""... $ac_c" 1>&6 -echo "configure:4888: checking whether free must be declared" >&5 +echo "configure:4952: checking whether free must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_free'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4910,7 +4974,7 @@ int main() { char *(*pfn) = (char *(*)) free ; return 0; } EOF -if { (eval echo configure:4914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_free=no else @@ -4931,12 +4995,12 @@ EOF fi echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6 -echo "configure:4935: checking whether sbrk must be declared" >&5 +echo "configure:4999: checking whether sbrk must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4957,7 +5021,7 @@ int main() { char *(*pfn) = (char *(*)) sbrk ; return 0; } EOF -if { (eval echo configure:4961: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_sbrk=no else @@ -4978,12 +5042,12 @@ EOF fi echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6 -echo "configure:4982: checking whether getenv must be declared" >&5 +echo "configure:5046: checking whether getenv must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5004,7 +5068,7 @@ int main() { char *(*pfn) = (char *(*)) getenv ; return 0; } EOF -if { (eval echo configure:5008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_getenv=no else @@ -5025,12 +5089,12 @@ EOF fi echo $ac_n "checking whether environ must be declared""... $ac_c" 1>&6 -echo "configure:5029: checking whether environ must be declared" >&5 +echo "configure:5093: checking whether environ must be declared" >&5 if eval "test \"`echo '$''{'bfd_cv_decl_needed_environ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -5051,7 +5115,7 @@ int main() { char *(*pfn) = (char *(*)) environ ; return 0; } EOF -if { (eval echo configure:5055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* bfd_cv_decl_needed_environ=no else @@ -5079,19 +5143,19 @@ fi # constants, while still supporting pre-ANSI compilers which do not # support string concatenation. echo $ac_n "checking whether ANSI C string concatenation works""... $ac_c" 1>&6 -echo "configure:5083: checking whether ANSI C string concatenation works" >&5 +echo "configure:5147: checking whether ANSI C string concatenation works" >&5 if eval "test \"`echo '$''{'ld_cv_string_concatenation'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ld_cv_string_concatenation=yes else @@ -5366,7 +5430,6 @@ s%@build_alias@%$build_alias%g s%@build_cpu@%$build_cpu%g s%@build_vendor@%$build_vendor%g s%@build_os@%$build_os%g -s%@CC@%$CC%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g s%@INSTALL_DATA@%$INSTALL_DATA%g @@ -5378,12 +5441,16 @@ s%@AUTOMAKE@%$AUTOMAKE%g s%@AUTOHEADER@%$AUTOHEADER%g s%@MAKEINFO@%$MAKEINFO%g s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g s%@LN_S@%$LN_S%g s%@OBJEXT@%$OBJEXT%g s%@EXEEXT@%$EXEEXT%g s%@RANLIB@%$RANLIB%g s%@STRIP@%$STRIP%g s%@LIBTOOL@%$LIBTOOL%g +s%@use_sysroot@%$use_sysroot%g +s%@TARGET_SYSTEM_ROOT@%$TARGET_SYSTEM_ROOT%g +s%@TARGET_SYSTEM_ROOT_DEFINE@%$TARGET_SYSTEM_ROOT_DEFINE%g s%@WARN_CFLAGS@%$WARN_CFLAGS%g s%@CPP@%$CPP%g s%@ALLOCA@%$ALLOCA%g diff -uprN binutils-2.13.90.0.16/ld/configure.host binutils-2.13.90.0.18/ld/configure.host --- binutils-2.13.90.0.16/ld/configure.host Wed Jun 26 09:24:56 2002 +++ binutils-2.13.90.0.18/ld/configure.host Tue Jan 21 10:21:33 2003 @@ -7,12 +7,10 @@ # HDEFINES host specific compiler flags # HOSTING_CRT0 crt0.o file used for bootstrapping # HOSTING_LIBS libraries used for bootstrapping -# NATIVE_LIB_DIRS library directories to search on this host HDEFINES= HOSTING_CRT0=/lib/crt0.o HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ]; then libgcc=../gcc/libgcc.a; else libgcc=\`${CC} -print-libgcc-file-name\`; fi; if [ -f ../gcc/libgcc_eh.a ]; then libgcc="$libgcc ../gcc/libgcc_eh.a"; else libgcc_eh=\`${CC} -print-file-name=libgcc_eh.a\`; if [ x"$libgcc_eh" != xlibgcc_eh.a ]; then libgcc="$libgcc $libgcc_eh"; fi; fi; echo $libgcc -lc $libgcc`' -NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib' # # Generic configurations: @@ -21,12 +19,11 @@ NATIVE_LIB_DIRS='/usr/local/lib /lib /us case "${host}" in *-*-freebsd*) - NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib' # Older versions of gcc do not use a specs file. In those cases, # gcc -print-file-name=specs will simply print specs. We create a # dummy specs files to handle this. echo "-dynamic-linker `${CC} --print-file-name=ld-elf.so.1`" > specs - HOSTING_CRT0='-dynamic-linker `${CC} --print-file-name=ld-elf.so.1` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `${CC} --print-file-name=crtbegin.o`' + HOSTING_CRT0='-dynamic-linker `${CC} --print-prog-name=ld-elf.so.1` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `${CC} --print-file-name=crtbegin.o`' HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`' ;; @@ -65,7 +62,6 @@ arm*-*-linux-gnu*) ;; hppa*64*-*-hpux11*) - NATIVE_LIB_DIRS=/usr/lib/pa20_64 HOSTING_CRT0=/usr/ccs/lib/pa20_64/crt0.o # Even if CC is not gcc, the tests use gcc. HOSTING_LIBS='`if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else if test "$GCC" = yes; then ${CC} --print-libgcc-file-name; else gcc --print-libgcc-file-name; fi fi` -lc /usr/lib/pa20_64/milli.a' @@ -78,7 +74,6 @@ i[3456]86-*-bsd* | i[34567]86-*-freebsd[ i[3456]86-*-sysv4*) HOSTING_CRT0='/usr/ccs/lib/crt1.o /usr/ccs/lib/crti.o /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` /usr/ccs/lib/crtn.o' - NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' ;; i[3456]86-sequent-ptx* | i[3456]86-sequent-sysv*) @@ -94,7 +89,6 @@ i[3456]86-*-sysv*) i[3456]86-*-solaris*) HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else ${CC} -print-file-name=crtn.o; fi`' - NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' ;; i[3456]86-*-sco* | i[3456]86-*-isc*) @@ -119,12 +113,11 @@ i[3456]86-*-lynxos*) i[3456]86-pc-interix*) HOSTING_CRT0='$$INTERIX_ROOT/usr/lib/crt0.o' - NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib' HOSTING_LIBS='-L $$X/local_bin -L $$INTERIX_ROOT/usr/lib '"$HOSTING_LIBS"' -lcpsx -lc -lcpsx $$INTERIX_ROOT/usr/lib/psxdll.a $$INTERIX_ROOT/usr/lib/psxdll2.a' ;; i[3456]86-*-cygwin*) - HOSTING_LIBS="$HOSTING_LIBS"' -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi`' + HOSTING_LIBS="$HOSTING_LIBS"' -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 `if [ -f ../gcc/libgcc.a ] ; then echo ../gcc/libgcc.a ; else ${CC} -print-libgcc-file-name; fi`' ;; ia64-*-linux-gnu*) @@ -134,7 +127,6 @@ ia64-*-linux-gnu*) ia64-*-aix*) HOSTING_CRT0='-dynamic-linker `egrep "libc.so" \`${CC} --print-file-name=specs\` | sed -e "s,.*-dynamic-linker[ ][ ]*\(.*/libc.so..\).*,\1,"` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`' HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`' - NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib' ;; mips*-dec-bsd*) @@ -184,6 +176,10 @@ m88*-motorola-sysv3) HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi`' ;; +powerpc64*-*-linux-gnu*) + HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`egrep.*\"\\\`,/lib64/ld64.so.1,"` + ;; + powerpc*-*-linux-gnu*) HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,\\\`egrep.*\"\\\`,/lib/ld.so.1,"` ;; @@ -199,7 +195,6 @@ s390-*-linux-gnu*) sparc*-*-solaris2*) HOSTING_CRT0='`if [ -f ../gcc/crt1.o ]; then echo ../gcc/crt1.o; else ${CC} -print-file-name=crt1.o; fi` `if [ -f ../gcc/crti.o ]; then echo ../gcc/crti.o; else ${CC} -print-file-name=crti.o; fi` /usr/ccs/lib/values-Xa.o `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} -print-file-name=crtbegin.o; fi`' HOSTING_LIBS="$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} -print-file-name=crtend.o; fi` `if [ -f ../gcc/crtn.o ]; then echo ../gcc/crtn.o; else ${CC} -print-file-name=crtn.o; fi`' - NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' ;; sparc-*-linux-gnu*) @@ -228,7 +223,6 @@ x86_64-*-linux-gnu*) alpha*-*-*) HOSTING_CRT0=/usr/ccs/lib/crt0.o - NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' ;; esac diff -uprN binutils-2.13.90.0.16/ld/configure.in binutils-2.13.90.0.18/ld/configure.in --- binutils-2.13.90.0.16/ld/configure.in Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/ld/configure.in Tue Jan 21 10:21:33 2003 @@ -30,6 +30,41 @@ AC_ARG_ENABLE(64-bit-bfd, *) AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option) ;; esac],[want64=false])dnl +AC_ARG_WITH(sysroot, +[ --with-sysroot[=DIR] Search for usr/lib et al within DIR.], +[ + case ${with_sysroot} in + yes) AC_ERROR(with-sysroot must specify path) ;; + *) TARGET_SYSTEM_ROOT=$with_sysroot ;; + esac + + TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"' + use_sysroot=yes + + if test "x$exec_prefix" = xNONE; then + if test "x$prefix" = xNONE; then + test_prefix=/usr/local + else + test_prefix=$prefix + fi + else + test_prefix=$exec_prefix + fi + case ${TARGET_SYSTEM_ROOT} in + ${test_prefix}*) + t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE" + TARGET_SYSTEM_ROOT_DEFINE="$t" + ;; + esac +], [ + use_sysroot=no + TARGET_SYSTEM_ROOT= + TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"\"' +]) +AC_SUBST(use_sysroot) +AC_SUBST(TARGET_SYSTEM_ROOT) +AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE) + build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes" AC_ARG_ENABLE(build-warnings, [ --enable-build-warnings enable build-time compiler warnings if gcc is used], @@ -83,7 +118,7 @@ AC_SUBST(HOSTING_LIBS) AC_SUBST(NATIVE_LIB_DIRS) AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h) -AC_CHECK_FUNCS(sbrk) +AC_CHECK_FUNCS(sbrk realpath) AC_HEADER_DIRENT LIBIBERTY_HAVE_WEAK_SYMBOL diff -uprN binutils-2.13.90.0.16/ld/configure.tgt binutils-2.13.90.0.18/ld/configure.tgt --- binutils-2.13.90.0.16/ld/configure.tgt Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/ld/configure.tgt Tue Jan 21 10:21:33 2003 @@ -9,6 +9,8 @@ # targ_extra_emuls additional linker emulations to provide # targ_extra_libpath additional linker emulations using LIB_PATH # targ_extra_ofiles additional objects needed by the emulation +# NATIVE_LIB_DIRS library directories to search on this host +# (if we are a native or sysrooted linker) targ_extra_emuls= targ_extra_ofiles= @@ -133,6 +135,7 @@ i[3456]86-*-coff) targ_emul=i386coff ;; i[3456]86-*-rtemscoff*) targ_emul=i386coff ;; i[3456]86-*-rtemself*) targ_emul=elf_i386 ;; i[3456]86-*-rtems*) targ_emul=elf_i386 ;; +i[3456]86-*-aros*) targ_emul=elf_i386 ;; i[3456]86-*-bsd) targ_emul=i386bsd ;; i[3456]86-*-bsd386) targ_emul=i386bsd ;; i[3456]86-*-bsdi*) targ_emul=i386bsd ;; @@ -422,6 +425,8 @@ mmix-*-*) targ_emul=mmo ;; mn10200-*-*) targ_emul=mn10200 ;; mn10300-*-*) targ_emul=mn10300 ;; +msp430-*-*) targ_emul=msp430x149 + targ_extra_emuls="msp430x148 msp430x147 msp430x133 msp430x135 msp430x110 msp430x112 msp430x122 msp430x123 msp430x412 msp430x413 msp430x311 msp430x312 msp430x313 msp430x314 msp430x315 msp430x323 msp430x325 msp430x336 msp430x337 msp430x1101 msp430x1111 msp430x1121 msp430x1331 msp430x1351 msp430x435 msp430x436 msp430x437 msp430x447 msp430x448 msp430x449 msp430x1222 msp430x1232 msp430x169 msp430x168 msp430x167 msp430x155 msp430x156 msp430x157" ;; alpha*-*-freebsd*) targ_emul=elf64alpha_fbsd targ_extra_emuls="elf64alpha alpha" tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'` @@ -505,13 +510,14 @@ powerpc-*-windiss*) targ_emul=elf32ppcwi rs6000-*-aix5*) targ_emul=aix5rs6 ;; rs6000-*-aix*) targ_emul=aixrs6 ;; tic30-*-*aout*) targ_emul=tic30aout ;; -tic30-*-*coff*) targ_emul=tic30coff ;; +tic30-*-*coff*) targ_emul=tic30coff ; targ_extra_emuls="tic3xcoff tic3xcoff_onchip" ;; tic4x-*-* | c4x-*-*) targ_emul=tic4xcoff ;; tic54x-*-* | c54x*-*-*) targ_emul=tic54xcoff ;; tic80-*-*) targ_emul=tic80coff ;; v850-*-*) targ_emul=v850 ;; v850e-*-*) targ_emul=v850 ;; v850ea-*-*) targ_emul=v850 ;; +iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10" ;; frv-*-*) targ_emul=elf32frv ;; w65-*-*) targ_emul=w65 ;; xstormy16-*-*) targ_emul=elf32xstormy16 ;; @@ -538,3 +544,49 @@ ip2k-*-elf) targ_emul=elf32ip2k ;; exit 1 esac + +NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib' +case "${target}" in + +*-*-freebsd*) + NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib' + ;; + +hppa*64*-*-hpux11*) + NATIVE_LIB_DIRS=/usr/lib/pa20_64 + ;; + +i[3456]86-*-sysv4*) + NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' + ;; + +i[3456]86-*-solaris*) + NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' + ;; + +i[3456]86-pc-interix*) + NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib' + ;; + +ia64-*-aix*) + NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib' + ;; + +sparc*-*-solaris2*) + NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' + ;; + +*-*-linux*) + ;; + +*-*-freebsd*) + ;; + +*-*-netbsd*) + ;; + +alpha*-*-*) + NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib' + ;; + +esac diff -uprN binutils-2.13.90.0.16/ld/deffile.h binutils-2.13.90.0.18/ld/deffile.h --- binutils-2.13.90.0.16/ld/deffile.h Thu Mar 15 14:56:48 2001 +++ binutils-2.13.90.0.18/ld/deffile.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* deffile.h - header for .DEF file parser - Copyright 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc. Written by DJ Delorie dj@cygnus.com This file is part of GLD, the Gnu Linker. @@ -52,65 +52,57 @@ typedef struct def_file_import { def_file_module *module; /* always set */ char *name; /* may be NULL; either this or ordinal will be set */ int ordinal; /* may be -1 */ + int data; /* = 1 if data */ } def_file_import; typedef struct def_file { - /* from the NAME or LIBRARY command */ + /* From the NAME or LIBRARY command. */ char *name; int is_dll; /* -1 if NAME/LIBRARY not given */ bfd_vma base_address; /* (bfd_vma)(-1) if unspecified */ - /* from the DESCRIPTION command */ + /* From the DESCRIPTION command. */ char *description; - /* from the STACK/HEAP command, -1 if unspecified */ + /* From the STACK/HEAP command, -1 if unspecified. */ int stack_reserve, stack_commit; int heap_reserve, heap_commit; - /* from the SECTION/SEGMENT commands */ + /* From the SECTION/SEGMENT commands. */ int num_section_defs; def_file_section *section_defs; - /* from the EXPORTS commands */ + /* From the EXPORTS commands. */ int num_exports; def_file_export *exports; - /* used by imports for module names */ + /* Used by imports for module names. */ def_file_module *modules; - /* from the IMPORTS commands */ + /* From the IMPORTS commands. */ int num_imports; def_file_import *imports; - /* from the VERSION command, -1 if not specified */ + /* From the VERSION command, -1 if not specified. */ int version_major, version_minor; } def_file; extern def_file *def_file_empty PARAMS ((void)); -/* add_to may be NULL. If not, this .def is appended to it */ -extern def_file *def_file_parse PARAMS ((const char *_filename, - def_file * _add_to)); - -extern void def_file_free PARAMS ((def_file * _def)); - -extern def_file_export *def_file_add_export PARAMS ((def_file * _def, - const char *_name, - const char *_internal_name, - int _ordinal)); - -extern def_file_import *def_file_add_import PARAMS ((def_file * _def, - const char *_name, - const char *_from, - int _ordinal, - const char *_imported_name)); - -extern void def_file_add_directive PARAMS ((def_file * _def, - const char *param, - int len)); - +/* The second arg may be NULL. If not, this .def is appended to it. */ +extern def_file * def_file_parse + PARAMS ((const char *, def_file *)); +extern void def_file_free + PARAMS ((def_file *)); +extern def_file_export * def_file_add_export + PARAMS ((def_file *, const char *, const char *, int)); +extern def_file_import * def_file_add_import + PARAMS ((def_file *, const char *, const char *, int, const char *)); +extern void def_file_add_directive + PARAMS ((def_file *, const char *, int)); #ifdef DEF_FILE_PRINT -extern void def_file_print PARAMS ((FILE * _file, def_file * _def)); +extern void def_file_print + PARAMS ((FILE *, def_file *)); #endif #endif /* DEFFILE_H */ diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf32b4300.sh binutils-2.13.90.0.18/ld/emulparams/elf32b4300.sh --- binutils-2.13.90.0.16/ld/emulparams/elf32b4300.sh Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf32b4300.sh Mon Dec 16 12:22:53 2002 @@ -7,4 +7,4 @@ TEXT_START_ADDR=0xa0020000 unset NONPAGED_TEXT_START_ADDR unset SHLIB_TEXT_START_ADDR EXECUTABLE_SYMBOLS='_DYNAMIC_LINK = 0;' -DYNAMIC_LINK=false +DYNAMIC_LINK=FALSE diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf32bmipn32-defs.sh binutils-2.13.90.0.18/ld/emulparams/elf32bmipn32-defs.sh --- binutils-2.13.90.0.16/ld/emulparams/elf32bmipn32-defs.sh Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf32bmipn32-defs.sh Tue Jan 21 10:21:34 2003 @@ -21,19 +21,14 @@ esac if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then case " $EMULATION_LIBPATH " in *" ${EMULATION_NAME} "*) - LIB_PATH=${libdir} - for lib in ${NATIVE_LIB_DIRS}; do - case :${LIB_PATH}: in - *:${lib}:*) ;; - *) LIB_PATH=${LIB_PATH}:${lib} ;; - esac - done - # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. - LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$ELFSIZE:,g`$LIB_PATH - ;; + NATIVE=yes + ;; esac fi +# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. +LIBPATH_SUFFIX=$ELFSIZE + GENERATE_SHLIB_SCRIPT=yes TEXT_START_ADDR=0x10000000 diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf32iq10.sh binutils-2.13.90.0.18/ld/emulparams/elf32iq10.sh --- binutils-2.13.90.0.16/ld/emulparams/elf32iq10.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/elf32iq10.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,11 @@ +MACHINE= +SCRIPT_NAME=iq2000 +OUTPUT_FORMAT="elf32-iq2000" +DATA_ADDR=0x1000 +TEXT_START_ADDR=0x80000000 +ARCH=iq2000 +ENTRY=_start +EMBEDDED=yes +ELFSIZE=32 +MAXPAGESIZE=256 +OTHER_RELOCATING_SECTIONS='PROVIDE (__stack = 0x1800);' diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf32iq2000.sh binutils-2.13.90.0.18/ld/emulparams/elf32iq2000.sh --- binutils-2.13.90.0.16/ld/emulparams/elf32iq2000.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/elf32iq2000.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +MACHINE= +SCRIPT_NAME=iq2000 +OUTPUT_FORMAT="elf32-iq2000" +DATA_ADDR=0x1000 +TEXT_START_ADDR=0x80000000 +ARCH=iq2000 +MAXPAGESIZE=256 +ENTRY=_start +EMBEDDED=yes +CTOR_START='__ctors = .;' +CTOR_END='__ctors_end = .;' +DTOR_START='__dtors = .;' +DTOR_END='__dtors_end = .;' +OTHER_RELOCATING_SECTIONS='PROVIDE (__stack = 0x1800);' diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf32ppc.sh binutils-2.13.90.0.18/ld/emulparams/elf32ppc.sh --- binutils-2.13.90.0.16/ld/emulparams/elf32ppc.sh Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf32ppc.sh Tue Jan 21 10:21:34 2003 @@ -25,19 +25,14 @@ OTHER_GOT_RELOC_SECTIONS=" # Treat a host that matches the target with the possible exception of "64" # in the name as if it were native. if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then - case " $EMULATION_LIBPATH " in - *" ${EMULATION_NAME} "*) - LIB_PATH=${libdir} - for lib in ${NATIVE_LIB_DIRS}; do - case :${LIB_PATH}: in - *:${lib}:*) ;; - *) LIB_PATH=${LIB_PATH}:${lib} ;; - esac - done - # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. - case "$EMULATION_NAME" in - *64*) LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,64:,g`$LIB_PATH - esac - ;; - esac + case " $EMULATION_LIBPATH " in + *" ${EMULATION_NAME} "*) + NATIVE=yes + ;; + esac fi + +# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. +case "$EMULATION_NAME" in + *64*) LIBPATH_SUFFIX=64 ;; +esac diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf64_aix.sh binutils-2.13.90.0.18/ld/emulparams/elf64_aix.sh --- binutils-2.13.90.0.16/ld/emulparams/elf64_aix.sh Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf64_aix.sh Tue Jan 21 10:21:34 2003 @@ -18,4 +18,4 @@ OTHER_READONLY_SECTIONS=" .opd ${RELOCATING-0} : { *(.opd) } .IA_64.unwind_info ${RELOCATING-0} : { *(.IA_64.unwind_info*${RELOCATING+ .gnu.linkonce.ia64unwi.*}) } .IA_64.unwind ${RELOCATING-0} : { *(.IA_64.unwind*${RELOCATING+ .gnu.linkonce.ia64unw.*}) }" -LIB_PATH=/usr/lib/ia64l64:/usr/lib:/usr/local/lib +LIB_PATH="=/usr/lib/ia64l64:=/usr/lib:=/usr/local/lib" diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf64_s390.sh binutils-2.13.90.0.18/ld/emulparams/elf64_s390.sh --- binutils-2.13.90.0.16/ld/emulparams/elf64_s390.sh Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf64_s390.sh Tue Jan 21 10:21:34 2003 @@ -16,26 +16,17 @@ if test `echo "$host" | sed -e s/390x/39 = `echo "$target" | sed -e s/390x/390/`; then case " $EMULATION_LIBPATH " in *" ${EMULATION_NAME} "*) - LIB_PATH=${libdir} - for lib in ${NATIVE_LIB_DIRS}; do - case :${LIB_PATH}: in - *:${lib}:*) ;; - *) LIB_PATH=${LIB_PATH}:${lib} ;; - esac - done - - case "$target" in - s390*-linux*) - suffix=64 ;; - esac - - # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first - # on Linux. - if [ -n "$suffix" ]; then - case "$EMULATION_NAME" in - *64*) - LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;; - esac - fi ;; + NATIVE=yes esac fi + +# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first +# on Linux. +case "$target" in + s390*-linux*) + case "$EMULATION_NAME" in + *64*) + LIBPATH_SUFFIX=$suffix ;; + esac + ;; +esac diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf64_sparc.sh binutils-2.13.90.0.18/ld/emulparams/elf64_sparc.sh --- binutils-2.13.90.0.16/ld/emulparams/elf64_sparc.sh Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf64_sparc.sh Tue Jan 21 10:21:34 2003 @@ -28,31 +28,23 @@ if test `echo "$host" | sed -e 's/64//;s = `echo "$target" | sed -e 's/64//;s/v[789]//'`; then case " $EMULATION_LIBPATH " in *" ${EMULATION_NAME} "*) - LIB_PATH=${libdir} - for lib in ${NATIVE_LIB_DIRS}; do - case :${LIB_PATH}: in - *:${lib}:*) ;; - *) LIB_PATH=${LIB_PATH}:${lib} ;; - esac - done - - # Linux and Solaris modify the default library search path - # to first include a 64-bit specific directory. It's put - # in slightly different places on the two systems. - case "$target" in - sparc*-linux*) - suffix=64 ;; - sparc*-solaris*) - suffix=/sparcv9 ;; - esac - - # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first - # on Linux and /lib/sparcv9, /usr/lib/sparcv9 etc. on Solaris. - if [ -n "$suffix" ]; then - case "$EMULATION_NAME" in - *64*) - LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;; - esac - fi ;; + NATIVE=yes + ;; esac fi + +# Linux and Solaris modify the default library search path +# to first include a 64-bit specific directory. It's put +# in slightly different places on the two systems. +# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first +# on Linux and /lib/sparcv9, /usr/lib/sparcv9 etc. on Solaris. +case "$EMULATION_NAME" in + *64*) + case "$target" in + sparc*-linux*) + suffix=64 ;; + sparc*-solaris*) + suffix=/sparcv9 ;; + esac + ;; +esac diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf64hppa.sh binutils-2.13.90.0.18/ld/emulparams/elf64hppa.sh --- binutils-2.13.90.0.16/ld/emulparams/elf64hppa.sh Sun Feb 3 11:22:32 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf64hppa.sh Tue Jan 21 10:21:34 2003 @@ -1,6 +1,6 @@ . ${srcdir}/emulparams/hppa64linux.sh OUTPUT_FORMAT="elf64-hppa" -LIB_PATH=/usr/lib/pa20_64:/opt/langtools/lib/pa20_64 +LIB_PATH="=/usr/lib/pa20_64:=/opt/langtools/lib/pa20_64" TEXT_START_ADDR=0x4000000000001000 DATA_ADDR=0x8000000000001000 TARGET_PAGE_SIZE=4096 diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf64ppc.sh binutils-2.13.90.0.18/ld/emulparams/elf64ppc.sh --- binutils-2.13.90.0.16/ld/emulparams/elf64ppc.sh Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf64ppc.sh Tue Jan 21 10:21:34 2003 @@ -34,18 +34,14 @@ OTHER_READWRITE_SECTIONS=" # Treat a host that matches the target with the possible exception of "64" # in the name as if it were native. if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then - case " $EMULATION_LIBPATH " in - *" ${EMULATION_NAME} "*) - LIB_PATH=${libdir} - for lib in ${NATIVE_LIB_DIRS}; do - case :${LIB_PATH}: in - *:${lib}:*) ;; - *) LIB_PATH=${LIB_PATH}:${lib} ;; - esac - done - # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. - case "$EMULATION_NAME" in - *64*) LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,64:,g`$LIB_PATH - esac - esac + case " $EMULATION_LIBPATH " in + *" ${EMULATION_NAME} "*) + NATIVE=yes + ;; + esac fi + +# Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. +case "$EMULATION_NAME" in + *64*) LIBPATH_SUFFIX=64 ;; +esac diff -uprN binutils-2.13.90.0.16/ld/emulparams/elf_x86_64.sh binutils-2.13.90.0.18/ld/emulparams/elf_x86_64.sh --- binutils-2.13.90.0.16/ld/emulparams/elf_x86_64.sh Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/ld/emulparams/elf_x86_64.sh Tue Jan 21 10:21:34 2003 @@ -15,27 +15,16 @@ NO_SMALL_DATA=yes if [ "x${host}" = "x${target}" ]; then case " $EMULATION_LIBPATH " in *" ${EMULATION_NAME} "*) - LIB_PATH=${libdir} - for lib in ${NATIVE_LIB_DIRS}; do - case :${LIB_PATH}: in - *:${lib}:*) ;; - *) LIB_PATH=${LIB_PATH}:${lib} ;; - esac - done - - # Linux modify the default library search path to first include - # a 64-bit specific directory. - case "$target" in - x86_64*-linux*) - suffix=64 ;; - esac - - # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first. - if [ -n "$suffix" ]; then - case "$EMULATION_NAME" in - *64*) - LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;; - esac - fi ;; + NATIVE=yes esac fi + +# Linux modify the default library search path to first include +# a 64-bit specific directory. +case "$target" in + x86_64*-linux*) + case "$EMULATION_NAME" in + *64*) LIBPATH_SUFFIX=$suffix ;; + esac + ;; +esac diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x110.sh binutils-2.13.90.0.18/ld/emulparams/msp430x110.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x110.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x110.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:11 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xfc00 +ROM_SIZE=0x3e0 +RAM_START=0x0200 +RAM_SIZE=128 + +STACK=0x280 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x1101.sh binutils-2.13.90.0.18/ld/emulparams/msp430x1101.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x1101.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x1101.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:110 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xfc00 +ROM_SIZE=0x3e0 +RAM_START=0x0200 +RAM_SIZE=128 + +STACK=0x280 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x1111.sh binutils-2.13.90.0.18/ld/emulparams/msp430x1111.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x1111.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x1111.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:110 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf800 +ROM_SIZE=0x07e0 +RAM_START=0x0200 +RAM_SIZE=128 + +STACK=0x280 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x112.sh binutils-2.13.90.0.18/ld/emulparams/msp430x112.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x112.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x112.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:11 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf000 +ROM_SIZE=0xfe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x1121.sh binutils-2.13.90.0.18/ld/emulparams/msp430x1121.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x1121.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x1121.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:110 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf000 +ROM_SIZE=0x0fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x122.sh binutils-2.13.90.0.18/ld/emulparams/msp430x122.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x122.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x122.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:12 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf000 +ROM_SIZE=0xfe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x1222.sh binutils-2.13.90.0.18/ld/emulparams/msp430x1222.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x1222.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x1222.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:12 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf000 +ROM_SIZE=0xfe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x123.sh binutils-2.13.90.0.18/ld/emulparams/msp430x123.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x123.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x123.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:12 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x1232.sh binutils-2.13.90.0.18/ld/emulparams/msp430x1232.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x1232.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x1232.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:12 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x133.sh binutils-2.13.90.0.18/ld/emulparams/msp430x133.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x133.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x133.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:13 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x1331.sh binutils-2.13.90.0.18/ld/emulparams/msp430x1331.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x1331.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x1331.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:13 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x135.sh binutils-2.13.90.0.18/ld/emulparams/msp430x135.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x135.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x135.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:13 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x1351.sh binutils-2.13.90.0.18/ld/emulparams/msp430x1351.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x1351.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x1351.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:13 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x147.sh binutils-2.13.90.0.18/ld/emulparams/msp430x147.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x147.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x147.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:14 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1K + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x148.sh binutils-2.13.90.0.18/ld/emulparams/msp430x148.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x148.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x148.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:14 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x4000 +ROM_SIZE=0xbef0 +RAM_START=0x0200 +RAM_SIZE=0x07ff + +STACK=0xa00 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x149.sh binutils-2.13.90.0.18/ld/emulparams/msp430x149.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x149.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x149.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:14 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x1100 +ROM_SIZE=0xeee0 +RAM_START=0x0200 +RAM_SIZE=0x07ff + +STACK=0xa00 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x155.sh binutils-2.13.90.0.18/ld/emulparams/msp430x155.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x155.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x155.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:15 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x156.sh binutils-2.13.90.0.18/ld/emulparams/msp430x156.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x156.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x156.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:15 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xa000 +ROM_SIZE=0x5fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x157.sh binutils-2.13.90.0.18/ld/emulparams/msp430x157.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x157.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x157.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:15 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1K + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x167.sh binutils-2.13.90.0.18/ld/emulparams/msp430x167.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x167.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x167.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:16 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1K + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x168.sh binutils-2.13.90.0.18/ld/emulparams/msp430x168.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x168.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x168.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:16 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x4000 +ROM_SIZE=0xbef0 +RAM_START=0x0200 +RAM_SIZE=0x07ff + +STACK=0xa00 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x169.sh binutils-2.13.90.0.18/ld/emulparams/msp430x169.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x169.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x169.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:16 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x1100 +ROM_SIZE=0xeee0 +RAM_START=0x0200 +RAM_SIZE=0x07ff + +STACK=0xa00 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x311.sh binutils-2.13.90.0.18/ld/emulparams/msp430x311.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x311.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x311.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:31 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf800 +ROM_SIZE=0x07e0 +RAM_START=0x0200 +RAM_SIZE=128 + +STACK=0x280 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x312.sh binutils-2.13.90.0.18/ld/emulparams/msp430x312.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x312.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x312.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:31 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf000 +ROM_SIZE=0x0fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x313.sh binutils-2.13.90.0.18/ld/emulparams/msp430x313.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x313.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x313.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:31 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x314.sh binutils-2.13.90.0.18/ld/emulparams/msp430x314.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x314.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x314.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:31 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xd000 +ROM_SIZE=0x2fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x315.sh binutils-2.13.90.0.18/ld/emulparams/msp430x315.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x315.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x315.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:31 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x323.sh binutils-2.13.90.0.18/ld/emulparams/msp430x323.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x323.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x323.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:32 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x325.sh binutils-2.13.90.0.18/ld/emulparams/msp430x325.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x325.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x325.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:32 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x336.sh binutils-2.13.90.0.18/ld/emulparams/msp430x336.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x336.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x336.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:33 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xa000 +ROM_SIZE=0x5fe0 +RAM_START=0x0200 +RAM_SIZE=1024 + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x337.sh binutils-2.13.90.0.18/ld/emulparams/msp430x337.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x337.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x337.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:33 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1024 + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x412.sh binutils-2.13.90.0.18/ld/emulparams/msp430x412.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x412.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x412.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:41 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf000 +ROM_SIZE=0x0fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x413.sh binutils-2.13.90.0.18/ld/emulparams/msp430x413.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x413.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x413.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:41 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x435.sh binutils-2.13.90.0.18/ld/emulparams/msp430x435.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x435.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x435.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:43 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x436.sh binutils-2.13.90.0.18/ld/emulparams/msp430x436.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x436.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x436.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:43 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xa000 +ROM_SIZE=0x5fe0 +RAM_START=0x0200 +RAM_SIZE=1024 + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x437.sh binutils-2.13.90.0.18/ld/emulparams/msp430x437.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x437.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x437.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:43 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1024 + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x447.sh binutils-2.13.90.0.18/ld/emulparams/msp430x447.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x447.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x447.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:44 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1K + +STACK=0x600 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x448.sh binutils-2.13.90.0.18/ld/emulparams/msp430x448.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x448.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x448.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:44 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x4000 +ROM_SIZE=0xbef0 +RAM_START=0x0200 +RAM_SIZE=0x07ff + +STACK=0xa00 diff -uprN binutils-2.13.90.0.16/ld/emulparams/msp430x449.sh binutils-2.13.90.0.18/ld/emulparams/msp430x449.sh --- binutils-2.13.90.0.16/ld/emulparams/msp430x449.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/msp430x449.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ +ARCH=msp:44 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x1100 +ROM_SIZE=0xeee0 +RAM_START=0x0200 +RAM_SIZE=0x07ff + +STACK=0xa00 diff -uprN binutils-2.13.90.0.16/ld/emulparams/tic3xcoff.sh binutils-2.13.90.0.18/ld/emulparams/tic3xcoff.sh --- binutils-2.13.90.0.16/ld/emulparams/tic3xcoff.sh Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/ld/emulparams/tic3xcoff.sh Tue Jan 21 10:21:34 2003 @@ -2,8 +2,5 @@ SCRIPT_NAME=tic4xcoff OUTPUT_FORMAT="coff2-c4x" OUTPUT_ARCH="c3x" ARCH=c3x -#ENTRY=_c_int00 -TEXT_START_ADDR=0x0080 -TARGET_PAGE_SIZE=0x1000 TEMPLATE_NAME=ticoff OUTPUT_FORMAT_TEMPLATE=tic4x diff -uprN binutils-2.13.90.0.16/ld/emulparams/tic3xcoff_onchip.sh binutils-2.13.90.0.18/ld/emulparams/tic3xcoff_onchip.sh --- binutils-2.13.90.0.16/ld/emulparams/tic3xcoff_onchip.sh Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/emulparams/tic3xcoff_onchip.sh Tue Jan 21 10:21:34 2003 @@ -0,0 +1,8 @@ +SCRIPT_NAME=tic4xcoff +OUTPUT_FORMAT="coff2-c4x" +OUTPUT_ARCH="c3x" +ARCH=c3x +TEMPLATE_NAME=ticoff +OUTPUT_FORMAT_TEMPLATE=tic4x +ONCHIP=yes + diff -uprN binutils-2.13.90.0.16/ld/emulparams/tic4xcoff.sh binutils-2.13.90.0.18/ld/emulparams/tic4xcoff.sh --- binutils-2.13.90.0.16/ld/emulparams/tic4xcoff.sh Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/ld/emulparams/tic4xcoff.sh Tue Jan 21 10:21:34 2003 @@ -2,8 +2,5 @@ SCRIPT_NAME=tic4xcoff OUTPUT_FORMAT="coff2-c4x" OUTPUT_ARCH="c4x" ARCH=c4x -#ENTRY=_c_int00 -TEXT_START_ADDR=0x0080 -TARGET_PAGE_SIZE=0x1000 TEMPLATE_NAME=ticoff OUTPUT_FORMAT_TEMPLATE=tic4x diff -uprN binutils-2.13.90.0.16/ld/emultempl/aix.em binutils-2.13.90.0.18/ld/emultempl/aix.em --- binutils-2.13.90.0.16/ld/emultempl/aix.em Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/emultempl/aix.em Mon Dec 16 12:22:53 2002 @@ -56,25 +56,36 @@ Foundation, Inc., 59 Temple Place - Suit #include "libcoff.h" #include "libxcoff.h" -static void gld${EMULATION_NAME}_before_parse PARAMS ((void)); -static int gld${EMULATION_NAME}_parse_args PARAMS ((int, char **)); -static void gld${EMULATION_NAME}_after_open PARAMS ((void)); -static char *gld${EMULATION_NAME}_choose_target PARAMS ((int, char **)); -static void gld${EMULATION_NAME}_before_allocation PARAMS ((void)); -static void gld${EMULATION_NAME}_read_file PARAMS ((const char *, boolean)); -static void gld${EMULATION_NAME}_free PARAMS ((PTR)); +static void gld${EMULATION_NAME}_before_parse + PARAMS ((void)); +static int gld${EMULATION_NAME}_parse_args + PARAMS ((int, char **)); +static void gld${EMULATION_NAME}_after_open + PARAMS ((void)); +static char *gld${EMULATION_NAME}_choose_target + PARAMS ((int, char **)); +static void gld${EMULATION_NAME}_before_allocation + PARAMS ((void)); +static void gld${EMULATION_NAME}_read_file + PARAMS ((const char *, bfd_boolean)); +static void gld${EMULATION_NAME}_free + PARAMS ((PTR)); static void gld${EMULATION_NAME}_find_relocs -PARAMS ((lang_statement_union_type *)); -static void gld${EMULATION_NAME}_find_exp_assignment PARAMS ((etree_type *)); -static char *gld${EMULATION_NAME}_get_script PARAMS ((int *isfile)); -static boolean gld${EMULATION_NAME}_unrecognized_file + PARAMS ((lang_statement_union_type *)); +static void gld${EMULATION_NAME}_find_exp_assignment + PARAMS ((etree_type *)); +static char *gld${EMULATION_NAME}_get_script + PARAMS ((int *isfile)); +static bfd_boolean gld${EMULATION_NAME}_unrecognized_file PARAMS ((lang_input_statement_type *)); static void gld${EMULATION_NAME}_create_output_section_statements PARAMS ((void)); -static void gld${EMULATION_NAME}_set_output_arch PARAMS ((void)); - -static int is_syscall PARAMS ((char *, unsigned int *)); -static int change_symbol_mode PARAMS ((char *)); +static void gld${EMULATION_NAME}_set_output_arch + PARAMS ((void)); +static int is_syscall + PARAMS ((char *, unsigned int *)); +static int change_symbol_mode + PARAMS ((char *)); /* The file alignment required for each section. */ static unsigned long file_align; @@ -157,7 +168,7 @@ gld${EMULATION_NAME}_before_parse () else ldfile_output_architecture = bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`; - config.has_shared = true; + config.has_shared = TRUE; /* The link_info.[init|fini]_functions are initialized in ld/lexsup.c. Override them here so we can use the link_info.init_function as a @@ -395,19 +406,19 @@ gld${EMULATION_NAME}_parse_args (argc, a break; case OPTION_AUTOIMP: - link_info.static_link = false; + link_info.static_link = FALSE; break; case OPTION_ERNOTOK: - force_make_executable = false; + force_make_executable = FALSE; break; case OPTION_EROK: - force_make_executable = true; + force_make_executable = TRUE; break; case OPTION_EXPORT: - gld${EMULATION_NAME}_read_file (optarg, false); + gld${EMULATION_NAME}_read_file (optarg, FALSE); break; case OPTION_IMPORT: @@ -449,7 +460,7 @@ gld${EMULATION_NAME}_parse_args (argc, a case OPTION_MODTYPE: if (*optarg == 'S') { - link_info.shared = true; + link_info.shared = TRUE; ++optarg; } if (*optarg == '\0' || optarg[1] == '\0') @@ -459,11 +470,11 @@ gld${EMULATION_NAME}_parse_args (argc, a break; case OPTION_NOAUTOIMP: - link_info.static_link = true; + link_info.static_link = TRUE; break; case OPTION_NOSTRCMPCT: - link_info.traditional_format = true; + link_info.traditional_format = TRUE; break; case OPTION_PD: @@ -512,11 +523,11 @@ gld${EMULATION_NAME}_parse_args (argc, a break; case OPTION_STRCMPCT: - link_info.traditional_format = false; + link_info.traditional_format = FALSE; break; case OPTION_UNIX: - unix_ld = true; + unix_ld = TRUE; break; case OPTION_32: @@ -548,18 +559,18 @@ gld${EMULATION_NAME}_parse_args (argc, a object or an archive. If the file starts with #!, we must treat it as an import file. This is for AIX compatibility. */ -static boolean +static bfd_boolean gld${EMULATION_NAME}_unrecognized_file (entry) lang_input_statement_type *entry; { FILE *e; - boolean ret; + bfd_boolean ret; e = fopen (entry->filename, FOPEN_RT); if (e == NULL) - return false; + return FALSE; - ret = false; + ret = FALSE; if (getc (e) == '#' && getc (e) == '!') { @@ -574,8 +585,8 @@ gld${EMULATION_NAME}_unrecognized_file ( flpp = &(*flpp)->next; *flpp = n; - ret = true; - entry->loaded = true; + ret = TRUE; + entry->loaded = TRUE; } fclose (e); @@ -588,7 +599,7 @@ gld${EMULATION_NAME}_unrecognized_file ( static void gld${EMULATION_NAME}_after_open () { - boolean r; + bfd_boolean r; struct set_info *p; /* Call ldctor_build_sets, after pretending that this is a @@ -598,7 +609,7 @@ gld${EMULATION_NAME}_after_open () producing an XCOFF output file. */ r = link_info.relocateable; if (strstr (bfd_get_target (output_bfd), "xcoff") != NULL) - link_info.relocateable = true; + link_info.relocateable = TRUE; ldctor_build_sets (); link_info.relocateable = r; @@ -641,12 +652,12 @@ gld${EMULATION_NAME}_before_allocation ( /* Handle the import and export files, if any. */ for (fl = import_files; fl != NULL; fl = fl->next) - gld${EMULATION_NAME}_read_file (fl->name, true); + gld${EMULATION_NAME}_read_file (fl->name, TRUE); for (el = export_symbols; el != NULL; el = el->next) { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (link_info.hash, el->name, false, false, false); + h = bfd_link_hash_lookup (link_info.hash, el->name, FALSE, FALSE, FALSE); if (h == NULL) einfo ("%P%F: bfd_link_hash_lookup of export symbol failed: %E\n"); if (!bfd_xcoff_export_symbol (output_bfd, &link_info, h)) @@ -692,9 +703,9 @@ gld${EMULATION_NAME}_before_allocation ( /* Let the XCOFF backend set up the .loader section. */ if (!bfd_xcoff_size_dynamic_sections (output_bfd, &link_info, libpath, entry_symbol.name, file_align, - maxstack, maxdata, gc && !unix_ld ? true : false, - modtype, textro ? true : false, unix_ld, special_sections, - rtld ? true : false)) + maxstack, maxdata, gc && !unix_ld ? TRUE : FALSE, + modtype, textro ? TRUE : FALSE, unix_ld, special_sections, + rtld ? TRUE : FALSE)) einfo ("%P%F: failed to set dynamic section sizes: %E\n"); /* Look through the special sections, and put them in the right @@ -706,7 +717,7 @@ gld${EMULATION_NAME}_before_allocation ( lang_statement_union_type **pls; lang_input_section_type *is; const char *oname; - boolean start; + bfd_boolean start; sec = special_sections[i]; if (sec == NULL) @@ -766,32 +777,32 @@ gld${EMULATION_NAME}_before_allocation ( case XCOFF_SPECIAL_SECTION_TEXT: /* _text */ oname = ".text"; - start = true; + start = TRUE; break; case XCOFF_SPECIAL_SECTION_ETEXT: /* _etext */ oname = ".text"; - start = false; + start = FALSE; break; case XCOFF_SPECIAL_SECTION_DATA: /* _data */ oname = ".data"; - start = true; + start = TRUE; break; case XCOFF_SPECIAL_SECTION_EDATA: /* _edata */ oname = ".data"; - start = false; + start = FALSE; break; case XCOFF_SPECIAL_SECTION_END: case XCOFF_SPECIAL_SECTION_END2: /* _end and end */ oname = ".bss"; - start = false; + start = FALSE; break; } @@ -939,13 +950,13 @@ is_syscall (input, flag) static void gld${EMULATION_NAME}_read_file (filename, import) const char *filename; - boolean import; + bfd_boolean import; { struct obstack *o; FILE *f; int lineno; int c; - boolean keep; + bfd_boolean keep; const char *imppath; const char *impfile; const char *impmember; @@ -960,7 +971,7 @@ gld${EMULATION_NAME}_read_file (filename einfo ("%F%s: %E\n", filename); } - keep = false; + keep = FALSE; imppath = NULL; impfile = NULL; @@ -1026,7 +1037,7 @@ gld${EMULATION_NAME}_read_file (filename char *file; (void) obstack_finish (o); - keep = true; + keep = TRUE; imppath = s; file = NULL; while (!ISSPACE (*s) && *s != '(' && *s != '\0') @@ -1143,8 +1154,8 @@ gld${EMULATION_NAME}_read_file (filename } else { - h = bfd_link_hash_lookup (link_info.hash, symname, false, false, - true); + h = bfd_link_hash_lookup (link_info.hash, symname, FALSE, FALSE, + TRUE); if (h == NULL || h->type == bfd_link_hash_new) { /* We can just ignore attempts to import an unreferenced @@ -1221,7 +1232,7 @@ gld${EMULATION_NAME}_find_exp_assignment { case etree_provide: h = bfd_link_hash_lookup (link_info.hash, exp->assign.dst, - false, false, false); + FALSE, FALSE, FALSE); if (h == NULL) break; /* Fall through. */ @@ -1272,19 +1283,19 @@ cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -1293,9 +1304,9 @@ cat >>e${EMULATION_NAME}.c <the_bfd, - link_info.init_function, - link_info.fini_function, - rtld)) + if (! bfd_xcoff_link_generate_rtinit (initfini_file->the_bfd, + link_info.init_function, + link_info.fini_function, + rtld)) { einfo ("%X%P: can not create BFD %E\n"); return; } /* __rtld defined in /lib/librtl.a */ - if (true == rtld) + if (rtld) lang_add_input_file ("rtl", lang_input_file_is_l_enum, NULL); } } diff -uprN binutils-2.13.90.0.16/ld/emultempl/armcoff.em binutils-2.13.90.0.18/ld/emultempl/armcoff.em --- binutils-2.13.90.0.16/ld/emultempl/armcoff.em Wed Jul 17 11:38:29 2002 +++ binutils-2.13.90.0.18/ld/emultempl/armcoff.em Mon Dec 16 12:22:53 2002 @@ -48,7 +48,7 @@ static void gld${EMULATION_NAME}_list_op static void gld${EMULATION_NAME}_finish PARAMS ((void)); static void gld${EMULATION_NAME}_after_open PARAMS ((void)); -/* If true, then interworking stubs which support calls to old, non-interworking +/* If TRUE, then interworking stubs which support calls to old, non-interworking aware ARM code should be generated. */ static int support_old_code = 0; @@ -177,7 +177,8 @@ gld${EMULATION_NAME}_finish PARAMS((void if (thumb_entry_symbol == NULL) return; - h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol, false, false, true); + h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol, + FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined @@ -228,19 +229,19 @@ cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -249,9 +250,9 @@ cat >>e${EMULATION_NAME}.c <header.type == lang_input_section_enum - && statement->input_section.ifile->just_syms_flag == false) + && !statement->input_section.ifile->just_syms_flag) { asection *i = statement->input_section.section; asection *output_section = i->output_section; @@ -85,7 +85,7 @@ arm_elf_set_bfd_for_interworking (statem && ! i->owner->output_has_begun) { bfd_for_interwork = i->owner; - bfd_for_interwork->output_has_begun = true; + bfd_for_interwork->output_has_begun = TRUE; } } } @@ -105,12 +105,12 @@ arm_elf_before_allocation () /* The interworking bfd must be the last one in the link. */ bfd_for_interwork = NULL; for (tem = link_info.input_bfds; tem != NULL; tem = tem->link_next) - tem->output_has_begun = false; + tem->output_has_begun = FALSE; lang_for_each_statement (arm_elf_set_bfd_for_interworking); ASSERT (bfd_for_interwork != NULL); for (tem = link_info.input_bfds; tem != NULL; tem = tem->link_next) - tem->output_has_begun = false; + tem->output_has_begun = FALSE; bfd_elf32_arm_get_bfd_for_interworking (bfd_for_interwork, &link_info); } @@ -148,7 +148,7 @@ arm_elf_finish () return; h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol, - false, false, true); + FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined diff -uprN binutils-2.13.90.0.16/ld/emultempl/armelf_oabi.em binutils-2.13.90.0.18/ld/emultempl/armelf_oabi.em --- binutils-2.13.90.0.16/ld/emultempl/armelf_oabi.em Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/ld/emultempl/armelf_oabi.em Mon Dec 16 12:22:53 2002 @@ -4,7 +4,7 @@ cat >e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -134,9 +134,9 @@ cat >>e${EMULATION_NAME}.c <flags & SEC_ALLOC) == 0) - return false; + return FALSE; /* Don't process grouped sections unless doing a final link. If they're marked as COMDAT sections, we don't want .text\$foo to end up in .text and then have .text disappear because it's marked link-once-discard. */ if (link_info.relocateable) - return false; + return FALSE; secname = bfd_get_section_name (s->owner, s); @@ -758,7 +758,7 @@ gld${EMULATION_NAME}_place_orphan (file, if (*secname == '\$') einfo ("%P%F: section %s has '\$' as first character\n", secname); if (strchr (secname + 1, '\$') == NULL) - return false; + return FALSE; /* Look up the output section. The Microsoft specs say sections names in image files never contain a '\$'. Fortunately, lang_..._lookup creates @@ -802,12 +802,12 @@ gld${EMULATION_NAME}_place_orphan (file, tmp->spec.name = xmalloc (strlen (output_secname) + 2); sprintf (tmp->spec.name, "%s\$", output_secname); tmp->spec.exclude_name_list = NULL; - tmp->sorted = false; + tmp->sorted = FALSE; new = new_stat (lang_wild_statement, &os->children); new->filename = NULL; - new->filenames_sorted = false; + new->filenames_sorted = FALSE; new->section_list = tmp; - new->keep_sections = false; + new->keep_sections = FALSE; lang_list_init (&new->children); l = new; } @@ -819,7 +819,7 @@ gld${EMULATION_NAME}_place_orphan (file, sort_sections. */ lang_add_section (&l->wild_statement.children, s, os, file); - return true; + return TRUE; } static char * @@ -834,19 +834,19 @@ cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c cat >>e${EMULATION_NAME}.c <e${EMULATION_NAME}.c < ELF support by Ian Lance Taylor @@ -58,9 +58,9 @@ static void gld${EMULATION_NAME}_verchec PARAMS ((lang_input_statement_type *)); static void gld${EMULATION_NAME}_stat_needed PARAMS ((lang_input_statement_type *)); -static boolean gld${EMULATION_NAME}_try_needed +static bfd_boolean gld${EMULATION_NAME}_try_needed PARAMS ((const char *, int)); -static boolean gld${EMULATION_NAME}_search_needed +static bfd_boolean gld${EMULATION_NAME}_search_needed PARAMS ((const char *, const char *, int)); static void gld${EMULATION_NAME}_check_needed PARAMS ((lang_input_statement_type *)); @@ -72,13 +72,13 @@ static void gld${EMULATION_NAME}_find_st PARAMS ((lang_statement_union_type *)); static void gld${EMULATION_NAME}_before_allocation PARAMS ((void)); -static boolean gld${EMULATION_NAME}_open_dynamic_archive +static bfd_boolean gld${EMULATION_NAME}_open_dynamic_archive PARAMS ((const char *, search_dirs_type *, lang_input_statement_type *)); static lang_output_section_statement_type *output_rel_find PARAMS ((asection *)); static asection *output_prev_sec_find PARAMS ((lang_output_section_statement_type *)); -static boolean gld${EMULATION_NAME}_place_orphan +static bfd_boolean gld${EMULATION_NAME}_place_orphan PARAMS ((lang_input_statement_type *, asection *)); static void gld${EMULATION_NAME}_finish PARAMS ((void)); @@ -114,8 +114,8 @@ gld${EMULATION_NAME}_before_parse () } else ldfile_output_architecture = bfd_arch_`echo ${ARCH} | sed -e 's/:.*//'`; - config.dynamic_link = ${DYNAMIC_LINK-true}; - config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo true ; else echo false ; fi`; + config.dynamic_link = ${DYNAMIC_LINK-TRUE}; + config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`; } EOF @@ -128,9 +128,9 @@ cat >>e${EMULATION_NAME}.c <xvec != output_bfd->xvec) { bfd_close (abfd); - return false; + return FALSE; } /* Check whether this object would include any conflicting library @@ -303,14 +303,14 @@ gld${EMULATION_NAME}_try_needed (name, f if (needed != NULL) { global_vercheck_needed = needed; - global_vercheck_failed = false; + global_vercheck_failed = FALSE; lang_for_each_input_file (gld${EMULATION_NAME}_vercheck); if (global_vercheck_failed) { bfd_close (abfd); - /* Return false to force the caller to move on to try + /* Return FALSE to force the caller to move on to try another file on the search path. */ - return false; + return FALSE; } /* But wait! It gets much worse. On Linux, if a shared @@ -333,7 +333,7 @@ case ${target} in if (l == NULL) { bfd_close (abfd); - return false; + return FALSE; } } @@ -363,13 +363,13 @@ cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <filename, global_needed->name) == 0) { - global_found = true; + global_found = TRUE; return; } @@ -560,7 +605,7 @@ gld${EMULATION_NAME}_check_needed (s) if (f != NULL && strcmp (f + 1, global_needed->name) == 0) { - global_found = true; + global_found = TRUE; return; } } @@ -574,7 +619,7 @@ gld${EMULATION_NAME}_check_needed (s) if (soname != NULL && strcmp (soname, global_needed->name) == 0) { - global_found = true; + global_found = TRUE; return; } } @@ -620,7 +665,7 @@ gld${EMULATION_NAME}_after_open () /* See if this file was included in the link explicitly. */ global_needed = l; - global_found = false; + global_found = FALSE; lang_for_each_input_file (gld${EMULATION_NAME}_check_needed); if (global_found) continue; @@ -644,16 +689,12 @@ gld${EMULATION_NAME}_after_open () size_t len; search_dirs_type *search; EOF -if [ "x${host}" = "x${target}" ] ; then - case " ${EMULATION_LIBPATH} " in - *" ${EMULATION_NAME} "*) +if [ "x${USE_LIBPATH}" = xyes ] ; then cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <name, force)) break; EOF -if [ "x${host}" = "x${target}" ] ; then - case " ${EMULATION_LIBPATH} " in - *" ${EMULATION_NAME} "*) +if [ "x${USE_LIBPATH}" = xyes ] ; then cat >>e${EMULATION_NAME}.c <name, force)) break; +EOF +fi +if [ "x${NATIVE}" = xyes ] ; then +cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <name, force)) break; - +EOF +fi +if [ "x${USE_LIBPATH}" = xyes ] ; then +cat >>e${EMULATION_NAME}.c <next) { + char *tmpname = gld${EMULATION_NAME}_add_sysroot (rp->name); found = (rp->by == l->by - && gld${EMULATION_NAME}_search_needed (rp->name, + && gld${EMULATION_NAME}_search_needed (tmpname, l->name, force)); + free (tmpname); } if (found) break; EOF - ;; - esac fi cat >>e${EMULATION_NAME}.c <name); @@ -704,22 +750,6 @@ cat >>e${EMULATION_NAME}.c <cmdline) continue; - - if (command_line.multilib_dir != NULL - && *command_line.multilib_dir != '/') - { - filename = (char *) xmalloc (strlen (search->name) - + strlen (command_line.multilib_dir) - + len - + 3); - sprintf (filename, "%s/%s/%s", search->name, - command_line.multilib_dir, l->name); - - if (gld${EMULATION_NAME}_try_needed (filename, force)) - break; - free (filename); - } - filename = (char *) xmalloc (strlen (search->name) + len + 2); sprintf (filename, "%s/%s", search->name, l->name); if (gld${EMULATION_NAME}_try_needed (filename, force)) @@ -729,19 +759,15 @@ cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <name, force)) break; EOF - # Linux - ;; - esac - ;; + # Linux + ;; esac fi cat >>e${EMULATION_NAME}.c <assign.dst, - false, false, false); + FALSE, FALSE, FALSE); if (h == NULL) break; @@ -790,7 +816,7 @@ gld${EMULATION_NAME}_find_exp_assignment { if (! (bfd_elf${ELFSIZE}_record_link_assignment (output_bfd, &link_info, exp->assign.dst, - exp->type.node_class == etree_provide ? true : false))) + exp->type.node_class == etree_provide ? TRUE : FALSE))) einfo ("%P%F: failed to record assignment to %s: %E\n", exp->assign.dst); } @@ -893,7 +919,7 @@ ${ELF_INTERPRETER_SET_DEFAULT} asection *s; bfd_size_type sz; char *msg; - boolean ret; + bfd_boolean ret; if (is->just_syms_flag) continue; @@ -932,7 +958,7 @@ cat >>e${EMULATION_NAME}.c <is_archive) - return false; + return FALSE; filename = entry->filename; @@ -970,7 +996,7 @@ gld${EMULATION_NAME}_open_dynamic_archiv if (! ldfile_try_open_bfd (string, entry)) { free (string); - return false; + return FALSE; } entry->filename = string; @@ -1000,7 +1026,7 @@ gld${EMULATION_NAME}_open_dynamic_archiv bfd_elf_set_dt_needed_name (entry->the_bfd, filename); } - return true; + return TRUE; } EOF @@ -1087,9 +1113,10 @@ struct orphan_save { lang_output_section_statement_type *os; asection **section; lang_statement_union_type **stmt; + lang_statement_union_type **os_tail; }; -static boolean +static bfd_boolean gld${EMULATION_NAME}_place_orphan (file, s) lang_input_statement_type *file; asection *s; @@ -1109,6 +1136,8 @@ gld${EMULATION_NAME}_place_orphan (file, const char *secname; const char *ps = NULL; lang_output_section_statement_type *os; + lang_statement_union_type **os_tail; + etree_type *load_base; int isdyn = 0; secname = bfd_get_section_name (s->owner, s); @@ -1137,7 +1166,7 @@ gld${EMULATION_NAME}_place_orphan (file, /* We already have an output section statement with this name, and its bfd section, if any, has compatible flags. */ lang_add_section (&os->children, s, os, file); - return true; + return TRUE; } } @@ -1152,7 +1181,7 @@ gld${EMULATION_NAME}_place_orphan (file, && hold_text.os != NULL) { lang_add_section (&hold_text.os->children, s, hold_text.os, file); - return true; + return TRUE; } /* Decide which segment the section should go in based on the @@ -1167,7 +1196,7 @@ gld${EMULATION_NAME}_place_orphan (file, { if (s->output_section == NULL) s->output_section = bfd_abs_section_ptr; - return true; + return TRUE; } place = NULL; @@ -1243,16 +1272,26 @@ gld${EMULATION_NAME}_place_orphan (file, } } + address = NULL; if (link_info.relocateable || (s->flags & (SEC_LOAD | SEC_ALLOC)) == 0) address = exp_intop ((bfd_vma) 0); - else - address = NULL; + load_base = NULL; + if (place != NULL && place->os->load_base != NULL) + { + etree_type *lma_from_vma; + lma_from_vma = exp_binop ('-', place->os->load_base, + exp_nameop (ADDR, place->os->name)); + load_base = exp_binop ('+', lma_from_vma, + exp_nameop (ADDR, secname)); + } + + os_tail = lang_output_section_statement.tail; os = lang_enter_output_section_statement (secname, address, 0, (bfd_vma) 0, (etree_type *) NULL, (etree_type *) NULL, - (etree_type *) NULL); + load_base); lang_add_section (&os->children, s, os, file); @@ -1327,11 +1366,15 @@ gld${EMULATION_NAME}_place_orphan (file, read/write section before or amongst the read-only ones. */ if (add.head != NULL) { + lang_statement_union_type *newly_added_os; + if (place->stmt == NULL) { /* Put the new statement list right at the head. */ *add.tail = place->os->header.next; place->os->header.next = add.head; + + place->os_tail = &place->os->next; } else { @@ -1347,10 +1390,25 @@ gld${EMULATION_NAME}_place_orphan (file, /* Save the end of this list. */ place->stmt = add.tail; + + /* Do the same for the list of output section statements. */ + newly_added_os = *os_tail; + *os_tail = NULL; + newly_added_os->output_section_statement.next = *place->os_tail; + *place->os_tail = newly_added_os; + place->os_tail = &newly_added_os->output_section_statement.next; + + /* Fixing the global list pointer here is a little different. + We added to the list in lang_enter_output_section_statement, + trimmed off the new output_section_statment above when + assigning *os_tail = NULL, but possibly added it back in + the same place when assigning *place->os_tail. */ + if (*os_tail == NULL) + lang_output_section_statement.tail = os_tail; } } - return true; + return TRUE; } EOF fi @@ -1397,54 +1455,46 @@ sc="-f stringify.sed" cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c if cmp -s ldscripts/${EMULATION_NAME}.x ldscripts/${EMULATION_NAME}.xn; then : ; else -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c fi if test -n "$GENERATE_SHLIB_SCRIPT" ; then if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then echo ' ; else if (link_info.shared && link_info.combreloc) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xsc >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xsc >> e${EMULATION_NAME}.c fi -echo ' ; else if (link_info.shared) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xs >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.shared) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xs >> e${EMULATION_NAME}.c fi if test -n "$GENERATE_COMBRELOC_SCRIPT" ; then -echo ' ; else if (link_info.combreloc) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xc >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.combreloc) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xc >> e${EMULATION_NAME}.c fi -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c -fi +else # Scripts read from the filesystem. -if test -z "$COMPILE_IN" -then cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -104,9 +104,9 @@ cat >>e${EMULATION_NAME}.c <e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -150,9 +149,9 @@ cat >>e${EMULATION_NAME}.c <e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -164,9 +164,9 @@ cat >>e${EMULATION_NAME}.c <header.next) { @@ -146,7 +146,7 @@ hook_in_stub (info, lp) before its associated input section. */ *lp = info->add.head; *(info->add.tail) = l; - return true; + return TRUE; } break; @@ -167,7 +167,7 @@ hook_in_stub (info, lp) break; } } - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/ld/emultempl/linux.em binutils-2.13.90.0.18/ld/emultempl/linux.em --- binutils-2.13.90.0.16/ld/emultempl/linux.em Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/ld/emultempl/linux.em Mon Dec 16 12:22:53 2002 @@ -1,6 +1,6 @@ # This shell script emits a C file. -*- C -*- # It does some substitutions. -if [ -z "$MACHINE" ]; then +if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH} else OUTPUT_ARCH=${ARCH}:${MACHINE} @@ -9,7 +9,7 @@ cat >e${EMULATION_NAME}.c < Linux support by Eric Youngdale @@ -45,7 +45,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "ldemul.h" static void gld${EMULATION_NAME}_before_parse PARAMS ((void)); -static boolean gld${EMULATION_NAME}_open_dynamic_archive +static bfd_boolean gld${EMULATION_NAME}_open_dynamic_archive PARAMS ((const char *, search_dirs_type *, lang_input_statement_type *)); static void gld${EMULATION_NAME}_find_address_statement PARAMS ((lang_statement_union_type *)); @@ -66,14 +66,14 @@ gld${EMULATION_NAME}_before_parse() } else ldfile_output_architecture = bfd_arch_${ARCH}; - config.dynamic_link = true; - config.has_shared = true; + config.dynamic_link = TRUE; + config.has_shared = TRUE; } /* Try to open a dynamic archive. This is where we know that Linux dynamic libraries have an extension of .sa. */ -static boolean +static bfd_boolean gld${EMULATION_NAME}_open_dynamic_archive (arch, search, entry) const char *arch; search_dirs_type *search; @@ -82,7 +82,7 @@ gld${EMULATION_NAME}_open_dynamic_archiv char *string; if (! entry->is_archive) - return false; + return FALSE; string = (char *) xmalloc (strlen (search->name) + strlen (entry->filename) @@ -94,12 +94,12 @@ gld${EMULATION_NAME}_open_dynamic_archiv if (! ldfile_try_open_bfd (string, entry)) { free (string); - return false; + return FALSE; } entry->filename = string; - return true; + return TRUE; } /* This is called by the create_output_section_statements routine via @@ -157,33 +157,33 @@ then sc="-f stringify.sed" cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <name = name; - element->next = (lib_list_type *)NULL; + element->next = (lib_list_type *) NULL; **list = element; *list = &element->next; } -static boolean had_hll = false; -static boolean had_hll_name = false; +static bfd_boolean had_hll = FALSE; +static bfd_boolean had_hll_name = FALSE; static void -lnk960_hll(name) +lnk960_hll (name) char *name; { - had_hll = true; - if (name != (char *)NULL) { - had_hll_name = true; - append(&hll_list_tail, name); - } + had_hll = TRUE; + if (name != (char *) NULL) + { + had_hll_name = TRUE; + append (&hll_list_tail, name); + } } static void -lnk960_syslib(name) +lnk960_syslib (name) char *name; { - append(&syslib_list_tail,name); + append (&syslib_list_tail, name); } #ifdef GNU960 static void -lnk960_before_parse() +lnk960_before_parse () { static char *env_variables[] = { "G960LIB", "G960BASE", 0 }; char **p; char *env ; - for ( p = env_variables; *p; p++ ){ - env = (char *) getenv(*p); - if (env) { - ldfile_add_library_path(concat(env,"/lib/libcoff",""), false, - true); - } - } - - env= (char *) getenv("I960BASE"); - if ( env ) { - ldfile_add_library_path(concat(env,"/lib",""), false, true); - } + for (p = env_variables; *p; p++) + { + env = (char *) getenv (*p); + if (env) + ldfile_add_library_path (concat (env, "/lib/libcoff", ""), FALSE); + } + + env = (char *) getenv ("I960BASE"); + if (env) + ldfile_add_library_path(concat (env, "/lib", ""), FALSE); ldfile_output_architecture = bfd_arch_i960; ldfile_output_machine = bfd_mach_i960_core; @@ -126,19 +124,19 @@ lnk960_before_parse() #else /* not GNU960 */ static void -lnk960_before_parse() +lnk960_before_parse () { - char *name = getenv("I960BASE"); + char *name = getenv ("I960BASE"); - if (name == (char *)NULL) { - name = getenv("G960BASE"); - if (name == (char *)NULL) { - einfo("%P%F I960BASE and G960BASE not set\n"); + if (name == (char *) NULL) + { + name = getenv("G960BASE"); + if (name == (char *) NULL) + einfo ("%P%F I960BASE and G960BASE not set\n"); } - } - ldfile_add_library_path(concat(name,"/lib",""), false, true); + ldfile_add_library_path (concat (name, "/lib", ""), FALSE); ldfile_output_architecture = bfd_arch_i960; ldfile_output_machine = bfd_mach_i960_core; } @@ -147,55 +145,52 @@ lnk960_before_parse() static void -add_on(list, search) +add_on (list, search) lib_list_type *list; lang_input_file_enum_type search; { - while (list) { - lang_add_input_file(list->name, - search, - (char *)NULL); - list = list->next; - } + while (list) + { + lang_add_input_file (list->name, search, (char *) NULL); + list = list->next; + } } static void -lnk960_after_parse() +lnk960_after_parse () { /* If there has been no arch, default to -KB */ - if (ldfile_output_machine_name[0] ==0) { - ldfile_add_arch("KB"); - } + if (ldfile_output_machine_name[0] == 0) + ldfile_add_arch ("KB"); /* if there has been no hll list then add our own */ - if(had_hll && !had_hll_name) { - append(&hll_list_tail,"cg"); - if (ldfile_output_machine == bfd_mach_i960_ka_sa || - ldfile_output_machine == bfd_mach_i960_ca) { - { - append(&hll_list_tail,"fpg"); - } + if (had_hll && !had_hll_name) + { + append (&hll_list_tail, "cg"); + if (ldfile_output_machine == bfd_mach_i960_ka_sa + || ldfile_output_machine == bfd_mach_i960_ca) + append (&hll_list_tail, "fpg"); } - } - add_on(hll_list, lang_input_file_is_l_enum); - add_on(syslib_list, lang_input_file_is_search_file_enum); + add_on (hll_list, lang_input_file_is_l_enum); + add_on (syslib_list, lang_input_file_is_search_file_enum); } static void -lnk960_before_allocation() +lnk960_before_allocation () { } static void -lnk960_after_allocation() +lnk960_after_allocation () { - if (link_info.relocateable == false) { - lang_abs_symbol_at_end_of(".text","_etext"); - lang_abs_symbol_at_end_of(".data","_edata"); - lang_abs_symbol_at_beginning_of(".bss","_bss_start"); - lang_abs_symbol_at_end_of(".bss","_end"); - } + if (!link_info.relocateable) + { + lang_abs_symbol_at_end_of (".text", "_etext"); + lang_abs_symbol_at_end_of (".data", "_edata"); + lang_abs_symbol_at_beginning_of (".bss", "_bss_start"); + lang_abs_symbol_at_end_of (".bss", "_end"); + } } @@ -232,18 +227,21 @@ machine_table[] = }; static void -lnk960_set_output_arch() +lnk960_set_output_arch () { /* Set the output architecture and machine if possible */ unsigned int i; ldfile_output_machine = bfd_mach_i960_core; - for (i= 0; machine_table[i].name != (char*)NULL; i++) { - if (strcmp(ldfile_output_machine_name,machine_table[i].name)==0) { - ldfile_output_machine = machine_table[i].number; - break; + for (i= 0; machine_table[i].name != (char*) NULL; i++) + { + if (strcmp (ldfile_output_machine_name, machine_table[i].name) == 0) + { + ldfile_output_machine = machine_table[i].number; + break; + } } - } - bfd_set_arch_mach(output_bfd, ldfile_output_architecture, ldfile_output_machine); + bfd_set_arch_mach (output_bfd, ldfile_output_architecture, + ldfile_output_machine); } static char * @@ -253,12 +251,12 @@ lnk960_choose_target (argc, argv) { #ifdef GNU960 - return bfd_make_targ_name(BFD_COFF_FORMAT, 0); + return bfd_make_targ_name (BFD_COFF_FORMAT, 0); #else - char *from_outside = getenv(TARGET_ENVIRON); - if (from_outside != (char *)NULL) + char *from_outside = getenv (TARGET_ENVIRON); + if (from_outside != (char *) NULL) return from_outside; #ifdef LNK960_LITTLE return "coff-Intel-little"; @@ -270,7 +268,7 @@ lnk960_choose_target (argc, argv) } static char * -lnk960_get_script(isfile) +lnk960_get_script (isfile) int *isfile; EOF @@ -285,19 +283,19 @@ cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -306,9 +304,9 @@ cat >>e${EMULATION_NAME}.c <e${EMULATION_NAME}.c <, based on generic.em by Steve Chamberlain , embedded relocs code based on mipsecoff.em by Ian Lance Taylor . @@ -179,19 +179,19 @@ cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -200,9 +200,9 @@ cat >>e${EMULATION_NAME}.c <e${EMULATION_NAME}.c < based on generic.em. This file is part of GLD, the Gnu Linker. @@ -194,19 +194,19 @@ cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c else # Scripts read from the filesystem. @@ -215,9 +215,9 @@ cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <owner, s) & (SEC_EXCLUDE | SEC_LOAD)) != SEC_LOAD) - return false; + return FALSE; /* Only care for sections we're going to load. */ os = lang_output_section_find (bfd_get_section_name (s->owner, s)); @@ -110,13 +110,13 @@ mmo_place_orphan (file, s) if (os != NULL) { lang_add_section (&os->children, s, os, file); - return true; + return TRUE; } /* If this section does not have .text-type section flags or there's no MMO_TEXT_SECTION_NAME, we don't have anything to say. */ if ((bfd_get_section_flags (s->owner, s) & (SEC_CODE | SEC_READONLY)) == 0) - return false; + return FALSE; if (hold_text.os == NULL) hold_text.os = lang_output_section_find (MMO_TEXT_SECTION_NAME); @@ -155,7 +155,7 @@ mmo_place_orphan (file, s) snew = os->bfd_section; if (snew == NULL) /* /DISCARD/ section. */ - return true; + return TRUE; /* We need an output section for .text as a root, so if there was none (might happen with a peculiar linker script such as in "map @@ -164,7 +164,7 @@ mmo_place_orphan (file, s) if (hold_text.os == NULL) { if (os == NULL) - return false; + return FALSE; hold_text.os = os; } @@ -219,7 +219,7 @@ mmo_place_orphan (file, s) place->stmt = add.tail; } - return true; + return TRUE; } /* Remove the spurious settings of SEC_RELOC that make it to the output at diff -uprN binutils-2.13.90.0.16/ld/emultempl/needrelax.em binutils-2.13.90.0.18/ld/emultempl/needrelax.em --- binutils-2.13.90.0.16/ld/emultempl/needrelax.em Wed Aug 22 08:52:10 2001 +++ binutils-2.13.90.0.18/ld/emultempl/needrelax.em Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright (C) 2001 Free Software Foundation, Inc. +# Copyright 2001, 2002 Free Software Foundation, Inc. # # This file is part of GLD, the Gnu Linker. # @@ -35,6 +35,6 @@ need_relax_${EMULATION_NAME}_before_allo /* Force -relax on if not doing a relocatable link. */ if (! link_info.relocateable) - command_line.relax = true; + command_line.relax = TRUE; } EOF diff -uprN binutils-2.13.90.0.16/ld/emultempl/pe.em binutils-2.13.90.0.18/ld/emultempl/pe.em --- binutils-2.13.90.0.16/ld/emultempl/pe.em Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/emultempl/pe.em Tue Jan 21 10:21:34 2003 @@ -111,12 +111,12 @@ static void gld_${EMULATION_NAME}_after_ static void gld_${EMULATION_NAME}_before_allocation PARAMS ((void)); static asection *output_prev_sec_find PARAMS ((lang_output_section_statement_type *)); -static boolean gld_${EMULATION_NAME}_place_orphan +static bfd_boolean gld_${EMULATION_NAME}_place_orphan PARAMS ((lang_input_statement_type *, asection *)); static char *gld_${EMULATION_NAME}_get_script PARAMS ((int *)); static int gld_${EMULATION_NAME}_parse_args PARAMS ((int, char **)); static void gld_${EMULATION_NAME}_finish PARAMS ((void)); -static boolean gld_${EMULATION_NAME}_open_dynamic_archive +static bfd_boolean gld_${EMULATION_NAME}_open_dynamic_archive PARAMS ((const char *, search_dirs_type *, lang_input_statement_type *)); static void gld_${EMULATION_NAME}_list_options PARAMS ((FILE *)); static void set_pe_name PARAMS ((char *, long)); @@ -125,17 +125,17 @@ static void set_pe_value PARAMS ((char * static void set_pe_stack_heap PARAMS ((char *, char *)); #ifdef DLL_SUPPORT -static boolean pe_undef_cdecl_match +static bfd_boolean pe_undef_cdecl_match PARAMS ((struct bfd_link_hash_entry *, PTR)); static void pe_fixup_stdcalls PARAMS ((void)); static int make_import_fixup PARAMS ((arelent *, asection *)); static void pe_find_data_imports PARAMS ((void)); #endif -static boolean pr_sym PARAMS ((struct bfd_hash_entry *, PTR string)); -static boolean gld_${EMULATION_NAME}_unrecognized_file +static bfd_boolean pr_sym PARAMS ((struct bfd_hash_entry *, PTR)); +static bfd_boolean gld_${EMULATION_NAME}_unrecognized_file PARAMS ((lang_input_statement_type *)); -static boolean gld_${EMULATION_NAME}_recognized_file +static bfd_boolean gld_${EMULATION_NAME}_recognized_file PARAMS ((lang_input_statement_type *)); static int gld_${EMULATION_NAME}_find_potential_libraries PARAMS ((char *, lang_input_statement_type *)); @@ -148,7 +148,7 @@ static char * thumb_entry_symbol = NULL; static lang_assignment_statement_type *image_base_statement = 0; #ifdef DLL_SUPPORT -static int pe_enable_stdcall_fixup = -1; /* 0=disable 1=enable */ +static int pe_enable_stdcall_fixup = -1; /* 0=disable 1=enable. */ static char *pe_out_def_filename = NULL; static char *pe_implib_filename = NULL; static int pe_enable_auto_image_base = 0; @@ -171,10 +171,10 @@ gld_${EMULATION_NAME}_before_parse() ldfile_output_architecture = bfd_arch_${ARCH}; output_filename = "${EXECUTABLE_NAME:-a.exe}"; #ifdef DLL_SUPPORT - config.dynamic_link = true; + config.dynamic_link = TRUE; config.has_shared = 1; link_info.pei386_auto_import = -1; - link_info.pei386_runtime_pseudo_reloc = false; + link_info.pei386_runtime_pseudo_reloc = FALSE; #if (PE_DEF_SUBSYSTEM == 9) || (PE_DEF_SUBSYSTEM == 2) #if defined TARGET_IS_mipspe || defined TARGET_IS_armpe @@ -188,7 +188,7 @@ gld_${EMULATION_NAME}_before_parse() /* PE format extra command line options. */ -/* Used for setting flags in the PE header. */ +/* Used for setting flags in the PE header. */ #define OPTION_BASE_FILE (300 + 1) #define OPTION_DLL (OPTION_BASE_FILE + 1) #define OPTION_FILE_ALIGNMENT (OPTION_DLL + 1) @@ -253,13 +253,16 @@ static struct option longopts[] = { {"output-def", required_argument, NULL, OPTION_OUT_DEF}, {"export-all-symbols", no_argument, NULL, OPTION_EXPORT_ALL}, {"exclude-symbols", required_argument, NULL, OPTION_EXCLUDE_SYMBOLS}, - {"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS}, + {"exclude-libs", required_argument, NULL, OPTION_EXCLUDE_LIBS}, {"kill-at", no_argument, NULL, OPTION_KILL_ATS}, {"add-stdcall-alias", no_argument, NULL, OPTION_STDCALL_ALIASES}, {"enable-stdcall-fixup", no_argument, NULL, OPTION_ENABLE_STDCALL_FIXUP}, {"disable-stdcall-fixup", no_argument, NULL, OPTION_DISABLE_STDCALL_FIXUP}, {"out-implib", required_argument, NULL, OPTION_IMPLIB_FILENAME}, {"warn-duplicate-exports", no_argument, NULL, OPTION_WARN_DUPLICATE_EXPORTS}, + /* getopt() allows abbreviations, so we do this to stop it from + treating -c as an abbreviation for these --compat-implib. */ + {"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT}, {"compat-implib", no_argument, NULL, OPTION_IMP_COMPAT}, {"enable-auto-image-base", no_argument, NULL, OPTION_ENABLE_AUTO_IMAGE_BASE}, {"disable-auto-image-base", no_argument, NULL, OPTION_DISABLE_AUTO_IMAGE_BASE}, @@ -276,7 +279,7 @@ static struct option longopts[] = { /* PE/WIN32; added routines to get the subsystem type, heap and/or stack - parameters which may be input from the command line */ + parameters which may be input from the command line. */ typedef struct { @@ -317,6 +320,7 @@ static definfo init[] = { NULL, 0, 0, NULL, 0 } }; + static void gld_${EMULATION_NAME}_list_options (file) FILE * file; @@ -342,7 +346,7 @@ gld_${EMULATION_NAME}_list_options (file fprintf (file, _(" --disable-stdcall-fixup Don't link _sym to _sym@nn\n")); fprintf (file, _(" --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n")); fprintf (file, _(" --exclude-symbols sym,sym,... Exclude symbols from automatic export\n")); - fprintf (file, _(" --exclude-libs lib,lib,... Exclude libraries from automatic export\n")); + fprintf (file, _(" --exclude-libs lib,lib,... Exclude libraries from automatic export\n")); fprintf (file, _(" --export-all-symbols Automatically export all globals to DLL\n")); fprintf (file, _(" --kill-at Remove @nn from exported symbols\n")); fprintf (file, _(" --out-implib Generate import library\n")); @@ -368,13 +372,15 @@ gld_${EMULATION_NAME}_list_options (file #endif } + static void set_pe_name (name, val) char *name; long val; { int i; - /* Find the name and set it. */ + + /* Find the name and set it. */ for (i = 0; init[i].ptr; i++) { if (strcmp (name, init[i].symbol) == 0) @@ -384,7 +390,7 @@ set_pe_name (name, val) return; } } - abort(); + abort (); } @@ -472,7 +478,6 @@ set_pe_subsystem () } - static void set_pe_value (name) char *name; @@ -488,6 +493,7 @@ set_pe_value (name) optarg = end; } + static void set_pe_stack_heap (resname, comname) char *resname; @@ -505,9 +511,8 @@ set_pe_stack_heap (resname, comname) } - static int -gld_${EMULATION_NAME}_parse_args(argc, argv) +gld_${EMULATION_NAME}_parse_args (argc, argv) int argc; char **argv; { @@ -546,7 +551,7 @@ gld_${EMULATION_NAME}_parse_args(argc, a } break; - /* PE options */ + /* PE options. */ case OPTION_HEAP: set_pe_stack_heap ("__size_of_heap_reserve__", "__size_of_heap_commit__"); break; @@ -633,7 +638,7 @@ gld_${EMULATION_NAME}_parse_args(argc, a pe_enable_auto_image_base = 0; break; case OPTION_DLL_SEARCH_PREFIX: - pe_dll_search_prefix = xstrdup( optarg ); + pe_dll_search_prefix = xstrdup (optarg); break; case OPTION_NO_DEFAULT_EXCLUDES: pe_dll_do_default_excludes = 0; @@ -683,7 +688,8 @@ strhash (const char *str) return hash; } -/* Use the output file to create a image base for relocatable DLLs. */ +/* Use the output file to create a image base for relocatable DLLs. */ + static unsigned long compute_dll_image_base (const char *ofile) { @@ -699,7 +705,7 @@ static void gld_${EMULATION_NAME}_set_symbols () { /* Run through and invent symbols for all the - names and insert the defaults. */ + names and insert the defaults. */ int j; lang_statement_list_type *save; @@ -722,7 +728,7 @@ gld_${EMULATION_NAME}_set_symbols () if (link_info.relocateable) return; - /* Glue the assignments into the abs section */ + /* Glue the assignments into the abs section. */ save = stat_ptr; stat_ptr = &(abs_output_section->children); @@ -733,20 +739,20 @@ gld_${EMULATION_NAME}_set_symbols () lang_assignment_statement_type *rv; rv = lang_add_assignment (exp_assop ('=', init[j].symbol, exp_intop (val))); - if (init[j].size == sizeof(short)) - *(short *)init[j].ptr = val; - else if (init[j].size == sizeof(int)) - *(int *)init[j].ptr = val; - else if (init[j].size == sizeof(long)) - *(long *)init[j].ptr = val; + if (init[j].size == sizeof (short)) + *(short *) init[j].ptr = val; + else if (init[j].size == sizeof (int)) + *(int *) init[j].ptr = val; + else if (init[j].size == sizeof (long)) + *(long *) init[j].ptr = val; /* This might be a long long or other special type. */ - else if (init[j].size == sizeof(bfd_vma)) - *(bfd_vma *)init[j].ptr = val; - else abort(); + else if (init[j].size == sizeof (bfd_vma)) + *(bfd_vma *) init[j].ptr = val; + else abort (); if (j == IMAGEBASEOFF) image_base_statement = rv; } - /* Restore the pointer. */ + /* Restore the pointer. */ stat_ptr = save; if (pe.FileAlignment > @@ -789,21 +795,22 @@ char * pe_data_import_dll; #ifdef DLL_SUPPORT static struct bfd_link_hash_entry *pe_undef_found_sym; -static boolean +static bfd_boolean pe_undef_cdecl_match (h, string) struct bfd_link_hash_entry *h; PTR string; { int sl; - sl = strlen (string); /* silence compiler warning */ + + sl = strlen (string); /* Silence compiler warning. */ if (h->type == bfd_link_hash_defined && strncmp (h->root.string, string, sl) == 0 && h->root.string[sl] == '@') { pe_undef_found_sym = h; - return false; + return FALSE; } - return true; + return TRUE; } static void @@ -821,7 +828,7 @@ pe_fixup_stdcalls () char* at = strchr (undef->root.string, '@'); int lead_at = (*undef->root.string == '@'); /* For now, don't try to fixup fastcall symbols. */ - + if (at && !lead_at) { /* The symbol is a stdcall symbol, so let's look for a @@ -836,6 +843,7 @@ pe_fixup_stdcalls () undef->type = bfd_link_hash_defined; undef->u.def.value = sym->u.def.value; undef->u.def.section = sym->u.def.section; + if (pe_enable_stdcall_fixup == -1) { einfo (_("Warning: resolving %s by linking to %s\n"), @@ -843,8 +851,8 @@ pe_fixup_stdcalls () if (! gave_warning_message) { gave_warning_message = 1; - einfo(_("Use --enable-stdcall-fixup to disable these warnings\n")); - einfo(_("Use --disable-stdcall-fixup to disable these fixups\n")); + einfo (_("Use --enable-stdcall-fixup to disable these warnings\n")); + einfo (_("Use --disable-stdcall-fixup to disable these fixups\n")); } } } @@ -852,7 +860,7 @@ pe_fixup_stdcalls () else { /* The symbol is a cdecl symbol, so we look for stdcall - symbols - which means scanning the whole symbol table */ + symbols - which means scanning the whole symbol table. */ pe_undef_found_sym = 0; bfd_link_hash_traverse (link_info.hash, pe_undef_cdecl_match, (PTR) undef->root.string); @@ -862,6 +870,7 @@ pe_fixup_stdcalls () undef->type = bfd_link_hash_defined; undef->u.def.value = sym->u.def.value; undef->u.def.section = sym->u.def.section; + if (pe_enable_stdcall_fixup == -1) { einfo (_("Warning: resolving %s by linking to %s\n"), @@ -869,8 +878,8 @@ pe_fixup_stdcalls () if (! gave_warning_message) { gave_warning_message = 1; - einfo(_("Use --enable-stdcall-fixup to disable these warnings\n")); - einfo(_("Use --disable-stdcall-fixup to disable these fixups\n")); + einfo (_("Use --enable-stdcall-fixup to disable these warnings\n")); + einfo (_("Use --disable-stdcall-fixup to disable these fixups\n")); } } } @@ -890,7 +899,7 @@ make_import_fixup (rel, s) printf ("arelent: %s@%#lx: add=%li\n", sym->name, (long) rel->address, (long) rel->addend); - if (!bfd_get_section_contents(s->owner, s, &addend, rel->address, sizeof(addend))) + if (! bfd_get_section_contents (s->owner, s, &addend, rel->address, sizeof (addend))) einfo (_("%C: Cannot get section contents - auto-import exception\n"), s->owner, s, rel->address); @@ -904,11 +913,14 @@ pe_find_data_imports () { struct bfd_link_hash_entry *undef, *sym; + if (link_info.pei386_auto_import == 0) + return; + for (undef = link_info.hash->undefs; undef; undef=undef->next) { if (undef->type == bfd_link_hash_undefined) { - /* C++ symbols are *long* */ + /* C++ symbols are *long*. */ char buf[4096]; if (pe_dll_extra_pe_debug) @@ -920,52 +932,50 @@ pe_find_data_imports () if (sym && sym->type == bfd_link_hash_defined) { - if (link_info.pei386_auto_import == -1) - info_msg (_("Info: resolving %s by linking to %s (auto-import)\n"), - undef->root.string, buf); - - { - bfd *b = sym->u.def.section->owner; - asymbol **symbols; - int nsyms, symsize, i; - - symsize = bfd_get_symtab_upper_bound (b); - symbols = (asymbol **) xmalloc (symsize); - nsyms = bfd_canonicalize_symtab (b, symbols); - - for (i = 0; i < nsyms; i++) - { - if (memcmp(symbols[i]->name, "__head_", + bfd *b = sym->u.def.section->owner; + asymbol **symbols; + int nsyms, symsize, i; + + if (link_info.pei386_auto_import == -1) + info_msg (_("Info: resolving %s by linking to %s (auto-import)\n"), + undef->root.string, buf); + + symsize = bfd_get_symtab_upper_bound (b); + symbols = (asymbol **) xmalloc (symsize); + nsyms = bfd_canonicalize_symtab (b, symbols); + + for (i = 0; i < nsyms; i++) + { + if (memcmp (symbols[i]->name, "__head_", sizeof ("__head_") - 1)) - continue; + continue; - if (pe_dll_extra_pe_debug) - printf ("->%s\n", symbols[i]->name); + if (pe_dll_extra_pe_debug) + printf ("->%s\n", symbols[i]->name); - pe_data_import_dll = (char*) (symbols[i]->name + - sizeof ("__head_") - 1); - break; - } - } - - pe_walk_relocs_of_symbol (&link_info, undef->root.string, - make_import_fixup); - - /* Let's differentiate it somehow from defined. */ - undef->type = bfd_link_hash_defweak; - /* We replace original name with __imp_ prefixed, this - 1) may trash memory 2) leads to duplicate symbol generation. - Still, IMHO it's better than having name poluted. */ - undef->root.string = sym->root.string; - undef->u.def.value = sym->u.def.value; - undef->u.def.section = sym->u.def.section; + pe_data_import_dll = (char*) (symbols[i]->name + + sizeof ("__head_") - 1); + break; + } + + pe_walk_relocs_of_symbol (&link_info, undef->root.string, + make_import_fixup); + + /* Let's differentiate it somehow from defined. */ + undef->type = bfd_link_hash_defweak; + /* We replace original name with __imp_ prefixed, this + 1) may trash memory 2) leads to duplicate symbol generation. + Still, IMHO it's better than having name poluted. */ + undef->root.string = sym->root.string; + undef->u.def.value = sym->u.def.value; + undef->u.def.section = sym->u.def.section; } } } } #endif /* DLL_SUPPORT */ -static boolean +static bfd_boolean pr_sym (h, string) struct bfd_hash_entry *h; PTR string ATTRIBUTE_UNUSED; @@ -973,7 +983,7 @@ pr_sym (h, string) if (pe_dll_extra_pe_debug) printf ("+%s\n",h->string); - return true; + return TRUE; } @@ -1009,9 +1019,10 @@ gld_${EMULATION_NAME}_after_open () if (pe_enable_stdcall_fixup) /* -1=warn or 1=disable */ pe_fixup_stdcalls (); + pe_process_import_defs (output_bfd, & link_info); + pe_find_data_imports (); - pe_process_import_defs(output_bfd, &link_info); if (link_info.shared) pe_dll_build_sections (output_bfd, &link_info); @@ -1052,7 +1063,7 @@ gld_${EMULATION_NAME}_after_open () head/tail objects, causing an improper import table. We detect those cases and rename the "other" import libraries to match the one the head/tail come from, so that the linker will sort - things nicely and produce a valid import table. */ + things nicely and produce a valid import table. */ LANG_FOR_EACH_INPUT_STATEMENT (is) { @@ -1124,7 +1135,7 @@ gld_${EMULATION_NAME}_after_open () /* Thunk section with reloc to another bfd. */ blhe = bfd_link_hash_lookup (link_info.hash, s->name, - false, false, true); + FALSE, FALSE, TRUE); if (blhe == NULL || blhe->type != bfd_link_hash_defined) @@ -1219,7 +1230,7 @@ gld_${EMULATION_NAME}_after_open () } static void -gld_${EMULATION_NAME}_before_allocation() +gld_${EMULATION_NAME}_before_allocation () { #ifdef TARGET_IS_ppcpe /* Here we rummage through the found bfds to collect toc information. */ @@ -1279,8 +1290,8 @@ saw_option (char * option) } #endif /* DLL_SUPPORT */ -static boolean -gld_${EMULATION_NAME}_unrecognized_file(entry) +static bfd_boolean +gld_${EMULATION_NAME}_unrecognized_file (entry) lang_input_statement_type *entry ATTRIBUTE_UNUSED; { #ifdef DLL_SUPPORT @@ -1300,7 +1311,7 @@ gld_${EMULATION_NAME}_unrecognized_file( for (i = 0; i < pe_def_file->num_exports; i++) { - len = strlen(pe_def_file->exports[i].internal_name); + len = strlen (pe_def_file->exports[i].internal_name); if (buflen < len + 2) buflen = len + 2; } @@ -1311,9 +1322,9 @@ gld_${EMULATION_NAME}_unrecognized_file( { struct bfd_link_hash_entry *h; - sprintf(buf, "_%s", pe_def_file->exports[i].internal_name); + sprintf (buf, "_%s", pe_def_file->exports[i].internal_name); - h = bfd_link_hash_lookup (link_info.hash, buf, true, true, true); + h = bfd_link_hash_lookup (link_info.hash, buf, TRUE, TRUE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL) einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n")); if (h->type == bfd_link_hash_new) @@ -1341,7 +1352,7 @@ gld_${EMULATION_NAME}_unrecognized_file( } #if 0 - /* Not sure if these *should* be set */ + /* Not sure if these *should* be set. */ if (pe_def_file->version_major != -1) { pe.MajorImageVersion = pe_def_file->version_major; @@ -1362,15 +1373,15 @@ gld_${EMULATION_NAME}_unrecognized_file( if (pe_def_file->heap_commit != -1) pe.SizeOfHeapCommit = pe_def_file->heap_commit; } - return true; + return TRUE; } } #endif - return false; + return FALSE; } -static boolean -gld_${EMULATION_NAME}_recognized_file(entry) +static bfd_boolean +gld_${EMULATION_NAME}_recognized_file (entry) lang_input_statement_type *entry ATTRIBUTE_UNUSED; { #ifdef DLL_SUPPORT @@ -1388,13 +1399,19 @@ gld_${EMULATION_NAME}_recognized_file(en #endif if (bfd_get_format (entry->the_bfd) == bfd_object) { - const char *ext = entry->filename + strlen (entry->filename) - 4; + char fbuf[LD_PATHMAX + 1]; + const char *ext; + + if (REALPATH (entry->filename, fbuf) == NULL) + strncpy (fbuf, entry->filename, sizeof (fbuf)); + + ext = fbuf + strlen (fbuf) - 4; if (strcmp (ext, ".dll") == 0 || strcmp (ext, ".DLL") == 0) - return pe_implied_import_dll (entry->filename); + return pe_implied_import_dll (fbuf); } #endif - return false; + return FALSE; } static void @@ -1405,7 +1422,8 @@ gld_${EMULATION_NAME}_finish () if (thumb_entry_symbol != NULL) { - h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol, false, false, true); + h = bfd_link_hash_lookup (link_info.hash, thumb_entry_symbol, + FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined @@ -1519,7 +1537,7 @@ struct orphan_save lang_statement_union_type **stmt; }; -static boolean +static bfd_boolean gld_${EMULATION_NAME}_place_orphan (file, s) lang_input_statement_type *file; asection *s; @@ -1760,11 +1778,11 @@ gld_${EMULATION_NAME}_place_orphan (file if (dollar != NULL) { - boolean found_dollar; + bfd_boolean found_dollar; /* The section name has a '$'. Sort it with the other '$' sections. */ - found_dollar = false; + found_dollar = FALSE; for ( ; *pl != NULL; pl = &(*pl)->header.next) { lang_input_section_type *ls; @@ -1783,7 +1801,7 @@ gld_${EMULATION_NAME}_place_orphan (file } else { - found_dollar = true; + found_dollar = TRUE; if (strcmp (secname, lname) < 0) break; } @@ -1799,10 +1817,10 @@ gld_${EMULATION_NAME}_place_orphan (file free (hold_section_name); - return true; + return TRUE; } -static boolean +static bfd_boolean gld_${EMULATION_NAME}_open_dynamic_archive (arch, search, entry) const char * arch ATTRIBUTE_UNUSED; search_dirs_type * search; @@ -1812,7 +1830,7 @@ gld_${EMULATION_NAME}_open_dynamic_archi char * string; if (! entry->is_archive) - return false; + return FALSE; filename = entry->filename; @@ -1843,27 +1861,27 @@ gld_${EMULATION_NAME}_open_dynamic_archi giving up -- once here, and once when searching for a "static" lib. for a "static" lib. */ /* Try "libfoo.a" (import lib, or static lib, but must - take precedence over dll's) */ + take precedence over dll's). */ sprintf (string, "%s/lib%s.a", search->name, filename); if (! ldfile_try_open_bfd (string, entry)) { #ifdef DLL_SUPPORT if (pe_dll_search_prefix) { - /* Try "foo.dll" (preferred dll name, if specified) */ + /* Try "foo.dll" (preferred dll name, if specified). */ sprintf (string, "%s/%s%s.dll", search->name, pe_dll_search_prefix, filename); if (! ldfile_try_open_bfd (string, entry)) { - /* Try "libfoo.dll" (default preferred dll name) */ + /* Try "libfoo.dll" (default preferred dll name). */ sprintf (string, "%s/lib%s.dll", search->name, filename); if (! ldfile_try_open_bfd (string, entry)) { - /* Finally, try "foo.dll" (alternate dll name) */ + /* Finally, try "foo.dll" (alternate dll name). */ sprintf (string, "%s/%s.dll", search->name, filename); if (! ldfile_try_open_bfd (string, entry)) { free (string); - return false; + return FALSE; } } } @@ -1880,7 +1898,7 @@ gld_${EMULATION_NAME}_open_dynamic_archi if (! ldfile_try_open_bfd (string, entry)) { free (string); - return false; + return FALSE; } } } @@ -1890,7 +1908,7 @@ gld_${EMULATION_NAME}_open_dynamic_archi entry->filename = string; - return true; + return TRUE; } static int @@ -1902,7 +1920,7 @@ gld_${EMULATION_NAME}_find_potential_lib } static char * -gld_${EMULATION_NAME}_get_script(isfile) +gld_${EMULATION_NAME}_get_script (isfile) int *isfile; EOF # Scripts compiled in. @@ -1913,19 +1931,19 @@ cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c -echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c -echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c -echo ' ; else return' >> e${EMULATION_NAME}.c -sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c -echo '; }' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xu >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c +echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c +echo ' ; else if (!config.magic_demand_paged) return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.xn >> e${EMULATION_NAME}.c +echo ' ; else return' >> e${EMULATION_NAME}.c +sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c +echo '; }' >> e${EMULATION_NAME}.c cat >>e${EMULATION_NAME}.c <header.next) { @@ -152,7 +159,7 @@ hook_in_stub (info, lp) before its associated input section. */ *lp = info->add.head; *(info->add.tail) = l; - return true; + return TRUE; } break; @@ -173,7 +180,7 @@ hook_in_stub (info, lp) break; } } - return false; + return FALSE; } diff -uprN binutils-2.13.90.0.16/ld/emultempl/sh64elf.em binutils-2.13.90.0.18/ld/emultempl/sh64elf.em --- binutils-2.13.90.0.16/ld/emultempl/sh64elf.em Thu Mar 7 11:52:39 2002 +++ binutils-2.13.90.0.18/ld/emultempl/sh64elf.em Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ # This shell script emits a C file. -*- C -*- -# Copyright (C) 2000, 2001 Free Software Foundation, Inc. +# Copyright 2000, 2001, 2002 Free Software Foundation, Inc. # # This file is part of GLD, the Gnu Linker. # @@ -81,7 +81,7 @@ sh64_elf_${EMULATION_NAME}_before_alloca } } - command_line.relax = false; + command_line.relax = FALSE; } /* We wouldn't need to do anything when there's already a .cranges @@ -106,7 +106,7 @@ sh64_elf_${EMULATION_NAME}_before_alloca { einfo (_("%P: Sorry, turning off relaxing: SHmedia sections present.\n")); einfo (" %I\n", f); - command_line.relax = false; + command_line.relax = FALSE; goto done_scanning_shmedia_sections; } } @@ -205,13 +205,12 @@ sh64_elf_${EMULATION_NAME}_before_alloca = bfd_make_section (output_bfd, SH64_CRANGES_SECTION_NAME); if (cranges == NULL - || (bfd_set_section_flags (output_bfd, + || !bfd_set_section_flags (output_bfd, cranges, SEC_LINKER_CREATED | SEC_KEEP | SEC_HAS_CONTENTS - | SEC_DEBUGGING) - == false)) + | SEC_DEBUGGING)) einfo (_("%P%E%F: Can't make .cranges section\n")); } @@ -268,7 +267,7 @@ sh64_elf_${EMULATION_NAME}_after_allocat osec = osec->next) { bfd_vma oflags_isa = 0; - boolean need_check_cranges = false; + bfd_boolean need_check_cranges = FALSE; /* Omit excluded or garbage-collected sections. */ if (bfd_get_section_flags (output_bfd, osec) & SEC_EXCLUDE) @@ -335,7 +334,7 @@ sh64_elf_${EMULATION_NAME}_after_allocat sh64_elf_section_data (osec)->contents_flags = SHF_SH5_ISA32_MIXED; - need_check_cranges = true; + need_check_cranges = TRUE; goto break_2; } } diff -uprN binutils-2.13.90.0.16/ld/emultempl/sunos.em binutils-2.13.90.0.18/ld/emultempl/sunos.em --- binutils-2.13.90.0.16/ld/emultempl/sunos.em Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/ld/emultempl/sunos.em Tue Jan 21 10:21:34 2003 @@ -1,6 +1,6 @@ # This shell script emits a C file. -*- C -*- # It does some substitutions. -if [ -z "$MACHINE" ]; then +if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH} else OUTPUT_ARCH=${ARCH}:${MACHINE} @@ -9,7 +9,7 @@ cat >e${EMULATION_NAME}.c < SunOS shared library support by Ian Lance Taylor @@ -68,13 +68,13 @@ static void gld${EMULATION_NAME}_create_ static void gld${EMULATION_NAME}_find_so PARAMS ((lang_input_statement_type *)); static char *gld${EMULATION_NAME}_search_dir - PARAMS ((const char *, const char *, boolean *)); + PARAMS ((const char *, const char *, bfd_boolean *)); static void gld${EMULATION_NAME}_after_open PARAMS ((void)); static void gld${EMULATION_NAME}_check_needed PARAMS ((lang_input_statement_type *)); -static boolean gld${EMULATION_NAME}_search_needed +static bfd_boolean gld${EMULATION_NAME}_search_needed PARAMS ((const char *, const char *)); -static boolean gld${EMULATION_NAME}_try_needed +static bfd_boolean gld${EMULATION_NAME}_try_needed PARAMS ((const char *, const char *)); static void gld${EMULATION_NAME}_before_allocation PARAMS ((void)); static void gld${EMULATION_NAME}_find_assignment @@ -98,8 +98,8 @@ gld${EMULATION_NAME}_before_parse() } else ldfile_output_architecture = bfd_arch_${ARCH}; - config.dynamic_link = true; - config.has_shared = true; + config.dynamic_link = TRUE; + config.has_shared = TRUE; } /* This is called after the command line arguments have been parsed, @@ -131,7 +131,7 @@ cat >>e${EMULATION_NAME}.c <next) { - boolean found_static; + bfd_boolean found_static; found = gld${EMULATION_NAME}_search_dir (search->name, inp->filename, &found_static); @@ -202,7 +202,7 @@ gld${EMULATION_NAME}_find_so (inp) /* Turn off the search_dirs_flag to prevent ldfile_open_file from searching for this file again. */ - inp->search_dirs_flag = false; + inp->search_dirs_flag = FALSE; free (found); @@ -237,7 +237,7 @@ static char * gld${EMULATION_NAME}_search_dir (dirname, filename, found_static) const char *dirname; const char *filename; - boolean *found_static; + bfd_boolean *found_static; { int force_maj, force_min; const char *dot; @@ -252,7 +252,7 @@ gld${EMULATION_NAME}_search_dir (dirname int statval; struct stat st; - *found_static = false; + *found_static = FALSE; force_maj = -1; force_min = -1; @@ -284,7 +284,7 @@ gld${EMULATION_NAME}_search_dir (dirname if (dir == NULL) return NULL; dirnamelen = strlen (dirname); - + while ((entry = readdir (dir)) != NULL) { const char *s; @@ -297,7 +297,7 @@ gld${EMULATION_NAME}_search_dir (dirname if (dot == NULL && strcmp (entry->d_name + 3 + len, ".a") == 0) { - *found_static = true; + *found_static = TRUE; continue; } @@ -373,7 +373,7 @@ gld${EMULATION_NAME}_search_dir (dirname between after_open and check_needed. */ static struct bfd_link_needed_list *global_needed; -static boolean global_found; +static bfd_boolean global_found; /* This is called after all the input files have been opened. */ @@ -412,7 +412,7 @@ gld${EMULATION_NAME}_after_open () /* See if this file was included in the link explicitly. */ global_needed = l; - global_found = false; + global_found = FALSE; lang_for_each_input_file (gld${EMULATION_NAME}_check_needed); if (global_found) continue; @@ -513,7 +513,7 @@ cat >>e${EMULATION_NAME}.c <name, "-l", 2) != 0) { if (strcmp (s->filename, global_needed->name) == 0) - global_found = true; + global_found = TRUE; } else { @@ -651,7 +651,7 @@ gld${EMULATION_NAME}_check_needed (s) || (smin != lmin && smin != -1 && lmin != -1)) return; - global_found = true; + global_found = TRUE; } } @@ -659,7 +659,7 @@ gld${EMULATION_NAME}_check_needed (s) to lang_for_each_statement. Ick. */ static const char *find_assign; -static boolean found_assign; +static bfd_boolean found_assign; /* We need to use static variables to pass information around the call to lang_for_each_input_file. Ick. */ @@ -692,7 +692,7 @@ gld${EMULATION_NAME}_before_allocation ( if (! link_info.shared && ! link_info.relocateable && ! entry_from_cmdline) { struct bfd_link_hash_entry *h; - + for (h = link_info.hash->undefs; h != NULL; h = h->next) { if (h->type == bfd_link_hash_undefined @@ -702,11 +702,11 @@ gld${EMULATION_NAME}_before_allocation ( && strcmp (h->root.string, "__GLOBAL_OFFSET_TABLE_") != 0) { find_assign = h->root.string; - found_assign = false; + found_assign = FALSE; lang_for_each_statement (gld${EMULATION_NAME}_find_assignment); if (! found_assign) { - link_info.shared = true; + link_info.shared = TRUE; break; } } @@ -732,8 +732,8 @@ gld${EMULATION_NAME}_before_allocation ( afterward. */ if (! link_info.relocateable) { - hdyn = bfd_link_hash_lookup (link_info.hash, "__DYNAMIC", true, false, - false); + hdyn = bfd_link_hash_lookup (link_info.hash, "__DYNAMIC", TRUE, FALSE, + FALSE); if (hdyn == NULL) einfo ("%P%F: bfd_link_hash_lookup: %E\n"); if (! bfd_sunos_record_link_assignment (output_bfd, &link_info, @@ -862,7 +862,7 @@ gld${EMULATION_NAME}_find_exp_assignment if (find_assign != NULL) { if (strcmp (find_assign, exp->assign.dst) == 0) - found_assign = true; + found_assign = TRUE; return; } @@ -986,14 +986,14 @@ then sc="-f stringify.sed" cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c -echo ' ; else if (link_info.relocateable == true) return' >> e${EMULATION_NAME}.c +echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xr >> e${EMULATION_NAME}.c echo ' ; else if (!config.text_read_only) return' >> e${EMULATION_NAME}.c sed $sc ldscripts/${EMULATION_NAME}.xbn >> e${EMULATION_NAME}.c @@ -1007,12 +1007,12 @@ else # Scripts read from the filesystem. cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <e${EMULATION_NAME}.c # there, now line numbers match ;-) cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c < assign space to common symbols even if `relocatable_output'. */ - boolean force_common_definition; + bfd_boolean force_common_definition; /* 1 => do not assign addresses to common symbols. */ - boolean inhibit_common_definition; - boolean relax; + bfd_boolean inhibit_common_definition; + bfd_boolean relax; /* Name of runtime interpreter to invoke. */ char *interpreter; @@ -115,22 +115,22 @@ typedef struct { /* Big or little endian as set on command line. */ enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE } endian; - /* If true, build MIPS embedded PIC relocation tables in the output + /* If TRUE, build MIPS embedded PIC relocation tables in the output file. */ - boolean embedded_relocs; + bfd_boolean embedded_relocs; - /* If true, force generation of a file with a .exe file. */ - boolean force_exe_suffix; + /* If TRUE, force generation of a file with a .exe file. */ + bfd_boolean force_exe_suffix; - /* If true, generate a cross reference report. */ - boolean cref; + /* If TRUE, generate a cross reference report. */ + bfd_boolean cref; - /* If true (which is the default), warn about mismatched input + /* If TRUE (which is the default), warn about mismatched input files. */ - boolean warn_mismatch; + bfd_boolean warn_mismatch; /* Remove unreferenced sections? */ - boolean gc_sections; + bfd_boolean gc_sections; /* Name of shared object whose symbol table should be filtered with this shared object. From the --filter option. */ @@ -144,12 +144,16 @@ typedef struct { .exports sections. */ char *version_exports_section; - /* If true (the default) check section addresses, once compute, + /* If TRUE (the default) check section addresses, once compute, fpor overlaps. */ - boolean check_section_addresses; + bfd_boolean check_section_addresses; + + /* If TRUE allow the linking of input files in an unknown architecture + assuming that the user knows what they are doing. This was the old + behaviour of the linker. The new default behaviour is to reject such + input files. */ + bfd_boolean accept_unknown_input_arch; - /* It is used to specify where to find some multilib files. */ - char *multilib_dir; } args_type; extern args_type command_line; @@ -158,60 +162,60 @@ typedef int token_code_type; typedef struct { bfd_size_type specified_data_size; - boolean magic_demand_paged; - boolean make_executable; + bfd_boolean magic_demand_paged; + bfd_boolean make_executable; - /* If true, doing a dynamic link. */ - boolean dynamic_link; + /* If TRUE, doing a dynamic link. */ + bfd_boolean dynamic_link; - /* If true, -shared is supported. */ + /* If TRUE, -shared is supported. */ /* ??? A better way to do this is perhaps to define this in the ld_emulation_xfer_struct since this is really a target dependent parameter. */ - boolean has_shared; + bfd_boolean has_shared; - /* If true, build constructors. */ - boolean build_constructors; + /* If TRUE, build constructors. */ + bfd_boolean build_constructors; - /* If true, warn about any constructors. */ - boolean warn_constructors; + /* If TRUE, warn about any constructors. */ + bfd_boolean warn_constructors; - /* If true, warn about merging common symbols with others. */ - boolean warn_common; + /* If TRUE, warn about merging common symbols with others. */ + bfd_boolean warn_common; - /* If true, only warn once about a particular undefined symbol. */ - boolean warn_once; + /* If TRUE, only warn once about a particular undefined symbol. */ + bfd_boolean warn_once; - /* If true, warn if multiple global-pointers are needed (Alpha + /* If TRUE, warn if multiple global-pointers are needed (Alpha only). */ - boolean warn_multiple_gp; + bfd_boolean warn_multiple_gp; - /* If true, warn if the starting address of an output section + /* If TRUE, warn if the starting address of an output section changes due to the alignment of an input section. */ - boolean warn_section_align; + bfd_boolean warn_section_align; - /* If true, warning messages are fatal */ - boolean fatal_warnings; + /* If TRUE, warning messages are fatal */ + bfd_boolean fatal_warnings; - boolean sort_common; + bfd_boolean sort_common; - boolean text_read_only; + bfd_boolean text_read_only; char *map_filename; FILE *map_file; - boolean stats; + bfd_boolean stats; /* If set, orphan input sections will be mapped to separate output sections. */ - boolean unique_orphan_sections; + bfd_boolean unique_orphan_sections; unsigned int split_by_reloc; bfd_size_type split_by_file; /* If set, only search library directories explicitly selected on the command line. */ - boolean only_cmd_line_lib_dirs; + bfd_boolean only_cmd_line_lib_dirs; } ld_config_type; extern ld_config_type config; @@ -223,7 +227,7 @@ typedef enum { } lang_phase_type; extern FILE * saved_script_handle; -extern boolean force_make_executable; +extern bfd_boolean force_make_executable; /* Non-zero if we are processing a --defsym from the command line. */ extern int parsing_defsym; diff -uprN binutils-2.13.90.0.16/ld/ld.texinfo binutils-2.13.90.0.18/ld/ld.texinfo --- binutils-2.13.90.0.16/ld/ld.texinfo Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/ld.texinfo Tue Jan 21 10:21:34 2003 @@ -1,7 +1,7 @@ \input texinfo @setfilename ld.info @c Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -@c 2001, 2002 Free Software Foundation, Inc. +@c 2001, 2002, 2003 Free Software Foundation, Inc. @syncodeindex ky cp @include configdoc.texi @c (configdoc.texi is generated by the Makefile) @@ -36,6 +36,7 @@ @set MCORE @set MIPS @set MMIX +@set MSP430 @set PDP11 @set PJ @set SH @@ -43,6 +44,7 @@ @set C54X @set V850 @set VAX +@set WIN32 @end ifset @c man end @@ -58,7 +60,7 @@ END-INFO-DIR-ENTRY This file documents the @sc{gnu} linker LD version @value{VERSION}. Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, -2001, 2002 Free Software Foundation, Inc. +2001, 2002, 2003 Free Software Foundation, Inc. @ignore @@ -102,7 +104,8 @@ notice identical to this one except for @vskip 0pt plus 1filll @c man begin COPYRIGHT -Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc. +Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, +2002, 2003 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 @@ -145,6 +148,9 @@ section entitled "GNU Free Documentation @ifset TICOFF * TI COFF:: ld and the TI COFF @end ifset +@ifset WIN32 +* Win32:: ld and WIN32 (cygwin/mingw) +@end ifset @end ifclear @ifclear SingleFormat * BFD:: BFD @@ -604,6 +610,9 @@ on the command line are searched before @option{-L} options apply to all @option{-l} options, regardless of the order in which the options appear. +If @var{searchdir} begins with @code{=}, then the @code{=} will be replaced +by the @dfn{sysroot prefix}, a path specified when the linker is configured. + @ifset UsesEnvVars The default set of paths searched (without being specified with @samp{-L}) depends on which emulation mode @command{ld} is using, and in @@ -894,6 +903,18 @@ Using this option has a significant perf it only when there are unavoidable circular references between two or more archives. +@kindex --accept-unknown-input-arch +@kindex --no-accept-unknown-input-arch +@item --accept-unknown-input-arch +@itemx --no-accept-unknown-input-arch +Tells the linker to accept input files whose architecture cannot be +recognised. The assumption is that the user knows what they are doing +and deliberately wants to link in these unknown input files. This was +the default behaviour of the linker, before release 2.14. The default +behaviour from release 2.14 onwards is to reject such input files, and +so the @samp{--accept-unknown-input-arch} option has been added to +restore the old behaviour. + @kindex -assert @var{keyword} @item -assert @var{keyword} This option is ignored for SunOS compatibility. @@ -1789,8 +1810,8 @@ uwin, pw, etc. For instance, cygwin DLL @item --enable-auto-import Do sophisticated linking of @code{_symbol} to @code{__imp__symbol} for DATA imports from DLLs, and create the necessary thunking symbols when -building the DLLs with those DATA exports. This generally will 'just -work' -- but sometimes you may see this message: +building the import libraries with those DATA exports. This generally +will 'just work' -- but sometimes you may see this message: "variable '' can't be auto-imported. Please read the documentation for ld's @code{--enable-auto-import} for details." @@ -3743,7 +3764,7 @@ and @samp{bar2} are bound to the version When the linker finds a symbol defined in a library which is not specifically bound to a version node, it will effectively bind it to an unspecified base version of the library. You can bind all otherwise -unspecified symbols to a given version node by using @samp{global: *} +unspecified symbols to a given version node by using @samp{global: *;} somewhere in the version script. The names of the version nodes have no specific meaning other than what @@ -3757,7 +3778,7 @@ symbols, only selects which symbols will won't. @smallexample -@{ global: foo; bar; local: *; @} +@{ global: foo; bar; local: *; @}; @end smallexample When you link an application against a shared library that has versioned @@ -3959,7 +3980,7 @@ specifies what data to write in the gaps @cindex dot inside sections Note: @code{.} actually refers to the byte offset from the start of the current containing object. Normally this is the @code{SECTIONS} -statement, whoes start address is 0, hence @code{.} can be used as an +statement, whose start address is 0, hence @code{.} can be used as an absolute address. If @code{.} is used inside a section description however, it refers to the byte offset from the start of that section, not an absolute address. Thus in a script like this: @@ -4377,9 +4398,15 @@ functionality are not listed. @ifset MMIX * MMIX:: @code{ld} and MMIX @end ifset +@ifset MSP430 +* MSP430:: @code{ld} and MSP430 +@end ifset @ifset TICOFF * TI COFF:: @command{ld} and TI COFF @end ifset +@ifset WIN32 +* WIN32:: @command{ld} and WIN32 (cygwin/mingw) +@end ifset @end menu @end ifset @@ -4421,6 +4448,356 @@ top page of memory). @end ifclear @end ifset +@ifset WIN32 +@ifclear GENERIC +@raisesections +@end ifclear + +@node WIN32 +@section @command{ld} and WIN32 (cygwin/mingw) + +This section describes some of the win32 specific @command{ld} issues. +See @ref{Options,,Command Line Options} for detailed decription of the +command line options mentioned here. + +@table @emph +@cindex import libraries +@item import libraries +The standard Windows linker creates and uses so-called import +libraries, which contains information for linking to dll's. They are +regular static archives and are handled as any other static +archive. The cygwin and mingw ports of @command{ld} have specific +support for creating such libraries provided with the +@samp{--out-implib} command line option. + +@item exporting DLL symbols +@cindex exporting DLL symbols +The cygwin/mingw @command{ld} has several ways to export symbols for dll's. + +@table @emph +@item using auto-export functionality +@cindex using auto-export functionality +By default @command{ld} exports symbols with the auto-export functionality, +which is controlled by the following command line options: + +@itemize +@item --export-all-symbols [This is the default] +@item --exclude-symbols +@item --exclude-libs +@end itemize + +If, however, @samp{--export-all-symbols} is not given explicitly on the +command line, then the default auto-export behavior will be @emph{disabled} +if either of the following are true: + +@itemize +@item A DEF file is used. +@item Any symbol in any object file was marked with the __declspec(dllexport) attribute. +@end itemize + +@item using a DEF file +@cindex using a DEF file +Another way of exporting symbols is using a DEF file. A DEF file is +an ASCII file containing definitions of symbols which should be +exported when a dll is created. Usually it is named @samp{.def} and is added as any other object file to the linker's +command line. The file's name must end in @samp{.def} or @samp{.DEF}. + +@example +gcc -o .def +@end example + +Using a DEF file turns off the normal auto-export behavior, unless the +@samp{--export-all-symbols} option is also used. + +Here is an example of a DEF file for a shared library called @samp{xyz.dll}: + +@example +LIBRARY "xyz.dll" BASE=0x10000000 + +EXPORTS +foo +bar +_bar = bar +@end example + +This example defines a base address and three symbols. The third +symbol is an alias for the second. For the complete format +specification see ld/deffilep.y in the binutils sources. + +@cindex creating a DEF file +While linking a shared dll, @command{ld} is able to create a DEF file +with the @samp{--output-def } command line option. + +@item Using decorations +@cindex Using decorations +Another way of marking symbols for export is to modify the source code +itself, so that when building the DLL each symbol to be exported is +declared as: + +@example +__declspec(dllexport) int a_variable +__declspec(dllexport) void a_function(int with_args) +@end example + +All such symbols will be exported from the DLL. If, however, +any of the object files in the DLL contain symbols decorated in +this way, then the normal auto-export behavior is disabled, unless +the @samp{--export-all-symbols} option is also used. + +Note that object files that wish to access these symbols must @emph{not} +decorate them with dllexport. Instead, they should use dllimport, +instead: + +@example +__declspec(dllimport) int a_variable +__declspec(dllimport) void a_function(int with_args) +@end example + +This complicates the structure of library header files, because +when included by the library itself the header must declare the +variables and functions as dllexport, but when included by client +code the header must declare them as dllimport. There are a number +of idioms that are typically used to do this; often client code can +omit the __declspec() declaration completely. See +@samp{--enable-auto-import} and @samp{automatic data imports} for more +imformation. +@end table + +@cindex automatic data imports +@item automatic data imports +The standard Windows dll format supports data imports from dlls only +by adding special decorations (dllimport/dllexport), which let the +compiler produce specific assembler instructions to deal with this +issue. This increases the effort necessary to port existing Un*x +code to these platforms, especially for large +c++ libraries and applications. The auto-import feature, which was +initially provided by Paul Sokolovsky, allows one to omit the +decorations to archieve a behavior that conforms to that on POSIX/Un*x +platforms. This feature is enabled with the @samp{--enable-auto-import} +command-line option, although it is enabled by default on cygwin/mingw. +The @samp{--enable-auto-import} option itself now serves mainly to +suppress any warnings that are ordinarily emitted when linked objects +trigger the feature's use. + +auto-import of variables does not always work flawlessly without +additional assistance. Sometimes, you will see this message + +"variable '' can't be auto-imported. Please read the +documentation for ld's @code{--enable-auto-import} for details." + +The @samp{--enable-auto-import} documentation explains why this error +occurs, and several methods that can be used to overcome this difficulty. +One of these methods is the @emph{runtime pseudo-relocs} feature, described +below. + +@cindex runtime pseudo-relocation +For complex variables imported from DLLs (such as structs or classes), +object files typically contain a base address for the variable and an +offset (@emph{addend}) within the variable--to specify a particular +field or public member, for instance. Unfortunately, the runtime loader used +in win32 environments is incapable of fixing these references at runtime +without the additional information supplied by dllimport/dllexport decorations. +The standard auto-import feature described above is unable to resolve these +references. + +The @samp{--enable-runtime-pseudo-relocs} switch allows these references to +be resolved without error, while leaving the task of adjusting the references +themselves (with their non-zero addends) to specialized code provided by the +runtime environment. Recent versions of the cygwin and mingw environments and +compilers provide this runtime support; older versions do not. However, the +support is only necessary on the developer's platform; the compiled result will +run without error on an older system. + +@samp{--enable-runtime-pseudo-relocs} is not the default; it must be explicitly +enabled as needed. + +@cindex direct linking to a dll +@item direct linking to a dll +The cygwin/mingw ports of @command{ld} support the direct linking, +including data symbols, to a dll without the usage of any import +libraries. This is much faster and uses much less memory than does the +traditional import library method, expecially when linking large +libraries or applications. When @command{ld} creates an import lib, each +function or variable exported from the dll is stored in its own bfd, even +though a single bfd could contain many exports. The overhead involved in +storing, loading, and processing so many bfd's is quite large, and explains the +tremendous time, memory, and storage needed to link against particularly +large or complex libraries when using import libs. + +Linking directly to a dll uses no extra command-line switches other than +@samp{-L} and @samp{-l}, because @command{ld} already searches for a number +of names to match each library. All that is needed from the developer's +perspective is an understanding of this search, in order to force ld to +select the dll instead of an import library. + + +For instance, when ld is called with the argument @samp{-lxxx} it will attempt +to find, in the first directory of its search path, + +@example +libxxx.dll.a +xxx.dll.a +libxxx.a +cygxxx.dll (*) +libxxx.dll +xxx.dll +@end example + +before moving on to the next directory in the search path. + +(*) Actually, this is not @samp{cygxxx.dll} but in fact is @samp{xxx.dll}, +where @samp{} is set by the @command{ld} option +@samp{--dll-search-prefix=}. In the case of cygwin, the standard gcc spec +file includes @samp{--dll-search-prefix=cyg}, so in effect we actually search for +@samp{cygxxx.dll}. + +Other win32-based unix environments, such as mingw or pw32, may use other +@samp{}es, although at present only cygwin makes use of this feature. It +was originally intended to help avoid name conflicts among dll's built for the +various win32/un*x environments, so that (for example) two versions of a zlib dll +could coexist on the same machine. + +The generic cygwin/mingw path layout uses a @samp{bin} directory for +applications and dll's and a @samp{lib} directory for the import +libraries (using cygwin nomenclature): + +@example +bin/ + cygxxx.dll +lib/ + libxxx.dll.a (in case of dll's) + libxxx.a (in case of static archive) +@end example + +Linking directly to a dll without using the import library can be +done two ways: + +1. Use the dll directly by adding the @samp{bin} path to the link line +@example +gcc -Wl,-verbose -o a.exe -L../bin/ -lxxx +@end example + +However, as the dll's often have version numbers appended to their names +(@samp{cygncurses-5.dll}) this will often fail, unless one specifies +@samp{-L../bin -lncurses-5} to include the version. Import libs are generally +not versioned, and do not have this difficulty. + +2. Create a symbolic link from the dll to a file in the @samp{lib} +directory according to the above mentioned search pattern. This +should be used to avoid unwanted changes in the tools needed for +making the app/dll. + +@example +ln -s bin/cygxxx.dll lib/[cyg|lib|]xxx.dll[.a] +@end example + +Then you can link without any make environment changes. + +@example +gcc -Wl,-verbose -o a.exe -L../lib/ -lxxx +@end example + +This technique also avoids the version number problems, because the following is +perfectly legal + +@example +bin/ + cygxxx-5.dll +lib/ + libxxx.dll.a -> ../bin/cygxxx-5.dll +@end example + +Linking directly to a dll without using an import lib will work +even when auto-import features are exercised, and even when +@samp{--enable-runtime-pseudo-relocs} is used. + +Given the improvements in speed and memory usage, one might justifiably +wonder why import libraries are used at all. There are two reasons: + +1. Until recently, the link-directly-to-dll functionality did @emph{not} +work with auto-imported data. + +2. Sometimes it is necessary to include pure static objects within the +import library (which otherwise contains only bfd's for indirection +symbols that point to the exports of a dll). Again, the import lib +for the cygwin kernel makes use of this ability, and it is not +possible to do this without an import lib. + +So, import libs are not going away. But the ability to replace +true import libs with a simple symbolic link to (or a copy of) +a dll, in most cases, is a useful addition to the suite of tools +binutils makes available to the win32 developer. Given the +massive improvements in memory requirements during linking, storage +requirements, and linking speed, we expect that many developers +will soon begin to use this feature whenever possible. + +@item symbol aliasing +@table @emph +@item adding additional names +Sometimes, it is useful to export symbols with additional names. +A symbol @samp{foo} will be exported as @samp{foo}, but it can also be +exported as @samp{_foo} by using special directives in the DEF file +when creating the dll. This will affect also the optional created +import library. Consider the following DEF file: + +@example +LIBRARY "xyz.dll" BASE=0x61000000 + +EXPORTS +foo +_foo = foo +@end example + +The line @samp{_foo = foo} maps the symbol @samp{foo} to @samp{_foo}. + +Another method for creating a symbol alias is to create it in the +source code using the "weak" attribute: + +@example +void foo () @{ /* Do something. */; @} +void _foo () __attribute__ ((weak, alias ("foo"))); +@end example + +See the gcc manual for more information about attributes and weak +symbols. + +@item renaming symbols +Sometimes it is useful to rename exports. For instance, the cygwin +kernel does this regularly. A symbol @samp{_foo} can be exported as +@samp{foo} but not as @samp{_foo} by using special directives in the +DEF file. (This will also affect the import library, if it is +created). In the following example: + +@example +LIBRARY "xyz.dll" BASE=0x61000000 + +EXPORTS +_foo = foo +@end example + +The line @samp{_foo = foo} maps the exported symbol @samp{foo} to +@samp{_foo}. +@end table + +Note: using a DEF file disables the default auto-export behavior, +unless the @samp{--export-all-symbols} command line option is used. +If, however, you are trying to rename symbols, then you should list +@emph{all} desired exports in the DEF file, including the symbols +that are not being renamed, and do @emph{not} use the +@samp{--export-all-symbols} option. If you list only the +renamed symbols in the DEF file, and use @samp{--export-all-symbols} +to handle the other symbols, then the both the new names @emph{and} +the original names for the the renamed symbols will be exported. +In effect, you'd be aliasing those symbols, not renaming them, +which is probably not what you wanted. +@end table + +@ifclear GENERIC +@lowersections +@end ifclear +@end ifset + @ifclear GENERIC @ifset Hitachi @c This stuff is pointless to say unless you're especially concerned @@ -4578,6 +4955,39 @@ Initial and trailing multiples of zero-v are left out from an mmo file. @end ifset +@ifset MSP430 +@node MSP430 +@section @code{ld} and MSP430 +For the MSP430 it is possible to select the MPU architecture. The flag @samp{-m [mpu type]} +will select an appropriate linker script for selected MPU type. (To get a list of known MPUs +just pass @samp{-m help} option to the linker). + +@cindex MSP430 extra sections +The linker will recognize some extra sections which are MSP430 specific: + +@table @code +@item @samp{.vectors} +Defines a portion of ROM where interrupt vectors located. + +@item @samp{.bootloader} +Defines the bootloader portion of the ROM (if applicable). Any code +in this section will be uploaded to the MPU. + +@item @samp{.infomem} +Defines an information memory section (if applicable). Any code in +this section will be uploaded to the MPU. + +@item @samp{.infomemnobits} +This is the same as the @samp{.infomem} section except that any code +in this section will not be uploaded to the MPU. + +@item @samp{.noinit} +Denotes a portion of RAM located above @samp{.bss} section. + +The last two sections are used by gcc. +@end table +@end ifset + @ifset TICOFF @node TI COFF @section @command{ld}'s support for various TI COFF versions diff -uprN binutils-2.13.90.0.16/ld/ldcref.c binutils-2.13.90.0.18/ld/ldcref.c --- binutils-2.13.90.0.16/ld/ldcref.c Thu Jul 26 18:02:55 2001 +++ binutils-2.13.90.0.18/ld/ldcref.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* ldcref.c -- output a cross reference table - Copyright 1996, 1997, 1998, 2000 Free Software Foundation, Inc. + Copyright 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. Written by Ian Lance Taylor This file is part of GLD, the Gnu Linker. @@ -69,10 +69,10 @@ struct cref_hash_table { static struct bfd_hash_entry *cref_hash_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static boolean cref_fill_array PARAMS ((struct cref_hash_entry *, PTR)); +static bfd_boolean cref_fill_array PARAMS ((struct cref_hash_entry *, PTR)); static int cref_sort_array PARAMS ((const PTR, const PTR)); static void output_one_cref PARAMS ((FILE *, struct cref_hash_entry *)); -static boolean check_nocrossref PARAMS ((struct cref_hash_entry *, PTR)); +static bfd_boolean check_nocrossref PARAMS ((struct cref_hash_entry *, PTR)); static void check_section_sym_xref PARAMS ((lang_input_statement_type *)); static void check_refs PARAMS ((const char *, asection *, bfd *, struct lang_nocrossrefs *)); @@ -89,7 +89,7 @@ static void check_reloc_refs PARAMS ((bf #define cref_hash_traverse(table, func, info) \ (bfd_hash_traverse \ (&(table)->root, \ - (boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) (func), \ + (bfd_boolean (*) PARAMS ((struct bfd_hash_entry *, PTR))) (func), \ (info))) /* The cref hash table. */ @@ -98,7 +98,7 @@ static struct cref_hash_table cref_table /* Whether the cref hash table has been initialized. */ -static boolean cref_initialized; +static bfd_boolean cref_initialized; /* The number of symbols seen so far. */ @@ -156,10 +156,10 @@ add_cref (name, abfd, section, value) { if (! bfd_hash_table_init (&cref_table.root, cref_hash_newfunc)) einfo (_("%X%P: bfd_hash_table_init of cref table failed: %E\n")); - cref_initialized = true; + cref_initialized = TRUE; } - h = cref_hash_lookup (&cref_table, name, true, false); + h = cref_hash_lookup (&cref_table, name, TRUE, FALSE); if (h == NULL) einfo (_("%X%P: cref_hash_lookup failed: %E\n")); @@ -173,24 +173,24 @@ add_cref (name, abfd, section, value) r->next = h->refs; h->refs = r; r->abfd = abfd; - r->def = false; - r->common = false; - r->undef = false; + r->def = FALSE; + r->common = FALSE; + r->undef = FALSE; } if (bfd_is_und_section (section)) - r->undef = true; + r->undef = TRUE; else if (bfd_is_com_section (section)) - r->common = true; + r->common = TRUE; else - r->def = true; + r->def = TRUE; } /* Copy the addresses of the hash table entries into an array. This is called via cref_hash_traverse. We also fill in the demangled name. */ -static boolean +static bfd_boolean cref_fill_array (h, data) struct cref_hash_entry *h; PTR data; @@ -204,7 +204,7 @@ cref_fill_array (h, data) ++*pph; - return true; + return TRUE; } /* Sort an array of cref hash table entries by name. */ @@ -274,8 +274,8 @@ output_one_cref (fp, h) struct bfd_link_hash_entry *hl; struct cref_ref *r; - hl = bfd_link_hash_lookup (link_info.hash, h->root.string, false, - false, true); + hl = bfd_link_hash_lookup (link_info.hash, h->root.string, FALSE, + FALSE, TRUE); if (hl == NULL) einfo ("%P: symbol `%T' missing from main hash table\n", h->root.string); @@ -381,7 +381,7 @@ check_section_sym_xref (statement) /* Check one symbol to see if it is a prohibited cross reference. */ -static boolean +static bfd_boolean check_nocrossref (h, ignore) struct cref_hash_entry *h; PTR ignore ATTRIBUTE_UNUSED; @@ -393,22 +393,22 @@ check_nocrossref (h, ignore) struct lang_nocrossref *ncr; struct cref_ref *ref; - hl = bfd_link_hash_lookup (link_info.hash, h->root.string, false, - false, true); + hl = bfd_link_hash_lookup (link_info.hash, h->root.string, FALSE, + FALSE, TRUE); if (hl == NULL) { einfo (_("%P: symbol `%T' missing from main hash table\n"), h->root.string); - return true; + return TRUE; } if (hl->type != bfd_link_hash_defined && hl->type != bfd_link_hash_defweak) - return true; + return TRUE; defsec = hl->u.def.section->output_section; if (defsec == NULL) - return true; + return TRUE; defsecname = bfd_get_section_name (defsec->owner, defsec); for (ncrs = nocrossref_list; ncrs != NULL; ncrs = ncrs->next) @@ -417,7 +417,7 @@ check_nocrossref (h, ignore) for (ref = h->refs; ref != NULL; ref = ref->next) check_refs (hl->root.string, hl->u.def.section, ref->abfd, ncrs); - return true; + return TRUE; } /* The struct is used to pass information from check_refs to diff -uprN binutils-2.13.90.0.16/ld/ldctor.c binutils-2.13.90.0.18/ld/ldctor.c --- binutils-2.13.90.0.16/ld/ldctor.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/ldctor.c Mon Dec 16 12:22:53 2002 @@ -1,6 +1,6 @@ /* ldctor.c -- constructor support routines - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 - Free Software Foundation, Inc. + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002 Free Software Foundation, Inc. By Steve Chamberlain This file is part of GLD, the Gnu Linker. @@ -43,7 +43,7 @@ lang_statement_list_type constructor_lis /* Whether the constructors should be sorted. Note that this is global for the entire link; we assume that there is only a single CONSTRUCTORS command in the linker script. */ -boolean constructors_sorted; +bfd_boolean constructors_sorted; /* The sets we have seen. */ struct set_info *sets; @@ -204,16 +204,16 @@ ctor_cmp (p1, p2) void ldctor_build_sets () { - static boolean called; + static bfd_boolean called; lang_statement_list_type *old; - boolean header_printed; + bfd_boolean header_printed; struct set_info *p; /* The emulation code may call us directly, but we only want to do this once. */ if (called) return; - called = true; + called = TRUE; if (constructors_sorted) { @@ -256,7 +256,7 @@ ldctor_build_sets () lang_list_init (stat_ptr); - header_printed = false; + header_printed = FALSE; for (p = sets; p != (struct set_info *) NULL; p = p->next) { struct set_element *e; @@ -342,7 +342,7 @@ ldctor_build_sets () if (! header_printed) { minfo (_("\nSet Symbol\n\n")); - header_printed = true; + header_printed = TRUE; } minfo ("%s", p->h->root.string); diff -uprN binutils-2.13.90.0.16/ld/ldctor.h binutils-2.13.90.0.18/ld/ldctor.h --- binutils-2.13.90.0.16/ld/ldctor.h Thu Mar 15 14:56:51 2001 +++ binutils-2.13.90.0.18/ld/ldctor.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* ldctor.h - linker constructor support - Copyright 1991, 1992, 1993, 1994, 1995, 1998, 2000 + Copyright 1991, 1992, 1993, 1994, 1995, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -28,7 +28,7 @@ extern lang_statement_list_type construc /* Whether the constructors should be sorted. Note that this is global for the entire link; we assume that there is only a single CONSTRUCTORS command in the linker script. */ -extern boolean constructors_sorted; +extern bfd_boolean constructors_sorted; /* We keep a list of these structures for each set we build. */ @@ -51,9 +51,10 @@ struct set_element { extern struct set_info *sets; -extern void ldctor_add_set_entry PARAMS ((struct bfd_link_hash_entry *, - bfd_reloc_code_real_type, - const char *, asection *, bfd_vma)); -extern void ldctor_build_sets PARAMS ((void)); +extern void ldctor_add_set_entry + PARAMS ((struct bfd_link_hash_entry *, bfd_reloc_code_real_type, + const char *, asection *, bfd_vma)); +extern void ldctor_build_sets + PARAMS ((void)); #endif diff -uprN binutils-2.13.90.0.16/ld/ldemul.c binutils-2.13.90.0.18/ld/ldemul.c --- binutils-2.13.90.0.16/ld/ldemul.c Sun May 26 09:57:12 2002 +++ binutils-2.13.90.0.18/ld/ldemul.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* ldemul.c -- clearing house for ld emulation states - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -112,7 +112,7 @@ ldemul_get_script (isfile) return ld_emulation->get_script (isfile); } -boolean +bfd_boolean ldemul_open_dynamic_archive (arch, search, entry) const char *arch; search_dirs_type *search; @@ -120,17 +120,17 @@ ldemul_open_dynamic_archive (arch, searc { if (ld_emulation->open_dynamic_archive) return (*ld_emulation->open_dynamic_archive) (arch, search, entry); - return false; + return FALSE; } -boolean +bfd_boolean ldemul_place_orphan (file, s) lang_input_statement_type *file; asection *s; { if (ld_emulation->place_orphan) return (*ld_emulation->place_orphan) (file, s); - return false; + return FALSE; } int @@ -148,24 +148,24 @@ ldemul_parse_args (argc, argv) /* Let the emulation code handle an unrecognized file. */ -boolean +bfd_boolean ldemul_unrecognized_file (entry) lang_input_statement_type *entry; { if (ld_emulation->unrecognized_file) return (*ld_emulation->unrecognized_file) (entry); - return false; + return FALSE; } /* Let the emulation code handle a recognized file. */ -boolean +bfd_boolean ldemul_recognized_file (entry) lang_input_statement_type *entry; { if (ld_emulation->recognized_file) return (*ld_emulation->recognized_file) (entry); - return false; + return FALSE; } char * @@ -261,12 +261,12 @@ ldemul_list_emulations (f) FILE *f; { ld_emulation_xfer_type **eptr = ld_emulations; - boolean first = true; + bfd_boolean first = TRUE; for (; *eptr; eptr++) { if (first) - first = false; + first = FALSE; else fprintf (f, " "); fprintf (f, "%s", (*eptr)->emulation_name); diff -uprN binutils-2.13.90.0.16/ld/ldemul.h binutils-2.13.90.0.18/ld/ldemul.h --- binutils-2.13.90.0.16/ld/ldemul.h Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/ld/ldemul.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* ld-emul.h - Linker emulation header file - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -17,40 +17,65 @@ #ifndef LDEMUL_H #define LDEMUL_H -extern void ldemul_hll PARAMS ((char *)); -extern void ldemul_syslib PARAMS ((char *)); -extern void ldemul_after_parse PARAMS ((void)); -extern void ldemul_before_parse PARAMS ((void)); -extern void ldemul_after_open PARAMS ((void)); -extern void ldemul_after_allocation PARAMS ((void)); -extern void ldemul_before_allocation PARAMS ((void)); -extern void ldemul_set_output_arch PARAMS ((void)); -extern char *ldemul_choose_target PARAMS ((int, char**)); -extern void ldemul_choose_mode PARAMS ((char *)); -extern void ldemul_list_emulations PARAMS ((FILE *)); -extern void ldemul_list_emulation_options PARAMS ((FILE *)); -extern char *ldemul_get_script PARAMS ((int *isfile)); -extern void ldemul_finish PARAMS ((void)); -extern void ldemul_set_symbols PARAMS ((void)); -extern void ldemul_create_output_section_statements PARAMS ((void)); -extern boolean ldemul_place_orphan +extern void ldemul_hll + PARAMS ((char *)); +extern void ldemul_syslib + PARAMS ((char *)); +extern void ldemul_after_parse + PARAMS ((void)); +extern void ldemul_before_parse + PARAMS ((void)); +extern void ldemul_after_open + PARAMS ((void)); +extern void ldemul_after_allocation + PARAMS ((void)); +extern void ldemul_before_allocation + PARAMS ((void)); +extern void ldemul_set_output_arch + PARAMS ((void)); +extern char *ldemul_choose_target + PARAMS ((int, char**)); +extern void ldemul_choose_mode + PARAMS ((char *)); +extern void ldemul_list_emulations + PARAMS ((FILE *)); +extern void ldemul_list_emulation_options + PARAMS ((FILE *)); +extern char *ldemul_get_script + PARAMS ((int *isfile)); +extern void ldemul_finish + PARAMS ((void)); +extern void ldemul_set_symbols + PARAMS ((void)); +extern void ldemul_create_output_section_statements + PARAMS ((void)); +extern bfd_boolean ldemul_place_orphan PARAMS ((struct lang_input_statement_struct *, asection *)); -extern int ldemul_parse_args PARAMS ((int, char **)); -extern boolean ldemul_unrecognized_file +extern int ldemul_parse_args + PARAMS ((int, char **)); +extern bfd_boolean ldemul_unrecognized_file PARAMS ((struct lang_input_statement_struct *)); -extern boolean ldemul_recognized_file +extern bfd_boolean ldemul_recognized_file PARAMS ((struct lang_input_statement_struct *)); -extern boolean ldemul_open_dynamic_archive +extern bfd_boolean ldemul_open_dynamic_archive PARAMS ((const char *, struct search_dirs *, struct lang_input_statement_struct *)); -extern char *ldemul_default_target PARAMS ((int, char**)); -extern void after_parse_default PARAMS ((void)); -extern void after_open_default PARAMS ((void)); -extern void after_allocation_default PARAMS ((void)); -extern void before_allocation_default PARAMS ((void)); -extern void set_output_arch_default PARAMS ((void)); -extern void syslib_default PARAMS ((char*)); -extern void hll_default PARAMS ((char*)); +extern char *ldemul_default_target + PARAMS ((int, char**)); +extern void after_parse_default + PARAMS ((void)); +extern void after_open_default + PARAMS ((void)); +extern void after_allocation_default + PARAMS ((void)); +extern void before_allocation_default + PARAMS ((void)); +extern void set_output_arch_default + PARAMS ((void)); +extern void syslib_default + PARAMS ((char*)); +extern void hll_default + PARAMS ((char*)); extern int ldemul_find_potential_libraries PARAMS ((char *, struct lang_input_statement_struct *)); extern struct bfd_elf_version_expr *ldemul_new_vers_pattern @@ -103,14 +128,14 @@ typedef struct ld_emulation_xfer_struct /* Try to open a dynamic library. ARCH is an architecture name, and is normally the empty string. ENTRY is the lang_input_statement that should be opened. */ - boolean (*open_dynamic_archive) + bfd_boolean (*open_dynamic_archive) PARAMS ((const char *arch, struct search_dirs *, struct lang_input_statement_struct *entry)); - /* Place an orphan section. Return true if it was placed, false if + /* Place an orphan section. Return TRUE if it was placed, FALSE if the default action should be taken. This field may be NULL, in which case the default action will always be taken. */ - boolean (*place_orphan) + bfd_boolean (*place_orphan) PARAMS ((struct lang_input_statement_struct *, asection *)); /* Run after assigning parsing with the args, but before @@ -122,16 +147,16 @@ typedef struct ld_emulation_xfer_struct int (*parse_args) PARAMS ((int, char **)); /* Run to handle files which are not recognized as object files or - archives. Return true if the file was handled. */ - boolean (*unrecognized_file) + archives. Return TRUE if the file was handled. */ + bfd_boolean (*unrecognized_file) PARAMS ((struct lang_input_statement_struct *)); /* Run to list the command line options which parse_args handles. */ void (* list_options) PARAMS ((FILE *)); /* Run to specially handle files which *are* recognized as object - files or archives. Return true if the file was handled. */ - boolean (*recognized_file) + files or archives. Return TRUE if the file was handled. */ + bfd_boolean (*recognized_file) PARAMS ((struct lang_input_statement_struct *)); /* Called when looking for libraries in a directory specified diff -uprN binutils-2.13.90.0.16/ld/ldexp.c binutils-2.13.90.0.18/ld/ldexp.c --- binutils-2.13.90.0.16/ld/ldexp.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/ldexp.c Mon Dec 16 12:22:53 2002 @@ -41,11 +41,15 @@ Software Foundation, 59 Temple Place - S #include "libiberty.h" #include "safe-ctype.h" -static void exp_print_token PARAMS ((token_code_type code, int infix_p)); -static void make_abs PARAMS ((etree_value_type *ptr)); -static etree_value_type new_abs PARAMS ((bfd_vma value)); -static void check PARAMS ((lang_output_section_statement_type *os, - const char *name, const char *op)); +static void exp_print_token + PARAMS ((token_code_type code, int infix_p)); +static void make_abs + PARAMS ((etree_value_type *ptr)); +static etree_value_type new_abs + PARAMS ((bfd_vma value)); +static void check + PARAMS ((lang_output_section_statement_type *os, const char *name, + const char *op)); static etree_value_type new_rel PARAMS ((bfd_vma, char *, lang_output_section_statement_type *section)); static etree_value_type new_rel_from_section @@ -78,7 +82,7 @@ static etree_value_type exp_fold_tree_no struct exp_data_seg exp_data_seg; /* Print the string representation of the given token. Surround it - with spaces if INFIX_P is true. */ + with spaces if INFIX_P is TRUE. */ static void exp_print_token (code, infix_p) @@ -168,7 +172,7 @@ new_abs (value) bfd_vma value; { etree_value_type new; - new.valid_p = true; + new.valid_p = TRUE; new.section = abs_output_section; new.value = value; return new; @@ -233,7 +237,7 @@ new_rel (value, str, section) lang_output_section_statement_type *section; { etree_value_type new; - new.valid_p = true; + new.valid_p = TRUE; new.value = value; new.str = str; new.section = section; @@ -246,7 +250,7 @@ new_rel_from_section (value, section) lang_output_section_statement_type *section; { etree_value_type new; - new.valid_p = true; + new.valid_p = TRUE; new.value = value; new.str = NULL; new.section = section; @@ -278,7 +282,7 @@ fold_unary (tree, current_section, alloc result = new_rel_from_section (align_n (dot, result.value), current_section); else - result.valid_p = false; + result.valid_p = FALSE; break; case ABSOLUTE: @@ -288,7 +292,7 @@ fold_unary (tree, current_section, alloc result.section = abs_output_section; } else - result.valid_p = false; + result.valid_p = FALSE; break; case '~': @@ -314,7 +318,7 @@ fold_unary (tree, current_section, alloc result.value = align_n (dot, result.value); } else - result.valid_p = false; + result.valid_p = FALSE; break; case DATA_SEGMENT_END: @@ -331,7 +335,7 @@ fold_unary (tree, current_section, alloc } } else - result.valid_p = false; + result.valid_p = FALSE; break; default: @@ -462,7 +466,7 @@ fold_binary (tree, current_section, allo & (maxpage - other.value); } else - result.valid_p = false; + result.valid_p = FALSE; break; default: @@ -471,7 +475,7 @@ fold_binary (tree, current_section, allo } else { - result.valid_p = false; + result.valid_p = FALSE; } } @@ -504,7 +508,7 @@ etree_value_type invalid () { etree_value_type new; - new.valid_p = false; + new.valid_p = FALSE; return new; } @@ -528,29 +532,29 @@ fold_name (tree, current_section, alloca } else { - result.valid_p = false; + result.valid_p = FALSE; } break; case DEFINED: if (allocation_done == lang_first_phase_enum) - result.valid_p = false; + result.valid_p = FALSE; else { struct bfd_link_hash_entry *h; h = bfd_wrapped_link_hash_lookup (output_bfd, &link_info, tree->name.name, - false, false, true); + FALSE, FALSE, TRUE); result.value = (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined || h->type == bfd_link_hash_defweak || h->type == bfd_link_hash_common)); result.section = 0; - result.valid_p = true; + result.valid_p = TRUE; } break; case NAME: - result.valid_p = false; + result.valid_p = FALSE; if (tree->name.name[0] == '.' && tree->name.name[1] == 0) { if (allocation_done != lang_first_phase_enum) @@ -564,7 +568,7 @@ fold_name (tree, current_section, alloca h = bfd_wrapped_link_hash_lookup (output_bfd, &link_info, tree->name.name, - false, false, true); + FALSE, FALSE, TRUE); if (h != NULL && (h->type == bfd_link_hash_defined || h->type == bfd_link_hash_defweak)) @@ -668,7 +672,7 @@ exp_fold_tree (tree, current_section, al if (tree == NULL) { - result.valid_p = false; + result.valid_p = FALSE; return result; } @@ -680,7 +684,7 @@ exp_fold_tree (tree, current_section, al case etree_rel: if (allocation_done != lang_final_phase_enum) - result.valid_p = false; + result.valid_p = FALSE; else result = new_rel ((tree->rel.value + tree->rel.section->output_section->vma @@ -761,15 +765,15 @@ exp_fold_tree (tree, current_section, al dot, dotp); if (result.valid_p) { - boolean create; + bfd_boolean create; struct bfd_link_hash_entry *h; if (tree->type.node_class == etree_assign) - create = true; + create = TRUE; else - create = false; + create = FALSE; h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst, - create, false, false); + create, FALSE, FALSE); if (h == (struct bfd_link_hash_entry *) NULL) { if (tree->type.node_class == etree_assign) @@ -1002,7 +1006,7 @@ exp_print_tree (tree) fprintf (config.map_file, "%s (UNDEFINED)", tree->assign.dst->name); #endif fprintf (config.map_file, "%s", tree->assign.dst); - exp_print_token (tree->type.node_code, true); + exp_print_token (tree->type.node_code, TRUE); exp_print_tree (tree->assign.src); break; case etree_provide: @@ -1014,7 +1018,7 @@ exp_print_tree (tree) case etree_binary: fprintf (config.map_file, "("); exp_print_tree (tree->binary.lhs); - exp_print_token (tree->type.node_code, true); + exp_print_token (tree->type.node_code, TRUE); exp_print_tree (tree->binary.rhs); fprintf (config.map_file, ")"); break; @@ -1026,7 +1030,7 @@ exp_print_tree (tree) exp_print_tree (tree->trinary.rhs); break; case etree_unary: - exp_print_token (tree->unary.type.node_code, false); + exp_print_token (tree->unary.type.node_code, FALSE); if (tree->unary.child) { fprintf (config.map_file, " ("); @@ -1051,7 +1055,7 @@ exp_print_tree (tree) } else { - exp_print_token (tree->type.node_code, false); + exp_print_token (tree->type.node_code, FALSE); if (tree->name.name) fprintf (config.map_file, " (%s)", tree->name.name); } diff -uprN binutils-2.13.90.0.16/ld/ldexp.h binutils-2.13.90.0.18/ld/ldexp.h --- binutils-2.13.90.0.16/ld/ldexp.h Wed Aug 14 10:35:11 2002 +++ binutils-2.13.90.0.18/ld/ldexp.h Mon Dec 16 12:22:53 2002 @@ -27,23 +27,25 @@ typedef struct { bfd_vma value; char *str; struct lang_output_section_statement_struct *section; - boolean valid_p; + bfd_boolean valid_p; } etree_value_type; typedef struct { int node_code; - enum { etree_binary, - etree_trinary, - etree_unary, - etree_name, - etree_assign, - etree_provide, - etree_provided, - etree_undef, - etree_unspec, - etree_value, - etree_assert, - etree_rel } node_class; + enum { + etree_binary, + etree_trinary, + etree_unary, + etree_name, + etree_assign, + etree_provide, + etree_provided, + etree_undef, + etree_unspec, + etree_value, + etree_assert, + etree_rel + } node_class; } node_type; typedef union etree_union { @@ -101,27 +103,42 @@ extern struct exp_data_seg { typedef struct _fill_type fill_type; -etree_type *exp_intop PARAMS ((bfd_vma)); -etree_type *exp_bigintop PARAMS ((bfd_vma, char *)); -etree_type *exp_relop PARAMS ((asection *, bfd_vma)); -etree_value_type invalid PARAMS ((void)); -etree_value_type exp_fold_tree PARAMS ((etree_type *, struct - lang_output_section_statement_struct *, - lang_phase_type, - bfd_vma, bfd_vma *)); -etree_type *exp_binop PARAMS ((int, etree_type *, etree_type *)); -etree_type *exp_trinop PARAMS ((int,etree_type *, etree_type *, etree_type *)); -etree_type *exp_unop PARAMS ((int, etree_type *)); -etree_type *exp_nameop PARAMS ((int, const char *)); -etree_type *exp_assop PARAMS ((int, const char *, etree_type *)); -etree_type *exp_provide PARAMS ((const char *, etree_type *)); -etree_type *exp_assert PARAMS ((etree_type *, const char *)); -void exp_print_tree PARAMS ((etree_type *)); -bfd_vma exp_get_vma PARAMS ((etree_type *, bfd_vma, char *, lang_phase_type)); -int exp_get_value_int PARAMS ((etree_type *, int, char *, lang_phase_type)); -fill_type *exp_get_fill PARAMS ((etree_type *, fill_type *, char *, - lang_phase_type)); -bfd_vma exp_get_abs_int PARAMS ((etree_type *, int, char *, lang_phase_type)); -bfd_vma align_n PARAMS ((bfd_vma, bfd_vma)); +etree_type *exp_intop + PARAMS ((bfd_vma)); +etree_type *exp_bigintop + PARAMS ((bfd_vma, char *)); +etree_type *exp_relop + PARAMS ((asection *, bfd_vma)); +etree_value_type invalid + PARAMS ((void)); +etree_value_type exp_fold_tree + PARAMS ((etree_type *, struct lang_output_section_statement_struct *, + lang_phase_type, bfd_vma, bfd_vma *)); +etree_type *exp_binop + PARAMS ((int, etree_type *, etree_type *)); +etree_type *exp_trinop + PARAMS ((int,etree_type *, etree_type *, etree_type *)); +etree_type *exp_unop + PARAMS ((int, etree_type *)); +etree_type *exp_nameop + PARAMS ((int, const char *)); +etree_type *exp_assop + PARAMS ((int, const char *, etree_type *)); +etree_type *exp_provide + PARAMS ((const char *, etree_type *)); +etree_type *exp_assert + PARAMS ((etree_type *, const char *)); +void exp_print_tree + PARAMS ((etree_type *)); +bfd_vma exp_get_vma + PARAMS ((etree_type *, bfd_vma, char *, lang_phase_type)); +int exp_get_value_int + PARAMS ((etree_type *, int, char *, lang_phase_type)); +fill_type *exp_get_fill + PARAMS ((etree_type *, fill_type *, char *, lang_phase_type)); +bfd_vma exp_get_abs_int + PARAMS ((etree_type *, int, char *, lang_phase_type)); +bfd_vma align_n + PARAMS ((bfd_vma, bfd_vma)); #endif diff -uprN binutils-2.13.90.0.16/ld/ldfile.c binutils-2.13.90.0.18/ld/ldfile.c --- binutils-2.13.90.0.16/ld/ldfile.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/ldfile.c Tue Jan 21 10:21:34 2003 @@ -1,5 +1,5 @@ /* Linker file opening and searching. - Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002 + Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -37,7 +37,7 @@ Software Foundation, 59 Temple Place - S #include "libiberty.h" const char *ldfile_input_filename; -boolean ldfile_assumed_script = false; +bfd_boolean ldfile_assumed_script = FALSE; const char *ldfile_output_machine_name = ""; unsigned long ldfile_output_machine; enum bfd_architecture ldfile_output_architecture; @@ -71,16 +71,11 @@ static search_arch_type *search_arch_hea static search_arch_type **search_arch_tail_ptr = &search_arch_head; static FILE *try_open PARAMS ((const char *name, const char *exten)); -static boolean ldfile_try_open_file - PARAMS ((const char *arch, lang_input_statement_type *entry, - search_dirs_type *search, const char *lib, - const char *suffix)); void -ldfile_add_library_path (name, cmdline, append) +ldfile_add_library_path (name, cmdline) const char *name; - boolean cmdline; - boolean append; + bfd_boolean cmdline; { search_dirs_type *new; @@ -88,26 +83,21 @@ ldfile_add_library_path (name, cmdline, return; new = (search_dirs_type *) xmalloc (sizeof (search_dirs_type)); + new->next = NULL; new->name = name; new->cmdline = cmdline; - if (append) - { - new->next = NULL; - *search_tail_ptr = new; - search_tail_ptr = &new->next; - } - else - { - new->next = search_head; - search_head = new; - if (search_tail_ptr == &search_head) - search_tail_ptr = &new->next; - } + *search_tail_ptr = new; + search_tail_ptr = &new->next; + + /* If a directory is marked as honoring sysroot, prepend the sysroot path + now. */ + if (new->name[0] == '=') + new->name = concat (ld_sysroot, &new->name[1], NULL); } /* Try to open a BFD for a lang_input_statement. */ -boolean +bfd_boolean ldfile_try_open_bfd (attempt, entry) const char *attempt; lang_input_statement_type *entry; @@ -126,7 +116,7 @@ ldfile_try_open_bfd (attempt, entry) { if (bfd_get_error () == bfd_error_invalid_target) einfo (_("%F%P: invalid BFD target `%s'\n"), entry->target); - return false; + return FALSE; } /* If we are searching for this file, see if the architecture is @@ -157,8 +147,8 @@ ldfile_try_open_bfd (attempt, entry) /* Try to interpret the file as a linker script. */ ldfile_open_command_file (attempt); - - ldfile_assumed_script = true; + + ldfile_assumed_script = TRUE; parser_input = input_selected; ldlex_both (); token = INPUT_SCRIPT; @@ -225,7 +215,7 @@ ldfile_try_open_bfd (attempt, entry) } token = yylex (); } - ldfile_assumed_script = false; + ldfile_assumed_script = FALSE; fclose (yyin); yyin = NULL; if (skip) @@ -234,14 +224,15 @@ ldfile_try_open_bfd (attempt, entry) attempt, entry->local_sym_name); bfd_close (entry->the_bfd); entry->the_bfd = NULL; - return false; + return FALSE; } } - return true; + return TRUE; } - if ((bfd_arch_get_compatible (check, output_bfd) == NULL) - /* XCOFF archives can have 32 and 64 bit objects */ + if ((bfd_arch_get_compatible (check, output_bfd, + command_line.accept_unknown_input_arch) == NULL) + /* XCOFF archives can have 32 and 64 bit objects. */ && ! (bfd_get_flavour (check) == bfd_target_xcoff_flavour && bfd_get_flavour (output_bfd) == bfd_target_xcoff_flavour && bfd_check_format (entry->the_bfd, bfd_archive))) @@ -250,67 +241,18 @@ ldfile_try_open_bfd (attempt, entry) attempt, entry->local_sym_name); bfd_close (entry->the_bfd); entry->the_bfd = NULL; - return false; + return FALSE; } } } - return true; -} - -static boolean -ldfile_try_open_file (arch, entry, search, lib, suffix) - const char *arch; - lang_input_statement_type *entry; - search_dirs_type *search; - const char *lib; - const char *suffix; -{ - char *string; - - if (entry->dynamic && ! link_info.relocateable) - { - if (ldemul_open_dynamic_archive (arch, search, entry)) - return true; - } - - string = (char *) xmalloc (strlen (search->name) - + strlen (slash) - + strlen (lib) - + strlen (entry->filename) - + strlen (arch) - + strlen (suffix) - + 1); - - if (entry->is_archive) - sprintf (string, "%s%s%s%s%s%s", search->name, slash, - lib, entry->filename, arch, suffix); - else if (entry->filename[0] == '/' || entry->filename[0] == '.' -#if defined (__MSDOS__) || defined (_WIN32) - || entry->filename[0] == '\\' - || (ISALPHA (entry->filename[0]) - && entry->filename[1] == ':') -#endif - ) - strcpy (string, entry->filename); - else - sprintf (string, "%s%s%s", search->name, slash, entry->filename); - - if (ldfile_try_open_bfd (string, entry)) - { - entry->filename = string; - return true; - } - - free (string); - - return false; + return TRUE; } /* Search for and open the file specified by ENTRY. If it is an archive, use ARCH, LIB and SUFFIX to modify the file name. */ -boolean +bfd_boolean ldfile_open_file_search (arch, entry, lib, suffix) const char *arch; lang_input_statement_type *entry; @@ -324,43 +266,53 @@ ldfile_open_file_search (arch, entry, li if (! entry->is_archive) { if (ldfile_try_open_bfd (entry->filename, entry)) - return true; + return TRUE; } for (search = search_head; search != (search_dirs_type *) NULL; search = search->next) { - if (command_line.multilib_dir != NULL - && *command_line.multilib_dir != *slash) + char *string; + + if (entry->dynamic && ! link_info.relocateable) { - const char *saved_name; - char *name; - boolean found; - - saved_name = search->name; - name = (char *) xmalloc (strlen (search->name) - + strlen (slash) - + strlen (command_line.multilib_dir) - + 1); - sprintf (name, "%s%s%s", saved_name, slash, - command_line.multilib_dir); - - search->name = name; - found = ldfile_try_open_file (arch, entry, search, lib, - suffix); - search->name = saved_name; + if (ldemul_open_dynamic_archive (arch, search, entry)) + return TRUE; + } - free (name); - if (found) - return found; + string = (char *) xmalloc (strlen (search->name) + + strlen (slash) + + strlen (lib) + + strlen (entry->filename) + + strlen (arch) + + strlen (suffix) + + 1); + + if (entry->is_archive) + sprintf (string, "%s%s%s%s%s%s", search->name, slash, + lib, entry->filename, arch, suffix); + else if (entry->filename[0] == '/' || entry->filename[0] == '.' +#if defined (__MSDOS__) || defined (_WIN32) + || entry->filename[0] == '\\' + || (ISALPHA (entry->filename[0]) + && entry->filename[1] == ':') +#endif + ) + strcpy (string, entry->filename); + else + sprintf (string, "%s%s%s", search->name, slash, entry->filename); + + if (ldfile_try_open_bfd (string, entry)) + { + entry->filename = string; + return TRUE; } - if (ldfile_try_open_file (arch, entry, search, lib, suffix)) - return true; + free (string); } - return false; + return FALSE; } /* Open the input file specified by ENTRY. */ @@ -385,7 +337,7 @@ ldfile_open_file (entry) else { search_arch_type *arch; - boolean found = false; + bfd_boolean found = FALSE; /* Try to open or lib.a */ for (arch = search_arch_head; @@ -408,7 +360,7 @@ ldfile_open_file (entry) /* If we have found the file, we don't need to search directories again. */ if (found) - entry->search_dirs_flag = false; + entry->search_dirs_flag = FALSE; else einfo (_("%F%P: cannot find %s\n"), entry->local_sym_name); } @@ -455,7 +407,7 @@ try_open (name, exten) } /* Try to open NAME; if that fails, look for it in any directories - specified with -L, without and with EXTEND apppended. */ + specified with -L, without and with EXTEND appended. */ FILE * ldfile_find_command_file (name, extend) @@ -495,14 +447,8 @@ ldfile_open_command_file (name) if (ldlex_input_stack == (FILE *) NULL) { - if (command_line.multilib_dir == NULL) - { - bfd_set_error (bfd_error_system_call); - einfo (_("%P%F: cannot open linker script file %s: %E\n"), - name); - } - else - return; + bfd_set_error (bfd_error_system_call); + einfo (_("%P%F: cannot open linker script file %s: %E\n"), name); } lex_push_file (ldlex_input_stack, name); diff -uprN binutils-2.13.90.0.16/ld/ldfile.h binutils-2.13.90.0.18/ld/ldfile.h --- binutils-2.13.90.0.16/ld/ldfile.h Sat Jun 8 20:44:53 2002 +++ binutils-2.13.90.0.18/ld/ldfile.h Tue Jan 21 10:21:34 2003 @@ -21,9 +21,8 @@ #ifndef LDFILE_H #define LDFILE_H -extern char *slash; extern const char *ldfile_input_filename; -extern boolean ldfile_assumed_script; +extern bfd_boolean ldfile_assumed_script; extern unsigned long ldfile_output_machine; extern enum bfd_architecture ldfile_output_architecture; extern const char *ldfile_output_machine_name; @@ -36,23 +35,27 @@ typedef struct search_dirs { struct search_dirs *next; /* Name of directory. */ const char *name; - /* true if this is from the command line. */ - boolean cmdline; + /* TRUE if this is from the command line. */ + bfd_boolean cmdline; } search_dirs_type; extern search_dirs_type *search_head; -extern void ldfile_add_arch PARAMS ((const char *)); +extern void ldfile_add_arch + PARAMS ((const char *)); extern void ldfile_add_library_path - PARAMS ((const char *, boolean cmdline, boolean append)); -extern void ldfile_open_command_file PARAMS ((const char *name)); -extern void ldfile_open_file PARAMS ((struct lang_input_statement_struct *)); -extern boolean ldfile_try_open_bfd + PARAMS ((const char *, bfd_boolean cmdline)); +extern void ldfile_open_command_file + PARAMS ((const char *name)); +extern void ldfile_open_file + PARAMS ((struct lang_input_statement_struct *)); +extern bfd_boolean ldfile_try_open_bfd PARAMS ((const char *, struct lang_input_statement_struct *)); extern FILE *ldfile_find_command_file PARAMS ((const char *name, const char *extend)); -extern void ldfile_set_output_arch PARAMS ((const char *)); -extern boolean ldfile_open_file_search +extern void ldfile_set_output_arch + PARAMS ((const char *)); +extern bfd_boolean ldfile_open_file_search PARAMS ((const char *arch, struct lang_input_statement_struct *, const char *lib, const char *suffix)); diff -uprN binutils-2.13.90.0.16/ld/ldgram.y binutils-2.13.90.0.18/ld/ldgram.y --- binutils-2.13.90.0.16/ld/ldgram.y Sat Oct 12 09:02:23 2002 +++ binutils-2.13.90.0.18/ld/ldgram.y Tue Jan 21 10:21:34 2003 @@ -49,13 +49,13 @@ static enum section_type sectype; lang_memory_region_type *region; -boolean ldgram_want_filename = true; -FILE * saved_script_handle = NULL; -boolean force_make_executable = false; - -boolean ldgram_in_script = false; -boolean ldgram_had_equals = false; -boolean ldgram_had_keep = false; +bfd_boolean ldgram_want_filename = TRUE; +FILE *saved_script_handle = NULL; +bfd_boolean force_make_executable = FALSE; + +bfd_boolean ldgram_in_script = FALSE; +bfd_boolean ldgram_had_equals = FALSE; +bfd_boolean ldgram_had_keep = FALSE; char *ldgram_vers_current_lang = NULL; #define ERROR_NAME_MAX 20 @@ -81,8 +81,8 @@ static int error_index; union etree_union *etree; struct phdr_info { - boolean filehdr; - boolean phdrs; + bfd_boolean filehdr; + bfd_boolean phdrs; union etree_union *at; union etree_union *flags; } phdr; @@ -249,7 +249,7 @@ mri_script_command: mri_script_lines END { ldlex_popstate (); } | START NAME - { lang_add_entry ($2, false); } + { lang_add_entry ($2, FALSE); } | ; @@ -319,7 +319,7 @@ ifile_p1: | TARGET_K '(' NAME ')' { lang_add_target($3); } | SEARCH_DIR '(' filename ')' - { ldfile_add_library_path ($3, false, true); } + { ldfile_add_library_path ($3, FALSE); } | OUTPUT '(' filename ')' { lang_add_output($3, 1); } | OUTPUT_FORMAT '(' NAME ')' @@ -330,9 +330,9 @@ ifile_p1: | OUTPUT_ARCH '(' NAME ')' { ldfile_set_output_arch($3); } | FORCE_COMMON_ALLOCATION - { command_line.force_common_definition = true ; } + { command_line.force_common_definition = TRUE ; } | INHIBIT_COMMON_ALLOCATION - { command_line.inhibit_common_definition = true ; } + { command_line.inhibit_common_definition = TRUE ; } | INPUT '(' input_list ')' | GROUP { lang_enter_group (); } @@ -384,7 +384,7 @@ sec_or_group_p1: statement_anywhere: ENTRY '(' NAME ')' - { lang_add_entry ($3, false); } + { lang_add_entry ($3, FALSE); } | assignment end ; @@ -409,25 +409,25 @@ wildcard_spec: wildcard_name { $$.name = $1; - $$.sorted = false; + $$.sorted = FALSE; $$.exclude_name_list = NULL; } | EXCLUDE_FILE '(' exclude_name_list ')' wildcard_name { $$.name = $5; - $$.sorted = false; + $$.sorted = FALSE; $$.exclude_name_list = $3; } | SORT '(' wildcard_name ')' { $$.name = $3; - $$.sorted = true; + $$.sorted = TRUE; $$.exclude_name_list = NULL; } | SORT '(' EXCLUDE_FILE '(' exclude_name_list ')' wildcard_name ')' { $$.name = $7; - $$.sorted = true; + $$.sorted = TRUE; $$.exclude_name_list = $5; } ; @@ -478,7 +478,7 @@ input_section_spec_no_keep: struct wildcard_spec tmp; tmp.name = $1; tmp.exclude_name_list = NULL; - tmp.sorted = false; + tmp.sorted = FALSE; lang_add_wild (&tmp, NULL, ldgram_had_keep); } | '[' file_NAME_list ']' @@ -494,9 +494,9 @@ input_section_spec_no_keep: input_section_spec: input_section_spec_no_keep | KEEP '(' - { ldgram_had_keep = true; } + { ldgram_had_keep = TRUE; } input_section_spec_no_keep ')' - { ldgram_had_keep = false; } + { ldgram_had_keep = FALSE; } ; statement: @@ -513,7 +513,7 @@ statement: } | SORT '(' CONSTRUCTORS ')' { - constructors_sorted = true; + constructors_sorted = TRUE; lang_add_attribute (lang_constructors_statement_enum); } | input_section_spec @@ -697,9 +697,9 @@ low_level_library: floating_point_support: FLOAT - { lang_float(true); } + { lang_float(TRUE); } | NOFLOAT - { lang_float(false); } + { lang_float(FALSE); } ; nocrossref_list: @@ -933,7 +933,7 @@ phdr_opt: n = ((struct lang_output_section_phdr_list *) xmalloc (sizeof *n)); n->name = $3; - n->used = false; + n->used = FALSE; n->next = $1; $$ = n; } @@ -1015,9 +1015,9 @@ phdr_qualifiers: { $$ = $3; if (strcmp ($1, "FILEHDR") == 0 && $2 == NULL) - $$.filehdr = true; + $$.filehdr = TRUE; else if (strcmp ($1, "PHDRS") == 0 && $2 == NULL) - $$.phdrs = true; + $$.phdrs = TRUE; else if (strcmp ($1, "FLAGS") == 0 && $2 != NULL) $$.flags = $2; else diff -uprN binutils-2.13.90.0.16/ld/ldlang.c binutils-2.13.90.0.18/ld/ldlang.c --- binutils-2.13.90.0.16/ld/ldlang.c Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/ld/ldlang.c Tue Jan 21 10:21:34 2003 @@ -55,9 +55,9 @@ static struct obstack stat_obstack; #define obstack_chunk_free free static const char *startup_file; static lang_statement_list_type input_file_chain; -static boolean placed_commons = false; +static bfd_boolean placed_commons = FALSE; static lang_output_section_statement_type *default_common_section; -static boolean map_option_f; +static bfd_boolean map_option_f; static bfd_vma print_dot; static lang_input_statement_type *first_file; static const char *current_target; @@ -69,52 +69,77 @@ static void lang_for_each_statement_work PARAMS ((void (*) (lang_statement_union_type *), lang_statement_union_type *)); static lang_input_statement_type *new_afile - PARAMS ((const char *, lang_input_file_enum_type, const char *, boolean)); -static lang_memory_region_type *lang_memory_default PARAMS ((asection *)); -static void lang_map_flags PARAMS ((flagword)); -static void init_os PARAMS ((lang_output_section_statement_type *)); -static void exp_init_os PARAMS ((etree_type *)); -static void section_already_linked PARAMS ((bfd *, asection *, PTR)); + PARAMS ((const char *, lang_input_file_enum_type, const char *, + bfd_boolean)); +static lang_memory_region_type *lang_memory_default + PARAMS ((asection *)); +static void lang_map_flags + PARAMS ((flagword)); +static void init_os + PARAMS ((lang_output_section_statement_type *)); +static void exp_init_os + PARAMS ((etree_type *)); +static void section_already_linked + PARAMS ((bfd *, asection *, PTR)); static struct bfd_hash_entry *already_linked_newfunc PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); -static void already_linked_table_init PARAMS ((void)); -static void already_linked_table_free PARAMS ((void)); -static boolean wildcardp PARAMS ((const char *)); +static void already_linked_table_init + PARAMS ((void)); +static void already_linked_table_free + PARAMS ((void)); +static bfd_boolean wildcardp + PARAMS ((const char *)); static lang_statement_union_type *wild_sort PARAMS ((lang_wild_statement_type *, struct wildcard_list *, lang_input_statement_type *, asection *)); static void output_section_callback PARAMS ((lang_wild_statement_type *, struct wildcard_list *, asection *, lang_input_statement_type *, PTR)); -static lang_input_statement_type *lookup_name PARAMS ((const char *)); -static boolean load_symbols +static lang_input_statement_type *lookup_name + PARAMS ((const char *)); +static bfd_boolean load_symbols PARAMS ((lang_input_statement_type *, lang_statement_list_type *)); static void wild PARAMS ((lang_wild_statement_type *, const char *, lang_output_section_statement_type *)); -static bfd *open_output PARAMS ((const char *)); -static void ldlang_open_output PARAMS ((lang_statement_union_type *)); -static void open_input_bfds PARAMS ((lang_statement_union_type *, boolean)); -static void lang_reasonable_defaults PARAMS ((void)); -static void insert_undefined PARAMS ((const char *)); -static void lang_place_undefineds PARAMS ((void)); +static bfd *open_output + PARAMS ((const char *)); +static void ldlang_open_output + PARAMS ((lang_statement_union_type *)); +static void open_input_bfds + PARAMS ((lang_statement_union_type *, bfd_boolean)); +static void lang_reasonable_defaults + PARAMS ((void)); +static void insert_undefined + PARAMS ((const char *)); +static void lang_place_undefineds + PARAMS ((void)); static void map_input_to_output_sections PARAMS ((lang_statement_union_type *, const char *, lang_output_section_statement_type *)); -static void strip_excluded_output_sections PARAMS ((void)); +static void strip_excluded_output_sections + PARAMS ((void)); static void print_output_section_statement PARAMS ((lang_output_section_statement_type *)); static void print_assignment PARAMS ((lang_assignment_statement_type *, lang_output_section_statement_type *)); -static void print_input_statement PARAMS ((lang_input_statement_type *)); -static boolean print_one_symbol PARAMS ((struct bfd_link_hash_entry *, PTR)); -static void print_input_section PARAMS ((lang_input_section_type *)); -static void print_fill_statement PARAMS ((lang_fill_statement_type *)); -static void print_data_statement PARAMS ((lang_data_statement_type *)); -static void print_address_statement PARAMS ((lang_address_statement_type *)); -static void print_reloc_statement PARAMS ((lang_reloc_statement_type *)); -static void print_padding_statement PARAMS ((lang_padding_statement_type *)); +static void print_input_statement + PARAMS ((lang_input_statement_type *)); +static bfd_boolean print_one_symbol + PARAMS ((struct bfd_link_hash_entry *, PTR)); +static void print_input_section + PARAMS ((lang_input_section_type *)); +static void print_fill_statement + PARAMS ((lang_fill_statement_type *)); +static void print_data_statement + PARAMS ((lang_data_statement_type *)); +static void print_address_statement + PARAMS ((lang_address_statement_type *)); +static void print_reloc_statement + PARAMS ((lang_reloc_statement_type *)); +static void print_padding_statement + PARAMS ((lang_padding_statement_type *)); static void print_wild_statement PARAMS ((lang_wild_statement_type *, lang_output_section_statement_type *)); static void print_group @@ -123,51 +148,63 @@ static void print_statement PARAMS ((lang_statement_union_type *, lang_output_section_statement_type *)); static void print_statement_list PARAMS ((lang_statement_union_type *, lang_output_section_statement_type *)); -static void print_statements PARAMS ((void)); +static void print_statements + PARAMS ((void)); static void insert_pad PARAMS ((lang_statement_union_type **, fill_type *, unsigned int, asection *, bfd_vma)); static bfd_vma size_input_section PARAMS ((lang_statement_union_type **, lang_output_section_statement_type *, fill_type *, bfd_vma)); -static void lang_finish PARAMS ((void)); -static void ignore_bfd_errors PARAMS ((const char *, ...)); -static void lang_check PARAMS ((void)); -static void lang_common PARAMS ((void)); -static boolean lang_one_common PARAMS ((struct bfd_link_hash_entry *, PTR)); -static void lang_place_orphans PARAMS ((void)); -static int topower PARAMS ((int)); -static void lang_set_startof PARAMS ((void)); +static void lang_finish + PARAMS ((void)); +static void ignore_bfd_errors + PARAMS ((const char *, ...)); +static void lang_check + PARAMS ((void)); +static void lang_common + PARAMS ((void)); +static bfd_boolean lang_one_common + PARAMS ((struct bfd_link_hash_entry *, PTR)); +static void lang_place_orphans + PARAMS ((void)); +static int topower + PARAMS ((int)); +static void lang_set_startof + PARAMS ((void)); static void gc_section_callback PARAMS ((lang_wild_statement_type *, struct wildcard_list *, asection *, lang_input_statement_type *, PTR)); -static void lang_get_regions PARAMS ((struct memory_region_struct **, - struct memory_region_struct **, - const char *, const char *, int)); -static void lang_record_phdrs PARAMS ((void)); -static void lang_gc_wild PARAMS ((lang_wild_statement_type *)); -static void lang_gc_sections_1 PARAMS ((lang_statement_union_type *)); -static void lang_gc_sections PARAMS ((void)); +static void lang_get_regions + PARAMS ((struct memory_region_struct **, struct memory_region_struct **, + const char *, const char *, int)); +static void lang_record_phdrs + PARAMS ((void)); +static void lang_gc_wild + PARAMS ((lang_wild_statement_type *)); +static void lang_gc_sections_1 + PARAMS ((lang_statement_union_type *)); +static void lang_gc_sections + PARAMS ((void)); static int lang_vers_match_lang_c PARAMS ((struct bfd_elf_version_expr *, const char *)); static int lang_vers_match_lang_cplusplus PARAMS ((struct bfd_elf_version_expr *, const char *)); static int lang_vers_match_lang_java PARAMS ((struct bfd_elf_version_expr *, const char *)); -static void lang_do_version_exports_section PARAMS ((void)); -static void lang_check_section_addresses PARAMS ((void)); +static void lang_do_version_exports_section + PARAMS ((void)); +static void lang_check_section_addresses + PARAMS ((void)); static void os_region_check PARAMS ((lang_output_section_statement_type *, struct memory_region_struct *, etree_type *, bfd_vma)); static bfd_vma lang_size_sections_1 PARAMS ((lang_statement_union_type *, lang_output_section_statement_type *, - lang_statement_union_type **, fill_type *, bfd_vma, boolean *)); - -typedef void (*callback_t) PARAMS ((lang_wild_statement_type *, - struct wildcard_list *, - asection *, - lang_input_statement_type *, - PTR)); + lang_statement_union_type **, fill_type *, bfd_vma, bfd_boolean *)); +typedef void (*callback_t) + PARAMS ((lang_wild_statement_type *, struct wildcard_list *, asection *, + lang_input_statement_type *, PTR)); static void walk_wild PARAMS ((lang_wild_statement_type *, callback_t, PTR)); static void walk_wild_section @@ -176,13 +213,18 @@ static void walk_wild_section static void walk_wild_file PARAMS ((lang_wild_statement_type *, lang_input_statement_type *, callback_t, PTR)); - -static int get_target PARAMS ((const bfd_target *, PTR)); -static void stricpy PARAMS ((char *, char *)); -static void strcut PARAMS ((char *, char *)); -static int name_compare PARAMS ((char *, char *)); -static int closest_target_match PARAMS ((const bfd_target *, PTR)); -static char * get_first_input_target PARAMS ((void)); +static int get_target + PARAMS ((const bfd_target *, PTR)); +static void stricpy + PARAMS ((char *, char *)); +static void strcut + PARAMS ((char *, char *)); +static int name_compare + PARAMS ((char *, char *)); +static int closest_target_match + PARAMS ((const bfd_target *, PTR)); +static char * get_first_input_target + PARAMS ((void)); /* EXPORTS */ lang_output_section_statement_type *abs_output_section; @@ -191,11 +233,11 @@ lang_statement_list_type *stat_ptr = &st lang_statement_list_type file_chain = { NULL, NULL }; struct bfd_sym_chain entry_symbol = { NULL, NULL }; const char *entry_section = ".text"; -boolean entry_from_cmdline; -boolean lang_has_input_file = false; -boolean had_output_filename = false; -boolean lang_float_flag = false; -boolean delete_output_file_on_failure = false; +bfd_boolean entry_from_cmdline; +bfd_boolean lang_has_input_file = FALSE; +bfd_boolean had_output_filename = FALSE; +bfd_boolean lang_float_flag = FALSE; +bfd_boolean delete_output_file_on_failure = FALSE; struct lang_nocrossrefs *nocrossref_list; struct unique_sections *unique_section_list; @@ -227,7 +269,7 @@ stat_alloc (size) return obstack_alloc (&stat_obstack, size); } -boolean +bfd_boolean unique_section_p (secnam) const char *secnam; { @@ -238,10 +280,10 @@ unique_section_p (secnam) ? fnmatch (unam->name, secnam, 0) == 0 : strcmp (unam->name, secnam) == 0) { - return true; + return TRUE; } - return false; + return FALSE; } /* Generic traversal routines for finding matching sections. */ @@ -268,7 +310,7 @@ walk_wild_section (ptr, file, callback, while (sec != NULL) { - boolean skip = false; + bfd_boolean skip = FALSE; struct name_list *list_tmp; /* Don't process sections from files which were @@ -481,7 +523,7 @@ new_statement (type, size, list) or prefix it with a -l etc. We can be supplied with requests for input files more than once; - they may, for example be split over serveral lines like foo.o(.text) + they may, for example be split over several lines like foo.o(.text) foo.o(.data) etc, so when asked for a file we check that we haven't got it already so we don't duplicate the bfd. */ @@ -490,7 +532,7 @@ new_afile (name, file_type, target, add_ const char *name; lang_input_file_enum_type file_type; const char *target; - boolean add_to_list; + bfd_boolean add_to_list; { lang_input_statement_type *p; @@ -503,57 +545,57 @@ new_afile (name, file_type, target, add_ p->header.next = NULL; } - lang_has_input_file = true; + lang_has_input_file = TRUE; p->target = target; switch (file_type) { case lang_input_file_is_symbols_only_enum: p->filename = name; - p->is_archive = false; - p->real = true; + p->is_archive = FALSE; + p->real = TRUE; p->local_sym_name = name; - p->just_syms_flag = true; - p->search_dirs_flag = false; + p->just_syms_flag = TRUE; + p->search_dirs_flag = FALSE; break; case lang_input_file_is_fake_enum: p->filename = name; - p->is_archive = false; - p->real = false; + p->is_archive = FALSE; + p->real = FALSE; p->local_sym_name = name; - p->just_syms_flag = false; - p->search_dirs_flag = false; + p->just_syms_flag = FALSE; + p->search_dirs_flag = FALSE; break; case lang_input_file_is_l_enum: - p->is_archive = true; + p->is_archive = TRUE; p->filename = name; - p->real = true; + p->real = TRUE; p->local_sym_name = concat ("-l", name, (const char *) NULL); - p->just_syms_flag = false; - p->search_dirs_flag = true; + p->just_syms_flag = FALSE; + p->search_dirs_flag = TRUE; break; case lang_input_file_is_marker_enum: p->filename = name; - p->is_archive = false; - p->real = false; + p->is_archive = FALSE; + p->real = FALSE; p->local_sym_name = name; - p->just_syms_flag = false; - p->search_dirs_flag = true; + p->just_syms_flag = FALSE; + p->search_dirs_flag = TRUE; break; case lang_input_file_is_search_file_enum: p->filename = name; - p->is_archive = false; - p->real = true; + p->is_archive = FALSE; + p->real = TRUE; p->local_sym_name = name; - p->just_syms_flag = false; - p->search_dirs_flag = true; + p->just_syms_flag = FALSE; + p->search_dirs_flag = TRUE; break; case lang_input_file_is_file_enum: p->filename = name; - p->is_archive = false; - p->real = true; + p->is_archive = FALSE; + p->real = TRUE; p->local_sym_name = name; - p->just_syms_flag = false; - p->search_dirs_flag = false; + p->just_syms_flag = FALSE; + p->search_dirs_flag = FALSE; break; default: FAIL (); @@ -565,7 +607,7 @@ new_afile (name, file_type, target, add_ p->symbol_count = 0; p->dynamic = config.dynamic_link; p->whole_archive = whole_archive; - p->loaded = false; + p->loaded = FALSE; lang_statement_append (&input_file_chain, (lang_statement_union_type *) p, &p->next_real_file); @@ -578,8 +620,8 @@ lang_add_input_file (name, file_type, ta lang_input_file_enum_type file_type; const char *target; { - lang_has_input_file = true; - return new_afile (name, file_type, target, true); + lang_has_input_file = TRUE; + return new_afile (name, file_type, target, TRUE); } /* Build enough state so that the parser can build its tree. */ @@ -669,7 +711,7 @@ lang_memory_region_lookup (name) new->not_flags = 0; new->length = ~(bfd_size_type) 0; new->current = 0; - new->had_full_message = false; + new->had_full_message = FALSE; return new; } @@ -740,7 +782,7 @@ lang_output_section_statement_lookup (na lookup->next = (lang_statement_union_type *) NULL; lookup->bfd_section = (asection *) NULL; - lookup->processed = false; + lookup->processed = FALSE; lookup->sectype = normal_section; lookup->addr_tree = (etree_type *) NULL; lang_list_init (&lookup->children); @@ -870,6 +912,9 @@ init_os (s) mention are initialized. */ if (s->addr_tree != NULL) exp_init_os (s->addr_tree); + + if (s->load_base != NULL) + exp_init_os (s->load_base); } /* Make sure that all output sections mentioned in an expression are @@ -997,7 +1042,7 @@ section_already_linked (abfd, sec, data) already_linked_list = ((struct already_linked_hash_entry *) - bfd_hash_lookup (&already_linked_table, name, true, false)); + bfd_hash_lookup (&already_linked_table, name, TRUE, FALSE)); for (l = already_linked_list->entry; l != NULL; l = l->next) { @@ -1100,13 +1145,13 @@ already_linked_table_free () explicit actions, like foo.o(.text), bar.o(.text) and foo.o(.text, .data). */ -/* Return true if the PATTERN argument is a wildcard pattern. +/* Return TRUE if the PATTERN argument is a wildcard pattern. Although backslashes are treated specially if a pattern contains wildcards, we do not consider the mere presence of a backslash to be enough to cause the pattern to be treated as a wildcard. That lets us handle DOS filenames more naturally. */ -static boolean +static bfd_boolean wildcardp (pattern) const char *pattern; { @@ -1116,8 +1161,8 @@ wildcardp (pattern) if (*s == '?' || *s == '*' || *s == '[') - return true; - return false; + return TRUE; + return FALSE; } /* Add SECTION to the output section OUTPUT. Do this by creating a @@ -1132,29 +1177,29 @@ lang_add_section (ptr, section, output, lang_input_statement_type *file; { flagword flags; - boolean discard; + bfd_boolean discard; flags = bfd_get_section_flags (section->owner, section); - discard = false; + discard = FALSE; /* Discard sections marked with SEC_EXCLUDE if we are doing a final link. Discard debugging sections marked with SEC_EXCLUDE on a relocatable link too. */ if ((flags & SEC_EXCLUDE) != 0 && ((flags & SEC_DEBUGGING) != 0 || !link_info.relocateable)) - discard = true; + discard = TRUE; /* Discard input sections which are assigned to a section named DISCARD_SECTION_NAME. */ if (strcmp (output->name, DISCARD_SECTION_NAME) == 0) - discard = true; + discard = TRUE; /* Discard debugging sections if we are stripping debugging information. */ if ((link_info.strip == strip_debugger || link_info.strip == strip_all) && (flags & SEC_DEBUGGING) != 0) - discard = true; + discard = TRUE; if (discard) { @@ -1168,7 +1213,7 @@ lang_add_section (ptr, section, output, if (section->output_section == NULL) { - boolean first; + bfd_boolean first; lang_input_section_type *new; flagword flags; @@ -1259,7 +1304,7 @@ lang_add_section (ptr, section, output, if (section->alignment_power > output->bfd_section->alignment_power) output->bfd_section->alignment_power = section->alignment_power; - /* If supplied an aligment, then force it. */ + /* If supplied an alignment, then force it. */ if (output->section_alignment != -1) output->bfd_section->alignment_power = output->section_alignment; @@ -1305,7 +1350,7 @@ wild_sort (wild, sec, file, section) if (wild->filenames_sorted) { const char *fn, *ln; - boolean fa, la; + bfd_boolean fa, la; int i; /* The PE support for the .idata section as generated by @@ -1317,24 +1362,24 @@ wild_sort (wild, sec, file, section) && bfd_my_archive (file->the_bfd) != NULL) { fn = bfd_get_filename (bfd_my_archive (file->the_bfd)); - fa = true; + fa = TRUE; } else { fn = file->filename; - fa = false; + fa = FALSE; } if (ls->ifile->the_bfd != NULL && bfd_my_archive (ls->ifile->the_bfd) != NULL) { ln = bfd_get_filename (bfd_my_archive (ls->ifile->the_bfd)); - la = true; + la = TRUE; } else { ln = ls->ifile->filename; - la = false; + la = FALSE; } i = strcmp (fn, ln); @@ -1458,7 +1503,7 @@ lookup_name (name) if (search == (lang_input_statement_type *) NULL) search = new_afile (name, lang_input_file_is_file_enum, default_target, - false); + FALSE); /* If we have already added this file, or this file is not real (FIXME: can that ever actually happen?) or the name is NULL @@ -1476,7 +1521,7 @@ lookup_name (name) /* Get the symbols for an input file. */ -static boolean +static bfd_boolean load_symbols (entry, place) lang_input_statement_type *entry; lang_statement_list_type *place; @@ -1484,7 +1529,7 @@ load_symbols (entry, place) char **matching; if (entry->loaded) - return true; + return TRUE; ldfile_open_file (entry); @@ -1493,13 +1538,13 @@ load_symbols (entry, place) { bfd_error_type err; lang_statement_list_type *hold; - boolean bad_load = true; + bfd_boolean bad_load = TRUE; err = bfd_get_error (); /* See if the emulation has some special knowledge. */ if (ldemul_unrecognized_file (entry)) - return true; + return TRUE; if (err == bfd_error_file_ambiguously_recognized) { @@ -1515,7 +1560,7 @@ load_symbols (entry, place) || place == NULL) einfo (_("%F%B: file not recognized: %E\n"), entry->the_bfd); else - bad_load = false; + bad_load = FALSE; bfd_close (entry->the_bfd); entry->the_bfd = NULL; @@ -1526,10 +1571,10 @@ load_symbols (entry, place) hold = stat_ptr; stat_ptr = place; - ldfile_assumed_script = true; + ldfile_assumed_script = TRUE; parser_input = input_script; yyparse (); - ldfile_assumed_script = false; + ldfile_assumed_script = FALSE; stat_ptr = hold; @@ -1537,7 +1582,7 @@ load_symbols (entry, place) } if (ldemul_recognized_file (entry)) - return true; + return TRUE; /* We don't call ldlang_add_file for an archive. Instead, the add_symbols entry point will call ldlang_add_file, via the @@ -1558,7 +1603,7 @@ load_symbols (entry, place) if (entry->whole_archive) { bfd *member = NULL; - boolean loaded = true; + bfd_boolean loaded = TRUE; for (;;) { @@ -1571,7 +1616,7 @@ load_symbols (entry, place) { einfo (_("%F%B: member %B in archive is not an object\n"), entry->the_bfd, member); - loaded = false; + loaded = FALSE; } if (! ((*link_info.callbacks->add_archive_element) @@ -1581,7 +1626,7 @@ load_symbols (entry, place) if (! bfd_link_add_symbols (member, &link_info)) { einfo (_("%F%B: could not read symbols: %E\n"), member); - loaded = false; + loaded = FALSE; } } @@ -1592,7 +1637,7 @@ load_symbols (entry, place) } if (bfd_link_add_symbols (entry->the_bfd, &link_info)) - entry->loaded = true; + entry->loaded = TRUE; else einfo (_("%F%B: could not read symbols: %E\n"), entry->the_bfd); @@ -1628,7 +1673,7 @@ wild (s, target, output) } } -/* Return true iff target is the sought target. */ +/* Return TRUE iff target is the sought target. */ static int get_target (target, data) @@ -1655,7 +1700,7 @@ stricpy (dest, src) *dest = 0; } -/* Remove the first occurance of needle (if any) in haystack +/* Remove the first occurrence of needle (if any) in haystack from haystack. */ static void @@ -1879,7 +1924,7 @@ open_output (name) einfo (_("%P%F: cannot open output file %s: %E\n"), name); } - delete_output_file_on_failure = true; + delete_output_file_on_failure = TRUE; #if 0 output->flags |= D_PAGED; @@ -1937,7 +1982,7 @@ ldlang_open_output (statement) static void open_input_bfds (s, force) lang_statement_union_type *s; - boolean force; + bfd_boolean force; { for (; s != (lang_statement_union_type *) NULL; s = s->header.next) { @@ -1967,7 +2012,7 @@ open_input_bfds (s, force) do { undefs = link_info.hash->undefs_tail; - open_input_bfds (s->group_statement.children.head, true); + open_input_bfds (s->group_statement.children.head, TRUE); } while (undefs != link_info.hash->undefs_tail); } @@ -1991,12 +2036,12 @@ open_input_bfds (s, force) && s->input_statement.loaded && bfd_check_format (s->input_statement.the_bfd, bfd_archive)) - s->input_statement.loaded = false; + s->input_statement.loaded = FALSE; lang_list_init (&add); if (! load_symbols (&s->input_statement, &add)) - config.make_executable = false; + config.make_executable = FALSE; if (add.head != NULL) { @@ -2071,7 +2116,7 @@ insert_undefined (name) { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (link_info.hash, name, true, false, true); + h = bfd_link_hash_lookup (link_info.hash, name, TRUE, FALSE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL) einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n")); if (h->type == bfd_link_hash_new) @@ -2099,7 +2144,7 @@ lang_place_undefineds () } } -/* Open input files and attatch to output sections. */ +/* Open input files and attach to output sections. */ static void map_input_to_output_sections (s, target, output_section_statement) @@ -2307,7 +2352,7 @@ print_input_statement (statm) /* Print all symbols defined in a particular section. This is called via bfd_link_hash_traverse. */ -static boolean +static bfd_boolean print_one_symbol (hash_entry, ptr) struct bfd_link_hash_entry *hash_entry; PTR ptr; @@ -2330,7 +2375,7 @@ print_one_symbol (hash_entry, ptr) minfo (" %T\n", hash_entry->root.string); } - return true; + return TRUE; } /* Print information about an input section to the map file. */ @@ -2932,7 +2977,7 @@ lang_size_sections_1 (s, output_section_ lang_statement_union_type **prev; fill_type *fill; bfd_vma dot; - boolean *relax; + bfd_boolean *relax; { unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture, ldfile_output_machine); @@ -3072,7 +3117,7 @@ lang_size_sections_1 (s, output_section_ (after - os->bfd_section->vma) * opb; dot = os->bfd_section->vma + os->bfd_section->_raw_size / opb; - os->processed = true; + os->processed = TRUE; if (os->update_dot_tree != 0) exp_fold_tree (os->update_dot_tree, abs_output_section, @@ -3207,12 +3252,12 @@ lang_size_sections_1 (s, output_section_ } else { - boolean again; + bfd_boolean again; if (! bfd_relax_section (i->owner, i, &link_info, &again)) einfo (_("%P%F: can't relax section: %E\n")); if (again) - *relax = true; + *relax = TRUE; } dot = size_input_section (prev, output_section_statement, output_section_statement->fill, dot); @@ -3305,7 +3350,7 @@ lang_size_sections (s, output_section_st lang_statement_union_type **prev; fill_type *fill; bfd_vma dot; - boolean *relax; + bfd_boolean *relax; { bfd_vma result; @@ -3520,7 +3565,7 @@ lang_set_startof () buf = xmalloc (10 + strlen (secname)); sprintf (buf, ".startof.%s", secname); - h = bfd_link_hash_lookup (link_info.hash, buf, false, false, true); + h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE); if (h != NULL && h->type == bfd_link_hash_undefined) { h->type = bfd_link_hash_defined; @@ -3529,7 +3574,7 @@ lang_set_startof () } sprintf (buf, ".sizeof.%s", secname); - h = bfd_link_hash_lookup (link_info.hash, buf, false, false, true); + h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE); if (h != NULL && h->type == bfd_link_hash_undefined) { unsigned opb; @@ -3552,23 +3597,23 @@ static void lang_finish () { struct bfd_link_hash_entry *h; - boolean warn; + bfd_boolean warn; if (link_info.relocateable || link_info.shared) - warn = false; + warn = FALSE; else - warn = true; + warn = TRUE; if (entry_symbol.name == (const char *) NULL) { /* No entry has been specified. Look for start, but don't warn if we don't find it. */ entry_symbol.name = "start"; - warn = false; + warn = FALSE; } h = bfd_link_hash_lookup (link_info.hash, entry_symbol.name, - false, false, true); + FALSE, FALSE, TRUE); if (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined || h->type == bfd_link_hash_defweak) @@ -3654,7 +3699,8 @@ lang_check () file = file->input_statement.next) { input_bfd = file->input_statement.the_bfd; - compatible = bfd_arch_get_compatible (input_bfd, output_bfd); + compatible = bfd_arch_get_compatible (input_bfd, output_bfd, + command_line.accept_unknown_input_arch); /* In general it is not possible to perform a relocatable link between differing object formats when the input @@ -3733,7 +3779,7 @@ lang_common () /* Place one common symbol in the correct section. */ -static boolean +static bfd_boolean lang_one_common (h, info) struct bfd_link_hash_entry *h; PTR info; @@ -3745,14 +3791,14 @@ lang_one_common (h, info) ldfile_output_machine); if (h->type != bfd_link_hash_common) - return true; + return TRUE; size = h->u.c.size; power_of_two = h->u.c.p->alignment_power; if (config.sort_common && power_of_two < (unsigned int) *(int *) info) - return true; + return TRUE; section = h->u.c.p->section; @@ -3779,7 +3825,7 @@ lang_one_common (h, info) if (config.map_file != NULL) { - static boolean header_printed; + static bfd_boolean header_printed; int len; char *name; char buf[50]; @@ -3788,7 +3834,7 @@ lang_one_common (h, info) { minfo (_("\nAllocating common symbols\n")); minfo (_("Common symbol size file\n\n")); - header_printed = true; + header_printed = TRUE; } name = demangle (h->root.string); @@ -3824,7 +3870,7 @@ lang_one_common (h, info) minfo ("%B\n", section->owner); } - return true; + return TRUE; } /* Run through the input files and ensure that every input section has @@ -3844,7 +3890,7 @@ lang_place_orphans () { if (s->output_section == (asection *) NULL) { - /* This section of the file is not attatched, root + /* This section of the file is not attached, root around for a sensible place for it to go. */ if (file->just_syms_flag) @@ -4027,7 +4073,7 @@ lang_add_output (name, from_script) if (!had_output_filename || !from_script) { output_filename = name; - had_output_filename = true; + had_output_filename = TRUE; } } @@ -4196,7 +4242,7 @@ lang_gc_sections () for (ulist = link_info.gc_sym_list; ulist; ulist = ulist->next) { h = bfd_link_hash_lookup (link_info.hash, ulist->name, - false, false, false); + FALSE, FALSE, FALSE); if (h != (struct bfd_link_hash_entry *) NULL && (h->type == bfd_link_hash_defined @@ -4228,7 +4274,7 @@ lang_process () /* Create a bfd for each input file. */ current_target = default_target; - open_input_bfds (statement_list.head, false); + open_input_bfds (statement_list.head, FALSE); link_info.gc_sym_list = &entry_symbol; if (entry_symbol.name == NULL) @@ -4308,13 +4354,13 @@ lang_process () if (command_line.relax) { /* Keep relaxing until bfd_relax_section gives up. */ - boolean relax_again; + bfd_boolean relax_again; do { lang_reset_memory_regions (); - relax_again = false; + relax_again = FALSE; /* Note: pe-dll.c does something like this also. If you find you need to change this code, you probably need to change @@ -4367,7 +4413,7 @@ void lang_add_wild (filespec, section_list, keep_sections) struct wildcard_spec *filespec; struct wildcard_list *section_list; - boolean keep_sections; + bfd_boolean keep_sections; { struct wildcard_list *curr, *next; lang_wild_statement_type *new; @@ -4378,7 +4424,7 @@ lang_add_wild (filespec, section_list, k section_list = curr, curr = next) { if (curr->spec.name != NULL && strcmp (curr->spec.name, "COMMON") == 0) - placed_commons = true; + placed_commons = TRUE; next = curr->next; curr->next = section_list; @@ -4389,12 +4435,12 @@ lang_add_wild (filespec, section_list, k if (strcmp (filespec->name, "*") == 0) filespec->name = NULL; else if (! wildcardp (filespec->name)) - lang_has_input_file = true; + lang_has_input_file = TRUE; } new = new_stat (lang_wild_statement, stat_ptr); new->filename = NULL; - new->filenames_sorted = false; + new->filenames_sorted = FALSE; if (filespec != NULL) { new->filename = filespec->name; @@ -4425,7 +4471,7 @@ lang_section_start (name, address) void lang_add_entry (name, cmdline) const char *name; - boolean cmdline; + bfd_boolean cmdline; { if (entry_symbol.name == NULL || cmdline @@ -4456,7 +4502,7 @@ lang_add_map (name) switch (*name) { case 'F': - map_option_f = true; + map_option_f = TRUE; break; } name++; @@ -4543,14 +4589,14 @@ lang_startup (name) } first_file->filename = name; first_file->local_sym_name = name; - first_file->real = true; + first_file->real = TRUE; startup_file = name; } void lang_float (maybe) - boolean maybe; + bfd_boolean maybe; { lang_float_flag = maybe; } @@ -4562,7 +4608,7 @@ lang_float (maybe) MEMSPEC is the name of the run-time region, or "*default*" if the statement didn't specify one. LMA_MEMSPEC is the name of the load-time region, or null if the statement didn't specify one. - HAVE_LMA_P is true if the statement had an explicit load address. + HAVE_LMA_P is TRUE if the statement had an explicit load address. It is an error to specify both a load region and a load address. */ @@ -4613,7 +4659,7 @@ lang_abs_symbol_at_beginning_of (secname { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (link_info.hash, name, true, true, true); + h = bfd_link_hash_lookup (link_info.hash, name, TRUE, TRUE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL) einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n")); @@ -4646,7 +4692,7 @@ lang_abs_symbol_at_end_of (secname, name { struct bfd_link_hash_entry *h; - h = bfd_link_hash_lookup (link_info.hash, name, true, true, true); + h = bfd_link_hash_lookup (link_info.hash, name, TRUE, TRUE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL) einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n")); @@ -4732,8 +4778,8 @@ void lang_new_phdr (name, type, filehdr, phdrs, at, flags) const char *name; etree_type *type; - boolean filehdr; - boolean phdrs; + bfd_boolean filehdr; + bfd_boolean phdrs; etree_type *at; etree_type *flags; { @@ -4812,7 +4858,7 @@ lang_record_phdrs () } secs[c] = os->bfd_section; ++c; - pl->used = true; + pl->used = TRUE; } } } @@ -4870,7 +4916,7 @@ lang_add_nocrossref (l) nocrossref_list = n; /* Set notice_all so that we get informed about all symbols. */ - link_info.notice_all = true; + link_info.notice_all = TRUE; } /* Overlay handling. We handle overlays with some static variables. */ @@ -5089,7 +5135,7 @@ lang_vers_match_lang_cplusplus (expr, sy if (!alt_sym) { /* cplus_demangle (also) returns NULL when it is not a C++ symbol. - Should we early out false in this case? */ + Should we early out FALSE in this case? */ result = fnmatch (expr->pattern, sym, 0) == 0; } else @@ -5116,7 +5162,7 @@ lang_vers_match_lang_java (expr, sym) if (!alt_sym) { /* cplus_demangle (also) returns NULL when it is not a Java symbol. - Should we early out false in this case? */ + Should we early out FALSE in this case? */ result = fnmatch (expr->pattern, sym, 0) == 0; } else diff -uprN binutils-2.13.90.0.16/ld/ldlang.h binutils-2.13.90.0.18/ld/ldlang.h --- binutils-2.13.90.0.16/ld/ldlang.h Thu Oct 10 09:16:57 2002 +++ binutils-2.13.90.0.18/ld/ldlang.h Mon Dec 16 12:22:53 2002 @@ -51,7 +51,7 @@ typedef struct memory_region_struct { bfd_size_type old_length; flagword flags; flagword not_flags; - boolean had_full_message; + bfd_boolean had_full_message; } lang_memory_region_type; typedef struct lang_statement_header_struct { @@ -109,7 +109,7 @@ enum section_type { struct lang_output_section_phdr_list { struct lang_output_section_phdr_list *next; const char *name; - boolean used; + bfd_boolean used; }; typedef struct lang_output_section_statement_struct { @@ -120,7 +120,7 @@ typedef struct lang_output_section_state union lang_statement_union *next; const char *name; - boolean processed; + bfd_boolean processed; asection *bfd_section; flagword flags; /* Or together of all input sections */ @@ -211,7 +211,7 @@ typedef struct lang_input_statement_stru bfd *the_bfd; - boolean closed; + bfd_boolean closed; file_ptr passive_position; /* Symbol table of the file. */ @@ -225,30 +225,30 @@ typedef struct lang_input_statement_stru /* Point to the next file, but skips archive contents */ union lang_statement_union *next_real_file; - boolean is_archive; + bfd_boolean is_archive; /* 1 means search a set of directories for this file. */ - boolean search_dirs_flag; + bfd_boolean search_dirs_flag; /* 1 means this is base file of incremental load. Do not load this file's text or data. Also default text_start to after this file's bss. */ - boolean just_syms_flag; + bfd_boolean just_syms_flag; /* Whether to search for this entry as a dynamic archive. */ - boolean dynamic; + bfd_boolean dynamic; /* Whether to include the entire contents of an archive. */ - boolean whole_archive; + bfd_boolean whole_archive; - boolean loaded; + bfd_boolean loaded; #if 0 unsigned int globals_in_this_file; #endif const char *target; - boolean real; + bfd_boolean real; } lang_input_statement_type; typedef struct { @@ -267,9 +267,9 @@ typedef struct { typedef struct lang_wild_statement_struct { lang_statement_header_type header; const char *filename; - boolean filenames_sorted; + bfd_boolean filenames_sorted; struct wildcard_list *section_list; - boolean keep_sections; + bfd_boolean keep_sections; lang_statement_list_type children; } lang_wild_statement_type; @@ -324,8 +324,8 @@ struct lang_phdr { struct lang_phdr *next; const char *name; unsigned long type; - boolean filehdr; - boolean phdrs; + bfd_boolean filehdr; + bfd_boolean phdrs; etree_type *at; etree_type *flags; }; @@ -359,111 +359,141 @@ extern struct unique_sections *unique_se extern lang_output_section_statement_type *abs_output_section; extern lang_statement_list_type lang_output_section_statement; -extern boolean lang_has_input_file; +extern bfd_boolean lang_has_input_file; extern etree_type *base; extern lang_statement_list_type *stat_ptr; -extern boolean delete_output_file_on_failure; +extern bfd_boolean delete_output_file_on_failure; extern struct bfd_sym_chain entry_symbol; extern const char *entry_section; -extern boolean entry_from_cmdline; +extern bfd_boolean entry_from_cmdline; extern lang_statement_list_type file_chain; -extern void lang_init PARAMS ((void)); +extern void lang_init + PARAMS ((void)); extern struct memory_region_struct *lang_memory_region_lookup PARAMS ((const char *const)); extern struct memory_region_struct *lang_memory_region_default PARAMS ((asection *)); -extern void lang_map PARAMS ((void)); -extern void lang_set_flags PARAMS ((lang_memory_region_type *, const char *, - int)); -extern void lang_add_output PARAMS ((const char *, int from_script)); +extern void lang_map + PARAMS ((void)); +extern void lang_set_flags + PARAMS ((lang_memory_region_type *, const char *, int)); +extern void lang_add_output + PARAMS ((const char *, int from_script)); extern lang_output_section_statement_type *lang_enter_output_section_statement PARAMS ((const char *output_section_statement_name, - etree_type * address_exp, + etree_type *address_exp, enum section_type sectype, bfd_vma block_value, etree_type *align, etree_type *subalign, etree_type *)); -extern void lang_final PARAMS ((void)); -extern void lang_process PARAMS ((void)); -extern void lang_section_start PARAMS ((const char *, union etree_union *)); -extern void lang_add_entry PARAMS ((const char *, boolean)); -extern void lang_add_target PARAMS ((const char *)); +extern void lang_final + PARAMS ((void)); +extern void lang_process + PARAMS ((void)); +extern void lang_section_start + PARAMS ((const char *, union etree_union *)); +extern void lang_add_entry + PARAMS ((const char *, bfd_boolean)); +extern void lang_add_target + PARAMS ((const char *)); extern void lang_add_wild - PARAMS ((struct wildcard_spec *, struct wildcard_list *, boolean)); -extern void lang_add_map PARAMS ((const char *)); -extern void lang_add_fill PARAMS ((fill_type *)); -extern lang_assignment_statement_type * lang_add_assignment PARAMS ((union etree_union *)); -extern void lang_add_attribute PARAMS ((enum statement_enum)); -extern void lang_startup PARAMS ((const char *)); -extern void lang_float PARAMS ((enum bfd_boolean)); + PARAMS ((struct wildcard_spec *, struct wildcard_list *, bfd_boolean)); +extern void lang_add_map + PARAMS ((const char *)); +extern void lang_add_fill + PARAMS ((fill_type *)); +extern lang_assignment_statement_type * lang_add_assignment + PARAMS ((union etree_union *)); +extern void lang_add_attribute + PARAMS ((enum statement_enum)); +extern void lang_startup + PARAMS ((const char *)); +extern void lang_float + PARAMS ((bfd_boolean)); extern void lang_leave_output_section_statement PARAMS ((fill_type *, const char *, struct lang_output_section_phdr_list *, const char *)); -extern void lang_abs_symbol_at_end_of PARAMS ((const char *, const char *)); -extern void lang_abs_symbol_at_beginning_of PARAMS ((const char *, - const char *)); -extern void lang_statement_append PARAMS ((struct statement_list *, - union lang_statement_union *, - union lang_statement_union **)); +extern void lang_abs_symbol_at_end_of + PARAMS ((const char *, const char *)); +extern void lang_abs_symbol_at_beginning_of + PARAMS ((const char *, const char *)); +extern void lang_statement_append + PARAMS ((struct statement_list *, union lang_statement_union *, + union lang_statement_union **)); extern void lang_for_each_input_file PARAMS ((void (*dothis) (lang_input_statement_type *))); extern void lang_for_each_file PARAMS ((void (*dothis) (lang_input_statement_type *))); -extern void lang_reset_memory_regions PARAMS ((void)); +extern void lang_reset_memory_regions + PARAMS ((void)); extern bfd_vma lang_do_assignments PARAMS ((lang_statement_union_type * s, lang_output_section_statement_type *output_section_statement, fill_type *fill, bfd_vma dot)); -#define LANG_FOR_EACH_INPUT_STATEMENT(statement) \ - lang_input_statement_type *statement; \ - for (statement = (lang_input_statement_type *)file_chain.head;\ - statement != (lang_input_statement_type *)NULL; \ - statement = (lang_input_statement_type *)statement->next)\ - -extern void lang_process PARAMS ((void)); -extern void ldlang_add_file PARAMS ((lang_input_statement_type *)); +#define LANG_FOR_EACH_INPUT_STATEMENT(statement) \ + lang_input_statement_type *statement; \ + for (statement = (lang_input_statement_type *) file_chain.head; \ + statement != (lang_input_statement_type *) NULL; \ + statement = (lang_input_statement_type *) statement->next) \ + +extern void lang_process + PARAMS ((void)); +extern void ldlang_add_file + PARAMS ((lang_input_statement_type *)); extern lang_output_section_statement_type *lang_output_section_find PARAMS ((const char * const)); extern lang_input_statement_type *lang_add_input_file PARAMS ((const char *name, lang_input_file_enum_type file_type, const char *target)); -extern void lang_add_keepsyms_file PARAMS ((const char *filename)); +extern void lang_add_keepsyms_file + PARAMS ((const char *filename)); extern lang_output_section_statement_type * - lang_output_section_statement_lookup PARAMS ((const char * const name)); -extern void ldlang_add_undef PARAMS ((const char *const name)); -extern void lang_add_output_format PARAMS ((const char *, const char *, - const char *, int from_script)); -extern void lang_list_init PARAMS ((lang_statement_list_type*)); -extern void lang_add_data PARAMS ((int type, union etree_union *)); + lang_output_section_statement_lookup + PARAMS ((const char * const name)); +extern void ldlang_add_undef + PARAMS ((const char *const name)); +extern void lang_add_output_format + PARAMS ((const char *, const char *, const char *, int from_script)); +extern void lang_list_init + PARAMS ((lang_statement_list_type*)); +extern void lang_add_data + PARAMS ((int type, union etree_union *)); extern void lang_add_reloc PARAMS ((bfd_reloc_code_real_type reloc, reloc_howto_type *howto, asection *section, const char *name, union etree_union *addend)); extern void lang_for_each_statement PARAMS ((void (*func) (lang_statement_union_type *))); -extern PTR stat_alloc PARAMS ((size_t size)); -extern void dprint_statement PARAMS ((lang_statement_union_type *, int)); +extern PTR stat_alloc + PARAMS ((size_t size)); +extern void dprint_statement + PARAMS ((lang_statement_union_type *, int)); extern bfd_vma lang_size_sections PARAMS ((lang_statement_union_type *s, lang_output_section_statement_type *output_section_statement, lang_statement_union_type **prev, fill_type *fill, - bfd_vma dot, boolean *relax)); -extern void lang_enter_group PARAMS ((void)); -extern void lang_leave_group PARAMS ((void)); + bfd_vma dot, bfd_boolean *relax)); +extern void lang_enter_group + PARAMS ((void)); +extern void lang_leave_group + PARAMS ((void)); extern void lang_add_section PARAMS ((lang_statement_list_type *ptr, asection *section, lang_output_section_statement_type *output, lang_input_statement_type *file)); extern void lang_new_phdr - PARAMS ((const char *, etree_type *, boolean, boolean, etree_type *, + PARAMS ((const char *, etree_type *, bfd_boolean, bfd_boolean, etree_type *, etree_type *)); -extern void lang_add_nocrossref PARAMS ((struct lang_nocrossref *)); -extern void lang_enter_overlay PARAMS ((etree_type *)); -extern void lang_enter_overlay_section PARAMS ((const char *)); +extern void lang_add_nocrossref + PARAMS ((struct lang_nocrossref *)); +extern void lang_enter_overlay + PARAMS ((etree_type *)); +extern void lang_enter_overlay_section + PARAMS ((const char *)); extern void lang_leave_overlay_section PARAMS ((fill_type *, struct lang_output_section_phdr_list *)); extern void lang_leave_overlay @@ -481,8 +511,11 @@ extern struct bfd_elf_version_deps *lang extern void lang_register_vers_node PARAMS ((const char *, struct bfd_elf_version_tree *, struct bfd_elf_version_deps *)); -boolean unique_section_p PARAMS ((const char *)); -extern void lang_add_unique PARAMS ((const char *)); -extern const char *lang_get_output_target PARAMS ((void)); +bfd_boolean unique_section_p + PARAMS ((const char *)); +extern void lang_add_unique + PARAMS ((const char *)); +extern const char *lang_get_output_target + PARAMS ((void)); #endif diff -uprN binutils-2.13.90.0.16/ld/ldmain.c binutils-2.13.90.0.18/ld/ldmain.c --- binutils-2.13.90.0.16/ld/ldmain.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/ldmain.c Tue Jan 21 10:21:34 2003 @@ -1,6 +1,6 @@ /* Main program of GNU linker. Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, - 2002 + 2002, 2003 Free Software Foundation, Inc. Written by Steve Chamberlain steve@cygnus.com @@ -55,6 +55,10 @@ extern PTR sbrk (); #endif #endif +#ifndef TARGET_SYSTEM_ROOT +#define TARGET_SYSTEM_ROOT "" +#endif + int main PARAMS ((int, char **)); static char *get_emulation PARAMS ((int, char **)); @@ -68,6 +72,9 @@ const char *output_filename = "a.out"; /* Name this program was invoked by. */ char *program_name; +/* The prefix for system library directories. */ +char *ld_sysroot; + /* The file that we're creating. */ bfd *output_bfd = 0; @@ -75,62 +82,62 @@ bfd *output_bfd = 0; int g_switch_value = 8; /* Nonzero means print names of input files as processed. */ -boolean trace_files; +bfd_boolean trace_files; /* Nonzero means same, but note open failures, too. */ -boolean trace_file_tries; +bfd_boolean trace_file_tries; /* Nonzero means version number was printed, so exit successfully instead of complaining if no input files are given. */ -boolean version_printed; +bfd_boolean version_printed; /* Nonzero means link in every member of an archive. */ -boolean whole_archive; +bfd_boolean whole_archive; -/* True if we should demangle symbol names. */ -boolean demangling; +/* TRUE if we should demangle symbol names. */ +bfd_boolean demangling; args_type command_line; ld_config_type config; static void remove_output PARAMS ((void)); -static boolean check_for_scripts_dir PARAMS ((char *dir, boolean append)); -static boolean add_archive_element PARAMS ((struct bfd_link_info *, bfd *, +static bfd_boolean check_for_scripts_dir PARAMS ((char *dir)); +static bfd_boolean add_archive_element PARAMS ((struct bfd_link_info *, bfd *, const char *)); -static boolean multiple_definition PARAMS ((struct bfd_link_info *, +static bfd_boolean multiple_definition PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma, bfd *, asection *, bfd_vma)); -static boolean multiple_common PARAMS ((struct bfd_link_info *, +static bfd_boolean multiple_common PARAMS ((struct bfd_link_info *, const char *, bfd *, enum bfd_link_hash_type, bfd_vma, bfd *, enum bfd_link_hash_type, bfd_vma)); -static boolean add_to_set PARAMS ((struct bfd_link_info *, +static bfd_boolean add_to_set PARAMS ((struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_reloc_code_real_type, bfd *, asection *, bfd_vma)); -static boolean constructor_callback PARAMS ((struct bfd_link_info *, - boolean constructor, +static bfd_boolean constructor_callback PARAMS ((struct bfd_link_info *, + bfd_boolean constructor, const char *name, bfd *, asection *, bfd_vma)); -static boolean warning_callback PARAMS ((struct bfd_link_info *, +static bfd_boolean warning_callback PARAMS ((struct bfd_link_info *, const char *, const char *, bfd *, asection *, bfd_vma)); static void warning_find_reloc PARAMS ((bfd *, asection *, PTR)); -static boolean undefined_symbol PARAMS ((struct bfd_link_info *, +static bfd_boolean undefined_symbol PARAMS ((struct bfd_link_info *, const char *, bfd *, - asection *, bfd_vma, boolean)); -static boolean reloc_overflow PARAMS ((struct bfd_link_info *, const char *, + asection *, bfd_vma, bfd_boolean)); +static bfd_boolean reloc_overflow PARAMS ((struct bfd_link_info *, const char *, const char *, bfd_vma, bfd *, asection *, bfd_vma)); -static boolean reloc_dangerous PARAMS ((struct bfd_link_info *, const char *, +static bfd_boolean reloc_dangerous PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma)); -static boolean unattached_reloc PARAMS ((struct bfd_link_info *, +static bfd_boolean unattached_reloc PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma)); -static boolean notice PARAMS ((struct bfd_link_info *, const char *, +static bfd_boolean notice PARAMS ((struct bfd_link_info *, const char *, bfd *, asection *, bfd_vma)); static struct bfd_link_callbacks link_callbacks = { @@ -189,6 +196,25 @@ main (argc, argv) xatexit (remove_output); +#ifdef TARGET_SYSTEM_ROOT_RELOCATABLE + ld_sysroot = make_relative_prefix (program_name, BINDIR, + TARGET_SYSTEM_ROOT); + if (ld_sysroot) + { + struct stat s; + int res = stat (ld_sysroot, &s) == 0 && S_ISDIR (s.st_mode); + if (!res) + { + free (ld_sysroot); + ld_sysroot = TARGET_SYSTEM_ROOT; + } + } + else + ld_sysroot = TARGET_SYSTEM_ROOT; +#else + ld_sysroot = TARGET_SYSTEM_ROOT; +#endif + /* Set the default BFD target based on the configured target. Doing this permits the linker to be configured for a particular target, and linked against a shared BFD library which was configured for @@ -207,20 +233,20 @@ main (argc, argv) #endif /* Initialize the data about options. */ - trace_files = trace_file_tries = version_printed = false; - whole_archive = false; - config.build_constructors = true; - config.dynamic_link = false; - config.has_shared = false; + trace_files = trace_file_tries = version_printed = FALSE; + whole_archive = FALSE; + config.build_constructors = TRUE; + config.dynamic_link = FALSE; + config.has_shared = FALSE; config.split_by_reloc = (unsigned) -1; config.split_by_file = (bfd_size_type) -1; - command_line.force_common_definition = false; - command_line.inhibit_common_definition = false; + command_line.force_common_definition = FALSE; + command_line.inhibit_common_definition = FALSE; command_line.interpreter = NULL; command_line.rpath = NULL; - command_line.warn_mismatch = true; - command_line.check_section_addresses = true; - command_line.multilib_dir = NULL; + command_line.warn_mismatch = TRUE; + command_line.check_section_addresses = TRUE; + command_line.accept_unknown_input_arch = FALSE; /* We initialize DEMANGLING based on the environment variable COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the @@ -229,58 +255,62 @@ main (argc, argv) interface by default. */ demangling = getenv ("COLLECT_NO_DEMANGLE") == NULL; - link_info.callbacks = &link_callbacks; - link_info.relocateable = false; - link_info.emitrelocations = false; - link_info.shared = false; - link_info.symbolic = false; - link_info.export_dynamic = false; - link_info.static_link = false; - link_info.traditional_format = false; - link_info.optimize = false; - link_info.no_undefined = false; - link_info.allow_shlib_undefined = false; - link_info.allow_multiple_definition = false; - link_info.allow_undefined_version = true; + link_info.relocateable = FALSE; + link_info.emitrelocations = FALSE; + link_info.task_link = FALSE; + link_info.shared = FALSE; + link_info.symbolic = FALSE; + link_info.export_dynamic = FALSE; + link_info.static_link = FALSE; + link_info.traditional_format = FALSE; + link_info.optimize = FALSE; + link_info.no_undefined = FALSE; + link_info.allow_shlib_undefined = FALSE; + link_info.allow_multiple_definition = FALSE; + link_info.allow_undefined_version = TRUE; + link_info.keep_memory = TRUE; + link_info.notice_all = FALSE; + link_info.nocopyreloc = FALSE; + link_info.new_dtags = FALSE; + link_info.combreloc = TRUE; + link_info.eh_frame_hdr = FALSE; + link_info.strip_discarded = TRUE; link_info.strip = strip_none; link_info.discard = discard_sec_merge; - link_info.keep_memory = true; - link_info.input_bfds = NULL; - link_info.create_object_symbols_section = NULL; - link_info.gc_sym_list = NULL; + link_info.common_skip_ar_aymbols = bfd_link_common_skip_none; + link_info.callbacks = &link_callbacks; link_info.hash = NULL; link_info.keep_hash = NULL; - link_info.notice_all = false; link_info.notice_hash = NULL; link_info.wrap_hash = NULL; - link_info.mpc860c0 = 0; + link_info.input_bfds = NULL; + link_info.create_object_symbols_section = NULL; + link_info.gc_sym_list = NULL; + link_info.base_file = NULL; /* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init and _fini symbols. We are compatible. */ link_info.init_function = "_init"; link_info.fini_function = "_fini"; - link_info.new_dtags = false; - link_info.eh_frame_hdr = false; - link_info.flags = (bfd_vma) 0; - link_info.flags_1 = (bfd_vma) 0; + link_info.mpc860c0 = 0; link_info.pei386_auto_import = -1; - link_info.pei386_runtime_pseudo_reloc = false; - link_info.combreloc = true; + link_info.pei386_runtime_pseudo_reloc = FALSE; link_info.spare_dynamic_tags = 5; - link_info.common_skip_ar_aymbols = bfd_link_common_skip_none; + link_info.flags = (bfd_vma) 0; + link_info.flags_1 = (bfd_vma) 0; ldfile_add_arch (""); - config.make_executable = true; - force_make_executable = false; - config.magic_demand_paged = true; - config.text_read_only = true; + config.make_executable = TRUE; + force_make_executable = FALSE; + config.magic_demand_paged = TRUE; + config.text_read_only = TRUE; emulation = get_emulation (argc, argv); ldemul_choose_mode (emulation); default_target = ldemul_choose_target (argc, argv); lang_init (); ldemul_before_parse (); - lang_has_input_file = false; + lang_has_input_file = FALSE; parse_args (argc, argv); ldemul_set_symbols (); @@ -327,34 +357,12 @@ main (argc, argv) char *s = ldemul_get_script (&isfile); if (isfile) - { - ldfile_open_command_file (s); - - if (saved_script_handle == NULL) - { - /* We thought there was an external linker script. But - we couldn't find it. Let's try again for the internal - one without command_line.multilib_dir. */ - char *saved = command_line.multilib_dir; - command_line.multilib_dir = NULL; - s = ldemul_get_script (&isfile); - command_line.multilib_dir = saved; - if (isfile) - { - /* It should never happen. */ - bfd_set_error (bfd_error_system_call); - einfo (_("%P%F: cannot open linker script file %s: %E\n"), - s); - } - } - } - - if (!isfile) - { + ldfile_open_command_file (s); + else + { lex_string = s; lex_redirect (s); } - parser_input = input_script; yyparse (); lex_string = NULL; @@ -395,7 +403,7 @@ main (argc, argv) lang_final (); - if (lang_has_input_file == false) + if (!lang_has_input_file) { if (version_printed) xexit (0); @@ -450,9 +458,9 @@ main (argc, argv) be reported in the exit status. (What non-fatal errors, if any, do we want to ignore for relocateable output?) */ - if (config.make_executable == false && force_make_executable == false) + if (!config.make_executable && !force_make_executable) { - if (trace_files == true) + if (trace_files) { einfo (_("%P: link errors found, deleting executable `%s'\n"), output_filename); @@ -570,10 +578,11 @@ get_emulation (argc, argv) else if (strcmp (argv[i], "-mips1") == 0 || strcmp (argv[i], "-mips2") == 0 || strcmp (argv[i], "-mips3") == 0 - || strcmp (argv[i], "-mips32") == 0 - || strcmp (argv[i], "-mips64") == 0 || strcmp (argv[i], "-mips4") == 0 - || strcmp (argv[i], "-mips5") == 0) + || strcmp (argv[i], "-mips5") == 0 + || strcmp (argv[i], "-mips32") == 0 + || strcmp (argv[i], "-mips32r2") == 0 + || strcmp (argv[i], "-mips64") == 0) { /* FIXME: The arguments -mips1, -mips2, -mips3, etc. are passed to the linker by some MIPS compilers. They @@ -601,18 +610,17 @@ get_emulation (argc, argv) } /* If directory DIR contains an "ldscripts" subdirectory, - add DIR to the library search path and return true, - else return false. */ + add DIR to the library search path and return TRUE, + else return FALSE. */ -static boolean -check_for_scripts_dir (dir, append) +static bfd_boolean +check_for_scripts_dir (dir) char *dir; - boolean append; { size_t dirlen; char *buf; struct stat s; - boolean res; + bfd_boolean res; dirlen = strlen (dir); /* sizeof counts the terminating NUL. */ @@ -622,7 +630,7 @@ check_for_scripts_dir (dir, append) res = stat (buf, &s) == 0 && S_ISDIR (s.st_mode); free (buf); if (res) - ldfile_add_library_path (dir, false, append); + ldfile_add_library_path (dir, FALSE); return res; } @@ -631,8 +639,11 @@ check_for_scripts_dir (dir, append) We look for the "ldscripts" directory in: SCRIPTDIR (passed from Makefile) + (adjusted according to the current location of the binary) + SCRIPTDIR (passed from Makefile) the dir where this program is (for using it from the build tree) - the dir where this program is/../lib (for installing the tool suite elsewhere) */ + the dir where this program is/../lib + (for installing the tool suite elsewhere) */ static void set_scripts_dir () @@ -640,32 +651,15 @@ set_scripts_dir () char *end, *dir; size_t dirlen; - if (command_line.multilib_dir != NULL) - { - boolean found; - - if (*command_line.multilib_dir == *slash) - { - found = check_for_scripts_dir (command_line.multilib_dir, - false); - } - else - { - dir = xmalloc (strlen (SCRIPTDIR) - + strlen (slash) - + strlen (command_line.multilib_dir) + 1); - sprintf (dir, "%s%s%s", SCRIPTDIR, slash, - command_line.multilib_dir); - - found = check_for_scripts_dir (dir, false); - free (dir); - } + dir = make_relative_prefix (program_name, BINDIR, SCRIPTDIR); + if (dir && check_for_scripts_dir (dir)) + /* Success. Don't free dir. */ + return; - if (found) - return; - } + if (dir) + free (dir); - if (check_for_scripts_dir (SCRIPTDIR, true)) + if (check_for_scripts_dir (SCRIPTDIR)) /* We've been installed normally. */ return; @@ -694,13 +688,13 @@ set_scripts_dir () strncpy (dir, program_name, dirlen); dir[dirlen] = '\0'; - if (check_for_scripts_dir (dir, true)) + if (check_for_scripts_dir (dir)) /* Don't free dir. */ return; /* Look for "ldscripts" in /../lib. */ strcpy (dir + dirlen, "/../lib"); - if (check_for_scripts_dir (dir, true)) + if (check_for_scripts_dir (dir)) return; /* Well, we tried. */ @@ -721,7 +715,7 @@ add_ysym (name) einfo (_("%P%F: bfd_hash_table_init failed: %E\n")); } - if (bfd_hash_lookup (link_info.notice_hash, name, true, true) + if (bfd_hash_lookup (link_info.notice_hash, name, TRUE, TRUE) == (struct bfd_hash_entry *) NULL) einfo (_("%P%F: bfd_hash_lookup failed: %E\n")); } @@ -741,7 +735,7 @@ add_wrap (name) 61)) einfo (_("%P%F: bfd_hash_table_init failed: %E\n")); } - if (bfd_hash_lookup (link_info.wrap_hash, name, true, true) == NULL) + if (bfd_hash_lookup (link_info.wrap_hash, name, TRUE, TRUE) == NULL) einfo (_("%P%F: bfd_hash_lookup failed: %E\n")); } @@ -799,7 +793,7 @@ add_keepsyms_file (filename) buf[len] = '\0'; - if (bfd_hash_lookup (link_info.keep_hash, buf, true, true) + if (bfd_hash_lookup (link_info.keep_hash, buf, TRUE, TRUE) == (struct bfd_hash_entry *) NULL) einfo (_("%P%F: bfd_hash_lookup for insertion failed: %E\n")); } @@ -816,7 +810,7 @@ add_keepsyms_file (filename) /* This is called when BFD has decided to include an archive member in a link. */ -static boolean +static bfd_boolean add_archive_element (info, abfd, name) struct bfd_link_info *info ATTRIBUTE_UNUSED; bfd *abfd; @@ -831,9 +825,9 @@ add_archive_element (info, abfd, name) input->the_bfd = abfd; input->asymbols = NULL; input->next = NULL; - input->just_syms_flag = false; - input->loaded = false; - input->search_dirs_flag = false; + input->just_syms_flag = FALSE; + input->loaded = FALSE; + input->search_dirs_flag = FALSE; /* FIXME: The following fields are not set: header.next, header.type, closed, passive_position, symbol_count, @@ -845,12 +839,12 @@ add_archive_element (info, abfd, name) if (config.map_file != (FILE *) NULL) { - static boolean header_printed; + static bfd_boolean header_printed; struct bfd_link_hash_entry *h; bfd *from; int len; - h = bfd_link_hash_lookup (link_info.hash, name, false, false, true); + h = bfd_link_hash_lookup (link_info.hash, name, FALSE, FALSE, TRUE); if (h == NULL) from = NULL; @@ -884,7 +878,7 @@ add_archive_element (info, abfd, name) sprintf (buf, _("Archive member included because of file (symbol)\n\n")); minfo ("%s", buf); - header_printed = true; + header_printed = TRUE; } if (bfd_my_archive (abfd) == NULL) @@ -923,13 +917,13 @@ add_archive_element (info, abfd, name) if (trace_files || trace_file_tries) info_msg ("%I\n", input); - return true; + return TRUE; } /* This is called when BFD has discovered a symbol which is defined multiple times. */ -static boolean +static bfd_boolean multiple_definition (info, name, obfd, osec, oval, nbfd, nsec, nval) struct bfd_link_info *info ATTRIBUTE_UNUSED; const char *name; @@ -951,7 +945,7 @@ multiple_definition (info, name, obfd, o || (nsec->output_section != NULL && ! bfd_is_abs_section (nsec) && bfd_is_abs_section (nsec->output_section))) - return true; + return TRUE; einfo (_("%X%C: multiple definition of `%T'\n"), nbfd, nsec, nval, name); @@ -964,7 +958,7 @@ multiple_definition (info, name, obfd, o command_line.relax = 0; } - return true; + return TRUE; } /* This is called when there is a definition of a common symbol, or @@ -972,7 +966,7 @@ multiple_definition (info, name, obfd, o or when two common symbols are found. We only do something if -warn-common was used. */ -static boolean +static bfd_boolean multiple_common (info, name, obfd, otype, osize, nbfd, ntype, nsize) struct bfd_link_info *info ATTRIBUTE_UNUSED; const char *name; @@ -984,7 +978,7 @@ multiple_common (info, name, obfd, otype bfd_vma nsize; { if (! config.warn_common) - return true; + return TRUE; if (ntype == bfd_link_hash_defined || ntype == bfd_link_hash_defweak @@ -1031,14 +1025,14 @@ multiple_common (info, name, obfd, otype } } - return true; + return TRUE; } /* This is called when BFD has discovered a set element. H is the entry in the linker hash table for the set. SECTION and VALUE represent a value which should be added to the set. */ -static boolean +static bfd_boolean add_to_set (info, h, reloc, abfd, section, value) struct bfd_link_info *info ATTRIBUTE_UNUSED; struct bfd_link_hash_entry *h; @@ -1052,7 +1046,7 @@ add_to_set (info, h, reloc, abfd, sectio h->root.string); if (! config.build_constructors) - return true; + return TRUE; ldctor_add_set_entry (h, reloc, (const char *) NULL, section, value); @@ -1065,7 +1059,7 @@ add_to_set (info, h, reloc, abfd, sectio ourselves. */ } - return true; + return TRUE; } /* This is called when BFD has discovered a constructor. This is only @@ -1073,10 +1067,10 @@ add_to_set (info, h, reloc, abfd, sectio constructors in some more clever fashion. This is similar to adding an element to a set, but less general. */ -static boolean +static bfd_boolean constructor_callback (info, constructor, name, abfd, section, value) struct bfd_link_info *info; - boolean constructor; + bfd_boolean constructor; const char *name; bfd *abfd; asection *section; @@ -1090,7 +1084,7 @@ constructor_callback (info, constructor, einfo (_("%P: warning: global constructor %s used\n"), name); if (! config.build_constructors) - return true; + return TRUE; /* Ensure that BFD_RELOC_CTOR exists now, so that we can give a useful error message. */ @@ -1107,7 +1101,7 @@ constructor_callback (info, constructor, else strcpy (s, "__DTOR_LIST__"); - h = bfd_link_hash_lookup (info->hash, set_name, true, true, true); + h = bfd_link_hash_lookup (info->hash, set_name, TRUE, TRUE, TRUE); if (h == (struct bfd_link_hash_entry *) NULL) einfo (_("%P%F: bfd_link_hash_lookup failed: %E\n")); if (h->type == bfd_link_hash_new) @@ -1120,14 +1114,14 @@ constructor_callback (info, constructor, } ldctor_add_set_entry (h, BFD_RELOC_CTOR, name, section, value); - return true; + return TRUE; } /* A structure used by warning_callback to pass information through bfd_map_over_sections. */ struct warning_callback_info { - boolean found; + bfd_boolean found; const char *warning; const char *symbol; asymbol **asymbols; @@ -1135,7 +1129,7 @@ struct warning_callback_info { /* This is called when there is a reference to a warning symbol. */ -static boolean +static bfd_boolean warning_callback (info, warning, symbol, abfd, section, address) struct bfd_link_info *info ATTRIBUTE_UNUSED; const char *warning; @@ -1148,7 +1142,7 @@ warning_callback (info, warning, symbol, have a cleaner interface, but what? */ if (! config.warn_multiple_gp && strcmp (warning, "using multiple gp values") == 0) - return true; + return TRUE; if (section != NULL) einfo ("%C: %s\n", abfd, section, address, warning); @@ -1187,7 +1181,7 @@ warning_callback (info, warning, symbol, } } - info.found = false; + info.found = FALSE; info.warning = warning; info.symbol = symbol; info.asymbols = asymbols; @@ -1200,7 +1194,7 @@ warning_callback (info, warning, symbol, free (asymbols); } - return true; + return TRUE; } /* This is called by warning_callback for each section. It checks the @@ -1246,7 +1240,7 @@ warning_find_reloc (abfd, sec, iarg) { /* We found a reloc for the symbol we are looking for. */ einfo ("%C: %s\n", abfd, sec, q->address, info->warning); - info->found = true; + info->found = TRUE; break; } } @@ -1256,14 +1250,14 @@ warning_find_reloc (abfd, sec, iarg) /* This is called when an undefined symbol is found. */ -static boolean +static bfd_boolean undefined_symbol (info, name, abfd, section, address, fatal) struct bfd_link_info *info ATTRIBUTE_UNUSED; const char *name; bfd *abfd; asection *section; bfd_vma address; - boolean fatal ATTRIBUTE_UNUSED; + bfd_boolean fatal ATTRIBUTE_UNUSED; { static char *error_name; static unsigned int error_count; @@ -1284,10 +1278,10 @@ undefined_symbol (info, name, abfd, sect einfo (_("%F%P: bfd_hash_table_init failed: %E\n")); } - if (bfd_hash_lookup (hash, name, false, false) != NULL) - return true; + if (bfd_hash_lookup (hash, name, FALSE, FALSE) != NULL) + return TRUE; - if (bfd_hash_lookup (hash, name, true, true) == NULL) + if (bfd_hash_lookup (hash, name, TRUE, TRUE) == NULL) einfo (_("%F%P: bfd_hash_lookup failed: %E\n")); } @@ -1331,12 +1325,12 @@ undefined_symbol (info, name, abfd, sect abfd, name); } - return true; + return TRUE; } /* This is called when a reloc overflows. */ -static boolean +static bfd_boolean reloc_overflow (info, name, reloc_name, addend, abfd, section, address) struct bfd_link_info *info ATTRIBUTE_UNUSED; const char *name; @@ -1354,12 +1348,12 @@ reloc_overflow (info, name, reloc_name, if (addend != 0) einfo ("+%v", addend); einfo ("\n"); - return true; + return TRUE; } /* This is called when a dangerous relocation is made. */ -static boolean +static bfd_boolean reloc_dangerous (info, message, abfd, section, address) struct bfd_link_info *info ATTRIBUTE_UNUSED; const char *message; @@ -1372,13 +1366,13 @@ reloc_dangerous (info, message, abfd, se else einfo ("%X%C:", abfd, section, address); einfo (_("dangerous relocation: %s\n"), message); - return true; + return TRUE; } /* This is called when a reloc is being generated attached to a symbol that is not being output. */ -static boolean +static bfd_boolean unattached_reloc (info, name, abfd, section, address) struct bfd_link_info *info ATTRIBUTE_UNUSED; const char *name; @@ -1391,14 +1385,14 @@ unattached_reloc (info, name, abfd, sect else einfo ("%X%C:", abfd, section, address); einfo (_(" reloc refers to symbol `%T' which is not being output\n"), name); - return true; + return TRUE; } /* This is called if link_info.notice_all is set, or when a symbol in link_info.notice_hash is found. Symbols are put in notice_hash using the -y option. */ -static boolean +static bfd_boolean notice (info, name, abfd, section, value) struct bfd_link_info *info; const char *name; @@ -1408,7 +1402,7 @@ notice (info, name, abfd, section, value { if (! info->notice_all || (info->notice_hash != NULL - && bfd_hash_lookup (info->notice_hash, name, false, false) != NULL)) + && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL)) { if (bfd_is_und_section (section)) einfo ("%B: reference to %s\n", abfd, name); @@ -1419,5 +1413,5 @@ notice (info, name, abfd, section, value if (command_line.cref || nocrossref_list != NULL) add_cref (name, abfd, section, value); - return true; + return TRUE; } diff -uprN binutils-2.13.90.0.16/ld/ldmain.h binutils-2.13.90.0.18/ld/ldmain.h --- binutils-2.13.90.0.16/ld/ldmain.h Thu Mar 15 14:56:55 2001 +++ binutils-2.13.90.0.18/ld/ldmain.h Tue Jan 21 10:21:34 2003 @@ -1,5 +1,5 @@ /* ldmain.h - - Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1999 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2002, 2003 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -23,13 +23,14 @@ #define LDMAIN_H extern char *program_name; +extern char *ld_sysroot; extern bfd *output_bfd; extern char *default_target; -extern boolean trace_files; -extern boolean trace_file_tries; -extern boolean version_printed; -extern boolean whole_archive; -extern boolean demangling; +extern bfd_boolean trace_files; +extern bfd_boolean trace_file_tries; +extern bfd_boolean version_printed; +extern bfd_boolean whole_archive; +extern bfd_boolean demangling; extern int g_switch_value; extern const char *output_filename; extern struct bfd_link_info link_info; diff -uprN binutils-2.13.90.0.16/ld/ldmisc.c binutils-2.13.90.0.18/ld/ldmisc.c --- binutils-2.13.90.0.16/ld/ldmisc.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/ldmisc.c Mon Dec 16 12:22:53 2002 @@ -71,7 +71,7 @@ vfinfo (fp, fmt, arg) const char *fmt; va_list arg; { - boolean fatal = false; + bfd_boolean fatal = FALSE; while (*fmt != '\0') { @@ -97,7 +97,7 @@ vfinfo (fp, fmt, arg) case 'X': /* no object output, fail return */ - config.make_executable = false; + config.make_executable = FALSE; break; case 'V': @@ -182,7 +182,7 @@ vfinfo (fp, fmt, arg) case 'F': /* Error is fatal. */ - fatal = true; + fatal = TRUE; break; case 'P': @@ -250,7 +250,7 @@ vfinfo (fp, fmt, arg) const char *filename; const char *functionname; unsigned int linenumber; - boolean discard_last; + bfd_boolean discard_last; abfd = va_arg (arg, bfd *); section = va_arg (arg, asection *); @@ -281,12 +281,12 @@ vfinfo (fp, fmt, arg) lfinfo (fp, "%B(%s+0x%v)", abfd, section->name, offset); - discard_last = true; + discard_last = TRUE; if (bfd_find_nearest_line (abfd, section, asymbols, offset, &filename, &functionname, &linenumber)) { - boolean need_colon = true; + bfd_boolean need_colon = TRUE; if (functionname != NULL && fmt[-1] == 'C') { @@ -300,7 +300,7 @@ vfinfo (fp, fmt, arg) { lfinfo (fp, _(": In function `%T':\n"), functionname); - need_colon = false; + need_colon = FALSE; last_bfd = abfd; if (last_file != NULL) @@ -312,7 +312,7 @@ vfinfo (fp, fmt, arg) free (last_function); last_function = xstrdup (functionname); } - discard_last = false; + discard_last = FALSE; } if (filename != NULL) @@ -364,9 +364,9 @@ vfinfo (fp, fmt, arg) } if (config.fatal_warnings) - config.make_executable = false; + config.make_executable = FALSE; - if (fatal == true) + if (fatal) xexit (1); } diff -uprN binutils-2.13.90.0.16/ld/ldwrite.c binutils-2.13.90.0.18/ld/ldwrite.c --- binutils-2.13.90.0.16/ld/ldwrite.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/ldwrite.c Mon Dec 16 12:22:53 2002 @@ -49,7 +49,7 @@ build_link_order (statement) asection *output_section; struct bfd_link_order *link_order; bfd_vma value; - boolean big_endian = false; + bfd_boolean big_endian = FALSE; output_section = statement->data_statement.output_section; ASSERT (output_section->owner == output_bfd); @@ -70,24 +70,24 @@ build_link_order (statement) endianness are big endian, so we must swap here if the input file is little endian. */ if (bfd_big_endian (output_bfd)) - big_endian = true; + big_endian = TRUE; else if (bfd_little_endian (output_bfd)) - big_endian = false; + big_endian = FALSE; else { - boolean swap; + bfd_boolean swap; - swap = false; + swap = FALSE; if (command_line.endian == ENDIAN_BIG) - big_endian = true; + big_endian = TRUE; else if (command_line.endian == ENDIAN_LITTLE) { - big_endian = false; - swap = true; + big_endian = FALSE; + swap = TRUE; } else if (command_line.endian == ENDIAN_UNSET) { - big_endian = true; + big_endian = TRUE; { LANG_FOR_EACH_INPUT_STATEMENT (s) { @@ -95,8 +95,8 @@ build_link_order (statement) { if (bfd_little_endian (s->the_bfd)) { - big_endian = false; - swap = true; + big_endian = FALSE; + swap = TRUE; } break; } @@ -226,7 +226,7 @@ build_link_order (statement) case lang_input_section_enum: /* Create a new link_order in the output section with this attached */ - if (statement->input_section.ifile->just_syms_flag == false) + if (!statement->input_section.ifile->just_syms_flag) { asection *i = statement->input_section.section; asection *output_section = i->output_section; @@ -320,7 +320,7 @@ clone_section (abfd, s, name, count) if ((sname = bfd_get_unique_section_name (abfd, templ, count)) == NULL || (n = bfd_make_section_anyway (abfd, sname)) == NULL || (h = bfd_link_hash_lookup (link_info.hash, - sname, true, true, false)) == NULL) + sname, TRUE, TRUE, FALSE)) == NULL) { einfo (_("%F%P: clone section failed: %E\n")); /* Silence gcc warnings. einfo exits, so we never reach here. */ diff -uprN binutils-2.13.90.0.16/ld/lexsup.c binutils-2.13.90.0.18/ld/lexsup.c --- binutils-2.13.90.0.16/ld/lexsup.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/lexsup.c Tue Jan 21 10:21:34 2003 @@ -134,7 +134,10 @@ int parsing_defsym = 0; #define OPTION_NO_DEFINE_COMMON (OPTION_SPARE_DYNAMIC_TAGS + 1) #define OPTION_NOSTDLIB (OPTION_NO_DEFINE_COMMON + 1) #define OPTION_NO_OMAGIC (OPTION_NOSTDLIB + 1) -#define OPTION_MULTILIB_DIR (OPTION_NO_OMAGIC + 1) +#define OPTION_STRIP_DISCARDED (OPTION_NO_OMAGIC + 1) +#define OPTION_NO_STRIP_DISCARDED (OPTION_STRIP_DISCARDED + 1) +#define OPTION_ACCEPT_UNKNOWN_INPUT_ARCH (OPTION_NO_STRIP_DISCARDED + 1) +#define OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH (OPTION_ACCEPT_UNKNOWN_INPUT_ARCH + 1) /* The long options. This structure is used for both the option parsing and the help text. */ @@ -241,6 +244,10 @@ static const struct ld_option ld_options 's', NULL, N_("Strip all symbols"), TWO_DASHES }, { {"strip-debug", no_argument, NULL, 'S'}, 'S', NULL, N_("Strip debugging symbols"), TWO_DASHES }, + { {"strip-discarded", no_argument, NULL, OPTION_STRIP_DISCARDED}, + '\0', NULL, N_("Strip symbols in discarded sections"), TWO_DASHES }, + { {"no-strip-discarded", no_argument, NULL, OPTION_NO_STRIP_DISCARDED}, + '\0', NULL, N_("Do not strip symbols in discarded sections"), TWO_DASHES }, { {"trace", no_argument, NULL, 't'}, 't', NULL, N_("Trace file opens"), TWO_DASHES }, { {"script", required_argument, NULL, 'T'}, @@ -269,6 +276,10 @@ static const struct ld_option ld_options '(', NULL, N_("Start a group"), TWO_DASHES }, { {"end-group", no_argument, NULL, ')'}, ')', NULL, N_("End a group"), TWO_DASHES }, + { {"accept-unknown-input-arch", no_argument, NULL, OPTION_ACCEPT_UNKNOWN_INPUT_ARCH}, + '\0', NULL, N_("Accept input files whose architecture cannot be determined"), TWO_DASHES }, + { {"no-accept-unknown-input-arch", no_argument, NULL, OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH}, + '\0', NULL, N_("Reject input files whose architecture is unknown"), TWO_DASHES }, { {"assert", required_argument, NULL, OPTION_ASSERT}, '\0', N_("KEYWORD"), N_("Ignored for SunOS compatibility"), ONE_DASH }, { {"Bdynamic", no_argument, NULL, OPTION_CALL_SHARED}, @@ -318,8 +329,6 @@ static const struct ld_option ld_options '\0', N_("SYMBOL"), N_("Call SYMBOL at load-time"), ONE_DASH }, { {"Map", required_argument, NULL, OPTION_MAP}, '\0', N_("FILE"), N_("Write a map file"), ONE_DASH }, - { {"multilib-dir", required_argument, NULL, OPTION_MULTILIB_DIR}, - '\0', N_("PATH"), N_("Specify a target directory"), TWO_DASHES }, { {"no-define-common", no_argument, NULL, OPTION_NO_DEFINE_COMMON}, '\0', NULL, N_("Do not define Common storage"), TWO_DASHES }, { {"no-demangle", no_argument, NULL, OPTION_NO_DEMANGLE }, @@ -600,10 +609,10 @@ parse_args (argc, argv) ``use only shared libraries'' but, then, we don't currently support shared libraries on HP/UX anyhow. */ if (strcmp (optarg, "archive") == 0) - config.dynamic_link = false; + config.dynamic_link = FALSE; else if (strcmp (optarg, "shared") == 0 || strcmp (optarg, "default") == 0) - config.dynamic_link = true; + config.dynamic_link = TRUE; else einfo (_("%P%F: unrecognized -a option `%s'\n"), optarg); break; @@ -632,17 +641,17 @@ parse_args (argc, argv) yyparse (); break; case OPTION_CALL_SHARED: - config.dynamic_link = true; + config.dynamic_link = TRUE; break; case OPTION_NON_SHARED: - config.dynamic_link = false; + config.dynamic_link = FALSE; break; case OPTION_CREF: - command_line.cref = true; - link_info.notice_all = true; + command_line.cref = TRUE; + link_info.notice_all = TRUE; break; case 'd': - command_line.force_common_definition = true; + command_line.force_common_definition = TRUE; break; case OPTION_DEFSYM: lex_string = optarg; @@ -654,7 +663,7 @@ parse_args (argc, argv) lex_string = NULL; break; case OPTION_DEMANGLE: - demangling = true; + demangling = TRUE; if (optarg != NULL) style = optarg; break; @@ -672,14 +681,14 @@ parse_args (argc, argv) command_line.endian = ENDIAN_LITTLE; break; case OPTION_EMBEDDED_RELOCS: - command_line.embedded_relocs = true; + command_line.embedded_relocs = TRUE; break; case OPTION_EXPORT_DYNAMIC: case 'E': /* HP/UX compatibility. */ - link_info.export_dynamic = true; + link_info.export_dynamic = TRUE; break; case 'e': - lang_add_entry (optarg, true); + lang_add_entry (optarg, TRUE); break; case 'f': if (command_line.auxiliary_filters == NULL) @@ -708,7 +717,7 @@ parse_args (argc, argv) command_line.filter_shlib = optarg; break; case OPTION_FORCE_EXE_SUFFIX: - command_line.force_exe_suffix = true; + command_line.force_exe_suffix = TRUE; break; case 'G': { @@ -722,7 +731,7 @@ parse_args (argc, argv) /* Ignore. */ break; case OPTION_GC_SECTIONS: - command_line.gc_sections = true; + command_line.gc_sections = TRUE; break; case OPTION_HELP: init_demangler (style, NULL, demangler); @@ -730,7 +739,7 @@ parse_args (argc, argv) xexit (0); break; case 'L': - ldfile_add_library_path (optarg, true, true); + ldfile_add_library_path (optarg, TRUE); break; case 'l': lang_add_input_file (optarg, lang_input_file_is_l_enum, @@ -746,55 +755,55 @@ parse_args (argc, argv) config.map_filename = optarg; break; case 'N': - config.text_read_only = false; - config.magic_demand_paged = false; - config.dynamic_link = false; + config.text_read_only = FALSE; + config.magic_demand_paged = FALSE; + config.dynamic_link = FALSE; break; case OPTION_NO_OMAGIC: - config.text_read_only = true; - config.magic_demand_paged = true; - /* NB/ Does not set dynamic_link to true. + config.text_read_only = TRUE; + config.magic_demand_paged = TRUE; + /* NB/ Does not set dynamic_link to TRUE. Use --call-shared or -Bdynamic for this. */ break; case 'n': - config.magic_demand_paged = false; - config.dynamic_link = false; + config.magic_demand_paged = FALSE; + config.dynamic_link = FALSE; break; case OPTION_NO_DEFINE_COMMON: - command_line.inhibit_common_definition = true; + command_line.inhibit_common_definition = TRUE; break; case OPTION_NO_DEMANGLE: - demangling = false; + demangling = FALSE; break; case OPTION_NO_GC_SECTIONS: - command_line.gc_sections = false; + command_line.gc_sections = FALSE; break; case OPTION_NO_KEEP_MEMORY: - link_info.keep_memory = false; + link_info.keep_memory = FALSE; break; case OPTION_NO_UNDEFINED: - link_info.no_undefined = true; + link_info.no_undefined = TRUE; break; case OPTION_ALLOW_SHLIB_UNDEFINED: - link_info.allow_shlib_undefined = true; + link_info.allow_shlib_undefined = TRUE; break; case OPTION_ALLOW_MULTIPLE_DEFINITION: - link_info.allow_multiple_definition = true; + link_info.allow_multiple_definition = TRUE; break; case OPTION_NO_UNDEFINED_VERSION: - link_info.allow_undefined_version = false; + link_info.allow_undefined_version = FALSE; break; case OPTION_NO_WARN_MISMATCH: - command_line.warn_mismatch = false; + command_line.warn_mismatch = FALSE; break; case OPTION_NOINHIBIT_EXEC: - force_make_executable = true; + force_make_executable = TRUE; break; case OPTION_NOSTDLIB: - config.only_cmd_line_lib_dirs = true; + config.only_cmd_line_lib_dirs = TRUE; break; case OPTION_NO_WHOLE_ARCHIVE: - whole_archive = false; + whole_archive = FALSE; break; case 'O': /* FIXME "-O " used to set the address of @@ -804,7 +813,7 @@ parse_args (argc, argv) getopt can't handle two args to an option without kludges. */ /* Enable optimizations of output files. */ - link_info.optimize = strtoul (optarg, NULL, 0) ? true : false; + link_info.optimize = strtoul (optarg, NULL, 0) ? TRUE : FALSE; break; case 'o': lang_add_output (optarg, 0); @@ -813,7 +822,7 @@ parse_args (argc, argv) lang_add_output_format (optarg, (char *) NULL, (char *) NULL, 0); break; case 'q': - link_info.emitrelocations = true; + link_info.emitrelocations = TRUE; break; case 'i': case 'r': @@ -828,11 +837,11 @@ parse_args (argc, argv) and will seg-fault the next time around. */ einfo(_("%P%F: bad -rpath option\n")); - link_info.relocateable = true; - config.build_constructors = false; - config.magic_demand_paged = false; - config.text_read_only = false; - config.dynamic_link = false; + link_info.relocateable = TRUE; + config.build_constructors = FALSE; + config.magic_demand_paged = FALSE; + config.text_read_only = FALSE; + config.dynamic_link = FALSE; break; case 'R': /* The GNU linker traditionally uses -R to mean to include @@ -909,7 +918,7 @@ parse_args (argc, argv) } break; case OPTION_RELAX: - command_line.relax = true; + command_line.relax = TRUE; break; case OPTION_RETAIN_SYMBOLS_FILE: add_keepsyms_file (optarg); @@ -920,9 +929,15 @@ parse_args (argc, argv) case 's': link_info.strip = strip_all; break; + case OPTION_STRIP_DISCARDED: + link_info.strip_discarded = TRUE; + break; + case OPTION_NO_STRIP_DISCARDED: + link_info.strip_discarded = FALSE; + break; case OPTION_SHARED: if (config.has_shared) - link_info.shared = true; + link_info.shared = TRUE; else einfo (_("%P%F: -shared not supported\n")); break; @@ -931,25 +946,22 @@ parse_args (argc, argv) command_line.soname = optarg; break; case OPTION_SORT_COMMON: - config.sort_common = true; + config.sort_common = TRUE; break; case OPTION_STATS: - config.stats = true; + config.stats = TRUE; break; case OPTION_SYMBOLIC: - link_info.symbolic = true; + link_info.symbolic = TRUE; break; case 't': - trace_files = true; + trace_files = TRUE; break; case 'T': ldfile_open_command_file (optarg); parser_input = input_script; yyparse (); break; - case OPTION_MULTILIB_DIR: - command_line.multilib_dir = xstrdup (optarg); - break; case OPTION_SECTION_START: { char *optarg2; @@ -992,17 +1004,17 @@ parse_args (argc, argv) set_section_start (".text", optarg); break; case OPTION_TRADITIONAL_FORMAT: - link_info.traditional_format = true; + link_info.traditional_format = TRUE; break; case OPTION_TASK_LINK: - link_info.task_link = true; + link_info.task_link = TRUE; /* Fall through - do an implied -r option. */ case OPTION_UR: - link_info.relocateable = true; - config.build_constructors = true; - config.magic_demand_paged = false; - config.text_read_only = false; - config.dynamic_link = false; + link_info.relocateable = TRUE; + config.build_constructors = TRUE; + config.magic_demand_paged = FALSE; + config.text_read_only = FALSE; + config.dynamic_link = FALSE; break; case 'u': ldlang_add_undef (optarg); @@ -1011,20 +1023,20 @@ parse_args (argc, argv) if (optarg != NULL) lang_add_unique (optarg); else - config.unique_orphan_sections = true; + config.unique_orphan_sections = TRUE; break; case OPTION_VERBOSE: ldversion (1); - version_printed = true; - trace_file_tries = true; + version_printed = TRUE; + trace_file_tries = TRUE; break; case 'v': ldversion (0); - version_printed = true; + version_printed = TRUE; break; case 'V': ldversion (1); - version_printed = true; + version_printed = TRUE; break; case OPTION_VERSION: ldversion (2); @@ -1051,25 +1063,25 @@ parse_args (argc, argv) command_line.version_exports_section = optarg; break; case OPTION_WARN_COMMON: - config.warn_common = true; + config.warn_common = TRUE; break; case OPTION_WARN_CONSTRUCTORS: - config.warn_constructors = true; + config.warn_constructors = TRUE; break; case OPTION_WARN_FATAL: - config.fatal_warnings = true; + config.fatal_warnings = TRUE; break; case OPTION_WARN_MULTIPLE_GP: - config.warn_multiple_gp = true; + config.warn_multiple_gp = TRUE; break; case OPTION_WARN_ONCE: - config.warn_once = true; + config.warn_once = TRUE; break; case OPTION_WARN_SECTION_ALIGN: - config.warn_section_align = true; + config.warn_section_align = TRUE; break; case OPTION_WHOLE_ARCHIVE: - whole_archive = true; + whole_archive = TRUE; break; case OPTION_WRAP: add_wrap (optarg); @@ -1107,10 +1119,16 @@ parse_args (argc, argv) config.split_by_file = 1; break; case OPTION_CHECK_SECTIONS: - command_line.check_section_addresses = true; + command_line.check_section_addresses = TRUE; break; case OPTION_NO_CHECK_SECTIONS: - command_line.check_section_addresses = false; + command_line.check_section_addresses = FALSE; + break; + case OPTION_ACCEPT_UNKNOWN_INPUT_ARCH: + command_line.accept_unknown_input_arch = TRUE; + break; + case OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH: + command_line.accept_unknown_input_arch = FALSE; break; case '(': if (ingroup) @@ -1140,7 +1158,7 @@ parse_args (argc, argv) /* Convert words to bytes. */ link_info.mpc860c0 = words * 4; } - command_line.relax = true; + command_line.relax = TRUE; break; case OPTION_INIT: @@ -1177,7 +1195,7 @@ set_default_dirlist (dirlist_ptr) if (p != NULL) *p = '\0'; if (*dirlist_ptr != '\0') - ldfile_add_library_path (dirlist_ptr, true, true); + ldfile_add_library_path (dirlist_ptr, TRUE); if (p == NULL) break; dirlist_ptr = p + 1; @@ -1210,13 +1228,13 @@ help () { if (ld_options[i].doc != NULL) { - boolean comma; + bfd_boolean comma; int len; unsigned j; printf (" "); - comma = false; + comma = FALSE; len = 2; j = i; @@ -1237,7 +1255,7 @@ help () printf ("%s", _(ld_options[j].arg)); len += strlen (_(ld_options[j].arg)); } - comma = true; + comma = TRUE; } ++j; } @@ -1266,7 +1284,7 @@ help () printf (" %s", _(ld_options[j].arg)); len += 1 + strlen (_(ld_options[j].arg)); } - comma = true; + comma = TRUE; } ++j; } diff -uprN binutils-2.13.90.0.16/ld/mri.c binutils-2.13.90.0.18/ld/mri.c --- binutils-2.13.90.0.16/ld/mri.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/ld/mri.c Tue Jan 21 10:21:34 2003 @@ -149,7 +149,7 @@ mri_draw_tree () /* Now build the statements for the ldlang machine. */ - /* Attatch the addresses of any which have addresses, + /* Attach the addresses of any which have addresses, and add the ones not mentioned. */ if (address != (struct section_name_struct *) NULL) { @@ -243,8 +243,8 @@ mri_draw_tree () tmp->next = NULL; tmp->spec.name = p->name; tmp->spec.exclude_name_list = NULL; - tmp->spec.sorted = false; - lang_add_wild (NULL, tmp, false); + tmp->spec.sorted = FALSE; + lang_add_wild (NULL, tmp, FALSE); /* If there is an alias for this section, add it too. */ for (aptr = alias; aptr; aptr = aptr->next) @@ -254,8 +254,8 @@ mri_draw_tree () tmp->next = NULL; tmp->spec.name = aptr->name; tmp->spec.exclude_name_list = NULL; - tmp->spec.sorted = false; - lang_add_wild (NULL, tmp, false); + tmp->spec.sorted = FALSE; + lang_add_wild (NULL, tmp, FALSE); } lang_leave_output_section_statement diff -uprN binutils-2.13.90.0.16/ld/pe-dll.c binutils-2.13.90.0.18/ld/pe-dll.c --- binutils-2.13.90.0.16/ld/pe-dll.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/pe-dll.c Tue Jan 21 10:21:34 2003 @@ -1,5 +1,5 @@ /* Routines to help build PEI-format DLLs (Win32 etc) - Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Written by DJ Delorie This file is part of GLD, the Gnu Linker. @@ -59,7 +59,7 @@ code modifications). 2. This is done completely in bounds of the PE specification (to be fair, - there's a place where it pokes nose out of, but in practise it works). + there's a place where it pokes nose out of, but in practice it works). So, resulting module can be used with any other PE compiler/linker. 3. Auto-import is fully compatible with standard import method and they @@ -74,7 +74,7 @@ The obvious and only way to get rid of dllimport insanity is to make client access variable directly in the DLL, bypassing extra dereference. I.e., - whenever client contains someting like + whenever client contains something like mov dll_var,%eax, @@ -82,7 +82,7 @@ DLL. The aim is to make OS loader do so, and than make ld help with that. Import section of PE made following way: there's a vector of structures each describing imports from particular DLL. Each such structure points - to two other parellel vectors: one holding imported names, and one which + to two other parallel vectors: one holding imported names, and one which will hold address of corresponding imported name. So, the solution is de-vectorize these structures, making import locations be sparse and pointing directly into code. Before continuing, it is worth a note that, @@ -104,7 +104,7 @@ above: PE specification rambles that name vector (OriginalFirstThunk) should run in parallel with addresses vector (FirstThunk), i.e. that they should have same number of elements and terminated with zero. We violate - this, since FirstThunk points directly into machine code. But in practise, + this, since FirstThunk points directly into machine code. But in practice, OS loader implemented the sane way: it goes thru OriginalFirstThunk and puts addresses to FirstThunk, not something else. It once again should be noted that dll and symbol name structures are reused across fixup entries @@ -115,7 +115,7 @@ in windows9x kernel32.dll, so if you use it, you have two IMAGE_IMPORT_DESCRIPTORS for kernel32.dll). Yet other question is whether referencing the same PE structures several times is valid. The answer is why - not, prohibitting that (detecting violation) would require more work on + not, prohibiting that (detecting violation) would require more work on behalf of loader than not doing it. See also: ld/emultempl/pe.em. */ @@ -223,6 +223,9 @@ static autofilter_entry_type autofilter_ { "_cygwin_crt0_common@8", 21 }, { "_cygwin_noncygwin_dll_entry@12", 30 }, { "impure_ptr", 10 }, + { "_pei386_runtime_relocator", 25 }, + { "do_pseudo_reloc", 15 }, + { "cygwin_crt0", 11 }, { NULL, 0 } }; @@ -590,7 +593,7 @@ process_def_file (abfd, info) sprintf (name, "%s%s", U("_imp_"), sn); blhe = bfd_link_hash_lookup (info->hash, name, - false, false, false); + FALSE, FALSE, FALSE); free (name); if (blhe && blhe->type == bfd_link_hash_defined) @@ -721,7 +724,7 @@ process_def_file (abfd, info) blhe = bfd_link_hash_lookup (info->hash, name, - false, false, true); + FALSE, FALSE, TRUE); if (blhe && (blhe->type == bfd_link_hash_defined @@ -936,7 +939,7 @@ fill_exported_offsets (abfd, info) blhe = bfd_link_hash_lookup (info->hash, name, - false, false, true); + FALSE, FALSE, TRUE); if (blhe && (blhe->type == bfd_link_hash_defined)) exported_symbol_offsets[i] = blhe->u.def.value; @@ -1822,7 +1825,7 @@ make_one (exp, parent) id5 = quick_section (abfd, ".idata$5", SEC_HAS_CONTENTS, 2); id4 = quick_section (abfd, ".idata$4", SEC_HAS_CONTENTS, 2); id6 = quick_section (abfd, ".idata$6", SEC_HAS_CONTENTS, 2); - + if (*exp->internal_name == '@') { if (! exp->flag_data) @@ -2026,7 +2029,7 @@ make_import_fixup_mark (rel) bh = NULL; bfd_coff_link_add_one_symbol (&link_info, abfd, fixup_name, BSF_GLOBAL, current_sec, /* sym->section, */ - rel->address, NULL, true, false, &bh); + rel->address, NULL, TRUE, FALSE, &bh); if (0) { @@ -2216,7 +2219,7 @@ pe_create_import_fixup (rel, s, addend) add_bfd_to_link (b, b->filename, &link_info); /* If we ever use autoimport, we have to cast text section writable. */ - config.text_read_only = false; + config.text_read_only = FALSE; } if (addend == 0 || link_info.pei386_runtime_pseudo_reloc) @@ -2244,7 +2247,7 @@ pe_create_import_fixup (rel, s, addend) add_bfd_to_link (b, b->filename, &link_info); } runtime_pseudo_relocs_created++; - } + } else { einfo (_("%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"), @@ -2376,7 +2379,7 @@ pe_process_import_defs (output_bfd, link { def_file_export exp; struct bfd_link_hash_entry *blhe; - int lead_at = (*pe_def_file->imports[i].internal_name == '@'); + int lead_at = (*pe_def_file->imports[i].internal_name == '@'); /* See if we need this import. */ char *name = (char *) xmalloc (strlen (pe_def_file->imports[i].internal_name) + 2 + 6); @@ -2386,7 +2389,7 @@ pe_process_import_defs (output_bfd, link sprintf (name, "%s%s",U (""), pe_def_file->imports[i].internal_name); blhe = bfd_link_hash_lookup (link_info->hash, name, - false, false, false); + FALSE, FALSE, FALSE); if (!blhe || (blhe && blhe->type != bfd_link_hash_undefined)) { @@ -2398,7 +2401,7 @@ pe_process_import_defs (output_bfd, link pe_def_file->imports[i].internal_name); blhe = bfd_link_hash_lookup (link_info->hash, name, - false, false, false); + FALSE, FALSE, FALSE); } free (name); @@ -2418,7 +2421,7 @@ pe_process_import_defs (output_bfd, link exp.hint = exp.ordinal >= 0 ? exp.ordinal : 0; exp.flag_private = 0; exp.flag_constant = 0; - exp.flag_data = 0; + exp.flag_data = pe_def_file->imports[i].data; exp.flag_noname = exp.name ? 0 : 1; one = make_one (&exp, output_bfd); add_bfd_to_link (one, one->filename, link_info); @@ -2435,8 +2438,8 @@ pe_process_import_defs (output_bfd, link } /* We were handed a *.DLL file. Parse it and turn it into a set of - IMPORTS directives in the def file. Return true if the file was - handled, false if not. */ + IMPORTS directives in the def file. Return TRUE if the file was + handled, FALSE if not. */ static unsigned int pe_get16 (abfd, where) @@ -2484,16 +2487,23 @@ pe_as32 (ptr) return b[0] + (b[1] << 8) + (b[2] << 16) + (b[3] << 24); } -boolean +bfd_boolean pe_implied_import_dll (filename) const char *filename; { bfd *dll; unsigned long pe_header_offset, opthdr_ofs, num_entries, i; unsigned long export_rva, export_size, nsections, secptr, expptr; + unsigned long exp_funcbase; unsigned char *expdata, *erva; unsigned long name_rvas, ordinals, nexp, ordbase; const char *dll_name; + /* Initialization with start > end guarantees that is_data + will not be set by mistake, and avoids compiler warning. */ + unsigned long data_start = 1; + unsigned long data_end = 0; + unsigned long bss_start = 1; + unsigned long bss_end = 0; /* No, I can't use bfd here. kernel32.dll puts its export table in the middle of the .rdata section. */ @@ -2501,27 +2511,23 @@ pe_implied_import_dll (filename) if (!dll) { einfo ("%Xopen %s: %s\n", filename, bfd_errmsg (bfd_get_error ())); - return false; + return FALSE; } /* PEI dlls seem to be bfd_objects. */ if (!bfd_check_format (dll, bfd_object)) { einfo ("%X%s: this doesn't appear to be a DLL\n", filename); - return false; + return FALSE; } - dll_name = filename; - for (i = 0; filename[i]; i++) - if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') - dll_name = filename + i + 1; - + /* Get pe_header, optional header and numbers of export entries. */ pe_header_offset = pe_get32 (dll, 0x3c); opthdr_ofs = pe_header_offset + 4 + 20; num_entries = pe_get32 (dll, opthdr_ofs + 92); if (num_entries < 1) /* No exports. */ - return false; + return FALSE; export_rva = pe_get32 (dll, opthdr_ofs + 96); export_size = pe_get32 (dll, opthdr_ofs + 100); @@ -2530,6 +2536,7 @@ pe_implied_import_dll (filename) pe_get16 (dll, pe_header_offset + 4 + 16)); expptr = 0; + /* Get the rva and size of the export section. */ for (i = 0; i < nsections; i++) { char sname[8]; @@ -2550,6 +2557,40 @@ pe_implied_import_dll (filename) } } + /* Scan sections and store the base and size of the + data and bss segments in data/base_start/end. */ + for (i = 0; i < nsections; i++) + { + unsigned long secptr1 = secptr + 40 * i; + unsigned long vsize = pe_get32 (dll, secptr1 + 8); + unsigned long vaddr = pe_get32 (dll, secptr1 + 12); + unsigned long flags = pe_get32 (dll, secptr1 + 36); + char sec_name[9]; + + sec_name[8] = '\0'; + bfd_seek (dll, (file_ptr) secptr1 + 0, SEEK_SET); + bfd_bread (sec_name, (bfd_size_type) 8, dll); + + if (strcmp(sec_name,".data") == 0) + { + data_start = vaddr; + data_end = vaddr + vsize; + + if (pe_dll_extra_pe_debug) + printf ("%s %s: 0x%08lx-0x%08lx (0x%08lx)\n", + __FUNCTION__, sec_name, vaddr, vaddr + vsize, flags); + } + else if (strcmp (sec_name,".bss") == 0) + { + bss_start = vaddr; + bss_end = vaddr + vsize; + + if (pe_dll_extra_pe_debug) + printf ("%s %s: 0x%08lx-0x%08lx (0x%08lx)\n", + __FUNCTION__, sec_name, vaddr, vaddr + vsize, flags); + } + } + expdata = (unsigned char *) xmalloc (export_size); bfd_seek (dll, (file_ptr) expptr, SEEK_SET); bfd_bread (expdata, (bfd_size_type) export_size, dll); @@ -2562,17 +2603,44 @@ pe_implied_import_dll (filename) name_rvas = pe_as32 (expdata + 32); ordinals = pe_as32 (expdata + 36); ordbase = pe_as32 (expdata + 16); + exp_funcbase = pe_as32 (expdata + 28); + + /* Use internal dll name instead of filename + to enable symbolic dll linking. */ + dll_name = pe_as32 (expdata + 12) + erva; + /* Iterate through the list of symbols. */ for (i = 0; i < nexp; i++) { + /* Pointer to the names vector. */ unsigned long name_rva = pe_as32 (erva + name_rvas + i * 4); def_file_import *imp; - - imp = def_file_add_import (pe_def_file, erva + name_rva, dll_name, - i, 0); + /* Pointer to the function address vector. */ + unsigned long func_rva = pe_as32 (erva + exp_funcbase + i * 4); + int is_data = 0; + + /* Skip unwanted symbols, which are + exported in buggy auto-import releases. */ + if (strncmp (erva + name_rva, "_nm_", 4) != 0) + { + /* is_data is true if the address is in the data or bss segment. */ + is_data = + (func_rva >= data_start && func_rva < data_end) + || (func_rva >= bss_start && func_rva < bss_end); + + imp = def_file_add_import (pe_def_file, erva + name_rva, + dll_name, i, 0); + /* Mark symbol type. */ + imp->data = is_data; + + if (pe_dll_extra_pe_debug) + printf ("%s dll-name: %s sym: %s addr: 0x%lx %s\n", + __FUNCTION__, dll_name, erva + name_rva, + func_rva, is_data ? "(data)" : ""); + } } - return true; + return TRUE; } /* These are the main functions, called from the emulation. The first diff -uprN binutils-2.13.90.0.16/ld/pe-dll.h binutils-2.13.90.0.18/ld/pe-dll.h --- binutils-2.13.90.0.16/ld/pe-dll.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/pe-dll.h Mon Dec 16 12:22:53 2002 @@ -35,20 +35,29 @@ extern int pe_dll_warn_dup_exports; extern int pe_dll_compat_implib; extern int pe_dll_extra_pe_debug; -extern void pe_dll_id_target PARAMS ((const char *)); -extern void pe_dll_add_excludes PARAMS ((const char *, const int)); -extern void pe_dll_generate_def_file PARAMS ((const char *)); -extern void pe_dll_generate_implib PARAMS ((def_file *, const char *)); -extern void pe_process_import_defs PARAMS ((bfd *, struct bfd_link_info *)); -extern boolean pe_implied_import_dll PARAMS ((const char *)); -extern void pe_dll_build_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern void pe_exe_build_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern void pe_dll_fill_sections PARAMS ((bfd *, struct bfd_link_info *)); -extern void pe_exe_fill_sections PARAMS ((bfd *, struct bfd_link_info *)); - -extern void pe_walk_relocs_of_symbol PARAMS ((struct bfd_link_info * info, - const char *name, - int (*cb) (arelent *, asection *))); - -extern void pe_create_import_fixup PARAMS ((arelent * rel, asection *, int)); +extern void pe_dll_id_target + PARAMS ((const char *)); +extern void pe_dll_add_excludes + PARAMS ((const char *, const int)); +extern void pe_dll_generate_def_file + PARAMS ((const char *)); +extern void pe_dll_generate_implib + PARAMS ((def_file *, const char *)); +extern void pe_process_import_defs + PARAMS ((bfd *, struct bfd_link_info *)); +extern bfd_boolean pe_implied_import_dll + PARAMS ((const char *)); +extern void pe_dll_build_sections + PARAMS ((bfd *, struct bfd_link_info *)); +extern void pe_exe_build_sections + PARAMS ((bfd *, struct bfd_link_info *)); +extern void pe_dll_fill_sections + PARAMS ((bfd *, struct bfd_link_info *)); +extern void pe_exe_fill_sections + PARAMS ((bfd *, struct bfd_link_info *)); +extern void pe_walk_relocs_of_symbol + PARAMS ((struct bfd_link_info * info, const char *name, + int (*cb) (arelent *, asection *))); +extern void pe_create_import_fixup + PARAMS ((arelent * rel, asection *, int)); #endif /* PE_DLL_H */ diff -uprN binutils-2.13.90.0.16/ld/scripttempl/elf32msp430.sc binutils-2.13.90.0.18/ld/scripttempl/elf32msp430.sc --- binutils-2.13.90.0.16/ld/scripttempl/elf32msp430.sc Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/scripttempl/elf32msp430.sc Tue Jan 21 10:21:34 2003 @@ -0,0 +1,188 @@ +cat < text} + + .data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))} + { + ${RELOCATING+ PROVIDE (__data_start = .) ; } + ${RELOCATING+. = ALIGN(2);} + *(.data) + ${RELOCATING+. = ALIGN(2);} + *(.gnu.linkonce.d*) + ${RELOCATING+. = ALIGN(2);} + ${RELOCATING+ _edata = . ; } + } ${RELOCATING+ > data} + + /* Bootloader. */ + .bootloader ${RELOCATING-0} : + { + ${RELOCATING+ PROVIDE (__boot_start = .) ; } + *(.bootloader) + ${RELOCATING+. = ALIGN(2);} + *(.bootloader.*) + } ${RELOCATING+ > bootloader} + + /* Information memory. */ + .infomem ${RELOCATING-0} : + { + *(.infomem) + ${RELOCATING+. = ALIGN(2);} + *(.infomem.*) + } ${RELOCATING+ > infomem} + + /* Information memory (not loaded into MPU). */ + .infomemnobits ${RELOCATING-0} : + { + *(.infomemnobits) + ${RELOCATING+. = ALIGN(2);} + *(.infomemnobits.*) + } ${RELOCATING+ > infomemnobits} + + .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} : + { + ${RELOCATING+ PROVIDE (__bss_start = .) ; } + *(.bss) + *(COMMON) + ${RELOCATING+ PROVIDE (__bss_end = .) ; } + ${RELOCATING+ _end = . ; } + } ${RELOCATING+ > data} + + .noinit ${RELOCATING+ SIZEOF(.bss) + ADDR(.bss)} : + { + ${RELOCATING+ PROVIDE (__noinit_start = .) ; } + *(.noinit) + *(COMMON) + ${RELOCATING+ PROVIDE (__noinit_end = .) ; } + ${RELOCATING+ _end = . ; } + } ${RELOCATING+ > data} + + .vectors ${RELOCATING-0}: + { + ${RELOCATING+ PROVIDE (__vectors_start = .) ; } + *(.vectors*) + ${RELOCATING+ _vectors_end = . ; } + } ${RELOCATING+ > vectors} + + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + PROVIDE (__stack = ${STACK}) ; +} +EOF diff -uprN binutils-2.13.90.0.16/ld/scripttempl/elf32msp430_3.sc binutils-2.13.90.0.18/ld/scripttempl/elf32msp430_3.sc --- binutils-2.13.90.0.16/ld/scripttempl/elf32msp430_3.sc Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/scripttempl/elf32msp430_3.sc Tue Jan 21 10:21:34 2003 @@ -0,0 +1,157 @@ +cat < text} + + .data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))} + { + ${RELOCATING+ PROVIDE (__data_start = .) ; } + *(.data) + *(.gnu.linkonce.d*) + ${RELOCATING+. = ALIGN(2);} + ${RELOCATING+ _edata = . ; } + } ${RELOCATING+ > data} + + .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} : + { + ${RELOCATING+ PROVIDE (__bss_start = .) ; } + *(.bss) + *(COMMON) + ${RELOCATING+ PROVIDE (__bss_end = .) ; } + ${RELOCATING+ _end = . ; } + } ${RELOCATING+ > data} + + .noinit ${RELOCATING+ SIZEOF(.bss) + ADDR(.bss)} : + { + ${RELOCATING+ PROVIDE (__noinit_start = .) ; } + *(.noinit) + *(COMMON) + ${RELOCATING+ PROVIDE (__noinit_end = .) ; } + ${RELOCATING+ _end = . ; } + } ${RELOCATING+ > data} + + .vectors ${RELOCATING-0}: + { + ${RELOCATING+ PROVIDE (__vectors_start = .) ; } + *(.vectors*) + ${RELOCATING+ _vectors_end = . ; } + } ${RELOCATING+ > vectors} + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info) *(.gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + PROVIDE (__stack = ${STACK}) ; +} +EOF diff -uprN binutils-2.13.90.0.16/ld/scripttempl/iq2000.sc binutils-2.13.90.0.18/ld/scripttempl/iq2000.sc --- binutils-2.13.90.0.16/ld/scripttempl/iq2000.sc Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/scripttempl/iq2000.sc Tue Jan 21 10:21:34 2003 @@ -0,0 +1,443 @@ +# +# Unusual variables checked by this code: +# NOP - four byte opcode for no-op (defaults to 0) +# DATA_ADDR - if end-of-text-plus-one-page isn't right for data start +# INITIAL_READONLY_SECTIONS - at start of data segment +# OTHER_READONLY_SECTIONS - other than .text .init .rodata ... +# (e.g., .PARISC.milli) +# OTHER_TEXT_SECTIONS - these get put in .text when relocating +# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ... +# (e.g., .PARISC.global) +# OTHER_BSS_SECTIONS - other than .bss .sbss ... +# OTHER_SECTIONS - at the end +# EXECUTABLE_SYMBOLS - symbols that must be defined for an +# executable (e.g., _DYNAMIC_LINK) +# TEXT_START_SYMBOLS - symbols that appear at the start of the +# .text section. +# DATA_START_SYMBOLS - symbols that appear at the start of the +# .data section. +# OTHER_GOT_SYMBOLS - symbols defined just before .got. +# OTHER_GOT_SECTIONS - sections just after .got. +# OTHER_SDATA_SECTIONS - sections just after .sdata. +# OTHER_BSS_SYMBOLS - symbols that appear at the start of the +# .bss section besides __bss_start. +# DATA_PLT - .plt should be in data segment, not text segment. +# BSS_PLT - .plt should be in bss segment +# TEXT_DYNAMIC - .dynamic in text segment, not data segment. +# EMBEDDED - whether this is for an embedded system. +# SHLIB_TEXT_START_ADDR - if set, add to SIZEOF_HEADERS to set +# start address of shared library. +# INPUT_FILES - INPUT command of files to always include +# WRITABLE_RODATA - if set, the .rodata section should be writable +# INIT_START, INIT_END - statements just before and just after +# combination of .init sections. +# FINI_START, FINI_END - statements just before and just after +# combination of .fini sections. +# +# When adding sections, do note that the names of some sections are used +# when specifying the start address of the next. +# + +# Many sections come in three flavours. There is the 'real' section, +# like ".data". Then there are the per-procedure or per-variable +# sections, generated by -ffunction-sections and -fdata-sections in GCC, +# and useful for --gc-sections, which for a variable "foo" might be +# ".data.foo". Then there are the linkonce sections, for which the linker +# eliminates duplicates, which are named like ".gnu.linkonce.d.foo". +# The exact correspondences are: +# +# Section Linkonce section +# .text .gnu.linkonce.t.foo +# .rodata .gnu.linkonce.r.foo +# .data .gnu.linkonce.d.foo +# .bss .gnu.linkonce.b.foo +# .sdata .gnu.linkonce.s.foo +# .sbss .gnu.linkonce.sb.foo +# .sdata2 .gnu.linkonce.s2.foo +# .sbss2 .gnu.linkonce.sb2.foo +# +# Each of these can also have corresponding .rel.* and .rela.* sections. + +test -z "$ENTRY" && ENTRY=_start +test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT} +test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT} +if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi +test -z "${ELFSIZE}" && ELFSIZE=32 +test -z "${ALIGNMENT}" && ALIGNMENT="${ELFSIZE} / 8" +test "$LD_FLAG" = "N" && DATA_ADDR=. +INTERP=".interp ${RELOCATING-0} : { *(.interp) }" +PLT=".plt ${RELOCATING-0} : { *(.plt) }" +DYNAMIC=".dynamic ${RELOCATING-0} : { *(.dynamic) }" +RODATA=".rodata ${RELOCATING-0} : { *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)} }" +SBSS2=".sbss2 ${RELOCATING-0} : { *(.sbss2) ${RELOCATING+*(.sbss2.*)} ${RELOCATING+*(.gnu.linkonce.sb2.*)} }" +SDATA2=".sdata2 ${RELOCATING-0} : { *(.sdata2) ${RELOCATING+*(.sdata2.*)} ${RELOCATING+*(.gnu.linkonce.s2.*)} }" +CTOR=".ctors ${CONSTRUCTING-0} : + { + ${CONSTRUCTING+${CTOR_START}} + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + + KEEP (*crtbegin.o(.ctors)) + + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + + KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + ${CONSTRUCTING+${CTOR_END}} + }" + +DTOR=" .dtors ${CONSTRUCTING-0} : + { + ${CONSTRUCTING+${DTOR_START}} + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o $OTHER_EXCLUDE_FILES) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + ${CONSTRUCTING+${DTOR_END}} + }" + +# if this is for an embedded system, don't add SIZEOF_HEADERS. +if [ -z "$EMBEDDED" ]; then + test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR} + SIZEOF_HEADERS" +else + test -z "${TEXT_BASE_ADDRESS}" && TEXT_BASE_ADDRESS="${TEXT_START_ADDR}" +fi + +cat < ${TEXT_MEMORY}} + /* Constants. */ + .const : { *(.const) - } - .cinit ${RELOCATING+ SIZEOF(.const) + ADDR(.const)} : - { - ${RELOCATING+ cinit = .;} - *(.cinit) - LONG(0); - } - .text ${RELOCATING+ SIZEOF(.cinit) + ADDR(.cinit)} : { - ${RELOCATING+ .text = .;} + } ${RELOCATING+ > ${TEXT_MEMORY}} + /* Program code. */ + .text : { + ${RELOCATING+ __text = .;} ${RELOCATING+ *(.init)} *(.text) ${CONSTRUCTING+ ___CTOR_LIST__ = .;} @@ -60,33 +110,42 @@ SECTIONS ${CONSTRUCTING+ LONG(0)} ${CONSTRUCTING+ ___DTOR_END__ = .;} ${RELOCATING+ *(.fini)} - ${RELOCATING+ etext = .;} - ${RELOCATING+ _etext = etext;} - } - .stack ${RELOCATING+ SIZEOF(.text) + ADDR(.text)} : + ${RELOCATING+ __etext = .;} + } ${RELOCATING+ > ${TEXT_MEMORY}} + /* Global initialised variables. */ + .data : + { + ${RELOCATING+ __data = .;} + *(.data) + ${RELOCATING+ __edata = .;} + } ${RELOCATING+ > ${DATA_MEMORY}} + /* Global uninitialised variables. */ + .bss : { + ${RELOCATING+ __bss = .;} + *(.bss) + *(COMMON) + ${RELOCATING+ __end = .;} + } ${RELOCATING+ > ${DATA_MEMORY}} + /* Heap. */ + .heap : { + ${RELOCATING+ __heap = .;} + ${RELOCATING+ . += __HEAP_SIZE}; + } ${RELOCATING+ > ${DATA_MEMORY}} + /* Stack (grows upward). */ + .stack : + { + ${RELOCATING+ __stack = .;} *(.stack) ${RELOCATING+ . = . + __STACK_SIZE}; - } - .sysmem ${RELOCATING+ SIZEOF(.stack) + ADDR(.stack)} : - { - *(.sysmem) - } - .heap ${RELOCATING+ SIZEOF(.sysmem) + ADDR(.sysmem)} : - { - ${RELOCATING+ . += __SYSMEM_SIZE - SIZEOF(.sysmem)}; - } - ${RELOCATING- ${INIT}} - ${RELOCATING- ${FINI}} - .stab 0 ${RELOCATING+(NOLOAD)} : + } ${RELOCATING+ > ${DATA_MEMORY}} + .stab 0 ${RELOCATING+(NOLOAD)} : { [ .stab ] } - .stabstr 0 ${RELOCATING+(NOLOAD)} : + .stabstr 0 ${RELOCATING+(NOLOAD)} : { [ .stabstr ] } -/* The TI tools sets cinit to -1 if the ram model is used. */ - ${RELOCATING+ cinit = SIZEOF(.cinit) == 1 ? cinit : -1;} } EOF diff -uprN binutils-2.13.90.0.16/ld/sysdep.h binutils-2.13.90.0.18/ld/sysdep.h --- binutils-2.13.90.0.16/ld/sysdep.h Thu Mar 15 14:56:58 2001 +++ binutils-2.13.90.0.18/ld/sysdep.h Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* sysdep.h -- handle host dependencies for the GNU linker - Copyright 1995, 1996, 1997, 1999 Free Software Foundation, Inc. + Copyright 1995, 1996, 1997, 1999, 2002 Free Software Foundation, Inc. This file is part of GLD, the Gnu Linker. @@ -48,6 +48,30 @@ extern char *strrchr (); #include #endif +/* for PATH_MAX */ +#ifdef HAVE_LIMITS_H +#include +#endif +/* for MAXPATHLEN */ +#ifdef HAVE_SYS_PARAM_H +#include +#endif +#ifdef PATH_MAX +# define LD_PATHMAX PATH_MAX +#else +# ifdef MAXPATHLEN +# define LD_PATHMAX MAXPATHLEN +# else +# define LD_PATHMAX 1024 +# endif +#endif + +#ifdef HAVE_REALPATH +# define REALPATH(a,b) realpath (a, b) +#else +# define REALPATH(a,b) NULL +#endif + #ifdef USE_BINARY_FOPEN #include "fopen-bin.h" #else diff -uprN binutils-2.13.90.0.16/ld/testsuite/ChangeLog binutils-2.13.90.0.18/ld/testsuite/ChangeLog --- binutils-2.13.90.0.16/ld/testsuite/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/ld/testsuite/ChangeLog Tue Jan 21 10:21:34 2003 @@ -1,3 +1,84 @@ +2003-01-20 Alan Modra + + * ld-srec/srec.exp (run_srec_test): Pass --traditional-format to ld. + +2003-01-18 Jakub Jelinek + + * ld-ia64/tlspic1.s: Add tests for IE in shared libraries. + * ld-ia64/tlspic.rd: Adjust. + * ld-ia64/tlspic.dd: Adjust. + * ld-ia64/tlspic.sd: Adjust. + +2003-01-16 Jakub Jelinek + + * ld-ia64/ia64.exp: New. + * ld-ia64/tlsbin.dd: New test. + * ld-ia64/tlsbinpic.s: New test. + * ld-ia64/tlsbin.rd: New test. + * ld-ia64/tlsbin.s: New test. + * ld-ia64/tlsbin.sd: New test. + * ld-ia64/tlsbin.td: New test. + * ld-ia64/tlsg.s: New test. + * ld-ia64/tlsg.sd: New test. + * ld-ia64/tlslib.s: New test. + * ld-ia64/tlspic1.s: New test. + * ld-ia64/tlspic2.s: New test. + * ld-ia64/tlspic.dd: New test. + * ld-ia64/tlspic.rd: New test. + * ld-ia64/tlspic.sd: New test. + * ld-ia64/tlspic.td: New test. + +2003-01-02 Richard Sandiford + + * ld-mips-elf/mips-elf-flags.exp: Add -mips4 to a -mgp64 test. + +2003-01-02 Richard Sandiford + + * ld-mips-elf/jr.s: New file. + * ld-mips-elf/mips-elf-flags.exp: New test. + +2002-12-18 Ralf Habacker + + * ld-auto-import: New directory. + * ld-auto-import/auto-import.exp: Test the auto importing direct + from a dll functionality. + * ld-auto-import/client.c: Source code for test. + * ld-auto-import/dll.c: Likewise. + +2002-12-12 Alexandre Oliva + + * ld-mips-elf/mips-elf.exp: Remove branch-misc-2 test. + * ld-mips-elf/branch-misc-2.d: Removed. + +2002-12-10 Jason Thorpe + + * lib/ld-lib.exp (is_elf_format): Match NetBSD ELF targets. + +2002-12-03 Nick Clifton + + * ld-powerpc/powerpc.exp (ppcelftests): Add apuinfo merging + test. + * ld-powerpc/apuinfo1.s: New assembler source file. + * ld-powerpc/apuinfo2.s: New assembler source file. + * ld-powerpc/apuinfo.rd: New expected output file. + +2002-12-01 Stephane Carrez + + Fix PR savannah/1417: + * ld-m68hc11/bug-1417.s: New test. + * ld-m68hc11/bug-1417.d: Likewise. + +2002-11-28 Jakub Jelinek + + * ld-i386/tlsnopic.rd: Change NOTYPE to TLS for UND sg* symbols. + +2002-11-28 Kaz Kojima + + * ld-sh/refdbg-0-dso.d: New test. + * ld-sh/refdbg-1.d: Likewise. + * ld-sh/refdbg.s: Likewise. + * ld-sh/refdbglib.s: Likewise. + 2002-11-22 Alan Modra * ld-elf/elf.exp: Remove sec64k test. diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-auto-import/auto-import.exp binutils-2.13.90.0.18/ld/testsuite/ld-auto-import/auto-import.exp --- binutils-2.13.90.0.16/ld/testsuite/ld-auto-import/auto-import.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-auto-import/auto-import.exp Tue Jan 21 10:21:34 2003 @@ -0,0 +1,160 @@ +# Expect script for ld-auto-import tests +# Copyright 2002 +# Free Software Foundation, Inc. +# +# This file 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. +# +# Written by Ralf.Habacker@freenet.de +# Based on ls-shared/shared.exp by Ian Lance Taylor (ian@cygnus.com) +# + +# Note: +# +# This test checks the "auto importing direct from a dll" functionality, +# which dramatically reduces the linking time for big libraries and applications +# by skipping creating/using import libraries. Instead it links directly to the +# related dll or to a symlinked dll for replacing regular import libraries. +# +# The test has 4 stages: +# +# 1. compile and link a test dll exporting some text and data symbols and a +# standard import library +# +# 2. create a symbolic link to this dll to simulate a replaced import library. +# +# 3. compile and link a client application with the standard import library. +# This should produce no errors. +# +# 4. compile and link a client application with the created dll. +# This should also produce no errors. +# +# 5. compile and link a client application using the "import library". +# This should also produce no errors. +# +# 6. compile and link a client application with auto-import disabled. +# This should produce a linking error. + +# This test can only be run if ld generates native executables. +if ![isnative] then {return} + +# This test can only be run on a couple of ELF platforms. +# Square bracket expressions seem to confuse istarget. +if { ![istarget *-pc-cygwin] + && ![istarget *-pc-mingw*] } { + return +} + +# No compiler, no test. +if { [which $CC] == 0 } { + untested "Auto import test" + return +} + +# ld_special_link +# link a program using ld, without including any libraries +# +proc ld_special_link { ld target objects } { + global host_triplet + global link_output + + if { [which $ld] == 0 } then { + perror "$ld does not exist" + return 0 + } + + if [is_endian_output_format $objects] then { + set flags [big_or_little_endian] + } else { + set flags "" + } + + verbose -log "$ld $flags -o $target $objects" + + catch "exec $ld $flags -o $target $objects" link_output + set exec_output [prune_warnings $link_output] + + # We don't care if we get a warning about a non-existent start + # symbol, since the default linker script might use ENTRY. + regsub -all "(^|\n)(\[^\n\]*: warning: cannot find entry symbol\[^\n\]*\n?)" $exec_output "\\1" exec_output + + # We don't care if we get a message about creating a library file. + regsub -all "(^|\n)(Creating library file\[^\n\]*\n?)" $exec_output "\\1" exec_output + + if [string match "" $exec_output] then { + return 1 + } else { + verbose -log "$exec_output" + return 0 + } +} + +set tmpdir tmpdir +set SHCFLAG "" + +if [istarget *-pc-cygwin] { + # Set some libs needed for cygwin. + set MYLIBS "-L/usr/lib -lcygwin -L/usr/lib/w32api -lkernel32" + + # Compile the dll. + if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/dll.c $tmpdir/dll.o ] { + fail "compiling shared lib" + } elseif ![ld_special_link "$ld -shared --out-implib=$tmpdir/libstandard.dll.a" $tmpdir/dll.dll "$tmpdir/dll.o $MYLIBS" ] { + fail "linking shared lib" + } else { + # Create symbolic link. + catch "exec ln -fs dll.dll $tmpdir/libsymlinked_dll.dll.a" ln_catch + + # Compile and link the client program. + if ![ld_compile "$CC $CFLAGS $SHCFLAG" $srcdir/$subdir/client.c $tmpdir/client.o ] { + fail "compiling client" + } else { + # Check linking with import library. + set msg "linking auto-import client using a standard import library" + if [ld_special_link $ld $tmpdir/client.exe "--enable-auto-import /lib/crt0.o $tmpdir/client.o -L$tmpdir -lstandard $MYLIBS" ] { + pass $msg + } else { + fail $msg + } + + # Check linking directly with dll. + set msg "linking auto-import client using the dll" + if [ld_special_link $ld $tmpdir/client.exe "--enable-auto-import /lib/crt0.o $tmpdir/client.o -L$tmpdir -ldll $MYLIBS" ] { + pass $msg + } else { + fail $msg + } + + # Check linking with symlinked dll. + set msg "linking auto-import client using symbolic linked dll" + if [ld_special_link $ld $tmpdir/clientimport.exe "--enable-auto-import /lib/crt0.o $tmpdir/client.o -L$tmpdir -lsymlinked_dll $MYLIBS" ] { + pass $msg + } else { + fail $msg + } + + # Check linking with disabled auto-import, this must produce linking error. + set msg "linking with disabled auto-import" + if ![ld_special_link $ld $tmpdir/clientimport.exe "--disable-auto-import /lib/crt0.o $tmpdir/client.o -L$tmpdir -ldll $MYLIBS" ] { + pass $msg + } else { + fail $msg + } + } + } +} + +if [istarget *-pc-mingw*] { + unsupported "mingw currently not supported" +} diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-auto-import/client.c binutils-2.13.90.0.18/ld/testsuite/ld-auto-import/client.c --- binutils-2.13.90.0.16/ld/testsuite/ld-auto-import/client.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-auto-import/client.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,55 @@ +#include + +extern int var; +extern void (*func_ptr)(void); +extern void print_var (void); +extern void print_foo (void); +extern int foo; +extern int var2[2]; + +typedef struct +{ + int * var; + void (* func_ptr)(void); +} +TEST; + +TEST xyz = { &var, print_var }; + +int +main (void) +{ + print_var (); + + printf ("We see var = %d\n", var); + printf ("Setting var = 456\n"); + + var = 456; + + print_var (); + printf ("We see var = %d\n\n", var); + + var = 90; + print_var (); + printf ("We see var = %d\n\n", var); + + print_foo (); + printf ("We see foo = %d\n", foo); + printf ("Setting foo = 19\n"); + foo = 19; + print_foo (); + printf ("We see foo = %d\n\n", foo); + fflush (stdout); + + printf ("Calling dllimported function pointer\n"); + func_ptr (); + + printf ("Calling functions using global structure\n"); + xyz.func_ptr (); + * xyz.var = 40; + xyz.func_ptr (); + + printf ("We see var2[0] = %d\n\n", var2[0]); + + return 0; +} diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-auto-import/dll.c binutils-2.13.90.0.18/ld/testsuite/ld-auto-import/dll.c --- binutils-2.13.90.0.16/ld/testsuite/ld-auto-import/dll.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-auto-import/dll.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,20 @@ +int var = 123; +int foo = 121; + +int var2[2]= { 123, 456 }; + +#include + +void +print_var (void) +{ + printf ("DLL sees var = %d\n", var); +} + +void +print_foo (void) +{ + printf ("DLL sees foo = %d\n", foo); +} + +void (* func_ptr)(void) = print_foo; diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-i386/tlsnopic.rd binutils-2.13.90.0.18/ld/testsuite/ld-i386/tlsnopic.rd --- binutils-2.13.90.0.16/ld/testsuite/ld-i386/tlsnopic.rd Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/ld/testsuite/ld-i386/tlsnopic.rd Mon Dec 16 12:22:53 2002 @@ -84,13 +84,13 @@ Symbol table '.dynsym' contains 22 entri +9: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +9 * +10: [0-9a-f]+ +0 SECTION LOCAL DEFAULT +10 * +11: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC - +12: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg3 - +13: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg4 + +12: 0+ +0 TLS +GLOBAL DEFAULT UND sg3 + +13: 0+ +0 TLS +GLOBAL DEFAULT UND sg4 +14: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3 - +15: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg5 - +16: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg1 + +15: 0+ +0 TLS +GLOBAL DEFAULT UND sg5 + +16: 0+ +0 TLS +GLOBAL DEFAULT UND sg1 +17: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start - +18: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg2 + +18: 0+ +0 TLS +GLOBAL DEFAULT UND sg2 +19: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata +20: 0+2080 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +21: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end @@ -121,13 +121,13 @@ Symbol table '.symtab' contains 34 entri +21: 0+14 +0 TLS +LOCAL HIDDEN +7 sh1 +22: 0+18 +0 TLS +LOCAL HIDDEN +7 sh2 +23: [0-9a-f]+ +0 OBJECT GLOBAL DEFAULT ABS _DYNAMIC - +24: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg3 - +25: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg4 + +24: 0+ +0 TLS +GLOBAL DEFAULT UND sg3 + +25: 0+ +0 TLS +GLOBAL DEFAULT UND sg4 +26: 0+1000 +0 FUNC +GLOBAL DEFAULT +5 fn3 - +27: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg5 - +28: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg1 + +27: 0+ +0 TLS +GLOBAL DEFAULT UND sg5 + +28: 0+ +0 TLS +GLOBAL DEFAULT UND sg1 +29: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS __bss_start - +30: 0+ +0 NOTYPE GLOBAL DEFAULT UND sg2 + +30: 0+ +0 TLS +GLOBAL DEFAULT UND sg2 +31: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _edata +32: 0+2080 +0 OBJECT GLOBAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ +33: [0-9a-f]+ +0 NOTYPE GLOBAL DEFAULT ABS _end diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/ia64.exp binutils-2.13.90.0.18/ld/testsuite/ld-ia64/ia64.exp --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/ia64.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/ia64.exp Tue Jan 21 10:21:34 2003 @@ -0,0 +1,54 @@ +# Expect script for ld-ia64 tests +# Copyright (C) 2002, 2003 Free Software Foundation +# +# This file 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. +# + +# Test ia64 linking; all types of relocs. This tests the assembler and +# tools like objdump as well as the linker. + +if { !([istarget "ia64-*-elf*"] + || [istarget "ia64-*-linux*"]) } { + return +} + +# List contains test-items with 3 items followed by 2 lists: +# 0:name 1:ld options 2:assembler options +# 3:filenames of assembler files 4: action and options. 5: name of output file + +# Actions: +# objdump: Apply objdump options on result. Compare with regex (last arg). +# nm: Apply nm options on result. Compare with regex (last arg). +# readelf: Apply readelf options on result. Compare with regex (last arg). + +set ia64tests { + {"TLS -fpic -shared" "-shared -melf64_ia64" + "" {tlspic1.s tlspic2.s} + {{readelf -WSsrl tlspic.rd} {objdump -drj.text tlspic.dd} + {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} + "libtlspic.so"} + {"Helper shared library" "-shared -melf64_ia64" + "" {tlslib.s} {} "libtlslib.so"} + {"TLS -fpic and -fno-pic exec" + "-melf64_ia64 tmpdir/libtlslib.so" "" {tlsbinpic.s tlsbin.s} + {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd} + {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} + "tlsbin"} + {"TLS in debug sections" "-melf64_ia64" + "" {tlsg.s} + {{objdump -sj.debug_foobar tlsg.sd}} "tlsg"} +} + +run_ld_link_tests $ia64tests diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.dd binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.dd --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.dd Tue Jan 21 10:21:34 2003 @@ -0,0 +1,75 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: +#ld: -shared -melf64_ia64 +#objdump: -drj.text +#target: ia64-*-* + +.*: +file format elf64-ia64-little + +Disassembly of section .text: + +40+1000 : +40+1000: 10 10 15 06 80 05[ ]+\[MIB\][ ]+alloc r34=ar.pfs,5,3,0 +40+1006: 10 02 00 62 00 00[ ]+mov r33=b0 +40+100c: 00 00 00 20[ ]+nop.b 0x0 +40+1010: 0d 70 80 02 00 24[ ]+\[MFI\][ ]+addl r14=32,r1 +40+1016: 00 00 00 02 00 e0[ ]+nop.f 0x0 +40+101c: 81 0a 00 90[ ]+addl r15=40,r1;; +40+1020: 19 18 01 1c 18 10[ ]+\[MMB\][ ]+ld8 r35=\[r14\] +40+1026: 40 02 3c 30 20 00[ ]+ld8 r36=\[r15\] +40+102c: e8 f3 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; +40+1030: 0d 70 c0 02 00 24[ ]+\[MFI\][ ]+addl r14=48,r1 +40+1036: 00 00 00 02 00 e0[ ]+nop.f 0x0 +40+103c: 01 0c 00 90[ ]+addl r15=64,r1;; +40+1040: 19 18 01 1c 18 10[ ]+\[MMB\][ ]+ld8 r35=\[r14\] +40+1046: 40 02 3c 30 20 00[ ]+ld8 r36=\[r15\] +40+104c: c8 f3 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; +40+1050: 0d 70 c0 02 00 24[ ]+\[MFI\][ ]+addl r14=48,r1 +40+1056: 00 00 00 02 00 80[ ]+nop.f 0x0 +40+105c: 14 02 00 90[ ]+mov r36=33;; +40+1060: 1d 18 01 1c 18 10[ ]+\[MFB\][ ]+ld8 r35=\[r14\] +40+1066: 00 00 00 02 00 00[ ]+nop.f 0x0 +40+106c: a8 f3 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; +40+1070: 0d 70 c0 02 00 24[ ]+\[MFI\][ ]+addl r14=48,r1 +40+1076: 00 00 00 02 00 80[ ]+nop.f 0x0 +40+107c: 04 00 00 84[ ]+mov r36=r0;; +40+1080: 1d 18 01 1c 18 10[ ]+\[MFB\][ ]+ld8 r35=\[r14\] +40+1086: 00 00 00 02 00 00[ ]+nop.f 0x0 +40+108c: 88 f3 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; +40+1090: 0b 10 00 10 00 21[ ]+\[MMI\][ ]+mov r2=r8;; +40+1096: e0 00 0a 00 48 e0[ ]+addl r14=64,r2 +40+109c: 61 14 00 90[ ]+addl r15=70,r2;; +40+10a0: 05 70 2c 11 00 21[ ]+\[MLX\][ ]+adds r14=75,r8 +40+10a6: 00 00 00 00 00 e0[ ]+movl r15=0x4d;; +40+10ac: d1 04 00 60 +40+10b0: 0a 78 3c 10 00 20[ ]+\[MMI\][ ]+add r15=r15,r8;; +40+10b6: 00 00 00 02 00 00[ ]+nop.m 0x0 +40+10bc: 20 02 aa 00[ ]+mov.i ar.pfs=r34 +40+10c0: 11 00 00 00 01 00[ ]+\[MIB\][ ]+nop.m 0x0 +40+10c6: 00 08 05 80 03 80[ ]+mov b0=r33 +40+10cc: 08 00 84 00[ ]+br.ret.sptk.many b0;; +#... + +40+2000 <_start>: +40+2000: 0b 70 60 02 00 24[ ]+\[MMI\][ ]+addl r14=24,r1;; +40+2006: e0 00 38 30 20 00[ ]+ld8 r14=\[r14\] +40+200c: 00 00 04 00[ ]+nop.i 0x0;; +40+2010: 0b 70 38 1a 00 20[ ]+\[MMI\][ ]+add r14=r14,r13;; +40+2016: e0 c0 05 00 48 00[ ]+addl r14=56,r1 +40+201c: 00 00 04 00[ ]+nop.i 0x0;; +40+2020: 0b 70 00 1c 18 10[ ]+\[MMI\][ ]+ld8 r14=\[r14\];; +40+2026: e0 70 34 00 40 00[ ]+add r14=r14,r13 +40+202c: 00 00 04 00[ ]+nop.i 0x0;; +40+2030: 0b 10 00 1a 00 21[ ]+\[MMI\][ ]+mov r2=r13;; +40+2036: e0 80 08 00 48 e0[ ]+addl r14=16,r2 +40+203c: 61 11 04 90[ ]+addl r15=150,r2;; +40+2040: 05 70 5c 1b 00 21[ ]+\[MLX\][ ]+adds r14=87,r13 +40+2046: 00 00 00 00 00 e0[ ]+movl r15=0x95;; +40+204c: 51 01 04 60 +40+2050: 0a 78 3c 1a 00 20[ ]+\[MMI\][ ]+add r15=r15,r13;; +40+2056: 00 00 00 02 00 00[ ]+nop.m 0x0 +40+205c: 00 00 04 00[ ]+nop.i 0x0 +40+2060: 1d 00 00 00 01 00[ ]+\[MFB\][ ]+nop.m 0x0 +40+2066: 00 00 00 02 00 80[ ]+nop.f 0x0 +40+206c: 08 00 84 00[ ]+br.ret.sptk.many b0;; diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.rd binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.rd --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.rd Tue Jan 21 10:21:34 2003 @@ -0,0 +1,147 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: +#ld: -shared -melf64_ia64 +#readelf: -WSsrl +#target: ia64-*-* + +There are 22 section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al + \[ 0\] +NULL +0+ 0+ 0+ 00 +0 +0 +0 + \[ 1\] .interp +.* + \[ 2\] .hash +.* + \[ 3\] .dynsym +.* + \[ 4\] .dynstr +.* + \[ 5\] .rela.dyn +.* + \[ 6\] .rela.IA_64.pltof +.* + \[ 7\] .plt +.* + \[ 8\] .text +PROGBITS +40+1000 0+1000 0+1070 00 +AX +0 +0 4096 + \[ 9\] .IA_64.unwind_inf +.* + \[10\] .IA_64.unwind +.* + \[11\] .data +.* + \[12\] .tdata +PROGBITS +60+3000 0+3000 0+60 00 WAT +0 +0 +4 + \[13\] .tbss +NOBITS +60+3060 0+3060 0+40 00 WAT +0 +0 +1 + \[14\] .dynamic +DYNAMIC +60+3060 0+3060 0+150 10 +WA +4 +0 +8 + \[15\] .got +PROGBITS +60+31b0 0+31b0 0+48 00 WAp +0 +0 +8 + \[16\] .IA_64.pltoff +.* + \[17\] .sbss +.* + \[18\] .bss +.* + \[19\] .shstrtab +.* + \[20\] .symtab +.* + \[21\] .strtab +.* +#... + +Elf file type is EXEC \(Executable file\) +Entry point 0x40+2000 +There are 7 program headers, starting at offset [0-9]+ + +Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align + PHDR +0x0+40 0x40+40 0x40+40 0x0+188 0x0+188 R E 0x8 + INTERP +0x0+1c8 0x40+1c8 0x40+1c8 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x1 +.*Requesting program interpreter.* + LOAD +0x0+ 0x40+ 0x40+ 0x0+20a0 0x0+20a0 R E 0x10000 + LOAD +0x0+3000 0x60+3000 0x60+3000 0x0+210 0x0+210 RW +0x10000 + DYNAMIC +0x0+3060 0x60+3060 0x60+3060 0x0+150 0x0+150 RW +0x8 + TLS +0x0+3000 0x60+3000 0x60+3000 0x0+60 0x0+a0 R +0x4 + IA_64_UNWIND .* R +0x8 +#... + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 3 entries: + +Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend +60+31c8 0+200000097 R_IA64_TPREL64LSB +0+ sG2 \+ 0 +60+31d0 0+5000000a7 R_IA64_DTPMOD64LSB +0+ sG1 \+ 0 +60+31d8 0+5000000b7 R_IA64_DTPREL64LSB +0+ sG1 \+ 0 + +Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries: + +Offset +Info +Type +Symbol's Value Symbol's Name \+ Addend +60+3200 0+300000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0 + +Symbol table '.dynsym' contains 9 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND * + +1: 60+3060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC + +2: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2 + +3: 0+ +16 FUNC +GLOBAL DEFAULT +UND __tls_get_addr + +4: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start + +5: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1 + +6: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata + +7: 60+31b0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ + +8: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end + +Symbol table '.symtab' contains 72 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND * + +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 * + +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 * + +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 * + +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 * + +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 * + +18: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18 * + +19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 * + +20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 * + +21: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +21 * + +22: 0+20 +0 TLS +LOCAL +DEFAULT +12 sl1 + +23: 0+24 +0 TLS +LOCAL +DEFAULT +12 sl2 + +24: 0+28 +0 TLS +LOCAL +DEFAULT +12 sl3 + +25: 0+2c +0 TLS +LOCAL +DEFAULT +12 sl4 + +26: 0+30 +0 TLS +LOCAL +DEFAULT +12 sl5 + +27: 0+34 +0 TLS +LOCAL +DEFAULT +12 sl6 + +28: 0+38 +0 TLS +LOCAL +DEFAULT +12 sl7 + +29: 0+3c +0 TLS +LOCAL +DEFAULT +12 sl8 + +30: 0+80 +0 TLS +LOCAL +DEFAULT +13 bl1 + +31: 0+84 +0 TLS +LOCAL +DEFAULT +13 bl2 + +32: 0+88 +0 TLS +LOCAL +DEFAULT +13 bl3 + +33: 0+8c +0 TLS +LOCAL +DEFAULT +13 bl4 + +34: 0+90 +0 TLS +LOCAL +DEFAULT +13 bl5 + +35: 0+94 +0 TLS +LOCAL +DEFAULT +13 bl6 + +36: 0+98 +0 TLS +LOCAL +DEFAULT +13 bl7 + +37: 0+9c +0 TLS +LOCAL +DEFAULT +13 bl8 + +38: 0+1c +0 TLS +GLOBAL DEFAULT +12 sg8 + +39: 0+7c +0 TLS +GLOBAL DEFAULT +13 bg8 + +40: 0+74 +0 TLS +GLOBAL DEFAULT +13 bg6 + +41: 0+68 +0 TLS +GLOBAL DEFAULT +13 bg3 + +42: 60+3060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC + +43: 0+8 +0 TLS +GLOBAL DEFAULT +12 sg3 + +44: 0+48 +0 TLS +GLOBAL HIDDEN +12 sh3 + +45: 0+ +0 TLS +GLOBAL DEFAULT +UND sG2 + +46: 0+c +0 TLS +GLOBAL DEFAULT +12 sg4 + +47: 0+10 +0 TLS +GLOBAL DEFAULT +12 sg5 + +48: 0+70 +0 TLS +GLOBAL DEFAULT +13 bg5 + +49: 0+ +16 FUNC +GLOBAL DEFAULT +UND __tls_get_addr + +50: 0+58 +0 TLS +GLOBAL HIDDEN +12 sh7 + +51: 0+5c +0 TLS +GLOBAL HIDDEN +12 sh8 + +52: 0+ +0 TLS +GLOBAL DEFAULT +12 sg1 + +53: 40+2000 +112 FUNC +GLOBAL DEFAULT +8 _start + +54: 0+4c +0 TLS +GLOBAL HIDDEN +12 sh4 + +55: 0+78 +0 TLS +GLOBAL DEFAULT +13 bg7 + +56: 0+50 +0 TLS +GLOBAL HIDDEN +12 sh5 + +57: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start + +58: 40+1000 +208 FUNC +GLOBAL DEFAULT +8 fn2 + +59: 0+4 +0 TLS +GLOBAL DEFAULT +12 sg2 + +60: 0+ +0 TLS +GLOBAL DEFAULT +UND sG1 + +61: 0+40 +0 TLS +GLOBAL HIDDEN +12 sh1 + +62: 0+14 +0 TLS +GLOBAL DEFAULT +12 sg6 + +63: 0+18 +0 TLS +GLOBAL DEFAULT +12 sg7 + +64: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata + +65: [0-9a-f]+ +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ + +66: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end + +67: 0+44 +0 TLS +GLOBAL HIDDEN +12 sh2 + +68: 0+54 +0 TLS +GLOBAL HIDDEN +12 sh6 + +69: 0+64 +0 TLS +GLOBAL DEFAULT +13 bg2 + +70: 0+60 +0 TLS +GLOBAL DEFAULT +13 bg1 + +71: 0+6c +0 TLS +GLOBAL DEFAULT +13 bg4 diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.s binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.s --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.s Tue Jan 21 10:21:34 2003 @@ -0,0 +1,53 @@ + .section ".tbss", "awT", @nobits + .globl bg1, bg2, bg3, bg4, bg5, bg6, bg7, bg8 +bg1: .space 4 +bg2: .space 4 +bg3: .space 4 +bg4: .space 4 +bg5: .space 4 +bg6: .space 4 +bg7: .space 4 +bg8: .space 4 +bl1: .space 4 +bl2: .space 4 +bl3: .space 4 +bl4: .space 4 +bl5: .space 4 +bl6: .space 4 +bl7: .space 4 +bl8: .space 4 + .pred.safe_across_calls p1-p5,p16-p63 + .text + .globl _start# + .proc _start# +_start: + /* IE */ + addl r14 = @ltoff(@tprel(sG2#)), gp + ;; + ld8 r14 = [r14] + ;; + add r14 = r14, r13 + ;; + + /* IE against global symbol in exec */ + addl r14 = @ltoff(@tprel(bl1#)), gp + ;; + ld8 r14 = [r14] + ;; + add r14 = r14, r13 + ;; + + /* LE */ + mov r2 = r13 + ;; + addl r14 = @tprel(sg1#), r2 + addl r15 = @tprel(bl2#) + 2, r2 + ;; + adds r14 = @tprel(sh2#) + 3, r13 + movl r15 = @tprel(bl2#) + 1 + ;; + add r15 = r15, r13 + ;; + + br.ret.sptk.many b0 + .endp _start# diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.sd binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.sd --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.sd Tue Jan 21 10:21:34 2003 @@ -0,0 +1,15 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: +#ld: -shared -melf64_ia64 +#objdump: -sj.got +#target: ia64-*-* + +.*: +file format elf64-ia64-little + +Contents of section .got: + (60+)?31b0 0+ 0+ 0+ 0+ .* + (60+)?31c0 0+ 0+ 0+ 0+ .* + (60+)?31d0 0+ 0+ 0+ 0+ .* + (60+)?31e0 01000000 0+ 90000000 0+ .* + (60+)?31f0 24000000 0+ .* diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.td binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.td --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbin.td Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbin.td Tue Jan 21 10:21:34 2003 @@ -0,0 +1,16 @@ +#source: tlsbinpic.s +#source: tlsbin.s +#as: +#ld: -shared -melf64_ia64 +#objdump: -sj.tdata +#target: ia64-*-* + +.*: +file format elf64-ia64-little + +Contents of section .tdata: + (60+)?3000 11000000 12000000 13000000 14000000 .* + (60+)?3010 15000000 16000000 17000000 18000000 .* + (60+)?3020 41000000 42000000 43000000 44000000 .* + (60+)?3030 45000000 46000000 47000000 48000000 .* + (60+)?3040 01010000 02010000 03010000 04010000 .* + (60+)?3050 05010000 06010000 07010000 08010000 .* diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbinpic.s binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbinpic.s --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsbinpic.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsbinpic.s Tue Jan 21 10:21:34 2003 @@ -0,0 +1,96 @@ + /* Force .data aligned to 4K, so that .got very likely gets at + 0x60000000000031b0 (0x60 bytes .tdata and 0x150 bytes + .dynamic). */ + .data + .balign 4096 + .section ".tdata", "awT", @progbits + .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 + .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 +sg1: .long 17 +sg2: .long 18 +sg3: .long 19 +sg4: .long 20 +sg5: .long 21 +sg6: .long 22 +sg7: .long 23 +sg8: .long 24 +sl1: .long 65 +sl2: .long 66 +sl3: .long 67 +sl4: .long 68 +sl5: .long 69 +sl6: .long 70 +sl7: .long 71 +sl8: .long 72 +sh1: .long 257 +sh2: .long 258 +sh3: .long 259 +sh4: .long 260 +sh5: .long 261 +sh6: .long 262 +sh7: .long 263 +sh8: .long 264 + /* Force .text aligned to 4K, so it very likely gets at + 0x4000000000001000. */ + .pred.safe_across_calls p1-p5,p16-p63 + .text + .balign 4096 + .globl fn2# + .proc fn2# +fn2: + .prologue 12, 33 + .mib + .save ar.pfs, r34 + alloc r34 = ar.pfs, 0, 3, 2, 0 + .save rp, r33 + mov r33 = b0 + + /* GD */ + addl r14 = @ltoff(@dtpmod(sG1#)), gp + addl r15 = @ltoff(@dtprel(sG1#)), gp + ;; + ld8 out0 = [r14] + ld8 out1 = [r15] + br.call.sptk.many b0 = __tls_get_addr# + ;; + + /* GD against local symbol */ + addl r14 = @ltoff(@dtpmod(sl2#)), gp + addl r15 = @ltoff(@dtprel(sl2#)), gp + ;; + ld8 out0 = [r14] + ld8 out1 = [r15] + br.call.sptk.many b0 = __tls_get_addr# + ;; + + /* LD */ + addl r14 = @ltoff(@dtpmod(sl1#)), gp + addl out1 = @dtprel(sl1#) + 1, r0 + ;; + ld8 out0 = [r14] + br.call.sptk.many b0 = __tls_get_addr# + ;; + + /* LD with 4 variables variables */ + addl r14 = @ltoff(@dtpmod(sh1#)), gp + mov out1 = r0 + ;; + ld8 out0 = [r14] + br.call.sptk.many b0 = __tls_get_addr# + ;; + mov r2 = r8 + ;; + addl r14 = @dtprel(sh1#), r2 + addl r15 = @dtprel(sh2#) + 2, r2 + ;; + adds r14 = @dtprel(sh3#) + 3, r8 + movl r15 = @dtprel(sh4#) + 1 + ;; + add r15 = r15, r8 + ;; + + mov ar.pfs = r34 + mov b0 = r33 + br.ret.sptk.many b0 + .endp fn2# diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsg.s binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsg.s --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsg.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsg.s Tue Jan 21 10:21:34 2003 @@ -0,0 +1,14 @@ + .section .tbss,"awT",@nobits + .align 4 + .skip 24 + .type a#,@object + .size a#,4 +a: + data4 0 + .text + .globl _start# + .proc _start# +_start: + .endp _start# + .section .debug_foobar + data8 @dtprel(a#) diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsg.sd binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsg.sd --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlsg.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlsg.sd Tue Jan 21 10:21:34 2003 @@ -0,0 +1,10 @@ +#source: tlsg.s +#as: +#ld: -melf64_ia64 +#objdump: -sj.debug_foobar +#target: ia64-*-* + +.*: +file format elf64-ia64-little + +Contents of section .debug_foobar: + 0+ 18000000 0+ +.* diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlslib.s binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlslib.s --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlslib.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlslib.s Tue Jan 21 10:21:34 2003 @@ -0,0 +1,18 @@ + .section ".tdata", "awT", @progbits + .globl sG1, sG2, sG3, sG4, sG5, sG6, sG7, sG8 +sG1: .long 513 +sG2: .long 514 +sG3: .long 515 +sG4: .long 516 +sG5: .long 517 +sG6: .long 518 +sG7: .long 519 +sG8: .long 520 + + .text + /* Dummy. */ + .globl __tls_get_addr# + .proc __tls_get_addr# +__tls_get_addr: + br.ret.sptk.many b0 + .endp __tls_get_addr# diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.dd binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.dd --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.dd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.dd Tue Jan 21 10:21:34 2003 @@ -0,0 +1,64 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: +#ld: -shared -melf64_ia64 +#objdump: -drj.text +#target: ia64-*-* + +.*: +file format elf64-ia64-little + +Disassembly of section .text: + +0+1000 : + +1000: 10 10 15 06 80 05[ ]+\[MIB\] +alloc r34=ar.pfs,5,3,0 + +1006: 10 02 00 62 00 00[ ]+mov r33=b0 + +100c: 00 00 00 20[ ]+nop.b 0x0 + +1010: 0d 70 60 02 00 24[ ]+\[MFI\] +addl r14=24,r1 + +1016: 00 00 00 02 00 e0[ ]+nop.f 0x0 + +101c: 01 0a 00 90[ ]+addl r15=32,r1;; + +1020: 19 18 01 1c 18 10[ ]+\[MMB\] +ld8 r35=\[r14\] + +1026: 40 02 3c 30 20 00[ ]+ld8 r36=\[r15\] + +102c: 88 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; + +1030: 0d 70 c0 02 00 24[ ]+\[MFI\] +addl r14=48,r1 + +1036: 00 00 00 02 00 e0[ ]+nop.f 0x0 + +103c: 01 0c 00 90[ ]+addl r15=64,r1;; + +1040: 19 18 01 1c 18 10[ ]+\[MMB\] +ld8 r35=\[r14\] + +1046: 40 02 3c 30 20 00[ ]+ld8 r36=\[r15\] + +104c: 68 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; + +1050: 0d 70 c0 02 00 24[ ]+\[MFI\] +addl r14=48,r1 + +1056: 00 00 00 02 00 80[ ]+nop.f 0x0 + +105c: 14 02 00 90[ ]+mov r36=33;; + +1060: 1d 18 01 1c 18 10[ ]+\[MFB\] +ld8 r35=\[r14\] + +1066: 00 00 00 02 00 00[ ]+nop.f 0x0 + +106c: 48 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; + +1070: 0d 70 c0 02 00 24[ ]+\[MFI\] +addl r14=48,r1 + +1076: 00 00 00 02 00 80[ ]+nop.f 0x0 + +107c: 04 00 00 84[ ]+mov r36=r0;; + +1080: 1d 18 01 1c 18 10[ ]+\[MFB\] +ld8 r35=\[r14\] + +1086: 00 00 00 02 00 00[ ]+nop.f 0x0 + +108c: 28 f6 ff 58[ ]+br.call.sptk.many b0=[0-9a-f]+ <.*>;; + +1090: 0b 10 00 10 00 21[ ]+\[MMI\] +mov r2=r8;; + +1096: e0 00 0a 00 48 e0[ ]+addl r14=64,r2 + +109c: 21 16 00 90[ ]+addl r15=98,r2;; + +10a0: 05 70 4c 11 00 21[ ]+\[MLX\] +adds r14=83,r8 + +10a6: 00 00 00 00 00 e0[ ]+movl r15=0x71;; + +10ac: 11 07 00 60 + +10b0: 0b 78 3c 10 00 20[ ]+\[MMI\] +add r15=r15,r8;; + +10b6: e0 40 05 00 48 00[ ]+addl r14=40,r1 + +10bc: 00 00 04 00[ ]+nop.i 0x0;; + +10c0: 0b 78 00 1c 18 10[ ]+\[MMI\] +ld8 r15=\[r14\];; + +10c6: e0 78 34 00 40 00[ ]+add r14=r15,r13 + +10cc: 00 00 04 00[ ]+nop.i 0x0;; + +10d0: 0d 70 20 03 00 24[ ]+\[MFI\] +addl r14=72,r1 + +10d6: 00 00 00 02 00 e0[ ]+nop.f 0x0 + +10dc: 81 0b 00 90[ ]+addl r15=56,r1;; + +10e0: 09 70 00 1c 18 10[ ]+\[MMI\] +ld8 r14=\[r14\] + +10e6: f0 00 3c 30 20 00[ ]+ld8 r15=\[r15\] + +10ec: 00 00 04 00[ ]+nop.i 0x0;; + +10f0: 02 70 38 1a 00 20[ ]+\[MII\] +add r14=r14,r13 + +10f6: f0 78 34 00 40 00[ ]+add r15=r15,r13;; + +10fc: 20 02 aa 00[ ]+mov.i ar.pfs=r34 + +1100: 11 00 00 00 01 00[ ]+\[MIB\] +nop.m 0x0 + +1106: 00 08 05 80 03 80[ ]+mov b0=r33 + +110c: 08 00 84 00[ ]+br.ret.sptk.many b0;; +#pass diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.rd binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.rd --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.rd Tue Jan 21 10:21:34 2003 @@ -0,0 +1,159 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: +#ld: -shared -melf64_ia64 +#readelf: -WSsrl +#target: ia64-*-* + +There are 21 section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al + \[ 0\] +NULL +0+ 0+ 0+ 00 +0 +0 +0 + \[ 1\] .hash +.* + \[ 2\] .dynsym +.* + \[ 3\] .dynstr +.* + \[ 4\] .rela.dyn +.* + \[ 5\] .rela.IA_64.pltof +.* + \[ 6\] .plt +.* + \[ 7\] .text +PROGBITS +0+1000 0+1000 0+1000 00 +AX +0 +0 4096 + \[ 8\] .IA_64.unwind_inf +.* + \[ 9\] .IA_64.unwind +.* + \[10\] .data +.* + \[11\] .tdata +PROGBITS +0+13000 0+3000 0+60 00 WAT +0 +0 +4 + \[12\] .tbss +NOBITS +0+13060 0+3060 0+20 00 WAT +0 +0 +1 + \[13\] .dynamic +DYNAMIC +0+13060 0+3060 0+140 10 +WA +3 +0 +8 + \[14\] .got +PROGBITS +0+131a0 0+31a0 0+50 00 WAp +0 +0 +8 + \[15\] .IA_64.pltoff +.* + \[16\] .sbss +.* + \[17\] .bss +.* + \[18\] .shstrtab +.* + \[19\] .symtab +.* + \[20\] .strtab +.* +Key to Flags: +#... + +Elf file type is DYN \(Shared object file\) +Entry point 0x1000 +There are 5 program headers, starting at offset [0-9]+ + +Program Headers: + Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align + LOAD +0x0+ 0x0+ 0x0+ 0x0+2030 0x0+2030 R E 0x10000 + LOAD +0x0+3000 0x0+13000 0x0+13000 0x0+200 0x0+200 RW +0x10000 + DYNAMIC +0x0+3060 0x0+13060 0x0+13060 0x0+140 0x0+140 RW +0x8 + TLS +0x0+3000 0x0+13000 0x0+13000 0x0+60 0x0+80 R +0x4 + IA_64_UNWIND +0x0+2018 0x0+2018 0x0+2018 0x0+18 0x0+18 R +0x8 +#... + +Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 6 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend +0+131b8 +0+18000000a7 R_IA64_DTPMOD64LSB +0+ sg1 \+ 0 +0+131c0 +0+18000000b7 R_IA64_DTPREL64LSB +0+ sg1 \+ 0 +0+131c8 +0+1b00000097 R_IA64_TPREL64LSB +0+4 sg2 \+ 0 +0+131d0 +0+a7 R_IA64_DTPMOD64LSB +0+ +0+131d8 +0+97 R_IA64_TPREL64LSB +0+44 +0+131e8 +0+97 R_IA64_TPREL64LSB +0+24 + +Relocation section '.rela.IA_64.pltoff' at offset 0x[0-9a-f]+ contains 1 entries: + +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend +0+[0-9a-f]+ +0+1700000081 R_IA64_IPLTLSB +0+ __tls_get_addr \+ 0 + +Symbol table '.dynsym' contains 33 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND * + +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 * + +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 * + +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 * + +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 * + +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 * + +18: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8 + +19: 0+13060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC + +20: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3 + +21: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4 + +22: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5 + +23: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr + +24: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1 + +25: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1 + +26: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start + +27: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2 + +28: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6 + +29: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7 + +30: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata + +31: 0+131a0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ + +32: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end + +Symbol table '.symtab' contains 60 entries: + +Num: +Value +Size Type +Bind +Vis +Ndx Name + +0: 0+ +0 NOTYPE +LOCAL +DEFAULT +UND * + +1: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +1 * + +2: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +2 * + +3: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +3 * + +4: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +4 * + +5: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +5 * + +6: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +6 * + +7: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +7 * + +8: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +8 * + +9: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +9 * + +10: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +10 * + +11: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +11 * + +12: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +12 * + +13: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +13 * + +14: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +14 * + +15: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +15 * + +16: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +16 * + +17: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +17 * + +18: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +18 * + +19: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +19 * + +20: [0-9a-f]+ +0 SECTION LOCAL +DEFAULT +20 * + +21: 0+20 +0 TLS +LOCAL +DEFAULT +11 sl1 + +22: 0+24 +0 TLS +LOCAL +DEFAULT +11 sl2 + +23: 0+28 +0 TLS +LOCAL +DEFAULT +11 sl3 + +24: 0+2c +0 TLS +LOCAL +DEFAULT +11 sl4 + +25: 0+30 +0 TLS +LOCAL +DEFAULT +11 sl5 + +26: 0+34 +0 TLS +LOCAL +DEFAULT +11 sl6 + +27: 0+38 +0 TLS +LOCAL +DEFAULT +11 sl7 + +28: 0+3c +0 TLS +LOCAL +DEFAULT +11 sl8 + +29: 0+60 +0 TLS +LOCAL +HIDDEN +12 sH1 + +30: 0+48 +0 TLS +LOCAL +HIDDEN +11 sh3 + +31: 0+64 +0 TLS +LOCAL +HIDDEN +12 sH2 + +32: 0+78 +0 TLS +LOCAL +HIDDEN +12 sH7 + +33: 0+58 +0 TLS +LOCAL +HIDDEN +11 sh7 + +34: 0+5c +0 TLS +LOCAL +HIDDEN +11 sh8 + +35: 0+6c +0 TLS +LOCAL +HIDDEN +12 sH4 + +36: 0+4c +0 TLS +LOCAL +HIDDEN +11 sh4 + +37: 0+68 +0 TLS +LOCAL +HIDDEN +12 sH3 + +38: 0+50 +0 TLS +LOCAL +HIDDEN +11 sh5 + +39: 0+70 +0 TLS +LOCAL +HIDDEN +12 sH5 + +40: 0+74 +0 TLS +LOCAL +HIDDEN +12 sH6 + +41: 0+7c +0 TLS +LOCAL +HIDDEN +12 sH8 + +42: 0+40 +0 TLS +LOCAL +HIDDEN +11 sh1 + +43: 0+44 +0 TLS +LOCAL +HIDDEN +11 sh2 + +44: 0+54 +0 TLS +LOCAL +HIDDEN +11 sh6 + +45: 0+1c +0 TLS +GLOBAL DEFAULT +11 sg8 + +46: 0+13060 +0 OBJECT +GLOBAL DEFAULT +ABS _DYNAMIC + +47: 0+8 +0 TLS +GLOBAL DEFAULT +11 sg3 + +48: 0+c +0 TLS +GLOBAL DEFAULT +11 sg4 + +49: 0+10 +0 TLS +GLOBAL DEFAULT +11 sg5 + +50: 0+ +0 NOTYPE +GLOBAL DEFAULT +UND __tls_get_addr + +51: 0+ +0 TLS +GLOBAL DEFAULT +11 sg1 + +52: 0+1000 +272 FUNC +GLOBAL DEFAULT +7 fn1 + +53: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS __bss_start + +54: 0+4 +0 TLS +GLOBAL DEFAULT +11 sg2 + +55: 0+14 +0 TLS +GLOBAL DEFAULT +11 sg6 + +56: 0+18 +0 TLS +GLOBAL DEFAULT +11 sg7 + +57: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _edata + +58: 0+131a0 +0 OBJECT +GLOBAL DEFAULT +ABS _GLOBAL_OFFSET_TABLE_ + +59: [0-9a-f]+ +0 NOTYPE +GLOBAL DEFAULT +ABS _end diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.sd binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.sd --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.sd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.sd Tue Jan 21 10:21:34 2003 @@ -0,0 +1,15 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: +#ld: -shared -melf64_ia64 +#objdump: -sj.got +#target: ia64-*-* + +.*: +file format elf64-ia64-little + +Contents of section .got: + 131a0 0+ 0+ 0+ 0+ .* + 131b0 0+ 0+ [0-9a-f]+ [0-9a-f]+ .* + 131c0 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ .* + 131d0 [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ [0-9a-f]+ .* + 131e0 440+ 0+ [0-9a-f]+ [0-9a-f]+ .* diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.td binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.td --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic.td Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic.td Tue Jan 21 10:21:34 2003 @@ -0,0 +1,16 @@ +#source: tlspic1.s +#source: tlspic2.s +#as: +#ld: -shared -melf64_ia64 +#objdump: -sj.tdata +#target: ia64-*-* + +.*: +file format elf64-ia64-little + +Contents of section .tdata: + 13000 11000000 12000000 13000000 14000000 .* + 13010 15000000 16000000 17000000 18000000 .* + 13020 41000000 42000000 43000000 44000000 .* + 13030 45000000 46000000 47000000 48000000 .* + 13040 01010000 02010000 03010000 04010000 .* + 13050 05010000 06010000 07010000 08010000 .* diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic1.s binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic1.s --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic1.s Tue Jan 21 10:21:34 2003 @@ -0,0 +1,113 @@ + /* Force .data aligned to 4K, so .got very likely gets at 0x13190 + (0x60 bytes .tdata and 0x130 bytes .dynamic) */ + .data + .balign 4096 + .section ".tdata", "awT", @progbits + .globl sg1, sg2, sg3, sg4, sg5, sg6, sg7, sg8 + .globl sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 + .hidden sh1, sh2, sh3, sh4, sh5, sh6, sh7, sh8 +sg1: .long 17 +sg2: .long 18 +sg3: .long 19 +sg4: .long 20 +sg5: .long 21 +sg6: .long 22 +sg7: .long 23 +sg8: .long 24 +sl1: .long 65 +sl2: .long 66 +sl3: .long 67 +sl4: .long 68 +sl5: .long 69 +sl6: .long 70 +sl7: .long 71 +sl8: .long 72 +sh1: .long 257 +sh2: .long 258 +sh3: .long 259 +sh4: .long 260 +sh5: .long 261 +sh6: .long 262 +sh7: .long 263 +sh8: .long 264 + /* Force .text aligned to 4K, so it very likely gets at 0x1000. */ + .pred.safe_across_calls p1-p5,p16-p63 + .text + .balign 4096 + .globl fn1# + .proc fn1# +fn1: + .prologue 12, 33 + .mib + .save ar.pfs, r34 + alloc r34 = ar.pfs, 0, 3, 2, 0 + .save rp, r33 + mov r33 = b0 + + /* GD */ + addl r14 = @ltoff(@dtpmod(sg1#)), gp + addl r15 = @ltoff(@dtprel(sg1#)), gp + ;; + ld8 out0 = [r14] + ld8 out1 = [r15] + br.call.sptk.many b0 = __tls_get_addr# + ;; + + /* GD against hidden symbol */ + addl r14 = @ltoff(@dtpmod(sh2#)), gp + addl r15 = @ltoff(@dtprel(sh2#)), gp + ;; + ld8 out0 = [r14] + ld8 out1 = [r15] + br.call.sptk.many b0 = __tls_get_addr# + ;; + + /* LD */ + addl r14 = @ltoff(@dtpmod(sl1#)), gp + addl out1 = @dtprel(sl1#) + 1, r0 + ;; + ld8 out0 = [r14] + br.call.sptk.many b0 = __tls_get_addr# + ;; + + /* LD with 4 variables variables */ + addl r14 = @ltoff(@dtpmod(sh1#)), gp + mov out1 = r0 + ;; + ld8 out0 = [r14] + br.call.sptk.many b0 = __tls_get_addr# + ;; + mov r2 = r8 + ;; + addl r14 = @dtprel(sh1#), r2 + addl r15 = @dtprel(sH1#) + 2, r2 + ;; + adds r14 = @dtprel(sh5#) + 3, r8 + movl r15 = @dtprel(sH5#) + 1 + ;; + add r15 = r15, r8 + ;; + + /* IE against global */ + addl r14 = @ltoff(@tprel(sg2#)), gp + ;; + ld8 r15 = [r14] + ;; + add r14 = r15, r13 + ;; + + /* IE against local and hidden */ + addl r14 = @ltoff(@tprel(sl2#)), gp + addl r15 = @ltoff(@tprel(sh2#)), gp + ;; + ld8 r14 = [r14] + ld8 r15 = [r15] + ;; + add r14 = r14, r13 + add r15 = r15, r13 + ;; + + mov ar.pfs = r34 + mov b0 = r33 + br.ret.sptk.many b0 + .endp fn1# diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic2.s binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic2.s --- binutils-2.13.90.0.16/ld/testsuite/ld-ia64/tlspic2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-ia64/tlspic2.s Tue Jan 21 10:21:34 2003 @@ -0,0 +1,11 @@ + .section ".tbss", "awT", @nobits + .globl sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 + .hidden sH1, sH2, sH3, sH4, sH5, sH6, sH7, sH8 +sH1: .space 4 +sH2: .space 4 +sH3: .space 4 +sH4: .space 4 +sH5: .space 4 +sH6: .space 4 +sH7: .space 4 +sH8: .space 4 diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-m68hc11/bug-1417.d binutils-2.13.90.0.18/ld/testsuite/ld-m68hc11/bug-1417.d --- binutils-2.13.90.0.16/ld/testsuite/ld-m68hc11/bug-1417.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-m68hc11/bug-1417.d Mon Dec 16 12:22:53 2002 @@ -0,0 +1,15 @@ +#source: bug-1417.s +#as: -m68hc11 +#ld: --relax +#objdump: -d --prefix-addresses -r +#target: m6811-*-* m6812-*-* + +.*: +file format elf32-m68hc11 + +Disassembly of section .text: +0+8000 <_start> tst 0+ <__bss_size> +0+8003 <_start\+0x3> bne 0+8008 +0+8005 <_start\+0x5> jsr 0+800c +0+8008 bset \*0+ <__bss_size> \#\$04 +0+800b rts +0+800c rts diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-m68hc11/bug-1417.s binutils-2.13.90.0.18/ld/testsuite/ld-m68hc11/bug-1417.s --- binutils-2.13.90.0.16/ld/testsuite/ld-m68hc11/bug-1417.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-m68hc11/bug-1417.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,21 @@ +;;; Bug #1417: Branch wrong after linker relaxation +;;; http://savannah.gnu.org/bugs/?func=detailbug&bug_id=1417&group_id=2424 +;;; + .sect .text + .globl _start +_start: + tst table + bne L1 ; Branch was adjusted but it must not + jsr foo +L1: + .relax L2 + ldx #table ; Instruction removed + bset 0,x #4 ; Changed to bset *table #4 +L2: + rts +foo: + rts + + .sect .page0 + .globl table +table: .long 0 diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/branch-misc-2.d binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/branch-misc-2.d --- binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/branch-misc-2.d Mon Oct 7 23:08:00 2002 +++ binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/branch-misc-2.d Wed Dec 31 16:00:00 1969 @@ -1,30 +0,0 @@ -#name: MIPS branch-misc-2 -#source: ../../../gas/testsuite/gas/mips/branch-misc-2.s -#objdump: --prefix-addresses -tdr --show-raw-insn -#ld: -Ttext 0x500000 -e 0x500000 -N - -.*: file format elf.*mips.* - -#... - -Disassembly of section \.text: - \.\.\. - \.\.\. - \.\.\. -0+50003c <[^>]*> 0411fff0 bal 0+500000 <[^>]*> -0+500040 <[^>]*> 00000000 nop -0+500044 <[^>]*> 0411fff3 bal 0+500014 <[^>]*> -0+500048 <[^>]*> 00000000 nop -0+50004c <[^>]*> 0411fff6 bal 0+500028 <[^>]*> -0+500050 <[^>]*> 00000000 nop -0+500054 <[^>]*> 0411000a bal 0+500080 <[^>]*> -0+500058 <[^>]*> 00000000 nop -0+50005c <[^>]*> 0411000d bal 0+500094 <[^>]*> -0+500060 <[^>]*> 00000000 nop -0+500064 <[^>]*> 04110010 bal 0+5000a8 <[^>]*> -0+500068 <[^>]*> 00000000 nop - \.\.\. - \.\.\. - \.\.\. - \.\.\. -#pass diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/jr.s binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/jr.s --- binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/jr.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/jr.s Tue Jan 21 10:21:34 2003 @@ -0,0 +1 @@ + jr $31 diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/mips-elf-flags.exp binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/mips-elf-flags.exp --- binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/mips-elf-flags.exp Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/mips-elf-flags.exp Tue Jan 21 10:21:34 2003 @@ -0,0 +1,146 @@ +# Copyright 2003 Free Software Foundation, Inc. +# +# This file 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. + +if {![istarget mips*-*-*] || ![is_elf_format]} { + return +} + +# Assemble jr.s using each of the argument lists in ARGLIST. Return the +# list of object files on success and an empty list on failure. +proc assemble_for_flags {arglist} { + global as srcdir subdir + + set objs {} + set index 1 + + foreach args $arglist { + set obj "tmpdir/mips-flags-${index}.o" + if {![ld_assemble $as "$args $srcdir/$subdir/jr.s" $obj]} { + return "" + } + lappend objs $obj + incr index + } + return $objs +} + +# Assemble a file using each set of arguments in ARGLIST. Check that +# the objects can be linked together and that the readelf output +# includes each flag named in FLAGS. +proc good_combination {arglist flags} { + global ld READELF + + set finalobj "tmpdir/mips-flags.o" + set testname "MIPS compatible objects: $arglist" + set objs [assemble_for_flags $arglist] + + if {$objs == ""} { + unresolved $testname + } elseif {![ld_simple_link $ld $finalobj "-r $objs"]} { + fail $testname + } else { + catch "exec $READELF --headers $finalobj" output + if {![regexp "Flags: *(\[^\n\]*)" $output full gotflags]} { + unresolved $testname + } else { + set failed 0 + + # GOTFLAGS is a list of flags separated by ", ". + # Convert it to a tcl list. + regsub -all ", " $gotflags "," gotflags + set gotflags [split $gotflags ","] + + foreach flag $flags { + if {[lsearch -exact $gotflags $flag] < 0} { + set failed 1 + } + } + if {$failed} { + fail $testname + } else { + pass $testname + } + } + } +} + +# Like good_combination, but check that the objects can't be linked +# together successfully and that the output includes MESSAGE. +proc bad_combination {arglist message} { + global link_output ld + + set finalobj "tmpdir/mips-flags.o" + set testname "MIPS incompatible objects: $arglist" + set objs [assemble_for_flags $arglist] + + if {$objs == ""} { + unresolved $testname + } elseif {[ld_simple_link $ld $finalobj "-r $objs"] + || [string first $message $link_output] < 0} { + fail $testname + } else { + pass $testname + } +} + +# Routines to check for various kinds of incompatibility. + +proc abi_conflict {arglist firstabi secondabi} { + bad_combination $arglist \ + "linking $secondabi module with previous $firstabi modules" +} + +proc isa_conflict {arglist firstisa secondisa} { + bad_combination $arglist \ + "linking mips:$secondisa module with previous mips:$firstisa modules" +} + +proc regsize_conflict {arglist} { + bad_combination $arglist \ + "linking 32-bit code with 64-bit code" +} + +abi_conflict { "-mabi=eabi -mgp32" "-mips4 -mabi=32" } EABI32 O32 +abi_conflict { "-mips4 -mabi=o64" "-mips3 -mabi=eabi" } O64 EABI64 + +isa_conflict { "-march=vr5500" "-march=sb1" } 5500 sb1 +isa_conflict { "-march=vr5400" "-march=4120" } 5400 4120 +isa_conflict { "-march=r3900" "-march=r6000" } 3900 6000 +isa_conflict { "-march=r4010" "-march=r4650" } 4010 4650 +isa_conflict { "-mips3 -mgp32" "-mips32" } 4000 isa32 +isa_conflict { "-march=sb1 -mgp32" "-mips32r2" } sb1 isa32r2 + +regsize_conflict { "-mips4 -mgp64" "-mips2" } +regsize_conflict { "-mips4 -mabi=o64" "-mips4 -mabi=32" } +regsize_conflict { "-mips4 -mabi=eabi -mgp32" "-mips4 -mabi=eabi -mgp64" } +regsize_conflict { "-march=vr5000 -mgp64" "-march=vr5000 -mgp32" } +regsize_conflict { "-mips32" "-mips64" } +regsize_conflict { "-mips32r2" "-mips64" } + +good_combination { "-mips4 -mgp32" "-mips2" } { mips4 32bitmode } +good_combination { "-mips4 -mabi=32" "-mips2" } { mips4 o32 } +good_combination { "-mips2" "-mips4 -mabi=32" } { mips4 o32 } +good_combination { "-mips2" "-mips4 -mabi=eabi -mgp32" } { mips4 eabi32 } +good_combination { "-mips2" "-mips32" "-mips32r2" } { mips32r2 } +good_combination { "-mips1" "-mips32r2" "-mips32" } { mips32r2 } + +good_combination { "-march=vr4100" "-march=vr4120" } { 4120 } +good_combination { "-march=vr5400" "-march=vr5500" "-mips4" } { 5500 } +good_combination { "-mips3" "-mips4" "-march=sb1" "-mips5" } { sb1 } +good_combination { "-mips1" "-march=3900" } { 3900 } + +good_combination { "-march=vr4120 -mabi=32" "-mips3 -mabi=32" } { 4120 o32 } +good_combination { "-march=sb1 -mgp32" "-march=4000 -mgp32" } { sb1 32bitmode } diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/mips-elf.exp binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/mips-elf.exp --- binutils-2.13.90.0.16/ld/testsuite/ld-mips-elf/mips-elf.exp Mon Oct 7 23:08:00 2002 +++ binutils-2.13.90.0.18/ld/testsuite/ld-mips-elf/mips-elf.exp Mon Dec 16 12:22:53 2002 @@ -29,7 +29,6 @@ if { [istarget mips*-*-*] } then { # MIPS branch offset final link checking. run_dump_test "branch-misc-1" - run_dump_test "branch-misc-2" } if { $embedded_elf } { diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/apuinfo.rd binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/apuinfo.rd --- binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/apuinfo.rd Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/apuinfo.rd Mon Dec 16 12:22:53 2002 @@ -0,0 +1,10 @@ +#source: apuinfo1.s +#source: apuinfo2.s +#as: -me500 +#readelf: -x5 +#target: powerpc-eabi* + +Hex dump of section '.PPC.EMB.apuinfo': + 0x00000000 00000008 00000007 00000002 41505569 ............APUi + 0x00000010 6e666f00 00420001 00430001 00410001 nfo..B...C...A.. + 0x00000020 01020001 01010001 00400001 01000001 .........@...... diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/apuinfo1.s binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/apuinfo1.s --- binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/apuinfo1.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/apuinfo1.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,9 @@ + .text + .global apuinfo1 +apuinfo1: + evstdd 29,8(1) + isellt 29, 28, 27 + efsabs 29, 28 + .global _start +_start: + nop diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/apuinfo2.s binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/apuinfo2.s --- binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/apuinfo2.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/apuinfo2.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,8 @@ + .text + .global apuinfo2 +apuinfo2: + evstdd 29,8(1) + mfbbear 29 + mfpmr 29, 27 + dcbtstls 1, 29, 28 + rfmci diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/powerpc.exp binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/powerpc.exp --- binutils-2.13.90.0.16/ld/testsuite/ld-powerpc/powerpc.exp Wed Oct 9 21:09:41 2002 +++ binutils-2.13.90.0.18/ld/testsuite/ld-powerpc/powerpc.exp Mon Dec 16 12:22:53 2002 @@ -41,6 +41,8 @@ if { [istarget "*-*-macos*"] || [istarge set ppcelftests { {"Reloc section order" "-shared -z nocombreloc" "" {reloc.s} {{objdump -hw reloc.d}} "reloc.so"} + {"APUinfo section processing" "" "-me500" {apuinfo1.s apuinfo2.s} + {{readelf -x5 apuinfo.rd}} "apuinfo"} } run_ld_link_tests $ppcelftests diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbg-0-dso.d binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbg-0-dso.d --- binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbg-0-dso.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbg-0-dso.d Mon Dec 16 12:22:53 2002 @@ -0,0 +1,9 @@ +#source: refdbglib.s +#as: -little +#ld: -shared -EL +#objdump: -drj.text +#target: sh*-*-linux* sh*-*-netbsd* + +.*: +file format elf32-sh.* + +#pass diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbg-1.d binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbg-1.d --- binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbg-1.d Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbg-1.d Mon Dec 16 12:22:53 2002 @@ -0,0 +1,10 @@ +#source: refdbg.s +#as: -little +#ld: -EL tmpdir/refdbg-0-dso.so +#objdump: -sj.debug_info +#target: sh*-*-linux* sh*-*-netbsd* + +.*: +file format elf32-sh.* + +Contents of section \.debug_info: + 0+0 0+0 +.* diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbg.s binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbg.s --- binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbg.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbg.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,11 @@ + .text + .align 2 + .globl _start + .type _start,@function +_start: + rts + nop + + .comm foo,4,4 + .section .debug_info,"",@progbits + .ualong foo diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbglib.s binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbglib.s --- binutils-2.13.90.0.16/ld/testsuite/ld-sh/refdbglib.s Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/ld/testsuite/ld-sh/refdbglib.s Mon Dec 16 12:22:53 2002 @@ -0,0 +1,8 @@ + .text + .global foo + .data + .align 2 + .type foo, @object + .size foo, 4 +foo: + .long 1 diff -uprN binutils-2.13.90.0.16/ld/testsuite/ld-srec/srec.exp binutils-2.13.90.0.18/ld/testsuite/ld-srec/srec.exp --- binutils-2.13.90.0.16/ld/testsuite/ld-srec/srec.exp Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.18/ld/testsuite/ld-srec/srec.exp Tue Jan 21 10:21:34 2003 @@ -1,6 +1,6 @@ # Test linking directly to S-records. # By Ian Lance Taylor, Cygnus Support. -# Copyright 2001 +# Copyright 2001, 2002, 2003 # Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify @@ -225,7 +225,8 @@ proc run_srec_test { test objs } { global sizeof_headers global host_triplet - set flags "" + # Tell the ELF linker to not do anything clever with .eh_frame. + set flags "--traditional-format" # If the linker script uses SIZEOF_HEADERS, use a -Ttext argument # to force both the normal link and the S-record link to be put in @@ -370,7 +371,7 @@ setup_xfail "thumb-*-elf*" setup_xfail "arm*-*-linux*" # The S-record linker doesn't build special EABI sections. -setup_xfail "powerpc*-*-eabi*" +# setup_xfail "powerpc*-*-eabi*" # The S-record linker doesn't include the .{zda} sections. setup_xfail "v850*-*-elf" diff -uprN binutils-2.13.90.0.16/ld/testsuite/lib/ld-lib.exp binutils-2.13.90.0.18/ld/testsuite/lib/ld-lib.exp --- binutils-2.13.90.0.16/ld/testsuite/lib/ld-lib.exp Thu Nov 14 09:37:56 2002 +++ binutils-2.13.90.0.18/ld/testsuite/lib/ld-lib.exp Mon Dec 16 12:22:53 2002 @@ -344,6 +344,7 @@ proc is_elf_format {} { && ![istarget *-*-linux*] \ && ![istarget *-*-irix5*] \ && ![istarget *-*-irix6*] \ + && ![istarget *-*-netbsd*] \ && ![istarget *-*-solaris2*] } { return 0 } @@ -352,6 +353,18 @@ proc is_elf_format {} { || [istarget *-*-linux*oldld*] } { return 0 } + + if { ![istarget *-*-netbsdelf*] \ + && ([istarget *-*-netbsd*aout*] \ + || [istarget *-*-netbsdpe*] \ + || [istarget arm*-*-netbsd*] \ + || [istarget sparc-*-netbsd*] \ + || [istarget i*86-*-netbsd*] \ + || [istarget m68*-*-netbsd*] \ + || [istarget vax-*-netbsd*] \ + || [istarget ns32k-*-netbsd*]) } { + return 0 + } return 1 } diff -uprN binutils-2.13.90.0.16/libiberty/ChangeLog binutils-2.13.90.0.18/libiberty/ChangeLog --- binutils-2.13.90.0.16/libiberty/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/libiberty/ChangeLog Tue Jan 21 10:21:34 2003 @@ -1,3 +1,19 @@ +2003-01-20 Josef Zlomek + + * hashtab.c (htab_expand): Fix allocation of new entries. + +2003-01-09 Christian Cornelssen + + * Makefile.in (FLAGS_TO_PASS): Also pass DESTDIR. + + * Makefile.in (install_to_libdir, install_to_tooldir): Add a + mkinstalldirs command. + +2002-12-04 Danny Smith + + * make-relative-prefix.c (HAVE_HOST_EXECUTABLE_SUFFIX): + Define for hosts with HOST_EXECUTABLE_SUFFIX. + 2002-11-24 Nick Clifton * make-relative-prefix.c (make_relative_prefix): Ensure return diff -uprN binutils-2.13.90.0.16/libiberty/Makefile.in binutils-2.13.90.0.18/libiberty/Makefile.in --- binutils-2.13.90.0.16/libiberty/Makefile.in Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/libiberty/Makefile.in Tue Jan 21 10:21:34 2003 @@ -85,6 +85,7 @@ FLAGS_TO_PASS = \ "AR_FLAGS=$(AR_FLAGS)" \ "CC=$(CC)" \ "CFLAGS=$(CFLAGS)" \ + "DESTDIR=$(DESTDIR)" \ "LIBCFLAGS=$(LIBCFLAGS)" \ "EXTRA_OFILES=$(EXTRA_OFILES)" \ "HDEFINES=$(HDEFINES)" \ @@ -262,6 +263,7 @@ INSTALL_DEST = @INSTALL_DEST@ install: install_to_$(INSTALL_DEST) install-subdir install_to_libdir: all + ${mkinstalldirs} $(DESTDIR)$(libdir)$(MULTISUBDIR) $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n ( cd $(DESTDIR)$(libdir)$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n ) mv -f $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)$(MULTISUBDIR)/$(TARGETLIB) @@ -278,6 +280,7 @@ install_to_libdir: all @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install install_to_tooldir: all + ${mkinstalldirs} $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR) $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n ( cd $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR) ; $(RANLIB) $(TARGETLIB)n ) mv -f $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib$(MULTISUBDIR)/$(TARGETLIB) diff -uprN binutils-2.13.90.0.16/libiberty/hashtab.c binutils-2.13.90.0.18/libiberty/hashtab.c --- binutils-2.13.90.0.16/libiberty/hashtab.c Fri Jun 7 19:22:17 2002 +++ binutils-2.13.90.0.18/libiberty/hashtab.c Tue Jan 21 10:21:34 2003 @@ -306,16 +306,18 @@ htab_expand (htab) PTR *olimit; PTR *p; PTR *nentries; + size_t nsize; oentries = htab->entries; olimit = oentries + htab->size; - htab->size = higher_prime_number (htab->size * 2); + nsize = higher_prime_number (htab->size * 2); - nentries = (PTR *) (*htab->alloc_f) (htab->size, sizeof (PTR *)); + nentries = (PTR *) (*htab->alloc_f) (nsize, sizeof (PTR)); if (nentries == NULL) return 0; htab->entries = nentries; + htab->size = nsize; htab->n_elements -= htab->n_deleted; htab->n_deleted = 0; diff -uprN binutils-2.13.90.0.16/libiberty/make-relative-prefix.c binutils-2.13.90.0.18/libiberty/make-relative-prefix.c --- binutils-2.13.90.0.16/libiberty/make-relative-prefix.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/libiberty/make-relative-prefix.c Mon Dec 16 12:22:53 2002 @@ -67,6 +67,7 @@ can be found, return @code{NULL}. #if defined (_WIN32) || defined (__MSDOS__) \ || defined (__DJGPP__) || defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM +# define HAVE_HOST_EXECUTABLE_SUFFIX # define HOST_EXECUTABLE_SUFFIX ".exe" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' diff -uprN binutils-2.13.90.0.16/ltcf-c.sh binutils-2.13.90.0.18/ltcf-c.sh --- binutils-2.13.90.0.16/ltcf-c.sh Sun Feb 3 11:22:29 2002 +++ binutils-2.13.90.0.18/ltcf-c.sh Mon Dec 16 12:22:51 2002 @@ -108,7 +108,7 @@ EOF extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/impgen.c~ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ - if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ + if test "x$BUILD_CC" != "x" ; then $BUILD_CC -o impgen impgen.c ; \ else $CC -o impgen impgen.c ; fi)~ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' diff -uprN binutils-2.13.90.0.16/ltcf-gcj.sh binutils-2.13.90.0.18/ltcf-gcj.sh --- binutils-2.13.90.0.16/ltcf-gcj.sh Fri Nov 16 14:05:51 2001 +++ binutils-2.13.90.0.18/ltcf-gcj.sh Mon Dec 16 12:22:51 2002 @@ -111,7 +111,7 @@ EOF extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //; p; }" -e d < $0 > $output_objdir/impgen.c~ test -f $output_objdir/impgen.exe || (cd $output_objdir && \ - if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ + if test "x$BUILD_CC" != "x" ; then $BUILD_CC -o impgen impgen.c ; \ else $CC -o impgen impgen.c ; fi)~ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' diff -uprN binutils-2.13.90.0.16/mips/ChangeLog binutils-2.13.90.0.18/mips/ChangeLog --- binutils-2.13.90.0.16/mips/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/mips/ChangeLog Tue Jan 21 10:21:34 2003 @@ -1,3 +1,17 @@ +2003-01-02 H.J. Lu + + * README: Don't apply binutils-mips-isa.patch. + +2002-12-06 H.J. Lu + + * gas-mips-gprel.patch: New. A hack for GPREL16. + + * README: Apply gas-mips-gprel.patch. + +2002-12-04 H.J. Lu + + * binutils-mips-isa.patch: Change boolean to bfd_boolean. + 2002-11-20 H.J. Lu * bfd-mips-got.patch: New. A GOT hack for MIPS. diff -uprN binutils-2.13.90.0.16/mips/README binutils-2.13.90.0.18/mips/README --- binutils-2.13.90.0.16/mips/README Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/mips/README Tue Jan 21 10:21:34 2003 @@ -14,7 +14,7 @@ dir=`dirname $0` -patch -p0 -b --suffix .got < $dir/bfd-mips-got.patch && \ -patch -p1 -b --suffix .isa < $dir/binutils-mips-isa.patch +patch -p0 -b --suffix .gprel < $dir/gas-mips-gprel.patch && \ +patch -p0 -b --suffix .got < $dir/bfd-mips-got.patch find -name "*.rej" | grep rej && exit 1 find -name "*.orig" | xargs rm -fv diff -uprN binutils-2.13.90.0.16/mips/binutils-mips-isa.patch binutils-2.13.90.0.18/mips/binutils-mips-isa.patch --- binutils-2.13.90.0.16/mips/binutils-mips-isa.patch Wed Oct 2 10:17:20 2002 +++ binutils-2.13.90.0.18/mips/binutils-mips-isa.patch Mon Dec 16 12:22:53 2002 @@ -52,11 +52,11 @@ /* Get the ECOFF swapping routines. */ #include "coff/sym.h" @@ -5896,6 +5897,55 @@ _bfd_mips_elf_finish_dynamic_sections (o - return true; + return TRUE; } +/* Set MIPS ISA in the ELF header. */ -+boolean ++bfd_boolean +bfd_mips_elf_set_isa (abfd, isa) + bfd *abfd; + int isa; @@ -66,7 +66,7 @@ + switch (isa) + { + default: -+ return false; ++ return FALSE; + break; + + case ISA_MIPS1: @@ -101,7 +101,7 @@ + elf_elfheader (abfd)->e_flags &= ~EF_MIPS_ARCH; + elf_elfheader (abfd)->e_flags |= val; + -+ return true; ++ return TRUE; +} + /* The final processing done just before writing out a MIPS ELF object @@ -109,7 +109,7 @@ number. This is used by both the 32-bit and the 64-bit ABI. */ @@ -5905,87 +5955,107 @@ _bfd_mips_elf_final_write_processing (ab bfd *abfd; - boolean linker ATTRIBUTE_UNUSED; + bfd_boolean linker ATTRIBUTE_UNUSED; { - unsigned long val; + unsigned long isa, cpu; @@ -340,7 +340,7 @@ PARAMS ((bfd *, const Elf_Internal_Options *, Elf_External_Options *)); +/* Set MIPS ISA in the ELF header. */ -+extern boolean bfd_mips_elf_set_isa PARAMS ((bfd *, int)); ++extern bfd_boolean bfd_mips_elf_set_isa PARAMS ((bfd *, int)); + /* Values which may appear in the kind field of an Elf_Options structure. */ diff -uprN binutils-2.13.90.0.16/mips/gas-mips-gprel.patch binutils-2.13.90.0.18/mips/gas-mips-gprel.patch --- binutils-2.13.90.0.16/mips/gas-mips-gprel.patch Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/mips/gas-mips-gprel.patch Mon Dec 16 12:22:53 2002 @@ -0,0 +1,20 @@ +--- gas/config/tc-mips.c.gprel Fri Dec 6 17:38:22 2002 ++++ gas/config/tc-mips.c Fri Dec 6 17:39:09 2002 +@@ -13396,7 +13396,16 @@ tc_gen_reloc (section, fixp) + && (code == BFD_RELOC_GPREL16 || code == BFD_RELOC_MIPS16_GPREL) + && reloc->addend != 0 + && mips_need_elf_addend_fixup (fixp)) +- reloc->addend += S_GET_VALUE (fixp->fx_addsy); ++ { ++ /* gbl: in o32 GPREL16 is always inplace, but in n32 and 64 ++ it isn't. I wish someone would get rid of this "fix". */ ++ reloc_howto_type *howto; ++ ++ howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); ++ if (howto->partial_inplace) { ++ reloc->addend += S_GET_VALUE (fixp->fx_addsy); ++ } ++ } + #endif + + /* To support a PC relative reloc when generating embedded PIC code diff -uprN binutils-2.13.90.0.16/opcodes/ChangeLog binutils-2.13.90.0.18/opcodes/ChangeLog --- binutils-2.13.90.0.16/opcodes/ChangeLog Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/opcodes/ChangeLog Tue Jan 21 10:21:34 2003 @@ -1,3 +1,304 @@ +2003-01-17 Richard Henderson + + * alpha-opc.c (alpha_opcodes): Add bugchk, rduniq, wruniq, gentrap + PAL entry points. + +2003-01-16 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * po/POTFILES.in: Regenerate. + +2003-01-08 Klee Dienes + + * Makefile.am (ALL_MACHINES): Add msp430-dis.lo. + * Makefile.in: Regenerate. + +2003-01-08 Alan Modra + + * ppc-opc.c (powerpc_macros ): Accept a shift of 32. + +2002-01-02 Ben Elliston + Jeff Johnston + + * iq2000-asm.c: New file. + * iq2000-desc.c: Likewise. + * iq2000-desc.h: Likewise. + * iq2000-dis.c: Likewise. + * iq2000-ibld.c: Likewise. + * iq2000-opc.c: Likewise. + * iq2000-opc.h: Likewise. + * Makefile.am (HFILES): Add iq2000-desc.h, iq2000-opc.h. + (CFILES): Add iq2000-asm.c, iq2000-desc.c, iq2000-dis.c, + iq2000-ibld.c, iq2000-opc.c. + (ALL_MACHINES): Add iq2000-asm.lo, iq2000-desc.lo, iq2000-dis.lo, + iq2000-ibld.lo, iq2000-opc.lo. + (CLEANFILES): Add stamp-iq2000. + (IQ2000_DEPS): New macro. + (stamp-iq2000): New target. + * Makefile.in: Regenerate. + * configure.in: Handle bfd_iq2000_arch. + * configure: Regenerate. + +2003-01-02 Chris Demetriou + + * mips-dis.c (print_insn_args): Use position extracted by "+A" + to calculate size for "+B". Redo code for "+C" so it shares + the same style as "+A" and "+B" now do. + +2003-01-02 Chris Demetriou + + * mips-dis.c: Update copyright years. + (print_insn_arg): Rename to... + (print_insn_args): This, returning void. Process the whole + string of args rather than a single one. Reindent. + (print_insn_mips): Update to match the above. + +2002-12-31 Chris Demetriou + + * mips-opc.c (mips_builtin_opcodes): Move "di" into the + right order alphabetically, and make all hex constants use + lower-case letters. + +2002-12-31 Chris Demetriou + + * mips-dis.c (mips_cp0sel_name): New structure. + (mips_cp0sel_names_mips3264, mips_cp0sel_names_mips3264r2) + (mips_cp0sel_names_sb1): New arrays. + (mips_arch_choice): New structure members "cp0sel_names" and + "cp0sel_names_len". + (mips_arch_choices): Add references to new cp0sel_names arrays + as appropriate, and make all existing entries reference + appropriate mips_XXX_names_numeric arrays rather than simply + using NULL. + (mips_cp0sel_names, mips_cp0sel_names_len): New variables. + (lookup_mips_cp0sel_name): New function. + (set_default_mips_dis_options): Set mips_cp0sel_names and + mips_cp0sel_names_len as appropriate. Remove now-unnecessary + checks for NULL register name arrays. + (parse_mips_dis_option): Likewise. + (print_insn_arg): Handle "+D" operand type. + * mips-opc.c (mips_builtin_opcodes): Add new "+D" variants + of mfc0, mtc0, dmfc0, and dmtc0 to print CP0+sel register + names symbolically. + +2002-12-30 Chris Demetriou + + * mips-dis.c (mips_cp0_names_mips3264r2, mips_hwr_names_numeric) + (mips_hwr_names_mips3264r2): New arrays. + (mips_arch_choice): New "hwr_names" member. + (mips_arch_choices): Adjust for structure change, and add a new + entry for "mips32r2" ISA. + (mips_hwr_names): New variable. + (set_default_mips_dis_options): Set mips_hwr_names. + (parse_mips_dis_option): New "hwr-names" option which sets + mips_hwr_names, and adjust "reg-names=ARCH" to set mips_hwr_names. + (print_insn_arg): Change return type to "int" + and use that to indicate number of characters consumed. + Add support for "+" operand extension character, "+A", "+B", + "+C", and "K" operands. + (print_insn_mips): Adjust for changes to print_insn_arg. + (print_mips_disassembler_options): Adjust for "hwr-names" + addition and "reg-names" change. + * mips-opc (I33): New define (shorthand for INSN_ISA32R2). + (mips_builtin_opcodes): Note that "nop" and "ssnop" are special + forms of "sll". Add new MIPS32 Release 2 instructions: ehb, + di, ei, ext, ins, jr.hb, jalr.hb, mfhc1, mfhc2, mthc1, mthc2, + rdhwr, rdpgpr, seb, seh, synci, wrpgpr, wsbh. + Note that hardware rotate instructions (ror, rorv) can be + used on MIPS32 Release 2, and add the official mnemonics + for them (rotr, rotrv) and the similar "rotl" mnemonic for + left-rotate. + +2002-12-30 Dmitry Diky + + * configure.in: Add msp430 target. + * configure: Regenerate. + * disassemble.c: Add entry for msp430 disassembly. + * msp430-dis.c: New file: msp430 disassembler. + +2002-12-27 Chris Demetriou + + * disassemble.c (disassembler_usage): Add invocation of + print_mips_disassembler_options. + * mips-dis.c: Include libiberty.h. + (print_mips_disassembler_options, set_default_mips_dis_options) + (parse_mips_dis_option, parse_mips_dis_options, choose_abi_by_name) + (choose_arch_by_name, choose_arch_by_number): New functions. + (mips_abi_choice, mips_arch_choice): New structures. + (mips32_reg_names, mips64_reg_names, reg_names): Remove. + (mips_gpr_names_numeric, mips_gpr_names_oldabi) + (mips_gpr_names_newabi, mips_fpr_names_numeric) + (mips_fpr_names_32, mips_fpr_names_n32, mips_fpr_names_64) + (mips_cp0_names_numeric, mips_cp0_names_mips3264) + (mips_cp0_names_sb1, mips_abi_choices, mips_arch_choices) + (mips_processor, mips_isa, mips_gpr_names, mips_fpr_names) + (mips_cp0_names): New variables. + (print_insn_args): Use new variables to print GPR, FPR, and CP0 + register names. + (mips_isa_type): Remove. + (print_insn_mips): Remove ISA and CPU setup since it is now done... + (_print_insn_mips): Here. Remove register setup code, and + call set_default_mips_dis_options and parse_mips_dis_options + instead. + (print_mips16_insn_arg): Use mips_gpr_names instead of mips32_names. + +2002-12-23 Alan Modra + + * Makefile.in: Regenerate. + +2002-12-19 Nick Kelsey + + * cgen-asm.c (cgen_parse_keyword): Added underscore to symbol character + check to fix false keyword trigger with names such as _foo. + +2002-12-19 Doug Evans + + * Makefile.am (CGEN_CPUS): New variable. + (run-cgen-all): New rule. + * Makefile.in: Regenerate. + +2002-12-18 Chris Demetriou + + * mips-opc.c (mips_builtin_opcodes): Remove one "ror" and two + "dror" entries, and reorder the remaining "dror" and "ror" entries. + +2002-12-16 DJ Delorie + + * xstormy16-asm.c (parse_immediate16): Add prototype. + +2002-12-16 Andrew MacLeod + + * xstormy16-asm.c: Regenerate. + +2002-12-16 Alan Modra + + * ns32k-dis.c (print_insn_ns32k): Constify "d", remove register + keyword. + +2002-12-13 Alan Modra + + * h8500-opc.h (h8500_table): Add missing initializers to quiet + warnings. + * pj-dis.c (print_insn_pj): Adjust for pj_opc_info_t change. + * pj-opc.c (pj_opc_info): Add braces around union initializer. + * z8kgen.c: Include "libiberty.h". + (opt, args, toks): Fix initializer warnings. + (chewname): Make "name" a char **. Return mnemonic trimmed of + operands. + (gas): Improve emitted "DO NOT EDIT" warning. Format emitted + opcode_entry_type, and make "nicename" and "name" const. Make + z8k_table const too. Formatting. Generate idx as gas needs it. + * z8k-opc.h: Regenerate. + +2002-12-08 Stephane Carrez + + * m68hc11-dis.c (print_indexed_operand): Fix PC-relative address + for 9 and 16-bit PC-relative addressing mode. + +2002-12-05 Aldy Hernandez + + * ppc-opc.c: Delete evsabs, evsnabs, evsneg, evsadd, evssub, + evsmul, evsdiv, evscmpgt, evsgmplt, evststgt, evtstlt, evststeq, + evscfui, evscfsi, evscfuf, evscfsf, evsctui, evsctuiz, evsctsi, + evsctsiz, evsctuf, evsctsf, evmwhssfaa, evmwhssmaa, evmwhsmfaa, + evmwhsmiaa, evmwhusiaa, evmwhumiaa, evmwhssfan, evmwhssian, + evmwhsmfan, evmwhsmian, evmwhusian, evmwhumian, evmwhgssfaa, + evmwhgsmfaa, evmwhgsmiaa, evmwhgumiaa, evmwhgssfan, evmwhgsmfan, + evmwhgsmian, evmwhgumian. + (mftb): Add to opcode table. + (mtspefscr): Change RT to RS in opcode table. + +2002-12-05 Aldy Hernandez + + * ppc-opc.c: Move mbar and msync up. Change mask for mbar and + msync. + +2002-12-04 David Mosberger + + * ia64-opc-d.c (ia64_opcodes_d): Add "hint" instruction. + * ia64-opc-b.c: Add "hint.b" instruction. + * ia64-opc-f.c: Add "hint.f" instruction. + * ia64-opc-i.c: Add "hint.i" instruction. + * ia64-opc-m.c: Add "hint.m", "fc.i", "ld16", "st16", and + "cmp8xchg16" instructions. + * ia64-opc-x.c: Add "hint.x" instruction. + + * ia64-opc.h (AR_CSD): New macro. + + * ia64-ic.tbl: Update according to SDM2.1. + * ia64-raw.tbl: Ditto. + * ia64-waw.tbl: Ditto. + + * ia64-gen.c (in_iclass): Handle "hint" like "nop". + (lookup_regindex): Recognize AR[FCR], AR[EFLAG], AR[CSD], + AR[SSD], AR[CFLG], AR[FSR], AR[FIR], and AR[FDR]. + * ia64-asmtab.c: Regenerate. + +2002-11-25 Aldy Hernandez + + * ppc-opc.c: Remove evmwlssf, evmwlssfa, evmwlsmf, evmwlsmfa, + evmwlssfaaw, evmwlsmfaaw, evmwlssfanw, evmwlsfanw. + +2002-12-04 Aldy Hernandez + + * ppc-opc.c (PMRN): Remove. + (RA): Set to NB + 1. + (powerpc_opcodes): Change PMRN to SPR. + Change all RD to RS. + Change mftb to look like mftbl. + Move mftb before mftbl. + Add mfbbtar. + Add mtbbtar. + Change mfpmr to use PMR. + Change mtpmr to use PMR. + (RD): Remove. + (insert_ev2): Fix mask and shift. + (extract_ev2): Same. + (insert_ev4): Same. + (extract_ev4): Same. + (PMR): Define. + (extract_pmrn): Remove. + (insert_pmrn): Remove. + +2002-12-03 Richard Henderson + + * ia64-opc-m.c: Add ld8.mov. + * ia64-asmtab.c: Regenerate. + +2002-12-02 Alan Modra + + * arm-dis.c (print_insn_arm): Constify "insn". Formatting. + (print_insn_thumb): Likewise. + * h8500-dis.c (print_insn_h8500): Constify "opcode". + * mcore-dis.c (print_insn_mcore): Constify "op". Formatting. + * ns32k-dis.c (print_insn_arg ): Use a union to avoid + type-punned pointer warnings. + : Likewise. Fix error message too. + * pdp11-dis.c (print_reg): Warning fix. + * sh-dis.c (print_movxy): Constify "op" param. + (print_insn_ddt): Constify sh_opcode_info vars. + (print_insn_ppi): Likewise. + (print_insn_sh): Likewise. + * tic30-dis.c (cnvt_tmsfloat_ieee): Use a union to avoid + type-punned pointer warnings. + * w65-dis.c (print_insn_w65): Constify "op". + +2002-12-01 Stephane Carrez + + * m68hc11-dis.c (PC_REGNUM): Define. + (print_indexed_operand): Need an adjustment for some PC-relative + operand modes; print the final address of PC-relative modes. + (print_insn): Take into account movw/movb to adjust the PC-relative + operand addresses. + +2002-11-30 Alan Modra + + *arm-dis.c, cris-dis.c, h8300-dis.c, mips-dis.c, mmix-dis.c, sh-dis.c, + sh64-dis.c, v850-dis.c: Replace boolean with bfd_boolean, true with + TRUE, false with FALSE. Simplify comparisons of bfd_boolean vars + with TRUE/FALSE. Formatting. + 2002-11-25 DJ Delorie * xstormy16-opc.c: Regenerate. diff -uprN binutils-2.13.90.0.16/opcodes/Makefile.am binutils-2.13.90.0.18/opcodes/Makefile.am --- binutils-2.13.90.0.16/opcodes/Makefile.am Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/Makefile.am Tue Jan 21 10:21:34 2003 @@ -31,6 +31,7 @@ HFILES = \ ia64-asmtab.h \ ia64-opc.h \ ip2k-desc.h ip2k-opc.h \ + iq2000-desc.h iq2000-opc.h \ m32r-desc.h m32r-opc.h \ mcore-opc.h \ openrisc-desc.h openrisc-opc.h \ @@ -96,6 +97,11 @@ CFILES = \ ip2k-dis.c \ ip2k-ibld.c \ ip2k-opc.c \ + iq2000-asm.c \ + iq2000-desc.c \ + iq2000-dis.c \ + iq2000-ibld.c \ + iq2000-opc.c \ m32r-asm.c \ m32r-desc.c \ m32r-dis.c \ @@ -201,6 +207,11 @@ ALL_MACHINES = \ ip2k-dis.lo \ ip2k-ibld.lo \ ip2k-opc.lo \ + iq2000-asm.lo \ + iq2000-desc.lo \ + iq2000-dis.lo \ + iq2000-ibld.lo \ + iq2000-opc.lo \ m32r-asm.lo \ m32r-desc.lo \ m32r-dis.lo \ @@ -222,6 +233,7 @@ ALL_MACHINES = \ mips16-opc.lo \ mmix-dis.lo \ mmix-opc.lo \ + msp430-dis.lo \ ns32k-dis.lo \ openrisc-asm.lo \ openrisc-desc.lo \ @@ -326,7 +338,7 @@ uninstall_libopcodes: CLEANFILES = \ stamp-ip2k stamp-m32r stamp-fr30 stamp-frv stamp-openrisc \ - stamp-xstormy16 \ + stamp-iq2000 stamp-xstormy16 \ libopcodes.a stamp-lib dep.sed DEP DEPA DEP1 DEP2 @@ -342,12 +354,15 @@ CGENDEPS = \ $(CGENDIR)/opc-opinst.scm \ cgen-asm.in cgen-dis.in cgen-ibld.in +CGEN_CPUS = fr30 frv ip2k m32r openrisc xstormy16 + if CGEN_MAINT IP2K_DEPS = stamp-ip2k M32R_DEPS = stamp-m32r FR30_DEPS = stamp-fr30 FRV_DEPS = stamp-frv OPENRISC_DEPS = stamp-openrisc +IQ2000_DEPS = stamp-iq2000 XSTORMY16_DEPS = stamp-xstormy16 else IP2K_DEPS = @@ -355,6 +370,7 @@ M32R_DEPS = FR30_DEPS = FRV_DEPS = OPENRISC_DEPS = +IQ2000_DEPS = XSTORMY16_DEPS = endif @@ -365,6 +381,14 @@ run-cgen: touch stamp-${prefix} .PHONY: run-cgen +# Maintainer utility rule to regenerate all cgen files. +run-cgen-all: + for c in $(CGEN_CPUS) ; \ + do \ + $(MAKE) stamp-$$c || exit 1 ; \ + done +.PHONY: run-cgen-all + # For now, require developers to configure with --enable-cgen-maint. $(srcdir)/ip2k-desc.h $(srcdir)/ip2k-desc.c $(srcdir)/ip2k-opc.h $(srcdir)/ip2k-opc.c $(srcdir)/ip2k-ibld.c $(srcdir)/ip2k-asm.c $(srcdir)/ip2k-dis.c: $(IP2K_DEPS) @true @@ -391,6 +415,12 @@ $(srcdir)/openrisc-desc.h $(srcdir)/open stamp-openrisc: $(CGENDEPS) $(CPUDIR)/openrisc.cpu $(CPUDIR)/openrisc.opc $(MAKE) run-cgen arch=openrisc prefix=openrisc options= extrafiles= +$(srcdir)/iq2000-desc.h $(srcdir)/iq2000-desc.c $(srcdir)/iq2000-opc.h $(srcdir)/iq2000-opc.c $(srcdir)/iq2000-ibld.c $(srcdir)/iq2000-asm.c $(srcdir)/iq2000-dis.c: $(IQ2000_DEPS) + @true +stamp-iq2000: $(CGENDEPS) $(CPUDIR)/iq2000.cpu $(CPUDIR)/iq2000.opc \ + $(CPUDIR)/iq2000m.cpu $(CPUDIR)/iq10.cpu + $(MAKE) run-cgen arch=iq2000 prefix=iq2000 options= extrafiles= + $(srcdir)/xstormy16-desc.h $(srcdir)/xstormy16-desc.c $(srcdir)/xstormy16-opc.h $(srcdir)/xstormy16-opc.c $(srcdir)/xstormy16-ibld.c $(srcdir)/xstormy16-asm.c $(srcdir)/xstormy16-dis.c: $(XSTORMY16_DEPS) @true stamp-xstormy16: $(CGENDEPS) $(CPUDIR)/xstormy16.cpu $(CPUDIR)/xstormy16.opc @@ -488,7 +518,7 @@ arm-dis.lo: arm-dis.c sysdep.h config.h $(INCDIR)/elf/reloc-macros.h avr-dis.lo: avr-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h \ - $(INCDIR)/opcode/avr.h + $(INCDIR)/libiberty.h $(INCDIR)/opcode/avr.h cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h $(BFD_H) \ $(INCDIR)/symcat.h $(INCDIR)/opcode/cgen.h opintl.h @@ -523,10 +553,11 @@ fr30-asm.lo: fr30-asm.c sysdep.h config. $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h fr30-desc.lo: fr30-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h fr30-desc.h $(INCDIR)/opcode/cgen.h \ - fr30-opc.h opintl.h $(INCDIR)/libiberty.h + fr30-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h fr30-dis.lo: fr30-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h fr30-desc.h \ - $(INCDIR)/opcode/cgen.h fr30-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + fr30-desc.h $(INCDIR)/opcode/cgen.h fr30-opc.h opintl.h fr30-ibld.lo: fr30-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h fr30-desc.h \ $(INCDIR)/opcode/cgen.h fr30-opc.h opintl.h $(INCDIR)/safe-ctype.h @@ -539,10 +570,11 @@ frv-asm.lo: frv-asm.c sysdep.h config.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h frv-desc.lo: frv-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h frv-desc.h $(INCDIR)/opcode/cgen.h \ - frv-opc.h opintl.h $(INCDIR)/libiberty.h + frv-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h frv-dis.lo: frv-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h frv-desc.h \ - $(INCDIR)/opcode/cgen.h frv-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + frv-desc.h $(INCDIR)/opcode/cgen.h frv-opc.h opintl.h frv-ibld.lo: frv-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h frv-desc.h \ $(INCDIR)/opcode/cgen.h frv-opc.h opintl.h $(INCDIR)/safe-ctype.h @@ -552,7 +584,7 @@ frv-opc.lo: frv-opc.c sysdep.h config.h $(INCDIR)/elf/reloc-macros.h h8300-dis.lo: h8300-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/opcode/h8300.h $(INCDIR)/dis-asm.h $(BFD_H) \ - $(INCDIR)/symcat.h opintl.h + $(INCDIR)/symcat.h opintl.h $(INCDIR)/libiberty.h h8500-dis.lo: h8500-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ h8500-opc.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ opintl.h @@ -590,7 +622,7 @@ ia64-gen.lo: ia64-gen.c $(INCDIR)/anside $(INCDIR)/safe-ctype.h sysdep.h config.h $(INCDIR)/getopt.h \ ia64-opc.h $(INCDIR)/opcode/ia64.h $(BFD_H) $(INCDIR)/symcat.h \ ia64-opc-a.c ia64-opc-i.c ia64-opc-m.c ia64-opc-b.c \ - ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c + ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c ../intl/libintl.h ia64-asmtab.lo: ia64-asmtab.c ip2k-asm.lo: ip2k-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \ @@ -598,26 +630,44 @@ ip2k-asm.lo: ip2k-asm.c sysdep.h config. $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h ip2k-desc.lo: ip2k-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \ - ip2k-opc.h opintl.h $(INCDIR)/libiberty.h + ip2k-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h ip2k-dis.lo: ip2k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h \ - $(INCDIR)/opcode/cgen.h ip2k-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + ip2k-desc.h $(INCDIR)/opcode/cgen.h ip2k-opc.h opintl.h ip2k-ibld.lo: ip2k-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h \ $(INCDIR)/opcode/cgen.h ip2k-opc.h opintl.h $(INCDIR)/safe-ctype.h ip2k-opc.lo: ip2k-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \ - ip2k-opc.h $(INCDIR)/libiberty.h + ip2k-opc.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h +iq2000-asm.lo: iq2000-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h $(INCDIR)/opcode/cgen.h \ + iq2000-opc.h opintl.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \ + $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h +iq2000-desc.lo: iq2000-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h $(INCDIR)/opcode/cgen.h \ + iq2000-opc.h opintl.h $(INCDIR)/libiberty.h +iq2000-dis.lo: iq2000-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h \ + $(INCDIR)/opcode/cgen.h iq2000-opc.h opintl.h +iq2000-ibld.lo: iq2000-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h \ + $(INCDIR)/opcode/cgen.h iq2000-opc.h opintl.h $(INCDIR)/safe-ctype.h +iq2000-opc.lo: iq2000-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h $(INCDIR)/opcode/cgen.h \ + iq2000-opc.h $(INCDIR)/libiberty.h m32r-asm.lo: m32r-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \ m32r-opc.h opintl.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \ $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h m32r-desc.lo: m32r-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \ - m32r-opc.h opintl.h $(INCDIR)/libiberty.h + m32r-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h m32r-dis.lo: m32r-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h \ - $(INCDIR)/opcode/cgen.h m32r-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + m32r-desc.h $(INCDIR)/opcode/cgen.h m32r-opc.h opintl.h m32r-ibld.lo: m32r-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h \ $(INCDIR)/opcode/cgen.h m32r-opc.h opintl.h $(INCDIR)/safe-ctype.h @@ -639,14 +689,14 @@ m68k-opc.lo: m68k-opc.c sysdep.h config. $(INCDIR)/opcode/m68k.h m88k-dis.lo: m88k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/m88k.h \ - opintl.h + opintl.h $(INCDIR)/libiberty.h mcore-dis.lo: mcore-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ mcore-opc.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h mips-dis.lo: mips-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/mips.h \ - opintl.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ - $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + $(INCDIR)/opcode/mips.h opintl.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h mips-opc.lo: mips-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/opcode/mips.h mips16-opc.lo: mips16-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ @@ -674,10 +724,12 @@ openrisc-asm.lo: openrisc-asm.c sysdep.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h openrisc-desc.lo: openrisc-desc.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(BFD_H) $(INCDIR)/symcat.h openrisc-desc.h \ - $(INCDIR)/opcode/cgen.h openrisc-opc.h opintl.h $(INCDIR)/libiberty.h + $(INCDIR)/opcode/cgen.h openrisc-opc.h opintl.h $(INCDIR)/libiberty.h \ + $(INCDIR)/xregex.h $(INCDIR)/xregex2.h openrisc-dis.lo: openrisc-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h openrisc-desc.h \ - $(INCDIR)/opcode/cgen.h openrisc-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + openrisc-desc.h $(INCDIR)/opcode/cgen.h openrisc-opc.h \ + opintl.h openrisc-ibld.lo: openrisc-ibld.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ openrisc-desc.h $(INCDIR)/opcode/cgen.h openrisc-opc.h \ @@ -751,11 +803,12 @@ xstormy16-asm.lo: xstormy16-asm.c sysdep $(INCDIR)/xregex2.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h xstormy16-desc.lo: xstormy16-desc.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(BFD_H) $(INCDIR)/symcat.h xstormy16-desc.h \ - $(INCDIR)/opcode/cgen.h xstormy16-opc.h opintl.h $(INCDIR)/libiberty.h + $(INCDIR)/opcode/cgen.h xstormy16-opc.h opintl.h $(INCDIR)/libiberty.h \ + $(INCDIR)/xregex.h $(INCDIR)/xregex2.h xstormy16-dis.lo: xstormy16-dis.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ - xstormy16-desc.h $(INCDIR)/opcode/cgen.h xstormy16-opc.h \ - opintl.h + $(INCDIR)/libiberty.h xstormy16-desc.h $(INCDIR)/opcode/cgen.h \ + xstormy16-opc.h opintl.h xstormy16-ibld.lo: xstormy16-ibld.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ xstormy16-desc.h $(INCDIR)/opcode/cgen.h xstormy16-opc.h \ @@ -765,5 +818,6 @@ xstormy16-opc.lo: xstormy16-opc.c sysdep $(INCDIR)/opcode/cgen.h xstormy16-opc.h $(INCDIR)/libiberty.h z8k-dis.lo: z8k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h z8k-opc.h -z8kgen.lo: z8kgen.c sysdep.h config.h $(INCDIR)/ansidecl.h +z8kgen.lo: z8kgen.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/libiberty.h # IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff -uprN binutils-2.13.90.0.16/opcodes/Makefile.in binutils-2.13.90.0.18/opcodes/Makefile.in --- binutils-2.13.90.0.16/opcodes/Makefile.in Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/Makefile.in Tue Jan 21 10:21:34 2003 @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am +# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -141,6 +141,7 @@ HFILES = \ ia64-asmtab.h \ ia64-opc.h \ ip2k-desc.h ip2k-opc.h \ + iq2000-desc.h iq2000-opc.h \ m32r-desc.h m32r-opc.h \ mcore-opc.h \ openrisc-desc.h openrisc-opc.h \ @@ -207,6 +208,11 @@ CFILES = \ ip2k-dis.c \ ip2k-ibld.c \ ip2k-opc.c \ + iq2000-asm.c \ + iq2000-desc.c \ + iq2000-dis.c \ + iq2000-ibld.c \ + iq2000-opc.c \ m32r-asm.c \ m32r-desc.c \ m32r-dis.c \ @@ -313,6 +319,11 @@ ALL_MACHINES = \ ip2k-dis.lo \ ip2k-ibld.lo \ ip2k-opc.lo \ + iq2000-asm.lo \ + iq2000-desc.lo \ + iq2000-dis.lo \ + iq2000-ibld.lo \ + iq2000-opc.lo \ m32r-asm.lo \ m32r-desc.lo \ m32r-dis.lo \ @@ -334,6 +345,7 @@ ALL_MACHINES = \ mips16-opc.lo \ mmix-dis.lo \ mmix-opc.lo \ + msp430-dis.lo \ ns32k-dis.lo \ openrisc-asm.lo \ openrisc-desc.lo \ @@ -393,7 +405,7 @@ POTFILES = $(HFILES) $(CFILES) CLEANFILES = \ stamp-ip2k stamp-m32r stamp-fr30 stamp-frv stamp-openrisc \ - stamp-xstormy16 \ + stamp-iq2000 stamp-xstormy16 \ libopcodes.a stamp-lib dep.sed DEP DEPA DEP1 DEP2 @@ -409,6 +421,8 @@ CGENDEPS = \ $(CGENDIR)/opc-opinst.scm \ cgen-asm.in cgen-dis.in cgen-ibld.in + +CGEN_CPUS = fr30 frv ip2k m32r openrisc xstormy16 @CGEN_MAINT_TRUE@IP2K_DEPS = @CGEN_MAINT_TRUE@stamp-ip2k @CGEN_MAINT_FALSE@IP2K_DEPS = @CGEN_MAINT_TRUE@M32R_DEPS = @CGEN_MAINT_TRUE@stamp-m32r @@ -419,6 +433,8 @@ CGENDEPS = \ @CGEN_MAINT_FALSE@FRV_DEPS = @CGEN_MAINT_TRUE@OPENRISC_DEPS = @CGEN_MAINT_TRUE@stamp-openrisc @CGEN_MAINT_FALSE@OPENRISC_DEPS = +@CGEN_MAINT_TRUE@IQ2000_DEPS = @CGEN_MAINT_TRUE@stamp-iq2000 +@CGEN_MAINT_FALSE@IQ2000_DEPS = @CGEN_MAINT_TRUE@XSTORMY16_DEPS = @CGEN_MAINT_TRUE@stamp-xstormy16 @CGEN_MAINT_FALSE@XSTORMY16_DEPS = ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -449,7 +465,7 @@ acinclude.m4 aclocal.m4 config.in config DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best SOURCES = libopcodes.a.c $(libopcodes_la_SOURCES) OBJECTS = libopcodes.a.$(OBJEXT) $(libopcodes_la_OBJECTS) @@ -861,6 +877,14 @@ run-cgen: touch stamp-${prefix} .PHONY: run-cgen +# Maintainer utility rule to regenerate all cgen files. +run-cgen-all: + for c in $(CGEN_CPUS) ; \ + do \ + $(MAKE) stamp-$$c || exit 1 ; \ + done +.PHONY: run-cgen-all + # For now, require developers to configure with --enable-cgen-maint. $(srcdir)/ip2k-desc.h $(srcdir)/ip2k-desc.c $(srcdir)/ip2k-opc.h $(srcdir)/ip2k-opc.c $(srcdir)/ip2k-ibld.c $(srcdir)/ip2k-asm.c $(srcdir)/ip2k-dis.c: $(IP2K_DEPS) @true @@ -887,6 +911,12 @@ $(srcdir)/openrisc-desc.h $(srcdir)/open stamp-openrisc: $(CGENDEPS) $(CPUDIR)/openrisc.cpu $(CPUDIR)/openrisc.opc $(MAKE) run-cgen arch=openrisc prefix=openrisc options= extrafiles= +$(srcdir)/iq2000-desc.h $(srcdir)/iq2000-desc.c $(srcdir)/iq2000-opc.h $(srcdir)/iq2000-opc.c $(srcdir)/iq2000-ibld.c $(srcdir)/iq2000-asm.c $(srcdir)/iq2000-dis.c: $(IQ2000_DEPS) + @true +stamp-iq2000: $(CGENDEPS) $(CPUDIR)/iq2000.cpu $(CPUDIR)/iq2000.opc \ + $(CPUDIR)/iq2000m.cpu $(CPUDIR)/iq10.cpu + $(MAKE) run-cgen arch=iq2000 prefix=iq2000 options= extrafiles= + $(srcdir)/xstormy16-desc.h $(srcdir)/xstormy16-desc.c $(srcdir)/xstormy16-opc.h $(srcdir)/xstormy16-opc.c $(srcdir)/xstormy16-ibld.c $(srcdir)/xstormy16-asm.c $(srcdir)/xstormy16-dis.c: $(XSTORMY16_DEPS) @true stamp-xstormy16: $(CGENDEPS) $(CPUDIR)/xstormy16.cpu $(CPUDIR)/xstormy16.opc @@ -984,7 +1014,7 @@ arm-dis.lo: arm-dis.c sysdep.h config.h $(INCDIR)/elf/reloc-macros.h avr-dis.lo: avr-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h opintl.h \ - $(INCDIR)/opcode/avr.h + $(INCDIR)/libiberty.h $(INCDIR)/opcode/avr.h cgen-asm.lo: cgen-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h $(BFD_H) \ $(INCDIR)/symcat.h $(INCDIR)/opcode/cgen.h opintl.h @@ -1019,10 +1049,11 @@ fr30-asm.lo: fr30-asm.c sysdep.h config. $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h fr30-desc.lo: fr30-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h fr30-desc.h $(INCDIR)/opcode/cgen.h \ - fr30-opc.h opintl.h $(INCDIR)/libiberty.h + fr30-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h fr30-dis.lo: fr30-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h fr30-desc.h \ - $(INCDIR)/opcode/cgen.h fr30-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + fr30-desc.h $(INCDIR)/opcode/cgen.h fr30-opc.h opintl.h fr30-ibld.lo: fr30-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h fr30-desc.h \ $(INCDIR)/opcode/cgen.h fr30-opc.h opintl.h $(INCDIR)/safe-ctype.h @@ -1035,10 +1066,11 @@ frv-asm.lo: frv-asm.c sysdep.h config.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h frv-desc.lo: frv-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h frv-desc.h $(INCDIR)/opcode/cgen.h \ - frv-opc.h opintl.h $(INCDIR)/libiberty.h + frv-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h frv-dis.lo: frv-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h frv-desc.h \ - $(INCDIR)/opcode/cgen.h frv-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + frv-desc.h $(INCDIR)/opcode/cgen.h frv-opc.h opintl.h frv-ibld.lo: frv-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h frv-desc.h \ $(INCDIR)/opcode/cgen.h frv-opc.h opintl.h $(INCDIR)/safe-ctype.h @@ -1048,7 +1080,7 @@ frv-opc.lo: frv-opc.c sysdep.h config.h $(INCDIR)/elf/reloc-macros.h h8300-dis.lo: h8300-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/opcode/h8300.h $(INCDIR)/dis-asm.h $(BFD_H) \ - $(INCDIR)/symcat.h opintl.h + $(INCDIR)/symcat.h opintl.h $(INCDIR)/libiberty.h h8500-dis.lo: h8500-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ h8500-opc.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ opintl.h @@ -1086,7 +1118,7 @@ ia64-gen.lo: ia64-gen.c $(INCDIR)/anside $(INCDIR)/safe-ctype.h sysdep.h config.h $(INCDIR)/getopt.h \ ia64-opc.h $(INCDIR)/opcode/ia64.h $(BFD_H) $(INCDIR)/symcat.h \ ia64-opc-a.c ia64-opc-i.c ia64-opc-m.c ia64-opc-b.c \ - ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c + ia64-opc-f.c ia64-opc-x.c ia64-opc-d.c ../intl/libintl.h ia64-asmtab.lo: ia64-asmtab.c ip2k-asm.lo: ip2k-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \ @@ -1094,26 +1126,44 @@ ip2k-asm.lo: ip2k-asm.c sysdep.h config. $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h ip2k-desc.lo: ip2k-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \ - ip2k-opc.h opintl.h $(INCDIR)/libiberty.h + ip2k-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h ip2k-dis.lo: ip2k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h \ - $(INCDIR)/opcode/cgen.h ip2k-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + ip2k-desc.h $(INCDIR)/opcode/cgen.h ip2k-opc.h opintl.h ip2k-ibld.lo: ip2k-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h \ $(INCDIR)/opcode/cgen.h ip2k-opc.h opintl.h $(INCDIR)/safe-ctype.h ip2k-opc.lo: ip2k-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h ip2k-desc.h $(INCDIR)/opcode/cgen.h \ - ip2k-opc.h $(INCDIR)/libiberty.h + ip2k-opc.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h +iq2000-asm.lo: iq2000-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h $(INCDIR)/opcode/cgen.h \ + iq2000-opc.h opintl.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \ + $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h +iq2000-desc.lo: iq2000-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h $(INCDIR)/opcode/cgen.h \ + iq2000-opc.h opintl.h $(INCDIR)/libiberty.h +iq2000-dis.lo: iq2000-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h \ + $(INCDIR)/opcode/cgen.h iq2000-opc.h opintl.h +iq2000-ibld.lo: iq2000-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h \ + $(INCDIR)/opcode/cgen.h iq2000-opc.h opintl.h $(INCDIR)/safe-ctype.h +iq2000-opc.lo: iq2000-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(BFD_H) $(INCDIR)/symcat.h iq2000-desc.h $(INCDIR)/opcode/cgen.h \ + iq2000-opc.h $(INCDIR)/libiberty.h m32r-asm.lo: m32r-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \ m32r-opc.h opintl.h $(INCDIR)/xregex.h $(INCDIR)/xregex2.h \ $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h m32r-desc.lo: m32r-desc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \ - m32r-opc.h opintl.h $(INCDIR)/libiberty.h + m32r-opc.h opintl.h $(INCDIR)/libiberty.h $(INCDIR)/xregex.h \ + $(INCDIR)/xregex2.h m32r-dis.lo: m32r-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h \ - $(INCDIR)/opcode/cgen.h m32r-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + m32r-desc.h $(INCDIR)/opcode/cgen.h m32r-opc.h opintl.h m32r-ibld.lo: m32r-ibld.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h \ $(INCDIR)/opcode/cgen.h m32r-opc.h opintl.h $(INCDIR)/safe-ctype.h @@ -1135,14 +1185,14 @@ m68k-opc.lo: m68k-opc.c sysdep.h config. $(INCDIR)/opcode/m68k.h m88k-dis.lo: m88k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/m88k.h \ - opintl.h + opintl.h $(INCDIR)/libiberty.h mcore-dis.lo: mcore-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ mcore-opc.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h mips-dis.lo: mips-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/opcode/mips.h \ - opintl.h $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h \ - $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \ - $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + $(INCDIR)/opcode/mips.h opintl.h $(BFDDIR)/elf-bfd.h \ + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \ + $(INCDIR)/bfdlink.h $(INCDIR)/elf/mips.h $(INCDIR)/elf/reloc-macros.h mips-opc.lo: mips-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/opcode/mips.h mips16-opc.lo: mips16-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \ @@ -1170,10 +1220,12 @@ openrisc-asm.lo: openrisc-asm.c sysdep.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h openrisc-desc.lo: openrisc-desc.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(BFD_H) $(INCDIR)/symcat.h openrisc-desc.h \ - $(INCDIR)/opcode/cgen.h openrisc-opc.h opintl.h $(INCDIR)/libiberty.h + $(INCDIR)/opcode/cgen.h openrisc-opc.h opintl.h $(INCDIR)/libiberty.h \ + $(INCDIR)/xregex.h $(INCDIR)/xregex2.h openrisc-dis.lo: openrisc-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ - $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h openrisc-desc.h \ - $(INCDIR)/opcode/cgen.h openrisc-opc.h opintl.h + $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h $(INCDIR)/libiberty.h \ + openrisc-desc.h $(INCDIR)/opcode/cgen.h openrisc-opc.h \ + opintl.h openrisc-ibld.lo: openrisc-ibld.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ openrisc-desc.h $(INCDIR)/opcode/cgen.h openrisc-opc.h \ @@ -1247,11 +1299,12 @@ xstormy16-asm.lo: xstormy16-asm.c sysdep $(INCDIR)/xregex2.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h xstormy16-desc.lo: xstormy16-desc.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(BFD_H) $(INCDIR)/symcat.h xstormy16-desc.h \ - $(INCDIR)/opcode/cgen.h xstormy16-opc.h opintl.h $(INCDIR)/libiberty.h + $(INCDIR)/opcode/cgen.h xstormy16-opc.h opintl.h $(INCDIR)/libiberty.h \ + $(INCDIR)/xregex.h $(INCDIR)/xregex2.h xstormy16-dis.lo: xstormy16-dis.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ - xstormy16-desc.h $(INCDIR)/opcode/cgen.h xstormy16-opc.h \ - opintl.h + $(INCDIR)/libiberty.h xstormy16-desc.h $(INCDIR)/opcode/cgen.h \ + xstormy16-opc.h opintl.h xstormy16-ibld.lo: xstormy16-ibld.c sysdep.h config.h \ $(INCDIR)/ansidecl.h $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h \ xstormy16-desc.h $(INCDIR)/opcode/cgen.h xstormy16-opc.h \ @@ -1261,7 +1314,8 @@ xstormy16-opc.lo: xstormy16-opc.c sysdep $(INCDIR)/opcode/cgen.h xstormy16-opc.h $(INCDIR)/libiberty.h z8k-dis.lo: z8k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \ $(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/symcat.h z8k-opc.h -z8kgen.lo: z8kgen.c sysdep.h config.h $(INCDIR)/ansidecl.h +z8kgen.lo: z8kgen.c sysdep.h config.h $(INCDIR)/ansidecl.h \ + $(INCDIR)/libiberty.h # IF YOU PUT ANYTHING HERE IT WILL GO AWAY # Tell versions [3.59,3.63) of GNU make to not export all variables. diff -uprN binutils-2.13.90.0.16/opcodes/alpha-opc.c binutils-2.13.90.0.18/opcodes/alpha-opc.c --- binutils-2.13.90.0.16/opcodes/alpha-opc.c Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.18/opcodes/alpha-opc.c Tue Jan 21 10:21:34 2003 @@ -533,9 +533,13 @@ const struct alpha_opcode alpha_opcodes[ { "halt", SPCD(0x00,0x0000), BASE, ARG_NONE }, { "draina", SPCD(0x00,0x0002), BASE, ARG_NONE }, { "bpt", SPCD(0x00,0x0080), BASE, ARG_NONE }, + { "bugchk", SPCD(0x00,0x0081), BASE, ARG_NONE }, { "callsys", SPCD(0x00,0x0083), BASE, ARG_NONE }, { "chmk", SPCD(0x00,0x0083), BASE, ARG_NONE }, { "imb", SPCD(0x00,0x0086), BASE, ARG_NONE }, + { "rduniq", SPCD(0x00,0x009e), BASE, ARG_NONE }, + { "wruniq", SPCD(0x00,0x009f), BASE, ARG_NONE }, + { "gentrap", SPCD(0x00,0x00aa), BASE, ARG_NONE }, { "call_pal", PCD(0x00), BASE, ARG_PCD }, { "pal", PCD(0x00), BASE, ARG_PCD }, /* alias */ diff -uprN binutils-2.13.90.0.16/opcodes/arm-dis.c binutils-2.13.90.0.18/opcodes/arm-dis.c --- binutils-2.13.90.0.16/opcodes/arm-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/arm-dis.c Mon Dec 16 12:22:53 2002 @@ -4,17 +4,17 @@ Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org) Modification by James G. Smith (jsmith@cygnus.co.uk) -This file is part of libopcodes. +This file is part of libopcodes. 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. +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. +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 @@ -79,20 +79,25 @@ static unsigned int regname_selected = 1 #define NUM_ARM_REGNAMES NUM_ELEM (regnames) #define arm_regnames regnames[regname_selected].reg_names -static boolean force_thumb = false; +static bfd_boolean force_thumb = FALSE; static char * arm_fp_const[] = {"0.0", "1.0", "2.0", "3.0", "4.0", "5.0", "0.5", "10.0"}; -static char * arm_shift[] = +static char * arm_shift[] = {"lsl", "lsr", "asr", "ror"}; /* Forward declarations. */ -static void arm_decode_shift PARAMS ((long, fprintf_ftype, void *)); -static int print_insn_arm PARAMS ((bfd_vma, struct disassemble_info *, long)); -static int print_insn_thumb PARAMS ((bfd_vma, struct disassemble_info *, long)); -static void parse_disassembler_options PARAMS ((char *)); -static int print_insn PARAMS ((bfd_vma, struct disassemble_info *, boolean)); +static void arm_decode_shift + PARAMS ((long, fprintf_ftype, void *)); +static int print_insn_arm + PARAMS ((bfd_vma, struct disassemble_info *, long)); +static int print_insn_thumb + PARAMS ((bfd_vma, struct disassemble_info *, long)); +static void parse_disassembler_options + PARAMS ((char *)); +static int print_insn + PARAMS ((bfd_vma, struct disassemble_info *, bfd_boolean)); int get_arm_regname_num_options (void); int set_arm_regname_option (int option); int get_arm_regnames (int option, const char **setname, @@ -135,14 +140,14 @@ arm_decode_shift (given, func, stream) void * stream; { func (stream, "%s", arm_regnames[given & 0xf]); - + if ((given & 0xff0) != 0) { if ((given & 0x10) == 0) { int amount = (given & 0xf80) >> 7; int shift = (given & 0x60) >> 5; - + if (amount == 0) { if (shift == 3) @@ -150,10 +155,10 @@ arm_decode_shift (given, func, stream) func (stream, ", rrx"); return; } - + amount = 32; } - + func (stream, ", %s #%d", arm_shift[shift], amount); } else @@ -167,20 +172,20 @@ arm_decode_shift (given, func, stream) static int print_insn_arm (pc, info, given) - bfd_vma pc; - struct disassemble_info * info; - long given; + bfd_vma pc; + struct disassemble_info *info; + long given; { - struct arm_opcode * insn; - void * stream = info->stream; - fprintf_ftype func = info->fprintf_func; + const struct arm_opcode *insn; + void *stream = info->stream; + fprintf_ftype func = info->fprintf_func; for (insn = arm_opcodes; insn->assembler; insn++) { if ((given & insn->mask) == insn->value) { char * c; - + for (c = insn->assembler; *c; c++) { if (*c == '%') @@ -196,14 +201,14 @@ print_insn_arm (pc, info, given) && ((given & 0x02000000) == 0)) { int offset = given & 0xfff; - + func (stream, "[pc"); - + if (given & 0x01000000) { if ((given & 0x00800000) == 0) offset = - offset; - + /* Pre-indexed. */ func (stream, ", #%d]", offset); @@ -224,13 +229,13 @@ print_insn_arm (pc, info, given) /* ie ignore the offset. */ offset = pc + 8; } - + func (stream, "\t; "); info->print_address_func (offset, info); } else { - func (stream, "[%s", + func (stream, "[%s", arm_regnames[(given >> 16) & 0xf]); if ((given & 0x01000000) != 0) { @@ -250,7 +255,7 @@ print_insn_arm (pc, info, given) arm_decode_shift (given, func, stream); } - func (stream, "]%s", + func (stream, "]%s", ((given & 0x00200000) != 0) ? "!" : ""); } else @@ -262,13 +267,13 @@ print_insn_arm (pc, info, given) func (stream, "], %s#%d", (((given & 0x00800000) == 0) ? "-" : ""), offset); - else + else func (stream, "]"); } else { func (stream, "], %s", - (((given & 0x00800000) == 0) + (((given & 0x00800000) == 0) ? "-" : "")); arm_decode_shift (given, func, stream); } @@ -281,18 +286,18 @@ print_insn_arm (pc, info, given) { /* PC relative with immediate offset. */ int offset = ((given & 0xf00) >> 4) | (given & 0xf); - + if ((given & 0x00800000) == 0) offset = -offset; - + func (stream, "[pc, #%d]\t; ", offset); - + (*info->print_address_func) (offset + pc + 8, info); } else { - func (stream, "[%s", + func (stream, "[%s", arm_regnames[(given >> 16) & 0xf]); if ((given & 0x01000000) != 0) { @@ -315,7 +320,7 @@ print_insn_arm (pc, info, given) arm_regnames[given & 0xf]); } - func (stream, "]%s", + func (stream, "]%s", ((given & 0x00200000) != 0) ? "!" : ""); } else @@ -329,7 +334,7 @@ print_insn_arm (pc, info, given) func (stream, "], %s#%d", (((given & 0x00800000) == 0) ? "-" : ""), offset); - else + else func (stream, "]"); } else @@ -343,7 +348,7 @@ print_insn_arm (pc, info, given) } } break; - + case 'b': (*info->print_address_func) (BDISP (given) * 4 + pc + 8, info); @@ -425,7 +430,7 @@ print_insn_arm (pc, info, given) { bfd_vma address; bfd_vma offset = 0; - + if (given & 0x00800000) /* Is signed, hi bits should be ones. */ offset = (-1) ^ 0x00ffffff; @@ -434,7 +439,7 @@ print_insn_arm (pc, info, given) offset += given & 0x00ffffff; offset <<= 2; address = offset + pc + 8; - + if (given & 0x01000000) /* H bit allows addressing to 2-byte boundaries. */ address += 2; @@ -490,7 +495,7 @@ print_insn_arm (pc, info, given) func (stream, "3"); } break; - + case 'P': switch (given & 0x00080080) { @@ -542,7 +547,7 @@ print_insn_arm (pc, info, given) } break; - case '0': case '1': case '2': case '3': case '4': + case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { int bitstart = *c++ - '0'; @@ -554,44 +559,44 @@ print_insn_arm (pc, info, given) { case '-': c++; - + while (*c >= '0' && *c <= '9') bitend = (bitend * 10) + *c++ - '0'; - + if (!bitend) abort (); - + switch (*c) { case 'r': { long reg; - + reg = given >> bitstart; reg &= (2 << (bitend - bitstart)) - 1; - + func (stream, "%s", arm_regnames[reg]); } break; case 'd': { long reg; - + reg = given >> bitstart; reg &= (2 << (bitend - bitstart)) - 1; - + func (stream, "%d", reg); } break; case 'x': { long reg; - + reg = given >> bitstart; reg &= (2 << (bitend - bitstart)) - 1; - + func (stream, "0x%08x", reg); - + /* Some SWI instructions have special meanings. */ if ((given & 0x0fffffff) == 0x0FF00000) @@ -603,20 +608,20 @@ print_insn_arm (pc, info, given) case 'X': { long reg; - + reg = given >> bitstart; reg &= (2 << (bitend - bitstart)) - 1; - + func (stream, "%01x", reg & 0xf); } break; case 'f': { long reg; - + reg = given >> bitstart; reg &= (2 << (bitend - bitstart)) - 1; - + if (reg > 7) func (stream, "#%s", arm_fp_const[reg & 7]); @@ -677,7 +682,7 @@ print_insn_arm (pc, info, given) } break; - + default: abort (); } @@ -748,13 +753,13 @@ print_insn_arm (pc, info, given) static int print_insn_thumb (pc, info, given) - bfd_vma pc; - struct disassemble_info * info; - long given; + bfd_vma pc; + struct disassemble_info *info; + long given; { - struct thumb_opcode * insn; - void * stream = info->stream; - fprintf_ftype func = info->fprintf_func; + const struct thumb_opcode *insn; + void *stream = info->stream; + fprintf_ftype func = info->fprintf_func; for (insn = thumb_opcodes; insn->assembler; insn++) { @@ -766,7 +771,7 @@ print_insn_thumb (pc, info, given) if (!*c) /* Check for empty (not NULL) assembler string. */ { long offset; - + info->bytes_per_chunk = 4; info->bytes_per_line = 4; @@ -788,16 +793,16 @@ print_insn_thumb (pc, info, given) { info->bytes_per_chunk = 2; info->bytes_per_line = 4; - + given &= 0xffff; - + for (; *c; c++) { if (*c == '%') { int domaskpc = 0; int domasklr = 0; - + switch (*++c) { case '%': @@ -807,11 +812,11 @@ print_insn_thumb (pc, info, given) case 'S': { long reg; - + reg = (given >> 3) & 0x7; if (given & (1 << 6)) reg += 8; - + func (stream, "%s", arm_regnames[reg]); } break; @@ -819,11 +824,11 @@ print_insn_thumb (pc, info, given) case 'D': { long reg; - + reg = given & 0x7; if (given & (1 << 7)) reg += 8; - + func (stream, "%s", arm_regnames[reg]); } break; @@ -845,9 +850,9 @@ print_insn_thumb (pc, info, given) { int started = 0; int reg; - + func (stream, "{"); - + /* It would be nice if we could spot ranges, and generate the rS-rE format: */ for (reg = 0; (reg < 8); reg++) @@ -879,12 +884,12 @@ print_insn_thumb (pc, info, given) break; - case '0': case '1': case '2': case '3': case '4': + case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { int bitstart = *c++ - '0'; int bitend = 0; - + while (*c >= '0' && *c <= '9') bitstart = (bitstart * 10) + *c++ - '0'; @@ -893,7 +898,7 @@ print_insn_thumb (pc, info, given) case '-': { long reg; - + c++; while (*c >= '0' && *c <= '9') bitend = (bitend * 10) + *c++ - '0'; @@ -992,11 +997,11 @@ parse_arm_disassembler_option (option) { if (option == NULL) return; - + if (strneq (option, "reg-names-", 10)) { int i; - + option += 10; for (i = NUM_ARM_REGNAMES; i--;) @@ -1005,7 +1010,7 @@ parse_arm_disassembler_option (option) regname_selected = i; break; } - + if (i < 0) fprintf (stderr, _("Unrecognised register name set: %s\n"), option); } @@ -1015,7 +1020,7 @@ parse_arm_disassembler_option (option) force_thumb = 0; else fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option); - + return; } @@ -1026,7 +1031,7 @@ parse_disassembler_options (options) char * options; { char * space; - + if (options == NULL) return; @@ -1054,7 +1059,7 @@ static int print_insn (pc, info, little) bfd_vma pc; struct disassemble_info * info; - boolean little; + bfd_boolean little; { unsigned char b[4]; long given; @@ -1064,19 +1069,19 @@ print_insn (pc, info, little) if (info->disassembler_options) { parse_disassembler_options (info->disassembler_options); - + /* To avoid repeated parsing of these options, we remove them here. */ info->disassembler_options = NULL; } - + is_thumb = force_thumb; - + if (!is_thumb && info->symbols != NULL) { if (bfd_asymbol_flavour (*info->symbols) == bfd_target_coff_flavour) { coff_symbol_type * cs; - + cs = coffsymbol (*info->symbols); is_thumb = ( cs->native->u.syment.n_sclass == C_THUMBEXT || cs->native->u.syment.n_sclass == C_THUMBSTAT @@ -1088,14 +1093,14 @@ print_insn (pc, info, little) { elf_symbol_type * es; unsigned int type; - + es = *(elf_symbol_type **)(info->symbols); type = ELF_ST_TYPE (es->internal_elf_sym.st_info); - + is_thumb = (type == STT_ARM_TFUNC) || (type == STT_ARM_16BIT); } } - + info->bytes_per_chunk = 4; info->display_endian = little ? BFD_ENDIAN_LITTLE : BFD_ENDIAN_BIG; @@ -1105,17 +1110,17 @@ print_insn (pc, info, little) if (status != 0 && is_thumb) { info->bytes_per_chunk = 2; - + status = info->read_memory_func (pc, (bfd_byte *) b, 2, info); b[3] = b[2] = 0; } - + if (status != 0) { info->memory_error_func (status, pc, info); return -1; } - + given = (b[0]) | (b[1] << 8) | (b[2] << 16) | (b[3] << 24); } else @@ -1127,13 +1132,13 @@ print_insn (pc, info, little) info->memory_error_func (status, pc, info); return -1; } - + if (is_thumb) { if (pc & 0x2) { given = (b[2] << 8) | b[3]; - + status = info->read_memory_func ((pc + 4) & ~ 0x3, (bfd_byte *) b, 4, info); if (status != 0) @@ -1141,7 +1146,7 @@ print_insn (pc, info, little) info->memory_error_func (status, pc + 4, info); return -1; } - + given |= (b[0] << 24) | (b[1] << 16); } else @@ -1150,7 +1155,7 @@ print_insn (pc, info, little) else given = (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | (b[3]); } - + if (info->flags & INSN_HAS_RELOC) /* If the instruction has a reloc associated with it, then the offset field in the instruction will actually be the @@ -1158,7 +1163,7 @@ print_insn (pc, info, little) In such cases, we can ignore the pc when computing addresses, since the addend is not currently pc-relative. */ pc = 0; - + if (is_thumb) status = print_insn_thumb (pc, info, given); else @@ -1172,7 +1177,7 @@ print_insn_big_arm (pc, info) bfd_vma pc; struct disassemble_info * info; { - return print_insn (pc, info, false); + return print_insn (pc, info, FALSE); } int @@ -1180,7 +1185,7 @@ print_insn_little_arm (pc, info) bfd_vma pc; struct disassemble_info * info; { - return print_insn (pc, info, true); + return print_insn (pc, info, TRUE); } void @@ -1191,7 +1196,7 @@ print_arm_disassembler_options (FILE * s fprintf (stream, _("\n\ The following ARM specific disassembler options are supported for use with\n\ the -M switch:\n")); - + for (i = NUM_ARM_REGNAMES; i--;) fprintf (stream, " reg-names-%s %*c%s\n", regnames[i].name, diff -uprN binutils-2.13.90.0.16/opcodes/cgen-asm.c binutils-2.13.90.0.18/opcodes/cgen-asm.c --- binutils-2.13.90.0.16/opcodes/cgen-asm.c Fri Nov 16 14:05:55 2001 +++ binutils-2.13.90.0.18/opcodes/cgen-asm.c Tue Jan 21 10:21:34 2003 @@ -225,7 +225,9 @@ cgen_parse_keyword (cd, strp, keyword_ta /* Allow letters, digits, and any special characters. */ while (((p - start) < (int) sizeof (buf)) && *p - && (ISALNUM (*p) || strchr (keyword_table->nonalpha_chars, *p))) + && (ISALNUM (*p) + || *p == '_' + || strchr (keyword_table->nonalpha_chars, *p))) ++p; if (p - start >= (int) sizeof (buf)) diff -uprN binutils-2.13.90.0.16/opcodes/cgen-dis.in binutils-2.13.90.0.18/opcodes/cgen-dis.in --- binutils-2.13.90.0.16/opcodes/cgen-dis.in Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/cgen-dis.in Mon Dec 16 12:22:53 2002 @@ -4,7 +4,8 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -31,6 +32,7 @@ along with this program; if not, write t #include "dis-asm.h" #include "bfd.h" #include "symcat.h" +#include "libiberty.h" #include "@prefix@-desc.h" #include "@prefix@-opc.h" #include "opintl.h" diff -uprN binutils-2.13.90.0.16/opcodes/configure binutils-2.13.90.0.18/opcodes/configure --- binutils-2.13.90.0.16/opcodes/configure Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/opcodes/configure Tue Jan 21 10:21:34 2003 @@ -2332,7 +2332,7 @@ if test "${enable_install_libbfd+set}" = enableval="$enable_install_libbfd" install_libbfd_p=$enableval else - if test "${host}" = "${target}" -o "$enable_shared" = "yes"; then + if test "${host}" = "${target}" || test "$enable_shared" = "yes"; then install_libbfd_p=yes else install_libbfd_p=no @@ -4609,6 +4609,7 @@ if test x${all_targets} = xfalse ; then bfd_i960_arch) ta="$ta i960-dis.lo" ;; bfd_ia64_arch) ta="$ta ia64-dis.lo ia64-opc.lo" ;; bfd_ip2k_arch) ta="$ta ip2k-asm.lo ip2k-desc.lo ip2k-dis.lo ip2k-ibld.lo ip2k-opc.lo" using_cgen=yes ;; + bfd_iq2000_arch) ta="$ta iq2000-asm.lo iq2000-desc.lo iq2000-dis.lo iq2000-ibld.lo iq2000-opc.lo" using_cgen=yes ;; bfd_m32r_arch) ta="$ta m32r-asm.lo m32r-desc.lo m32r-dis.lo m32r-ibld.lo m32r-opc.lo m32r-opinst.lo" using_cgen=yes ;; bfd_m68hc11_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;; bfd_m68hc12_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;; @@ -4619,6 +4620,7 @@ if test x${all_targets} = xfalse ; then bfd_mmix_arch) ta="$ta mmix-dis.lo mmix-opc.lo" ;; bfd_mn10200_arch) ta="$ta m10200-dis.lo m10200-opc.lo" ;; bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;; + bfd_msp430_arch) ta="$ta msp430-dis.lo" ;; bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;; bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;; bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;; diff -uprN binutils-2.13.90.0.16/opcodes/configure.in binutils-2.13.90.0.18/opcodes/configure.in --- binutils-2.13.90.0.16/opcodes/configure.in Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/opcodes/configure.in Tue Jan 21 10:21:34 2003 @@ -190,6 +190,7 @@ if test x${all_targets} = xfalse ; then bfd_i960_arch) ta="$ta i960-dis.lo" ;; bfd_ia64_arch) ta="$ta ia64-dis.lo ia64-opc.lo" ;; bfd_ip2k_arch) ta="$ta ip2k-asm.lo ip2k-desc.lo ip2k-dis.lo ip2k-ibld.lo ip2k-opc.lo" using_cgen=yes ;; + bfd_iq2000_arch) ta="$ta iq2000-asm.lo iq2000-desc.lo iq2000-dis.lo iq2000-ibld.lo iq2000-opc.lo" using_cgen=yes ;; bfd_m32r_arch) ta="$ta m32r-asm.lo m32r-desc.lo m32r-dis.lo m32r-ibld.lo m32r-opc.lo m32r-opinst.lo" using_cgen=yes ;; bfd_m68hc11_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;; bfd_m68hc12_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;; @@ -200,6 +201,7 @@ if test x${all_targets} = xfalse ; then bfd_mmix_arch) ta="$ta mmix-dis.lo mmix-opc.lo" ;; bfd_mn10200_arch) ta="$ta m10200-dis.lo m10200-opc.lo" ;; bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;; + bfd_msp430_arch) ta="$ta msp430-dis.lo" ;; bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;; bfd_openrisc_arch) ta="$ta openrisc-asm.lo openrisc-desc.lo openrisc-dis.lo openrisc-ibld.lo openrisc-opc.lo" using_cgen=yes ;; bfd_or32_arch) ta="$ta or32-dis.lo or32-opc.lo" using_cgen=yes ;; diff -uprN binutils-2.13.90.0.16/opcodes/cris-dis.c binutils-2.13.90.0.18/opcodes/cris-dis.c --- binutils-2.13.90.0.16/opcodes/cris-dis.c Mon Oct 1 15:25:26 2001 +++ binutils-2.13.90.0.18/opcodes/cris-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Disassembler code for CRIS. - Copyright 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Axis Communications AB, Lund, Sweden. Written by Hans-Peter Nilsson. @@ -77,22 +77,28 @@ static long no_of_case_offsets = 0; /* Candidate for next case_offset. */ static long last_immediate = 0; -static int number_of_bits PARAMS ((unsigned int)); -static char *format_hex PARAMS ((unsigned long, char *)); -static char *format_dec PARAMS ((long, char *, int)); -static char *format_reg PARAMS ((int, char *, boolean)); -static int cris_constraint PARAMS ((const char *, unsigned int, - unsigned int)); -static unsigned bytes_to_skip PARAMS ((unsigned int, - const struct cris_opcode *)); -static char *print_flags PARAMS ((unsigned int, char *)); +static int number_of_bits + PARAMS ((unsigned int)); +static char *format_hex + PARAMS ((unsigned long, char *)); +static char *format_dec + PARAMS ((long, char *, int)); +static char *format_reg + PARAMS ((int, char *, bfd_boolean)); +static int cris_constraint + PARAMS ((const char *, unsigned int, unsigned int)); +static unsigned bytes_to_skip + PARAMS ((unsigned int, const struct cris_opcode *)); +static char *print_flags + PARAMS ((unsigned int, char *)); static void print_with_operands PARAMS ((const struct cris_opcode *, unsigned int, unsigned char *, bfd_vma, disassemble_info *, const struct cris_opcode *, - unsigned int, unsigned char *, boolean)); -static const struct cris_spec_reg *spec_reg_info PARAMS ((unsigned int)); + unsigned int, unsigned char *, bfd_boolean)); +static const struct cris_spec_reg *spec_reg_info + PARAMS ((unsigned int)); static int print_insn_cris_generic - PARAMS ((bfd_vma, disassemble_info *, boolean)); + PARAMS ((bfd_vma, disassemble_info *, bfd_boolean)); static int print_insn_cris_with_register_prefix PARAMS ((bfd_vma, disassemble_info *)); static int print_insn_cris_without_register_prefix @@ -334,7 +340,7 @@ static char * format_reg (regno, outbuffer_start, with_reg_prefix) int regno; char *outbuffer_start; - boolean with_reg_prefix; + bfd_boolean with_reg_prefix; { char *outbuffer = outbuffer_start; @@ -593,7 +599,7 @@ print_with_operands (opcodep, insn, buff const struct cris_opcode *prefix_opcodep; unsigned int prefix_insn; unsigned char *prefix_buffer; - boolean with_reg_prefix; + bfd_boolean with_reg_prefix; { /* Get a buffer of somewhat reasonable size where we store intermediate parts of the insn. */ @@ -1186,7 +1192,7 @@ static int print_insn_cris_generic (memaddr, info, with_reg_prefix) bfd_vma memaddr; disassemble_info *info; - boolean with_reg_prefix; + bfd_boolean with_reg_prefix; { int nbytes; unsigned int insn; @@ -1369,7 +1375,7 @@ print_insn_cris_with_register_prefix (vm bfd_vma vma; disassemble_info *info; { - return print_insn_cris_generic (vma, info, true); + return print_insn_cris_generic (vma, info, TRUE); } /* Disassemble, no prefixes on register names. */ @@ -1379,7 +1385,7 @@ print_insn_cris_without_register_prefix bfd_vma vma; disassemble_info *info; { - return print_insn_cris_generic (vma, info, false); + return print_insn_cris_generic (vma, info, FALSE); } /* Return a disassembler-function that prints registers with a `$' prefix, diff -uprN binutils-2.13.90.0.16/opcodes/disassemble.c binutils-2.13.90.0.18/opcodes/disassemble.c --- binutils-2.13.90.0.16/opcodes/disassemble.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/opcodes/disassemble.c Tue Jan 21 10:21:34 2003 @@ -49,6 +49,7 @@ Foundation, Inc., 59 Temple Place - Suit #define ARCH_mmix #define ARCH_mn10200 #define ARCH_mn10300 +#define ARCH_msp430 #define ARCH_ns32k #define ARCH_openrisc #define ARCH_or32 @@ -69,6 +70,7 @@ Foundation, Inc., 59 Temple Place - Suit #define ARCH_xstormy16 #define ARCH_z8k #define ARCH_frv +#define ARCH_iq2000 #define INCLUDE_SHMEDIA #endif @@ -214,6 +216,11 @@ disassembler (abfd) disassemble = print_insn_m88k; break; #endif +#ifdef ARCH_msp430 + case bfd_arch_msp430: + disassemble = print_insn_msp430; + break; +#endif #ifdef ARCH_ns32k case bfd_arch_ns32k: disassemble = print_insn_ns32k; @@ -354,6 +361,11 @@ disassembler (abfd) disassemble = print_insn_frv; break; #endif +#ifdef ARCH_iq2000 + case bfd_arch_iq2000: + disassemble = print_insn_iq2000; + break; +#endif default: return 0; } @@ -367,6 +379,9 @@ disassembler_usage (stream) #ifdef ARCH_arm print_arm_disassembler_options (stream); #endif +#ifdef ARCH_mips + print_mips_disassembler_options (stream); +#endif #ifdef ARCH_powerpc print_ppc_disassembler_options (stream); #endif diff -uprN binutils-2.13.90.0.16/opcodes/fr30-desc.c binutils-2.13.90.0.18/opcodes/fr30-desc.c --- binutils-2.13.90.0.16/opcodes/fr30-desc.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/fr30-desc.c Mon Dec 16 12:22:53 2002 @@ -32,6 +32,7 @@ with this program; if not, write to the #include "fr30-opc.h" #include "opintl.h" #include "libiberty.h" +#include "xregex.h" /* Attributes. */ @@ -356,9 +357,9 @@ const CGEN_MAYBE_MULTI_IFLD FR30_F_I20_M const CGEN_MAYBE_MULTI_IFLD FR30_F_I20_MULTI_IFIELD [] = { - { 0, &(fr30_cgen_ifld_table[23]) }, - { 0, &(fr30_cgen_ifld_table[24]) }, - {0,0} + { 0, { (const PTR) &fr30_cgen_ifld_table[23] } }, + { 0, { (const PTR) &fr30_cgen_ifld_table[24] } }, + { 0, { (const PTR) 0 } } }; /* The operand table. */ @@ -378,201 +379,204 @@ const CGEN_OPERAND fr30_cgen_operand_tab { /* pc: program counter */ { "pc", FR30_OPERAND_PC, HW_H_PC, 0, 0, - { 0, &(fr30_cgen_ifld_table[0]) }, + { 0, { (const PTR) &fr30_cgen_ifld_table[0] } }, { 0|A(SEM_ONLY), { (1<macro_insn_table.init_entries) { @@ -1756,7 +1760,7 @@ fr30_cgen_cpu_close (cd) for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX ((insns))) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } @@ -1766,7 +1770,7 @@ fr30_cgen_cpu_close (cd) for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX (insns)) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } diff -uprN binutils-2.13.90.0.16/opcodes/fr30-dis.c binutils-2.13.90.0.18/opcodes/fr30-dis.c --- binutils-2.13.90.0.16/opcodes/fr30-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/fr30-dis.c Mon Dec 16 12:22:53 2002 @@ -4,7 +4,8 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -31,6 +32,7 @@ along with this program; if not, write t #include "dis-asm.h" #include "bfd.h" #include "symcat.h" +#include "libiberty.h" #include "fr30-desc.h" #include "fr30-opc.h" #include "opintl.h" diff -uprN binutils-2.13.90.0.16/opcodes/frv-desc.c binutils-2.13.90.0.18/opcodes/frv-desc.c --- binutils-2.13.90.0.16/opcodes/frv-desc.c Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.18/opcodes/frv-desc.c Mon Dec 16 12:22:53 2002 @@ -32,6 +32,7 @@ with this program; if not, write to the #include "frv-opc.h" #include "opintl.h" #include "libiberty.h" +#include "xregex.h" /* Attributes. */ @@ -1889,21 +1890,21 @@ const CGEN_MAYBE_MULTI_IFLD FRV_F_LABEL2 const CGEN_MAYBE_MULTI_IFLD FRV_F_U12_MULTI_IFIELD [] = { - { 0, &(frv_cgen_ifld_table[46]) }, - { 0, &(frv_cgen_ifld_table[47]) }, - {0,0} + { 0, { (const PTR) &frv_cgen_ifld_table[46] } }, + { 0, { (const PTR) &frv_cgen_ifld_table[47] } }, + { 0, { (const PTR) 0 } } }; const CGEN_MAYBE_MULTI_IFLD FRV_F_SPR_MULTI_IFIELD [] = { - { 0, &(frv_cgen_ifld_table[58]) }, - { 0, &(frv_cgen_ifld_table[59]) }, - {0,0} + { 0, { (const PTR) &frv_cgen_ifld_table[58] } }, + { 0, { (const PTR) &frv_cgen_ifld_table[59] } }, + { 0, { (const PTR) 0 } } }; const CGEN_MAYBE_MULTI_IFLD FRV_F_LABEL24_MULTI_IFIELD [] = { - { 0, &(frv_cgen_ifld_table[61]) }, - { 0, &(frv_cgen_ifld_table[62]) }, - {0,0} + { 0, { (const PTR) &frv_cgen_ifld_table[61] } }, + { 0, { (const PTR) &frv_cgen_ifld_table[62] } }, + { 0, { (const PTR) 0 } } }; /* The operand table. */ @@ -1923,313 +1924,316 @@ const CGEN_OPERAND frv_cgen_operand_tabl { /* pc: program counter */ { "pc", FRV_OPERAND_PC, HW_H_PC, 0, 0, - { 0, &(frv_cgen_ifld_table[0]) }, + { 0, { (const PTR) &frv_cgen_ifld_table[0] } }, { 0|A(SEM_ONLY), { (1<macro_insn_table.init_entries) { @@ -6278,7 +6282,7 @@ frv_cgen_cpu_close (cd) for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX ((insns))) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } @@ -6288,7 +6292,7 @@ frv_cgen_cpu_close (cd) for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX (insns)) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } diff -uprN binutils-2.13.90.0.16/opcodes/frv-dis.c binutils-2.13.90.0.18/opcodes/frv-dis.c --- binutils-2.13.90.0.16/opcodes/frv-dis.c Tue Jun 18 21:41:59 2002 +++ binutils-2.13.90.0.18/opcodes/frv-dis.c Mon Dec 16 12:22:53 2002 @@ -4,7 +4,8 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -31,6 +32,7 @@ along with this program; if not, write t #include "dis-asm.h" #include "bfd.h" #include "symcat.h" +#include "libiberty.h" #include "frv-desc.h" #include "frv-opc.h" #include "opintl.h" diff -uprN binutils-2.13.90.0.16/opcodes/h8300-dis.c binutils-2.13.90.0.18/opcodes/h8300-dis.c --- binutils-2.13.90.0.16/opcodes/h8300-dis.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/opcodes/h8300-dis.c Mon Dec 16 12:22:53 2002 @@ -48,7 +48,7 @@ bfd_h8_disassemble_init () struct h8_instruction *pi; nopcodes = sizeof (h8_opcodes) / sizeof (struct h8_opcode); - + h8_instructions = (struct h8_instruction *) xmalloc (nopcodes * sizeof (struct h8_instruction)); @@ -112,7 +112,7 @@ bfd_h8_disassemble (addr, info, mode) int abs = 0; int bit = 0; int plen = 0; - static boolean init = 0; + static bfd_boolean init = 0; const struct h8_instruction *qi; char const **pregnames = mode != 0 ? lregnames : wregnames; int status; diff -uprN binutils-2.13.90.0.16/opcodes/h8500-dis.c binutils-2.13.90.0.18/opcodes/h8500-dis.c --- binutils-2.13.90.0.16/opcodes/h8500-dis.c Mon Aug 27 11:44:52 2001 +++ binutils-2.13.90.0.18/opcodes/h8500-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Disassemble h8500 instructions. - Copyright 1993, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1993, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -78,7 +78,7 @@ print_insn_h8500 (addr, info) bfd_vma addr; disassemble_info *info; { - h8500_opcode_info *opcode; + const h8500_opcode_info *opcode; void *stream = info->stream; fprintf_ftype func = info->fprintf_func; diff -uprN binutils-2.13.90.0.16/opcodes/h8500-opc.h binutils-2.13.90.0.18/opcodes/h8500-opc.h --- binutils-2.13.90.0.16/opcodes/h8500-opc.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/opcodes/h8500-opc.h Mon Dec 16 12:22:53 2002 @@ -168,185 +168,185 @@ const h8500_opcode_info h8500_table[] {0x07,0xff, }, {0x00,0x00,IMM16 },{0x00,0x00, }}},*/ -{1,'s','E','C','C',O_XORC|O_WORD,"xorc.w",2,{IMM16,CRW},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x68,0xf8,CRW }}}, -{2,'s','E','C','C',O_XORC|O_BYTE,"xorc.b",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x68,0xf8,CRB }}}, +{1,'s','E','C','C',O_XORC|O_WORD,"xorc.w",2,{IMM16,CRW},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x68,0xf8,CRW }}}, +{2,'s','E','C','C',O_XORC|O_BYTE,"xorc.b",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x68,0xf8,CRB }}}, {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x60,0xf8,RD }}}, {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x60,0xf8,RD }}}, {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x60,0xf8,RD }}}, {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x60,0xf8,RD }}}, -{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}}, +{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}}, {3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x60,0xf8,RD }}}, -{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x60,0xf8,RD }}}, -{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x60,0xf8,RD }}}, -{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x60,0xf8,RD }}}, +{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, +{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, +{3,'m','E','D','D',O_XOR|O_WORD,"xor.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x60,0xf8,RD }}}, {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x60,0xf8,RD }}}, {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x60,0xf8,RD }}}, {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x60,0xf8,RD }}}, -{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x60,0xf8,RD }}}, -{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}}, +{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x60,0xf8,RD }}}, +{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}}, {4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x60,0xf8,RD }}}, -{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x60,0xf8,RD }}}, -{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x60,0xf8,RD }}}, +{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, +{4,'m','E','D','D',O_XOR|O_BYTE,"xor.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x60,0xf8,RD }}}, {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x60,0xf8,RD }}}, {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x60,0xf8,RD }}}, {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x60,0xf8,RD }}}, {5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x60,0xf8,RD }}}, -{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}}, -{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x60,0xf8,RD }}}, -{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x60,0xf8,RD }}}, -{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x60,0xf8,RD }}}, +{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x60,0xf8,RD }}}, +{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, +{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, +{5,'m','E','D','D',O_XOR|O_UNSZ,"xor",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x60,0xf8,RD }}}, {6,'-','X','!','!',O_XCH|O_WORD,"xch.w",2,{RS,RD},2, {{0xa8,0xf8,RS },{0x90,0xf8,RD }}}, {7,'-','X','!','!',O_XCH|O_UNSZ,"xch",2,{RS,RD},2, {{0xa8,0xf8,RS },{0x90,0xf8,RD }}}, -{8,'-','B','!','!',O_UNLK|O_UNSZ,"unlk",1,{FP,0},1, {{0x0f,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x16,0xff, }}}, -{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x16,0xff, }}}, -{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RN,0},2, {{0xa8,0xf8,RN },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x16,0xff, }}}, -{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x16,0xff, }}}, -{12,'-','I','!','!',O_TRAPA|O_UNSZ,"trapa",1,{IMM4,0},2, {{0x08,0xff, },{0x10,0xf0,IMM4 }}}, -{13,'-','B','!','!',O_TRAP_VS|O_UNSZ,"trap/vs",0,{0,0},1, {{0x09,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x17,0xff, }}}, -{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RN,0},2, {{0xa0,0xf8,RN },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x17,0xff, }}}, -{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x17,0xff, }}}, -{16,'m','D','!','D',O_SWAP|O_BYTE,"swap.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x10,0xff, }}}, -{17,'m','D','!','D',O_SWAP|O_UNSZ,"swap",1,{RD,0},2, {{0xa0,0xf8,RD },{0x10,0xff, }}}, +{8,'-','B','!','!',O_UNLK|O_UNSZ,"unlk",1,{FP,0},1, {{0x0f,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{9,'a','E','!','!',O_TST|O_WORD,"tst.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{10,'a','E','!','!',O_TST|O_BYTE,"tst.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RN,0},2, {{0xa8,0xf8,RN },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{11,'a','E','!','!',O_TST|O_UNSZ,"tst",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x16,0xff,0 }}}, +{12,'-','I','!','!',O_TRAPA|O_UNSZ,"trapa",1,{IMM4,0},2, {{0x08,0xff,0 },{0x10,0xf0,IMM4 }}}, +{13,'-','B','!','!',O_TRAP_VS|O_UNSZ,"trap/vs",0,{0,0},1, {{0x09,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x17,0xff,0 }}}, +{14,'s','E','!','E',O_TAS|O_BYTE,"tas.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RN,0},2, {{0xa0,0xf8,RN },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x17,0xff,0 }}}, +{15,'s','E','!','E',O_TAS|O_UNSZ,"tas",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x17,0xff,0 }}}, +{16,'m','D','!','D',O_SWAP|O_BYTE,"swap.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x10,0xff,0 }}}, +{17,'m','D','!','D',O_SWAP|O_UNSZ,"swap",1,{RD,0},2, {{0xa0,0xf8,RD },{0x10,0xff,0 }}}, {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xb0,0xf8,RD }}}, {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xb0,0xf8,RD }}}, {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xb0,0xf8,RD }}}, {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xb0,0xf8,RD }}}, -{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}}, +{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}}, {18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb0,0xf8,RD }}}, -{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, -{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, -{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, +{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, +{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, +{18,'a','E','D','D',O_SUBX|O_WORD,"subx.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0xb0,0xf8,RD }}}, {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0xb0,0xf8,RD }}}, {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0xb0,0xf8,RD }}}, {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0xb0,0xf8,RD }}}, -{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}}, -{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0xb0,0xf8,RD }}}, +{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}}, +{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xb0,0xf8,RD }}}, {19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xb0,0xf8,RD }}}, -{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, -{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, +{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, +{19,'a','E','D','D',O_SUBX|O_BYTE,"subx.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xb0,0xf8,RD }}}, {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xb0,0xf8,RD }}}, {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xb0,0xf8,RD }}}, {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xb0,0xf8,RD }}}, -{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}}, +{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb0,0xf8,RD }}}, {20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb0,0xf8,RD }}}, -{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, -{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, -{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb0,0xf8,RD }}}, +{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, +{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, +{20,'a','E','D','D',O_SUBX|O_UNSZ,"subx",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb0,0xf8,RD }}}, {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x38,0xf8,RD }}}, {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x38,0xf8,RD }}}, {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x38,0xf8,RD }}}, {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x38,0xf8,RD }}}, -{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}}, +{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}}, {21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x38,0xf8,RD }}}, -{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x38,0xf8,RD }}}, -{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x38,0xf8,RD }}}, -{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x38,0xf8,RD }}}, +{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, +{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, +{21,'-','E','D','D',O_SUBS|O_WORD,"subs.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x38,0xf8,RD }}}, {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x38,0xf8,RD }}}, {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x38,0xf8,RD }}}, {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x38,0xf8,RD }}}, -{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}}, -{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x38,0xf8,RD }}}, +{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}}, +{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x38,0xf8,RD }}}, {22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x38,0xf8,RD }}}, -{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x38,0xf8,RD }}}, -{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x38,0xf8,RD }}}, +{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, +{22,'-','E','D','D',O_SUBS|O_BYTE,"subs.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x38,0xf8,RD }}}, {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x38,0xf8,RD }}}, {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x38,0xf8,RD }}}, {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x38,0xf8,RD }}}, -{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}}, +{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x38,0xf8,RD }}}, {23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x38,0xf8,RD }}}, -{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x38,0xf8,RD }}}, -{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x38,0xf8,RD }}}, -{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x38,0xf8,RD }}}, +{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, +{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, +{23,'-','E','D','D',O_SUBS|O_UNSZ,"subs",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x38,0xf8,RD }}}, {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x30,0xf8,RD }}}, {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x30,0xf8,RD }}}, {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x30,0xf8,RD }}}, {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x30,0xf8,RD }}}, -{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}}, +{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}}, {24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x30,0xf8,RD }}}, -{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x30,0xf8,RD }}}, -{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x30,0xf8,RD }}}, -{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x30,0xf8,RD }}}, +{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, +{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, +{24,'a','E','D','D',O_SUB|O_WORD,"sub.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x30,0xf8,RD }}}, {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x30,0xf8,RD }}}, {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x30,0xf8,RD }}}, {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x30,0xf8,RD }}}, -{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}}, -{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x30,0xf8,RD }}}, +{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}}, +{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x30,0xf8,RD }}}, {25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x30,0xf8,RD }}}, -{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x30,0xf8,RD }}}, -{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x30,0xf8,RD }}}, +{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, +{25,'a','E','D','D',O_SUB|O_BYTE,"sub.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x30,0xf8,RD }}}, {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x30,0xf8,RD }}}, {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x30,0xf8,RD }}}, {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x30,0xf8,RD }}}, -{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}}, +{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x30,0xf8,RD }}}, {26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x30,0xf8,RD }}}, -{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x30,0xf8,RD }}}, -{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x30,0xf8,RD }}}, -{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x30,0xf8,RD }}}, -{27,'-','I','!','E',O_STM|O_UNSZ,"stm",2,{RLIST,SPDEC},2, {{0x12,0xff, },{0x00,0x00,RLIST }}}, +{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, +{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, +{26,'a','E','D','D',O_SUB|O_UNSZ,"sub",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x30,0xf8,RD }}}, +{27,'-','I','!','E',O_STM|O_UNSZ,"stm",2,{RLIST,SPDEC},2, {{0x12,0xff,0 },{0x00,0x00,RLIST }}}, {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RN},2, {{0xa8,0xf8,RN },{0x98,0xf8,CRW }}}, {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNDEC},2, {{0xb8,0xf8,RN },{0x98,0xf8,CRW }}}, {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNINC},2, {{0xc8,0xf8,RN },{0x98,0xf8,CRW }}}, {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND},2, {{0xd8,0xf8,RN },{0x98,0xf8,CRW }}}, -{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}}, +{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}}, {28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRW }}}, -{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRW }}}, -{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRW }}}, +{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}}, +{28,'s','C','!','E',O_STC|O_WORD,"stc.w",2,{CRW,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}}, {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RN},2, {{0xa0,0xf8,RN },{0x98,0xf8,CRB }}}, {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNDEC},2, {{0xb0,0xf8,RN },{0x98,0xf8,CRB }}}, {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNINC},2, {{0xc0,0xf8,RN },{0x98,0xf8,CRB }}}, {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND},2, {{0xd0,0xf8,RN },{0x98,0xf8,CRB }}}, -{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}}, +{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}}, {29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRB }}}, -{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRB }}}, -{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRB }}}, +{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}}, +{29,'s','C','!','E',O_STC|O_BYTE,"stc.b",2,{CRB,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}}, {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RN},2, {{0xa8,0xf8,RN },{0x98,0xf8,CRW }}}, {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RN},2, {{0xa0,0xf8,RN },{0x98,0xf8,CRB }}}, {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNDEC},2, {{0xb0,0xf8,RN },{0x98,0xf8,CRB }}}, @@ -356,398 +356,398 @@ const h8500_opcode_info h8500_table[] {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND},2, {{0xd0,0xf8,RN },{0x98,0xf8,CRB }}}, {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNINC},2, {{0xc0,0xf8,RN },{0x98,0xf8,CRB }}}, {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRW }}}, -{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}}, +{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRB }}}, {30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x98,0xf8,CRB }}}, -{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}}, -{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRW }}}, -{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRW }}}, -{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x98,0xf8,CRB }}}, -{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x98,0xf8,CRB }}}, -{31,'-','!','!','!',O_SLEEP|O_UNSZ,"sleep",0,{0,0},1, {{0x1a,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1b,0xff, }}}, -{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1b,0xff, }}}, -{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1b,0xff, }}}, -{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1b,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1a,0xff, }}}, -{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1a,0xff, }}}, -{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1a,0xff, }}}, -{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1a,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x19,0xff, }}}, -{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x19,0xff, }}}, -{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RN,0},2, {{0xa8,0xf8,RN },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x19,0xff, }}}, -{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x19,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x18,0xff, }}}, -{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x18,0xff, }}}, -{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RN,0},2, {{0xa8,0xf8,RN },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x18,0xff, }}}, -{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x18,0xff, }}}, -{44,'-','B','S','S',O_SCB_NE|O_UNSZ,"scb/ne",2,{RS,PCREL8},3, {{0x06,0xff, },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}}, -{45,'-','B','S','S',O_SCB_F|O_UNSZ,"scb/f",2,{RS,PCREL8},3, {{0x01,0xff, },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}}, -{46,'-','B','S','S',O_SCB_EQ|O_UNSZ,"scb/eq",2,{RS,PCREL8},3, {{0x07,0xff, },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}}, -{47,'-','B','!','!',O_RTS|O_UNSZ,"rts",0,{0,0},1, {{0x19,0xff, }}}, -{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM8,0},2, {{0x14,0xff, },{0x00,0x00,IMM8 }}}, -{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM16,0},3, {{0x14,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1f,0xff, }}}, -{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1f,0xff, }}}, -{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1f,0xff, }}}, -{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1f,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1e,0xff, }}}, -{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1e,0xff, }}}, -{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1e,0xff, }}}, -{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1e,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1d,0xff, }}}, -{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1d,0xff, }}}, -{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1d,0xff, }}}, -{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1d,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1c,0xff, }}}, -{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1c,0xff, }}}, -{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x1c,0xff, }}}, -{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x1c,0xff, }}}, -{61,'-','B','!','!',O_PRTS|O_UNSZ,"prts",0,{0,0},2, {{0x11,0xff, },{0x19,0xff, }}}, -{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM8,0},3, {{0x11,0xff, },{0x14,0xff, },{0x00,0x00,IMM8 }}}, -{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM16,0},4, {{0x11,0xff, },{0x1c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{RDIND,0},2, {{0x11,0xff, },{0xc8,0xf8,RDIND }}}, -{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{ABS24,0},4, {{0x03,0xff, },{0x00,0x00,ABS24 },{0x00,0x00, },{0x00,0x00, }}}, -{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{RDIND,0},2, {{0x11,0xff, },{0xc0,0xf8,RDIND }}}, -{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{ABS24,0},4, {{0x13,0xff, },{0x00,0x00,ABS24 },{0x00,0x00, },{0x00,0x00, }}}, -{65,'s','I','C','C',O_ORC|O_WORD,"orc.w",2,{IMM16,CRW},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x48,0xf8,CRW }}}, -{66,'s','I','C','C',O_ORC|O_BYTE,"orc.b",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}}, -{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}}, -{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM16,CRW},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x48,0xf8,CRW }}}, +{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x98,0xf8,CRW }}}, +{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}}, +{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRW,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRW }}}, +{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}}, +{30,'s','C','!','E',O_STC|O_UNSZ,"stc",2,{CRB,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x98,0xf8,CRB }}}, +{31,'-','!','!','!',O_SLEEP|O_UNSZ,"sleep",0,{0,0},1, {{0x1a,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{32,'h','E','!','E',O_SHLR|O_WORD,"shlr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{33,'h','E','!','E',O_SHLR|O_BYTE,"shlr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{34,'h','E','!','E',O_SHLR|O_UNSZ,"shlr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1b,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{35,'h','E','!','E',O_SHLL|O_WORD,"shll.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{36,'h','E','!','E',O_SHLL|O_BYTE,"shll.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{37,'h','E','!','E',O_SHLL|O_UNSZ,"shll",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1a,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{38,'h','E','!','E',O_SHAR|O_WORD,"shar.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{39,'h','E','!','E',O_SHAR|O_BYTE,"shar.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RN,0},2, {{0xa8,0xf8,RN },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{40,'h','E','!','E',O_SHAR|O_UNSZ,"shar",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x19,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{41,'h','E','!','E',O_SHAL|O_WORD,"shal.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{42,'h','E','!','E',O_SHAL|O_BYTE,"shal.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RN,0},2, {{0xa8,0xf8,RN },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{43,'h','E','!','E',O_SHAL|O_UNSZ,"shal",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x18,0xff,0 }}}, +{44,'-','B','S','S',O_SCB_NE|O_UNSZ,"scb/ne",2,{RS,PCREL8},3, {{0x06,0xff,0 },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}}, +{45,'-','B','S','S',O_SCB_F|O_UNSZ,"scb/f",2,{RS,PCREL8},3, {{0x01,0xff,0 },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}}, +{46,'-','B','S','S',O_SCB_EQ|O_UNSZ,"scb/eq",2,{RS,PCREL8},3, {{0x07,0xff,0 },{0xb8,0xf8,RS },{0x00,0x00,PCREL8 }}}, +{47,'-','B','!','!',O_RTS|O_UNSZ,"rts",0,{0,0},1, {{0x19,0xff,0 }}}, +{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM8,0},2, {{0x14,0xff,0 },{0x00,0x00,IMM8 }}}, +{48,'-','B','!','!',O_RTD|O_UNSZ,"rtd",1,{IMM16,0},3, {{0x14,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{49,'h','E','!','E',O_ROTXR|O_WORD,"rotxr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{50,'h','E','!','E',O_ROTXR|O_BYTE,"rotxr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{51,'h','E','!','E',O_ROTXR|O_UNSZ,"rotxr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1f,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{52,'h','E','!','E',O_ROTXL|O_WORD,"rotxl.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{53,'h','E','!','E',O_ROTXL|O_BYTE,"rotxl.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{54,'h','E','!','E',O_ROTXL|O_UNSZ,"rotxl",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1e,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{55,'h','E','!','E',O_ROTR|O_WORD,"rotr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{56,'h','E','!','E',O_ROTR|O_BYTE,"rotr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{57,'h','E','!','E',O_ROTR|O_UNSZ,"rotr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1d,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{58,'h','E','!','E',O_ROTL|O_WORD,"rotl.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{59,'h','E','!','E',O_ROTL|O_BYTE,"rotl.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RN,0},2, {{0xa8,0xf8,RN },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{60,'h','E','!','E',O_ROTL|O_UNSZ,"rotl",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x1c,0xff,0 }}}, +{61,'-','B','!','!',O_PRTS|O_UNSZ,"prts",0,{0,0},2, {{0x11,0xff,0 },{0x19,0xff,0 }}}, +{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM8,0},3, {{0x11,0xff,0 },{0x14,0xff,0 },{0x00,0x00,IMM8 }}}, +{62,'-','B','!','!',O_PRTD|O_UNSZ,"prtd",1,{IMM16,0},4, {{0x11,0xff,0 },{0x1c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{RDIND,0},2, {{0x11,0xff,0 },{0xc8,0xf8,RDIND }}}, +{63,'-','J','!','!',O_PJSR|O_UNSZ,"pjsr",1,{ABS24,0},4, {{0x03,0xff,0 },{0x00,0x00,ABS24 },{0x00,0x00,0 },{0x00,0x00,0 }}}, +{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{RDIND,0},2, {{0x11,0xff,0 },{0xc0,0xf8,RDIND }}}, +{64,'-','J','!','!',O_PJMP|O_UNSZ,"pjmp",1,{ABS24,0},4, {{0x13,0xff,0 },{0x00,0x00,ABS24 },{0x00,0x00,0 },{0x00,0x00,0 }}}, +{65,'s','I','C','C',O_ORC|O_WORD,"orc.w",2,{IMM16,CRW},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x48,0xf8,CRW }}}, +{66,'s','I','C','C',O_ORC|O_BYTE,"orc.b",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}}, +{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x48,0xf8,CRB }}}, +{67,'s','I','C','C',O_ORC|O_UNSZ,"orc",2,{IMM16,CRW},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x48,0xf8,CRW }}}, {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x40,0xf8,RD }}}, {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x40,0xf8,RD }}}, {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x40,0xf8,RD }}}, {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x40,0xf8,RD }}}, -{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}}, +{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}}, {68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x40,0xf8,RD }}}, -{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x40,0xf8,RD }}}, -{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x40,0xf8,RD }}}, -{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x40,0xf8,RD }}}, +{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, +{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, +{68,'m','E','D','D',O_OR|O_WORD,"or.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x40,0xf8,RD }}}, {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x40,0xf8,RD }}}, {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x40,0xf8,RD }}}, {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x40,0xf8,RD }}}, -{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}}, -{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x40,0xf8,RD }}}, +{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}}, +{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x40,0xf8,RD }}}, {69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x40,0xf8,RD }}}, -{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x40,0xf8,RD }}}, -{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x40,0xf8,RD }}}, +{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, +{69,'m','E','D','D',O_OR|O_BYTE,"or.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x40,0xf8,RD }}}, {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x40,0xf8,RD }}}, {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x40,0xf8,RD }}}, {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x40,0xf8,RD }}}, -{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}}, +{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x40,0xf8,RD }}}, {70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x40,0xf8,RD }}}, -{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x40,0xf8,RD }}}, -{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x40,0xf8,RD }}}, -{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x40,0xf8,RD }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x15,0xff, }}}, -{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x15,0xff, }}}, -{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RN,0},2, {{0xa8,0xf8,RN },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x15,0xff, }}}, -{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x15,0xff, }}}, -{74,'-','!','!','!',O_NOP|O_UNSZ,"nop",0,{0,0},1, {{0x00,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x14,0xff, }}}, -{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x14,0xff, }}}, -{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RN,0},2, {{0xa8,0xf8,RN },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x14,0xff, }}}, -{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x14,0xff, }}}, +{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, +{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, +{70,'m','E','D','D',O_OR|O_UNSZ,"or",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x40,0xf8,RD }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{71,'m','E','!','E',O_NOT|O_WORD,"not.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{72,'m','E','!','E',O_NOT|O_BYTE,"not.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RN,0},2, {{0xa8,0xf8,RN },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{73,'m','E','!','E',O_NOT|O_UNSZ,"not",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x15,0xff,0 }}}, +{74,'-','!','!','!',O_NOP|O_UNSZ,"nop",0,{0,0},1, {{0x00,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, +{75,'a','E','!','E',O_NEG|O_WORD,"neg.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, +{76,'a','E','!','E',O_NEG|O_BYTE,"neg.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RN,0},2, {{0xa8,0xf8,RN },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, +{77,'a','E','!','E',O_NEG|O_UNSZ,"neg",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x14,0xff,0 }}}, {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xa8,0xf8,RD }}}, {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xa8,0xf8,RD }}}, {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xa8,0xf8,RD }}}, {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xa8,0xf8,RD }}}, -{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}}, +{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}}, {78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa8,0xf8,RD }}}, -{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, -{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, -{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, +{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, +{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, +{78,'p','E','D','D',O_MULXU|O_WORD,"mulxu.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0xa8,0xf8,RD }}}, {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0xa8,0xf8,RD }}}, {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0xa8,0xf8,RD }}}, {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0xa8,0xf8,RD }}}, -{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0xa8,0xf8,RD }}}, -{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}}, +{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xa8,0xf8,RD }}}, +{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}}, {79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xa8,0xf8,RD }}}, -{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, -{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, +{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, +{79,'p','E','D','D',O_MULXU|O_BYTE,"mulxu.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xa8,0xf8,RD }}}, {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xa8,0xf8,RD }}}, {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xa8,0xf8,RD }}}, {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xa8,0xf8,RD }}}, {80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa8,0xf8,RD }}}, -{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}}, -{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, -{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, -{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa8,0xf8,RD }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RN},3, {{0xa0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNDEC},3, {{0xb0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNINC},3, {{0xc0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND},3, {{0xd0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS8},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x90,0xf8,RS }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x90,0xf8,RS }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS16},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}}, -{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RN},3, {{0xa0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNDEC},3, {{0xb0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND},3, {{0xd0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNINC},3, {{0xc0,0xf8,RN },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS8},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS16},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}}, -{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x90,0xf8,RS }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RN,RD},3, {{0xa0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNINC,RD},3, {{0xc0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND,RD},3, {{0xd0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNDEC,RD},3, {{0xb0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{IMM8,RD},4, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS8,RD},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D8,RD},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS16,RD},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}}, -{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D16,RD},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RN,RD},3, {{0xa0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNINC,RD},3, {{0xc0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND,RD},3, {{0xd0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNDEC,RD},3, {{0xb0,0xf8,RN },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{IMM8,RD},4, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS8,RD},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D8,RD},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS16,RD},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}}, -{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D16,RD},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x00,0xff, },{0x80,0xf8,RD }}}, +{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa8,0xf8,RD }}}, +{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, +{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, +{80,'p','E','D','D',O_MULXU|O_UNSZ,"mulxu",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa8,0xf8,RD }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RN},3, {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNDEC},3, {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNINC},3, {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND},3, {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS8},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,ABS16},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{81,'-','S','!','E',O_MOVTPE|O_BYTE,"movtpe.b",2,{RS,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RN},3, {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNDEC},3, {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND},3, {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNINC},3, {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS8},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,ABS16},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{82,'-','S','!','E',O_MOVTPE|O_UNSZ,"movtpe",2,{RS,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x90,0xf8,RS }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RN,RD},3, {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNINC,RD},3, {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND,RD},3, {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNDEC,RD},3, {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{IMM8,RD},4, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS8,RD},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D8,RD},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{ABS16,RD},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{83,'-','E','!','D',O_MOVFPE|O_BYTE,"movfpe.b",2,{RNIND_D16,RD},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RN,RD},3, {{0xa0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNINC,RD},3, {{0xc0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND,RD},3, {{0xd0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNDEC,RD},3, {{0xb0,0xf8,RN },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{IMM8,RD},4, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS8,RD},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D8,RD},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{ABS16,RD},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, +{84,'-','E','!','D',O_MOVFPE|O_UNSZ,"movfpe",2,{RNIND_D16,RD},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x00,0xff,0 },{0x80,0xf8,RD }}}, {85,'m','S','!','E',O_MOV|O_WORD,"mov:s.w",2,{RS,ABS8},2, {{0x78,0xf8,RS },{0x00,0x00,ABS8 }}}, {86,'m','S','!','E',O_MOV|O_BYTE,"mov:s.b",2,{RS,ABS8},2, {{0x70,0xf8,RS },{0x00,0x00,ABS8 }}}, {87,'m','S','!','E',O_MOV|O_UNSZ,"mov:s",2,{RS,ABS8},2, {{0x78,0xf8,RS },{0x00,0x00,ABS8 }}}, {88,'m','E','!','D',O_MOV|O_WORD,"mov:l.w",2,{ABS8,RD},2, {{0x68,0xf8,RD },{0x00,0x00,ABS8 }}}, {89,'m','E','!','D',O_MOV|O_BYTE,"mov:l.b",2,{ABS8,RD},2, {{0x60,0xf8,RD },{0x00,0x00,ABS8 }}}, {90,'m','E','!','D',O_MOV|O_UNSZ,"mov:l",2,{ABS8,RD},2, {{0x68,0xf8,RD },{0x00,0x00,ABS8 }}}, -{91,'m','I','!','D',O_MOV|O_WORD,"mov:i.w",2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{92,'m','I','!','D',O_MOV|O_UNSZ,"mov:i", 2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{91,'m','I','!','D',O_MOV|O_WORD,"mov:i.w",2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{92,'m','I','!','D',O_MOV|O_UNSZ,"mov:i", 2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND},2, {{0xd8,0xf8,RN },{0x90,0xf8,RS }}}, {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x80,0xf8,RD }}}, {93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNDEC},2, {{0xb8,0xf8,RN },{0x90,0xf8,RS }}}, @@ -755,23 +755,23 @@ const h8500_opcode_info h8500_table[] {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x80,0xf8,RD }}}, {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x80,0xf8,RD }}}, {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x80,0xf8,RD }}}, -{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, +{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, {93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}}, {93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}}, -{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, -{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, +{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{93,'m','S','!','E',O_MOV|O_WORD,"mov:g.w",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{93,'m','E','!','D',O_MOV|O_WORD,"mov:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, -{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{93,'m','I','!','E',O_MOV|O_WORD,"mov:g.w",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNINC},2, {{0xc0,0xf8,RN },{0x90,0xf8,RS }}}, {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x80,0xf8,RD }}}, @@ -780,22 +780,22 @@ const h8500_opcode_info h8500_table[] {94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNDEC},2, {{0xb0,0xf8,RN },{0x90,0xf8,RS }}}, {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x80,0xf8,RD }}}, {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x80,0xf8,RD }}}, -{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, +{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, {94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}}, -{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}}, +{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}}, {94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}}, -{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, -{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS8},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS16},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, +{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, +{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS8},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{94,'m','S','!','E',O_MOV|O_BYTE,"mov:g.b",2,{RS,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{94,'m','E','!','D',O_MOV|O_BYTE,"mov:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{94,'m','I','!','E',O_MOV|O_BYTE,"mov:g.b",2,{IMM8,ABS16},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, {95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNINC},2, {{0xc8,0xf8,RN },{0x90,0xf8,RS }}}, {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x80,0xf8,RD }}}, {95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND},2, {{0xd8,0xf8,RN },{0x90,0xf8,RS }}}, @@ -804,28 +804,28 @@ const h8500_opcode_info h8500_table[] {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x80,0xf8,RD }}}, {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x80,0xf8,RD }}}, {95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}}, -{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, +{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, {95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND},3, {{0xd8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNDEC},3, {{0xb8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNINC},3, {{0xc8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D8},4, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS8},4, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS16},5, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D16},5, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND},3, {{0xd8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNDEC},3, {{0xb8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNINC},3, {{0xc8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D8},4, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS8},4, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{95,'m','S','!','E',O_MOV|O_UNSZ,"mov:g",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{95,'m','E','!','D',O_MOV|O_UNSZ,"mov:g",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,ABS16},5, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM8,RNIND_D16},5, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{95,'m','I','!','E',O_MOV|O_UNSZ,"mov:g",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {96,'m','S','!','E',O_MOV|O_WORD,"mov:f.w",2,{RS,FPIND_D8},2, {{0x98,0xf8,RS },{0x00,0x00,FPIND_D8 }}}, {96,'m','E','!','D',O_MOV|O_WORD,"mov:f.w",2,{FPIND_D8,RD},2, {{0x88,0xf8,RD },{0x00,0x00,FPIND_D8 }}}, {97,'m','S','!','E',O_MOV|O_BYTE,"mov:f.b",2,{RS,FPIND_D8},2, {{0x90,0xf8,RS },{0x00,0x00,FPIND_D8 }}}, @@ -845,23 +845,23 @@ const h8500_opcode_info h8500_table[] {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x80,0xf8,RD }}}, {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x80,0xf8,RD }}}, {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x80,0xf8,RD }}}, -{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, +{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, {101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}}, {101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}}, -{101,'m','I','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, -{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{101,'m','I','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, +{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{101,'m','S','!','E',O_MOV|O_WORD,"mov.w",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{101,'m','E','!','D',O_MOV|O_WORD,"mov.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{101,'m','I','!','E',O_MOV|O_WORD,"mov.w",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{FPIND_D8,RD},2, {{0x80,0xf8,RD },{0x00,0x00,FPIND_D8 }}}, {102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS8},2, {{0x70,0xf8,RS },{0x00,0x00,ABS8 }}}, @@ -875,22 +875,22 @@ const h8500_opcode_info h8500_table[] {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x80,0xf8,RD }}}, {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS8,RD},2, {{0x60,0xf8,RD },{0x00,0x00,ABS8 }}}, {102,'m','I','!','D',O_MOV|O_BYTE,"mov.b",2,{IMM8,RD},2, {{0x50,0xf8,RD },{0x00,0x00,IMM8 }}}, -{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}}, -{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, -{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, +{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x80,0xf8,RD }}}, +{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, +{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, {102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}}, -{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, +{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, {102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}}, -{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS8},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS16},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, +{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS8},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{102,'m','S','!','E',O_MOV|O_BYTE,"mov.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{102,'m','E','!','D',O_MOV|O_BYTE,"mov.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,ABS16},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{102,'m','I','!','E',O_MOV|O_BYTE,"mov.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS8,RD},2, {{0x68,0xf8,RD },{0x00,0x00,ABS8 }}}, {103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS8},2, {{0x78,0xf8,RS },{0x00,0x00,ABS8 }}}, {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x80,0xf8,RD }}}, @@ -904,50 +904,50 @@ const h8500_opcode_info h8500_table[] /*{103,'m','I','!','D',O_MOV|O_UNSZ,"mov",2,{IMM8,RD},2, {{0x58,0xf8,RD },{0x00,0x00,IMM8 }}},*/ {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x80,0xf8,RD }}}, {103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x90,0xf8,RS }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND},3, {{0xd8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNINC},3, {{0xc8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNDEC},3, {{0xb8,0xf8,RN },{0x06,0xff, },{0x00,0x00,IMM8 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND},3, {{0xd8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNINC},3, {{0xc8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNDEC},3, {{0xb8,0xf8,RN },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, {103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x80,0xf8,RD }}}, -{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, -{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, -{103,'m','I','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS8},4, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x90,0xf8,RS }}}, -{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D8},4, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x80,0xf8,RD }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS16},5, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D16},5, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x06,0xff, },{0x00,0x00,IMM8 }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x07,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM8},2, {{0x17,0xff, },{0x00,0x00,IMM8 }}}, -{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM16},3, {{0x1f,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{105,'-','E','!','C',O_LDM|O_UNSZ,"ldm",2,{SPINC,RLIST},2, {{0x02,0xff, },{0x00,0x00,RLIST }}}, +{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x90,0xf8,RS }}}, +{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x80,0xf8,RD }}}, +{103,'m','I','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},3, {{0x58,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS8},4, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{103,'m','S','!','E',O_MOV|O_UNSZ,"mov",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x90,0xf8,RS }}}, +{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D8},4, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{103,'m','E','!','D',O_MOV|O_UNSZ,"mov",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x80,0xf8,RD }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,ABS16},5, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM8,RNIND_D16},5, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x06,0xff,0 },{0x00,0x00,IMM8 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{103,'m','I','!','E',O_MOV|O_UNSZ,"mov",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x07,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM8},2, {{0x17,0xff,0 },{0x00,0x00,IMM8 }}}, +{104,'-','S','I','!',O_LINK|O_UNSZ,"link",2,{FP,IMM16},3, {{0x1f,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{105,'-','E','!','C',O_LDM|O_UNSZ,"ldm",2,{SPINC,RLIST},2, {{0x02,0xff,0 },{0x00,0x00,RLIST }}}, {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RN,CRW},2, {{0xa8,0xf8,RN },{0x88,0xf8,CRW }}}, {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND,CRW},2, {{0xd8,0xf8,RN },{0x88,0xf8,CRW }}}, {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNINC,CRW},2, {{0xc8,0xf8,RN },{0x88,0xf8,CRW }}}, {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNDEC,CRW},2, {{0xb8,0xf8,RN },{0x88,0xf8,CRW }}}, -{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS8,CRW},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}}, +{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS8,CRW},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}}, {106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND_D8,CRW},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRW }}}, -{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{IMM16,CRW},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x88,0xf8,CRW }}}, -{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS16,CRW},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRW }}}, -{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND_D16,CRW},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRW }}}, +{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{IMM16,CRW},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}}, +{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{ABS16,CRW},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}}, +{106,'s','E','!','C',O_LDC|O_WORD,"ldc.w",2,{RNIND_D16,CRW},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}}, {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RN,CRB},2, {{0xa0,0xf8,RN },{0x88,0xf8,CRB }}}, {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNDEC,CRB},2, {{0xb0,0xf8,RN },{0x88,0xf8,CRB }}}, {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNINC,CRB},2, {{0xc0,0xf8,RN },{0x88,0xf8,CRB }}}, {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND,CRB},2, {{0xd0,0xf8,RN },{0x88,0xf8,CRB }}}, -{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}}, -{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS8,CRB},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}}, +{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}}, +{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS8,CRB},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}}, {107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND_D8,CRB},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRB }}}, -{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS16,CRB},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRB }}}, -{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND_D16,CRB},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRB }}}, +{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{ABS16,CRB},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}}, +{107,'s','E','!','C',O_LDC|O_BYTE,"ldc.b",2,{RNIND_D16,CRB},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}}, {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RN,CRW},2, {{0xa8,0xf8,RN },{0x88,0xf8,CRW }}}, {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RN,CRB},2, {{0xa0,0xf8,RN },{0x88,0xf8,CRB }}}, {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNINC,CRW},2, {{0xc8,0xf8,RN },{0x88,0xf8,CRW }}}, @@ -956,202 +956,202 @@ const h8500_opcode_info h8500_table[] {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND,CRW},2, {{0xd8,0xf8,RN },{0x88,0xf8,CRW }}}, {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNDEC,CRB},2, {{0xb0,0xf8,RN },{0x88,0xf8,CRB }}}, {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNINC,CRB},2, {{0xc0,0xf8,RN },{0x88,0xf8,CRB }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRW},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRB},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRW},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRW }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS8,CRB},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x88,0xf8,CRB }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x88,0xf8,CRB }}}, {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D8,CRW},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRW }}}, {108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D8,CRB},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x88,0xf8,CRB }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRB},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRB }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRW},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x88,0xf8,CRW }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM16,CRW},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x88,0xf8,CRW }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRW},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRW }}}, -{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRB},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x88,0xf8,CRB }}}, -{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND,0},2, {{0x11,0xff, },{0xd8,0xf8,RD }}}, -{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{ABS16,0},3, {{0x18,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, }}}, -{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D8,0},3, {{0x11,0xff, },{0xe8,0xf8,RDIND_D8 },{0x00,0x00, }}}, -{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D16,0},4, {{0x11,0xff, },{0xf8,0xf8,RDIND_D16 },{0x00,0x00, },{0x00,0x00, }}}, -{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND,0},2, {{0x11,0xff, },{0xd0,0xf8,RD }}}, -{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{ABS16,0},3, {{0x10,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, }}}, -{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D8,0},3, {{0x11,0xff, },{0xe0,0xf8,RDIND_D8 },{0x00,0x00, }}}, -{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D16,0},4, {{0x11,0xff, },{0xf0,0xf8,RDIND_D16 },{0x00,0x00, },{0x00,0x00, }}}, -{111,'s','D','!','D',O_EXTU|O_BYTE,"extu.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x12,0xff, }}}, -{112,'s','D','!','D',O_EXTU|O_UNSZ,"extu",1,{RD,0},2, {{0xa0,0xf8,RD },{0x12,0xff, }}}, -{113,'s','D','!','D',O_EXTS|O_BYTE,"exts.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x11,0xff, }}}, -{114,'s','D','!','D',O_EXTS|O_UNSZ,"exts",1,{RD,0},2, {{0xa0,0xf8,RD },{0x11,0xff, }}}, -{115,'s','D','!','!',O_DSUB|O_UNSZ,"dsub",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff, },{0xb0,0xf8,RD }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRB},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{ABS16,CRW},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{IMM16,CRW},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRW},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRW }}}, +{108,'s','E','!','C',O_LDC|O_UNSZ,"ldc",2,{RNIND_D16,CRB},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x88,0xf8,CRB }}}, +{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND,0},2, {{0x11,0xff,0 },{0xd8,0xf8,RD }}}, +{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{ABS16,0},3, {{0x18,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 }}}, +{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D8,0},3, {{0x11,0xff,0 },{0xe8,0xf8,RDIND_D8 },{0x00,0x00,0 }}}, +{109,'-','B','!','!',O_JSR|O_UNSZ,"jsr",1,{RDIND_D16,0},4, {{0x11,0xff,0 },{0xf8,0xf8,RDIND_D16 },{0x00,0x00,0 },{0x00,0x00,0 }}}, +{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND,0},2, {{0x11,0xff,0 },{0xd0,0xf8,RD }}}, +{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{ABS16,0},3, {{0x10,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 }}}, +{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D8,0},3, {{0x11,0xff,0 },{0xe0,0xf8,RDIND_D8 },{0x00,0x00,0 }}}, +{110,'-','B','!','!',O_JMP|O_UNSZ,"jmp",1,{RDIND_D16,0},4, {{0x11,0xff,0 },{0xf0,0xf8,RDIND_D16 },{0x00,0x00,0 },{0x00,0x00,0 }}}, +{111,'s','D','!','D',O_EXTU|O_BYTE,"extu.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x12,0xff,0 }}}, +{112,'s','D','!','D',O_EXTU|O_UNSZ,"extu",1,{RD,0},2, {{0xa0,0xf8,RD },{0x12,0xff,0 }}}, +{113,'s','D','!','D',O_EXTS|O_BYTE,"exts.b",1,{RD,0},2, {{0xa0,0xf8,RD },{0x11,0xff,0 }}}, +{114,'s','D','!','D',O_EXTS|O_UNSZ,"exts",1,{RD,0},2, {{0xa0,0xf8,RD },{0x11,0xff,0 }}}, +{115,'s','D','!','!',O_DSUB|O_UNSZ,"dsub",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff,0 },{0xb0,0xf8,RD }}}, {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xb8,0xf8,RD }}}, {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xb8,0xf8,RD }}}, {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xb8,0xf8,RD }}}, {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xb8,0xf8,RD }}}, -{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}}, +{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}}, {116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb8,0xf8,RD }}}, -{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, -{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, -{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, +{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, +{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, +{116,'s','E','D','D',O_DIVXU|O_WORD,"divxu.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0xb8,0xf8,RD }}}, {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0xb8,0xf8,RD }}}, {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0xb8,0xf8,RD }}}, {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0xb8,0xf8,RD }}}, -{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0xb8,0xf8,RD }}}, +{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xb8,0xf8,RD }}}, {117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xb8,0xf8,RD }}}, -{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}}, -{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, -{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, +{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}}, +{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, +{117,'s','E','D','D',O_DIVXU|O_BYTE,"divxu.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xb8,0xf8,RD }}}, {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xb8,0xf8,RD }}}, {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xb8,0xf8,RD }}}, {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xb8,0xf8,RD }}}, -{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}}, +{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xb8,0xf8,RD }}}, {118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xb8,0xf8,RD }}}, -{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, -{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, -{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xb8,0xf8,RD }}}, -{119,'s','D','!','!',O_DADD|O_UNSZ,"dadd",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff, },{0xa0,0xf8,RD }}}, -{120,'a','D','I','!',O_CMP|O_WORD,"cmp:i.w",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{121,'a','D','I','!',O_CMP|O_UNSZ,"cmp:i",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, +{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, +{118,'s','E','D','D',O_DIVXU|O_UNSZ,"divxu",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xb8,0xf8,RD }}}, +{119,'s','D','!','!',O_DADD|O_UNSZ,"dadd",2,{RS,RD},3, {{0xa0,0xf8,RS },{0x00,0xff,0 },{0xa0,0xf8,RD }}}, +{120,'a','D','I','!',O_CMP|O_WORD,"cmp:i.w",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{121,'a','D','I','!',O_CMP|O_UNSZ,"cmp:i",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x70,0xf8,RD }}}, {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x70,0xf8,RD }}}, {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x70,0xf8,RD }}}, {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x70,0xf8,RD }}}, {122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}}, -{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{122,'a','D','E','!',O_CMP|O_WORD,"cmp:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D8},5,{{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{122,'a','E','I','!',O_CMP|O_WORD,"cmp:g.w",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x70,0xf8,RD }}}, {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x70,0xf8,RD }}}, {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x70,0xf8,RD }}}, {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x70,0xf8,RD }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RN},3, {{0xa0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RN},3, {{0xa0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}}, {123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}}, -{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, -{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS8},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS16},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}}, +{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, +{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS8},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{123,'a','D','E','!',O_CMP|O_BYTE,"cmp:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,ABS16},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{123,'a','E','I','!',O_CMP|O_BYTE,"cmp:g.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x70,0xf8,RD }}}, {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x70,0xf8,RD }}}, {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x70,0xf8,RD }}}, {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x70,0xf8,RD }}}, {124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}}, -{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{124,'a','D','E','!',O_CMP|O_UNSZ,"cmp:g",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{124,'a','E','I','!',O_CMP|O_UNSZ,"cmp:g",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {125,'a','D','I','!',O_CMP|O_BYTE,"cmp:e.b",2,{IMM8,RD},2, {{0x40,0xf8,RD },{0x00,0x00,IMM8 }}}, {126,'a','D','I','!',O_CMP|O_UNSZ,"cmp:e",2,{IMM8,RD},2, {{0x48,0xf8,RD },{0x00,0x00,IMM8 }}}, {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x70,0xf8,RD }}}, {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x70,0xf8,RD }}}, {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x70,0xf8,RD }}}, {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x70,0xf8,RD }}}, -{127,'a','D','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{127,'a','D','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}}, -{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{127,'a','D','E','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,RNIND_D16},6,{{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{127,'a','E','I','!',O_CMP|O_WORD,"cmp.w",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x70,0xf8,RD }}}, {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x70,0xf8,RD }}}, {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x70,0xf8,RD }}}, {128,'a','D','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RD},2, {{0x40,0xf8,RD },{0x00,0x00,IMM8 }}}, {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x70,0xf8,RD }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RN},3, {{0xa0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RN},3, {{0xa0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND},3, {{0xd0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNINC},3, {{0xc0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNDEC},3, {{0xb0,0xf8,RN },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, {128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}}, -{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS8},4, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS16},5, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}}, -{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x04,0xff, },{0x00,0x00,IMM8 }}}, +{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x70,0xf8,RD }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS8},4, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D8},4, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{128,'a','D','E','!',O_CMP|O_BYTE,"cmp.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,ABS16},5, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, +{128,'a','E','I','!',O_CMP|O_BYTE,"cmp.b",2,{IMM8,RNIND_D16},5, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x04,0xff,0 },{0x00,0x00,IMM8 }}}, {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x70,0xf8,RD }}}, {129,'a','D','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM8,RD},2, {{0x48,0xf8,RD },{0x00,0x00,IMM8 }}}, {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x70,0xf8,RD }}}, {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x70,0xf8,RD }}}, {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x70,0xf8,RD }}}, -{129,'a','D','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00, }}}, +{129,'a','D','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},3, {{0x48,0xf8,RD },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, {129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x70,0xf8,RD }}}, -{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x70,0xf8,RD }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS8},5, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS16},6, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x05,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x13,0xff, }}}, -{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS8,0},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{IMM8,0},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS16,0},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x13,0xff, }}}, -{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS8,0},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{IMM16,0},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS16,0},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x13,0xff, }}}, -{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x13,0xff, }}}, -{133,'-','B','!','!',O_BVS|O_WORD,"bvs.w",1,{PCREL16,0},3, {{0x39,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{134,'-','B','!','!',O_BVS|O_BYTE,"bvs.b",1,{PCREL8,0},2, {{0x29,0xff, },{0x00,0x00,PCREL8 }}}, -{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL8,0},2, {{0x29,0xff, },{0x00,0x00,PCREL8 }}}, -{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL16,0},3, {{0x39,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{136,'-','B','!','!',O_BVC|O_WORD,"bvc.w",1,{PCREL16,0},3, {{0x38,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{137,'-','B','!','!',O_BVC|O_BYTE,"bvc.b",1,{PCREL8,0},2, {{0x28,0xff, },{0x00,0x00,PCREL8 }}}, -{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL8,0},2, {{0x28,0xff, },{0x00,0x00,PCREL8 }}}, -{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL16,0},3, {{0x38,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, +{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x70,0xf8,RD }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RN},4, {{0xa8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNDEC},4, {{0xb8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND},4, {{0xd8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNINC},4, {{0xc8,0xf8,RN },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{129,'a','D','E','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x70,0xf8,RD }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS8},5, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D8},5, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,ABS16},6, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{129,'a','E','I','!',O_CMP|O_UNSZ,"cmp",2,{IMM16,RNIND_D16},6, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x05,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RN,0},2, {{0xa8,0xf8,RN },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{130,'c','!','!','E',O_CLR|O_WORD,"clr.w",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RN,0},2, {{0xa0,0xf8,RN },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNINC,0},2, {{0xc0,0xf8,RN },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNDEC,0},2, {{0xb0,0xf8,RN },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND,0},2, {{0xd0,0xf8,RN },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS8,0},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{IMM8,0},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D8,0},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{ABS16,0},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{131,'c','!','!','E',O_CLR|O_BYTE,"clr.b",1,{RNIND_D16,0},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RN,0},2, {{0xa8,0xf8,RN },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND,0},2, {{0xd8,0xf8,RN },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNINC,0},2, {{0xc8,0xf8,RN },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNDEC,0},2, {{0xb8,0xf8,RN },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS8,0},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D8,0},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{IMM16,0},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{ABS16,0},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{132,'c','!','!','E',O_CLR|O_UNSZ,"clr",1,{RNIND_D16,0},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x13,0xff,0 }}}, +{133,'-','B','!','!',O_BVS|O_WORD,"bvs.w",1,{PCREL16,0},3, {{0x39,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{134,'-','B','!','!',O_BVS|O_BYTE,"bvs.b",1,{PCREL8,0},2, {{0x29,0xff,0 },{0x00,0x00,PCREL8 }}}, +{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL8,0},2, {{0x29,0xff,0 },{0x00,0x00,PCREL8 }}}, +{135,'-','B','!','!',O_BVS|O_UNSZ,"bvs",1,{PCREL16,0},3, {{0x39,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{136,'-','B','!','!',O_BVC|O_WORD,"bvc.w",1,{PCREL16,0},3, {{0x38,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{137,'-','B','!','!',O_BVC|O_BYTE,"bvc.b",1,{PCREL8,0},2, {{0x28,0xff,0 },{0x00,0x00,PCREL8 }}}, +{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL8,0},2, {{0x28,0xff,0 },{0x00,0x00,PCREL8 }}}, +{138,'-','B','!','!',O_BVC|O_UNSZ,"bvc",1,{PCREL16,0},3, {{0x38,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, {139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x78,0xf8,RS }}}, {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNDEC},2, {{0xb8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNINC},2, {{0xc8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, @@ -1161,13 +1161,13 @@ const h8500_opcode_info h8500_table[] {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND},2, {{0xd8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RN},2, {{0xa8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x78,0xf8,RS }}}, -{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}}, -{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}}, +{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}}, +{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}}, {139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xf0,0xf0,IMM4 }}}, -{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x78,0xf8,RS }}}, -{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x78,0xf8,RS }}}, -{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}}, -{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}}, +{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x78,0xf8,RS }}}, +{139,'b','E','S','E',O_BTST|O_WORD,"btst.w",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x78,0xf8,RS }}}, +{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}}, +{139,'b','E','I','E',O_BTST|O_WORD,"btst.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}}, {140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RN},2, {{0xa0,0xf8,RN },{0x78,0xf8,RS }}}, {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNDEC},2, {{0xb0,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RN},2, {{0xa0,0xf8,RN },{0xf0,0xf0,IMM4 }}}, @@ -1178,12 +1178,12 @@ const h8500_opcode_info h8500_table[] {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNINC},2, {{0xc0,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x78,0xf8,RS }}}, {140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xf0,0xf0,IMM4 }}}, -{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}}, -{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}}, -{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}}, -{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x78,0xf8,RS }}}, -{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x78,0xf8,RS }}}, -{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}}, +{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}}, +{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}}, +{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}}, +{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x78,0xf8,RS }}}, +{140,'b','E','S','E',O_BTST|O_BYTE,"btst.b",2,{RS,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x78,0xf8,RS }}}, +{140,'b','E','I','E',O_BTST|O_BYTE,"btst.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}}, {141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x78,0xf8,RS }}}, {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNDEC},2, {{0xb8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND},2, {{0xd8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, @@ -1193,21 +1193,21 @@ const h8500_opcode_info h8500_table[] {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RN},2, {{0xa8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNINC},2, {{0xc8,0xf8,RN },{0xf0,0xf0,IMM4 }}}, {141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x78,0xf8,RS }}}, -{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}}, -{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}}, +{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xf0,0xf0,IMM4 }}}, +{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x78,0xf8,RS }}}, {141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xf0,0xf0,IMM4 }}}, -{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}}, -{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x78,0xf8,RS }}}, -{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x78,0xf8,RS }}}, -{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xf0,0xf0,IMM4 }}}, -{142,'-','B','!','!',O_BT|O_WORD,"bt.w",1,{PCREL16,0},3, {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{143,'-','B','!','!',O_BT|O_BYTE,"bt.b",1,{PCREL8,0},2, {{0x20,0xff, },{0x00,0x00,PCREL8 }}}, -{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL8,0},2, {{0x20,0xff, },{0x00,0x00,PCREL8 }}}, -{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL16,0},3, {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{145,'-','B','!','!',O_BSR|O_WORD,"bsr.w",1,{PCREL16,0},3, {{0x1e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{146,'-','B','!','!',O_BSR|O_BYTE,"bsr.b",1,{PCREL8,0},2, {{0x0e,0xff, },{0x00,0x00,PCREL8 }}}, -{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL8,0},2, {{0x0e,0xff, },{0x00,0x00,PCREL8 }}}, -{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL16,0},3, {{0x1e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, +{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}}, +{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x78,0xf8,RS }}}, +{141,'b','E','S','E',O_BTST|O_UNSZ,"btst",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x78,0xf8,RS }}}, +{141,'b','E','I','E',O_BTST|O_UNSZ,"btst",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xf0,0xf0,IMM4 }}}, +{142,'-','B','!','!',O_BT|O_WORD,"bt.w",1,{PCREL16,0},3, {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{143,'-','B','!','!',O_BT|O_BYTE,"bt.b",1,{PCREL8,0},2, {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}}, +{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL8,0},2, {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}}, +{144,'-','B','!','!',O_BT|O_UNSZ,"bt",1,{PCREL16,0},3, {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{145,'-','B','!','!',O_BSR|O_WORD,"bsr.w",1,{PCREL16,0},3, {{0x1e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{146,'-','B','!','!',O_BSR|O_BYTE,"bsr.b",1,{PCREL8,0},2, {{0x0e,0xff,0 },{0x00,0x00,PCREL8 }}}, +{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL8,0},2, {{0x0e,0xff,0 },{0x00,0x00,PCREL8 }}}, +{147,'-','B','!','!',O_BSR|O_UNSZ,"bsr",1,{PCREL16,0},3, {{0x1e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, {148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x48,0xf8,RS }}}, {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNDEC},2, {{0xb8,0xf8,RN },{0xc0,0xf0,IMM4 }}}, {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RN},2, {{0xa8,0xf8,RN },{0xc0,0xf0,IMM4 }}}, @@ -1217,13 +1217,13 @@ const h8500_opcode_info h8500_table[] {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNINC},2, {{0xc8,0xf8,RN },{0xc0,0xf0,IMM4 }}}, {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND},2, {{0xd8,0xf8,RN },{0xc0,0xf0,IMM4 }}}, {148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xc0,0xf0,IMM4 }}}, -{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}}, -{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}}, +{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}}, +{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}}, {148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x48,0xf8,RS }}}, -{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}}, -{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x48,0xf8,RS }}}, -{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x48,0xf8,RS }}}, -{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}}, +{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}}, +{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x48,0xf8,RS }}}, +{148,'b','E','S','E',O_BSET|O_WORD,"bset.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x48,0xf8,RS }}}, +{148,'b','E','I','E',O_BSET|O_WORD,"bset.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}}, {149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RN},2, {{0xa0,0xf8,RN },{0x48,0xf8,RS }}}, {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNINC},2, {{0xc0,0xf8,RN },{0xc0,0xf0,IMM4 }}}, {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RN},2, {{0xa0,0xf8,RN },{0xc0,0xf0,IMM4 }}}, @@ -1232,14 +1232,14 @@ const h8500_opcode_info h8500_table[] {149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNDEC},2, {{0xb0,0xf8,RN },{0x48,0xf8,RS }}}, {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNDEC},2, {{0xb0,0xf8,RN },{0xc0,0xf0,IMM4 }}}, {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND},2, {{0xd0,0xf8,RN },{0xc0,0xf0,IMM4 }}}, -{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}}, +{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}}, {149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xc0,0xf0,IMM4 }}}, {149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x48,0xf8,RS }}}, -{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}}, -{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x48,0xf8,RS }}}, -{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}}, -{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x48,0xf8,RS }}}, -{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}}, +{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}}, +{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x48,0xf8,RS }}}, +{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}}, +{149,'b','E','S','E',O_BSET|O_BYTE,"bset.b",2,{RS,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x48,0xf8,RS }}}, +{149,'b','E','I','E',O_BSET|O_BYTE,"bset.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}}, {150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x48,0xf8,RS }}}, {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RN},2, {{0xa8,0xf8,RN },{0xc0,0xf0,IMM4 }}}, {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND},2, {{0xd8,0xf8,RN },{0xc0,0xf0,IMM4 }}}, @@ -1250,25 +1250,25 @@ const h8500_opcode_info h8500_table[] {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNDEC},2, {{0xb8,0xf8,RN },{0xc0,0xf0,IMM4 }}}, {150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x48,0xf8,RS }}}, {150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xc0,0xf0,IMM4 }}}, -{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}}, -{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}}, -{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}}, -{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x48,0xf8,RS }}}, -{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x48,0xf8,RS }}}, -{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xc0,0xf0,IMM4 }}}, -{151,'-','B','!','!',O_BRN|O_WORD,"brn.w",1,{PCREL16,0},3, {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{152,'-','B','!','!',O_BRN|O_BYTE,"brn.b",1,{PCREL8,0},2, {{0x21,0xff, },{0x00,0x00,PCREL8 }}}, -{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL8,0},2, {{0x21,0xff, },{0x00,0x00,PCREL8 }}}, -{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL16,0},3, {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{154,'-','B','!','!',O_BRA|O_WORD,"bra.w",1,{PCREL16,0},3, {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{155,'-','B','!','!',O_BRA|O_BYTE,"bra.b",1,{PCREL8,0},2, {{0x20,0xff, },{0x00,0x00,PCREL8 }}}, -{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL8,0},2, {{0x20,0xff, },{0x00,0x00,PCREL8 }}}, -{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL16,0},3, {{0x30,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{157,'-','!','!','!',O_BPT|O_UNSZ,"bpt",0,{0,0},1, {{0x0b,0xff, }}}, -{158,'-','B','!','!',O_BPL|O_WORD,"bpl.w",1,{PCREL16,0},3, {{0x3a,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{159,'-','B','!','!',O_BPL|O_BYTE,"bpl.b",1,{PCREL8,0},2, {{0x2a,0xff, },{0x00,0x00,PCREL8 }}}, -{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL8,0},2, {{0x2a,0xff, },{0x00,0x00,PCREL8 }}}, -{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL16,0},3, {{0x3a,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, +{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x48,0xf8,RS }}}, +{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xc0,0xf0,IMM4 }}}, +{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}}, +{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x48,0xf8,RS }}}, +{150,'b','E','S','E',O_BSET|O_UNSZ,"bset",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x48,0xf8,RS }}}, +{150,'b','E','I','E',O_BSET|O_UNSZ,"bset",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xc0,0xf0,IMM4 }}}, +{151,'-','B','!','!',O_BRN|O_WORD,"brn.w",1,{PCREL16,0},3, {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{152,'-','B','!','!',O_BRN|O_BYTE,"brn.b",1,{PCREL8,0},2, {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}}, +{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL8,0},2, {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}}, +{153,'-','B','!','!',O_BRN|O_UNSZ,"brn",1,{PCREL16,0},3, {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{154,'-','B','!','!',O_BRA|O_WORD,"bra.w",1,{PCREL16,0},3, {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{155,'-','B','!','!',O_BRA|O_BYTE,"bra.b",1,{PCREL8,0},2, {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}}, +{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL8,0},2, {{0x20,0xff,0 },{0x00,0x00,PCREL8 }}}, +{156,'-','B','!','!',O_BRA|O_UNSZ,"bra",1,{PCREL16,0},3, {{0x30,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{157,'-','!','!','!',O_BPT|O_UNSZ,"bpt",0,{0,0},1, {{0x0b,0xff,0 }}}, +{158,'-','B','!','!',O_BPL|O_WORD,"bpl.w",1,{PCREL16,0},3, {{0x3a,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{159,'-','B','!','!',O_BPL|O_BYTE,"bpl.b",1,{PCREL8,0},2, {{0x2a,0xff,0 },{0x00,0x00,PCREL8 }}}, +{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL8,0},2, {{0x2a,0xff,0 },{0x00,0x00,PCREL8 }}}, +{160,'-','B','!','!',O_BPL|O_UNSZ,"bpl",1,{PCREL16,0},3, {{0x3a,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, {161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x68,0xf8,RS }}}, {161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNINC},2, {{0xc8,0xf8,RN },{0x68,0xf8,RS }}}, {161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RN},2, {{0xa8,0xf8,RN },{0xe0,0xf0,IMM4 }}}, @@ -1279,12 +1279,12 @@ const h8500_opcode_info h8500_table[] {161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNINC},2, {{0xc8,0xf8,RN },{0xe0,0xf0,IMM4 }}}, {161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xe0,0xf0,IMM4 }}}, {161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x68,0xf8,RS }}}, -{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}}, -{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}}, -{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}}, -{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x68,0xf8,RS }}}, -{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x68,0xf8,RS }}}, -{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}}, +{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}}, +{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}}, +{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}}, +{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x68,0xf8,RS }}}, +{161,'b','E','S','E',O_BNOT|O_WORD,"bnot.w",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x68,0xf8,RS }}}, +{161,'b','E','I','E',O_BNOT|O_WORD,"bnot.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}}, {162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RN},2, {{0xa0,0xf8,RN },{0x68,0xf8,RS }}}, {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND},2, {{0xd0,0xf8,RN },{0xe0,0xf0,IMM4 }}}, {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RN},2, {{0xa0,0xf8,RN },{0xe0,0xf0,IMM4 }}}, @@ -1293,14 +1293,14 @@ const h8500_opcode_info h8500_table[] {162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNDEC},2, {{0xb0,0xf8,RN },{0x68,0xf8,RS }}}, {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNDEC},2, {{0xb0,0xf8,RN },{0xe0,0xf0,IMM4 }}}, {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNINC},2, {{0xc0,0xf8,RN },{0xe0,0xf0,IMM4 }}}, -{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}}, +{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}}, {162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xe0,0xf0,IMM4 }}}, {162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x68,0xf8,RS }}}, -{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}}, -{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x68,0xf8,RS }}}, -{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}}, -{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x68,0xf8,RS }}}, -{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}}, +{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}}, +{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x68,0xf8,RS }}}, +{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}}, +{162,'b','E','S','E',O_BNOT|O_BYTE,"bnot.b",2,{RS,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x68,0xf8,RS }}}, +{162,'b','E','I','E',O_BNOT|O_BYTE,"bnot.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}}, {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x68,0xf8,RS }}}, {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND},2, {{0xd8,0xf8,RN },{0x68,0xf8,RS }}}, {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND},2, {{0xd8,0xf8,RN },{0xe0,0xf0,IMM4 }}}, @@ -1309,66 +1309,66 @@ const h8500_opcode_info h8500_table[] {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNDEC},2, {{0xb8,0xf8,RN },{0x68,0xf8,RS }}}, {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNDEC},2, {{0xb8,0xf8,RN },{0xe0,0xf0,IMM4 }}}, {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNINC},2, {{0xc8,0xf8,RN },{0xe0,0xf0,IMM4 }}}, -{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}}, -{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}}, +{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x68,0xf8,RS }}}, +{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xe0,0xf0,IMM4 }}}, {163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x68,0xf8,RS }}}, {163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xe0,0xf0,IMM4 }}}, -{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x68,0xf8,RS }}}, -{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}}, -{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x68,0xf8,RS }}}, -{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xe0,0xf0,IMM4 }}}, -{164,'-','B','!','!',O_BNE|O_WORD,"bne.w",1,{PCREL16,0},3, {{0x36,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{165,'-','B','!','!',O_BNE|O_BYTE,"bne.b",1,{PCREL8,0},2, {{0x26,0xff, },{0x00,0x00,PCREL8 }}}, -{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL8,0},2, {{0x26,0xff, },{0x00,0x00,PCREL8 }}}, -{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL16,0},3, {{0x36,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{167,'-','B','!','!',O_BMI|O_WORD,"bmi.w",1,{PCREL16,0},3, {{0x3b,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{168,'-','B','!','!',O_BMI|O_BYTE,"bmi.b",1,{PCREL8,0},2, {{0x2b,0xff, },{0x00,0x00,PCREL8 }}}, -{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL8,0},2, {{0x2b,0xff, },{0x00,0x00,PCREL8 }}}, -{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL16,0},3, {{0x3b,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{170,'-','B','!','!',O_BLT|O_WORD,"blt.w",1,{PCREL16,0},3, {{0x3d,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{171,'-','B','!','!',O_BLT|O_BYTE,"blt.b",1,{PCREL8,0},2, {{0x2d,0xff, },{0x00,0x00,PCREL8 }}}, -{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL8,0},2, {{0x2d,0xff, },{0x00,0x00,PCREL8 }}}, -{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL16,0},3, {{0x3d,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{173,'-','B','!','!',O_BLS|O_WORD,"bls.w",1,{PCREL16,0},3, {{0x33,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{174,'-','B','!','!',O_BLS|O_BYTE,"bls.b",1,{PCREL8,0},2, {{0x23,0xff, },{0x00,0x00,PCREL8 }}}, -{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL8,0},2, {{0x23,0xff, },{0x00,0x00,PCREL8 }}}, -{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL16,0},3, {{0x33,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{176,'-','B','!','!',O_BLO|O_WORD,"blo.w",1,{PCREL16,0},3, {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{177,'-','B','!','!',O_BLO|O_BYTE,"blo.b",1,{PCREL8,0},2, {{0x25,0xff, },{0x00,0x00,PCREL8 }}}, -{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL8,0},2, {{0x25,0xff, },{0x00,0x00,PCREL8 }}}, -{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL16,0},3, {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{179,'-','B','!','!',O_BLE|O_WORD,"ble.w",1,{PCREL16,0},3, {{0x3f,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{180,'-','B','!','!',O_BLE|O_BYTE,"ble.b",1,{PCREL8,0},2, {{0x2f,0xff, },{0x00,0x00,PCREL8 }}}, -{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL8,0},2, {{0x2f,0xff, },{0x00,0x00,PCREL8 }}}, -{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL16,0},3, {{0x3f,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{182,'-','B','!','!',O_BHS|O_WORD,"bhs.w",1,{PCREL16,0},3, {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{183,'-','B','!','!',O_BHS|O_BYTE,"bhs.b",1,{PCREL8,0},2, {{0x24,0xff, },{0x00,0x00,PCREL8 }}}, -{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL8,0},2, {{0x24,0xff, },{0x00,0x00,PCREL8 }}}, -{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL16,0},3, {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{185,'-','B','!','!',O_BHI|O_WORD,"bhi.w",1,{PCREL16,0},3, {{0x32,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{186,'-','B','!','!',O_BHI|O_BYTE,"bhi.b",1,{PCREL8,0},2, {{0x22,0xff, },{0x00,0x00,PCREL8 }}}, -{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL8,0},2, {{0x22,0xff, },{0x00,0x00,PCREL8 }}}, -{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL16,0},3, {{0x32,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{188,'-','B','!','!',O_BGT|O_WORD,"bgt.w",1,{PCREL16,0},3, {{0x3e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{189,'-','B','!','!',O_BGT|O_BYTE,"bgt.b",1,{PCREL8,0},2, {{0x2e,0xff, },{0x00,0x00,PCREL8 }}}, -{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL8,0},2, {{0x2e,0xff, },{0x00,0x00,PCREL8 }}}, -{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL16,0},3, {{0x3e,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{191,'-','B','!','!',O_BGE|O_WORD,"bge.w",1,{PCREL16,0},3, {{0x3c,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{192,'-','B','!','!',O_BGE|O_BYTE,"bge.b",1,{PCREL8,0},2, {{0x2c,0xff, },{0x00,0x00,PCREL8 }}}, -{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL8,0},2, {{0x2c,0xff, },{0x00,0x00,PCREL8 }}}, -{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL16,0},3, {{0x3c,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{194,'-','B','!','!',O_BF|O_WORD,"bf.w",1,{PCREL16,0},3, {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{195,'-','B','!','!',O_BF|O_BYTE,"bf.b",1,{PCREL8,0},2, {{0x21,0xff, },{0x00,0x00,PCREL8 }}}, -{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL8,0},2, {{0x21,0xff, },{0x00,0x00,PCREL8 }}}, -{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL16,0},3, {{0x31,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{197,'-','B','!','!',O_BEQ|O_WORD,"beq.w",1,{PCREL16,0},3, {{0x37,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{198,'-','B','!','!',O_BEQ|O_BYTE,"beq.b",1,{PCREL8,0},2, {{0x27,0xff, },{0x00,0x00,PCREL8 }}}, -{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL8,0},2, {{0x27,0xff, },{0x00,0x00,PCREL8 }}}, -{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL16,0},3, {{0x37,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{200,'-','B','!','!',O_BCS|O_WORD,"bcs.w",1,{PCREL16,0},3, {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{201,'-','B','!','!',O_BCS|O_BYTE,"bcs.b",1,{PCREL8,0},2, {{0x25,0xff, },{0x00,0x00,PCREL8 }}}, -{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL8,0},2, {{0x25,0xff, },{0x00,0x00,PCREL8 }}}, -{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL16,0},3, {{0x35,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, +{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x68,0xf8,RS }}}, +{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}}, +{163,'b','E','S','E',O_BNOT|O_UNSZ,"bnot",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x68,0xf8,RS }}}, +{163,'b','E','I','E',O_BNOT|O_UNSZ,"bnot",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xe0,0xf0,IMM4 }}}, +{164,'-','B','!','!',O_BNE|O_WORD,"bne.w",1,{PCREL16,0},3, {{0x36,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{165,'-','B','!','!',O_BNE|O_BYTE,"bne.b",1,{PCREL8,0},2, {{0x26,0xff,0 },{0x00,0x00,PCREL8 }}}, +{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL8,0},2, {{0x26,0xff,0 },{0x00,0x00,PCREL8 }}}, +{166,'-','B','!','!',O_BNE|O_UNSZ,"bne",1,{PCREL16,0},3, {{0x36,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{167,'-','B','!','!',O_BMI|O_WORD,"bmi.w",1,{PCREL16,0},3, {{0x3b,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{168,'-','B','!','!',O_BMI|O_BYTE,"bmi.b",1,{PCREL8,0},2, {{0x2b,0xff,0 },{0x00,0x00,PCREL8 }}}, +{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL8,0},2, {{0x2b,0xff,0 },{0x00,0x00,PCREL8 }}}, +{169,'-','B','!','!',O_BMI|O_UNSZ,"bmi",1,{PCREL16,0},3, {{0x3b,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{170,'-','B','!','!',O_BLT|O_WORD,"blt.w",1,{PCREL16,0},3, {{0x3d,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{171,'-','B','!','!',O_BLT|O_BYTE,"blt.b",1,{PCREL8,0},2, {{0x2d,0xff,0 },{0x00,0x00,PCREL8 }}}, +{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL8,0},2, {{0x2d,0xff,0 },{0x00,0x00,PCREL8 }}}, +{172,'-','B','!','!',O_BLT|O_UNSZ,"blt",1,{PCREL16,0},3, {{0x3d,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{173,'-','B','!','!',O_BLS|O_WORD,"bls.w",1,{PCREL16,0},3, {{0x33,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{174,'-','B','!','!',O_BLS|O_BYTE,"bls.b",1,{PCREL8,0},2, {{0x23,0xff,0 },{0x00,0x00,PCREL8 }}}, +{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL8,0},2, {{0x23,0xff,0 },{0x00,0x00,PCREL8 }}}, +{175,'-','B','!','!',O_BLS|O_UNSZ,"bls",1,{PCREL16,0},3, {{0x33,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{176,'-','B','!','!',O_BLO|O_WORD,"blo.w",1,{PCREL16,0},3, {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{177,'-','B','!','!',O_BLO|O_BYTE,"blo.b",1,{PCREL8,0},2, {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}}, +{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL8,0},2, {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}}, +{178,'-','B','!','!',O_BLO|O_UNSZ,"blo",1,{PCREL16,0},3, {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{179,'-','B','!','!',O_BLE|O_WORD,"ble.w",1,{PCREL16,0},3, {{0x3f,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{180,'-','B','!','!',O_BLE|O_BYTE,"ble.b",1,{PCREL8,0},2, {{0x2f,0xff,0 },{0x00,0x00,PCREL8 }}}, +{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL8,0},2, {{0x2f,0xff,0 },{0x00,0x00,PCREL8 }}}, +{181,'-','B','!','!',O_BLE|O_UNSZ,"ble",1,{PCREL16,0},3, {{0x3f,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{182,'-','B','!','!',O_BHS|O_WORD,"bhs.w",1,{PCREL16,0},3, {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{183,'-','B','!','!',O_BHS|O_BYTE,"bhs.b",1,{PCREL8,0},2, {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}}, +{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL8,0},2, {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}}, +{184,'-','B','!','!',O_BHS|O_UNSZ,"bhs",1,{PCREL16,0},3, {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{185,'-','B','!','!',O_BHI|O_WORD,"bhi.w",1,{PCREL16,0},3, {{0x32,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{186,'-','B','!','!',O_BHI|O_BYTE,"bhi.b",1,{PCREL8,0},2, {{0x22,0xff,0 },{0x00,0x00,PCREL8 }}}, +{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL8,0},2, {{0x22,0xff,0 },{0x00,0x00,PCREL8 }}}, +{187,'-','B','!','!',O_BHI|O_UNSZ,"bhi",1,{PCREL16,0},3, {{0x32,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{188,'-','B','!','!',O_BGT|O_WORD,"bgt.w",1,{PCREL16,0},3, {{0x3e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{189,'-','B','!','!',O_BGT|O_BYTE,"bgt.b",1,{PCREL8,0},2, {{0x2e,0xff,0 },{0x00,0x00,PCREL8 }}}, +{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL8,0},2, {{0x2e,0xff,0 },{0x00,0x00,PCREL8 }}}, +{190,'-','B','!','!',O_BGT|O_UNSZ,"bgt",1,{PCREL16,0},3, {{0x3e,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{191,'-','B','!','!',O_BGE|O_WORD,"bge.w",1,{PCREL16,0},3, {{0x3c,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{192,'-','B','!','!',O_BGE|O_BYTE,"bge.b",1,{PCREL8,0},2, {{0x2c,0xff,0 },{0x00,0x00,PCREL8 }}}, +{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL8,0},2, {{0x2c,0xff,0 },{0x00,0x00,PCREL8 }}}, +{193,'-','B','!','!',O_BGE|O_UNSZ,"bge",1,{PCREL16,0},3, {{0x3c,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{194,'-','B','!','!',O_BF|O_WORD,"bf.w",1,{PCREL16,0},3, {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{195,'-','B','!','!',O_BF|O_BYTE,"bf.b",1,{PCREL8,0},2, {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}}, +{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL8,0},2, {{0x21,0xff,0 },{0x00,0x00,PCREL8 }}}, +{196,'-','B','!','!',O_BF|O_UNSZ,"bf",1,{PCREL16,0},3, {{0x31,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{197,'-','B','!','!',O_BEQ|O_WORD,"beq.w",1,{PCREL16,0},3, {{0x37,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{198,'-','B','!','!',O_BEQ|O_BYTE,"beq.b",1,{PCREL8,0},2, {{0x27,0xff,0 },{0x00,0x00,PCREL8 }}}, +{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL8,0},2, {{0x27,0xff,0 },{0x00,0x00,PCREL8 }}}, +{199,'-','B','!','!',O_BEQ|O_UNSZ,"beq",1,{PCREL16,0},3, {{0x37,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{200,'-','B','!','!',O_BCS|O_WORD,"bcs.w",1,{PCREL16,0},3, {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{201,'-','B','!','!',O_BCS|O_BYTE,"bcs.b",1,{PCREL8,0},2, {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}}, +{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL8,0},2, {{0x25,0xff,0 },{0x00,0x00,PCREL8 }}}, +{202,'-','B','!','!',O_BCS|O_UNSZ,"bcs",1,{PCREL16,0},3, {{0x35,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, {203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x58,0xf8,RS }}}, {203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNDEC},2, {{0xb8,0xf8,RN },{0x58,0xf8,RS }}}, {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNDEC},2, {{0xb8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, @@ -1377,14 +1377,14 @@ const h8500_opcode_info h8500_table[] {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNINC},2, {{0xc8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RN},2, {{0xa8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND},2, {{0xd8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, -{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}}, +{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}}, {203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x58,0xf8,RS }}}, -{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}}, +{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}}, {203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xd0,0xf0,IMM4 }}}, -{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x58,0xf8,RS }}}, -{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x58,0xf8,RS }}}, -{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}}, -{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}}, +{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x58,0xf8,RS }}}, +{203,'b','E','S','E',O_BCLR|O_WORD,"bclr.w",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x58,0xf8,RS }}}, +{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}}, +{203,'b','E','I','E',O_BCLR|O_WORD,"bclr.w",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}}, {204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RN},2, {{0xa0,0xf8,RN },{0x58,0xf8,RS }}}, {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RN},2, {{0xa0,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND},2, {{0xd0,0xf8,RN },{0xd0,0xf0,IMM4 }}}, @@ -1394,13 +1394,13 @@ const h8500_opcode_info h8500_table[] {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNINC},2, {{0xc0,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNDEC},2, {{0xb0,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x58,0xf8,RS }}}, -{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}}, -{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}}, +{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}}, +{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}}, {204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xd0,0xf0,IMM4 }}}, -{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}}, -{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x58,0xf8,RS }}}, -{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x58,0xf8,RS }}}, -{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}}, +{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}}, +{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x58,0xf8,RS }}}, +{204,'b','E','S','E',O_BCLR|O_BYTE,"bclr.b",2,{RS,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x58,0xf8,RS }}}, +{204,'b','E','I','E',O_BCLR|O_BYTE,"bclr.b",2,{IMM4,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}}, {205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RN},2, {{0xa8,0xf8,RN },{0x58,0xf8,RS }}}, {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNDEC},2, {{0xb8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNINC},2, {{0xc8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, @@ -1410,153 +1410,153 @@ const h8500_opcode_info h8500_table[] {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND},2, {{0xd8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RN},2, {{0xa8,0xf8,RN },{0xd0,0xf0,IMM4 }}}, {205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x58,0xf8,RS }}}, -{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}}, -{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}}, +{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xd0,0xf0,IMM4 }}}, +{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x58,0xf8,RS }}}, {205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xd0,0xf0,IMM4 }}}, -{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}}, -{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x58,0xf8,RS }}}, -{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x58,0xf8,RS }}}, -{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xd0,0xf0,IMM4 }}}, -{206,'-','B','!','!',O_BCC|O_WORD,"bcc.w",1,{PCREL16,0},3, {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{207,'-','B','!','!',O_BCC|O_BYTE,"bcc.b",1,{PCREL8,0},2, {{0x24,0xff, },{0x00,0x00,PCREL8 }}}, -{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL8,0},2, {{0x24,0xff, },{0x00,0x00,PCREL8 }}}, -{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL16,0},3, {{0x34,0xff, },{0x00,0x00,PCREL16 },{0x00,0x00, }}}, -{209,'s','I','S','S',O_ANDC|O_WORD,"andc.w",2,{IMM16,CRW},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x58,0xf8,CRW }}}, -{210,'s','I','S','S',O_ANDC|O_BYTE,"andc.b",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}}, -{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM8,CRB},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}}, -{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM16,CRW},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x58,0xf8,CRW }}}, +{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}}, +{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x58,0xf8,RS }}}, +{205,'b','E','S','E',O_BCLR|O_UNSZ,"bclr",2,{RS,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x58,0xf8,RS }}}, +{205,'b','E','I','E',O_BCLR|O_UNSZ,"bclr",2,{IMM4,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xd0,0xf0,IMM4 }}}, +{206,'-','B','!','!',O_BCC|O_WORD,"bcc.w",1,{PCREL16,0},3, {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{207,'-','B','!','!',O_BCC|O_BYTE,"bcc.b",1,{PCREL8,0},2, {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}}, +{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL8,0},2, {{0x24,0xff,0 },{0x00,0x00,PCREL8 }}}, +{208,'-','B','!','!',O_BCC|O_UNSZ,"bcc",1,{PCREL16,0},3, {{0x34,0xff,0 },{0x00,0x00,PCREL16 },{0x00,0x00,0 }}}, +{209,'s','I','S','S',O_ANDC|O_WORD,"andc.w",2,{IMM16,CRW},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x58,0xf8,CRW }}}, +{210,'s','I','S','S',O_ANDC|O_BYTE,"andc.b",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}}, +{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM8,CRB},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x58,0xf8,CRB }}}, +{211,'s','I','S','S',O_ANDC|O_UNSZ,"andc",2,{IMM16,CRW},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x58,0xf8,CRW }}}, {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x50,0xf8,RD }}}, {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x50,0xf8,RD }}}, {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x50,0xf8,RD }}}, {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x50,0xf8,RD }}}, -{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}}, +{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}}, {212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x50,0xf8,RD }}}, -{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x50,0xf8,RD }}}, -{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x50,0xf8,RD }}}, -{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x50,0xf8,RD }}}, +{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, +{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, +{212,'m','E','D','D',O_AND|O_WORD,"and.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x50,0xf8,RD }}}, {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x50,0xf8,RD }}}, {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x50,0xf8,RD }}}, {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x50,0xf8,RD }}}, -{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}}, -{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x50,0xf8,RD }}}, +{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}}, +{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x50,0xf8,RD }}}, {213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x50,0xf8,RD }}}, -{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x50,0xf8,RD }}}, -{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x50,0xf8,RD }}}, +{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, +{213,'m','E','D','D',O_AND|O_BYTE,"and.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x50,0xf8,RD }}}, {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x50,0xf8,RD }}}, {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x50,0xf8,RD }}}, {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x50,0xf8,RD }}}, -{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}}, +{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x50,0xf8,RD }}}, {214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x50,0xf8,RD }}}, -{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x50,0xf8,RD }}}, -{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x50,0xf8,RD }}}, -{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x50,0xf8,RD }}}, +{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, +{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, +{214,'m','E','D','D',O_AND|O_UNSZ,"and",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x50,0xf8,RD }}}, {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xa0,0xf8,RD }}}, {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xa0,0xf8,RD }}}, {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xa0,0xf8,RD }}}, {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xa0,0xf8,RD }}}, -{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}}, +{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}}, {215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa0,0xf8,RD }}}, -{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, -{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, -{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, +{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, +{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, +{215,'a','E','D','D',O_ADDX|O_WORD,"addx.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0xa0,0xf8,RD }}}, {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0xa0,0xf8,RD }}}, {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0xa0,0xf8,RD }}}, {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0xa0,0xf8,RD }}}, -{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0xa0,0xf8,RD }}}, -{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}}, +{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0xa0,0xf8,RD }}}, +{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}}, {216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0xa0,0xf8,RD }}}, -{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, -{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, +{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, +{216,'a','E','D','D',O_ADDX|O_BYTE,"addx.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RN,RD},2, {{0xa8,0xf8,RN },{0xa0,0xf8,RD }}}, {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0xa0,0xf8,RD }}}, {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0xa0,0xf8,RD }}}, {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0xa0,0xf8,RD }}}, -{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}}, +{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0xa0,0xf8,RD }}}, {217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0xa0,0xf8,RD }}}, -{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, -{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, -{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0xa0,0xf8,RD }}}, +{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, +{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, +{217,'a','E','D','D',O_ADDX|O_UNSZ,"addx",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0xa0,0xf8,RD }}}, {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x28,0xf8,RD }}}, {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x28,0xf8,RD }}}, {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x28,0xf8,RD }}}, {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x28,0xf8,RD }}}, -{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}}, +{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}}, {218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x28,0xf8,RD }}}, -{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x28,0xf8,RD }}}, -{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x28,0xf8,RD }}}, -{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x28,0xf8,RD }}}, +{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, +{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, +{218,'-','E','D','D',O_ADDS|O_WORD,"adds.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x28,0xf8,RD }}}, {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x28,0xf8,RD }}}, {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x28,0xf8,RD }}}, {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x28,0xf8,RD }}}, -{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}}, -{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x28,0xf8,RD }}}, +{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}}, +{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x28,0xf8,RD }}}, {219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x28,0xf8,RD }}}, -{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x28,0xf8,RD }}}, -{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x28,0xf8,RD }}}, +{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, +{219,'-','E','D','D',O_ADDS|O_BYTE,"adds.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x28,0xf8,RD }}}, {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x28,0xf8,RD }}}, {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x28,0xf8,RD }}}, {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x28,0xf8,RD }}}, -{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}}, +{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x28,0xf8,RD }}}, {220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x28,0xf8,RD }}}, -{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x28,0xf8,RD }}}, -{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x28,0xf8,RD }}}, -{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x28,0xf8,RD }}}, +{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, +{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, +{220,'-','E','D','D',O_ADDS|O_UNSZ,"adds",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x28,0xf8,RD }}}, {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RN},2, {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}}, {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNINC},2, {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}}, {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNDEC},2, {{0xb8,0xf8,RN },{0x08,0xf8,QIM }}}, {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND},2, {{0xd8,0xf8,RN },{0x08,0xf8,QIM }}}, -{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, +{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, {221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}}, -{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, +{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{221,'a','I','E','E',O_ADD|O_WORD,"add:q.w",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RN},2, {{0xa0,0xf8,RN },{0x08,0xf8,QIM }}}, {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNINC},2, {{0xc0,0xf8,RN },{0x08,0xf8,QIM }}}, {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNDEC},2, {{0xb0,0xf8,RN },{0x08,0xf8,QIM }}}, {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND},2, {{0xd0,0xf8,RN },{0x08,0xf8,QIM }}}, -{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, +{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, {222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}}, -{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, +{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{222,'a','I','E','E',O_ADD|O_BYTE,"add:q.b",2,{QIM,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RN},2, {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}}, {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNDEC},2, {{0xb8,0xf8,RN },{0x08,0xf8,QIM }}}, {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNINC},2, {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}}, {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND},2, {{0xd8,0xf8,RN },{0x08,0xf8,QIM }}}, -{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, +{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, {223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}}, -{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, +{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{223,'a','I','E','E',O_ADD|O_UNSZ,"add:q",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x20,0xf8,RD }}}, {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x20,0xf8,RD }}}, {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x20,0xf8,RD }}}, {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x20,0xf8,RD }}}, -{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, +{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, {224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}}, -{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}}, +{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{224,'a','E','D','D',O_ADD|O_WORD,"add:g.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x20,0xf8,RD }}}, {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNDEC,RD},2, {{0xb0,0xf8,RN },{0x20,0xf8,RD }}}, {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNINC,RD},2, {{0xc0,0xf8,RN },{0x20,0xf8,RD }}}, {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x20,0xf8,RD }}}, -{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, +{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, {225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}}, -{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}}, -{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}}, +{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}}, +{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{225,'a','E','D','D',O_ADD|O_BYTE,"add:g.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x20,0xf8,RD }}}, {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNDEC,RD},2, {{0xb8,0xf8,RN },{0x20,0xf8,RD }}}, {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x20,0xf8,RD }}}, {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x20,0xf8,RD }}}, -{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, +{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, {226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}}, -{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}}, +{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{226,'a','E','D','D',O_ADD|O_UNSZ,"add:g",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x20,0xf8,RD }}}, {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RN},2, {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}}, {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND},2, {{0xd8,0xf8,RN },{0x08,0xf8,QIM }}}, @@ -1565,15 +1565,15 @@ const h8500_opcode_info h8500_table[] {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNINC},2, {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}}, {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x20,0xf8,RD }}}, {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x20,0xf8,RD }}}, -{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, +{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, {227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}}, -{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, +{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, {227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}}, -{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}}, +{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{227,'a','I','E','E',O_ADD|O_WORD,"add.w",2,{QIM,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{227,'a','E','D','D',O_ADD|O_WORD,"add.w",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, {228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RN,RD},2, {{0xa0,0xf8,RN },{0x20,0xf8,RD }}}, {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RN},2, {{0xa0,0xf8,RN },{0x08,0xf8,QIM }}}, {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNINC},2, {{0xc0,0xf8,RN },{0x08,0xf8,QIM }}}, @@ -1583,14 +1583,14 @@ const h8500_opcode_info h8500_table[] {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNDEC},2, {{0xb0,0xf8,RN },{0x08,0xf8,QIM }}}, {228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND,RD},2, {{0xd0,0xf8,RN },{0x20,0xf8,RD }}}, {228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNIND_D8},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}}, -{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{IMM8,RD},3, {{0x04,0xff, },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}}, -{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS8},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, -{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS8,RD},3, {{0x05,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, +{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{IMM8,RD},3, {{0x04,0xff,0 },{0x00,0x00,IMM8 },{0x20,0xf8,RD }}}, +{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS8},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, +{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS8,RD},3, {{0x05,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, {228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND_D8,RD},3, {{0xe0,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}}, -{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS16},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS16,RD},4, {{0x15,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}}, +{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,RNIND_D16},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{228,'a','I','E','E',O_ADD|O_BYTE,"add.b",2,{QIM,ABS16},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{ABS16,RD},4, {{0x15,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{228,'a','E','D','D',O_ADD|O_BYTE,"add.b",2,{RNIND_D16,RD},4, {{0xf0,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RN,RD},2, {{0xa8,0xf8,RN },{0x20,0xf8,RD }}}, {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RN},2, {{0xa8,0xf8,RN },{0x08,0xf8,QIM }}}, {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNDEC},2, {{0xb8,0xf8,RN },{0x08,0xf8,QIM }}}, @@ -1599,16 +1599,17 @@ const h8500_opcode_info h8500_table[] {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNINC},2, {{0xc8,0xf8,RN },{0x08,0xf8,QIM }}}, {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNINC,RD},2, {{0xc8,0xf8,RN },{0x20,0xf8,RD }}}, {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND,RD},2, {{0xd8,0xf8,RN },{0x20,0xf8,RD }}}, -{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS8},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, +{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS8},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x08,0xf8,QIM }}}, {229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNIND_D8},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x08,0xf8,QIM }}}, {229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND_D8,RD},3, {{0xe8,0xf8,RN },{0x00,0x00,DISP8 },{0x20,0xf8,RD }}}, -{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS8,RD},3, {{0x0d,0xff, },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, -{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS16,RD},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{IMM16,RD},4, {{0x0c,0xff, },{0x00,0x00,IMM16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS16},4, {{0x1d,0xff, },{0x00,0x00,ABS16 },{0x00,0x00, },{0x08,0xf8,QIM }}}, -{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00, },{0x20,0xf8,RD }}}, -0,0,0} +{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS8,RD},3, {{0x0d,0xff,0 },{0x00,0x00,ABS8 },{0x20,0xf8,RD }}}, +{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{ABS16,RD},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,RNIND_D16},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{IMM16,RD},4, {{0x0c,0xff,0 },{0x00,0x00,IMM16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{229,'a','I','E','E',O_ADD|O_UNSZ,"add",2,{QIM,ABS16},4, {{0x1d,0xff,0 },{0x00,0x00,ABS16 },{0x00,0x00,0 },{0x08,0xf8,QIM }}}, +{229,'a','E','D','D',O_ADD|O_UNSZ,"add",2,{RNIND_D16,RD},4, {{0xf8,0xf8,RN },{0x00,0x00,DISP16 },{0x00,0x00,0 },{0x20,0xf8,RD }}}, +{0,0,0,0,0,0,0,0,{0,0},0,{{0,0,0}}} +} #endif ; #endif diff -uprN binutils-2.13.90.0.16/opcodes/ia64-asmtab.c binutils-2.13.90.0.18/opcodes/ia64-asmtab.c --- binutils-2.13.90.0.16/opcodes/ia64-asmtab.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-asmtab.c Mon Dec 16 12:22:53 2002 @@ -2,36 +2,36 @@ static const char * const ia64_strings[] = { "", "0", "1", "a", "acq", "add", "addl", "addp4", "adds", "alloc", "and", "andcm", "b", "bias", "br", "break", "brl", "brp", "bsw", "c", "call", - "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmpxchg1", - "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop", "czx1", - "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl", "exit", - "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand", "fandcm", - "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt", "fetchadd4", - "fetchadd8", "few", "fill", "flushrs", "fma", "fmax", "fmerge", "fmin", - "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma", "fnmpy", "fnorm", "for", - "fpabs", "fpack", "fpamax", "fpamin", "fpcmp", "fpcvt", "fpma", "fpmax", - "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg", "fpnegabs", "fpnma", - "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta", "fselect", "fsetc", - "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu", "g", "ga", "ge", - "getf", "geu", "gt", "gtu", "h", "hu", "i", "ia", "imp", "invala", "itc", - "itr", "l", "ld1", "ld2", "ld4", "ld8", "ldf", "ldf8", "ldfd", "ldfe", - "ldfp8", "ldfpd", "ldfps", "ldfs", "le", "leu", "lfetch", "loadrs", - "loop", "lr", "lt", "ltu", "lu", "m", "many", "mf", "mix1", "mix2", - "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne", "neq", "nge", "ngt", - "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1", "nt2", "nta", "nz", - "or", "orcm", "ord", "pack2", "pack4", "padd1", "padd2", "padd4", "pavg1", - "pavg2", "pavgsub1", "pavgsub2", "pcmp1", "pcmp2", "pcmp4", "pmax1", - "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2", "popcnt", "pr", "probe", - "psad1", "pshl2", "pshl4", "pshladd2", "pshr2", "pshr4", "pshradd2", - "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz", "rel", "ret", "rfi", - "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3", "sa", "se", "setf", - "shl", "shladd", "shladdp4", "shr", "shrp", "sig", "spill", "spnt", - "sptk", "srlz", "ssm", "sss", "st1", "st2", "st4", "st8", "stf", "stf8", - "stfd", "stfe", "stfs", "sub", "sum", "sxt1", "sxt2", "sxt4", "sync", - "tak", "tbit", "thash", "tnat", "tpa", "trunc", "ttag", "u", "unc", - "unord", "unpack1", "unpack2", "unpack4", "uss", "uus", "uuu", "w", - "wexit", "wtop", "x", "xchg1", "xchg2", "xchg4", "xchg8", "xf", "xma", - "xmpy", "xor", "xuf", "z", "zxt1", "zxt2", "zxt4", + "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmp8xchg16", + "cmpxchg1", "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop", + "czx1", "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl", + "exit", "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand", + "fandcm", "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt", + "fetchadd4", "fetchadd8", "few", "fill", "flushrs", "fma", "fmax", + "fmerge", "fmin", "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma", + "fnmpy", "fnorm", "for", "fpabs", "fpack", "fpamax", "fpamin", "fpcmp", + "fpcvt", "fpma", "fpmax", "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg", + "fpnegabs", "fpnma", "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta", + "fselect", "fsetc", "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu", + "g", "ga", "ge", "getf", "geu", "gt", "gtu", "h", "hint", "hu", "i", "ia", + "imp", "invala", "itc", "itr", "l", "ld1", "ld16", "ld2", "ld4", "ld8", + "ldf", "ldf8", "ldfd", "ldfe", "ldfp8", "ldfpd", "ldfps", "ldfs", "le", + "leu", "lfetch", "loadrs", "loop", "lr", "lt", "ltu", "lu", "m", "many", + "mf", "mix1", "mix2", "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne", + "neq", "nge", "ngt", "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1", + "nt2", "nta", "nz", "or", "orcm", "ord", "pack2", "pack4", "padd1", + "padd2", "padd4", "pavg1", "pavg2", "pavgsub1", "pavgsub2", "pcmp1", + "pcmp2", "pcmp4", "pmax1", "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2", + "popcnt", "pr", "probe", "psad1", "pshl2", "pshl4", "pshladd2", "pshr2", + "pshr4", "pshradd2", "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz", + "rel", "ret", "rfi", "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3", + "sa", "se", "setf", "shl", "shladd", "shladdp4", "shr", "shrp", "sig", + "spill", "spnt", "sptk", "srlz", "ssm", "sss", "st1", "st16", "st2", + "st4", "st8", "stf", "stf8", "stfd", "stfe", "stfs", "sub", "sum", "sxt1", + "sxt2", "sxt4", "sync", "tak", "tbit", "thash", "tnat", "tpa", "trunc", + "ttag", "u", "unc", "unord", "unpack1", "unpack2", "unpack4", "uss", + "uus", "uuu", "w", "wexit", "wtop", "x", "xchg1", "xchg2", "xchg4", + "xchg8", "xf", "xma", "xmpy", "xor", "xuf", "z", "zxt1", "zxt2", "zxt4", }; static const struct ia64_dependency @@ -39,8 +39,14 @@ dependencies[] = { { "ALAT", 0, 0, 0, -1, NULL, }, { "AR[BSP]", 26, 0, 2, 17, NULL, }, { "AR[BSPSTORE]", 26, 0, 2, 18, NULL, }, + { "AR[CFLG]", 26, 0, 2, 27, NULL, }, { "AR[CCV]", 26, 0, 2, 32, NULL, }, + { "AR[CSD]", 26, 0, 2, 25, NULL, }, { "AR[EC]", 26, 0, 2, 66, NULL, }, + { "AR[EFLAG]", 26, 0, 2, 24, NULL, }, + { "AR[FCR]", 26, 0, 2, 21, NULL, }, + { "AR[FDR]", 26, 0, 2, 30, NULL, }, + { "AR[FIR]", 26, 0, 2, 29, NULL, }, { "AR[FPSR].sf0.controls", 30, 0, 2, -1, NULL, }, { "AR[FPSR].sf1.controls", 30, 0, 2, -1, NULL, }, { "AR[FPSR].sf2.controls", 30, 0, 2, -1, NULL, }, @@ -51,6 +57,7 @@ dependencies[] = { { "AR[FPSR].sf3.flags", 30, 0, 2, -1, NULL, }, { "AR[FPSR].traps", 30, 0, 2, -1, NULL, }, { "AR[FPSR].rv", 30, 0, 2, -1, NULL, }, + { "AR[FSR]", 26, 0, 2, 28, NULL, }, { "AR[ITC]", 26, 0, 2, 44, NULL, }, { "AR[K%], % in 0 - 7", 1, 0, 2, -1, NULL, }, { "AR[LC]", 26, 0, 2, 65, NULL, }, @@ -59,6 +66,7 @@ dependencies[] = { { "AR[PFS]", 26, 0, 0, 64, NULL, }, { "AR[RNAT]", 26, 0, 2, 19, NULL, }, { "AR[RSC]", 26, 0, 2, 16, NULL, }, + { "AR[SSD]", 26, 0, 2, 26, NULL, }, { "AR[UNAT]{%}, % in 0 - 63", 2, 0, 2, -1, NULL, }, { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 0, 0, -1, NULL, }, { "AR%, % in 48-63, 112-127", 4, 0, 2, -1, NULL, }, @@ -213,7 +221,13 @@ dependencies[] = { { "AR[BSP]", 26, 1, 2, 17, NULL, }, { "AR[BSPSTORE]", 26, 1, 2, 18, NULL, }, { "AR[CCV]", 26, 1, 2, 32, NULL, }, + { "AR[CFLG]", 26, 1, 2, 27, NULL, }, + { "AR[CSD]", 26, 1, 2, 25, NULL, }, { "AR[EC]", 26, 1, 2, 66, NULL, }, + { "AR[EFLAG]", 26, 1, 2, 24, NULL, }, + { "AR[FCR]", 26, 1, 2, 21, NULL, }, + { "AR[FDR]", 26, 1, 2, 30, NULL, }, + { "AR[FIR]", 26, 1, 2, 29, NULL, }, { "AR[FPSR].sf0.controls", 30, 1, 2, -1, NULL, }, { "AR[FPSR].sf1.controls", 30, 1, 2, -1, NULL, }, { "AR[FPSR].sf2.controls", 30, 1, 2, -1, NULL, }, @@ -232,6 +246,7 @@ dependencies[] = { { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, }, { "AR[FPSR].rv", 30, 1, 2, -1, NULL, }, { "AR[FPSR].traps", 30, 1, 2, -1, NULL, }, + { "AR[FSR]", 26, 1, 2, 28, NULL, }, { "AR[ITC]", 26, 1, 2, 44, NULL, }, { "AR[K%], % in 0 - 7", 1, 1, 2, -1, NULL, }, { "AR[LC]", 26, 1, 2, 65, NULL, }, @@ -356,1180 +371,1217 @@ dependencies[] = { }; static const short dep0[] = { - 88, 252, 2131, 2297, + 96, 267, 2139, 2312, }; static const short dep1[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, 4127, - 20605, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135, + 20613, }; static const short dep2[] = { - 88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2317, 2318, 2321, - 2322, 2325, 2326, + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2332, 2333, 2336, + 2337, 2340, 2341, }; static const short dep3[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2317, - 2318, 2321, 2322, 2325, 2326, 4127, 20605, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2332, + 2333, 2336, 2337, 2340, 2341, 4135, 20613, }; static const short dep4[] = { - 88, 252, 22637, 22638, 22640, 22641, 22643, 22644, 22646, 22794, 22797, 22798, - 22801, 22802, 22805, 22806, + 96, 267, 22645, 22646, 22648, 22649, 22651, 22652, 22654, 22809, 22812, 22813, + 22816, 22817, 22820, 22821, }; static const short dep5[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, - 22794, 22797, 22798, 22801, 22802, 22805, 22806, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, + 22809, 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep6[] = { - 88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2315, 2317, 2319, - 2321, 2323, 2325, + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2332, 2334, + 2336, 2338, 2340, }; static const short dep7[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2315, - 2318, 2319, 2322, 2323, 2326, 4127, 20605, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330, + 2333, 2334, 2337, 2338, 2341, 4135, 20613, }; static const short dep8[] = { - 88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2316, 2318, 2320, - 2322, 2324, 2326, + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2331, 2333, 2335, + 2337, 2339, 2341, }; static const short dep9[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2316, - 2317, 2320, 2321, 2324, 2325, 4127, 20605, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2331, + 2332, 2335, 2336, 2339, 2340, 4135, 20613, }; static const short dep10[] = { - 88, 252, 2157, 2158, 2160, 2161, 2163, 2164, 2166, 2314, 2315, 2316, 2317, - 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2331, 2332, + 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, }; static const short dep11[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2314, 2315, - 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 4127, 20605, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330, + 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 4135, 20613, }; static const short dep12[] = { - 88, 252, 2364, + 96, 267, 2379, }; static const short dep13[] = { - 32, 33, 88, 148, 166, 167, 252, 2074, 2075, 2157, 2159, 2160, 2162, 2163, - 2165, 2166, 4127, + 40, 41, 96, 156, 174, 175, 267, 2082, 2083, 2165, 2167, 2168, 2170, 2171, + 2173, 2174, 4135, }; static const short dep14[] = { - 88, 147, 252, 295, 2364, 28844, 28987, + 96, 155, 267, 310, 2379, 28852, 29002, }; static const short dep15[] = { - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, - 23, 24, 25, 32, 33, 88, 136, 148, 166, 167, 252, 295, 2074, 2075, 2157, 2159, - 2160, 2162, 2163, 2165, 2166, 4127, 28844, 28987, + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 40, 41, 96, 144, 156, 174, 175, + 267, 310, 2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852, + 29002, }; static const short dep16[] = { - 1, 4, 32, 88, 126, 174, 177, 211, 252, 282, 2364, 28844, 28987, + 1, 6, 40, 96, 134, 182, 187, 226, 267, 297, 2379, 28852, 29002, }; static const short dep17[] = { - 1, 18, 20, 30, 32, 33, 88, 148, 150, 151, 166, 167, 174, 177, 211, 252, 282, - 2074, 2075, 2157, 2159, 2160, 2162, 2163, 2165, 2166, 4127, 28844, 28987, + 1, 25, 27, 38, 40, 41, 96, 156, 158, 159, 174, 175, 182, 187, 226, 267, 297, + 2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852, 29002, }; static const short dep18[] = { - 1, 32, 43, 88, 174, 211, 218, 252, 28844, 28987, + 1, 40, 51, 96, 182, 226, 233, 267, 28852, 29002, }; static const short dep19[] = { - 1, 30, 32, 33, 88, 145, 166, 174, 211, 218, 252, 4127, 28844, 28987, + 1, 38, 40, 41, 96, 153, 174, 182, 226, 233, 267, 4135, 28852, 29002, }; static const short dep20[] = { - 32, 88, 211, 252, + 40, 96, 226, 267, }; static const short dep21[] = { - 88, 166, 211, 252, + 96, 174, 226, 267, }; static const short dep22[] = { - 1, 32, 88, 120, 121, 123, 124, 125, 126, 127, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 151, 152, 153, - 154, 155, 156, 157, 158, 161, 162, 163, 164, 165, 166, 167, 168, 169, 174, - 211, 252, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 300, 301, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 28844, 28987, + 1, 40, 96, 128, 129, 131, 132, 133, 134, 135, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161, + 162, 163, 164, 165, 166, 169, 170, 171, 172, 173, 174, 175, 176, 177, 182, + 226, 267, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 28852, 29002, }; static const short dep23[] = { - 1, 30, 32, 33, 42, 43, 47, 50, 64, 88, 126, 166, 174, 211, 252, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 300, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 4127, 28844, 28987, + 1, 38, 40, 41, 50, 51, 55, 58, 72, 96, 134, 174, 182, 226, 267, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 4135, 28852, 29002, }; static const short dep24[] = { - 88, 125, 252, 281, + 96, 133, 267, 296, }; static const short dep25[] = { - 88, 126, 166, 252, 281, + 96, 134, 174, 267, 296, }; static const short dep26[] = { - 88, 126, 252, 282, + 96, 134, 267, 297, }; static const short dep27[] = { - 18, 19, 88, 89, 92, 96, 99, 126, 148, 166, 252, 282, + 25, 26, 96, 97, 100, 104, 107, 134, 156, 174, 267, 297, }; static const short dep28[] = { - 32, 33, 88, 166, 252, 2157, 2159, 2160, 2162, 2163, 2165, 2166, 4127, + 40, 41, 96, 174, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, }; static const short dep29[] = { - 1, 18, 32, 88, 174, 199, 200, 211, 252, 2074, 2255, 2258, 2364, 28844, 28987, + 1, 25, 40, 96, 182, 214, 215, 226, 267, 2082, 2270, 2273, 2379, 28852, 29002, }; static const short dep30[] = { - 1, 4, 30, 32, 33, 88, 126, 148, 166, 167, 174, 199, 201, 211, 252, 2074, 2075, - 2157, 2159, 2160, 2162, 2163, 2165, 2166, 2256, 2258, 4127, 28844, 28987, + 1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2082, 2083, + 2165, 2167, 2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002, }; static const short dep31[] = { - 88, 252, + 96, 267, }; static const short dep32[] = { - 88, 166, 252, 2074, 2076, + 96, 174, 267, 2082, 2084, }; static const short dep33[] = { - 32, 33, 88, 148, 166, 167, 252, 2157, 2159, 2160, 2162, 2163, 2165, 2166, - 4127, + 40, 41, 96, 156, 174, 175, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174, + 4135, }; static const short dep34[] = { - 4, 29, 30, 31, 88, 116, 117, 177, 211, 252, 277, 278, 2364, + 6, 37, 38, 39, 96, 124, 125, 187, 226, 267, 292, 293, 2379, }; static const short dep35[] = { - 4, 29, 32, 33, 88, 148, 166, 167, 177, 211, 252, 277, 278, 316, 2157, 2159, - 2160, 2162, 2163, 2165, 2166, 4127, + 6, 37, 40, 41, 96, 156, 174, 175, 187, 226, 267, 292, 293, 331, 2165, 2167, + 2168, 2170, 2171, 2173, 2174, 4135, }; static const short dep36[] = { - 17, 88, 198, 252, 2364, + 24, 96, 213, 267, 2379, }; static const short dep37[] = { - 17, 32, 33, 88, 148, 166, 167, 198, 252, 2157, 2159, 2160, 2162, 2163, 2165, - 2166, 4127, + 24, 40, 41, 96, 156, 174, 175, 213, 267, 2165, 2167, 2168, 2170, 2171, 2173, + 2174, 4135, }; static const short dep38[] = { - 4, 17, 29, 30, 31, 88, 116, 117, 177, 198, 211, 252, 277, 278, 2364, + 6, 24, 37, 38, 39, 96, 124, 125, 187, 213, 226, 267, 292, 293, 2379, }; static const short dep39[] = { - 4, 17, 29, 32, 33, 88, 148, 166, 167, 177, 198, 211, 252, 277, 278, 316, 2157, - 2159, 2160, 2162, 2163, 2165, 2166, 4127, + 6, 24, 37, 40, 41, 96, 156, 174, 175, 187, 213, 226, 267, 292, 293, 331, 2165, + 2167, 2168, 2170, 2171, 2173, 2174, 4135, }; static const short dep40[] = { - 1, 4, 30, 32, 33, 88, 126, 148, 166, 167, 174, 199, 201, 211, 252, 2157, 2159, - 2160, 2162, 2163, 2165, 2166, 2256, 2258, 4127, 28844, 28987, + 1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2165, 2167, + 2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002, }; static const short dep41[] = { - 88, 166, 252, + 96, 174, 267, }; static const short dep42[] = { - 9, 88, 182, 183, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, - 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801, - 22802, 22805, 22806, + 15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, + 22817, 22820, 22821, }; static const short dep43[] = { - 5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797, - 22798, 22801, 22802, 22805, 22806, + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812, + 22813, 22816, 22817, 22820, 22821, }; static const short dep44[] = { - 9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 2127, 2295, - 18585, 18586, 18731, 18732, 18734, 18735, 22637, 22638, 22639, 22641, 22642, - 22644, 22645, 22794, 22797, 22798, 22801, 22802, 22805, 22806, + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310, + 18593, 18594, 18746, 18747, 18749, 18750, 22645, 22646, 22647, 22649, 22650, + 22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep45[] = { - 5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193, - 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295, 4127, 16516, 16518, 18731, - 18733, 18734, 18736, 22794, 22797, 22798, 22801, 22802, 22805, 22806, + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205, + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526, + 18746, 18748, 18749, 18751, 22809, 22812, 22813, 22816, 22817, 22820, 22821, + }; static const short dep46[] = { - 10, 88, 185, 186, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, - 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801, - 22802, 22805, 22806, + 16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, + 22817, 22820, 22821, }; static const short dep47[] = { - 6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797, - 22798, 22801, 22802, 22805, 22806, + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812, + 22813, 22816, 22817, 22820, 22821, }; static const short dep48[] = { - 11, 88, 188, 189, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, - 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801, - 22802, 22805, 22806, + 17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, + 22817, 22820, 22821, }; static const short dep49[] = { - 7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797, - 22798, 22801, 22802, 22805, 22806, + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812, + 22813, 22816, 22817, 22820, 22821, }; static const short dep50[] = { - 12, 88, 191, 192, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, - 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801, - 22802, 22805, 22806, + 18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, + 22817, 22820, 22821, }; static const short dep51[] = { - 8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 22794, 22797, - 22798, 22801, 22802, 22805, 22806, + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812, + 22813, 22816, 22817, 22820, 22821, }; static const short dep52[] = { - 9, 88, 182, 183, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, + 15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep53[] = { - 5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, }; static const short dep54[] = { - 9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 2127, 2295, - 18585, 18586, 18731, 18732, 18734, 18735, + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310, + 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep55[] = { - 5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193, - 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295, 4127, 16516, 16518, 18731, - 18733, 18734, 18736, + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205, + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526, + 18746, 18748, 18749, 18751, }; static const short dep56[] = { - 10, 88, 185, 186, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, + 16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep57[] = { - 6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, }; static const short dep58[] = { - 11, 88, 188, 189, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, + 17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep59[] = { - 7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, }; static const short dep60[] = { - 12, 88, 191, 192, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, + 18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep61[] = { - 8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, }; static const short dep62[] = { - 88, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, + 96, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep63[] = { - 32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295, 4127, - 16516, 16518, 18731, 18733, 18734, 18736, + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, + 16524, 16526, 18746, 18748, 18749, 18751, }; static const short dep64[] = { - 5, 88, 178, 252, + 11, 96, 192, 267, }; static const short dep65[] = { - 5, 32, 33, 88, 166, 178, 252, 2157, 2158, 2161, 2164, 4127, + 11, 40, 41, 96, 174, 192, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep66[] = { - 5, 32, 33, 88, 166, 252, 2157, 2158, 2161, 2164, 4127, + 11, 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep67[] = { - 6, 88, 179, 252, + 12, 96, 193, 267, }; static const short dep68[] = { - 5, 32, 33, 88, 166, 179, 252, 2157, 2158, 2161, 2164, 4127, + 11, 40, 41, 96, 174, 193, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep69[] = { - 7, 88, 180, 252, + 13, 96, 194, 267, }; static const short dep70[] = { - 5, 32, 33, 88, 166, 180, 252, 2157, 2158, 2161, 2164, 4127, + 11, 40, 41, 96, 174, 194, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep71[] = { - 8, 88, 181, 252, + 14, 96, 195, 267, }; static const short dep72[] = { - 5, 32, 33, 88, 166, 181, 252, 2157, 2158, 2161, 2164, 4127, + 11, 40, 41, 96, 174, 195, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep73[] = { - 9, 88, 183, 184, 252, + 15, 96, 197, 198, 267, }; static const short dep74[] = { - 32, 33, 88, 166, 183, 184, 252, 2157, 2158, 2161, 2164, 4127, + 40, 41, 96, 174, 197, 198, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep75[] = { - 32, 33, 88, 166, 252, 2157, 2158, 2161, 2164, 4127, + 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep76[] = { - 10, 88, 186, 187, 252, + 16, 96, 200, 201, 267, }; static const short dep77[] = { - 32, 33, 88, 166, 186, 187, 252, 2157, 2158, 2161, 2164, 4127, + 40, 41, 96, 174, 200, 201, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep78[] = { - 11, 88, 189, 190, 252, + 17, 96, 203, 204, 267, }; static const short dep79[] = { - 32, 33, 88, 166, 189, 190, 252, 2157, 2158, 2161, 2164, 4127, + 40, 41, 96, 174, 203, 204, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep80[] = { - 12, 88, 192, 193, 252, + 18, 96, 206, 207, 267, }; static const short dep81[] = { - 32, 33, 88, 166, 192, 193, 252, 2157, 2158, 2161, 2164, 4127, + 40, 41, 96, 174, 206, 207, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep82[] = { - 9, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127, + 15, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135, + }; static const short dep83[] = { - 9, 10, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127, + 15, 16, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep84[] = { - 9, 11, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127, + 15, 17, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep85[] = { - 9, 12, 13, 14, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127, + 15, 18, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep86[] = { - 9, 88, 182, 183, 252, + 15, 96, 196, 197, 267, }; static const short dep87[] = { - 5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2157, 2158, 2161, 2164, 4127, + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2165, 2166, 2169, 2172, 4135, + }; static const short dep88[] = { - 9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, }; static const short dep89[] = { - 5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193, - 252, 2157, 2158, 2161, 2164, 4127, + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205, + 207, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep90[] = { - 10, 88, 185, 186, 252, + 16, 96, 199, 200, 267, }; static const short dep91[] = { - 6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2157, 2158, 2161, 2164, 4127, + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2165, 2166, 2169, 2172, 4135, + }; static const short dep92[] = { - 11, 88, 188, 189, 252, + 17, 96, 202, 203, 267, }; static const short dep93[] = { - 7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2157, 2158, 2161, 2164, 4127, + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2165, 2166, 2169, 2172, 4135, + }; static const short dep94[] = { - 12, 88, 191, 192, 252, + 18, 96, 205, 206, 267, }; static const short dep95[] = { - 8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2157, 2158, 2161, 2164, 4127, + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2165, 2166, 2169, 2172, 4135, + }; static const short dep96[] = { - 9, 88, 182, 183, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317, - 2318, 2321, 2322, 2325, 2326, + 15, 96, 196, 197, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, + 2333, 2336, 2337, 2340, 2341, }; static const short dep97[] = { - 5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, + }; static const short dep98[] = { - 9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 2157, 2158, - 2159, 2161, 2162, 2164, 2165, 2314, 2317, 2318, 2321, 2322, 2325, 2326, + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2165, 2166, + 2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336, 2337, 2340, 2341, }; static const short dep99[] = { - 5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193, - 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2314, 2317, 2318, 2321, 2322, - 2325, 2326, 4127, 16516, 16518, + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205, + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332, 2333, 2336, + 2337, 2340, 2341, 4135, 16524, 16526, }; static const short dep100[] = { - 10, 88, 185, 186, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317, - 2318, 2321, 2322, 2325, 2326, + 16, 96, 199, 200, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, + 2333, 2336, 2337, 2340, 2341, }; static const short dep101[] = { - 6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, + }; static const short dep102[] = { - 11, 88, 188, 189, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317, - 2318, 2321, 2322, 2325, 2326, + 17, 96, 202, 203, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, + 2333, 2336, 2337, 2340, 2341, }; static const short dep103[] = { - 7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, + }; static const short dep104[] = { - 12, 88, 191, 192, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317, - 2318, 2321, 2322, 2325, 2326, + 18, 96, 205, 206, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, + 2333, 2336, 2337, 2340, 2341, }; static const short dep105[] = { - 8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 2314, 2317, 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, + }; static const short dep106[] = { - 9, 88, 182, 183, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, - 22797, 22798, 22801, 22802, 22805, 22806, + 15, 96, 196, 197, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, + 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep107[] = { - 5, 13, 14, 32, 33, 88, 166, 182, 184, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806, - + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820, + 22821, }; static const short dep108[] = { - 9, 10, 11, 12, 88, 182, 183, 185, 186, 188, 189, 191, 192, 252, 22637, 22638, - 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, 22801, 22802, 22805, - 22806, + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 22645, 22646, + 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820, + 22821, }; static const short dep109[] = { - 5, 6, 7, 8, 13, 14, 32, 33, 88, 166, 182, 184, 185, 187, 188, 190, 191, 193, - 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 4127, 16516, 16518, 22794, - 22797, 22798, 22801, 22802, 22805, 22806, + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205, + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524, 16526, 22809, + 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep110[] = { - 10, 88, 185, 186, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, - 22797, 22798, 22801, 22802, 22805, 22806, + 16, 96, 199, 200, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, + 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep111[] = { - 6, 13, 14, 32, 33, 88, 166, 185, 187, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806, - + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820, + 22821, }; static const short dep112[] = { - 11, 88, 188, 189, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, - 22797, 22798, 22801, 22802, 22805, 22806, + 17, 96, 202, 203, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, + 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep113[] = { - 7, 13, 14, 32, 33, 88, 166, 188, 190, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806, - + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820, + 22821, }; static const short dep114[] = { - 12, 88, 191, 192, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, - 22797, 22798, 22801, 22802, 22805, 22806, + 18, 96, 205, 206, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, + 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep115[] = { - 8, 13, 14, 32, 33, 88, 166, 191, 193, 252, 2126, 2127, 2128, 2157, 2158, 2161, - 2164, 4127, 16516, 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806, - + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166, + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820, + 22821, }; static const short dep116[] = { - 88, 252, 2157, 2158, 2159, 2161, 2162, 2164, 2165, 2314, 2317, 2318, 2321, - 2322, 2325, 2326, + 96, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336, + 2337, 2340, 2341, }; static const short dep117[] = { - 32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2314, 2317, - 2318, 2321, 2322, 2325, 2326, 4127, 16516, 16518, + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332, + 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526, }; static const short dep118[] = { - 88, 252, 22637, 22638, 22639, 22641, 22642, 22644, 22645, 22794, 22797, 22798, - 22801, 22802, 22805, 22806, + 96, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, + 22816, 22817, 22820, 22821, }; static const short dep119[] = { - 32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 4127, 16516, - 16518, 22794, 22797, 22798, 22801, 22802, 22805, 22806, + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524, + 16526, 22809, 22812, 22813, 22816, 22817, 22820, 22821, }; static const short dep120[] = { - 13, 14, 32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2295, - 4127, 16516, 16518, 18731, 18733, 18734, 18736, + 19, 20, 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, + 4135, 16524, 16526, 18746, 18748, 18749, 18751, }; static const short dep121[] = { - 32, 33, 88, 148, 166, 167, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, - 4127, 20605, + 40, 41, 96, 156, 174, 175, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 4135, 20613, }; static const short dep122[] = { - 88, 252, 2075, 2076, 2256, 2257, + 96, 267, 2083, 2084, 2271, 2272, }; static const short dep123[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2255, 2257, - 4127, 20605, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2270, 2272, + 4135, 20613, }; static const short dep124[] = { - 32, 33, 88, 166, 252, 2074, 2076, 2157, 2158, 2161, 2164, 2297, 4127, 20605, + 40, 41, 96, 174, 267, 2082, 2084, 2165, 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep125[] = { - 88, 252, 14446, 14448, 14449, 14451, 14452, 14454, 14605, 14606, 14609, 14610, - 14613, 14614, + 96, 267, 14454, 14456, 14457, 14459, 14460, 14462, 14620, 14621, 14624, 14625, + 14628, 14629, }; static const short dep126[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 4127, 14605, 14606, 14609, 14610, - 14613, 14614, 20605, 24685, 24686, 24689, 24692, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 4135, 14620, 14621, 14624, 14625, + 14628, 14629, 20613, 24693, 24694, 24697, 24700, }; static const short dep127[] = { - 88, 113, 115, 116, 118, 252, 273, 274, 277, 278, + 96, 121, 123, 124, 126, 267, 288, 289, 292, 293, }; static const short dep128[] = { - 32, 33, 88, 166, 252, 273, 274, 277, 278, 4127, 24685, 24686, 24689, 24692, + 40, 41, 96, 174, 267, 288, 289, 292, 293, 4135, 24693, 24694, 24697, 24700, }; static const short dep129[] = { - 32, 33, 88, 166, 252, 2157, 2158, 2161, 2164, 2297, 4127, 20605, + 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep130[] = { - 32, 33, 88, 110, 113, 116, 166, 252, 2297, 4127, 20605, 24685, + 40, 41, 96, 118, 121, 124, 174, 267, 2312, 4135, 20613, 24693, }; static const short dep131[] = { - 4, 17, 19, 20, 88, 177, 198, 201, 252, 2073, 2254, + 6, 24, 26, 27, 96, 187, 213, 216, 267, 2081, 2269, }; static const short dep132[] = { - 32, 33, 88, 166, 177, 198, 200, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, - 2254, 4127, 20605, + 40, 41, 96, 174, 187, 213, 215, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 2269, 4135, 20613, }; static const short dep133[] = { - 4, 17, 18, 19, 32, 33, 88, 166, 252, 2073, 2157, 2158, 2161, 2164, 2297, 4127, - 20605, + 6, 24, 25, 26, 40, 41, 96, 174, 267, 2081, 2165, 2166, 2169, 2172, 2312, 4135, + 20613, }; static const short dep134[] = { - 0, 32, 33, 88, 148, 166, 167, 252, 2157, 2158, 2161, 2164, 4127, + 0, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep135[] = { - 0, 88, 173, 252, + 0, 96, 181, 267, }; static const short dep136[] = { - 0, 32, 33, 88, 148, 166, 167, 173, 252, 2157, 2158, 2161, 2164, 4127, + 0, 40, 41, 96, 156, 174, 175, 181, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep137[] = { - 32, 33, 88, 166, 173, 252, 2157, 2158, 2161, 2164, 4127, + 40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep138[] = { - 2, 21, 88, 175, 202, 252, 28844, 28987, + 2, 28, 96, 183, 217, 267, 28852, 29002, }; static const short dep139[] = { - 1, 2, 21, 22, 88, 160, 161, 166, 175, 202, 252, 28844, 28987, + 1, 2, 28, 29, 96, 168, 169, 174, 183, 217, 267, 28852, 29002, }; static const short dep140[] = { - 1, 21, 22, 30, 32, 33, 88, 160, 161, 166, 175, 202, 252, 4127, 28844, 28987, + 1, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 267, 4135, 28852, 29002, }; static const short dep141[] = { - 0, 32, 33, 88, 166, 173, 252, 2157, 2158, 2161, 2164, 4127, + 0, 40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep142[] = { - 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23, 88, 174, 175, - 176, 178, 179, 180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 194, 195, - 196, 202, 203, 204, 252, 2064, 2073, 2245, 2254, 28844, 28987, + 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193, + 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 217, + 218, 219, 267, 2071, 2081, 2260, 2269, 28852, 29002, }; static const short dep143[] = { - 22, 32, 33, 88, 126, 166, 174, 175, 176, 178, 179, 180, 181, 183, 184, 186, - 187, 189, 190, 192, 193, 194, 195, 196, 202, 203, 204, 252, 2129, 2130, 2131, - 2157, 2158, 2161, 2164, 2245, 2254, 4127, 20605, 28844, 28987, + 29, 40, 41, 96, 134, 174, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, + 193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, + 217, 218, 219, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269, + 4135, 20613, 28852, 29002, }; static const short dep144[] = { - 88, 252, 14455, 14457, 14458, 14460, 14489, 14490, 14505, 14615, 14616, 14636, - 14637, 14639, 14640, 14649, + 96, 267, 14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651, + 14652, 14654, 14655, 14664, }; static const short dep145[] = { - 32, 33, 88, 165, 166, 252, 2157, 2158, 2161, 2164, 4127, 14615, 14616, 14636, - 14637, 14639, 14640, 14649, + 40, 41, 96, 173, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631, 14651, + 14652, 14654, 14655, 14664, }; static const short dep146[] = { - 14455, 14457, 14458, 14460, 14489, 14490, 14505, 14615, 14616, 14636, 14637, - 14639, 14640, 14649, + 14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651, 14652, + 14654, 14655, 14664, }; static const short dep147[] = { - 165, 14615, 14616, 14636, 14637, 14639, 14640, 14649, + 173, 14630, 14631, 14651, 14652, 14654, 14655, 14664, }; static const short dep148[] = { - 88, 252, 14456, 14457, 14459, 14460, 14468, 14469, 14470, 14471, 14472, 14473, - 14474, 14475, 14477, 14480, 14481, 14489, 14490, 14491, 14492, 14493, 14498, - 14499, 14500, 14501, 14505, 14615, 14616, 14622, 14623, 14624, 14625, 14627, - 14629, 14636, 14637, 14639, 14640, 14641, 14642, 14645, 14646, 14649, + 96, 267, 14464, 14465, 14467, 14468, 14476, 14477, 14478, 14479, 14480, 14481, + 14482, 14483, 14485, 14488, 14489, 14497, 14498, 14499, 14500, 14501, 14506, + 14507, 14508, 14509, 14513, 14630, 14631, 14637, 14638, 14639, 14640, 14642, + 14644, 14651, 14652, 14654, 14655, 14656, 14657, 14660, 14661, 14664, }; static const short dep149[] = { - 32, 33, 64, 88, 126, 166, 252, 2157, 2158, 2161, 2164, 4127, 14615, 14616, - 14622, 14623, 14624, 14625, 14627, 14629, 14636, 14637, 14639, 14640, 14641, - 14642, 14645, 14646, 14649, + 40, 41, 72, 96, 134, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631, + 14637, 14638, 14639, 14640, 14642, 14644, 14651, 14652, 14654, 14655, 14656, + 14657, 14660, 14661, 14664, }; static const short dep150[] = { - 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21, 22, 23, 32, 33, 88, 126, - 163, 166, 252, 2064, 2073, 2157, 2158, 2161, 2164, 2297, 4127, 20605, 28844, - + 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 267, 2071, 2081, 2165, 2166, 2169, + 2172, 2312, 4135, 20613, 28852, }; static const short dep151[] = { - 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, - 56, 57, 59, 61, 62, 63, 64, 85, 87, 88, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 225, 226, 227, 228, 229, 231, 233, 234, 235, 251, 252, - 2108, 2280, + 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, + 64, 65, 67, 69, 70, 71, 72, 93, 95, 96, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267, + 2116, 2295, }; static const short dep152[] = { - 32, 33, 87, 88, 126, 145, 166, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 225, 226, 227, 228, 229, 231, 233, 234, 235, 251, 252, 2129, 2130, - 2131, 2157, 2158, 2161, 2164, 2280, 4127, 20605, + 40, 41, 95, 96, 134, 153, 174, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267, 2137, 2138, + 2139, 2165, 2166, 2169, 2172, 2295, 4135, 20613, }; static const short dep153[] = { - 51, 86, 88, 224, 251, 252, 2131, 2297, + 59, 94, 96, 239, 266, 267, 2139, 2312, }; static const short dep154[] = { - 32, 33, 35, 36, 38, 40, 41, 43, 44, 45, 46, 48, 49, 52, 53, 55, 56, 57, 58, - 59, 61, 62, 63, 85, 86, 88, 126, 145, 166, 224, 251, 252, 2099, 2108, 2157, - 2158, 2161, 2164, 2297, 4127, 20605, + 40, 41, 43, 44, 46, 48, 49, 51, 52, 53, 54, 56, 57, 60, 61, 63, 64, 65, 66, + 67, 69, 70, 71, 93, 94, 96, 134, 153, 174, 239, 266, 267, 2107, 2116, 2165, + 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep155[] = { - 2, 21, 33, 88, 175, 202, 211, 252, 2131, 2297, 28844, 28987, + 2, 28, 41, 96, 183, 217, 226, 267, 2139, 2312, 28852, 29002, }; static const short dep156[] = { - 2, 18, 19, 21, 22, 30, 32, 33, 88, 160, 161, 166, 175, 202, 211, 252, 2297, - 4127, 20605, 28844, 28987, + 2, 25, 26, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 226, 267, 2312, + 4135, 20613, 28852, 29002, }; static const short dep157[] = { - 88, 120, 121, 123, 124, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, - 141, 144, 145, 149, 150, 153, 154, 155, 156, 157, 159, 160, 162, 163, 164, - 165, 167, 168, 169, 252, 279, 280, 284, 286, 287, 288, 289, 291, 293, 297, - 300, 301, 303, 304, 305, 306, 308, 309, 310, 312, 313, + 96, 128, 129, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 147, + 149, 152, 153, 157, 158, 161, 162, 163, 164, 165, 167, 168, 170, 171, 172, + 173, 175, 176, 177, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308, 312, + 315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328, }; static const short dep158[] = { - 32, 33, 64, 88, 126, 166, 252, 279, 280, 284, 286, 287, 288, 289, 291, 293, - 297, 300, 301, 303, 304, 305, 306, 308, 309, 310, 312, 313, 2129, 2130, 2131, - 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 72, 96, 134, 174, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308, + 312, 315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328, 2137, 2138, 2139, + 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep159[] = { - 88, 119, 121, 122, 124, 153, 154, 169, 252, 279, 280, 300, 301, 303, 304, - 313, + 96, 127, 129, 130, 132, 161, 162, 177, 267, 294, 295, 315, 316, 318, 319, + 328, }; static const short dep160[] = { - 32, 33, 88, 165, 166, 252, 279, 280, 300, 301, 303, 304, 313, 2129, 2130, - 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 96, 173, 174, 267, 294, 295, 315, 316, 318, 319, 328, 2137, 2138, + 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep161[] = { - 32, 33, 88, 121, 124, 126, 129, 130, 133, 135, 137, 139, 141, 142, 144, 148, - 149, 151, 152, 153, 154, 156, 157, 159, 161, 162, 164, 166, 168, 169, 252, - 2157, 2158, 2161, 2164, 2297, 4127, 20605, + 40, 41, 96, 129, 132, 134, 137, 138, 141, 143, 145, 147, 149, 150, 152, 156, + 157, 159, 160, 161, 162, 164, 165, 167, 169, 170, 172, 174, 176, 177, 267, + 2165, 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep162[] = { - 32, 33, 88, 121, 124, 153, 154, 166, 169, 252, 2157, 2158, 2161, 2164, 2297, - 4127, 20605, + 40, 41, 96, 129, 132, 161, 162, 174, 177, 267, 2165, 2166, 2169, 2172, 2312, + 4135, 20613, }; static const short dep163[] = { - 32, 33, 67, 68, 73, 75, 88, 102, 126, 155, 166, 170, 252, 2129, 2130, 2131, - 2157, 2158, 2161, 2164, 2297, 4127, 20605, + 40, 41, 75, 76, 81, 83, 96, 110, 134, 163, 174, 178, 267, 2137, 2138, 2139, + 2165, 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep164[] = { - 32, 33, 67, 68, 73, 75, 88, 102, 126, 127, 128, 130, 131, 155, 166, 170, 252, - 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 75, 76, 81, 83, 96, 110, 134, 135, 136, 138, 139, 163, 174, 178, 267, + 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep165[] = { - 68, 69, 88, 92, 93, 239, 240, 252, 254, 255, + 76, 77, 96, 100, 101, 254, 255, 267, 269, 270, }; static const short dep166[] = { - 32, 33, 39, 54, 69, 71, 77, 88, 90, 93, 126, 145, 166, 170, 239, 240, 252, - 254, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 47, 62, 77, 79, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255, 267, + 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep167[] = { - 32, 33, 39, 54, 69, 71, 88, 90, 93, 95, 97, 126, 145, 166, 170, 239, 240, - 252, 254, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255, + 267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep168[] = { - 88, 252, 12458, 12459, 12602, + 96, 267, 12466, 12467, 12617, }; static const short dep169[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, - 12602, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, + 12617, 20613, }; static const short dep170[] = { - 88, 252, 6210, 6211, 6381, + 96, 267, 6218, 6219, 6396, }; static const short dep171[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, - 6381, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, + 6396, 20613, }; static const short dep172[] = { - 88, 252, 6228, 6394, + 96, 267, 6236, 6409, }; static const short dep173[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, - 6394, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, + 6409, 20613, }; static const short dep174[] = { - 88, 252, 6246, 6247, 6248, 6249, 6405, 6407, 8454, + 96, 267, 6254, 6255, 6256, 6257, 6420, 6422, 8469, }; static const short dep175[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, - 6249, 6406, 6407, 8295, 8453, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, + 6257, 6421, 6422, 8303, 8468, 20613, }; static const short dep176[] = { - 88, 252, 6250, 6251, 6408, + 96, 267, 6258, 6259, 6423, }; static const short dep177[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, - 6408, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, + 6423, 20613, }; static const short dep178[] = { - 88, 252, 6252, 6409, + 96, 267, 6260, 6424, }; static const short dep179[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, - 6409, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, + 6424, 20613, }; static const short dep180[] = { - 88, 252, 10341, 10500, + 96, 267, 10349, 10515, }; static const short dep181[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, - 10500, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, + 10515, 20613, }; static const short dep182[] = { - 68, 69, 73, 74, 88, 92, 93, 239, 240, 242, 243, 252, 254, 255, + 76, 77, 81, 82, 96, 100, 101, 254, 255, 257, 258, 267, 269, 270, }; static const short dep183[] = { - 32, 33, 39, 54, 69, 71, 74, 77, 88, 90, 93, 126, 145, 166, 170, 239, 240, - 242, 244, 252, 254, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 47, 62, 77, 79, 82, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255, + 257, 259, 267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep184[] = { - 68, 69, 88, 92, 93, 95, 96, 239, 240, 252, 254, 255, 256, 257, + 76, 77, 96, 100, 101, 103, 104, 254, 255, 267, 269, 270, 271, 272, }; static const short dep185[] = { - 32, 33, 39, 54, 69, 71, 88, 90, 93, 95, 97, 126, 145, 166, 170, 239, 240, - 252, 254, 255, 256, 257, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255, + 267, 269, 270, 271, 272, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep186[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 12459, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 12467, 20613, }; static const short dep187[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 6210, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 6218, 20613, }; static const short dep188[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 6228, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 6236, 20613, }; static const short dep189[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 6248, 8294, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 6256, 8302, 20613, }; static const short dep190[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 6250, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 6258, 20613, }; static const short dep191[] = { - 32, 33, 88, 126, 165, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, - 2297, 4127, 6251, 6252, 20605, + 40, 41, 96, 134, 173, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 2312, 4135, 6259, 6260, 20613, }; static const short dep192[] = { - 32, 33, 88, 126, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 10341, 20605, + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 10349, 20613, }; static const short dep193[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, 4127, - 6178, 20605, + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135, + 6186, 20613, }; static const short dep194[] = { - 68, 70, 71, 88, 89, 90, 91, 238, 239, 252, 253, 254, + 76, 78, 79, 96, 97, 98, 99, 253, 254, 267, 268, 269, }; static const short dep195[] = { - 32, 33, 69, 70, 74, 76, 88, 91, 93, 95, 98, 126, 166, 170, 238, 240, 252, - 253, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 77, 78, 82, 84, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267, + 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep196[] = { - 68, 70, 71, 72, 88, 89, 90, 91, 94, 238, 239, 241, 252, 253, 254, + 76, 78, 79, 80, 96, 97, 98, 99, 102, 253, 254, 256, 267, 268, 269, }; static const short dep197[] = { - 32, 33, 69, 70, 72, 74, 76, 88, 91, 93, 94, 95, 98, 126, 166, 170, 238, 240, - 241, 252, 253, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 77, 78, 80, 82, 84, 96, 99, 101, 102, 103, 106, 134, 174, 178, 253, + 255, 256, 267, 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep198[] = { - 68, 70, 71, 75, 76, 77, 88, 89, 90, 91, 238, 239, 244, 245, 252, 253, 254, + 76, 78, 79, 83, 84, 85, 96, 97, 98, 99, 253, 254, 259, 260, 267, 268, 269, }; static const short dep199[] = { - 32, 33, 69, 70, 74, 76, 88, 91, 93, 126, 166, 170, 238, 240, 243, 245, 252, - 253, 255, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 77, 78, 82, 84, 96, 99, 101, 134, 174, 178, 253, 255, 258, 260, 267, + 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep200[] = { - 68, 70, 71, 88, 89, 90, 91, 97, 98, 99, 238, 239, 252, 253, 254, 257, 258, + 76, 78, 79, 96, 97, 98, 99, 105, 106, 107, 253, 254, 267, 268, 269, 272, 273, }; static const short dep201[] = { - 32, 33, 69, 70, 88, 91, 93, 95, 98, 126, 166, 170, 238, 240, 252, 253, 255, - 256, 258, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 77, 78, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267, 268, + 270, 271, 273, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep202[] = { - 32, 33, 38, 62, 88, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, - 2297, 4127, 20605, + 40, 41, 46, 70, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 2312, 4135, 20613, }; static const short dep203[] = { - 32, 33, 88, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 20605, + 40, 41, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 20613, }; static const short dep204[] = { - 32, 33, 68, 73, 75, 88, 126, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, - 2161, 2164, 2297, 4127, 20605, + 40, 41, 76, 81, 83, 96, 134, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, + 2169, 2172, 2312, 4135, 20613, }; static const short dep205[] = { - 32, 33, 88, 148, 166, 167, 252, 2126, 2127, 2128, 2129, 2130, 2131, 2157, - 2158, 2161, 2164, 4127, 16516, 16518, 20605, + 40, 41, 96, 156, 174, 175, 267, 2134, 2135, 2136, 2137, 2138, 2139, 2165, + 2166, 2169, 2172, 4135, 16524, 16526, 20613, }; static const short dep206[] = { - 32, 33, 68, 73, 75, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, - 4127, 20605, + 40, 41, 76, 81, 83, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 4135, 20613, }; static const short dep207[] = { - 32, 33, 69, 70, 88, 91, 126, 166, 238, 240, 252, 253, 255, 2129, 2130, 2131, - 2157, 2158, 2161, 2164, 4127, 20605, + 40, 41, 77, 78, 96, 99, 134, 174, 253, 255, 267, 268, 270, 2137, 2138, 2139, + 2165, 2166, 2169, 2172, 4135, 20613, }; static const short dep208[] = { - 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 130, - 131, 138, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2297, - 4127, 20605, + 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138, + 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, + 4135, 20613, }; static const short dep209[] = { - 32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, - 130, 131, 138, 140, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, - 2164, 2297, 4127, 20605, + 5, 96, 186, 267, 2139, 2312, }; static const short dep210[] = { - 0, 88, 173, 252, 2131, 2297, + 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138, + 139, 146, 163, 174, 178, 186, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 2312, 4135, 20613, }; static const short dep211[] = { - 0, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, - 130, 131, 138, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, 2158, 2161, - 2164, 2297, 4127, 20605, + 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, + 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, + 2172, 2312, 4135, 20613, }; static const short dep212[] = { - 0, 32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, - 128, 130, 131, 138, 140, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, - 2158, 2161, 2164, 2297, 4127, 20605, + 0, 96, 181, 267, 2139, 2312, }; static const short dep213[] = { - 23, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, - 130, 131, 138, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, - 2297, 4127, 20605, + 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, + 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169, + 2172, 2312, 4135, 20613, }; static const short dep214[] = { - 0, 88, 173, 252, 2297, 26706, + 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, + 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, + 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep215[] = { - 0, 88, 100, 173, 252, 259, + 31, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, + 138, 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 2312, 4135, 20613, }; static const short dep216[] = { - 0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130, - 131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, 2158, 2161, - 2164, 4127, 20605, + 0, 96, 181, 267, 2312, 26714, }; static const short dep217[] = { - 0, 23, 88, 100, 173, 204, 252, 259, + 0, 96, 108, 181, 267, 274, }; static const short dep218[] = { - 0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130, - 131, 138, 155, 166, 170, 173, 204, 252, 259, 2129, 2130, 2131, 2157, 2158, - 2161, 2164, 4127, 20605, + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138, + 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169, + 2172, 4135, 20613, }; static const short dep219[] = { - 0, 88, 100, 173, 252, 259, 2131, 2297, + 0, 5, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, + 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, + 2169, 2172, 4135, 20613, }; static const short dep220[] = { - 0, 3, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, - 128, 130, 131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, - 2158, 2161, 2164, 2297, 4127, 20605, + 0, 31, 96, 108, 181, 219, 267, 274, }; static const short dep221[] = { - 0, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, - 130, 131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, 2158, - 2161, 2164, 2297, 4127, 20605, + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138, + 139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166, + 2169, 2172, 4135, 20613, }; static const short dep222[] = { - 32, 33, 88, 166, 252, 2126, 2127, 2128, 2157, 2158, 2161, 2164, 2297, 4127, - 16516, 16518, 20605, + 0, 96, 108, 181, 267, 274, 2139, 2312, }; static const short dep223[] = { - 0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130, - 131, 138, 155, 166, 170, 173, 252, 259, 2129, 2130, 2131, 2157, 2158, 2161, - 2164, 2297, 4127, 20605, + 0, 4, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, + 136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, + 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep224[] = { - 0, 23, 88, 100, 173, 204, 252, 259, 2131, 2297, + 0, 4, 5, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, + 136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, + 2166, 2169, 2172, 2312, 4135, 20613, }; static const short dep225[] = { - 0, 32, 33, 67, 68, 73, 75, 88, 102, 119, 120, 122, 123, 126, 127, 128, 130, - 131, 138, 155, 166, 170, 173, 204, 252, 259, 2129, 2130, 2131, 2157, 2158, - 2161, 2164, 2297, 4127, 20605, + 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, + 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, + 2169, 2172, 2312, 4135, 20613, }; static const short dep226[] = { - 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, 130, - 131, 138, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2295, - 4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605, + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2312, 4135, + 16524, 16526, 20613, }; static const short dep227[] = { - 32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, - 130, 131, 138, 140, 155, 166, 170, 252, 2129, 2130, 2131, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605, + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138, + 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169, + 2172, 2312, 4135, 20613, }; static const short dep228[] = { - 0, 88, 173, 252, 2127, 2295, 18585, 18586, 18731, 18732, 18734, 18735, + 0, 31, 96, 108, 181, 219, 267, 274, 2139, 2312, }; static const short dep229[] = { - 0, 32, 33, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, 128, - 130, 131, 138, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, 2158, 2161, - 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605, + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138, + 139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166, + 2169, 2172, 2312, 4135, 20613, }; static const short dep230[] = { - 0, 32, 33, 36, 67, 68, 73, 75, 88, 100, 102, 119, 120, 122, 123, 126, 127, - 128, 130, 131, 138, 140, 155, 166, 170, 173, 252, 2129, 2130, 2131, 2157, - 2158, 2161, 2164, 2295, 4127, 16516, 16518, 18731, 18733, 18734, 18736, 20605, - + 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138, + 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310, + 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, }; static const short dep231[] = { - 0, 88, 173, 252, 2128, 2295, 18585, 18586, 18731, 18732, 18734, 18735, + 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, + 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, + 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, }; static const short dep232[] = { - 32, 33, 67, 88, 126, 140, 166, 252, 2157, 2158, 2161, 2164, 4127, + 0, 96, 181, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep233[] = { - 32, 33, 67, 88, 126, 127, 131, 140, 166, 252, 2157, 2158, 2161, 2164, 4127, - + 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, + 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169, + 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, }; static const short dep234[] = { - 32, 33, 67, 88, 126, 140, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, - 2297, 4127, 20605, + 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, + 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, + 2166, 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613, + }; static const short dep235[] = { - 32, 33, 67, 88, 126, 127, 131, 140, 166, 252, 2129, 2130, 2131, 2157, 2158, - 2161, 2164, 2297, 4127, 20605, + 0, 96, 181, 267, 2136, 2310, 18593, 18594, 18746, 18747, 18749, 18750, }; static const short dep236[] = { - 32, 33, 88, 166, 252, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2295, 4127, - 16516, 16518, 18731, 18733, 18734, 18736, 20605, + 40, 41, 75, 96, 134, 148, 174, 267, 2165, 2166, 2169, 2172, 4135, }; static const short dep237[] = { - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, - 88, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 186, 187, 189, 190, - 192, 193, 194, 195, 196, 198, 201, 202, 203, 204, 252, 2064, 2073, 2131, 2245, - 2254, 2297, 28844, 28987, + 40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2165, 2166, 2169, 2172, 4135, + }; static const short dep238[] = { - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 21, 22, 23, - 32, 33, 88, 126, 163, 166, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, - 186, 187, 189, 190, 192, 193, 194, 195, 196, 198, 200, 202, 203, 204, 252, - 2064, 2073, 2129, 2130, 2131, 2157, 2158, 2161, 2164, 2245, 2254, 2297, 4127, - 20605, 28844, 28987, + 40, 41, 75, 96, 134, 148, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, + 2312, 4135, 20613, +}; + +static const short dep239[] = { + 40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2137, 2138, 2139, 2165, 2166, + 2169, 2172, 2312, 4135, 20613, +}; + +static const short dep240[] = { + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310, 4135, + 16524, 16526, 18746, 18748, 18749, 18751, 20613, +}; + +static const short dep241[] = { + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 24, 26, 27, 28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, + 209, 210, 211, 213, 216, 217, 218, 219, 267, 2071, 2081, 2139, 2260, 2269, + 2312, 28852, 29002, +}; + +static const short dep242[] = { + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 24, 25, 26, 28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 197, 198, 200, 201, + 203, 204, 206, 207, 208, 209, 210, 211, 213, 215, 217, 218, 219, 267, 2071, + 2081, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269, 2312, 4135, 20613, + 28852, 29002, }; #define NELS(X) (sizeof(X)/sizeof(X[0])) @@ -1660,30 +1712,33 @@ op_dependencies[] = { { NELS(dep206), dep206, NELS(dep31), dep31, }, { NELS(dep207), dep207, NELS(dep194), dep194, }, { NELS(dep208), dep208, NELS(dep0), dep0, }, - { NELS(dep209), dep209, NELS(dep0), dep0, }, - { NELS(dep211), dep211, NELS(dep210), dep210, }, - { NELS(dep212), dep212, NELS(dep210), dep210, }, - { NELS(dep213), dep213, NELS(dep0), dep0, }, - { NELS(dep211), dep211, NELS(dep214), dep214, }, - { NELS(dep216), dep216, NELS(dep215), dep215, }, + { NELS(dep210), dep210, NELS(dep209), dep209, }, + { NELS(dep211), dep211, NELS(dep0), dep0, }, + { NELS(dep213), dep213, NELS(dep212), dep212, }, + { NELS(dep214), dep214, NELS(dep212), dep212, }, + { NELS(dep215), dep215, NELS(dep0), dep0, }, + { NELS(dep213), dep213, NELS(dep216), dep216, }, { NELS(dep218), dep218, NELS(dep217), dep217, }, - { NELS(dep220), dep220, NELS(dep219), dep219, }, - { NELS(dep221), dep221, NELS(dep219), dep219, }, - { NELS(dep222), dep222, NELS(dep0), dep0, }, - { NELS(dep223), dep223, NELS(dep219), dep219, }, - { NELS(dep225), dep225, NELS(dep224), dep224, }, - { NELS(dep226), dep226, NELS(dep62), dep62, }, - { NELS(dep227), dep227, NELS(dep62), dep62, }, + { NELS(dep219), dep219, NELS(dep217), dep217, }, + { NELS(dep221), dep221, NELS(dep220), dep220, }, + { NELS(dep223), dep223, NELS(dep222), dep222, }, + { NELS(dep224), dep224, NELS(dep222), dep222, }, + { NELS(dep225), dep225, NELS(dep222), dep222, }, + { NELS(dep226), dep226, NELS(dep0), dep0, }, + { NELS(dep227), dep227, NELS(dep222), dep222, }, { NELS(dep229), dep229, NELS(dep228), dep228, }, - { NELS(dep230), dep230, NELS(dep228), dep228, }, - { NELS(dep229), dep229, NELS(dep231), dep231, }, - { NELS(dep232), dep232, NELS(dep31), dep31, }, - { NELS(dep233), dep233, NELS(dep31), dep31, }, - { NELS(dep234), dep234, NELS(dep0), dep0, }, - { NELS(dep235), dep235, NELS(dep0), dep0, }, - { NELS(dep236), dep236, NELS(dep62), dep62, }, + { NELS(dep230), dep230, NELS(dep62), dep62, }, + { NELS(dep231), dep231, NELS(dep62), dep62, }, + { NELS(dep233), dep233, NELS(dep232), dep232, }, + { NELS(dep234), dep234, NELS(dep232), dep232, }, + { NELS(dep233), dep233, NELS(dep235), dep235, }, + { NELS(dep236), dep236, NELS(dep31), dep31, }, + { NELS(dep237), dep237, NELS(dep31), dep31, }, + { NELS(dep238), dep238, NELS(dep0), dep0, }, + { NELS(dep239), dep239, NELS(dep0), dep0, }, + { NELS(dep240), dep240, NELS(dep62), dep62, }, { 0, NULL, 0, NULL, }, - { NELS(dep238), dep238, NELS(dep237), dep237, }, + { NELS(dep242), dep242, NELS(dep241), dep241, }, }; static const struct ia64_completer_table @@ -1701,36 +1756,36 @@ completer_table[] = { { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 449, -1, 0, 1, 6 }, - { 0x0, 0x0, 0, 512, -1, 0, 1, 17 }, - { 0x0, 0x0, 0, -1, -1, 0, 1, 147 }, - { 0x0, 0x0, 0, 611, -1, 0, 1, 17 }, - { 0x0, 0x0, 0, 1815, -1, 0, 1, 10 }, + { 0x0, 0x0, 0, 455, -1, 0, 1, 6 }, + { 0x0, 0x0, 0, 518, -1, 0, 1, 17 }, + { 0x0, 0x0, 0, -1, -1, 0, 1, 150 }, + { 0x0, 0x0, 0, 617, -1, 0, 1, 17 }, + { 0x0, 0x0, 0, 1836, -1, 0, 1, 10 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 9 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 13 }, { 0x1, 0x1, 0, -1, -1, 13, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, - { 0x0, 0x0, 0, 1991, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 2014, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, - { 0x0, 0x0, 0, -1, -1, 0, 1, 122 }, + { 0x0, 0x0, 0, 958, -1, 0, 1, 122 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 44 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 40 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 78 }, - { 0x0, 0x0, 0, 1855, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 1878, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, - { 0x0, 0x0, 0, 2034, -1, 0, 1, 29 }, - { 0x0, 0x0, 0, 1859, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 2057, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 1882, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, - { 0x0, 0x0, 0, 1861, -1, 0, 1, 29 }, - { 0x0, 0x0, 0, 2043, -1, 0, 1, 29 }, - { 0x0, 0x0, 0, 2046, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 1884, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 2066, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 2069, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, @@ -1739,64 +1794,66 @@ completer_table[] = { { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, - { 0x0, 0x0, 0, 2068, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 2091, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 29 }, - { 0x0, 0x0, 0, 2071, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 2094, -1, 0, 1, 29 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 24 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 24 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 24 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 24 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 35 }, - { 0x0, 0x0, 0, 2079, -1, 0, 1, 29 }, - { 0x0, 0x0, 0, 1170, -1, 0, 1, 33 }, + { 0x0, 0x0, 0, 2102, -1, 0, 1, 29 }, + { 0x0, 0x0, 0, 1181, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 40 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, + { 0x0, 0x0, 0, -1, -1, 0, 1, 150 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 77 }, - { 0x0, 0x0, 0, 1203, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1212, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1221, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1230, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1239, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1248, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1257, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1266, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1275, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1285, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1295, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1305, -1, 0, 1, 124 }, - { 0x0, 0x0, 0, 1314, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1320, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1326, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1332, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1338, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1344, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1350, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1356, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1362, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1368, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1374, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1380, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1386, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1392, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1398, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1404, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1410, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1416, -1, 0, 1, 137 }, - { 0x0, 0x0, 0, 1420, -1, 0, 1, 142 }, - { 0x0, 0x0, 0, 1424, -1, 0, 1, 144 }, - { 0x0, 0x0, 0, 1428, -1, 0, 1, 144 }, + { 0x0, 0x0, 0, 1216, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1225, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1234, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1236, -1, 0, 1, 125 }, + { 0x0, 0x0, 0, 1245, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1254, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1263, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1272, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1281, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1290, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1300, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1310, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1320, -1, 0, 1, 124 }, + { 0x0, 0x0, 0, 1329, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1335, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1341, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1347, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1353, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1359, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1365, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1371, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1377, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1383, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1389, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1395, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1401, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1407, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1413, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1419, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1425, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1431, -1, 0, 1, 140 }, + { 0x0, 0x0, 0, 1435, -1, 0, 1, 145 }, + { 0x0, 0x0, 0, 1439, -1, 0, 1, 147 }, + { 0x0, 0x0, 0, 1443, -1, 0, 1, 147 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 79 }, - { 0x0, 0x0, 0, 250, -1, 0, 1, 40 }, + { 0x0, 0x0, 0, 253, -1, 0, 1, 40 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 33 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 67 }, - { 0x1, 0x1, 0, 975, -1, 20, 1, 67 }, + { 0x1, 0x1, 0, 984, -1, 20, 1, 67 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 68 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 69 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 70 }, @@ -1823,25 +1880,25 @@ completer_table[] = { { 0x0, 0x0, 0, -1, -1, 0, 1, 111 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 112 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 113 }, - { 0x0, 0x0, 0, -1, -1, 0, 1, 148 }, - { 0x0, 0x0, 0, -1, -1, 0, 1, 148 }, - { 0x0, 0x0, 0, -1, -1, 0, 1, 148 }, + { 0x0, 0x0, 0, -1, -1, 0, 1, 151 }, + { 0x0, 0x0, 0, -1, -1, 0, 1, 151 }, + { 0x0, 0x0, 0, -1, -1, 0, 1, 151 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 71 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, -1, -1, 0, 1, 147 }, + { 0x0, 0x0, 0, -1, -1, 0, 1, 150 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2371, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2372, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2394, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2395, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 1827, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 1828, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 1848, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 1849, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2386, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2409, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, @@ -1849,13 +1906,13 @@ completer_table[] = { { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2387, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2388, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2389, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2390, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2410, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2411, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2412, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2413, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2373, -1, 0, 1, 0 }, - { 0x0, 0x0, 0, 2374, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2396, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2397, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 11 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 84 }, @@ -1865,25 +1922,26 @@ completer_table[] = { { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x1, 0x1, 0, -1, -1, 13, 1, 0 }, - { 0x0, 0x0, 0, 2392, -1, 0, 1, 0 }, + { 0x0, 0x0, 0, 2415, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 84 }, - { 0x0, 0x0, 0, 1692, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1694, -1, 0, 1, 135 }, - { 0x0, 0x0, 0, 1696, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1698, -1, 0, 1, 135 }, - { 0x0, 0x0, 0, 1700, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1702, -1, 0, 1, 135 }, - { 0x0, 0x0, 0, 1705, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1708, -1, 0, 1, 135 }, - { 0x0, 0x0, 0, 1711, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1712, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1713, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1714, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1715, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1716, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1717, -1, 0, 1, 130 }, - { 0x0, 0x0, 0, 1718, -1, 0, 1, 130 }, + { 0x0, 0x0, 0, 1711, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1713, -1, 0, 1, 138 }, + { 0x0, 0x0, 0, 1715, -1, 0, 1, 132 }, + { 0x0, 0x0, 0, 1717, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1719, -1, 0, 1, 138 }, + { 0x0, 0x0, 0, 1721, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1723, -1, 0, 1, 138 }, + { 0x0, 0x0, 0, 1726, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1729, -1, 0, 1, 138 }, + { 0x0, 0x0, 0, 1732, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1733, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1734, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1735, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1736, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1737, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1738, -1, 0, 1, 131 }, + { 0x0, 0x0, 0, 1739, -1, 0, 1, 131 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, @@ -1895,116 +1953,97 @@ completer_table[] = { { 0x0, 0x0, 0, -1, -1, 0, 1, 118 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 120 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 119 }, - { 0x0, 0x0, 0, 1429, -1, 0, 1, 133 }, - { 0x0, 0x0, 0, 1430, -1, 0, 1, 133 }, - { 0x0, 0x0, 0, 1431, -1, 0, 1, 133 }, - { 0x0, 0x0, 0, 1432, -1, 0, 1, 133 }, + { 0x0, 0x0, 0, 1444, -1, 0, 1, 136 }, + { 0x0, 0x0, 0, 1445, -1, 0, 1, 136 }, + { 0x0, 0x0, 0, 1446, -1, 0, 1, 136 }, + { 0x0, 0x0, 0, 1447, -1, 0, 1, 136 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, { 0x0, 0x0, 0, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 1, 217, -1, 0, 1, 12 }, + { 0x0, 0x0, 1, 220, -1, 0, 1, 12 }, { 0x1, 0x1, 2, -1, -1, 27, 1, 12 }, - { 0x0, 0x0, 3, -1, 1112, 0, 0, -1 }, - { 0x0, 0x0, 3, -1, 1113, 0, 0, -1 }, - { 0x1, 0x1, 3, 2262, 1196, 33, 1, 126 }, - { 0x1, 0x1, 3, 2263, 1205, 33, 1, 126 }, - { 0x1, 0x1, 3, 2264, 1214, 33, 1, 126 }, - { 0x1, 0x1, 3, 2265, 1223, 33, 1, 126 }, - { 0x1, 0x1, 3, 2266, 1232, 33, 1, 126 }, - { 0x1, 0x1, 3, 2267, 1241, 33, 1, 126 }, - { 0x1, 0x1, 3, 2268, 1250, 33, 1, 126 }, - { 0x1, 0x1, 3, 2269, 1259, 33, 1, 126 }, - { 0x1, 0x1, 3, 2270, 1268, 33, 1, 126 }, - { 0x1, 0x1, 3, 2271, 1277, 33, 1, 126 }, - { 0x1, 0x1, 3, 2272, 1287, 33, 1, 126 }, - { 0x1, 0x1, 3, 2273, 1297, 33, 1, 126 }, - { 0x1, 0x1, 3, 2274, 1310, 33, 1, 139 }, - { 0x1, 0x1, 3, 2275, 1316, 33, 1, 139 }, - { 0x1, 0x1, 3, 2276, 1322, 33, 1, 139 }, - { 0x1, 0x1, 3, 2277, 1328, 33, 1, 139 }, - { 0x1, 0x1, 3, 2278, 1334, 33, 1, 139 }, - { 0x1, 0x1, 3, 2279, 1340, 33, 1, 139 }, - { 0x1, 0x1, 3, 2280, 1346, 33, 1, 139 }, - { 0x1, 0x1, 3, 2281, 1352, 33, 1, 139 }, - { 0x1, 0x1, 3, 2282, 1358, 33, 1, 139 }, - { 0x1, 0x1, 3, 2283, 1364, 33, 1, 139 }, - { 0x1, 0x1, 3, 2284, 1370, 33, 1, 139 }, - { 0x1, 0x1, 3, 2285, 1376, 33, 1, 139 }, - { 0x1, 0x1, 3, 2286, 1382, 33, 1, 139 }, - { 0x1, 0x1, 3, 2287, 1388, 33, 1, 139 }, - { 0x1, 0x1, 3, 2288, 1394, 33, 1, 139 }, - { 0x1, 0x1, 3, 2289, 1400, 33, 1, 139 }, - { 0x1, 0x1, 3, 2290, 1406, 33, 1, 139 }, - { 0x1, 0x1, 3, 2291, 1412, 33, 1, 139 }, + { 0x0, 0x0, 3, -1, 1123, 0, 0, -1 }, + { 0x0, 0x0, 3, -1, 1124, 0, 0, -1 }, + { 0x1, 0x1, 3, 2285, 1209, 33, 1, 127 }, + { 0x1, 0x1, 3, 2286, 1218, 33, 1, 127 }, + { 0x1, 0x1, 3, 2287, 1227, 33, 1, 127 }, + { 0x1, 0x1, 3, 2288, 1238, 33, 1, 127 }, + { 0x1, 0x1, 3, 2289, 1247, 33, 1, 127 }, + { 0x1, 0x1, 3, 2290, 1256, 33, 1, 127 }, + { 0x1, 0x1, 3, 2291, 1265, 33, 1, 127 }, + { 0x1, 0x1, 3, 2292, 1274, 33, 1, 127 }, + { 0x1, 0x1, 3, 2293, 1283, 33, 1, 127 }, + { 0x1, 0x1, 3, 2294, 1292, 33, 1, 127 }, + { 0x1, 0x1, 3, 2295, 1302, 33, 1, 127 }, + { 0x1, 0x1, 3, 2296, 1312, 33, 1, 127 }, + { 0x1, 0x1, 3, 2297, 1325, 33, 1, 142 }, + { 0x1, 0x1, 3, 2298, 1331, 33, 1, 142 }, + { 0x1, 0x1, 3, 2299, 1337, 33, 1, 142 }, + { 0x1, 0x1, 3, 2300, 1343, 33, 1, 142 }, + { 0x1, 0x1, 3, 2301, 1349, 33, 1, 142 }, + { 0x1, 0x1, 3, 2302, 1355, 33, 1, 142 }, + { 0x1, 0x1, 3, 2303, 1361, 33, 1, 142 }, + { 0x1, 0x1, 3, 2304, 1367, 33, 1, 142 }, + { 0x1, 0x1, 3, 2305, 1373, 33, 1, 142 }, + { 0x1, 0x1, 3, 2306, 1379, 33, 1, 142 }, + { 0x1, 0x1, 3, 2307, 1385, 33, 1, 142 }, + { 0x1, 0x1, 3, 2308, 1391, 33, 1, 142 }, + { 0x1, 0x1, 3, 2309, 1397, 33, 1, 142 }, + { 0x1, 0x1, 3, 2310, 1403, 33, 1, 142 }, + { 0x1, 0x1, 3, 2311, 1409, 33, 1, 142 }, + { 0x1, 0x1, 3, 2312, 1415, 33, 1, 142 }, + { 0x1, 0x1, 3, 2313, 1421, 33, 1, 142 }, + { 0x1, 0x1, 3, 2314, 1427, 33, 1, 142 }, { 0x1, 0x1, 3, -1, -1, 27, 1, 40 }, - { 0x0, 0x0, 4, 1829, 1183, 0, 1, 132 }, - { 0x0, 0x0, 4, 1830, 1185, 0, 1, 132 }, - { 0x0, 0x0, 4, 1831, 1187, 0, 1, 132 }, - { 0x0, 0x0, 4, 1832, 1189, 0, 1, 132 }, - { 0x0, 0x0, 4, 1833, 1191, 0, 1, 133 }, - { 0x0, 0x0, 4, 1834, 1193, 0, 1, 133 }, - { 0x1, 0x1, 4, -1, 1200, 33, 1, 129 }, - { 0x5, 0x5, 4, 407, 1199, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1209, 33, 1, 129 }, - { 0x5, 0x5, 4, 408, 1208, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1218, 33, 1, 129 }, - { 0x5, 0x5, 4, 409, 1217, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1227, 33, 1, 129 }, - { 0x5, 0x5, 4, 410, 1226, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1236, 33, 1, 129 }, - { 0x5, 0x5, 4, 411, 1235, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1245, 33, 1, 129 }, - { 0x5, 0x5, 4, 412, 1244, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1254, 33, 1, 129 }, - { 0x5, 0x5, 4, 413, 1253, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1263, 33, 1, 129 }, - { 0x5, 0x5, 4, 414, 1262, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1272, 33, 1, 129 }, - { 0x5, 0x5, 4, 415, 1271, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1282, 33, 1, 129 }, - { 0x5, 0x5, 4, 881, 1280, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1292, 33, 1, 129 }, - { 0x5, 0x5, 4, 882, 1290, 32, 1, 124 }, - { 0x1, 0x1, 4, -1, 1302, 33, 1, 129 }, - { 0x5, 0x5, 4, 883, 1300, 32, 1, 124 }, - { 0x1, 0x21, 10, 1727, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1728, -1, 12, 1, 3 }, - { 0x0, 0x0, 10, 1729, -1, 0, 1, 3 }, - { 0x1, 0x1, 10, 1730, -1, 12, 1, 3 }, - { 0x1, 0x1, 10, 1731, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1732, -1, 12, 1, 3 }, - { 0x0, 0x0, 10, 346, -1, 0, 1, 3 }, - { 0x1, 0x1, 10, 1758, -1, 12, 1, 3 }, - { 0x1, 0x1, 10, 350, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1760, -1, 12, 1, 3 }, - { 0x1, 0x21, 10, 1737, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1738, -1, 12, 1, 3 }, - { 0x0, 0x0, 10, -1, 1767, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1768, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1769, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1770, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1771, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1772, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1773, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1774, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1775, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1776, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1777, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1778, 0, 0, -1 }, - { 0x1, 0x21, 10, 1739, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1740, -1, 12, 1, 3 }, - { 0x0, 0x0, 10, 1741, -1, 0, 1, 3 }, - { 0x1, 0x1, 10, 1742, -1, 12, 1, 3 }, - { 0x1, 0x1, 10, 1743, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1744, -1, 12, 1, 3 }, - { 0x0, 0x0, 10, 370, -1, 0, 1, 3 }, - { 0x1, 0x1, 10, 1782, -1, 12, 1, 3 }, - { 0x1, 0x1, 10, 374, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1784, -1, 12, 1, 3 }, - { 0x1, 0x21, 10, 1749, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 10, 1750, -1, 12, 1, 3 }, + { 0x0, 0x0, 4, 1850, 1194, 0, 1, 135 }, + { 0x0, 0x0, 4, 1851, 1196, 0, 1, 134 }, + { 0x0, 0x0, 4, 1852, 1198, 0, 1, 134 }, + { 0x0, 0x0, 4, 1853, 1200, 0, 1, 134 }, + { 0x0, 0x0, 4, 1854, 1202, 0, 1, 134 }, + { 0x0, 0x0, 4, 1855, 1204, 0, 1, 136 }, + { 0x0, 0x0, 4, 1856, 1206, 0, 1, 136 }, + { 0x1, 0x1, 4, -1, 1213, 33, 1, 130 }, + { 0x5, 0x5, 4, 413, 1212, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1222, 33, 1, 130 }, + { 0x5, 0x5, 4, 414, 1221, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1231, 33, 1, 130 }, + { 0x5, 0x5, 4, 415, 1230, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1235, 32, 1, 125 }, + { 0x1, 0x1, 4, -1, 1242, 33, 1, 130 }, + { 0x5, 0x5, 4, 416, 1241, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1251, 33, 1, 130 }, + { 0x5, 0x5, 4, 417, 1250, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1260, 33, 1, 130 }, + { 0x5, 0x5, 4, 418, 1259, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1269, 33, 1, 130 }, + { 0x5, 0x5, 4, 419, 1268, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1278, 33, 1, 130 }, + { 0x5, 0x5, 4, 420, 1277, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1287, 33, 1, 130 }, + { 0x5, 0x5, 4, 421, 1286, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1297, 33, 1, 130 }, + { 0x5, 0x5, 4, 888, 1295, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1307, 33, 1, 130 }, + { 0x5, 0x5, 4, 889, 1305, 32, 1, 124 }, + { 0x1, 0x1, 4, -1, 1317, 33, 1, 130 }, + { 0x5, 0x5, 4, 890, 1315, 32, 1, 124 }, + { 0x1, 0x21, 10, 1748, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1749, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, 1750, -1, 0, 1, 3 }, + { 0x1, 0x1, 10, 1751, -1, 12, 1, 3 }, + { 0x1, 0x1, 10, 1752, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1753, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, 351, -1, 0, 1, 3 }, + { 0x1, 0x1, 10, 1779, -1, 12, 1, 3 }, + { 0x1, 0x1, 10, 355, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1781, -1, 12, 1, 3 }, + { 0x1, 0x21, 10, 1758, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1759, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, -1, 1788, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1789, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1790, 0, 0, -1 }, { 0x0, 0x0, 10, -1, 1791, 0, 0, -1 }, { 0x0, 0x0, 10, -1, 1792, 0, 0, -1 }, { 0x0, 0x0, 10, -1, 1793, 0, 0, -1 }, @@ -2014,93 +2053,109 @@ completer_table[] = { { 0x0, 0x0, 10, -1, 1797, 0, 0, -1 }, { 0x0, 0x0, 10, -1, 1798, 0, 0, -1 }, { 0x0, 0x0, 10, -1, 1799, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1800, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1801, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1802, 0, 0, -1 }, - { 0x1, 0x1, 10, 1751, -1, 36, 1, 3 }, - { 0x1000001, 0x1000001, 10, 1752, -1, 12, 1, 3 }, - { 0x0, 0x0, 10, -1, 1803, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1805, 0, 0, -1 }, - { 0x1, 0x1, 10, 1753, -1, 36, 1, 3 }, - { 0x1000001, 0x1000001, 10, 1754, -1, 12, 1, 3 }, - { 0x0, 0x0, 10, -1, 1807, 0, 0, -1 }, - { 0x0, 0x0, 10, -1, 1809, 0, 0, -1 }, + { 0x1, 0x21, 10, 1760, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1761, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, 1762, -1, 0, 1, 3 }, + { 0x1, 0x1, 10, 1763, -1, 12, 1, 3 }, + { 0x1, 0x1, 10, 1764, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1765, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, 375, -1, 0, 1, 3 }, + { 0x1, 0x1, 10, 1803, -1, 12, 1, 3 }, + { 0x1, 0x1, 10, 379, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1805, -1, 12, 1, 3 }, + { 0x1, 0x21, 10, 1770, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 10, 1771, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, -1, 1812, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1813, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1814, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1815, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1816, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1817, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1818, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1819, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1820, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1821, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1822, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1823, 0, 0, -1 }, + { 0x1, 0x1, 10, 1772, -1, 36, 1, 3 }, + { 0x1000001, 0x1000001, 10, 1773, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, -1, 1824, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1826, 0, 0, -1 }, + { 0x1, 0x1, 10, 1774, -1, 36, 1, 3 }, + { 0x1000001, 0x1000001, 10, 1775, -1, 12, 1, 3 }, + { 0x0, 0x0, 10, -1, 1828, 0, 0, -1 }, + { 0x0, 0x0, 10, -1, 1830, 0, 0, -1 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x0, 0x0, 11, 1755, -1, 0, 1, 3 }, - { 0x1, 0x1, 11, 1756, -1, 12, 1, 3 }, + { 0x0, 0x0, 11, 1776, -1, 0, 1, 3 }, + { 0x1, 0x1, 11, 1777, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x1, 0x1, 11, 1733, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 1754, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x0, 0x0, 11, 288, -1, 0, 1, 3 }, + { 0x0, 0x0, 11, 293, -1, 0, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x200001, 0x200001, 11, 1735, -1, 12, 1, 3 }, + { 0x200001, 0x200001, 11, 1756, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x1, 0x1, 11, 290, -1, 33, 1, 3 }, - { 0x0, 0x0, 11, 1761, -1, 0, 1, 3 }, - { 0x1, 0x1, 11, 1762, -1, 12, 1, 3 }, - { 0x1, 0x1, 11, 1763, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 11, 1764, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 295, -1, 33, 1, 3 }, + { 0x0, 0x0, 11, 1782, -1, 0, 1, 3 }, + { 0x1, 0x1, 11, 1783, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 1784, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 11, 1785, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x0, 0x0, 11, 1765, -1, 0, 1, 3 }, - { 0x1, 0x1, 11, 1766, -1, 12, 1, 3 }, + { 0x0, 0x0, 11, 1786, -1, 0, 1, 3 }, + { 0x1, 0x1, 11, 1787, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x0, 0x0, 11, 1779, -1, 0, 1, 3 }, - { 0x1, 0x1, 11, 1780, -1, 12, 1, 3 }, + { 0x0, 0x0, 11, 1800, -1, 0, 1, 3 }, + { 0x1, 0x1, 11, 1801, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x1, 0x1, 11, 1745, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 1766, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x0, 0x0, 11, 312, -1, 0, 1, 3 }, + { 0x0, 0x0, 11, 317, -1, 0, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x200001, 0x200001, 11, 1747, -1, 12, 1, 3 }, + { 0x200001, 0x200001, 11, 1768, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x1, 0x1, 11, 314, -1, 33, 1, 3 }, - { 0x0, 0x0, 11, 1785, -1, 0, 1, 3 }, - { 0x1, 0x1, 11, 1786, -1, 12, 1, 3 }, - { 0x1, 0x1, 11, 1787, -1, 33, 1, 3 }, - { 0x200001, 0x200001, 11, 1788, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 319, -1, 33, 1, 3 }, + { 0x0, 0x0, 11, 1806, -1, 0, 1, 3 }, + { 0x1, 0x1, 11, 1807, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 1808, -1, 33, 1, 3 }, + { 0x200001, 0x200001, 11, 1809, -1, 12, 1, 3 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, { 0x2, 0x3, 11, -1, -1, 37, 1, 5 }, - { 0x0, 0x0, 11, 1789, -1, 0, 1, 3 }, - { 0x1, 0x1, 11, 1790, -1, 12, 1, 3 }, + { 0x0, 0x0, 11, 1810, -1, 0, 1, 3 }, + { 0x1, 0x1, 11, 1811, -1, 12, 1, 3 }, { 0x1, 0x1, 11, -1, -1, 36, 1, 5 }, { 0x1, 0x1, 11, -1, -1, 36, 1, 5 }, - { 0x1, 0x1, 11, 1804, -1, 36, 1, 3 }, - { 0x1000001, 0x1000001, 11, 1806, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 1825, -1, 36, 1, 3 }, + { 0x1000001, 0x1000001, 11, 1827, -1, 12, 1, 3 }, { 0x1, 0x1, 11, -1, -1, 36, 1, 5 }, { 0x1, 0x1, 11, -1, -1, 36, 1, 5 }, - { 0x1, 0x1, 11, 1808, -1, 36, 1, 3 }, - { 0x1000001, 0x1000001, 11, 1810, -1, 12, 1, 3 }, + { 0x1, 0x1, 11, 1829, -1, 36, 1, 3 }, + { 0x1000001, 0x1000001, 11, 1831, -1, 12, 1, 3 }, + { 0x0, 0x0, 12, -1, -1, 0, 1, 14 }, { 0x0, 0x0, 12, -1, -1, 0, 1, 14 }, { 0x0, 0x0, 12, -1, -1, 0, 1, 14 }, - { 0x1, 0x1, 13, 258, 1198, 34, 1, 124 }, - { 0x1, 0x1, 13, 260, 1207, 34, 1, 124 }, - { 0x1, 0x1, 13, 262, 1216, 34, 1, 124 }, - { 0x1, 0x1, 13, 264, 1225, 34, 1, 124 }, - { 0x1, 0x1, 13, 266, 1234, 34, 1, 124 }, - { 0x1, 0x1, 13, 268, 1243, 34, 1, 124 }, - { 0x1, 0x1, 13, 270, 1252, 34, 1, 124 }, - { 0x1, 0x1, 13, 272, 1261, 34, 1, 124 }, - { 0x1, 0x1, 13, 274, 1270, 34, 1, 124 }, - { 0x1, 0x1, 13, 276, 1279, 34, 1, 124 }, - { 0x1, 0x1, 13, 278, 1289, 34, 1, 124 }, - { 0x1, 0x1, 13, 280, 1299, 34, 1, 124 }, - { 0x0, 0x0, 19, -1, 650, 0, 0, -1 }, - { 0x0, 0x0, 19, -1, 651, 0, 0, -1 }, - { 0x0, 0x0, 19, -1, 652, 0, 0, -1 }, - { 0x0, 0x0, 19, -1, 653, 0, 0, -1 }, - { 0x0, 0x0, 19, -1, 654, 0, 0, -1 }, - { 0x0, 0x0, 19, -1, 655, 0, 0, -1 }, + { 0x1, 0x1, 13, 262, 1211, 34, 1, 124 }, + { 0x1, 0x1, 13, 264, 1220, 34, 1, 124 }, + { 0x1, 0x1, 13, 266, 1229, 34, 1, 124 }, + { 0x1, 0x1, 13, 269, 1240, 34, 1, 124 }, + { 0x1, 0x1, 13, 271, 1249, 34, 1, 124 }, + { 0x1, 0x1, 13, 273, 1258, 34, 1, 124 }, + { 0x1, 0x1, 13, 275, 1267, 34, 1, 124 }, + { 0x1, 0x1, 13, 277, 1276, 34, 1, 124 }, + { 0x1, 0x1, 13, 279, 1285, 34, 1, 124 }, + { 0x1, 0x1, 13, 281, 1294, 34, 1, 124 }, + { 0x1, 0x1, 13, 283, 1304, 34, 1, 124 }, + { 0x1, 0x1, 13, 285, 1314, 34, 1, 124 }, { 0x0, 0x0, 19, -1, 656, 0, 0, -1 }, { 0x0, 0x0, 19, -1, 657, 0, 0, -1 }, { 0x0, 0x0, 19, -1, 658, 0, 0, -1 }, @@ -2125,19 +2180,25 @@ completer_table[] = { { 0x0, 0x0, 19, -1, 677, 0, 0, -1 }, { 0x0, 0x0, 19, -1, 678, 0, 0, -1 }, { 0x0, 0x0, 19, -1, 679, 0, 0, -1 }, - { 0x0, 0x0, 20, -1, 2340, 0, 0, -1 }, - { 0x0, 0x0, 20, -1, 2341, 0, 0, -1 }, - { 0x0, 0x0, 20, -1, 2356, 0, 0, -1 }, - { 0x0, 0x0, 20, -1, 2357, 0, 0, -1 }, - { 0x0, 0x0, 20, -1, 2362, 0, 0, -1 }, + { 0x0, 0x0, 19, -1, 680, 0, 0, -1 }, + { 0x0, 0x0, 19, -1, 681, 0, 0, -1 }, + { 0x0, 0x0, 19, -1, 682, 0, 0, -1 }, + { 0x0, 0x0, 19, -1, 683, 0, 0, -1 }, + { 0x0, 0x0, 19, -1, 684, 0, 0, -1 }, + { 0x0, 0x0, 19, -1, 685, 0, 0, -1 }, { 0x0, 0x0, 20, -1, 2363, 0, 0, -1 }, - { 0x0, 0x0, 21, 686, 2352, 0, 0, -1 }, - { 0x0, 0x0, 21, 687, 2354, 0, 0, -1 }, - { 0x0, 0x0, 23, -1, 2350, 0, 0, -1 }, - { 0x0, 0x0, 23, -1, 2351, 0, 0, -1 }, + { 0x0, 0x0, 20, -1, 2364, 0, 0, -1 }, + { 0x0, 0x0, 20, -1, 2379, 0, 0, -1 }, + { 0x0, 0x0, 20, -1, 2380, 0, 0, -1 }, + { 0x0, 0x0, 20, -1, 2385, 0, 0, -1 }, + { 0x0, 0x0, 20, -1, 2386, 0, 0, -1 }, + { 0x0, 0x0, 21, 692, 2375, 0, 0, -1 }, + { 0x0, 0x0, 21, 693, 2377, 0, 0, -1 }, + { 0x0, 0x0, 23, -1, 2373, 0, 0, -1 }, + { 0x0, 0x0, 23, -1, 2374, 0, 0, -1 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 6 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 6 }, - { 0x1, 0x1, 24, 1045, -1, 35, 1, 6 }, + { 0x1, 0x1, 24, 1055, -1, 35, 1, 6 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 6 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 6 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 6 }, @@ -2200,7 +2261,7 @@ completer_table[] = { { 0x1, 0x1, 24, -1, -1, 35, 1, 15 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, - { 0x1, 0x1, 24, 1066, -1, 35, 1, 17 }, + { 0x1, 0x1, 24, 1076, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, @@ -2299,7 +2360,7 @@ completer_table[] = { { 0x1, 0x1, 24, -1, -1, 35, 1, 21 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, - { 0x1, 0x1, 24, 1099, -1, 35, 1, 17 }, + { 0x1, 0x1, 24, 1109, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, { 0x1, 0x1, 24, -1, -1, 35, 1, 17 }, @@ -2338,5100 +2399,5157 @@ completer_table[] = { { 0x1, 0x1, 24, -1, -1, 35, 1, 21 }, { 0x1, 0x1, 24, -1, -1, 33, 1, 76 }, { 0x1, 0x1, 24, -1, -1, 33, 1, 76 }, - { 0x1, 0x1, 24, 1114, 1201, 35, 1, 129 }, - { 0x1, 0x1, 24, 1115, 1210, 35, 1, 129 }, - { 0x1, 0x1, 24, 1116, 1219, 35, 1, 129 }, - { 0x1, 0x1, 24, 1117, 1228, 35, 1, 129 }, - { 0x1, 0x1, 24, 1118, 1237, 35, 1, 129 }, - { 0x1, 0x1, 24, 1119, 1246, 35, 1, 129 }, - { 0x1, 0x1, 24, 1120, 1255, 35, 1, 129 }, - { 0x1, 0x1, 24, 1121, 1264, 35, 1, 129 }, - { 0x1, 0x1, 24, 1122, 1273, 35, 1, 129 }, - { 0x1, 0x1, 24, 1123, 1283, 35, 1, 129 }, - { 0x1, 0x1, 24, 1124, 1293, 35, 1, 129 }, - { 0x1, 0x1, 24, 1125, 1303, 35, 1, 129 }, - { 0x1, 0x1, 24, 1126, 1312, 35, 1, 141 }, - { 0x1, 0x1, 24, 1127, 1318, 35, 1, 141 }, - { 0x1, 0x1, 24, 1128, 1324, 35, 1, 141 }, - { 0x1, 0x1, 24, 1129, 1330, 35, 1, 141 }, - { 0x1, 0x1, 24, 1130, 1336, 35, 1, 141 }, - { 0x1, 0x1, 24, 1131, 1342, 35, 1, 141 }, - { 0x1, 0x1, 24, 1132, 1348, 35, 1, 141 }, - { 0x1, 0x1, 24, 1133, 1354, 35, 1, 141 }, - { 0x1, 0x1, 24, 1134, 1360, 35, 1, 141 }, - { 0x1, 0x1, 24, 1135, 1366, 35, 1, 141 }, - { 0x1, 0x1, 24, 1136, 1372, 35, 1, 141 }, - { 0x1, 0x1, 24, 1137, 1378, 35, 1, 141 }, - { 0x1, 0x1, 24, 1138, 1384, 35, 1, 141 }, - { 0x1, 0x1, 24, 1139, 1390, 35, 1, 141 }, - { 0x1, 0x1, 24, 1140, 1396, 35, 1, 141 }, - { 0x1, 0x1, 24, 1141, 1402, 35, 1, 141 }, - { 0x1, 0x1, 24, 1142, 1408, 35, 1, 141 }, - { 0x1, 0x1, 24, 1143, 1414, 35, 1, 141 }, - { 0x0, 0x0, 32, 2334, 2332, 0, 0, -1 }, - { 0x0, 0x0, 32, 2337, 2335, 0, 0, -1 }, - { 0x0, 0x0, 32, 2343, 2342, 0, 0, -1 }, - { 0x0, 0x0, 32, 2345, 2344, 0, 0, -1 }, - { 0x0, 0x0, 32, 2359, 2358, 0, 0, -1 }, - { 0x0, 0x0, 32, 2361, 2360, 0, 0, -1 }, - { 0x0, 0x0, 34, -1, 2353, 0, 0, -1 }, - { 0x0, 0x0, 34, -1, 2355, 0, 0, -1 }, - { 0x1, 0x1, 37, -1, 1899, 37, 1, 29 }, - { 0x1, 0x1, 37, -1, 1934, 37, 1, 29 }, - { 0x0, 0x0, 37, -1, 1937, 0, 0, -1 }, - { 0x1, 0x1, 37, -1, -1, 37, 1, 29 }, - { 0x1, 0x1, 37, -1, 1942, 37, 1, 29 }, - { 0x0, 0x0, 37, -1, 1945, 0, 0, -1 }, - { 0x1, 0x1, 37, -1, -1, 37, 1, 29 }, - { 0x0, 0x0, 37, -1, 1948, 0, 0, -1 }, - { 0x1, 0x1, 37, -1, -1, 37, 1, 29 }, - { 0x1, 0x1, 37, -1, 1951, 37, 1, 29 }, - { 0x1, 0x1, 37, -1, 1954, 37, 1, 29 }, - { 0x1, 0x1, 37, -1, 1987, 37, 1, 29 }, - { 0x3, 0x3, 37, -1, -1, 30, 1, 134 }, - { 0x0, 0x0, 37, 951, -1, 0, 1, 95 }, - { 0x0, 0x0, 37, -1, -1, 0, 1, 104 }, - { 0x0, 0x0, 37, 957, -1, 0, 1, 116 }, - { 0x3, 0x3, 37, -1, -1, 30, 1, 146 }, - { 0x0, 0x0, 37, 958, -1, 0, 1, 40 }, - { 0x0, 0x0, 39, -1, 818, 0, 0, -1 }, - { 0x0, 0x0, 39, -1, 826, 0, 0, -1 }, - { 0x0, 0x0, 39, 960, 822, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 477, 33, 1, 6 }, - { 0x18000001, 0x18000001, 39, -1, 485, 6, 1, 7 }, - { 0x3, 0x3, 39, 961, 481, 33, 1, 6 }, - { 0x0, 0x0, 39, -1, 830, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 497, 33, 1, 8 }, - { 0x0, 0x0, 39, -1, 834, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 509, 33, 1, 15 }, - { 0x0, 0x0, 39, -1, 839, 0, 0, -1 }, - { 0x0, 0x0, 39, -1, 843, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 532, 33, 1, 17 }, - { 0x3, 0x3, 39, -1, 536, 33, 1, 17 }, - { 0x0, 0x0, 39, -1, 847, 0, 0, -1 }, - { 0x0, 0x0, 39, -1, 851, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 556, 33, 1, 18 }, - { 0x18000001, 0x18000001, 39, -1, 560, 6, 1, 18 }, - { 0x0, 0x0, 39, -1, 855, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 572, 33, 1, 19 }, - { 0x0, 0x0, 39, -1, 859, 0, 0, -1 }, - { 0x0, 0x0, 39, -1, 863, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 592, 33, 1, 20 }, - { 0x18000001, 0x18000001, 39, -1, 596, 6, 1, 20 }, - { 0x0, 0x0, 39, -1, 867, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 608, 33, 1, 21 }, - { 0x0, 0x0, 39, -1, 872, 0, 0, -1 }, - { 0x0, 0x0, 39, -1, 876, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 631, 33, 1, 17 }, - { 0x3, 0x3, 39, -1, 635, 33, 1, 17 }, - { 0x0, 0x0, 39, -1, 880, 0, 0, -1 }, - { 0x3, 0x3, 39, -1, 647, 33, 1, 21 }, - { 0x0, 0x0, 40, 706, 817, 0, 0, -1 }, - { 0x0, 0x0, 40, 707, 825, 0, 0, -1 }, - { 0x0, 0x0, 40, 708, 821, 0, 0, -1 }, - { 0x1, 0x1, 40, 709, 476, 34, 1, 6 }, - { 0x10000001, 0x10000001, 40, 710, 484, 6, 1, 7 }, - { 0x1, 0x1, 40, 711, 480, 34, 1, 6 }, - { 0x0, 0x0, 40, 712, 829, 0, 0, -1 }, - { 0x1, 0x1, 40, 713, 496, 34, 1, 8 }, - { 0x0, 0x0, 40, 714, 833, 0, 0, -1 }, - { 0x1, 0x1, 40, 715, 508, 34, 1, 15 }, - { 0x0, 0x0, 40, 716, 838, 0, 0, -1 }, - { 0x0, 0x0, 40, 717, 842, 0, 0, -1 }, - { 0x1, 0x1, 40, 718, 531, 34, 1, 17 }, - { 0x1, 0x1, 40, 719, 535, 34, 1, 17 }, - { 0x0, 0x0, 40, 720, 846, 0, 0, -1 }, - { 0x0, 0x0, 40, 721, 850, 0, 0, -1 }, - { 0x1, 0x1, 40, 722, 555, 34, 1, 18 }, - { 0x10000001, 0x10000001, 40, 723, 559, 6, 1, 18 }, - { 0x0, 0x0, 40, 724, 854, 0, 0, -1 }, - { 0x1, 0x1, 40, 725, 571, 34, 1, 19 }, - { 0x0, 0x0, 40, 726, 858, 0, 0, -1 }, - { 0x0, 0x0, 40, 727, 862, 0, 0, -1 }, - { 0x1, 0x1, 40, 728, 591, 34, 1, 20 }, - { 0x10000001, 0x10000001, 40, 729, 595, 6, 1, 20 }, - { 0x0, 0x0, 40, 730, 866, 0, 0, -1 }, - { 0x1, 0x1, 40, 731, 607, 34, 1, 21 }, - { 0x0, 0x0, 40, 732, 871, 0, 0, -1 }, - { 0x0, 0x0, 40, 733, 875, 0, 0, -1 }, - { 0x1, 0x1, 40, 734, 630, 34, 1, 17 }, - { 0x1, 0x1, 40, 735, 634, 34, 1, 17 }, - { 0x0, 0x0, 40, 736, 879, 0, 0, -1 }, - { 0x1, 0x1, 40, 737, 646, 34, 1, 21 }, - { 0x800001, 0x800001, 40, -1, 965, 4, 1, 16 }, - { 0x1, 0x1, 40, 1845, 963, 4, 1, 16 }, - { 0x1, 0x1, 40, 803, 968, 4, 1, 22 }, - { 0x2, 0x3, 40, -1, 973, 20, 1, 67 }, - { 0x1, 0x1, 40, 1846, 971, 21, 1, 67 }, - { 0x0, 0x0, 41, -1, -1, 0, 1, 80 }, - { 0x0, 0x0, 41, -1, -1, 0, 1, 80 }, - { 0x0, 0x0, 41, -1, -1, 0, 1, 123 }, - { 0x1, 0x1, 43, 1144, 281, 38, 1, 1 }, - { 0x0, 0x0, 43, -1, 340, 0, 0, -1 }, - { 0x1, 0x1, 43, 1147, 291, 38, 1, 1 }, - { 0x0, 0x0, 43, -1, 360, 0, 0, -1 }, - { 0x0, 0x0, 43, -1, 294, 0, 0, -1 }, - { 0x0, 0x0, 43, -1, 304, 0, 0, -1 }, - { 0x1, 0x1, 43, 1152, 305, 38, 1, 1 }, - { 0x0, 0x0, 43, -1, 364, 0, 0, -1 }, - { 0x1, 0x1, 43, 1155, 315, 38, 1, 1 }, - { 0x0, 0x0, 43, -1, 384, 0, 0, -1 }, - { 0x0, 0x0, 43, -1, 318, 0, 0, -1 }, - { 0x0, 0x0, 43, -1, 328, 0, 0, -1 }, - { 0x0, 0x0, 43, 1028, 1906, 0, 0, -1 }, - { 0x0, 0x0, 43, 1029, 2439, 0, 1, 54 }, - { 0x0, 0x0, 43, 1030, 1958, 0, 0, -1 }, - { 0x0, 0x0, 43, 1031, -1, 0, 1, 49 }, - { 0x0, 0x0, 43, 935, -1, 0, 1, 0 }, - { 0x0, 0x0, 43, 936, -1, 0, 1, 0 }, - { 0x0, 0x0, 43, 937, -1, 0, 1, 0 }, - { 0x1, 0x1, 44, -1, 1418, 30, 1, 143 }, - { 0x1, 0x1, 44, 808, 1417, 30, 1, 142 }, - { 0x1, 0x1, 44, -1, 1422, 30, 1, 145 }, - { 0x1, 0x1, 44, 809, 1421, 30, 1, 144 }, - { 0x1, 0x1, 44, -1, 1426, 30, 1, 145 }, - { 0x1, 0x1, 44, 810, 1425, 30, 1, 144 }, - { 0x3, 0x3, 45, -1, 969, 3, 1, 22 }, - { 0x1, 0x1, 46, 1866, -1, 30, 1, 134 }, - { 0x1, 0x1, 46, 1897, -1, 30, 1, 146 }, - { 0x0, 0x0, 48, -1, -1, 0, 1, 40 }, - { 0x0, 0x0, 48, -1, -1, 0, 1, 40 }, - { 0x1, 0x1, 55, -1, 1419, 31, 1, 143 }, - { 0x1, 0x1, 55, -1, 1423, 31, 1, 145 }, - { 0x1, 0x1, 55, -1, 1427, 31, 1, 145 }, - { 0x0, 0x0, 55, -1, -1, 0, 1, 94 }, - { 0x2, 0x3, 55, -1, -1, 27, 1, 94 }, - { 0x1, 0x1, 55, -1, -1, 28, 1, 94 }, - { 0x0, 0x0, 64, 13, 447, 0, 1, 6 }, - { 0x0, 0x0, 64, 1046, 450, 0, 1, 6 }, - { 0x1, 0x1, 64, 1047, 452, 33, 1, 6 }, - { 0x1, 0x1, 64, 1048, 454, 34, 1, 6 }, - { 0x3, 0x3, 64, 1049, 456, 33, 1, 6 }, - { 0x0, 0x0, 64, 1050, 458, 0, 1, 6 }, - { 0x1, 0x1, 64, 1051, 460, 33, 1, 6 }, - { 0x1, 0x1, 64, 1052, 462, 34, 1, 6 }, - { 0x3, 0x3, 64, 1053, 464, 33, 1, 6 }, - { 0x1, 0x1, 64, 1054, 466, 6, 1, 7 }, - { 0x8000001, 0x8000001, 64, 1055, 468, 6, 1, 7 }, - { 0x10000001, 0x10000001, 64, 1056, 470, 6, 1, 7 }, - { 0x18000001, 0x18000001, 64, 1057, 472, 6, 1, 7 }, - { 0x0, 0x0, 64, 1058, 486, 0, 1, 8 }, - { 0x1, 0x1, 64, 1059, 488, 33, 1, 8 }, - { 0x1, 0x1, 64, 1060, 490, 34, 1, 8 }, - { 0x3, 0x3, 64, 1061, 492, 33, 1, 8 }, - { 0x0, 0x0, 64, 1062, 498, 0, 1, 15 }, - { 0x1, 0x1, 64, 1063, 500, 33, 1, 15 }, - { 0x1, 0x1, 64, 1064, 502, 34, 1, 15 }, - { 0x3, 0x3, 64, 1065, 504, 33, 1, 15 }, - { 0x0, 0x0, 64, 14, 510, 0, 1, 17 }, - { 0x0, 0x0, 64, 1067, 513, 0, 1, 17 }, - { 0x1, 0x1, 64, 1068, 515, 33, 1, 17 }, - { 0x1, 0x1, 64, 1069, 517, 34, 1, 17 }, - { 0x3, 0x3, 64, 1070, 519, 33, 1, 17 }, - { 0x0, 0x0, 64, 1071, 521, 0, 1, 17 }, - { 0x1, 0x1, 64, 1072, 523, 33, 1, 17 }, - { 0x1, 0x1, 64, 1073, 525, 34, 1, 17 }, - { 0x3, 0x3, 64, 1074, 527, 33, 1, 17 }, - { 0x0, 0x0, 64, 1075, 537, 0, 1, 18 }, - { 0x1, 0x1, 64, 1076, 539, 33, 1, 18 }, - { 0x1, 0x1, 64, 1077, 541, 34, 1, 18 }, - { 0x3, 0x3, 64, 1078, 543, 33, 1, 18 }, - { 0x1, 0x1, 64, 1079, 545, 6, 1, 18 }, - { 0x8000001, 0x8000001, 64, 1080, 547, 6, 1, 18 }, - { 0x10000001, 0x10000001, 64, 1081, 549, 6, 1, 18 }, - { 0x18000001, 0x18000001, 64, 1082, 551, 6, 1, 18 }, - { 0x0, 0x0, 64, 1083, 561, 0, 1, 19 }, - { 0x1, 0x1, 64, 1084, 563, 33, 1, 19 }, - { 0x1, 0x1, 64, 1085, 565, 34, 1, 19 }, - { 0x3, 0x3, 64, 1086, 567, 33, 1, 19 }, - { 0x0, 0x0, 64, 1087, 573, 0, 1, 20 }, - { 0x1, 0x1, 64, 1088, 575, 33, 1, 20 }, - { 0x1, 0x1, 64, 1089, 577, 34, 1, 20 }, - { 0x3, 0x3, 64, 1090, 579, 33, 1, 20 }, - { 0x1, 0x1, 64, 1091, 581, 6, 1, 20 }, - { 0x8000001, 0x8000001, 64, 1092, 583, 6, 1, 20 }, - { 0x10000001, 0x10000001, 64, 1093, 585, 6, 1, 20 }, - { 0x18000001, 0x18000001, 64, 1094, 587, 6, 1, 20 }, - { 0x0, 0x0, 64, 1095, 597, 0, 1, 21 }, - { 0x1, 0x1, 64, 1096, 599, 33, 1, 21 }, - { 0x1, 0x1, 64, 1097, 601, 34, 1, 21 }, - { 0x3, 0x3, 64, 1098, 603, 33, 1, 21 }, - { 0x0, 0x0, 64, 16, 609, 0, 1, 17 }, - { 0x0, 0x0, 64, 1100, 612, 0, 1, 17 }, - { 0x1, 0x1, 64, 1101, 614, 33, 1, 17 }, - { 0x1, 0x1, 64, 1102, 616, 34, 1, 17 }, - { 0x3, 0x3, 64, 1103, 618, 33, 1, 17 }, - { 0x0, 0x0, 64, 1104, 620, 0, 1, 17 }, - { 0x1, 0x1, 64, 1105, 622, 33, 1, 17 }, - { 0x1, 0x1, 64, 1106, 624, 34, 1, 17 }, - { 0x3, 0x3, 64, 1107, 626, 33, 1, 17 }, - { 0x0, 0x0, 64, 1108, 636, 0, 1, 21 }, - { 0x1, 0x1, 64, 1109, 638, 33, 1, 21 }, - { 0x1, 0x1, 64, 1110, 640, 34, 1, 21 }, - { 0x3, 0x3, 64, 1111, 642, 33, 1, 21 }, - { 0x3, 0x3, 65, 416, 1281, 33, 1, 128 }, - { 0x3, 0x3, 65, 417, 1291, 33, 1, 128 }, - { 0x3, 0x3, 65, 418, 1301, 33, 1, 128 }, - { 0x0, 0x0, 65, -1, 1306, 0, 1, 137 }, - { 0x0, 0x0, 65, -1, 1307, 0, 1, 137 }, - { 0x0, 0x0, 65, -1, 1308, 0, 1, 137 }, - { 0x0, 0x0, 106, 891, 1930, 0, 0, -1 }, - { 0x0, 0x0, 106, 892, 2377, 0, 1, 29 }, - { 0x0, 0x0, 106, 893, 1971, 0, 0, -1 }, - { 0x0, 0x0, 106, 894, 2381, 0, 1, 29 }, - { 0x0, 0x0, 108, -1, 1932, 0, 0, -1 }, - { 0x1, 0x1, 108, -1, 2378, 27, 1, 29 }, - { 0x0, 0x0, 108, -1, 1973, 0, 0, -1 }, - { 0x1, 0x1, 108, -1, 2382, 27, 1, 29 }, - { 0x0, 0x0, 109, 896, -1, 0, 1, 115 }, - { 0x1, 0x1, 110, -1, -1, 27, 1, 115 }, - { 0x0, 0x0, 111, 914, 2400, 0, 1, 1 }, - { 0x0, 0x0, 111, 1015, 285, 0, 0, -1 }, - { 0x0, 0x0, 111, 992, 348, 0, 0, -1 }, - { 0x0, 0x0, 111, -1, 356, 0, 0, -1 }, - { 0x0, 0x0, 111, 915, 2408, 0, 1, 1 }, - { 0x0, 0x0, 111, -1, 298, 0, 0, -1 }, - { 0x0, 0x0, 111, 1020, 299, 0, 0, -1 }, - { 0x0, 0x0, 111, 916, 2420, 0, 1, 1 }, - { 0x0, 0x0, 111, 1022, 309, 0, 0, -1 }, - { 0x0, 0x0, 111, 999, 372, 0, 0, -1 }, - { 0x0, 0x0, 111, -1, 380, 0, 0, -1 }, - { 0x0, 0x0, 111, 1156, 2427, 0, 1, 1 }, - { 0x0, 0x0, 111, -1, 322, 0, 0, -1 }, - { 0x0, 0x0, 111, 1027, 323, 0, 0, -1 }, - { 0x0, 0x0, 111, -1, 1916, 0, 0, -1 }, - { 0x1, 0x9, 111, -1, 2446, 33, 1, 54 }, - { 0x2, 0x3, 111, 1169, 1967, 27, 1, 49 }, - { 0x1, 0x1, 113, 1145, 2401, 37, 1, 1 }, - { 0x1, 0x1, 113, 1148, 2409, 37, 1, 1 }, - { 0x1, 0x1, 113, 1153, 2421, 37, 1, 1 }, - { 0x0, 0x0, 113, -1, 2432, 0, 1, 1 }, - { 0x0, 0x0, 114, 938, 2398, 0, 1, 1 }, - { 0x0, 0x0, 114, 991, 283, 0, 0, -1 }, - { 0x0, 0x0, 114, -1, 352, 0, 0, -1 }, - { 0x0, 0x0, 114, 1017, 354, 0, 0, -1 }, - { 0x0, 0x0, 114, -1, 2407, 0, 1, 1 }, - { 0x0, 0x0, 114, 1019, 296, 0, 0, -1 }, - { 0x0, 0x0, 114, 996, 301, 0, 0, -1 }, - { 0x0, 0x0, 114, 940, 2418, 0, 1, 1 }, - { 0x0, 0x0, 114, 998, 307, 0, 0, -1 }, - { 0x0, 0x0, 114, -1, 376, 0, 0, -1 }, - { 0x0, 0x0, 114, 1024, 378, 0, 0, -1 }, - { 0x0, 0x0, 114, -1, 2426, 0, 1, 1 }, - { 0x0, 0x0, 114, 1026, 320, 0, 0, -1 }, - { 0x0, 0x0, 114, 1003, 325, 0, 0, -1 }, - { 0x0, 0x0, 114, 911, 1914, 0, 0, -1 }, - { 0x0, 0x0, 114, 912, 2445, 0, 1, 54 }, - { 0x0, 0x0, 114, 913, 1966, 0, 1, 49 }, - { 0x1, 0x1, 114, -1, -1, 27, 1, 0 }, - { 0x1, 0x1, 114, -1, -1, 27, 1, 0 }, - { 0x1, 0x1, 114, -1, -1, 27, 1, 0 }, - { 0x1, 0x1, 115, -1, 2399, 37, 1, 1 }, - { 0x0, 0x0, 115, -1, 2412, 0, 1, 1 }, - { 0x1, 0x1, 115, -1, 2419, 37, 1, 1 }, - { 0x0, 0x0, 115, -1, 2431, 0, 1, 1 }, - { 0x0, 0x0, 116, 985, -1, 0, 1, 0 }, - { 0x0, 0x0, 116, 986, -1, 0, 1, 0 }, - { 0x0, 0x0, 116, 987, -1, 0, 1, 0 }, - { 0x3, 0x3, 116, 947, -1, 34, 1, 33 }, - { 0x3, 0x3, 116, 948, -1, 34, 1, 40 }, - { 0x1, 0x1, 117, -1, -1, 35, 1, 33 }, - { 0x1, 0x1, 117, -1, -1, 35, 1, 40 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 40 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 66 }, - { 0x1, 0x1, 118, -1, -1, 27, 1, 96 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 105 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 73 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 73 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 74 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 40 }, - { 0x1, 0x1, 118, -1, -1, 27, 1, 117 }, - { 0x1, 0x1, 118, -1, -1, 27, 1, 40 }, - { 0x0, 0x0, 118, -1, -1, 0, 1, 40 }, - { 0x0, 0x0, 119, -1, 2333, 0, 0, -1 }, - { 0x0, 0x0, 119, -1, 2336, 0, 0, -1 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 16 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 16 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 16 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 16 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 22 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 22 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 22 }, - { 0x1, 0x1, 120, -1, -1, 35, 1, 22 }, - { 0x1, 0x1, 120, -1, -1, 23, 1, 67 }, - { 0x1, 0x1, 120, -1, -1, 23, 1, 67 }, - { 0x1, 0x1, 120, -1, -1, 23, 1, 67 }, - { 0x1, 0x1, 120, -1, -1, 23, 1, 67 }, - { 0x1, 0x1, 120, 773, -1, 23, 1, 67 }, - { 0x9, 0x9, 120, 774, -1, 20, 1, 67 }, - { 0x0, 0x0, 124, 1816, -1, 0, 1, 0 }, - { 0x0, 0x0, 124, 1817, -1, 0, 1, 0 }, - { 0x1, 0x1, 124, -1, -1, 28, 1, 33 }, - { 0x1, 0x1, 124, -1, -1, 27, 1, 33 }, - { 0x1, 0x1, 124, -1, -1, 29, 1, 0 }, - { 0x1, 0x1, 124, -1, -1, 29, 1, 0 }, - { 0x1, 0x1, 124, -1, -1, 29, 1, 0 }, - { 0x1, 0x1, 124, -1, -1, 29, 1, 0 }, - { 0x0, 0x0, 124, -1, -1, 0, 1, 114 }, - { 0x1, 0x1, 124, -1, -1, 29, 1, 0 }, - { 0x1, 0x1, 124, -1, -1, 29, 1, 0 }, - { 0x1, 0x1, 124, -1, -1, 29, 1, 0 }, - { 0x0, 0x0, 124, 945, -1, 0, 1, 33 }, - { 0x0, 0x0, 124, 1037, -1, 0, 1, 40 }, - { 0x0, 0x0, 137, 1008, 2396, 0, 1, 1 }, - { 0x0, 0x0, 137, 898, 284, 0, 0, -1 }, - { 0x0, 0x0, 137, 920, 289, 0, 0, -1 }, - { 0x0, 0x0, 137, 921, 353, 0, 0, -1 }, - { 0x0, 0x0, 137, -1, 2406, 0, 1, 1 }, - { 0x0, 0x0, 137, 923, 295, 0, 0, -1 }, - { 0x0, 0x0, 137, -1, 302, 0, 0, -1 }, - { 0x0, 0x0, 137, 1010, 2416, 0, 1, 1 }, - { 0x0, 0x0, 137, 905, 308, 0, 0, -1 }, - { 0x0, 0x0, 137, 927, 313, 0, 0, -1 }, - { 0x0, 0x0, 137, 928, 377, 0, 0, -1 }, - { 0x0, 0x0, 137, -1, 2425, 0, 1, 1 }, - { 0x0, 0x0, 137, 930, 319, 0, 0, -1 }, - { 0x0, 0x0, 137, -1, 326, 0, 0, -1 }, - { 0x0, 0x0, 137, 2463, 1910, 0, 0, -1 }, - { 0x1, 0x1, 137, 2464, 2441, 33, 1, 54 }, - { 0x0, 0x0, 137, 2465, 1960, 0, 0, -1 }, - { 0x1, 0x1, 137, 2466, -1, 28, 1, 49 }, - { 0x1, 0x1, 138, -1, 2397, 37, 1, 1 }, - { 0x0, 0x0, 138, -1, 2411, 0, 1, 1 }, - { 0x1, 0x1, 138, -1, 2417, 37, 1, 1 }, - { 0x0, 0x0, 138, -1, 2430, 0, 1, 1 }, - { 0x1, 0x1, 141, 772, 967, 3, 1, 22 }, - { 0x0, 0x0, 142, 1818, -1, 0, 1, 33 }, - { 0x0, 0x0, 143, 778, 2393, 0, 1, 1 }, - { 0x0, 0x0, 143, -1, 286, 0, 0, -1 }, - { 0x0, 0x0, 143, 899, 287, 0, 0, -1 }, - { 0x0, 0x0, 143, 900, 355, 0, 0, -1 }, - { 0x0, 0x0, 143, 780, 2403, 0, 1, 1 }, - { 0x0, 0x0, 143, 902, 297, 0, 0, -1 }, - { 0x0, 0x0, 143, 924, 300, 0, 0, -1 }, - { 0x0, 0x0, 143, 784, 2413, 0, 1, 1 }, - { 0x0, 0x0, 143, -1, 310, 0, 0, -1 }, - { 0x0, 0x0, 143, 906, 311, 0, 0, -1 }, - { 0x0, 0x0, 143, 907, 379, 0, 0, -1 }, - { 0x0, 0x0, 143, 786, 2423, 0, 1, 1 }, - { 0x0, 0x0, 143, 909, 321, 0, 0, -1 }, - { 0x0, 0x0, 143, 931, 324, 0, 0, -1 }, - { 0x0, 0x0, 143, 1004, 1908, 0, 0, -1 }, - { 0x1, 0x1, 143, 1005, 2440, 36, 1, 54 }, - { 0x0, 0x0, 143, 1006, 1959, 0, 0, -1 }, - { 0x1, 0x1, 143, 1007, -1, 27, 1, 49 }, - { 0x1, 0x1, 144, -1, 2395, 37, 1, 1 }, - { 0x1, 0x1, 144, -1, 2405, 37, 1, 1 }, - { 0x1, 0x1, 144, -1, 2415, 37, 1, 1 }, - { 0x0, 0x0, 144, -1, 2429, 0, 1, 1 }, - { 0x0, 0x0, 145, -1, -1, 0, 1, 33 }, - { 0x0, 0x0, 145, 946, -1, 0, 1, 40 }, - { 0x0, 0x0, 146, -1, -1, 0, 1, 40 }, - { 0x0, 0x0, 146, -1, -1, 0, 1, 66 }, - { 0x0, 0x0, 146, -1, 2433, 0, 1, 63 }, - { 0x0, 0x0, 146, -1, -1, 0, 1, 81 }, - { 0x0, 0x0, 146, -1, -1, 0, 1, 81 }, - { 0x0, 0x0, 146, -1, -1, 0, 1, 85 }, - { 0x0, 0x0, 146, -1, -1, 0, 1, 40 }, - { 0x1, 0x1, 147, -1, 448, 12, 1, 6 }, - { 0x1, 0x1, 147, -1, 451, 12, 1, 6 }, - { 0x200001, 0x200001, 147, -1, 453, 12, 1, 6 }, - { 0x400001, 0x400001, 147, -1, 455, 12, 1, 6 }, - { 0x600001, 0x600001, 147, -1, 457, 12, 1, 6 }, - { 0x1, 0x1, 147, -1, 459, 12, 1, 6 }, - { 0x200001, 0x200001, 147, -1, 461, 12, 1, 6 }, - { 0x400001, 0x400001, 147, -1, 463, 12, 1, 6 }, - { 0x600001, 0x600001, 147, -1, 465, 12, 1, 6 }, - { 0x41, 0x41, 147, -1, 467, 6, 1, 7 }, - { 0x8000041, 0x8000041, 147, -1, 469, 6, 1, 7 }, - { 0x10000041, 0x10000041, 147, -1, 471, 6, 1, 7 }, - { 0x18000041, 0x18000041, 147, -1, 473, 6, 1, 7 }, - { 0x1, 0x1, 147, -1, 487, 12, 1, 8 }, - { 0x200001, 0x200001, 147, -1, 489, 12, 1, 8 }, - { 0x400001, 0x400001, 147, -1, 491, 12, 1, 8 }, - { 0x600001, 0x600001, 147, -1, 493, 12, 1, 8 }, - { 0x1, 0x1, 147, -1, 499, 12, 1, 15 }, - { 0x200001, 0x200001, 147, -1, 501, 12, 1, 15 }, - { 0x400001, 0x400001, 147, -1, 503, 12, 1, 15 }, - { 0x600001, 0x600001, 147, -1, 505, 12, 1, 15 }, - { 0x1, 0x1, 147, -1, 511, 12, 1, 17 }, - { 0x1, 0x1, 147, -1, 514, 12, 1, 17 }, - { 0x200001, 0x200001, 147, -1, 516, 12, 1, 17 }, - { 0x400001, 0x400001, 147, -1, 518, 12, 1, 17 }, - { 0x600001, 0x600001, 147, -1, 520, 12, 1, 17 }, - { 0x1, 0x1, 147, -1, 522, 12, 1, 17 }, - { 0x200001, 0x200001, 147, -1, 524, 12, 1, 17 }, - { 0x400001, 0x400001, 147, -1, 526, 12, 1, 17 }, - { 0x600001, 0x600001, 147, -1, 528, 12, 1, 17 }, - { 0x1, 0x1, 147, -1, 538, 12, 1, 18 }, - { 0x200001, 0x200001, 147, -1, 540, 12, 1, 18 }, - { 0x400001, 0x400001, 147, -1, 542, 12, 1, 18 }, - { 0x600001, 0x600001, 147, -1, 544, 12, 1, 18 }, - { 0x41, 0x41, 147, -1, 546, 6, 1, 18 }, - { 0x8000041, 0x8000041, 147, -1, 548, 6, 1, 18 }, - { 0x10000041, 0x10000041, 147, -1, 550, 6, 1, 18 }, - { 0x18000041, 0x18000041, 147, -1, 552, 6, 1, 18 }, - { 0x1, 0x1, 147, -1, 562, 12, 1, 19 }, - { 0x200001, 0x200001, 147, -1, 564, 12, 1, 19 }, - { 0x400001, 0x400001, 147, -1, 566, 12, 1, 19 }, - { 0x600001, 0x600001, 147, -1, 568, 12, 1, 19 }, - { 0x1, 0x1, 147, -1, 574, 12, 1, 20 }, - { 0x200001, 0x200001, 147, -1, 576, 12, 1, 20 }, - { 0x400001, 0x400001, 147, -1, 578, 12, 1, 20 }, - { 0x600001, 0x600001, 147, -1, 580, 12, 1, 20 }, - { 0x41, 0x41, 147, -1, 582, 6, 1, 20 }, - { 0x8000041, 0x8000041, 147, -1, 584, 6, 1, 20 }, - { 0x10000041, 0x10000041, 147, -1, 586, 6, 1, 20 }, - { 0x18000041, 0x18000041, 147, -1, 588, 6, 1, 20 }, - { 0x1, 0x1, 147, -1, 598, 12, 1, 21 }, - { 0x200001, 0x200001, 147, -1, 600, 12, 1, 21 }, - { 0x400001, 0x400001, 147, -1, 602, 12, 1, 21 }, - { 0x600001, 0x600001, 147, -1, 604, 12, 1, 21 }, - { 0x1, 0x1, 147, -1, 610, 12, 1, 17 }, - { 0x1, 0x1, 147, -1, 613, 12, 1, 17 }, - { 0x200001, 0x200001, 147, -1, 615, 12, 1, 17 }, - { 0x400001, 0x400001, 147, -1, 617, 12, 1, 17 }, - { 0x600001, 0x600001, 147, -1, 619, 12, 1, 17 }, - { 0x1, 0x1, 147, -1, 621, 12, 1, 17 }, - { 0x200001, 0x200001, 147, -1, 623, 12, 1, 17 }, - { 0x400001, 0x400001, 147, -1, 625, 12, 1, 17 }, - { 0x600001, 0x600001, 147, -1, 627, 12, 1, 17 }, - { 0x1, 0x1, 147, -1, 637, 12, 1, 21 }, - { 0x200001, 0x200001, 147, -1, 639, 12, 1, 21 }, - { 0x400001, 0x400001, 147, -1, 641, 12, 1, 21 }, - { 0x600001, 0x600001, 147, -1, 643, 12, 1, 21 }, - { 0x0, 0x0, 156, 648, -1, 0, 1, 75 }, - { 0x0, 0x0, 156, 649, -1, 0, 1, 75 }, - { 0x9, 0x9, 156, -1, 1202, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1211, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1220, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1229, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1238, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1247, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1256, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1265, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1274, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1284, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1294, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1304, 32, 1, 129 }, - { 0x9, 0x9, 156, -1, 1313, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1319, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1325, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1331, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1337, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1343, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1349, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1355, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1361, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1367, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1373, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1379, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1385, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1391, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1397, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1403, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1409, 32, 1, 141 }, - { 0x9, 0x9, 156, -1, 1415, 32, 1, 141 }, - { 0x0, 0x0, 157, 1032, 282, 0, 0, -1 }, - { 0x1, 0x1, 157, -1, 2402, 38, 1, 1 }, - { 0x0, 0x0, 157, 779, 339, 0, 0, -1 }, - { 0x0, 0x0, 157, 1033, 292, 0, 0, -1 }, - { 0x1, 0x1, 157, -1, 2410, 38, 1, 1 }, - { 0x0, 0x0, 157, 781, 359, 0, 0, -1 }, - { 0x0, 0x0, 157, 782, 293, 0, 0, -1 }, - { 0x0, 0x0, 157, 783, 303, 0, 0, -1 }, - { 0x0, 0x0, 157, 1034, 306, 0, 0, -1 }, - { 0x1, 0x1, 157, -1, 2422, 38, 1, 1 }, - { 0x0, 0x0, 157, 785, 363, 0, 0, -1 }, - { 0x0, 0x0, 157, -1, 316, 0, 0, -1 }, - { 0x1, 0x1, 157, -1, 2428, 38, 1, 1 }, - { 0x0, 0x0, 157, 787, 383, 0, 0, -1 }, - { 0x0, 0x0, 157, 788, 317, 0, 0, -1 }, - { 0x0, 0x0, 157, 789, 327, 0, 0, -1 }, - { 0x0, 0x0, 158, 1175, 1918, 0, 0, -1 }, - { 0x0, 0x0, 158, 1176, 2451, 0, 1, 54 }, - { 0x0, 0x0, 158, 1177, 1962, 0, 0, -1 }, - { 0x1, 0x1, 158, 1178, -1, 29, 1, 49 }, - { 0x0, 0x0, 159, -1, 1928, 0, 0, -1 }, - { 0x1, 0x9, 159, -1, 2458, 33, 1, 54 }, - { 0x6, 0x7, 159, -1, 1969, 27, 1, 49 }, - { 0x0, 0x0, 160, 1164, 1926, 0, 0, -1 }, - { 0x0, 0x0, 160, 1165, 2457, 0, 1, 54 }, - { 0x1, 0x1, 160, 1166, 1968, 29, 1, 49 }, - { 0x1, 0x1, 161, 1180, -1, 27, 1, 33 }, - { 0x0, 0x0, 162, 1811, 1922, 0, 0, -1 }, - { 0x1, 0x1, 162, 1812, 2453, 33, 1, 54 }, - { 0x0, 0x0, 162, 1813, 1964, 0, 0, -1 }, - { 0x3, 0x3, 162, 1814, -1, 28, 1, 49 }, - { 0x0, 0x0, 163, 1171, 1920, 0, 0, -1 }, - { 0x1, 0x1, 163, 1172, 2452, 36, 1, 54 }, - { 0x0, 0x0, 163, 1173, 1963, 0, 0, -1 }, - { 0x5, 0x5, 163, 1174, -1, 27, 1, 49 }, - { 0x0, 0x0, 164, -1, 2434, 0, 1, 63 }, - { 0x1, 0x1, 166, -1, -1, 28, 1, 33 }, - { 0x1, 0x1, 167, 2292, -1, 27, 1, 33 }, - { 0x1, 0x1, 167, 2293, -1, 27, 1, 33 }, - { 0x1, 0x1, 168, 1445, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1446, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1447, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1448, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1449, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1450, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1451, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1452, -1, 28, 1, 132 }, - { 0x1, 0x1, 168, 1453, -1, 28, 1, 133 }, - { 0x1, 0x1, 168, 1454, -1, 28, 1, 133 }, - { 0x1, 0x1, 168, 1455, -1, 28, 1, 133 }, - { 0x1, 0x1, 168, 1456, -1, 28, 1, 133 }, - { 0x1, 0x1, 168, 1457, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1458, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1459, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1460, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1461, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1462, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1463, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1464, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1465, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1466, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1467, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1468, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1469, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1470, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1471, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1472, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1473, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1474, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1475, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1476, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1477, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1478, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1479, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1480, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1481, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1482, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1483, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1484, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1485, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1486, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1487, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1488, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1489, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1490, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1491, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1492, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1493, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1494, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1495, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1496, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1497, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1498, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1499, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1500, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1501, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1502, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1503, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1504, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1505, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1506, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1507, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1508, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1509, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1510, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1511, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1512, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1513, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1514, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1515, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1516, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1517, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1518, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1519, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1520, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1521, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1522, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1523, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1524, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1525, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1526, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1527, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1528, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1529, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1530, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1531, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1532, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1533, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1534, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1535, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1536, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1537, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1538, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1539, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1540, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1541, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1542, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1543, -1, 28, 1, 128 }, - { 0x1, 0x1, 168, 1544, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1545, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1546, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1547, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1548, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1549, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1550, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1551, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1552, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1553, -1, 28, 1, 128 }, - { 0x1, 0x1, 168, 1554, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1555, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1556, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1557, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1558, -1, 28, 1, 125 }, - { 0x1, 0x1, 168, 1559, -1, 28, 1, 126 }, - { 0x1, 0x1, 168, 1560, -1, 28, 1, 127 }, - { 0x1, 0x1, 168, 1561, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1562, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1563, -1, 28, 1, 128 }, - { 0x1, 0x1, 168, 1564, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1565, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1566, -1, 28, 1, 129 }, - { 0x1, 0x1, 168, 1567, -1, 28, 1, 124 }, - { 0x1, 0x1, 168, 1568, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1569, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1570, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1571, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1572, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1573, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1574, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1575, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1576, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1577, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1578, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1579, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1580, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1581, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1582, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1583, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1584, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1585, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1586, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1587, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1588, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1589, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1590, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1591, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1592, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1593, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1594, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1595, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1596, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1597, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1598, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1599, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1600, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1601, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1602, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1603, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1604, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1605, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1606, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1607, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1608, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1609, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1610, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1611, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1612, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1613, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1614, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1615, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1616, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1617, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1618, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1619, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1620, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1621, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1622, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1623, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1624, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1625, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1626, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1627, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1628, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1629, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1630, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1631, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1632, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1633, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1634, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1635, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1636, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1637, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1638, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1639, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1640, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1641, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1642, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1643, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1644, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1645, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1646, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1647, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1648, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1649, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1650, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1651, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1652, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1653, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1654, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1655, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1656, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1657, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1658, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1659, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1660, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1661, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1662, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1663, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1664, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1665, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1666, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1667, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1668, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1669, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1670, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1671, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1672, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1673, -1, 28, 1, 138 }, - { 0x1, 0x1, 168, 1674, -1, 28, 1, 139 }, - { 0x1, 0x1, 168, 1675, -1, 28, 1, 140 }, - { 0x1, 0x1, 168, 1676, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1677, -1, 28, 1, 141 }, - { 0x1, 0x1, 168, 1678, -1, 28, 1, 137 }, - { 0x1, 0x1, 168, 1433, -1, 28, 1, 142 }, - { 0x1, 0x1, 168, 1434, -1, 28, 1, 143 }, - { 0x1, 0x1, 168, 1435, -1, 28, 1, 143 }, - { 0x1, 0x1, 168, 1436, -1, 28, 1, 142 }, - { 0x1, 0x1, 168, 1437, -1, 28, 1, 144 }, - { 0x1, 0x1, 168, 1438, -1, 28, 1, 145 }, - { 0x1, 0x1, 168, 1439, -1, 28, 1, 145 }, - { 0x1, 0x1, 168, 1440, -1, 28, 1, 144 }, - { 0x1, 0x1, 168, 1441, -1, 28, 1, 144 }, - { 0x1, 0x1, 168, 1442, -1, 28, 1, 145 }, - { 0x1, 0x1, 168, 1443, -1, 28, 1, 145 }, - { 0x1, 0x1, 168, 1444, -1, 28, 1, 144 }, - { 0x1, 0x1, 168, 1719, -1, 28, 1, 133 }, - { 0x1, 0x1, 168, 1720, -1, 28, 1, 133 }, - { 0x1, 0x1, 168, 1721, -1, 28, 1, 133 }, - { 0x1, 0x1, 168, 1722, -1, 28, 1, 133 }, - { 0x1, 0x1, 169, 1679, -1, 29, 1, 142 }, - { 0x1, 0x1, 169, 1680, -1, 29, 1, 143 }, - { 0x1, 0x1, 169, 1681, -1, 29, 1, 143 }, - { 0x1, 0x1, 169, 1682, -1, 29, 1, 142 }, - { 0x1, 0x1, 169, 1683, -1, 29, 1, 144 }, - { 0x1, 0x1, 169, 1684, -1, 29, 1, 145 }, - { 0x1, 0x1, 169, 1685, -1, 29, 1, 145 }, - { 0x1, 0x1, 169, 1686, -1, 29, 1, 144 }, - { 0x1, 0x1, 169, 1687, -1, 29, 1, 144 }, - { 0x1, 0x1, 169, 1688, -1, 29, 1, 145 }, - { 0x1, 0x1, 169, 1689, -1, 29, 1, 145 }, - { 0x1, 0x1, 169, 1690, -1, 29, 1, 144 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 132 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 257, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1867, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 259, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1868, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 261, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1869, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 263, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1870, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 265, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1871, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 267, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1872, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 269, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1873, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 271, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1874, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 273, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1875, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 128 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 275, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1876, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 128 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 277, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1877, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 125 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 126 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 127 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 128 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 279, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 129 }, - { 0x3, 0x3, 170, 1878, -1, 28, 1, 124 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1879, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1880, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1881, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1882, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1883, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1884, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1885, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1886, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1887, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1888, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1889, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1890, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1891, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1892, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1893, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1894, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1895, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 138 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 139 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 140 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 141 }, - { 0x3, 0x3, 170, 1896, -1, 28, 1, 137 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 142 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 143 }, - { 0x3, 0x3, 170, 797, -1, 28, 1, 143 }, - { 0x3, 0x3, 170, 798, -1, 28, 1, 142 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 144 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 145 }, - { 0x3, 0x3, 170, 799, -1, 28, 1, 145 }, - { 0x3, 0x3, 170, 800, -1, 28, 1, 144 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 144 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 145 }, - { 0x3, 0x3, 170, 801, -1, 28, 1, 145 }, - { 0x3, 0x3, 170, 802, -1, 28, 1, 144 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, 1835, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, 1836, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, 1837, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, 1838, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, 1839, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, 1840, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 131 }, - { 0x3, 0x3, 170, 1841, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 136 }, - { 0x3, 0x3, 170, 1842, -1, 28, 1, 135 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 130 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x3, 0x3, 170, -1, -1, 28, 1, 133 }, - { 0x0, 0x0, 171, -1, 330, 0, 0, -1 }, - { 0x0, 0x0, 171, 2490, 2460, 0, 1, 1 }, - { 0x0, 0x0, 171, -1, 334, 0, 0, -1 }, - { 0x0, 0x0, 171, 2492, 2462, 0, 1, 1 }, - { 0x11, 0x31, 172, 2394, 337, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 338, 12, 1, 4 }, - { 0x1, 0x1, 172, -1, 341, 37, 1, 4 }, - { 0x2000001, 0x2000001, 172, -1, 342, 12, 1, 4 }, - { 0x11, 0x11, 172, -1, 343, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 344, 12, 1, 4 }, - { 0x1, 0x1, 172, 1757, 345, 37, 1, 4 }, - { 0x2000001, 0x2000001, 172, -1, 347, 12, 1, 4 }, - { 0x11, 0x11, 172, 1759, 349, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 351, 12, 1, 4 }, - { 0x11, 0x31, 172, 2404, 357, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 358, 12, 1, 4 }, - { 0x11, 0x31, 172, 2414, 361, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 362, 12, 1, 4 }, - { 0x1, 0x1, 172, -1, 365, 37, 1, 4 }, - { 0x2000001, 0x2000001, 172, -1, 366, 12, 1, 4 }, - { 0x11, 0x11, 172, -1, 367, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 368, 12, 1, 4 }, - { 0x1, 0x1, 172, 1781, 369, 37, 1, 4 }, - { 0x2000001, 0x2000001, 172, -1, 371, 12, 1, 4 }, - { 0x11, 0x11, 172, 1783, 373, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 375, 12, 1, 4 }, - { 0x11, 0x31, 172, 2424, 381, 33, 1, 4 }, - { 0x2200001, 0x2200001, 172, -1, 382, 12, 1, 4 }, - { 0x1, 0x1, 172, -1, 385, 33, 1, 4 }, - { 0x200001, 0x200001, 172, -1, 386, 12, 1, 4 }, - { 0x1, 0x1, 172, -1, 389, 33, 1, 4 }, - { 0x200001, 0x200001, 172, -1, 390, 12, 1, 4 }, - { 0x1, 0x1, 173, -1, -1, 37, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x1, 0x1, 173, 1734, -1, 37, 1, 4 }, - { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 }, - { 0x11, 0x11, 173, 1736, -1, 33, 1, 4 }, - { 0x1, 0x1, 173, -1, -1, 37, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x11, 0x11, 173, -1, -1, 33, 1, 4 }, - { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 }, - { 0x1, 0x1, 173, -1, -1, 37, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 33, 1, 5 }, - { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 33, 1, 5 }, - { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 37, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x1, 0x1, 173, 1746, -1, 37, 1, 4 }, - { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 }, - { 0x11, 0x11, 173, 1748, -1, 33, 1, 4 }, - { 0x1, 0x1, 173, -1, -1, 37, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x11, 0x11, 173, -1, -1, 33, 1, 4 }, - { 0x2200001, 0x2200001, 173, -1, -1, 12, 1, 4 }, - { 0x1, 0x1, 173, -1, -1, 37, 1, 4 }, - { 0x2000001, 0x2000001, 173, -1, -1, 12, 1, 4 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 33, 1, 5 }, - { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 33, 1, 5 }, - { 0x200001, 0x200001, 173, -1, -1, 12, 1, 5 }, - { 0x0, 0x0, 173, -1, -1, 0, 1, 5 }, - { 0x1, 0x1, 173, -1, -1, 12, 1, 5 }, - { 0x9, 0x9, 173, -1, -1, 33, 1, 5 }, - { 0x1, 0x1, 173, 331, -1, 33, 1, 4 }, - { 0x1200001, 0x1200001, 173, -1, -1, 12, 1, 5 }, - { 0x200001, 0x200001, 173, 332, -1, 12, 1, 4 }, - { 0x9, 0x9, 173, -1, -1, 33, 1, 5 }, - { 0x1, 0x1, 173, 335, -1, 33, 1, 4 }, - { 0x1200001, 0x1200001, 173, -1, -1, 12, 1, 5 }, - { 0x200001, 0x200001, 173, 336, -1, 12, 1, 4 }, - { 0x0, 0x0, 174, -1, 1924, 0, 0, -1 }, - { 0x9, 0x9, 174, -1, 2454, 33, 1, 49 }, - { 0x0, 0x0, 174, -1, 1965, 0, 0, -1 }, - { 0x7, 0x7, 174, -1, -1, 27, 1, 49 }, - { 0x1, 0x1, 194, -1, -1, 27, 1, 10 }, - { 0x1, 0x1, 208, -1, -1, 29, 1, 0 }, - { 0x1, 0x1, 208, -1, -1, 29, 1, 0 }, - { 0x2, 0x3, 208, 978, -1, 27, 1, 33 }, - { 0x0, 0x0, 208, 979, -1, 0, 1, 33 }, - { 0x0, 0x0, 208, 980, -1, 0, 1, 0 }, - { 0x0, 0x0, 208, 981, -1, 0, 1, 0 }, - { 0x0, 0x0, 208, 982, -1, 0, 1, 0 }, - { 0x0, 0x0, 208, 983, -1, 0, 1, 0 }, - { 0x0, 0x0, 208, 2476, -1, 0, 1, 93 }, - { 0x0, 0x0, 208, 2477, -1, 0, 1, 93 }, - { 0x0, 0x0, 208, 2478, 812, 0, 0, -1 }, - { 0x1, 0x1, 209, -1, -1, 27, 1, 0 }, - { 0x1, 0x1, 209, -1, -1, 27, 1, 0 }, - { 0x1, 0x1, 210, -1, 1184, 32, 1, 132 }, - { 0x1, 0x1, 210, -1, 1186, 32, 1, 132 }, - { 0x1, 0x1, 210, -1, 1188, 32, 1, 132 }, - { 0x1, 0x1, 210, -1, 1190, 32, 1, 132 }, - { 0x1, 0x1, 210, -1, 1192, 32, 1, 133 }, - { 0x1, 0x1, 210, -1, 1194, 32, 1, 133 }, - { 0x1, 0x1, 210, -1, 1691, 32, 1, 130 }, - { 0x1, 0x1, 210, -1, 1693, 32, 1, 135 }, - { 0x1, 0x1, 210, -1, 1695, 32, 1, 130 }, - { 0x1, 0x1, 210, -1, 1697, 32, 1, 135 }, - { 0x1, 0x1, 210, -1, 1699, 32, 1, 130 }, - { 0x1, 0x1, 210, -1, 1701, 32, 1, 135 }, - { 0x1, 0x1, 210, 2296, 1703, 32, 1, 130 }, - { 0x1, 0x1, 210, 2297, 1706, 32, 1, 135 }, - { 0x0, 0x0, 211, -1, 2338, 0, 0, -1 }, - { 0x0, 0x0, 211, -1, 2339, 0, 0, -1 }, - { 0x0, 0x0, 211, -1, 2364, 0, 0, -1 }, - { 0x5, 0x5, 211, -1, 2367, 20, 1, 67 }, - { 0x0, 0x0, 215, 1826, 811, 0, 0, -1 }, - { 0x0, 0x0, 216, -1, 950, 0, 0, -1 }, - { 0x0, 0x0, 216, -1, 1039, 0, 0, -1 }, - { 0x0, 0x0, 216, -1, -1, 0, 1, 121 }, - { 0x0, 0x0, 216, -1, -1, 0, 1, 66 }, - { 0x1, 0x1, 216, 688, 1898, 36, 1, 65 }, - { 0x1, 0x1, 216, 689, 1933, 36, 1, 65 }, - { 0x0, 0x0, 216, 690, 1936, 0, 0, -1 }, - { 0x1, 0x1, 216, 691, -1, 36, 1, 65 }, - { 0x0, 0x0, 216, 1181, -1, 0, 1, 33 }, - { 0x1, 0x1, 216, 692, 1941, 36, 1, 65 }, - { 0x0, 0x0, 216, 693, 1944, 0, 0, -1 }, - { 0x1, 0x1, 216, 694, -1, 36, 1, 65 }, - { 0x0, 0x0, 216, 695, 1947, 0, 0, -1 }, - { 0x1, 0x1, 216, 696, -1, 36, 1, 65 }, - { 0x1, 0x1, 216, 697, 1950, 36, 1, 65 }, - { 0x1, 0x1, 216, 698, 1953, 36, 1, 65 }, - { 0x0, 0x0, 216, 1182, -1, 0, 1, 33 }, - { 0x1, 0x1, 216, 699, 1986, 36, 1, 65 }, - { 0x1, 0x1, 216, 700, -1, 31, 1, 134 }, - { 0x1, 0x1, 216, 220, 1195, 32, 1, 125 }, - { 0x1, 0x1, 216, 221, 1204, 32, 1, 125 }, - { 0x1, 0x1, 216, 222, 1213, 32, 1, 125 }, - { 0x1, 0x1, 216, 223, 1222, 32, 1, 125 }, - { 0x1, 0x1, 216, 224, 1231, 32, 1, 125 }, - { 0x1, 0x1, 216, 225, 1240, 32, 1, 125 }, - { 0x1, 0x1, 216, 226, 1249, 32, 1, 125 }, - { 0x1, 0x1, 216, 227, 1258, 32, 1, 125 }, - { 0x1, 0x1, 216, 228, 1267, 32, 1, 125 }, - { 0x1, 0x1, 216, 229, 1276, 32, 1, 125 }, - { 0x1, 0x1, 216, 230, 1286, 32, 1, 125 }, - { 0x1, 0x1, 216, 231, 1296, 32, 1, 125 }, - { 0x1, 0x1, 216, 232, 1309, 32, 1, 138 }, - { 0x1, 0x1, 216, 233, 1315, 32, 1, 138 }, - { 0x1, 0x1, 216, 234, 1321, 32, 1, 138 }, - { 0x1, 0x1, 216, 235, 1327, 32, 1, 138 }, - { 0x1, 0x1, 216, 236, 1333, 32, 1, 138 }, - { 0x1, 0x1, 216, 237, 1339, 32, 1, 138 }, - { 0x1, 0x1, 216, 238, 1345, 32, 1, 138 }, - { 0x1, 0x1, 216, 239, 1351, 32, 1, 138 }, - { 0x1, 0x1, 216, 240, 1357, 32, 1, 138 }, - { 0x1, 0x1, 216, 241, 1363, 32, 1, 138 }, - { 0x1, 0x1, 216, 242, 1369, 32, 1, 138 }, - { 0x1, 0x1, 216, 243, 1375, 32, 1, 138 }, - { 0x1, 0x1, 216, 244, 1381, 32, 1, 138 }, - { 0x1, 0x1, 216, 245, 1387, 32, 1, 138 }, - { 0x1, 0x1, 216, 246, 1393, 32, 1, 138 }, - { 0x1, 0x1, 216, 247, 1399, 32, 1, 138 }, - { 0x1, 0x1, 216, 248, 1405, 32, 1, 138 }, - { 0x1, 0x1, 216, 249, 1411, 32, 1, 138 }, - { 0x1, 0x1, 216, 704, -1, 31, 1, 146 }, - { 0x0, 0x0, 217, 1989, -1, 0, 1, 65 }, - { 0x0, 0x0, 217, 1990, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 24, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 1992, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 1993, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 1994, -1, 0, 1, 44 }, - { 0x0, 0x0, 217, 1995, -1, 0, 1, 39 }, - { 0x1, 0x1, 217, 1996, -1, 12, 1, 58 }, - { 0x0, 0x0, 217, 1997, -1, 0, 1, 53 }, - { 0x1000001, 0x1000001, 217, 1998, -1, 12, 1, 58 }, - { 0x1, 0x1, 217, 1999, -1, 36, 1, 53 }, - { 0x200001, 0x200001, 217, 2000, -1, 12, 1, 58 }, - { 0x1, 0x1, 217, 2001, -1, 33, 1, 53 }, - { 0x1200001, 0x1200001, 217, 2002, -1, 12, 1, 48 }, - { 0x9, 0x9, 217, 2003, -1, 33, 1, 48 }, - { 0x1, 0x1, 217, 2004, -1, 12, 1, 58 }, - { 0x0, 0x0, 217, 2005, -1, 0, 1, 53 }, - { 0x200001, 0x1200001, 217, 2006, -1, 12, 1, 58 }, - { 0x1, 0x9, 217, 2007, -1, 33, 1, 53 }, - { 0x1, 0x1, 217, 2008, -1, 12, 1, 58 }, - { 0x0, 0x0, 217, 2009, -1, 0, 1, 53 }, - { 0x1000001, 0x1000001, 217, 2010, -1, 12, 1, 58 }, - { 0x1, 0x1, 217, 2011, -1, 36, 1, 53 }, - { 0x200001, 0x200001, 217, 2012, -1, 12, 1, 58 }, - { 0x1, 0x1, 217, 2013, -1, 33, 1, 53 }, - { 0x1200001, 0x1200001, 217, 2014, -1, 12, 1, 48 }, - { 0x9, 0x9, 217, 2015, -1, 33, 1, 48 }, - { 0x1, 0x1, 217, 2016, -1, 12, 1, 58 }, - { 0x0, 0x0, 217, 2017, -1, 0, 1, 53 }, - { 0x200001, 0x1200001, 217, 2018, -1, 12, 1, 58 }, - { 0x1, 0x9, 217, 2019, -1, 33, 1, 53 }, - { 0x1, 0x1, 217, 2020, -1, 28, 1, 28 }, - { 0x0, 0x0, 217, 2021, -1, 0, 1, 28 }, - { 0x3, 0x3, 217, 2022, -1, 27, 1, 28 }, - { 0x1, 0x1, 217, 2023, -1, 27, 1, 28 }, - { 0x0, 0x0, 217, 2024, -1, 0, 1, 65 }, - { 0x0, 0x0, 217, 2025, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2026, -1, 0, 1, 28 }, - { 0x1, 0x1, 217, 2027, -1, 36, 1, 65 }, - { 0x1, 0x1, 217, 2028, -1, 37, 1, 28 }, - { 0x0, 0x0, 217, 2029, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2030, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2031, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2032, -1, 0, 1, 65 }, - { 0x0, 0x0, 217, 2033, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 36, -1, 0, 1, 28 }, - { 0x1, 0x1, 217, 2035, -1, 36, 1, 65 }, - { 0x1, 0x1, 217, 2036, -1, 37, 1, 28 }, - { 0x0, 0x0, 217, 2037, -1, 0, 1, 28 }, - { 0x1, 0x1, 217, 2038, -1, 36, 1, 65 }, - { 0x1, 0x1, 217, 2039, -1, 37, 1, 28 }, - { 0x0, 0x0, 217, 2040, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2041, -1, 0, 1, 65 }, - { 0x0, 0x0, 217, 2042, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 41, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2044, -1, 0, 1, 65 }, - { 0x0, 0x0, 217, 2045, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 42, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2047, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2048, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2049, -1, 0, 1, 48 }, - { 0x1, 0x1, 217, 2050, -1, 27, 1, 48 }, - { 0x1, 0x1, 217, 2051, -1, 28, 1, 48 }, - { 0x3, 0x3, 217, 2052, -1, 27, 1, 48 }, - { 0x1, 0x1, 217, 2053, -1, 29, 1, 48 }, - { 0x5, 0x5, 217, 2054, -1, 27, 1, 48 }, - { 0x3, 0x3, 217, 2055, -1, 28, 1, 48 }, - { 0x7, 0x7, 217, 2056, -1, 27, 1, 48 }, - { 0x0, 0x0, 217, 2057, -1, 0, 1, 48 }, - { 0x0, 0x0, 217, 2058, -1, 0, 1, 48 }, - { 0x0, 0x0, 217, 2059, -1, 0, 1, 48 }, - { 0x0, 0x0, 217, 2060, -1, 0, 1, 48 }, - { 0x1, 0x1, 217, 2061, -1, 28, 1, 28 }, - { 0x0, 0x0, 217, 2062, -1, 0, 1, 28 }, - { 0x3, 0x3, 217, 2063, -1, 27, 1, 28 }, - { 0x1, 0x1, 217, 2064, -1, 27, 1, 28 }, - { 0x0, 0x0, 217, 2065, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2066, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2067, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 51, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2069, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2070, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 56, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 2072, -1, 0, 1, 23 }, - { 0x0, 0x0, 217, 2073, -1, 0, 1, 23 }, - { 0x0, 0x0, 217, 2074, -1, 0, 1, 23 }, - { 0x0, 0x0, 217, 2075, -1, 0, 1, 23 }, - { 0x0, 0x0, 217, 2076, -1, 0, 1, 34 }, - { 0x0, 0x0, 217, 2077, -1, 0, 1, 65 }, - { 0x0, 0x0, 217, 2078, -1, 0, 1, 28 }, - { 0x0, 0x0, 217, 63, -1, 0, 1, 28 }, - { 0x1, 0x1, 218, 2080, -1, 34, 1, 65 }, - { 0x1, 0x1, 218, 2081, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2082, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2083, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2084, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2085, -1, 34, 1, 45 }, - { 0x1, 0x1, 218, 2086, -1, 34, 1, 41 }, - { 0x400001, 0x400001, 218, 2087, -1, 12, 1, 60 }, - { 0x1, 0x1, 218, 2088, -1, 34, 1, 55 }, - { 0x1400001, 0x1400001, 218, 2089, -1, 12, 1, 60 }, - { 0x5, 0x5, 218, 2090, -1, 34, 1, 55 }, - { 0x600001, 0x600001, 218, 2091, -1, 12, 1, 60 }, - { 0x3, 0x3, 218, 2092, -1, 33, 1, 55 }, - { 0x1600001, 0x1600001, 218, 2093, -1, 12, 1, 50 }, - { 0xb, 0xb, 218, 2094, -1, 33, 1, 50 }, - { 0x400001, 0x400001, 218, 2095, -1, 12, 1, 60 }, - { 0x1, 0x1, 218, 2096, -1, 34, 1, 55 }, - { 0x600001, 0x1600001, 218, 2097, -1, 12, 1, 60 }, - { 0x3, 0xb, 218, 2098, -1, 33, 1, 55 }, - { 0x400001, 0x400001, 218, 2099, -1, 12, 1, 60 }, - { 0x1, 0x1, 218, 2100, -1, 34, 1, 55 }, - { 0x1400001, 0x1400001, 218, 2101, -1, 12, 1, 60 }, - { 0x5, 0x5, 218, 2102, -1, 34, 1, 55 }, - { 0x600001, 0x600001, 218, 2103, -1, 12, 1, 60 }, - { 0x3, 0x3, 218, 2104, -1, 33, 1, 55 }, - { 0x1600001, 0x1600001, 218, 2105, -1, 12, 1, 50 }, - { 0xb, 0xb, 218, 2106, -1, 33, 1, 50 }, - { 0x400001, 0x400001, 218, 2107, -1, 12, 1, 60 }, - { 0x1, 0x1, 218, 2108, -1, 34, 1, 55 }, - { 0x600001, 0x1600001, 218, 2109, -1, 12, 1, 60 }, - { 0x3, 0xb, 218, 2110, -1, 33, 1, 55 }, - { 0x41, 0x41, 218, 2111, -1, 28, 1, 30 }, - { 0x1, 0x1, 218, 2112, -1, 34, 1, 30 }, - { 0x83, 0x83, 218, 2113, -1, 27, 1, 30 }, - { 0x81, 0x81, 218, 2114, -1, 27, 1, 30 }, - { 0x1, 0x1, 218, 2115, -1, 34, 1, 65 }, - { 0x1, 0x1, 218, 2116, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2117, -1, 34, 1, 30 }, - { 0x5, 0x5, 218, 2118, -1, 34, 1, 65 }, - { 0x9, 0x9, 218, 2119, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2120, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2121, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2122, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2123, -1, 34, 1, 65 }, - { 0x1, 0x1, 218, 2124, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2125, -1, 34, 1, 30 }, - { 0x5, 0x5, 218, 2126, -1, 34, 1, 65 }, - { 0x9, 0x9, 218, 2127, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2128, -1, 34, 1, 30 }, - { 0x5, 0x5, 218, 2129, -1, 34, 1, 65 }, - { 0x9, 0x9, 218, 2130, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2131, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2132, -1, 34, 1, 65 }, - { 0x1, 0x1, 218, 2133, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2134, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2135, -1, 34, 1, 65 }, - { 0x1, 0x1, 218, 2136, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2137, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2138, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2139, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2140, -1, 34, 1, 50 }, - { 0x81, 0x81, 218, 2141, -1, 27, 1, 50 }, - { 0x41, 0x41, 218, 2142, -1, 28, 1, 50 }, - { 0x83, 0x83, 218, 2143, -1, 27, 1, 50 }, - { 0x21, 0x21, 218, 2144, -1, 29, 1, 50 }, - { 0x85, 0x85, 218, 2145, -1, 27, 1, 50 }, - { 0x43, 0x43, 218, 2146, -1, 28, 1, 50 }, - { 0x87, 0x87, 218, 2147, -1, 27, 1, 50 }, - { 0x1, 0x1, 218, 2148, -1, 34, 1, 50 }, - { 0x1, 0x1, 218, 2149, -1, 34, 1, 50 }, - { 0x1, 0x1, 218, 2150, -1, 34, 1, 50 }, - { 0x1, 0x1, 218, 2151, -1, 34, 1, 50 }, - { 0x41, 0x41, 218, 2152, -1, 28, 1, 30 }, - { 0x1, 0x1, 218, 2153, -1, 34, 1, 30 }, - { 0x83, 0x83, 218, 2154, -1, 27, 1, 30 }, - { 0x81, 0x81, 218, 2155, -1, 27, 1, 30 }, - { 0x1, 0x1, 218, 2156, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2157, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2158, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2159, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2160, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2161, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2162, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2163, -1, 34, 1, 25 }, - { 0x1, 0x1, 218, 2164, -1, 34, 1, 25 }, - { 0x1, 0x1, 218, 2165, -1, 34, 1, 25 }, - { 0x1, 0x1, 218, 2166, -1, 34, 1, 25 }, - { 0x1, 0x1, 218, 2167, -1, 34, 1, 36 }, - { 0x1, 0x1, 218, 2168, -1, 34, 1, 65 }, - { 0x1, 0x1, 218, 2169, -1, 34, 1, 30 }, - { 0x1, 0x1, 218, 2170, -1, 34, 1, 30 }, - { 0x1, 0x1, 219, 2171, -1, 35, 1, 65 }, - { 0x1, 0x1, 219, 2172, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2173, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2174, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2175, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2176, -1, 35, 1, 46 }, - { 0x1, 0x1, 219, 2177, -1, 35, 1, 42 }, - { 0x800001, 0x800001, 219, 2178, -1, 12, 1, 61 }, - { 0x1, 0x1, 219, 2179, -1, 35, 1, 56 }, - { 0x1800001, 0x1800001, 219, 2180, -1, 12, 1, 61 }, - { 0x3, 0x3, 219, 2181, -1, 35, 1, 56 }, - { 0xa00001, 0xa00001, 219, 2182, -1, 12, 1, 61 }, - { 0x5, 0x5, 219, 2183, -1, 33, 1, 56 }, - { 0x1a00001, 0x1a00001, 219, 2184, -1, 12, 1, 51 }, - { 0xd, 0xd, 219, 2185, -1, 33, 1, 51 }, - { 0x800001, 0x800001, 219, 2186, -1, 12, 1, 61 }, - { 0x1, 0x1, 219, 2187, -1, 35, 1, 56 }, - { 0xa00001, 0x1a00001, 219, 2188, -1, 12, 1, 61 }, - { 0x5, 0xd, 219, 2189, -1, 33, 1, 56 }, - { 0x800001, 0x800001, 219, 2190, -1, 12, 1, 61 }, - { 0x1, 0x1, 219, 2191, -1, 35, 1, 56 }, - { 0x1800001, 0x1800001, 219, 2192, -1, 12, 1, 61 }, - { 0x3, 0x3, 219, 2193, -1, 35, 1, 56 }, - { 0xa00001, 0xa00001, 219, 2194, -1, 12, 1, 61 }, - { 0x5, 0x5, 219, 2195, -1, 33, 1, 56 }, - { 0x1a00001, 0x1a00001, 219, 2196, -1, 12, 1, 51 }, - { 0xd, 0xd, 219, 2197, -1, 33, 1, 51 }, - { 0x800001, 0x800001, 219, 2198, -1, 12, 1, 61 }, - { 0x1, 0x1, 219, 2199, -1, 35, 1, 56 }, - { 0xa00001, 0x1a00001, 219, 2200, -1, 12, 1, 61 }, - { 0x5, 0xd, 219, 2201, -1, 33, 1, 56 }, - { 0x81, 0x81, 219, 2202, -1, 28, 1, 31 }, - { 0x1, 0x1, 219, 2203, -1, 35, 1, 31 }, - { 0x103, 0x103, 219, 2204, -1, 27, 1, 31 }, - { 0x101, 0x101, 219, 2205, -1, 27, 1, 31 }, - { 0x1, 0x1, 219, 2206, -1, 35, 1, 65 }, - { 0x1, 0x1, 219, 2207, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2208, -1, 35, 1, 31 }, - { 0x3, 0x3, 219, 2209, -1, 35, 1, 65 }, - { 0x5, 0x5, 219, 2210, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2211, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2212, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2213, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2214, -1, 35, 1, 65 }, - { 0x1, 0x1, 219, 2215, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2216, -1, 35, 1, 31 }, - { 0x3, 0x3, 219, 2217, -1, 35, 1, 65 }, - { 0x5, 0x5, 219, 2218, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2219, -1, 35, 1, 31 }, - { 0x3, 0x3, 219, 2220, -1, 35, 1, 65 }, - { 0x5, 0x5, 219, 2221, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2222, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2223, -1, 35, 1, 65 }, - { 0x1, 0x1, 219, 2224, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2225, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2226, -1, 35, 1, 65 }, - { 0x1, 0x1, 219, 2227, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2228, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2229, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2230, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2231, -1, 35, 1, 51 }, - { 0x101, 0x101, 219, 2232, -1, 27, 1, 51 }, - { 0x81, 0x81, 219, 2233, -1, 28, 1, 51 }, - { 0x103, 0x103, 219, 2234, -1, 27, 1, 51 }, - { 0x41, 0x41, 219, 2235, -1, 29, 1, 51 }, - { 0x105, 0x105, 219, 2236, -1, 27, 1, 51 }, - { 0x83, 0x83, 219, 2237, -1, 28, 1, 51 }, - { 0x107, 0x107, 219, 2238, -1, 27, 1, 51 }, - { 0x1, 0x1, 219, 2239, -1, 35, 1, 51 }, - { 0x1, 0x1, 219, 2240, -1, 35, 1, 51 }, - { 0x1, 0x1, 219, 2241, -1, 35, 1, 51 }, - { 0x1, 0x1, 219, 2242, -1, 35, 1, 51 }, - { 0x81, 0x81, 219, 2243, -1, 28, 1, 31 }, - { 0x1, 0x1, 219, 2244, -1, 35, 1, 31 }, - { 0x103, 0x103, 219, 2245, -1, 27, 1, 31 }, - { 0x101, 0x101, 219, 2246, -1, 27, 1, 31 }, - { 0x1, 0x1, 219, 2247, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2248, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2249, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2250, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2251, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2252, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2253, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2254, -1, 35, 1, 26 }, - { 0x1, 0x1, 219, 2255, -1, 35, 1, 26 }, - { 0x1, 0x1, 219, 2256, -1, 35, 1, 26 }, - { 0x1, 0x1, 219, 2257, -1, 35, 1, 26 }, - { 0x1, 0x1, 219, 2258, -1, 35, 1, 37 }, - { 0x1, 0x1, 219, 2259, -1, 35, 1, 65 }, - { 0x1, 0x1, 219, 2260, -1, 35, 1, 31 }, - { 0x1, 0x1, 219, 2261, -1, 35, 1, 31 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 65 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1852, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 47 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 43 }, - { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 }, - { 0x3, 0x3, 220, 2435, -1, 34, 1, 57 }, - { 0x1c00001, 0x1c00001, 220, -1, -1, 12, 1, 62 }, - { 0x7, 0x7, 220, 2436, -1, 34, 1, 57 }, - { 0xe00001, 0xe00001, 220, -1, -1, 12, 1, 62 }, - { 0x7, 0x7, 220, 2437, -1, 33, 1, 57 }, - { 0x1e00001, 0x1e00001, 220, -1, -1, 12, 1, 52 }, - { 0xf, 0xf, 220, 2438, -1, 33, 1, 52 }, - { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 }, - { 0x3, 0x3, 220, 2443, -1, 34, 1, 57 }, - { 0xe00001, 0x1e00001, 220, -1, -1, 12, 1, 62 }, - { 0x7, 0xf, 220, 2444, -1, 33, 1, 57 }, - { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 }, - { 0x3, 0x3, 220, 2447, -1, 34, 1, 57 }, - { 0x1c00001, 0x1c00001, 220, -1, -1, 12, 1, 62 }, - { 0x7, 0x7, 220, 2448, -1, 34, 1, 57 }, - { 0xe00001, 0xe00001, 220, -1, -1, 12, 1, 62 }, - { 0x7, 0x7, 220, 2449, -1, 33, 1, 57 }, - { 0x1e00001, 0x1e00001, 220, -1, -1, 12, 1, 52 }, - { 0xf, 0xf, 220, 2450, -1, 33, 1, 52 }, - { 0xc00001, 0xc00001, 220, -1, -1, 12, 1, 62 }, - { 0x3, 0x3, 220, 2455, -1, 34, 1, 57 }, - { 0xe00001, 0x1e00001, 220, -1, -1, 12, 1, 62 }, - { 0x7, 0xf, 220, 2456, -1, 33, 1, 57 }, - { 0xc1, 0xc1, 220, -1, -1, 28, 1, 32 }, - { 0x3, 0x3, 220, 2375, -1, 34, 1, 32 }, - { 0x183, 0x183, 220, -1, -1, 27, 1, 32 }, - { 0x181, 0x181, 220, 2376, -1, 27, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 65 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1853, -1, 34, 1, 32 }, - { 0x7, 0x7, 220, -1, -1, 34, 1, 65 }, - { 0xb, 0xb, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1854, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 65 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1857, -1, 34, 1, 32 }, - { 0x7, 0x7, 220, -1, -1, 34, 1, 65 }, - { 0xb, 0xb, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1858, -1, 34, 1, 32 }, - { 0x7, 0x7, 220, -1, -1, 34, 1, 65 }, - { 0xb, 0xb, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1860, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 65 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1862, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 65 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1863, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 52 }, - { 0x181, 0x181, 220, -1, -1, 27, 1, 52 }, - { 0xc1, 0xc1, 220, -1, -1, 28, 1, 52 }, - { 0x183, 0x183, 220, -1, -1, 27, 1, 52 }, - { 0x61, 0x61, 220, -1, -1, 29, 1, 52 }, - { 0x185, 0x185, 220, -1, -1, 27, 1, 52 }, - { 0xc3, 0xc3, 220, -1, -1, 28, 1, 52 }, - { 0x187, 0x187, 220, -1, -1, 27, 1, 52 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 52 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 52 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 52 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 52 }, - { 0xc1, 0xc1, 220, -1, -1, 28, 1, 32 }, - { 0x3, 0x3, 220, 2379, -1, 34, 1, 32 }, - { 0x183, 0x183, 220, -1, -1, 27, 1, 32 }, - { 0x181, 0x181, 220, 2380, -1, 27, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 27 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 27 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 27 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 27 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 38 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 65 }, - { 0x3, 0x3, 220, -1, -1, 34, 1, 32 }, - { 0x3, 0x3, 220, 1865, -1, 34, 1, 32 }, - { 0x3, 0x3, 221, 395, 1197, 32, 1, 127 }, - { 0x3, 0x3, 221, 396, 1206, 32, 1, 127 }, - { 0x3, 0x3, 221, 397, 1215, 32, 1, 127 }, - { 0x3, 0x3, 221, 398, 1224, 32, 1, 127 }, - { 0x3, 0x3, 221, 399, 1233, 32, 1, 127 }, - { 0x3, 0x3, 221, 400, 1242, 32, 1, 127 }, - { 0x3, 0x3, 221, 401, 1251, 32, 1, 127 }, - { 0x3, 0x3, 221, 402, 1260, 32, 1, 127 }, - { 0x3, 0x3, 221, 403, 1269, 32, 1, 127 }, - { 0x3, 0x3, 221, 404, 1278, 32, 1, 127 }, - { 0x3, 0x3, 221, 405, 1288, 32, 1, 127 }, - { 0x3, 0x3, 221, 406, 1298, 32, 1, 127 }, - { 0x3, 0x3, 221, 419, 1311, 32, 1, 140 }, - { 0x3, 0x3, 221, 420, 1317, 32, 1, 140 }, - { 0x3, 0x3, 221, 421, 1323, 32, 1, 140 }, - { 0x3, 0x3, 221, 422, 1329, 32, 1, 140 }, - { 0x3, 0x3, 221, 423, 1335, 32, 1, 140 }, - { 0x3, 0x3, 221, 424, 1341, 32, 1, 140 }, - { 0x3, 0x3, 221, 425, 1347, 32, 1, 140 }, - { 0x3, 0x3, 221, 426, 1353, 32, 1, 140 }, - { 0x3, 0x3, 221, 427, 1359, 32, 1, 140 }, - { 0x3, 0x3, 221, 428, 1365, 32, 1, 140 }, - { 0x3, 0x3, 221, 429, 1371, 32, 1, 140 }, - { 0x3, 0x3, 221, 430, 1377, 32, 1, 140 }, - { 0x3, 0x3, 221, 431, 1383, 32, 1, 140 }, - { 0x3, 0x3, 221, 432, 1389, 32, 1, 140 }, - { 0x3, 0x3, 221, 433, 1395, 32, 1, 140 }, - { 0x3, 0x3, 221, 434, 1401, 32, 1, 140 }, - { 0x3, 0x3, 221, 435, 1407, 32, 1, 140 }, - { 0x3, 0x3, 221, 436, 1413, 32, 1, 140 }, - { 0x1, 0x1, 222, -1, -1, 28, 1, 33 }, - { 0x1, 0x1, 222, -1, -1, 28, 1, 33 }, - { 0x0, 0x0, 229, 804, -1, 0, 1, 134 }, - { 0x0, 0x0, 229, 805, -1, 0, 1, 146 }, - { 0x1, 0x1, 230, -1, 1704, 33, 1, 131 }, - { 0x1, 0x1, 230, -1, 1707, 33, 1, 136 }, - { 0x0, 0x0, 230, -1, 1709, 0, 1, 130 }, - { 0x0, 0x0, 230, -1, 1710, 0, 1, 130 }, - { 0x0, 0x0, 231, 738, 816, 0, 0, -1 }, - { 0x0, 0x0, 231, 739, 824, 0, 0, -1 }, - { 0x0, 0x0, 231, 740, 820, 0, 0, -1 }, - { 0x1, 0x1, 231, 741, 475, 33, 1, 6 }, - { 0x8000001, 0x8000001, 231, 742, 483, 6, 1, 7 }, - { 0x1, 0x1, 231, 743, 479, 33, 1, 6 }, - { 0x0, 0x0, 231, 744, 828, 0, 0, -1 }, - { 0x1, 0x1, 231, 745, 495, 33, 1, 8 }, - { 0x0, 0x0, 231, 746, 832, 0, 0, -1 }, - { 0x1, 0x1, 231, 747, 507, 33, 1, 15 }, - { 0x0, 0x0, 231, 748, 837, 0, 0, -1 }, - { 0x0, 0x0, 231, 749, 841, 0, 0, -1 }, - { 0x1, 0x1, 231, 750, 530, 33, 1, 17 }, - { 0x1, 0x1, 231, 751, 534, 33, 1, 17 }, - { 0x0, 0x0, 231, 752, 845, 0, 0, -1 }, - { 0x0, 0x0, 231, 753, 849, 0, 0, -1 }, - { 0x1, 0x1, 231, 754, 554, 33, 1, 18 }, - { 0x8000001, 0x8000001, 231, 755, 558, 6, 1, 18 }, - { 0x0, 0x0, 231, 756, 853, 0, 0, -1 }, - { 0x1, 0x1, 231, 757, 570, 33, 1, 19 }, - { 0x0, 0x0, 231, 758, 857, 0, 0, -1 }, - { 0x0, 0x0, 231, 759, 861, 0, 0, -1 }, - { 0x1, 0x1, 231, 760, 590, 33, 1, 20 }, - { 0x8000001, 0x8000001, 231, 761, 594, 6, 1, 20 }, - { 0x0, 0x0, 231, 762, 865, 0, 0, -1 }, - { 0x1, 0x1, 231, 763, 606, 33, 1, 21 }, - { 0x0, 0x0, 231, 764, 870, 0, 0, -1 }, - { 0x0, 0x0, 231, 765, 874, 0, 0, -1 }, - { 0x1, 0x1, 231, 766, 629, 33, 1, 17 }, - { 0x1, 0x1, 231, 767, 633, 33, 1, 17 }, - { 0x0, 0x0, 231, 768, 878, 0, 0, -1 }, - { 0x1, 0x1, 231, 769, 645, 33, 1, 21 }, - { 0x0, 0x0, 232, 2300, 815, 0, 0, -1 }, - { 0x0, 0x0, 232, 2301, 823, 0, 0, -1 }, - { 0x0, 0x0, 232, 2302, 819, 0, 0, -1 }, - { 0x0, 0x0, 232, 2303, 474, 0, 1, 6 }, - { 0x1, 0x1, 232, 2304, 482, 6, 1, 7 }, - { 0x0, 0x0, 232, 2305, 478, 0, 1, 6 }, - { 0x0, 0x0, 232, 2306, 827, 0, 0, -1 }, - { 0x0, 0x0, 232, 2307, 494, 0, 1, 8 }, - { 0x0, 0x0, 232, 2308, 831, 0, 0, -1 }, - { 0x0, 0x0, 232, 2309, 506, 0, 1, 15 }, - { 0x0, 0x0, 232, 2310, 836, 0, 0, -1 }, - { 0x0, 0x0, 232, 2311, 840, 0, 0, -1 }, - { 0x0, 0x0, 232, 2312, 529, 0, 1, 17 }, - { 0x0, 0x0, 232, 2313, 533, 0, 1, 17 }, - { 0x0, 0x0, 232, 2314, 844, 0, 0, -1 }, - { 0x0, 0x0, 232, 2315, 848, 0, 0, -1 }, - { 0x0, 0x0, 232, 2316, 553, 0, 1, 18 }, - { 0x1, 0x1, 232, 2317, 557, 6, 1, 18 }, - { 0x0, 0x0, 232, 2318, 852, 0, 0, -1 }, - { 0x0, 0x0, 232, 2319, 569, 0, 1, 19 }, - { 0x0, 0x0, 232, 2320, 856, 0, 0, -1 }, - { 0x0, 0x0, 232, 2321, 860, 0, 0, -1 }, - { 0x0, 0x0, 232, 2322, 589, 0, 1, 20 }, - { 0x1, 0x1, 232, 2323, 593, 6, 1, 20 }, - { 0x0, 0x0, 232, 2324, 864, 0, 0, -1 }, - { 0x0, 0x0, 232, 2325, 605, 0, 1, 21 }, - { 0x0, 0x0, 232, 2326, 869, 0, 0, -1 }, - { 0x0, 0x0, 232, 2327, 873, 0, 0, -1 }, - { 0x0, 0x0, 232, 2328, 628, 0, 1, 17 }, - { 0x0, 0x0, 232, 2329, 632, 0, 1, 17 }, - { 0x0, 0x0, 232, 2330, 877, 0, 0, -1 }, - { 0x0, 0x0, 232, 2331, 644, 0, 1, 21 }, - { 0x1, 0x1, 232, 770, 964, 27, 1, 16 }, - { 0x0, 0x0, 232, 771, 962, 0, 1, 16 }, - { 0x0, 0x0, 232, 1012, 966, 0, 1, 22 }, - { 0x0, 0x1, 232, 974, 972, 20, 1, 67 }, - { 0x0, 0x0, 232, 108, 970, 0, 1, 67 }, - { 0x1, 0x1, 235, -1, -1, 29, 1, 0 }, - { 0x0, 0x0, 235, -1, -1, 0, 1, 0 }, - { 0x1, 0x1, 235, 2472, -1, 27, 1, 0 }, - { 0x1, 0x1, 235, 2473, -1, 27, 1, 0 }, - { 0x1, 0x1, 235, 2474, -1, 27, 1, 0 }, - { 0x1, 0x1, 235, 2475, -1, 27, 1, 0 }, - { 0x0, 0x0, 256, -1, 1929, 0, 0, -1 }, - { 0x0, 0x0, 256, -1, 1931, 0, 0, -1 }, - { 0x1, 0x1, 256, -1, -1, 28, 1, 29 }, - { 0x1, 0x1, 256, -1, -1, 28, 1, 29 }, - { 0x0, 0x0, 256, -1, 1970, 0, 0, -1 }, - { 0x0, 0x0, 256, -1, 1972, 0, 0, -1 }, - { 0x1, 0x1, 256, -1, -1, 28, 1, 29 }, - { 0x1, 0x1, 256, -1, -1, 28, 1, 29 }, - { 0x0, 0x0, 258, 22, -1, 0, 1, 0 }, - { 0x0, 0x0, 258, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 258, -1, -1, 0, 1, 0 }, - { 0x0, 0x1, 258, -1, -1, 29, 1, 0 }, - { 0x0, 0x1, 258, -1, -1, 29, 1, 0 }, - { 0x0, 0x1, 258, -1, -1, 29, 1, 0 }, - { 0x0, 0x1, 258, -1, -1, 29, 1, 0 }, - { 0x0, 0x1, 258, -1, -1, 29, 1, 0 }, - { 0x0, 0x0, 258, 176, -1, 0, 1, 0 }, - { 0x0, 0x1, 258, -1, -1, 29, 1, 0 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 64 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 64 }, - { 0x0, 0x0, 259, -1, 1905, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1907, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1909, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1911, 0, 0, -1 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 49 }, - { 0x0, 0x0, 259, -1, 1913, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1915, 0, 0, -1 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x0, 0x0, 259, -1, 1917, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1919, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1921, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1923, 0, 0, -1 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 49 }, - { 0x0, 0x0, 259, -1, 1925, 0, 0, -1 }, - { 0x0, 0x0, 259, -1, 1927, 0, 0, -1 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, -1, -1, 12, 1, 59 }, - { 0x1, 0x1, 259, 329, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, 387, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, 333, -1, 12, 1, 2 }, - { 0x1, 0x1, 259, 391, -1, 12, 1, 2 }, - { 0x0, 0x0, 260, -1, 1912, 0, 0, -1 }, - { 0x9, 0x9, 260, -1, 2442, 33, 1, 49 }, - { 0x0, 0x0, 260, 1162, 1961, 0, 0, -1 }, - { 0x3, 0x3, 260, 1163, -1, 27, 1, 49 }, - { 0x0, 0x0, 264, 2369, -1, 0, 1, 0 }, - { 0x3, 0x3, 265, -1, -1, 27, 1, 0 }, - { 0x3, 0x3, 265, -1, -1, 27, 1, 0 }, - { 0x3, 0x3, 265, -1, -1, 27, 1, 0 }, - { 0x3, 0x3, 265, -1, -1, 27, 1, 0 }, - { 0x1, 0x1, 266, 2468, -1, 28, 1, 0 }, - { 0x1, 0x1, 266, 2469, -1, 28, 1, 0 }, - { 0x1, 0x1, 266, 2470, -1, 28, 1, 0 }, - { 0x1, 0x1, 266, 2471, -1, 28, 1, 0 }, - { 0x1, 0x1, 267, -1, -1, 27, 1, 93 }, - { 0x1, 0x1, 267, -1, -1, 27, 1, 93 }, - { 0x0, 0x0, 267, -1, 813, 0, 0, -1 }, - { 0x0, 0x0, 268, 2481, 2346, 0, 0, -1 }, - { 0x0, 0x0, 268, 2482, 2348, 0, 0, -1 }, - { 0x0, 0x0, 269, -1, 2347, 0, 0, -1 }, - { 0x0, 0x0, 269, -1, 2349, 0, 0, -1 }, - { 0x0, 0x0, 270, -1, -1, 0, 1, 40 }, - { 0x0, 0x0, 270, -1, -1, 0, 1, 40 }, - { 0x0, 0x0, 275, -1, -1, 0, 1, 33 }, - { 0x0, 0x0, 279, -1, 1935, 0, 1, 29 }, - { 0x0, 0x0, 280, -1, -1, 0, 1, 0 }, - { 0x0, 0x0, 280, -1, -1, 0, 1, 71 }, - { 0x0, 0x0, 280, 1723, 2459, 0, 1, 1 }, - { 0x0, 0x0, 280, -1, 388, 0, 0, -1 }, - { 0x0, 0x0, 280, 1725, 2461, 0, 1, 1 }, - { 0x0, 0x0, 280, -1, 392, 0, 0, -1 }, + { 0x1, 0x1, 24, 1125, 1214, 35, 1, 130 }, + { 0x1, 0x1, 24, 1126, 1223, 35, 1, 130 }, + { 0x1, 0x1, 24, 1127, 1232, 35, 1, 130 }, + { 0x1, 0x1, 24, 1128, 1243, 35, 1, 130 }, + { 0x1, 0x1, 24, 1129, 1252, 35, 1, 130 }, + { 0x1, 0x1, 24, 1130, 1261, 35, 1, 130 }, + { 0x1, 0x1, 24, 1131, 1270, 35, 1, 130 }, + { 0x1, 0x1, 24, 1132, 1279, 35, 1, 130 }, + { 0x1, 0x1, 24, 1133, 1288, 35, 1, 130 }, + { 0x1, 0x1, 24, 1134, 1298, 35, 1, 130 }, + { 0x1, 0x1, 24, 1135, 1308, 35, 1, 130 }, + { 0x1, 0x1, 24, 1136, 1318, 35, 1, 130 }, + { 0x1, 0x1, 24, 1137, 1327, 35, 1, 144 }, + { 0x1, 0x1, 24, 1138, 1333, 35, 1, 144 }, + { 0x1, 0x1, 24, 1139, 1339, 35, 1, 144 }, + { 0x1, 0x1, 24, 1140, 1345, 35, 1, 144 }, + { 0x1, 0x1, 24, 1141, 1351, 35, 1, 144 }, + { 0x1, 0x1, 24, 1142, 1357, 35, 1, 144 }, + { 0x1, 0x1, 24, 1143, 1363, 35, 1, 144 }, + { 0x1, 0x1, 24, 1144, 1369, 35, 1, 144 }, + { 0x1, 0x1, 24, 1145, 1375, 35, 1, 144 }, + { 0x1, 0x1, 24, 1146, 1381, 35, 1, 144 }, + { 0x1, 0x1, 24, 1147, 1387, 35, 1, 144 }, + { 0x1, 0x1, 24, 1148, 1393, 35, 1, 144 }, + { 0x1, 0x1, 24, 1149, 1399, 35, 1, 144 }, + { 0x1, 0x1, 24, 1150, 1405, 35, 1, 144 }, + { 0x1, 0x1, 24, 1151, 1411, 35, 1, 144 }, + { 0x1, 0x1, 24, 1152, 1417, 35, 1, 144 }, + { 0x1, 0x1, 24, 1153, 1423, 35, 1, 144 }, + { 0x1, 0x1, 24, 1154, 1429, 35, 1, 144 }, + { 0x0, 0x0, 33, 2357, 2355, 0, 0, -1 }, + { 0x0, 0x0, 33, 2360, 2358, 0, 0, -1 }, + { 0x0, 0x0, 33, 2366, 2365, 0, 0, -1 }, + { 0x0, 0x0, 33, 2368, 2367, 0, 0, -1 }, + { 0x0, 0x0, 33, 2382, 2381, 0, 0, -1 }, + { 0x0, 0x0, 33, 2384, 2383, 0, 0, -1 }, + { 0x0, 0x0, 35, -1, 2376, 0, 0, -1 }, + { 0x0, 0x0, 35, -1, 2378, 0, 0, -1 }, + { 0x1, 0x1, 38, -1, 1922, 37, 1, 29 }, + { 0x1, 0x1, 38, -1, 1957, 37, 1, 29 }, + { 0x0, 0x0, 38, -1, 1960, 0, 0, -1 }, + { 0x1, 0x1, 38, -1, -1, 37, 1, 29 }, + { 0x1, 0x1, 38, -1, 1965, 37, 1, 29 }, + { 0x0, 0x0, 38, -1, 1968, 0, 0, -1 }, + { 0x1, 0x1, 38, -1, -1, 37, 1, 29 }, + { 0x0, 0x0, 38, -1, 1971, 0, 0, -1 }, + { 0x1, 0x1, 38, -1, -1, 37, 1, 29 }, + { 0x1, 0x1, 38, -1, 1974, 37, 1, 29 }, + { 0x1, 0x1, 38, -1, 1977, 37, 1, 29 }, + { 0x1, 0x1, 38, -1, 2010, 37, 1, 29 }, + { 0x3, 0x3, 38, -1, -1, 30, 1, 137 }, + { 0x0, 0x0, 38, 960, -1, 0, 1, 95 }, + { 0x0, 0x0, 38, -1, -1, 0, 1, 104 }, + { 0x0, 0x0, 38, 966, -1, 0, 1, 116 }, + { 0x3, 0x3, 38, -1, -1, 30, 1, 149 }, + { 0x0, 0x0, 38, 967, -1, 0, 1, 40 }, + { 0x0, 0x0, 40, -1, 825, 0, 0, -1 }, + { 0x0, 0x0, 40, -1, 833, 0, 0, -1 }, + { 0x0, 0x0, 40, 969, 829, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 483, 33, 1, 6 }, + { 0x18000001, 0x18000001, 40, -1, 491, 6, 1, 7 }, + { 0x3, 0x3, 40, 970, 487, 33, 1, 6 }, + { 0x0, 0x0, 40, -1, 837, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 503, 33, 1, 8 }, + { 0x0, 0x0, 40, -1, 841, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 515, 33, 1, 15 }, + { 0x0, 0x0, 40, -1, 846, 0, 0, -1 }, + { 0x0, 0x0, 40, -1, 850, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 538, 33, 1, 17 }, + { 0x3, 0x3, 40, -1, 542, 33, 1, 17 }, + { 0x0, 0x0, 40, -1, 854, 0, 0, -1 }, + { 0x0, 0x0, 40, -1, 858, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 562, 33, 1, 18 }, + { 0x18000001, 0x18000001, 40, -1, 566, 6, 1, 18 }, + { 0x0, 0x0, 40, -1, 862, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 578, 33, 1, 19 }, + { 0x0, 0x0, 40, -1, 866, 0, 0, -1 }, + { 0x0, 0x0, 40, -1, 870, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 598, 33, 1, 20 }, + { 0x18000001, 0x18000001, 40, -1, 602, 6, 1, 20 }, + { 0x0, 0x0, 40, -1, 874, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 614, 33, 1, 21 }, + { 0x0, 0x0, 40, -1, 879, 0, 0, -1 }, + { 0x0, 0x0, 40, -1, 883, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 637, 33, 1, 17 }, + { 0x3, 0x3, 40, -1, 641, 33, 1, 17 }, + { 0x0, 0x0, 40, -1, 887, 0, 0, -1 }, + { 0x3, 0x3, 40, -1, 653, 33, 1, 21 }, + { 0x0, 0x0, 41, 712, 824, 0, 0, -1 }, + { 0x0, 0x0, 41, 713, 832, 0, 0, -1 }, + { 0x0, 0x0, 41, 714, 828, 0, 0, -1 }, + { 0x1, 0x1, 41, 715, 482, 34, 1, 6 }, + { 0x10000001, 0x10000001, 41, 716, 490, 6, 1, 7 }, + { 0x1, 0x1, 41, 717, 486, 34, 1, 6 }, + { 0x0, 0x0, 41, 718, 836, 0, 0, -1 }, + { 0x1, 0x1, 41, 719, 502, 34, 1, 8 }, + { 0x0, 0x0, 41, 720, 840, 0, 0, -1 }, + { 0x1, 0x1, 41, 721, 514, 34, 1, 15 }, + { 0x0, 0x0, 41, 722, 845, 0, 0, -1 }, + { 0x0, 0x0, 41, 723, 849, 0, 0, -1 }, + { 0x1, 0x1, 41, 724, 537, 34, 1, 17 }, + { 0x1, 0x1, 41, 725, 541, 34, 1, 17 }, + { 0x0, 0x0, 41, 726, 853, 0, 0, -1 }, + { 0x0, 0x0, 41, 727, 857, 0, 0, -1 }, + { 0x1, 0x1, 41, 728, 561, 34, 1, 18 }, + { 0x10000001, 0x10000001, 41, 729, 565, 6, 1, 18 }, + { 0x0, 0x0, 41, 730, 861, 0, 0, -1 }, + { 0x1, 0x1, 41, 731, 577, 34, 1, 19 }, + { 0x0, 0x0, 41, 732, 865, 0, 0, -1 }, + { 0x0, 0x0, 41, 733, 869, 0, 0, -1 }, + { 0x1, 0x1, 41, 734, 597, 34, 1, 20 }, + { 0x10000001, 0x10000001, 41, 735, 601, 6, 1, 20 }, + { 0x0, 0x0, 41, 736, 873, 0, 0, -1 }, + { 0x1, 0x1, 41, 737, 613, 34, 1, 21 }, + { 0x0, 0x0, 41, 738, 878, 0, 0, -1 }, + { 0x0, 0x0, 41, 739, 882, 0, 0, -1 }, + { 0x1, 0x1, 41, 740, 636, 34, 1, 17 }, + { 0x1, 0x1, 41, 741, 640, 34, 1, 17 }, + { 0x0, 0x0, 41, 742, 886, 0, 0, -1 }, + { 0x1, 0x1, 41, 743, 652, 34, 1, 21 }, + { 0x800001, 0x800001, 41, -1, 974, 4, 1, 16 }, + { 0x1, 0x1, 41, 1868, 972, 4, 1, 16 }, + { 0x1, 0x1, 41, 809, 977, 4, 1, 22 }, + { 0x2, 0x3, 41, -1, 982, 20, 1, 67 }, + { 0x1, 0x1, 41, 1869, 980, 21, 1, 67 }, + { 0x0, 0x0, 42, -1, -1, 0, 1, 80 }, + { 0x0, 0x0, 42, -1, -1, 0, 1, 80 }, + { 0x0, 0x0, 42, -1, -1, 0, 1, 123 }, + { 0x1, 0x1, 44, 1155, 286, 38, 1, 1 }, + { 0x0, 0x0, 44, -1, 345, 0, 0, -1 }, + { 0x1, 0x1, 44, 1158, 296, 38, 1, 1 }, + { 0x0, 0x0, 44, -1, 365, 0, 0, -1 }, + { 0x0, 0x0, 44, -1, 299, 0, 0, -1 }, + { 0x0, 0x0, 44, -1, 309, 0, 0, -1 }, + { 0x1, 0x1, 44, 1163, 310, 38, 1, 1 }, + { 0x0, 0x0, 44, -1, 369, 0, 0, -1 }, + { 0x1, 0x1, 44, 1166, 320, 38, 1, 1 }, + { 0x0, 0x0, 44, -1, 389, 0, 0, -1 }, + { 0x0, 0x0, 44, -1, 323, 0, 0, -1 }, + { 0x0, 0x0, 44, -1, 333, 0, 0, -1 }, + { 0x0, 0x0, 44, 1037, 1929, 0, 0, -1 }, + { 0x0, 0x0, 44, 1038, 2462, 0, 1, 54 }, + { 0x0, 0x0, 44, 1039, 1981, 0, 0, -1 }, + { 0x0, 0x0, 44, 1040, -1, 0, 1, 49 }, + { 0x0, 0x0, 44, 942, -1, 0, 1, 0 }, + { 0x0, 0x0, 44, 943, -1, 0, 1, 0 }, + { 0x0, 0x0, 44, 944, -1, 0, 1, 0 }, + { 0x1, 0x1, 45, -1, 1433, 30, 1, 146 }, + { 0x1, 0x1, 45, 815, 1432, 30, 1, 145 }, + { 0x1, 0x1, 45, -1, 1437, 30, 1, 148 }, + { 0x1, 0x1, 45, 816, 1436, 30, 1, 147 }, + { 0x1, 0x1, 45, -1, 1441, 30, 1, 148 }, + { 0x1, 0x1, 45, 817, 1440, 30, 1, 147 }, + { 0x3, 0x3, 46, -1, 978, 3, 1, 22 }, + { 0x1, 0x1, 47, 1889, -1, 30, 1, 137 }, + { 0x1, 0x1, 47, 1920, -1, 30, 1, 149 }, + { 0x0, 0x0, 49, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 49, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 49, -1, -1, 0, 1, 40 }, + { 0x1, 0x1, 56, -1, 1434, 31, 1, 146 }, + { 0x1, 0x1, 56, -1, 1438, 31, 1, 148 }, + { 0x1, 0x1, 56, -1, 1442, 31, 1, 148 }, + { 0x0, 0x0, 56, -1, -1, 0, 1, 94 }, + { 0x2, 0x3, 56, -1, -1, 27, 1, 94 }, + { 0x1, 0x1, 56, -1, -1, 28, 1, 94 }, + { 0x0, 0x0, 65, 13, 453, 0, 1, 6 }, + { 0x0, 0x0, 65, 1056, 456, 0, 1, 6 }, + { 0x1, 0x1, 65, 1057, 458, 33, 1, 6 }, + { 0x1, 0x1, 65, 1058, 460, 34, 1, 6 }, + { 0x3, 0x3, 65, 1059, 462, 33, 1, 6 }, + { 0x0, 0x0, 65, 1060, 464, 0, 1, 6 }, + { 0x1, 0x1, 65, 1061, 466, 33, 1, 6 }, + { 0x1, 0x1, 65, 1062, 468, 34, 1, 6 }, + { 0x3, 0x3, 65, 1063, 470, 33, 1, 6 }, + { 0x1, 0x1, 65, 1064, 472, 6, 1, 7 }, + { 0x8000001, 0x8000001, 65, 1065, 474, 6, 1, 7 }, + { 0x10000001, 0x10000001, 65, 1066, 476, 6, 1, 7 }, + { 0x18000001, 0x18000001, 65, 1067, 478, 6, 1, 7 }, + { 0x0, 0x0, 65, 1068, 492, 0, 1, 8 }, + { 0x1, 0x1, 65, 1069, 494, 33, 1, 8 }, + { 0x1, 0x1, 65, 1070, 496, 34, 1, 8 }, + { 0x3, 0x3, 65, 1071, 498, 33, 1, 8 }, + { 0x0, 0x0, 65, 1072, 504, 0, 1, 15 }, + { 0x1, 0x1, 65, 1073, 506, 33, 1, 15 }, + { 0x1, 0x1, 65, 1074, 508, 34, 1, 15 }, + { 0x3, 0x3, 65, 1075, 510, 33, 1, 15 }, + { 0x0, 0x0, 65, 14, 516, 0, 1, 17 }, + { 0x0, 0x0, 65, 1077, 519, 0, 1, 17 }, + { 0x1, 0x1, 65, 1078, 521, 33, 1, 17 }, + { 0x1, 0x1, 65, 1079, 523, 34, 1, 17 }, + { 0x3, 0x3, 65, 1080, 525, 33, 1, 17 }, + { 0x0, 0x0, 65, 1081, 527, 0, 1, 17 }, + { 0x1, 0x1, 65, 1082, 529, 33, 1, 17 }, + { 0x1, 0x1, 65, 1083, 531, 34, 1, 17 }, + { 0x3, 0x3, 65, 1084, 533, 33, 1, 17 }, + { 0x0, 0x0, 65, 1085, 543, 0, 1, 18 }, + { 0x1, 0x1, 65, 1086, 545, 33, 1, 18 }, + { 0x1, 0x1, 65, 1087, 547, 34, 1, 18 }, + { 0x3, 0x3, 65, 1088, 549, 33, 1, 18 }, + { 0x1, 0x1, 65, 1089, 551, 6, 1, 18 }, + { 0x8000001, 0x8000001, 65, 1090, 553, 6, 1, 18 }, + { 0x10000001, 0x10000001, 65, 1091, 555, 6, 1, 18 }, + { 0x18000001, 0x18000001, 65, 1092, 557, 6, 1, 18 }, + { 0x0, 0x0, 65, 1093, 567, 0, 1, 19 }, + { 0x1, 0x1, 65, 1094, 569, 33, 1, 19 }, + { 0x1, 0x1, 65, 1095, 571, 34, 1, 19 }, + { 0x3, 0x3, 65, 1096, 573, 33, 1, 19 }, + { 0x0, 0x0, 65, 1097, 579, 0, 1, 20 }, + { 0x1, 0x1, 65, 1098, 581, 33, 1, 20 }, + { 0x1, 0x1, 65, 1099, 583, 34, 1, 20 }, + { 0x3, 0x3, 65, 1100, 585, 33, 1, 20 }, + { 0x1, 0x1, 65, 1101, 587, 6, 1, 20 }, + { 0x8000001, 0x8000001, 65, 1102, 589, 6, 1, 20 }, + { 0x10000001, 0x10000001, 65, 1103, 591, 6, 1, 20 }, + { 0x18000001, 0x18000001, 65, 1104, 593, 6, 1, 20 }, + { 0x0, 0x0, 65, 1105, 603, 0, 1, 21 }, + { 0x1, 0x1, 65, 1106, 605, 33, 1, 21 }, + { 0x1, 0x1, 65, 1107, 607, 34, 1, 21 }, + { 0x3, 0x3, 65, 1108, 609, 33, 1, 21 }, + { 0x0, 0x0, 65, 16, 615, 0, 1, 17 }, + { 0x0, 0x0, 65, 1110, 618, 0, 1, 17 }, + { 0x1, 0x1, 65, 1111, 620, 33, 1, 17 }, + { 0x1, 0x1, 65, 1112, 622, 34, 1, 17 }, + { 0x3, 0x3, 65, 1113, 624, 33, 1, 17 }, + { 0x0, 0x0, 65, 1114, 626, 0, 1, 17 }, + { 0x1, 0x1, 65, 1115, 628, 33, 1, 17 }, + { 0x1, 0x1, 65, 1116, 630, 34, 1, 17 }, + { 0x3, 0x3, 65, 1117, 632, 33, 1, 17 }, + { 0x0, 0x0, 65, 1118, 642, 0, 1, 21 }, + { 0x1, 0x1, 65, 1119, 644, 33, 1, 21 }, + { 0x1, 0x1, 65, 1120, 646, 34, 1, 21 }, + { 0x3, 0x3, 65, 1121, 648, 33, 1, 21 }, + { 0x3, 0x3, 66, 422, 1296, 33, 1, 129 }, + { 0x3, 0x3, 66, 423, 1306, 33, 1, 129 }, + { 0x3, 0x3, 66, 424, 1316, 33, 1, 129 }, + { 0x0, 0x0, 66, -1, 1321, 0, 1, 140 }, + { 0x0, 0x0, 66, -1, 1322, 0, 1, 140 }, + { 0x0, 0x0, 66, -1, 1323, 0, 1, 140 }, + { 0x0, 0x0, 107, 898, 1953, 0, 0, -1 }, + { 0x0, 0x0, 107, 899, 2400, 0, 1, 29 }, + { 0x0, 0x0, 107, 900, 1994, 0, 0, -1 }, + { 0x0, 0x0, 107, 901, 2404, 0, 1, 29 }, + { 0x0, 0x0, 109, -1, 1955, 0, 0, -1 }, + { 0x1, 0x1, 109, -1, 2401, 27, 1, 29 }, + { 0x0, 0x0, 109, -1, 1996, 0, 0, -1 }, + { 0x1, 0x1, 109, -1, 2405, 27, 1, 29 }, + { 0x0, 0x0, 110, 903, -1, 0, 1, 115 }, + { 0x1, 0x1, 111, -1, -1, 27, 1, 115 }, + { 0x0, 0x0, 112, 921, 2423, 0, 1, 1 }, + { 0x0, 0x0, 112, 1024, 290, 0, 0, -1 }, + { 0x0, 0x0, 112, 1001, 353, 0, 0, -1 }, + { 0x0, 0x0, 112, -1, 361, 0, 0, -1 }, + { 0x0, 0x0, 112, 922, 2431, 0, 1, 1 }, + { 0x0, 0x0, 112, -1, 303, 0, 0, -1 }, + { 0x0, 0x0, 112, 1029, 304, 0, 0, -1 }, + { 0x0, 0x0, 112, 923, 2443, 0, 1, 1 }, + { 0x0, 0x0, 112, 1031, 314, 0, 0, -1 }, + { 0x0, 0x0, 112, 1008, 377, 0, 0, -1 }, + { 0x0, 0x0, 112, -1, 385, 0, 0, -1 }, + { 0x0, 0x0, 112, 1167, 2450, 0, 1, 1 }, + { 0x0, 0x0, 112, -1, 327, 0, 0, -1 }, + { 0x0, 0x0, 112, 1036, 328, 0, 0, -1 }, + { 0x0, 0x0, 112, -1, 1939, 0, 0, -1 }, + { 0x1, 0x9, 112, -1, 2469, 33, 1, 54 }, + { 0x2, 0x3, 112, 1180, 1990, 27, 1, 49 }, + { 0x1, 0x1, 114, 1156, 2424, 37, 1, 1 }, + { 0x1, 0x1, 114, 1159, 2432, 37, 1, 1 }, + { 0x1, 0x1, 114, 1164, 2444, 37, 1, 1 }, + { 0x0, 0x0, 114, -1, 2455, 0, 1, 1 }, + { 0x0, 0x0, 115, 945, 2421, 0, 1, 1 }, + { 0x0, 0x0, 115, 1000, 288, 0, 0, -1 }, + { 0x0, 0x0, 115, -1, 357, 0, 0, -1 }, + { 0x0, 0x0, 115, 1026, 359, 0, 0, -1 }, + { 0x0, 0x0, 115, -1, 2430, 0, 1, 1 }, + { 0x0, 0x0, 115, 1028, 301, 0, 0, -1 }, + { 0x0, 0x0, 115, 1005, 306, 0, 0, -1 }, + { 0x0, 0x0, 115, 947, 2441, 0, 1, 1 }, + { 0x0, 0x0, 115, 1007, 312, 0, 0, -1 }, + { 0x0, 0x0, 115, -1, 381, 0, 0, -1 }, + { 0x0, 0x0, 115, 1033, 383, 0, 0, -1 }, + { 0x0, 0x0, 115, -1, 2449, 0, 1, 1 }, + { 0x0, 0x0, 115, 1035, 325, 0, 0, -1 }, + { 0x0, 0x0, 115, 1012, 330, 0, 0, -1 }, + { 0x0, 0x0, 115, 918, 1937, 0, 0, -1 }, + { 0x0, 0x0, 115, 919, 2468, 0, 1, 54 }, + { 0x0, 0x0, 115, 920, 1989, 0, 1, 49 }, + { 0x1, 0x1, 115, -1, -1, 27, 1, 0 }, + { 0x1, 0x1, 115, -1, -1, 27, 1, 0 }, + { 0x1, 0x1, 115, -1, -1, 27, 1, 0 }, + { 0x1, 0x1, 116, -1, 2422, 37, 1, 1 }, + { 0x0, 0x0, 116, -1, 2435, 0, 1, 1 }, + { 0x1, 0x1, 116, -1, 2442, 37, 1, 1 }, + { 0x0, 0x0, 116, -1, 2454, 0, 1, 1 }, + { 0x0, 0x0, 117, 994, -1, 0, 1, 0 }, + { 0x0, 0x0, 117, 995, -1, 0, 1, 0 }, + { 0x0, 0x0, 117, 996, -1, 0, 1, 0 }, + { 0x3, 0x3, 117, 954, -1, 34, 1, 33 }, + { 0x3, 0x3, 117, 955, -1, 34, 1, 40 }, + { 0x1, 0x1, 119, -1, -1, 35, 1, 33 }, + { 0x1, 0x1, 119, -1, -1, 35, 1, 40 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 66 }, + { 0x1, 0x1, 120, -1, -1, 36, 1, 122 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 }, + { 0x1, 0x1, 120, -1, -1, 27, 1, 96 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 105 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 73 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 73 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 74 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 }, + { 0x1, 0x1, 120, -1, -1, 27, 1, 117 }, + { 0x1, 0x1, 120, -1, -1, 27, 1, 40 }, + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 121, -1, 2356, 0, 0, -1 }, + { 0x0, 0x0, 121, -1, 2359, 0, 0, -1 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 }, + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 }, + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 }, + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 }, + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 }, + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 }, + { 0x1, 0x1, 122, 779, -1, 23, 1, 67 }, + { 0x9, 0x9, 122, 780, -1, 20, 1, 67 }, + { 0x0, 0x0, 126, 1837, -1, 0, 1, 0 }, + { 0x0, 0x0, 126, 1838, -1, 0, 1, 0 }, + { 0x1, 0x1, 126, -1, -1, 28, 1, 33 }, + { 0x1, 0x1, 126, -1, -1, 27, 1, 33 }, + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 }, + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 }, + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 }, + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 }, + { 0x0, 0x0, 126, -1, -1, 0, 1, 114 }, + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 }, + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 }, + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 }, + { 0x0, 0x0, 126, 952, -1, 0, 1, 33 }, + { 0x0, 0x0, 126, 1046, -1, 0, 1, 40 }, + { 0x0, 0x0, 140, 1017, 2419, 0, 1, 1 }, + { 0x0, 0x0, 140, 905, 289, 0, 0, -1 }, + { 0x0, 0x0, 140, 927, 294, 0, 0, -1 }, + { 0x0, 0x0, 140, 928, 358, 0, 0, -1 }, + { 0x0, 0x0, 140, -1, 2429, 0, 1, 1 }, + { 0x0, 0x0, 140, 930, 300, 0, 0, -1 }, + { 0x0, 0x0, 140, -1, 307, 0, 0, -1 }, + { 0x0, 0x0, 140, 1019, 2439, 0, 1, 1 }, + { 0x0, 0x0, 140, 912, 313, 0, 0, -1 }, + { 0x0, 0x0, 140, 934, 318, 0, 0, -1 }, + { 0x0, 0x0, 140, 935, 382, 0, 0, -1 }, + { 0x0, 0x0, 140, -1, 2448, 0, 1, 1 }, + { 0x0, 0x0, 140, 937, 324, 0, 0, -1 }, + { 0x0, 0x0, 140, -1, 331, 0, 0, -1 }, + { 0x0, 0x0, 140, 2486, 1933, 0, 0, -1 }, + { 0x1, 0x1, 140, 2487, 2464, 33, 1, 54 }, + { 0x0, 0x0, 140, 2488, 1983, 0, 0, -1 }, + { 0x1, 0x1, 140, 2489, -1, 28, 1, 49 }, + { 0x1, 0x1, 141, -1, 2420, 37, 1, 1 }, + { 0x0, 0x0, 141, -1, 2434, 0, 1, 1 }, + { 0x1, 0x1, 141, -1, 2440, 37, 1, 1 }, + { 0x0, 0x0, 141, -1, 2453, 0, 1, 1 }, + { 0x1, 0x1, 144, 778, 976, 3, 1, 22 }, + { 0x0, 0x0, 145, 1839, -1, 0, 1, 33 }, + { 0x0, 0x0, 146, 784, 2416, 0, 1, 1 }, + { 0x0, 0x0, 146, -1, 291, 0, 0, -1 }, + { 0x0, 0x0, 146, 906, 292, 0, 0, -1 }, + { 0x0, 0x0, 146, 907, 360, 0, 0, -1 }, + { 0x0, 0x0, 146, 786, 2426, 0, 1, 1 }, + { 0x0, 0x0, 146, 909, 302, 0, 0, -1 }, + { 0x0, 0x0, 146, 931, 305, 0, 0, -1 }, + { 0x0, 0x0, 146, 790, 2436, 0, 1, 1 }, + { 0x0, 0x0, 146, -1, 315, 0, 0, -1 }, + { 0x0, 0x0, 146, 913, 316, 0, 0, -1 }, + { 0x0, 0x0, 146, 914, 384, 0, 0, -1 }, + { 0x0, 0x0, 146, 792, 2446, 0, 1, 1 }, + { 0x0, 0x0, 146, 916, 326, 0, 0, -1 }, + { 0x0, 0x0, 146, 938, 329, 0, 0, -1 }, + { 0x0, 0x0, 146, 1013, 1931, 0, 0, -1 }, + { 0x1, 0x1, 146, 1014, 2463, 36, 1, 54 }, + { 0x0, 0x0, 146, 1015, 1982, 0, 0, -1 }, + { 0x1, 0x1, 146, 1016, -1, 27, 1, 49 }, + { 0x1, 0x1, 147, -1, 2418, 37, 1, 1 }, + { 0x1, 0x1, 147, -1, 2428, 37, 1, 1 }, + { 0x1, 0x1, 147, -1, 2438, 37, 1, 1 }, + { 0x0, 0x0, 147, -1, 2452, 0, 1, 1 }, + { 0x0, 0x0, 148, -1, -1, 0, 1, 33 }, + { 0x0, 0x0, 148, 953, -1, 0, 1, 40 }, + { 0x0, 0x0, 149, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 149, -1, -1, 0, 1, 66 }, + { 0x0, 0x0, 149, -1, 2456, 0, 1, 63 }, + { 0x0, 0x0, 149, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 149, -1, -1, 0, 1, 81 }, + { 0x0, 0x0, 149, -1, -1, 0, 1, 81 }, + { 0x0, 0x0, 149, -1, -1, 0, 1, 85 }, + { 0x0, 0x0, 149, -1, -1, 0, 1, 40 }, + { 0x1, 0x1, 150, -1, 454, 12, 1, 6 }, + { 0x1, 0x1, 150, -1, 457, 12, 1, 6 }, + { 0x200001, 0x200001, 150, -1, 459, 12, 1, 6 }, + { 0x400001, 0x400001, 150, -1, 461, 12, 1, 6 }, + { 0x600001, 0x600001, 150, -1, 463, 12, 1, 6 }, + { 0x1, 0x1, 150, -1, 465, 12, 1, 6 }, + { 0x200001, 0x200001, 150, -1, 467, 12, 1, 6 }, + { 0x400001, 0x400001, 150, -1, 469, 12, 1, 6 }, + { 0x600001, 0x600001, 150, -1, 471, 12, 1, 6 }, + { 0x41, 0x41, 150, -1, 473, 6, 1, 7 }, + { 0x8000041, 0x8000041, 150, -1, 475, 6, 1, 7 }, + { 0x10000041, 0x10000041, 150, -1, 477, 6, 1, 7 }, + { 0x18000041, 0x18000041, 150, -1, 479, 6, 1, 7 }, + { 0x1, 0x1, 150, -1, 493, 12, 1, 8 }, + { 0x200001, 0x200001, 150, -1, 495, 12, 1, 8 }, + { 0x400001, 0x400001, 150, -1, 497, 12, 1, 8 }, + { 0x600001, 0x600001, 150, -1, 499, 12, 1, 8 }, + { 0x1, 0x1, 150, -1, 505, 12, 1, 15 }, + { 0x200001, 0x200001, 150, -1, 507, 12, 1, 15 }, + { 0x400001, 0x400001, 150, -1, 509, 12, 1, 15 }, + { 0x600001, 0x600001, 150, -1, 511, 12, 1, 15 }, + { 0x1, 0x1, 150, -1, 517, 12, 1, 17 }, + { 0x1, 0x1, 150, -1, 520, 12, 1, 17 }, + { 0x200001, 0x200001, 150, -1, 522, 12, 1, 17 }, + { 0x400001, 0x400001, 150, -1, 524, 12, 1, 17 }, + { 0x600001, 0x600001, 150, -1, 526, 12, 1, 17 }, + { 0x1, 0x1, 150, -1, 528, 12, 1, 17 }, + { 0x200001, 0x200001, 150, -1, 530, 12, 1, 17 }, + { 0x400001, 0x400001, 150, -1, 532, 12, 1, 17 }, + { 0x600001, 0x600001, 150, -1, 534, 12, 1, 17 }, + { 0x1, 0x1, 150, -1, 544, 12, 1, 18 }, + { 0x200001, 0x200001, 150, -1, 546, 12, 1, 18 }, + { 0x400001, 0x400001, 150, -1, 548, 12, 1, 18 }, + { 0x600001, 0x600001, 150, -1, 550, 12, 1, 18 }, + { 0x41, 0x41, 150, -1, 552, 6, 1, 18 }, + { 0x8000041, 0x8000041, 150, -1, 554, 6, 1, 18 }, + { 0x10000041, 0x10000041, 150, -1, 556, 6, 1, 18 }, + { 0x18000041, 0x18000041, 150, -1, 558, 6, 1, 18 }, + { 0x1, 0x1, 150, -1, 568, 12, 1, 19 }, + { 0x200001, 0x200001, 150, -1, 570, 12, 1, 19 }, + { 0x400001, 0x400001, 150, -1, 572, 12, 1, 19 }, + { 0x600001, 0x600001, 150, -1, 574, 12, 1, 19 }, + { 0x1, 0x1, 150, -1, 580, 12, 1, 20 }, + { 0x200001, 0x200001, 150, -1, 582, 12, 1, 20 }, + { 0x400001, 0x400001, 150, -1, 584, 12, 1, 20 }, + { 0x600001, 0x600001, 150, -1, 586, 12, 1, 20 }, + { 0x41, 0x41, 150, -1, 588, 6, 1, 20 }, + { 0x8000041, 0x8000041, 150, -1, 590, 6, 1, 20 }, + { 0x10000041, 0x10000041, 150, -1, 592, 6, 1, 20 }, + { 0x18000041, 0x18000041, 150, -1, 594, 6, 1, 20 }, + { 0x1, 0x1, 150, -1, 604, 12, 1, 21 }, + { 0x200001, 0x200001, 150, -1, 606, 12, 1, 21 }, + { 0x400001, 0x400001, 150, -1, 608, 12, 1, 21 }, + { 0x600001, 0x600001, 150, -1, 610, 12, 1, 21 }, + { 0x1, 0x1, 150, -1, 616, 12, 1, 17 }, + { 0x1, 0x1, 150, -1, 619, 12, 1, 17 }, + { 0x200001, 0x200001, 150, -1, 621, 12, 1, 17 }, + { 0x400001, 0x400001, 150, -1, 623, 12, 1, 17 }, + { 0x600001, 0x600001, 150, -1, 625, 12, 1, 17 }, + { 0x1, 0x1, 150, -1, 627, 12, 1, 17 }, + { 0x200001, 0x200001, 150, -1, 629, 12, 1, 17 }, + { 0x400001, 0x400001, 150, -1, 631, 12, 1, 17 }, + { 0x600001, 0x600001, 150, -1, 633, 12, 1, 17 }, + { 0x1, 0x1, 150, -1, 643, 12, 1, 21 }, + { 0x200001, 0x200001, 150, -1, 645, 12, 1, 21 }, + { 0x400001, 0x400001, 150, -1, 647, 12, 1, 21 }, + { 0x600001, 0x600001, 150, -1, 649, 12, 1, 21 }, + { 0x0, 0x0, 155, -1, -1, 0, 1, 124 }, + { 0x0, 0x0, 159, 654, -1, 0, 1, 75 }, + { 0x0, 0x0, 159, 655, -1, 0, 1, 75 }, + { 0x9, 0x9, 159, -1, 1215, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1224, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1233, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1244, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1253, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1262, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1271, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1280, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1289, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1299, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1309, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1319, 32, 1, 130 }, + { 0x9, 0x9, 159, -1, 1328, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1334, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1340, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1346, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1352, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1358, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1364, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1370, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1376, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1382, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1388, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1394, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1400, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1406, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1412, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1418, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1424, 32, 1, 144 }, + { 0x9, 0x9, 159, -1, 1430, 32, 1, 144 }, + { 0x0, 0x0, 160, 1041, 287, 0, 0, -1 }, + { 0x1, 0x1, 160, -1, 2425, 38, 1, 1 }, + { 0x0, 0x0, 160, 785, 344, 0, 0, -1 }, + { 0x0, 0x0, 160, 1042, 297, 0, 0, -1 }, + { 0x1, 0x1, 160, -1, 2433, 38, 1, 1 }, + { 0x0, 0x0, 160, 787, 364, 0, 0, -1 }, + { 0x0, 0x0, 160, 788, 298, 0, 0, -1 }, + { 0x0, 0x0, 160, 789, 308, 0, 0, -1 }, + { 0x0, 0x0, 160, 1043, 311, 0, 0, -1 }, + { 0x1, 0x1, 160, -1, 2445, 38, 1, 1 }, + { 0x0, 0x0, 160, 791, 368, 0, 0, -1 }, + { 0x0, 0x0, 160, -1, 321, 0, 0, -1 }, + { 0x1, 0x1, 160, -1, 2451, 38, 1, 1 }, + { 0x0, 0x0, 160, 793, 388, 0, 0, -1 }, + { 0x0, 0x0, 160, 794, 322, 0, 0, -1 }, + { 0x0, 0x0, 160, 795, 332, 0, 0, -1 }, + { 0x0, 0x0, 161, 1186, 1941, 0, 0, -1 }, + { 0x0, 0x0, 161, 1187, 2474, 0, 1, 54 }, + { 0x0, 0x0, 161, 1188, 1985, 0, 0, -1 }, + { 0x1, 0x1, 161, 1189, -1, 29, 1, 49 }, + { 0x0, 0x0, 162, -1, 1951, 0, 0, -1 }, + { 0x1, 0x9, 162, -1, 2481, 33, 1, 54 }, + { 0x6, 0x7, 162, -1, 1992, 27, 1, 49 }, + { 0x0, 0x0, 163, 1175, 1949, 0, 0, -1 }, + { 0x0, 0x0, 163, 1176, 2480, 0, 1, 54 }, + { 0x1, 0x1, 163, 1177, 1991, 29, 1, 49 }, + { 0x1, 0x1, 164, 1191, -1, 27, 1, 33 }, + { 0x0, 0x0, 165, 1832, 1945, 0, 0, -1 }, + { 0x1, 0x1, 165, 1833, 2476, 33, 1, 54 }, + { 0x0, 0x0, 165, 1834, 1987, 0, 0, -1 }, + { 0x3, 0x3, 165, 1835, -1, 28, 1, 49 }, + { 0x0, 0x0, 166, 1182, 1943, 0, 0, -1 }, + { 0x1, 0x1, 166, 1183, 2475, 36, 1, 54 }, + { 0x0, 0x0, 166, 1184, 1986, 0, 0, -1 }, + { 0x5, 0x5, 166, 1185, -1, 27, 1, 49 }, + { 0x0, 0x0, 167, -1, 2457, 0, 1, 63 }, + { 0x1, 0x1, 169, -1, -1, 28, 1, 33 }, + { 0x1, 0x1, 170, 2315, -1, 27, 1, 33 }, + { 0x1, 0x1, 170, 2316, -1, 27, 1, 33 }, + { 0x1, 0x1, 171, 1460, -1, 28, 1, 135 }, + { 0x1, 0x1, 171, 1461, -1, 28, 1, 135 }, + { 0x1, 0x1, 171, 1462, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1463, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1464, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1465, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1466, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1467, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1468, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1469, -1, 28, 1, 134 }, + { 0x1, 0x1, 171, 1470, -1, 28, 1, 136 }, + { 0x1, 0x1, 171, 1471, -1, 28, 1, 136 }, + { 0x1, 0x1, 171, 1472, -1, 28, 1, 136 }, + { 0x1, 0x1, 171, 1473, -1, 28, 1, 136 }, + { 0x1, 0x1, 171, 1474, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1475, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1476, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1477, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1478, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1479, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1480, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1481, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1482, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1483, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1484, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1485, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1486, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1487, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1488, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1489, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1490, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1491, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1492, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1493, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1494, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1495, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1496, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1497, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1498, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1499, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1500, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1501, -1, 28, 1, 125 }, + { 0x1, 0x1, 171, 1502, -1, 28, 1, 125 }, + { 0x1, 0x1, 171, 1503, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1504, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1505, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1506, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1507, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1508, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1509, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1510, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1511, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1512, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1513, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1514, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1515, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1516, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1517, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1518, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1519, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1520, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1521, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1522, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1523, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1524, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1525, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1526, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1527, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1528, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1529, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1530, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1531, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1532, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1533, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1534, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1535, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1536, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1537, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1538, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1539, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1540, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1541, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1542, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1543, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1544, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1545, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1546, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1547, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1548, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1549, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1550, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1551, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1552, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1553, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1554, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1555, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1556, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1557, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1558, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1559, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1560, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1561, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1562, -1, 28, 1, 129 }, + { 0x1, 0x1, 171, 1563, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1564, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1565, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1566, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1567, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1568, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1569, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1570, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1571, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1572, -1, 28, 1, 129 }, + { 0x1, 0x1, 171, 1573, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1574, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1575, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1576, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1577, -1, 28, 1, 126 }, + { 0x1, 0x1, 171, 1578, -1, 28, 1, 127 }, + { 0x1, 0x1, 171, 1579, -1, 28, 1, 128 }, + { 0x1, 0x1, 171, 1580, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1581, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1582, -1, 28, 1, 129 }, + { 0x1, 0x1, 171, 1583, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1584, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1585, -1, 28, 1, 130 }, + { 0x1, 0x1, 171, 1586, -1, 28, 1, 124 }, + { 0x1, 0x1, 171, 1587, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1588, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1589, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1590, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1591, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1592, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1593, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1594, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1595, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1596, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1597, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1598, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1599, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1600, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1601, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1602, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1603, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1604, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1605, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1606, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1607, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1608, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1609, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1610, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1611, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1612, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1613, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1614, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1615, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1616, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1617, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1618, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1619, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1620, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1621, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1622, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1623, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1624, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1625, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1626, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1627, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1628, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1629, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1630, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1631, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1632, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1633, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1634, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1635, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1636, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1637, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1638, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1639, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1640, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1641, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1642, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1643, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1644, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1645, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1646, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1647, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1648, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1649, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1650, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1651, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1652, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1653, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1654, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1655, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1656, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1657, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1658, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1659, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1660, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1661, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1662, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1663, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1664, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1665, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1666, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1667, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1668, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1669, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1670, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1671, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1672, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1673, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1674, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1675, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1676, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1677, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1678, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1679, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1680, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1681, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1682, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1683, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1684, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1685, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1686, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1687, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1688, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1689, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1690, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1691, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1692, -1, 28, 1, 141 }, + { 0x1, 0x1, 171, 1693, -1, 28, 1, 142 }, + { 0x1, 0x1, 171, 1694, -1, 28, 1, 143 }, + { 0x1, 0x1, 171, 1695, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1696, -1, 28, 1, 144 }, + { 0x1, 0x1, 171, 1697, -1, 28, 1, 140 }, + { 0x1, 0x1, 171, 1448, -1, 28, 1, 145 }, + { 0x1, 0x1, 171, 1449, -1, 28, 1, 146 }, + { 0x1, 0x1, 171, 1450, -1, 28, 1, 146 }, + { 0x1, 0x1, 171, 1451, -1, 28, 1, 145 }, + { 0x1, 0x1, 171, 1452, -1, 28, 1, 147 }, + { 0x1, 0x1, 171, 1453, -1, 28, 1, 148 }, + { 0x1, 0x1, 171, 1454, -1, 28, 1, 148 }, + { 0x1, 0x1, 171, 1455, -1, 28, 1, 147 }, + { 0x1, 0x1, 171, 1456, -1, 28, 1, 147 }, + { 0x1, 0x1, 171, 1457, -1, 28, 1, 148 }, + { 0x1, 0x1, 171, 1458, -1, 28, 1, 148 }, + { 0x1, 0x1, 171, 1459, -1, 28, 1, 147 }, + { 0x1, 0x1, 171, 1740, -1, 28, 1, 136 }, + { 0x1, 0x1, 171, 1741, -1, 28, 1, 136 }, + { 0x1, 0x1, 171, 1742, -1, 28, 1, 136 }, + { 0x1, 0x1, 171, 1743, -1, 28, 1, 136 }, + { 0x1, 0x1, 172, 1698, -1, 29, 1, 145 }, + { 0x1, 0x1, 172, 1699, -1, 29, 1, 146 }, + { 0x1, 0x1, 172, 1700, -1, 29, 1, 146 }, + { 0x1, 0x1, 172, 1701, -1, 29, 1, 145 }, + { 0x1, 0x1, 172, 1702, -1, 29, 1, 147 }, + { 0x1, 0x1, 172, 1703, -1, 29, 1, 148 }, + { 0x1, 0x1, 172, 1704, -1, 29, 1, 148 }, + { 0x1, 0x1, 172, 1705, -1, 29, 1, 147 }, + { 0x1, 0x1, 172, 1706, -1, 29, 1, 147 }, + { 0x1, 0x1, 172, 1707, -1, 29, 1, 148 }, + { 0x1, 0x1, 172, 1708, -1, 29, 1, 148 }, + { 0x1, 0x1, 172, 1709, -1, 29, 1, 147 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 135 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 135 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 261, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1890, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 263, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1891, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 265, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1892, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 125 }, + { 0x3, 0x3, 173, 267, -1, 28, 1, 125 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 268, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1893, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 270, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1894, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 272, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1895, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 274, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1896, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 276, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1897, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 278, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1898, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 129 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 280, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1899, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 129 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 282, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1900, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 129 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 284, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 }, + { 0x3, 0x3, 173, 1901, -1, 28, 1, 124 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1902, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1903, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1904, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1905, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1906, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1907, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1908, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1909, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1910, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1911, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1912, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1913, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1914, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1915, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1916, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1917, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1918, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 }, + { 0x3, 0x3, 173, 1919, -1, 28, 1, 140 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 145 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 }, + { 0x3, 0x3, 173, 803, -1, 28, 1, 146 }, + { 0x3, 0x3, 173, 804, -1, 28, 1, 145 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 }, + { 0x3, 0x3, 173, 805, -1, 28, 1, 148 }, + { 0x3, 0x3, 173, 806, -1, 28, 1, 147 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 }, + { 0x3, 0x3, 173, 807, -1, 28, 1, 148 }, + { 0x3, 0x3, 173, 808, -1, 28, 1, 147 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, 1857, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, 1858, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 132 }, + { 0x3, 0x3, 173, 1859, -1, 28, 1, 132 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, 1860, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, 1861, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, 1862, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, 1863, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 133 }, + { 0x3, 0x3, 173, 1864, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 139 }, + { 0x3, 0x3, 173, 1865, -1, 28, 1, 138 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 }, + { 0x0, 0x0, 174, -1, 335, 0, 0, -1 }, + { 0x0, 0x0, 174, 2514, 2483, 0, 1, 1 }, + { 0x0, 0x0, 174, -1, 339, 0, 0, -1 }, + { 0x0, 0x0, 174, 2516, 2485, 0, 1, 1 }, + { 0x11, 0x31, 175, 2417, 342, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 343, 12, 1, 4 }, + { 0x1, 0x1, 175, -1, 346, 37, 1, 4 }, + { 0x2000001, 0x2000001, 175, -1, 347, 12, 1, 4 }, + { 0x11, 0x11, 175, -1, 348, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 349, 12, 1, 4 }, + { 0x1, 0x1, 175, 1778, 350, 37, 1, 4 }, + { 0x2000001, 0x2000001, 175, -1, 352, 12, 1, 4 }, + { 0x11, 0x11, 175, 1780, 354, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 356, 12, 1, 4 }, + { 0x11, 0x31, 175, 2427, 362, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 363, 12, 1, 4 }, + { 0x11, 0x31, 175, 2437, 366, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 367, 12, 1, 4 }, + { 0x1, 0x1, 175, -1, 370, 37, 1, 4 }, + { 0x2000001, 0x2000001, 175, -1, 371, 12, 1, 4 }, + { 0x11, 0x11, 175, -1, 372, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 373, 12, 1, 4 }, + { 0x1, 0x1, 175, 1802, 374, 37, 1, 4 }, + { 0x2000001, 0x2000001, 175, -1, 376, 12, 1, 4 }, + { 0x11, 0x11, 175, 1804, 378, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 380, 12, 1, 4 }, + { 0x11, 0x31, 175, 2447, 386, 33, 1, 4 }, + { 0x2200001, 0x2200001, 175, -1, 387, 12, 1, 4 }, + { 0x1, 0x1, 175, -1, 390, 33, 1, 4 }, + { 0x200001, 0x200001, 175, -1, 391, 12, 1, 4 }, + { 0x1, 0x1, 175, -1, 394, 33, 1, 4 }, + { 0x200001, 0x200001, 175, -1, 395, 12, 1, 4 }, + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x1, 0x1, 176, 1755, -1, 37, 1, 4 }, + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 }, + { 0x11, 0x11, 176, 1757, -1, 33, 1, 4 }, + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x11, 0x11, 176, -1, -1, 33, 1, 4 }, + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 }, + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 }, + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 }, + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x1, 0x1, 176, 1767, -1, 37, 1, 4 }, + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 }, + { 0x11, 0x11, 176, 1769, -1, 33, 1, 4 }, + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x11, 0x11, 176, -1, -1, 33, 1, 4 }, + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 }, + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 }, + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 }, + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 }, + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 }, + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 }, + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 }, + { 0x9, 0x9, 176, -1, -1, 33, 1, 5 }, + { 0x1, 0x1, 176, 336, -1, 33, 1, 4 }, + { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 }, + { 0x200001, 0x200001, 176, 337, -1, 12, 1, 4 }, + { 0x9, 0x9, 176, -1, -1, 33, 1, 5 }, + { 0x1, 0x1, 176, 340, -1, 33, 1, 4 }, + { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 }, + { 0x200001, 0x200001, 176, 341, -1, 12, 1, 4 }, + { 0x0, 0x0, 177, -1, 1947, 0, 0, -1 }, + { 0x9, 0x9, 177, -1, 2477, 33, 1, 49 }, + { 0x0, 0x0, 177, -1, 1988, 0, 0, -1 }, + { 0x7, 0x7, 177, -1, -1, 27, 1, 49 }, + { 0x1, 0x1, 197, -1, -1, 27, 1, 10 }, + { 0x1, 0x1, 211, -1, -1, 29, 1, 0 }, + { 0x1, 0x1, 211, -1, -1, 29, 1, 0 }, + { 0x2, 0x3, 211, 987, -1, 27, 1, 33 }, + { 0x0, 0x0, 211, 988, -1, 0, 1, 33 }, + { 0x0, 0x0, 211, 989, -1, 0, 1, 0 }, + { 0x0, 0x0, 211, 990, -1, 0, 1, 0 }, + { 0x0, 0x0, 211, 991, -1, 0, 1, 0 }, + { 0x0, 0x0, 211, 992, -1, 0, 1, 0 }, + { 0x0, 0x0, 211, 2499, -1, 0, 1, 93 }, + { 0x0, 0x0, 211, 2500, -1, 0, 1, 93 }, + { 0x0, 0x0, 211, 2501, 819, 0, 0, -1 }, + { 0x1, 0x1, 212, -1, -1, 27, 1, 0 }, + { 0x1, 0x1, 212, -1, -1, 27, 1, 0 }, + { 0x1, 0x1, 213, -1, 1195, 32, 1, 135 }, + { 0x1, 0x1, 213, -1, 1197, 32, 1, 134 }, + { 0x1, 0x1, 213, -1, 1199, 32, 1, 134 }, + { 0x1, 0x1, 213, -1, 1201, 32, 1, 134 }, + { 0x1, 0x1, 213, -1, 1203, 32, 1, 134 }, + { 0x1, 0x1, 213, -1, 1205, 32, 1, 136 }, + { 0x1, 0x1, 213, -1, 1207, 32, 1, 136 }, + { 0x1, 0x1, 213, -1, 1710, 32, 1, 131 }, + { 0x1, 0x1, 213, -1, 1712, 32, 1, 138 }, + { 0x1, 0x1, 213, -1, 1714, 32, 1, 132 }, + { 0x1, 0x1, 213, -1, 1716, 32, 1, 131 }, + { 0x1, 0x1, 213, -1, 1718, 32, 1, 138 }, + { 0x1, 0x1, 213, -1, 1720, 32, 1, 131 }, + { 0x1, 0x1, 213, -1, 1722, 32, 1, 138 }, + { 0x1, 0x1, 213, 2319, 1724, 32, 1, 131 }, + { 0x1, 0x1, 213, 2320, 1727, 32, 1, 138 }, + { 0x0, 0x0, 214, -1, 2361, 0, 0, -1 }, + { 0x0, 0x0, 214, -1, 2362, 0, 0, -1 }, + { 0x0, 0x0, 214, -1, 2387, 0, 0, -1 }, + { 0x5, 0x5, 214, -1, 2390, 20, 1, 67 }, + { 0x0, 0x0, 218, 1847, 818, 0, 0, -1 }, + { 0x0, 0x0, 219, -1, 957, 0, 0, -1 }, + { 0x0, 0x0, 219, -1, 1048, 0, 0, -1 }, + { 0x0, 0x0, 219, -1, -1, 0, 1, 121 }, + { 0x0, 0x0, 219, -1, -1, 0, 1, 66 }, + { 0x1, 0x1, 219, 694, 1921, 36, 1, 65 }, + { 0x1, 0x1, 219, 695, 1956, 36, 1, 65 }, + { 0x0, 0x0, 219, 696, 1959, 0, 0, -1 }, + { 0x1, 0x1, 219, 697, -1, 36, 1, 65 }, + { 0x0, 0x0, 219, 1192, -1, 0, 1, 33 }, + { 0x1, 0x1, 219, 698, 1964, 36, 1, 65 }, + { 0x0, 0x0, 219, 699, 1967, 0, 0, -1 }, + { 0x1, 0x1, 219, 700, -1, 36, 1, 65 }, + { 0x0, 0x0, 219, 701, 1970, 0, 0, -1 }, + { 0x1, 0x1, 219, 702, -1, 36, 1, 65 }, + { 0x1, 0x1, 219, 703, 1973, 36, 1, 65 }, + { 0x1, 0x1, 219, 704, 1976, 36, 1, 65 }, + { 0x0, 0x0, 219, 1193, -1, 0, 1, 33 }, + { 0x1, 0x1, 219, 705, 2009, 36, 1, 65 }, + { 0x1, 0x1, 219, 706, -1, 31, 1, 137 }, + { 0x1, 0x1, 219, 223, 1208, 32, 1, 126 }, + { 0x1, 0x1, 219, 224, 1217, 32, 1, 126 }, + { 0x1, 0x1, 219, 225, 1226, 32, 1, 126 }, + { 0x1, 0x1, 219, 226, 1237, 32, 1, 126 }, + { 0x1, 0x1, 219, 227, 1246, 32, 1, 126 }, + { 0x1, 0x1, 219, 228, 1255, 32, 1, 126 }, + { 0x1, 0x1, 219, 229, 1264, 32, 1, 126 }, + { 0x1, 0x1, 219, 230, 1273, 32, 1, 126 }, + { 0x1, 0x1, 219, 231, 1282, 32, 1, 126 }, + { 0x1, 0x1, 219, 232, 1291, 32, 1, 126 }, + { 0x1, 0x1, 219, 233, 1301, 32, 1, 126 }, + { 0x1, 0x1, 219, 234, 1311, 32, 1, 126 }, + { 0x1, 0x1, 219, 235, 1324, 32, 1, 141 }, + { 0x1, 0x1, 219, 236, 1330, 32, 1, 141 }, + { 0x1, 0x1, 219, 237, 1336, 32, 1, 141 }, + { 0x1, 0x1, 219, 238, 1342, 32, 1, 141 }, + { 0x1, 0x1, 219, 239, 1348, 32, 1, 141 }, + { 0x1, 0x1, 219, 240, 1354, 32, 1, 141 }, + { 0x1, 0x1, 219, 241, 1360, 32, 1, 141 }, + { 0x1, 0x1, 219, 242, 1366, 32, 1, 141 }, + { 0x1, 0x1, 219, 243, 1372, 32, 1, 141 }, + { 0x1, 0x1, 219, 244, 1378, 32, 1, 141 }, + { 0x1, 0x1, 219, 245, 1384, 32, 1, 141 }, + { 0x1, 0x1, 219, 246, 1390, 32, 1, 141 }, + { 0x1, 0x1, 219, 247, 1396, 32, 1, 141 }, + { 0x1, 0x1, 219, 248, 1402, 32, 1, 141 }, + { 0x1, 0x1, 219, 249, 1408, 32, 1, 141 }, + { 0x1, 0x1, 219, 250, 1414, 32, 1, 141 }, + { 0x1, 0x1, 219, 251, 1420, 32, 1, 141 }, + { 0x1, 0x1, 219, 252, 1426, 32, 1, 141 }, + { 0x1, 0x1, 219, 710, -1, 31, 1, 149 }, + { 0x0, 0x0, 220, 2012, -1, 0, 1, 65 }, + { 0x0, 0x0, 220, 2013, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 24, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2015, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2016, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2017, -1, 0, 1, 44 }, + { 0x0, 0x0, 220, 2018, -1, 0, 1, 39 }, + { 0x1, 0x1, 220, 2019, -1, 12, 1, 58 }, + { 0x0, 0x0, 220, 2020, -1, 0, 1, 53 }, + { 0x1000001, 0x1000001, 220, 2021, -1, 12, 1, 58 }, + { 0x1, 0x1, 220, 2022, -1, 36, 1, 53 }, + { 0x200001, 0x200001, 220, 2023, -1, 12, 1, 58 }, + { 0x1, 0x1, 220, 2024, -1, 33, 1, 53 }, + { 0x1200001, 0x1200001, 220, 2025, -1, 12, 1, 48 }, + { 0x9, 0x9, 220, 2026, -1, 33, 1, 48 }, + { 0x1, 0x1, 220, 2027, -1, 12, 1, 58 }, + { 0x0, 0x0, 220, 2028, -1, 0, 1, 53 }, + { 0x200001, 0x1200001, 220, 2029, -1, 12, 1, 58 }, + { 0x1, 0x9, 220, 2030, -1, 33, 1, 53 }, + { 0x1, 0x1, 220, 2031, -1, 12, 1, 58 }, + { 0x0, 0x0, 220, 2032, -1, 0, 1, 53 }, + { 0x1000001, 0x1000001, 220, 2033, -1, 12, 1, 58 }, + { 0x1, 0x1, 220, 2034, -1, 36, 1, 53 }, + { 0x200001, 0x200001, 220, 2035, -1, 12, 1, 58 }, + { 0x1, 0x1, 220, 2036, -1, 33, 1, 53 }, + { 0x1200001, 0x1200001, 220, 2037, -1, 12, 1, 48 }, + { 0x9, 0x9, 220, 2038, -1, 33, 1, 48 }, + { 0x1, 0x1, 220, 2039, -1, 12, 1, 58 }, + { 0x0, 0x0, 220, 2040, -1, 0, 1, 53 }, + { 0x200001, 0x1200001, 220, 2041, -1, 12, 1, 58 }, + { 0x1, 0x9, 220, 2042, -1, 33, 1, 53 }, + { 0x1, 0x1, 220, 2043, -1, 28, 1, 28 }, + { 0x0, 0x0, 220, 2044, -1, 0, 1, 28 }, + { 0x3, 0x3, 220, 2045, -1, 27, 1, 28 }, + { 0x1, 0x1, 220, 2046, -1, 27, 1, 28 }, + { 0x0, 0x0, 220, 2047, -1, 0, 1, 65 }, + { 0x0, 0x0, 220, 2048, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2049, -1, 0, 1, 28 }, + { 0x1, 0x1, 220, 2050, -1, 36, 1, 65 }, + { 0x1, 0x1, 220, 2051, -1, 37, 1, 28 }, + { 0x0, 0x0, 220, 2052, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2053, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2054, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2055, -1, 0, 1, 65 }, + { 0x0, 0x0, 220, 2056, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 36, -1, 0, 1, 28 }, + { 0x1, 0x1, 220, 2058, -1, 36, 1, 65 }, + { 0x1, 0x1, 220, 2059, -1, 37, 1, 28 }, + { 0x0, 0x0, 220, 2060, -1, 0, 1, 28 }, + { 0x1, 0x1, 220, 2061, -1, 36, 1, 65 }, + { 0x1, 0x1, 220, 2062, -1, 37, 1, 28 }, + { 0x0, 0x0, 220, 2063, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2064, -1, 0, 1, 65 }, + { 0x0, 0x0, 220, 2065, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 41, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2067, -1, 0, 1, 65 }, + { 0x0, 0x0, 220, 2068, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 42, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2070, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2071, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2072, -1, 0, 1, 48 }, + { 0x1, 0x1, 220, 2073, -1, 27, 1, 48 }, + { 0x1, 0x1, 220, 2074, -1, 28, 1, 48 }, + { 0x3, 0x3, 220, 2075, -1, 27, 1, 48 }, + { 0x1, 0x1, 220, 2076, -1, 29, 1, 48 }, + { 0x5, 0x5, 220, 2077, -1, 27, 1, 48 }, + { 0x3, 0x3, 220, 2078, -1, 28, 1, 48 }, + { 0x7, 0x7, 220, 2079, -1, 27, 1, 48 }, + { 0x0, 0x0, 220, 2080, -1, 0, 1, 48 }, + { 0x0, 0x0, 220, 2081, -1, 0, 1, 48 }, + { 0x0, 0x0, 220, 2082, -1, 0, 1, 48 }, + { 0x0, 0x0, 220, 2083, -1, 0, 1, 48 }, + { 0x1, 0x1, 220, 2084, -1, 28, 1, 28 }, + { 0x0, 0x0, 220, 2085, -1, 0, 1, 28 }, + { 0x3, 0x3, 220, 2086, -1, 27, 1, 28 }, + { 0x1, 0x1, 220, 2087, -1, 27, 1, 28 }, + { 0x0, 0x0, 220, 2088, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2089, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2090, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 51, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2092, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2093, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 56, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 2095, -1, 0, 1, 23 }, + { 0x0, 0x0, 220, 2096, -1, 0, 1, 23 }, + { 0x0, 0x0, 220, 2097, -1, 0, 1, 23 }, + { 0x0, 0x0, 220, 2098, -1, 0, 1, 23 }, + { 0x0, 0x0, 220, 2099, -1, 0, 1, 34 }, + { 0x0, 0x0, 220, 2100, -1, 0, 1, 65 }, + { 0x0, 0x0, 220, 2101, -1, 0, 1, 28 }, + { 0x0, 0x0, 220, 63, -1, 0, 1, 28 }, + { 0x1, 0x1, 221, 2103, -1, 34, 1, 65 }, + { 0x1, 0x1, 221, 2104, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2105, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2106, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2107, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2108, -1, 34, 1, 45 }, + { 0x1, 0x1, 221, 2109, -1, 34, 1, 41 }, + { 0x400001, 0x400001, 221, 2110, -1, 12, 1, 60 }, + { 0x1, 0x1, 221, 2111, -1, 34, 1, 55 }, + { 0x1400001, 0x1400001, 221, 2112, -1, 12, 1, 60 }, + { 0x5, 0x5, 221, 2113, -1, 34, 1, 55 }, + { 0x600001, 0x600001, 221, 2114, -1, 12, 1, 60 }, + { 0x3, 0x3, 221, 2115, -1, 33, 1, 55 }, + { 0x1600001, 0x1600001, 221, 2116, -1, 12, 1, 50 }, + { 0xb, 0xb, 221, 2117, -1, 33, 1, 50 }, + { 0x400001, 0x400001, 221, 2118, -1, 12, 1, 60 }, + { 0x1, 0x1, 221, 2119, -1, 34, 1, 55 }, + { 0x600001, 0x1600001, 221, 2120, -1, 12, 1, 60 }, + { 0x3, 0xb, 221, 2121, -1, 33, 1, 55 }, + { 0x400001, 0x400001, 221, 2122, -1, 12, 1, 60 }, + { 0x1, 0x1, 221, 2123, -1, 34, 1, 55 }, + { 0x1400001, 0x1400001, 221, 2124, -1, 12, 1, 60 }, + { 0x5, 0x5, 221, 2125, -1, 34, 1, 55 }, + { 0x600001, 0x600001, 221, 2126, -1, 12, 1, 60 }, + { 0x3, 0x3, 221, 2127, -1, 33, 1, 55 }, + { 0x1600001, 0x1600001, 221, 2128, -1, 12, 1, 50 }, + { 0xb, 0xb, 221, 2129, -1, 33, 1, 50 }, + { 0x400001, 0x400001, 221, 2130, -1, 12, 1, 60 }, + { 0x1, 0x1, 221, 2131, -1, 34, 1, 55 }, + { 0x600001, 0x1600001, 221, 2132, -1, 12, 1, 60 }, + { 0x3, 0xb, 221, 2133, -1, 33, 1, 55 }, + { 0x41, 0x41, 221, 2134, -1, 28, 1, 30 }, + { 0x1, 0x1, 221, 2135, -1, 34, 1, 30 }, + { 0x83, 0x83, 221, 2136, -1, 27, 1, 30 }, + { 0x81, 0x81, 221, 2137, -1, 27, 1, 30 }, + { 0x1, 0x1, 221, 2138, -1, 34, 1, 65 }, + { 0x1, 0x1, 221, 2139, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2140, -1, 34, 1, 30 }, + { 0x5, 0x5, 221, 2141, -1, 34, 1, 65 }, + { 0x9, 0x9, 221, 2142, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2143, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2144, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2145, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2146, -1, 34, 1, 65 }, + { 0x1, 0x1, 221, 2147, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2148, -1, 34, 1, 30 }, + { 0x5, 0x5, 221, 2149, -1, 34, 1, 65 }, + { 0x9, 0x9, 221, 2150, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2151, -1, 34, 1, 30 }, + { 0x5, 0x5, 221, 2152, -1, 34, 1, 65 }, + { 0x9, 0x9, 221, 2153, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2154, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2155, -1, 34, 1, 65 }, + { 0x1, 0x1, 221, 2156, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2157, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2158, -1, 34, 1, 65 }, + { 0x1, 0x1, 221, 2159, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2160, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2161, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2162, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2163, -1, 34, 1, 50 }, + { 0x81, 0x81, 221, 2164, -1, 27, 1, 50 }, + { 0x41, 0x41, 221, 2165, -1, 28, 1, 50 }, + { 0x83, 0x83, 221, 2166, -1, 27, 1, 50 }, + { 0x21, 0x21, 221, 2167, -1, 29, 1, 50 }, + { 0x85, 0x85, 221, 2168, -1, 27, 1, 50 }, + { 0x43, 0x43, 221, 2169, -1, 28, 1, 50 }, + { 0x87, 0x87, 221, 2170, -1, 27, 1, 50 }, + { 0x1, 0x1, 221, 2171, -1, 34, 1, 50 }, + { 0x1, 0x1, 221, 2172, -1, 34, 1, 50 }, + { 0x1, 0x1, 221, 2173, -1, 34, 1, 50 }, + { 0x1, 0x1, 221, 2174, -1, 34, 1, 50 }, + { 0x41, 0x41, 221, 2175, -1, 28, 1, 30 }, + { 0x1, 0x1, 221, 2176, -1, 34, 1, 30 }, + { 0x83, 0x83, 221, 2177, -1, 27, 1, 30 }, + { 0x81, 0x81, 221, 2178, -1, 27, 1, 30 }, + { 0x1, 0x1, 221, 2179, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2180, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2181, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2182, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2183, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2184, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2185, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2186, -1, 34, 1, 25 }, + { 0x1, 0x1, 221, 2187, -1, 34, 1, 25 }, + { 0x1, 0x1, 221, 2188, -1, 34, 1, 25 }, + { 0x1, 0x1, 221, 2189, -1, 34, 1, 25 }, + { 0x1, 0x1, 221, 2190, -1, 34, 1, 36 }, + { 0x1, 0x1, 221, 2191, -1, 34, 1, 65 }, + { 0x1, 0x1, 221, 2192, -1, 34, 1, 30 }, + { 0x1, 0x1, 221, 2193, -1, 34, 1, 30 }, + { 0x1, 0x1, 222, 2194, -1, 35, 1, 65 }, + { 0x1, 0x1, 222, 2195, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2196, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2197, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2198, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2199, -1, 35, 1, 46 }, + { 0x1, 0x1, 222, 2200, -1, 35, 1, 42 }, + { 0x800001, 0x800001, 222, 2201, -1, 12, 1, 61 }, + { 0x1, 0x1, 222, 2202, -1, 35, 1, 56 }, + { 0x1800001, 0x1800001, 222, 2203, -1, 12, 1, 61 }, + { 0x3, 0x3, 222, 2204, -1, 35, 1, 56 }, + { 0xa00001, 0xa00001, 222, 2205, -1, 12, 1, 61 }, + { 0x5, 0x5, 222, 2206, -1, 33, 1, 56 }, + { 0x1a00001, 0x1a00001, 222, 2207, -1, 12, 1, 51 }, + { 0xd, 0xd, 222, 2208, -1, 33, 1, 51 }, + { 0x800001, 0x800001, 222, 2209, -1, 12, 1, 61 }, + { 0x1, 0x1, 222, 2210, -1, 35, 1, 56 }, + { 0xa00001, 0x1a00001, 222, 2211, -1, 12, 1, 61 }, + { 0x5, 0xd, 222, 2212, -1, 33, 1, 56 }, + { 0x800001, 0x800001, 222, 2213, -1, 12, 1, 61 }, + { 0x1, 0x1, 222, 2214, -1, 35, 1, 56 }, + { 0x1800001, 0x1800001, 222, 2215, -1, 12, 1, 61 }, + { 0x3, 0x3, 222, 2216, -1, 35, 1, 56 }, + { 0xa00001, 0xa00001, 222, 2217, -1, 12, 1, 61 }, + { 0x5, 0x5, 222, 2218, -1, 33, 1, 56 }, + { 0x1a00001, 0x1a00001, 222, 2219, -1, 12, 1, 51 }, + { 0xd, 0xd, 222, 2220, -1, 33, 1, 51 }, + { 0x800001, 0x800001, 222, 2221, -1, 12, 1, 61 }, + { 0x1, 0x1, 222, 2222, -1, 35, 1, 56 }, + { 0xa00001, 0x1a00001, 222, 2223, -1, 12, 1, 61 }, + { 0x5, 0xd, 222, 2224, -1, 33, 1, 56 }, + { 0x81, 0x81, 222, 2225, -1, 28, 1, 31 }, + { 0x1, 0x1, 222, 2226, -1, 35, 1, 31 }, + { 0x103, 0x103, 222, 2227, -1, 27, 1, 31 }, + { 0x101, 0x101, 222, 2228, -1, 27, 1, 31 }, + { 0x1, 0x1, 222, 2229, -1, 35, 1, 65 }, + { 0x1, 0x1, 222, 2230, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2231, -1, 35, 1, 31 }, + { 0x3, 0x3, 222, 2232, -1, 35, 1, 65 }, + { 0x5, 0x5, 222, 2233, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2234, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2235, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2236, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2237, -1, 35, 1, 65 }, + { 0x1, 0x1, 222, 2238, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2239, -1, 35, 1, 31 }, + { 0x3, 0x3, 222, 2240, -1, 35, 1, 65 }, + { 0x5, 0x5, 222, 2241, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2242, -1, 35, 1, 31 }, + { 0x3, 0x3, 222, 2243, -1, 35, 1, 65 }, + { 0x5, 0x5, 222, 2244, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2245, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2246, -1, 35, 1, 65 }, + { 0x1, 0x1, 222, 2247, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2248, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2249, -1, 35, 1, 65 }, + { 0x1, 0x1, 222, 2250, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2251, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2252, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2253, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2254, -1, 35, 1, 51 }, + { 0x101, 0x101, 222, 2255, -1, 27, 1, 51 }, + { 0x81, 0x81, 222, 2256, -1, 28, 1, 51 }, + { 0x103, 0x103, 222, 2257, -1, 27, 1, 51 }, + { 0x41, 0x41, 222, 2258, -1, 29, 1, 51 }, + { 0x105, 0x105, 222, 2259, -1, 27, 1, 51 }, + { 0x83, 0x83, 222, 2260, -1, 28, 1, 51 }, + { 0x107, 0x107, 222, 2261, -1, 27, 1, 51 }, + { 0x1, 0x1, 222, 2262, -1, 35, 1, 51 }, + { 0x1, 0x1, 222, 2263, -1, 35, 1, 51 }, + { 0x1, 0x1, 222, 2264, -1, 35, 1, 51 }, + { 0x1, 0x1, 222, 2265, -1, 35, 1, 51 }, + { 0x81, 0x81, 222, 2266, -1, 28, 1, 31 }, + { 0x1, 0x1, 222, 2267, -1, 35, 1, 31 }, + { 0x103, 0x103, 222, 2268, -1, 27, 1, 31 }, + { 0x101, 0x101, 222, 2269, -1, 27, 1, 31 }, + { 0x1, 0x1, 222, 2270, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2271, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2272, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2273, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2274, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2275, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2276, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2277, -1, 35, 1, 26 }, + { 0x1, 0x1, 222, 2278, -1, 35, 1, 26 }, + { 0x1, 0x1, 222, 2279, -1, 35, 1, 26 }, + { 0x1, 0x1, 222, 2280, -1, 35, 1, 26 }, + { 0x1, 0x1, 222, 2281, -1, 35, 1, 37 }, + { 0x1, 0x1, 222, 2282, -1, 35, 1, 65 }, + { 0x1, 0x1, 222, 2283, -1, 35, 1, 31 }, + { 0x1, 0x1, 222, 2284, -1, 35, 1, 31 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1875, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 47 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 43 }, + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 }, + { 0x3, 0x3, 223, 2458, -1, 34, 1, 57 }, + { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 }, + { 0x7, 0x7, 223, 2459, -1, 34, 1, 57 }, + { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 }, + { 0x7, 0x7, 223, 2460, -1, 33, 1, 57 }, + { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 }, + { 0xf, 0xf, 223, 2461, -1, 33, 1, 52 }, + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 }, + { 0x3, 0x3, 223, 2466, -1, 34, 1, 57 }, + { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 }, + { 0x7, 0xf, 223, 2467, -1, 33, 1, 57 }, + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 }, + { 0x3, 0x3, 223, 2470, -1, 34, 1, 57 }, + { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 }, + { 0x7, 0x7, 223, 2471, -1, 34, 1, 57 }, + { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 }, + { 0x7, 0x7, 223, 2472, -1, 33, 1, 57 }, + { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 }, + { 0xf, 0xf, 223, 2473, -1, 33, 1, 52 }, + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 }, + { 0x3, 0x3, 223, 2478, -1, 34, 1, 57 }, + { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 }, + { 0x7, 0xf, 223, 2479, -1, 33, 1, 57 }, + { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 }, + { 0x3, 0x3, 223, 2398, -1, 34, 1, 32 }, + { 0x183, 0x183, 223, -1, -1, 27, 1, 32 }, + { 0x181, 0x181, 223, 2399, -1, 27, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1876, -1, 34, 1, 32 }, + { 0x7, 0x7, 223, -1, -1, 34, 1, 65 }, + { 0xb, 0xb, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1877, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1880, -1, 34, 1, 32 }, + { 0x7, 0x7, 223, -1, -1, 34, 1, 65 }, + { 0xb, 0xb, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1881, -1, 34, 1, 32 }, + { 0x7, 0x7, 223, -1, -1, 34, 1, 65 }, + { 0xb, 0xb, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1883, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1885, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1886, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 }, + { 0x181, 0x181, 223, -1, -1, 27, 1, 52 }, + { 0xc1, 0xc1, 223, -1, -1, 28, 1, 52 }, + { 0x183, 0x183, 223, -1, -1, 27, 1, 52 }, + { 0x61, 0x61, 223, -1, -1, 29, 1, 52 }, + { 0x185, 0x185, 223, -1, -1, 27, 1, 52 }, + { 0xc3, 0xc3, 223, -1, -1, 28, 1, 52 }, + { 0x187, 0x187, 223, -1, -1, 27, 1, 52 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 }, + { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 }, + { 0x3, 0x3, 223, 2402, -1, 34, 1, 32 }, + { 0x183, 0x183, 223, -1, -1, 27, 1, 32 }, + { 0x181, 0x181, 223, 2403, -1, 27, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 38 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 }, + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 }, + { 0x3, 0x3, 223, 1888, -1, 34, 1, 32 }, + { 0x3, 0x3, 224, 401, 1210, 32, 1, 128 }, + { 0x3, 0x3, 224, 402, 1219, 32, 1, 128 }, + { 0x3, 0x3, 224, 403, 1228, 32, 1, 128 }, + { 0x3, 0x3, 224, 404, 1239, 32, 1, 128 }, + { 0x3, 0x3, 224, 405, 1248, 32, 1, 128 }, + { 0x3, 0x3, 224, 406, 1257, 32, 1, 128 }, + { 0x3, 0x3, 224, 407, 1266, 32, 1, 128 }, + { 0x3, 0x3, 224, 408, 1275, 32, 1, 128 }, + { 0x3, 0x3, 224, 409, 1284, 32, 1, 128 }, + { 0x3, 0x3, 224, 410, 1293, 32, 1, 128 }, + { 0x3, 0x3, 224, 411, 1303, 32, 1, 128 }, + { 0x3, 0x3, 224, 412, 1313, 32, 1, 128 }, + { 0x3, 0x3, 224, 425, 1326, 32, 1, 143 }, + { 0x3, 0x3, 224, 426, 1332, 32, 1, 143 }, + { 0x3, 0x3, 224, 427, 1338, 32, 1, 143 }, + { 0x3, 0x3, 224, 428, 1344, 32, 1, 143 }, + { 0x3, 0x3, 224, 429, 1350, 32, 1, 143 }, + { 0x3, 0x3, 224, 430, 1356, 32, 1, 143 }, + { 0x3, 0x3, 224, 431, 1362, 32, 1, 143 }, + { 0x3, 0x3, 224, 432, 1368, 32, 1, 143 }, + { 0x3, 0x3, 224, 433, 1374, 32, 1, 143 }, + { 0x3, 0x3, 224, 434, 1380, 32, 1, 143 }, + { 0x3, 0x3, 224, 435, 1386, 32, 1, 143 }, + { 0x3, 0x3, 224, 436, 1392, 32, 1, 143 }, + { 0x3, 0x3, 224, 437, 1398, 32, 1, 143 }, + { 0x3, 0x3, 224, 438, 1404, 32, 1, 143 }, + { 0x3, 0x3, 224, 439, 1410, 32, 1, 143 }, + { 0x3, 0x3, 224, 440, 1416, 32, 1, 143 }, + { 0x3, 0x3, 224, 441, 1422, 32, 1, 143 }, + { 0x3, 0x3, 224, 442, 1428, 32, 1, 143 }, + { 0x1, 0x1, 225, -1, -1, 28, 1, 33 }, + { 0x1, 0x1, 225, -1, -1, 28, 1, 33 }, + { 0x0, 0x0, 232, 810, -1, 0, 1, 137 }, + { 0x0, 0x0, 232, 811, -1, 0, 1, 149 }, + { 0x1, 0x1, 233, -1, 1725, 33, 1, 133 }, + { 0x1, 0x1, 233, -1, 1728, 33, 1, 139 }, + { 0x0, 0x0, 233, -1, 1730, 0, 1, 131 }, + { 0x0, 0x0, 233, -1, 1731, 0, 1, 131 }, + { 0x0, 0x0, 234, 744, 823, 0, 0, -1 }, + { 0x0, 0x0, 234, 745, 831, 0, 0, -1 }, + { 0x0, 0x0, 234, 746, 827, 0, 0, -1 }, + { 0x1, 0x1, 234, 747, 481, 33, 1, 6 }, + { 0x8000001, 0x8000001, 234, 748, 489, 6, 1, 7 }, + { 0x1, 0x1, 234, 749, 485, 33, 1, 6 }, + { 0x0, 0x0, 234, 750, 835, 0, 0, -1 }, + { 0x1, 0x1, 234, 751, 501, 33, 1, 8 }, + { 0x0, 0x0, 234, 752, 839, 0, 0, -1 }, + { 0x1, 0x1, 234, 753, 513, 33, 1, 15 }, + { 0x0, 0x0, 234, 754, 844, 0, 0, -1 }, + { 0x0, 0x0, 234, 755, 848, 0, 0, -1 }, + { 0x1, 0x1, 234, 756, 536, 33, 1, 17 }, + { 0x1, 0x1, 234, 757, 540, 33, 1, 17 }, + { 0x0, 0x0, 234, 758, 852, 0, 0, -1 }, + { 0x0, 0x0, 234, 759, 856, 0, 0, -1 }, + { 0x1, 0x1, 234, 760, 560, 33, 1, 18 }, + { 0x8000001, 0x8000001, 234, 761, 564, 6, 1, 18 }, + { 0x0, 0x0, 234, 762, 860, 0, 0, -1 }, + { 0x1, 0x1, 234, 763, 576, 33, 1, 19 }, + { 0x0, 0x0, 234, 764, 864, 0, 0, -1 }, + { 0x0, 0x0, 234, 765, 868, 0, 0, -1 }, + { 0x1, 0x1, 234, 766, 596, 33, 1, 20 }, + { 0x8000001, 0x8000001, 234, 767, 600, 6, 1, 20 }, + { 0x0, 0x0, 234, 768, 872, 0, 0, -1 }, + { 0x1, 0x1, 234, 769, 612, 33, 1, 21 }, + { 0x0, 0x0, 234, 770, 877, 0, 0, -1 }, + { 0x0, 0x0, 234, 771, 881, 0, 0, -1 }, + { 0x1, 0x1, 234, 772, 635, 33, 1, 17 }, + { 0x1, 0x1, 234, 773, 639, 33, 1, 17 }, + { 0x0, 0x0, 234, 774, 885, 0, 0, -1 }, + { 0x1, 0x1, 234, 775, 651, 33, 1, 21 }, + { 0x0, 0x0, 235, 2323, 822, 0, 0, -1 }, + { 0x0, 0x0, 235, 2324, 830, 0, 0, -1 }, + { 0x0, 0x0, 235, 2325, 826, 0, 0, -1 }, + { 0x0, 0x0, 235, 2326, 480, 0, 1, 6 }, + { 0x1, 0x1, 235, 2327, 488, 6, 1, 7 }, + { 0x0, 0x0, 235, 2328, 484, 0, 1, 6 }, + { 0x0, 0x0, 235, 2329, 834, 0, 0, -1 }, + { 0x0, 0x0, 235, 2330, 500, 0, 1, 8 }, + { 0x0, 0x0, 235, 2331, 838, 0, 0, -1 }, + { 0x0, 0x0, 235, 2332, 512, 0, 1, 15 }, + { 0x0, 0x0, 235, 2333, 843, 0, 0, -1 }, + { 0x0, 0x0, 235, 2334, 847, 0, 0, -1 }, + { 0x0, 0x0, 235, 2335, 535, 0, 1, 17 }, + { 0x0, 0x0, 235, 2336, 539, 0, 1, 17 }, + { 0x0, 0x0, 235, 2337, 851, 0, 0, -1 }, + { 0x0, 0x0, 235, 2338, 855, 0, 0, -1 }, + { 0x0, 0x0, 235, 2339, 559, 0, 1, 18 }, + { 0x1, 0x1, 235, 2340, 563, 6, 1, 18 }, + { 0x0, 0x0, 235, 2341, 859, 0, 0, -1 }, + { 0x0, 0x0, 235, 2342, 575, 0, 1, 19 }, + { 0x0, 0x0, 235, 2343, 863, 0, 0, -1 }, + { 0x0, 0x0, 235, 2344, 867, 0, 0, -1 }, + { 0x0, 0x0, 235, 2345, 595, 0, 1, 20 }, + { 0x1, 0x1, 235, 2346, 599, 6, 1, 20 }, + { 0x0, 0x0, 235, 2347, 871, 0, 0, -1 }, + { 0x0, 0x0, 235, 2348, 611, 0, 1, 21 }, + { 0x0, 0x0, 235, 2349, 876, 0, 0, -1 }, + { 0x0, 0x0, 235, 2350, 880, 0, 0, -1 }, + { 0x0, 0x0, 235, 2351, 634, 0, 1, 17 }, + { 0x0, 0x0, 235, 2352, 638, 0, 1, 17 }, + { 0x0, 0x0, 235, 2353, 884, 0, 0, -1 }, + { 0x0, 0x0, 235, 2354, 650, 0, 1, 21 }, + { 0x1, 0x1, 235, 776, 973, 27, 1, 16 }, + { 0x0, 0x0, 235, 777, 971, 0, 1, 16 }, + { 0x0, 0x0, 235, 1021, 975, 0, 1, 22 }, + { 0x0, 0x1, 235, 983, 981, 20, 1, 67 }, + { 0x0, 0x0, 235, 110, 979, 0, 1, 67 }, + { 0x1, 0x1, 238, -1, -1, 29, 1, 0 }, + { 0x0, 0x0, 238, -1, -1, 0, 1, 0 }, + { 0x1, 0x1, 238, 2495, -1, 27, 1, 0 }, + { 0x1, 0x1, 238, 2496, -1, 27, 1, 0 }, + { 0x1, 0x1, 238, 2497, -1, 27, 1, 0 }, + { 0x1, 0x1, 238, 2498, -1, 27, 1, 0 }, + { 0x0, 0x0, 260, -1, 1952, 0, 0, -1 }, + { 0x0, 0x0, 260, -1, 1954, 0, 0, -1 }, + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 }, + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 }, + { 0x0, 0x0, 260, -1, 1993, 0, 0, -1 }, + { 0x0, 0x0, 260, -1, 1995, 0, 0, -1 }, + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 }, + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 }, + { 0x0, 0x0, 262, 22, -1, 0, 1, 0 }, + { 0x0, 0x0, 262, -1, -1, 0, 1, 0 }, + { 0x0, 0x0, 262, -1, -1, 0, 1, 0 }, + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 }, + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 }, + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 }, + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 }, + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 }, + { 0x0, 0x0, 262, 178, -1, 0, 1, 0 }, + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 64 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 64 }, + { 0x0, 0x0, 263, -1, 1928, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1930, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1932, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1934, 0, 0, -1 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 49 }, + { 0x0, 0x0, 263, -1, 1936, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1938, 0, 0, -1 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x0, 0x0, 263, -1, 1940, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1942, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1944, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1946, 0, 0, -1 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 49 }, + { 0x0, 0x0, 263, -1, 1948, 0, 0, -1 }, + { 0x0, 0x0, 263, -1, 1950, 0, 0, -1 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 }, + { 0x1, 0x1, 263, 334, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, 392, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, 338, -1, 12, 1, 2 }, + { 0x1, 0x1, 263, 396, -1, 12, 1, 2 }, + { 0x0, 0x0, 264, -1, 1935, 0, 0, -1 }, + { 0x9, 0x9, 264, -1, 2465, 33, 1, 49 }, + { 0x0, 0x0, 264, 1173, 1984, 0, 0, -1 }, + { 0x3, 0x3, 264, 1174, -1, 27, 1, 49 }, + { 0x0, 0x0, 268, 2392, -1, 0, 1, 0 }, + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 }, + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 }, + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 }, + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 }, + { 0x1, 0x1, 270, 2491, -1, 28, 1, 0 }, + { 0x1, 0x1, 270, 2492, -1, 28, 1, 0 }, + { 0x1, 0x1, 270, 2493, -1, 28, 1, 0 }, + { 0x1, 0x1, 270, 2494, -1, 28, 1, 0 }, + { 0x1, 0x1, 271, -1, -1, 27, 1, 93 }, + { 0x1, 0x1, 271, -1, -1, 27, 1, 93 }, + { 0x0, 0x0, 271, -1, 820, 0, 0, -1 }, + { 0x0, 0x0, 272, 2504, 2369, 0, 0, -1 }, + { 0x0, 0x0, 272, 2505, 2371, 0, 0, -1 }, + { 0x0, 0x0, 273, -1, 2370, 0, 0, -1 }, + { 0x0, 0x0, 273, -1, 2372, 0, 0, -1 }, + { 0x0, 0x0, 274, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 274, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 274, -1, -1, 0, 1, 40 }, + { 0x0, 0x0, 279, -1, -1, 0, 1, 33 }, + { 0x0, 0x0, 283, -1, 1958, 0, 1, 29 }, + { 0x0, 0x0, 284, -1, -1, 0, 1, 0 }, + { 0x0, 0x0, 284, -1, -1, 0, 1, 71 }, + { 0x0, 0x0, 284, 1744, 2482, 0, 1, 1 }, + { 0x0, 0x0, 284, -1, 393, 0, 0, -1 }, + { 0x0, 0x0, 284, 1746, 2484, 0, 1, 1 }, + { 0x0, 0x0, 284, -1, 397, 0, 0, -1 }, }; static const struct ia64_main_table main_table[] = { - { 5, 1, 1, 0x0000010000000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 0, }, - { 5, 1, 1, 0x0000010008000000ull, 0x000001eff8000000ull, { 23, 24, 25, 3, 0 }, 0x0, 1, }, - { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 23, 65, 26, 0, 0 }, 0x0, 2, }, - { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 23, 62, 25, 0, 0 }, 0x0, 3, }, - { 6, 1, 1, 0x0000012000000000ull, 0x000001e000000000ull, { 23, 65, 26, 0, 0 }, 0x0, 4, }, - { 7, 1, 1, 0x0000010040000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 5, }, - { 7, 1, 1, 0x0000010c00000000ull, 0x000001ee00000000ull, { 23, 62, 25, 0, 0 }, 0x0, 6, }, - { 8, 1, 1, 0x0000010800000000ull, 0x000001ee00000000ull, { 23, 62, 25, 0, 0 }, 0x0, 7, }, - { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 23, 2, 51, 52, 53 }, 0x221, 8, }, - { 10, 1, 1, 0x0000010060000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 9, }, - { 10, 1, 1, 0x0000010160000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 10, }, - { 11, 1, 1, 0x0000010068000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 11, }, - { 11, 1, 1, 0x0000010168000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 12, }, - { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011ffull, { 15, 0, 0, 0, 0 }, 0x40, 814, }, - { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x0, 680, }, - { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x40, 681, }, - { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x200, 1843, }, - { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 15, 0, 0, 0, 0 }, 0x240, 1844, }, - { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 14, 15, 0, 0, 0 }, 0x0, 437, }, - { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 14, 15, 0, 0, 0 }, 0x40, 438, }, - { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011ffull, { 80, 0, 0, 0, 0 }, 0x40, 835, }, - { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x0, 682, }, - { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x40, 683, }, - { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x210, 2479, }, - { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x250, 2480, }, - { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x30, 445, }, - { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x70, 446, }, - { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x230, 443, }, - { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 80, 0, 0, 0, 0 }, 0x270, 444, }, - { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 14, 80, 0, 0, 0 }, 0x0, 439, }, - { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 14, 80, 0, 0, 0 }, 0x40, 440, }, - { 15, 4, 0, 0x0000000000000000ull, 0x000001e1f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 393, }, - { 15, 5, 0, 0x0000000000000000ull, 0x000001e3f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 806, }, - { 15, 2, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x2, 949, }, - { 15, 3, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 1038, }, - { 15, 6, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 68, 0, 0, 0, 0 }, 0x0, 2483, }, - { 15, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 64, 0, 0, 0, 0 }, 0x0, 15, }, - { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011ffull, { 81, 0, 0, 0, 0 }, 0x40, 868, }, - { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x0, 684, }, - { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x40, 685, }, - { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 14, 81, 0, 0, 0 }, 0x0, 441, }, - { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 14, 81, 0, 0, 0 }, 0x40, 442, }, - { 17, 4, 0, 0x0000004080000000ull, 0x000001e9f8000018ull, { 15, 76, 0, 0, 0 }, 0x20, 2365, }, - { 17, 4, 0, 0x000000e000000000ull, 0x000001e800000018ull, { 80, 76, 0, 0, 0 }, 0x20, 2366, }, - { 18, 4, 0, 0x0000000060000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x2c, 216, }, - { 22, 2, 0, 0x0000000200000000ull, 0x000001ee00000000ull, { 24, 79, 0, 0, 0 }, 0x0, 1848, }, - { 22, 3, 0, 0x0000000800000000ull, 0x000001ee00000000ull, { 23, 80, 0, 0, 0 }, 0x0, 218, }, - { 22, 3, 0, 0x0000000c00000000ull, 0x000001ee00000000ull, { 17, 80, 0, 0, 0 }, 0x0, 219, }, - { 22, 3, 0, 0x0000002200000000ull, 0x000001ee00000000ull, { 24, 79, 0, 0, 0 }, 0x0, 1849, }, - { 22, 3, 0, 0x0000002600000000ull, 0x000001ee00000000ull, { 18, 79, 0, 0, 0 }, 0x0, 1850, }, - { 22, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 79, 0, 0, 0 }, 0x0, 1851, }, + { 5, 1, 1, 0x0000010000000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 0, }, + { 5, 1, 1, 0x0000010008000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 1, }, + { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 2, }, + { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 63, 26, 0, 0 }, 0x0, 3, }, + { 6, 1, 1, 0x0000012000000000ull, 0x000001e000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 4, }, + { 7, 1, 1, 0x0000010040000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 5, }, + { 7, 1, 1, 0x0000010c00000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 6, }, + { 8, 1, 1, 0x0000010800000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 7, }, + { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 24, 3, 52, 53, 54 }, 0x221, 8, }, + { 10, 1, 1, 0x0000010060000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 9, }, + { 10, 1, 1, 0x0000010160000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 10, }, + { 11, 1, 1, 0x0000010068000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 11, }, + { 11, 1, 1, 0x0000010168000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 12, }, + { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011ffull, { 16, 0, 0, 0, 0 }, 0x40, 821, }, + { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x0, 686, }, + { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x40, 687, }, + { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x200, 1866, }, + { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x240, 1867, }, + { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x0, 443, }, + { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x40, 444, }, + { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011ffull, { 81, 0, 0, 0, 0 }, 0x40, 842, }, + { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x0, 688, }, + { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x40, 689, }, + { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x210, 2502, }, + { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x250, 2503, }, + { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x30, 451, }, + { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x70, 452, }, + { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x230, 449, }, + { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x270, 450, }, + { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x0, 445, }, + { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x40, 446, }, + { 15, 4, 0, 0x0000000000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 398, }, + { 15, 5, 0, 0x0000000000000000ull, 0x000001e3f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 812, }, + { 15, 2, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x2, 956, }, + { 15, 3, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1047, }, + { 15, 6, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2506, }, + { 15, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 15, }, + { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011ffull, { 82, 0, 0, 0, 0 }, 0x40, 875, }, + { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x0, 690, }, + { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x40, 691, }, + { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x0, 447, }, + { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x40, 448, }, + { 17, 4, 0, 0x0000004080000000ull, 0x000001e9f8000018ull, { 16, 77, 0, 0, 0 }, 0x20, 2388, }, + { 17, 4, 0, 0x000000e000000000ull, 0x000001e800000018ull, { 81, 77, 0, 0, 0 }, 0x20, 2389, }, + { 18, 4, 0, 0x0000000060000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x2c, 219, }, + { 22, 2, 0, 0x0000000200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 1871, }, + { 22, 3, 0, 0x0000000800000000ull, 0x000001ee00000000ull, { 24, 81, 0, 0, 0 }, 0x0, 221, }, + { 22, 3, 0, 0x0000000c00000000ull, 0x000001ee00000000ull, { 18, 81, 0, 0, 0 }, 0x0, 222, }, + { 22, 3, 0, 0x0000002200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 1872, }, + { 22, 3, 0, 0x0000002600000000ull, 0x000001ee00000000ull, { 19, 80, 0, 0, 0 }, 0x0, 1873, }, + { 22, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 25, 80, 0, 0, 0 }, 0x0, 1874, }, { 25, 4, 0, 0x0000000020000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 17, }, - { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x0, 1014, }, - { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 21, 25, 24, 0 }, 0x0, 990, }, - { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 21, 22, 25, 24, 0 }, 0x0, 918, }, - { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x0, 897, }, - { 26, 1, 2, 0x0000018200000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x40, 1146, }, - { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x0, 919, }, - { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 21, 22, 25, 6, 0 }, 0x40, 1016, }, - { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x40, 993, }, - { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x0, 1018, }, - { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 21, 22, 56, 25, 0 }, 0x0, 994, }, - { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 21, 56, 25, 0 }, 0x0, 922, }, - { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x0, 901, }, - { 26, 1, 2, 0x0000018a00000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x40, 1149, }, - { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 21, 22, 58, 25, 0 }, 0x0, 1009, }, - { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 21, 58, 25, 0 }, 0x0, 939, }, - { 26, 1, 2, 0x000001c200000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x40, 1150, }, - { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 22, 21, 6, 25, 0 }, 0x40, 995, }, - { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 22, 21, 25, 6, 0 }, 0x40, 903, }, - { 26, 1, 2, 0x000001ca00000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x40, 1151, }, - { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x0, 1021, }, - { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 21, 25, 24, 0 }, 0x0, 997, }, - { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 21, 22, 25, 24, 0 }, 0x0, 925, }, - { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x0, 904, }, - { 27, 1, 2, 0x0000018600000000ull, 0x000001fe00001000ull, { 21, 22, 24, 25, 0 }, 0x40, 1154, }, - { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x0, 926, }, - { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 21, 22, 25, 6, 0 }, 0x40, 1023, }, - { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 21, 22, 6, 25, 0 }, 0x40, 1000, }, - { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x0, 1025, }, - { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 21, 22, 56, 25, 0 }, 0x0, 1001, }, - { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 21, 56, 25, 0 }, 0x0, 929, }, - { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x0, 908, }, - { 27, 1, 2, 0x0000018e00000000ull, 0x000001ee00001000ull, { 21, 22, 54, 25, 0 }, 0x40, 1157, }, - { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 21, 22, 55, 25, 0 }, 0x0, 1035, }, - { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 21, 22, 57, 25, 0 }, 0x0, 1011, }, - { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 21, 57, 25, 0 }, 0x0, 941, }, - { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 21, 55, 25, 0 }, 0x0, 917, }, - { 27, 1, 2, 0x000001c600000000ull, 0x000001fe00001000ull, { 22, 21, 24, 25, 0 }, 0x40, 1158, }, - { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 22, 21, 6, 25, 0 }, 0x40, 1002, }, - { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 22, 21, 25, 6, 0 }, 0x40, 910, }, - { 27, 1, 2, 0x000001ce00000000ull, 0x000001ee00001000ull, { 22, 21, 54, 25, 0 }, 0x40, 1159, }, - { 28, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 251, }, - { 29, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 252, }, - { 30, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 253, }, - { 31, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 23, 32, 24, 1, 0 }, 0x0, 254, }, - { 33, 4, 0, 0x0000000010000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 18, }, - { 35, 2, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 976, }, - { 36, 2, 1, 0x00000000c8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 977, }, - { 38, 2, 1, 0x0000008000000000ull, 0x000001e000000000ull, { 23, 24, 25, 46, 71 }, 0x0, 19, }, - { 38, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 23, 24, 44, 72, 0 }, 0x0, 2487, }, - { 38, 2, 1, 0x000000a604000000ull, 0x000001ee04000000ull, { 23, 54, 44, 72, 0 }, 0x0, 2488, }, - { 38, 2, 1, 0x000000ae00000000ull, 0x000001ee00000000ull, { 23, 47, 25, 45, 72 }, 0x0, 20, }, - { 42, 4, 0, 0x0000000080000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x20, 21, }, - { 47, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 23, 25, 75, 72, 0 }, 0x0, 2383, }, - { 49, 5, 1, 0x0000000080000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 23, }, - { 50, 5, 1, 0x0000010008000000ull, 0x000001fff8000000ull, { 17, 19, 18, 0, 0 }, 0x40, 1900, }, - { 51, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1901, }, - { 51, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 25, }, - { 52, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1902, }, - { 52, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 26, }, - { 53, 5, 1, 0x0000000160000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 27, }, - { 54, 5, 1, 0x0000000168000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 28, }, - { 56, 3, 0, 0x0000002180000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0x0, 29, }, - { 57, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 78, 0, 0, 0, 0 }, 0x0, 1903, }, - { 57, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 78, 0, 0, 0, 0 }, 0x40, 30, }, - { 58, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 21, 22, 18, 59, 0 }, 0x0, 1040, }, - { 58, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 21, 18, 59, 0 }, 0x40, 1179, }, - { 59, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 1904, }, - { 59, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x40, 31, }, - { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 21, 22, 18, 19, 0 }, 0x0, 790, }, - { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 21, 22, 18, 19, 0 }, 0x40, 791, }, - { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 21, 22, 19, 18, 0 }, 0x0, 932, }, - { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 21, 22, 19, 18, 0 }, 0x40, 933, }, - { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 21, 18, 19, 0 }, 0x0, 1160, }, - { 60, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 21, 18, 19, 0 }, 0x40, 1161, }, - { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 21, 19, 18, 0 }, 0x0, 1167, }, - { 60, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 21, 19, 18, 0 }, 0x40, 1168, }, - { 61, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x0, 887, }, - { 61, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x40, 888, }, - { 61, 5, 1, 0x00000000e0000000ull, 0x000001e3f8000000ull, { 17, 18, 0, 0, 0 }, 0x0, 2485, }, - { 61, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 2486, }, - { 62, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 23, 32, 70, 0, 0 }, 0x0, 255, }, - { 63, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 23, 32, 70, 0, 0 }, 0x0, 256, }, - { 66, 3, 0, 0x0000000060000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 32, }, - { 67, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1938, }, - { 67, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 33, }, - { 68, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1939, }, - { 68, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 34, }, - { 69, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1856, }, - { 70, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1940, }, - { 70, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 35, }, - { 71, 5, 1, 0x00000001c8000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1013, }, - { 72, 5, 1, 0x0000010000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1943, }, - { 73, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1946, }, - { 73, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 37, }, - { 74, 5, 1, 0x0000000088000000ull, 0x000001e3f8000000ull, { 17, 19, 0, 0, 0 }, 0xc0, 38, }, - { 75, 5, 1, 0x0000000088000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 39, }, - { 76, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1949, }, - { 76, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 40, }, - { 77, 5, 1, 0x0000018000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1952, }, - { 78, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 1955, }, - { 79, 5, 1, 0x0000000170000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 43, }, - { 80, 5, 1, 0x0000002080000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 44, }, - { 81, 5, 1, 0x0000000140000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 45, }, - { 82, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1956, }, - { 82, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 46, }, - { 83, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1957, }, - { 83, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 47, }, - { 84, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 792, }, - { 84, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 793, }, - { 84, 5, 1, 0x0000002188000000ull, 0x000001eff8000000ull, { 17, 19, 18, 0, 0 }, 0x40, 934, }, - { 85, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x0, 889, }, - { 85, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 17, 18, 0, 0, 0 }, 0x40, 890, }, - { 86, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1974, }, - { 86, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 48, }, - { 87, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1975, }, - { 87, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 49, }, - { 88, 5, 1, 0x0000002080000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1864, }, - { 89, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1976, }, - { 89, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 17, 18, 19, 0, 0 }, 0x40, 50, }, - { 90, 5, 1, 0x0000013000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1977, }, - { 91, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1978, }, - { 91, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 52, }, - { 92, 5, 1, 0x0000002088000000ull, 0x000001e3f8000000ull, { 17, 19, 0, 0, 0 }, 0xc0, 53, }, - { 93, 5, 1, 0x0000002088000000ull, 0x000001e3f80fe000ull, { 17, 19, 0, 0, 0 }, 0x40, 54, }, - { 94, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 1979, }, - { 94, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 55, }, - { 95, 5, 1, 0x000001b000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 1980, }, - { 96, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x0, 1981, }, - { 96, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x40, 57, }, - { 97, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x0, 1982, }, - { 97, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x40, 58, }, - { 98, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x0, 1983, }, - { 98, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 17, 22, 18, 19, 0 }, 0x40, 59, }, - { 99, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x0, 1984, }, - { 99, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 17, 22, 19, 0, 0 }, 0x40, 60, }, - { 100, 5, 1, 0x000001c000000000ull, 0x000001f000000000ull, { 17, 19, 20, 18, 0 }, 0x0, 61, }, - { 101, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 49, 50, 0, 0, 0 }, 0x0, 1985, }, - { 101, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 49, 50, 0, 0, 0 }, 0x40, 62, }, - { 102, 5, 1, 0x0000014008000000ull, 0x000001fff8000000ull, { 17, 19, 18, 0, 0 }, 0x40, 1988, }, - { 103, 5, 1, 0x00000001a0000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 64, }, - { 104, 5, 1, 0x00000001e0000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 1819, }, - { 105, 3, 0, 0x0000000100000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 65, }, - { 107, 5, 1, 0x0000000178000000ull, 0x000001e3f8000000ull, { 17, 18, 19, 0, 0 }, 0x0, 66, }, - { 112, 3, 1, 0x0000008708000000ull, 0x000001ffc8000000ull, { 23, 18, 0, 0, 0 }, 0x0, 2294, }, - { 121, 3, 0, 0x0000000080000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 67, }, - { 121, 3, 0, 0x0000000090000000ull, 0x000001eff8000000ull, { 23, 0, 0, 0, 0 }, 0x0, 775, }, - { 121, 3, 0, 0x0000000098000000ull, 0x000001eff8000000ull, { 17, 0, 0, 0, 0 }, 0x0, 776, }, - { 122, 3, 0, 0x0000002170000000ull, 0x000001eff8000000ull, { 24, 0, 0, 0, 0 }, 0xc, 701, }, - { 123, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 29, 24, 0, 0, 0 }, 0x8, 702, }, - { 123, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 30, 24, 0, 0, 0 }, 0x8, 952, }, - { 125, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 68, }, - { 125, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 69, }, - { 125, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 70, }, - { 126, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 71, }, - { 126, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 72, }, - { 126, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 73, }, - { 127, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 74, }, - { 127, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 75, }, - { 127, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 76, }, - { 128, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 23, 32, 0, 0, 0 }, 0x0, 77, }, - { 128, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x400, 78, }, - { 128, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 23, 32, 61, 0, 0 }, 0x400, 79, }, - { 129, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 884, }, - { 129, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 885, }, - { 129, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 886, }, - { 130, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 80, }, - { 130, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 81, }, - { 130, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 82, }, - { 131, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 83, }, - { 131, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 84, }, - { 131, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 85, }, - { 132, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 86, }, - { 132, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 87, }, - { 132, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 88, }, - { 133, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 17, 18, 32, 0, 0 }, 0x0, 89, }, - { 133, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 17, 18, 32, 5, 0 }, 0x400, 90, }, - { 134, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 17, 18, 32, 0, 0 }, 0x0, 91, }, - { 134, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 17, 18, 32, 5, 0 }, 0x400, 92, }, - { 135, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 17, 18, 32, 0, 0 }, 0x0, 93, }, - { 135, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 17, 18, 32, 4, 0 }, 0x400, 94, }, - { 136, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 17, 32, 0, 0, 0 }, 0x0, 95, }, - { 136, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 17, 32, 24, 0, 0 }, 0x400, 96, }, - { 136, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 17, 32, 61, 0, 0 }, 0x400, 97, }, - { 139, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 32, 0, 0, 0, 0 }, 0x0, 98, }, - { 139, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x400, 99, }, - { 139, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 32, 61, 0, 0, 0 }, 0x400, 100, }, - { 140, 3, 0, 0x0000000050000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 101, }, - { 148, 3, 0, 0x0000000110000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 102, }, - { 149, 2, 1, 0x000000e880000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1820, }, - { 150, 2, 1, 0x000000ea80000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1821, }, - { 151, 2, 1, 0x000000f880000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1822, }, - { 152, 1, 1, 0x0000010800000000ull, 0x000001fff80fe000ull, { 23, 25, 0, 0, 0 }, 0x0, 103, }, - { 152, 1, 1, 0x0000010800000000ull, 0x000001ee07f00000ull, { 23, 62, 0, 0, 0 }, 0x40, 104, }, - { 152, 1, 1, 0x0000012000000000ull, 0x000001e000300000ull, { 23, 65, 0, 0, 0 }, 0x40, 105, }, - { 152, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 17, 19, 0, 0, 0 }, 0xc0, 106, }, - { 152, 2, 1, 0x0000000e00100000ull, 0x000001ee00f00000ull, { 14, 24, 0, 0, 0 }, 0x40, 107, }, - { 152, 2, 1, 0x0000000e00000000ull, 0x000001ee00f00000ull, { 14, 24, 77, 0, 0 }, 0x0, 2368, }, - { 152, 2, 1, 0x0000000188000000ull, 0x000001eff8000000ull, { 23, 15, 0, 0, 0 }, 0x0, 109, }, - { 152, 2, 1, 0x0000000600000000ull, 0x000001ee00000000ull, { 8, 24, 63, 0, 0 }, 0x0, 110, }, - { 152, 2, 1, 0x0000000400000000ull, 0x000001ee00000000ull, { 9, 67, 0, 0, 0 }, 0x0, 111, }, - { 152, 2, 1, 0x0000000180000000ull, 0x000001eff8000000ull, { 23, 7, 0, 0, 0 }, 0x0, 112, }, - { 152, 2, 1, 0x0000000198000000ull, 0x000001eff8000000ull, { 23, 8, 0, 0, 0 }, 0x0, 113, }, - { 152, 2, 1, 0x0000000150000000ull, 0x000001eff8000000ull, { 13, 24, 0, 0, 0 }, 0x0, 953, }, - { 152, 2, 1, 0x0000000050000000ull, 0x000001eff8000000ull, { 13, 54, 0, 0, 0 }, 0x0, 954, }, - { 152, 2, 1, 0x0000000190000000ull, 0x000001eff8000000ull, { 23, 13, 0, 0, 0 }, 0x0, 955, }, - { 152, 3, 1, 0x0000000140000000ull, 0x000001eff8000000ull, { 13, 54, 0, 0, 0 }, 0x0, 1041, }, - { 152, 3, 1, 0x0000002150000000ull, 0x000001eff8000000ull, { 13, 24, 0, 0, 0 }, 0x0, 1042, }, - { 152, 3, 1, 0x0000002110000000ull, 0x000001eff8000000ull, { 23, 13, 0, 0, 0 }, 0x0, 1043, }, - { 152, 3, 1, 0x0000002160000000ull, 0x000001eff8000000ull, { 16, 24, 0, 0, 0 }, 0x8, 114, }, - { 152, 3, 1, 0x0000002120000000ull, 0x000001eff8000000ull, { 23, 16, 0, 0, 0 }, 0x8, 115, }, - { 152, 3, 1, 0x0000002168000000ull, 0x000001eff8000000ull, { 11, 24, 0, 0, 0 }, 0x8, 116, }, - { 152, 3, 1, 0x0000002148000000ull, 0x000001eff8000000ull, { 12, 24, 0, 0, 0 }, 0x0, 117, }, - { 152, 3, 1, 0x0000002128000000ull, 0x000001eff8000000ull, { 23, 10, 0, 0, 0 }, 0x8, 118, }, - { 152, 3, 1, 0x0000002108000000ull, 0x000001eff8000000ull, { 23, 12, 0, 0, 0 }, 0x0, 119, }, - { 152, 3, 1, 0x0000002000000000ull, 0x000001eff8000000ull, { 37, 24, 0, 0, 0 }, 0x8, 120, }, - { 152, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 28, 24, 0, 0, 0 }, 0x8, 121, }, - { 152, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 31, 24, 0, 0, 0 }, 0x8, 122, }, - { 152, 3, 1, 0x0000002018000000ull, 0x000001eff8000000ull, { 34, 24, 0, 0, 0 }, 0x8, 123, }, - { 152, 3, 1, 0x0000002020000000ull, 0x000001eff8000000ull, { 35, 24, 0, 0, 0 }, 0x8, 124, }, - { 152, 3, 1, 0x0000002028000000ull, 0x000001eff8000000ull, { 36, 24, 0, 0, 0 }, 0x8, 125, }, - { 152, 3, 1, 0x0000002030000000ull, 0x000001eff8000000ull, { 33, 24, 0, 0, 0 }, 0x8, 126, }, - { 152, 3, 1, 0x0000002080000000ull, 0x000001eff8000000ull, { 23, 37, 0, 0, 0 }, 0x8, 127, }, - { 152, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 23, 28, 0, 0, 0 }, 0x8, 128, }, - { 152, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 23, 31, 0, 0, 0 }, 0x8, 129, }, - { 152, 3, 1, 0x0000002098000000ull, 0x000001eff8000000ull, { 23, 34, 0, 0, 0 }, 0x8, 130, }, - { 152, 3, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 23, 35, 0, 0, 0 }, 0x8, 131, }, - { 152, 3, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 23, 36, 0, 0, 0 }, 0x0, 132, }, - { 152, 3, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 23, 33, 0, 0, 0 }, 0x8, 133, }, - { 152, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 23, 27, 0, 0, 0 }, 0x0, 134, }, - { 152, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 23, 13, 0, 0, 0 }, 0x0, 135, }, - { 152, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 13, 54, 0, 0, 0 }, 0x0, 136, }, - { 152, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 13, 24, 0, 0, 0 }, 0x0, 137, }, - { 153, 6, 1, 0x000000c000000000ull, 0x000001e000100000ull, { 23, 69, 0, 0, 0 }, 0x0, 138, }, - { 154, 2, 1, 0x000000eca0000000ull, 0x000001fff0000000ull, { 23, 24, 73, 0, 0 }, 0x0, 139, }, - { 155, 2, 1, 0x000000eea0000000ull, 0x000001fff0000000ull, { 23, 24, 74, 0, 0 }, 0x0, 140, }, - { 165, 4, 0, 0x0000004000000000ull, 0x000001e1f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 394, }, - { 165, 5, 0, 0x0000000008000000ull, 0x000001e3f8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 807, }, - { 165, 2, 0, 0x0000000008000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x2, 956, }, - { 165, 3, 0, 0x0000000008000000ull, 0x000001eff8000000ull, { 64, 0, 0, 0, 0 }, 0x0, 1044, }, - { 165, 6, 0, 0x0000000008000000ull, 0x000001eff8000000ull, { 68, 0, 0, 0, 0 }, 0x0, 2484, }, - { 165, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 64, 0, 0, 0, 0 }, 0x0, 141, }, - { 172, 1, 1, 0x0000010070000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 142, }, - { 172, 1, 1, 0x0000010170000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 143, }, - { 175, 2, 1, 0x000000ea00000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2467, }, - { 176, 2, 1, 0x000000f820000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2370, }, - { 177, 1, 1, 0x0000010400000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 144, }, - { 178, 1, 1, 0x0000010600000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 145, }, - { 179, 1, 1, 0x0000011400000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 146, }, - { 180, 1, 1, 0x0000010450000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 147, }, - { 181, 1, 1, 0x0000010650000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 148, }, - { 182, 1, 1, 0x0000010470000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 149, }, - { 183, 1, 1, 0x0000010670000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 150, }, - { 184, 1, 1, 0x0000010520000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 794, }, - { 185, 1, 1, 0x0000010720000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 795, }, - { 186, 1, 1, 0x0000011520000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 796, }, - { 187, 2, 1, 0x000000e850000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2384, }, - { 188, 2, 1, 0x000000ea70000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 151, }, - { 189, 2, 1, 0x000000e810000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 2385, }, - { 190, 2, 1, 0x000000ea30000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 152, }, - { 191, 2, 1, 0x000000ead0000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 1823, }, - { 192, 2, 1, 0x000000e230000000ull, 0x000001ff30000000ull, { 23, 24, 25, 41, 0 }, 0x0, 153, }, - { 193, 2, 1, 0x000000e690000000ull, 0x000001fff0000000ull, { 23, 25, 0, 0, 0 }, 0x0, 154, }, - { 195, 3, 1, 0x00000021c0000000ull, 0x000001eff8000000ull, { 23, 25, 24, 0, 0 }, 0x0, 1824, }, - { 195, 3, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 23, 25, 48, 0, 0 }, 0x0, 1825, }, - { 195, 3, 0, 0x0000002188000000ull, 0x000001eff8000000ull, { 25, 48, 0, 0, 0 }, 0x0, 1847, }, - { 196, 2, 1, 0x000000e8b0000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 155, }, - { 197, 2, 1, 0x000000e240000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 156, }, - { 197, 2, 1, 0x000000ee50000000ull, 0x000001fff0000000ull, { 23, 24, 38, 0, 0 }, 0x0, 157, }, - { 198, 2, 1, 0x000000f040000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 158, }, - { 198, 2, 1, 0x000000fc50000000ull, 0x000001fff0000000ull, { 23, 24, 38, 0, 0 }, 0x0, 159, }, - { 199, 1, 1, 0x0000010680000000ull, 0x000001ffe0000000ull, { 23, 24, 40, 25, 0 }, 0x0, 160, }, - { 200, 2, 1, 0x000000e220000000ull, 0x000001fff0000000ull, { 23, 25, 24, 0, 0 }, 0x0, 161, }, - { 200, 2, 1, 0x000000e630000000ull, 0x000001fff0000000ull, { 23, 25, 42, 0, 0 }, 0x0, 162, }, - { 201, 2, 1, 0x000000f020000000ull, 0x000001fff0000000ull, { 23, 25, 24, 0, 0 }, 0x0, 163, }, - { 201, 2, 1, 0x000000f430000000ull, 0x000001fff0000000ull, { 23, 25, 42, 0, 0 }, 0x0, 164, }, - { 202, 1, 1, 0x00000106c0000000ull, 0x000001ffe0000000ull, { 23, 24, 40, 25, 0 }, 0x0, 165, }, - { 203, 1, 1, 0x0000010420000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 166, }, - { 204, 1, 1, 0x0000010620000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 167, }, - { 205, 1, 1, 0x0000011420000000ull, 0x000001fff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 168, }, - { 206, 3, 0, 0x0000002048000000ull, 0x000001eff8000000ull, { 25, 24, 0, 0, 0 }, 0x8, 984, }, - { 206, 3, 0, 0x0000002050000000ull, 0x000001eff8000000ull, { 25, 24, 0, 0, 0 }, 0xc, 895, }, - { 206, 3, 0, 0x00000021a0000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0x8, 777, }, - { 207, 3, 0, 0x0000002060000000ull, 0x000001eff8000000ull, { 25, 24, 0, 0, 0 }, 0x8, 703, }, - { 212, 4, 0, 0x0000000040000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x22c, 169, }, - { 213, 3, 0, 0x0000000038000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x8, 170, }, - { 214, 3, 0, 0x0000000028000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x0, 171, }, - { 223, 3, 1, 0x000000c708000000ull, 0x000001ffc8000000ull, { 17, 24, 0, 0, 0 }, 0x0, 2295, }, - { 224, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 23, 24, 44, 0, 0 }, 0x140, 172, }, - { 224, 2, 1, 0x000000f240000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 173, }, - { 225, 1, 1, 0x0000010080000000ull, 0x000001efe0000000ull, { 23, 24, 39, 25, 0 }, 0x0, 174, }, - { 226, 1, 1, 0x00000100c0000000ull, 0x000001efe0000000ull, { 23, 24, 39, 25, 0 }, 0x0, 175, }, - { 227, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 23, 25, 75, 0, 0 }, 0x140, 2391, }, - { 227, 2, 1, 0x000000f220000000ull, 0x000001fff0000000ull, { 23, 25, 24, 0, 0 }, 0x0, 177, }, - { 228, 2, 1, 0x000000ac00000000ull, 0x000001ee00000000ull, { 23, 24, 25, 43, 0 }, 0x0, 178, }, - { 233, 3, 0, 0x0000000180000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 705, }, - { 234, 3, 0, 0x0000000030000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x8, 179, }, - { 236, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 180, }, - { 236, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 181, }, - { 237, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 182, }, - { 237, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 183, }, - { 238, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 184, }, - { 238, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 185, }, - { 239, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 32, 24, 0, 0, 0 }, 0x0, 186, }, - { 239, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 32, 24, 60, 0, 0 }, 0x400, 187, }, - { 240, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 2298, }, - { 240, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 2299, }, - { 241, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 188, }, - { 241, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 189, }, - { 242, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 190, }, - { 242, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 191, }, - { 243, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 192, }, - { 243, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 193, }, - { 244, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 32, 18, 0, 0, 0 }, 0x0, 194, }, - { 244, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 32, 18, 60, 0, 0 }, 0x400, 195, }, - { 245, 1, 1, 0x0000010028000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 196, }, - { 245, 1, 1, 0x0000010020000000ull, 0x000001eff8000000ull, { 23, 24, 25, 3, 0 }, 0x0, 197, }, - { 245, 1, 1, 0x0000010128000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 198, }, - { 246, 3, 0, 0x0000000020000000ull, 0x000001ee78000000ull, { 66, 0, 0, 0, 0 }, 0x0, 199, }, - { 247, 2, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 200, }, - { 248, 2, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 201, }, - { 249, 2, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 202, }, - { 250, 3, 0, 0x0000000198000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 959, }, - { 251, 3, 1, 0x00000020f8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x8, 203, }, - { 252, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 21, 22, 25, 75, 0 }, 0x0, 2489, }, - { 252, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 21, 25, 75, 0 }, 0x40, 1724, }, - { 253, 3, 1, 0x00000020d0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 204, }, - { 254, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 21, 22, 25, 0, 0 }, 0x0, 2491, }, - { 254, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 21, 25, 0, 0 }, 0x40, 1726, }, - { 255, 3, 1, 0x00000020f0000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x8, 205, }, - { 257, 3, 1, 0x00000020d8000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 206, }, - { 261, 2, 1, 0x000000e840000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 942, }, - { 262, 2, 1, 0x000000ea40000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 943, }, - { 263, 2, 1, 0x000000f840000000ull, 0x000001fff0000000ull, { 23, 24, 25, 0, 0 }, 0x0, 944, }, - { 271, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 207, }, - { 272, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 208, }, - { 273, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 209, }, - { 274, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 23, 32, 24, 0, 0 }, 0x0, 210, }, - { 276, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x0, 988, }, - { 276, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 17, 19, 20, 18, 0 }, 0x40, 1036, }, - { 277, 5, 1, 0x000001d000000000ull, 0x000001fc000fe000ull, { 17, 19, 20, 0, 0 }, 0x40, 989, }, - { 278, 1, 1, 0x0000010078000000ull, 0x000001eff8000000ull, { 23, 24, 25, 0, 0 }, 0x0, 211, }, - { 278, 1, 1, 0x0000010178000000ull, 0x000001eff8000000ull, { 23, 54, 25, 0, 0 }, 0x0, 212, }, - { 281, 2, 1, 0x0000000080000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 213, }, - { 282, 2, 1, 0x0000000088000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 214, }, - { 283, 2, 1, 0x0000000090000000ull, 0x000001eff8000000ull, { 23, 25, 0, 0, 0 }, 0x0, 215, }, + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1023, }, + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 999, }, + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 925, }, + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 904, }, + { 26, 1, 2, 0x0000018200000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1157, }, + { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 926, }, + { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1025, }, + { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1002, }, + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1027, }, + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1003, }, + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 929, }, + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 908, }, + { 26, 1, 2, 0x0000018a00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1160, }, + { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 23, 59, 26, 0 }, 0x0, 1018, }, + { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 23, 22, 59, 26, 0 }, 0x0, 946, }, + { 26, 1, 2, 0x000001c200000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1161, }, + { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1004, }, + { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 910, }, + { 26, 1, 2, 0x000001ca00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1162, }, + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1030, }, + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 1006, }, + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 932, }, + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 911, }, + { 27, 1, 2, 0x0000018600000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1165, }, + { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 933, }, + { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1032, }, + { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1009, }, + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1034, }, + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1010, }, + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 936, }, + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 915, }, + { 27, 1, 2, 0x0000018e00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1168, }, + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 56, 26, 0 }, 0x0, 1044, }, + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 58, 26, 0 }, 0x0, 1020, }, + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 58, 26, 0 }, 0x0, 948, }, + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 56, 26, 0 }, 0x0, 924, }, + { 27, 1, 2, 0x000001c600000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1169, }, + { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1011, }, + { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 917, }, + { 27, 1, 2, 0x000001ce00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1170, }, + { 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 1, 2 }, 0x0, 254, }, + { 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 255, }, + { 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 256, }, + { 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 257, }, + { 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 258, }, + { 34, 4, 0, 0x0000000010000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 18, }, + { 36, 2, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 985, }, + { 37, 2, 1, 0x00000000c8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 986, }, + { 39, 2, 1, 0x0000008000000000ull, 0x000001e000000000ull, { 24, 25, 26, 47, 72 }, 0x0, 19, }, + { 39, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 73, 0 }, 0x0, 2511, }, + { 39, 2, 1, 0x000000a604000000ull, 0x000001ee04000000ull, { 24, 55, 45, 73, 0 }, 0x0, 2512, }, + { 39, 2, 1, 0x000000ae00000000ull, 0x000001ee00000000ull, { 24, 48, 26, 46, 73 }, 0x0, 20, }, + { 43, 4, 0, 0x0000000080000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x20, 21, }, + { 48, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 73, 0 }, 0x0, 2406, }, + { 50, 5, 1, 0x0000000080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 23, }, + { 51, 5, 1, 0x0000010008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 1923, }, + { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1924, }, + { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 25, }, + { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1925, }, + { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 26, }, + { 54, 5, 1, 0x0000000160000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 27, }, + { 55, 5, 1, 0x0000000168000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 28, }, + { 57, 3, 0, 0x0000002180000000ull, 0x000001fff8000000ull, { 26, 0, 0, 0, 0 }, 0x0, 29, }, + { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x0, 1926, }, + { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x40, 30, }, + { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 23, 19, 60, 0 }, 0x0, 1049, }, + { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 23, 22, 19, 60, 0 }, 0x40, 1190, }, + { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 1927, }, + { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x40, 31, }, + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x0, 796, }, + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x40, 797, }, + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x0, 939, }, + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x40, 940, }, + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x0, 1171, }, + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x40, 1172, }, + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x0, 1178, }, + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x40, 1179, }, + { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 894, }, + { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 895, }, + { 62, 5, 1, 0x00000000e0000000ull, 0x000001e3f8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 2509, }, + { 62, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 2510, }, + { 63, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 259, }, + { 64, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 260, }, + { 67, 3, 0, 0x0000000060000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 32, }, + { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1961, }, + { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 33, }, + { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1962, }, + { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 34, }, + { 70, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1879, }, + { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1963, }, + { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 35, }, + { 72, 5, 1, 0x00000001c8000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1022, }, + { 73, 5, 1, 0x0000010000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 1966, }, + { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1969, }, + { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 37, }, + { 75, 5, 1, 0x0000000088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 38, }, + { 76, 5, 1, 0x0000000088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 39, }, + { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1972, }, + { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 40, }, + { 78, 5, 1, 0x0000018000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 1975, }, + { 79, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 1978, }, + { 80, 5, 1, 0x0000000170000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 43, }, + { 81, 5, 1, 0x0000002080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 44, }, + { 82, 5, 1, 0x0000000140000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 45, }, + { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1979, }, + { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 46, }, + { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1980, }, + { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 47, }, + { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 798, }, + { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 799, }, + { 85, 5, 1, 0x0000002188000000ull, 0x000001eff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 941, }, + { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 896, }, + { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 897, }, + { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1997, }, + { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 48, }, + { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1998, }, + { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 49, }, + { 89, 5, 1, 0x0000002080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1887, }, + { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1999, }, + { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 50, }, + { 91, 5, 1, 0x0000013000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2000, }, + { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2001, }, + { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 52, }, + { 93, 5, 1, 0x0000002088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 53, }, + { 94, 5, 1, 0x0000002088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 54, }, + { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2002, }, + { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 55, }, + { 96, 5, 1, 0x000001b000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2003, }, + { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2004, }, + { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 57, }, + { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2005, }, + { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 58, }, + { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2006, }, + { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 59, }, + { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2007, }, + { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 60, }, + { 101, 5, 1, 0x000001c000000000ull, 0x000001f000000000ull, { 18, 20, 21, 19, 0 }, 0x0, 61, }, + { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x0, 2008, }, + { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x40, 62, }, + { 103, 5, 1, 0x0000014008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 2011, }, + { 104, 5, 1, 0x00000001a0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 64, }, + { 105, 5, 1, 0x00000001e0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1840, }, + { 106, 3, 0, 0x0000000100000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 65, }, + { 108, 5, 1, 0x0000000178000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 66, }, + { 113, 3, 1, 0x0000008708000000ull, 0x000001ffc8000000ull, { 24, 19, 0, 0, 0 }, 0x0, 2317, }, + { 118, 4, 0, 0x0000004008000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 399, }, + { 118, 5, 0, 0x000000000c000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 813, }, + { 118, 2, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 959, }, + { 118, 3, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1050, }, + { 118, 6, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2507, }, + { 118, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 67, }, + { 123, 3, 0, 0x0000000080000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 68, }, + { 123, 3, 0, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 0, 0, 0, 0 }, 0x0, 781, }, + { 123, 3, 0, 0x0000000098000000ull, 0x000001eff8000000ull, { 18, 0, 0, 0, 0 }, 0x0, 782, }, + { 124, 3, 0, 0x0000002170000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0xc, 707, }, + { 125, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 30, 25, 0, 0, 0 }, 0x8, 708, }, + { 125, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 31, 25, 0, 0, 0 }, 0x8, 961, }, + { 127, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 69, }, + { 127, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 70, }, + { 127, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 71, }, + { 128, 3, 2, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 1, 33, 0, 0 }, 0x0, 72, }, + { 129, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 73, }, + { 129, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 74, }, + { 129, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 75, }, + { 130, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 76, }, + { 130, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 77, }, + { 130, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 78, }, + { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 79, }, + { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 83, 0, 0 }, 0x0, 1122, }, + { 131, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 80, }, + { 131, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 81, }, + { 132, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 891, }, + { 132, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 892, }, + { 132, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 893, }, + { 133, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 82, }, + { 133, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 83, }, + { 133, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 84, }, + { 134, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 85, }, + { 134, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 86, }, + { 134, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 87, }, + { 135, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 88, }, + { 135, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 89, }, + { 135, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 90, }, + { 136, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 91, }, + { 136, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 92, }, + { 137, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 93, }, + { 137, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 94, }, + { 138, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 95, }, + { 138, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 5, 0 }, 0x400, 96, }, + { 139, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 97, }, + { 139, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 98, }, + { 139, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 99, }, + { 142, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 33, 0, 0, 0, 0 }, 0x0, 100, }, + { 142, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x400, 101, }, + { 142, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 33, 62, 0, 0, 0 }, 0x400, 102, }, + { 143, 3, 0, 0x0000000050000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 103, }, + { 151, 3, 0, 0x0000000110000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 104, }, + { 152, 2, 1, 0x000000e880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1841, }, + { 153, 2, 1, 0x000000ea80000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1842, }, + { 154, 2, 1, 0x000000f880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1843, }, + { 155, 1, 1, 0x0000010800000000ull, 0x000001fff80fe000ull, { 24, 26, 0, 0, 0 }, 0x0, 105, }, + { 155, 1, 1, 0x0000010800000000ull, 0x000001ee07f00000ull, { 24, 63, 0, 0, 0 }, 0x40, 106, }, + { 155, 1, 1, 0x0000012000000000ull, 0x000001e000300000ull, { 24, 66, 0, 0, 0 }, 0x40, 107, }, + { 155, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 108, }, + { 155, 2, 1, 0x0000000e00100000ull, 0x000001ee00f00000ull, { 15, 25, 0, 0, 0 }, 0x40, 109, }, + { 155, 2, 1, 0x0000000e00000000ull, 0x000001ee00f00000ull, { 15, 25, 78, 0, 0 }, 0x0, 2391, }, + { 155, 2, 1, 0x0000000188000000ull, 0x000001eff8000000ull, { 24, 16, 0, 0, 0 }, 0x0, 111, }, + { 155, 2, 1, 0x0000000600000000ull, 0x000001ee00000000ull, { 9, 25, 64, 0, 0 }, 0x0, 112, }, + { 155, 2, 1, 0x0000000400000000ull, 0x000001ee00000000ull, { 10, 68, 0, 0, 0 }, 0x0, 113, }, + { 155, 2, 1, 0x0000000180000000ull, 0x000001eff8000000ull, { 24, 8, 0, 0, 0 }, 0x0, 114, }, + { 155, 2, 1, 0x0000000198000000ull, 0x000001eff8000000ull, { 24, 9, 0, 0, 0 }, 0x0, 115, }, + { 155, 2, 1, 0x0000000150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 962, }, + { 155, 2, 1, 0x0000000050000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 963, }, + { 155, 2, 1, 0x0000000190000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 964, }, + { 155, 3, 1, 0x0000000140000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 1051, }, + { 155, 3, 1, 0x0000002150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 1052, }, + { 155, 3, 1, 0x0000002110000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 1053, }, + { 155, 3, 1, 0x0000002160000000ull, 0x000001eff8000000ull, { 17, 25, 0, 0, 0 }, 0x8, 116, }, + { 155, 3, 1, 0x0000002120000000ull, 0x000001eff8000000ull, { 24, 17, 0, 0, 0 }, 0x8, 117, }, + { 155, 3, 1, 0x0000002168000000ull, 0x000001eff8000000ull, { 12, 25, 0, 0, 0 }, 0x8, 118, }, + { 155, 3, 1, 0x0000002148000000ull, 0x000001eff8000000ull, { 13, 25, 0, 0, 0 }, 0x0, 119, }, + { 155, 3, 1, 0x0000002128000000ull, 0x000001eff8000000ull, { 24, 11, 0, 0, 0 }, 0x8, 120, }, + { 155, 3, 1, 0x0000002108000000ull, 0x000001eff8000000ull, { 24, 13, 0, 0, 0 }, 0x0, 121, }, + { 155, 3, 1, 0x0000002000000000ull, 0x000001eff8000000ull, { 38, 25, 0, 0, 0 }, 0x8, 122, }, + { 155, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 29, 25, 0, 0, 0 }, 0x8, 123, }, + { 155, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 32, 25, 0, 0, 0 }, 0x8, 124, }, + { 155, 3, 1, 0x0000002018000000ull, 0x000001eff8000000ull, { 35, 25, 0, 0, 0 }, 0x8, 125, }, + { 155, 3, 1, 0x0000002020000000ull, 0x000001eff8000000ull, { 36, 25, 0, 0, 0 }, 0x8, 126, }, + { 155, 3, 1, 0x0000002028000000ull, 0x000001eff8000000ull, { 37, 25, 0, 0, 0 }, 0x8, 127, }, + { 155, 3, 1, 0x0000002030000000ull, 0x000001eff8000000ull, { 34, 25, 0, 0, 0 }, 0x8, 128, }, + { 155, 3, 1, 0x0000002080000000ull, 0x000001eff8000000ull, { 24, 38, 0, 0, 0 }, 0x8, 129, }, + { 155, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 24, 29, 0, 0, 0 }, 0x8, 130, }, + { 155, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 24, 32, 0, 0, 0 }, 0x8, 131, }, + { 155, 3, 1, 0x0000002098000000ull, 0x000001eff8000000ull, { 24, 35, 0, 0, 0 }, 0x8, 132, }, + { 155, 3, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 24, 36, 0, 0, 0 }, 0x8, 133, }, + { 155, 3, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 24, 37, 0, 0, 0 }, 0x0, 134, }, + { 155, 3, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 24, 34, 0, 0, 0 }, 0x8, 135, }, + { 155, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 136, }, + { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 14, 0, 0, 0 }, 0x0, 137, }, + { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 55, 0, 0, 0 }, 0x0, 138, }, + { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 25, 0, 0, 0 }, 0x0, 139, }, + { 156, 6, 1, 0x000000c000000000ull, 0x000001e000100000ull, { 24, 70, 0, 0, 0 }, 0x0, 140, }, + { 157, 2, 1, 0x000000eca0000000ull, 0x000001fff0000000ull, { 24, 25, 74, 0, 0 }, 0x0, 141, }, + { 158, 2, 1, 0x000000eea0000000ull, 0x000001fff0000000ull, { 24, 25, 75, 0, 0 }, 0x0, 142, }, + { 168, 4, 0, 0x0000004000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 400, }, + { 168, 5, 0, 0x0000000008000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 814, }, + { 168, 2, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 965, }, + { 168, 3, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1054, }, + { 168, 6, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2508, }, + { 168, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 143, }, + { 175, 1, 1, 0x0000010070000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 144, }, + { 175, 1, 1, 0x0000010170000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 145, }, + { 178, 2, 1, 0x000000ea00000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2490, }, + { 179, 2, 1, 0x000000f820000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2393, }, + { 180, 1, 1, 0x0000010400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 146, }, + { 181, 1, 1, 0x0000010600000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 147, }, + { 182, 1, 1, 0x0000011400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 148, }, + { 183, 1, 1, 0x0000010450000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 149, }, + { 184, 1, 1, 0x0000010650000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 150, }, + { 185, 1, 1, 0x0000010470000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 151, }, + { 186, 1, 1, 0x0000010670000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 152, }, + { 187, 1, 1, 0x0000010520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 800, }, + { 188, 1, 1, 0x0000010720000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 801, }, + { 189, 1, 1, 0x0000011520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 802, }, + { 190, 2, 1, 0x000000e850000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2407, }, + { 191, 2, 1, 0x000000ea70000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 153, }, + { 192, 2, 1, 0x000000e810000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2408, }, + { 193, 2, 1, 0x000000ea30000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 154, }, + { 194, 2, 1, 0x000000ead0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1844, }, + { 195, 2, 1, 0x000000e230000000ull, 0x000001ff30000000ull, { 24, 25, 26, 42, 0 }, 0x0, 155, }, + { 196, 2, 1, 0x000000e690000000ull, 0x000001fff0000000ull, { 24, 26, 0, 0, 0 }, 0x0, 156, }, + { 198, 3, 1, 0x00000021c0000000ull, 0x000001eff8000000ull, { 24, 26, 25, 0, 0 }, 0x0, 1845, }, + { 198, 3, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 24, 26, 49, 0, 0 }, 0x0, 1846, }, + { 198, 3, 0, 0x0000002188000000ull, 0x000001eff8000000ull, { 26, 49, 0, 0, 0 }, 0x0, 1870, }, + { 199, 2, 1, 0x000000e8b0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 157, }, + { 200, 2, 1, 0x000000e240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 158, }, + { 200, 2, 1, 0x000000ee50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 159, }, + { 201, 2, 1, 0x000000f040000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 160, }, + { 201, 2, 1, 0x000000fc50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 161, }, + { 202, 1, 1, 0x0000010680000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 162, }, + { 203, 2, 1, 0x000000e220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 163, }, + { 203, 2, 1, 0x000000e630000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 164, }, + { 204, 2, 1, 0x000000f020000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 165, }, + { 204, 2, 1, 0x000000f430000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 166, }, + { 205, 1, 1, 0x00000106c0000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 167, }, + { 206, 1, 1, 0x0000010420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 168, }, + { 207, 1, 1, 0x0000010620000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 169, }, + { 208, 1, 1, 0x0000011420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 170, }, + { 209, 3, 0, 0x0000002048000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 993, }, + { 209, 3, 0, 0x0000002050000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0xc, 902, }, + { 209, 3, 0, 0x00000021a0000000ull, 0x000001eff8000000ull, { 26, 0, 0, 0, 0 }, 0x8, 783, }, + { 210, 3, 0, 0x0000002060000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 709, }, + { 215, 4, 0, 0x0000000040000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x22c, 171, }, + { 216, 3, 0, 0x0000000038000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 172, }, + { 217, 3, 0, 0x0000000028000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 173, }, + { 226, 3, 1, 0x000000c708000000ull, 0x000001ffc8000000ull, { 18, 25, 0, 0, 0 }, 0x0, 2318, }, + { 227, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 0, 0 }, 0x140, 174, }, + { 227, 2, 1, 0x000000f240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 175, }, + { 228, 1, 1, 0x0000010080000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 176, }, + { 229, 1, 1, 0x00000100c0000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 177, }, + { 230, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 0, 0 }, 0x140, 2414, }, + { 230, 2, 1, 0x000000f220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 179, }, + { 231, 2, 1, 0x000000ac00000000ull, 0x000001ee00000000ull, { 24, 25, 26, 44, 0 }, 0x0, 180, }, + { 236, 3, 0, 0x0000000180000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 711, }, + { 237, 3, 0, 0x0000000030000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 181, }, + { 239, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 182, }, + { 239, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 183, }, + { 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 1, 0, 0 }, 0x0, 184, }, + { 241, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 185, }, + { 241, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 186, }, + { 242, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 187, }, + { 242, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 188, }, + { 243, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 189, }, + { 243, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 190, }, + { 244, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 2321, }, + { 244, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 2322, }, + { 245, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 191, }, + { 245, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 192, }, + { 246, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 193, }, + { 246, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 194, }, + { 247, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 195, }, + { 247, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 196, }, + { 248, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 197, }, + { 248, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 198, }, + { 249, 1, 1, 0x0000010028000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 199, }, + { 249, 1, 1, 0x0000010020000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 200, }, + { 249, 1, 1, 0x0000010128000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 201, }, + { 250, 3, 0, 0x0000000020000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 202, }, + { 251, 2, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 203, }, + { 252, 2, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 204, }, + { 253, 2, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 205, }, + { 254, 3, 0, 0x0000000198000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 968, }, + { 255, 3, 1, 0x00000020f8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 206, }, + { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 23, 26, 76, 0 }, 0x0, 2513, }, + { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 23, 22, 26, 76, 0 }, 0x40, 1745, }, + { 257, 3, 1, 0x00000020d0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 207, }, + { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 23, 26, 0, 0 }, 0x0, 2515, }, + { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 23, 22, 26, 0, 0 }, 0x40, 1747, }, + { 259, 3, 1, 0x00000020f0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 208, }, + { 261, 3, 1, 0x00000020d8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 209, }, + { 265, 2, 1, 0x000000e840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 949, }, + { 266, 2, 1, 0x000000ea40000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 950, }, + { 267, 2, 1, 0x000000f840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 951, }, + { 275, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 210, }, + { 276, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 211, }, + { 277, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 212, }, + { 278, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 213, }, + { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 997, }, + { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 1045, }, + { 281, 5, 1, 0x000001d000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 998, }, + { 282, 1, 1, 0x0000010078000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 214, }, + { 282, 1, 1, 0x0000010178000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 215, }, + { 285, 2, 1, 0x0000000080000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 216, }, + { 286, 2, 1, 0x0000000088000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 217, }, + { 287, 2, 1, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 218, }, }; static const char dis_table[] = { -0xa0, 0xc2, 0xa0, 0xa0, 0x2c, 0xc0, 0xa0, 0x2a, 0xc0, 0xa0, 0x1a, 0x70, -0x98, 0xb0, 0x01, 0x40, 0x90, 0x50, 0x90, 0x28, 0x24, 0x31, 0x48, 0x24, -0x31, 0x40, 0x90, 0x28, 0x24, 0x31, 0x38, 0x24, 0x31, 0x30, 0x90, 0x50, -0x90, 0x28, 0x24, 0x31, 0x20, 0x24, 0x31, 0x18, 0x90, 0x28, 0x24, 0x31, -0x10, 0x24, 0x31, 0x08, 0xa8, 0x0b, 0x28, 0x15, 0x00, 0x97, 0x00, 0x95, -0xa8, 0x9a, 0x98, 0x05, 0x18, 0x90, 0xf8, 0x90, 0x80, 0x90, 0x40, 0x80, -0xa4, 0x21, 0x18, 0x34, 0x26, 0x80, 0xa4, 0x2e, 0xc0, 0x35, 0xdd, 0x90, -0x50, 0x90, 0x28, 0x80, 0x35, 0xd3, 0x80, 0x34, 0x0a, 0x81, 0x33, 0xa6, -0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x20, 0x30, 0x34, 0x07, 0xa4, -0x1d, 0x28, 0x34, 0x04, 0x90, 0x38, 0xa4, 0x30, 0xc0, 0x36, 0x1e, 0xa4, -0x30, 0x68, 0x36, 0x12, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2f, 0x40, 0x35, -0xf3, 0xa4, 0x2f, 0x18, 0x35, 0xee, 0x80, 0xa4, 0x20, 0x10, 0x34, 0x03, -0x92, 0x18, 0x91, 0xc0, 0x80, 0x91, 0x80, 0x90, 0xf8, 0xdb, 0x84, 0x60, -0xea, 0x40, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x70, 0x8c, 0x3b, 0xd0, 0x84, -0x37, 0x84, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x60, 0x8c, 0x3b, 0xb0, 0x84, -0x37, 0x82, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x36, 0x50, -0xc0, 0xc0, 0x81, 0x37, 0x34, 0xa4, 0x1d, 0x38, 0x33, 0xa8, 0x80, 0x90, -0x28, 0x80, 0x33, 0xa4, 0x80, 0x34, 0x0c, 0x81, 0x90, 0x38, 0xa4, 0x20, -0x98, 0x34, 0x0f, 0xa4, 0x20, 0x68, 0x34, 0x09, 0xc0, 0x40, 0x10, 0x10, -0x90, 0x38, 0xa4, 0x1d, 0x10, 0x33, 0xa3, 0xa4, 0x1d, 0x00, 0x33, 0xa1, -0x18, 0x24, 0x21, 0x10, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, -0x80, 0xa4, 0x3a, 0x40, 0x37, 0x6e, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x30, -0x37, 0x6a, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x30, 0x50, -0xc0, 0xc0, 0x81, 0x37, 0x2e, 0x92, 0xb8, 0x99, 0x84, 0x20, 0x88, 0x90, -0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2e, 0xb8, 0x35, 0xdc, 0x82, -0x35, 0xd2, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, 0xb8, 0x36, -0x1d, 0xa4, 0x30, 0x60, 0x36, 0x11, 0x80, 0x90, 0x38, 0xa4, 0x2f, 0x38, -0x35, 0xf2, 0xa4, 0x2f, 0x10, 0x35, 0xed, 0x83, 0x90, 0xa8, 0xd3, 0x82, -0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x10, 0x37, 0x62, 0xc0, 0xc0, 0x80, -0xa4, 0x3a, 0x00, 0x37, 0x5e, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, -0x37, 0x2a, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x28, 0x18, 0x24, 0x20, 0x90, -0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x39, 0xe0, -0x37, 0x56, 0xc0, 0xc0, 0x80, 0xa4, 0x39, 0xd0, 0x37, 0x52, 0xd3, 0x82, -0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x24, 0x50, 0xc0, 0xc0, 0x81, 0x37, -0x22, 0x94, 0x50, 0x92, 0xf8, 0x99, 0x84, 0x1d, 0x68, 0x90, 0x78, 0x90, -0x50, 0x10, 0x10, 0x80, 0xa4, 0x2e, 0xb0, 0x35, 0xdb, 0x82, 0x35, 0xd1, -0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, 0xb0, 0x36, 0x1c, 0xa4, -0x30, 0x58, 0x36, 0x10, 0x80, 0x90, 0x38, 0xa4, 0x2f, 0x30, 0x35, 0xf1, -0xa4, 0x2f, 0x08, 0x35, 0xec, 0x83, 0x90, 0xe8, 0xd3, 0x83, 0xc0, 0xc0, -0xc0, 0x80, 0xa4, 0x3a, 0x80, 0x8c, 0x3b, 0xf0, 0x84, 0x37, 0x86, 0xc0, -0xc0, 0x80, 0xa4, 0x3a, 0x68, 0x8c, 0x3b, 0xc0, 0x84, 0x37, 0x83, 0xd3, -0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x38, 0x50, 0xc0, 0xc0, 0x81, -0x37, 0x35, 0x18, 0x24, 0x1d, 0x60, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, -0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x50, 0x37, 0x72, 0xc0, 0xc0, 0x80, 0xa4, -0x3a, 0x38, 0x37, 0x6c, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, -0x32, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x2f, 0x92, 0xb8, 0x99, 0x84, 0x1d, -0x58, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2e, 0xa8, 0x35, -0xda, 0x82, 0x35, 0xd0, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, -0xa8, 0x36, 0x1b, 0xa4, 0x30, 0x50, 0x36, 0x0f, 0x80, 0x90, 0x38, 0xa4, -0x2f, 0x28, 0x35, 0xf0, 0xa4, 0x2f, 0x00, 0x35, 0xeb, 0x83, 0x90, 0xa8, -0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x20, 0x37, 0x66, 0xc0, -0xc0, 0x80, 0xa4, 0x3a, 0x08, 0x37, 0x60, 0xd3, 0x82, 0x40, 0x50, 0xc0, -0xc0, 0x81, 0x37, 0x2c, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x29, 0x18, 0x20, -0x01, 0x48, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, -0x39, 0xf0, 0x37, 0x5a, 0xc0, 0xc0, 0x80, 0xa4, 0x39, 0xd8, 0x37, 0x54, -0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x26, 0x50, 0xc0, 0xc0, -0x81, 0x37, 0x23, 0xda, 0x06, 0xe0, 0xea, 0x80, 0x90, 0x60, 0x90, 0x38, -0xa4, 0x21, 0x00, 0x34, 0x1e, 0x80, 0x34, 0x1b, 0x90, 0x38, 0xa4, 0x20, -0xa8, 0x34, 0x19, 0x80, 0x34, 0x16, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x20, -0xe8, 0x34, 0x1f, 0x80, 0x34, 0x1c, 0x90, 0x38, 0xa4, 0x20, 0xc0, 0x34, -0x1a, 0x80, 0x34, 0x17, 0xc8, 0x40, 0x18, 0x00, 0x91, 0x38, 0x90, 0x40, -0x82, 0xa4, 0x2e, 0x70, 0x35, 0xcf, 0x90, 0xc0, 0x80, 0x90, 0x90, 0x90, -0x48, 0xc9, 0xe1, 0x82, 0x00, 0x85, 0x36, 0x07, 0xc9, 0xe1, 0x81, 0x40, -0x85, 0x36, 0x04, 0x80, 0x36, 0x03, 0x10, 0x10, 0x81, 0x35, 0xdf, 0x90, -0xa8, 0x10, 0x10, 0x90, 0x28, 0x81, 0x35, 0xfd, 0x90, 0x38, 0xa4, 0x2f, -0xc0, 0x35, 0xf9, 0xa4, 0x2f, 0xb0, 0x35, 0xf7, 0x90, 0x70, 0x10, 0x10, -0x90, 0x38, 0xa4, 0x2f, 0xd8, 0x35, 0xfc, 0x80, 0x35, 0xfa, 0x90, 0x60, -0x90, 0x28, 0x24, 0x30, 0x10, 0xa4, 0x30, 0x00, 0x36, 0x01, 0x80, 0xa4, -0x2f, 0xf0, 0x35, 0xff, 0x80, 0x90, 0xf8, 0x90, 0x90, 0x90, 0x50, 0x90, -0x28, 0x80, 0x37, 0x1a, 0x80, 0x37, 0x21, 0x80, 0xa4, 0x38, 0xf8, 0x37, -0x20, 0x90, 0x28, 0x81, 0x37, 0x1e, 0x80, 0xa4, 0x38, 0xe0, 0x37, 0x1d, -0x83, 0x37, 0x1b, 0x98, 0xb0, 0x01, 0x40, 0x90, 0x50, 0x90, 0x28, 0x24, -0x2e, 0x60, 0x24, 0x2e, 0x58, 0x90, 0x28, 0x24, 0x2e, 0x50, 0x24, 0x2e, -0x48, 0x90, 0x50, 0x90, 0x28, 0x24, 0x2e, 0x38, 0x24, 0x2e, 0x30, 0x90, -0x28, 0x24, 0x2e, 0x28, 0x24, 0x2e, 0x20, 0xa8, 0x09, 0x00, 0x0e, 0x20, -0x96, 0x48, 0x95, 0xe8, 0x93, 0x38, 0x91, 0xa0, 0x90, 0xd0, 0x90, 0x70, -0x90, 0x38, 0xa4, 0x1c, 0x88, 0x33, 0x92, 0xa4, 0x1c, 0x78, 0x33, 0x90, -0x90, 0x38, 0xa4, 0x1c, 0x68, 0x33, 0x8e, 0x80, 0x33, 0x8c, 0x90, 0x60, -0x90, 0x28, 0x24, 0x1c, 0x28, 0xa4, 0x1c, 0x18, 0x33, 0x84, 0x90, 0x38, -0xa4, 0x1c, 0x08, 0x33, 0x82, 0xa4, 0x1c, 0x50, 0x33, 0x8b, 0x90, 0xe0, -0x90, 0x70, 0x90, 0x38, 0xa4, 0x1c, 0x40, 0x33, 0x89, 0xa4, 0x1c, 0x30, -0x33, 0x87, 0x90, 0x38, 0xa4, 0x2d, 0xd8, 0x35, 0xc1, 0xa4, 0x2d, 0x78, -0x35, 0xb5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2a, 0xb0, 0x35, 0x62, 0xa4, -0x2a, 0x80, 0x35, 0x5c, 0x10, 0x10, 0xa4, 0x1b, 0xf8, 0x33, 0x80, 0x99, -0x60, 0x02, 0x70, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1c, 0xb8, -0x80, 0x33, 0x9e, 0x80, 0xa4, 0x1c, 0xc0, 0x33, 0x9c, 0x90, 0x50, 0x90, -0x28, 0x24, 0x1c, 0xc8, 0x80, 0x33, 0x9f, 0x90, 0x38, 0xa4, 0x1c, 0xd0, -0x33, 0x9d, 0xa4, 0x1c, 0x98, 0x33, 0x94, 0x90, 0xe0, 0x90, 0x70, 0x90, -0x38, 0xa4, 0x2d, 0x08, 0x35, 0xa9, 0xa4, 0x2c, 0x68, 0x35, 0x96, 0x90, -0x38, 0xa4, 0x2c, 0x00, 0x35, 0x87, 0xa4, 0x2b, 0x70, 0x35, 0x76, 0x81, -0xa4, 0x1c, 0xa8, 0x33, 0x96, 0xe4, 0xa1, 0xc5, 0x00, 0x37, 0x16, 0x18, -0x24, 0x1b, 0xf0, 0xe4, 0xe1, 0xc3, 0x80, 0x37, 0x10, 0x92, 0x40, 0x91, -0x08, 0x10, 0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2d, 0xd0, -0x35, 0xc0, 0xa4, 0x2d, 0x70, 0x35, 0xb4, 0x80, 0x90, 0x38, 0xa4, 0x2a, -0xa8, 0x35, 0x61, 0xa4, 0x2a, 0x78, 0x35, 0x5b, 0x18, 0x20, 0x00, 0xf8, -0x80, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2c, 0xf8, 0x35, 0xa8, 0xa4, 0x2c, -0x60, 0x35, 0x94, 0x90, 0x38, 0xa4, 0x2b, 0xf0, 0x35, 0x86, 0xa4, 0x2b, -0x68, 0x35, 0x74, 0xe4, 0xa1, 0xc2, 0x00, 0x37, 0x0a, 0x18, 0x24, 0x1b, -0xe8, 0xe4, 0xe1, 0xc0, 0x80, 0x37, 0x04, 0x92, 0x90, 0x92, 0x40, 0x91, -0x08, 0x10, 0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2d, 0xc8, -0x35, 0xbf, 0xa4, 0x2d, 0x68, 0x35, 0xb3, 0x80, 0x90, 0x38, 0xa4, 0x2a, -0xa0, 0x35, 0x60, 0xa4, 0x2a, 0x70, 0x35, 0x5a, 0x18, 0x20, 0x00, 0xf8, -0x80, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x2c, 0xe8, 0x35, 0xa7, 0xa4, 0x2c, -0x58, 0x35, 0x92, 0x90, 0x38, 0xa4, 0x2b, 0xe0, 0x35, 0x85, 0xa4, 0x2b, -0x60, 0x35, 0x72, 0xe4, 0xa1, 0xc5, 0x40, 0x37, 0x18, 0x10, 0x10, 0xe4, -0xe1, 0xc3, 0xc0, 0x37, 0x12, 0x92, 0x50, 0x99, 0x1c, 0x1c, 0xd8, 0x10, -0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2d, 0xc0, 0x35, 0xbe, -0xa4, 0x2d, 0x60, 0x35, 0xb2, 0x80, 0x90, 0x38, 0xa4, 0x2a, 0x98, 0x35, -0x5f, 0xa4, 0x2a, 0x68, 0x35, 0x59, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x2c, 0xd8, 0x35, 0xa6, 0xa4, 0x2c, 0x50, 0x35, -0x90, 0x90, 0x38, 0xa4, 0x2b, 0xd0, 0x35, 0x84, 0xa4, 0x2b, 0x58, 0x35, -0x70, 0xe4, 0xa1, 0xc2, 0x40, 0x37, 0x0c, 0x10, 0x10, 0xe4, 0xe1, 0xc0, -0xc0, 0x37, 0x06, 0xc0, 0x40, 0x80, 0x10, 0x10, 0x81, 0x90, 0x90, 0x90, -0x48, 0xc9, 0xe1, 0x59, 0x80, 0x85, 0x35, 0x6a, 0xc9, 0xe1, 0x5a, 0x00, -0x85, 0x35, 0x67, 0x80, 0x35, 0x65, 0x80, 0xd8, 0x47, 0x80, 0x0d, 0xc0, -0xc0, 0x80, 0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, -0x00, 0x80, 0x36, 0xfe, 0xd5, 0x81, 0x80, 0x80, 0x36, 0xfc, 0x80, 0x36, -0xfa, 0xc0, 0x80, 0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, -0x37, 0x01, 0x80, 0x36, 0xff, 0xd5, 0x81, 0x80, 0x80, 0x36, 0xfd, 0x80, -0x36, 0xfb, 0xc0, 0x80, 0x84, 0x36, 0xf9, 0xa0, 0x56, 0x50, 0xa0, 0x40, -0x70, 0xa8, 0x1d, 0x40, 0x33, 0x18, 0xa0, 0x12, 0x38, 0xa0, 0x0b, 0x48, -0x96, 0x00, 0x9a, 0xf0, 0x05, 0xc0, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, -0x90, 0x38, 0xa4, 0x14, 0x50, 0x33, 0x7c, 0xa4, 0x14, 0x60, 0x33, 0x7b, -0x10, 0x10, 0xa4, 0x14, 0x58, 0x33, 0x7a, 0x90, 0x70, 0x90, 0x38, 0xa4, -0x14, 0x20, 0x33, 0x61, 0xa4, 0x14, 0x30, 0x33, 0x60, 0x10, 0x10, 0xa4, -0x14, 0x28, 0x33, 0x5f, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, -0xf0, 0x33, 0x46, 0xa4, 0x14, 0x00, 0x33, 0x45, 0x10, 0x10, 0xa4, 0x13, -0xf8, 0x33, 0x44, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xc0, 0x33, 0x2b, -0xa4, 0x13, 0xd0, 0x33, 0x2a, 0x10, 0x10, 0xa4, 0x13, 0xc8, 0x33, 0x29, -0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x38, 0x33, -0x77, 0xa4, 0x14, 0x48, 0x33, 0x79, 0x10, 0x10, 0xa4, 0x14, 0x40, 0x33, -0x78, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x08, 0x33, 0x5c, 0xa4, 0x14, -0x18, 0x33, 0x5e, 0x10, 0x10, 0xa4, 0x14, 0x10, 0x33, 0x5d, 0x90, 0xb8, -0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xd8, 0x33, 0x41, 0xa4, 0x13, 0xe8, -0x33, 0x43, 0x10, 0x10, 0xa4, 0x13, 0xe0, 0x33, 0x42, 0x90, 0x70, 0x90, -0x38, 0xa4, 0x13, 0xa8, 0x33, 0x26, 0xa4, 0x13, 0xb8, 0x33, 0x28, 0x10, -0x10, 0xa4, 0x13, 0xb0, 0x33, 0x27, 0xe4, 0xe1, 0x4f, 0xc0, 0x35, 0x49, -0x9a, 0xf0, 0x05, 0x00, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, -0xa4, 0x13, 0xa0, 0x33, 0x74, 0xa4, 0x13, 0x98, 0x33, 0x76, 0x10, 0x10, -0xa4, 0x13, 0x90, 0x33, 0x75, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x88, -0x33, 0x59, 0xa4, 0x13, 0x80, 0x33, 0x5b, 0x10, 0x10, 0xa4, 0x13, 0x78, -0x33, 0x5a, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x70, 0x33, -0x3e, 0xa4, 0x13, 0x68, 0x33, 0x40, 0x10, 0x10, 0xa4, 0x13, 0x60, 0x33, -0x3f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x58, 0x33, 0x23, 0xa4, 0x13, -0x50, 0x33, 0x25, 0x10, 0x10, 0xa4, 0x13, 0x48, 0x33, 0x24, 0x91, 0x10, -0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x71, 0x80, 0x33, 0x73, -0x10, 0x10, 0x80, 0x33, 0x72, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x56, -0x80, 0x33, 0x58, 0x10, 0x10, 0x80, 0x33, 0x57, 0x90, 0x88, 0x90, 0x50, -0x90, 0x28, 0x80, 0x33, 0x3b, 0x80, 0x33, 0x3d, 0x10, 0x10, 0x80, 0x33, -0x3c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x20, 0x80, 0x33, 0x22, 0x10, -0x10, 0x80, 0x33, 0x21, 0xe4, 0xe1, 0x3d, 0x40, 0x35, 0x09, 0x95, 0x40, -0x9a, 0x90, 0x05, 0x00, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, -0x80, 0x33, 0x6e, 0x80, 0x33, 0x70, 0x10, 0x10, 0x80, 0x33, 0x6f, 0x90, -0x50, 0x90, 0x28, 0x80, 0x33, 0x53, 0x80, 0x33, 0x55, 0x10, 0x10, 0x80, -0x33, 0x54, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x30, 0x33, -0x38, 0xa4, 0x13, 0x40, 0x33, 0x3a, 0x10, 0x10, 0xa4, 0x13, 0x38, 0x33, -0x39, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x00, 0x33, 0x1d, 0xa4, 0x13, -0x10, 0x33, 0x1f, 0x10, 0x10, 0xa4, 0x13, 0x08, 0x33, 0x1e, 0x91, 0x10, -0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x6b, 0x80, 0x33, 0x6d, -0x10, 0x10, 0x80, 0x33, 0x6c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x50, -0x80, 0x33, 0x52, 0x10, 0x10, 0x80, 0x33, 0x51, 0x90, 0xb8, 0x90, 0x70, -0x90, 0x38, 0xa4, 0x13, 0x18, 0x33, 0x35, 0xa4, 0x13, 0x28, 0x33, 0x37, -0x10, 0x10, 0xa4, 0x13, 0x20, 0x33, 0x36, 0x90, 0x70, 0x90, 0x38, 0xa4, -0x12, 0xe8, 0x33, 0x1a, 0xa4, 0x12, 0xf8, 0x33, 0x1c, 0x10, 0x10, 0xa4, -0x12, 0xf0, 0x33, 0x1b, 0xe4, 0xe1, 0x4f, 0x40, 0x35, 0x47, 0x98, 0xb8, -0x01, 0x68, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, -0x17, 0x80, 0x33, 0x19, 0x10, 0x10, 0x80, 0x33, 0x18, 0x90, 0x60, 0x90, -0x30, 0x60, 0xa0, 0x97, 0x00, 0x60, 0xa0, 0x96, 0xc0, 0x90, 0x30, 0x60, -0xa0, 0x96, 0x80, 0x60, 0xa0, 0x96, 0x40, 0xe4, 0xe1, 0x3c, 0x40, 0x35, -0x05, 0x96, 0xe8, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, -0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x65, 0x80, 0x33, 0x6a, 0x10, -0x10, 0x80, 0x33, 0x69, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4a, 0x80, -0x33, 0x4f, 0x10, 0x10, 0x80, 0x33, 0x4e, 0x90, 0x88, 0x90, 0x50, 0x90, -0x28, 0x80, 0x33, 0x2f, 0x80, 0x33, 0x34, 0x10, 0x10, 0x80, 0x33, 0x33, -0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x11, 0x80, 0x33, 0x16, 0x10, 0x10, -0x80, 0x33, 0x15, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, -0x33, 0x62, 0x80, 0x33, 0x64, 0x10, 0x10, 0x80, 0x33, 0x63, 0x90, 0x50, -0x90, 0x28, 0x80, 0x33, 0x47, 0x80, 0x33, 0x49, 0x10, 0x10, 0x80, 0x33, -0x48, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x2c, 0x80, 0x33, -0x2e, 0x10, 0x10, 0x80, 0x33, 0x2d, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, -0x0e, 0x80, 0x33, 0x10, 0x10, 0x10, 0x80, 0x33, 0x0f, 0xe4, 0xe1, 0x4e, -0xc0, 0x35, 0x45, 0x88, 0x02, 0x28, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, -0x90, 0x28, 0x80, 0x33, 0x66, 0x80, 0x33, 0x68, 0x10, 0x10, 0x80, 0x33, -0x67, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4b, 0x80, 0x33, 0x4d, 0x10, -0x10, 0x80, 0x33, 0x4c, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, -0x30, 0x80, 0x33, 0x32, 0x10, 0x10, 0x80, 0x33, 0x31, 0x90, 0x50, 0x90, -0x28, 0x80, 0x33, 0x12, 0x80, 0x33, 0x14, 0x10, 0x10, 0x80, 0x33, 0x13, -0xe4, 0xe1, 0x3b, 0x40, 0x35, 0x01, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, -0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0x9e, 0x10, 0x10, 0x80, -0x32, 0x9d, 0x90, 0x28, 0x81, 0x32, 0x9a, 0x10, 0x10, 0x80, 0x32, 0x99, -0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0x96, 0x10, 0x10, 0x80, 0x32, 0x95, -0x90, 0x28, 0x81, 0x32, 0x92, 0x10, 0x10, 0x80, 0x32, 0x91, 0x90, 0xc0, -0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0x9b, 0x10, 0x10, 0x80, 0x32, 0x9c, -0x90, 0x28, 0x81, 0x32, 0x97, 0x10, 0x10, 0x80, 0x32, 0x98, 0x90, 0x60, -0x90, 0x28, 0x81, 0x32, 0x93, 0x10, 0x10, 0x80, 0x32, 0x94, 0x90, 0x28, -0x81, 0x32, 0x8f, 0x10, 0x10, 0x80, 0x32, 0x90, 0xe4, 0xe1, 0x4e, 0x40, -0x35, 0x43, 0x88, 0x00, 0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, -0x32, 0x8d, 0x10, 0x10, 0x80, 0x32, 0x8e, 0xe4, 0xe1, 0x3a, 0x40, 0x34, -0xfd, 0xa0, 0x0e, 0x80, 0xa0, 0x09, 0x08, 0x94, 0x80, 0x9a, 0x30, 0x04, -0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x0d, -0x80, 0x33, 0x0c, 0x10, 0x10, 0x80, 0x33, 0x0b, 0x90, 0x50, 0x90, 0x28, -0x80, 0x32, 0xf2, 0x80, 0x32, 0xf1, 0x10, 0x10, 0x80, 0x32, 0xf0, 0x90, -0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd7, 0x80, 0x32, 0xd6, 0x10, -0x10, 0x80, 0x32, 0xd5, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xbc, 0x80, -0x32, 0xbb, 0x10, 0x10, 0x80, 0x32, 0xba, 0x91, 0x10, 0x90, 0x88, 0x90, -0x50, 0x90, 0x28, 0x80, 0x33, 0x08, 0x80, 0x33, 0x0a, 0x10, 0x10, 0x80, -0x33, 0x09, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xed, 0x80, 0x32, 0xef, -0x10, 0x10, 0x80, 0x32, 0xee, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, -0x32, 0xd2, 0x80, 0x32, 0xd4, 0x10, 0x10, 0x80, 0x32, 0xd3, 0x90, 0x50, -0x90, 0x28, 0x80, 0x32, 0xb7, 0x80, 0x32, 0xb9, 0x10, 0x10, 0x80, 0x32, -0xb8, 0xe4, 0xe1, 0x47, 0x40, 0x35, 0x31, 0x9a, 0x30, 0x04, 0x40, 0x91, -0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x05, 0x80, 0x33, -0x07, 0x10, 0x10, 0x80, 0x33, 0x06, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, -0xea, 0x80, 0x32, 0xec, 0x10, 0x10, 0x80, 0x32, 0xeb, 0x90, 0x88, 0x90, -0x50, 0x90, 0x28, 0x80, 0x32, 0xcf, 0x80, 0x32, 0xd1, 0x10, 0x10, 0x80, -0x32, 0xd0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xb4, 0x80, 0x32, 0xb6, -0x10, 0x10, 0x80, 0x32, 0xb5, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, -0x28, 0x80, 0x33, 0x02, 0x80, 0x33, 0x04, 0x10, 0x10, 0x80, 0x33, 0x03, -0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe7, 0x80, 0x32, 0xe9, 0x10, 0x10, -0x80, 0x32, 0xe8, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xcc, -0x80, 0x32, 0xce, 0x10, 0x10, 0x80, 0x32, 0xcd, 0x90, 0x50, 0x90, 0x28, -0x80, 0x32, 0xb1, 0x80, 0x32, 0xb3, 0x10, 0x10, 0x80, 0x32, 0xb2, 0xe4, -0xe1, 0x36, 0xc0, 0x34, 0xe5, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, -0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xff, 0x80, 0x33, -0x01, 0x10, 0x10, 0x80, 0x33, 0x00, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, -0xe4, 0x80, 0x32, 0xe6, 0x10, 0x10, 0x80, 0x32, 0xe5, 0x90, 0x88, 0x90, -0x50, 0x90, 0x28, 0x80, 0x32, 0xc9, 0x80, 0x32, 0xcb, 0x10, 0x10, 0x80, -0x32, 0xca, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xae, 0x80, 0x32, 0xb0, -0x10, 0x10, 0x80, 0x32, 0xaf, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, -0x28, 0x80, 0x32, 0xfc, 0x80, 0x32, 0xfe, 0x10, 0x10, 0x80, 0x32, 0xfd, -0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe1, 0x80, 0x32, 0xe3, 0x10, 0x10, -0x80, 0x32, 0xe2, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc6, -0x80, 0x32, 0xc8, 0x10, 0x10, 0x80, 0x32, 0xc7, 0x90, 0x50, 0x90, 0x28, -0x80, 0x32, 0xab, 0x80, 0x32, 0xad, 0x10, 0x10, 0x80, 0x32, 0xac, 0xe4, -0xe1, 0x46, 0x40, 0x35, 0x2d, 0x88, 0x00, 0xb0, 0x10, 0x10, 0x10, 0x10, -0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xa8, 0x80, 0x32, 0xaa, 0x10, 0x10, -0x80, 0x32, 0xa9, 0xe4, 0xe1, 0x36, 0x40, 0x34, 0xe3, 0x96, 0xe8, 0x94, -0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, -0x28, 0x80, 0x32, 0xf6, 0x80, 0x32, 0xfb, 0x10, 0x10, 0x80, 0x32, 0xfa, -0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xdb, 0x80, 0x32, 0xe0, 0x10, 0x10, -0x80, 0x32, 0xdf, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc0, -0x80, 0x32, 0xc5, 0x10, 0x10, 0x80, 0x32, 0xc4, 0x90, 0x50, 0x90, 0x28, -0x80, 0x32, 0xa2, 0x80, 0x32, 0xa7, 0x10, 0x10, 0x80, 0x32, 0xa6, 0x91, -0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf3, 0x80, 0x32, -0xf5, 0x10, 0x10, 0x80, 0x32, 0xf4, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, -0xd8, 0x80, 0x32, 0xda, 0x10, 0x10, 0x80, 0x32, 0xd9, 0x90, 0x88, 0x90, -0x50, 0x90, 0x28, 0x80, 0x32, 0xbd, 0x80, 0x32, 0xbf, 0x10, 0x10, 0x80, -0x32, 0xbe, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0x9f, 0x80, 0x32, 0xa1, -0x10, 0x10, 0x80, 0x32, 0xa0, 0xe4, 0xe1, 0x45, 0x40, 0x35, 0x29, 0x88, -0x02, 0x28, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, -0xf7, 0x80, 0x32, 0xf9, 0x10, 0x10, 0x80, 0x32, 0xf8, 0x90, 0x50, 0x90, -0x28, 0x80, 0x32, 0xdc, 0x80, 0x32, 0xde, 0x10, 0x10, 0x80, 0x32, 0xdd, -0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc1, 0x80, 0x32, 0xc3, -0x10, 0x10, 0x80, 0x32, 0xc2, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xa3, -0x80, 0x32, 0xa5, 0x10, 0x10, 0x80, 0x32, 0xa4, 0xe4, 0xe1, 0x35, 0xc0, -0x34, 0xe1, 0x90, 0x40, 0xe5, 0x21, 0x44, 0x40, 0x35, 0x25, 0xe5, 0x21, -0x35, 0x40, 0x34, 0xdf, 0x9e, 0xb4, 0x20, 0x08, 0x93, 0x70, 0x91, 0xd8, -0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x37, 0x58, -0x84, 0x36, 0xf5, 0xa4, 0x35, 0x38, 0x36, 0xbf, 0x90, 0x28, 0x24, 0x34, -0x78, 0xa4, 0x32, 0xf8, 0x36, 0x77, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, -0x8c, 0x37, 0x38, 0x84, 0x36, 0xf3, 0xa4, 0x35, 0x28, 0x36, 0xbd, 0x90, -0x28, 0x24, 0x34, 0x68, 0xa4, 0x32, 0xe8, 0x36, 0x75, 0xd5, 0x06, 0x80, -0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xdf, 0xa4, 0x35, 0x08, 0x36, -0xb9, 0x90, 0x28, 0x24, 0x34, 0x48, 0xa4, 0x32, 0xc8, 0x36, 0x71, 0xd0, -0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xdb, 0xa4, 0x34, 0xf8, 0x36, 0xb7, -0x90, 0x28, 0x24, 0x34, 0x38, 0xa4, 0x32, 0xb8, 0x36, 0x6f, 0x91, 0x98, -0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xd3, 0xa4, -0x34, 0xd8, 0x36, 0xb3, 0x90, 0x28, 0x24, 0x34, 0x18, 0xa4, 0x32, 0x98, -0x36, 0x6b, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xcf, 0xa4, 0x34, -0xc8, 0x36, 0xb1, 0x90, 0x28, 0x24, 0x34, 0x08, 0xa4, 0x32, 0x88, 0x36, -0x69, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xc7, -0xa4, 0x34, 0xa8, 0x36, 0xad, 0x90, 0x28, 0x24, 0x33, 0xe8, 0xa4, 0x32, -0x68, 0x36, 0x65, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xc3, 0xa4, -0x34, 0x98, 0x36, 0xab, 0x90, 0x28, 0x24, 0x33, 0xd8, 0xa4, 0x32, 0x58, -0x36, 0x63, 0x93, 0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, -0x90, 0x48, 0x80, 0x8c, 0x37, 0x78, 0x84, 0x36, 0xf7, 0xa4, 0x35, 0x48, -0x36, 0xc1, 0x90, 0x28, 0x24, 0x34, 0x88, 0xa4, 0x33, 0x08, 0x36, 0x79, -0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x37, 0x48, 0x84, 0x36, 0xf4, -0xa4, 0x35, 0x30, 0x36, 0xbe, 0x90, 0x28, 0x24, 0x34, 0x70, 0xa4, 0x32, -0xf0, 0x36, 0x76, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, -0x36, 0xe3, 0xa4, 0x35, 0x18, 0x36, 0xbb, 0x90, 0x28, 0x24, 0x34, 0x58, -0xa4, 0x32, 0xd8, 0x36, 0x73, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, -0xdd, 0xa4, 0x35, 0x00, 0x36, 0xb8, 0x90, 0x28, 0x24, 0x34, 0x40, 0xa4, -0x32, 0xc0, 0x36, 0x70, 0x91, 0x98, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, -0x90, 0x28, 0x80, 0x36, 0xd7, 0xa4, 0x34, 0xe8, 0x36, 0xb5, 0x90, 0x28, -0x24, 0x34, 0x28, 0xa4, 0x32, 0xa8, 0x36, 0x6d, 0xd0, 0xc3, 0x40, 0x90, -0x28, 0x80, 0x36, 0xd1, 0xa4, 0x34, 0xd0, 0x36, 0xb2, 0x90, 0x28, 0x24, -0x34, 0x10, 0xa4, 0x32, 0x90, 0x36, 0x6a, 0xd5, 0x06, 0x80, 0xd0, 0xc3, -0x40, 0x90, 0x28, 0x80, 0x36, 0xcb, 0xa4, 0x34, 0xb8, 0x36, 0xaf, 0x90, -0x28, 0x24, 0x33, 0xf8, 0xa4, 0x32, 0x78, 0x36, 0x67, 0xd0, 0xc3, 0x40, -0x90, 0x28, 0x80, 0x36, 0xc5, 0xa4, 0x34, 0xa0, 0x36, 0xac, 0x90, 0x28, -0x24, 0x33, 0xe0, 0xa4, 0x32, 0x60, 0x36, 0x64, 0x99, 0x08, 0x01, 0xf0, -0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, 0xb0, 0x33, 0xee, 0xa4, -0x1f, 0x30, 0x33, 0xde, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, 0x40, 0x33, 0xf0, -0xa4, 0x1e, 0xc0, 0x33, 0xe0, 0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, -0x1f, 0x60, 0x33, 0xf4, 0xa4, 0x1e, 0xe0, 0x33, 0xe4, 0xd4, 0xc2, 0x00, -0xa4, 0x1f, 0x50, 0x33, 0xf2, 0xa4, 0x1e, 0xd0, 0x33, 0xe2, 0xa8, 0x0b, -0x18, 0x13, 0xa8, 0x96, 0x80, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, -0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0xb8, 0x32, 0x58, 0x24, 0x12, -0xb0, 0x90, 0x38, 0xa4, 0x11, 0xe0, 0x32, 0x3d, 0x24, 0x11, 0xd8, 0x90, -0x60, 0x90, 0x38, 0xa4, 0x11, 0x08, 0x32, 0x22, 0x24, 0x11, 0x00, 0x90, -0x38, 0xa4, 0x10, 0x30, 0x32, 0x07, 0x24, 0x10, 0x28, 0x90, 0xc0, 0x90, -0x60, 0x90, 0x38, 0xa4, 0x12, 0xa8, 0x32, 0x53, 0x24, 0x12, 0xa0, 0x90, -0x38, 0xa4, 0x11, 0xd0, 0x32, 0x38, 0x24, 0x11, 0xc8, 0x90, 0x60, 0x90, -0x38, 0xa4, 0x10, 0xf8, 0x32, 0x1d, 0x24, 0x10, 0xf0, 0x90, 0x38, 0xa4, -0x10, 0x20, 0x32, 0x02, 0x24, 0x10, 0x18, 0xe4, 0xe1, 0x91, 0x40, 0x36, -0x47, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, -0x12, 0x90, 0x32, 0x50, 0x24, 0x12, 0x88, 0x90, 0x38, 0xa4, 0x11, 0xb8, -0x32, 0x35, 0x24, 0x11, 0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xe0, -0x32, 0x1a, 0x24, 0x10, 0xd8, 0x90, 0x38, 0xa4, 0x10, 0x08, 0x31, 0xff, -0x24, 0x10, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x78, -0x32, 0x4d, 0x24, 0x12, 0x70, 0x90, 0x38, 0xa4, 0x11, 0xa0, 0x32, 0x32, -0x24, 0x11, 0x98, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xc8, 0x32, 0x17, -0x24, 0x10, 0xc0, 0x90, 0x38, 0xa4, 0x0f, 0xf0, 0x31, 0xfc, 0x24, 0x0f, -0xe8, 0xe4, 0xe1, 0x8f, 0xc0, 0x36, 0x41, 0x93, 0x78, 0x99, 0x90, 0x03, -0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x60, 0x32, 0x4a, -0x24, 0x12, 0x58, 0x90, 0x38, 0xa4, 0x11, 0x88, 0x32, 0x2f, 0x24, 0x11, -0x80, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xb0, 0x32, 0x14, 0x24, 0x10, -0xa8, 0x90, 0x38, 0xa4, 0x0f, 0xd8, 0x31, 0xf9, 0x24, 0x0f, 0xd0, 0x90, -0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x48, 0x32, 0x47, 0x24, 0x12, -0x40, 0x90, 0x38, 0xa4, 0x11, 0x70, 0x32, 0x2c, 0x24, 0x11, 0x68, 0x90, -0x60, 0x90, 0x38, 0xa4, 0x10, 0x98, 0x32, 0x11, 0x24, 0x10, 0x90, 0x90, -0x38, 0xa4, 0x0f, 0xc0, 0x31, 0xf6, 0x24, 0x0f, 0xb8, 0xec, 0xa0, 0xff, -0x00, 0x02, 0x00, 0x33, 0xfe, 0xa4, 0x31, 0xc8, 0x36, 0x3b, 0x88, 0x00, -0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x0f, 0xa8, 0x31, 0xf3, -0x24, 0x0f, 0xa0, 0xe9, 0x60, 0xfe, 0x40, 0x02, 0x00, 0x33, 0xfa, 0xe3, -0x61, 0x8c, 0xc0, 0x36, 0x35, 0x95, 0x08, 0x93, 0x40, 0x99, 0x90, 0x03, -0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x30, 0x32, 0x41, -0x24, 0x12, 0x28, 0x90, 0x38, 0xa4, 0x11, 0x58, 0x32, 0x26, 0x24, 0x11, -0x50, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x80, 0x32, 0x0b, 0x24, 0x10, -0x78, 0x90, 0x38, 0xa4, 0x0f, 0x90, 0x31, 0xed, 0x24, 0x0f, 0x88, 0x90, -0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x00, 0x32, 0x3e, 0x24, 0x11, -0xf8, 0x90, 0x38, 0xa4, 0x11, 0x28, 0x32, 0x23, 0x24, 0x11, 0x20, 0x90, -0x60, 0x90, 0x38, 0xa4, 0x10, 0x50, 0x32, 0x08, 0x24, 0x10, 0x48, 0x90, -0x38, 0xa4, 0x0f, 0x60, 0x31, 0xea, 0x24, 0x0f, 0x58, 0xe4, 0xe1, 0x91, -0x80, 0x36, 0x49, 0x88, 0x01, 0x88, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, -0xa4, 0x12, 0x20, 0x32, 0x42, 0x24, 0x12, 0x18, 0x90, 0x38, 0xa4, 0x11, -0x48, 0x32, 0x27, 0x24, 0x11, 0x40, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, -0x70, 0x32, 0x0c, 0x24, 0x10, 0x68, 0x90, 0x38, 0xa4, 0x0f, 0x80, 0x31, -0xee, 0x24, 0x0f, 0x78, 0xe4, 0xe1, 0x90, 0x00, 0x36, 0x43, 0x92, 0xd0, -0x99, 0x50, 0x02, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, -0xe9, 0x24, 0x0f, 0x40, 0x90, 0x28, 0x80, 0x31, 0xe5, 0x24, 0x0f, 0x20, -0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe1, 0x24, 0x0f, 0x00, 0x90, 0x28, -0x80, 0x31, 0xdd, 0x24, 0x0e, 0xe0, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, -0x80, 0x31, 0xe6, 0x24, 0x0f, 0x38, 0x90, 0x28, 0x80, 0x31, 0xe2, 0x24, -0x0f, 0x18, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xde, 0x24, 0x0e, 0xf8, -0x90, 0x28, 0x80, 0x31, 0xda, 0x24, 0x0e, 0xd8, 0xec, 0xe1, 0x8e, 0xa1, -0x00, 0x00, 0x36, 0x3d, 0x88, 0x00, 0x78, 0x10, 0x10, 0x10, 0x10, 0x90, -0x28, 0x80, 0x31, 0xd8, 0x24, 0x0e, 0xc8, 0xec, 0xe1, 0x8d, 0x20, 0xfe, -0x00, 0x36, 0x37, 0xe5, 0xa1, 0x34, 0xc0, 0x34, 0xd1, 0xa0, 0x2a, 0x10, -0xa8, 0x16, 0x60, 0x29, 0xd8, 0xa0, 0x0c, 0x48, 0xa0, 0x0a, 0xc8, 0x95, -0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, -0x31, 0xa1, 0x80, 0x31, 0xa0, 0x10, 0x10, 0x80, 0x31, 0x9f, 0x90, 0x70, -0x90, 0x38, 0xa4, 0x08, 0x98, 0x31, 0xb3, 0xa4, 0x08, 0x90, 0x31, 0xb2, -0x10, 0x10, 0xa4, 0x08, 0x88, 0x31, 0xb1, 0x90, 0xb8, 0x90, 0x70, 0x90, -0x38, 0xa4, 0x09, 0xb8, 0x31, 0xd7, 0xa4, 0x09, 0xb0, 0x31, 0xd6, 0x10, -0x10, 0xa4, 0x09, 0xa8, 0x31, 0xd5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, -0x28, 0x31, 0xc5, 0xa4, 0x09, 0x20, 0x31, 0xc4, 0x10, 0x10, 0xa4, 0x09, -0x18, 0x31, 0xc3, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, -0x31, 0x9c, 0x80, 0x31, 0x9e, 0x10, 0x10, 0x80, 0x31, 0x9d, 0x90, 0x70, -0x90, 0x38, 0xa4, 0x08, 0x70, 0x31, 0xae, 0xa4, 0x08, 0x80, 0x31, 0xb0, -0x10, 0x10, 0xa4, 0x08, 0x78, 0x31, 0xaf, 0x90, 0xb8, 0x90, 0x70, 0x90, -0x38, 0xa4, 0x09, 0x90, 0x31, 0xd2, 0xa4, 0x09, 0xa0, 0x31, 0xd4, 0x10, -0x10, 0xa4, 0x09, 0x98, 0x31, 0xd3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, -0x00, 0x31, 0xc0, 0xa4, 0x09, 0x10, 0x31, 0xc2, 0x10, 0x10, 0xa4, 0x09, -0x08, 0x31, 0xc1, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, -0x28, 0x80, 0x31, 0x99, 0x80, 0x31, 0x9b, 0x10, 0x10, 0x80, 0x31, 0x9a, -0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x58, 0x31, 0xab, 0xa4, 0x08, 0x68, -0x31, 0xad, 0x10, 0x10, 0xa4, 0x08, 0x60, 0x31, 0xac, 0x90, 0xb8, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x09, 0x78, 0x31, 0xcf, 0xa4, 0x09, 0x88, 0x31, -0xd1, 0x10, 0x10, 0xa4, 0x09, 0x80, 0x31, 0xd0, 0x90, 0x70, 0x90, 0x38, -0xa4, 0x08, 0xe8, 0x31, 0xbd, 0xa4, 0x08, 0xf8, 0x31, 0xbf, 0x10, 0x10, -0xa4, 0x08, 0xf0, 0x31, 0xbe, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, -0x28, 0x80, 0x31, 0x96, 0x80, 0x31, 0x98, 0x10, 0x10, 0x80, 0x31, 0x97, -0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x40, 0x31, 0xa8, 0xa4, 0x08, 0x50, -0x31, 0xaa, 0x10, 0x10, 0xa4, 0x08, 0x48, 0x31, 0xa9, 0x90, 0xb8, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x09, 0x60, 0x31, 0xcc, 0xa4, 0x09, 0x70, 0x31, -0xce, 0x10, 0x10, 0xa4, 0x09, 0x68, 0x31, 0xcd, 0x90, 0x70, 0x90, 0x38, -0xa4, 0x08, 0xd0, 0x31, 0xba, 0xa4, 0x08, 0xe0, 0x31, 0xbc, 0x10, 0x10, -0xa4, 0x08, 0xd8, 0x31, 0xbb, 0x10, 0x10, 0x90, 0xa8, 0x10, 0x10, 0x10, -0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x8d, 0x80, 0x31, 0x8f, 0x10, -0x10, 0x80, 0x31, 0x8e, 0x90, 0x60, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0xc0, -0x60, 0xa0, 0x2a, 0x80, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0x40, 0x60, 0xa0, -0x2a, 0x00, 0x97, 0xf0, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, -0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x93, 0x80, 0x31, 0x95, 0x10, 0x10, -0x80, 0x31, 0x94, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x28, 0x31, 0xa5, -0xa4, 0x08, 0x38, 0x31, 0xa7, 0x10, 0x10, 0xa4, 0x08, 0x30, 0x31, 0xa6, -0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x48, 0x31, 0xc9, 0xa4, -0x09, 0x58, 0x31, 0xcb, 0x10, 0x10, 0xa4, 0x09, 0x50, 0x31, 0xca, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x08, 0xb8, 0x31, 0xb7, 0xa4, 0x08, 0xc8, 0x31, -0xb9, 0x10, 0x10, 0xa4, 0x08, 0xc0, 0x31, 0xb8, 0x91, 0x40, 0x90, 0x88, -0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x90, 0x80, 0x31, 0x92, 0x10, 0x10, -0x80, 0x31, 0x91, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x10, 0x31, 0xa2, -0xa4, 0x08, 0x20, 0x31, 0xa4, 0x10, 0x10, 0xa4, 0x08, 0x18, 0x31, 0xa3, -0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x30, 0x31, 0xc6, 0xa4, -0x09, 0x40, 0x31, 0xc8, 0x10, 0x10, 0xa4, 0x09, 0x38, 0x31, 0xc7, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x08, 0xa0, 0x31, 0xb4, 0xa4, 0x08, 0xb0, 0x31, -0xb6, 0x10, 0x10, 0xa4, 0x08, 0xa8, 0x31, 0xb5, 0x10, 0x10, 0x91, 0x40, -0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xcb, 0x80, 0x30, 0xca, -0x90, 0x28, 0x80, 0x30, 0xc9, 0x80, 0x30, 0xc8, 0x90, 0x50, 0x90, 0x28, -0x80, 0x30, 0xc4, 0x80, 0x30, 0xc7, 0x90, 0x28, 0x80, 0x30, 0xc6, 0x80, -0x30, 0xc5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbc, 0x80, -0x30, 0xc3, 0x90, 0x28, 0x80, 0x30, 0xc2, 0x80, 0x30, 0xc1, 0x90, 0x50, -0x90, 0x28, 0x80, 0x30, 0xbd, 0x80, 0x30, 0xc0, 0x90, 0x28, 0x80, 0x30, -0xbf, 0x80, 0x30, 0xbe, 0x91, 0x88, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, -0x28, 0x81, 0x31, 0x3b, 0x10, 0x10, 0x80, 0x31, 0x3a, 0x90, 0x28, 0x81, -0x31, 0x3d, 0x10, 0x10, 0x80, 0x31, 0x3c, 0x90, 0x60, 0x90, 0x28, 0x81, -0x31, 0x41, 0x10, 0x10, 0x80, 0x31, 0x40, 0x90, 0x28, 0x81, 0x31, 0x3f, -0x10, 0x10, 0x80, 0x31, 0x3e, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, -0x81, 0x31, 0x38, 0x10, 0x10, 0x80, 0x31, 0x39, 0xa0, 0x0b, 0x90, 0xa0, -0x0a, 0xc8, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, -0x90, 0x28, 0x80, 0x31, 0x56, 0x80, 0x31, 0x55, 0x10, 0x10, 0x80, 0x31, -0x54, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xe8, 0x31, 0x68, 0xa4, 0x06, -0xe0, 0x31, 0x67, 0x10, 0x10, 0xa4, 0x06, 0xd8, 0x31, 0x66, 0x90, 0xb8, -0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x08, 0x31, 0x8c, 0xa4, 0x08, 0x00, -0x31, 0x8b, 0x10, 0x10, 0xa4, 0x07, 0xf8, 0x31, 0x8a, 0x90, 0x70, 0x90, -0x38, 0xa4, 0x07, 0x78, 0x31, 0x7a, 0xa4, 0x07, 0x70, 0x31, 0x79, 0x10, -0x10, 0xa4, 0x07, 0x68, 0x31, 0x78, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, -0x90, 0x28, 0x80, 0x31, 0x51, 0x80, 0x31, 0x53, 0x10, 0x10, 0x80, 0x31, -0x52, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xc0, 0x31, 0x63, 0xa4, 0x06, -0xd0, 0x31, 0x65, 0x10, 0x10, 0xa4, 0x06, 0xc8, 0x31, 0x64, 0x90, 0xb8, -0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xe0, 0x31, 0x87, 0xa4, 0x07, 0xf0, -0x31, 0x89, 0x10, 0x10, 0xa4, 0x07, 0xe8, 0x31, 0x88, 0x90, 0x70, 0x90, -0x38, 0xa4, 0x07, 0x50, 0x31, 0x75, 0xa4, 0x07, 0x60, 0x31, 0x77, 0x10, -0x10, 0xa4, 0x07, 0x58, 0x31, 0x76, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, -0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x4e, 0x80, 0x31, 0x50, 0x10, 0x10, -0x80, 0x31, 0x4f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xa8, 0x31, 0x60, -0xa4, 0x06, 0xb8, 0x31, 0x62, 0x10, 0x10, 0xa4, 0x06, 0xb0, 0x31, 0x61, -0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xc8, 0x31, 0x84, 0xa4, -0x07, 0xd8, 0x31, 0x86, 0x10, 0x10, 0xa4, 0x07, 0xd0, 0x31, 0x85, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x07, 0x38, 0x31, 0x72, 0xa4, 0x07, 0x48, 0x31, -0x74, 0x10, 0x10, 0xa4, 0x07, 0x40, 0x31, 0x73, 0x91, 0x40, 0x90, 0x88, -0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x4b, 0x80, 0x31, 0x4d, 0x10, 0x10, -0x80, 0x31, 0x4c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x90, 0x31, 0x5d, -0xa4, 0x06, 0xa0, 0x31, 0x5f, 0x10, 0x10, 0xa4, 0x06, 0x98, 0x31, 0x5e, -0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xb0, 0x31, 0x81, 0xa4, -0x07, 0xc0, 0x31, 0x83, 0x10, 0x10, 0xa4, 0x07, 0xb8, 0x31, 0x82, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x07, 0x20, 0x31, 0x6f, 0xa4, 0x07, 0x30, 0x31, -0x71, 0x10, 0x10, 0xa4, 0x07, 0x28, 0x31, 0x70, 0x10, 0x10, 0x80, 0x10, -0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x42, 0x80, 0x31, -0x44, 0x10, 0x10, 0x80, 0x31, 0x43, 0x80, 0x95, 0x60, 0x92, 0xb0, 0x91, -0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x48, 0x80, 0x31, -0x4a, 0x10, 0x10, 0x80, 0x31, 0x49, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, -0x78, 0x31, 0x5a, 0xa4, 0x06, 0x88, 0x31, 0x5c, 0x10, 0x10, 0xa4, 0x06, -0x80, 0x31, 0x5b, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x98, -0x31, 0x7e, 0xa4, 0x07, 0xa8, 0x31, 0x80, 0x10, 0x10, 0xa4, 0x07, 0xa0, -0x31, 0x7f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x08, 0x31, 0x6c, 0xa4, -0x07, 0x18, 0x31, 0x6e, 0x10, 0x10, 0xa4, 0x07, 0x10, 0x31, 0x6d, 0x91, -0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x45, 0x80, 0x31, -0x47, 0x10, 0x10, 0x80, 0x31, 0x46, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, -0x60, 0x31, 0x57, 0xa4, 0x06, 0x70, 0x31, 0x59, 0x10, 0x10, 0xa4, 0x06, -0x68, 0x31, 0x58, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x80, -0x31, 0x7b, 0xa4, 0x07, 0x90, 0x31, 0x7d, 0x10, 0x10, 0xa4, 0x07, 0x88, -0x31, 0x7c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xf0, 0x31, 0x69, 0xa4, -0x07, 0x00, 0x31, 0x6b, 0x10, 0x10, 0xa4, 0x06, 0xf8, 0x31, 0x6a, 0x10, -0x10, 0x91, 0x40, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbb, -0x80, 0x30, 0xba, 0x90, 0x28, 0x80, 0x30, 0xb9, 0x80, 0x30, 0xb8, 0x90, -0x50, 0x90, 0x28, 0x80, 0x30, 0xb4, 0x80, 0x30, 0xb7, 0x90, 0x28, 0x80, -0x30, 0xb6, 0x80, 0x30, 0xb5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, -0x30, 0xac, 0x80, 0x30, 0xb3, 0x90, 0x28, 0x80, 0x30, 0xb2, 0x80, 0x30, -0xb1, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xad, 0x80, 0x30, 0xb0, 0x90, -0x28, 0x80, 0x30, 0xaf, 0x80, 0x30, 0xae, 0xc3, 0xc0, 0x30, 0x42, 0x9c, -0xe8, 0x07, 0x60, 0x91, 0x90, 0x90, 0xf0, 0x10, 0x10, 0x80, 0x88, 0x00, -0x80, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xbc, 0x80, 0x33, 0xbd, 0x81, -0x33, 0xb3, 0xd0, 0x41, 0x80, 0x24, 0x1e, 0xb0, 0x24, 0x1e, 0xb8, 0x10, -0x10, 0x80, 0x90, 0x58, 0x80, 0x90, 0x28, 0x24, 0x1d, 0xb0, 0x24, 0x1d, -0xb8, 0x81, 0x24, 0x1d, 0x70, 0x92, 0x68, 0x91, 0x00, 0x80, 0x90, 0x90, -0x90, 0x30, 0x80, 0x24, 0x1e, 0x20, 0x90, 0x38, 0xa4, 0x1e, 0x18, 0x33, -0xca, 0x80, 0x33, 0xc9, 0x80, 0x90, 0x28, 0x80, 0x33, 0xd3, 0xa4, 0x1e, -0x00, 0x33, 0xd2, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x80, 0x33, -0xcd, 0xa4, 0x1e, 0x10, 0x33, 0xcc, 0x90, 0x28, 0x80, 0x33, 0xc8, 0xa4, -0x1e, 0x08, 0x33, 0xc7, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xd1, 0x80, -0x33, 0xd0, 0x90, 0x28, 0x24, 0x1e, 0xa8, 0x24, 0x1e, 0xa0, 0x90, 0x58, -0x80, 0x10, 0x10, 0x80, 0x10, 0x10, 0x80, 0x33, 0xbf, 0x80, 0x90, 0x40, -0x10, 0x10, 0x80, 0x24, 0x1d, 0x80, 0x80, 0x10, 0x10, 0x80, 0x33, 0xbe, -0x91, 0x58, 0x91, 0x00, 0x90, 0x80, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, -0x33, 0xba, 0x80, 0x33, 0xbb, 0x81, 0x33, 0xb2, 0x81, 0x90, 0x50, 0x90, -0x28, 0x80, 0x33, 0xb8, 0x80, 0x33, 0xb9, 0x81, 0x33, 0xb1, 0x83, 0x90, -0x28, 0x24, 0x1d, 0xa0, 0x24, 0x1d, 0xa8, 0x90, 0xe8, 0x81, 0x90, 0x88, -0x90, 0x38, 0x10, 0x10, 0x80, 0x33, 0xcb, 0x90, 0x28, 0x80, 0x33, 0xc6, -0x80, 0x33, 0xc5, 0x80, 0x90, 0x28, 0x80, 0x33, 0xcf, 0x80, 0x33, 0xce, -0x82, 0x10, 0x10, 0x80, 0x24, 0x1d, 0x78, 0x97, 0x10, 0x9e, 0x10, 0x06, -0x98, 0x93, 0x00, 0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, -0x03, 0x80, 0x30, 0x71, 0x24, 0x03, 0x78, 0x90, 0x38, 0xa4, 0x04, 0x10, -0x30, 0x83, 0x24, 0x04, 0x08, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x30, -0x30, 0xa7, 0x24, 0x05, 0x28, 0x90, 0x38, 0xa4, 0x04, 0xa0, 0x30, 0x95, -0x24, 0x04, 0x98, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x70, -0x30, 0x6c, 0x24, 0x03, 0x68, 0x90, 0x38, 0xa4, 0x04, 0x00, 0x30, 0x7e, -0x24, 0x03, 0xf8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x20, 0x30, 0xa2, -0x24, 0x05, 0x18, 0x90, 0x38, 0xa4, 0x04, 0x90, 0x30, 0x90, 0x24, 0x04, -0x88, 0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x58, -0x30, 0x69, 0x24, 0x03, 0x50, 0x90, 0x38, 0xa4, 0x03, 0xe8, 0x30, 0x7b, -0x24, 0x03, 0xe0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x08, 0x30, 0x9f, -0x24, 0x05, 0x00, 0x90, 0x38, 0xa4, 0x04, 0x78, 0x30, 0x8d, 0x24, 0x04, -0x70, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x40, 0x30, 0x66, -0x24, 0x03, 0x38, 0x90, 0x38, 0xa4, 0x03, 0xd0, 0x30, 0x78, 0x24, 0x03, -0xc8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xf0, 0x30, 0x9c, 0x24, 0x04, -0xe8, 0x90, 0x38, 0xa4, 0x04, 0x60, 0x30, 0x8a, 0x24, 0x04, 0x58, 0x10, -0x10, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x02, 0xf8, 0x30, -0x5d, 0x24, 0x02, 0xf0, 0xd7, 0x42, 0x00, 0xa4, 0x31, 0x78, 0x36, 0x31, -0xa4, 0x31, 0x58, 0x36, 0x2d, 0x9c, 0xe0, 0x06, 0x90, 0x93, 0x00, 0x91, -0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x28, 0x30, 0x63, -0x24, 0x03, 0x20, 0x90, 0x38, 0xa4, 0x03, 0xb8, 0x30, 0x75, 0x24, 0x03, -0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xd8, 0x30, 0x99, 0x24, 0x04, -0xd0, 0x90, 0x38, 0xa4, 0x04, 0x48, 0x30, 0x87, 0x24, 0x04, 0x40, 0x90, -0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x10, 0x30, 0x60, 0x24, 0x03, -0x08, 0x90, 0x38, 0xa4, 0x03, 0xa0, 0x30, 0x72, 0x24, 0x03, 0x98, 0x90, -0x60, 0x90, 0x38, 0xa4, 0x04, 0xc0, 0x30, 0x96, 0x24, 0x04, 0xb8, 0x90, -0x38, 0xa4, 0x04, 0x30, 0x30, 0x84, 0x24, 0x04, 0x28, 0x10, 0x10, 0x90, -0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x88, 0x30, 0x52, 0xa4, 0x02, -0x78, 0x30, 0x50, 0x90, 0x38, 0xa4, 0x02, 0x70, 0x30, 0x4b, 0xa4, 0x02, -0x60, 0x30, 0x4d, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x50, 0x30, 0x43, -0xa4, 0x02, 0x40, 0x30, 0x49, 0x90, 0x38, 0xa4, 0x02, 0x38, 0x30, 0x44, -0xa4, 0x02, 0x28, 0x30, 0x46, 0x91, 0x48, 0x80, 0x90, 0xa0, 0x90, 0x50, -0x90, 0x28, 0x80, 0x30, 0x56, 0x24, 0x02, 0xa8, 0x90, 0x28, 0x80, 0x30, -0x58, 0x24, 0x02, 0xb8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0x5c, 0x24, -0x02, 0xd8, 0x90, 0x28, 0x80, 0x30, 0x5a, 0x24, 0x02, 0xc8, 0x80, 0x10, -0x10, 0x10, 0x10, 0x90, 0x28, 0x80, 0x30, 0x53, 0x24, 0x02, 0xa0, 0xd7, -0x42, 0x00, 0xa4, 0x31, 0x80, 0x36, 0x32, 0xa4, 0x31, 0x60, 0x36, 0x2e, -0xa0, 0x14, 0x90, 0xa0, 0x10, 0xb8, 0xa0, 0x0c, 0x88, 0x9e, 0x88, 0x09, -0xd0, 0x94, 0xf0, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, -0xe1, 0x2c, 0x40, 0x85, 0x34, 0xcd, 0xcb, 0x61, 0x25, 0x00, 0x85, 0x34, -0xa3, 0x9a, 0x00, 0x03, 0xf8, 0x91, 0x98, 0x80, 0x91, 0x10, 0x90, 0xa0, -0x90, 0x68, 0x90, 0x20, 0x38, 0x96, 0xc9, 0xe2, 0x25, 0x00, 0x85, 0x34, -0xcb, 0xa4, 0x44, 0x90, 0x38, 0x93, 0x90, 0x38, 0xa4, 0x44, 0x58, 0x38, -0x8c, 0xa4, 0x44, 0x48, 0x38, 0x8a, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, -0x10, 0x38, 0x83, 0x10, 0x10, 0x80, 0x38, 0x7f, 0x81, 0x10, 0x10, 0x80, -0xa4, 0x43, 0xe0, 0x38, 0x7d, 0x91, 0xb0, 0x91, 0x60, 0x90, 0xe0, 0x90, -0x70, 0x90, 0x38, 0xa4, 0x44, 0x80, 0x38, 0x91, 0xa4, 0x44, 0x70, 0x38, -0x8f, 0x90, 0x38, 0xa4, 0x44, 0x38, 0x38, 0x88, 0xa4, 0x44, 0x28, 0x38, -0x86, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, 0x00, 0x38, 0x81, 0x10, 0x10, -0x80, 0x38, 0x7e, 0x90, 0x28, 0x80, 0x38, 0x77, 0x80, 0x38, 0x76, 0x81, -0x10, 0x10, 0x80, 0xa4, 0x43, 0xd0, 0x38, 0x7b, 0xcb, 0x61, 0x24, 0xc0, -0x85, 0x34, 0xa2, 0x90, 0xd8, 0x88, 0x00, 0x90, 0x84, 0x90, 0x38, 0xc1, -0xc0, 0x85, 0x38, 0x9a, 0xc9, 0xe1, 0x2c, 0x00, 0x85, 0x34, 0xc9, 0xcb, -0x61, 0x24, 0x80, 0x85, 0x34, 0xa1, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, -0xc9, 0xe1, 0x2b, 0xc0, 0x85, 0x34, 0xc7, 0xcb, 0x61, 0x24, 0x40, 0x85, -0x34, 0xa0, 0x91, 0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, -0xc9, 0xe1, 0x2b, 0x40, 0x85, 0x34, 0xc3, 0xcb, 0x61, 0x23, 0xc0, 0x85, -0x34, 0x9e, 0x88, 0x01, 0x00, 0x90, 0xa0, 0x81, 0x90, 0x70, 0x80, 0x90, -0x20, 0x38, 0x8d, 0xc9, 0xe1, 0x2b, 0x00, 0x85, 0x34, 0xc1, 0x81, 0x38, -0x84, 0x81, 0x10, 0x10, 0x80, 0xa4, 0x43, 0xc0, 0x38, 0x79, 0xcb, 0x61, -0x23, 0x80, 0x85, 0x34, 0x9d, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, -0x10, 0xc9, 0xe1, 0x2a, 0xc0, 0x85, 0x34, 0xbf, 0xcb, 0x61, 0x23, 0x40, -0x85, 0x34, 0x9c, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x2a, -0x80, 0x85, 0x34, 0xbd, 0xcb, 0x61, 0x23, 0x00, 0x85, 0x34, 0x9b, 0x92, -0x38, 0x81, 0x91, 0x68, 0x91, 0x18, 0x90, 0x80, 0x90, 0x40, 0x80, 0xa4, -0x45, 0x48, 0x38, 0xaa, 0x80, 0xa4, 0x45, 0x40, 0x38, 0xa7, 0x90, 0x28, -0x81, 0x38, 0xa6, 0x90, 0x38, 0xa4, 0x45, 0x20, 0x38, 0xa5, 0xa4, 0x45, -0x10, 0x38, 0xa3, 0x90, 0x28, 0x80, 0x38, 0xa1, 0x80, 0x38, 0xa0, 0x80, -0x90, 0x40, 0x10, 0x10, 0x80, 0x24, 0x44, 0xf8, 0x10, 0x10, 0x90, 0x38, -0xa4, 0x44, 0xe8, 0x38, 0x9e, 0xa4, 0x44, 0xd8, 0x38, 0x9c, 0x90, 0x50, -0x80, 0xc9, 0xa2, 0x26, 0x00, 0x85, 0x38, 0x99, 0x80, 0x38, 0x97, 0x9a, -0xd0, 0x03, 0xe0, 0x91, 0x60, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, -0x10, 0xc9, 0xe1, 0x2a, 0x00, 0x85, 0x34, 0xb9, 0xcb, 0x61, 0x22, 0x80, -0x85, 0x34, 0x99, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x29, -0xc0, 0x85, 0x34, 0xb7, 0xcb, 0x61, 0x22, 0x40, 0x85, 0x34, 0x98, 0x90, -0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x29, 0x80, 0x85, -0x34, 0xb5, 0xcb, 0x61, 0x22, 0x00, 0x85, 0x34, 0x97, 0x88, 0x00, 0x68, -0x84, 0x10, 0x10, 0xc9, 0xe1, 0x29, 0x40, 0x85, 0x34, 0xb3, 0xcb, 0x61, -0x21, 0xc0, 0x85, 0x34, 0x96, 0x90, 0x90, 0x90, 0x48, 0xcb, 0xa1, 0x20, -0x00, 0x85, 0x34, 0x85, 0xcb, 0xa1, 0x1f, 0xc0, 0x85, 0x34, 0x84, 0x90, -0x48, 0xcb, 0xa1, 0x1f, 0x80, 0x85, 0x34, 0x83, 0xcb, 0xa1, 0x1f, 0x40, -0x85, 0x34, 0x82, 0xcb, 0xa2, 0x1d, 0x00, 0x80, 0x38, 0x75, 0x92, 0x40, -0x91, 0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x23, 0x60, 0x84, 0x24, 0x23, -0xd8, 0x8c, 0x23, 0x58, 0x84, 0x24, 0x23, 0xd0, 0x90, 0x48, 0x8c, 0x23, -0x50, 0x84, 0x24, 0x23, 0xc8, 0x8c, 0x23, 0x48, 0x84, 0x24, 0x23, 0xc0, -0x90, 0x90, 0x90, 0x48, 0x8c, 0x23, 0x38, 0x84, 0x24, 0x23, 0xb0, 0x8c, -0x23, 0x30, 0x84, 0x24, 0x23, 0xa8, 0x90, 0x48, 0x8c, 0x23, 0x28, 0x84, -0x24, 0x23, 0xa0, 0x8c, 0x23, 0x20, 0x84, 0x24, 0x23, 0x98, 0x91, 0x20, -0x90, 0x90, 0x90, 0x48, 0x8c, 0x23, 0x10, 0x84, 0x24, 0x23, 0x88, 0x8c, -0x23, 0x08, 0x84, 0x24, 0x23, 0x80, 0x90, 0x48, 0x8c, 0x23, 0x00, 0x84, -0x24, 0x23, 0x78, 0x8c, 0x22, 0xf8, 0x84, 0x24, 0x23, 0x70, 0x90, 0x38, -0xa4, 0x22, 0xe0, 0x34, 0x5d, 0xa4, 0x22, 0xd0, 0x34, 0x5b, 0xa0, 0x0f, -0x50, 0xa0, 0x09, 0x08, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, -0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x1c, 0x00, 0x38, 0x6c, 0xe5, 0x22, -0x18, 0x00, 0x38, 0x6a, 0xcb, 0x61, 0x12, 0x40, 0x85, 0x34, 0x58, 0x98, -0x50, 0x00, 0x80, 0xe5, 0x22, 0x14, 0x00, 0x38, 0x4c, 0xe5, 0x22, 0x10, -0x00, 0x38, 0x4a, 0xcb, 0x61, 0x12, 0x00, 0x85, 0x34, 0x57, 0x90, 0x48, -0xcb, 0xa1, 0x11, 0xc0, 0x85, 0x34, 0x56, 0xcb, 0xa1, 0x11, 0x80, 0x85, -0x34, 0x55, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, -0x09, 0x00, 0x38, 0x30, 0xe5, 0x22, 0x03, 0x00, 0x38, 0x18, 0xcb, 0x61, -0x11, 0x00, 0x85, 0x34, 0x53, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x21, 0xfd, -0x00, 0x38, 0x00, 0xe5, 0x21, 0xf7, 0x00, 0x37, 0xe8, 0xcb, 0x61, 0x10, -0xc0, 0x85, 0x34, 0x52, 0x90, 0x48, 0xcb, 0xa1, 0x10, 0x80, 0x85, 0x34, -0x51, 0xcb, 0xa1, 0x10, 0x40, 0x85, 0x34, 0x50, 0x92, 0x20, 0x91, 0x30, -0x90, 0xb8, 0xd5, 0x03, 0x00, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0xa0, 0x84, -0x30, 0x3e, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0x80, 0x84, 0x30, 0x3c, 0xd5, -0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x28, 0xc0, 0xc0, 0x81, 0x30, 0x24, -0x90, 0x78, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x1c, 0xc0, 0xc0, -0x81, 0x30, 0x18, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x10, 0xc0, -0xc0, 0x81, 0x30, 0x0c, 0x91, 0x70, 0x90, 0xd8, 0xd5, 0x03, 0x80, 0xc8, -0xe1, 0xf3, 0x00, 0x81, 0x8c, 0x01, 0xc0, 0x84, 0x30, 0x40, 0xc8, 0xe1, -0xf4, 0x00, 0x81, 0x8c, 0x01, 0x90, 0x84, 0x30, 0x3d, 0xd5, 0x02, 0x80, -0xc8, 0xe1, 0xf2, 0x80, 0x81, 0x30, 0x2c, 0xc8, 0xe1, 0xef, 0x80, 0x81, -0x30, 0x26, 0x90, 0x98, 0xd5, 0x02, 0x80, 0xc8, 0xe1, 0xe9, 0x80, 0x81, -0x30, 0x20, 0xc8, 0xe1, 0xea, 0x80, 0x81, 0x30, 0x1a, 0xd5, 0x02, 0x80, -0xc8, 0xe1, 0xe9, 0x00, 0x81, 0x30, 0x14, 0xc8, 0xe1, 0xe6, 0x00, 0x81, -0x30, 0x0e, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, -0x00, 0x80, 0xe5, 0x22, 0x16, 0x00, 0x38, 0x54, 0xe5, 0x22, 0x17, 0x00, -0x38, 0x66, 0xcb, 0x61, 0x0f, 0xc0, 0x85, 0x34, 0x4e, 0x98, 0x50, 0x00, -0x80, 0xe5, 0x22, 0x0e, 0x00, 0x38, 0x34, 0xe5, 0x22, 0x0f, 0x00, 0x38, -0x46, 0xcb, 0x61, 0x0f, 0x80, 0x85, 0x34, 0x4d, 0x90, 0x48, 0xcb, 0xa1, -0x0f, 0x40, 0x85, 0x34, 0x4c, 0xcb, 0xa1, 0x0f, 0x00, 0x85, 0x34, 0x4b, -0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x07, 0x00, -0x38, 0x28, 0xe5, 0x22, 0x01, 0x00, 0x38, 0x10, 0xcb, 0x61, 0x0d, 0x40, -0x85, 0x34, 0x3a, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x21, 0xfb, 0x00, 0x37, -0xf8, 0xe5, 0x21, 0xf5, 0x00, 0x37, 0xe0, 0xcb, 0x61, 0x0d, 0x00, 0x85, -0x34, 0x39, 0x90, 0x48, 0xcb, 0xa1, 0x0c, 0xc0, 0x85, 0x34, 0x38, 0xcb, -0xa1, 0x0c, 0x80, 0x85, 0x34, 0x37, 0x91, 0x00, 0x90, 0x80, 0x90, 0x40, -0xe5, 0x20, 0x02, 0x40, 0x30, 0x0a, 0xe5, 0x20, 0x01, 0x80, 0x30, 0x07, -0x90, 0x40, 0xe5, 0x20, 0x00, 0xc0, 0x30, 0x04, 0xe5, 0x20, 0x00, 0x00, -0x30, 0x01, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x21, 0xed, 0x00, 0x37, 0xae, -0xe5, 0x21, 0xee, 0x40, 0x37, 0xc4, 0x90, 0x40, 0xe5, 0x21, 0xe3, 0x80, -0x37, 0x88, 0xe5, 0x21, 0xe4, 0xc0, 0x37, 0x9e, 0x80, 0x99, 0x28, 0x02, -0xf0, 0x8c, 0x21, 0x48, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22, 0x19, 0x00, -0x38, 0x62, 0xe5, 0x22, 0x17, 0x80, 0x38, 0x68, 0x90, 0x40, 0xe5, 0x22, -0x11, 0x00, 0x38, 0x42, 0xe5, 0x22, 0x0f, 0x80, 0x38, 0x48, 0x91, 0x48, -0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x08, 0x00, 0x38, 0x2c, -0xe5, 0x22, 0x02, 0x00, 0x38, 0x14, 0xcb, 0x61, 0x0b, 0x00, 0x85, 0x34, -0x30, 0x90, 0x40, 0xe5, 0x21, 0xfc, 0x00, 0x37, 0xfc, 0xe5, 0x21, 0xf6, -0x00, 0x37, 0xe4, 0x90, 0x48, 0xcb, 0xa1, 0x0a, 0x80, 0x85, 0x34, 0x2e, -0xcb, 0xa1, 0x0a, 0xc0, 0x85, 0x34, 0x2f, 0x10, 0x10, 0x90, 0x80, 0x90, -0x40, 0xe5, 0x21, 0xf0, 0x80, 0x37, 0xc0, 0xe5, 0x21, 0xef, 0x00, 0x37, -0xc8, 0x90, 0x40, 0xe5, 0x21, 0xe7, 0x00, 0x37, 0x9a, 0xe5, 0x21, 0xe5, -0x80, 0x37, 0xa2, +0xa0, 0xc4, 0xd8, 0xa0, 0x2d, 0x88, 0xa0, 0x2b, 0x70, 0xa0, 0x1a, 0xb0, +0x98, 0xb0, 0x01, 0x40, 0x90, 0x50, 0x90, 0x28, 0x24, 0x31, 0xf8, 0x24, +0x31, 0xf0, 0x90, 0x28, 0x24, 0x31, 0xe8, 0x24, 0x31, 0xe0, 0x90, 0x50, +0x90, 0x28, 0x24, 0x31, 0xd0, 0x24, 0x31, 0xc8, 0x90, 0x28, 0x24, 0x31, +0xc0, 0x24, 0x31, 0xb8, 0xa8, 0x0b, 0x48, 0x15, 0x20, 0x97, 0x20, 0x95, +0xc8, 0x9a, 0xb8, 0x05, 0x38, 0x91, 0x18, 0x90, 0xa0, 0x90, 0x60, 0x80, +0x90, 0x20, 0x34, 0x3c, 0xa4, 0x21, 0xb0, 0x34, 0x39, 0x80, 0xa4, 0x2f, +0x70, 0x35, 0xf3, 0x90, 0x50, 0x90, 0x28, 0x80, 0x35, 0xe9, 0x80, 0x34, +0x1d, 0x81, 0x33, 0xb9, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x20, +0xc8, 0x34, 0x1a, 0xa4, 0x1d, 0xc0, 0x34, 0x17, 0x90, 0x38, 0xa4, 0x31, +0x70, 0x36, 0x34, 0xa4, 0x31, 0x18, 0x36, 0x28, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x2f, 0xf0, 0x36, 0x09, 0xa4, 0x2f, 0xc8, 0x36, 0x04, 0x80, 0xa4, +0x20, 0xa8, 0x34, 0x16, 0x92, 0x18, 0x91, 0xc0, 0x80, 0x91, 0x80, 0x90, +0xf8, 0xdb, 0x84, 0x60, 0xef, 0x00, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x28, +0x8c, 0x3c, 0x88, 0x84, 0x37, 0x9b, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x18, +0x8c, 0x3c, 0x68, 0x84, 0x37, 0x99, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, +0x81, 0x37, 0x4d, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x4b, 0xa4, 0x1d, 0xd0, +0x33, 0xbb, 0x80, 0x90, 0x28, 0x80, 0x33, 0xb7, 0x80, 0x34, 0x1f, 0x81, +0x90, 0x38, 0xa4, 0x21, 0x30, 0x34, 0x22, 0xa4, 0x21, 0x00, 0x34, 0x1c, +0xc0, 0x40, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x1d, 0xa8, 0x33, 0xb6, 0xa4, +0x1d, 0x98, 0x33, 0xb4, 0x18, 0x24, 0x21, 0xa8, 0x83, 0x90, 0xa8, 0xd3, +0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xf8, 0x37, 0x85, 0xc0, 0xc0, +0x80, 0xa4, 0x3a, 0xe8, 0x37, 0x81, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, +0x81, 0x37, 0x47, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x45, 0x92, 0xb8, 0x99, +0x84, 0x21, 0x20, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2f, +0x68, 0x35, 0xf2, 0x82, 0x35, 0xe8, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, +0xa4, 0x31, 0x68, 0x36, 0x33, 0xa4, 0x31, 0x10, 0x36, 0x27, 0x80, 0x90, +0x38, 0xa4, 0x2f, 0xe8, 0x36, 0x08, 0xa4, 0x2f, 0xc0, 0x36, 0x03, 0x83, +0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xc8, 0x37, +0x79, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xb8, 0x37, 0x75, 0xd3, 0x82, 0x40, +0x50, 0xc0, 0xc0, 0x81, 0x37, 0x41, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x3f, +0x18, 0x24, 0x21, 0x28, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, +0x80, 0xa4, 0x3a, 0x98, 0x37, 0x6d, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0x88, +0x37, 0x69, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x3b, 0x50, +0xc0, 0xc0, 0x81, 0x37, 0x39, 0x94, 0x50, 0x92, 0xf8, 0x99, 0x84, 0x1e, +0x00, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x2f, 0x60, 0x35, +0xf1, 0x82, 0x35, 0xe7, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x31, +0x60, 0x36, 0x32, 0xa4, 0x31, 0x08, 0x36, 0x26, 0x80, 0x90, 0x38, 0xa4, +0x2f, 0xe0, 0x36, 0x07, 0xa4, 0x2f, 0xb8, 0x36, 0x02, 0x83, 0x90, 0xe8, +0xd3, 0x83, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x38, 0x8c, 0x3c, 0xa8, +0x84, 0x37, 0x9d, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x20, 0x8c, 0x3c, 0x78, +0x84, 0x37, 0x9a, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x4f, +0x50, 0xc0, 0xc0, 0x81, 0x37, 0x4c, 0x18, 0x24, 0x1d, 0xf8, 0x83, 0x90, +0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3b, 0x08, 0x37, 0x89, +0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xf0, 0x37, 0x83, 0xd3, 0x82, 0x40, 0x50, +0xc0, 0xc0, 0x81, 0x37, 0x49, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x46, 0x92, +0xb8, 0x99, 0x84, 0x1d, 0xf0, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, +0xa4, 0x2f, 0x58, 0x35, 0xf0, 0x82, 0x35, 0xe6, 0x90, 0x80, 0x10, 0x10, +0x90, 0x38, 0xa4, 0x31, 0x58, 0x36, 0x31, 0xa4, 0x31, 0x00, 0x36, 0x25, +0x80, 0x90, 0x38, 0xa4, 0x2f, 0xd8, 0x36, 0x06, 0xa4, 0x2f, 0xb0, 0x36, +0x01, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, +0xd8, 0x37, 0x7d, 0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xc0, 0x37, 0x77, 0xd3, +0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x43, 0x50, 0xc0, 0xc0, 0x81, +0x37, 0x40, 0x18, 0x20, 0x01, 0x48, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, +0xc0, 0xc0, 0x80, 0xa4, 0x3a, 0xa8, 0x37, 0x71, 0xc0, 0xc0, 0x80, 0xa4, +0x3a, 0x90, 0x37, 0x6b, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x37, +0x3d, 0x50, 0xc0, 0xc0, 0x81, 0x37, 0x3a, 0xda, 0x06, 0xe0, 0xef, 0x40, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x21, 0x98, 0x34, 0x31, 0x80, 0x34, 0x2e, +0x90, 0x38, 0xa4, 0x21, 0x40, 0x34, 0x2c, 0x80, 0x34, 0x29, 0x90, 0x60, +0x90, 0x38, 0xa4, 0x21, 0x80, 0x34, 0x32, 0x80, 0x34, 0x2f, 0x90, 0x38, +0xa4, 0x21, 0x58, 0x34, 0x2d, 0x80, 0x34, 0x2a, 0xc8, 0x40, 0x19, 0x00, +0x91, 0x58, 0x90, 0x60, 0x82, 0x90, 0x20, 0x35, 0xe5, 0xa4, 0x2f, 0x18, +0x35, 0xe4, 0x90, 0xc0, 0x80, 0x90, 0x90, 0x90, 0x48, 0xc9, 0xe1, 0x87, +0x80, 0x85, 0x36, 0x1d, 0xc9, 0xe1, 0x86, 0xc0, 0x85, 0x36, 0x1a, 0x80, +0x36, 0x19, 0x10, 0x10, 0x81, 0x35, 0xf5, 0x90, 0xa8, 0x10, 0x10, 0x90, +0x28, 0x81, 0x36, 0x13, 0x90, 0x38, 0xa4, 0x30, 0x70, 0x36, 0x0f, 0xa4, +0x30, 0x60, 0x36, 0x0d, 0x90, 0x70, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x30, +0x88, 0x36, 0x12, 0x80, 0x36, 0x10, 0x90, 0x60, 0x90, 0x28, 0x24, 0x30, +0xc0, 0xa4, 0x30, 0xb0, 0x36, 0x17, 0x80, 0xa4, 0x30, 0xa0, 0x36, 0x15, +0x80, 0x90, 0xf8, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x80, 0x37, 0x31, +0x80, 0x37, 0x38, 0x80, 0xa4, 0x39, 0xb0, 0x37, 0x37, 0x90, 0x28, 0x81, +0x37, 0x35, 0x80, 0xa4, 0x39, 0x98, 0x37, 0x34, 0x83, 0x37, 0x32, 0x98, +0xe8, 0x01, 0xb0, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x2f, 0x08, 0x10, 0x10, +0x10, 0x10, 0x83, 0x33, 0x8f, 0x24, 0x2f, 0x00, 0x90, 0x28, 0x24, 0x2e, +0xf8, 0x24, 0x2e, 0xf0, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x2e, 0xe0, 0x10, +0x10, 0x10, 0x10, 0x83, 0x33, 0x8e, 0x24, 0x2e, 0xd8, 0x90, 0x28, 0x24, +0x2e, 0xd0, 0x24, 0x2e, 0xc8, 0xa8, 0x09, 0x00, 0x0e, 0x20, 0x96, 0x48, +0x95, 0xe8, 0x93, 0x38, 0x91, 0xa0, 0x90, 0xd0, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x1d, 0x20, 0x33, 0xa5, 0xa4, 0x1d, 0x10, 0x33, 0xa3, 0x90, 0x38, +0xa4, 0x1d, 0x00, 0x33, 0xa1, 0x80, 0x33, 0x9f, 0x90, 0x60, 0x90, 0x28, +0x24, 0x1c, 0xc0, 0xa4, 0x1c, 0xb0, 0x33, 0x97, 0x90, 0x38, 0xa4, 0x1c, +0xa0, 0x33, 0x95, 0xa4, 0x1c, 0xe8, 0x33, 0x9e, 0x90, 0xe0, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x1c, 0xd8, 0x33, 0x9c, 0xa4, 0x1c, 0xc8, 0x33, 0x9a, +0x90, 0x38, 0xa4, 0x2e, 0x80, 0x35, 0xd6, 0xa4, 0x2e, 0x20, 0x35, 0xca, +0x90, 0x70, 0x90, 0x38, 0xa4, 0x2b, 0x60, 0x35, 0x78, 0xa4, 0x2b, 0x30, +0x35, 0x72, 0x10, 0x10, 0xa4, 0x1c, 0x90, 0x33, 0x93, 0x99, 0x60, 0x02, +0x70, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1d, 0x50, 0x80, 0x33, +0xb1, 0x80, 0xa4, 0x1d, 0x58, 0x33, 0xaf, 0x90, 0x50, 0x90, 0x28, 0x24, +0x1d, 0x60, 0x80, 0x33, 0xb2, 0x90, 0x38, 0xa4, 0x1d, 0x68, 0x33, 0xb0, +0xa4, 0x1d, 0x30, 0x33, 0xa7, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, +0x2d, 0xb8, 0x35, 0xbf, 0xa4, 0x2d, 0x18, 0x35, 0xac, 0x90, 0x38, 0xa4, +0x2c, 0xb0, 0x35, 0x9d, 0xa4, 0x2c, 0x20, 0x35, 0x8c, 0x81, 0xa4, 0x1d, +0x40, 0x33, 0xa9, 0xe4, 0xa1, 0xca, 0xc0, 0x37, 0x2d, 0x18, 0x24, 0x1c, +0x88, 0xe4, 0xe1, 0xc9, 0x40, 0x37, 0x27, 0x92, 0x40, 0x91, 0x08, 0x10, +0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2e, 0x78, 0x35, 0xd5, +0xa4, 0x2e, 0x18, 0x35, 0xc9, 0x80, 0x90, 0x38, 0xa4, 0x2b, 0x58, 0x35, +0x77, 0xa4, 0x2b, 0x28, 0x35, 0x71, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x2d, 0xa8, 0x35, 0xbe, 0xa4, 0x2d, 0x10, 0x35, +0xaa, 0x90, 0x38, 0xa4, 0x2c, 0xa0, 0x35, 0x9c, 0xa4, 0x2c, 0x18, 0x35, +0x8a, 0xe4, 0xa1, 0xc7, 0xc0, 0x37, 0x21, 0x18, 0x24, 0x1c, 0x80, 0xe4, +0xe1, 0xc6, 0x40, 0x37, 0x1b, 0x92, 0x90, 0x92, 0x40, 0x91, 0x08, 0x10, +0x10, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2e, 0x70, 0x35, 0xd4, +0xa4, 0x2e, 0x10, 0x35, 0xc8, 0x80, 0x90, 0x38, 0xa4, 0x2b, 0x50, 0x35, +0x76, 0xa4, 0x2b, 0x20, 0x35, 0x70, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x2d, 0x98, 0x35, 0xbd, 0xa4, 0x2d, 0x08, 0x35, +0xa8, 0x90, 0x38, 0xa4, 0x2c, 0x90, 0x35, 0x9b, 0xa4, 0x2c, 0x10, 0x35, +0x88, 0xe4, 0xa1, 0xcb, 0x00, 0x37, 0x2f, 0x10, 0x10, 0xe4, 0xe1, 0xc9, +0x80, 0x37, 0x29, 0x92, 0x50, 0x99, 0x1c, 0x1d, 0x70, 0x10, 0x10, 0x90, +0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x2e, 0x68, 0x35, 0xd3, 0xa4, 0x2e, +0x08, 0x35, 0xc7, 0x80, 0x90, 0x38, 0xa4, 0x2b, 0x48, 0x35, 0x75, 0xa4, +0x2b, 0x18, 0x35, 0x6f, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90, +0x38, 0xa4, 0x2d, 0x88, 0x35, 0xbc, 0xa4, 0x2d, 0x00, 0x35, 0xa6, 0x90, +0x38, 0xa4, 0x2c, 0x80, 0x35, 0x9a, 0xa4, 0x2c, 0x08, 0x35, 0x86, 0xe4, +0xa1, 0xc8, 0x00, 0x37, 0x23, 0x10, 0x10, 0xe4, 0xe1, 0xc6, 0x80, 0x37, +0x1d, 0xc0, 0x40, 0x80, 0x10, 0x10, 0x81, 0x90, 0x90, 0x90, 0x48, 0xc9, +0xe1, 0x5f, 0x00, 0x85, 0x35, 0x80, 0xc9, 0xe1, 0x5f, 0x80, 0x85, 0x35, +0x7d, 0x80, 0x35, 0x7b, 0x80, 0xd8, 0x47, 0x80, 0x0d, 0xc0, 0xc0, 0x80, +0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x17, 0x80, +0x37, 0x15, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x13, 0x80, 0x37, 0x11, 0xc0, +0x80, 0x10, 0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x18, +0x80, 0x37, 0x16, 0xd5, 0x81, 0x80, 0x80, 0x37, 0x14, 0x80, 0x37, 0x12, +0xc0, 0x80, 0x83, 0xa4, 0x38, 0x78, 0x37, 0x10, 0xa0, 0x57, 0xc0, 0xa0, +0x41, 0xe0, 0xa8, 0x1e, 0xb0, 0x34, 0x88, 0xa0, 0x12, 0x38, 0xa0, 0x0b, +0x48, 0x96, 0x00, 0x9a, 0xf0, 0x05, 0xc0, 0x91, 0x70, 0x90, 0xb8, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x14, 0x80, 0x33, 0x8d, 0xa4, 0x14, 0x90, 0x33, +0x8c, 0x10, 0x10, 0xa4, 0x14, 0x88, 0x33, 0x8b, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x14, 0x50, 0x33, 0x72, 0xa4, 0x14, 0x60, 0x33, 0x71, 0x10, 0x10, +0xa4, 0x14, 0x58, 0x33, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, +0x14, 0x20, 0x33, 0x57, 0xa4, 0x14, 0x30, 0x33, 0x56, 0x10, 0x10, 0xa4, +0x14, 0x28, 0x33, 0x55, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xf0, 0x33, +0x3b, 0xa4, 0x14, 0x00, 0x33, 0x3a, 0x10, 0x10, 0xa4, 0x13, 0xf8, 0x33, +0x39, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x68, +0x33, 0x88, 0xa4, 0x14, 0x78, 0x33, 0x8a, 0x10, 0x10, 0xa4, 0x14, 0x70, +0x33, 0x89, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x38, 0x33, 0x6d, 0xa4, +0x14, 0x48, 0x33, 0x6f, 0x10, 0x10, 0xa4, 0x14, 0x40, 0x33, 0x6e, 0x90, +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x08, 0x33, 0x52, 0xa4, 0x14, +0x18, 0x33, 0x54, 0x10, 0x10, 0xa4, 0x14, 0x10, 0x33, 0x53, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x13, 0xd8, 0x33, 0x36, 0xa4, 0x13, 0xe8, 0x33, 0x38, +0x10, 0x10, 0xa4, 0x13, 0xe0, 0x33, 0x37, 0xe4, 0xe1, 0x55, 0x40, 0x35, +0x5f, 0x9a, 0xf0, 0x05, 0x00, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, +0x38, 0xa4, 0x13, 0xa0, 0x33, 0x85, 0xa4, 0x13, 0x98, 0x33, 0x87, 0x10, +0x10, 0xa4, 0x13, 0x90, 0x33, 0x86, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, +0x88, 0x33, 0x6a, 0xa4, 0x13, 0x80, 0x33, 0x6c, 0x10, 0x10, 0xa4, 0x13, +0x78, 0x33, 0x6b, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x70, +0x33, 0x4f, 0xa4, 0x13, 0x68, 0x33, 0x51, 0x10, 0x10, 0xa4, 0x13, 0x60, +0x33, 0x50, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x58, 0x33, 0x33, 0xa4, +0x13, 0x50, 0x33, 0x35, 0x10, 0x10, 0xa4, 0x13, 0x48, 0x33, 0x34, 0x91, +0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x82, 0x80, 0x33, +0x84, 0x10, 0x10, 0x80, 0x33, 0x83, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, +0x67, 0x80, 0x33, 0x69, 0x10, 0x10, 0x80, 0x33, 0x68, 0x90, 0x88, 0x90, +0x50, 0x90, 0x28, 0x80, 0x33, 0x4c, 0x80, 0x33, 0x4e, 0x10, 0x10, 0x80, +0x33, 0x4d, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x30, 0x80, 0x33, 0x32, +0x10, 0x10, 0x80, 0x33, 0x31, 0xe4, 0xe1, 0x42, 0xc0, 0x35, 0x1f, 0x95, +0x40, 0x9a, 0x90, 0x05, 0x00, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, +0x28, 0x80, 0x33, 0x7f, 0x80, 0x33, 0x81, 0x10, 0x10, 0x80, 0x33, 0x80, +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x64, 0x80, 0x33, 0x66, 0x10, 0x10, +0x80, 0x33, 0x65, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x30, +0x33, 0x49, 0xa4, 0x13, 0x40, 0x33, 0x4b, 0x10, 0x10, 0xa4, 0x13, 0x38, +0x33, 0x4a, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x00, 0x33, 0x2d, 0xa4, +0x13, 0x10, 0x33, 0x2f, 0x10, 0x10, 0xa4, 0x13, 0x08, 0x33, 0x2e, 0x91, +0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x7c, 0x80, 0x33, +0x7e, 0x10, 0x10, 0x80, 0x33, 0x7d, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, +0x61, 0x80, 0x33, 0x63, 0x10, 0x10, 0x80, 0x33, 0x62, 0x90, 0xb8, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x13, 0x18, 0x33, 0x46, 0xa4, 0x13, 0x28, 0x33, +0x48, 0x10, 0x10, 0xa4, 0x13, 0x20, 0x33, 0x47, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x12, 0xe8, 0x33, 0x2a, 0xa4, 0x12, 0xf8, 0x33, 0x2c, 0x10, 0x10, +0xa4, 0x12, 0xf0, 0x33, 0x2b, 0xe4, 0xe1, 0x54, 0xc0, 0x35, 0x5d, 0x98, +0xb8, 0x01, 0x68, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, +0x33, 0x27, 0x80, 0x33, 0x29, 0x10, 0x10, 0x80, 0x33, 0x28, 0x90, 0x60, +0x90, 0x30, 0x60, 0xa0, 0x97, 0x00, 0x60, 0xa0, 0x96, 0xc0, 0x90, 0x30, +0x60, 0xa0, 0x96, 0x80, 0x60, 0xa0, 0x96, 0x40, 0xe4, 0xe1, 0x41, 0xc0, +0x35, 0x1b, 0xa0, 0x08, 0x08, 0x94, 0xe0, 0x9a, 0x60, 0x04, 0xa0, 0x91, +0x40, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xc0, 0x33, 0x76, +0xa4, 0x13, 0xd0, 0x33, 0x7b, 0x10, 0x10, 0xa4, 0x13, 0xc8, 0x33, 0x7a, +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x5b, 0x80, 0x33, 0x60, 0x10, 0x10, +0x80, 0x33, 0x5f, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x40, +0x80, 0x33, 0x45, 0x10, 0x10, 0x80, 0x33, 0x44, 0x90, 0x50, 0x90, 0x28, +0x80, 0x33, 0x21, 0x80, 0x33, 0x26, 0x10, 0x10, 0x80, 0x33, 0x25, 0x91, +0x40, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xa8, 0x33, 0x73, +0xa4, 0x13, 0xb8, 0x33, 0x75, 0x10, 0x10, 0xa4, 0x13, 0xb0, 0x33, 0x74, +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x58, 0x80, 0x33, 0x5a, 0x10, 0x10, +0x80, 0x33, 0x59, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x3d, +0x80, 0x33, 0x3f, 0x10, 0x10, 0x80, 0x33, 0x3e, 0x90, 0x50, 0x90, 0x28, +0x80, 0x33, 0x1e, 0x80, 0x33, 0x20, 0x10, 0x10, 0x80, 0x33, 0x1f, 0xe4, +0xe1, 0x54, 0x40, 0x35, 0x5b, 0x9a, 0x60, 0x02, 0xe0, 0x91, 0x40, 0x90, +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x18, 0xe8, 0x33, 0x77, 0xa4, 0x18, +0xe0, 0x33, 0x79, 0x10, 0x10, 0xa4, 0x18, 0xd8, 0x33, 0x78, 0x90, 0x50, +0x90, 0x28, 0x80, 0x33, 0x5c, 0x80, 0x33, 0x5e, 0x10, 0x10, 0x80, 0x33, +0x5d, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x41, 0x80, 0x33, +0x43, 0x10, 0x10, 0x80, 0x33, 0x42, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, +0x22, 0x80, 0x33, 0x24, 0x10, 0x10, 0x80, 0x33, 0x23, 0x81, 0x90, 0x50, +0x90, 0x28, 0x24, 0x18, 0xc0, 0x24, 0x18, 0xd0, 0x10, 0x10, 0x24, 0x18, +0xc8, 0xe4, 0xe1, 0x40, 0xc0, 0x35, 0x17, 0x93, 0x90, 0x99, 0xb8, 0x03, +0x50, 0x90, 0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, 0x14, 0xb0, 0x32, +0xa8, 0x10, 0x10, 0xa4, 0x14, 0xa8, 0x32, 0xa7, 0x90, 0x28, 0x81, 0x32, +0xa4, 0x10, 0x10, 0x80, 0x32, 0xa3, 0x90, 0x60, 0x90, 0x28, 0x81, 0x32, +0xa0, 0x10, 0x10, 0x80, 0x32, 0x9f, 0x90, 0x28, 0x81, 0x32, 0x9c, 0x10, +0x10, 0x80, 0x32, 0x9b, 0x90, 0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, +0x14, 0x98, 0x32, 0xa5, 0x10, 0x10, 0xa4, 0x14, 0xa0, 0x32, 0xa6, 0x90, +0x28, 0x81, 0x32, 0xa1, 0x10, 0x10, 0x80, 0x32, 0xa2, 0x90, 0x60, 0x90, +0x28, 0x81, 0x32, 0x9d, 0x10, 0x10, 0x80, 0x32, 0x9e, 0x90, 0x28, 0x81, +0x32, 0x99, 0x10, 0x10, 0x80, 0x32, 0x9a, 0xe4, 0xe1, 0x53, 0xc0, 0x35, +0x59, 0x88, 0x00, 0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 0x32, +0x97, 0x10, 0x10, 0x80, 0x32, 0x98, 0xe4, 0xe1, 0x3f, 0xc0, 0x35, 0x13, +0xa0, 0x0e, 0x80, 0xa0, 0x09, 0x08, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, +0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x17, 0x80, +0x33, 0x16, 0x10, 0x10, 0x80, 0x33, 0x15, 0x90, 0x50, 0x90, 0x28, 0x80, +0x32, 0xfc, 0x80, 0x32, 0xfb, 0x10, 0x10, 0x80, 0x32, 0xfa, 0x90, 0x88, +0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe1, 0x80, 0x32, 0xe0, 0x10, 0x10, +0x80, 0x32, 0xdf, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xc6, 0x80, 0x32, +0xc5, 0x10, 0x10, 0x80, 0x32, 0xc4, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, +0x90, 0x28, 0x80, 0x33, 0x12, 0x80, 0x33, 0x14, 0x10, 0x10, 0x80, 0x33, +0x13, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf7, 0x80, 0x32, 0xf9, 0x10, +0x10, 0x80, 0x32, 0xf8, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, +0xdc, 0x80, 0x32, 0xde, 0x10, 0x10, 0x80, 0x32, 0xdd, 0x90, 0x50, 0x90, +0x28, 0x80, 0x32, 0xc1, 0x80, 0x32, 0xc3, 0x10, 0x10, 0x80, 0x32, 0xc2, +0xe4, 0xe1, 0x4c, 0xc0, 0x35, 0x47, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x0f, 0x80, 0x33, 0x11, +0x10, 0x10, 0x80, 0x33, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf4, +0x80, 0x32, 0xf6, 0x10, 0x10, 0x80, 0x32, 0xf5, 0x90, 0x88, 0x90, 0x50, +0x90, 0x28, 0x80, 0x32, 0xd9, 0x80, 0x32, 0xdb, 0x10, 0x10, 0x80, 0x32, +0xda, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xbe, 0x80, 0x32, 0xc0, 0x10, +0x10, 0x80, 0x32, 0xbf, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, +0x80, 0x33, 0x0c, 0x80, 0x33, 0x0e, 0x10, 0x10, 0x80, 0x33, 0x0d, 0x90, +0x50, 0x90, 0x28, 0x80, 0x32, 0xf1, 0x80, 0x32, 0xf3, 0x10, 0x10, 0x80, +0x32, 0xf2, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd6, 0x80, +0x32, 0xd8, 0x10, 0x10, 0x80, 0x32, 0xd7, 0x90, 0x50, 0x90, 0x28, 0x80, +0x32, 0xbb, 0x80, 0x32, 0xbd, 0x10, 0x10, 0x80, 0x32, 0xbc, 0xe4, 0xe1, +0x3c, 0x40, 0x34, 0xfb, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x09, 0x80, 0x33, 0x0b, +0x10, 0x10, 0x80, 0x33, 0x0a, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xee, +0x80, 0x32, 0xf0, 0x10, 0x10, 0x80, 0x32, 0xef, 0x90, 0x88, 0x90, 0x50, +0x90, 0x28, 0x80, 0x32, 0xd3, 0x80, 0x32, 0xd5, 0x10, 0x10, 0x80, 0x32, +0xd4, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xb8, 0x80, 0x32, 0xba, 0x10, +0x10, 0x80, 0x32, 0xb9, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, +0x80, 0x33, 0x06, 0x80, 0x33, 0x08, 0x10, 0x10, 0x80, 0x33, 0x07, 0x90, +0x50, 0x90, 0x28, 0x80, 0x32, 0xeb, 0x80, 0x32, 0xed, 0x10, 0x10, 0x80, +0x32, 0xec, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd0, 0x80, +0x32, 0xd2, 0x10, 0x10, 0x80, 0x32, 0xd1, 0x90, 0x50, 0x90, 0x28, 0x80, +0x32, 0xb5, 0x80, 0x32, 0xb7, 0x10, 0x10, 0x80, 0x32, 0xb6, 0xe4, 0xe1, +0x4b, 0xc0, 0x35, 0x43, 0x88, 0x00, 0xb0, 0x10, 0x10, 0x10, 0x10, 0x90, +0x50, 0x90, 0x28, 0x80, 0x32, 0xb2, 0x80, 0x32, 0xb4, 0x10, 0x10, 0x80, +0x32, 0xb3, 0xe4, 0xe1, 0x3b, 0xc0, 0x34, 0xf9, 0x96, 0xe8, 0x94, 0x80, +0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, +0x80, 0x33, 0x00, 0x80, 0x33, 0x05, 0x10, 0x10, 0x80, 0x33, 0x04, 0x90, +0x50, 0x90, 0x28, 0x80, 0x32, 0xe5, 0x80, 0x32, 0xea, 0x10, 0x10, 0x80, +0x32, 0xe9, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xca, 0x80, +0x32, 0xcf, 0x10, 0x10, 0x80, 0x32, 0xce, 0x90, 0x50, 0x90, 0x28, 0x80, +0x32, 0xac, 0x80, 0x32, 0xb1, 0x10, 0x10, 0x80, 0x32, 0xb0, 0x91, 0x10, +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xfd, 0x80, 0x32, 0xff, +0x10, 0x10, 0x80, 0x32, 0xfe, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe2, +0x80, 0x32, 0xe4, 0x10, 0x10, 0x80, 0x32, 0xe3, 0x90, 0x88, 0x90, 0x50, +0x90, 0x28, 0x80, 0x32, 0xc7, 0x80, 0x32, 0xc9, 0x10, 0x10, 0x80, 0x32, +0xc8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xa9, 0x80, 0x32, 0xab, 0x10, +0x10, 0x80, 0x32, 0xaa, 0xe4, 0xe1, 0x4a, 0xc0, 0x35, 0x3f, 0x88, 0x02, +0x28, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x01, +0x80, 0x33, 0x03, 0x10, 0x10, 0x80, 0x33, 0x02, 0x90, 0x50, 0x90, 0x28, +0x80, 0x32, 0xe6, 0x80, 0x32, 0xe8, 0x10, 0x10, 0x80, 0x32, 0xe7, 0x90, +0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xcb, 0x80, 0x32, 0xcd, 0x10, +0x10, 0x80, 0x32, 0xcc, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xad, 0x80, +0x32, 0xaf, 0x10, 0x10, 0x80, 0x32, 0xae, 0xe4, 0xe1, 0x3b, 0x40, 0x34, +0xf7, 0x90, 0x40, 0xe5, 0x21, 0x49, 0xc0, 0x35, 0x3b, 0xe5, 0x21, 0x3a, +0xc0, 0x34, 0xf5, 0x9e, 0xb4, 0x20, 0xa0, 0x93, 0x70, 0x91, 0xd8, 0xd5, +0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x38, 0x08, 0x84, +0x37, 0x0b, 0xa4, 0x35, 0xe8, 0x36, 0xd5, 0x90, 0x28, 0x24, 0x35, 0x28, +0xa4, 0x33, 0xa8, 0x36, 0x8d, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, +0x37, 0xe8, 0x84, 0x37, 0x09, 0xa4, 0x35, 0xd8, 0x36, 0xd3, 0x90, 0x28, +0x24, 0x35, 0x18, 0xa4, 0x33, 0x98, 0x36, 0x8b, 0xd5, 0x06, 0x80, 0xd0, +0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xf5, 0xa4, 0x35, 0xb8, 0x36, 0xcf, +0x90, 0x28, 0x24, 0x34, 0xf8, 0xa4, 0x33, 0x78, 0x36, 0x87, 0xd0, 0xc3, +0x40, 0x90, 0x28, 0x80, 0x36, 0xf1, 0xa4, 0x35, 0xa8, 0x36, 0xcd, 0x90, +0x28, 0x24, 0x34, 0xe8, 0xa4, 0x33, 0x68, 0x36, 0x85, 0x91, 0x98, 0xd5, +0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xe9, 0xa4, 0x35, +0x88, 0x36, 0xc9, 0x90, 0x28, 0x24, 0x34, 0xc8, 0xa4, 0x33, 0x48, 0x36, +0x81, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xe5, 0xa4, 0x35, 0x78, +0x36, 0xc7, 0x90, 0x28, 0x24, 0x34, 0xb8, 0xa4, 0x33, 0x38, 0x36, 0x7f, +0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xdd, 0xa4, +0x35, 0x58, 0x36, 0xc3, 0x90, 0x28, 0x24, 0x34, 0x98, 0xa4, 0x33, 0x18, +0x36, 0x7b, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xd9, 0xa4, 0x35, +0x48, 0x36, 0xc1, 0x90, 0x28, 0x24, 0x34, 0x88, 0xa4, 0x33, 0x08, 0x36, +0x79, 0x93, 0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, +0x48, 0x80, 0x8c, 0x38, 0x28, 0x84, 0x37, 0x0d, 0xa4, 0x35, 0xf8, 0x36, +0xd7, 0x90, 0x28, 0x24, 0x35, 0x38, 0xa4, 0x33, 0xb8, 0x36, 0x8f, 0xd0, +0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x37, 0xf8, 0x84, 0x37, 0x0a, 0xa4, +0x35, 0xe0, 0x36, 0xd4, 0x90, 0x28, 0x24, 0x35, 0x20, 0xa4, 0x33, 0xa0, +0x36, 0x8c, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, +0xf9, 0xa4, 0x35, 0xc8, 0x36, 0xd1, 0x90, 0x28, 0x24, 0x35, 0x08, 0xa4, +0x33, 0x88, 0x36, 0x89, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x36, 0xf3, +0xa4, 0x35, 0xb0, 0x36, 0xce, 0x90, 0x28, 0x24, 0x34, 0xf0, 0xa4, 0x33, +0x70, 0x36, 0x86, 0x91, 0x98, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, +0x28, 0x80, 0x36, 0xed, 0xa4, 0x35, 0x98, 0x36, 0xcb, 0x90, 0x28, 0x24, +0x34, 0xd8, 0xa4, 0x33, 0x58, 0x36, 0x83, 0xd0, 0xc3, 0x40, 0x90, 0x28, +0x80, 0x36, 0xe7, 0xa4, 0x35, 0x80, 0x36, 0xc8, 0x90, 0x28, 0x24, 0x34, +0xc0, 0xa4, 0x33, 0x40, 0x36, 0x80, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, +0x90, 0x28, 0x80, 0x36, 0xe1, 0xa4, 0x35, 0x68, 0x36, 0xc5, 0x90, 0x28, +0x24, 0x34, 0xa8, 0xa4, 0x33, 0x28, 0x36, 0x7d, 0xd0, 0xc3, 0x40, 0x90, +0x28, 0x80, 0x36, 0xdb, 0xa4, 0x35, 0x50, 0x36, 0xc2, 0x90, 0x28, 0x24, +0x34, 0x90, 0xa4, 0x33, 0x10, 0x36, 0x7a, 0x99, 0x08, 0x01, 0xf0, 0x81, +0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x20, 0x48, 0x34, 0x01, 0xa4, 0x1f, +0xc8, 0x33, 0xf1, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, 0xd8, 0x34, 0x03, 0xa4, +0x1f, 0x58, 0x33, 0xf3, 0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x1f, +0xf8, 0x34, 0x07, 0xa4, 0x1f, 0x78, 0x33, 0xf7, 0xd4, 0xc2, 0x00, 0xa4, +0x1f, 0xe8, 0x34, 0x05, 0xa4, 0x1f, 0x68, 0x33, 0xf5, 0xa8, 0x0b, 0x18, +0x13, 0xa8, 0x96, 0x80, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0xb8, 0x32, 0x58, 0x24, 0x12, 0xb0, +0x90, 0x38, 0xa4, 0x11, 0xe0, 0x32, 0x3d, 0x24, 0x11, 0xd8, 0x90, 0x60, +0x90, 0x38, 0xa4, 0x11, 0x08, 0x32, 0x22, 0x24, 0x11, 0x00, 0x90, 0x38, +0xa4, 0x10, 0x30, 0x32, 0x07, 0x24, 0x10, 0x28, 0x90, 0xc0, 0x90, 0x60, +0x90, 0x38, 0xa4, 0x12, 0xa8, 0x32, 0x53, 0x24, 0x12, 0xa0, 0x90, 0x38, +0xa4, 0x11, 0xd0, 0x32, 0x38, 0x24, 0x11, 0xc8, 0x90, 0x60, 0x90, 0x38, +0xa4, 0x10, 0xf8, 0x32, 0x1d, 0x24, 0x10, 0xf0, 0x90, 0x38, 0xa4, 0x10, +0x20, 0x32, 0x02, 0x24, 0x10, 0x18, 0xe4, 0xe1, 0x96, 0xc0, 0x36, 0x5d, +0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, +0x90, 0x32, 0x50, 0x24, 0x12, 0x88, 0x90, 0x38, 0xa4, 0x11, 0xb8, 0x32, +0x35, 0x24, 0x11, 0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xe0, 0x32, +0x1a, 0x24, 0x10, 0xd8, 0x90, 0x38, 0xa4, 0x10, 0x08, 0x31, 0xff, 0x24, +0x10, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x78, 0x32, +0x4d, 0x24, 0x12, 0x70, 0x90, 0x38, 0xa4, 0x11, 0xa0, 0x32, 0x32, 0x24, +0x11, 0x98, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xc8, 0x32, 0x17, 0x24, +0x10, 0xc0, 0x90, 0x38, 0xa4, 0x0f, 0xf0, 0x31, 0xfc, 0x24, 0x0f, 0xe8, +0xe4, 0xe1, 0x95, 0x40, 0x36, 0x57, 0x93, 0x78, 0x99, 0x90, 0x03, 0x00, +0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x60, 0x32, 0x4a, 0x24, +0x12, 0x58, 0x90, 0x38, 0xa4, 0x11, 0x88, 0x32, 0x2f, 0x24, 0x11, 0x80, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xb0, 0x32, 0x14, 0x24, 0x10, 0xa8, +0x90, 0x38, 0xa4, 0x0f, 0xd8, 0x31, 0xf9, 0x24, 0x0f, 0xd0, 0x90, 0xc0, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x48, 0x32, 0x47, 0x24, 0x12, 0x40, +0x90, 0x38, 0xa4, 0x11, 0x70, 0x32, 0x2c, 0x24, 0x11, 0x68, 0x90, 0x60, +0x90, 0x38, 0xa4, 0x10, 0x98, 0x32, 0x11, 0x24, 0x10, 0x90, 0x90, 0x38, +0xa4, 0x0f, 0xc0, 0x31, 0xf6, 0x24, 0x0f, 0xb8, 0xec, 0xa1, 0x03, 0xc0, +0x02, 0x00, 0x34, 0x11, 0xa4, 0x32, 0x78, 0x36, 0x51, 0x88, 0x00, 0x88, +0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x0f, 0xa8, 0x31, 0xf3, 0x24, +0x0f, 0xa0, 0xe9, 0x61, 0x03, 0x00, 0x02, 0x00, 0x34, 0x0d, 0xe3, 0x61, +0x92, 0x40, 0x36, 0x4b, 0x95, 0x08, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, +0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x30, 0x32, 0x41, 0x24, +0x12, 0x28, 0x90, 0x38, 0xa4, 0x11, 0x58, 0x32, 0x26, 0x24, 0x11, 0x50, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x80, 0x32, 0x0b, 0x24, 0x10, 0x78, +0x90, 0x38, 0xa4, 0x0f, 0x90, 0x31, 0xed, 0x24, 0x0f, 0x88, 0x90, 0xc0, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x00, 0x32, 0x3e, 0x24, 0x11, 0xf8, +0x90, 0x38, 0xa4, 0x11, 0x28, 0x32, 0x23, 0x24, 0x11, 0x20, 0x90, 0x60, +0x90, 0x38, 0xa4, 0x10, 0x50, 0x32, 0x08, 0x24, 0x10, 0x48, 0x90, 0x38, +0xa4, 0x0f, 0x60, 0x31, 0xea, 0x24, 0x0f, 0x58, 0xe4, 0xe1, 0x97, 0x00, +0x36, 0x5f, 0x88, 0x01, 0x88, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, +0x12, 0x20, 0x32, 0x42, 0x24, 0x12, 0x18, 0x90, 0x38, 0xa4, 0x11, 0x48, +0x32, 0x27, 0x24, 0x11, 0x40, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x70, +0x32, 0x0c, 0x24, 0x10, 0x68, 0x90, 0x38, 0xa4, 0x0f, 0x80, 0x31, 0xee, +0x24, 0x0f, 0x78, 0xe4, 0xe1, 0x95, 0x80, 0x36, 0x59, 0x92, 0xd0, 0x99, +0x50, 0x02, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe9, +0x24, 0x0f, 0x40, 0x90, 0x28, 0x80, 0x31, 0xe5, 0x24, 0x0f, 0x20, 0x90, +0x50, 0x90, 0x28, 0x80, 0x31, 0xe1, 0x24, 0x0f, 0x00, 0x90, 0x28, 0x80, +0x31, 0xdd, 0x24, 0x0e, 0xe0, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, +0x31, 0xe6, 0x24, 0x0f, 0x38, 0x90, 0x28, 0x80, 0x31, 0xe2, 0x24, 0x0f, +0x18, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xde, 0x24, 0x0e, 0xf8, 0x90, +0x28, 0x80, 0x31, 0xda, 0x24, 0x0e, 0xd8, 0xec, 0xe1, 0x94, 0x21, 0x04, +0xc0, 0x36, 0x53, 0x88, 0x00, 0x78, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, +0x80, 0x31, 0xd8, 0x24, 0x0e, 0xc8, 0xec, 0xe1, 0x92, 0xa1, 0x02, 0xc0, +0x36, 0x4d, 0xe5, 0xa1, 0x3a, 0x40, 0x34, 0xe7, 0xa0, 0x2a, 0x10, 0xa8, +0x16, 0x60, 0x29, 0xd8, 0xa0, 0x0c, 0x48, 0xa0, 0x0a, 0xc8, 0x95, 0x60, +0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, +0xa1, 0x80, 0x31, 0xa0, 0x10, 0x10, 0x80, 0x31, 0x9f, 0x90, 0x70, 0x90, +0x38, 0xa4, 0x08, 0x98, 0x31, 0xb3, 0xa4, 0x08, 0x90, 0x31, 0xb2, 0x10, +0x10, 0xa4, 0x08, 0x88, 0x31, 0xb1, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x09, 0xb8, 0x31, 0xd7, 0xa4, 0x09, 0xb0, 0x31, 0xd6, 0x10, 0x10, +0xa4, 0x09, 0xa8, 0x31, 0xd5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x28, +0x31, 0xc5, 0xa4, 0x09, 0x20, 0x31, 0xc4, 0x10, 0x10, 0xa4, 0x09, 0x18, +0x31, 0xc3, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, +0x9c, 0x80, 0x31, 0x9e, 0x10, 0x10, 0x80, 0x31, 0x9d, 0x90, 0x70, 0x90, +0x38, 0xa4, 0x08, 0x70, 0x31, 0xae, 0xa4, 0x08, 0x80, 0x31, 0xb0, 0x10, +0x10, 0xa4, 0x08, 0x78, 0x31, 0xaf, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x09, 0x90, 0x31, 0xd2, 0xa4, 0x09, 0xa0, 0x31, 0xd4, 0x10, 0x10, +0xa4, 0x09, 0x98, 0x31, 0xd3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x00, +0x31, 0xc0, 0xa4, 0x09, 0x10, 0x31, 0xc2, 0x10, 0x10, 0xa4, 0x09, 0x08, +0x31, 0xc1, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, +0x80, 0x31, 0x99, 0x80, 0x31, 0x9b, 0x10, 0x10, 0x80, 0x31, 0x9a, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x08, 0x58, 0x31, 0xab, 0xa4, 0x08, 0x68, 0x31, +0xad, 0x10, 0x10, 0xa4, 0x08, 0x60, 0x31, 0xac, 0x90, 0xb8, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x09, 0x78, 0x31, 0xcf, 0xa4, 0x09, 0x88, 0x31, 0xd1, +0x10, 0x10, 0xa4, 0x09, 0x80, 0x31, 0xd0, 0x90, 0x70, 0x90, 0x38, 0xa4, +0x08, 0xe8, 0x31, 0xbd, 0xa4, 0x08, 0xf8, 0x31, 0xbf, 0x10, 0x10, 0xa4, +0x08, 0xf0, 0x31, 0xbe, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, +0x80, 0x31, 0x96, 0x80, 0x31, 0x98, 0x10, 0x10, 0x80, 0x31, 0x97, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x08, 0x40, 0x31, 0xa8, 0xa4, 0x08, 0x50, 0x31, +0xaa, 0x10, 0x10, 0xa4, 0x08, 0x48, 0x31, 0xa9, 0x90, 0xb8, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x09, 0x60, 0x31, 0xcc, 0xa4, 0x09, 0x70, 0x31, 0xce, +0x10, 0x10, 0xa4, 0x09, 0x68, 0x31, 0xcd, 0x90, 0x70, 0x90, 0x38, 0xa4, +0x08, 0xd0, 0x31, 0xba, 0xa4, 0x08, 0xe0, 0x31, 0xbc, 0x10, 0x10, 0xa4, +0x08, 0xd8, 0x31, 0xbb, 0x10, 0x10, 0x90, 0xa8, 0x10, 0x10, 0x10, 0x10, +0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x8d, 0x80, 0x31, 0x8f, 0x10, 0x10, +0x80, 0x31, 0x8e, 0x90, 0x60, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0xc0, 0x60, +0xa0, 0x2a, 0x80, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0x40, 0x60, 0xa0, 0x2a, +0x00, 0x97, 0xf0, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, +0x50, 0x90, 0x28, 0x80, 0x31, 0x93, 0x80, 0x31, 0x95, 0x10, 0x10, 0x80, +0x31, 0x94, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x28, 0x31, 0xa5, 0xa4, +0x08, 0x38, 0x31, 0xa7, 0x10, 0x10, 0xa4, 0x08, 0x30, 0x31, 0xa6, 0x90, +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x48, 0x31, 0xc9, 0xa4, 0x09, +0x58, 0x31, 0xcb, 0x10, 0x10, 0xa4, 0x09, 0x50, 0x31, 0xca, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x08, 0xb8, 0x31, 0xb7, 0xa4, 0x08, 0xc8, 0x31, 0xb9, +0x10, 0x10, 0xa4, 0x08, 0xc0, 0x31, 0xb8, 0x91, 0x40, 0x90, 0x88, 0x90, +0x50, 0x90, 0x28, 0x80, 0x31, 0x90, 0x80, 0x31, 0x92, 0x10, 0x10, 0x80, +0x31, 0x91, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x10, 0x31, 0xa2, 0xa4, +0x08, 0x20, 0x31, 0xa4, 0x10, 0x10, 0xa4, 0x08, 0x18, 0x31, 0xa3, 0x90, +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x30, 0x31, 0xc6, 0xa4, 0x09, +0x40, 0x31, 0xc8, 0x10, 0x10, 0xa4, 0x09, 0x38, 0x31, 0xc7, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x08, 0xa0, 0x31, 0xb4, 0xa4, 0x08, 0xb0, 0x31, 0xb6, +0x10, 0x10, 0xa4, 0x08, 0xa8, 0x31, 0xb5, 0x10, 0x10, 0x91, 0x40, 0x90, +0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xcb, 0x80, 0x30, 0xca, 0x90, +0x28, 0x80, 0x30, 0xc9, 0x80, 0x30, 0xc8, 0x90, 0x50, 0x90, 0x28, 0x80, +0x30, 0xc4, 0x80, 0x30, 0xc7, 0x90, 0x28, 0x80, 0x30, 0xc6, 0x80, 0x30, +0xc5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbc, 0x80, 0x30, +0xc3, 0x90, 0x28, 0x80, 0x30, 0xc2, 0x80, 0x30, 0xc1, 0x90, 0x50, 0x90, +0x28, 0x80, 0x30, 0xbd, 0x80, 0x30, 0xc0, 0x90, 0x28, 0x80, 0x30, 0xbf, +0x80, 0x30, 0xbe, 0x91, 0x88, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, +0x81, 0x31, 0x3b, 0x10, 0x10, 0x80, 0x31, 0x3a, 0x90, 0x28, 0x81, 0x31, +0x3d, 0x10, 0x10, 0x80, 0x31, 0x3c, 0x90, 0x60, 0x90, 0x28, 0x81, 0x31, +0x41, 0x10, 0x10, 0x80, 0x31, 0x40, 0x90, 0x28, 0x81, 0x31, 0x3f, 0x10, +0x10, 0x80, 0x31, 0x3e, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, +0x31, 0x38, 0x10, 0x10, 0x80, 0x31, 0x39, 0xa0, 0x0b, 0x90, 0xa0, 0x0a, +0xc8, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, +0x28, 0x80, 0x31, 0x56, 0x80, 0x31, 0x55, 0x10, 0x10, 0x80, 0x31, 0x54, +0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xe8, 0x31, 0x68, 0xa4, 0x06, 0xe0, +0x31, 0x67, 0x10, 0x10, 0xa4, 0x06, 0xd8, 0x31, 0x66, 0x90, 0xb8, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x08, 0x08, 0x31, 0x8c, 0xa4, 0x08, 0x00, 0x31, +0x8b, 0x10, 0x10, 0xa4, 0x07, 0xf8, 0x31, 0x8a, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x07, 0x78, 0x31, 0x7a, 0xa4, 0x07, 0x70, 0x31, 0x79, 0x10, 0x10, +0xa4, 0x07, 0x68, 0x31, 0x78, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, +0x28, 0x80, 0x31, 0x51, 0x80, 0x31, 0x53, 0x10, 0x10, 0x80, 0x31, 0x52, +0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xc0, 0x31, 0x63, 0xa4, 0x06, 0xd0, +0x31, 0x65, 0x10, 0x10, 0xa4, 0x06, 0xc8, 0x31, 0x64, 0x90, 0xb8, 0x90, +0x70, 0x90, 0x38, 0xa4, 0x07, 0xe0, 0x31, 0x87, 0xa4, 0x07, 0xf0, 0x31, +0x89, 0x10, 0x10, 0xa4, 0x07, 0xe8, 0x31, 0x88, 0x90, 0x70, 0x90, 0x38, +0xa4, 0x07, 0x50, 0x31, 0x75, 0xa4, 0x07, 0x60, 0x31, 0x77, 0x10, 0x10, +0xa4, 0x07, 0x58, 0x31, 0x76, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, +0x50, 0x90, 0x28, 0x80, 0x31, 0x4e, 0x80, 0x31, 0x50, 0x10, 0x10, 0x80, +0x31, 0x4f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xa8, 0x31, 0x60, 0xa4, +0x06, 0xb8, 0x31, 0x62, 0x10, 0x10, 0xa4, 0x06, 0xb0, 0x31, 0x61, 0x90, +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xc8, 0x31, 0x84, 0xa4, 0x07, +0xd8, 0x31, 0x86, 0x10, 0x10, 0xa4, 0x07, 0xd0, 0x31, 0x85, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x07, 0x38, 0x31, 0x72, 0xa4, 0x07, 0x48, 0x31, 0x74, +0x10, 0x10, 0xa4, 0x07, 0x40, 0x31, 0x73, 0x91, 0x40, 0x90, 0x88, 0x90, +0x50, 0x90, 0x28, 0x80, 0x31, 0x4b, 0x80, 0x31, 0x4d, 0x10, 0x10, 0x80, +0x31, 0x4c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x90, 0x31, 0x5d, 0xa4, +0x06, 0xa0, 0x31, 0x5f, 0x10, 0x10, 0xa4, 0x06, 0x98, 0x31, 0x5e, 0x90, +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0xb0, 0x31, 0x81, 0xa4, 0x07, +0xc0, 0x31, 0x83, 0x10, 0x10, 0xa4, 0x07, 0xb8, 0x31, 0x82, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x07, 0x20, 0x31, 0x6f, 0xa4, 0x07, 0x30, 0x31, 0x71, +0x10, 0x10, 0xa4, 0x07, 0x28, 0x31, 0x70, 0x10, 0x10, 0x80, 0x10, 0x10, +0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x42, 0x80, 0x31, 0x44, +0x10, 0x10, 0x80, 0x31, 0x43, 0x80, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x48, 0x80, 0x31, 0x4a, +0x10, 0x10, 0x80, 0x31, 0x49, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x78, +0x31, 0x5a, 0xa4, 0x06, 0x88, 0x31, 0x5c, 0x10, 0x10, 0xa4, 0x06, 0x80, +0x31, 0x5b, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x98, 0x31, +0x7e, 0xa4, 0x07, 0xa8, 0x31, 0x80, 0x10, 0x10, 0xa4, 0x07, 0xa0, 0x31, +0x7f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x08, 0x31, 0x6c, 0xa4, 0x07, +0x18, 0x31, 0x6e, 0x10, 0x10, 0xa4, 0x07, 0x10, 0x31, 0x6d, 0x91, 0x40, +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x45, 0x80, 0x31, 0x47, +0x10, 0x10, 0x80, 0x31, 0x46, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x60, +0x31, 0x57, 0xa4, 0x06, 0x70, 0x31, 0x59, 0x10, 0x10, 0xa4, 0x06, 0x68, +0x31, 0x58, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x80, 0x31, +0x7b, 0xa4, 0x07, 0x90, 0x31, 0x7d, 0x10, 0x10, 0xa4, 0x07, 0x88, 0x31, +0x7c, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xf0, 0x31, 0x69, 0xa4, 0x07, +0x00, 0x31, 0x6b, 0x10, 0x10, 0xa4, 0x06, 0xf8, 0x31, 0x6a, 0x10, 0x10, +0x91, 0x40, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbb, 0x80, +0x30, 0xba, 0x90, 0x28, 0x80, 0x30, 0xb9, 0x80, 0x30, 0xb8, 0x90, 0x50, +0x90, 0x28, 0x80, 0x30, 0xb4, 0x80, 0x30, 0xb7, 0x90, 0x28, 0x80, 0x30, +0xb6, 0x80, 0x30, 0xb5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, +0xac, 0x80, 0x30, 0xb3, 0x90, 0x28, 0x80, 0x30, 0xb2, 0x80, 0x30, 0xb1, +0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xad, 0x80, 0x30, 0xb0, 0x90, 0x28, +0x80, 0x30, 0xaf, 0x80, 0x30, 0xae, 0xc3, 0xc0, 0x30, 0x42, 0x9c, 0xe8, +0x07, 0x60, 0x91, 0x90, 0x90, 0xf0, 0x10, 0x10, 0x80, 0x88, 0x00, 0x80, +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xcf, 0x80, 0x33, 0xd0, 0x81, 0x33, +0xc6, 0xd0, 0x41, 0x80, 0x24, 0x1f, 0x48, 0x24, 0x1f, 0x50, 0x10, 0x10, +0x80, 0x90, 0x58, 0x80, 0x90, 0x28, 0x24, 0x1e, 0x48, 0x24, 0x1e, 0x50, +0x81, 0x24, 0x1e, 0x08, 0x92, 0x68, 0x91, 0x00, 0x80, 0x90, 0x90, 0x90, +0x30, 0x80, 0x24, 0x1e, 0xb8, 0x90, 0x38, 0xa4, 0x1e, 0xb0, 0x33, 0xdd, +0x80, 0x33, 0xdc, 0x80, 0x90, 0x28, 0x80, 0x33, 0xe6, 0xa4, 0x1e, 0x98, +0x33, 0xe5, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x80, 0x33, 0xe0, +0xa4, 0x1e, 0xa8, 0x33, 0xdf, 0x90, 0x28, 0x80, 0x33, 0xdb, 0xa4, 0x1e, +0xa0, 0x33, 0xda, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xe4, 0x80, 0x33, +0xe3, 0x90, 0x28, 0x24, 0x1f, 0x40, 0x24, 0x1f, 0x38, 0x90, 0x58, 0x80, +0x10, 0x10, 0x80, 0x10, 0x10, 0x80, 0x33, 0xd2, 0x80, 0x90, 0x40, 0x10, +0x10, 0x80, 0x24, 0x1e, 0x18, 0x80, 0x10, 0x10, 0x80, 0x33, 0xd1, 0x91, +0x58, 0x91, 0x00, 0x90, 0x80, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, +0xcd, 0x80, 0x33, 0xce, 0x81, 0x33, 0xc5, 0x81, 0x90, 0x50, 0x90, 0x28, +0x80, 0x33, 0xcb, 0x80, 0x33, 0xcc, 0x81, 0x33, 0xc4, 0x83, 0x90, 0x28, +0x24, 0x1e, 0x38, 0x24, 0x1e, 0x40, 0x90, 0xe8, 0x81, 0x90, 0x88, 0x90, +0x38, 0x10, 0x10, 0x80, 0x33, 0xde, 0x90, 0x28, 0x80, 0x33, 0xd9, 0x80, +0x33, 0xd8, 0x80, 0x90, 0x28, 0x80, 0x33, 0xe2, 0x80, 0x33, 0xe1, 0x82, +0x10, 0x10, 0x80, 0x24, 0x1e, 0x10, 0x97, 0x10, 0x9e, 0x10, 0x06, 0x98, +0x93, 0x00, 0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, +0x80, 0x30, 0x71, 0x24, 0x03, 0x78, 0x90, 0x38, 0xa4, 0x04, 0x10, 0x30, +0x83, 0x24, 0x04, 0x08, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x30, 0x30, +0xa7, 0x24, 0x05, 0x28, 0x90, 0x38, 0xa4, 0x04, 0xa0, 0x30, 0x95, 0x24, +0x04, 0x98, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x70, 0x30, +0x6c, 0x24, 0x03, 0x68, 0x90, 0x38, 0xa4, 0x04, 0x00, 0x30, 0x7e, 0x24, +0x03, 0xf8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x20, 0x30, 0xa2, 0x24, +0x05, 0x18, 0x90, 0x38, 0xa4, 0x04, 0x90, 0x30, 0x90, 0x24, 0x04, 0x88, +0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x58, 0x30, +0x69, 0x24, 0x03, 0x50, 0x90, 0x38, 0xa4, 0x03, 0xe8, 0x30, 0x7b, 0x24, +0x03, 0xe0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x08, 0x30, 0x9f, 0x24, +0x05, 0x00, 0x90, 0x38, 0xa4, 0x04, 0x78, 0x30, 0x8d, 0x24, 0x04, 0x70, +0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x40, 0x30, 0x66, 0x24, +0x03, 0x38, 0x90, 0x38, 0xa4, 0x03, 0xd0, 0x30, 0x78, 0x24, 0x03, 0xc8, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xf0, 0x30, 0x9c, 0x24, 0x04, 0xe8, +0x90, 0x38, 0xa4, 0x04, 0x60, 0x30, 0x8a, 0x24, 0x04, 0x58, 0x10, 0x10, +0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x02, 0xf8, 0x30, 0x5d, +0x24, 0x02, 0xf0, 0xd7, 0x42, 0x00, 0xa4, 0x32, 0x28, 0x36, 0x47, 0xa4, +0x32, 0x08, 0x36, 0x43, 0x9c, 0xe0, 0x06, 0x90, 0x93, 0x00, 0x91, 0x80, +0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x28, 0x30, 0x63, 0x24, +0x03, 0x20, 0x90, 0x38, 0xa4, 0x03, 0xb8, 0x30, 0x75, 0x24, 0x03, 0xb0, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x04, 0xd8, 0x30, 0x99, 0x24, 0x04, 0xd0, +0x90, 0x38, 0xa4, 0x04, 0x48, 0x30, 0x87, 0x24, 0x04, 0x40, 0x90, 0xc0, +0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x10, 0x30, 0x60, 0x24, 0x03, 0x08, +0x90, 0x38, 0xa4, 0x03, 0xa0, 0x30, 0x72, 0x24, 0x03, 0x98, 0x90, 0x60, +0x90, 0x38, 0xa4, 0x04, 0xc0, 0x30, 0x96, 0x24, 0x04, 0xb8, 0x90, 0x38, +0xa4, 0x04, 0x30, 0x30, 0x84, 0x24, 0x04, 0x28, 0x10, 0x10, 0x90, 0xe0, +0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x88, 0x30, 0x52, 0xa4, 0x02, 0x78, +0x30, 0x50, 0x90, 0x38, 0xa4, 0x02, 0x70, 0x30, 0x4b, 0xa4, 0x02, 0x60, +0x30, 0x4d, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x50, 0x30, 0x43, 0xa4, +0x02, 0x40, 0x30, 0x49, 0x90, 0x38, 0xa4, 0x02, 0x38, 0x30, 0x44, 0xa4, +0x02, 0x28, 0x30, 0x46, 0x91, 0x48, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, +0x28, 0x80, 0x30, 0x56, 0x24, 0x02, 0xa8, 0x90, 0x28, 0x80, 0x30, 0x58, +0x24, 0x02, 0xb8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0x5c, 0x24, 0x02, +0xd8, 0x90, 0x28, 0x80, 0x30, 0x5a, 0x24, 0x02, 0xc8, 0x80, 0x10, 0x10, +0x10, 0x10, 0x90, 0x28, 0x80, 0x30, 0x53, 0x24, 0x02, 0xa0, 0xd7, 0x42, +0x00, 0xa4, 0x32, 0x30, 0x36, 0x48, 0xa4, 0x32, 0x10, 0x36, 0x44, 0xa0, +0x14, 0x90, 0xa0, 0x10, 0xb8, 0xa0, 0x0c, 0x88, 0x9e, 0x88, 0x09, 0xd0, +0x94, 0xf0, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, +0x31, 0xc0, 0x85, 0x34, 0xe3, 0xcb, 0x61, 0x2a, 0x80, 0x85, 0x34, 0xb9, +0x9a, 0x00, 0x03, 0xf8, 0x91, 0x98, 0x80, 0x91, 0x10, 0x90, 0xa0, 0x90, +0x68, 0x90, 0x20, 0x38, 0xad, 0xc9, 0xe2, 0x2a, 0xc0, 0x85, 0x34, 0xe1, +0xa4, 0x45, 0x48, 0x38, 0xaa, 0x90, 0x38, 0xa4, 0x45, 0x10, 0x38, 0xa3, +0xa4, 0x45, 0x00, 0x38, 0xa1, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, 0xc8, +0x38, 0x9a, 0x10, 0x10, 0x80, 0x38, 0x96, 0x81, 0x10, 0x10, 0x80, 0xa4, +0x44, 0x98, 0x38, 0x94, 0x91, 0xb0, 0x91, 0x60, 0x90, 0xe0, 0x90, 0x70, +0x90, 0x38, 0xa4, 0x45, 0x38, 0x38, 0xa8, 0xa4, 0x45, 0x28, 0x38, 0xa6, +0x90, 0x38, 0xa4, 0x44, 0xf0, 0x38, 0x9f, 0xa4, 0x44, 0xe0, 0x38, 0x9d, +0x90, 0x48, 0x10, 0x10, 0xa4, 0x44, 0xb8, 0x38, 0x98, 0x10, 0x10, 0x80, +0x38, 0x95, 0x90, 0x28, 0x80, 0x38, 0x8e, 0x80, 0x38, 0x8d, 0x81, 0x10, +0x10, 0x80, 0xa4, 0x44, 0x88, 0x38, 0x92, 0xcb, 0x61, 0x2a, 0x40, 0x85, +0x34, 0xb8, 0x90, 0xd8, 0x88, 0x00, 0x90, 0x84, 0x90, 0x38, 0xc1, 0xc0, +0x85, 0x38, 0xb1, 0xc9, 0xe1, 0x31, 0x80, 0x85, 0x34, 0xdf, 0xcb, 0x61, +0x2a, 0x00, 0x85, 0x34, 0xb7, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, +0xe1, 0x31, 0x40, 0x85, 0x34, 0xdd, 0xcb, 0x61, 0x29, 0xc0, 0x85, 0x34, +0xb6, 0x91, 0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, +0xe1, 0x30, 0xc0, 0x85, 0x34, 0xd9, 0xcb, 0x61, 0x29, 0x40, 0x85, 0x34, +0xb4, 0x88, 0x01, 0x00, 0x90, 0xa0, 0x81, 0x90, 0x70, 0x80, 0x90, 0x20, +0x38, 0xa4, 0xc9, 0xe1, 0x30, 0x80, 0x85, 0x34, 0xd7, 0x81, 0x38, 0x9b, +0x81, 0x10, 0x10, 0x80, 0xa4, 0x44, 0x78, 0x38, 0x90, 0xcb, 0x61, 0x29, +0x00, 0x85, 0x34, 0xb3, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, +0xc9, 0xe1, 0x30, 0x40, 0x85, 0x34, 0xd5, 0xcb, 0x61, 0x28, 0xc0, 0x85, +0x34, 0xb2, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x30, 0x00, +0x85, 0x34, 0xd3, 0xcb, 0x61, 0x28, 0x80, 0x85, 0x34, 0xb1, 0x92, 0x38, +0x81, 0x91, 0x68, 0x91, 0x18, 0x90, 0x80, 0x90, 0x40, 0x80, 0xa4, 0x46, +0x00, 0x38, 0xc1, 0x80, 0xa4, 0x45, 0xf8, 0x38, 0xbe, 0x90, 0x28, 0x81, +0x38, 0xbd, 0x90, 0x38, 0xa4, 0x45, 0xd8, 0x38, 0xbc, 0xa4, 0x45, 0xc8, +0x38, 0xba, 0x90, 0x28, 0x80, 0x38, 0xb8, 0x80, 0x38, 0xb7, 0x80, 0x90, +0x40, 0x10, 0x10, 0x80, 0x24, 0x45, 0xb0, 0x10, 0x10, 0x90, 0x38, 0xa4, +0x45, 0xa0, 0x38, 0xb5, 0xa4, 0x45, 0x90, 0x38, 0xb3, 0x90, 0x50, 0x80, +0xc9, 0xa2, 0x2b, 0xc0, 0x85, 0x38, 0xb0, 0x80, 0x38, 0xae, 0x9a, 0xd0, +0x03, 0xe0, 0x91, 0x60, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, +0xc9, 0xe1, 0x2f, 0x80, 0x85, 0x34, 0xcf, 0xcb, 0x61, 0x28, 0x00, 0x85, +0x34, 0xaf, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x2f, 0x40, +0x85, 0x34, 0xcd, 0xcb, 0x61, 0x27, 0xc0, 0x85, 0x34, 0xae, 0x90, 0xb0, +0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x2f, 0x00, 0x85, 0x34, +0xcb, 0xcb, 0x61, 0x27, 0x80, 0x85, 0x34, 0xad, 0x88, 0x00, 0x68, 0x84, +0x10, 0x10, 0xc9, 0xe1, 0x2e, 0xc0, 0x85, 0x34, 0xc9, 0xcb, 0x61, 0x27, +0x40, 0x85, 0x34, 0xac, 0x90, 0x90, 0x90, 0x48, 0xcb, 0xa1, 0x25, 0x80, +0x85, 0x34, 0x9b, 0xcb, 0xa1, 0x25, 0x40, 0x85, 0x34, 0x9a, 0x90, 0x48, +0xcb, 0xa1, 0x25, 0x00, 0x85, 0x34, 0x99, 0xcb, 0xa1, 0x24, 0xc0, 0x85, +0x34, 0x98, 0xcb, 0xa2, 0x22, 0xc0, 0x80, 0x38, 0x8c, 0x92, 0x40, 0x91, +0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x24, 0x10, 0x84, 0x24, 0x24, 0x88, +0x8c, 0x24, 0x08, 0x84, 0x24, 0x24, 0x80, 0x90, 0x48, 0x8c, 0x24, 0x00, +0x84, 0x24, 0x24, 0x78, 0x8c, 0x23, 0xf8, 0x84, 0x24, 0x24, 0x70, 0x90, +0x90, 0x90, 0x48, 0x8c, 0x23, 0xe8, 0x84, 0x24, 0x24, 0x60, 0x8c, 0x23, +0xe0, 0x84, 0x24, 0x24, 0x58, 0x90, 0x48, 0x8c, 0x23, 0xd8, 0x84, 0x24, +0x24, 0x50, 0x8c, 0x23, 0xd0, 0x84, 0x24, 0x24, 0x48, 0x91, 0x20, 0x90, +0x90, 0x90, 0x48, 0x8c, 0x23, 0xc0, 0x84, 0x24, 0x24, 0x38, 0x8c, 0x23, +0xb8, 0x84, 0x24, 0x24, 0x30, 0x90, 0x48, 0x8c, 0x23, 0xb0, 0x84, 0x24, +0x24, 0x28, 0x8c, 0x23, 0xa8, 0x84, 0x24, 0x24, 0x20, 0x90, 0x38, 0xa4, +0x23, 0x90, 0x34, 0x73, 0xa4, 0x23, 0x80, 0x34, 0x71, 0xa0, 0x0f, 0x50, +0xa0, 0x09, 0x08, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, 0x98, +0x50, 0x00, 0x80, 0xe5, 0x22, 0x21, 0xc0, 0x38, 0x83, 0xe5, 0x22, 0x1d, +0xc0, 0x38, 0x81, 0xcb, 0x61, 0x17, 0xc0, 0x85, 0x34, 0x6e, 0x98, 0x50, +0x00, 0x80, 0xe5, 0x22, 0x19, 0xc0, 0x38, 0x63, 0xe5, 0x22, 0x15, 0xc0, +0x38, 0x61, 0xcb, 0x61, 0x17, 0x80, 0x85, 0x34, 0x6d, 0x90, 0x48, 0xcb, +0xa1, 0x17, 0x40, 0x85, 0x34, 0x6c, 0xcb, 0xa1, 0x17, 0x00, 0x85, 0x34, +0x6b, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x0e, +0xc0, 0x38, 0x47, 0xe5, 0x22, 0x08, 0xc0, 0x38, 0x2f, 0xcb, 0x61, 0x16, +0x80, 0x85, 0x34, 0x69, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x02, 0xc0, +0x38, 0x17, 0xe5, 0x21, 0xfc, 0xc0, 0x37, 0xff, 0xcb, 0x61, 0x16, 0x40, +0x85, 0x34, 0x68, 0x90, 0x48, 0xcb, 0xa1, 0x16, 0x00, 0x85, 0x34, 0x67, +0xcb, 0xa1, 0x15, 0xc0, 0x85, 0x34, 0x66, 0x92, 0x20, 0x91, 0x30, 0x90, +0xb8, 0xd5, 0x03, 0x00, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0xa0, 0x84, 0x30, +0x3e, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0x80, 0x84, 0x30, 0x3c, 0xd5, 0x02, +0x00, 0xc0, 0xc0, 0x81, 0x30, 0x28, 0xc0, 0xc0, 0x81, 0x30, 0x24, 0x90, +0x78, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x1c, 0xc0, 0xc0, 0x81, +0x30, 0x18, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x10, 0xc0, 0xc0, +0x81, 0x30, 0x0c, 0x91, 0x70, 0x90, 0xd8, 0xd5, 0x03, 0x80, 0xc8, 0xe1, +0xf8, 0xc0, 0x81, 0x8c, 0x01, 0xc0, 0x84, 0x30, 0x40, 0xc8, 0xe1, 0xf9, +0xc0, 0x81, 0x8c, 0x01, 0x90, 0x84, 0x30, 0x3d, 0xd5, 0x02, 0x80, 0xc8, +0xe1, 0xf8, 0x40, 0x81, 0x30, 0x2c, 0xc8, 0xe1, 0xf5, 0x40, 0x81, 0x30, +0x26, 0x90, 0x98, 0xd5, 0x02, 0x80, 0xc8, 0xe1, 0xef, 0x40, 0x81, 0x30, +0x20, 0xc8, 0xe1, 0xf0, 0x40, 0x81, 0x30, 0x1a, 0xd5, 0x02, 0x80, 0xc8, +0xe1, 0xee, 0xc0, 0x81, 0x30, 0x14, 0xc8, 0xe1, 0xeb, 0xc0, 0x81, 0x30, +0x0e, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, +0x80, 0xe5, 0x22, 0x1b, 0xc0, 0x38, 0x6b, 0xe5, 0x22, 0x1c, 0xc0, 0x38, +0x7d, 0xcb, 0x61, 0x15, 0x40, 0x85, 0x34, 0x64, 0x98, 0x50, 0x00, 0x80, +0xe5, 0x22, 0x13, 0xc0, 0x38, 0x4b, 0xe5, 0x22, 0x14, 0xc0, 0x38, 0x5d, +0xcb, 0x61, 0x15, 0x00, 0x85, 0x34, 0x63, 0x90, 0x48, 0xcb, 0xa1, 0x14, +0xc0, 0x85, 0x34, 0x62, 0xcb, 0xa1, 0x14, 0x80, 0x85, 0x34, 0x61, 0x91, +0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x0c, 0xc0, 0x38, +0x3f, 0xe5, 0x22, 0x06, 0xc0, 0x38, 0x27, 0xcb, 0x61, 0x12, 0xc0, 0x85, +0x34, 0x50, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x00, 0xc0, 0x38, 0x0f, +0xe5, 0x21, 0xfa, 0xc0, 0x37, 0xf7, 0xcb, 0x61, 0x12, 0x80, 0x85, 0x34, +0x4f, 0x90, 0x48, 0xcb, 0xa1, 0x12, 0x40, 0x85, 0x34, 0x4e, 0xcb, 0xa1, +0x12, 0x00, 0x85, 0x34, 0x4d, 0x91, 0x00, 0x90, 0x80, 0x90, 0x40, 0xe5, +0x20, 0x02, 0x40, 0x30, 0x0a, 0xe5, 0x20, 0x01, 0x80, 0x30, 0x07, 0x90, +0x40, 0xe5, 0x20, 0x00, 0xc0, 0x30, 0x04, 0xe5, 0x20, 0x00, 0x00, 0x30, +0x01, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x21, 0xf2, 0xc0, 0x37, 0xc5, 0xe5, +0x21, 0xf4, 0x00, 0x37, 0xdb, 0x90, 0x40, 0xe5, 0x21, 0xe9, 0x40, 0x37, +0x9f, 0xe5, 0x21, 0xea, 0x80, 0x37, 0xb5, 0x80, 0x99, 0x28, 0x02, 0xf0, +0x8c, 0x21, 0xf8, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22, 0x1e, 0xc0, 0x38, +0x79, 0xe5, 0x22, 0x1d, 0x40, 0x38, 0x7f, 0x90, 0x40, 0xe5, 0x22, 0x16, +0xc0, 0x38, 0x59, 0xe5, 0x22, 0x15, 0x40, 0x38, 0x5f, 0x91, 0x48, 0x90, +0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x0d, 0xc0, 0x38, 0x43, 0xe5, +0x22, 0x07, 0xc0, 0x38, 0x2b, 0xcb, 0x61, 0x10, 0x80, 0x85, 0x34, 0x46, +0x90, 0x40, 0xe5, 0x22, 0x01, 0xc0, 0x38, 0x13, 0xe5, 0x21, 0xfb, 0xc0, +0x37, 0xfb, 0x90, 0x48, 0xcb, 0xa1, 0x10, 0x00, 0x85, 0x34, 0x44, 0xcb, +0xa1, 0x10, 0x40, 0x85, 0x34, 0x45, 0x10, 0x10, 0x90, 0x80, 0x90, 0x40, +0xe5, 0x21, 0xf6, 0x40, 0x37, 0xd7, 0xe5, 0x21, 0xf4, 0xc0, 0x37, 0xdf, +0x90, 0x40, 0xe5, 0x21, 0xec, 0xc0, 0x37, 0xb1, 0xe5, 0x21, 0xeb, 0x40, +0x37, 0xb9, }; static const struct ia64_dis_names ia64_dis_names[] = { -{ 0x51, 40, 0, 9 }, -{ 0x31, 40, 1, 19 }, -{ 0x11, 41, 0, 18 }, -{ 0x29, 40, 0, 11 }, -{ 0x19, 40, 1, 23 }, -{ 0x9, 41, 0, 22 }, -{ 0x15, 40, 0, 13 }, -{ 0xd, 40, 1, 27 }, -{ 0x5, 41, 0, 26 }, -{ 0xb, 40, 0, 15 }, -{ 0x7, 40, 1, 31 }, -{ 0x3, 41, 0, 30 }, -{ 0x51, 38, 1, 57 }, -{ 0x50, 38, 0, 33 }, -{ 0xd1, 38, 1, 56 }, -{ 0xd0, 38, 0, 32 }, -{ 0x31, 38, 1, 67 }, -{ 0x30, 38, 1, 43 }, -{ 0x11, 39, 1, 66 }, -{ 0x10, 39, 0, 42 }, -{ 0x71, 38, 1, 65 }, -{ 0x70, 38, 1, 41 }, -{ 0x31, 39, 1, 64 }, -{ 0x30, 39, 0, 40 }, -{ 0x29, 38, 1, 59 }, -{ 0x28, 38, 0, 35 }, -{ 0x69, 38, 1, 58 }, -{ 0x68, 38, 0, 34 }, -{ 0x19, 38, 1, 71 }, -{ 0x18, 38, 1, 47 }, -{ 0x9, 39, 1, 70 }, -{ 0x8, 39, 0, 46 }, -{ 0x39, 38, 1, 69 }, -{ 0x38, 38, 1, 45 }, -{ 0x19, 39, 1, 68 }, -{ 0x18, 39, 0, 44 }, -{ 0x15, 38, 1, 61 }, -{ 0x14, 38, 0, 37 }, -{ 0x35, 38, 1, 60 }, -{ 0x34, 38, 0, 36 }, -{ 0xd, 38, 1, 75 }, -{ 0xc, 38, 1, 51 }, -{ 0x5, 39, 1, 74 }, -{ 0x4, 39, 0, 50 }, -{ 0x1d, 38, 1, 73 }, -{ 0x1c, 38, 1, 49 }, -{ 0xd, 39, 1, 72 }, -{ 0xc, 39, 0, 48 }, -{ 0xb, 38, 1, 63 }, -{ 0xa, 38, 0, 39 }, -{ 0x1b, 38, 1, 62 }, -{ 0x1a, 38, 0, 38 }, -{ 0x7, 38, 1, 79 }, -{ 0x6, 38, 1, 55 }, -{ 0x3, 39, 1, 78 }, -{ 0x2, 39, 0, 54 }, -{ 0xf, 38, 1, 77 }, -{ 0xe, 38, 1, 53 }, -{ 0x7, 39, 1, 76 }, -{ 0x6, 39, 0, 52 }, -{ 0x8, 37, 0, 81 }, -{ 0x18, 37, 0, 80 }, -{ 0x1, 37, 1, 85 }, -{ 0x2, 37, 0, 84 }, -{ 0x3, 37, 1, 83 }, -{ 0x4, 37, 0, 82 }, -{ 0x1, 284, 0, 86 }, -{ 0x20, 237, 0, 96 }, -{ 0x220, 237, 0, 92 }, -{ 0x1220, 237, 0, 89 }, -{ 0xa20, 237, 0, 90 }, -{ 0x620, 237, 0, 91 }, -{ 0x120, 237, 0, 93 }, -{ 0xa0, 237, 0, 94 }, -{ 0x60, 237, 0, 95 }, -{ 0x10, 237, 0, 100 }, -{ 0x90, 237, 0, 97 }, -{ 0x50, 237, 0, 98 }, -{ 0x30, 237, 0, 99 }, -{ 0x8, 237, 0, 101 }, -{ 0x4, 237, 0, 102 }, -{ 0x2, 237, 0, 103 }, -{ 0x1, 237, 0, 104 }, -{ 0x1, 357, 0, 106 }, -{ 0x3, 357, 0, 105 }, -{ 0x2, 363, 0, 107 }, -{ 0x1, 363, 0, 108 }, -{ 0x2, 359, 0, 109 }, -{ 0x1, 359, 0, 110 }, -{ 0x2, 361, 0, 111 }, -{ 0x1, 361, 0, 112 }, -{ 0x2, 365, 0, 113 }, -{ 0x1, 365, 0, 114 }, -{ 0x1, 216, 0, 141 }, -{ 0x5, 216, 0, 139 }, -{ 0x3, 216, 0, 140 }, -{ 0x140, 225, 0, 117 }, -{ 0x540, 225, 0, 115 }, -{ 0x340, 225, 0, 116 }, -{ 0xc0, 225, 0, 129 }, -{ 0x2c0, 225, 0, 127 }, -{ 0x1c0, 225, 0, 128 }, -{ 0x20, 225, 0, 144 }, -{ 0xa0, 225, 0, 142 }, -{ 0x60, 225, 0, 143 }, -{ 0x10, 225, 0, 156 }, -{ 0x50, 225, 0, 154 }, -{ 0x30, 225, 0, 155 }, -{ 0x8, 225, 0, 168 }, -{ 0x28, 225, 0, 166 }, -{ 0x18, 225, 0, 167 }, -{ 0x4, 225, 0, 178 }, -{ 0x2, 225, 0, 179 }, -{ 0x1, 225, 0, 180 }, -{ 0x140, 219, 0, 120 }, -{ 0x540, 219, 0, 118 }, -{ 0x340, 219, 0, 119 }, -{ 0xc0, 219, 0, 132 }, -{ 0x2c0, 219, 0, 130 }, -{ 0x1c0, 219, 0, 131 }, -{ 0x20, 219, 0, 147 }, -{ 0xa0, 219, 0, 145 }, -{ 0x60, 219, 0, 146 }, -{ 0x10, 219, 0, 159 }, -{ 0x50, 219, 0, 157 }, -{ 0x30, 219, 0, 158 }, -{ 0x8, 219, 0, 171 }, -{ 0x28, 219, 0, 169 }, -{ 0x18, 219, 0, 170 }, -{ 0x4, 219, 0, 181 }, -{ 0x2, 219, 0, 182 }, -{ 0x1, 219, 0, 183 }, -{ 0x140, 222, 0, 123 }, -{ 0x540, 222, 0, 121 }, -{ 0x340, 222, 0, 122 }, -{ 0xc0, 222, 0, 135 }, -{ 0x2c0, 222, 0, 133 }, -{ 0x1c0, 222, 0, 134 }, -{ 0x20, 222, 0, 150 }, -{ 0xa0, 222, 0, 148 }, -{ 0x60, 222, 0, 149 }, -{ 0x10, 222, 0, 162 }, -{ 0x50, 222, 0, 160 }, -{ 0x30, 222, 0, 161 }, -{ 0x8, 222, 0, 174 }, -{ 0x28, 222, 0, 172 }, -{ 0x18, 222, 0, 173 }, -{ 0x4, 222, 0, 184 }, -{ 0x2, 222, 0, 185 }, -{ 0x1, 222, 0, 186 }, -{ 0x140, 234, 0, 126 }, -{ 0x540, 234, 0, 124 }, -{ 0x340, 234, 0, 125 }, -{ 0xc0, 234, 0, 138 }, -{ 0x2c0, 234, 0, 136 }, -{ 0x1c0, 234, 0, 137 }, -{ 0x20, 234, 0, 153 }, -{ 0xa0, 234, 0, 151 }, -{ 0x60, 234, 0, 152 }, -{ 0x10, 234, 0, 165 }, -{ 0x50, 234, 0, 163 }, -{ 0x30, 234, 0, 164 }, -{ 0x8, 234, 0, 177 }, -{ 0x28, 234, 0, 175 }, -{ 0x18, 234, 0, 176 }, -{ 0x4, 234, 0, 187 }, -{ 0x2, 234, 0, 188 }, -{ 0x1, 234, 0, 189 }, -{ 0x8, 338, 0, 190 }, -{ 0x4, 338, 0, 191 }, -{ 0x2, 338, 0, 192 }, -{ 0x1, 338, 0, 193 }, -{ 0x20, 236, 0, 201 }, -{ 0x220, 236, 0, 197 }, -{ 0x1220, 236, 0, 194 }, -{ 0xa20, 236, 0, 195 }, -{ 0x620, 236, 0, 196 }, -{ 0x120, 236, 0, 198 }, -{ 0xa0, 236, 0, 199 }, -{ 0x60, 236, 0, 200 }, -{ 0x10, 236, 0, 205 }, -{ 0x90, 236, 0, 202 }, -{ 0x50, 236, 0, 203 }, -{ 0x30, 236, 0, 204 }, -{ 0x8, 236, 0, 206 }, -{ 0x4, 236, 0, 207 }, -{ 0x2, 236, 0, 208 }, -{ 0x1, 236, 0, 209 }, -{ 0x20, 235, 0, 217 }, -{ 0x220, 235, 0, 213 }, -{ 0x1220, 235, 0, 210 }, -{ 0xa20, 235, 0, 211 }, -{ 0x620, 235, 0, 212 }, -{ 0x120, 235, 0, 214 }, -{ 0xa0, 235, 0, 215 }, -{ 0x60, 235, 0, 216 }, -{ 0x10, 235, 0, 221 }, -{ 0x90, 235, 0, 218 }, -{ 0x50, 235, 0, 219 }, -{ 0x30, 235, 0, 220 }, -{ 0x8, 235, 0, 222 }, -{ 0x4, 235, 0, 223 }, -{ 0x2, 235, 0, 224 }, -{ 0x1, 235, 0, 225 }, -{ 0x140, 227, 0, 228 }, -{ 0x540, 227, 0, 226 }, -{ 0x340, 227, 0, 227 }, -{ 0xc0, 227, 0, 237 }, -{ 0x2c0, 227, 0, 235 }, -{ 0x1c0, 227, 0, 236 }, -{ 0x20, 227, 0, 246 }, -{ 0xa0, 227, 0, 244 }, -{ 0x60, 227, 0, 245 }, -{ 0x10, 227, 0, 255 }, -{ 0x50, 227, 0, 253 }, -{ 0x30, 227, 0, 254 }, -{ 0x8, 227, 0, 264 }, -{ 0x28, 227, 0, 262 }, -{ 0x18, 227, 0, 263 }, -{ 0x4, 227, 0, 271 }, -{ 0x2, 227, 0, 272 }, -{ 0x1, 227, 0, 273 }, -{ 0x140, 229, 0, 231 }, -{ 0x540, 229, 0, 229 }, -{ 0x340, 229, 0, 230 }, -{ 0xc0, 229, 0, 240 }, -{ 0x2c0, 229, 0, 238 }, -{ 0x1c0, 229, 0, 239 }, -{ 0x20, 229, 0, 249 }, -{ 0xa0, 229, 0, 247 }, -{ 0x60, 229, 0, 248 }, -{ 0x10, 229, 0, 258 }, -{ 0x50, 229, 0, 256 }, -{ 0x30, 229, 0, 257 }, -{ 0x8, 229, 0, 267 }, -{ 0x28, 229, 0, 265 }, -{ 0x18, 229, 0, 266 }, -{ 0x4, 229, 0, 274 }, -{ 0x2, 229, 0, 275 }, -{ 0x1, 229, 0, 276 }, -{ 0x140, 231, 0, 234 }, -{ 0x540, 231, 0, 232 }, -{ 0x340, 231, 0, 233 }, -{ 0xc0, 231, 0, 243 }, -{ 0x2c0, 231, 0, 241 }, -{ 0x1c0, 231, 0, 242 }, -{ 0x20, 231, 0, 252 }, -{ 0xa0, 231, 0, 250 }, -{ 0x60, 231, 0, 251 }, -{ 0x10, 231, 0, 261 }, -{ 0x50, 231, 0, 259 }, -{ 0x30, 231, 0, 260 }, -{ 0x8, 231, 0, 270 }, -{ 0x28, 231, 0, 268 }, -{ 0x18, 231, 0, 269 }, -{ 0x4, 231, 0, 277 }, -{ 0x2, 231, 0, 278 }, -{ 0x1, 231, 0, 279 }, -{ 0x140, 226, 0, 282 }, -{ 0x540, 226, 0, 280 }, -{ 0x340, 226, 0, 281 }, -{ 0xc0, 226, 0, 291 }, -{ 0x2c0, 226, 0, 289 }, -{ 0x1c0, 226, 0, 290 }, -{ 0x20, 226, 0, 300 }, -{ 0xa0, 226, 0, 298 }, -{ 0x60, 226, 0, 299 }, -{ 0x10, 226, 0, 309 }, -{ 0x50, 226, 0, 307 }, -{ 0x30, 226, 0, 308 }, -{ 0x8, 226, 0, 318 }, -{ 0x28, 226, 0, 316 }, -{ 0x18, 226, 0, 317 }, -{ 0x4, 226, 0, 325 }, -{ 0x2, 226, 0, 326 }, -{ 0x1, 226, 0, 327 }, -{ 0x140, 228, 0, 285 }, -{ 0x540, 228, 0, 283 }, -{ 0x340, 228, 0, 284 }, -{ 0xc0, 228, 0, 294 }, -{ 0x2c0, 228, 0, 292 }, -{ 0x1c0, 228, 0, 293 }, -{ 0x20, 228, 0, 303 }, -{ 0xa0, 228, 0, 301 }, -{ 0x60, 228, 0, 302 }, -{ 0x10, 228, 0, 312 }, -{ 0x50, 228, 0, 310 }, -{ 0x30, 228, 0, 311 }, -{ 0x8, 228, 0, 321 }, -{ 0x28, 228, 0, 319 }, -{ 0x18, 228, 0, 320 }, -{ 0x4, 228, 0, 328 }, -{ 0x2, 228, 0, 329 }, -{ 0x1, 228, 0, 330 }, -{ 0x140, 230, 0, 288 }, -{ 0x540, 230, 0, 286 }, -{ 0x340, 230, 0, 287 }, -{ 0xc0, 230, 0, 297 }, -{ 0x2c0, 230, 0, 295 }, -{ 0x1c0, 230, 0, 296 }, -{ 0x20, 230, 0, 306 }, -{ 0xa0, 230, 0, 304 }, -{ 0x60, 230, 0, 305 }, -{ 0x10, 230, 0, 315 }, -{ 0x50, 230, 0, 313 }, -{ 0x30, 230, 0, 314 }, -{ 0x8, 230, 0, 324 }, -{ 0x28, 230, 0, 322 }, -{ 0x18, 230, 0, 323 }, -{ 0x4, 230, 0, 331 }, -{ 0x2, 230, 0, 332 }, -{ 0x1, 230, 0, 333 }, -{ 0x1, 356, 0, 335 }, -{ 0x3, 356, 0, 334 }, -{ 0x2, 362, 0, 336 }, -{ 0x1, 362, 0, 337 }, -{ 0x2, 358, 0, 338 }, -{ 0x1, 358, 0, 339 }, -{ 0x2, 360, 0, 340 }, -{ 0x1, 360, 0, 341 }, -{ 0x2, 364, 0, 342 }, -{ 0x1, 364, 0, 343 }, -{ 0x1, 215, 0, 370 }, -{ 0x5, 215, 0, 368 }, -{ 0x3, 215, 0, 369 }, -{ 0x140, 224, 0, 346 }, -{ 0x540, 224, 0, 344 }, -{ 0x340, 224, 0, 345 }, -{ 0xc0, 224, 0, 358 }, -{ 0x2c0, 224, 0, 356 }, -{ 0x1c0, 224, 0, 357 }, -{ 0x20, 224, 0, 373 }, -{ 0xa0, 224, 0, 371 }, -{ 0x60, 224, 0, 372 }, -{ 0x10, 224, 0, 385 }, -{ 0x50, 224, 0, 383 }, -{ 0x30, 224, 0, 384 }, -{ 0x8, 224, 0, 397 }, -{ 0x28, 224, 0, 395 }, -{ 0x18, 224, 0, 396 }, -{ 0x4, 224, 0, 407 }, -{ 0x2, 224, 0, 408 }, -{ 0x1, 224, 0, 409 }, -{ 0x140, 218, 0, 349 }, -{ 0x540, 218, 0, 347 }, -{ 0x340, 218, 0, 348 }, -{ 0xc0, 218, 0, 361 }, -{ 0x2c0, 218, 0, 359 }, -{ 0x1c0, 218, 0, 360 }, -{ 0x20, 218, 0, 376 }, -{ 0xa0, 218, 0, 374 }, -{ 0x60, 218, 0, 375 }, -{ 0x10, 218, 0, 388 }, -{ 0x50, 218, 0, 386 }, -{ 0x30, 218, 0, 387 }, -{ 0x8, 218, 0, 400 }, -{ 0x28, 218, 0, 398 }, -{ 0x18, 218, 0, 399 }, -{ 0x4, 218, 0, 410 }, -{ 0x2, 218, 0, 411 }, -{ 0x1, 218, 0, 412 }, -{ 0x140, 221, 0, 352 }, -{ 0x540, 221, 0, 350 }, -{ 0x340, 221, 0, 351 }, -{ 0xc0, 221, 0, 364 }, -{ 0x2c0, 221, 0, 362 }, -{ 0x1c0, 221, 0, 363 }, -{ 0x20, 221, 0, 379 }, -{ 0xa0, 221, 0, 377 }, -{ 0x60, 221, 0, 378 }, -{ 0x10, 221, 0, 391 }, -{ 0x50, 221, 0, 389 }, -{ 0x30, 221, 0, 390 }, -{ 0x8, 221, 0, 403 }, -{ 0x28, 221, 0, 401 }, -{ 0x18, 221, 0, 402 }, -{ 0x4, 221, 0, 413 }, -{ 0x2, 221, 0, 414 }, -{ 0x1, 221, 0, 415 }, -{ 0x140, 233, 0, 355 }, -{ 0x540, 233, 0, 353 }, -{ 0x340, 233, 0, 354 }, -{ 0xc0, 233, 0, 367 }, -{ 0x2c0, 233, 0, 365 }, -{ 0x1c0, 233, 0, 366 }, -{ 0x20, 233, 0, 382 }, -{ 0xa0, 233, 0, 380 }, -{ 0x60, 233, 0, 381 }, -{ 0x10, 233, 0, 394 }, -{ 0x50, 233, 0, 392 }, -{ 0x30, 233, 0, 393 }, -{ 0x8, 233, 0, 406 }, -{ 0x28, 233, 0, 404 }, -{ 0x18, 233, 0, 405 }, -{ 0x4, 233, 0, 416 }, -{ 0x2, 233, 0, 417 }, -{ 0x1, 233, 0, 418 }, -{ 0x1, 214, 0, 445 }, -{ 0x5, 214, 0, 443 }, -{ 0x3, 214, 0, 444 }, -{ 0x140, 223, 0, 421 }, -{ 0x540, 223, 0, 419 }, -{ 0x340, 223, 0, 420 }, -{ 0xc0, 223, 0, 433 }, -{ 0x2c0, 223, 0, 431 }, -{ 0x1c0, 223, 0, 432 }, -{ 0x20, 223, 0, 448 }, -{ 0xa0, 223, 0, 446 }, -{ 0x60, 223, 0, 447 }, -{ 0x10, 223, 0, 460 }, -{ 0x50, 223, 0, 458 }, -{ 0x30, 223, 0, 459 }, -{ 0x8, 223, 0, 472 }, -{ 0x28, 223, 0, 470 }, -{ 0x18, 223, 0, 471 }, -{ 0x4, 223, 0, 482 }, -{ 0x2, 223, 0, 483 }, -{ 0x1, 223, 0, 484 }, -{ 0x140, 217, 0, 424 }, -{ 0x540, 217, 0, 422 }, -{ 0x340, 217, 0, 423 }, -{ 0xc0, 217, 0, 436 }, -{ 0x2c0, 217, 0, 434 }, -{ 0x1c0, 217, 0, 435 }, -{ 0x20, 217, 0, 451 }, -{ 0xa0, 217, 0, 449 }, -{ 0x60, 217, 0, 450 }, -{ 0x10, 217, 0, 463 }, -{ 0x50, 217, 0, 461 }, -{ 0x30, 217, 0, 462 }, -{ 0x8, 217, 0, 475 }, -{ 0x28, 217, 0, 473 }, -{ 0x18, 217, 0, 474 }, -{ 0x4, 217, 0, 485 }, -{ 0x2, 217, 0, 486 }, -{ 0x1, 217, 0, 487 }, -{ 0x140, 220, 0, 427 }, -{ 0x540, 220, 0, 425 }, -{ 0x340, 220, 0, 426 }, -{ 0xc0, 220, 0, 439 }, -{ 0x2c0, 220, 0, 437 }, -{ 0x1c0, 220, 0, 438 }, -{ 0x20, 220, 0, 454 }, -{ 0xa0, 220, 0, 452 }, -{ 0x60, 220, 0, 453 }, -{ 0x10, 220, 0, 466 }, -{ 0x50, 220, 0, 464 }, -{ 0x30, 220, 0, 465 }, -{ 0x8, 220, 0, 478 }, -{ 0x28, 220, 0, 476 }, -{ 0x18, 220, 0, 477 }, -{ 0x4, 220, 0, 488 }, -{ 0x2, 220, 0, 489 }, -{ 0x1, 220, 0, 490 }, -{ 0x140, 232, 0, 430 }, -{ 0x540, 232, 0, 428 }, -{ 0x340, 232, 0, 429 }, -{ 0xc0, 232, 0, 442 }, -{ 0x2c0, 232, 0, 440 }, -{ 0x1c0, 232, 0, 441 }, -{ 0x20, 232, 0, 457 }, -{ 0xa0, 232, 0, 455 }, -{ 0x60, 232, 0, 456 }, -{ 0x10, 232, 0, 469 }, -{ 0x50, 232, 0, 467 }, -{ 0x30, 232, 0, 468 }, -{ 0x8, 232, 0, 481 }, -{ 0x28, 232, 0, 479 }, -{ 0x18, 232, 0, 480 }, -{ 0x4, 232, 0, 491 }, -{ 0x2, 232, 0, 492 }, -{ 0x1, 232, 0, 493 }, -{ 0x8, 355, 0, 495 }, -{ 0x18, 355, 0, 494 }, -{ 0x4, 355, 0, 497 }, -{ 0xc, 355, 0, 496 }, -{ 0x2, 355, 0, 504 }, -{ 0x1, 355, 0, 505 }, -{ 0x4, 353, 0, 499 }, -{ 0xc, 353, 0, 498 }, -{ 0x2, 353, 0, 506 }, -{ 0x1, 353, 0, 507 }, -{ 0x4, 351, 0, 501 }, -{ 0xc, 351, 0, 500 }, -{ 0x2, 351, 0, 508 }, -{ 0x1, 351, 0, 509 }, -{ 0x4, 349, 0, 503 }, -{ 0xc, 349, 0, 502 }, -{ 0x2, 349, 0, 510 }, -{ 0x1, 349, 0, 511 }, -{ 0xa00, 213, 0, 526 }, -{ 0x2a00, 213, 0, 524 }, -{ 0x1a00, 213, 0, 525 }, -{ 0x600, 213, 0, 538 }, -{ 0x2600, 213, 0, 514 }, -{ 0xa600, 213, 0, 512 }, -{ 0x6600, 213, 0, 513 }, -{ 0x1600, 213, 0, 536 }, -{ 0xe00, 213, 0, 537 }, -{ 0x100, 213, 0, 550 }, -{ 0x500, 213, 0, 548 }, -{ 0x300, 213, 0, 549 }, -{ 0x80, 213, 0, 553 }, -{ 0x280, 213, 0, 551 }, -{ 0x180, 213, 0, 552 }, -{ 0x40, 213, 0, 565 }, -{ 0x140, 213, 0, 563 }, -{ 0xc0, 213, 0, 564 }, -{ 0x20, 213, 0, 577 }, -{ 0xa0, 213, 0, 575 }, -{ 0x60, 213, 0, 576 }, -{ 0x10, 213, 0, 589 }, -{ 0x50, 213, 0, 587 }, -{ 0x30, 213, 0, 588 }, -{ 0x8, 213, 0, 601 }, -{ 0x28, 213, 0, 599 }, -{ 0x18, 213, 0, 600 }, -{ 0x4, 213, 0, 611 }, -{ 0x2, 213, 0, 612 }, -{ 0x1, 213, 0, 613 }, -{ 0x500, 210, 0, 529 }, -{ 0x1500, 210, 0, 527 }, -{ 0xd00, 210, 0, 528 }, -{ 0x300, 210, 0, 541 }, -{ 0x1300, 210, 0, 517 }, -{ 0x5300, 210, 0, 515 }, -{ 0x3300, 210, 0, 516 }, -{ 0xb00, 210, 0, 539 }, -{ 0x700, 210, 0, 540 }, -{ 0x80, 210, 0, 556 }, -{ 0x280, 210, 0, 554 }, -{ 0x180, 210, 0, 555 }, -{ 0x40, 210, 0, 568 }, -{ 0x140, 210, 0, 566 }, -{ 0xc0, 210, 0, 567 }, -{ 0x20, 210, 0, 580 }, -{ 0xa0, 210, 0, 578 }, -{ 0x60, 210, 0, 579 }, -{ 0x10, 210, 0, 592 }, -{ 0x50, 210, 0, 590 }, -{ 0x30, 210, 0, 591 }, -{ 0x8, 210, 0, 604 }, -{ 0x28, 210, 0, 602 }, -{ 0x18, 210, 0, 603 }, -{ 0x4, 210, 0, 614 }, -{ 0x2, 210, 0, 615 }, -{ 0x1, 210, 0, 616 }, -{ 0x500, 207, 0, 532 }, -{ 0x1500, 207, 0, 530 }, -{ 0xd00, 207, 0, 531 }, -{ 0x300, 207, 0, 544 }, -{ 0x1300, 207, 0, 520 }, -{ 0x5300, 207, 0, 518 }, -{ 0x3300, 207, 0, 519 }, -{ 0xb00, 207, 0, 542 }, -{ 0x700, 207, 0, 543 }, -{ 0x80, 207, 0, 559 }, -{ 0x280, 207, 0, 557 }, -{ 0x180, 207, 0, 558 }, -{ 0x40, 207, 0, 571 }, -{ 0x140, 207, 0, 569 }, -{ 0xc0, 207, 0, 570 }, -{ 0x20, 207, 0, 583 }, -{ 0xa0, 207, 0, 581 }, -{ 0x60, 207, 0, 582 }, -{ 0x10, 207, 0, 595 }, -{ 0x50, 207, 0, 593 }, -{ 0x30, 207, 0, 594 }, -{ 0x8, 207, 0, 607 }, -{ 0x28, 207, 0, 605 }, -{ 0x18, 207, 0, 606 }, -{ 0x4, 207, 0, 617 }, -{ 0x2, 207, 0, 618 }, -{ 0x1, 207, 0, 619 }, -{ 0x500, 204, 0, 535 }, -{ 0x1500, 204, 0, 533 }, -{ 0xd00, 204, 0, 534 }, -{ 0x300, 204, 0, 547 }, -{ 0x1300, 204, 0, 523 }, -{ 0x5300, 204, 0, 521 }, -{ 0x3300, 204, 0, 522 }, -{ 0xb00, 204, 0, 545 }, -{ 0x700, 204, 0, 546 }, -{ 0x80, 204, 0, 562 }, -{ 0x280, 204, 0, 560 }, -{ 0x180, 204, 0, 561 }, -{ 0x40, 204, 0, 574 }, -{ 0x140, 204, 0, 572 }, -{ 0xc0, 204, 0, 573 }, -{ 0x20, 204, 0, 586 }, -{ 0xa0, 204, 0, 584 }, -{ 0x60, 204, 0, 585 }, -{ 0x10, 204, 0, 598 }, -{ 0x50, 204, 0, 596 }, -{ 0x30, 204, 0, 597 }, -{ 0x8, 204, 0, 610 }, -{ 0x28, 204, 0, 608 }, -{ 0x18, 204, 0, 609 }, -{ 0x4, 204, 0, 620 }, -{ 0x2, 204, 0, 621 }, -{ 0x1, 204, 0, 622 }, -{ 0x8, 195, 0, 623 }, -{ 0x4, 195, 0, 624 }, -{ 0x2, 195, 0, 625 }, -{ 0x1, 195, 0, 626 }, -{ 0x2, 133, 0, 629 }, -{ 0xa, 133, 0, 627 }, -{ 0x6, 133, 0, 628 }, -{ 0x1, 133, 0, 635 }, -{ 0x5, 133, 0, 633 }, -{ 0x3, 133, 0, 634 }, -{ 0x2, 132, 0, 632 }, -{ 0xa, 132, 0, 630 }, -{ 0x6, 132, 0, 631 }, -{ 0x1, 132, 0, 638 }, -{ 0x5, 132, 0, 636 }, -{ 0x3, 132, 0, 637 }, -{ 0x4, 388, 0, 639 }, -{ 0x2, 388, 0, 640 }, -{ 0x1, 388, 0, 641 }, -{ 0x4, 387, 0, 642 }, -{ 0x2, 387, 0, 643 }, -{ 0x1, 387, 0, 644 }, -{ 0x4, 386, 0, 645 }, -{ 0x2, 386, 0, 646 }, -{ 0x1, 386, 0, 647 }, -{ 0x4, 385, 0, 648 }, -{ 0x2, 385, 0, 649 }, -{ 0x1, 385, 0, 650 }, -{ 0x2, 95, 0, 653 }, -{ 0xa, 95, 0, 651 }, -{ 0x6, 95, 0, 652 }, -{ 0x1, 95, 0, 665 }, -{ 0x5, 95, 0, 663 }, -{ 0x3, 95, 0, 664 }, -{ 0x2, 94, 0, 656 }, -{ 0xa, 94, 0, 654 }, -{ 0x6, 94, 0, 655 }, -{ 0x1, 94, 0, 668 }, -{ 0x5, 94, 0, 666 }, -{ 0x3, 94, 0, 667 }, -{ 0x2, 93, 0, 659 }, -{ 0xa, 93, 0, 657 }, -{ 0x6, 93, 0, 658 }, -{ 0x1, 93, 0, 671 }, -{ 0x5, 93, 0, 669 }, -{ 0x3, 93, 0, 670 }, -{ 0x2, 92, 0, 662 }, -{ 0xa, 92, 0, 660 }, -{ 0x6, 92, 0, 661 }, -{ 0x1, 92, 0, 674 }, -{ 0x5, 92, 0, 672 }, -{ 0x3, 92, 0, 673 }, -{ 0x8, 354, 0, 676 }, -{ 0x18, 354, 0, 675 }, -{ 0x4, 354, 0, 678 }, -{ 0xc, 354, 0, 677 }, -{ 0x2, 354, 0, 685 }, -{ 0x1, 354, 0, 686 }, -{ 0x4, 352, 0, 680 }, -{ 0xc, 352, 0, 679 }, -{ 0x2, 352, 0, 687 }, -{ 0x1, 352, 0, 688 }, -{ 0x4, 350, 0, 682 }, -{ 0xc, 350, 0, 681 }, -{ 0x2, 350, 0, 689 }, -{ 0x1, 350, 0, 690 }, -{ 0x4, 348, 0, 684 }, -{ 0xc, 348, 0, 683 }, -{ 0x2, 348, 0, 691 }, -{ 0x1, 348, 0, 692 }, -{ 0xa00, 212, 0, 707 }, -{ 0x2a00, 212, 0, 705 }, -{ 0x1a00, 212, 0, 706 }, -{ 0x600, 212, 0, 719 }, -{ 0x2600, 212, 0, 695 }, -{ 0xa600, 212, 0, 693 }, -{ 0x6600, 212, 0, 694 }, -{ 0x1600, 212, 0, 717 }, -{ 0xe00, 212, 0, 718 }, -{ 0x100, 212, 0, 731 }, -{ 0x500, 212, 0, 729 }, -{ 0x300, 212, 0, 730 }, -{ 0x80, 212, 0, 734 }, -{ 0x280, 212, 0, 732 }, -{ 0x180, 212, 0, 733 }, -{ 0x40, 212, 0, 746 }, -{ 0x140, 212, 0, 744 }, -{ 0xc0, 212, 0, 745 }, -{ 0x20, 212, 0, 758 }, -{ 0xa0, 212, 0, 756 }, -{ 0x60, 212, 0, 757 }, -{ 0x10, 212, 0, 770 }, -{ 0x50, 212, 0, 768 }, -{ 0x30, 212, 0, 769 }, -{ 0x8, 212, 0, 782 }, -{ 0x28, 212, 0, 780 }, -{ 0x18, 212, 0, 781 }, -{ 0x4, 212, 0, 792 }, -{ 0x2, 212, 0, 793 }, -{ 0x1, 212, 0, 794 }, -{ 0x500, 209, 0, 710 }, -{ 0x1500, 209, 0, 708 }, -{ 0xd00, 209, 0, 709 }, -{ 0x300, 209, 0, 722 }, -{ 0x1300, 209, 0, 698 }, -{ 0x5300, 209, 0, 696 }, -{ 0x3300, 209, 0, 697 }, -{ 0xb00, 209, 0, 720 }, -{ 0x700, 209, 0, 721 }, -{ 0x80, 209, 0, 737 }, -{ 0x280, 209, 0, 735 }, -{ 0x180, 209, 0, 736 }, -{ 0x40, 209, 0, 749 }, -{ 0x140, 209, 0, 747 }, -{ 0xc0, 209, 0, 748 }, -{ 0x20, 209, 0, 761 }, -{ 0xa0, 209, 0, 759 }, -{ 0x60, 209, 0, 760 }, -{ 0x10, 209, 0, 773 }, -{ 0x50, 209, 0, 771 }, -{ 0x30, 209, 0, 772 }, -{ 0x8, 209, 0, 785 }, -{ 0x28, 209, 0, 783 }, -{ 0x18, 209, 0, 784 }, -{ 0x4, 209, 0, 795 }, -{ 0x2, 209, 0, 796 }, -{ 0x1, 209, 0, 797 }, -{ 0x500, 206, 0, 713 }, -{ 0x1500, 206, 0, 711 }, -{ 0xd00, 206, 0, 712 }, -{ 0x300, 206, 0, 725 }, -{ 0x1300, 206, 0, 701 }, -{ 0x5300, 206, 0, 699 }, -{ 0x3300, 206, 0, 700 }, -{ 0xb00, 206, 0, 723 }, -{ 0x700, 206, 0, 724 }, -{ 0x80, 206, 0, 740 }, -{ 0x280, 206, 0, 738 }, -{ 0x180, 206, 0, 739 }, -{ 0x40, 206, 0, 752 }, -{ 0x140, 206, 0, 750 }, -{ 0xc0, 206, 0, 751 }, -{ 0x20, 206, 0, 764 }, -{ 0xa0, 206, 0, 762 }, -{ 0x60, 206, 0, 763 }, -{ 0x10, 206, 0, 776 }, -{ 0x50, 206, 0, 774 }, -{ 0x30, 206, 0, 775 }, -{ 0x8, 206, 0, 788 }, -{ 0x28, 206, 0, 786 }, -{ 0x18, 206, 0, 787 }, -{ 0x4, 206, 0, 798 }, -{ 0x2, 206, 0, 799 }, -{ 0x1, 206, 0, 800 }, -{ 0x500, 203, 0, 716 }, -{ 0x1500, 203, 0, 714 }, -{ 0xd00, 203, 0, 715 }, -{ 0x300, 203, 0, 728 }, -{ 0x1300, 203, 0, 704 }, -{ 0x5300, 203, 0, 702 }, -{ 0x3300, 203, 0, 703 }, -{ 0xb00, 203, 0, 726 }, -{ 0x700, 203, 0, 727 }, -{ 0x80, 203, 0, 743 }, -{ 0x280, 203, 0, 741 }, -{ 0x180, 203, 0, 742 }, -{ 0x40, 203, 0, 755 }, -{ 0x140, 203, 0, 753 }, -{ 0xc0, 203, 0, 754 }, -{ 0x20, 203, 0, 767 }, -{ 0xa0, 203, 0, 765 }, -{ 0x60, 203, 0, 766 }, -{ 0x10, 203, 0, 779 }, -{ 0x50, 203, 0, 777 }, -{ 0x30, 203, 0, 778 }, -{ 0x8, 203, 0, 791 }, -{ 0x28, 203, 0, 789 }, -{ 0x18, 203, 0, 790 }, -{ 0x4, 203, 0, 801 }, -{ 0x2, 203, 0, 802 }, -{ 0x1, 203, 0, 803 }, -{ 0xa00, 211, 0, 818 }, -{ 0x2a00, 211, 0, 816 }, -{ 0x1a00, 211, 0, 817 }, -{ 0x600, 211, 0, 830 }, -{ 0x2600, 211, 0, 806 }, -{ 0xa600, 211, 0, 804 }, -{ 0x6600, 211, 0, 805 }, -{ 0x1600, 211, 0, 828 }, -{ 0xe00, 211, 0, 829 }, -{ 0x100, 211, 0, 842 }, -{ 0x500, 211, 0, 840 }, -{ 0x300, 211, 0, 841 }, -{ 0x80, 211, 0, 845 }, -{ 0x280, 211, 0, 843 }, -{ 0x180, 211, 0, 844 }, -{ 0x40, 211, 0, 857 }, -{ 0x140, 211, 0, 855 }, -{ 0xc0, 211, 0, 856 }, -{ 0x20, 211, 0, 869 }, -{ 0xa0, 211, 0, 867 }, -{ 0x60, 211, 0, 868 }, -{ 0x10, 211, 0, 881 }, -{ 0x50, 211, 0, 879 }, -{ 0x30, 211, 0, 880 }, -{ 0x8, 211, 0, 893 }, -{ 0x28, 211, 0, 891 }, -{ 0x18, 211, 0, 892 }, -{ 0x4, 211, 0, 903 }, -{ 0x2, 211, 0, 904 }, -{ 0x1, 211, 0, 905 }, -{ 0x500, 208, 0, 821 }, -{ 0x1500, 208, 0, 819 }, -{ 0xd00, 208, 0, 820 }, -{ 0x300, 208, 0, 833 }, -{ 0x1300, 208, 0, 809 }, -{ 0x5300, 208, 0, 807 }, -{ 0x3300, 208, 0, 808 }, -{ 0xb00, 208, 0, 831 }, -{ 0x700, 208, 0, 832 }, -{ 0x80, 208, 0, 848 }, -{ 0x280, 208, 0, 846 }, -{ 0x180, 208, 0, 847 }, -{ 0x40, 208, 0, 860 }, -{ 0x140, 208, 0, 858 }, -{ 0xc0, 208, 0, 859 }, -{ 0x20, 208, 0, 872 }, -{ 0xa0, 208, 0, 870 }, -{ 0x60, 208, 0, 871 }, -{ 0x10, 208, 0, 884 }, -{ 0x50, 208, 0, 882 }, -{ 0x30, 208, 0, 883 }, -{ 0x8, 208, 0, 896 }, -{ 0x28, 208, 0, 894 }, -{ 0x18, 208, 0, 895 }, -{ 0x4, 208, 0, 906 }, -{ 0x2, 208, 0, 907 }, -{ 0x1, 208, 0, 908 }, -{ 0x500, 205, 0, 824 }, -{ 0x1500, 205, 0, 822 }, -{ 0xd00, 205, 0, 823 }, -{ 0x300, 205, 0, 836 }, -{ 0x1300, 205, 0, 812 }, -{ 0x5300, 205, 0, 810 }, -{ 0x3300, 205, 0, 811 }, -{ 0xb00, 205, 0, 834 }, -{ 0x700, 205, 0, 835 }, -{ 0x80, 205, 0, 851 }, -{ 0x280, 205, 0, 849 }, -{ 0x180, 205, 0, 850 }, -{ 0x40, 205, 0, 863 }, -{ 0x140, 205, 0, 861 }, -{ 0xc0, 205, 0, 862 }, -{ 0x20, 205, 0, 875 }, -{ 0xa0, 205, 0, 873 }, -{ 0x60, 205, 0, 874 }, -{ 0x10, 205, 0, 887 }, -{ 0x50, 205, 0, 885 }, -{ 0x30, 205, 0, 886 }, -{ 0x8, 205, 0, 899 }, -{ 0x28, 205, 0, 897 }, -{ 0x18, 205, 0, 898 }, -{ 0x4, 205, 0, 909 }, -{ 0x2, 205, 0, 910 }, -{ 0x1, 205, 0, 911 }, -{ 0x500, 202, 0, 827 }, -{ 0x1500, 202, 0, 825 }, -{ 0xd00, 202, 0, 826 }, -{ 0x300, 202, 0, 839 }, -{ 0x1300, 202, 0, 815 }, -{ 0x5300, 202, 0, 813 }, -{ 0x3300, 202, 0, 814 }, -{ 0xb00, 202, 0, 837 }, -{ 0x700, 202, 0, 838 }, -{ 0x80, 202, 0, 854 }, -{ 0x280, 202, 0, 852 }, -{ 0x180, 202, 0, 853 }, -{ 0x40, 202, 0, 866 }, -{ 0x140, 202, 0, 864 }, -{ 0xc0, 202, 0, 865 }, -{ 0x20, 202, 0, 878 }, -{ 0xa0, 202, 0, 876 }, -{ 0x60, 202, 0, 877 }, -{ 0x10, 202, 0, 890 }, -{ 0x50, 202, 0, 888 }, -{ 0x30, 202, 0, 889 }, -{ 0x8, 202, 0, 902 }, -{ 0x28, 202, 0, 900 }, -{ 0x18, 202, 0, 901 }, -{ 0x4, 202, 0, 912 }, -{ 0x2, 202, 0, 913 }, -{ 0x1, 202, 0, 914 }, -{ 0x1, 49, 0, 917 }, -{ 0x3, 48, 0, 918 }, -{ 0x1, 374, 0, 919 }, -{ 0x1, 380, 0, 920 }, -{ 0x2, 334, 0, 923 }, -{ 0x1, 334, 0, 924 }, -{ 0x2, 332, 0, 925 }, -{ 0x1, 332, 0, 926 }, -{ 0x1, 331, 0, 927 }, -{ 0x1, 276, 0, 932 }, -{ 0x1, 275, 0, 933 }, -{ 0x1, 274, 0, 934 }, -{ 0x1, 273, 0, 935 }, -{ 0x1, 201, 0, 936 }, -{ 0x1, 200, 0, 937 }, -{ 0x1, 272, 0, 938 }, -{ 0x1, 271, 0, 939 }, -{ 0x1, 270, 0, 940 }, -{ 0x1, 269, 0, 941 }, -{ 0x1, 268, 0, 942 }, -{ 0x1, 267, 0, 943 }, -{ 0x1, 266, 0, 944 }, -{ 0x2, 199, 0, 945 }, -{ 0x1, 199, 0, 946 }, -{ 0x2, 314, 0, 952 }, -{ 0x1, 314, 0, 953 }, -{ 0x1, 265, 0, 954 }, -{ 0x1, 264, 0, 955 }, -{ 0x1, 263, 0, 956 }, -{ 0x1, 262, 0, 957 }, -{ 0x1, 8, 0, 958 }, -{ 0x1, 261, 0, 959 }, -{ 0x1, 260, 0, 960 }, -{ 0x1, 259, 0, 961 }, -{ 0x1, 258, 0, 962 }, -{ 0x1, 336, 0, 963 }, -{ 0x1, 347, 0, 964 }, -{ 0x1, 337, 0, 965 }, -{ 0x1, 369, 0, 966 }, -{ 0x1, 257, 0, 969 }, -{ 0x1, 198, 0, 970 }, -{ 0x1, 134, 0, 973 }, -{ 0x2, 239, 0, 977 }, -{ 0x1, 239, 0, 978 }, -{ 0x1, 193, 0, 979 }, -{ 0x5, 47, 0, 981 }, -{ 0x3, 47, 0, 982 }, -{ 0x5, 46, 0, 983 }, -{ 0x3, 46, 0, 984 }, -{ 0x1, 313, 0, 985 }, -{ 0x1, 321, 0, 986 }, -{ 0x1, 319, 0, 987 }, -{ 0x1, 340, 0, 988 }, -{ 0x1, 320, 0, 989 }, -{ 0x1, 318, 0, 990 }, -{ 0x2, 326, 0, 991 }, -{ 0x1, 326, 0, 993 }, -{ 0x2, 324, 0, 992 }, -{ 0x1, 324, 0, 994 }, -{ 0x2, 344, 0, 995 }, -{ 0x1, 344, 0, 998 }, -{ 0x2, 325, 0, 996 }, -{ 0x1, 325, 0, 999 }, -{ 0x2, 323, 0, 997 }, -{ 0x1, 323, 0, 1000 }, -{ 0x1, 286, 0, 1001 }, -{ 0x1, 285, 0, 1002 }, -{ 0x1, 317, 0, 1003 }, -{ 0x1, 308, 0, 1004 }, -{ 0x1, 310, 0, 1005 }, -{ 0x1, 307, 0, 1006 }, -{ 0x1, 309, 0, 1007 }, -{ 0x2, 384, 0, 1008 }, -{ 0x1, 384, 0, 1011 }, -{ 0x2, 383, 0, 1009 }, -{ 0x1, 383, 0, 1012 }, -{ 0x2, 382, 0, 1010 }, -{ 0x1, 382, 0, 1013 }, -{ 0x1, 296, 0, 1014 }, -{ 0x2, 295, 0, 1015 }, -{ 0x1, 295, 0, 1016 }, -{ 0x2, 242, 0, 1017 }, -{ 0x1, 242, 0, 1020 }, -{ 0x2, 241, 0, 1018 }, -{ 0x1, 241, 0, 1021 }, -{ 0x2, 240, 0, 1019 }, -{ 0x1, 240, 0, 1022 }, -{ 0x2, 311, 0, 1023 }, -{ 0x1, 311, 0, 1024 }, -{ 0x2, 312, 0, 1025 }, -{ 0x1, 312, 0, 1026 }, -{ 0xa, 378, 1, 1032 }, -{ 0xa, 379, 0, 1031 }, -{ 0x1a, 378, 1, 1028 }, -{ 0x32, 379, 0, 1027 }, -{ 0x6, 378, 1, 1036 }, -{ 0x6, 379, 0, 1035 }, -{ 0x1, 378, 1, 1042 }, -{ 0x1, 379, 0, 1041 }, -{ 0x9, 378, 1, 1034 }, -{ 0x9, 379, 0, 1033 }, -{ 0x19, 378, 1, 1030 }, -{ 0x31, 379, 0, 1029 }, -{ 0x5, 378, 1, 1038 }, -{ 0x5, 379, 0, 1037 }, -{ 0x3, 378, 1, 1040 }, -{ 0x3, 379, 0, 1039 }, -{ 0xa, 375, 1, 1048 }, -{ 0xa, 376, 0, 1047 }, -{ 0x1a, 375, 1, 1044 }, -{ 0x32, 376, 0, 1043 }, -{ 0x6, 375, 1, 1052 }, -{ 0x6, 376, 0, 1051 }, -{ 0x1, 375, 1, 1058 }, -{ 0x1, 376, 0, 1057 }, -{ 0x9, 375, 1, 1050 }, -{ 0x9, 376, 0, 1049 }, -{ 0x19, 375, 1, 1046 }, -{ 0x31, 376, 0, 1045 }, -{ 0x5, 375, 1, 1054 }, -{ 0x5, 376, 0, 1053 }, -{ 0x3, 375, 1, 1056 }, -{ 0x3, 376, 0, 1055 }, -{ 0x1, 102, 0, 1059 }, -{ 0x1, 101, 0, 1060 }, -{ 0x1, 339, 1, 1062 }, -{ 0x1, 100, 0, 1061 }, -{ 0x2, 343, 1, 1064 }, -{ 0x2, 104, 0, 1063 }, -{ 0x1, 343, 1, 1066 }, -{ 0x1, 104, 0, 1065 }, -{ 0x1, 345, 0, 1067 }, -{ 0x1, 99, 0, 1068 }, -{ 0x2, 98, 0, 1069 }, -{ 0x2, 97, 0, 1070 }, -{ 0x1, 396, 1, 1076 }, -{ 0x1, 197, 0, 971 }, -{ 0x1, 395, 0, 1077 }, -{ 0x1, 394, 1, 1078 }, -{ 0x1, 196, 0, 980 }, -{ 0x1, 256, 0, 1079 }, -{ 0x1, 255, 1, 1080 }, -{ 0x1, 238, 0, 972 }, -{ 0x1, 254, 0, 1081 }, -{ 0x1, 253, 1, 1082 }, -{ 0x1, 373, 0, 974 }, -{ 0x1, 252, 1, 1083 }, -{ 0x1, 346, 0, 976 }, -{ 0x1, 251, 0, 1084 }, -{ 0x1, 250, 0, 1085 }, -{ 0x1, 249, 1, 1086 }, -{ 0x2, 346, 0, 975 }, -{ 0x10, 248, 0, 1090 }, -{ 0x90, 248, 0, 1088 }, -{ 0x190, 248, 0, 1087 }, -{ 0x50, 248, 0, 1089 }, -{ 0x30, 248, 0, 1092 }, -{ 0x70, 248, 0, 1091 }, -{ 0x8, 248, 0, 1094 }, -{ 0x18, 248, 0, 1093 }, -{ 0x4, 248, 0, 1095 }, -{ 0x1, 248, 0, 1098 }, -{ 0x3, 248, 0, 1097 }, -{ 0x1, 247, 1, 1099 }, -{ 0x2, 248, 0, 1096 }, -{ 0x3, 45, 0, 1100 }, -{ 0x1, 289, 1, 1101 }, -{ 0x1, 290, 1, 967 }, -{ 0x1, 291, 0, 87 }, -{ 0x1, 33, 1, 1102 }, -{ 0x1, 34, 1, 968 }, -{ 0x1, 35, 0, 88 }, -{ 0x1, 187, 0, 1103 }, -{ 0x4, 389, 0, 1104 }, -{ 0x2, 389, 0, 1105 }, -{ 0x1, 389, 1, 1107 }, -{ 0x1, 390, 0, 1106 }, -{ 0x8, 391, 0, 1108 }, -{ 0x4, 391, 0, 1109 }, -{ 0x1, 391, 1, 1111 }, -{ 0x2, 391, 0, 1110 }, -{ 0x8, 176, 0, 1112 }, -{ 0x4, 176, 0, 1113 }, -{ 0x2, 176, 0, 1114 }, -{ 0x1, 176, 1, 1116 }, -{ 0x1, 177, 0, 1115 }, -{ 0x10, 178, 0, 1117 }, -{ 0x8, 178, 0, 1118 }, -{ 0x4, 178, 0, 1119 }, -{ 0x1, 178, 1, 1121 }, -{ 0x2, 178, 0, 1120 }, -{ 0x220, 148, 0, 1122 }, -{ 0x120, 148, 0, 1123 }, -{ 0xa0, 148, 0, 1124 }, -{ 0x60, 148, 1, 1126 }, -{ 0x4, 149, 0, 1125 }, -{ 0x110, 148, 0, 1132 }, -{ 0x90, 148, 0, 1133 }, -{ 0x50, 148, 0, 1134 }, -{ 0x30, 148, 1, 1136 }, -{ 0x2, 149, 0, 1135 }, -{ 0x8, 148, 0, 1137 }, -{ 0x4, 148, 0, 1138 }, -{ 0x2, 148, 0, 1139 }, -{ 0x1, 148, 1, 1141 }, -{ 0x1, 149, 0, 1140 }, -{ 0x440, 150, 0, 1127 }, -{ 0x240, 150, 0, 1128 }, -{ 0x140, 150, 0, 1129 }, -{ 0xc0, 150, 1, 1131 }, -{ 0x40, 150, 0, 1130 }, -{ 0x220, 150, 0, 1142 }, -{ 0x120, 150, 0, 1143 }, -{ 0xa0, 150, 0, 1144 }, -{ 0x60, 150, 1, 1146 }, -{ 0x20, 150, 0, 1145 }, -{ 0x10, 150, 0, 1147 }, -{ 0x8, 150, 0, 1148 }, -{ 0x4, 150, 0, 1149 }, -{ 0x1, 150, 1, 1151 }, -{ 0x2, 150, 0, 1150 }, -{ 0x8, 172, 0, 1152 }, -{ 0x4, 172, 0, 1153 }, -{ 0x2, 172, 0, 1154 }, -{ 0x1, 172, 1, 1156 }, -{ 0x1, 173, 0, 1155 }, -{ 0x220, 144, 0, 1157 }, -{ 0x120, 144, 0, 1158 }, -{ 0xa0, 144, 0, 1159 }, -{ 0x60, 144, 1, 1161 }, -{ 0x4, 145, 0, 1160 }, -{ 0x110, 144, 0, 1167 }, -{ 0x90, 144, 0, 1168 }, -{ 0x50, 144, 0, 1169 }, -{ 0x30, 144, 1, 1171 }, -{ 0x2, 145, 0, 1170 }, -{ 0x8, 144, 0, 1172 }, -{ 0x4, 144, 0, 1173 }, -{ 0x2, 144, 0, 1174 }, -{ 0x1, 144, 1, 1176 }, -{ 0x1, 145, 0, 1175 }, -{ 0x440, 190, 0, 1162 }, -{ 0x240, 190, 0, 1163 }, -{ 0x140, 190, 0, 1164 }, -{ 0xc0, 190, 1, 1166 }, -{ 0x40, 190, 0, 1165 }, -{ 0x220, 190, 0, 1177 }, -{ 0x120, 190, 0, 1178 }, -{ 0xa0, 190, 0, 1179 }, -{ 0x60, 190, 1, 1181 }, -{ 0x20, 190, 0, 1180 }, -{ 0x10, 190, 0, 1182 }, -{ 0x8, 190, 0, 1183 }, -{ 0x4, 190, 0, 1184 }, -{ 0x1, 190, 1, 1186 }, -{ 0x2, 190, 0, 1185 }, -{ 0x8, 164, 0, 1187 }, -{ 0x4, 164, 0, 1188 }, -{ 0x2, 164, 0, 1189 }, -{ 0x1, 164, 1, 1191 }, -{ 0x1, 165, 0, 1190 }, -{ 0x10, 171, 0, 1192 }, -{ 0x8, 171, 0, 1193 }, -{ 0x4, 171, 0, 1194 }, -{ 0x1, 171, 1, 1196 }, -{ 0x2, 171, 0, 1195 }, -{ 0x220, 135, 0, 1197 }, -{ 0x120, 135, 0, 1198 }, -{ 0xa0, 135, 0, 1199 }, -{ 0x60, 135, 1, 1201 }, -{ 0x4, 136, 0, 1200 }, -{ 0x110, 135, 0, 1222 }, -{ 0x90, 135, 0, 1223 }, -{ 0x50, 135, 0, 1224 }, -{ 0x30, 135, 1, 1226 }, -{ 0x2, 136, 0, 1225 }, -{ 0x8, 135, 0, 1227 }, -{ 0x4, 135, 0, 1228 }, -{ 0x2, 135, 0, 1229 }, -{ 0x1, 135, 1, 1231 }, -{ 0x1, 136, 0, 1230 }, -{ 0x440, 143, 0, 1202 }, -{ 0x240, 143, 0, 1203 }, -{ 0x140, 143, 0, 1204 }, -{ 0xc0, 143, 1, 1206 }, -{ 0x40, 143, 0, 1205 }, -{ 0x220, 143, 0, 1232 }, -{ 0x120, 143, 0, 1233 }, -{ 0xa0, 143, 0, 1234 }, -{ 0x60, 143, 1, 1236 }, -{ 0x20, 143, 0, 1235 }, -{ 0x10, 143, 0, 1237 }, -{ 0x8, 143, 0, 1238 }, -{ 0x4, 143, 0, 1239 }, -{ 0x1, 143, 1, 1241 }, -{ 0x2, 143, 0, 1240 }, -{ 0x440, 106, 0, 1207 }, -{ 0x240, 106, 0, 1208 }, -{ 0x140, 106, 0, 1209 }, -{ 0xc0, 106, 1, 1211 }, -{ 0x40, 106, 0, 1210 }, -{ 0x220, 106, 0, 1242 }, -{ 0x120, 106, 0, 1243 }, -{ 0xa0, 106, 0, 1244 }, -{ 0x60, 106, 1, 1246 }, -{ 0x20, 106, 0, 1245 }, -{ 0x10, 106, 0, 1247 }, -{ 0x8, 106, 0, 1248 }, -{ 0x1, 106, 1, 1251 }, -{ 0x2, 106, 0, 1250 }, -{ 0x440, 151, 1, 1217 }, -{ 0x441, 131, 0, 1212 }, -{ 0x240, 151, 1, 1218 }, -{ 0x241, 131, 0, 1213 }, -{ 0x140, 151, 1, 1219 }, -{ 0x141, 131, 0, 1214 }, -{ 0xc0, 151, 1, 1221 }, -{ 0x40, 151, 1, 1220 }, -{ 0xc1, 131, 1, 1216 }, -{ 0x41, 131, 0, 1215 }, -{ 0x220, 151, 1, 1262 }, -{ 0x221, 131, 0, 1252 }, -{ 0x120, 151, 1, 1263 }, -{ 0x121, 131, 0, 1253 }, -{ 0xa0, 151, 1, 1264 }, -{ 0xa1, 131, 0, 1254 }, -{ 0x60, 151, 1, 1266 }, -{ 0x20, 151, 1, 1265 }, -{ 0x61, 131, 1, 1256 }, -{ 0x21, 131, 0, 1255 }, -{ 0x10, 151, 1, 1267 }, -{ 0x11, 131, 0, 1257 }, -{ 0x8, 151, 1, 1268 }, -{ 0x9, 131, 0, 1258 }, -{ 0x4, 151, 1, 1269 }, -{ 0x5, 131, 0, 1259 }, -{ 0x1, 151, 1, 1271 }, -{ 0x2, 151, 1, 1270 }, -{ 0x3, 131, 1, 1261 }, -{ 0x1, 131, 0, 1260 }, -{ 0x1, 116, 1, 1275 }, -{ 0x1, 117, 0, 1274 }, -{ 0x3, 116, 1, 1273 }, -{ 0x3, 117, 0, 1272 }, -{ 0x1108, 120, 1, 1356 }, -{ 0x1108, 124, 0, 1276 }, -{ 0x908, 120, 1, 1357 }, -{ 0x908, 124, 0, 1277 }, -{ 0x508, 120, 1, 1358 }, -{ 0x508, 124, 0, 1278 }, -{ 0x308, 120, 1, 1360 }, -{ 0x18, 121, 1, 1359 }, -{ 0x308, 124, 1, 1280 }, -{ 0x18, 125, 0, 1279 }, -{ 0x88, 120, 1, 1376 }, -{ 0x88, 124, 0, 1316 }, -{ 0x48, 120, 1, 1377 }, -{ 0x48, 124, 0, 1317 }, -{ 0x28, 120, 1, 1378 }, -{ 0x28, 124, 0, 1318 }, -{ 0x18, 120, 1, 1380 }, -{ 0x8, 121, 1, 1379 }, -{ 0x18, 124, 1, 1320 }, -{ 0x8, 125, 0, 1319 }, -{ 0x884, 120, 1, 1361 }, -{ 0x442, 122, 1, 1306 }, -{ 0x884, 124, 1, 1291 }, -{ 0x442, 126, 0, 1281 }, -{ 0x484, 120, 1, 1362 }, -{ 0x242, 122, 1, 1307 }, -{ 0x484, 124, 1, 1292 }, -{ 0x242, 126, 0, 1282 }, -{ 0x284, 120, 1, 1363 }, -{ 0x142, 122, 1, 1308 }, -{ 0x284, 124, 1, 1293 }, -{ 0x142, 126, 0, 1283 }, -{ 0x184, 120, 1, 1365 }, -{ 0xc, 121, 1, 1364 }, -{ 0xc2, 122, 1, 1310 }, -{ 0x6, 123, 1, 1309 }, -{ 0x184, 124, 1, 1295 }, -{ 0xc, 125, 1, 1294 }, -{ 0xc2, 126, 1, 1285 }, -{ 0x6, 127, 0, 1284 }, -{ 0x44, 120, 1, 1381 }, -{ 0x22, 122, 1, 1346 }, -{ 0x44, 124, 1, 1331 }, -{ 0x22, 126, 0, 1321 }, -{ 0x24, 120, 1, 1382 }, -{ 0x12, 122, 1, 1347 }, -{ 0x24, 124, 1, 1332 }, -{ 0x12, 126, 0, 1322 }, -{ 0x14, 120, 1, 1383 }, -{ 0xa, 122, 1, 1348 }, -{ 0x14, 124, 1, 1333 }, -{ 0xa, 126, 0, 1323 }, -{ 0xc, 120, 1, 1385 }, -{ 0x4, 121, 1, 1384 }, -{ 0x6, 122, 1, 1350 }, -{ 0x2, 123, 1, 1349 }, -{ 0xc, 124, 1, 1335 }, -{ 0x4, 125, 1, 1334 }, -{ 0x6, 126, 1, 1325 }, -{ 0x2, 127, 0, 1324 }, -{ 0x442, 120, 1, 1366 }, -{ 0x221, 122, 1, 1311 }, -{ 0x442, 124, 1, 1296 }, -{ 0x221, 126, 0, 1286 }, -{ 0x242, 120, 1, 1367 }, -{ 0x121, 122, 1, 1312 }, -{ 0x242, 124, 1, 1297 }, -{ 0x121, 126, 0, 1287 }, -{ 0x142, 120, 1, 1368 }, -{ 0xa1, 122, 1, 1313 }, -{ 0x142, 124, 1, 1298 }, -{ 0xa1, 126, 0, 1288 }, -{ 0xc2, 120, 1, 1370 }, -{ 0x6, 121, 1, 1369 }, -{ 0x61, 122, 1, 1315 }, -{ 0x3, 123, 1, 1314 }, -{ 0xc2, 124, 1, 1300 }, -{ 0x6, 125, 1, 1299 }, -{ 0x61, 126, 1, 1290 }, -{ 0x3, 127, 0, 1289 }, -{ 0x22, 120, 1, 1386 }, -{ 0x11, 122, 1, 1351 }, -{ 0x22, 124, 1, 1336 }, -{ 0x11, 126, 0, 1326 }, -{ 0x12, 120, 1, 1387 }, -{ 0x9, 122, 1, 1352 }, -{ 0x12, 124, 1, 1337 }, -{ 0x9, 126, 0, 1327 }, -{ 0xa, 120, 1, 1388 }, -{ 0x5, 122, 1, 1353 }, -{ 0xa, 124, 1, 1338 }, -{ 0x5, 126, 0, 1328 }, -{ 0x6, 120, 1, 1390 }, -{ 0x2, 121, 1, 1389 }, -{ 0x3, 122, 1, 1355 }, -{ 0x1, 123, 1, 1354 }, -{ 0x6, 124, 1, 1340 }, -{ 0x2, 125, 1, 1339 }, -{ 0x3, 126, 1, 1330 }, -{ 0x1, 127, 0, 1329 }, -{ 0x221, 120, 1, 1371 }, -{ 0x221, 124, 0, 1301 }, -{ 0x121, 120, 1, 1372 }, -{ 0x121, 124, 0, 1302 }, -{ 0xa1, 120, 1, 1373 }, -{ 0xa1, 124, 0, 1303 }, -{ 0x61, 120, 1, 1375 }, -{ 0x3, 121, 1, 1374 }, -{ 0x61, 124, 1, 1305 }, -{ 0x3, 125, 0, 1304 }, -{ 0x11, 120, 1, 1391 }, -{ 0x11, 124, 0, 1341 }, -{ 0x9, 120, 1, 1392 }, -{ 0x9, 124, 0, 1342 }, -{ 0x5, 120, 1, 1393 }, -{ 0x5, 124, 0, 1343 }, -{ 0x3, 120, 1, 1395 }, -{ 0x1, 121, 1, 1394 }, -{ 0x3, 124, 1, 1345 }, -{ 0x1, 125, 0, 1344 }, -{ 0x442, 162, 0, 1396 }, -{ 0x242, 162, 0, 1397 }, -{ 0x142, 162, 0, 1398 }, -{ 0xc2, 162, 1, 1400 }, -{ 0x6, 163, 1, 1399 }, -{ 0x1, 381, 0, 921 }, -{ 0x22, 162, 0, 1406 }, -{ 0x12, 162, 0, 1407 }, -{ 0xa, 162, 0, 1408 }, -{ 0x6, 162, 1, 1410 }, -{ 0x2, 163, 1, 1409 }, -{ 0x2, 315, 0, 950 }, -{ 0x221, 162, 0, 1401 }, -{ 0x121, 162, 0, 1402 }, -{ 0xa1, 162, 0, 1403 }, -{ 0x61, 162, 1, 1405 }, -{ 0x3, 163, 1, 1404 }, -{ 0x1, 377, 0, 922 }, -{ 0x11, 162, 0, 1411 }, -{ 0x9, 162, 0, 1412 }, -{ 0x5, 162, 0, 1413 }, -{ 0x3, 162, 1, 1415 }, -{ 0x1, 163, 1, 1414 }, -{ 0x1, 315, 0, 951 }, -{ 0x4, 168, 0, 1416 }, -{ 0x1, 168, 0, 1418 }, -{ 0x1, 175, 0, 1419 }, -{ 0x1, 174, 1, 1420 }, -{ 0x2, 168, 0, 1417 }, -{ 0x1, 153, 0, 1421 }, -{ 0x880, 159, 0, 1422 }, -{ 0x480, 159, 0, 1423 }, -{ 0x280, 159, 0, 1424 }, -{ 0x180, 159, 1, 1426 }, -{ 0x80, 160, 0, 1425 }, -{ 0x440, 159, 1, 1437 }, -{ 0x88, 161, 0, 1427 }, -{ 0x240, 159, 1, 1438 }, -{ 0x48, 161, 0, 1428 }, -{ 0x140, 159, 1, 1439 }, -{ 0x28, 161, 0, 1429 }, -{ 0xc0, 159, 1, 1441 }, -{ 0x40, 160, 1, 1440 }, -{ 0x18, 161, 1, 1431 }, -{ 0x8, 161, 0, 1430 }, -{ 0x220, 159, 1, 1442 }, -{ 0x44, 161, 0, 1432 }, -{ 0x120, 159, 1, 1443 }, -{ 0x24, 161, 0, 1433 }, -{ 0xa0, 159, 1, 1444 }, -{ 0x14, 161, 0, 1434 }, -{ 0x60, 159, 1, 1446 }, -{ 0x20, 160, 1, 1445 }, -{ 0xc, 161, 1, 1436 }, -{ 0x4, 161, 0, 1435 }, -{ 0x110, 159, 0, 1447 }, -{ 0x90, 159, 0, 1448 }, -{ 0x50, 159, 0, 1449 }, -{ 0x30, 159, 1, 1451 }, -{ 0x10, 160, 1, 1450 }, -{ 0x1, 333, 0, 915 }, -{ 0x88, 159, 0, 1452 }, -{ 0x48, 159, 0, 1453 }, -{ 0x28, 159, 0, 1454 }, -{ 0x18, 159, 1, 1456 }, -{ 0x8, 160, 1, 1455 }, -{ 0xc, 316, 0, 947 }, -{ 0x44, 159, 1, 1467 }, -{ 0x22, 161, 0, 1457 }, -{ 0x24, 159, 1, 1468 }, -{ 0x12, 161, 0, 1458 }, -{ 0x14, 159, 1, 1469 }, -{ 0xa, 161, 0, 1459 }, -{ 0xc, 159, 1, 1471 }, -{ 0x4, 160, 1, 1470 }, -{ 0x6, 161, 1, 1461 }, -{ 0x2, 161, 1, 1460 }, -{ 0x6, 316, 0, 948 }, -{ 0x22, 159, 1, 1472 }, -{ 0x11, 161, 0, 1462 }, -{ 0x12, 159, 1, 1473 }, -{ 0x9, 161, 0, 1463 }, -{ 0xa, 159, 1, 1474 }, -{ 0x5, 161, 0, 1464 }, -{ 0x6, 159, 1, 1476 }, -{ 0x2, 160, 1, 1475 }, -{ 0x3, 161, 1, 1466 }, -{ 0x1, 161, 1, 1465 }, -{ 0x3, 316, 0, 949 }, -{ 0x11, 159, 0, 1477 }, -{ 0x9, 159, 0, 1478 }, -{ 0x5, 159, 0, 1479 }, -{ 0x3, 159, 1, 1481 }, -{ 0x1, 160, 1, 1480 }, -{ 0x1, 113, 0, 916 }, -{ 0x8, 155, 0, 1482 }, -{ 0x4, 155, 0, 1483 }, -{ 0x2, 155, 0, 1484 }, -{ 0x1, 155, 1, 1486 }, -{ 0x1, 156, 1, 1485 }, -{ 0x1, 280, 0, 928 }, -{ 0x8, 157, 0, 1487 }, -{ 0x4, 157, 0, 1488 }, -{ 0x2, 157, 0, 1489 }, -{ 0x1, 157, 1, 1491 }, -{ 0x1, 158, 1, 1490 }, -{ 0x1, 279, 0, 929 }, -{ 0x8, 166, 0, 1492 }, -{ 0x4, 166, 0, 1493 }, -{ 0x2, 166, 0, 1494 }, -{ 0x1, 166, 1, 1496 }, -{ 0x1, 167, 1, 1495 }, -{ 0x1, 278, 0, 930 }, -{ 0x8, 169, 0, 1497 }, -{ 0x4, 169, 0, 1498 }, -{ 0x2, 169, 0, 1499 }, -{ 0x1, 169, 1, 1501 }, -{ 0x1, 170, 1, 1500 }, -{ 0x1, 277, 0, 931 }, -{ 0x8, 181, 0, 1502 }, -{ 0x4, 181, 0, 1503 }, -{ 0x2, 181, 0, 1504 }, -{ 0x1, 181, 1, 1506 }, -{ 0x1, 182, 0, 1505 }, -{ 0x8, 179, 0, 1507 }, -{ 0x4, 179, 0, 1508 }, -{ 0x2, 179, 0, 1509 }, -{ 0x1, 179, 1, 1511 }, -{ 0x1, 180, 0, 1510 }, -{ 0x1, 288, 0, 1512 }, -{ 0x1, 32, 0, 1513 }, -{ 0x8, 114, 0, 1514 }, -{ 0x4, 114, 0, 1515 }, -{ 0x2, 114, 0, 1516 }, -{ 0x1, 114, 1, 1518 }, -{ 0x1, 115, 0, 1517 }, -{ 0x8, 118, 0, 1519 }, -{ 0x4, 118, 0, 1520 }, -{ 0x2, 118, 0, 1521 }, -{ 0x1, 118, 1, 1523 }, -{ 0x1, 119, 0, 1522 }, -{ 0x8, 188, 0, 1524 }, -{ 0x4, 188, 0, 1525 }, -{ 0x2, 188, 0, 1526 }, -{ 0x1, 188, 1, 1528 }, -{ 0x1, 189, 0, 1527 }, -{ 0x1, 130, 0, 1529 }, -{ 0x442, 128, 0, 1530 }, -{ 0x242, 128, 0, 1531 }, -{ 0x142, 128, 0, 1532 }, -{ 0xc2, 128, 1, 1534 }, -{ 0x6, 129, 0, 1533 }, -{ 0x22, 128, 0, 1540 }, -{ 0x12, 128, 0, 1541 }, -{ 0xa, 128, 0, 1542 }, -{ 0x6, 128, 1, 1544 }, -{ 0x2, 129, 1, 1543 }, -{ 0x1, 98, 0, 1071 }, -{ 0x221, 128, 0, 1535 }, -{ 0x121, 128, 0, 1536 }, -{ 0xa1, 128, 0, 1537 }, -{ 0x61, 128, 1, 1539 }, -{ 0x3, 129, 0, 1538 }, -{ 0x11, 128, 0, 1545 }, -{ 0x9, 128, 0, 1546 }, -{ 0x5, 128, 0, 1547 }, -{ 0x3, 128, 1, 1549 }, -{ 0x1, 129, 1, 1548 }, -{ 0x1, 97, 0, 1072 }, -{ 0x1, 194, 0, 1550 }, -{ 0x1, 152, 0, 1551 }, -{ 0x1, 112, 0, 1552 }, -{ 0x1, 111, 0, 1553 }, -{ 0x4, 191, 0, 1554 }, -{ 0x2, 191, 0, 1555 }, -{ 0x1, 191, 0, 1556 }, -{ 0x1, 154, 0, 1557 }, -{ 0x2, 192, 0, 1558 }, -{ 0x1, 192, 0, 1559 }, -{ 0x4, 142, 0, 1560 }, -{ 0x2, 142, 0, 1561 }, -{ 0x1, 142, 0, 1562 }, -{ 0x4, 139, 0, 1563 }, -{ 0x1, 147, 0, 1566 }, -{ 0x1, 146, 1, 1567 }, -{ 0x2, 139, 0, 1564 }, -{ 0x1, 105, 0, 1568 }, -{ 0x1, 246, 1, 1569 }, -{ 0x1, 139, 0, 1565 }, -{ 0x8, 107, 0, 1570 }, -{ 0x4, 107, 0, 1571 }, -{ 0x2, 107, 0, 1572 }, -{ 0x1, 107, 1, 1574 }, -{ 0x1, 108, 0, 1573 }, -{ 0x8, 109, 0, 1575 }, -{ 0x4, 109, 0, 1576 }, -{ 0x2, 109, 0, 1577 }, -{ 0x1, 109, 1, 1579 }, -{ 0x1, 110, 1, 1578 }, -{ 0x1, 372, 0, 1073 }, -{ 0x8, 137, 0, 1580 }, -{ 0x4, 137, 0, 1581 }, -{ 0x2, 137, 0, 1582 }, -{ 0x1, 137, 1, 1584 }, -{ 0x1, 138, 1, 1583 }, -{ 0x1, 371, 0, 1074 }, -{ 0x8, 140, 0, 1585 }, +{ 0x51, 40, 0, 10 }, +{ 0x31, 40, 1, 20 }, +{ 0x11, 41, 0, 19 }, +{ 0x29, 40, 0, 12 }, +{ 0x19, 40, 1, 24 }, +{ 0x9, 41, 0, 23 }, +{ 0x15, 40, 0, 14 }, +{ 0xd, 40, 1, 28 }, +{ 0x5, 41, 0, 27 }, +{ 0xb, 40, 0, 16 }, +{ 0x7, 40, 1, 32 }, +{ 0x3, 41, 0, 31 }, +{ 0x51, 38, 1, 58 }, +{ 0x50, 38, 0, 34 }, +{ 0xd1, 38, 1, 57 }, +{ 0xd0, 38, 0, 33 }, +{ 0x31, 38, 1, 68 }, +{ 0x30, 38, 1, 44 }, +{ 0x11, 39, 1, 67 }, +{ 0x10, 39, 0, 43 }, +{ 0x71, 38, 1, 66 }, +{ 0x70, 38, 1, 42 }, +{ 0x31, 39, 1, 65 }, +{ 0x30, 39, 0, 41 }, +{ 0x29, 38, 1, 60 }, +{ 0x28, 38, 0, 36 }, +{ 0x69, 38, 1, 59 }, +{ 0x68, 38, 0, 35 }, +{ 0x19, 38, 1, 72 }, +{ 0x18, 38, 1, 48 }, +{ 0x9, 39, 1, 71 }, +{ 0x8, 39, 0, 47 }, +{ 0x39, 38, 1, 70 }, +{ 0x38, 38, 1, 46 }, +{ 0x19, 39, 1, 69 }, +{ 0x18, 39, 0, 45 }, +{ 0x15, 38, 1, 62 }, +{ 0x14, 38, 0, 38 }, +{ 0x35, 38, 1, 61 }, +{ 0x34, 38, 0, 37 }, +{ 0xd, 38, 1, 76 }, +{ 0xc, 38, 1, 52 }, +{ 0x5, 39, 1, 75 }, +{ 0x4, 39, 0, 51 }, +{ 0x1d, 38, 1, 74 }, +{ 0x1c, 38, 1, 50 }, +{ 0xd, 39, 1, 73 }, +{ 0xc, 39, 0, 49 }, +{ 0xb, 38, 1, 64 }, +{ 0xa, 38, 0, 40 }, +{ 0x1b, 38, 1, 63 }, +{ 0x1a, 38, 0, 39 }, +{ 0x7, 38, 1, 80 }, +{ 0x6, 38, 1, 56 }, +{ 0x3, 39, 1, 79 }, +{ 0x2, 39, 0, 55 }, +{ 0xf, 38, 1, 78 }, +{ 0xe, 38, 1, 54 }, +{ 0x7, 39, 1, 77 }, +{ 0x6, 39, 0, 53 }, +{ 0x8, 37, 0, 82 }, +{ 0x18, 37, 0, 81 }, +{ 0x1, 37, 1, 86 }, +{ 0x2, 37, 0, 85 }, +{ 0x3, 37, 1, 84 }, +{ 0x4, 37, 0, 83 }, +{ 0x1, 293, 0, 87 }, +{ 0x20, 246, 0, 98 }, +{ 0x220, 246, 0, 94 }, +{ 0x1220, 246, 0, 91 }, +{ 0xa20, 246, 0, 92 }, +{ 0x620, 246, 0, 93 }, +{ 0x120, 246, 0, 95 }, +{ 0xa0, 246, 0, 96 }, +{ 0x60, 246, 0, 97 }, +{ 0x10, 246, 0, 102 }, +{ 0x90, 246, 0, 99 }, +{ 0x50, 246, 0, 100 }, +{ 0x30, 246, 0, 101 }, +{ 0x8, 246, 0, 103 }, +{ 0x4, 246, 0, 104 }, +{ 0x2, 246, 0, 105 }, +{ 0x1, 246, 0, 106 }, +{ 0x1, 367, 0, 108 }, +{ 0x3, 367, 0, 107 }, +{ 0x2, 373, 0, 109 }, +{ 0x1, 373, 0, 110 }, +{ 0x2, 369, 0, 111 }, +{ 0x1, 369, 0, 112 }, +{ 0x2, 371, 0, 113 }, +{ 0x1, 371, 0, 114 }, +{ 0x2, 375, 0, 115 }, +{ 0x1, 375, 0, 116 }, +{ 0x1, 225, 0, 143 }, +{ 0x5, 225, 0, 141 }, +{ 0x3, 225, 0, 142 }, +{ 0x140, 234, 0, 119 }, +{ 0x540, 234, 0, 117 }, +{ 0x340, 234, 0, 118 }, +{ 0xc0, 234, 0, 131 }, +{ 0x2c0, 234, 0, 129 }, +{ 0x1c0, 234, 0, 130 }, +{ 0x20, 234, 0, 146 }, +{ 0xa0, 234, 0, 144 }, +{ 0x60, 234, 0, 145 }, +{ 0x10, 234, 0, 158 }, +{ 0x50, 234, 0, 156 }, +{ 0x30, 234, 0, 157 }, +{ 0x8, 234, 0, 170 }, +{ 0x28, 234, 0, 168 }, +{ 0x18, 234, 0, 169 }, +{ 0x4, 234, 0, 180 }, +{ 0x2, 234, 0, 181 }, +{ 0x1, 234, 0, 182 }, +{ 0x140, 228, 0, 122 }, +{ 0x540, 228, 0, 120 }, +{ 0x340, 228, 0, 121 }, +{ 0xc0, 228, 0, 134 }, +{ 0x2c0, 228, 0, 132 }, +{ 0x1c0, 228, 0, 133 }, +{ 0x20, 228, 0, 149 }, +{ 0xa0, 228, 0, 147 }, +{ 0x60, 228, 0, 148 }, +{ 0x10, 228, 0, 161 }, +{ 0x50, 228, 0, 159 }, +{ 0x30, 228, 0, 160 }, +{ 0x8, 228, 0, 173 }, +{ 0x28, 228, 0, 171 }, +{ 0x18, 228, 0, 172 }, +{ 0x4, 228, 0, 183 }, +{ 0x2, 228, 0, 184 }, +{ 0x1, 228, 0, 185 }, +{ 0x140, 231, 0, 125 }, +{ 0x540, 231, 0, 123 }, +{ 0x340, 231, 0, 124 }, +{ 0xc0, 231, 0, 137 }, +{ 0x2c0, 231, 0, 135 }, +{ 0x1c0, 231, 0, 136 }, +{ 0x20, 231, 0, 152 }, +{ 0xa0, 231, 0, 150 }, +{ 0x60, 231, 0, 151 }, +{ 0x10, 231, 0, 164 }, +{ 0x50, 231, 0, 162 }, +{ 0x30, 231, 0, 163 }, +{ 0x8, 231, 0, 176 }, +{ 0x28, 231, 0, 174 }, +{ 0x18, 231, 0, 175 }, +{ 0x4, 231, 0, 186 }, +{ 0x2, 231, 0, 187 }, +{ 0x1, 231, 0, 188 }, +{ 0x140, 243, 0, 128 }, +{ 0x540, 243, 0, 126 }, +{ 0x340, 243, 0, 127 }, +{ 0xc0, 243, 0, 140 }, +{ 0x2c0, 243, 0, 138 }, +{ 0x1c0, 243, 0, 139 }, +{ 0x20, 243, 0, 155 }, +{ 0xa0, 243, 0, 153 }, +{ 0x60, 243, 0, 154 }, +{ 0x10, 243, 0, 167 }, +{ 0x50, 243, 0, 165 }, +{ 0x30, 243, 0, 166 }, +{ 0x8, 243, 0, 179 }, +{ 0x28, 243, 0, 177 }, +{ 0x18, 243, 0, 178 }, +{ 0x4, 243, 0, 189 }, +{ 0x2, 243, 0, 190 }, +{ 0x1, 243, 0, 191 }, +{ 0x8, 347, 0, 192 }, +{ 0x4, 347, 0, 193 }, +{ 0x2, 347, 0, 194 }, +{ 0x1, 347, 0, 195 }, +{ 0x20, 245, 0, 203 }, +{ 0x220, 245, 0, 199 }, +{ 0x1220, 245, 0, 196 }, +{ 0xa20, 245, 0, 197 }, +{ 0x620, 245, 0, 198 }, +{ 0x120, 245, 0, 200 }, +{ 0xa0, 245, 0, 201 }, +{ 0x60, 245, 0, 202 }, +{ 0x10, 245, 0, 207 }, +{ 0x90, 245, 0, 204 }, +{ 0x50, 245, 0, 205 }, +{ 0x30, 245, 0, 206 }, +{ 0x8, 245, 0, 208 }, +{ 0x4, 245, 0, 209 }, +{ 0x2, 245, 0, 210 }, +{ 0x1, 245, 0, 211 }, +{ 0x20, 244, 0, 219 }, +{ 0x220, 244, 0, 215 }, +{ 0x1220, 244, 0, 212 }, +{ 0xa20, 244, 0, 213 }, +{ 0x620, 244, 0, 214 }, +{ 0x120, 244, 0, 216 }, +{ 0xa0, 244, 0, 217 }, +{ 0x60, 244, 0, 218 }, +{ 0x10, 244, 0, 223 }, +{ 0x90, 244, 0, 220 }, +{ 0x50, 244, 0, 221 }, +{ 0x30, 244, 0, 222 }, +{ 0x8, 244, 0, 224 }, +{ 0x4, 244, 0, 225 }, +{ 0x2, 244, 0, 226 }, +{ 0x1, 244, 0, 227 }, +{ 0x140, 236, 0, 230 }, +{ 0x540, 236, 0, 228 }, +{ 0x340, 236, 0, 229 }, +{ 0xc0, 236, 0, 239 }, +{ 0x2c0, 236, 0, 237 }, +{ 0x1c0, 236, 0, 238 }, +{ 0x20, 236, 0, 248 }, +{ 0xa0, 236, 0, 246 }, +{ 0x60, 236, 0, 247 }, +{ 0x10, 236, 0, 257 }, +{ 0x50, 236, 0, 255 }, +{ 0x30, 236, 0, 256 }, +{ 0x8, 236, 0, 266 }, +{ 0x28, 236, 0, 264 }, +{ 0x18, 236, 0, 265 }, +{ 0x4, 236, 0, 273 }, +{ 0x2, 236, 0, 274 }, +{ 0x1, 236, 0, 275 }, +{ 0x140, 238, 0, 233 }, +{ 0x540, 238, 0, 231 }, +{ 0x340, 238, 0, 232 }, +{ 0xc0, 238, 0, 242 }, +{ 0x2c0, 238, 0, 240 }, +{ 0x1c0, 238, 0, 241 }, +{ 0x20, 238, 0, 251 }, +{ 0xa0, 238, 0, 249 }, +{ 0x60, 238, 0, 250 }, +{ 0x10, 238, 0, 260 }, +{ 0x50, 238, 0, 258 }, +{ 0x30, 238, 0, 259 }, +{ 0x8, 238, 0, 269 }, +{ 0x28, 238, 0, 267 }, +{ 0x18, 238, 0, 268 }, +{ 0x4, 238, 0, 276 }, +{ 0x2, 238, 0, 277 }, +{ 0x1, 238, 0, 278 }, +{ 0x140, 240, 0, 236 }, +{ 0x540, 240, 0, 234 }, +{ 0x340, 240, 0, 235 }, +{ 0xc0, 240, 0, 245 }, +{ 0x2c0, 240, 0, 243 }, +{ 0x1c0, 240, 0, 244 }, +{ 0x20, 240, 0, 254 }, +{ 0xa0, 240, 0, 252 }, +{ 0x60, 240, 0, 253 }, +{ 0x10, 240, 0, 263 }, +{ 0x50, 240, 0, 261 }, +{ 0x30, 240, 0, 262 }, +{ 0x8, 240, 0, 272 }, +{ 0x28, 240, 0, 270 }, +{ 0x18, 240, 0, 271 }, +{ 0x4, 240, 0, 279 }, +{ 0x2, 240, 0, 280 }, +{ 0x1, 240, 0, 281 }, +{ 0x140, 235, 0, 284 }, +{ 0x540, 235, 0, 282 }, +{ 0x340, 235, 0, 283 }, +{ 0xc0, 235, 0, 293 }, +{ 0x2c0, 235, 0, 291 }, +{ 0x1c0, 235, 0, 292 }, +{ 0x20, 235, 0, 302 }, +{ 0xa0, 235, 0, 300 }, +{ 0x60, 235, 0, 301 }, +{ 0x10, 235, 0, 311 }, +{ 0x50, 235, 0, 309 }, +{ 0x30, 235, 0, 310 }, +{ 0x8, 235, 0, 320 }, +{ 0x28, 235, 0, 318 }, +{ 0x18, 235, 0, 319 }, +{ 0x4, 235, 0, 327 }, +{ 0x2, 235, 0, 328 }, +{ 0x1, 235, 0, 329 }, +{ 0x140, 237, 0, 287 }, +{ 0x540, 237, 0, 285 }, +{ 0x340, 237, 0, 286 }, +{ 0xc0, 237, 0, 296 }, +{ 0x2c0, 237, 0, 294 }, +{ 0x1c0, 237, 0, 295 }, +{ 0x20, 237, 0, 305 }, +{ 0xa0, 237, 0, 303 }, +{ 0x60, 237, 0, 304 }, +{ 0x10, 237, 0, 314 }, +{ 0x50, 237, 0, 312 }, +{ 0x30, 237, 0, 313 }, +{ 0x8, 237, 0, 323 }, +{ 0x28, 237, 0, 321 }, +{ 0x18, 237, 0, 322 }, +{ 0x4, 237, 0, 330 }, +{ 0x2, 237, 0, 331 }, +{ 0x1, 237, 0, 332 }, +{ 0x140, 239, 0, 290 }, +{ 0x540, 239, 0, 288 }, +{ 0x340, 239, 0, 289 }, +{ 0xc0, 239, 0, 299 }, +{ 0x2c0, 239, 0, 297 }, +{ 0x1c0, 239, 0, 298 }, +{ 0x20, 239, 0, 308 }, +{ 0xa0, 239, 0, 306 }, +{ 0x60, 239, 0, 307 }, +{ 0x10, 239, 0, 317 }, +{ 0x50, 239, 0, 315 }, +{ 0x30, 239, 0, 316 }, +{ 0x8, 239, 0, 326 }, +{ 0x28, 239, 0, 324 }, +{ 0x18, 239, 0, 325 }, +{ 0x4, 239, 0, 333 }, +{ 0x2, 239, 0, 334 }, +{ 0x1, 239, 0, 335 }, +{ 0x1, 366, 0, 337 }, +{ 0x3, 366, 0, 336 }, +{ 0x2, 372, 0, 338 }, +{ 0x1, 372, 0, 339 }, +{ 0x2, 368, 0, 340 }, +{ 0x1, 368, 0, 341 }, +{ 0x2, 370, 0, 342 }, +{ 0x1, 370, 0, 343 }, +{ 0x2, 374, 0, 344 }, +{ 0x1, 374, 0, 345 }, +{ 0x1, 224, 0, 372 }, +{ 0x5, 224, 0, 370 }, +{ 0x3, 224, 0, 371 }, +{ 0x140, 233, 0, 348 }, +{ 0x540, 233, 0, 346 }, +{ 0x340, 233, 0, 347 }, +{ 0xc0, 233, 0, 360 }, +{ 0x2c0, 233, 0, 358 }, +{ 0x1c0, 233, 0, 359 }, +{ 0x20, 233, 0, 375 }, +{ 0xa0, 233, 0, 373 }, +{ 0x60, 233, 0, 374 }, +{ 0x10, 233, 0, 387 }, +{ 0x50, 233, 0, 385 }, +{ 0x30, 233, 0, 386 }, +{ 0x8, 233, 0, 399 }, +{ 0x28, 233, 0, 397 }, +{ 0x18, 233, 0, 398 }, +{ 0x4, 233, 0, 409 }, +{ 0x2, 233, 0, 410 }, +{ 0x1, 233, 0, 411 }, +{ 0x140, 227, 0, 351 }, +{ 0x540, 227, 0, 349 }, +{ 0x340, 227, 0, 350 }, +{ 0xc0, 227, 0, 363 }, +{ 0x2c0, 227, 0, 361 }, +{ 0x1c0, 227, 0, 362 }, +{ 0x20, 227, 0, 378 }, +{ 0xa0, 227, 0, 376 }, +{ 0x60, 227, 0, 377 }, +{ 0x10, 227, 0, 390 }, +{ 0x50, 227, 0, 388 }, +{ 0x30, 227, 0, 389 }, +{ 0x8, 227, 0, 402 }, +{ 0x28, 227, 0, 400 }, +{ 0x18, 227, 0, 401 }, +{ 0x4, 227, 0, 412 }, +{ 0x2, 227, 0, 413 }, +{ 0x1, 227, 0, 414 }, +{ 0x140, 230, 0, 354 }, +{ 0x540, 230, 0, 352 }, +{ 0x340, 230, 0, 353 }, +{ 0xc0, 230, 0, 366 }, +{ 0x2c0, 230, 0, 364 }, +{ 0x1c0, 230, 0, 365 }, +{ 0x20, 230, 0, 381 }, +{ 0xa0, 230, 0, 379 }, +{ 0x60, 230, 0, 380 }, +{ 0x10, 230, 0, 393 }, +{ 0x50, 230, 0, 391 }, +{ 0x30, 230, 0, 392 }, +{ 0x8, 230, 0, 405 }, +{ 0x28, 230, 0, 403 }, +{ 0x18, 230, 0, 404 }, +{ 0x4, 230, 0, 415 }, +{ 0x2, 230, 0, 416 }, +{ 0x1, 230, 0, 417 }, +{ 0x140, 242, 0, 357 }, +{ 0x540, 242, 0, 355 }, +{ 0x340, 242, 0, 356 }, +{ 0xc0, 242, 0, 369 }, +{ 0x2c0, 242, 0, 367 }, +{ 0x1c0, 242, 0, 368 }, +{ 0x20, 242, 0, 384 }, +{ 0xa0, 242, 0, 382 }, +{ 0x60, 242, 0, 383 }, +{ 0x10, 242, 0, 396 }, +{ 0x50, 242, 0, 394 }, +{ 0x30, 242, 0, 395 }, +{ 0x8, 242, 0, 408 }, +{ 0x28, 242, 0, 406 }, +{ 0x18, 242, 0, 407 }, +{ 0x4, 242, 0, 418 }, +{ 0x2, 242, 0, 419 }, +{ 0x1, 242, 0, 420 }, +{ 0x1, 223, 0, 447 }, +{ 0x5, 223, 0, 445 }, +{ 0x3, 223, 0, 446 }, +{ 0x140, 232, 0, 423 }, +{ 0x540, 232, 0, 421 }, +{ 0x340, 232, 0, 422 }, +{ 0xc0, 232, 0, 435 }, +{ 0x2c0, 232, 0, 433 }, +{ 0x1c0, 232, 0, 434 }, +{ 0x20, 232, 0, 450 }, +{ 0xa0, 232, 0, 448 }, +{ 0x60, 232, 0, 449 }, +{ 0x10, 232, 0, 462 }, +{ 0x50, 232, 0, 460 }, +{ 0x30, 232, 0, 461 }, +{ 0x8, 232, 0, 474 }, +{ 0x28, 232, 0, 472 }, +{ 0x18, 232, 0, 473 }, +{ 0x4, 232, 0, 484 }, +{ 0x2, 232, 0, 485 }, +{ 0x1, 232, 0, 486 }, +{ 0x140, 226, 0, 426 }, +{ 0x540, 226, 0, 424 }, +{ 0x340, 226, 0, 425 }, +{ 0xc0, 226, 0, 438 }, +{ 0x2c0, 226, 0, 436 }, +{ 0x1c0, 226, 0, 437 }, +{ 0x20, 226, 0, 453 }, +{ 0xa0, 226, 0, 451 }, +{ 0x60, 226, 0, 452 }, +{ 0x10, 226, 0, 465 }, +{ 0x50, 226, 0, 463 }, +{ 0x30, 226, 0, 464 }, +{ 0x8, 226, 0, 477 }, +{ 0x28, 226, 0, 475 }, +{ 0x18, 226, 0, 476 }, +{ 0x4, 226, 0, 487 }, +{ 0x2, 226, 0, 488 }, +{ 0x1, 226, 0, 489 }, +{ 0x140, 229, 0, 429 }, +{ 0x540, 229, 0, 427 }, +{ 0x340, 229, 0, 428 }, +{ 0xc0, 229, 0, 441 }, +{ 0x2c0, 229, 0, 439 }, +{ 0x1c0, 229, 0, 440 }, +{ 0x20, 229, 0, 456 }, +{ 0xa0, 229, 0, 454 }, +{ 0x60, 229, 0, 455 }, +{ 0x10, 229, 0, 468 }, +{ 0x50, 229, 0, 466 }, +{ 0x30, 229, 0, 467 }, +{ 0x8, 229, 0, 480 }, +{ 0x28, 229, 0, 478 }, +{ 0x18, 229, 0, 479 }, +{ 0x4, 229, 0, 490 }, +{ 0x2, 229, 0, 491 }, +{ 0x1, 229, 0, 492 }, +{ 0x140, 241, 0, 432 }, +{ 0x540, 241, 0, 430 }, +{ 0x340, 241, 0, 431 }, +{ 0xc0, 241, 0, 444 }, +{ 0x2c0, 241, 0, 442 }, +{ 0x1c0, 241, 0, 443 }, +{ 0x20, 241, 0, 459 }, +{ 0xa0, 241, 0, 457 }, +{ 0x60, 241, 0, 458 }, +{ 0x10, 241, 0, 471 }, +{ 0x50, 241, 0, 469 }, +{ 0x30, 241, 0, 470 }, +{ 0x8, 241, 0, 483 }, +{ 0x28, 241, 0, 481 }, +{ 0x18, 241, 0, 482 }, +{ 0x4, 241, 0, 493 }, +{ 0x2, 241, 0, 494 }, +{ 0x1, 241, 0, 495 }, +{ 0x8, 365, 0, 497 }, +{ 0x18, 365, 0, 496 }, +{ 0x4, 365, 0, 499 }, +{ 0xc, 365, 0, 498 }, +{ 0x2, 365, 0, 506 }, +{ 0x1, 365, 0, 507 }, +{ 0x4, 363, 0, 501 }, +{ 0xc, 363, 0, 500 }, +{ 0x2, 363, 0, 508 }, +{ 0x1, 363, 0, 509 }, +{ 0x4, 361, 0, 503 }, +{ 0xc, 361, 0, 502 }, +{ 0x2, 361, 0, 510 }, +{ 0x1, 361, 0, 511 }, +{ 0x4, 358, 0, 505 }, +{ 0xc, 358, 0, 504 }, +{ 0x2, 358, 0, 512 }, +{ 0x1, 358, 0, 513 }, +{ 0xa00, 222, 0, 528 }, +{ 0x2a00, 222, 0, 526 }, +{ 0x1a00, 222, 0, 527 }, +{ 0x600, 222, 0, 540 }, +{ 0x2600, 222, 0, 516 }, +{ 0xa600, 222, 0, 514 }, +{ 0x6600, 222, 0, 515 }, +{ 0x1600, 222, 0, 538 }, +{ 0xe00, 222, 0, 539 }, +{ 0x100, 222, 0, 552 }, +{ 0x500, 222, 0, 550 }, +{ 0x300, 222, 0, 551 }, +{ 0x80, 222, 0, 555 }, +{ 0x280, 222, 0, 553 }, +{ 0x180, 222, 0, 554 }, +{ 0x40, 222, 0, 567 }, +{ 0x140, 222, 0, 565 }, +{ 0xc0, 222, 0, 566 }, +{ 0x20, 222, 0, 579 }, +{ 0xa0, 222, 0, 577 }, +{ 0x60, 222, 0, 578 }, +{ 0x10, 222, 0, 591 }, +{ 0x50, 222, 0, 589 }, +{ 0x30, 222, 0, 590 }, +{ 0x8, 222, 0, 603 }, +{ 0x28, 222, 0, 601 }, +{ 0x18, 222, 0, 602 }, +{ 0x4, 222, 0, 613 }, +{ 0x2, 222, 0, 614 }, +{ 0x1, 222, 0, 615 }, +{ 0x500, 218, 0, 531 }, +{ 0x1500, 218, 0, 529 }, +{ 0xd00, 218, 0, 530 }, +{ 0x300, 218, 0, 543 }, +{ 0x1300, 218, 0, 519 }, +{ 0x5300, 218, 0, 517 }, +{ 0x3300, 218, 0, 518 }, +{ 0xb00, 218, 0, 541 }, +{ 0x700, 218, 0, 542 }, +{ 0x80, 218, 0, 558 }, +{ 0x280, 218, 0, 556 }, +{ 0x180, 218, 0, 557 }, +{ 0x40, 218, 0, 570 }, +{ 0x140, 218, 0, 568 }, +{ 0xc0, 218, 0, 569 }, +{ 0x20, 218, 0, 582 }, +{ 0xa0, 218, 0, 580 }, +{ 0x60, 218, 0, 581 }, +{ 0x10, 218, 0, 594 }, +{ 0x50, 218, 0, 592 }, +{ 0x30, 218, 0, 593 }, +{ 0x8, 218, 0, 606 }, +{ 0x28, 218, 0, 604 }, +{ 0x18, 218, 0, 605 }, +{ 0x4, 218, 0, 616 }, +{ 0x2, 218, 0, 617 }, +{ 0x1, 218, 0, 618 }, +{ 0x500, 215, 0, 534 }, +{ 0x1500, 215, 0, 532 }, +{ 0xd00, 215, 0, 533 }, +{ 0x300, 215, 0, 546 }, +{ 0x1300, 215, 0, 522 }, +{ 0x5300, 215, 0, 520 }, +{ 0x3300, 215, 0, 521 }, +{ 0xb00, 215, 0, 544 }, +{ 0x700, 215, 0, 545 }, +{ 0x80, 215, 0, 561 }, +{ 0x280, 215, 0, 559 }, +{ 0x180, 215, 0, 560 }, +{ 0x40, 215, 0, 573 }, +{ 0x140, 215, 0, 571 }, +{ 0xc0, 215, 0, 572 }, +{ 0x20, 215, 0, 585 }, +{ 0xa0, 215, 0, 583 }, +{ 0x60, 215, 0, 584 }, +{ 0x10, 215, 0, 597 }, +{ 0x50, 215, 0, 595 }, +{ 0x30, 215, 0, 596 }, +{ 0x8, 215, 0, 609 }, +{ 0x28, 215, 0, 607 }, +{ 0x18, 215, 0, 608 }, +{ 0x4, 215, 0, 619 }, +{ 0x2, 215, 0, 620 }, +{ 0x1, 215, 0, 621 }, +{ 0x500, 211, 0, 537 }, +{ 0x1500, 211, 0, 535 }, +{ 0xd00, 211, 0, 536 }, +{ 0x300, 211, 0, 549 }, +{ 0x1300, 211, 0, 525 }, +{ 0x5300, 211, 0, 523 }, +{ 0x3300, 211, 0, 524 }, +{ 0xb00, 211, 0, 547 }, +{ 0x700, 211, 0, 548 }, +{ 0x80, 211, 0, 564 }, +{ 0x280, 211, 0, 562 }, +{ 0x180, 211, 0, 563 }, +{ 0x40, 211, 0, 576 }, +{ 0x140, 211, 0, 574 }, +{ 0xc0, 211, 0, 575 }, +{ 0x20, 211, 0, 588 }, +{ 0xa0, 211, 0, 586 }, +{ 0x60, 211, 0, 587 }, +{ 0x10, 211, 0, 600 }, +{ 0x50, 211, 0, 598 }, +{ 0x30, 211, 0, 599 }, +{ 0x8, 211, 0, 612 }, +{ 0x28, 211, 0, 610 }, +{ 0x18, 211, 0, 611 }, +{ 0x4, 211, 0, 622 }, +{ 0x2, 211, 0, 623 }, +{ 0x1, 211, 0, 624 }, +{ 0x8, 196, 0, 625 }, +{ 0x4, 196, 0, 626 }, +{ 0x2, 196, 0, 627 }, +{ 0x1, 196, 0, 628 }, +{ 0x2, 134, 0, 631 }, +{ 0xa, 134, 0, 629 }, +{ 0x6, 134, 0, 630 }, +{ 0x1, 134, 0, 637 }, +{ 0x5, 134, 0, 635 }, +{ 0x3, 134, 0, 636 }, +{ 0x2, 133, 0, 634 }, +{ 0xa, 133, 0, 632 }, +{ 0x6, 133, 0, 633 }, +{ 0x1, 133, 0, 640 }, +{ 0x5, 133, 0, 638 }, +{ 0x3, 133, 0, 639 }, +{ 0x4, 398, 0, 641 }, +{ 0x2, 398, 0, 642 }, +{ 0x1, 398, 0, 643 }, +{ 0x4, 397, 0, 644 }, +{ 0x2, 397, 0, 645 }, +{ 0x1, 397, 0, 646 }, +{ 0x4, 396, 0, 647 }, +{ 0x2, 396, 0, 648 }, +{ 0x1, 396, 0, 649 }, +{ 0x4, 395, 0, 650 }, +{ 0x2, 395, 0, 651 }, +{ 0x1, 395, 0, 652 }, +{ 0x2, 92, 0, 655 }, +{ 0xa, 92, 0, 653 }, +{ 0x6, 92, 0, 654 }, +{ 0x1, 92, 0, 670 }, +{ 0x5, 92, 0, 668 }, +{ 0x3, 92, 0, 669 }, +{ 0x2, 96, 0, 658 }, +{ 0xa, 96, 0, 656 }, +{ 0x6, 96, 0, 657 }, +{ 0x1, 96, 0, 673 }, +{ 0x5, 96, 0, 671 }, +{ 0x3, 96, 0, 672 }, +{ 0x2, 95, 0, 661 }, +{ 0xa, 95, 0, 659 }, +{ 0x6, 95, 0, 660 }, +{ 0x1, 95, 0, 676 }, +{ 0x5, 95, 0, 674 }, +{ 0x3, 95, 0, 675 }, +{ 0x2, 94, 0, 664 }, +{ 0xa, 94, 0, 662 }, +{ 0x6, 94, 0, 663 }, +{ 0x1, 94, 0, 679 }, +{ 0x5, 94, 0, 677 }, +{ 0x3, 94, 0, 678 }, +{ 0x2, 93, 0, 667 }, +{ 0xa, 93, 0, 665 }, +{ 0x6, 93, 0, 666 }, +{ 0x1, 93, 0, 682 }, +{ 0x5, 93, 0, 680 }, +{ 0x3, 93, 0, 681 }, +{ 0x4, 359, 0, 686 }, +{ 0xc, 359, 0, 685 }, +{ 0x2, 359, 0, 695 }, +{ 0x1, 359, 0, 696 }, +{ 0x8, 364, 0, 684 }, +{ 0x18, 364, 0, 683 }, +{ 0x4, 364, 0, 688 }, +{ 0xc, 364, 0, 687 }, +{ 0x2, 364, 0, 697 }, +{ 0x1, 364, 0, 698 }, +{ 0x4, 362, 0, 690 }, +{ 0xc, 362, 0, 689 }, +{ 0x2, 362, 0, 699 }, +{ 0x1, 362, 0, 700 }, +{ 0x4, 360, 0, 692 }, +{ 0xc, 360, 0, 691 }, +{ 0x2, 360, 0, 701 }, +{ 0x1, 360, 0, 702 }, +{ 0x4, 357, 0, 694 }, +{ 0xc, 357, 0, 693 }, +{ 0x2, 357, 0, 703 }, +{ 0x1, 357, 0, 704 }, +{ 0xa00, 221, 0, 719 }, +{ 0x2a00, 221, 0, 717 }, +{ 0x1a00, 221, 0, 718 }, +{ 0x600, 221, 0, 731 }, +{ 0x2600, 221, 0, 707 }, +{ 0xa600, 221, 0, 705 }, +{ 0x6600, 221, 0, 706 }, +{ 0x1600, 221, 0, 729 }, +{ 0xe00, 221, 0, 730 }, +{ 0x100, 221, 0, 743 }, +{ 0x500, 221, 0, 741 }, +{ 0x300, 221, 0, 742 }, +{ 0x80, 221, 0, 746 }, +{ 0x280, 221, 0, 744 }, +{ 0x180, 221, 0, 745 }, +{ 0x40, 221, 0, 758 }, +{ 0x140, 221, 0, 756 }, +{ 0xc0, 221, 0, 757 }, +{ 0x20, 221, 0, 770 }, +{ 0xa0, 221, 0, 768 }, +{ 0x60, 221, 0, 769 }, +{ 0x10, 221, 0, 782 }, +{ 0x50, 221, 0, 780 }, +{ 0x30, 221, 0, 781 }, +{ 0x8, 221, 0, 794 }, +{ 0x28, 221, 0, 792 }, +{ 0x18, 221, 0, 793 }, +{ 0x4, 221, 0, 804 }, +{ 0x2, 221, 0, 805 }, +{ 0x1, 221, 0, 806 }, +{ 0x500, 217, 0, 722 }, +{ 0x1500, 217, 0, 720 }, +{ 0xd00, 217, 0, 721 }, +{ 0x300, 217, 0, 734 }, +{ 0x1300, 217, 0, 710 }, +{ 0x5300, 217, 0, 708 }, +{ 0x3300, 217, 0, 709 }, +{ 0xb00, 217, 0, 732 }, +{ 0x700, 217, 0, 733 }, +{ 0x80, 217, 0, 749 }, +{ 0x280, 217, 0, 747 }, +{ 0x180, 217, 0, 748 }, +{ 0x40, 217, 0, 761 }, +{ 0x140, 217, 0, 759 }, +{ 0xc0, 217, 0, 760 }, +{ 0x20, 217, 0, 773 }, +{ 0xa0, 217, 0, 771 }, +{ 0x60, 217, 0, 772 }, +{ 0x10, 217, 0, 785 }, +{ 0x50, 217, 0, 783 }, +{ 0x30, 217, 0, 784 }, +{ 0x8, 217, 0, 797 }, +{ 0x28, 217, 0, 795 }, +{ 0x18, 217, 0, 796 }, +{ 0x4, 217, 0, 807 }, +{ 0x2, 217, 0, 808 }, +{ 0x1, 217, 0, 809 }, +{ 0x500, 214, 0, 725 }, +{ 0x1500, 214, 0, 723 }, +{ 0xd00, 214, 0, 724 }, +{ 0x300, 214, 0, 737 }, +{ 0x1300, 214, 0, 713 }, +{ 0x5300, 214, 0, 711 }, +{ 0x3300, 214, 0, 712 }, +{ 0xb00, 214, 0, 735 }, +{ 0x700, 214, 0, 736 }, +{ 0x80, 214, 0, 752 }, +{ 0x280, 214, 0, 750 }, +{ 0x180, 214, 0, 751 }, +{ 0x40, 214, 0, 764 }, +{ 0x140, 214, 0, 762 }, +{ 0xc0, 214, 0, 763 }, +{ 0x20, 214, 0, 776 }, +{ 0xa0, 214, 0, 774 }, +{ 0x60, 214, 0, 775 }, +{ 0x10, 214, 0, 788 }, +{ 0x50, 214, 0, 786 }, +{ 0x30, 214, 0, 787 }, +{ 0x8, 214, 0, 800 }, +{ 0x28, 214, 0, 798 }, +{ 0x18, 214, 0, 799 }, +{ 0x4, 214, 0, 810 }, +{ 0x2, 214, 0, 811 }, +{ 0x1, 214, 0, 812 }, +{ 0x500, 210, 0, 728 }, +{ 0x1500, 210, 0, 726 }, +{ 0xd00, 210, 0, 727 }, +{ 0x300, 210, 0, 740 }, +{ 0x1300, 210, 0, 716 }, +{ 0x5300, 210, 0, 714 }, +{ 0x3300, 210, 0, 715 }, +{ 0xb00, 210, 0, 738 }, +{ 0x700, 210, 0, 739 }, +{ 0x80, 210, 0, 755 }, +{ 0x280, 210, 0, 753 }, +{ 0x180, 210, 0, 754 }, +{ 0x40, 210, 0, 767 }, +{ 0x140, 210, 0, 765 }, +{ 0xc0, 210, 0, 766 }, +{ 0x20, 210, 0, 779 }, +{ 0xa0, 210, 0, 777 }, +{ 0x60, 210, 0, 778 }, +{ 0x10, 210, 0, 791 }, +{ 0x50, 210, 0, 789 }, +{ 0x30, 210, 0, 790 }, +{ 0x8, 210, 0, 803 }, +{ 0x28, 210, 0, 801 }, +{ 0x18, 210, 0, 802 }, +{ 0x4, 210, 0, 813 }, +{ 0x2, 210, 0, 814 }, +{ 0x1, 210, 0, 815 }, +{ 0x8, 212, 0, 858 }, +{ 0x28, 212, 0, 856 }, +{ 0x18, 212, 0, 857 }, +{ 0x4, 212, 0, 919 }, +{ 0x2, 212, 0, 920 }, +{ 0x1, 212, 0, 921 }, +{ 0xa00, 219, 0, 831 }, +{ 0x2a00, 219, 0, 829 }, +{ 0x1a00, 219, 0, 830 }, +{ 0x600, 219, 0, 843 }, +{ 0x2600, 219, 0, 819 }, +{ 0xa600, 219, 0, 817 }, +{ 0x6600, 219, 0, 818 }, +{ 0x1600, 219, 0, 841 }, +{ 0xe00, 219, 0, 842 }, +{ 0x100, 219, 0, 855 }, +{ 0x500, 219, 0, 853 }, +{ 0x300, 219, 0, 854 }, +{ 0x80, 219, 0, 861 }, +{ 0x280, 219, 0, 859 }, +{ 0x180, 219, 0, 860 }, +{ 0x40, 219, 0, 873 }, +{ 0x140, 219, 0, 871 }, +{ 0xc0, 219, 0, 872 }, +{ 0x20, 219, 0, 885 }, +{ 0xa0, 219, 0, 883 }, +{ 0x60, 219, 0, 884 }, +{ 0x10, 219, 0, 897 }, +{ 0x50, 219, 0, 895 }, +{ 0x30, 219, 0, 896 }, +{ 0x8, 219, 0, 909 }, +{ 0x28, 219, 0, 907 }, +{ 0x18, 219, 0, 908 }, +{ 0x4, 219, 0, 922 }, +{ 0x2, 219, 0, 923 }, +{ 0x1, 219, 1, 924 }, +{ 0x1, 220, 0, 816 }, +{ 0x500, 216, 0, 834 }, +{ 0x1500, 216, 0, 832 }, +{ 0xd00, 216, 0, 833 }, +{ 0x300, 216, 0, 846 }, +{ 0x1300, 216, 0, 822 }, +{ 0x5300, 216, 0, 820 }, +{ 0x3300, 216, 0, 821 }, +{ 0xb00, 216, 0, 844 }, +{ 0x700, 216, 0, 845 }, +{ 0x80, 216, 0, 864 }, +{ 0x280, 216, 0, 862 }, +{ 0x180, 216, 0, 863 }, +{ 0x40, 216, 0, 876 }, +{ 0x140, 216, 0, 874 }, +{ 0xc0, 216, 0, 875 }, +{ 0x20, 216, 0, 888 }, +{ 0xa0, 216, 0, 886 }, +{ 0x60, 216, 0, 887 }, +{ 0x10, 216, 0, 900 }, +{ 0x50, 216, 0, 898 }, +{ 0x30, 216, 0, 899 }, +{ 0x8, 216, 0, 912 }, +{ 0x28, 216, 0, 910 }, +{ 0x18, 216, 0, 911 }, +{ 0x4, 216, 0, 925 }, +{ 0x2, 216, 0, 926 }, +{ 0x1, 216, 0, 927 }, +{ 0x500, 213, 0, 837 }, +{ 0x1500, 213, 0, 835 }, +{ 0xd00, 213, 0, 836 }, +{ 0x300, 213, 0, 849 }, +{ 0x1300, 213, 0, 825 }, +{ 0x5300, 213, 0, 823 }, +{ 0x3300, 213, 0, 824 }, +{ 0xb00, 213, 0, 847 }, +{ 0x700, 213, 0, 848 }, +{ 0x80, 213, 0, 867 }, +{ 0x280, 213, 0, 865 }, +{ 0x180, 213, 0, 866 }, +{ 0x40, 213, 0, 879 }, +{ 0x140, 213, 0, 877 }, +{ 0xc0, 213, 0, 878 }, +{ 0x20, 213, 0, 891 }, +{ 0xa0, 213, 0, 889 }, +{ 0x60, 213, 0, 890 }, +{ 0x10, 213, 0, 903 }, +{ 0x50, 213, 0, 901 }, +{ 0x30, 213, 0, 902 }, +{ 0x8, 213, 0, 915 }, +{ 0x28, 213, 0, 913 }, +{ 0x18, 213, 0, 914 }, +{ 0x4, 213, 0, 928 }, +{ 0x2, 213, 0, 929 }, +{ 0x1, 213, 0, 930 }, +{ 0x500, 209, 0, 840 }, +{ 0x1500, 209, 0, 838 }, +{ 0xd00, 209, 0, 839 }, +{ 0x300, 209, 0, 852 }, +{ 0x1300, 209, 0, 828 }, +{ 0x5300, 209, 0, 826 }, +{ 0x3300, 209, 0, 827 }, +{ 0xb00, 209, 0, 850 }, +{ 0x700, 209, 0, 851 }, +{ 0x80, 209, 0, 870 }, +{ 0x280, 209, 0, 868 }, +{ 0x180, 209, 0, 869 }, +{ 0x40, 209, 0, 882 }, +{ 0x140, 209, 0, 880 }, +{ 0xc0, 209, 0, 881 }, +{ 0x20, 209, 0, 894 }, +{ 0xa0, 209, 0, 892 }, +{ 0x60, 209, 0, 893 }, +{ 0x10, 209, 0, 906 }, +{ 0x50, 209, 0, 904 }, +{ 0x30, 209, 0, 905 }, +{ 0x8, 209, 0, 918 }, +{ 0x28, 209, 0, 916 }, +{ 0x18, 209, 0, 917 }, +{ 0x4, 209, 0, 931 }, +{ 0x2, 209, 0, 932 }, +{ 0x1, 209, 0, 933 }, +{ 0x2, 114, 0, 935 }, +{ 0x1, 114, 0, 936 }, +{ 0x1, 49, 0, 937 }, +{ 0x3, 48, 0, 938 }, +{ 0x1, 384, 0, 939 }, +{ 0x1, 390, 0, 940 }, +{ 0x2, 343, 0, 943 }, +{ 0x1, 343, 0, 944 }, +{ 0x2, 341, 0, 945 }, +{ 0x1, 341, 0, 946 }, +{ 0x1, 340, 0, 947 }, +{ 0x1, 285, 0, 952 }, +{ 0x1, 284, 0, 953 }, +{ 0x1, 283, 0, 954 }, +{ 0x1, 282, 0, 955 }, +{ 0x1, 208, 0, 956 }, +{ 0x1, 207, 0, 957 }, +{ 0x1, 281, 0, 958 }, +{ 0x1, 280, 0, 959 }, +{ 0x1, 279, 0, 960 }, +{ 0x1, 278, 0, 961 }, +{ 0x1, 277, 0, 962 }, +{ 0x1, 276, 0, 963 }, +{ 0x1, 275, 0, 964 }, +{ 0x2, 206, 0, 965 }, +{ 0x1, 206, 0, 966 }, +{ 0x2, 323, 0, 972 }, +{ 0x1, 323, 0, 973 }, +{ 0x1, 274, 0, 974 }, +{ 0x1, 273, 0, 975 }, +{ 0x1, 272, 0, 976 }, +{ 0x1, 271, 0, 977 }, +{ 0x1, 8, 0, 978 }, +{ 0x1, 270, 0, 979 }, +{ 0x1, 269, 0, 980 }, +{ 0x1, 268, 0, 981 }, +{ 0x1, 267, 0, 982 }, +{ 0x1, 345, 0, 983 }, +{ 0x1, 356, 0, 984 }, +{ 0x1, 346, 0, 985 }, +{ 0x1, 379, 0, 986 }, +{ 0x1, 266, 0, 990 }, +{ 0x1, 205, 0, 991 }, +{ 0x1, 135, 0, 994 }, +{ 0x2, 248, 0, 998 }, +{ 0x1, 248, 0, 999 }, +{ 0x1, 194, 0, 1000 }, +{ 0x5, 47, 0, 1002 }, +{ 0x3, 47, 0, 1003 }, +{ 0x5, 46, 0, 1004 }, +{ 0x3, 46, 0, 1005 }, +{ 0x1, 322, 0, 1006 }, +{ 0x1, 330, 0, 1007 }, +{ 0x1, 328, 0, 1008 }, +{ 0x1, 349, 0, 1009 }, +{ 0x1, 329, 0, 1010 }, +{ 0x1, 327, 0, 1011 }, +{ 0x2, 335, 0, 1012 }, +{ 0x1, 335, 0, 1014 }, +{ 0x2, 333, 0, 1013 }, +{ 0x1, 333, 0, 1015 }, +{ 0x2, 353, 0, 1016 }, +{ 0x1, 353, 0, 1019 }, +{ 0x2, 334, 0, 1017 }, +{ 0x1, 334, 0, 1020 }, +{ 0x2, 332, 0, 1018 }, +{ 0x1, 332, 0, 1021 }, +{ 0x1, 295, 0, 1022 }, +{ 0x1, 294, 0, 1023 }, +{ 0x1, 326, 0, 1024 }, +{ 0x1, 317, 0, 1025 }, +{ 0x1, 319, 0, 1026 }, +{ 0x1, 316, 0, 1027 }, +{ 0x1, 318, 0, 1028 }, +{ 0x2, 394, 0, 1029 }, +{ 0x1, 394, 0, 1032 }, +{ 0x2, 393, 0, 1030 }, +{ 0x1, 393, 0, 1033 }, +{ 0x2, 392, 0, 1031 }, +{ 0x1, 392, 0, 1034 }, +{ 0x1, 305, 0, 1035 }, +{ 0x2, 304, 0, 1036 }, +{ 0x1, 304, 0, 1037 }, +{ 0x2, 251, 0, 1038 }, +{ 0x1, 251, 0, 1041 }, +{ 0x2, 250, 0, 1039 }, +{ 0x1, 250, 0, 1042 }, +{ 0x2, 249, 0, 1040 }, +{ 0x1, 249, 0, 1043 }, +{ 0x2, 320, 0, 1044 }, +{ 0x1, 320, 0, 1045 }, +{ 0x2, 321, 0, 1046 }, +{ 0x1, 321, 0, 1047 }, +{ 0xa, 388, 1, 1053 }, +{ 0xa, 389, 0, 1052 }, +{ 0x1a, 388, 1, 1049 }, +{ 0x32, 389, 0, 1048 }, +{ 0x6, 388, 1, 1057 }, +{ 0x6, 389, 0, 1056 }, +{ 0x1, 388, 1, 1063 }, +{ 0x1, 389, 0, 1062 }, +{ 0x9, 388, 1, 1055 }, +{ 0x9, 389, 0, 1054 }, +{ 0x19, 388, 1, 1051 }, +{ 0x31, 389, 0, 1050 }, +{ 0x5, 388, 1, 1059 }, +{ 0x5, 389, 0, 1058 }, +{ 0x3, 388, 1, 1061 }, +{ 0x3, 389, 0, 1060 }, +{ 0xa, 385, 1, 1069 }, +{ 0xa, 386, 0, 1068 }, +{ 0x1a, 385, 1, 1065 }, +{ 0x32, 386, 0, 1064 }, +{ 0x6, 385, 1, 1073 }, +{ 0x6, 386, 0, 1072 }, +{ 0x1, 385, 1, 1079 }, +{ 0x1, 386, 0, 1078 }, +{ 0x9, 385, 1, 1071 }, +{ 0x9, 386, 0, 1070 }, +{ 0x19, 385, 1, 1067 }, +{ 0x31, 386, 0, 1066 }, +{ 0x5, 385, 1, 1075 }, +{ 0x5, 386, 0, 1074 }, +{ 0x3, 385, 1, 1077 }, +{ 0x3, 386, 0, 1076 }, +{ 0x1, 103, 0, 1080 }, +{ 0x1, 102, 0, 1081 }, +{ 0x1, 348, 1, 1083 }, +{ 0x1, 101, 0, 1082 }, +{ 0x2, 352, 1, 1085 }, +{ 0x2, 105, 0, 1084 }, +{ 0x1, 352, 1, 1087 }, +{ 0x1, 105, 0, 1086 }, +{ 0x1, 354, 0, 1088 }, +{ 0x1, 100, 0, 1089 }, +{ 0x2, 99, 0, 1090 }, +{ 0x2, 98, 0, 1091 }, +{ 0x1, 406, 1, 1097 }, +{ 0x1, 204, 0, 992 }, +{ 0x1, 405, 0, 1098 }, +{ 0x1, 404, 1, 1099 }, +{ 0x1, 203, 0, 1001 }, +{ 0x1, 265, 0, 1100 }, +{ 0x1, 264, 1, 1101 }, +{ 0x1, 247, 0, 993 }, +{ 0x1, 263, 0, 1102 }, +{ 0x1, 262, 1, 1103 }, +{ 0x1, 383, 0, 995 }, +{ 0x1, 261, 1, 1104 }, +{ 0x1, 355, 0, 997 }, +{ 0x1, 260, 0, 1105 }, +{ 0x1, 259, 0, 1106 }, +{ 0x1, 258, 1, 1107 }, +{ 0x2, 355, 0, 996 }, +{ 0x10, 257, 0, 1111 }, +{ 0x90, 257, 0, 1109 }, +{ 0x190, 257, 0, 1108 }, +{ 0x50, 257, 0, 1110 }, +{ 0x30, 257, 0, 1113 }, +{ 0x70, 257, 0, 1112 }, +{ 0x8, 257, 0, 1115 }, +{ 0x18, 257, 0, 1114 }, +{ 0x4, 257, 0, 1116 }, +{ 0x1, 257, 0, 1119 }, +{ 0x3, 257, 0, 1118 }, +{ 0x1, 256, 1, 1120 }, +{ 0x2, 257, 0, 1117 }, +{ 0x3, 45, 0, 1121 }, +{ 0x1, 199, 1, 1122 }, +{ 0x1, 200, 1, 987 }, +{ 0x1, 201, 0, 88 }, +{ 0x1, 298, 1, 1123 }, +{ 0x1, 299, 1, 988 }, +{ 0x1, 300, 0, 89 }, +{ 0x1, 33, 1, 1124 }, +{ 0x1, 34, 1, 989 }, +{ 0x1, 35, 0, 90 }, +{ 0x1, 188, 0, 1125 }, +{ 0x4, 399, 0, 1126 }, +{ 0x2, 399, 0, 1127 }, +{ 0x1, 399, 1, 1129 }, +{ 0x1, 400, 0, 1128 }, +{ 0x8, 401, 0, 1130 }, +{ 0x4, 401, 0, 1131 }, +{ 0x1, 401, 1, 1133 }, +{ 0x2, 401, 0, 1132 }, +{ 0x8, 177, 0, 1134 }, +{ 0x4, 177, 0, 1135 }, +{ 0x2, 177, 0, 1136 }, +{ 0x1, 177, 1, 1138 }, +{ 0x1, 178, 0, 1137 }, +{ 0x10, 179, 0, 1139 }, +{ 0x8, 179, 0, 1140 }, +{ 0x4, 179, 0, 1141 }, +{ 0x1, 179, 1, 1143 }, +{ 0x2, 179, 0, 1142 }, +{ 0x220, 149, 0, 1144 }, +{ 0x120, 149, 0, 1145 }, +{ 0xa0, 149, 0, 1146 }, +{ 0x60, 149, 1, 1148 }, +{ 0x4, 150, 0, 1147 }, +{ 0x110, 149, 0, 1154 }, +{ 0x90, 149, 0, 1155 }, +{ 0x50, 149, 0, 1156 }, +{ 0x30, 149, 1, 1158 }, +{ 0x2, 150, 0, 1157 }, +{ 0x8, 149, 0, 1159 }, +{ 0x4, 149, 0, 1160 }, +{ 0x2, 149, 0, 1161 }, +{ 0x1, 149, 1, 1163 }, +{ 0x1, 150, 0, 1162 }, +{ 0x440, 151, 0, 1149 }, +{ 0x240, 151, 0, 1150 }, +{ 0x140, 151, 0, 1151 }, +{ 0xc0, 151, 1, 1153 }, +{ 0x40, 151, 0, 1152 }, +{ 0x220, 151, 0, 1164 }, +{ 0x120, 151, 0, 1165 }, +{ 0xa0, 151, 0, 1166 }, +{ 0x60, 151, 1, 1168 }, +{ 0x20, 151, 0, 1167 }, +{ 0x10, 151, 0, 1169 }, +{ 0x8, 151, 0, 1170 }, +{ 0x4, 151, 0, 1171 }, +{ 0x1, 151, 1, 1173 }, +{ 0x2, 151, 0, 1172 }, +{ 0x8, 173, 0, 1174 }, +{ 0x4, 173, 0, 1175 }, +{ 0x2, 173, 0, 1176 }, +{ 0x1, 173, 1, 1178 }, +{ 0x1, 174, 0, 1177 }, +{ 0x220, 145, 0, 1179 }, +{ 0x120, 145, 0, 1180 }, +{ 0xa0, 145, 0, 1181 }, +{ 0x60, 145, 1, 1183 }, +{ 0x4, 146, 0, 1182 }, +{ 0x110, 145, 0, 1189 }, +{ 0x90, 145, 0, 1190 }, +{ 0x50, 145, 0, 1191 }, +{ 0x30, 145, 1, 1193 }, +{ 0x2, 146, 0, 1192 }, +{ 0x8, 145, 0, 1194 }, +{ 0x4, 145, 0, 1195 }, +{ 0x2, 145, 0, 1196 }, +{ 0x1, 145, 1, 1198 }, +{ 0x1, 146, 0, 1197 }, +{ 0x440, 191, 0, 1184 }, +{ 0x240, 191, 0, 1185 }, +{ 0x140, 191, 0, 1186 }, +{ 0xc0, 191, 1, 1188 }, +{ 0x40, 191, 0, 1187 }, +{ 0x220, 191, 0, 1199 }, +{ 0x120, 191, 0, 1200 }, +{ 0xa0, 191, 0, 1201 }, +{ 0x60, 191, 1, 1203 }, +{ 0x20, 191, 0, 1202 }, +{ 0x10, 191, 0, 1204 }, +{ 0x8, 191, 0, 1205 }, +{ 0x4, 191, 0, 1206 }, +{ 0x1, 191, 1, 1208 }, +{ 0x2, 191, 0, 1207 }, +{ 0x8, 165, 0, 1209 }, +{ 0x4, 165, 0, 1210 }, +{ 0x2, 165, 0, 1211 }, +{ 0x1, 165, 1, 1213 }, +{ 0x1, 166, 0, 1212 }, +{ 0x10, 172, 0, 1214 }, +{ 0x8, 172, 0, 1215 }, +{ 0x4, 172, 0, 1216 }, +{ 0x1, 172, 1, 1218 }, +{ 0x2, 172, 0, 1217 }, +{ 0x220, 136, 0, 1219 }, +{ 0x120, 136, 0, 1220 }, +{ 0xa0, 136, 0, 1221 }, +{ 0x60, 136, 1, 1223 }, +{ 0x4, 137, 0, 1222 }, +{ 0x110, 136, 0, 1244 }, +{ 0x90, 136, 0, 1245 }, +{ 0x50, 136, 0, 1246 }, +{ 0x30, 136, 1, 1248 }, +{ 0x2, 137, 0, 1247 }, +{ 0x8, 136, 0, 1249 }, +{ 0x4, 136, 0, 1250 }, +{ 0x2, 136, 0, 1251 }, +{ 0x1, 136, 1, 1253 }, +{ 0x1, 137, 0, 1252 }, +{ 0x440, 144, 0, 1224 }, +{ 0x240, 144, 0, 1225 }, +{ 0x140, 144, 0, 1226 }, +{ 0xc0, 144, 1, 1228 }, +{ 0x40, 144, 0, 1227 }, +{ 0x220, 144, 0, 1254 }, +{ 0x120, 144, 0, 1255 }, +{ 0xa0, 144, 0, 1256 }, +{ 0x60, 144, 1, 1258 }, +{ 0x20, 144, 0, 1257 }, +{ 0x10, 144, 0, 1259 }, +{ 0x8, 144, 0, 1260 }, +{ 0x4, 144, 0, 1261 }, +{ 0x1, 144, 1, 1263 }, +{ 0x2, 144, 0, 1262 }, +{ 0x440, 107, 0, 1229 }, +{ 0x240, 107, 0, 1230 }, +{ 0x140, 107, 0, 1231 }, +{ 0xc0, 107, 1, 1233 }, +{ 0x40, 107, 0, 1232 }, +{ 0x220, 107, 0, 1264 }, +{ 0x120, 107, 0, 1265 }, +{ 0xa0, 107, 0, 1266 }, +{ 0x60, 107, 1, 1268 }, +{ 0x20, 107, 0, 1267 }, +{ 0x10, 107, 0, 1269 }, +{ 0x8, 107, 0, 1270 }, +{ 0x1, 107, 1, 1273 }, +{ 0x2, 107, 0, 1272 }, +{ 0x440, 152, 1, 1239 }, +{ 0x441, 132, 0, 1234 }, +{ 0x240, 152, 1, 1240 }, +{ 0x241, 132, 0, 1235 }, +{ 0x140, 152, 1, 1241 }, +{ 0x141, 132, 0, 1236 }, +{ 0xc0, 152, 1, 1243 }, +{ 0x40, 152, 1, 1242 }, +{ 0xc1, 132, 1, 1238 }, +{ 0x41, 132, 0, 1237 }, +{ 0x220, 152, 1, 1284 }, +{ 0x221, 132, 0, 1274 }, +{ 0x120, 152, 1, 1285 }, +{ 0x121, 132, 0, 1275 }, +{ 0xa0, 152, 1, 1286 }, +{ 0xa1, 132, 0, 1276 }, +{ 0x60, 152, 1, 1288 }, +{ 0x20, 152, 1, 1287 }, +{ 0x61, 132, 1, 1278 }, +{ 0x21, 132, 0, 1277 }, +{ 0x10, 152, 1, 1289 }, +{ 0x11, 132, 0, 1279 }, +{ 0x8, 152, 1, 1290 }, +{ 0x9, 132, 0, 1280 }, +{ 0x4, 152, 1, 1291 }, +{ 0x5, 132, 0, 1281 }, +{ 0x1, 152, 1, 1293 }, +{ 0x2, 152, 1, 1292 }, +{ 0x3, 132, 1, 1283 }, +{ 0x1, 132, 0, 1282 }, +{ 0x1, 117, 1, 1297 }, +{ 0x1, 118, 0, 1296 }, +{ 0x3, 117, 1, 1295 }, +{ 0x3, 118, 0, 1294 }, +{ 0x1108, 121, 1, 1378 }, +{ 0x1108, 125, 0, 1298 }, +{ 0x908, 121, 1, 1379 }, +{ 0x908, 125, 0, 1299 }, +{ 0x508, 121, 1, 1380 }, +{ 0x508, 125, 0, 1300 }, +{ 0x308, 121, 1, 1382 }, +{ 0x18, 122, 1, 1381 }, +{ 0x308, 125, 1, 1302 }, +{ 0x18, 126, 0, 1301 }, +{ 0x88, 121, 1, 1398 }, +{ 0x88, 125, 0, 1338 }, +{ 0x48, 121, 1, 1399 }, +{ 0x48, 125, 0, 1339 }, +{ 0x28, 121, 1, 1400 }, +{ 0x28, 125, 0, 1340 }, +{ 0x18, 121, 1, 1402 }, +{ 0x8, 122, 1, 1401 }, +{ 0x18, 125, 1, 1342 }, +{ 0x8, 126, 0, 1341 }, +{ 0x884, 121, 1, 1383 }, +{ 0x442, 123, 1, 1328 }, +{ 0x884, 125, 1, 1313 }, +{ 0x442, 127, 0, 1303 }, +{ 0x484, 121, 1, 1384 }, +{ 0x242, 123, 1, 1329 }, +{ 0x484, 125, 1, 1314 }, +{ 0x242, 127, 0, 1304 }, +{ 0x284, 121, 1, 1385 }, +{ 0x142, 123, 1, 1330 }, +{ 0x284, 125, 1, 1315 }, +{ 0x142, 127, 0, 1305 }, +{ 0x184, 121, 1, 1387 }, +{ 0xc, 122, 1, 1386 }, +{ 0xc2, 123, 1, 1332 }, +{ 0x6, 124, 1, 1331 }, +{ 0x184, 125, 1, 1317 }, +{ 0xc, 126, 1, 1316 }, +{ 0xc2, 127, 1, 1307 }, +{ 0x6, 128, 0, 1306 }, +{ 0x44, 121, 1, 1403 }, +{ 0x22, 123, 1, 1368 }, +{ 0x44, 125, 1, 1353 }, +{ 0x22, 127, 0, 1343 }, +{ 0x24, 121, 1, 1404 }, +{ 0x12, 123, 1, 1369 }, +{ 0x24, 125, 1, 1354 }, +{ 0x12, 127, 0, 1344 }, +{ 0x14, 121, 1, 1405 }, +{ 0xa, 123, 1, 1370 }, +{ 0x14, 125, 1, 1355 }, +{ 0xa, 127, 0, 1345 }, +{ 0xc, 121, 1, 1407 }, +{ 0x4, 122, 1, 1406 }, +{ 0x6, 123, 1, 1372 }, +{ 0x2, 124, 1, 1371 }, +{ 0xc, 125, 1, 1357 }, +{ 0x4, 126, 1, 1356 }, +{ 0x6, 127, 1, 1347 }, +{ 0x2, 128, 0, 1346 }, +{ 0x442, 121, 1, 1388 }, +{ 0x221, 123, 1, 1333 }, +{ 0x442, 125, 1, 1318 }, +{ 0x221, 127, 0, 1308 }, +{ 0x242, 121, 1, 1389 }, +{ 0x121, 123, 1, 1334 }, +{ 0x242, 125, 1, 1319 }, +{ 0x121, 127, 0, 1309 }, +{ 0x142, 121, 1, 1390 }, +{ 0xa1, 123, 1, 1335 }, +{ 0x142, 125, 1, 1320 }, +{ 0xa1, 127, 0, 1310 }, +{ 0xc2, 121, 1, 1392 }, +{ 0x6, 122, 1, 1391 }, +{ 0x61, 123, 1, 1337 }, +{ 0x3, 124, 1, 1336 }, +{ 0xc2, 125, 1, 1322 }, +{ 0x6, 126, 1, 1321 }, +{ 0x61, 127, 1, 1312 }, +{ 0x3, 128, 0, 1311 }, +{ 0x22, 121, 1, 1408 }, +{ 0x11, 123, 1, 1373 }, +{ 0x22, 125, 1, 1358 }, +{ 0x11, 127, 0, 1348 }, +{ 0x12, 121, 1, 1409 }, +{ 0x9, 123, 1, 1374 }, +{ 0x12, 125, 1, 1359 }, +{ 0x9, 127, 0, 1349 }, +{ 0xa, 121, 1, 1410 }, +{ 0x5, 123, 1, 1375 }, +{ 0xa, 125, 1, 1360 }, +{ 0x5, 127, 0, 1350 }, +{ 0x6, 121, 1, 1412 }, +{ 0x2, 122, 1, 1411 }, +{ 0x3, 123, 1, 1377 }, +{ 0x1, 124, 1, 1376 }, +{ 0x6, 125, 1, 1362 }, +{ 0x2, 126, 1, 1361 }, +{ 0x3, 127, 1, 1352 }, +{ 0x1, 128, 0, 1351 }, +{ 0x221, 121, 1, 1393 }, +{ 0x221, 125, 0, 1323 }, +{ 0x121, 121, 1, 1394 }, +{ 0x121, 125, 0, 1324 }, +{ 0xa1, 121, 1, 1395 }, +{ 0xa1, 125, 0, 1325 }, +{ 0x61, 121, 1, 1397 }, +{ 0x3, 122, 1, 1396 }, +{ 0x61, 125, 1, 1327 }, +{ 0x3, 126, 0, 1326 }, +{ 0x11, 121, 1, 1413 }, +{ 0x11, 125, 0, 1363 }, +{ 0x9, 121, 1, 1414 }, +{ 0x9, 125, 0, 1364 }, +{ 0x5, 121, 1, 1415 }, +{ 0x5, 125, 0, 1365 }, +{ 0x3, 121, 1, 1417 }, +{ 0x1, 122, 1, 1416 }, +{ 0x3, 125, 1, 1367 }, +{ 0x1, 126, 0, 1366 }, +{ 0x442, 163, 0, 1418 }, +{ 0x242, 163, 0, 1419 }, +{ 0x142, 163, 0, 1420 }, +{ 0xc2, 163, 1, 1422 }, +{ 0x6, 164, 1, 1421 }, +{ 0x1, 391, 0, 941 }, +{ 0x22, 163, 0, 1428 }, +{ 0x12, 163, 0, 1429 }, +{ 0xa, 163, 0, 1430 }, +{ 0x6, 163, 1, 1432 }, +{ 0x2, 164, 1, 1431 }, +{ 0x2, 324, 0, 970 }, +{ 0x221, 163, 0, 1423 }, +{ 0x121, 163, 0, 1424 }, +{ 0xa1, 163, 0, 1425 }, +{ 0x61, 163, 1, 1427 }, +{ 0x3, 164, 1, 1426 }, +{ 0x1, 387, 0, 942 }, +{ 0x11, 163, 0, 1433 }, +{ 0x9, 163, 0, 1434 }, +{ 0x5, 163, 0, 1435 }, +{ 0x3, 163, 1, 1437 }, +{ 0x1, 164, 1, 1436 }, +{ 0x1, 324, 0, 971 }, +{ 0x4, 169, 0, 1438 }, +{ 0x1, 169, 0, 1440 }, +{ 0x1, 176, 0, 1441 }, +{ 0x1, 175, 1, 1442 }, +{ 0x2, 169, 0, 1439 }, +{ 0x1, 154, 0, 1443 }, +{ 0x880, 160, 0, 1444 }, +{ 0x480, 160, 0, 1445 }, +{ 0x280, 160, 0, 1446 }, +{ 0x180, 160, 1, 1448 }, +{ 0x80, 161, 0, 1447 }, +{ 0x440, 160, 1, 1459 }, +{ 0x88, 162, 0, 1449 }, +{ 0x240, 160, 1, 1460 }, +{ 0x48, 162, 0, 1450 }, +{ 0x140, 160, 1, 1461 }, +{ 0x28, 162, 0, 1451 }, +{ 0xc0, 160, 1, 1463 }, +{ 0x40, 161, 1, 1462 }, +{ 0x18, 162, 1, 1453 }, +{ 0x8, 162, 0, 1452 }, +{ 0x220, 160, 1, 1464 }, +{ 0x44, 162, 0, 1454 }, +{ 0x120, 160, 1, 1465 }, +{ 0x24, 162, 0, 1455 }, +{ 0xa0, 160, 1, 1466 }, +{ 0x14, 162, 0, 1456 }, +{ 0x60, 160, 1, 1468 }, +{ 0x20, 161, 1, 1467 }, +{ 0xc, 162, 1, 1458 }, +{ 0x4, 162, 0, 1457 }, +{ 0x110, 160, 0, 1469 }, +{ 0x90, 160, 0, 1470 }, +{ 0x50, 160, 0, 1471 }, +{ 0x30, 160, 1, 1473 }, +{ 0x10, 161, 1, 1472 }, +{ 0x1, 342, 0, 934 }, +{ 0x88, 160, 0, 1474 }, +{ 0x48, 160, 0, 1475 }, +{ 0x28, 160, 0, 1476 }, +{ 0x18, 160, 1, 1478 }, +{ 0x8, 161, 1, 1477 }, +{ 0xc, 325, 0, 967 }, +{ 0x44, 160, 1, 1489 }, +{ 0x22, 162, 0, 1479 }, +{ 0x24, 160, 1, 1490 }, +{ 0x12, 162, 0, 1480 }, +{ 0x14, 160, 1, 1491 }, +{ 0xa, 162, 0, 1481 }, +{ 0xc, 160, 1, 1493 }, +{ 0x4, 161, 1, 1492 }, +{ 0x6, 162, 1, 1483 }, +{ 0x2, 162, 1, 1482 }, +{ 0x6, 325, 0, 968 }, +{ 0x22, 160, 1, 1494 }, +{ 0x11, 162, 0, 1484 }, +{ 0x12, 160, 1, 1495 }, +{ 0x9, 162, 0, 1485 }, +{ 0xa, 160, 1, 1496 }, +{ 0x5, 162, 0, 1486 }, +{ 0x6, 160, 1, 1498 }, +{ 0x2, 161, 1, 1497 }, +{ 0x3, 162, 1, 1488 }, +{ 0x1, 162, 1, 1487 }, +{ 0x3, 325, 0, 969 }, +{ 0x11, 160, 0, 1499 }, +{ 0x9, 160, 0, 1500 }, +{ 0x5, 160, 0, 1501 }, +{ 0x3, 160, 1, 1503 }, +{ 0x1, 161, 0, 1502 }, +{ 0x8, 156, 0, 1504 }, +{ 0x4, 156, 0, 1505 }, +{ 0x2, 156, 0, 1506 }, +{ 0x1, 156, 1, 1508 }, +{ 0x1, 157, 1, 1507 }, +{ 0x1, 289, 0, 948 }, +{ 0x8, 158, 0, 1509 }, +{ 0x4, 158, 0, 1510 }, +{ 0x2, 158, 0, 1511 }, +{ 0x1, 158, 1, 1513 }, +{ 0x1, 159, 1, 1512 }, +{ 0x1, 288, 0, 949 }, +{ 0x8, 167, 0, 1514 }, +{ 0x4, 167, 0, 1515 }, +{ 0x2, 167, 0, 1516 }, +{ 0x1, 167, 1, 1518 }, +{ 0x1, 168, 1, 1517 }, +{ 0x1, 287, 0, 950 }, +{ 0x8, 170, 0, 1519 }, +{ 0x4, 170, 0, 1520 }, +{ 0x2, 170, 0, 1521 }, +{ 0x1, 170, 1, 1523 }, +{ 0x1, 171, 1, 1522 }, +{ 0x1, 286, 0, 951 }, +{ 0x8, 182, 0, 1524 }, +{ 0x4, 182, 0, 1525 }, +{ 0x2, 182, 0, 1526 }, +{ 0x1, 182, 1, 1528 }, +{ 0x1, 183, 0, 1527 }, +{ 0x8, 180, 0, 1529 }, +{ 0x4, 180, 0, 1530 }, +{ 0x2, 180, 0, 1531 }, +{ 0x1, 180, 1, 1533 }, +{ 0x1, 181, 0, 1532 }, +{ 0x1, 198, 0, 1534 }, +{ 0x1, 297, 0, 1535 }, +{ 0x1, 32, 0, 1536 }, +{ 0x8, 115, 0, 1537 }, +{ 0x4, 115, 0, 1538 }, +{ 0x2, 115, 0, 1539 }, +{ 0x1, 115, 1, 1541 }, +{ 0x1, 116, 0, 1540 }, +{ 0x8, 119, 0, 1542 }, +{ 0x4, 119, 0, 1543 }, +{ 0x2, 119, 0, 1544 }, +{ 0x1, 119, 1, 1546 }, +{ 0x1, 120, 0, 1545 }, +{ 0x8, 189, 0, 1547 }, +{ 0x4, 189, 0, 1548 }, +{ 0x2, 189, 0, 1549 }, +{ 0x1, 189, 1, 1551 }, +{ 0x1, 190, 0, 1550 }, +{ 0x1, 131, 0, 1552 }, +{ 0x442, 129, 0, 1553 }, +{ 0x242, 129, 0, 1554 }, +{ 0x142, 129, 0, 1555 }, +{ 0xc2, 129, 1, 1557 }, +{ 0x6, 130, 0, 1556 }, +{ 0x22, 129, 0, 1563 }, +{ 0x12, 129, 0, 1564 }, +{ 0xa, 129, 0, 1565 }, +{ 0x6, 129, 1, 1567 }, +{ 0x2, 130, 1, 1566 }, +{ 0x1, 99, 0, 1092 }, +{ 0x221, 129, 0, 1558 }, +{ 0x121, 129, 0, 1559 }, +{ 0xa1, 129, 0, 1560 }, +{ 0x61, 129, 1, 1562 }, +{ 0x3, 130, 0, 1561 }, +{ 0x11, 129, 0, 1568 }, +{ 0x9, 129, 0, 1569 }, +{ 0x5, 129, 0, 1570 }, +{ 0x3, 129, 1, 1572 }, +{ 0x1, 130, 1, 1571 }, +{ 0x1, 98, 0, 1093 }, +{ 0x1, 195, 0, 1573 }, +{ 0x1, 153, 0, 1574 }, +{ 0x1, 113, 0, 1575 }, +{ 0x1, 112, 0, 1576 }, +{ 0x4, 192, 0, 1577 }, +{ 0x2, 192, 0, 1578 }, +{ 0x1, 192, 0, 1579 }, +{ 0x1, 155, 0, 1580 }, +{ 0x2, 193, 0, 1581 }, +{ 0x1, 193, 0, 1582 }, +{ 0x4, 143, 0, 1583 }, +{ 0x2, 143, 0, 1584 }, +{ 0x1, 143, 0, 1585 }, { 0x4, 140, 0, 1586 }, +{ 0x1, 148, 0, 1589 }, +{ 0x1, 147, 1, 1590 }, { 0x2, 140, 0, 1587 }, -{ 0x1, 140, 1, 1589 }, -{ 0x1, 141, 1, 1588 }, -{ 0x1, 370, 0, 1075 }, -{ 0x8, 185, 0, 1590 }, -{ 0x4, 185, 0, 1591 }, -{ 0x2, 185, 0, 1592 }, -{ 0x1, 185, 1, 1594 }, -{ 0x1, 186, 0, 1593 }, -{ 0x8, 183, 0, 1595 }, -{ 0x4, 183, 0, 1596 }, -{ 0x2, 183, 0, 1597 }, -{ 0x1, 183, 1, 1599 }, -{ 0x1, 184, 0, 1598 }, -{ 0x8, 43, 0, 1604 }, -{ 0x18, 43, 0, 1600 }, -{ 0x4, 43, 0, 1605 }, -{ 0xc, 43, 0, 1601 }, -{ 0x2, 43, 0, 1606 }, -{ 0x6, 43, 0, 1602 }, -{ 0x1, 43, 0, 1607 }, -{ 0x3, 43, 0, 1603 }, -{ 0x51, 29, 0, 1609 }, -{ 0xd1, 29, 0, 1608 }, -{ 0x31, 29, 1, 1619 }, -{ 0x11, 30, 0, 1618 }, -{ 0x71, 29, 1, 1617 }, -{ 0x31, 30, 0, 1616 }, -{ 0x29, 29, 0, 1611 }, -{ 0x69, 29, 0, 1610 }, -{ 0x19, 29, 1, 1623 }, -{ 0x9, 30, 0, 1622 }, -{ 0x39, 29, 1, 1621 }, -{ 0x19, 30, 0, 1620 }, -{ 0x15, 29, 0, 1613 }, -{ 0x35, 29, 0, 1612 }, -{ 0xd, 29, 1, 1627 }, -{ 0x5, 30, 0, 1626 }, -{ 0x1d, 29, 1, 1625 }, -{ 0xd, 30, 0, 1624 }, -{ 0xb, 29, 0, 1615 }, -{ 0x1b, 29, 0, 1614 }, -{ 0x7, 29, 1, 1631 }, -{ 0x3, 30, 0, 1630 }, -{ 0xf, 29, 1, 1629 }, -{ 0x7, 30, 0, 1628 }, -{ 0xa2, 27, 0, 1633 }, -{ 0x1a2, 27, 0, 1632 }, -{ 0x62, 27, 1, 1643 }, -{ 0x22, 28, 0, 1642 }, -{ 0xe2, 27, 1, 1641 }, -{ 0x62, 28, 0, 1640 }, -{ 0x52, 27, 0, 1635 }, -{ 0xd2, 27, 0, 1634 }, -{ 0x32, 27, 1, 1647 }, -{ 0x12, 28, 0, 1646 }, -{ 0x72, 27, 1, 1645 }, -{ 0x32, 28, 0, 1644 }, -{ 0x2a, 27, 0, 1637 }, -{ 0x6a, 27, 0, 1636 }, -{ 0x1a, 27, 1, 1651 }, -{ 0xa, 28, 0, 1650 }, -{ 0x3a, 27, 1, 1649 }, -{ 0x1a, 28, 0, 1648 }, -{ 0x16, 27, 0, 1639 }, -{ 0x36, 27, 0, 1638 }, -{ 0xe, 27, 1, 1655 }, -{ 0x6, 28, 0, 1654 }, -{ 0x1e, 27, 1, 1653 }, -{ 0xe, 28, 0, 1652 }, -{ 0x51, 27, 0, 1657 }, -{ 0xd1, 27, 0, 1656 }, -{ 0x31, 27, 1, 1667 }, -{ 0x11, 28, 0, 1666 }, -{ 0x71, 27, 1, 1665 }, -{ 0x31, 28, 0, 1664 }, -{ 0x29, 27, 0, 1659 }, -{ 0x69, 27, 0, 1658 }, -{ 0x19, 27, 1, 1671 }, -{ 0x9, 28, 0, 1670 }, -{ 0x39, 27, 1, 1669 }, -{ 0x19, 28, 0, 1668 }, -{ 0x15, 27, 0, 1661 }, -{ 0x35, 27, 0, 1660 }, -{ 0xd, 27, 1, 1675 }, -{ 0x5, 28, 0, 1674 }, -{ 0x1d, 27, 1, 1673 }, -{ 0xd, 28, 0, 1672 }, -{ 0xb, 27, 0, 1663 }, -{ 0x1b, 27, 0, 1662 }, -{ 0x7, 27, 1, 1679 }, -{ 0x3, 28, 0, 1678 }, -{ 0xf, 27, 1, 1677 }, -{ 0x7, 28, 0, 1676 }, -{ 0x51, 25, 0, 1681 }, -{ 0xd1, 25, 0, 1680 }, -{ 0x31, 25, 1, 1691 }, -{ 0x11, 26, 0, 1690 }, -{ 0x71, 25, 1, 1689 }, -{ 0x31, 26, 0, 1688 }, -{ 0x29, 25, 0, 1683 }, -{ 0x69, 25, 0, 1682 }, -{ 0x19, 25, 1, 1695 }, -{ 0x9, 26, 0, 1694 }, -{ 0x39, 25, 1, 1693 }, -{ 0x19, 26, 0, 1692 }, -{ 0x15, 25, 0, 1685 }, -{ 0x35, 25, 0, 1684 }, -{ 0xd, 25, 1, 1699 }, -{ 0x5, 26, 0, 1698 }, -{ 0x1d, 25, 1, 1697 }, -{ 0xd, 26, 0, 1696 }, -{ 0xb, 25, 0, 1687 }, -{ 0x1b, 25, 0, 1686 }, -{ 0x7, 25, 1, 1703 }, -{ 0x3, 26, 0, 1702 }, -{ 0xf, 25, 1, 1701 }, -{ 0x7, 26, 0, 1700 }, -{ 0xa2, 23, 0, 1705 }, -{ 0x1a2, 23, 0, 1704 }, -{ 0x62, 23, 1, 1715 }, -{ 0x22, 24, 0, 1714 }, -{ 0xe2, 23, 1, 1713 }, -{ 0x62, 24, 0, 1712 }, -{ 0x52, 23, 0, 1707 }, -{ 0xd2, 23, 0, 1706 }, -{ 0x32, 23, 1, 1719 }, -{ 0x12, 24, 0, 1718 }, -{ 0x72, 23, 1, 1717 }, -{ 0x32, 24, 0, 1716 }, -{ 0x2a, 23, 0, 1709 }, -{ 0x6a, 23, 0, 1708 }, -{ 0x1a, 23, 1, 1723 }, -{ 0xa, 24, 0, 1722 }, -{ 0x3a, 23, 1, 1721 }, -{ 0x1a, 24, 0, 1720 }, -{ 0x16, 23, 0, 1711 }, -{ 0x36, 23, 0, 1710 }, -{ 0xe, 23, 1, 1727 }, -{ 0x6, 24, 0, 1726 }, -{ 0x1e, 23, 1, 1725 }, -{ 0xe, 24, 0, 1724 }, -{ 0x51, 23, 0, 1729 }, -{ 0xd1, 23, 0, 1728 }, -{ 0x31, 23, 1, 1739 }, -{ 0x11, 24, 0, 1738 }, -{ 0x71, 23, 1, 1737 }, -{ 0x31, 24, 0, 1736 }, -{ 0x29, 23, 0, 1731 }, -{ 0x69, 23, 0, 1730 }, -{ 0x19, 23, 1, 1743 }, -{ 0x9, 24, 0, 1742 }, -{ 0x39, 23, 1, 1741 }, -{ 0x19, 24, 0, 1740 }, -{ 0x15, 23, 0, 1733 }, -{ 0x35, 23, 0, 1732 }, -{ 0xd, 23, 1, 1747 }, -{ 0x5, 24, 0, 1746 }, -{ 0x1d, 23, 1, 1745 }, -{ 0xd, 24, 0, 1744 }, -{ 0xb, 23, 0, 1735 }, -{ 0x1b, 23, 0, 1734 }, -{ 0x7, 23, 1, 1751 }, -{ 0x3, 24, 0, 1750 }, -{ 0xf, 23, 1, 1749 }, -{ 0x7, 24, 0, 1748 }, -{ 0x51, 21, 1, 1777 }, -{ 0x50, 21, 0, 1753 }, -{ 0xd1, 21, 1, 1776 }, -{ 0xd0, 21, 0, 1752 }, -{ 0x31, 21, 1, 1787 }, -{ 0x30, 21, 1, 1763 }, -{ 0x11, 22, 1, 1786 }, -{ 0x10, 22, 0, 1762 }, -{ 0x71, 21, 1, 1785 }, -{ 0x70, 21, 1, 1761 }, -{ 0x31, 22, 1, 1784 }, -{ 0x30, 22, 0, 1760 }, -{ 0x29, 21, 1, 1779 }, -{ 0x28, 21, 0, 1755 }, -{ 0x69, 21, 1, 1778 }, -{ 0x68, 21, 0, 1754 }, -{ 0x19, 21, 1, 1791 }, -{ 0x18, 21, 1, 1767 }, -{ 0x9, 22, 1, 1790 }, -{ 0x8, 22, 0, 1766 }, -{ 0x39, 21, 1, 1789 }, -{ 0x38, 21, 1, 1765 }, -{ 0x19, 22, 1, 1788 }, -{ 0x18, 22, 0, 1764 }, -{ 0x15, 21, 1, 1781 }, -{ 0x14, 21, 0, 1757 }, -{ 0x35, 21, 1, 1780 }, -{ 0x34, 21, 0, 1756 }, -{ 0xd, 21, 1, 1795 }, -{ 0xc, 21, 1, 1771 }, -{ 0x5, 22, 1, 1794 }, -{ 0x4, 22, 0, 1770 }, -{ 0x1d, 21, 1, 1793 }, -{ 0x1c, 21, 1, 1769 }, -{ 0xd, 22, 1, 1792 }, -{ 0xc, 22, 0, 1768 }, -{ 0xb, 21, 1, 1783 }, -{ 0xa, 21, 0, 1759 }, -{ 0x1b, 21, 1, 1782 }, -{ 0x1a, 21, 0, 1758 }, -{ 0x7, 21, 1, 1799 }, -{ 0x6, 21, 1, 1775 }, -{ 0x3, 22, 1, 1798 }, -{ 0x2, 22, 0, 1774 }, -{ 0xf, 21, 1, 1797 }, -{ 0xe, 21, 1, 1773 }, -{ 0x7, 22, 1, 1796 }, -{ 0x6, 22, 0, 1772 }, -{ 0x8, 20, 0, 1801 }, -{ 0x18, 20, 0, 1800 }, -{ 0x1, 20, 1, 1805 }, -{ 0x2, 20, 0, 1804 }, -{ 0x3, 20, 1, 1803 }, -{ 0x4, 20, 0, 1802 }, -{ 0x1, 287, 0, 1806 }, -{ 0x14, 42, 0, 1809 }, -{ 0x34, 42, 0, 1807 }, -{ 0xc, 42, 0, 1810 }, -{ 0x1c, 42, 0, 1808 }, -{ 0x2, 42, 0, 1813 }, -{ 0x6, 42, 0, 1811 }, -{ 0x1, 42, 0, 1814 }, -{ 0x3, 42, 0, 1812 }, -{ 0x51, 18, 0, 1816 }, -{ 0xd1, 18, 0, 1815 }, -{ 0x31, 18, 1, 1826 }, -{ 0x11, 19, 0, 1825 }, -{ 0x71, 18, 1, 1824 }, -{ 0x31, 19, 0, 1823 }, -{ 0x29, 18, 0, 1818 }, -{ 0x69, 18, 0, 1817 }, -{ 0x19, 18, 1, 1830 }, -{ 0x9, 19, 0, 1829 }, -{ 0x39, 18, 1, 1828 }, -{ 0x19, 19, 0, 1827 }, -{ 0x15, 18, 0, 1820 }, -{ 0x35, 18, 0, 1819 }, -{ 0xd, 18, 1, 1834 }, -{ 0x5, 19, 0, 1833 }, -{ 0x1d, 18, 1, 1832 }, -{ 0xd, 19, 0, 1831 }, -{ 0xb, 18, 0, 1822 }, -{ 0x1b, 18, 0, 1821 }, -{ 0x7, 18, 1, 1838 }, -{ 0x3, 19, 0, 1837 }, -{ 0xf, 18, 1, 1836 }, -{ 0x7, 19, 0, 1835 }, -{ 0x1, 31, 0, 1839 }, -{ 0x1, 103, 0, 1840 }, -{ 0x2, 44, 0, 1841 }, -{ 0x1, 44, 0, 1842 }, -{ 0x1, 335, 0, 1843 }, -{ 0x2, 51, 0, 1844 }, -{ 0x1, 51, 0, 1845 }, -{ 0x1, 96, 0, 1846 }, -{ 0x51, 16, 0, 1848 }, -{ 0xd1, 16, 0, 1847 }, -{ 0x31, 16, 1, 1858 }, -{ 0x11, 17, 0, 1857 }, -{ 0x71, 16, 1, 1856 }, -{ 0x31, 17, 0, 1855 }, -{ 0x29, 16, 0, 1850 }, -{ 0x69, 16, 0, 1849 }, -{ 0x19, 16, 1, 1862 }, -{ 0x9, 17, 0, 1861 }, -{ 0x39, 16, 1, 1860 }, -{ 0x19, 17, 0, 1859 }, -{ 0x15, 16, 0, 1852 }, -{ 0x35, 16, 0, 1851 }, -{ 0xd, 16, 1, 1866 }, -{ 0x5, 17, 0, 1865 }, -{ 0x1d, 16, 1, 1864 }, -{ 0xd, 17, 0, 1863 }, -{ 0xb, 16, 0, 1854 }, -{ 0x1b, 16, 0, 1853 }, -{ 0x7, 16, 1, 1870 }, -{ 0x3, 17, 0, 1869 }, -{ 0xf, 16, 1, 1868 }, -{ 0x7, 17, 0, 1867 }, -{ 0xa20, 14, 0, 1872 }, -{ 0x1a20, 14, 0, 1871 }, -{ 0x620, 14, 1, 1882 }, -{ 0x220, 15, 0, 1881 }, -{ 0xe20, 14, 1, 1880 }, -{ 0x620, 15, 0, 1879 }, -{ 0x520, 14, 0, 1874 }, -{ 0xd20, 14, 0, 1873 }, -{ 0x320, 14, 1, 1886 }, -{ 0x120, 15, 0, 1885 }, -{ 0x720, 14, 1, 1884 }, -{ 0x320, 15, 0, 1883 }, -{ 0x2a0, 14, 0, 1876 }, -{ 0x6a0, 14, 0, 1875 }, -{ 0x1a0, 14, 1, 1890 }, -{ 0xa0, 15, 0, 1889 }, -{ 0x3a0, 14, 1, 1888 }, -{ 0x1a0, 15, 0, 1887 }, -{ 0x160, 14, 0, 1878 }, -{ 0x360, 14, 0, 1877 }, -{ 0xe0, 14, 1, 1894 }, -{ 0x60, 15, 0, 1893 }, -{ 0x1e0, 14, 1, 1892 }, -{ 0xe0, 15, 0, 1891 }, -{ 0x51, 14, 1, 1920 }, -{ 0x50, 14, 0, 1896 }, -{ 0xd1, 14, 1, 1919 }, -{ 0xd0, 14, 0, 1895 }, -{ 0x31, 14, 1, 1930 }, -{ 0x30, 14, 1, 1906 }, -{ 0x11, 15, 1, 1929 }, -{ 0x10, 15, 0, 1905 }, -{ 0x71, 14, 1, 1928 }, -{ 0x70, 14, 1, 1904 }, -{ 0x31, 15, 1, 1927 }, -{ 0x30, 15, 0, 1903 }, -{ 0x29, 14, 1, 1922 }, -{ 0x28, 14, 0, 1898 }, -{ 0x69, 14, 1, 1921 }, -{ 0x68, 14, 0, 1897 }, -{ 0x19, 14, 1, 1934 }, -{ 0x18, 14, 1, 1910 }, -{ 0x9, 15, 1, 1933 }, -{ 0x8, 15, 0, 1909 }, -{ 0x39, 14, 1, 1932 }, -{ 0x38, 14, 1, 1908 }, -{ 0x19, 15, 1, 1931 }, -{ 0x18, 15, 0, 1907 }, -{ 0x15, 14, 1, 1924 }, -{ 0x14, 14, 0, 1900 }, -{ 0x35, 14, 1, 1923 }, -{ 0x34, 14, 0, 1899 }, -{ 0xd, 14, 1, 1938 }, -{ 0xc, 14, 1, 1914 }, -{ 0x5, 15, 1, 1937 }, -{ 0x4, 15, 0, 1913 }, -{ 0x1d, 14, 1, 1936 }, -{ 0x1c, 14, 1, 1912 }, -{ 0xd, 15, 1, 1935 }, -{ 0xc, 15, 0, 1911 }, -{ 0xb, 14, 1, 1926 }, -{ 0xa, 14, 0, 1902 }, -{ 0x1b, 14, 1, 1925 }, -{ 0x1a, 14, 0, 1901 }, -{ 0x7, 14, 1, 1942 }, -{ 0x6, 14, 1, 1918 }, -{ 0x3, 15, 1, 1941 }, -{ 0x2, 15, 0, 1917 }, -{ 0xf, 14, 1, 1940 }, -{ 0xe, 14, 1, 1916 }, -{ 0x7, 15, 1, 1939 }, -{ 0x6, 15, 0, 1915 }, -{ 0x8, 13, 0, 1944 }, -{ 0x18, 13, 0, 1943 }, -{ 0x1, 13, 1, 1948 }, -{ 0x2, 13, 0, 1947 }, -{ 0x3, 13, 1, 1946 }, -{ 0x4, 13, 0, 1945 }, -{ 0x1, 84, 1, 2024 }, -{ 0x1, 85, 1, 2023 }, -{ 0x1, 86, 1, 2022 }, -{ 0x1, 87, 1, 2021 }, -{ 0x39, 40, 1, 21 }, -{ 0x19, 41, 0, 20 }, -{ 0x3, 84, 1, 2020 }, -{ 0x3, 85, 1, 2019 }, -{ 0x3, 86, 1, 2018 }, -{ 0x3, 87, 1, 2017 }, -{ 0x69, 40, 0, 10 }, -{ 0x14, 79, 1, 2014 }, -{ 0xa, 83, 1, 2013 }, -{ 0xd1, 40, 0, 8 }, -{ 0x34, 79, 1, 1950 }, -{ 0xe, 91, 0, 1949 }, -{ 0xc, 79, 1, 2094 }, -{ 0x6, 83, 0, 2093 }, -{ 0x2, 79, 1, 1956 }, -{ 0x2, 82, 0, 1955 }, -{ 0x12, 79, 1, 1954 }, -{ 0x6, 82, 0, 1953 }, -{ 0xa, 79, 1, 2016 }, -{ 0x5, 83, 1, 2015 }, -{ 0x71, 40, 1, 17 }, -{ 0x31, 41, 0, 16 }, -{ 0x1a, 79, 1, 1952 }, -{ 0x7, 91, 0, 1951 }, -{ 0x6, 79, 1, 2096 }, -{ 0x3, 83, 0, 2095 }, -{ 0x1, 79, 1, 2104 }, -{ 0x1, 80, 1, 2103 }, -{ 0x1, 81, 1, 2102 }, -{ 0x1, 82, 0, 2101 }, -{ 0x3, 79, 1, 2100 }, -{ 0x3, 80, 1, 2099 }, -{ 0x3, 81, 1, 2098 }, -{ 0x3, 82, 0, 2097 }, -{ 0x8, 60, 1, 2036 }, -{ 0x2, 63, 1, 2033 }, -{ 0x1, 65, 1, 2035 }, -{ 0x1, 66, 1, 2034 }, -{ 0xf, 40, 1, 29 }, -{ 0x7, 41, 0, 28 }, -{ 0x18, 60, 1, 2032 }, -{ 0x6, 63, 1, 2029 }, -{ 0x3, 65, 1, 2031 }, -{ 0x3, 66, 1, 2030 }, -{ 0x1b, 40, 0, 14 }, -{ 0x14, 60, 1, 2026 }, -{ 0xa, 64, 1, 2025 }, -{ 0x35, 40, 0, 12 }, -{ 0x34, 60, 1, 1958 }, -{ 0xe, 70, 0, 1957 }, -{ 0xc, 60, 1, 2106 }, -{ 0x6, 64, 0, 2105 }, -{ 0x2, 60, 1, 1964 }, -{ 0x4, 63, 0, 1963 }, -{ 0x12, 60, 1, 1962 }, -{ 0xc, 63, 0, 1961 }, -{ 0xa, 60, 1, 2028 }, -{ 0x5, 64, 1, 2027 }, -{ 0x1d, 40, 1, 25 }, -{ 0xd, 41, 0, 24 }, -{ 0x1a, 60, 1, 1960 }, -{ 0x7, 70, 0, 1959 }, -{ 0x6, 60, 1, 2108 }, -{ 0x3, 64, 0, 2107 }, -{ 0x1, 60, 1, 2116 }, -{ 0x1, 61, 1, 2115 }, -{ 0x1, 62, 1, 2114 }, -{ 0x1, 63, 0, 2113 }, -{ 0x3, 60, 1, 2112 }, -{ 0x3, 61, 1, 2111 }, -{ 0x3, 62, 1, 2110 }, -{ 0x3, 63, 0, 2109 }, -{ 0x28, 76, 1, 2040 }, -{ 0x44, 77, 1, 2037 }, -{ 0x88, 77, 1, 2039 }, -{ 0x28, 78, 0, 2038 }, -{ 0x68, 76, 1, 1968 }, -{ 0x188, 77, 1, 1967 }, -{ 0x38, 89, 1, 1966 }, -{ 0x38, 90, 0, 1965 }, -{ 0x18, 76, 1, 2120 }, -{ 0x14, 77, 1, 2117 }, -{ 0x28, 77, 1, 2119 }, -{ 0x18, 78, 0, 2118 }, -{ 0x14, 76, 1, 2044 }, -{ 0x24, 77, 1, 2043 }, -{ 0x48, 77, 1, 2041 }, -{ 0x14, 78, 0, 2042 }, -{ 0x34, 76, 1, 1972 }, -{ 0x64, 77, 1, 1971 }, -{ 0x1c, 89, 1, 1970 }, -{ 0x1c, 90, 0, 1969 }, -{ 0xc, 76, 1, 2124 }, -{ 0xc, 77, 1, 2123 }, -{ 0x18, 77, 1, 2121 }, -{ 0xc, 78, 0, 2122 }, -{ 0xa, 76, 1, 2048 }, -{ 0x11, 77, 1, 2045 }, -{ 0x22, 77, 1, 2047 }, -{ 0xa, 78, 0, 2046 }, -{ 0x1a, 76, 1, 1976 }, -{ 0x62, 77, 1, 1975 }, -{ 0xe, 89, 1, 1974 }, -{ 0xe, 90, 0, 1973 }, -{ 0x6, 76, 1, 2128 }, -{ 0x5, 77, 1, 2125 }, -{ 0xa, 77, 1, 2127 }, -{ 0x6, 78, 0, 2126 }, -{ 0x5, 76, 1, 2052 }, -{ 0x9, 77, 1, 2051 }, -{ 0x12, 77, 1, 2049 }, -{ 0x5, 78, 0, 2050 }, -{ 0xd, 76, 1, 1980 }, -{ 0x19, 77, 1, 1979 }, -{ 0x7, 89, 1, 1978 }, -{ 0x7, 90, 0, 1977 }, -{ 0x3, 76, 1, 2132 }, -{ 0x3, 77, 1, 2131 }, -{ 0x6, 77, 1, 2129 }, -{ 0x3, 78, 0, 2130 }, -{ 0x28, 57, 1, 2056 }, -{ 0x44, 58, 1, 2053 }, -{ 0x88, 58, 1, 2055 }, -{ 0x28, 59, 0, 2054 }, -{ 0x68, 57, 1, 1984 }, -{ 0x188, 58, 1, 1983 }, -{ 0x38, 68, 1, 1982 }, -{ 0x38, 69, 0, 1981 }, -{ 0x18, 57, 1, 2136 }, -{ 0x14, 58, 1, 2133 }, -{ 0x28, 58, 1, 2135 }, -{ 0x18, 59, 0, 2134 }, -{ 0x14, 57, 1, 2060 }, -{ 0x24, 58, 1, 2059 }, -{ 0x48, 58, 1, 2057 }, -{ 0x14, 59, 0, 2058 }, -{ 0x34, 57, 1, 1988 }, -{ 0x64, 58, 1, 1987 }, -{ 0x1c, 68, 1, 1986 }, -{ 0x1c, 69, 0, 1985 }, -{ 0xc, 57, 1, 2140 }, -{ 0xc, 58, 1, 2139 }, -{ 0x18, 58, 1, 2137 }, -{ 0xc, 59, 0, 2138 }, -{ 0xa, 57, 1, 2064 }, -{ 0x11, 58, 1, 2061 }, -{ 0x22, 58, 1, 2063 }, -{ 0xa, 59, 0, 2062 }, -{ 0x1a, 57, 1, 1992 }, -{ 0x62, 58, 1, 1991 }, -{ 0xe, 68, 1, 1990 }, -{ 0xe, 69, 0, 1989 }, -{ 0x6, 57, 1, 2144 }, -{ 0x5, 58, 1, 2141 }, -{ 0xa, 58, 1, 2143 }, -{ 0x6, 59, 0, 2142 }, -{ 0x5, 57, 1, 2068 }, -{ 0x9, 58, 1, 2067 }, -{ 0x12, 58, 1, 2065 }, -{ 0x5, 59, 0, 2066 }, -{ 0xd, 57, 1, 1996 }, -{ 0x19, 58, 1, 1995 }, -{ 0x7, 68, 1, 1994 }, -{ 0x7, 69, 0, 1993 }, -{ 0x3, 57, 1, 2148 }, -{ 0x3, 58, 1, 2147 }, -{ 0x6, 58, 1, 2145 }, -{ 0x3, 59, 0, 2146 }, -{ 0x8, 71, 1, 2080 }, -{ 0x2, 72, 1, 2079 }, -{ 0x2, 73, 1, 2078 }, -{ 0x2, 74, 0, 2077 }, -{ 0x18, 71, 1, 2076 }, -{ 0x6, 72, 1, 2075 }, -{ 0x6, 73, 1, 2074 }, -{ 0x6, 74, 0, 2073 }, -{ 0x14, 71, 1, 2070 }, -{ 0xa, 75, 0, 2069 }, -{ 0x34, 71, 1, 1998 }, -{ 0xe, 88, 0, 1997 }, -{ 0xc, 71, 1, 2150 }, -{ 0x6, 75, 0, 2149 }, -{ 0x2, 71, 1, 2004 }, -{ 0x4, 74, 0, 2003 }, -{ 0x12, 71, 1, 2002 }, -{ 0xc, 74, 0, 2001 }, -{ 0xa, 71, 1, 2072 }, -{ 0x5, 75, 0, 2071 }, -{ 0x1a, 71, 1, 2000 }, -{ 0x7, 88, 0, 1999 }, -{ 0x6, 71, 1, 2152 }, -{ 0x3, 75, 0, 2151 }, -{ 0x1, 71, 1, 2160 }, -{ 0x1, 72, 1, 2159 }, -{ 0x1, 73, 1, 2158 }, -{ 0x1, 74, 0, 2157 }, -{ 0x3, 71, 1, 2156 }, -{ 0x3, 72, 1, 2155 }, -{ 0x3, 73, 1, 2154 }, -{ 0x3, 74, 0, 2153 }, -{ 0x8, 52, 1, 2092 }, -{ 0x2, 53, 1, 2091 }, -{ 0x2, 54, 1, 2090 }, -{ 0x2, 55, 0, 2089 }, -{ 0x18, 52, 1, 2088 }, -{ 0x6, 53, 1, 2087 }, -{ 0x6, 54, 1, 2086 }, -{ 0x6, 55, 0, 2085 }, -{ 0x14, 52, 1, 2082 }, -{ 0xa, 56, 0, 2081 }, -{ 0x34, 52, 1, 2006 }, -{ 0xe, 67, 0, 2005 }, -{ 0xc, 52, 1, 2162 }, -{ 0x6, 56, 0, 2161 }, -{ 0x2, 52, 1, 2012 }, -{ 0x4, 55, 0, 2011 }, -{ 0x12, 52, 1, 2010 }, -{ 0xc, 55, 0, 2009 }, -{ 0xa, 52, 1, 2084 }, -{ 0x5, 56, 0, 2083 }, -{ 0x1a, 52, 1, 2008 }, -{ 0x7, 67, 0, 2007 }, -{ 0x6, 52, 1, 2164 }, -{ 0x3, 56, 0, 2163 }, -{ 0x1, 52, 1, 2172 }, -{ 0x1, 53, 1, 2171 }, -{ 0x1, 54, 1, 2170 }, -{ 0x1, 55, 0, 2169 }, -{ 0x3, 52, 1, 2168 }, -{ 0x3, 53, 1, 2167 }, -{ 0x3, 54, 1, 2166 }, -{ 0x3, 55, 0, 2165 }, -{ 0x1, 4, 0, 2173 }, -{ 0x1, 245, 0, 2174 }, -{ 0x1, 327, 0, 2175 }, -{ 0x1, 322, 0, 2176 }, -{ 0x2, 306, 0, 2177 }, -{ 0x1, 306, 0, 2180 }, -{ 0x2, 305, 0, 2178 }, -{ 0x1, 305, 0, 2181 }, -{ 0x2, 304, 0, 2179 }, -{ 0x1, 304, 0, 2182 }, -{ 0x1, 303, 0, 2183 }, -{ 0x1, 302, 0, 2184 }, -{ 0x2, 301, 0, 2185 }, -{ 0x1, 301, 0, 2187 }, -{ 0x2, 300, 0, 2186 }, -{ 0x1, 300, 0, 2188 }, -{ 0x1, 330, 0, 2195 }, -{ 0x8, 329, 0, 2189 }, -{ 0x4, 329, 0, 2191 }, -{ 0x2, 329, 0, 2193 }, -{ 0x1, 329, 0, 2196 }, -{ 0x8, 328, 0, 2190 }, -{ 0x4, 328, 0, 2192 }, -{ 0x2, 328, 0, 2194 }, -{ 0x1, 328, 0, 2197 }, -{ 0x1, 299, 0, 2204 }, -{ 0x8, 298, 0, 2198 }, -{ 0x4, 298, 0, 2200 }, -{ 0x2, 298, 0, 2202 }, -{ 0x1, 298, 0, 2205 }, -{ 0x8, 297, 0, 2199 }, -{ 0x4, 297, 0, 2201 }, -{ 0x2, 297, 1, 2203 }, -{ 0x4, 106, 0, 1249 }, -{ 0x1, 297, 0, 2206 }, -{ 0x1, 6, 0, 2207 }, -{ 0x1, 7, 0, 2208 }, -{ 0x1, 244, 0, 2209 }, -{ 0x1, 243, 0, 2210 }, -{ 0x1, 393, 0, 2211 }, -{ 0x1, 294, 0, 2212 }, -{ 0x1, 12, 0, 2213 }, -{ 0x1, 10, 0, 2214 }, -{ 0x1, 368, 0, 2215 }, -{ 0x1, 342, 0, 2216 }, -{ 0x1, 341, 0, 2217 }, -{ 0x1, 392, 0, 2218 }, -{ 0x1, 293, 0, 2219 }, -{ 0x1, 11, 0, 2220 }, -{ 0x1, 9, 0, 2221 }, -{ 0x1, 5, 0, 2222 }, -{ 0x1, 367, 0, 2223 }, -{ 0x1, 366, 0, 2224 }, -{ 0x1, 1, 0, 2225 }, -{ 0x1, 0, 0, 2226 }, +{ 0x1, 106, 0, 1591 }, +{ 0x1, 255, 1, 1592 }, +{ 0x1, 140, 0, 1588 }, +{ 0x8, 108, 0, 1593 }, +{ 0x4, 108, 0, 1594 }, +{ 0x2, 108, 0, 1595 }, +{ 0x1, 108, 1, 1597 }, +{ 0x1, 109, 0, 1596 }, +{ 0x8, 110, 0, 1598 }, +{ 0x4, 110, 0, 1599 }, +{ 0x2, 110, 0, 1600 }, +{ 0x1, 110, 1, 1602 }, +{ 0x1, 111, 1, 1601 }, +{ 0x1, 382, 0, 1094 }, +{ 0x8, 138, 0, 1603 }, +{ 0x4, 138, 0, 1604 }, +{ 0x2, 138, 0, 1605 }, +{ 0x1, 138, 1, 1607 }, +{ 0x1, 139, 1, 1606 }, +{ 0x1, 381, 0, 1095 }, +{ 0x8, 141, 0, 1608 }, +{ 0x4, 141, 0, 1609 }, +{ 0x2, 141, 0, 1610 }, +{ 0x1, 141, 1, 1612 }, +{ 0x1, 142, 1, 1611 }, +{ 0x1, 380, 0, 1096 }, +{ 0x8, 186, 0, 1613 }, +{ 0x4, 186, 0, 1614 }, +{ 0x2, 186, 0, 1615 }, +{ 0x1, 186, 1, 1617 }, +{ 0x1, 187, 0, 1616 }, +{ 0x8, 184, 0, 1618 }, +{ 0x4, 184, 0, 1619 }, +{ 0x2, 184, 0, 1620 }, +{ 0x1, 184, 1, 1622 }, +{ 0x1, 185, 0, 1621 }, +{ 0x8, 43, 0, 1627 }, +{ 0x18, 43, 0, 1623 }, +{ 0x4, 43, 0, 1628 }, +{ 0xc, 43, 0, 1624 }, +{ 0x2, 43, 0, 1629 }, +{ 0x6, 43, 0, 1625 }, +{ 0x1, 43, 0, 1630 }, +{ 0x3, 43, 0, 1626 }, +{ 0x51, 29, 0, 1632 }, +{ 0xd1, 29, 0, 1631 }, +{ 0x31, 29, 1, 1642 }, +{ 0x11, 30, 0, 1641 }, +{ 0x71, 29, 1, 1640 }, +{ 0x31, 30, 0, 1639 }, +{ 0x29, 29, 0, 1634 }, +{ 0x69, 29, 0, 1633 }, +{ 0x19, 29, 1, 1646 }, +{ 0x9, 30, 0, 1645 }, +{ 0x39, 29, 1, 1644 }, +{ 0x19, 30, 0, 1643 }, +{ 0x15, 29, 0, 1636 }, +{ 0x35, 29, 0, 1635 }, +{ 0xd, 29, 1, 1650 }, +{ 0x5, 30, 0, 1649 }, +{ 0x1d, 29, 1, 1648 }, +{ 0xd, 30, 0, 1647 }, +{ 0xb, 29, 0, 1638 }, +{ 0x1b, 29, 0, 1637 }, +{ 0x7, 29, 1, 1654 }, +{ 0x3, 30, 0, 1653 }, +{ 0xf, 29, 1, 1652 }, +{ 0x7, 30, 0, 1651 }, +{ 0xa2, 27, 0, 1656 }, +{ 0x1a2, 27, 0, 1655 }, +{ 0x62, 27, 1, 1666 }, +{ 0x22, 28, 0, 1665 }, +{ 0xe2, 27, 1, 1664 }, +{ 0x62, 28, 0, 1663 }, +{ 0x52, 27, 0, 1658 }, +{ 0xd2, 27, 0, 1657 }, +{ 0x32, 27, 1, 1670 }, +{ 0x12, 28, 0, 1669 }, +{ 0x72, 27, 1, 1668 }, +{ 0x32, 28, 0, 1667 }, +{ 0x2a, 27, 0, 1660 }, +{ 0x6a, 27, 0, 1659 }, +{ 0x1a, 27, 1, 1674 }, +{ 0xa, 28, 0, 1673 }, +{ 0x3a, 27, 1, 1672 }, +{ 0x1a, 28, 0, 1671 }, +{ 0x16, 27, 0, 1662 }, +{ 0x36, 27, 0, 1661 }, +{ 0xe, 27, 1, 1678 }, +{ 0x6, 28, 0, 1677 }, +{ 0x1e, 27, 1, 1676 }, +{ 0xe, 28, 0, 1675 }, +{ 0x51, 27, 0, 1680 }, +{ 0xd1, 27, 0, 1679 }, +{ 0x31, 27, 1, 1690 }, +{ 0x11, 28, 0, 1689 }, +{ 0x71, 27, 1, 1688 }, +{ 0x31, 28, 0, 1687 }, +{ 0x29, 27, 0, 1682 }, +{ 0x69, 27, 0, 1681 }, +{ 0x19, 27, 1, 1694 }, +{ 0x9, 28, 0, 1693 }, +{ 0x39, 27, 1, 1692 }, +{ 0x19, 28, 0, 1691 }, +{ 0x15, 27, 0, 1684 }, +{ 0x35, 27, 0, 1683 }, +{ 0xd, 27, 1, 1698 }, +{ 0x5, 28, 0, 1697 }, +{ 0x1d, 27, 1, 1696 }, +{ 0xd, 28, 0, 1695 }, +{ 0xb, 27, 0, 1686 }, +{ 0x1b, 27, 0, 1685 }, +{ 0x7, 27, 1, 1702 }, +{ 0x3, 28, 0, 1701 }, +{ 0xf, 27, 1, 1700 }, +{ 0x7, 28, 0, 1699 }, +{ 0x51, 25, 0, 1704 }, +{ 0xd1, 25, 0, 1703 }, +{ 0x31, 25, 1, 1714 }, +{ 0x11, 26, 0, 1713 }, +{ 0x71, 25, 1, 1712 }, +{ 0x31, 26, 0, 1711 }, +{ 0x29, 25, 0, 1706 }, +{ 0x69, 25, 0, 1705 }, +{ 0x19, 25, 1, 1718 }, +{ 0x9, 26, 0, 1717 }, +{ 0x39, 25, 1, 1716 }, +{ 0x19, 26, 0, 1715 }, +{ 0x15, 25, 0, 1708 }, +{ 0x35, 25, 0, 1707 }, +{ 0xd, 25, 1, 1722 }, +{ 0x5, 26, 0, 1721 }, +{ 0x1d, 25, 1, 1720 }, +{ 0xd, 26, 0, 1719 }, +{ 0xb, 25, 0, 1710 }, +{ 0x1b, 25, 0, 1709 }, +{ 0x7, 25, 1, 1726 }, +{ 0x3, 26, 0, 1725 }, +{ 0xf, 25, 1, 1724 }, +{ 0x7, 26, 0, 1723 }, +{ 0xa2, 23, 0, 1728 }, +{ 0x1a2, 23, 0, 1727 }, +{ 0x62, 23, 1, 1738 }, +{ 0x22, 24, 0, 1737 }, +{ 0xe2, 23, 1, 1736 }, +{ 0x62, 24, 0, 1735 }, +{ 0x52, 23, 0, 1730 }, +{ 0xd2, 23, 0, 1729 }, +{ 0x32, 23, 1, 1742 }, +{ 0x12, 24, 0, 1741 }, +{ 0x72, 23, 1, 1740 }, +{ 0x32, 24, 0, 1739 }, +{ 0x2a, 23, 0, 1732 }, +{ 0x6a, 23, 0, 1731 }, +{ 0x1a, 23, 1, 1746 }, +{ 0xa, 24, 0, 1745 }, +{ 0x3a, 23, 1, 1744 }, +{ 0x1a, 24, 0, 1743 }, +{ 0x16, 23, 0, 1734 }, +{ 0x36, 23, 0, 1733 }, +{ 0xe, 23, 1, 1750 }, +{ 0x6, 24, 0, 1749 }, +{ 0x1e, 23, 1, 1748 }, +{ 0xe, 24, 0, 1747 }, +{ 0x51, 23, 0, 1752 }, +{ 0xd1, 23, 0, 1751 }, +{ 0x31, 23, 1, 1762 }, +{ 0x11, 24, 0, 1761 }, +{ 0x71, 23, 1, 1760 }, +{ 0x31, 24, 0, 1759 }, +{ 0x29, 23, 0, 1754 }, +{ 0x69, 23, 0, 1753 }, +{ 0x19, 23, 1, 1766 }, +{ 0x9, 24, 0, 1765 }, +{ 0x39, 23, 1, 1764 }, +{ 0x19, 24, 0, 1763 }, +{ 0x15, 23, 0, 1756 }, +{ 0x35, 23, 0, 1755 }, +{ 0xd, 23, 1, 1770 }, +{ 0x5, 24, 0, 1769 }, +{ 0x1d, 23, 1, 1768 }, +{ 0xd, 24, 0, 1767 }, +{ 0xb, 23, 0, 1758 }, +{ 0x1b, 23, 0, 1757 }, +{ 0x7, 23, 1, 1774 }, +{ 0x3, 24, 0, 1773 }, +{ 0xf, 23, 1, 1772 }, +{ 0x7, 24, 0, 1771 }, +{ 0x51, 21, 1, 1800 }, +{ 0x50, 21, 0, 1776 }, +{ 0xd1, 21, 1, 1799 }, +{ 0xd0, 21, 0, 1775 }, +{ 0x31, 21, 1, 1810 }, +{ 0x30, 21, 1, 1786 }, +{ 0x11, 22, 1, 1809 }, +{ 0x10, 22, 0, 1785 }, +{ 0x71, 21, 1, 1808 }, +{ 0x70, 21, 1, 1784 }, +{ 0x31, 22, 1, 1807 }, +{ 0x30, 22, 0, 1783 }, +{ 0x29, 21, 1, 1802 }, +{ 0x28, 21, 0, 1778 }, +{ 0x69, 21, 1, 1801 }, +{ 0x68, 21, 0, 1777 }, +{ 0x19, 21, 1, 1814 }, +{ 0x18, 21, 1, 1790 }, +{ 0x9, 22, 1, 1813 }, +{ 0x8, 22, 0, 1789 }, +{ 0x39, 21, 1, 1812 }, +{ 0x38, 21, 1, 1788 }, +{ 0x19, 22, 1, 1811 }, +{ 0x18, 22, 0, 1787 }, +{ 0x15, 21, 1, 1804 }, +{ 0x14, 21, 0, 1780 }, +{ 0x35, 21, 1, 1803 }, +{ 0x34, 21, 0, 1779 }, +{ 0xd, 21, 1, 1818 }, +{ 0xc, 21, 1, 1794 }, +{ 0x5, 22, 1, 1817 }, +{ 0x4, 22, 0, 1793 }, +{ 0x1d, 21, 1, 1816 }, +{ 0x1c, 21, 1, 1792 }, +{ 0xd, 22, 1, 1815 }, +{ 0xc, 22, 0, 1791 }, +{ 0xb, 21, 1, 1806 }, +{ 0xa, 21, 0, 1782 }, +{ 0x1b, 21, 1, 1805 }, +{ 0x1a, 21, 0, 1781 }, +{ 0x7, 21, 1, 1822 }, +{ 0x6, 21, 1, 1798 }, +{ 0x3, 22, 1, 1821 }, +{ 0x2, 22, 0, 1797 }, +{ 0xf, 21, 1, 1820 }, +{ 0xe, 21, 1, 1796 }, +{ 0x7, 22, 1, 1819 }, +{ 0x6, 22, 0, 1795 }, +{ 0x8, 20, 0, 1824 }, +{ 0x18, 20, 0, 1823 }, +{ 0x1, 20, 1, 1828 }, +{ 0x2, 20, 0, 1827 }, +{ 0x3, 20, 1, 1826 }, +{ 0x4, 20, 0, 1825 }, +{ 0x1, 197, 0, 1829 }, +{ 0x1, 296, 0, 1830 }, +{ 0x14, 42, 0, 1833 }, +{ 0x34, 42, 0, 1831 }, +{ 0xc, 42, 0, 1834 }, +{ 0x1c, 42, 0, 1832 }, +{ 0x2, 42, 0, 1837 }, +{ 0x6, 42, 0, 1835 }, +{ 0x1, 42, 0, 1838 }, +{ 0x3, 42, 0, 1836 }, +{ 0x51, 18, 0, 1840 }, +{ 0xd1, 18, 0, 1839 }, +{ 0x31, 18, 1, 1850 }, +{ 0x11, 19, 0, 1849 }, +{ 0x71, 18, 1, 1848 }, +{ 0x31, 19, 0, 1847 }, +{ 0x29, 18, 0, 1842 }, +{ 0x69, 18, 0, 1841 }, +{ 0x19, 18, 1, 1854 }, +{ 0x9, 19, 0, 1853 }, +{ 0x39, 18, 1, 1852 }, +{ 0x19, 19, 0, 1851 }, +{ 0x15, 18, 0, 1844 }, +{ 0x35, 18, 0, 1843 }, +{ 0xd, 18, 1, 1858 }, +{ 0x5, 19, 0, 1857 }, +{ 0x1d, 18, 1, 1856 }, +{ 0xd, 19, 0, 1855 }, +{ 0xb, 18, 0, 1846 }, +{ 0x1b, 18, 0, 1845 }, +{ 0x7, 18, 1, 1862 }, +{ 0x3, 19, 0, 1861 }, +{ 0xf, 18, 1, 1860 }, +{ 0x7, 19, 0, 1859 }, +{ 0x1, 31, 0, 1863 }, +{ 0x1, 104, 0, 1864 }, +{ 0x2, 44, 0, 1865 }, +{ 0x1, 44, 0, 1866 }, +{ 0x1, 344, 0, 1867 }, +{ 0x2, 51, 0, 1868 }, +{ 0x1, 51, 0, 1869 }, +{ 0x1, 97, 0, 1870 }, +{ 0x51, 16, 0, 1872 }, +{ 0xd1, 16, 0, 1871 }, +{ 0x31, 16, 1, 1882 }, +{ 0x11, 17, 0, 1881 }, +{ 0x71, 16, 1, 1880 }, +{ 0x31, 17, 0, 1879 }, +{ 0x29, 16, 0, 1874 }, +{ 0x69, 16, 0, 1873 }, +{ 0x19, 16, 1, 1886 }, +{ 0x9, 17, 0, 1885 }, +{ 0x39, 16, 1, 1884 }, +{ 0x19, 17, 0, 1883 }, +{ 0x15, 16, 0, 1876 }, +{ 0x35, 16, 0, 1875 }, +{ 0xd, 16, 1, 1890 }, +{ 0x5, 17, 0, 1889 }, +{ 0x1d, 16, 1, 1888 }, +{ 0xd, 17, 0, 1887 }, +{ 0xb, 16, 0, 1878 }, +{ 0x1b, 16, 0, 1877 }, +{ 0x7, 16, 1, 1894 }, +{ 0x3, 17, 0, 1893 }, +{ 0xf, 16, 1, 1892 }, +{ 0x7, 17, 0, 1891 }, +{ 0xa20, 14, 0, 1896 }, +{ 0x1a20, 14, 0, 1895 }, +{ 0x620, 14, 1, 1906 }, +{ 0x220, 15, 0, 1905 }, +{ 0xe20, 14, 1, 1904 }, +{ 0x620, 15, 0, 1903 }, +{ 0x520, 14, 0, 1898 }, +{ 0xd20, 14, 0, 1897 }, +{ 0x320, 14, 1, 1910 }, +{ 0x120, 15, 0, 1909 }, +{ 0x720, 14, 1, 1908 }, +{ 0x320, 15, 0, 1907 }, +{ 0x2a0, 14, 0, 1900 }, +{ 0x6a0, 14, 0, 1899 }, +{ 0x1a0, 14, 1, 1914 }, +{ 0xa0, 15, 0, 1913 }, +{ 0x3a0, 14, 1, 1912 }, +{ 0x1a0, 15, 0, 1911 }, +{ 0x160, 14, 0, 1902 }, +{ 0x360, 14, 0, 1901 }, +{ 0xe0, 14, 1, 1918 }, +{ 0x60, 15, 0, 1917 }, +{ 0x1e0, 14, 1, 1916 }, +{ 0xe0, 15, 0, 1915 }, +{ 0x51, 14, 1, 1944 }, +{ 0x50, 14, 0, 1920 }, +{ 0xd1, 14, 1, 1943 }, +{ 0xd0, 14, 0, 1919 }, +{ 0x31, 14, 1, 1954 }, +{ 0x30, 14, 1, 1930 }, +{ 0x11, 15, 1, 1953 }, +{ 0x10, 15, 0, 1929 }, +{ 0x71, 14, 1, 1952 }, +{ 0x70, 14, 1, 1928 }, +{ 0x31, 15, 1, 1951 }, +{ 0x30, 15, 0, 1927 }, +{ 0x29, 14, 1, 1946 }, +{ 0x28, 14, 0, 1922 }, +{ 0x69, 14, 1, 1945 }, +{ 0x68, 14, 0, 1921 }, +{ 0x19, 14, 1, 1958 }, +{ 0x18, 14, 1, 1934 }, +{ 0x9, 15, 1, 1957 }, +{ 0x8, 15, 0, 1933 }, +{ 0x39, 14, 1, 1956 }, +{ 0x38, 14, 1, 1932 }, +{ 0x19, 15, 1, 1955 }, +{ 0x18, 15, 0, 1931 }, +{ 0x15, 14, 1, 1948 }, +{ 0x14, 14, 0, 1924 }, +{ 0x35, 14, 1, 1947 }, +{ 0x34, 14, 0, 1923 }, +{ 0xd, 14, 1, 1962 }, +{ 0xc, 14, 1, 1938 }, +{ 0x5, 15, 1, 1961 }, +{ 0x4, 15, 0, 1937 }, +{ 0x1d, 14, 1, 1960 }, +{ 0x1c, 14, 1, 1936 }, +{ 0xd, 15, 1, 1959 }, +{ 0xc, 15, 0, 1935 }, +{ 0xb, 14, 1, 1950 }, +{ 0xa, 14, 0, 1926 }, +{ 0x1b, 14, 1, 1949 }, +{ 0x1a, 14, 0, 1925 }, +{ 0x7, 14, 1, 1966 }, +{ 0x6, 14, 1, 1942 }, +{ 0x3, 15, 1, 1965 }, +{ 0x2, 15, 0, 1941 }, +{ 0xf, 14, 1, 1964 }, +{ 0xe, 14, 1, 1940 }, +{ 0x7, 15, 1, 1963 }, +{ 0x6, 15, 0, 1939 }, +{ 0x8, 13, 0, 1968 }, +{ 0x18, 13, 0, 1967 }, +{ 0x1, 13, 1, 1972 }, +{ 0x2, 13, 0, 1971 }, +{ 0x3, 13, 1, 1970 }, +{ 0x4, 13, 0, 1969 }, +{ 0x1, 84, 1, 2048 }, +{ 0x1, 85, 1, 2047 }, +{ 0x1, 86, 1, 2046 }, +{ 0x1, 87, 1, 2045 }, +{ 0x39, 40, 1, 22 }, +{ 0x19, 41, 0, 21 }, +{ 0x3, 84, 1, 2044 }, +{ 0x3, 85, 1, 2043 }, +{ 0x3, 86, 1, 2042 }, +{ 0x3, 87, 1, 2041 }, +{ 0x69, 40, 0, 11 }, +{ 0x14, 79, 1, 2038 }, +{ 0xa, 83, 1, 2037 }, +{ 0xd1, 40, 0, 9 }, +{ 0x34, 79, 1, 1974 }, +{ 0xe, 91, 0, 1973 }, +{ 0xc, 79, 1, 2118 }, +{ 0x6, 83, 0, 2117 }, +{ 0x2, 79, 1, 1980 }, +{ 0x2, 82, 0, 1979 }, +{ 0x12, 79, 1, 1978 }, +{ 0x6, 82, 0, 1977 }, +{ 0xa, 79, 1, 2040 }, +{ 0x5, 83, 1, 2039 }, +{ 0x71, 40, 1, 18 }, +{ 0x31, 41, 0, 17 }, +{ 0x1a, 79, 1, 1976 }, +{ 0x7, 91, 0, 1975 }, +{ 0x6, 79, 1, 2120 }, +{ 0x3, 83, 0, 2119 }, +{ 0x1, 79, 1, 2128 }, +{ 0x1, 80, 1, 2127 }, +{ 0x1, 81, 1, 2126 }, +{ 0x1, 82, 0, 2125 }, +{ 0x3, 79, 1, 2124 }, +{ 0x3, 80, 1, 2123 }, +{ 0x3, 81, 1, 2122 }, +{ 0x3, 82, 0, 2121 }, +{ 0x8, 60, 1, 2060 }, +{ 0x2, 63, 1, 2057 }, +{ 0x1, 65, 1, 2059 }, +{ 0x1, 66, 1, 2058 }, +{ 0xf, 40, 1, 30 }, +{ 0x7, 41, 0, 29 }, +{ 0x18, 60, 1, 2056 }, +{ 0x6, 63, 1, 2053 }, +{ 0x3, 65, 1, 2055 }, +{ 0x3, 66, 1, 2054 }, +{ 0x1b, 40, 0, 15 }, +{ 0x14, 60, 1, 2050 }, +{ 0xa, 64, 1, 2049 }, +{ 0x35, 40, 0, 13 }, +{ 0x34, 60, 1, 1982 }, +{ 0xe, 70, 0, 1981 }, +{ 0xc, 60, 1, 2130 }, +{ 0x6, 64, 0, 2129 }, +{ 0x2, 60, 1, 1988 }, +{ 0x4, 63, 0, 1987 }, +{ 0x12, 60, 1, 1986 }, +{ 0xc, 63, 0, 1985 }, +{ 0xa, 60, 1, 2052 }, +{ 0x5, 64, 1, 2051 }, +{ 0x1d, 40, 1, 26 }, +{ 0xd, 41, 0, 25 }, +{ 0x1a, 60, 1, 1984 }, +{ 0x7, 70, 0, 1983 }, +{ 0x6, 60, 1, 2132 }, +{ 0x3, 64, 0, 2131 }, +{ 0x1, 60, 1, 2140 }, +{ 0x1, 61, 1, 2139 }, +{ 0x1, 62, 1, 2138 }, +{ 0x1, 63, 0, 2137 }, +{ 0x3, 60, 1, 2136 }, +{ 0x3, 61, 1, 2135 }, +{ 0x3, 62, 1, 2134 }, +{ 0x3, 63, 0, 2133 }, +{ 0x28, 76, 1, 2064 }, +{ 0x44, 77, 1, 2061 }, +{ 0x88, 77, 1, 2063 }, +{ 0x28, 78, 0, 2062 }, +{ 0x68, 76, 1, 1992 }, +{ 0x188, 77, 1, 1991 }, +{ 0x38, 89, 1, 1990 }, +{ 0x38, 90, 0, 1989 }, +{ 0x18, 76, 1, 2144 }, +{ 0x14, 77, 1, 2141 }, +{ 0x28, 77, 1, 2143 }, +{ 0x18, 78, 0, 2142 }, +{ 0x14, 76, 1, 2068 }, +{ 0x24, 77, 1, 2067 }, +{ 0x48, 77, 1, 2065 }, +{ 0x14, 78, 0, 2066 }, +{ 0x34, 76, 1, 1996 }, +{ 0x64, 77, 1, 1995 }, +{ 0x1c, 89, 1, 1994 }, +{ 0x1c, 90, 0, 1993 }, +{ 0xc, 76, 1, 2148 }, +{ 0xc, 77, 1, 2147 }, +{ 0x18, 77, 1, 2145 }, +{ 0xc, 78, 0, 2146 }, +{ 0xa, 76, 1, 2072 }, +{ 0x11, 77, 1, 2069 }, +{ 0x22, 77, 1, 2071 }, +{ 0xa, 78, 0, 2070 }, +{ 0x1a, 76, 1, 2000 }, +{ 0x62, 77, 1, 1999 }, +{ 0xe, 89, 1, 1998 }, +{ 0xe, 90, 0, 1997 }, +{ 0x6, 76, 1, 2152 }, +{ 0x5, 77, 1, 2149 }, +{ 0xa, 77, 1, 2151 }, +{ 0x6, 78, 0, 2150 }, +{ 0x5, 76, 1, 2076 }, +{ 0x9, 77, 1, 2075 }, +{ 0x12, 77, 1, 2073 }, +{ 0x5, 78, 0, 2074 }, +{ 0xd, 76, 1, 2004 }, +{ 0x19, 77, 1, 2003 }, +{ 0x7, 89, 1, 2002 }, +{ 0x7, 90, 0, 2001 }, +{ 0x3, 76, 1, 2156 }, +{ 0x3, 77, 1, 2155 }, +{ 0x6, 77, 1, 2153 }, +{ 0x3, 78, 0, 2154 }, +{ 0x28, 57, 1, 2080 }, +{ 0x44, 58, 1, 2077 }, +{ 0x88, 58, 1, 2079 }, +{ 0x28, 59, 0, 2078 }, +{ 0x68, 57, 1, 2008 }, +{ 0x188, 58, 1, 2007 }, +{ 0x38, 68, 1, 2006 }, +{ 0x38, 69, 0, 2005 }, +{ 0x18, 57, 1, 2160 }, +{ 0x14, 58, 1, 2157 }, +{ 0x28, 58, 1, 2159 }, +{ 0x18, 59, 0, 2158 }, +{ 0x14, 57, 1, 2084 }, +{ 0x24, 58, 1, 2083 }, +{ 0x48, 58, 1, 2081 }, +{ 0x14, 59, 0, 2082 }, +{ 0x34, 57, 1, 2012 }, +{ 0x64, 58, 1, 2011 }, +{ 0x1c, 68, 1, 2010 }, +{ 0x1c, 69, 0, 2009 }, +{ 0xc, 57, 1, 2164 }, +{ 0xc, 58, 1, 2163 }, +{ 0x18, 58, 1, 2161 }, +{ 0xc, 59, 0, 2162 }, +{ 0xa, 57, 1, 2088 }, +{ 0x11, 58, 1, 2085 }, +{ 0x22, 58, 1, 2087 }, +{ 0xa, 59, 0, 2086 }, +{ 0x1a, 57, 1, 2016 }, +{ 0x62, 58, 1, 2015 }, +{ 0xe, 68, 1, 2014 }, +{ 0xe, 69, 0, 2013 }, +{ 0x6, 57, 1, 2168 }, +{ 0x5, 58, 1, 2165 }, +{ 0xa, 58, 1, 2167 }, +{ 0x6, 59, 0, 2166 }, +{ 0x5, 57, 1, 2092 }, +{ 0x9, 58, 1, 2091 }, +{ 0x12, 58, 1, 2089 }, +{ 0x5, 59, 0, 2090 }, +{ 0xd, 57, 1, 2020 }, +{ 0x19, 58, 1, 2019 }, +{ 0x7, 68, 1, 2018 }, +{ 0x7, 69, 0, 2017 }, +{ 0x3, 57, 1, 2172 }, +{ 0x3, 58, 1, 2171 }, +{ 0x6, 58, 1, 2169 }, +{ 0x3, 59, 0, 2170 }, +{ 0x8, 71, 1, 2104 }, +{ 0x2, 72, 1, 2103 }, +{ 0x2, 73, 1, 2102 }, +{ 0x2, 74, 0, 2101 }, +{ 0x18, 71, 1, 2100 }, +{ 0x6, 72, 1, 2099 }, +{ 0x6, 73, 1, 2098 }, +{ 0x6, 74, 0, 2097 }, +{ 0x14, 71, 1, 2094 }, +{ 0xa, 75, 0, 2093 }, +{ 0x34, 71, 1, 2022 }, +{ 0xe, 88, 0, 2021 }, +{ 0xc, 71, 1, 2174 }, +{ 0x6, 75, 0, 2173 }, +{ 0x2, 71, 1, 2028 }, +{ 0x4, 74, 0, 2027 }, +{ 0x12, 71, 1, 2026 }, +{ 0xc, 74, 0, 2025 }, +{ 0xa, 71, 1, 2096 }, +{ 0x5, 75, 0, 2095 }, +{ 0x1a, 71, 1, 2024 }, +{ 0x7, 88, 0, 2023 }, +{ 0x6, 71, 1, 2176 }, +{ 0x3, 75, 0, 2175 }, +{ 0x1, 71, 1, 2184 }, +{ 0x1, 72, 1, 2183 }, +{ 0x1, 73, 1, 2182 }, +{ 0x1, 74, 0, 2181 }, +{ 0x3, 71, 1, 2180 }, +{ 0x3, 72, 1, 2179 }, +{ 0x3, 73, 1, 2178 }, +{ 0x3, 74, 0, 2177 }, +{ 0x8, 52, 1, 2116 }, +{ 0x2, 53, 1, 2115 }, +{ 0x2, 54, 1, 2114 }, +{ 0x2, 55, 0, 2113 }, +{ 0x18, 52, 1, 2112 }, +{ 0x6, 53, 1, 2111 }, +{ 0x6, 54, 1, 2110 }, +{ 0x6, 55, 0, 2109 }, +{ 0x14, 52, 1, 2106 }, +{ 0xa, 56, 0, 2105 }, +{ 0x34, 52, 1, 2030 }, +{ 0xe, 67, 0, 2029 }, +{ 0xc, 52, 1, 2186 }, +{ 0x6, 56, 0, 2185 }, +{ 0x2, 52, 1, 2036 }, +{ 0x4, 55, 0, 2035 }, +{ 0x12, 52, 1, 2034 }, +{ 0xc, 55, 0, 2033 }, +{ 0xa, 52, 1, 2108 }, +{ 0x5, 56, 0, 2107 }, +{ 0x1a, 52, 1, 2032 }, +{ 0x7, 67, 0, 2031 }, +{ 0x6, 52, 1, 2188 }, +{ 0x3, 56, 0, 2187 }, +{ 0x1, 52, 1, 2196 }, +{ 0x1, 53, 1, 2195 }, +{ 0x1, 54, 1, 2194 }, +{ 0x1, 55, 0, 2193 }, +{ 0x3, 52, 1, 2192 }, +{ 0x3, 53, 1, 2191 }, +{ 0x3, 54, 1, 2190 }, +{ 0x3, 55, 0, 2189 }, +{ 0x1, 4, 0, 2197 }, +{ 0x1, 254, 0, 2198 }, +{ 0x1, 336, 0, 2199 }, +{ 0x1, 331, 0, 2200 }, +{ 0x2, 315, 0, 2201 }, +{ 0x1, 315, 0, 2204 }, +{ 0x2, 314, 0, 2202 }, +{ 0x1, 314, 0, 2205 }, +{ 0x2, 313, 0, 2203 }, +{ 0x1, 313, 0, 2206 }, +{ 0x1, 312, 0, 2207 }, +{ 0x1, 311, 0, 2208 }, +{ 0x2, 310, 0, 2209 }, +{ 0x1, 310, 0, 2211 }, +{ 0x2, 309, 0, 2210 }, +{ 0x1, 309, 0, 2212 }, +{ 0x1, 339, 0, 2219 }, +{ 0x8, 338, 0, 2213 }, +{ 0x4, 338, 0, 2215 }, +{ 0x2, 338, 0, 2217 }, +{ 0x1, 338, 0, 2220 }, +{ 0x8, 337, 0, 2214 }, +{ 0x4, 337, 0, 2216 }, +{ 0x2, 337, 0, 2218 }, +{ 0x1, 337, 0, 2221 }, +{ 0x1, 308, 0, 2228 }, +{ 0x8, 307, 0, 2222 }, +{ 0x4, 307, 0, 2224 }, +{ 0x2, 307, 0, 2226 }, +{ 0x1, 307, 0, 2229 }, +{ 0x8, 306, 0, 2223 }, +{ 0x4, 306, 0, 2225 }, +{ 0x2, 306, 1, 2227 }, +{ 0x4, 107, 0, 1271 }, +{ 0x1, 306, 0, 2230 }, +{ 0x1, 6, 0, 2231 }, +{ 0x1, 7, 0, 2232 }, +{ 0x1, 253, 0, 2233 }, +{ 0x1, 252, 0, 2234 }, +{ 0x1, 403, 0, 2235 }, +{ 0x1, 303, 0, 2236 }, +{ 0x1, 12, 0, 2237 }, +{ 0x1, 10, 0, 2238 }, +{ 0x1, 378, 0, 2239 }, +{ 0x1, 351, 0, 2240 }, +{ 0x1, 350, 0, 2241 }, +{ 0x1, 402, 0, 2242 }, +{ 0x1, 302, 0, 2243 }, +{ 0x1, 11, 0, 2244 }, +{ 0x1, 9, 0, 2245 }, +{ 0x1, 5, 0, 2246 }, +{ 0x1, 377, 0, 2247 }, +{ 0x1, 376, 0, 2248 }, +{ 0x1, 1, 0, 2249 }, +{ 0x1, 0, 0, 2250 }, }; diff -uprN binutils-2.13.90.0.16/opcodes/ia64-gen.c binutils-2.13.90.0.18/opcodes/ia64-gen.c --- binutils-2.13.90.0.16/opcodes/ia64-gen.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-gen.c Mon Dec 16 12:22:53 2002 @@ -1061,10 +1061,11 @@ in_iclass (struct ia64_opcode *idesc, st && (idesc->name[len] == '\0' || idesc->name[len] == '.')); - /* All break and nop variations must match exactly. */ + /* All break, nop, and hint variations must match exactly. */ if (resolved && (strcmp (ic->name, "break") == 0 - || strcmp (ic->name, "nop") == 0)) + || strcmp (ic->name, "nop") == 0 + || strcmp (ic->name, "hint") == 0)) resolved = strcmp (ic->name, idesc->name) == 0; /* Assume restrictions in the FORMAT/FIELD negate resolution, @@ -1257,6 +1258,22 @@ lookup_regindex (const char *name, int s return 18; else if (strstr (name, "[RNAT]")) return 19; + else if (strstr (name, "[FCR]")) + return 21; + else if (strstr (name, "[EFLAG]")) + return 24; + else if (strstr (name, "[CSD]")) + return 25; + else if (strstr (name, "[SSD]")) + return 26; + else if (strstr (name, "[CFLG]")) + return 27; + else if (strstr (name, "[FSR]")) + return 28; + else if (strstr (name, "[FIR]")) + return 29; + else if (strstr (name, "[FDR]")) + return 30; else if (strstr (name, "[CCV]")) return 32; else if (strstr (name, "[ITC]")) diff -uprN binutils-2.13.90.0.16/opcodes/ia64-ic.tbl binutils-2.13.90.0.18/opcodes/ia64-ic.tbl --- binutils-2.13.90.0.16/opcodes/ia64-ic.tbl Wed Feb 14 22:28:12 2001 +++ binutils-2.13.90.0.18/opcodes/ia64-ic.tbl Mon Dec 16 12:22:53 2002 @@ -3,7 +3,7 @@ all; IC:predicatable-instructions, IC:un branches; IC:indirect-brs, IC:ip-rel-brs cfm-readers; IC:fr-readers, IC:fr-writers, IC:gr-readers, IC:gr-writers, IC:mod-sched-brs, IC:predicatable-instructions, IC:pr-writers, alloc, br.call, brl.call, br.ret, cover, loadrs, rfi, IC:chk-a, invala.e chk-a; chk.a.clr, chk.a.nc -cmpxchg; cmpxchg1, cmpxchg2, cmpxchg4, cmpxchg8 +cmpxchg; cmpxchg1, cmpxchg2, cmpxchg4, cmpxchg8, cmp8xchg16 czx; czx1, czx2 fcmp-s0; fcmp[Field(sf)==s0] fcmp-s1; fcmp[Field(sf)==s1] @@ -29,7 +29,7 @@ indirect-brp; brp[Format in {B7}] indirect-brs; br.call[Format in {B5}], br.cond[Format in {B4}], br.ia, br.ret invala-all; invala[Format in {M24}], invala.e ip-rel-brs; IC:mod-sched-brs, br.call[Format in {B3}], brl.call, brl.cond, br.cond[Format in {B1}], br.cloop -ld; ld1, ld2, ld4, ld8, ld8.fill +ld; ld1, ld2, ld4, ld8, ld8.fill, ld16 ld-a; ld1.a, ld2.a, ld4.a, ld8.a ld-all-postinc; IC:ld[Format in {M2 M3}], IC:ldfp[Format in {M12}], IC:ldf[Format in {M7 M8}] ld-c; IC:ld-c-nc, IC:ld-c-clr @@ -71,8 +71,15 @@ mov-from-AR; IC:mov-from-AR-M, IC:mov-fr mov-from-AR-BSP; IC:mov-from-AR-M[Field(ar3) == BSP] mov-from-AR-BSPSTORE; IC:mov-from-AR-M[Field(ar3) == BSPSTORE] mov-from-AR-CCV; IC:mov-from-AR-M[Field(ar3) == CCV] +mov-from-AR-CFLG; IC:mov-from-AR-M[Field(ar3) == CFLG] +mov-from-AR-CSD; IC:mov-from-AR-M[Field(ar3) == CSD] mov-from-AR-EC; IC:mov-from-AR-I[Field(ar3) == EC] +mov-from-AR-EFLAG; IC:mov-from-AR-M[Field(ar3) == EFLAG] +mov-from-AR-FCR; IC:mov-from-AR-M[Field(ar3) == FCR] +mov-from-AR-FDR; IC:mov-from-AR-M[Field(ar3) == FDR] +mov-from-AR-FIR; IC:mov-from-AR-M[Field(ar3) == FIR] mov-from-AR-FPSR; IC:mov-from-AR-M[Field(ar3) == FPSR] +mov-from-AR-FSR; IC:mov-from-AR-M[Field(ar3) == FSR] mov-from-AR-I; mov_ar[Format in {I28}] mov-from-AR-ig; IC:mov-from-AR-IM[Field(ar3) in {48-63 112-127}] mov-from-AR-IM; mov_ar[Format in {I28 M31}] @@ -84,6 +91,7 @@ mov-from-AR-PFS; IC:mov-from-AR-I[Field( mov-from-AR-RNAT; IC:mov-from-AR-M[Field(ar3) == RNAT] mov-from-AR-RSC; IC:mov-from-AR-M[Field(ar3) == RSC] mov-from-AR-rv; IC:none +mov-from-AR-SSD; IC:mov-from-AR-M[Field(ar3) == SSD] mov-from-AR-UNAT; IC:mov-from-AR-M[Field(ar3) == UNAT] mov-from-BR; mov_br[Format in {I22}] mov-from-CR; mov_cr[Format in {M33}] @@ -129,8 +137,15 @@ mov-to-AR; IC:mov-to-AR-M, IC:mov-to-AR- mov-to-AR-BSP; IC:mov-to-AR-M[Field(ar3) == BSP] mov-to-AR-BSPSTORE; IC:mov-to-AR-M[Field(ar3) == BSPSTORE] mov-to-AR-CCV; IC:mov-to-AR-M[Field(ar3) == CCV] +mov-to-AR-CFLG; IC:mov-to-AR-M[Field(ar3) == CFLG] +mov-to-AR-CSD; IC:mov-to-AR-M[Field(ar3) == CSD] mov-to-AR-EC; IC:mov-to-AR-I[Field(ar3) == EC] +mov-to-AR-EFLAG; IC:mov-to-AR-M[Field(ar3) == EFLAG] +mov-to-AR-FCR; IC:mov-to-AR-M[Field(ar3) == FCR] +mov-to-AR-FDR; IC:mov-to-AR-M[Field(ar3) == FDR] +mov-to-AR-FIR; IC:mov-to-AR-M[Field(ar3) == FIR] mov-to-AR-FPSR; IC:mov-to-AR-M[Field(ar3) == FPSR] +mov-to-AR-FSR; IC:mov-to-AR-M[Field(ar3) == FSR] mov-to-AR-gr; IC:mov-to-AR-M[Format in {M29}], IC:mov-to-AR-I[Format in {I26}] mov-to-AR-I; mov_ar[Format in {I26 I27}] mov-to-AR-ig; IC:mov-to-AR-IM[Field(ar3) in {48-63 112-127}] @@ -142,6 +157,7 @@ mov-to-AR-M; mov_ar[Format in {M29 M30}] mov-to-AR-PFS; IC:mov-to-AR-I[Field(ar3) == PFS] mov-to-AR-RNAT; IC:mov-to-AR-M[Field(ar3) == RNAT] mov-to-AR-RSC; IC:mov-to-AR-M[Field(ar3) == RSC] +mov-to-AR-SSD; IC:mov-to-AR-M[Field(ar3) == SSD] mov-to-AR-UNAT; IC:mov-to-AR-M[Field(ar3) == UNAT] mov-to-BR; mov_br[Format in {I21}] mov-to-CR; mov_cr[Format in {M32}] @@ -200,8 +216,8 @@ pr-gen-writers-int; cmp, cmp4, tbit, tna pr-norm-writers-fp; IC:pr-gen-writers-fp[Field(ctype)==] pr-norm-writers-int; IC:pr-gen-writers-int[Field(ctype)==] pr-or-writers; IC:pr-gen-writers-int[Field(ctype) in {or orcm}], IC:pr-gen-writers-int[Field(ctype) in {or.andcm and.orcm}] -pr-readers-br; br.call, br.cond, brl.call, brl.cond, br.ret, br.wexit, br.wtop, break.b, nop.b, IC:ReservedBQP -pr-readers-nobr-nomovpr; add, addl, addp4, adds, and, andcm, break.f, break.i, break.m, break.x, chk.s, IC:chk-a, cmp, cmp4, IC:cmpxchg, IC:czx, dep, extr, IC:fp-arith, IC:fp-non-arith, fc, fchkf, fclrf, fcmp, IC:fetchadd, fpcmp, fsetc, fwb, getf, IC:invala-all, itc.i, itc.d, itr.i, itr.d, IC:ld, IC:ldf, IC:ldfp, IC:lfetch-all, mf, IC:mix, IC:mov-from-AR-M, IC:mov-from-AR-IM, IC:mov-from-AR-I, IC:mov-to-AR-M, IC:mov-to-AR-I, IC:mov-to-AR-IM, IC:mov-to-BR, IC:mov-from-BR, IC:mov-to-CR, IC:mov-from-CR, IC:mov-to-IND, IC:mov-from-IND, IC:mov-ip, IC:mov-to-PSR-l, IC:mov-to-PSR-um, IC:mov-from-PSR, IC:mov-from-PSR-um, movl, IC:mux, nop.f, nop.i, nop.m, nop.x, or, IC:pack, IC:padd, IC:pavg, IC:pavgsub, IC:pcmp, IC:pmax, IC:pmin, IC:pmpy, IC:pmpyshr, popcnt, IC:probe-all, IC:psad, IC:pshl, IC:pshladd, IC:pshr, IC:pshradd, IC:psub, ptc.e, ptc.g, ptc.ga, ptc.l, ptr.d, ptr.i, IC:ReservedQP, rsm, setf, shl, shladd, shladdp4, shr, shrp, srlz.i, srlz.d, ssm, IC:st, IC:stf, sub, sum, IC:sxt, sync, tak, tbit, thash, tnat, tpa, ttag, IC:unpack, IC:xchg, xma, xmpy, xor, IC:zxt +pr-readers-br; br.call, br.cond, brl.call, brl.cond, br.ret, br.wexit, br.wtop, break.b, hint.b, nop.b, IC:ReservedBQP +pr-readers-nobr-nomovpr; add, addl, addp4, adds, and, andcm, break.f, break.i, break.m, break.x, chk.s, IC:chk-a, cmp, cmp4, IC:cmpxchg, IC:czx, dep, extr, IC:fp-arith, IC:fp-non-arith, fc, fchkf, fclrf, fcmp, IC:fetchadd, fpcmp, fsetc, fwb, getf, hint.f, hint.i, hint.m, hint.x, IC:invala-all, itc.i, itc.d, itr.i, itr.d, IC:ld, IC:ldf, IC:ldfp, IC:lfetch-all, mf, IC:mix, IC:mov-from-AR-M, IC:mov-from-AR-IM, IC:mov-from-AR-I, IC:mov-to-AR-M, IC:mov-to-AR-I, IC:mov-to-AR-IM, IC:mov-to-BR, IC:mov-from-BR, IC:mov-to-CR, IC:mov-from-CR, IC:mov-to-IND, IC:mov-from-IND, IC:mov-ip, IC:mov-to-PSR-l, IC:mov-to-PSR-um, IC:mov-from-PSR, IC:mov-from-PSR-um, movl, IC:mux, nop.f, nop.i, nop.m, nop.x, or, IC:pack, IC:padd, IC:pavg, IC:pavgsub, IC:pcmp, IC:pmax, IC:pmin, IC:pmpy, IC:pmpyshr, popcnt, IC:probe-all, IC:psad, IC:pshl, IC:pshladd, IC:pshr, IC:pshradd, IC:psub, ptc.e, ptc.g, ptc.ga, ptc.l, ptr.d, ptr.i, IC:ReservedQP, rsm, setf, shl, shladd, shladdp4, shr, shrp, srlz.i, srlz.d, ssm, IC:st, IC:stf, sub, sum, IC:sxt, sync, tak, tbit, thash, tnat, tpa, ttag, IC:unpack, IC:xchg, xma, xmpy, xor, IC:zxt pr-unc-writers-fp; IC:pr-gen-writers-fp[Field(ctype)==unc]+11, fprcpa+11, fprsqrta+11, frcpa+11, frsqrta+11 pr-unc-writers-int; IC:pr-gen-writers-int[Field(ctype)==unc]+11 pr-writers; IC:pr-writers-int, IC:pr-writers-fp @@ -222,7 +238,7 @@ ReservedBQP; -+15 ReservedQP; -+16 rse-readers; alloc, br.call, br.ia, br.ret, brl.call, cover, flushrs, loadrs, IC:mov-from-AR-BSP, IC:mov-from-AR-BSPSTORE, IC:mov-to-AR-BSPSTORE, IC:mov-from-AR-RNAT, IC:mov-to-AR-RNAT, rfi rse-writers; alloc, br.call, br.ia, br.ret, brl.call, cover, flushrs, loadrs, IC:mov-to-AR-BSPSTORE, rfi -st; st1, st2, st4, st8, st8.spill +st; st1, st2, st4, st8, st8.spill, st16 st-postinc; IC:stf[Format in {M10}], IC:st[Format in {M5}] stf; stfs, stfd, stfe, stf8, stf.spill sxt; sxt1, sxt2, sxt4 diff -uprN binutils-2.13.90.0.16/opcodes/ia64-opc-b.c binutils-2.13.90.0.18/opcodes/ia64-opc-b.c --- binutils-2.13.90.0.16/opcodes/ia64-opc-b.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-opc-b.c Mon Dec 16 12:22:53 2002 @@ -189,7 +189,7 @@ struct ia64_opcode ia64_opcodes_b[] = #undef BR #undef BRP #undef BRT - + {"cover", B0, OpX6 (0, 0x02), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL}, {"clrrrb", B0, OpX6 (0, 0x04), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL}, {"clrrrb.pr", B0, OpX6 (0, 0x05), {0, }, NO_PRED | LAST | MOD_RRBS, 0, NULL}, @@ -238,6 +238,7 @@ struct ia64_opcode ia64_opcodes_b[] = #undef BRP {"nop.b", B0, OpX6 (2, 0x00), {IMMU21}, EMPTY}, + {"hint.b", B0, OpX6 (2, 0x01), {IMMU21}, EMPTY}, #define BR(a,b) \ B0, OpBtypePaWhaDPr (4, 0, a, 0, b, 0), {TGT25c}, PSEUDO, 0, NULL diff -uprN binutils-2.13.90.0.16/opcodes/ia64-opc-d.c binutils-2.13.90.0.18/opcodes/ia64-opc-d.c --- binutils-2.13.90.0.16/opcodes/ia64-opc-d.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-opc-d.c Mon Dec 16 12:22:53 2002 @@ -25,6 +25,7 @@ struct ia64_opcode ia64_opcodes_d[] = {"add", IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_R1, IA64_OPND_IMM14, IA64_OPND_R3}, 0, 0, NULL}, {"break", IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_IMMU21}, 0, 0, NULL}, {"chk.s", IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_R2, IA64_OPND_TGT25b}, 0, 0, NULL}, + {"hint", IA64_TYPE_DYN, 0, 0, 0, {IA64_OPND_IMMU21}, 0, 0, NULL}, {"mov", IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_R1, IA64_OPND_AR3}, 0, 0, NULL}, {"mov", IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_AR3, IA64_OPND_IMM8}, 0, 0, NULL}, {"mov", IA64_TYPE_DYN, 1, 0, 0, {IA64_OPND_AR3, IA64_OPND_R2}, 0, 0, NULL}, diff -uprN binutils-2.13.90.0.16/opcodes/ia64-opc-f.c binutils-2.13.90.0.18/opcodes/ia64-opc-f.c --- binutils-2.13.90.0.16/opcodes/ia64-opc-f.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-opc-f.c Mon Dec 16 12:22:53 2002 @@ -36,6 +36,7 @@ #define bXb(x) (((ia64_insn) ((x) & 0x1)) << 33) #define bX2(x) (((ia64_insn) ((x) & 0x3)) << 34) #define bX6(x) (((ia64_insn) ((x) & 0x3f)) << 27) +#define bY(x) (((ia64_insn) ((x) & 0x1)) << 26) #define mF2 bF2 (-1) #define mF4 bF4 (-1) @@ -48,6 +49,7 @@ #define mXb bXb (-1) #define mX2 bX2 (-1) #define mX6 bX6 (-1) +#define mY bY (-1) #define OpXa(a,b) (bOp (a) | bXa (b)), (mOp | mXa) #define OpXaSf(a,b,c) (bOp (a) | bXa (b) | bSf (c)), (mOp | mXa | mSf) @@ -69,6 +71,8 @@ (bOp (a) | bXb (b) | bQ (c) | bSf (d)), (mOp | mXb | mQ | mSf) #define OpXbX6(a,b,c) \ (bOp (a) | bXb (b) | bX6 (c)), (mOp | mXb | mX6) +#define OpXbX6Y(a,b,c,d) \ + (bOp (a) | bXb (b) | bX6 (c) | bY (d)), (mOp | mXb | mX6 | mY) #define OpXbX6F2(a,b,c,d) \ (bOp (a) | bXb (b) | bX6 (c) | bF2 (d)), (mOp | mXb | mX6 | mF2) #define OpXbX6Sf(a,b,c,d) \ @@ -177,7 +181,8 @@ struct ia64_opcode ia64_opcodes_f[] = {"fchkf.s3", f0, OpXbX6Sf (0, 0, 0x08, 3), {TGT25}, EMPTY}, {"break.f", f0, OpXbX6 (0, 0, 0x00), {IMMU21}, EMPTY}, - {"nop.f", f0, OpXbX6 (0, 0, 0x01), {IMMU21}, EMPTY}, + {"nop.f", f0, OpXbX6Y (0, 0, 0x01, 0), {IMMU21}, EMPTY}, + {"hint.f", f0, OpXbX6Y (0, 0, 0x01, 1), {IMMU21}, EMPTY}, {"fprcpa.s0", f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, EMPTY}, {"fprcpa", f2, OpXbQSf (1, 1, 0, 0), {F1, P2, F2, F3}, PSEUDO, 0, NULL}, diff -uprN binutils-2.13.90.0.16/opcodes/ia64-opc-i.c binutils-2.13.90.0.18/opcodes/ia64-opc-i.c --- binutils-2.13.90.0.16/opcodes/ia64-opc-i.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-opc-i.c Mon Dec 16 12:22:53 2002 @@ -86,6 +86,8 @@ #define OpX3(a,b) (bOp (a) | bX3 (b)), (mOp | mX3) #define OpX3X6(a,b,c) (bOp (a) | bX3 (b) | bX6(c)), \ (mOp | mX3 | mX6) +#define OpX3X6Yb(a,b,c,d) (bOp (a) | bX3 (b) | bX6(c) | bYb(d)), \ + (mOp | mX3 | mX6 | mYb) #define OpX3XbIhWh(a,b,c,d,e) \ (bOp (a) | bX3 (b) | bXb (c) | bIh (d) | bWh (e)), \ (mOp | mX3 | mXb | mIh | mWh) @@ -102,7 +104,8 @@ struct ia64_opcode ia64_opcodes_i[] = /* I-type instruction encodings (sorted according to major opcode). */ {"break.i", I0, OpX3X6 (0, 0, 0x00), {IMMU21}, X_IN_MLX, 0, NULL}, - {"nop.i", I0, OpX3X6 (0, 0, 0x01), {IMMU21}, X_IN_MLX, 0, NULL}, + {"nop.i", I0, OpX3X6Yb (0, 0, 0x01, 0), {IMMU21}, X_IN_MLX, 0, NULL}, + {"hint.i", I0, OpX3X6Yb (0, 0, 0x01, 1), {IMMU21}, X_IN_MLX, 0, NULL}, {"chk.s.i", I0, OpX3 (0, 1), {R2, TGT25b}, EMPTY}, {"mov", I, OpX3XbIhWhTag13 (0, 7, 0, 0, 1, 0), {B1, R2}, PSEUDO, 0, NULL}, diff -uprN binutils-2.13.90.0.16/opcodes/ia64-opc-m.c binutils-2.13.90.0.18/opcodes/ia64-opc-m.c --- binutils-2.13.90.0.16/opcodes/ia64-opc-m.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-opc-m.c Mon Dec 16 12:22:53 2002 @@ -33,6 +33,8 @@ #define bX4(x) (((ia64_insn) ((x) & 0xf)) << 27) #define bX6a(x) (((ia64_insn) ((x) & 0x3f)) << 30) #define bX6b(x) (((ia64_insn) ((x) & 0x3f)) << 27) +#define bX7(x) (((ia64_insn) ((x) & 0x1)) << 36) /* note: alias for bM() */ +#define bY(x) (((ia64_insn) ((x) & 0x1)) << 26) #define bHint(x) (((ia64_insn) ((x) & 0x3)) << 28) #define mM bM (-1) @@ -42,15 +44,21 @@ #define mX4 bX4 (-1) #define mX6a bX6a (-1) #define mX6b bX6b (-1) +#define mX7 bX7 (-1) +#define mY bY (-1) #define mHint bHint (-1) #define OpX3(a,b) (bOp (a) | bX3 (b)), (mOp | mX3) #define OpX3X6b(a,b,c) (bOp (a) | bX3 (b) | bX6b (c)), \ (mOp | mX3 | mX6b) +#define OpX3X6bX7(a,b,c,d) (bOp (a) | bX3 (b) | bX6b (c) | bX7 (d)), \ + (mOp | mX3 | mX6b | mX7) #define OpX3X4(a,b,c) (bOp (a) | bX3 (b) | bX4 (c)), \ (mOp | mX3 | mX4) #define OpX3X4X2(a,b,c,d) (bOp (a) | bX3 (b) | bX4 (c) | bX2 (d)), \ (mOp | mX3 | mX4 | mX2) +#define OpX3X4X2Y(a,b,c,d,e) (bOp (a) | bX3 (b) | bX4 (c) | bX2 (d) | bY (e)), \ + (mOp | mX3 | mX4 | mX2 | mY) #define OpX6aHint(a,b,c) (bOp (a) | bX6a (b) | bHint (c)), \ (mOp | mX6a | mHint) #define OpXX6aHint(a,b,c,d) (bOp (a) | bX (b) | bX6a (c) | bHint (d)), \ @@ -88,7 +96,8 @@ struct ia64_opcode ia64_opcodes_m[] = {"mov.m", M, OpX3X4X2 (0, 0, 8, 2), {AR3, IMM8}, EMPTY}, {"break.m", M0, OpX3X4X2 (0, 0, 0, 0), {IMMU21}, EMPTY}, - {"nop.m", M0, OpX3X4X2 (0, 0, 1, 0), {IMMU21}, EMPTY}, + {"nop.m", M0, OpX3X4X2Y (0, 0, 1, 0, 0), {IMMU21}, EMPTY}, + {"hint.m", M0, OpX3X4X2Y (0, 0, 1, 0, 1), {IMMU21}, EMPTY}, {"sum", M0, OpX3X4 (0, 0, 4), {IMMU24}, EMPTY}, {"rum", M0, OpX3X4 (0, 0, 5), {IMMU24}, EMPTY}, @@ -149,7 +158,8 @@ struct ia64_opcode ia64_opcodes_m[] = {"chk.s.m", M0, OpX3 (1, 1), {R2, TGT25b}, EMPTY}, {"chk.s", M0, OpX3 (1, 3), {F2, TGT25b}, EMPTY}, - {"fc", M0, OpX3X6b (1, 0, 0x30), {R3}, EMPTY}, + {"fc", M0, OpX3X6bX7 (1, 0, 0x30, 0), {R3}, EMPTY}, + {"fc.i", M0, OpX3X6bX7 (1, 0, 0x30, 1), {R3}, EMPTY}, {"ptc.e", M0, OpX3X6b (1, 0, 0x34), {R3}, PRIV, 0, NULL}, /* integer load */ @@ -165,6 +175,9 @@ struct ia64_opcode ia64_opcodes_m[] = {"ld8", M, OpMXX6aHint (4, 0, 0, 0x03, 0), {R1, MR3}, EMPTY}, {"ld8.nt1", M, OpMXX6aHint (4, 0, 0, 0x03, 1), {R1, MR3}, EMPTY}, {"ld8.nta", M, OpMXX6aHint (4, 0, 0, 0x03, 3), {R1, MR3}, EMPTY}, + {"ld16", M2, OpMXX6aHint (4, 0, 1, 0x28, 0), {R1, AR_CSD, MR3}, EMPTY}, + {"ld16.nt1", M2, OpMXX6aHint (4, 0, 1, 0x28, 1), {R1, AR_CSD, MR3}, EMPTY}, + {"ld16.nta", M2, OpMXX6aHint (4, 0, 1, 0x28, 3), {R1, AR_CSD, MR3}, EMPTY}, {"ld1.s", M, OpMXX6aHint (4, 0, 0, 0x04, 0), {R1, MR3}, EMPTY}, {"ld1.s.nt1", M, OpMXX6aHint (4, 0, 0, 0x04, 1), {R1, MR3}, EMPTY}, {"ld1.s.nta", M, OpMXX6aHint (4, 0, 0, 0x04, 3), {R1, MR3}, EMPTY}, @@ -225,6 +238,9 @@ struct ia64_opcode ia64_opcodes_m[] = {"ld8.acq", M, OpMXX6aHint (4, 0, 0, 0x17, 0), {R1, MR3}, EMPTY}, {"ld8.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x17, 1), {R1, MR3}, EMPTY}, {"ld8.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x17, 3), {R1, MR3}, EMPTY}, + {"ld16.acq", M2, OpMXX6aHint (4, 0, 1, 0x2c, 0), {R1, AR_CSD, MR3}, EMPTY}, + {"ld16.acq.nt1", M2, OpMXX6aHint (4, 0, 1, 0x2c, 1), {R1, AR_CSD, MR3}, EMPTY}, + {"ld16.acq.nta", M2, OpMXX6aHint (4, 0, 1, 0x2c, 3), {R1, AR_CSD, MR3}, EMPTY}, {"ld8.fill", M, OpMXX6aHint (4, 0, 0, 0x1b, 0), {R1, MR3}, EMPTY}, {"ld8.fill.nt1", M, OpMXX6aHint (4, 0, 0, 0x1b, 1), {R1, MR3}, EMPTY}, {"ld8.fill.nta", M, OpMXX6aHint (4, 0, 0, 0x1b, 3), {R1, MR3}, EMPTY}, @@ -265,6 +281,10 @@ struct ia64_opcode ia64_opcodes_m[] = {"ld8.c.clr.acq.nt1", M, OpMXX6aHint (4, 0, 0, 0x2b, 1), {R1, MR3}, EMPTY}, {"ld8.c.clr.acq.nta", M, OpMXX6aHint (4, 0, 0, 0x2b, 3), {R1, MR3}, EMPTY}, + /* Pseudo-op that generates ldxmov relocation. */ + {"ld8.mov", M, OpMXX6aHint (4, 0, 0, 0x03, 0), + {R1, MR3, IA64_OPND_LDXMOV}, EMPTY}, + /* Integer load w/increment by register. */ #define LDINCREG(c,h) M, OpMXX6aHint (4, 1, 0, c, h), {R1, MR3, R2}, POSTINC, 0, NULL {"ld1", LDINCREG (0x00, 0)}, @@ -388,6 +408,8 @@ struct ia64_opcode ia64_opcodes_m[] = {"st4.nta", M, OpMXX6aHint (4, 0, 0, 0x32, 3), {MR3, R2}, EMPTY}, {"st8", M, OpMXX6aHint (4, 0, 0, 0x33, 0), {MR3, R2}, EMPTY}, {"st8.nta", M, OpMXX6aHint (4, 0, 0, 0x33, 3), {MR3, R2}, EMPTY}, + {"st16", M, OpMXX6aHint (4, 0, 1, 0x30, 0), {MR3, R2, AR_CSD}, EMPTY}, + {"st16.nta", M, OpMXX6aHint (4, 0, 1, 0x30, 3), {MR3, R2, AR_CSD}, EMPTY}, {"st1.rel", M, OpMXX6aHint (4, 0, 0, 0x34, 0), {MR3, R2}, EMPTY}, {"st1.rel.nta", M, OpMXX6aHint (4, 0, 0, 0x34, 3), {MR3, R2}, EMPTY}, {"st2.rel", M, OpMXX6aHint (4, 0, 0, 0x35, 0), {MR3, R2}, EMPTY}, @@ -396,10 +418,13 @@ struct ia64_opcode ia64_opcodes_m[] = {"st4.rel.nta", M, OpMXX6aHint (4, 0, 0, 0x36, 3), {MR3, R2}, EMPTY}, {"st8.rel", M, OpMXX6aHint (4, 0, 0, 0x37, 0), {MR3, R2}, EMPTY}, {"st8.rel.nta", M, OpMXX6aHint (4, 0, 0, 0x37, 3), {MR3, R2}, EMPTY}, + {"st16.rel", M, OpMXX6aHint (4, 0, 1, 0x34, 0), {MR3, R2, AR_CSD}, EMPTY}, + {"st16.rel.nta", M, OpMXX6aHint (4, 0, 1, 0x34, 3), {MR3, R2, AR_CSD}, EMPTY}, {"st8.spill", M, OpMXX6aHint (4, 0, 0, 0x3b, 0), {MR3, R2}, EMPTY}, {"st8.spill.nta", M, OpMXX6aHint (4, 0, 0, 0x3b, 3), {MR3, R2}, EMPTY}, #define CMPXCHG(c,h) M, OpMXX6aHint (4, 0, 1, c, h), {R1, MR3, R2, AR_CCV}, EMPTY +#define CMPXCHG16(c,h) M, OpMXX6aHint (4, 0, 1, c, h), {R1, MR3, R2, AR_CSD, AR_CCV}, EMPTY {"cmpxchg1.acq", CMPXCHG (0x00, 0)}, {"cmpxchg1.acq.nt1", CMPXCHG (0x00, 1)}, {"cmpxchg1.acq.nta", CMPXCHG (0x00, 3)}, @@ -412,6 +437,9 @@ struct ia64_opcode ia64_opcodes_m[] = {"cmpxchg8.acq", CMPXCHG (0x03, 0)}, {"cmpxchg8.acq.nt1", CMPXCHG (0x03, 1)}, {"cmpxchg8.acq.nta", CMPXCHG (0x03, 3)}, + {"cmp8xchg16.acq", CMPXCHG16 (0x20, 0)}, + {"cmp8xchg16.acq.nt1", CMPXCHG16 (0x20, 1)}, + {"cmp8xchg16.acq.nta", CMPXCHG16 (0x20, 3)}, {"cmpxchg1.rel", CMPXCHG (0x04, 0)}, {"cmpxchg1.rel.nt1", CMPXCHG (0x04, 1)}, {"cmpxchg1.rel.nta", CMPXCHG (0x04, 3)}, @@ -424,7 +452,11 @@ struct ia64_opcode ia64_opcodes_m[] = {"cmpxchg8.rel", CMPXCHG (0x07, 0)}, {"cmpxchg8.rel.nt1", CMPXCHG (0x07, 1)}, {"cmpxchg8.rel.nta", CMPXCHG (0x07, 3)}, + {"cmp8xchg16.rel", CMPXCHG16 (0x24, 0)}, + {"cmp8xchg16.rel.nt1", CMPXCHG16 (0x24, 1)}, + {"cmp8xchg16.rel.nta", CMPXCHG16 (0x24, 3)}, #undef CMPXCHG +#undef CMPXCHG16 {"xchg1", M, OpMXX6aHint (4, 0, 1, 0x08, 0), {R1, MR3, R2}, EMPTY}, {"xchg1.nt1", M, OpMXX6aHint (4, 0, 1, 0x08, 1), {R1, MR3, R2}, EMPTY}, {"xchg1.nta", M, OpMXX6aHint (4, 0, 1, 0x08, 3), {R1, MR3, R2}, EMPTY}, diff -uprN binutils-2.13.90.0.16/opcodes/ia64-opc-x.c binutils-2.13.90.0.18/opcodes/ia64-opc-x.c --- binutils-2.13.90.0.16/opcodes/ia64-opc-x.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ia64-opc-x.c Mon Dec 16 12:22:53 2002 @@ -34,6 +34,7 @@ #define bWha(x) (((ia64_insn) ((x) & 0x3)) << 33) #define bX3(x) (((ia64_insn) ((x) & 0x7)) << 33) #define bX6(x) (((ia64_insn) ((x) & 0x3f)) << 27) +#define bY(x) (((ia64_insn) ((x) & 0x1)) << 26) #define mBtype bBtype (-1) #define mD bD (-1) @@ -43,9 +44,12 @@ #define mWha bWha (-1) #define mX3 bX3 (-1) #define mX6 bX6 (-1) +#define mY bY (-1) #define OpX3X6(a,b,c) (bOp (a) | bX3 (b) | bX6(c)), \ (mOp | mX3 | mX6) +#define OpX3X6Y(a,b,c,d) (bOp (a) | bX3 (b) | bX6(c) | bY(d)), \ + (mOp | mX3 | mX6 | mY) #define OpVc(a,b) (bOp (a) | bVc (b)), (mOp | mVc) #define OpPaWhaD(a,b,c,d) \ (bOp (a) | bPa (b) | bWha (c) | bD (d)), (mOp | mPa | mWha | mD) @@ -58,8 +62,9 @@ struct ia64_opcode ia64_opcodes_x[] = { - {"break.x", X0, OpX3X6 (0, 0, 0x00), {IMMU62}, 0, 0, NULL}, - {"nop.x", X0, OpX3X6 (0, 0, 0x01), {IMMU62}, 0, 0, NULL}, + {"break.x", X0, OpX3X6 (0, 0, 0x00), {IMMU62}, 0, 0, NULL}, + {"nop.x", X0, OpX3X6Y (0, 0, 0x01, 0), {IMMU62}, 0, 0, NULL}, + {"hint.x", X0, OpX3X6Y (0, 0, 0x01, 1), {IMMU62}, 0, 0, NULL}, {"movl", X, OpVc (6, 0), {R1, IMMU64}, 0, 0, NULL}, #define BRL(a,b) \ X0, OpBtypePaWhaDPr (0xC, 0, a, 0, b, 0), {TGT64}, PSEUDO, 0, NULL diff -uprN binutils-2.13.90.0.16/opcodes/ia64-opc.h binutils-2.13.90.0.18/opcodes/ia64-opc.h --- binutils-2.13.90.0.16/opcodes/ia64-opc.h Thu Mar 15 14:52:10 2001 +++ binutils-2.13.90.0.18/opcodes/ia64-opc.h Mon Dec 16 12:22:53 2002 @@ -44,6 +44,7 @@ #define AR_CCV IA64_OPND_AR_CCV #define AR_PFS IA64_OPND_AR_PFS +#define AR_CSD IA64_OPND_AR_CSD #define C1 IA64_OPND_C1 #define C8 IA64_OPND_C8 #define C16 IA64_OPND_C16 diff -uprN binutils-2.13.90.0.16/opcodes/ia64-raw.tbl binutils-2.13.90.0.18/opcodes/ia64-raw.tbl --- binutils-2.13.90.0.16/opcodes/ia64-raw.tbl Sat Sep 30 08:53:57 2000 +++ binutils-2.13.90.0.18/opcodes/ia64-raw.tbl Mon Dec 16 12:22:53 2002 @@ -2,8 +2,14 @@ Resource Name; Writers; Readers; Semanti ALAT; chk.a.clr, IC:mem-readers-alat, IC:mem-writers, IC:invala-all; IC:mem-readers-alat, IC:mem-writers, IC:chk-a, invala.e; none AR[BSP]; br.call, brl.call, br.ret, cover, IC:mov-to-AR-BSPSTORE, rfi; br.call, brl.call, br.ia, br.ret, cover, flushrs, loadrs, IC:mov-from-AR-BSP, rfi; impliedF AR[BSPSTORE]; alloc, loadrs, flushrs, IC:mov-to-AR-BSPSTORE; alloc, br.ia, flushrs, IC:mov-from-AR-BSPSTORE; impliedF +AR[CFLG]; IC:mov-to-AR-CFLG; br.ia, IC:mov-from-AR-CFLG; impliedF AR[CCV]; IC:mov-to-AR-CCV; br.ia, IC:cmpxchg, IC:mov-from-AR-CCV; impliedF +AR[CSD]; ld16, IC:mov-to-AR-CSD; br.ia, cmp8xchg16, IC:mov-from-AR-CSD, st16; impliedF AR[EC]; IC:mod-sched-brs, br.ret, IC:mov-to-AR-EC; br.call, brl.call, br.ia, IC:mod-sched-brs, IC:mov-from-AR-EC; impliedF +AR[EFLAG]; IC:mov-to-AR-EFLAG; br.ia, IC:mov-from-AR-EFLAG; impliedF +AR[FCR]; IC:mov-to-AR-FCR; br.ia, IC:mov-from-AR-FCR; impliedF +AR[FDR]; IC:mov-to-AR-FDR; br.ia, IC:mov-from-AR-FDR; impliedF +AR[FIR]; IC:mov-to-AR-FIR; br.ia, IC:mov-from-AR-FIR; impliedF AR[FPSR].sf0.controls; IC:mov-to-AR-FPSR, fsetc.s0; br.ia, IC:fp-arith-s0, IC:fcmp-s0, IC:fpcmp-s0, fsetc, IC:mov-from-AR-FPSR; impliedF AR[FPSR].sf1.controls; IC:mov-to-AR-FPSR, fsetc.s1; br.ia, IC:fp-arith-s1, IC:fcmp-s1, IC:fpcmp-s1, IC:mov-from-AR-FPSR; impliedF AR[FPSR].sf2.controls; IC:mov-to-AR-FPSR, fsetc.s2; br.ia, IC:fp-arith-s2, IC:fcmp-s2, IC:fpcmp-s2, IC:mov-from-AR-FPSR; impliedF @@ -14,6 +20,7 @@ AR[FPSR].sf2.flags; IC:fp-arith-s2, fclr AR[FPSR].sf3.flags; IC:fp-arith-s3, fclrf.s3, IC:fcmp-s3, IC:fpcmp-s3, IC:mov-to-AR-FPSR; br.ia, fchkf.s3, IC:mov-from-AR-FPSR; impliedF AR[FPSR].traps; IC:mov-to-AR-FPSR; br.ia, IC:fp-arith, fchkf, fcmp, fpcmp, IC:mov-from-AR-FPSR; impliedF AR[FPSR].rv; IC:mov-to-AR-FPSR; br.ia, IC:fp-arith, fchkf, fcmp, fpcmp, IC:mov-from-AR-FPSR; impliedF +AR[FSR]; IC:mov-to-AR-FSR; br.ia, IC:mov-from-AR-FSR; impliedF AR[ITC]; IC:mov-to-AR-ITC; br.ia, IC:mov-from-AR-ITC; impliedF AR[K%], % in 0 - 7; IC:mov-to-AR-K+1; br.ia, IC:mov-from-AR-K+1; impliedF AR[LC]; IC:mod-sched-brs-counted, IC:mov-to-AR-LC; br.ia, IC:mod-sched-brs-counted, IC:mov-from-AR-LC; impliedF @@ -22,6 +29,7 @@ AR[PFS]; IC:mov-to-AR-PFS; alloc, br.ia, AR[PFS]; IC:mov-to-AR-PFS; br.ret; none AR[RNAT]; alloc, flushrs, loadrs, IC:mov-to-AR-RNAT, IC:mov-to-AR-BSPSTORE; alloc, br.ia, flushrs, loadrs, IC:mov-from-AR-RNAT; impliedF AR[RSC]; IC:mov-to-AR-RSC; alloc, br.ia, flushrs, loadrs, IC:mov-from-AR-RSC, IC:mov-from-AR-BSPSTORE, IC:mov-to-AR-RNAT, IC:mov-from-AR-RNAT, IC:mov-to-AR-BSPSTORE; impliedF +AR[SSD]; IC:mov-to-AR-SSD; br.ia, IC:mov-from-AR-SSD; impliedF AR[UNAT]{%}, % in 0 - 63; IC:mov-to-AR-UNAT, st8.spill; br.ia, ld8.fill, IC:mov-from-AR-UNAT; impliedF AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111; IC:none; br.ia, IC:mov-from-AR-rv+1; none AR%, % in 48-63, 112-127; IC:mov-to-AR-ig+1; br.ia, IC:mov-from-AR-ig+1; impliedF diff -uprN binutils-2.13.90.0.16/opcodes/ia64-waw.tbl binutils-2.13.90.0.18/opcodes/ia64-waw.tbl --- binutils-2.13.90.0.16/opcodes/ia64-waw.tbl Sat Sep 30 08:53:57 2000 +++ binutils-2.13.90.0.18/opcodes/ia64-waw.tbl Mon Dec 16 12:22:53 2002 @@ -3,7 +3,13 @@ ALAT; IC:mem-readers-alat, IC:mem-writer AR[BSP]; br.call, brl.call, br.ret, cover, IC:mov-to-AR-BSPSTORE, rfi; br.call, brl.call, br.ret, cover, IC:mov-to-AR-BSPSTORE, rfi; impliedF AR[BSPSTORE]; alloc, loadrs, flushrs, IC:mov-to-AR-BSPSTORE; alloc, loadrs, flushrs, IC:mov-to-AR-BSPSTORE; impliedF AR[CCV]; IC:mov-to-AR-CCV; IC:mov-to-AR-CCV; impliedF +AR[CFLG]; IC:mov-to-AR-CFLG; IC:mov-to-AR-CFLG; impliedF +AR[CSD]; ld16, IC:mov-to-AR-CSD; ld16, IC:mov-to-AR-CSD; impliedF AR[EC]; br.ret, IC:mod-sched-brs, IC:mov-to-AR-EC; br.ret, IC:mod-sched-brs, IC:mov-to-AR-EC; impliedF +AR[EFLAG]; mov-to-AR-EFLAG; mov-to-AR-EFLAG; impliedF +AR[FCR]; mov-to-AR-FCR; mov-to-AR-FCR; impliedF +AR[FDR]; mov-to-AR-FDR; mov-to-AR-FDR; impliedF +AR[FIR]; mov-to-AR-FIR; mov-to-AR-FIR; impliedF AR[FPSR].sf0.controls; IC:mov-to-AR-FPSR, fsetc.s0; IC:mov-to-AR-FPSR, fsetc.s0; impliedF AR[FPSR].sf1.controls; IC:mov-to-AR-FPSR, fsetc.s1; IC:mov-to-AR-FPSR, fsetc.s1; impliedF AR[FPSR].sf2.controls; IC:mov-to-AR-FPSR, fsetc.s2; IC:mov-to-AR-FPSR, fsetc.s2; impliedF @@ -18,6 +24,7 @@ AR[FPSR].sf3.flags; IC:fp-arith-s3, IC:f AR[FPSR].sf3.flags; fclrf.s3, IC:fcmp-s3, IC:fp-arith-s3, IC:fpcmp-s3, IC:mov-to-AR-FPSR; fclrf.s3, IC:mov-to-AR-FPSR; impliedF AR[FPSR].rv; IC:mov-to-AR-FPSR; IC:mov-to-AR-FPSR; impliedF AR[FPSR].traps; IC:mov-to-AR-FPSR; IC:mov-to-AR-FPSR; impliedF +AR[FSR]; IC:mov-to-AR-FSR; IC:mov-to-AR-FSR; impliedF AR[ITC]; IC:mov-to-AR-ITC; IC:mov-to-AR-ITC; impliedF AR[K%], % in 0 - 7; IC:mov-to-AR-K+1; IC:mov-to-AR-K+1; impliedF AR[LC]; IC:mod-sched-brs-counted, IC:mov-to-AR-LC; IC:mod-sched-brs-counted, IC:mov-to-AR-LC; impliedF diff -uprN binutils-2.13.90.0.16/opcodes/ip2k-asm.c binutils-2.13.90.0.18/opcodes/ip2k-asm.c --- binutils-2.13.90.0.16/opcodes/ip2k-asm.c Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.18/opcodes/ip2k-asm.c Mon Dec 16 12:22:53 2002 @@ -49,6 +49,17 @@ static const char * parse_insn_normal /* -- asm.c */ +#define PARSE_FUNC_DECL(name) \ +static const char *name PARAMS ((CGEN_CPU_DESC, const char **, int, long *)) + +PARSE_FUNC_DECL (parse_fr); +PARSE_FUNC_DECL (parse_addr16); +PARSE_FUNC_DECL (parse_addr16_p); +PARSE_FUNC_DECL (parse_addr16_cjp); +PARSE_FUNC_DECL (parse_lit8); +PARSE_FUNC_DECL (parse_bit3); + + static const char * parse_fr (cd, strp, opindex, valuep) CGEN_CPU_DESC cd; @@ -57,12 +68,12 @@ parse_fr (cd, strp, opindex, valuep) long *valuep; { const char *errmsg; - char *old_strp; + const char *old_strp; char *afteroffset; enum cgen_parse_operand_result result_type; bfd_vma value; extern CGEN_KEYWORD ip2k_cgen_opval_register_names; - long tempvalue; + bfd_vma tempvalue; old_strp = *strp; afteroffset = NULL; @@ -71,36 +82,37 @@ parse_fr (cd, strp, opindex, valuep) /* Check here to see if you're about to try parsing a w as the first arg */ /* and return an error if you are. */ if ( (strncmp(*strp,"w",1)==0) || (strncmp(*strp,"W",1)==0) ) - { - (*strp)++; + { + (*strp)++; - if ( (strncmp(*strp,",",1)==0) || isspace(**strp) ) - { - /* We've been passed a w. Return with an error message so that */ - /* cgen will try the next parsing option. */ - errmsg = _("W keyword invalid in FR operand slot."); - return errmsg; - } - *strp = old_strp; - } + if ( (strncmp(*strp,",",1)==0) || ISSPACE(**strp) ) + { + /* We've been passed a w. Return with an error message so that */ + /* cgen will try the next parsing option. */ + errmsg = _("W keyword invalid in FR operand slot."); + return errmsg; + } + *strp = old_strp; + } /* Attempt parse as register keyword. */ /* old_strp = *strp; */ - errmsg = cgen_parse_keyword (cd, strp, & ip2k_cgen_opval_register_names, valuep); + errmsg = cgen_parse_keyword (cd, strp, & ip2k_cgen_opval_register_names, + valuep); if ( *strp != NULL ) - if (errmsg == NULL) - return errmsg; + if (errmsg == NULL) + return errmsg; /* Attempt to parse for "(IP)" */ afteroffset = strstr(*strp,"(IP)"); if ( afteroffset == NULL) - { - /* Make sure it's not in lower case */ - afteroffset = strstr(*strp,"(ip)"); - } + { + /* Make sure it's not in lower case */ + afteroffset = strstr(*strp,"(ip)"); + } if ( afteroffset != NULL ) { @@ -127,42 +139,44 @@ parse_fr (cd, strp, opindex, valuep) afteroffset = strstr(*strp,"(DP)"); if ( afteroffset == NULL) - { - /* Maybe it's in lower case */ - afteroffset = strstr(*strp,"(dp)"); - } + { + /* Maybe it's in lower case */ + afteroffset = strstr(*strp,"(dp)"); + } if ( afteroffset != NULL ) - { - if ( afteroffset == *strp ) - { - /* No offset present. Use 0 by default. */ - tempvalue = 0; - errmsg = NULL; - } - else - { - errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IP2K_FR_OFFSET, - & result_type, & tempvalue); - } - - if (errmsg == NULL) - { - if ( (tempvalue >= 0) && (tempvalue <= 127) ) - { - /* Value is ok. Fix up the first 2 bits and return */ - *valuep = 0x0100 | tempvalue; - *strp += 4; /* skip over the (DP) in *strp */ - return errmsg; - } else - { - /* Found something there in front of (DP) but it's out of range. */ - errmsg = _("(DP) offset out of range."); - return errmsg; - } - - } - } + { + if ( afteroffset == *strp ) + { + /* No offset present. Use 0 by default. */ + tempvalue = 0; + errmsg = NULL; + } + else + { + errmsg = cgen_parse_address (cd, strp, opindex, + BFD_RELOC_IP2K_FR_OFFSET, + & result_type, & tempvalue); + } + + if (errmsg == NULL) + { + if (tempvalue <= 127) + { + /* Value is ok. Fix up the first 2 bits and return */ + *valuep = 0x0100 | tempvalue; + *strp += 4; /* skip over the (DP) in *strp */ + return errmsg; + } + else + { + /* Found something there in front of (DP) but it's out + of range. */ + errmsg = _("(DP) offset out of range."); + return errmsg; + } + } + } /* Attempt to parse for SP. ex: mov w, offset(SP) */ @@ -172,41 +186,44 @@ parse_fr (cd, strp, opindex, valuep) afteroffset = strstr(*strp,"(SP)"); if (afteroffset == NULL) - { - /* Maybe it's in lower case. */ - afteroffset = strstr(*strp, "(sp)"); - } + { + /* Maybe it's in lower case. */ + afteroffset = strstr(*strp, "(sp)"); + } if ( afteroffset != NULL ) - { - if ( afteroffset == *strp ) - { - /* No offset present. Use 0 by default. */ - tempvalue = 0; - errmsg = NULL; - } - else - { - errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IP2K_FR_OFFSET, - & result_type, & tempvalue); - } - if (errmsg == NULL) - { - if ( (tempvalue >= 0) && (tempvalue <= 127) ) - { - /* Value is ok. Fix up the first 2 bits and return */ - *valuep = 0x0180 | tempvalue; - *strp += 4; /* skip over the (SP) in *strp */ - return errmsg; - } else - { - /* Found something there in front of (SP) but it's out of range. */ - errmsg = _("(SP) offset out of range."); - return errmsg; - } + { + if ( afteroffset == *strp ) + { + /* No offset present. Use 0 by default. */ + tempvalue = 0; + errmsg = NULL; + } + else + { + errmsg = cgen_parse_address (cd, strp, opindex, + BFD_RELOC_IP2K_FR_OFFSET, + & result_type, & tempvalue); + } + if (errmsg == NULL) + { + if (tempvalue <= 127) + { + /* Value is ok. Fix up the first 2 bits and return */ + *valuep = 0x0180 | tempvalue; + *strp += 4; /* skip over the (SP) in *strp */ + return errmsg; + } + else + { + /* Found something there in front of (SP) but it's out + of range. */ + errmsg = _("(SP) offset out of range."); + return errmsg; + } - } - } + } + } /* Attempt to parse as an address. */ @@ -223,7 +240,8 @@ parse_fr (cd, strp, opindex, valuep) { errmsg = _("illegal use of parentheses"); } - /* if a numeric value is specified, ensure that it is between 1 and 255 */ + /* if a numeric value is specified, ensure that it is between + 1 and 255 */ else if (result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) { if (value < 0x1 || value > 0xff) @@ -243,12 +261,12 @@ parse_addr16 (cd, strp, opindex, valuep) const char *errmsg; enum cgen_parse_operand_result result_type; bfd_reloc_code_real_type code = BFD_RELOC_NONE; - long value; + bfd_vma value; if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16H ) - code = BFD_RELOC_IP2K_HI8DATA; + code = BFD_RELOC_IP2K_HI8DATA; else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16L ) - code = BFD_RELOC_IP2K_LO8DATA; + code = BFD_RELOC_IP2K_LO8DATA; else { /* Something is very wrong. opindex has to be one of the above. */ @@ -257,93 +275,94 @@ parse_addr16 (cd, strp, opindex, valuep) } errmsg = cgen_parse_address (cd, strp, opindex, code, - & result_type, & value); + & result_type, & value); if (errmsg == NULL) { - /* We either have a relocation or a number now. */ + /* We either have a relocation or a number now. */ if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER ) - { - /* We got a number back. */ - if ( code == BFD_RELOC_IP2K_HI8DATA ) + { + /* We got a number back. */ + if ( code == BFD_RELOC_IP2K_HI8DATA ) value >>= 8; - else /* code = BFD_RELOC_IP2K_LOW8DATA */ + else /* code = BFD_RELOC_IP2K_LOW8DATA */ value &= 0x00FF; - } - *valuep = value; - } + } + *valuep = value; + } return errmsg; } - static const char * - parse_addr16_p (cd, strp, opindex, valuep) - CGEN_CPU_DESC cd; - const char **strp; - int opindex; - long *valuep; - { - const char *errmsg; - enum cgen_parse_operand_result result_type; - bfd_reloc_code_real_type code = BFD_RELOC_IP2K_PAGE3; - long value; +static const char * +parse_addr16_p (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_reloc_code_real_type code = BFD_RELOC_IP2K_PAGE3; + bfd_vma value; - errmsg = cgen_parse_address (cd, strp, opindex, code, - & result_type, & value); - if (errmsg == NULL) - { - if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER ) - *valuep = (value >> 13) & 0x7; - else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED ) - *valuep = value; - } - return errmsg; - } - - - static const char * - parse_addr16_cjp (cd, strp, opindex, valuep) - CGEN_CPU_DESC cd; - const char **strp; - int opindex; - long *valuep; - { - const char *errmsg; - enum cgen_parse_operand_result result_type; - bfd_reloc_code_real_type code = BFD_RELOC_NONE; - long value; + errmsg = cgen_parse_address (cd, strp, opindex, code, + & result_type, & value); + if (errmsg == NULL) + { + if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER ) + *valuep = (value >> 13) & 0x7; + else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED ) + *valuep = value; + } + return errmsg; +} + + +static const char * +parse_addr16_cjp (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_reloc_code_real_type code = BFD_RELOC_NONE; + bfd_vma value; - if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP ) - code = BFD_RELOC_IP2K_ADDR16CJP; - else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P ) - code = BFD_RELOC_IP2K_PAGE3; - - errmsg = cgen_parse_address (cd, strp, opindex, code, - & result_type, & value); - if (errmsg == NULL) - { - if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER ) - { - if ( (value & 0x1) == 0) /* If the address is even .... */ - { - if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP ) + if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP ) + code = BFD_RELOC_IP2K_ADDR16CJP; + else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P ) + code = BFD_RELOC_IP2K_PAGE3; + + errmsg = cgen_parse_address (cd, strp, opindex, code, + & result_type, & value); + if (errmsg == NULL) + { + if ( result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER ) + { + if ( (value & 0x1) == 0) /* If the address is even .... */ + { + if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16CJP ) *valuep = (value >> 1) & 0x1FFF; /* Should mask be 1FFF? */ - else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P ) + else if ( opindex == (CGEN_OPERAND_TYPE)IP2K_OPERAND_ADDR16P ) *valuep = (value >> 14) & 0x7; - } + } else errmsg = _("Byte address required. - must be even."); - }else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED ) - { - /* This will happen for things like (s2-s1) where s2 and s1 */ - /* are labels. */ - *valuep = value; - } + } + else if ( result_type == CGEN_PARSE_OPERAND_RESULT_QUEUED ) + { + /* This will happen for things like (s2-s1) where s2 and s1 + are labels. */ + *valuep = value; + } else errmsg = _("cgen_parse_address returned a symbol. Literal required."); - } - return errmsg; - } + } + return errmsg; +} static const char * @@ -356,7 +375,7 @@ parse_lit8 (cd, strp, opindex, valuep) const char *errmsg; enum cgen_parse_operand_result result_type; bfd_reloc_code_real_type code = BFD_RELOC_NONE; - long value; + bfd_vma value; /* Parse %OP relocating operators. */ if (strncmp (*strp, "%bank", 5) == 0) @@ -444,33 +463,39 @@ parse_bit3 (cd, strp, opindex, valuep) } errmsg = cgen_parse_signed_integer (cd, strp, opindex, valuep); - if (errmsg) { + if (errmsg) return errmsg; - } - if (mode) { - value = (unsigned long) *valuep; - if (value == 0) { - errmsg = _("Attempt to find bit index of 0"); - return errmsg; - } + if (mode) + { + value = (unsigned long) *valuep; + if (value == 0) + { + errmsg = _("Attempt to find bit index of 0"); + return errmsg; + } - if (mode == 1) { - count = 31; - while ((value & 0x80000000) == 0) { - count--; - value <<= 1; - } - } else if (mode == 2) { - count = 0; - while ((value & 0x00000001) == 0) { - count++; - value >>= 1; - } - } + if (mode == 1) + { + count = 31; + while ((value & 0x80000000) == 0) + { + count--; + value <<= 1; + } + } + else if (mode == 2) + { + count = 0; + while ((value & 0x00000001) == 0) + { + count++; + value >>= 1; + } + } - *valuep = count; - } + *valuep = count; + } return errmsg; } diff -uprN binutils-2.13.90.0.16/opcodes/ip2k-desc.c binutils-2.13.90.0.18/opcodes/ip2k-desc.c --- binutils-2.13.90.0.16/opcodes/ip2k-desc.c Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.18/opcodes/ip2k-desc.c Mon Dec 16 12:22:53 2002 @@ -32,6 +32,7 @@ with this program; if not, write to the #include "ip2k-opc.h" #include "opintl.h" #include "libiberty.h" +#include "xregex.h" /* Attributes. */ @@ -347,57 +348,60 @@ const CGEN_OPERAND ip2k_cgen_operand_tab { /* pc: program counter */ { "pc", IP2K_OPERAND_PC, HW_H_PC, 0, 0, - { 0, &(ip2k_cgen_ifld_table[0]) }, + { 0, { (const PTR) &ip2k_cgen_ifld_table[0] } }, { 0|A(SEM_ONLY), { (1<macro_insn_table.init_entries) { @@ -1186,7 +1190,7 @@ ip2k_cgen_cpu_close (cd) for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX ((insns))) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } @@ -1196,7 +1200,7 @@ ip2k_cgen_cpu_close (cd) for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX (insns)) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } diff -uprN binutils-2.13.90.0.16/opcodes/ip2k-dis.c binutils-2.13.90.0.18/opcodes/ip2k-dis.c --- binutils-2.13.90.0.16/opcodes/ip2k-dis.c Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.18/opcodes/ip2k-dis.c Mon Dec 16 12:22:53 2002 @@ -4,7 +4,8 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -31,6 +32,7 @@ along with this program; if not, write t #include "dis-asm.h" #include "bfd.h" #include "symcat.h" +#include "libiberty.h" #include "ip2k-desc.h" #include "ip2k-opc.h" #include "opintl.h" @@ -59,14 +61,27 @@ static int read_insn /* -- dis.c */ +#define PRINT_FUNC_DECL(name) \ +static void name PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int)) + +PRINT_FUNC_DECL (print_fr); +PRINT_FUNC_DECL (print_dollarhex); +PRINT_FUNC_DECL (print_dollarhex8); +PRINT_FUNC_DECL (print_dollarhex16); +PRINT_FUNC_DECL (print_dollarhex_addr16h); +PRINT_FUNC_DECL (print_dollarhex_addr16l); +PRINT_FUNC_DECL (print_dollarhex_p); +PRINT_FUNC_DECL (print_dollarhex_cj); +PRINT_FUNC_DECL (print_decimal); + static void print_fr (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; const CGEN_KEYWORD_ENTRY *ke; @@ -75,33 +90,33 @@ print_fr (cd, dis_info, value, attrs, pc long offsetvalue; if ( value == 0 ) /* This is (IP) */ - { + { (*info->fprintf_func) (info->stream, "%s", "(IP)"); return; - } + } offsettest = value >> 7; offsetvalue = value & 0x7F; /* Check to see if first two bits are 10 -> (DP) */ if ( offsettest == 2 ) - { + { if ( offsetvalue == 0 ) - (*info->fprintf_func) (info->stream, "%s","(DP)"); + (*info->fprintf_func) (info->stream, "%s","(DP)"); else - (*info->fprintf_func) (info->stream, "$%x%s",offsetvalue, "(DP)"); + (*info->fprintf_func) (info->stream, "$%x%s",offsetvalue, "(DP)"); return; - } + } /* Check to see if first two bits are 11 -> (SP) */ if ( offsettest == 3 ) - { + { if ( offsetvalue == 0 ) - (*info->fprintf_func) (info->stream, "%s", "(SP)"); + (*info->fprintf_func) (info->stream, "%s", "(SP)"); else - (*info->fprintf_func) (info->stream, "$%x%s", offsetvalue,"(SP)"); + (*info->fprintf_func) (info->stream, "$%x%s", offsetvalue,"(SP)"); return; - } + } /* Attempt to print as a register keyword. */ ke = cgen_keyword_lookup_value (& ip2k_cgen_opval_register_names, value); @@ -117,12 +132,12 @@ print_fr (cd, dis_info, value, attrs, pc static void print_dollarhex (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; @@ -131,12 +146,12 @@ print_dollarhex (cd, dis_info, value, at static void print_dollarhex8 (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; @@ -145,12 +160,12 @@ print_dollarhex8 (cd, dis_info, value, a static void print_dollarhex16 (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; @@ -159,12 +174,12 @@ print_dollarhex16 (cd, dis_info, value, static void print_dollarhex_addr16h (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; @@ -177,12 +192,12 @@ print_dollarhex_addr16h (cd, dis_info, v static void print_dollarhex_addr16l (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; @@ -191,12 +206,12 @@ print_dollarhex_addr16l (cd, dis_info, v static void print_dollarhex_p (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; @@ -207,12 +222,12 @@ print_dollarhex_p (cd, dis_info, value, static void print_dollarhex_cj (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; @@ -223,12 +238,12 @@ print_dollarhex_cj (cd, dis_info, value, static void print_decimal (cd, dis_info, value, attrs, pc, length) - CGEN_CPU_DESC cd; + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; PTR dis_info; long value; - unsigned int attrs; - bfd_vma pc; - int length; + unsigned int attrs ATTRIBUTE_UNUSED; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; { disassemble_info *info = (disassemble_info *) dis_info; diff -uprN binutils-2.13.90.0.16/opcodes/ip2k-opc.c binutils-2.13.90.0.18/opcodes/ip2k-opc.c --- binutils-2.13.90.0.16/opcodes/ip2k-opc.c Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.18/opcodes/ip2k-opc.c Mon Dec 16 12:22:53 2002 @@ -32,6 +32,8 @@ with this program; if not, write to the /* -- opc.c */ +#include "safe-ctype.h" + /* A better hash function for instruction mnemonics. */ unsigned int ip2k_asm_hash (insn) @@ -40,8 +42,8 @@ ip2k_asm_hash (insn) unsigned int hash; const char* m = insn; - for (hash = 0; *m && !isspace(*m); m++) - hash = (hash * 23) ^ (0x1F & tolower(*m)); + for (hash = 0; *m && !ISSPACE(*m); m++) + hash = (hash * 23) ^ (0x1F & TOLOWER(*m)); /* printf ("%s %d\n", insn, (hash % CGEN_ASM_HASH_SIZE)); */ @@ -49,6 +51,20 @@ ip2k_asm_hash (insn) } +/* Special check to ensure that instruction exists for given machine. */ +int +ip2k_cgen_insn_supported (cd, insn) + CGEN_CPU_DESC cd; + const CGEN_INSN *insn; +{ + int machs = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH); + + /* No mach attribute? Assume it's supported for all machs. */ + if (machs == 0) + return 1; + + return ((machs & cd->machs) != 0); +} /* -- asm.c */ diff -uprN binutils-2.13.90.0.16/opcodes/ip2k-opc.h binutils-2.13.90.0.18/opcodes/ip2k-opc.h --- binutils-2.13.90.0.16/opcodes/ip2k-opc.h Mon Jul 29 08:19:19 2002 +++ binutils-2.13.90.0.18/opcodes/ip2k-opc.h Mon Dec 16 12:22:53 2002 @@ -41,24 +41,9 @@ with this program; if not, write to the #define CGEN_ASM_HASH_SIZE 127 #define CGEN_ASM_HASH(insn) ip2k_asm_hash(insn) -extern unsigned int ip2k_asm_hash (const char *insn); - - -/* Special check to ensure that instruction exists for given machine. */ -static int -ip2k_cgen_insn_supported (cd, insn) - CGEN_CPU_DESC cd; - CGEN_INSN *insn; -{ - int machs = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH); - - /* No mach attribute? Assume it's supported for all machs. */ - if (machs == 0) - return 1; - - return ((machs & cd->machs) != 0); -} - +extern unsigned int ip2k_asm_hash PARAMS ((const char *insn)); +extern int ip2k_cgen_insn_supported + PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *)); /* -- opc.c */ /* Enum declaration for ip2k instruction types. */ diff -uprN binutils-2.13.90.0.16/opcodes/iq2000-asm.c binutils-2.13.90.0.18/opcodes/iq2000-asm.c --- binutils-2.13.90.0.16/opcodes/iq2000-asm.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/iq2000-asm.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,891 @@ +/* Assembler interface for targets using CGEN. -*- C -*- + CGEN: Cpu tools GENerator + +THIS FILE IS MACHINE GENERATED WITH CGEN. +- the resultant file is machine generated, cgen-asm.in isn't + +Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + +This file is part of the GNU Binutils and GDB, the GNU debugger. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* ??? Eventually more and more of this stuff can go to cpu-independent files. + Keep that in mind. */ + +#include "sysdep.h" +#include +#include "ansidecl.h" +#include "bfd.h" +#include "symcat.h" +#include "iq2000-desc.h" +#include "iq2000-opc.h" +#include "opintl.h" +#include "xregex.h" +#include "libiberty.h" +#include "safe-ctype.h" + +#undef min +#define min(a,b) ((a) < (b) ? (a) : (b)) +#undef max +#define max(a,b) ((a) > (b) ? (a) : (b)) + +static const char * parse_insn_normal + PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, const char **, CGEN_FIELDS *)); + +/* -- assembler routines inserted here. */ + +/* -- asm.c */ +static const char * parse_mimm PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); +static const char * parse_imm PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static const char * parse_hi16 PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static const char * parse_lo16 PARAMS ((CGEN_CPU_DESC, const char **, int, long *)); + +/* Special check to ensure that instruction exists for given machine */ +int +iq2000_cgen_insn_supported (cd, insn) + CGEN_CPU_DESC cd; + CGEN_INSN *insn; +{ + int machs = cd->machs; + + return ((CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_MACH) & machs) != 0); +} + +static int iq2000_cgen_isa_register (strp) + const char **strp; +{ + int len; + int ch1, ch2; + if (**strp == 'r' || **strp == 'R') + { + len = strlen (*strp); + if (len == 2) + { + ch1 = (*strp)[1]; + if ('0' <= ch1 && ch1 <= '9') + return 1; + } + else if (len == 3) + { + ch1 = (*strp)[1]; + ch2 = (*strp)[2]; + if (('1' <= ch1 && ch1 <= '2') && ('0' <= ch2 && ch2 <= '9')) + return 1; + if ('3' == ch1 && (ch2 == '0' || ch2 == '1')) + return 1; + } + } + if (**strp == '%' && tolower((*strp)[1]) != 'l' && tolower((*strp)[1]) != 'h') + return 1; + return 0; +} + +/* Handle negated literal. */ + +static const char * +parse_mimm (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + const char *errmsg; + long value; + + /* Verify this isn't a register */ + if (iq2000_cgen_isa_register (strp)) + errmsg = _("immediate value cannot be register"); + else + { + long value; + + errmsg = cgen_parse_signed_integer (cd, strp, opindex, & value); + if (errmsg == NULL) + { + long x = (-value) & 0xFFFF0000; + if (x != 0 && x != 0xFFFF0000) + errmsg = _("immediate value out of range"); + else + *valuep = (-value & 0xFFFF); + } + } + return errmsg; +} + +/* Handle signed/unsigned literal. */ + +static const char * +parse_imm (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + const char *errmsg; + long value; + + if (iq2000_cgen_isa_register (strp)) + errmsg = _("immediate value cannot be register"); + else + { + long value; + + errmsg = cgen_parse_signed_integer (cd, strp, opindex, & value); + if (errmsg == NULL) + { + long x = value & 0xFFFF0000; + if (x != 0 && x != 0xFFFF0000) + errmsg = _("immediate value out of range"); + else + *valuep = (value & 0xFFFF); + } + } + return errmsg; +} + +/* Handle iq10 21-bit jmp offset. */ + +static const char * +parse_jtargq10 (cd, strp, opindex, reloc, type_addr, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + int reloc; + enum cgen_parse_operand_result *type_addr; + unsigned long *valuep; +{ + const char *errmsg; + bfd_vma value; + enum cgen_parse_operand_result result_type = CGEN_PARSE_OPERAND_RESULT_NUMBER; + + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IQ2000_OFFSET_21, + &result_type, &value); + if (errmsg == NULL && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + { + /* check value is within 23-bits (remembering that 2-bit shift right will occur) */ + if (value > 0x7fffff) + return _("21-bit offset out of range"); + } + *valuep = (value & 0x7FFFFF); + return errmsg; +} + +/* Handle high(). */ + +static const char * +parse_hi16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + if (strncasecmp (*strp, "%hi(", 4) == 0) + { + enum cgen_parse_operand_result result_type; + bfd_vma value; + const char *errmsg; + + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_HI16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + { + /* if value has top-bit of %lo on, then it will + sign-propagate and so we compensate by adding + 1 to the resultant %hi value */ + if (value & 0x8000) + value += 0x10000; + value >>= 16; + } + *valuep = value; + + return errmsg; + } + + /* we add %uhi in case a user just wants the high 16-bits or is using + an insn like ori for %lo which does not sign-propagate */ + if (strncasecmp (*strp, "%uhi(", 5) == 0) + { + enum cgen_parse_operand_result result_type; + bfd_vma value; + const char *errmsg; + + *strp += 5; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_IQ2000_UHI16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + { + value >>= 16; + } + *valuep = value; + + return errmsg; + } + + return parse_imm (cd, strp, opindex, valuep); +} + +/* Handle %lo in a signed context. + The signedness of the value doesn't matter to %lo(), but this also + handles the case where %lo() isn't present. */ + +static const char * +parse_lo16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + if (strncasecmp (*strp, "%lo(", 4) == 0) + { + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LO16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value &= 0xffff; + *valuep = value; + return errmsg; + } + + return parse_imm (cd, strp, opindex, valuep); +} + +/* Handle %lo in a negated signed context. + The signedness of the value doesn't matter to %lo(), but this also + handles the case where %lo() isn't present. */ + +static const char * +parse_mlo16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + long *valuep; +{ + if (strncasecmp (*strp, "%lo(", 4) == 0) + { + const char *errmsg; + enum cgen_parse_operand_result result_type; + bfd_vma value; + + *strp += 4; + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LO16, + &result_type, &value); + if (**strp != ')') + return _("missing `)'"); + ++*strp; + if (errmsg == NULL + && result_type == CGEN_PARSE_OPERAND_RESULT_NUMBER) + value = (-value) & 0xffff; + *valuep = value; + return errmsg; + } + + return parse_mimm (cd, strp, opindex, valuep); +} + +/* -- */ + +const char * iq2000_cgen_parse_operand + PARAMS ((CGEN_CPU_DESC, int, const char **, CGEN_FIELDS *)); + +/* Main entry point for operand parsing. + + This function is basically just a big switch statement. Earlier versions + used tables to look up the function to use, but + - if the table contains both assembler and disassembler functions then + the disassembler contains much of the assembler and vice-versa, + - there's a lot of inlining possibilities as things grow, + - using a switch statement avoids the function call overhead. + + This function could be moved into `parse_insn_normal', but keeping it + separate makes clear the interface between `parse_insn_normal' and each of + the handlers. */ + +const char * +iq2000_cgen_parse_operand (cd, opindex, strp, fields) + CGEN_CPU_DESC cd; + int opindex; + const char ** strp; + CGEN_FIELDS * fields; +{ + const char * errmsg = NULL; + /* Used by scalar operands that still need to be parsed. */ + long junk ATTRIBUTE_UNUSED; + + switch (opindex) + { + case IQ2000_OPERAND_BASE : + errmsg = cgen_parse_keyword (cd, strp, & iq2000_cgen_opval_gr_names, & fields->f_rs); + break; + case IQ2000_OPERAND_BASEOFF : + { + bfd_vma value; + errmsg = cgen_parse_address (cd, strp, IQ2000_OPERAND_BASEOFF, 0, NULL, & value); + fields->f_imm = value; + } + break; + case IQ2000_OPERAND_BITNUM : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_BITNUM, &fields->f_rt); + break; + case IQ2000_OPERAND_BYTECOUNT : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_BYTECOUNT, &fields->f_bytecount); + break; + case IQ2000_OPERAND_CAM_Y : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_CAM_Y, &fields->f_cam_y); + break; + case IQ2000_OPERAND_CAM_Z : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_CAM_Z, &fields->f_cam_z); + break; + case IQ2000_OPERAND_CM_3FUNC : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_CM_3FUNC, &fields->f_cm_3func); + break; + case IQ2000_OPERAND_CM_3Z : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_CM_3Z, &fields->f_cm_3z); + break; + case IQ2000_OPERAND_CM_4FUNC : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_CM_4FUNC, &fields->f_cm_4func); + break; + case IQ2000_OPERAND_CM_4Z : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_CM_4Z, &fields->f_cm_4z); + break; + case IQ2000_OPERAND_COUNT : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_COUNT, &fields->f_count); + break; + case IQ2000_OPERAND_EXECODE : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_EXECODE, &fields->f_excode); + break; + case IQ2000_OPERAND_HI16 : + errmsg = parse_hi16 (cd, strp, IQ2000_OPERAND_HI16, &fields->f_imm); + break; + case IQ2000_OPERAND_IMM : + errmsg = parse_imm (cd, strp, IQ2000_OPERAND_IMM, &fields->f_imm); + break; + case IQ2000_OPERAND_INDEX : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_INDEX, &fields->f_index); + break; + case IQ2000_OPERAND_JMPTARG : + { + bfd_vma value; + errmsg = cgen_parse_address (cd, strp, IQ2000_OPERAND_JMPTARG, 0, NULL, & value); + fields->f_jtarg = value; + } + break; + case IQ2000_OPERAND_JMPTARGQ10 : + { + bfd_vma value; + errmsg = parse_jtargq10 (cd, strp, IQ2000_OPERAND_JMPTARGQ10, 0, NULL, & value); + fields->f_jtargq10 = value; + } + break; + case IQ2000_OPERAND_LO16 : + errmsg = parse_lo16 (cd, strp, IQ2000_OPERAND_LO16, &fields->f_imm); + break; + case IQ2000_OPERAND_MASK : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_MASK, &fields->f_mask); + break; + case IQ2000_OPERAND_MASKL : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_MASKL, &fields->f_maskl); + break; + case IQ2000_OPERAND_MASKQ10 : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_MASKQ10, &fields->f_maskq10); + break; + case IQ2000_OPERAND_MASKR : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_MASKR, &fields->f_rs); + break; + case IQ2000_OPERAND_MLO16 : + errmsg = parse_mlo16 (cd, strp, IQ2000_OPERAND_MLO16, &fields->f_imm); + break; + case IQ2000_OPERAND_OFFSET : + { + bfd_vma value; + errmsg = cgen_parse_address (cd, strp, IQ2000_OPERAND_OFFSET, 0, NULL, & value); + fields->f_offset = value; + } + break; + case IQ2000_OPERAND_RD : + errmsg = cgen_parse_keyword (cd, strp, & iq2000_cgen_opval_gr_names, & fields->f_rd); + break; + case IQ2000_OPERAND_RD_RS : + errmsg = cgen_parse_keyword (cd, strp, & iq2000_cgen_opval_gr_names, & fields->f_rd_rs); + break; + case IQ2000_OPERAND_RD_RT : + errmsg = cgen_parse_keyword (cd, strp, & iq2000_cgen_opval_gr_names, & fields->f_rd_rt); + break; + case IQ2000_OPERAND_RS : + errmsg = cgen_parse_keyword (cd, strp, & iq2000_cgen_opval_gr_names, & fields->f_rs); + break; + case IQ2000_OPERAND_RT : + errmsg = cgen_parse_keyword (cd, strp, & iq2000_cgen_opval_gr_names, & fields->f_rt); + break; + case IQ2000_OPERAND_RT_RS : + errmsg = cgen_parse_keyword (cd, strp, & iq2000_cgen_opval_gr_names, & fields->f_rt_rs); + break; + case IQ2000_OPERAND_SHAMT : + errmsg = cgen_parse_unsigned_integer (cd, strp, IQ2000_OPERAND_SHAMT, &fields->f_shamt); + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while parsing.\n"), opindex); + abort (); + } + + return errmsg; +} + +cgen_parse_fn * const iq2000_cgen_parse_handlers[] = +{ + parse_insn_normal, +}; + +void +iq2000_cgen_init_asm (cd) + CGEN_CPU_DESC cd; +{ + iq2000_cgen_init_opcode_table (cd); + iq2000_cgen_init_ibld_table (cd); + cd->parse_handlers = & iq2000_cgen_parse_handlers[0]; + cd->parse_operand = iq2000_cgen_parse_operand; +#ifdef CGEN_ASM_INIT_HOOK +CGEN_ASM_INIT_HOOK +#endif +} + + + +/* Regex construction routine. + + This translates an opcode syntax string into a regex string, + by replacing any non-character syntax element (such as an + opcode) with the pattern '.*' + + It then compiles the regex and stores it in the opcode, for + later use by iq2000_cgen_assemble_insn + + Returns NULL for success, an error message for failure. */ + +char * +iq2000_cgen_build_insn_regex (insn) + CGEN_INSN *insn; +{ + CGEN_OPCODE *opc = (CGEN_OPCODE *) CGEN_INSN_OPCODE (insn); + const char *mnem = CGEN_INSN_MNEMONIC (insn); + char rxbuf[CGEN_MAX_RX_ELEMENTS]; + char *rx = rxbuf; + const CGEN_SYNTAX_CHAR_TYPE *syn; + int reg_err; + + syn = CGEN_SYNTAX_STRING (CGEN_OPCODE_SYNTAX (opc)); + + /* Mnemonics come first in the syntax string. */ + if (! CGEN_SYNTAX_MNEMONIC_P (* syn)) + return _("missing mnemonic in syntax string"); + ++syn; + + /* Generate a case sensitive regular expression that emulates case + insensitive matching in the "C" locale. We cannot generate a case + insensitive regular expression because in Turkish locales, 'i' and 'I' + are not equal modulo case conversion. */ + + /* Copy the literal mnemonic out of the insn. */ + for (; *mnem; mnem++) + { + char c = *mnem; + + if (ISALPHA (c)) + { + *rx++ = '['; + *rx++ = TOLOWER (c); + *rx++ = TOUPPER (c); + *rx++ = ']'; + } + else + *rx++ = c; + } + + /* Copy any remaining literals from the syntax string into the rx. */ + for(; * syn != 0 && rx <= rxbuf + (CGEN_MAX_RX_ELEMENTS - 7 - 4); ++syn) + { + if (CGEN_SYNTAX_CHAR_P (* syn)) + { + char c = CGEN_SYNTAX_CHAR (* syn); + + switch (c) + { + /* Escape any regex metacharacters in the syntax. */ + case '.': case '[': case '\\': + case '*': case '^': case '$': + +#ifdef CGEN_ESCAPE_EXTENDED_REGEX + case '?': case '{': case '}': + case '(': case ')': case '*': + case '|': case '+': case ']': +#endif + *rx++ = '\\'; + *rx++ = c; + break; + + default: + if (ISALPHA (c)) + { + *rx++ = '['; + *rx++ = TOLOWER (c); + *rx++ = TOUPPER (c); + *rx++ = ']'; + } + else + *rx++ = c; + break; + } + } + else + { + /* Replace non-syntax fields with globs. */ + *rx++ = '.'; + *rx++ = '*'; + } + } + + /* Trailing whitespace ok. */ + * rx++ = '['; + * rx++ = ' '; + * rx++ = '\t'; + * rx++ = ']'; + * rx++ = '*'; + + /* But anchor it after that. */ + * rx++ = '$'; + * rx = '\0'; + + CGEN_INSN_RX (insn) = xmalloc (sizeof (regex_t)); + reg_err = regcomp ((regex_t *) CGEN_INSN_RX (insn), rxbuf, REG_NOSUB); + + if (reg_err == 0) + return NULL; + else + { + static char msg[80]; + + regerror (reg_err, (regex_t *) CGEN_INSN_RX (insn), msg, 80); + regfree ((regex_t *) CGEN_INSN_RX (insn)); + free (CGEN_INSN_RX (insn)); + (CGEN_INSN_RX (insn)) = NULL; + return msg; + } +} + + +/* Default insn parser. + + The syntax string is scanned and operands are parsed and stored in FIELDS. + Relocs are queued as we go via other callbacks. + + ??? Note that this is currently an all-or-nothing parser. If we fail to + parse the instruction, we return 0 and the caller will start over from + the beginning. Backtracking will be necessary in parsing subexpressions, + but that can be handled there. Not handling backtracking here may get + expensive in the case of the m68k. Deal with later. + + Returns NULL for success, an error message for failure. */ + +static const char * +parse_insn_normal (cd, insn, strp, fields) + CGEN_CPU_DESC cd; + const CGEN_INSN *insn; + const char **strp; + CGEN_FIELDS *fields; +{ + /* ??? Runtime added insns not handled yet. */ + const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn); + const char *str = *strp; + const char *errmsg; + const char *p; + const CGEN_SYNTAX_CHAR_TYPE * syn; +#ifdef CGEN_MNEMONIC_OPERANDS + /* FIXME: wip */ + int past_opcode_p; +#endif + + /* For now we assume the mnemonic is first (there are no leading operands). + We can parse it without needing to set up operand parsing. + GAS's input scrubber will ensure mnemonics are lowercase, but we may + not be called from GAS. */ + p = CGEN_INSN_MNEMONIC (insn); + while (*p && TOLOWER (*p) == TOLOWER (*str)) + ++p, ++str; + + if (* p) + return _("unrecognized instruction"); + +#ifndef CGEN_MNEMONIC_OPERANDS + if (* str && ! ISSPACE (* str)) + return _("unrecognized instruction"); +#endif + + CGEN_INIT_PARSE (cd); + cgen_init_parse_operand (cd); +#ifdef CGEN_MNEMONIC_OPERANDS + past_opcode_p = 0; +#endif + + /* We don't check for (*str != '\0') here because we want to parse + any trailing fake arguments in the syntax string. */ + syn = CGEN_SYNTAX_STRING (syntax); + + /* Mnemonics come first for now, ensure valid string. */ + if (! CGEN_SYNTAX_MNEMONIC_P (* syn)) + abort (); + + ++syn; + + while (* syn != 0) + { + /* Non operand chars must match exactly. */ + if (CGEN_SYNTAX_CHAR_P (* syn)) + { + /* FIXME: While we allow for non-GAS callers above, we assume the + first char after the mnemonic part is a space. */ + /* FIXME: We also take inappropriate advantage of the fact that + GAS's input scrubber will remove extraneous blanks. */ + if (TOLOWER (*str) == TOLOWER (CGEN_SYNTAX_CHAR (* syn))) + { +#ifdef CGEN_MNEMONIC_OPERANDS + if (CGEN_SYNTAX_CHAR(* syn) == ' ') + past_opcode_p = 1; +#endif + ++ syn; + ++ str; + } + else if (*str) + { + /* Syntax char didn't match. Can't be this insn. */ + static char msg [80]; + + /* xgettext:c-format */ + sprintf (msg, _("syntax error (expected char `%c', found `%c')"), + CGEN_SYNTAX_CHAR(*syn), *str); + return msg; + } + else + { + /* Ran out of input. */ + static char msg [80]; + + /* xgettext:c-format */ + sprintf (msg, _("syntax error (expected char `%c', found end of instruction)"), + CGEN_SYNTAX_CHAR(*syn)); + return msg; + } + continue; + } + + /* We have an operand of some sort. */ + errmsg = cd->parse_operand (cd, CGEN_SYNTAX_FIELD (*syn), + &str, fields); + if (errmsg) + return errmsg; + + /* Done with this operand, continue with next one. */ + ++ syn; + } + + /* If we're at the end of the syntax string, we're done. */ + if (* syn == 0) + { + /* FIXME: For the moment we assume a valid `str' can only contain + blanks now. IE: We needn't try again with a longer version of + the insn and it is assumed that longer versions of insns appear + before shorter ones (eg: lsr r2,r3,1 vs lsr r2,r3). */ + while (ISSPACE (* str)) + ++ str; + + if (* str != '\0') + return _("junk at end of line"); /* FIXME: would like to include `str' */ + + return NULL; + } + + /* We couldn't parse it. */ + return _("unrecognized instruction"); +} + +/* Main entry point. + This routine is called for each instruction to be assembled. + STR points to the insn to be assembled. + We assume all necessary tables have been initialized. + The assembled instruction, less any fixups, is stored in BUF. + Remember that if CGEN_INT_INSN_P then BUF is an int and thus the value + still needs to be converted to target byte order, otherwise BUF is an array + of bytes in target byte order. + The result is a pointer to the insn's entry in the opcode table, + or NULL if an error occured (an error message will have already been + printed). + + Note that when processing (non-alias) macro-insns, + this function recurses. + + ??? It's possible to make this cpu-independent. + One would have to deal with a few minor things. + At this point in time doing so would be more of a curiosity than useful + [for example this file isn't _that_ big], but keeping the possibility in + mind helps keep the design clean. */ + +const CGEN_INSN * +iq2000_cgen_assemble_insn (cd, str, fields, buf, errmsg) + CGEN_CPU_DESC cd; + const char *str; + CGEN_FIELDS *fields; + CGEN_INSN_BYTES_PTR buf; + char **errmsg; +{ + const char *start; + CGEN_INSN_LIST *ilist; + const char *parse_errmsg = NULL; + const char *insert_errmsg = NULL; + int recognized_mnemonic = 0; + + /* Skip leading white space. */ + while (ISSPACE (* str)) + ++ str; + + /* The instructions are stored in hashed lists. + Get the first in the list. */ + ilist = CGEN_ASM_LOOKUP_INSN (cd, str); + + /* Keep looking until we find a match. */ + start = str; + for ( ; ilist != NULL ; ilist = CGEN_ASM_NEXT_INSN (ilist)) + { + const CGEN_INSN *insn = ilist->insn; + recognized_mnemonic = 1; + +#ifdef CGEN_VALIDATE_INSN_SUPPORTED + /* Not usually needed as unsupported opcodes + shouldn't be in the hash lists. */ + /* Is this insn supported by the selected cpu? */ + if (! iq2000_cgen_insn_supported (cd, insn)) + continue; +#endif + /* If the RELAX attribute is set, this is an insn that shouldn't be + chosen immediately. Instead, it is used during assembler/linker + relaxation if possible. */ + if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_RELAX) != 0) + continue; + + str = start; + + /* Skip this insn if str doesn't look right lexically. */ + if (CGEN_INSN_RX (insn) != NULL && + regexec ((regex_t *) CGEN_INSN_RX (insn), str, 0, NULL, 0) == REG_NOMATCH) + continue; + + /* Allow parse/insert handlers to obtain length of insn. */ + CGEN_FIELDS_BITSIZE (fields) = CGEN_INSN_BITSIZE (insn); + + parse_errmsg = CGEN_PARSE_FN (cd, insn) (cd, insn, & str, fields); + if (parse_errmsg != NULL) + continue; + + /* ??? 0 is passed for `pc'. */ + insert_errmsg = CGEN_INSERT_FN (cd, insn) (cd, insn, fields, buf, + (bfd_vma) 0); + if (insert_errmsg != NULL) + continue; + + /* It is up to the caller to actually output the insn and any + queued relocs. */ + return insn; + } + + { + static char errbuf[150]; +#ifdef CGEN_VERBOSE_ASSEMBLER_ERRORS + const char *tmp_errmsg; + + /* If requesting verbose error messages, use insert_errmsg. + Failing that, use parse_errmsg. */ + tmp_errmsg = (insert_errmsg ? insert_errmsg : + parse_errmsg ? parse_errmsg : + recognized_mnemonic ? + _("unrecognized form of instruction") : + _("unrecognized instruction")); + + if (strlen (start) > 50) + /* xgettext:c-format */ + sprintf (errbuf, "%s `%.50s...'", tmp_errmsg, start); + else + /* xgettext:c-format */ + sprintf (errbuf, "%s `%.50s'", tmp_errmsg, start); +#else + if (strlen (start) > 50) + /* xgettext:c-format */ + sprintf (errbuf, _("bad instruction `%.50s...'"), start); + else + /* xgettext:c-format */ + sprintf (errbuf, _("bad instruction `%.50s'"), start); +#endif + + *errmsg = errbuf; + return NULL; + } +} + +#if 0 /* This calls back to GAS which we can't do without care. */ + +/* Record each member of OPVALS in the assembler's symbol table. + This lets GAS parse registers for us. + ??? Interesting idea but not currently used. */ + +/* Record each member of OPVALS in the assembler's symbol table. + FIXME: Not currently used. */ + +void +iq2000_cgen_asm_hash_keywords (cd, opvals) + CGEN_CPU_DESC cd; + CGEN_KEYWORD *opvals; +{ + CGEN_KEYWORD_SEARCH search = cgen_keyword_search_init (opvals, NULL); + const CGEN_KEYWORD_ENTRY * ke; + + while ((ke = cgen_keyword_search_next (& search)) != NULL) + { +#if 0 /* Unnecessary, should be done in the search routine. */ + if (! iq2000_cgen_opval_supported (ke)) + continue; +#endif + cgen_asm_record_register (cd, ke->name, ke->value); + } +} + +#endif /* 0 */ diff -uprN binutils-2.13.90.0.16/opcodes/iq2000-desc.c binutils-2.13.90.0.18/opcodes/iq2000-desc.c --- binutils-2.13.90.0.16/opcodes/iq2000-desc.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/iq2000-desc.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,2222 @@ +/* CPU data for iq2000. + +THIS FILE IS MACHINE GENERATED WITH CGEN. + +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +This file is part of the GNU Binutils and/or GDB, the GNU debugger. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "sysdep.h" +#include +#include +#include +#include "ansidecl.h" +#include "bfd.h" +#include "symcat.h" +#include "iq2000-desc.h" +#include "iq2000-opc.h" +#include "opintl.h" +#include "libiberty.h" + +/* Attributes. */ + +static const CGEN_ATTR_ENTRY bool_attr[] = +{ + { "#f", 0 }, + { "#t", 1 }, + { 0, 0 } +}; + +static const CGEN_ATTR_ENTRY MACH_attr[] = +{ + { "base", MACH_BASE }, + { "iq2000", MACH_IQ2000 }, + { "iq10", MACH_IQ10 }, + { "max", MACH_MAX }, + { 0, 0 } +}; + +static const CGEN_ATTR_ENTRY ISA_attr[] = +{ + { "iq2000", ISA_IQ2000 }, + { "max", ISA_MAX }, + { 0, 0 } +}; + +const CGEN_ATTR_TABLE iq2000_cgen_ifield_attr_table[] = +{ + { "MACH", & MACH_attr[0], & MACH_attr[0] }, + { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, + { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] }, + { "ABS-ADDR", &bool_attr[0], &bool_attr[0] }, + { "RESERVED", &bool_attr[0], &bool_attr[0] }, + { "SIGN-OPT", &bool_attr[0], &bool_attr[0] }, + { "SIGNED", &bool_attr[0], &bool_attr[0] }, + { 0, 0, 0 } +}; + +const CGEN_ATTR_TABLE iq2000_cgen_hardware_attr_table[] = +{ + { "MACH", & MACH_attr[0], & MACH_attr[0] }, + { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, + { "CACHE-ADDR", &bool_attr[0], &bool_attr[0] }, + { "PC", &bool_attr[0], &bool_attr[0] }, + { "PROFILE", &bool_attr[0], &bool_attr[0] }, + { 0, 0, 0 } +}; + +const CGEN_ATTR_TABLE iq2000_cgen_operand_attr_table[] = +{ + { "MACH", & MACH_attr[0], & MACH_attr[0] }, + { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, + { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] }, + { "ABS-ADDR", &bool_attr[0], &bool_attr[0] }, + { "SIGN-OPT", &bool_attr[0], &bool_attr[0] }, + { "SIGNED", &bool_attr[0], &bool_attr[0] }, + { "NEGATIVE", &bool_attr[0], &bool_attr[0] }, + { "RELAX", &bool_attr[0], &bool_attr[0] }, + { "SEM-ONLY", &bool_attr[0], &bool_attr[0] }, + { 0, 0, 0 } +}; + +const CGEN_ATTR_TABLE iq2000_cgen_insn_attr_table[] = +{ + { "MACH", & MACH_attr[0], & MACH_attr[0] }, + { "ALIAS", &bool_attr[0], &bool_attr[0] }, + { "VIRTUAL", &bool_attr[0], &bool_attr[0] }, + { "UNCOND-CTI", &bool_attr[0], &bool_attr[0] }, + { "COND-CTI", &bool_attr[0], &bool_attr[0] }, + { "SKIP-CTI", &bool_attr[0], &bool_attr[0] }, + { "DELAY-SLOT", &bool_attr[0], &bool_attr[0] }, + { "RELAXABLE", &bool_attr[0], &bool_attr[0] }, + { "RELAX", &bool_attr[0], &bool_attr[0] }, + { "NO-DIS", &bool_attr[0], &bool_attr[0] }, + { "PBB", &bool_attr[0], &bool_attr[0] }, + { "YIELD-INSN", &bool_attr[0], &bool_attr[0] }, + { "LOAD-DELAY", &bool_attr[0], &bool_attr[0] }, + { "EVEN-REG-NUM", &bool_attr[0], &bool_attr[0] }, + { "UNSUPPORTED", &bool_attr[0], &bool_attr[0] }, + { "USES-RD", &bool_attr[0], &bool_attr[0] }, + { "USES-RS", &bool_attr[0], &bool_attr[0] }, + { "USES-RT", &bool_attr[0], &bool_attr[0] }, + { "USES-R31", &bool_attr[0], &bool_attr[0] }, + { 0, 0, 0 } +}; + +/* Instruction set variants. */ + +static const CGEN_ISA iq2000_cgen_isa_table[] = { + { "iq2000", 32, 32, 32, 32 }, + { 0, 0, 0, 0, 0 } +}; + +/* Machine variants. */ + +static const CGEN_MACH iq2000_cgen_mach_table[] = { + { "iq2000", "iq2000", MACH_IQ2000, 0 }, + { "iq10", "iq10", MACH_IQ10, 0 }, + { 0, 0, 0, 0 } +}; + +static CGEN_KEYWORD_ENTRY iq2000_cgen_opval_gr_names_entries[] = +{ + { "r0", 0, {0, {0}}, 0, 0 }, + { "%0", 0, {0, {0}}, 0, 0 }, + { "r1", 1, {0, {0}}, 0, 0 }, + { "%1", 1, {0, {0}}, 0, 0 }, + { "r2", 2, {0, {0}}, 0, 0 }, + { "%2", 2, {0, {0}}, 0, 0 }, + { "r3", 3, {0, {0}}, 0, 0 }, + { "%3", 3, {0, {0}}, 0, 0 }, + { "r4", 4, {0, {0}}, 0, 0 }, + { "%4", 4, {0, {0}}, 0, 0 }, + { "r5", 5, {0, {0}}, 0, 0 }, + { "%5", 5, {0, {0}}, 0, 0 }, + { "r6", 6, {0, {0}}, 0, 0 }, + { "%6", 6, {0, {0}}, 0, 0 }, + { "r7", 7, {0, {0}}, 0, 0 }, + { "%7", 7, {0, {0}}, 0, 0 }, + { "r8", 8, {0, {0}}, 0, 0 }, + { "%8", 8, {0, {0}}, 0, 0 }, + { "r9", 9, {0, {0}}, 0, 0 }, + { "%9", 9, {0, {0}}, 0, 0 }, + { "r10", 10, {0, {0}}, 0, 0 }, + { "%10", 10, {0, {0}}, 0, 0 }, + { "r11", 11, {0, {0}}, 0, 0 }, + { "%11", 11, {0, {0}}, 0, 0 }, + { "r12", 12, {0, {0}}, 0, 0 }, + { "%12", 12, {0, {0}}, 0, 0 }, + { "r13", 13, {0, {0}}, 0, 0 }, + { "%13", 13, {0, {0}}, 0, 0 }, + { "r14", 14, {0, {0}}, 0, 0 }, + { "%14", 14, {0, {0}}, 0, 0 }, + { "r15", 15, {0, {0}}, 0, 0 }, + { "%15", 15, {0, {0}}, 0, 0 }, + { "r16", 16, {0, {0}}, 0, 0 }, + { "%16", 16, {0, {0}}, 0, 0 }, + { "r17", 17, {0, {0}}, 0, 0 }, + { "%17", 17, {0, {0}}, 0, 0 }, + { "r18", 18, {0, {0}}, 0, 0 }, + { "%18", 18, {0, {0}}, 0, 0 }, + { "r19", 19, {0, {0}}, 0, 0 }, + { "%19", 19, {0, {0}}, 0, 0 }, + { "r20", 20, {0, {0}}, 0, 0 }, + { "%20", 20, {0, {0}}, 0, 0 }, + { "r21", 21, {0, {0}}, 0, 0 }, + { "%21", 21, {0, {0}}, 0, 0 }, + { "r22", 22, {0, {0}}, 0, 0 }, + { "%22", 22, {0, {0}}, 0, 0 }, + { "r23", 23, {0, {0}}, 0, 0 }, + { "%23", 23, {0, {0}}, 0, 0 }, + { "r24", 24, {0, {0}}, 0, 0 }, + { "%24", 24, {0, {0}}, 0, 0 }, + { "r25", 25, {0, {0}}, 0, 0 }, + { "%25", 25, {0, {0}}, 0, 0 }, + { "r26", 26, {0, {0}}, 0, 0 }, + { "%26", 26, {0, {0}}, 0, 0 }, + { "r27", 27, {0, {0}}, 0, 0 }, + { "%27", 27, {0, {0}}, 0, 0 }, + { "r28", 28, {0, {0}}, 0, 0 }, + { "%28", 28, {0, {0}}, 0, 0 }, + { "r29", 29, {0, {0}}, 0, 0 }, + { "%29", 29, {0, {0}}, 0, 0 }, + { "r30", 30, {0, {0}}, 0, 0 }, + { "%30", 30, {0, {0}}, 0, 0 }, + { "r31", 31, {0, {0}}, 0, 0 }, + { "%31", 31, {0, {0}}, 0, 0 } +}; + +CGEN_KEYWORD iq2000_cgen_opval_gr_names = +{ + & iq2000_cgen_opval_gr_names_entries[0], + 64, + 0, 0, 0, 0, "" +}; + + +/* The hardware table. */ + +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define A(a) (1 << CGEN_HW_##a) +#else +#define A(a) (1 << CGEN_HW_/**/a) +#endif + +const CGEN_HW_ENTRY iq2000_cgen_hw_table[] = +{ + { "h-memory", HW_H_MEMORY, CGEN_ASM_NONE, 0, { 0, { (1<name) + { + if (strcmp (name, table->bfd_name) == 0) + return table; + ++table; + } + abort (); +} + +/* Subroutine of iq2000_cgen_cpu_open to build the hardware table. */ + +static void +build_hw_table (cd) + CGEN_CPU_TABLE *cd; +{ + int i; + int machs = cd->machs; + const CGEN_HW_ENTRY *init = & iq2000_cgen_hw_table[0]; + /* MAX_HW is only an upper bound on the number of selected entries. + However each entry is indexed by it's enum so there can be holes in + the table. */ + const CGEN_HW_ENTRY **selected = + (const CGEN_HW_ENTRY **) xmalloc (MAX_HW * sizeof (CGEN_HW_ENTRY *)); + + cd->hw_table.init_entries = init; + cd->hw_table.entry_size = sizeof (CGEN_HW_ENTRY); + memset (selected, 0, MAX_HW * sizeof (CGEN_HW_ENTRY *)); + /* ??? For now we just use machs to determine which ones we want. */ + for (i = 0; init[i].name != NULL; ++i) + if (CGEN_HW_ATTR_VALUE (&init[i], CGEN_HW_MACH) + & machs) + selected[init[i].type] = &init[i]; + cd->hw_table.entries = selected; + cd->hw_table.num_entries = MAX_HW; +} + +/* Subroutine of iq2000_cgen_cpu_open to build the hardware table. */ + +static void +build_ifield_table (cd) + CGEN_CPU_TABLE *cd; +{ + cd->ifld_table = & iq2000_cgen_ifld_table[0]; +} + +/* Subroutine of iq2000_cgen_cpu_open to build the hardware table. */ + +static void +build_operand_table (cd) + CGEN_CPU_TABLE *cd; +{ + int i; + int machs = cd->machs; + const CGEN_OPERAND *init = & iq2000_cgen_operand_table[0]; + /* MAX_OPERANDS is only an upper bound on the number of selected entries. + However each entry is indexed by it's enum so there can be holes in + the table. */ + const CGEN_OPERAND **selected = + (const CGEN_OPERAND **) xmalloc (MAX_OPERANDS * sizeof (CGEN_OPERAND *)); + + cd->operand_table.init_entries = init; + cd->operand_table.entry_size = sizeof (CGEN_OPERAND); + memset (selected, 0, MAX_OPERANDS * sizeof (CGEN_OPERAND *)); + /* ??? For now we just use mach to determine which ones we want. */ + for (i = 0; init[i].name != NULL; ++i) + if (CGEN_OPERAND_ATTR_VALUE (&init[i], CGEN_OPERAND_MACH) + & machs) + selected[init[i].type] = &init[i]; + cd->operand_table.entries = selected; + cd->operand_table.num_entries = MAX_OPERANDS; +} + +/* Subroutine of iq2000_cgen_cpu_open to build the hardware table. + ??? This could leave out insns not supported by the specified mach/isa, + but that would cause errors like "foo only supported by bar" to become + "unknown insn", so for now we include all insns and require the app to + do the checking later. + ??? On the other hand, parsing of such insns may require their hardware or + operand elements to be in the table [which they mightn't be]. */ + +static void +build_insn_table (cd) + CGEN_CPU_TABLE *cd; +{ + int i; + const CGEN_IBASE *ib = & iq2000_cgen_insn_table[0]; + CGEN_INSN *insns = (CGEN_INSN *) xmalloc (MAX_INSNS * sizeof (CGEN_INSN)); + + memset (insns, 0, MAX_INSNS * sizeof (CGEN_INSN)); + for (i = 0; i < MAX_INSNS; ++i) + insns[i].base = &ib[i]; + cd->insn_table.init_entries = insns; + cd->insn_table.entry_size = sizeof (CGEN_IBASE); + cd->insn_table.num_init_entries = MAX_INSNS; +} + +/* Subroutine of iq2000_cgen_cpu_open to rebuild the tables. */ + +static void +iq2000_cgen_rebuild_tables (cd) + CGEN_CPU_TABLE *cd; +{ + int i; + unsigned int isas = cd->isas; + unsigned int machs = cd->machs; + + cd->int_insn_p = CGEN_INT_INSN_P; + + /* Data derived from the isa spec. */ +#define UNSET (CGEN_SIZE_UNKNOWN + 1) + cd->default_insn_bitsize = UNSET; + cd->base_insn_bitsize = UNSET; + cd->min_insn_bitsize = 65535; /* some ridiculously big number */ + cd->max_insn_bitsize = 0; + for (i = 0; i < MAX_ISAS; ++i) + if (((1 << i) & isas) != 0) + { + const CGEN_ISA *isa = & iq2000_cgen_isa_table[i]; + + /* Default insn sizes of all selected isas must be + equal or we set the result to 0, meaning "unknown". */ + if (cd->default_insn_bitsize == UNSET) + cd->default_insn_bitsize = isa->default_insn_bitsize; + else if (isa->default_insn_bitsize == cd->default_insn_bitsize) + ; /* this is ok */ + else + cd->default_insn_bitsize = CGEN_SIZE_UNKNOWN; + + /* Base insn sizes of all selected isas must be equal + or we set the result to 0, meaning "unknown". */ + if (cd->base_insn_bitsize == UNSET) + cd->base_insn_bitsize = isa->base_insn_bitsize; + else if (isa->base_insn_bitsize == cd->base_insn_bitsize) + ; /* this is ok */ + else + cd->base_insn_bitsize = CGEN_SIZE_UNKNOWN; + + /* Set min,max insn sizes. */ + if (isa->min_insn_bitsize < cd->min_insn_bitsize) + cd->min_insn_bitsize = isa->min_insn_bitsize; + if (isa->max_insn_bitsize > cd->max_insn_bitsize) + cd->max_insn_bitsize = isa->max_insn_bitsize; + } + + /* Data derived from the mach spec. */ + for (i = 0; i < MAX_MACHS; ++i) + if (((1 << i) & machs) != 0) + { + const CGEN_MACH *mach = & iq2000_cgen_mach_table[i]; + + if (mach->insn_chunk_bitsize != 0) + { + if (cd->insn_chunk_bitsize != 0 && cd->insn_chunk_bitsize != mach->insn_chunk_bitsize) + { + fprintf (stderr, "iq2000_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'\n", + cd->insn_chunk_bitsize, mach->insn_chunk_bitsize); + abort (); + } + + cd->insn_chunk_bitsize = mach->insn_chunk_bitsize; + } + } + + /* Determine which hw elements are used by MACH. */ + build_hw_table (cd); + + /* Build the ifield table. */ + build_ifield_table (cd); + + /* Determine which operands are used by MACH/ISA. */ + build_operand_table (cd); + + /* Build the instruction table. */ + build_insn_table (cd); +} + +/* Initialize a cpu table and return a descriptor. + It's much like opening a file, and must be the first function called. + The arguments are a set of (type/value) pairs, terminated with + CGEN_CPU_OPEN_END. + + Currently supported values: + CGEN_CPU_OPEN_ISAS: bitmap of values in enum isa_attr + CGEN_CPU_OPEN_MACHS: bitmap of values in enum mach_attr + CGEN_CPU_OPEN_BFDMACH: specify 1 mach using bfd name + CGEN_CPU_OPEN_ENDIAN: specify endian choice + CGEN_CPU_OPEN_END: terminates arguments + + ??? Simultaneous multiple isas might not make sense, but it's not (yet) + precluded. + + ??? We only support ISO C stdargs here, not K&R. + Laziness, plus experiment to see if anything requires K&R - eventually + K&R will no longer be supported - e.g. GDB is currently trying this. */ + +CGEN_CPU_DESC +iq2000_cgen_cpu_open (enum cgen_cpu_open_arg arg_type, ...) +{ + CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE)); + static int init_p; + unsigned int isas = 0; /* 0 = "unspecified" */ + unsigned int machs = 0; /* 0 = "unspecified" */ + enum cgen_endian endian = CGEN_ENDIAN_UNKNOWN; + va_list ap; + + if (! init_p) + { + init_tables (); + init_p = 1; + } + + memset (cd, 0, sizeof (*cd)); + + va_start (ap, arg_type); + while (arg_type != CGEN_CPU_OPEN_END) + { + switch (arg_type) + { + case CGEN_CPU_OPEN_ISAS : + isas = va_arg (ap, unsigned int); + break; + case CGEN_CPU_OPEN_MACHS : + machs = va_arg (ap, unsigned int); + break; + case CGEN_CPU_OPEN_BFDMACH : + { + const char *name = va_arg (ap, const char *); + const CGEN_MACH *mach = + lookup_mach_via_bfd_name (iq2000_cgen_mach_table, name); + + machs |= 1 << mach->num; + break; + } + case CGEN_CPU_OPEN_ENDIAN : + endian = va_arg (ap, enum cgen_endian); + break; + default : + fprintf (stderr, "iq2000_cgen_cpu_open: unsupported argument `%d'\n", + arg_type); + abort (); /* ??? return NULL? */ + } + arg_type = va_arg (ap, enum cgen_cpu_open_arg); + } + va_end (ap); + + /* mach unspecified means "all" */ + if (machs == 0) + machs = (1 << MAX_MACHS) - 1; + /* base mach is always selected */ + machs |= 1; + /* isa unspecified means "all" */ + if (isas == 0) + isas = (1 << MAX_ISAS) - 1; + if (endian == CGEN_ENDIAN_UNKNOWN) + { + /* ??? If target has only one, could have a default. */ + fprintf (stderr, "iq2000_cgen_cpu_open: no endianness specified\n"); + abort (); + } + + cd->isas = isas; + cd->machs = machs; + cd->endian = endian; + /* FIXME: for the sparc case we can determine insn-endianness statically. + The worry here is where both data and insn endian can be independently + chosen, in which case this function will need another argument. + Actually, will want to allow for more arguments in the future anyway. */ + cd->insn_endian = endian; + + /* Table (re)builder. */ + cd->rebuild_tables = iq2000_cgen_rebuild_tables; + iq2000_cgen_rebuild_tables (cd); + + /* Default to not allowing signed overflow. */ + cd->signed_overflow_ok_p = 0; + + return (CGEN_CPU_DESC) cd; +} + +/* Cover fn to iq2000_cgen_cpu_open to handle the simple case of 1 isa, 1 mach. + MACH_NAME is the bfd name of the mach. */ + +CGEN_CPU_DESC +iq2000_cgen_cpu_open_1 (mach_name, endian) + const char *mach_name; + enum cgen_endian endian; +{ + return iq2000_cgen_cpu_open (CGEN_CPU_OPEN_BFDMACH, mach_name, + CGEN_CPU_OPEN_ENDIAN, endian, + CGEN_CPU_OPEN_END); +} + +/* Close a cpu table. + ??? This can live in a machine independent file, but there's currently + no place to put this file (there's no libcgen). libopcodes is the wrong + place as some simulator ports use this but they don't use libopcodes. */ + +void +iq2000_cgen_cpu_close (cd) + CGEN_CPU_DESC cd; +{ + unsigned int i; + CGEN_INSN *insns; + + if (cd->macro_insn_table.init_entries) + { + insns = cd->macro_insn_table.init_entries; + for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns) + { + if (CGEN_INSN_RX ((insns))) + regfree(CGEN_INSN_RX (insns)); + } + } + + if (cd->insn_table.init_entries) + { + insns = cd->insn_table.init_entries; + for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) + { + if (CGEN_INSN_RX (insns)) + regfree(CGEN_INSN_RX (insns)); + } + } + + + + if (cd->macro_insn_table.init_entries) + free ((CGEN_INSN *) cd->macro_insn_table.init_entries); + + if (cd->insn_table.init_entries) + free ((CGEN_INSN *) cd->insn_table.init_entries); + + if (cd->hw_table.entries) + free ((CGEN_HW_ENTRY *) cd->hw_table.entries); + + if (cd->operand_table.entries) + free ((CGEN_HW_ENTRY *) cd->operand_table.entries); + + free (cd); +} + diff -uprN binutils-2.13.90.0.16/opcodes/iq2000-desc.h binutils-2.13.90.0.18/opcodes/iq2000-desc.h --- binutils-2.13.90.0.16/opcodes/iq2000-desc.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/iq2000-desc.h Tue Jan 21 10:21:34 2003 @@ -0,0 +1,302 @@ +/* CPU data header for iq2000. + +THIS FILE IS MACHINE GENERATED WITH CGEN. + +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +This file is part of the GNU Binutils and/or GDB, the GNU debugger. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef IQ2000_CPU_H +#define IQ2000_CPU_H + +#define CGEN_ARCH iq2000 + +/* Given symbol S, return iq2000_cgen_. */ +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define CGEN_SYM(s) iq2000##_cgen_##s +#else +#define CGEN_SYM(s) iq2000/**/_cgen_/**/s +#endif + + +/* Selected cpu families. */ +#define HAVE_CPU_IQ2000BF +#define HAVE_CPU_IQ10BF + +#define CGEN_INSN_LSB0_P 1 + +/* Minimum size of any insn (in bytes). */ +#define CGEN_MIN_INSN_SIZE 4 + +/* Maximum size of any insn (in bytes). */ +#define CGEN_MAX_INSN_SIZE 4 + +#define CGEN_INT_INSN_P 1 + +/* Maximum number of syntax elements in an instruction. */ +#define CGEN_ACTUAL_MAX_SYNTAX_ELEMENTS 19 + +/* CGEN_MNEMONIC_OPERANDS is defined if mnemonics have operands. + e.g. In "b,a foo" the ",a" is an operand. If mnemonics have operands + we can't hash on everything up to the space. */ +#define CGEN_MNEMONIC_OPERANDS + +/* Maximum number of fields in an instruction. */ +#define CGEN_ACTUAL_MAX_IFMT_OPERANDS 8 + +/* Enums. */ + +/* Enum declaration for . */ +typedef enum gr_names { + H_GR_R0 = 0, H_GR__0 = 0, H_GR_R1 = 1, H_GR__1 = 1 + , H_GR_R2 = 2, H_GR__2 = 2, H_GR_R3 = 3, H_GR__3 = 3 + , H_GR_R4 = 4, H_GR__4 = 4, H_GR_R5 = 5, H_GR__5 = 5 + , H_GR_R6 = 6, H_GR__6 = 6, H_GR_R7 = 7, H_GR__7 = 7 + , H_GR_R8 = 8, H_GR__8 = 8, H_GR_R9 = 9, H_GR__9 = 9 + , H_GR_R10 = 10, H_GR__10 = 10, H_GR_R11 = 11, H_GR__11 = 11 + , H_GR_R12 = 12, H_GR__12 = 12, H_GR_R13 = 13, H_GR__13 = 13 + , H_GR_R14 = 14, H_GR__14 = 14, H_GR_R15 = 15, H_GR__15 = 15 + , H_GR_R16 = 16, H_GR__16 = 16, H_GR_R17 = 17, H_GR__17 = 17 + , H_GR_R18 = 18, H_GR__18 = 18, H_GR_R19 = 19, H_GR__19 = 19 + , H_GR_R20 = 20, H_GR__20 = 20, H_GR_R21 = 21, H_GR__21 = 21 + , H_GR_R22 = 22, H_GR__22 = 22, H_GR_R23 = 23, H_GR__23 = 23 + , H_GR_R24 = 24, H_GR__24 = 24, H_GR_R25 = 25, H_GR__25 = 25 + , H_GR_R26 = 26, H_GR__26 = 26, H_GR_R27 = 27, H_GR__27 = 27 + , H_GR_R28 = 28, H_GR__28 = 28, H_GR_R29 = 29, H_GR__29 = 29 + , H_GR_R30 = 30, H_GR__30 = 30, H_GR_R31 = 31, H_GR__31 = 31 +} GR_NAMES; + +/* Enum declaration for primary opcodes. */ +typedef enum opcodes { + OP_SPECIAL = 0, OP_REGIMM = 1, OP_J = 2, OP_JAL = 3 + , OP_BEQ = 4, OP_BNE = 5, OP_BLEZ = 6, OP_BGTZ = 7 + , OP_ADDI = 8, OP_ADDIU = 9, OP_SLTI = 10, OP_SLTIU = 11 + , OP_ANDI = 12, OP_ORI = 13, OP_XORI = 14, OP_LUI = 15 + , OP_COP0 = 16, OP_COP1 = 17, OP_COP2 = 18, OP_COP3 = 19 + , OP_BEQL = 20, OP_BNEL = 21, OP_BLEZL = 22, OP_BGTZL = 23 + , OP_BMB0 = 24, OP_BMB1 = 25, OP_BMB2 = 26, OP_BMB3 = 27 + , OP_BBI = 28, OP_BBV = 29, OP_BBIN = 30, OP_BBVN = 31 + , OP_LB = 32, OP_LH = 33, OP_LW = 35, OP_LBU = 36 + , OP_LHU = 37, OP_RAM = 39, OP_SB = 40, OP_SH = 41 + , OP_SW = 43, OP_ANDOI = 44, OP_BMB = 45, OP_ORUI = 47 + , OP_LDW = 48, OP_SDW = 56, OP_ANDOUI = 63 +} OPCODES; + +/* Enum declaration for iq10-only primary opcodes. */ +typedef enum q10_opcodes { + OP10_BMB = 6, OP10_ORUI = 15, OP10_BMBL = 22, OP10_ANDOUI = 47 + , OP10_BBIL = 60, OP10_BBVL = 61, OP10_BBINL = 62, OP10_BBVNL = 63 +} Q10_OPCODES; + +/* Enum declaration for branch sub-opcodes. */ +typedef enum regimm_functions { + FUNC_BLTZ = 0, FUNC_BGEZ = 1, FUNC_BLTZL = 2, FUNC_BGEZL = 3 + , FUNC_BLEZ = 4, FUNC_BGTZ = 5, FUNC_BLEZL = 6, FUNC_BGTZL = 7 + , FUNC_BRI = 8, FUNC_BRV = 9, FUNC_BCTX = 12, FUNC_BLTZAL = 16 + , FUNC_BGEZAL = 17, FUNC_BLTZALL = 18, FUNC_BGEZALL = 19, FUNC_BLEZAL = 20 + , FUNC_BGTZAL = 21, FUNC_BLEZALL = 22, FUNC_BGTZALL = 23 +} REGIMM_FUNCTIONS; + +/* Enum declaration for function sub-opcodes. */ +typedef enum functions { + FUNC_SLL = 0, FUNC_SLMV = 1, FUNC_SRL = 2, FUNC_SRA = 3 + , FUNC_SLLV = 4, FUNC_SRMV = 5, FUNC_SRLV = 6, FUNC_SRAV = 7 + , FUNC_JR = 8, FUNC_JALR = 9, FUNC_JCR = 10, FUNC_SYSCALL = 12 + , FUNC_BREAK = 13, FUNC_SLEEP = 14, FUNC_ADD = 32, FUNC_ADDU = 33 + , FUNC_SUB = 34, FUNC_SUBU = 35, FUNC_AND = 36, FUNC_OR = 37 + , FUNC_XOR = 38, FUNC_NOR = 39, FUNC_ADO16 = 41, FUNC_SLT = 42 + , FUNC_SLTU = 43, FUNC_MRGB = 45 +} FUNCTIONS; + +/* Enum declaration for iq10-only special function sub-opcodes. */ +typedef enum q10s_functions { + FUNC10_YIELD = 14, FUNC10_CNT1S = 46 +} Q10S_FUNCTIONS; + +/* Enum declaration for iq10 function sub-opcodes. */ +typedef enum cop_functions { + FUNC10_CFC = 0, FUNC10_LOCK = 1, FUNC10_CTC = 2, FUNC10_UNLK = 3 + , FUNC10_SWRD = 4, FUNC10_SWRDL = 5, FUNC10_SWWR = 6, FUNC10_SWWRU = 7 + , FUNC10_RBA = 8, FUNC10_RBAL = 9, FUNC10_RBAR = 10, FUNC10_DWRD = 12 + , FUNC10_DWRDL = 13, FUNC10_WBA = 16, FUNC10_WBAU = 17, FUNC10_WBAC = 18 + , FUNC10_CRC32 = 20, FUNC10_CRC32B = 21, FUNC10_MCID = 32, FUNC10_DBD = 33 + , FUNC10_DBA = 34, FUNC10_DPWT = 35, FUNC10_AVAIL = 36, FUNC10_FREE = 37 + , FUNC10_CHKHDR = 38, FUNC10_TSTOD = 39, FUNC10_PKRLA = 40, FUNC10_PKRLAU = 41 + , FUNC10_PKRLAH = 42, FUNC10_PKRLAC = 43, FUNC10_CMPHDR = 44, FUNC10_CM64RS = 0 + , FUNC10_CM64RD = 1, FUNC10_CM64RI = 4, FUNC10_CM64CLR = 5, FUNC10_CM64SS = 8 + , FUNC10_CM64SD = 9, FUNC10_CM64SI = 12, FUNC10_CM64RA = 16, FUNC10_CM64RIA2 = 20 + , FUNC10_CM128RIA2 = 21, FUNC10_CM64SA = 24, FUNC10_CM64SIA2 = 28, FUNC10_CM128SIA2 = 29 + , FUNC10_CM32RS = 32, FUNC10_CM32RD = 33, FUNC10_CM32XOR = 34, FUNC10_CM32ANDN = 35 + , FUNC10_CM32RI = 36, FUNC10_CM128VSA = 38, FUNC10_CM32SS = 40, FUNC10_CM32SD = 41 + , FUNC10_CM32OR = 42, FUNC10_CM32AND = 43, FUNC10_CM32SI = 44, FUNC10_CM32RA = 48 + , FUNC10_CM32SA = 56 +} COP_FUNCTIONS; + +/* Enum declaration for iq10 function sub-opcodes. */ +typedef enum cop_cm128_4functions { + FUNC10_CM128RIA3 = 4, FUNC10_CM128SIA3 = 6 +} COP_CM128_4FUNCTIONS; + +/* Enum declaration for iq10 function sub-opcodes. */ +typedef enum cop_cm128_3functions { + FUNC10_CM128RIA4 = 6, FUNC10_CM128SIA4 = 7 +} COP_CM128_3FUNCTIONS; + +/* Enum declaration for iq10 coprocessor sub-opcodes. */ +typedef enum cop2_functions { + FUNC10_PKRLI = 0, FUNC10_PKRLIU = 1, FUNC10_PKRLIH = 2, FUNC10_PKRLIC = 3 + , FUNC10_RBIR = 1, FUNC10_RBI = 2, FUNC10_RBIL = 3, FUNC10_WBIC = 5 + , FUNC10_WBI = 6, FUNC10_WBIU = 7 +} COP2_FUNCTIONS; + +/* Enum declaration for iq10 coprocessor cam sub-opcodes. */ +typedef enum cop3_cam_functions { + FUNC10_CAM36 = 16, FUNC10_CAM72 = 17, FUNC10_CAM144 = 18, FUNC10_CAM288 = 19 +} COP3_CAM_FUNCTIONS; + +/* Attributes. */ + +/* Enum declaration for machine type selection. */ +typedef enum mach_attr { + MACH_BASE, MACH_IQ2000, MACH_IQ10, MACH_MAX +} MACH_ATTR; + +/* Enum declaration for instruction set selection. */ +typedef enum isa_attr { + ISA_IQ2000, ISA_MAX +} ISA_ATTR; + +/* Number of architecture variants. */ +#define MAX_ISAS 1 +#define MAX_MACHS ((int) MACH_MAX) + +/* Ifield support. */ + +extern const struct cgen_ifld iq2000_cgen_ifld_table[]; + +/* Ifield attribute indices. */ + +/* Enum declaration for cgen_ifld attrs. */ +typedef enum cgen_ifld_attr { + CGEN_IFLD_VIRTUAL, CGEN_IFLD_PCREL_ADDR, CGEN_IFLD_ABS_ADDR, CGEN_IFLD_RESERVED + , CGEN_IFLD_SIGN_OPT, CGEN_IFLD_SIGNED, CGEN_IFLD_END_BOOLS, CGEN_IFLD_START_NBOOLS = 31 + , CGEN_IFLD_MACH, CGEN_IFLD_END_NBOOLS +} CGEN_IFLD_ATTR; + +/* Number of non-boolean elements in cgen_ifld_attr. */ +#define CGEN_IFLD_NBOOL_ATTRS (CGEN_IFLD_END_NBOOLS - CGEN_IFLD_START_NBOOLS - 1) + +/* Enum declaration for iq2000 ifield types. */ +typedef enum ifield_type { + IQ2000_F_NIL, IQ2000_F_ANYOF, IQ2000_F_OPCODE, IQ2000_F_RS + , IQ2000_F_RT, IQ2000_F_RD, IQ2000_F_SHAMT, IQ2000_F_CP_OP + , IQ2000_F_CP_OP_10, IQ2000_F_CP_GRP, IQ2000_F_FUNC, IQ2000_F_IMM + , IQ2000_F_RD_RS, IQ2000_F_RD_RT, IQ2000_F_RT_RS, IQ2000_F_JTARG + , IQ2000_F_JTARGQ10, IQ2000_F_OFFSET, IQ2000_F_COUNT, IQ2000_F_BYTECOUNT + , IQ2000_F_INDEX, IQ2000_F_MASK, IQ2000_F_MASKQ10, IQ2000_F_MASKL + , IQ2000_F_EXCODE, IQ2000_F_RSRVD, IQ2000_F_10_11, IQ2000_F_24_19 + , IQ2000_F_5, IQ2000_F_10, IQ2000_F_25, IQ2000_F_CAM_Z + , IQ2000_F_CAM_Y, IQ2000_F_CM_3FUNC, IQ2000_F_CM_4FUNC, IQ2000_F_CM_3Z + , IQ2000_F_CM_4Z, IQ2000_F_MAX +} IFIELD_TYPE; + +#define MAX_IFLD ((int) IQ2000_F_MAX) + +/* Hardware attribute indices. */ + +/* Enum declaration for cgen_hw attrs. */ +typedef enum cgen_hw_attr { + CGEN_HW_VIRTUAL, CGEN_HW_CACHE_ADDR, CGEN_HW_PC, CGEN_HW_PROFILE + , CGEN_HW_END_BOOLS, CGEN_HW_START_NBOOLS = 31, CGEN_HW_MACH, CGEN_HW_END_NBOOLS +} CGEN_HW_ATTR; + +/* Number of non-boolean elements in cgen_hw_attr. */ +#define CGEN_HW_NBOOL_ATTRS (CGEN_HW_END_NBOOLS - CGEN_HW_START_NBOOLS - 1) + +/* Enum declaration for iq2000 hardware types. */ +typedef enum cgen_hw_type { + HW_H_MEMORY, HW_H_SINT, HW_H_UINT, HW_H_ADDR + , HW_H_IADDR, HW_H_PC, HW_H_GR, HW_MAX +} CGEN_HW_TYPE; + +#define MAX_HW ((int) HW_MAX) + +/* Operand attribute indices. */ + +/* Enum declaration for cgen_operand attrs. */ +typedef enum cgen_operand_attr { + CGEN_OPERAND_VIRTUAL, CGEN_OPERAND_PCREL_ADDR, CGEN_OPERAND_ABS_ADDR, CGEN_OPERAND_SIGN_OPT + , CGEN_OPERAND_SIGNED, CGEN_OPERAND_NEGATIVE, CGEN_OPERAND_RELAX, CGEN_OPERAND_SEM_ONLY + , CGEN_OPERAND_END_BOOLS, CGEN_OPERAND_START_NBOOLS = 31, CGEN_OPERAND_MACH, CGEN_OPERAND_END_NBOOLS +} CGEN_OPERAND_ATTR; + +/* Number of non-boolean elements in cgen_operand_attr. */ +#define CGEN_OPERAND_NBOOL_ATTRS (CGEN_OPERAND_END_NBOOLS - CGEN_OPERAND_START_NBOOLS - 1) + +/* Enum declaration for iq2000 operand types. */ +typedef enum cgen_operand_type { + IQ2000_OPERAND_PC, IQ2000_OPERAND_RS, IQ2000_OPERAND_RT, IQ2000_OPERAND_RD + , IQ2000_OPERAND_RD_RS, IQ2000_OPERAND_RD_RT, IQ2000_OPERAND_RT_RS, IQ2000_OPERAND_SHAMT + , IQ2000_OPERAND_IMM, IQ2000_OPERAND_OFFSET, IQ2000_OPERAND_BASEOFF, IQ2000_OPERAND_JMPTARG + , IQ2000_OPERAND_MASK, IQ2000_OPERAND_MASKQ10, IQ2000_OPERAND_MASKL, IQ2000_OPERAND_COUNT + , IQ2000_OPERAND_INDEX, IQ2000_OPERAND_EXECODE, IQ2000_OPERAND_BYTECOUNT, IQ2000_OPERAND_CAM_Y + , IQ2000_OPERAND_CAM_Z, IQ2000_OPERAND_CM_3FUNC, IQ2000_OPERAND_CM_4FUNC, IQ2000_OPERAND_CM_3Z + , IQ2000_OPERAND_CM_4Z, IQ2000_OPERAND_BASE, IQ2000_OPERAND_MASKR, IQ2000_OPERAND_BITNUM + , IQ2000_OPERAND_HI16, IQ2000_OPERAND_LO16, IQ2000_OPERAND_MLO16, IQ2000_OPERAND_JMPTARGQ10 + , IQ2000_OPERAND_MAX +} CGEN_OPERAND_TYPE; + +/* Number of operands types. */ +#define MAX_OPERANDS 32 + +/* Maximum number of operands referenced by any insn. */ +#define MAX_OPERAND_INSTANCES 8 + +/* Insn attribute indices. */ + +/* Enum declaration for cgen_insn attrs. */ +typedef enum cgen_insn_attr { + CGEN_INSN_ALIAS, CGEN_INSN_VIRTUAL, CGEN_INSN_UNCOND_CTI, CGEN_INSN_COND_CTI + , CGEN_INSN_SKIP_CTI, CGEN_INSN_DELAY_SLOT, CGEN_INSN_RELAXABLE, CGEN_INSN_RELAX + , CGEN_INSN_NO_DIS, CGEN_INSN_PBB, CGEN_INSN_YIELD_INSN, CGEN_INSN_LOAD_DELAY + , CGEN_INSN_EVEN_REG_NUM, CGEN_INSN_UNSUPPORTED, CGEN_INSN_USES_RD, CGEN_INSN_USES_RS + , CGEN_INSN_USES_RT, CGEN_INSN_USES_R31, CGEN_INSN_END_BOOLS, CGEN_INSN_START_NBOOLS = 31 + , CGEN_INSN_MACH, CGEN_INSN_END_NBOOLS +} CGEN_INSN_ATTR; + +/* Number of non-boolean elements in cgen_insn_attr. */ +#define CGEN_INSN_NBOOL_ATTRS (CGEN_INSN_END_NBOOLS - CGEN_INSN_START_NBOOLS - 1) + +/* cgen.h uses things we just defined. */ +#include "opcode/cgen.h" + +/* Attributes. */ +extern const CGEN_ATTR_TABLE iq2000_cgen_hardware_attr_table[]; +extern const CGEN_ATTR_TABLE iq2000_cgen_ifield_attr_table[]; +extern const CGEN_ATTR_TABLE iq2000_cgen_operand_attr_table[]; +extern const CGEN_ATTR_TABLE iq2000_cgen_insn_attr_table[]; + +/* Hardware decls. */ + +extern CGEN_KEYWORD iq2000_cgen_opval_gr_names; + + + + +#endif /* IQ2000_CPU_H */ diff -uprN binutils-2.13.90.0.16/opcodes/iq2000-dis.c binutils-2.13.90.0.18/opcodes/iq2000-dis.c --- binutils-2.13.90.0.16/opcodes/iq2000-dis.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/iq2000-dis.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,619 @@ +/* Disassembler interface for targets using CGEN. -*- C -*- + CGEN: Cpu tools GENerator + +THIS FILE IS MACHINE GENERATED WITH CGEN. +- the resultant file is machine generated, cgen-dis.in isn't + +Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + +This file is part of the GNU Binutils and GDB, the GNU debugger. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* ??? Eventually more and more of this stuff can go to cpu-independent files. + Keep that in mind. */ + +#include "sysdep.h" +#include +#include "ansidecl.h" +#include "dis-asm.h" +#include "bfd.h" +#include "symcat.h" +#include "iq2000-desc.h" +#include "iq2000-opc.h" +#include "opintl.h" + +/* Default text to print if an instruction isn't recognized. */ +#define UNKNOWN_INSN_MSG _("*unknown*") + +static void print_normal + PARAMS ((CGEN_CPU_DESC, PTR, long, unsigned int, bfd_vma, int)); +static void print_address + PARAMS ((CGEN_CPU_DESC, PTR, bfd_vma, unsigned int, bfd_vma, int)); +static void print_keyword + PARAMS ((CGEN_CPU_DESC, PTR, CGEN_KEYWORD *, long, unsigned int)); +static void print_insn_normal + PARAMS ((CGEN_CPU_DESC, PTR, const CGEN_INSN *, CGEN_FIELDS *, + bfd_vma, int)); +static int print_insn + PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, unsigned)); +static int default_print_insn + PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *)); +static int read_insn + PARAMS ((CGEN_CPU_DESC, bfd_vma, disassemble_info *, char *, int, + CGEN_EXTRACT_INFO *, unsigned long *)); + +/* -- disassembler routines inserted here */ + + +void iq2000_cgen_print_operand + PARAMS ((CGEN_CPU_DESC, int, PTR, CGEN_FIELDS *, + void const *, bfd_vma, int)); + +/* Main entry point for printing operands. + XINFO is a `void *' and not a `disassemble_info *' to not put a requirement + of dis-asm.h on cgen.h. + + This function is basically just a big switch statement. Earlier versions + used tables to look up the function to use, but + - if the table contains both assembler and disassembler functions then + the disassembler contains much of the assembler and vice-versa, + - there's a lot of inlining possibilities as things grow, + - using a switch statement avoids the function call overhead. + + This function could be moved into `print_insn_normal', but keeping it + separate makes clear the interface between `print_insn_normal' and each of + the handlers. */ + +void +iq2000_cgen_print_operand (cd, opindex, xinfo, fields, attrs, pc, length) + CGEN_CPU_DESC cd; + int opindex; + PTR xinfo; + CGEN_FIELDS *fields; + void const *attrs ATTRIBUTE_UNUSED; + bfd_vma pc; + int length; +{ + disassemble_info *info = (disassemble_info *) xinfo; + + switch (opindex) + { + case IQ2000_OPERAND_BASE : + print_keyword (cd, info, & iq2000_cgen_opval_gr_names, fields->f_rs, 0); + break; + case IQ2000_OPERAND_BASEOFF : + print_address (cd, info, fields->f_imm, 0, pc, length); + break; + case IQ2000_OPERAND_BITNUM : + print_normal (cd, info, fields->f_rt, 0, pc, length); + break; + case IQ2000_OPERAND_BYTECOUNT : + print_normal (cd, info, fields->f_bytecount, 0, pc, length); + break; + case IQ2000_OPERAND_CAM_Y : + print_normal (cd, info, fields->f_cam_y, 0, pc, length); + break; + case IQ2000_OPERAND_CAM_Z : + print_normal (cd, info, fields->f_cam_z, 0, pc, length); + break; + case IQ2000_OPERAND_CM_3FUNC : + print_normal (cd, info, fields->f_cm_3func, 0, pc, length); + break; + case IQ2000_OPERAND_CM_3Z : + print_normal (cd, info, fields->f_cm_3z, 0, pc, length); + break; + case IQ2000_OPERAND_CM_4FUNC : + print_normal (cd, info, fields->f_cm_4func, 0, pc, length); + break; + case IQ2000_OPERAND_CM_4Z : + print_normal (cd, info, fields->f_cm_4z, 0, pc, length); + break; + case IQ2000_OPERAND_COUNT : + print_normal (cd, info, fields->f_count, 0, pc, length); + break; + case IQ2000_OPERAND_EXECODE : + print_normal (cd, info, fields->f_excode, 0, pc, length); + break; + case IQ2000_OPERAND_HI16 : + print_normal (cd, info, fields->f_imm, 0, pc, length); + break; + case IQ2000_OPERAND_IMM : + print_normal (cd, info, fields->f_imm, 0, pc, length); + break; + case IQ2000_OPERAND_INDEX : + print_normal (cd, info, fields->f_index, 0, pc, length); + break; + case IQ2000_OPERAND_JMPTARG : + print_address (cd, info, fields->f_jtarg, 0|(1<f_jtargq10, 0|(1<f_imm, 0, pc, length); + break; + case IQ2000_OPERAND_MASK : + print_normal (cd, info, fields->f_mask, 0, pc, length); + break; + case IQ2000_OPERAND_MASKL : + print_normal (cd, info, fields->f_maskl, 0, pc, length); + break; + case IQ2000_OPERAND_MASKQ10 : + print_normal (cd, info, fields->f_maskq10, 0, pc, length); + break; + case IQ2000_OPERAND_MASKR : + print_normal (cd, info, fields->f_rs, 0, pc, length); + break; + case IQ2000_OPERAND_MLO16 : + print_normal (cd, info, fields->f_imm, 0, pc, length); + break; + case IQ2000_OPERAND_OFFSET : + print_address (cd, info, fields->f_offset, 0|(1<f_rd, 0); + break; + case IQ2000_OPERAND_RD_RS : + print_keyword (cd, info, & iq2000_cgen_opval_gr_names, fields->f_rd_rs, 0|(1<f_rd_rt, 0|(1<f_rs, 0); + break; + case IQ2000_OPERAND_RT : + print_keyword (cd, info, & iq2000_cgen_opval_gr_names, fields->f_rt, 0); + break; + case IQ2000_OPERAND_RT_RS : + print_keyword (cd, info, & iq2000_cgen_opval_gr_names, fields->f_rt_rs, 0|(1<f_shamt, 0, pc, length); + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while printing insn.\n"), + opindex); + abort (); + } +} + +cgen_print_fn * const iq2000_cgen_print_handlers[] = +{ + print_insn_normal, +}; + + +void +iq2000_cgen_init_dis (cd) + CGEN_CPU_DESC cd; +{ + iq2000_cgen_init_opcode_table (cd); + iq2000_cgen_init_ibld_table (cd); + cd->print_handlers = & iq2000_cgen_print_handlers[0]; + cd->print_operand = iq2000_cgen_print_operand; +} + + +/* Default print handler. */ + +static void +print_normal (cd, dis_info, value, attrs, pc, length) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + PTR dis_info; + long value; + unsigned int attrs; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; +{ + disassemble_info *info = (disassemble_info *) dis_info; + +#ifdef CGEN_PRINT_NORMAL + CGEN_PRINT_NORMAL (cd, info, value, attrs, pc, length); +#endif + + /* Print the operand as directed by the attributes. */ + if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SEM_ONLY)) + ; /* nothing to do */ + else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SIGNED)) + (*info->fprintf_func) (info->stream, "%ld", value); + else + (*info->fprintf_func) (info->stream, "0x%lx", value); +} + +/* Default address handler. */ + +static void +print_address (cd, dis_info, value, attrs, pc, length) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + PTR dis_info; + bfd_vma value; + unsigned int attrs; + bfd_vma pc ATTRIBUTE_UNUSED; + int length ATTRIBUTE_UNUSED; +{ + disassemble_info *info = (disassemble_info *) dis_info; + +#ifdef CGEN_PRINT_ADDRESS + CGEN_PRINT_ADDRESS (cd, info, value, attrs, pc, length); +#endif + + /* Print the operand as directed by the attributes. */ + if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SEM_ONLY)) + ; /* nothing to do */ + else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_PCREL_ADDR)) + (*info->print_address_func) (value, info); + else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_ABS_ADDR)) + (*info->print_address_func) (value, info); + else if (CGEN_BOOL_ATTR (attrs, CGEN_OPERAND_SIGNED)) + (*info->fprintf_func) (info->stream, "%ld", (long) value); + else + (*info->fprintf_func) (info->stream, "0x%lx", (long) value); +} + +/* Keyword print handler. */ + +static void +print_keyword (cd, dis_info, keyword_table, value, attrs) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + PTR dis_info; + CGEN_KEYWORD *keyword_table; + long value; + unsigned int attrs ATTRIBUTE_UNUSED; +{ + disassemble_info *info = (disassemble_info *) dis_info; + const CGEN_KEYWORD_ENTRY *ke; + + ke = cgen_keyword_lookup_value (keyword_table, value); + if (ke != NULL) + (*info->fprintf_func) (info->stream, "%s", ke->name); + else + (*info->fprintf_func) (info->stream, "???"); +} + +/* Default insn printer. + + DIS_INFO is defined as `PTR' so the disassembler needn't know anything + about disassemble_info. */ + +static void +print_insn_normal (cd, dis_info, insn, fields, pc, length) + CGEN_CPU_DESC cd; + PTR dis_info; + const CGEN_INSN *insn; + CGEN_FIELDS *fields; + bfd_vma pc; + int length; +{ + const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn); + disassemble_info *info = (disassemble_info *) dis_info; + const CGEN_SYNTAX_CHAR_TYPE *syn; + + CGEN_INIT_PRINT (cd); + + for (syn = CGEN_SYNTAX_STRING (syntax); *syn; ++syn) + { + if (CGEN_SYNTAX_MNEMONIC_P (*syn)) + { + (*info->fprintf_func) (info->stream, "%s", CGEN_INSN_MNEMONIC (insn)); + continue; + } + if (CGEN_SYNTAX_CHAR_P (*syn)) + { + (*info->fprintf_func) (info->stream, "%c", CGEN_SYNTAX_CHAR (*syn)); + continue; + } + + /* We have an operand. */ + iq2000_cgen_print_operand (cd, CGEN_SYNTAX_FIELD (*syn), info, + fields, CGEN_INSN_ATTRS (insn), pc, length); + } +} + +/* Subroutine of print_insn. Reads an insn into the given buffers and updates + the extract info. + Returns 0 if all is well, non-zero otherwise. */ + +static int +read_insn (cd, pc, info, buf, buflen, ex_info, insn_value) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + bfd_vma pc; + disassemble_info *info; + char *buf; + int buflen; + CGEN_EXTRACT_INFO *ex_info; + unsigned long *insn_value; +{ + int status = (*info->read_memory_func) (pc, buf, buflen, info); + if (status != 0) + { + (*info->memory_error_func) (status, pc, info); + return -1; + } + + ex_info->dis_info = info; + ex_info->valid = (1 << buflen) - 1; + ex_info->insn_bytes = buf; + + *insn_value = bfd_get_bits (buf, buflen * 8, info->endian == BFD_ENDIAN_BIG); + return 0; +} + +/* Utility to print an insn. + BUF is the base part of the insn, target byte order, BUFLEN bytes long. + The result is the size of the insn in bytes or zero for an unknown insn + or -1 if an error occurs fetching data (memory_error_func will have + been called). */ + +static int +print_insn (cd, pc, info, buf, buflen) + CGEN_CPU_DESC cd; + bfd_vma pc; + disassemble_info *info; + char *buf; + unsigned int buflen; +{ + CGEN_INSN_INT insn_value; + const CGEN_INSN_LIST *insn_list; + CGEN_EXTRACT_INFO ex_info; + int basesize; + + /* Extract base part of instruction, just in case CGEN_DIS_* uses it. */ + basesize = cd->base_insn_bitsize < buflen * 8 ? + cd->base_insn_bitsize : buflen * 8; + insn_value = cgen_get_insn_value (cd, buf, basesize); + + + /* Fill in ex_info fields like read_insn would. Don't actually call + read_insn, since the incoming buffer is already read (and possibly + modified a la m32r). */ + ex_info.valid = (1 << buflen) - 1; + ex_info.dis_info = info; + ex_info.insn_bytes = buf; + + /* The instructions are stored in hash lists. + Pick the first one and keep trying until we find the right one. */ + + insn_list = CGEN_DIS_LOOKUP_INSN (cd, buf, insn_value); + while (insn_list != NULL) + { + const CGEN_INSN *insn = insn_list->insn; + CGEN_FIELDS fields; + int length; + unsigned long insn_value_cropped; + +#ifdef CGEN_VALIDATE_INSN_SUPPORTED + /* Not needed as insn shouldn't be in hash lists if not supported. */ + /* Supported by this cpu? */ + if (! iq2000_cgen_insn_supported (cd, insn)) + { + insn_list = CGEN_DIS_NEXT_INSN (insn_list); + continue; + } +#endif + + /* Basic bit mask must be correct. */ + /* ??? May wish to allow target to defer this check until the extract + handler. */ + + /* Base size may exceed this instruction's size. Extract the + relevant part from the buffer. */ + if ((unsigned) (CGEN_INSN_BITSIZE (insn) / 8) < buflen && + (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long)) + insn_value_cropped = bfd_get_bits (buf, CGEN_INSN_BITSIZE (insn), + info->endian == BFD_ENDIAN_BIG); + else + insn_value_cropped = insn_value; + + if ((insn_value_cropped & CGEN_INSN_BASE_MASK (insn)) + == CGEN_INSN_BASE_VALUE (insn)) + { + /* Printing is handled in two passes. The first pass parses the + machine insn and extracts the fields. The second pass prints + them. */ + + /* Make sure the entire insn is loaded into insn_value, if it + can fit. */ + if (((unsigned) CGEN_INSN_BITSIZE (insn) > cd->base_insn_bitsize) && + (unsigned) (CGEN_INSN_BITSIZE (insn) / 8) <= sizeof (unsigned long)) + { + unsigned long full_insn_value; + int rc = read_insn (cd, pc, info, buf, + CGEN_INSN_BITSIZE (insn) / 8, + & ex_info, & full_insn_value); + if (rc != 0) + return rc; + length = CGEN_EXTRACT_FN (cd, insn) + (cd, insn, &ex_info, full_insn_value, &fields, pc); + } + else + length = CGEN_EXTRACT_FN (cd, insn) + (cd, insn, &ex_info, insn_value_cropped, &fields, pc); + + /* length < 0 -> error */ + if (length < 0) + return length; + if (length > 0) + { + CGEN_PRINT_FN (cd, insn) (cd, info, insn, &fields, pc, length); + /* length is in bits, result is in bytes */ + return length / 8; + } + } + + insn_list = CGEN_DIS_NEXT_INSN (insn_list); + } + + return 0; +} + +/* Default value for CGEN_PRINT_INSN. + The result is the size of the insn in bytes or zero for an unknown insn + or -1 if an error occured fetching bytes. */ + +#ifndef CGEN_PRINT_INSN +#define CGEN_PRINT_INSN default_print_insn +#endif + +static int +default_print_insn (cd, pc, info) + CGEN_CPU_DESC cd; + bfd_vma pc; + disassemble_info *info; +{ + char buf[CGEN_MAX_INSN_SIZE]; + int buflen; + int status; + + /* Attempt to read the base part of the insn. */ + buflen = cd->base_insn_bitsize / 8; + status = (*info->read_memory_func) (pc, buf, buflen, info); + + /* Try again with the minimum part, if min < base. */ + if (status != 0 && (cd->min_insn_bitsize < cd->base_insn_bitsize)) + { + buflen = cd->min_insn_bitsize / 8; + status = (*info->read_memory_func) (pc, buf, buflen, info); + } + + if (status != 0) + { + (*info->memory_error_func) (status, pc, info); + return -1; + } + + return print_insn (cd, pc, info, buf, buflen); +} + +/* Main entry point. + Print one instruction from PC on INFO->STREAM. + Return the size of the instruction (in bytes). */ + +typedef struct cpu_desc_list { + struct cpu_desc_list *next; + int isa; + int mach; + int endian; + CGEN_CPU_DESC cd; +} cpu_desc_list; + +int +print_insn_iq2000 (pc, info) + bfd_vma pc; + disassemble_info *info; +{ + static cpu_desc_list *cd_list = 0; + cpu_desc_list *cl = 0; + static CGEN_CPU_DESC cd = 0; + static int prev_isa; + static int prev_mach; + static int prev_endian; + int length; + int isa,mach; + int endian = (info->endian == BFD_ENDIAN_BIG + ? CGEN_ENDIAN_BIG + : CGEN_ENDIAN_LITTLE); + enum bfd_architecture arch; + + /* ??? gdb will set mach but leave the architecture as "unknown" */ +#ifndef CGEN_BFD_ARCH +#define CGEN_BFD_ARCH bfd_arch_iq2000 +#endif + arch = info->arch; + if (arch == bfd_arch_unknown) + arch = CGEN_BFD_ARCH; + + /* There's no standard way to compute the machine or isa number + so we leave it to the target. */ +#ifdef CGEN_COMPUTE_MACH + mach = CGEN_COMPUTE_MACH (info); +#else + mach = info->mach; +#endif + +#ifdef CGEN_COMPUTE_ISA + isa = CGEN_COMPUTE_ISA (info); +#else + isa = info->insn_sets; +#endif + + /* If we've switched cpu's, try to find a handle we've used before */ + if (cd + && (isa != prev_isa + || mach != prev_mach + || endian != prev_endian)) + { + cd = 0; + for (cl = cd_list; cl; cl = cl->next) + { + if (cl->isa == isa && + cl->mach == mach && + cl->endian == endian) + { + cd = cl->cd; + break; + } + } + } + + /* If we haven't initialized yet, initialize the opcode table. */ + if (! cd) + { + const bfd_arch_info_type *arch_type = bfd_lookup_arch (arch, mach); + const char *mach_name; + + if (!arch_type) + abort (); + mach_name = arch_type->printable_name; + + prev_isa = isa; + prev_mach = mach; + prev_endian = endian; + cd = iq2000_cgen_cpu_open (CGEN_CPU_OPEN_ISAS, prev_isa, + CGEN_CPU_OPEN_BFDMACH, mach_name, + CGEN_CPU_OPEN_ENDIAN, prev_endian, + CGEN_CPU_OPEN_END); + if (!cd) + abort (); + + /* save this away for future reference */ + cl = xmalloc (sizeof (struct cpu_desc_list)); + cl->cd = cd; + cl->isa = isa; + cl->mach = mach; + cl->endian = endian; + cl->next = cd_list; + cd_list = cl; + + iq2000_cgen_init_dis (cd); + } + + /* We try to have as much common code as possible. + But at this point some targets need to take over. */ + /* ??? Some targets may need a hook elsewhere. Try to avoid this, + but if not possible try to move this hook elsewhere rather than + have two hooks. */ + length = CGEN_PRINT_INSN (cd, pc, info); + if (length > 0) + return length; + if (length < 0) + return -1; + + (*info->fprintf_func) (info->stream, UNKNOWN_INSN_MSG); + return cd->default_insn_bitsize / 8; +} diff -uprN binutils-2.13.90.0.16/opcodes/iq2000-ibld.c binutils-2.13.90.0.18/opcodes/iq2000-ibld.c --- binutils-2.13.90.0.16/opcodes/iq2000-ibld.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/iq2000-ibld.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,1394 @@ +/* Instruction building/extraction support for iq2000. -*- C -*- + +THIS FILE IS MACHINE GENERATED WITH CGEN: Cpu tools GENerator. +- the resultant file is machine generated, cgen-ibld.in isn't + +Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + +This file is part of the GNU Binutils and GDB, the GNU debugger. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +/* ??? Eventually more and more of this stuff can go to cpu-independent files. + Keep that in mind. */ + +#include "sysdep.h" +#include +#include "ansidecl.h" +#include "dis-asm.h" +#include "bfd.h" +#include "symcat.h" +#include "iq2000-desc.h" +#include "iq2000-opc.h" +#include "opintl.h" +#include "safe-ctype.h" + +#undef min +#define min(a,b) ((a) < (b) ? (a) : (b)) +#undef max +#define max(a,b) ((a) > (b) ? (a) : (b)) + +/* Used by the ifield rtx function. */ +#define FLD(f) (fields->f) + +static const char * insert_normal + PARAMS ((CGEN_CPU_DESC, long, unsigned int, unsigned int, unsigned int, + unsigned int, unsigned int, unsigned int, CGEN_INSN_BYTES_PTR)); +static const char * insert_insn_normal + PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, + CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma)); +static int extract_normal + PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, + unsigned int, unsigned int, unsigned int, unsigned int, + unsigned int, unsigned int, bfd_vma, long *)); +static int extract_insn_normal + PARAMS ((CGEN_CPU_DESC, const CGEN_INSN *, CGEN_EXTRACT_INFO *, + CGEN_INSN_INT, CGEN_FIELDS *, bfd_vma)); +#if CGEN_INT_INSN_P +static void put_insn_int_value + PARAMS ((CGEN_CPU_DESC, CGEN_INSN_BYTES_PTR, int, int, CGEN_INSN_INT)); +#endif +#if ! CGEN_INT_INSN_P +static CGEN_INLINE void insert_1 + PARAMS ((CGEN_CPU_DESC, unsigned long, int, int, int, unsigned char *)); +static CGEN_INLINE int fill_cache + PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, bfd_vma)); +static CGEN_INLINE long extract_1 + PARAMS ((CGEN_CPU_DESC, CGEN_EXTRACT_INFO *, int, int, int, + unsigned char *, bfd_vma)); +#endif + +/* Operand insertion. */ + +#if ! CGEN_INT_INSN_P + +/* Subroutine of insert_normal. */ + +static CGEN_INLINE void +insert_1 (cd, value, start, length, word_length, bufp) + CGEN_CPU_DESC cd; + unsigned long value; + int start,length,word_length; + unsigned char *bufp; +{ + unsigned long x,mask; + int shift; + + x = cgen_get_insn_value (cd, bufp, word_length); + + /* Written this way to avoid undefined behaviour. */ + mask = (((1L << (length - 1)) - 1) << 1) | 1; + if (CGEN_INSN_LSB0_P) + shift = (start + 1) - length; + else + shift = (word_length - (start + length)); + x = (x & ~(mask << shift)) | ((value & mask) << shift); + + cgen_put_insn_value (cd, bufp, word_length, (bfd_vma) x); +} + +#endif /* ! CGEN_INT_INSN_P */ + +/* Default insertion routine. + + ATTRS is a mask of the boolean attributes. + WORD_OFFSET is the offset in bits from the start of the insn of the value. + WORD_LENGTH is the length of the word in bits in which the value resides. + START is the starting bit number in the word, architecture origin. + LENGTH is the length of VALUE in bits. + TOTAL_LENGTH is the total length of the insn in bits. + + The result is an error message or NULL if success. */ + +/* ??? This duplicates functionality with bfd's howto table and + bfd_install_relocation. */ +/* ??? This doesn't handle bfd_vma's. Create another function when + necessary. */ + +static const char * +insert_normal (cd, value, attrs, word_offset, start, length, word_length, + total_length, buffer) + CGEN_CPU_DESC cd; + long value; + unsigned int attrs; + unsigned int word_offset, start, length, word_length, total_length; + CGEN_INSN_BYTES_PTR buffer; +{ + static char errbuf[100]; + /* Written this way to avoid undefined behaviour. */ + unsigned long mask = (((1L << (length - 1)) - 1) << 1) | 1; + + /* If LENGTH is zero, this operand doesn't contribute to the value. */ + if (length == 0) + return NULL; + +#if 0 + if (CGEN_INT_INSN_P + && word_offset != 0) + abort (); +#endif + + if (word_length > 32) + abort (); + + /* For architectures with insns smaller than the base-insn-bitsize, + word_length may be too big. */ + if (cd->min_insn_bitsize < cd->base_insn_bitsize) + { + if (word_offset == 0 + && word_length > total_length) + word_length = total_length; + } + + /* Ensure VALUE will fit. */ + if (CGEN_BOOL_ATTR (attrs, CGEN_IFLD_SIGN_OPT)) + { + long minval = - (1L << (length - 1)); + unsigned long maxval = mask; + + if ((value > 0 && (unsigned long) value > maxval) + || value < minval) + { + /* xgettext:c-format */ + sprintf (errbuf, + _("operand out of range (%ld not between %ld and %lu)"), + value, minval, maxval); + return errbuf; + } + } + else if (! CGEN_BOOL_ATTR (attrs, CGEN_IFLD_SIGNED)) + { + unsigned long maxval = mask; + + if ((unsigned long) value > maxval) + { + /* xgettext:c-format */ + sprintf (errbuf, + _("operand out of range (%lu not between 0 and %lu)"), + value, maxval); + return errbuf; + } + } + else + { + if (! cgen_signed_overflow_ok_p (cd)) + { + long minval = - (1L << (length - 1)); + long maxval = (1L << (length - 1)) - 1; + + if (value < minval || value > maxval) + { + sprintf + /* xgettext:c-format */ + (errbuf, _("operand out of range (%ld not between %ld and %ld)"), + value, minval, maxval); + return errbuf; + } + } + } + +#if CGEN_INT_INSN_P + + { + int shift; + + if (CGEN_INSN_LSB0_P) + shift = (word_offset + start + 1) - length; + else + shift = total_length - (word_offset + start + length); + *buffer = (*buffer & ~(mask << shift)) | ((value & mask) << shift); + } + +#else /* ! CGEN_INT_INSN_P */ + + { + unsigned char *bufp = (unsigned char *) buffer + word_offset / 8; + + insert_1 (cd, value, start, length, word_length, bufp); + } + +#endif /* ! CGEN_INT_INSN_P */ + + return NULL; +} + +/* Default insn builder (insert handler). + The instruction is recorded in CGEN_INT_INSN_P byte order (meaning + that if CGEN_INSN_BYTES_PTR is an int * and thus, the value is + recorded in host byte order, otherwise BUFFER is an array of bytes + and the value is recorded in target byte order). + The result is an error message or NULL if success. */ + +static const char * +insert_insn_normal (cd, insn, fields, buffer, pc) + CGEN_CPU_DESC cd; + const CGEN_INSN * insn; + CGEN_FIELDS * fields; + CGEN_INSN_BYTES_PTR buffer; + bfd_vma pc; +{ + const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn); + unsigned long value; + const CGEN_SYNTAX_CHAR_TYPE * syn; + + CGEN_INIT_INSERT (cd); + value = CGEN_INSN_BASE_VALUE (insn); + + /* If we're recording insns as numbers (rather than a string of bytes), + target byte order handling is deferred until later. */ + +#if CGEN_INT_INSN_P + + put_insn_int_value (cd, buffer, cd->base_insn_bitsize, + CGEN_FIELDS_BITSIZE (fields), value); + +#else + + cgen_put_insn_value (cd, buffer, min ((unsigned) cd->base_insn_bitsize, + (unsigned) CGEN_FIELDS_BITSIZE (fields)), + value); + +#endif /* ! CGEN_INT_INSN_P */ + + /* ??? It would be better to scan the format's fields. + Still need to be able to insert a value based on the operand though; + e.g. storing a branch displacement that got resolved later. + Needs more thought first. */ + + for (syn = CGEN_SYNTAX_STRING (syntax); * syn; ++ syn) + { + const char *errmsg; + + if (CGEN_SYNTAX_CHAR_P (* syn)) + continue; + + errmsg = (* cd->insert_operand) (cd, CGEN_SYNTAX_FIELD (*syn), + fields, buffer, pc); + if (errmsg) + return errmsg; + } + + return NULL; +} + +#if CGEN_INT_INSN_P +/* Cover function to store an insn value into an integral insn. Must go here + because it needs -desc.h for CGEN_INT_INSN_P. */ + +static void +put_insn_int_value (cd, buf, length, insn_length, value) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + CGEN_INSN_BYTES_PTR buf; + int length; + int insn_length; + CGEN_INSN_INT value; +{ + /* For architectures with insns smaller than the base-insn-bitsize, + length may be too big. */ + if (length > insn_length) + *buf = value; + else + { + int shift = insn_length - length; + /* Written this way to avoid undefined behaviour. */ + CGEN_INSN_INT mask = (((1L << (length - 1)) - 1) << 1) | 1; + *buf = (*buf & ~(mask << shift)) | ((value & mask) << shift); + } +} +#endif + +/* Operand extraction. */ + +#if ! CGEN_INT_INSN_P + +/* Subroutine of extract_normal. + Ensure sufficient bytes are cached in EX_INFO. + OFFSET is the offset in bytes from the start of the insn of the value. + BYTES is the length of the needed value. + Returns 1 for success, 0 for failure. */ + +static CGEN_INLINE int +fill_cache (cd, ex_info, offset, bytes, pc) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + CGEN_EXTRACT_INFO *ex_info; + int offset, bytes; + bfd_vma pc; +{ + /* It's doubtful that the middle part has already been fetched so + we don't optimize that case. kiss. */ + unsigned int mask; + disassemble_info *info = (disassemble_info *) ex_info->dis_info; + + /* First do a quick check. */ + mask = (1 << bytes) - 1; + if (((ex_info->valid >> offset) & mask) == mask) + return 1; + + /* Search for the first byte we need to read. */ + for (mask = 1 << offset; bytes > 0; --bytes, ++offset, mask <<= 1) + if (! (mask & ex_info->valid)) + break; + + if (bytes) + { + int status; + + pc += offset; + status = (*info->read_memory_func) + (pc, ex_info->insn_bytes + offset, bytes, info); + + if (status != 0) + { + (*info->memory_error_func) (status, pc, info); + return 0; + } + + ex_info->valid |= ((1 << bytes) - 1) << offset; + } + + return 1; +} + +/* Subroutine of extract_normal. */ + +static CGEN_INLINE long +extract_1 (cd, ex_info, start, length, word_length, bufp, pc) + CGEN_CPU_DESC cd; + CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED; + int start,length,word_length; + unsigned char *bufp; + bfd_vma pc ATTRIBUTE_UNUSED; +{ + unsigned long x; + int shift; +#if 0 + int big_p = CGEN_CPU_INSN_ENDIAN (cd) == CGEN_ENDIAN_BIG; +#endif + x = cgen_get_insn_value (cd, bufp, word_length); + + if (CGEN_INSN_LSB0_P) + shift = (start + 1) - length; + else + shift = (word_length - (start + length)); + return x >> shift; +} + +#endif /* ! CGEN_INT_INSN_P */ + +/* Default extraction routine. + + INSN_VALUE is the first base_insn_bitsize bits of the insn in host order, + or sometimes less for cases like the m32r where the base insn size is 32 + but some insns are 16 bits. + ATTRS is a mask of the boolean attributes. We only need `SIGNED', + but for generality we take a bitmask of all of them. + WORD_OFFSET is the offset in bits from the start of the insn of the value. + WORD_LENGTH is the length of the word in bits in which the value resides. + START is the starting bit number in the word, architecture origin. + LENGTH is the length of VALUE in bits. + TOTAL_LENGTH is the total length of the insn in bits. + + Returns 1 for success, 0 for failure. */ + +/* ??? The return code isn't properly used. wip. */ + +/* ??? This doesn't handle bfd_vma's. Create another function when + necessary. */ + +static int +extract_normal (cd, ex_info, insn_value, attrs, word_offset, start, length, + word_length, total_length, pc, valuep) + CGEN_CPU_DESC cd; +#if ! CGEN_INT_INSN_P + CGEN_EXTRACT_INFO *ex_info; +#else + CGEN_EXTRACT_INFO *ex_info ATTRIBUTE_UNUSED; +#endif + CGEN_INSN_INT insn_value; + unsigned int attrs; + unsigned int word_offset, start, length, word_length, total_length; +#if ! CGEN_INT_INSN_P + bfd_vma pc; +#else + bfd_vma pc ATTRIBUTE_UNUSED; +#endif + long *valuep; +{ + long value, mask; + + /* If LENGTH is zero, this operand doesn't contribute to the value + so give it a standard value of zero. */ + if (length == 0) + { + *valuep = 0; + return 1; + } + +#if 0 + if (CGEN_INT_INSN_P + && word_offset != 0) + abort (); +#endif + + if (word_length > 32) + abort (); + + /* For architectures with insns smaller than the insn-base-bitsize, + word_length may be too big. */ + if (cd->min_insn_bitsize < cd->base_insn_bitsize) + { + if (word_offset == 0 + && word_length > total_length) + word_length = total_length; + } + + /* Does the value reside in INSN_VALUE, and at the right alignment? */ + + if (CGEN_INT_INSN_P || (word_offset == 0 && word_length == total_length)) + { + if (CGEN_INSN_LSB0_P) + value = insn_value >> ((word_offset + start + 1) - length); + else + value = insn_value >> (total_length - ( word_offset + start + length)); + } + +#if ! CGEN_INT_INSN_P + + else + { + unsigned char *bufp = ex_info->insn_bytes + word_offset / 8; + + if (word_length > 32) + abort (); + + if (fill_cache (cd, ex_info, word_offset / 8, word_length / 8, pc) == 0) + return 0; + + value = extract_1 (cd, ex_info, start, length, word_length, bufp, pc); + } + +#endif /* ! CGEN_INT_INSN_P */ + + /* Written this way to avoid undefined behaviour. */ + mask = (((1L << (length - 1)) - 1) << 1) | 1; + + value &= mask; + /* sign extend? */ + if (CGEN_BOOL_ATTR (attrs, CGEN_IFLD_SIGNED) + && (value & (1L << (length - 1)))) + value |= ~mask; + + *valuep = value; + + return 1; +} + +/* Default insn extractor. + + INSN_VALUE is the first base_insn_bitsize bits, translated to host order. + The extracted fields are stored in FIELDS. + EX_INFO is used to handle reading variable length insns. + Return the length of the insn in bits, or 0 if no match, + or -1 if an error occurs fetching data (memory_error_func will have + been called). */ + +static int +extract_insn_normal (cd, insn, ex_info, insn_value, fields, pc) + CGEN_CPU_DESC cd; + const CGEN_INSN *insn; + CGEN_EXTRACT_INFO *ex_info; + CGEN_INSN_INT insn_value; + CGEN_FIELDS *fields; + bfd_vma pc; +{ + const CGEN_SYNTAX *syntax = CGEN_INSN_SYNTAX (insn); + const CGEN_SYNTAX_CHAR_TYPE *syn; + + CGEN_FIELDS_BITSIZE (fields) = CGEN_INSN_BITSIZE (insn); + + CGEN_INIT_EXTRACT (cd); + + for (syn = CGEN_SYNTAX_STRING (syntax); *syn; ++syn) + { + int length; + + if (CGEN_SYNTAX_CHAR_P (*syn)) + continue; + + length = (* cd->extract_operand) (cd, CGEN_SYNTAX_FIELD (*syn), + ex_info, insn_value, fields, pc); + if (length <= 0) + return length; + } + + /* We recognized and successfully extracted this insn. */ + return CGEN_INSN_BITSIZE (insn); +} + +/* machine generated code added here */ + +const char * iq2000_cgen_insert_operand + PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, CGEN_INSN_BYTES_PTR, bfd_vma)); + +/* Main entry point for operand insertion. + + This function is basically just a big switch statement. Earlier versions + used tables to look up the function to use, but + - if the table contains both assembler and disassembler functions then + the disassembler contains much of the assembler and vice-versa, + - there's a lot of inlining possibilities as things grow, + - using a switch statement avoids the function call overhead. + + This function could be moved into `parse_insn_normal', but keeping it + separate makes clear the interface between `parse_insn_normal' and each of + the handlers. It's also needed by GAS to insert operands that couldn't be + resolved during parsing. */ + +const char * +iq2000_cgen_insert_operand (cd, opindex, fields, buffer, pc) + CGEN_CPU_DESC cd; + int opindex; + CGEN_FIELDS * fields; + CGEN_INSN_BYTES_PTR buffer; + bfd_vma pc ATTRIBUTE_UNUSED; +{ + const char * errmsg = NULL; + unsigned int total_length = CGEN_FIELDS_BITSIZE (fields); + + switch (opindex) + { + case IQ2000_OPERAND_BASE : + errmsg = insert_normal (cd, fields->f_rs, 0, 0, 25, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_BASEOFF : + errmsg = insert_normal (cd, fields->f_imm, 0, 0, 15, 16, 32, total_length, buffer); + break; + case IQ2000_OPERAND_BITNUM : + errmsg = insert_normal (cd, fields->f_rt, 0, 0, 20, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_BYTECOUNT : + errmsg = insert_normal (cd, fields->f_bytecount, 0, 0, 7, 8, 32, total_length, buffer); + break; + case IQ2000_OPERAND_CAM_Y : + errmsg = insert_normal (cd, fields->f_cam_y, 0, 0, 2, 3, 32, total_length, buffer); + break; + case IQ2000_OPERAND_CAM_Z : + errmsg = insert_normal (cd, fields->f_cam_z, 0, 0, 5, 3, 32, total_length, buffer); + break; + case IQ2000_OPERAND_CM_3FUNC : + errmsg = insert_normal (cd, fields->f_cm_3func, 0, 0, 5, 3, 32, total_length, buffer); + break; + case IQ2000_OPERAND_CM_3Z : + errmsg = insert_normal (cd, fields->f_cm_3z, 0, 0, 1, 2, 32, total_length, buffer); + break; + case IQ2000_OPERAND_CM_4FUNC : + errmsg = insert_normal (cd, fields->f_cm_4func, 0, 0, 5, 4, 32, total_length, buffer); + break; + case IQ2000_OPERAND_CM_4Z : + errmsg = insert_normal (cd, fields->f_cm_4z, 0, 0, 2, 3, 32, total_length, buffer); + break; + case IQ2000_OPERAND_COUNT : + errmsg = insert_normal (cd, fields->f_count, 0, 0, 15, 7, 32, total_length, buffer); + break; + case IQ2000_OPERAND_EXECODE : + errmsg = insert_normal (cd, fields->f_excode, 0, 0, 25, 20, 32, total_length, buffer); + break; + case IQ2000_OPERAND_HI16 : + errmsg = insert_normal (cd, fields->f_imm, 0, 0, 15, 16, 32, total_length, buffer); + break; + case IQ2000_OPERAND_IMM : + errmsg = insert_normal (cd, fields->f_imm, 0, 0, 15, 16, 32, total_length, buffer); + break; + case IQ2000_OPERAND_INDEX : + errmsg = insert_normal (cd, fields->f_index, 0, 0, 8, 9, 32, total_length, buffer); + break; + case IQ2000_OPERAND_JMPTARG : + { + long value = fields->f_jtarg; + value = ((unsigned int) (((value) & (262143))) >> (2)); + errmsg = insert_normal (cd, value, 0|(1<f_jtargq10; + value = ((unsigned int) (((value) & (8388607))) >> (2)); + errmsg = insert_normal (cd, value, 0|(1<f_imm, 0, 0, 15, 16, 32, total_length, buffer); + break; + case IQ2000_OPERAND_MASK : + errmsg = insert_normal (cd, fields->f_mask, 0, 0, 9, 4, 32, total_length, buffer); + break; + case IQ2000_OPERAND_MASKL : + errmsg = insert_normal (cd, fields->f_maskl, 0, 0, 4, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_MASKQ10 : + errmsg = insert_normal (cd, fields->f_maskq10, 0, 0, 10, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_MASKR : + errmsg = insert_normal (cd, fields->f_rs, 0, 0, 25, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_MLO16 : + errmsg = insert_normal (cd, fields->f_imm, 0, 0, 15, 16, 32, total_length, buffer); + break; + case IQ2000_OPERAND_OFFSET : + { + long value = fields->f_offset; + value = ((int) (((value) - (pc))) >> (2)); + errmsg = insert_normal (cd, value, 0|(1<f_rd, 0, 0, 15, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_RD_RS : + { +{ + FLD (f_rd) = FLD (f_rd_rs); + FLD (f_rs) = FLD (f_rd_rs); +} + errmsg = insert_normal (cd, fields->f_rd, 0, 0, 15, 5, 32, total_length, buffer); + if (errmsg) + break; + errmsg = insert_normal (cd, fields->f_rs, 0, 0, 25, 5, 32, total_length, buffer); + if (errmsg) + break; + } + break; + case IQ2000_OPERAND_RD_RT : + { +{ + FLD (f_rd) = FLD (f_rd_rt); + FLD (f_rt) = FLD (f_rd_rt); +} + errmsg = insert_normal (cd, fields->f_rd, 0, 0, 15, 5, 32, total_length, buffer); + if (errmsg) + break; + errmsg = insert_normal (cd, fields->f_rt, 0, 0, 20, 5, 32, total_length, buffer); + if (errmsg) + break; + } + break; + case IQ2000_OPERAND_RS : + errmsg = insert_normal (cd, fields->f_rs, 0, 0, 25, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_RT : + errmsg = insert_normal (cd, fields->f_rt, 0, 0, 20, 5, 32, total_length, buffer); + break; + case IQ2000_OPERAND_RT_RS : + { +{ + FLD (f_rt) = FLD (f_rt_rs); + FLD (f_rs) = FLD (f_rt_rs); +} + errmsg = insert_normal (cd, fields->f_rt, 0, 0, 20, 5, 32, total_length, buffer); + if (errmsg) + break; + errmsg = insert_normal (cd, fields->f_rs, 0, 0, 25, 5, 32, total_length, buffer); + if (errmsg) + break; + } + break; + case IQ2000_OPERAND_SHAMT : + errmsg = insert_normal (cd, fields->f_shamt, 0, 0, 10, 5, 32, total_length, buffer); + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while building insn.\n"), + opindex); + abort (); + } + + return errmsg; +} + +int iq2000_cgen_extract_operand + PARAMS ((CGEN_CPU_DESC, int, CGEN_EXTRACT_INFO *, CGEN_INSN_INT, + CGEN_FIELDS *, bfd_vma)); + +/* Main entry point for operand extraction. + The result is <= 0 for error, >0 for success. + ??? Actual values aren't well defined right now. + + This function is basically just a big switch statement. Earlier versions + used tables to look up the function to use, but + - if the table contains both assembler and disassembler functions then + the disassembler contains much of the assembler and vice-versa, + - there's a lot of inlining possibilities as things grow, + - using a switch statement avoids the function call overhead. + + This function could be moved into `print_insn_normal', but keeping it + separate makes clear the interface between `print_insn_normal' and each of + the handlers. */ + +int +iq2000_cgen_extract_operand (cd, opindex, ex_info, insn_value, fields, pc) + CGEN_CPU_DESC cd; + int opindex; + CGEN_EXTRACT_INFO *ex_info; + CGEN_INSN_INT insn_value; + CGEN_FIELDS * fields; + bfd_vma pc; +{ + /* Assume success (for those operands that are nops). */ + int length = 1; + unsigned int total_length = CGEN_FIELDS_BITSIZE (fields); + + switch (opindex) + { + case IQ2000_OPERAND_BASE : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 5, 32, total_length, pc, & fields->f_rs); + break; + case IQ2000_OPERAND_BASEOFF : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 16, 32, total_length, pc, & fields->f_imm); + break; + case IQ2000_OPERAND_BITNUM : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 5, 32, total_length, pc, & fields->f_rt); + break; + case IQ2000_OPERAND_BYTECOUNT : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 7, 8, 32, total_length, pc, & fields->f_bytecount); + break; + case IQ2000_OPERAND_CAM_Y : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 2, 3, 32, total_length, pc, & fields->f_cam_y); + break; + case IQ2000_OPERAND_CAM_Z : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 5, 3, 32, total_length, pc, & fields->f_cam_z); + break; + case IQ2000_OPERAND_CM_3FUNC : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 5, 3, 32, total_length, pc, & fields->f_cm_3func); + break; + case IQ2000_OPERAND_CM_3Z : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 1, 2, 32, total_length, pc, & fields->f_cm_3z); + break; + case IQ2000_OPERAND_CM_4FUNC : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 5, 4, 32, total_length, pc, & fields->f_cm_4func); + break; + case IQ2000_OPERAND_CM_4Z : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 2, 3, 32, total_length, pc, & fields->f_cm_4z); + break; + case IQ2000_OPERAND_COUNT : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 7, 32, total_length, pc, & fields->f_count); + break; + case IQ2000_OPERAND_EXECODE : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 20, 32, total_length, pc, & fields->f_excode); + break; + case IQ2000_OPERAND_HI16 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 16, 32, total_length, pc, & fields->f_imm); + break; + case IQ2000_OPERAND_IMM : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 16, 32, total_length, pc, & fields->f_imm); + break; + case IQ2000_OPERAND_INDEX : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 8, 9, 32, total_length, pc, & fields->f_index); + break; + case IQ2000_OPERAND_JMPTARG : + { + long value; + length = extract_normal (cd, ex_info, insn_value, 0|(1<f_jtarg = value; + } + break; + case IQ2000_OPERAND_JMPTARGQ10 : + { + long value; + length = extract_normal (cd, ex_info, insn_value, 0|(1<f_jtargq10 = value; + } + break; + case IQ2000_OPERAND_LO16 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 16, 32, total_length, pc, & fields->f_imm); + break; + case IQ2000_OPERAND_MASK : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 9, 4, 32, total_length, pc, & fields->f_mask); + break; + case IQ2000_OPERAND_MASKL : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 4, 5, 32, total_length, pc, & fields->f_maskl); + break; + case IQ2000_OPERAND_MASKQ10 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 10, 5, 32, total_length, pc, & fields->f_maskq10); + break; + case IQ2000_OPERAND_MASKR : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 5, 32, total_length, pc, & fields->f_rs); + break; + case IQ2000_OPERAND_MLO16 : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 16, 32, total_length, pc, & fields->f_imm); + break; + case IQ2000_OPERAND_OFFSET : + { + long value; + length = extract_normal (cd, ex_info, insn_value, 0|(1<f_offset = value; + } + break; + case IQ2000_OPERAND_RD : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 5, 32, total_length, pc, & fields->f_rd); + break; + case IQ2000_OPERAND_RD_RS : + { + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 5, 32, total_length, pc, & fields->f_rd); + if (length <= 0) break; + length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 5, 32, total_length, pc, & fields->f_rs); + if (length <= 0) break; +{ + FLD (f_rd_rs) = FLD (f_rs); +} + } + break; + case IQ2000_OPERAND_RD_RT : + { + length = extract_normal (cd, ex_info, insn_value, 0, 0, 15, 5, 32, total_length, pc, & fields->f_rd); + if (length <= 0) break; + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 5, 32, total_length, pc, & fields->f_rt); + if (length <= 0) break; +{ + FLD (f_rd_rt) = FLD (f_rt); +} + } + break; + case IQ2000_OPERAND_RS : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 5, 32, total_length, pc, & fields->f_rs); + break; + case IQ2000_OPERAND_RT : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 5, 32, total_length, pc, & fields->f_rt); + break; + case IQ2000_OPERAND_RT_RS : + { + length = extract_normal (cd, ex_info, insn_value, 0, 0, 20, 5, 32, total_length, pc, & fields->f_rt); + if (length <= 0) break; + length = extract_normal (cd, ex_info, insn_value, 0, 0, 25, 5, 32, total_length, pc, & fields->f_rs); + if (length <= 0) break; +{ + FLD (f_rd_rs) = FLD (f_rs); +} + } + break; + case IQ2000_OPERAND_SHAMT : + length = extract_normal (cd, ex_info, insn_value, 0, 0, 10, 5, 32, total_length, pc, & fields->f_shamt); + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while decoding insn.\n"), + opindex); + abort (); + } + + return length; +} + +cgen_insert_fn * const iq2000_cgen_insert_handlers[] = +{ + insert_insn_normal, +}; + +cgen_extract_fn * const iq2000_cgen_extract_handlers[] = +{ + extract_insn_normal, +}; + +int iq2000_cgen_get_int_operand + PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *)); +bfd_vma iq2000_cgen_get_vma_operand + PARAMS ((CGEN_CPU_DESC, int, const CGEN_FIELDS *)); + +/* Getting values from cgen_fields is handled by a collection of functions. + They are distinguished by the type of the VALUE argument they return. + TODO: floating point, inlining support, remove cases where result type + not appropriate. */ + +int +iq2000_cgen_get_int_operand (cd, opindex, fields) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + int opindex; + const CGEN_FIELDS * fields; +{ + int value; + + switch (opindex) + { + case IQ2000_OPERAND_BASE : + value = fields->f_rs; + break; + case IQ2000_OPERAND_BASEOFF : + value = fields->f_imm; + break; + case IQ2000_OPERAND_BITNUM : + value = fields->f_rt; + break; + case IQ2000_OPERAND_BYTECOUNT : + value = fields->f_bytecount; + break; + case IQ2000_OPERAND_CAM_Y : + value = fields->f_cam_y; + break; + case IQ2000_OPERAND_CAM_Z : + value = fields->f_cam_z; + break; + case IQ2000_OPERAND_CM_3FUNC : + value = fields->f_cm_3func; + break; + case IQ2000_OPERAND_CM_3Z : + value = fields->f_cm_3z; + break; + case IQ2000_OPERAND_CM_4FUNC : + value = fields->f_cm_4func; + break; + case IQ2000_OPERAND_CM_4Z : + value = fields->f_cm_4z; + break; + case IQ2000_OPERAND_COUNT : + value = fields->f_count; + break; + case IQ2000_OPERAND_EXECODE : + value = fields->f_excode; + break; + case IQ2000_OPERAND_HI16 : + value = fields->f_imm; + break; + case IQ2000_OPERAND_IMM : + value = fields->f_imm; + break; + case IQ2000_OPERAND_INDEX : + value = fields->f_index; + break; + case IQ2000_OPERAND_JMPTARG : + value = fields->f_jtarg; + break; + case IQ2000_OPERAND_JMPTARGQ10 : + value = fields->f_jtargq10; + break; + case IQ2000_OPERAND_LO16 : + value = fields->f_imm; + break; + case IQ2000_OPERAND_MASK : + value = fields->f_mask; + break; + case IQ2000_OPERAND_MASKL : + value = fields->f_maskl; + break; + case IQ2000_OPERAND_MASKQ10 : + value = fields->f_maskq10; + break; + case IQ2000_OPERAND_MASKR : + value = fields->f_rs; + break; + case IQ2000_OPERAND_MLO16 : + value = fields->f_imm; + break; + case IQ2000_OPERAND_OFFSET : + value = fields->f_offset; + break; + case IQ2000_OPERAND_RD : + value = fields->f_rd; + break; + case IQ2000_OPERAND_RD_RS : + value = fields->f_rd_rs; + break; + case IQ2000_OPERAND_RD_RT : + value = fields->f_rd_rt; + break; + case IQ2000_OPERAND_RS : + value = fields->f_rs; + break; + case IQ2000_OPERAND_RT : + value = fields->f_rt; + break; + case IQ2000_OPERAND_RT_RS : + value = fields->f_rt_rs; + break; + case IQ2000_OPERAND_SHAMT : + value = fields->f_shamt; + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while getting int operand.\n"), + opindex); + abort (); + } + + return value; +} + +bfd_vma +iq2000_cgen_get_vma_operand (cd, opindex, fields) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + int opindex; + const CGEN_FIELDS * fields; +{ + bfd_vma value; + + switch (opindex) + { + case IQ2000_OPERAND_BASE : + value = fields->f_rs; + break; + case IQ2000_OPERAND_BASEOFF : + value = fields->f_imm; + break; + case IQ2000_OPERAND_BITNUM : + value = fields->f_rt; + break; + case IQ2000_OPERAND_BYTECOUNT : + value = fields->f_bytecount; + break; + case IQ2000_OPERAND_CAM_Y : + value = fields->f_cam_y; + break; + case IQ2000_OPERAND_CAM_Z : + value = fields->f_cam_z; + break; + case IQ2000_OPERAND_CM_3FUNC : + value = fields->f_cm_3func; + break; + case IQ2000_OPERAND_CM_3Z : + value = fields->f_cm_3z; + break; + case IQ2000_OPERAND_CM_4FUNC : + value = fields->f_cm_4func; + break; + case IQ2000_OPERAND_CM_4Z : + value = fields->f_cm_4z; + break; + case IQ2000_OPERAND_COUNT : + value = fields->f_count; + break; + case IQ2000_OPERAND_EXECODE : + value = fields->f_excode; + break; + case IQ2000_OPERAND_HI16 : + value = fields->f_imm; + break; + case IQ2000_OPERAND_IMM : + value = fields->f_imm; + break; + case IQ2000_OPERAND_INDEX : + value = fields->f_index; + break; + case IQ2000_OPERAND_JMPTARG : + value = fields->f_jtarg; + break; + case IQ2000_OPERAND_JMPTARGQ10 : + value = fields->f_jtargq10; + break; + case IQ2000_OPERAND_LO16 : + value = fields->f_imm; + break; + case IQ2000_OPERAND_MASK : + value = fields->f_mask; + break; + case IQ2000_OPERAND_MASKL : + value = fields->f_maskl; + break; + case IQ2000_OPERAND_MASKQ10 : + value = fields->f_maskq10; + break; + case IQ2000_OPERAND_MASKR : + value = fields->f_rs; + break; + case IQ2000_OPERAND_MLO16 : + value = fields->f_imm; + break; + case IQ2000_OPERAND_OFFSET : + value = fields->f_offset; + break; + case IQ2000_OPERAND_RD : + value = fields->f_rd; + break; + case IQ2000_OPERAND_RD_RS : + value = fields->f_rd_rs; + break; + case IQ2000_OPERAND_RD_RT : + value = fields->f_rd_rt; + break; + case IQ2000_OPERAND_RS : + value = fields->f_rs; + break; + case IQ2000_OPERAND_RT : + value = fields->f_rt; + break; + case IQ2000_OPERAND_RT_RS : + value = fields->f_rt_rs; + break; + case IQ2000_OPERAND_SHAMT : + value = fields->f_shamt; + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while getting vma operand.\n"), + opindex); + abort (); + } + + return value; +} + +void iq2000_cgen_set_int_operand + PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, int)); +void iq2000_cgen_set_vma_operand + PARAMS ((CGEN_CPU_DESC, int, CGEN_FIELDS *, bfd_vma)); + +/* Stuffing values in cgen_fields is handled by a collection of functions. + They are distinguished by the type of the VALUE argument they accept. + TODO: floating point, inlining support, remove cases where argument type + not appropriate. */ + +void +iq2000_cgen_set_int_operand (cd, opindex, fields, value) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + int opindex; + CGEN_FIELDS * fields; + int value; +{ + switch (opindex) + { + case IQ2000_OPERAND_BASE : + fields->f_rs = value; + break; + case IQ2000_OPERAND_BASEOFF : + fields->f_imm = value; + break; + case IQ2000_OPERAND_BITNUM : + fields->f_rt = value; + break; + case IQ2000_OPERAND_BYTECOUNT : + fields->f_bytecount = value; + break; + case IQ2000_OPERAND_CAM_Y : + fields->f_cam_y = value; + break; + case IQ2000_OPERAND_CAM_Z : + fields->f_cam_z = value; + break; + case IQ2000_OPERAND_CM_3FUNC : + fields->f_cm_3func = value; + break; + case IQ2000_OPERAND_CM_3Z : + fields->f_cm_3z = value; + break; + case IQ2000_OPERAND_CM_4FUNC : + fields->f_cm_4func = value; + break; + case IQ2000_OPERAND_CM_4Z : + fields->f_cm_4z = value; + break; + case IQ2000_OPERAND_COUNT : + fields->f_count = value; + break; + case IQ2000_OPERAND_EXECODE : + fields->f_excode = value; + break; + case IQ2000_OPERAND_HI16 : + fields->f_imm = value; + break; + case IQ2000_OPERAND_IMM : + fields->f_imm = value; + break; + case IQ2000_OPERAND_INDEX : + fields->f_index = value; + break; + case IQ2000_OPERAND_JMPTARG : + fields->f_jtarg = value; + break; + case IQ2000_OPERAND_JMPTARGQ10 : + fields->f_jtargq10 = value; + break; + case IQ2000_OPERAND_LO16 : + fields->f_imm = value; + break; + case IQ2000_OPERAND_MASK : + fields->f_mask = value; + break; + case IQ2000_OPERAND_MASKL : + fields->f_maskl = value; + break; + case IQ2000_OPERAND_MASKQ10 : + fields->f_maskq10 = value; + break; + case IQ2000_OPERAND_MASKR : + fields->f_rs = value; + break; + case IQ2000_OPERAND_MLO16 : + fields->f_imm = value; + break; + case IQ2000_OPERAND_OFFSET : + fields->f_offset = value; + break; + case IQ2000_OPERAND_RD : + fields->f_rd = value; + break; + case IQ2000_OPERAND_RD_RS : + fields->f_rd_rs = value; + break; + case IQ2000_OPERAND_RD_RT : + fields->f_rd_rt = value; + break; + case IQ2000_OPERAND_RS : + fields->f_rs = value; + break; + case IQ2000_OPERAND_RT : + fields->f_rt = value; + break; + case IQ2000_OPERAND_RT_RS : + fields->f_rt_rs = value; + break; + case IQ2000_OPERAND_SHAMT : + fields->f_shamt = value; + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while setting int operand.\n"), + opindex); + abort (); + } +} + +void +iq2000_cgen_set_vma_operand (cd, opindex, fields, value) + CGEN_CPU_DESC cd ATTRIBUTE_UNUSED; + int opindex; + CGEN_FIELDS * fields; + bfd_vma value; +{ + switch (opindex) + { + case IQ2000_OPERAND_BASE : + fields->f_rs = value; + break; + case IQ2000_OPERAND_BASEOFF : + fields->f_imm = value; + break; + case IQ2000_OPERAND_BITNUM : + fields->f_rt = value; + break; + case IQ2000_OPERAND_BYTECOUNT : + fields->f_bytecount = value; + break; + case IQ2000_OPERAND_CAM_Y : + fields->f_cam_y = value; + break; + case IQ2000_OPERAND_CAM_Z : + fields->f_cam_z = value; + break; + case IQ2000_OPERAND_CM_3FUNC : + fields->f_cm_3func = value; + break; + case IQ2000_OPERAND_CM_3Z : + fields->f_cm_3z = value; + break; + case IQ2000_OPERAND_CM_4FUNC : + fields->f_cm_4func = value; + break; + case IQ2000_OPERAND_CM_4Z : + fields->f_cm_4z = value; + break; + case IQ2000_OPERAND_COUNT : + fields->f_count = value; + break; + case IQ2000_OPERAND_EXECODE : + fields->f_excode = value; + break; + case IQ2000_OPERAND_HI16 : + fields->f_imm = value; + break; + case IQ2000_OPERAND_IMM : + fields->f_imm = value; + break; + case IQ2000_OPERAND_INDEX : + fields->f_index = value; + break; + case IQ2000_OPERAND_JMPTARG : + fields->f_jtarg = value; + break; + case IQ2000_OPERAND_JMPTARGQ10 : + fields->f_jtargq10 = value; + break; + case IQ2000_OPERAND_LO16 : + fields->f_imm = value; + break; + case IQ2000_OPERAND_MASK : + fields->f_mask = value; + break; + case IQ2000_OPERAND_MASKL : + fields->f_maskl = value; + break; + case IQ2000_OPERAND_MASKQ10 : + fields->f_maskq10 = value; + break; + case IQ2000_OPERAND_MASKR : + fields->f_rs = value; + break; + case IQ2000_OPERAND_MLO16 : + fields->f_imm = value; + break; + case IQ2000_OPERAND_OFFSET : + fields->f_offset = value; + break; + case IQ2000_OPERAND_RD : + fields->f_rd = value; + break; + case IQ2000_OPERAND_RD_RS : + fields->f_rd_rs = value; + break; + case IQ2000_OPERAND_RD_RT : + fields->f_rd_rt = value; + break; + case IQ2000_OPERAND_RS : + fields->f_rs = value; + break; + case IQ2000_OPERAND_RT : + fields->f_rt = value; + break; + case IQ2000_OPERAND_RT_RS : + fields->f_rt_rs = value; + break; + case IQ2000_OPERAND_SHAMT : + fields->f_shamt = value; + break; + + default : + /* xgettext:c-format */ + fprintf (stderr, _("Unrecognized field %d while setting vma operand.\n"), + opindex); + abort (); + } +} + +/* Function to call before using the instruction builder tables. */ + +void +iq2000_cgen_init_ibld_table (cd) + CGEN_CPU_DESC cd; +{ + cd->insert_handlers = & iq2000_cgen_insert_handlers[0]; + cd->extract_handlers = & iq2000_cgen_extract_handlers[0]; + + cd->insert_operand = iq2000_cgen_insert_operand; + cd->extract_operand = iq2000_cgen_extract_operand; + + cd->get_int_operand = iq2000_cgen_get_int_operand; + cd->set_int_operand = iq2000_cgen_set_int_operand; + cd->get_vma_operand = iq2000_cgen_get_vma_operand; + cd->set_vma_operand = iq2000_cgen_set_vma_operand; +} diff -uprN binutils-2.13.90.0.16/opcodes/iq2000-opc.c binutils-2.13.90.0.18/opcodes/iq2000-opc.c --- binutils-2.13.90.0.16/opcodes/iq2000-opc.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/iq2000-opc.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,3482 @@ +/* Instruction opcode table for iq2000. + +THIS FILE IS MACHINE GENERATED WITH CGEN. + +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +This file is part of the GNU Binutils and/or GDB, the GNU debugger. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#include "sysdep.h" +#include "ansidecl.h" +#include "bfd.h" +#include "symcat.h" +#include "iq2000-desc.h" +#include "iq2000-opc.h" +#include "libiberty.h" + +/* The hash functions are recorded here to help keep assembler code out of + the disassembler and vice versa. */ + +static int asm_hash_insn_p PARAMS ((const CGEN_INSN *)); +static unsigned int asm_hash_insn PARAMS ((const char *)); +static int dis_hash_insn_p PARAMS ((const CGEN_INSN *)); +static unsigned int dis_hash_insn PARAMS ((const char *, CGEN_INSN_INT)); + +/* Instruction formats. */ + +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define F(f) & iq2000_cgen_ifld_table[IQ2000_##f] +#else +#define F(f) & iq2000_cgen_ifld_table[IQ2000_/**/f] +#endif +static const CGEN_IFMT ifmt_empty = { + 0, 0, 0x0, { { 0 } } +}; + +static const CGEN_IFMT ifmt_add2 = { + 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_add = { + 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_addi2 = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_addi = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_ram = { + 32, 32, 0xfc000020, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_5) }, { F (F_MASKL) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_sll = { + 32, 32, 0xffe0003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_sllv2 = { + 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_slmv2 = { + 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_slmv = { + 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_slti2 = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_slti = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_sra2 = { + 32, 32, 0xffe0003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_bbi = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_bbv = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_bgez = { + 32, 32, 0xfc1f0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_jalr = { + 32, 32, 0xfc1f07ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_jr = { + 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_lb = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_lui = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_break = { + 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_syscall = { + 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_EXCODE) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_andoui = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_andoui2 = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_mrgb = { + 32, 32, 0xfc00043f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_10) }, { F (F_MASK) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_mrgb2 = { + 32, 32, 0xfc00043f, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_10) }, { F (F_MASK) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_bc0f = { + 32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cfc0 = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_10_11) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_chkhdr = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_lulck = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_pkrlr1 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_COUNT) }, { F (F_INDEX) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_rfe = { + 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_25) }, { F (F_24_19) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_j = { + 32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RSRVD) }, { F (F_JTARG) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_mrgbq10 = { + 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_MASKQ10) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_mrgbq102 = { + 32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_MASKQ10) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_jq10 = { + 32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_JTARG) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_jalq10 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_JTARG) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_avail = { + 32, 32, 0xffff07ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_rbi = { + 32, 32, 0xfc000700, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cam36 = { + 32, 32, 0xffe007c0, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cm32and = { + 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cm32rd = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cm128ria3 = { + 32, 32, 0xfc0007fc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_cm128ria4 = { + 32, 32, 0xfc0007f8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_ctc = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +#undef F + +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define A(a) (1 << CGEN_INSN_##a) +#else +#define A(a) (1 << CGEN_INSN_/**/a) +#endif +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define OPERAND(op) IQ2000_OPERAND_##op +#else +#define OPERAND(op) IQ2000_OPERAND_/**/op +#endif +#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */ +#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field)) + +/* The instruction table. */ + +static const CGEN_OPCODE iq2000_cgen_insn_opcode_table[MAX_INSNS] = +{ + /* Special null first entry. + A `num' value of zero is thus invalid. + Also, the special `invalid' insn resides here. */ + { { 0, 0, 0, 0 }, {{0}}, 0, {0}}, +/* add ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x20 } + }, +/* add $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x20 } + }, +/* addi ${rt-rs},$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } }, + & ifmt_addi2, { 0x20000000 } + }, +/* addi $rt,$rs,$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } }, + & ifmt_addi, { 0x20000000 } + }, +/* addiu ${rt-rs},$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } }, + & ifmt_addi2, { 0x24000000 } + }, +/* addiu $rt,$rs,$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } }, + & ifmt_addi, { 0x24000000 } + }, +/* addu ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x21 } + }, +/* addu $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x21 } + }, +/* ado16 ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x29 } + }, +/* ado16 $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x29 } + }, +/* and ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x24 } + }, +/* and $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x24 } + }, +/* andi ${rt-rs},$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } }, + & ifmt_addi2, { 0x30000000 } + }, +/* andi $rt,$rs,$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } }, + & ifmt_addi, { 0x30000000 } + }, +/* andoi ${rt-rs},$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } }, + & ifmt_addi2, { 0xb0000000 } + }, +/* andoi $rt,$rs,$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } }, + & ifmt_addi, { 0xb0000000 } + }, +/* nor ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x27 } + }, +/* nor $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x27 } + }, +/* or ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x25 } + }, +/* or $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x25 } + }, +/* ori ${rt-rs},$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } }, + & ifmt_addi2, { 0x34000000 } + }, +/* ori $rt,$rs,$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } }, + & ifmt_addi, { 0x34000000 } + }, +/* ram $rd,$rt,$shamt,$maskl,$maskr */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), ',', OP (MASKL), ',', OP (MASKR), 0 } }, + & ifmt_ram, { 0x9c000000 } + }, +/* sll $rd,$rt,$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } }, + & ifmt_sll, { 0x0 } + }, +/* sllv ${rd-rt},$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } }, + & ifmt_sllv2, { 0x4 } + }, +/* sllv $rd,$rt,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } }, + & ifmt_add, { 0x4 } + }, +/* slmv ${rd-rt},$rs,$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RT), ',', OP (RS), ',', OP (SHAMT), 0 } }, + & ifmt_slmv2, { 0x1 } + }, +/* slmv $rd,$rt,$rs,$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), ',', OP (SHAMT), 0 } }, + & ifmt_slmv, { 0x1 } + }, +/* slt ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x2a } + }, +/* slt $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x2a } + }, +/* slti ${rt-rs},$imm */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (IMM), 0 } }, + & ifmt_slti2, { 0x28000000 } + }, +/* slti $rt,$rs,$imm */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } }, + & ifmt_slti, { 0x28000000 } + }, +/* sltiu ${rt-rs},$imm */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (IMM), 0 } }, + & ifmt_slti2, { 0x2c000000 } + }, +/* sltiu $rt,$rs,$imm */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } }, + & ifmt_slti, { 0x2c000000 } + }, +/* sltu ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x2b } + }, +/* sltu $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x2b } + }, +/* sra ${rd-rt},$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RT), ',', OP (SHAMT), 0 } }, + & ifmt_sra2, { 0x3 } + }, +/* sra $rd,$rt,$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } }, + & ifmt_sll, { 0x3 } + }, +/* srav ${rd-rt},$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } }, + & ifmt_sllv2, { 0x7 } + }, +/* srav $rd,$rt,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } }, + & ifmt_add, { 0x7 } + }, +/* srl $rd,$rt,$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } }, + & ifmt_sll, { 0x2 } + }, +/* srlv ${rd-rt},$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } }, + & ifmt_sllv2, { 0x6 } + }, +/* srlv $rd,$rt,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } }, + & ifmt_add, { 0x6 } + }, +/* srmv ${rd-rt},$rs,$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RT), ',', OP (RS), ',', OP (SHAMT), 0 } }, + & ifmt_slmv2, { 0x5 } + }, +/* srmv $rd,$rt,$rs,$shamt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), ',', OP (SHAMT), 0 } }, + & ifmt_slmv, { 0x5 } + }, +/* sub ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x22 } + }, +/* sub $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x22 } + }, +/* subu ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x23 } + }, +/* subu $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x23 } + }, +/* xor ${rd-rs},$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } }, + & ifmt_add2, { 0x26 } + }, +/* xor $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x26 } + }, +/* xori ${rt-rs},$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } }, + & ifmt_addi2, { 0x38000000 } + }, +/* xori $rt,$rs,$lo16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } }, + & ifmt_addi, { 0x38000000 } + }, +/* bbi $rs($bitnum),$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } }, + & ifmt_bbi, { 0x70000000 } + }, +/* bbin $rs($bitnum),$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } }, + & ifmt_bbi, { 0x78000000 } + }, +/* bbv $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x74000000 } + }, +/* bbvn $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x7c000000 } + }, +/* beq $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x10000000 } + }, +/* beql $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x50000000 } + }, +/* bgez $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4010000 } + }, +/* bgezal $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4110000 } + }, +/* bgezall $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4130000 } + }, +/* bgezl $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4030000 } + }, +/* bltz $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4000000 } + }, +/* bltzl $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4020000 } + }, +/* bltzal $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4100000 } + }, +/* bltzall $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4120000 } + }, +/* bmb0 $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x60000000 } + }, +/* bmb1 $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x64000000 } + }, +/* bmb2 $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x68000000 } + }, +/* bmb3 $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x6c000000 } + }, +/* bne $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x14000000 } + }, +/* bnel $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x54000000 } + }, +/* jalr $rd,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } }, + & ifmt_jalr, { 0x9 } + }, +/* jr $rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), 0 } }, + & ifmt_jr, { 0x8 } + }, +/* lb $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0x80000000 } + }, +/* lbu $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0x90000000 } + }, +/* lh $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0x84000000 } + }, +/* lhu $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0x94000000 } + }, +/* lui $rt,$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (HI16), 0 } }, + & ifmt_lui, { 0x3c000000 } + }, +/* lw $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0x8c000000 } + }, +/* sb $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0xa0000000 } + }, +/* sh $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0xa4000000 } + }, +/* sw $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0xac000000 } + }, +/* break */ + { + { 0, 0, 0, 0 }, + { { MNEM, 0 } }, + & ifmt_break, { 0xd } + }, +/* syscall */ + { + { 0, 0, 0, 0 }, + { { MNEM, 0 } }, + & ifmt_syscall, { 0xc } + }, +/* andoui $rt,$rs,$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } }, + & ifmt_andoui, { 0xfc000000 } + }, +/* andoui ${rt-rs},$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } }, + & ifmt_andoui2, { 0xfc000000 } + }, +/* orui ${rt-rs},$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } }, + & ifmt_andoui2, { 0xbc000000 } + }, +/* orui $rt,$rs,$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } }, + & ifmt_andoui, { 0xbc000000 } + }, +/* bgtz $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x1c000000 } + }, +/* bgtzl $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x5c000000 } + }, +/* blez $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x18000000 } + }, +/* blezl $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x58000000 } + }, +/* mrgb $rd,$rs,$rt,$mask */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (MASK), 0 } }, + & ifmt_mrgb, { 0x2d } + }, +/* mrgb ${rd-rs},$rt,$mask */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), ',', OP (MASK), 0 } }, + & ifmt_mrgb2, { 0x2d } + }, +/* bctxt $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4060000 } + }, +/* bc0f $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x41000000 } + }, +/* bc0fl $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x41020000 } + }, +/* bc3f $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x4d000000 } + }, +/* bc3fl $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x4d020000 } + }, +/* bc0t $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x41010000 } + }, +/* bc0tl $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x41030000 } + }, +/* bc3t $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x4d010000 } + }, +/* bc3tl $offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (OFFSET), 0 } }, + & ifmt_bc0f, { 0x4d030000 } + }, +/* cfc0 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x40400000 } + }, +/* cfc1 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x44400000 } + }, +/* cfc2 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x48400000 } + }, +/* cfc3 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x4c400000 } + }, +/* chkhdr $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4d200000 } + }, +/* ctc0 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x40c00000 } + }, +/* ctc1 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x44c00000 } + }, +/* ctc2 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x48c00000 } + }, +/* ctc3 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x4cc00000 } + }, +/* jcr $rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), 0 } }, + & ifmt_jr, { 0xa } + }, +/* luc32 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200003 } + }, +/* luc32l $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200007 } + }, +/* luc64 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x4820000b } + }, +/* luc64l $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x4820000f } + }, +/* luk $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200008 } + }, +/* lulck $rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), 0 } }, + & ifmt_lulck, { 0x48200004 } + }, +/* lum32 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200002 } + }, +/* lum32l $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200006 } + }, +/* lum64 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x4820000a } + }, +/* lum64l $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x4820000e } + }, +/* lur $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200001 } + }, +/* lurl $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200005 } + }, +/* luulck $rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), 0 } }, + & ifmt_lulck, { 0x48200000 } + }, +/* mfc0 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x40000000 } + }, +/* mfc1 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x44000000 } + }, +/* mfc2 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x48000000 } + }, +/* mfc3 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x4c000000 } + }, +/* mtc0 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x40800000 } + }, +/* mtc1 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x44800000 } + }, +/* mtc2 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x48800000 } + }, +/* mtc3 $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_cfc0, { 0x4c800000 } + }, +/* pkrl $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c200007 } + }, +/* pkrlr1 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4fa00000 } + }, +/* pkrlr30 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4fe00000 } + }, +/* rb $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c200004 } + }, +/* rbr1 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4f000000 } + }, +/* rbr30 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4f400000 } + }, +/* rfe */ + { + { 0, 0, 0, 0 }, + { { MNEM, 0 } }, + & ifmt_rfe, { 0x42000010 } + }, +/* rx $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c200006 } + }, +/* rxr1 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4f800000 } + }, +/* rxr30 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4fc00000 } + }, +/* sleep */ + { + { 0, 0, 0, 0 }, + { { MNEM, 0 } }, + & ifmt_syscall, { 0xe } + }, +/* srrd $rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), 0 } }, + & ifmt_lulck, { 0x48200010 } + }, +/* srrdl $rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), 0 } }, + & ifmt_lulck, { 0x48200014 } + }, +/* srulck $rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), 0 } }, + & ifmt_lulck, { 0x48200016 } + }, +/* srwr $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200011 } + }, +/* srwru $rt,$rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } }, + & ifmt_chkhdr, { 0x48200015 } + }, +/* trapqfl */ + { + { 0, 0, 0, 0 }, + { { MNEM, 0 } }, + & ifmt_break, { 0x4c200008 } + }, +/* trapqne */ + { + { 0, 0, 0, 0 }, + { { MNEM, 0 } }, + & ifmt_break, { 0x4c200009 } + }, +/* traprel $rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), 0 } }, + & ifmt_lulck, { 0x4c20000a } + }, +/* wb $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c200000 } + }, +/* wbu $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c200001 } + }, +/* wbr1 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4e000000 } + }, +/* wbr1u $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4e200000 } + }, +/* wbr30 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4e400000 } + }, +/* wbr30u $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4e600000 } + }, +/* wx $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c200002 } + }, +/* wxu $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c200003 } + }, +/* wxr1 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4e800000 } + }, +/* wxr1u $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4ea00000 } + }, +/* wxr30 $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4ec00000 } + }, +/* wxr30u $rt,$index,$count */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (INDEX), ',', OP (COUNT), 0 } }, + & ifmt_pkrlr1, { 0x4ee00000 } + }, +/* ldw $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0xc0000000 } + }, +/* sdw $rt,$lo16($base) */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } }, + & ifmt_lb, { 0xe0000000 } + }, +/* j $jmptarg */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (JMPTARG), 0 } }, + & ifmt_j, { 0x8000000 } + }, +/* jal $jmptarg */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (JMPTARG), 0 } }, + & ifmt_j, { 0xc000000 } + }, +/* bmb $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0xb4000000 } + }, +/* andoui $rt,$rs,$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } }, + & ifmt_andoui, { 0xbc000000 } + }, +/* andoui ${rt-rs},$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } }, + & ifmt_andoui2, { 0xbc000000 } + }, +/* orui $rt,$rs,$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } }, + & ifmt_andoui, { 0x3c000000 } + }, +/* orui ${rt-rs},$hi16 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } }, + & ifmt_andoui2, { 0x3c000000 } + }, +/* mrgb $rd,$rs,$rt,$maskq10 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (MASKQ10), 0 } }, + & ifmt_mrgbq10, { 0x2d } + }, +/* mrgb ${rd-rs},$rt,$maskq10 */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD_RS), ',', OP (RT), ',', OP (MASKQ10), 0 } }, + & ifmt_mrgbq102, { 0x2d } + }, +/* j $jmptarg */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (JMPTARG), 0 } }, + & ifmt_jq10, { 0x8000000 } + }, +/* jal $rt,$jmptarg */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RT), ',', OP (JMPTARG), 0 } }, + & ifmt_jalq10, { 0xc000000 } + }, +/* jal $jmptarg */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (JMPTARG), 0 } }, + & ifmt_jq10, { 0xc1f0000 } + }, +/* bbil $rs($bitnum),$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } }, + & ifmt_bbi, { 0xf0000000 } + }, +/* bbinl $rs($bitnum),$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } }, + & ifmt_bbi, { 0xf8000000 } + }, +/* bbvl $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0xf4000000 } + }, +/* bbvnl $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0xfc000000 } + }, +/* bgtzal $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4150000 } + }, +/* bgtzall $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4170000 } + }, +/* blezal $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4140000 } + }, +/* blezall $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4160000 } + }, +/* bgtz $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4050000 } + }, +/* bgtzl $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4070000 } + }, +/* blez $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4040000 } + }, +/* blezl $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4060000 } + }, +/* bmb $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x18000000 } + }, +/* bmbl $rs,$rt,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } }, + & ifmt_bbv, { 0x58000000 } + }, +/* bri $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4080000 } + }, +/* brv $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x4090000 } + }, +/* bctx $rs,$offset */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } }, + & ifmt_bgez, { 0x40c0000 } + }, +/* yield */ + { + { 0, 0, 0, 0 }, + { { MNEM, 0 } }, + & ifmt_break, { 0xe } + }, +/* crc32 $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000014 } + }, +/* crc32b $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000015 } + }, +/* cnt1s $rd,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } }, + & ifmt_add, { 0x2e } + }, +/* avail $rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), 0 } }, + & ifmt_avail, { 0x4c000024 } + }, +/* free $rd,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } }, + & ifmt_jalr, { 0x4c000025 } + }, +/* tstod $rd,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } }, + & ifmt_jalr, { 0x4c000027 } + }, +/* cmphdr $rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), 0 } }, + & ifmt_avail, { 0x4c00002c } + }, +/* mcid $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c000020 } + }, +/* dba $rd */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), 0 } }, + & ifmt_avail, { 0x4c000022 } + }, +/* dbd $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000021 } + }, +/* dpwt $rd,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } }, + & ifmt_jalr, { 0x4c000023 } + }, +/* chkhdr $rd,$rs */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } }, + & ifmt_jalr, { 0x4c000026 } + }, +/* rba $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000008 } + }, +/* rbal $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000009 } + }, +/* rbar $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c00000a } + }, +/* wba $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000010 } + }, +/* wbau $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000011 } + }, +/* wbac $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000012 } + }, +/* rbi $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x4c000200 } + }, +/* rbil $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x4c000300 } + }, +/* rbir $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x4c000100 } + }, +/* wbi $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x4c000600 } + }, +/* wbic $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x4c000500 } + }, +/* wbiu $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x4c000700 } + }, +/* pkrli $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x48000000 } + }, +/* pkrlih $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x48000200 } + }, +/* pkrliu $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x48000100 } + }, +/* pkrlic $rd,$rs,$rt,$bytecount */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } }, + & ifmt_rbi, { 0x48000300 } + }, +/* pkrla $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000028 } + }, +/* pkrlau $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000029 } + }, +/* pkrlah $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c00002a } + }, +/* pkrlac $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c00002b } + }, +/* lock $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c000001 } + }, +/* unlk $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c000003 } + }, +/* swrd $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c000004 } + }, +/* swrdl $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c000005 } + }, +/* swwr $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000006 } + }, +/* swwru $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c000007 } + }, +/* dwrd $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c00000c } + }, +/* dwrdl $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c00000d } + }, +/* cam36 $rd,$rt,${cam-z},${cam-y} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), ',', OP (CAM_Y), 0 } }, + & ifmt_cam36, { 0x4c000400 } + }, +/* cam72 $rd,$rt,${cam-y},${cam-z} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } }, + & ifmt_cam36, { 0x4c000440 } + }, +/* cam144 $rd,$rt,${cam-y},${cam-z} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } }, + & ifmt_cam36, { 0x4c000480 } + }, +/* cam288 $rd,$rt,${cam-y},${cam-z} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } }, + & ifmt_cam36, { 0x4c0004c0 } + }, +/* cm32and $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c0000ab } + }, +/* cm32andn $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c0000a3 } + }, +/* cm32or $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c0000aa } + }, +/* cm32ra $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c0000b0 } + }, +/* cm32rd $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c0000a1 } + }, +/* cm32ri $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c0000a4 } + }, +/* cm32rs $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_add, { 0x4c0000a0 } + }, +/* cm32sa $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c0000b8 } + }, +/* cm32sd $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c0000a9 } + }, +/* cm32si $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c0000ac } + }, +/* cm32ss $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c0000a8 } + }, +/* cm32xor $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c0000a2 } + }, +/* cm64clr $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c000085 } + }, +/* cm64ra $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c000090 } + }, +/* cm64rd $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c000081 } + }, +/* cm64ri $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c000084 } + }, +/* cm64ria2 $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c000094 } + }, +/* cm64rs $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c000080 } + }, +/* cm64sa $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c000098 } + }, +/* cm64sd $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c000089 } + }, +/* cm64si $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_cm32rd, { 0x4c00008c } + }, +/* cm64sia2 $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c00009c } + }, +/* cm64ss $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c000088 } + }, +/* cm128ria2 $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c000095 } + }, +/* cm128ria3 $rd,$rs,$rt,${cm-3z} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } }, + & ifmt_cm128ria3, { 0x4c000090 } + }, +/* cm128ria4 $rd,$rs,$rt,${cm-4z} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } }, + & ifmt_cm128ria4, { 0x4c0000b0 } + }, +/* cm128sia2 $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c00009d } + }, +/* cm128sia3 $rd,$rs,$rt,${cm-3z} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } }, + & ifmt_cm128ria3, { 0x4c000098 } + }, +/* cm128sia4 $rd,$rs,$rt,${cm-4z} */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } }, + & ifmt_cm128ria4, { 0x4c0000b8 } + }, +/* cm128vsa $rd,$rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } }, + & ifmt_cm32and, { 0x4c0000a6 } + }, +/* cfc $rd,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } }, + & ifmt_chkhdr, { 0x4c000000 } + }, +/* ctc $rs,$rt */ + { + { 0, 0, 0, 0 }, + { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } }, + & ifmt_ctc, { 0x4c000002 } + }, +}; + +#undef A +#undef OPERAND +#undef MNEM +#undef OP + +/* Formats for ALIAS macro-insns. */ + +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define F(f) & iq2000_cgen_ifld_table[IQ2000_##f] +#else +#define F(f) & iq2000_cgen_ifld_table[IQ2000_/**/f] +#endif +static const CGEN_IFMT ifmt_nop = { + 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_li = { + 32, 32, 0xfc1f0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_move = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_lb_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_lbu_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_lh_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_lw_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_add = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_addu = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_and = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_j = { + 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_or = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_sll = { + 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_slt = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_sltu = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_sra = { + 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_srl = { + 32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_not = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_subi = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_sub = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_subu = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_sb_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_sh_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_sw_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_xor = { + 32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_ldw_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_sdw_base_0 = { + 32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_avail = { + 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cam36 = { + 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cam72 = { + 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cam144 = { + 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cam288 = { + 32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32read = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64read = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32mlog = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32and = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32andn = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32or = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32ra = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32rd = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32ri = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32rs = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32sa = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32sd = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32si = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32ss = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm32xor = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64clr = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64ra = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64rd = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64ri = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64ria2 = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64rs = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64sa = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64sd = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64si = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64sia2 = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm64ss = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm128ria2 = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm128ria3 = { + 32, 32, 0xfc00fffc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm128ria4 = { + 32, 32, 0xfc00fff8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm128sia2 = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm128sia3 = { + 32, 32, 0xfc00fffc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cm128sia4 = { + 32, 32, 0xfc00fff8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_cmphdr = { + 32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_dbd = { + 32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m2_dbd = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_dpwt = { + 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_free = { + 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_lock = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrla = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrlac = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrlah = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrlau = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrli = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrlic = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrlih = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_pkrliu = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_rba = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_rbal = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_rbar = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_rbi = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_rbil = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_rbir = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_swwr = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_swwru = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_tstod = { + 32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_unlk = { + 32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_wba = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_wbac = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_wbau = { + 32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_wbi = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_wbic = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +static const CGEN_IFMT ifmt_m_wbiu = { + 32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } } +}; + +#undef F + +/* Each non-simple macro entry points to an array of expansion possibilities. */ + +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define A(a) (1 << CGEN_INSN_##a) +#else +#define A(a) (1 << CGEN_INSN_/**/a) +#endif +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) +#define OPERAND(op) IQ2000_OPERAND_##op +#else +#define OPERAND(op) IQ2000_OPERAND_/**/op +#endif +#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */ +#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field)) + +/* The macro instruction table. */ + +static const CGEN_IBASE iq2000_cgen_macro_insn_table[] = +{ +/* nop */ + { + -1, "nop", "nop", 32, + { 0|A(ALIAS), { (1<macro_insn_table.init_entries = insns; + cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE); + cd->macro_insn_table.num_init_entries = num_macros; + + oc = & iq2000_cgen_insn_opcode_table[0]; + insns = (CGEN_INSN *) cd->insn_table.init_entries; + for (i = 0; i < MAX_INSNS; ++i) + { + insns[i].opcode = &oc[i]; + iq2000_cgen_build_insn_regex (& insns[i]); + } + + cd->sizeof_fields = sizeof (CGEN_FIELDS); + cd->set_fields_bitsize = set_fields_bitsize; + + cd->asm_hash_p = asm_hash_insn_p; + cd->asm_hash = asm_hash_insn; + cd->asm_hash_size = CGEN_ASM_HASH_SIZE; + + cd->dis_hash_p = dis_hash_insn_p; + cd->dis_hash = dis_hash_insn; + cd->dis_hash_size = CGEN_DIS_HASH_SIZE; +} diff -uprN binutils-2.13.90.0.16/opcodes/iq2000-opc.h binutils-2.13.90.0.18/opcodes/iq2000-opc.h --- binutils-2.13.90.0.16/opcodes/iq2000-opc.h Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/iq2000-opc.h Tue Jan 21 10:21:34 2003 @@ -0,0 +1,181 @@ +/* Instruction opcode header for iq2000. + +THIS FILE IS MACHINE GENERATED WITH CGEN. + +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +This file is part of the GNU Binutils and/or GDB, the GNU debugger. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#ifndef IQ2000_OPC_H +#define IQ2000_OPC_H + +/* -- opc.h */ + +/* Allows reason codes to be output when assembler errors occur. */ +#define CGEN_VERBOSE_ASSEMBLER_ERRORS + +/* Override disassembly hashing - there are variable bits in the top + byte of these instructions. */ +#define CGEN_DIS_HASH_SIZE 8 +#define CGEN_DIS_HASH(buf,value) (((* (unsigned char*) (buf)) >> 6) % CGEN_DIS_HASH_SIZE) + +/* following activates check beyond hashing since some iq2000 and iq10 + instructions have same mnemonics but different functionality. */ +#define CGEN_VALIDATE_INSN_SUPPORTED + +extern int iq2000_cgen_insn_supported (CGEN_CPU_DESC cd, CGEN_INSN *insn); + +/* -- asm.c */ +/* Enum declaration for iq2000 instruction types. */ +typedef enum cgen_insn_type { + IQ2000_INSN_INVALID, IQ2000_INSN_ADD2, IQ2000_INSN_ADD, IQ2000_INSN_ADDI2 + , IQ2000_INSN_ADDI, IQ2000_INSN_ADDIU2, IQ2000_INSN_ADDIU, IQ2000_INSN_ADDU2 + , IQ2000_INSN_ADDU, IQ2000_INSN_ADO162, IQ2000_INSN_ADO16, IQ2000_INSN_AND2 + , IQ2000_INSN_AND, IQ2000_INSN_ANDI2, IQ2000_INSN_ANDI, IQ2000_INSN_ANDOI2 + , IQ2000_INSN_ANDOI, IQ2000_INSN_NOR2, IQ2000_INSN_NOR, IQ2000_INSN_OR2 + , IQ2000_INSN_OR, IQ2000_INSN_ORI2, IQ2000_INSN_ORI, IQ2000_INSN_RAM + , IQ2000_INSN_SLL, IQ2000_INSN_SLLV2, IQ2000_INSN_SLLV, IQ2000_INSN_SLMV2 + , IQ2000_INSN_SLMV, IQ2000_INSN_SLT2, IQ2000_INSN_SLT, IQ2000_INSN_SLTI2 + , IQ2000_INSN_SLTI, IQ2000_INSN_SLTIU2, IQ2000_INSN_SLTIU, IQ2000_INSN_SLTU2 + , IQ2000_INSN_SLTU, IQ2000_INSN_SRA2, IQ2000_INSN_SRA, IQ2000_INSN_SRAV2 + , IQ2000_INSN_SRAV, IQ2000_INSN_SRL, IQ2000_INSN_SRLV2, IQ2000_INSN_SRLV + , IQ2000_INSN_SRMV2, IQ2000_INSN_SRMV, IQ2000_INSN_SUB2, IQ2000_INSN_SUB + , IQ2000_INSN_SUBU2, IQ2000_INSN_SUBU, IQ2000_INSN_XOR2, IQ2000_INSN_XOR + , IQ2000_INSN_XORI2, IQ2000_INSN_XORI, IQ2000_INSN_BBI, IQ2000_INSN_BBIN + , IQ2000_INSN_BBV, IQ2000_INSN_BBVN, IQ2000_INSN_BEQ, IQ2000_INSN_BEQL + , IQ2000_INSN_BGEZ, IQ2000_INSN_BGEZAL, IQ2000_INSN_BGEZALL, IQ2000_INSN_BGEZL + , IQ2000_INSN_BLTZ, IQ2000_INSN_BLTZL, IQ2000_INSN_BLTZAL, IQ2000_INSN_BLTZALL + , IQ2000_INSN_BMB0, IQ2000_INSN_BMB1, IQ2000_INSN_BMB2, IQ2000_INSN_BMB3 + , IQ2000_INSN_BNE, IQ2000_INSN_BNEL, IQ2000_INSN_JALR, IQ2000_INSN_JR + , IQ2000_INSN_LB, IQ2000_INSN_LBU, IQ2000_INSN_LH, IQ2000_INSN_LHU + , IQ2000_INSN_LUI, IQ2000_INSN_LW, IQ2000_INSN_SB, IQ2000_INSN_SH + , IQ2000_INSN_SW, IQ2000_INSN_BREAK, IQ2000_INSN_SYSCALL, IQ2000_INSN_ANDOUI + , IQ2000_INSN_ANDOUI2, IQ2000_INSN_ORUI2, IQ2000_INSN_ORUI, IQ2000_INSN_BGTZ + , IQ2000_INSN_BGTZL, IQ2000_INSN_BLEZ, IQ2000_INSN_BLEZL, IQ2000_INSN_MRGB + , IQ2000_INSN_MRGB2, IQ2000_INSN_BCTXT, IQ2000_INSN_BC0F, IQ2000_INSN_BC0FL + , IQ2000_INSN_BC3F, IQ2000_INSN_BC3FL, IQ2000_INSN_BC0T, IQ2000_INSN_BC0TL + , IQ2000_INSN_BC3T, IQ2000_INSN_BC3TL, IQ2000_INSN_CFC0, IQ2000_INSN_CFC1 + , IQ2000_INSN_CFC2, IQ2000_INSN_CFC3, IQ2000_INSN_CHKHDR, IQ2000_INSN_CTC0 + , IQ2000_INSN_CTC1, IQ2000_INSN_CTC2, IQ2000_INSN_CTC3, IQ2000_INSN_JCR + , IQ2000_INSN_LUC32, IQ2000_INSN_LUC32L, IQ2000_INSN_LUC64, IQ2000_INSN_LUC64L + , IQ2000_INSN_LUK, IQ2000_INSN_LULCK, IQ2000_INSN_LUM32, IQ2000_INSN_LUM32L + , IQ2000_INSN_LUM64, IQ2000_INSN_LUM64L, IQ2000_INSN_LUR, IQ2000_INSN_LURL + , IQ2000_INSN_LUULCK, IQ2000_INSN_MFC0, IQ2000_INSN_MFC1, IQ2000_INSN_MFC2 + , IQ2000_INSN_MFC3, IQ2000_INSN_MTC0, IQ2000_INSN_MTC1, IQ2000_INSN_MTC2 + , IQ2000_INSN_MTC3, IQ2000_INSN_PKRL, IQ2000_INSN_PKRLR1, IQ2000_INSN_PKRLR30 + , IQ2000_INSN_RB, IQ2000_INSN_RBR1, IQ2000_INSN_RBR30, IQ2000_INSN_RFE + , IQ2000_INSN_RX, IQ2000_INSN_RXR1, IQ2000_INSN_RXR30, IQ2000_INSN_SLEEP + , IQ2000_INSN_SRRD, IQ2000_INSN_SRRDL, IQ2000_INSN_SRULCK, IQ2000_INSN_SRWR + , IQ2000_INSN_SRWRU, IQ2000_INSN_TRAPQFL, IQ2000_INSN_TRAPQNE, IQ2000_INSN_TRAPREL + , IQ2000_INSN_WB, IQ2000_INSN_WBU, IQ2000_INSN_WBR1, IQ2000_INSN_WBR1U + , IQ2000_INSN_WBR30, IQ2000_INSN_WBR30U, IQ2000_INSN_WX, IQ2000_INSN_WXU + , IQ2000_INSN_WXR1, IQ2000_INSN_WXR1U, IQ2000_INSN_WXR30, IQ2000_INSN_WXR30U + , IQ2000_INSN_LDW, IQ2000_INSN_SDW, IQ2000_INSN_J, IQ2000_INSN_JAL + , IQ2000_INSN_BMB, IQ2000_INSN_ANDOUI_Q10, IQ2000_INSN_ANDOUI2_Q10, IQ2000_INSN_ORUI_Q10 + , IQ2000_INSN_ORUI2_Q10, IQ2000_INSN_MRGBQ10, IQ2000_INSN_MRGBQ102, IQ2000_INSN_JQ10 + , IQ2000_INSN_JALQ10, IQ2000_INSN_JALQ10_2, IQ2000_INSN_BBIL, IQ2000_INSN_BBINL + , IQ2000_INSN_BBVL, IQ2000_INSN_BBVNL, IQ2000_INSN_BGTZAL, IQ2000_INSN_BGTZALL + , IQ2000_INSN_BLEZAL, IQ2000_INSN_BLEZALL, IQ2000_INSN_BGTZ_Q10, IQ2000_INSN_BGTZL_Q10 + , IQ2000_INSN_BLEZ_Q10, IQ2000_INSN_BLEZL_Q10, IQ2000_INSN_BMB_Q10, IQ2000_INSN_BMBL + , IQ2000_INSN_BRI, IQ2000_INSN_BRV, IQ2000_INSN_BCTX, IQ2000_INSN_YIELD + , IQ2000_INSN_CRC32, IQ2000_INSN_CRC32B, IQ2000_INSN_CNT1S, IQ2000_INSN_AVAIL + , IQ2000_INSN_FREE, IQ2000_INSN_TSTOD, IQ2000_INSN_CMPHDR, IQ2000_INSN_MCID + , IQ2000_INSN_DBA, IQ2000_INSN_DBD, IQ2000_INSN_DPWT, IQ2000_INSN_CHKHDRQ10 + , IQ2000_INSN_RBA, IQ2000_INSN_RBAL, IQ2000_INSN_RBAR, IQ2000_INSN_WBA + , IQ2000_INSN_WBAU, IQ2000_INSN_WBAC, IQ2000_INSN_RBI, IQ2000_INSN_RBIL + , IQ2000_INSN_RBIR, IQ2000_INSN_WBI, IQ2000_INSN_WBIC, IQ2000_INSN_WBIU + , IQ2000_INSN_PKRLI, IQ2000_INSN_PKRLIH, IQ2000_INSN_PKRLIU, IQ2000_INSN_PKRLIC + , IQ2000_INSN_PKRLA, IQ2000_INSN_PKRLAU, IQ2000_INSN_PKRLAH, IQ2000_INSN_PKRLAC + , IQ2000_INSN_LOCK, IQ2000_INSN_UNLK, IQ2000_INSN_SWRD, IQ2000_INSN_SWRDL + , IQ2000_INSN_SWWR, IQ2000_INSN_SWWRU, IQ2000_INSN_DWRD, IQ2000_INSN_DWRDL + , IQ2000_INSN_CAM36, IQ2000_INSN_CAM72, IQ2000_INSN_CAM144, IQ2000_INSN_CAM288 + , IQ2000_INSN_CM32AND, IQ2000_INSN_CM32ANDN, IQ2000_INSN_CM32OR, IQ2000_INSN_CM32RA + , IQ2000_INSN_CM32RD, IQ2000_INSN_CM32RI, IQ2000_INSN_CM32RS, IQ2000_INSN_CM32SA + , IQ2000_INSN_CM32SD, IQ2000_INSN_CM32SI, IQ2000_INSN_CM32SS, IQ2000_INSN_CM32XOR + , IQ2000_INSN_CM64CLR, IQ2000_INSN_CM64RA, IQ2000_INSN_CM64RD, IQ2000_INSN_CM64RI + , IQ2000_INSN_CM64RIA2, IQ2000_INSN_CM64RS, IQ2000_INSN_CM64SA, IQ2000_INSN_CM64SD + , IQ2000_INSN_CM64SI, IQ2000_INSN_CM64SIA2, IQ2000_INSN_CM64SS, IQ2000_INSN_CM128RIA2 + , IQ2000_INSN_CM128RIA3, IQ2000_INSN_CM128RIA4, IQ2000_INSN_CM128SIA2, IQ2000_INSN_CM128SIA3 + , IQ2000_INSN_CM128SIA4, IQ2000_INSN_CM128VSA, IQ2000_INSN_CFC, IQ2000_INSN_CTC +} CGEN_INSN_TYPE; + +/* Index of `invalid' insn place holder. */ +#define CGEN_INSN_INVALID IQ2000_INSN_INVALID + +/* Total number of insns in table. */ +#define MAX_INSNS ((int) IQ2000_INSN_CTC + 1) + +/* This struct records data prior to insertion or after extraction. */ +struct cgen_fields +{ + int length; + long f_nil; + long f_anyof; + long f_opcode; + long f_rs; + long f_rt; + long f_rd; + long f_shamt; + long f_cp_op; + long f_cp_op_10; + long f_cp_grp; + long f_func; + long f_imm; + long f_rd_rs; + long f_rd_rt; + long f_rt_rs; + long f_jtarg; + long f_jtargq10; + long f_offset; + long f_count; + long f_bytecount; + long f_index; + long f_mask; + long f_maskq10; + long f_maskl; + long f_excode; + long f_rsrvd; + long f_10_11; + long f_24_19; + long f_5; + long f_10; + long f_25; + long f_cam_z; + long f_cam_y; + long f_cm_3func; + long f_cm_4func; + long f_cm_3z; + long f_cm_4z; +}; + +#define CGEN_INIT_PARSE(od) \ +{\ +} +#define CGEN_INIT_INSERT(od) \ +{\ +} +#define CGEN_INIT_EXTRACT(od) \ +{\ +} +#define CGEN_INIT_PRINT(od) \ +{\ +} + + +#endif /* IQ2000_OPC_H */ diff -uprN binutils-2.13.90.0.16/opcodes/m32r-desc.c binutils-2.13.90.0.18/opcodes/m32r-desc.c --- binutils-2.13.90.0.16/opcodes/m32r-desc.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/m32r-desc.c Mon Dec 16 12:22:53 2002 @@ -32,6 +32,7 @@ with this program; if not, write to the #include "m32r-opc.h" #include "opintl.h" #include "libiberty.h" +#include "xregex.h" /* Attributes. */ @@ -319,109 +320,112 @@ const CGEN_OPERAND m32r_cgen_operand_tab { /* pc: program counter */ { "pc", M32R_OPERAND_PC, HW_H_PC, 0, 0, - { 0, &(m32r_cgen_ifld_table[0]) }, + { 0, { (const PTR) &m32r_cgen_ifld_table[0] } }, { 0|A(SEM_ONLY), { (1<macro_insn_table.init_entries) { @@ -1450,7 +1454,7 @@ m32r_cgen_cpu_close (cd) for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX ((insns))) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } @@ -1460,7 +1464,7 @@ m32r_cgen_cpu_close (cd) for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX (insns)) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } diff -uprN binutils-2.13.90.0.16/opcodes/m32r-dis.c binutils-2.13.90.0.18/opcodes/m32r-dis.c --- binutils-2.13.90.0.16/opcodes/m32r-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/m32r-dis.c Mon Dec 16 12:22:53 2002 @@ -4,7 +4,8 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -31,6 +32,7 @@ along with this program; if not, write t #include "dis-asm.h" #include "bfd.h" #include "symcat.h" +#include "libiberty.h" #include "m32r-desc.h" #include "m32r-opc.h" #include "opintl.h" diff -uprN binutils-2.13.90.0.16/opcodes/m68hc11-dis.c binutils-2.13.90.0.18/opcodes/m68hc11-dis.c --- binutils-2.13.90.0.16/opcodes/m68hc11-dis.c Tue Oct 29 20:09:13 2002 +++ binutils-2.13.90.0.18/opcodes/m68hc11-dis.c Mon Dec 16 12:22:53 2002 @@ -22,6 +22,8 @@ Foundation, Inc., 59 Temple Place - Suit #include "opcode/m68hc11.h" #include "dis-asm.h" +#define PC_REGNUM 3 + static const char *const reg_name[] = { "X", "Y", "SP", "PC" }; @@ -40,7 +42,7 @@ static const char *const reg_dst_table[] static int read_memory PARAMS ((bfd_vma, bfd_byte *, int, struct disassemble_info *)); static int print_indexed_operand - PARAMS ((bfd_vma, struct disassemble_info *, int*, int)); + PARAMS ((bfd_vma, struct disassemble_info *, int*, int, int, bfd_vma)); static int print_insn PARAMS ((bfd_vma, struct disassemble_info *, int)); @@ -68,11 +70,13 @@ read_memory (memaddr, buffer, size, info /* Read the 68HC12 indexed operand byte and print the corresponding mode. Returns the number of bytes read or -1 if failure. */ static int -print_indexed_operand (memaddr, info, indirect, mov_insn) +print_indexed_operand (memaddr, info, indirect, mov_insn, pc_offset, endaddr) bfd_vma memaddr; struct disassemble_info *info; int *indirect; int mov_insn; + int pc_offset; + bfd_vma endaddr; { bfd_byte buffer[4]; int reg; @@ -96,8 +100,18 @@ print_indexed_operand (memaddr, info, in sval = (buffer[0] & 0x1f); if (sval & 0x10) sval |= 0xfff0; + /* 68HC12 requires an adjustment for movb/movw pc relative modes. */ + if (reg == PC_REGNUM && info->mach == bfd_mach_m6812 && mov_insn) + sval += pc_offset; (*info->fprintf_func) (info->stream, "%d,%s", (int) sval, reg_name[reg]); + + if (reg == PC_REGNUM) + { + (* info->fprintf_func) (info->stream, " {"); + (* info->print_address_func) (endaddr + sval, info); + (* info->fprintf_func) (info->stream, "}"); + } } /* Auto pre/post increment/decrement. */ @@ -147,6 +161,8 @@ print_indexed_operand (memaddr, info, in if (indirect) *indirect = 1; } + + /* n,r with 9 and 16 bit signed constant. */ else if ((buffer[0] & 0x4) == 0) { if (mov_insn) @@ -167,6 +183,7 @@ print_indexed_operand (memaddr, info, in sval = ((buffer[1] << 8) | (buffer[2] & 0x0FF)); sval &= 0x0FFFF; pos += 2; + endaddr += 2; } else { @@ -174,9 +191,16 @@ print_indexed_operand (memaddr, info, in if (buffer[0] & 0x01) sval |= 0xff00; pos++; + endaddr++; } (*info->fprintf_func) (info->stream, "%d,%s", (int) sval, reg_name[reg]); + if (reg == PC_REGNUM) + { + (* info->fprintf_func) (info->stream, " {"); + (* info->print_address_func) (endaddr + sval, info); + (* info->fprintf_func) (info->stream, "}"); + } } else { @@ -299,6 +323,8 @@ print_insn (memaddr, info, arch) for (i = 0; i < m68hc11_num_opcodes; i++, opcode++) { int offset; + int pc_src_offset; + int pc_dst_offset; if ((opcode->arch & arch) == 0) continue; @@ -420,10 +446,13 @@ print_insn (memaddr, info, arch) /* This movb/movw is special (see above). */ offset = -offset; + pc_dst_offset = 2; if (format & M6811_OP_IMM8) { (*info->fprintf_func) (info->stream, "#%d", (int) buffer[0]); format &= ~M6811_OP_IMM8; + /* Set PC destination offset. */ + pc_dst_offset = 1; } else if (format & M6811_OP_IX) { @@ -444,13 +473,22 @@ print_insn (memaddr, info, arch) } } +#define M6812_DST_MOVE (M6812_OP_IND16_P2 | M6812_OP_IDX_P2) #define M6812_INDEXED_FLAGS (M6812_OP_IDX|M6812_OP_IDX_1|M6812_OP_IDX_2) /* Analyze the 68HC12 indexed byte. */ if (format & M6812_INDEXED_FLAGS) { int indirect; + bfd_vma endaddr; - status = print_indexed_operand (memaddr + pos, info, &indirect, 0); + endaddr = memaddr + pos + 1; + if (format & M6811_OP_IND16) + endaddr += 2; + pc_src_offset = -1; + pc_dst_offset = 1; + status = print_indexed_operand (memaddr + pos, info, &indirect, + (format & M6812_DST_MOVE), + pc_src_offset, endaddr); if (status < 0) { return status; @@ -515,6 +553,7 @@ print_insn (memaddr, info, arch) val = ((buffer[0] << 8) | (buffer[1] & 0x0FF)); val &= 0x0FFFF; addr = val; + pc_dst_offset = 2; if (format & M6812_OP_PAGE) { status = read_memory (memaddr + pos + offset, buffer, 1, info); @@ -568,7 +607,9 @@ print_insn (memaddr, info, arch) if (format & M6812_OP_IDX_P2) { (*info->fprintf_func) (info->stream, ", "); - status = print_indexed_operand (memaddr + pos + offset, info, 0, 1); + status = print_indexed_operand (memaddr + pos + offset, info, + 0, 1, pc_dst_offset, + memaddr + pos + offset + 1); if (status < 0) return status; pos += status; diff -uprN binutils-2.13.90.0.16/opcodes/mcore-dis.c binutils-2.13.90.0.18/opcodes/mcore-dis.c --- binutils-2.13.90.0.16/opcodes/mcore-dis.c Wed Aug 22 08:52:10 2001 +++ binutils-2.13.90.0.18/opcodes/mcore-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Disassemble Motorola M*Core instructions. - Copyright 1993, 1999, 2000 Free Software Foundation, Inc. + Copyright 1993, 1999, 2000, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -89,12 +89,12 @@ print_insn_mcore (memaddr, info) bfd_vma memaddr; struct disassemble_info *info; { - unsigned char ibytes[4]; - fprintf_ftype fprintf = info->fprintf_func; - void * stream = info->stream; - unsigned short inst; - mcore_opcode_info * op; - int status; + unsigned char ibytes[4]; + fprintf_ftype fprintf = info->fprintf_func; + void *stream = info->stream; + unsigned short inst; + const mcore_opcode_info *op; + int status; info->bytes_per_chunk = 2; @@ -128,19 +128,48 @@ print_insn_mcore (memaddr, info) switch (op->opclass) { - case O0: break; - case OT: fprintf (stream, "\t%d", inst & 0x3); break; + case O0: + break; + + case OT: + fprintf (stream, "\t%d", inst & 0x3); + break; + case O1: case JMP: - case JSR: fprintf (stream, "\t%s", name); break; - case OC: fprintf (stream, "\t%s, %s", name, crname[(inst >> 4) & 0x1F]); break; - case O1R1: fprintf (stream, "\t%s, r1", name); break; + case JSR: + fprintf (stream, "\t%s", name); + break; + + case OC: + fprintf (stream, "\t%s, %s", name, crname[(inst >> 4) & 0x1F]); + break; + + case O1R1: + fprintf (stream, "\t%s, r1", name); + break; + case MULSH: - case O2: fprintf (stream, "\t%s, %s", name, grname[(inst >> 4) & 0xF]); break; - case X1: fprintf (stream, "\tr1, %s", name); break; - case OI: fprintf (stream, "\t%s, %d", name, ((inst >> 4) & 0x1F) + 1); break; - case RM: fprintf (stream, "\t%s-r15, (r0)", name); break; - case RQ: fprintf (stream, "\tr4-r7, (%s)", name); break; + case O2: + fprintf (stream, "\t%s, %s", name, grname[(inst >> 4) & 0xF]); + break; + + case X1: + fprintf (stream, "\tr1, %s", name); + break; + + case OI: + fprintf (stream, "\t%s, %d", name, ((inst >> 4) & 0x1F) + 1); + break; + + case RM: + fprintf (stream, "\t%s-r15, (r0)", name); + break; + + case RQ: + fprintf (stream, "\tr4-r7, (%s)", name); + break; + case OB: case OBRa: case OBRb: @@ -149,10 +178,17 @@ print_insn_mcore (memaddr, info) case SIa: case OMa: case OMb: - case OMc: fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x1F); break; - case I7: fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x7F); break; - case LS: fprintf (stream, "\t%s, (%s, %d)", grname[(inst >> 8) & 0xF], - name, ((inst >> 4) & 0xF) << isiz[(inst >> 13) & 3]); + case OMc: + fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x1F); + break; + + case I7: + fprintf (stream, "\t%s, %d", name, (inst >> 4) & 0x7F); + break; + + case LS: + fprintf (stream, "\t%s, (%s, %d)", grname[(inst >> 8) & 0xF], + name, ((inst >> 4) & 0xF) << isiz[(inst >> 13) & 3]); break; case BR: diff -uprN binutils-2.13.90.0.16/opcodes/mips-dis.c binutils-2.13.90.0.18/opcodes/mips-dis.c --- binutils-2.13.90.0.16/opcodes/mips-dis.c Wed Oct 2 10:17:20 2002 +++ binutils-2.13.90.0.18/opcodes/mips-dis.c Tue Jan 21 10:21:34 2003 @@ -1,6 +1,6 @@ /* Print mips instructions for GDB, the GNU debugger, or for objdump. Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002 + 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Contributed by Nobuyuki Hikichi(hikichi@sra.co.jp). @@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suit #include "sysdep.h" #include "dis-asm.h" +#include "libiberty.h" #include "opcode/mips.h" #include "opintl.h" @@ -39,435 +40,970 @@ Foundation, Inc., 59 Temple Place - Suit /* Mips instructions are at maximum this many bytes long. */ #define INSNLEN 4 +static void set_default_mips_dis_options + PARAMS ((struct disassemble_info *)); +static void parse_mips_dis_option + PARAMS ((const char *, unsigned int)); +static void parse_mips_dis_options + PARAMS ((const char *)); static int _print_insn_mips PARAMS ((bfd_vma, struct disassemble_info *, enum bfd_endian)); static int print_insn_mips PARAMS ((bfd_vma, unsigned long int, struct disassemble_info *)); -static void print_insn_arg +static void print_insn_args PARAMS ((const char *, unsigned long, bfd_vma, struct disassemble_info *)); -static void mips_isa_type - PARAMS ((int, int *, int *)); static int print_insn_mips16 PARAMS ((bfd_vma, struct disassemble_info *)); static int is_newabi PARAMS ((Elf_Internal_Ehdr *)); static void print_mips16_insn_arg - PARAMS ((int, const struct mips_opcode *, int, boolean, int, bfd_vma, + PARAMS ((int, const struct mips_opcode *, int, bfd_boolean, int, bfd_vma, struct disassemble_info *)); /* FIXME: These should be shared with gdb somehow. */ +struct mips_cp0sel_name { + unsigned int cp0reg; + unsigned int sel; + const char * const name; +}; + /* The mips16 register names. */ static const char * const mips16_reg_names[] = { "s0", "s1", "v0", "v1", "a0", "a1", "a2", "a3" }; -static const char * const mips32_reg_names[] = { - "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", - "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", - "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", - "t8", "t9", "k0", "k1", "gp", "sp", "s8", "ra", - "sr", "lo", "hi", "bad", "cause", "pc", - "fv0", "$f1", "fv1", "$f3", "ft0", "$f5", "ft1", "$f7", - "ft2", "$f9", "ft3", "$f11", "fa0", "$f13", "fa1", "$f15", - "ft4", "f17", "ft5", "f19", "fs0", "f21", "fs1", "f23", - "fs2", "$f25", "fs3", "$f27", "fs4", "$f29", "fs5", "$f31", - "fsr", "fir", "fp", "inx", "rand", "tlblo", "ctxt", "tlbhi", - "epc", "prid" -}; - -static const char * const mips64_reg_names[] = { - "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", - "a4", "a5", "a6", "a7", "t0", "t1", "t2", "t3", - "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", - "t8", "t9", "k0", "k1", "gp", "sp", "s8", "ra", - "sr", "lo", "hi", "bad", "cause", "pc", - "fv0", "$f1", "fv1", "$f3", "ft0", "ft1", "ft2", "ft3", - "ft4", "ft5", "ft6", "ft7", "fa0", "fa1", "fa2", "fa3", - "fa4", "fa5", "fa6", "fa7", "ft8", "ft9", "ft10", "ft11", - "fs0", "fs1", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7", - "fsr", "fir", "fp", "inx", "rand", "tlblo", "ctxt", "tlbhi", - "epc", "prid" -}; - -/* Scalar register names. _print_insn_mips() decides which register name - table to use. */ -static const char * const *reg_names = NULL; - -/* Print insn arguments for 32/64-bit code. */ +static const char * const mips_gpr_names_numeric[32] = { + "$0", "$1", "$2", "$3", "$4", "$5", "$6", "$7", + "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", + "$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23", + "$24", "$25", "$26", "$27", "$28", "$29", "$30", "$31" +}; -static void -print_insn_arg (d, l, pc, info) - const char *d; - register unsigned long int l; - bfd_vma pc; - struct disassemble_info *info; -{ - int delta; +static const char * const mips_gpr_names_oldabi[32] = { + "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", + "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", + "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", + "t8", "t9", "k0", "k1", "gp", "sp", "s8", "ra" +}; - switch (*d) - { - case ',': - case '(': - case ')': - case '[': - case ']': - (*info->fprintf_func) (info->stream, "%c", *d); - break; +static const char * const mips_gpr_names_newabi[32] = { + "zero", "at", "v0", "v1", "a0", "a1", "a2", "a3", + "a4", "a5", "a6", "a7", "t0", "t1", "t2", "t3", + "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", + "t8", "t9", "k0", "k1", "gp", "sp", "s8", "ra" +}; - case 's': - case 'b': - case 'r': - case 'v': - (*info->fprintf_func) (info->stream, "%s", - reg_names[(l >> OP_SH_RS) & OP_MASK_RS]); - break; +static const char * const mips_fpr_names_numeric[32] = { + "$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7", + "$f8", "$f9", "$f10", "$f11", "$f12", "$f13", "$f14", "$f15", + "$f16", "$f17", "$f18", "$f19", "$f20", "$f21", "$f22", "$f23", + "$f24", "$f25", "$f26", "$f27", "$f28", "$f29", "$f30", "$f31" +}; - case 't': - case 'w': - (*info->fprintf_func) (info->stream, "%s", - reg_names[(l >> OP_SH_RT) & OP_MASK_RT]); - break; +static const char * const mips_fpr_names_32[32] = { + "fv0", "fv0f", "fv1", "fv1f", "ft0", "ft0f", "ft1", "ft1f", + "ft2", "ft2f", "ft3", "ft3f", "fa0", "fa0f", "fa1", "fa1f", + "ft4", "ft4f", "ft5", "ft5f", "fs0", "fs0f", "fs1", "fs1f", + "fs2", "fs2f", "fs3", "fs3f", "fs4", "fs4f", "fs5", "fs5f" +}; - case 'i': - case 'u': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_IMMEDIATE) & OP_MASK_IMMEDIATE); - break; +static const char * const mips_fpr_names_n32[32] = { + "fv0", "ft14", "fv1", "ft15", "ft0", "ft1", "ft2", "ft3", + "ft4", "ft5", "ft6", "ft7", "fa0", "fa1", "fa2", "fa3", + "fa4", "fa5", "fa6", "fa7", "fs0", "ft8", "fs1", "ft9", + "fs2", "ft10", "fs3", "ft11", "fs4", "ft12", "fs5", "ft13" +}; - case 'j': /* Same as i, but sign-extended. */ - case 'o': - delta = (l >> OP_SH_DELTA) & OP_MASK_DELTA; - if (delta & 0x8000) - delta |= ~0xffff; - (*info->fprintf_func) (info->stream, "%d", - delta); - break; +static const char * const mips_fpr_names_64[32] = { + "fv0", "ft12", "fv1", "ft13", "ft0", "ft1", "ft2", "ft3", + "ft4", "ft5", "ft6", "ft7", "fa0", "fa1", "fa2", "fa3", + "fa4", "fa5", "fa6", "fa7", "ft8", "ft9", "ft10", "ft11", + "fs0", "fs1", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7" +}; - case 'h': - (*info->fprintf_func) (info->stream, "0x%x", - (unsigned int) ((l >> OP_SH_PREFX) - & OP_MASK_PREFX)); - break; +static const char * const mips_cp0_names_numeric[32] = { + "$0", "$1", "$2", "$3", "$4", "$5", "$6", "$7", + "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", + "$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23", + "$24", "$25", "$26", "$27", "$28", "$29", "$30", "$31" +}; - case 'k': - (*info->fprintf_func) (info->stream, "0x%x", - (unsigned int) ((l >> OP_SH_CACHE) - & OP_MASK_CACHE)); - break; +static const char * const mips_cp0_names_mips3264[32] = { + "c0_index", "c0_random", "c0_entrylo0", "c0_entrylo1", + "c0_context", "c0_pagemask", "c0_wired", "$7", + "c0_badvaddr", "c0_count", "c0_entryhi", "c0_compare", + "c0_status", "c0_cause", "c0_epc", "c0_prid", + "c0_config", "c0_lladdr", "c0_watchlo", "c0_watchhi", + "c0_xcontext", "$21", "$22", "c0_debug", + "c0_depc", "c0_perfcnt", "c0_errctl", "c0_cacheerr", + "c0_taglo", "c0_taghi", "c0_errorepc", "c0_desave", +}; - case 'a': - info->target = (((pc + 4) & ~(bfd_vma) 0x0fffffff) - | (((l >> OP_SH_TARGET) & OP_MASK_TARGET) << 2)); - (*info->print_address_func) (info->target, info); - break; +static const struct mips_cp0sel_name mips_cp0sel_names_mips3264[] = { + { 16, 1, "c0_config1" }, + { 16, 2, "c0_config2" }, + { 16, 3, "c0_config3" }, + { 18, 1, "c0_watchlo,1" }, + { 18, 2, "c0_watchlo,2" }, + { 18, 3, "c0_watchlo,3" }, + { 18, 4, "c0_watchlo,4" }, + { 18, 5, "c0_watchlo,5" }, + { 18, 6, "c0_watchlo,6" }, + { 18, 7, "c0_watchlo,7" }, + { 19, 1, "c0_watchhi,1" }, + { 19, 2, "c0_watchhi,2" }, + { 19, 3, "c0_watchhi,3" }, + { 19, 4, "c0_watchhi,4" }, + { 19, 5, "c0_watchhi,5" }, + { 19, 6, "c0_watchhi,6" }, + { 19, 7, "c0_watchhi,7" }, + { 25, 1, "c0_perfcnt,1" }, + { 25, 2, "c0_perfcnt,2" }, + { 25, 3, "c0_perfcnt,3" }, + { 25, 4, "c0_perfcnt,4" }, + { 25, 5, "c0_perfcnt,5" }, + { 25, 6, "c0_perfcnt,6" }, + { 25, 7, "c0_perfcnt,7" }, + { 27, 1, "c0_cacheerr,1" }, + { 27, 2, "c0_cacheerr,2" }, + { 27, 3, "c0_cacheerr,3" }, + { 28, 1, "c0_datalo" }, + { 29, 1, "c0_datahi" } +}; - case 'p': - /* Sign extend the displacement. */ - delta = (l >> OP_SH_DELTA) & OP_MASK_DELTA; - if (delta & 0x8000) - delta |= ~0xffff; - info->target = (delta << 2) + pc + INSNLEN; - (*info->print_address_func) (info->target, info); - break; +static const char * const mips_cp0_names_mips3264r2[32] = { + "c0_index", "c0_random", "c0_entrylo0", "c0_entrylo1", + "c0_context", "c0_pagemask", "c0_wired", "c0_hwrena", + "c0_badvaddr", "c0_count", "c0_entryhi", "c0_compare", + "c0_status", "c0_cause", "c0_epc", "c0_prid", + "c0_config", "c0_lladdr", "c0_watchlo", "c0_watchhi", + "c0_xcontext", "$21", "$22", "c0_debug", + "c0_depc", "c0_perfcnt", "c0_errctl", "c0_cacheerr", + "c0_taglo", "c0_taghi", "c0_errorepc", "c0_desave", +}; - case 'd': - (*info->fprintf_func) (info->stream, "%s", - reg_names[(l >> OP_SH_RD) & OP_MASK_RD]); - break; +static const struct mips_cp0sel_name mips_cp0sel_names_mips3264r2[] = { + { 4, 1, "c0_contextconfig" }, + { 5, 1, "c0_pagegrain" }, + { 12, 1, "c0_intctl" }, + { 12, 2, "c0_srsctl" }, + { 12, 3, "c0_srsmap" }, + { 15, 1, "c0_ebase" }, + { 16, 1, "c0_config1" }, + { 16, 2, "c0_config2" }, + { 16, 3, "c0_config3" }, + { 18, 1, "c0_watchlo,1" }, + { 18, 2, "c0_watchlo,2" }, + { 18, 3, "c0_watchlo,3" }, + { 18, 4, "c0_watchlo,4" }, + { 18, 5, "c0_watchlo,5" }, + { 18, 6, "c0_watchlo,6" }, + { 18, 7, "c0_watchlo,7" }, + { 19, 1, "c0_watchhi,1" }, + { 19, 2, "c0_watchhi,2" }, + { 19, 3, "c0_watchhi,3" }, + { 19, 4, "c0_watchhi,4" }, + { 19, 5, "c0_watchhi,5" }, + { 19, 6, "c0_watchhi,6" }, + { 19, 7, "c0_watchhi,7" }, + { 23, 1, "c0_tracecontrol" }, + { 23, 2, "c0_tracecontrol2" }, + { 23, 3, "c0_usertracedata" }, + { 23, 4, "c0_tracebpc" }, + { 25, 1, "c0_perfcnt,1" }, + { 25, 2, "c0_perfcnt,2" }, + { 25, 3, "c0_perfcnt,3" }, + { 25, 4, "c0_perfcnt,4" }, + { 25, 5, "c0_perfcnt,5" }, + { 25, 6, "c0_perfcnt,6" }, + { 25, 7, "c0_perfcnt,7" }, + { 27, 1, "c0_cacheerr,1" }, + { 27, 2, "c0_cacheerr,2" }, + { 27, 3, "c0_cacheerr,3" }, + { 28, 1, "c0_datalo" }, + { 28, 2, "c0_taglo1" }, + { 28, 3, "c0_datalo1" }, + { 28, 4, "c0_taglo2" }, + { 28, 5, "c0_datalo2" }, + { 28, 6, "c0_taglo3" }, + { 28, 7, "c0_datalo3" }, + { 29, 1, "c0_datahi" }, + { 29, 2, "c0_taghi1" }, + { 29, 3, "c0_datahi1" }, + { 29, 4, "c0_taghi2" }, + { 29, 5, "c0_datahi2" }, + { 29, 6, "c0_taghi3" }, + { 29, 7, "c0_datahi3" }, +}; - case 'U': - { - /* First check for both rd and rt being equal. */ - unsigned int reg = (l >> OP_SH_RD) & OP_MASK_RD; - if (reg == ((l >> OP_SH_RT) & OP_MASK_RT)) - (*info->fprintf_func) (info->stream, "%s", - reg_names[reg]); - else - { - /* If one is zero use the other. */ - if (reg == 0) - (*info->fprintf_func) (info->stream, "%s", - reg_names[(l >> OP_SH_RT) & OP_MASK_RT]); - else if (((l >> OP_SH_RT) & OP_MASK_RT) == 0) - (*info->fprintf_func) (info->stream, "%s", - reg_names[reg]); - else /* Bogus, result depends on processor. */ - (*info->fprintf_func) (info->stream, "%s or %s", - reg_names[reg], - reg_names[(l >> OP_SH_RT) & OP_MASK_RT]); - } - } - break; +/* SB-1: MIPS64 (mips_cp0_names_mips3264) with minor mods. */ +static const char * const mips_cp0_names_sb1[32] = { + "c0_index", "c0_random", "c0_entrylo0", "c0_entrylo1", + "c0_context", "c0_pagemask", "c0_wired", "$7", + "c0_badvaddr", "c0_count", "c0_entryhi", "c0_compare", + "c0_status", "c0_cause", "c0_epc", "c0_prid", + "c0_config", "c0_lladdr", "c0_watchlo", "c0_watchhi", + "c0_xcontext", "$21", "$22", "c0_debug", + "c0_depc", "c0_perfcnt", "c0_errctl", "c0_cacheerr_i", + "c0_taglo_i", "c0_taghi_i", "c0_errorepc", "c0_desave", +}; - case 'z': - (*info->fprintf_func) (info->stream, "%s", reg_names[0]); - break; +static const struct mips_cp0sel_name mips_cp0sel_names_sb1[] = { + { 16, 1, "c0_config1" }, + { 18, 1, "c0_watchlo,1" }, + { 19, 1, "c0_watchhi,1" }, + { 22, 0, "c0_perftrace" }, + { 23, 3, "c0_edebug" }, + { 25, 1, "c0_perfcnt,1" }, + { 25, 2, "c0_perfcnt,2" }, + { 25, 3, "c0_perfcnt,3" }, + { 25, 4, "c0_perfcnt,4" }, + { 25, 5, "c0_perfcnt,5" }, + { 25, 6, "c0_perfcnt,6" }, + { 25, 7, "c0_perfcnt,7" }, + { 26, 1, "c0_buserr_pa" }, + { 27, 1, "c0_cacheerr_d" }, + { 27, 3, "c0_cacheerr_d_pa" }, + { 28, 1, "c0_datalo_i" }, + { 28, 2, "c0_taglo_d" }, + { 28, 3, "c0_datalo_d" }, + { 29, 1, "c0_datahi_i" }, + { 29, 2, "c0_taghi_d" }, + { 29, 3, "c0_datahi_d" }, +}; - case '<': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_SHAMT) & OP_MASK_SHAMT); - break; +static const char * const mips_hwr_names_numeric[32] = { + "$0", "$1", "$2", "$3", "$4", "$5", "$6", "$7", + "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", + "$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23", + "$24", "$25", "$26", "$27", "$28", "$29", "$30", "$31" +}; - case 'c': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_CODE) & OP_MASK_CODE); - break; +static const char * const mips_hwr_names_mips3264r2[32] = { + "hwr_cpunum", "hwr_synci_step", "hwr_cc", "hwr_ccres", + "$4", "$5", "$6", "$7", + "$8", "$9", "$10", "$11", "$12", "$13", "$14", "$15", + "$16", "$17", "$18", "$19", "$20", "$21", "$22", "$23", + "$24", "$25", "$26", "$27", "$28", "$29", "$30", "$31" +}; - case 'q': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_CODE2) & OP_MASK_CODE2); - break; +struct mips_abi_choice { + const char *name; + const char * const *gpr_names; + const char * const *fpr_names; +}; - case 'C': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_COPZ) & OP_MASK_COPZ); - break; +struct mips_abi_choice mips_abi_choices[] = { + { "numeric", mips_gpr_names_numeric, mips_fpr_names_numeric }, + { "32", mips_gpr_names_oldabi, mips_fpr_names_32 }, + { "n32", mips_gpr_names_newabi, mips_fpr_names_n32 }, + { "64", mips_gpr_names_newabi, mips_fpr_names_64 }, +}; - case 'B': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_CODE20) & OP_MASK_CODE20); - break; +struct mips_arch_choice { + const char *name; + int bfd_mach_valid; + unsigned long bfd_mach; + int processor; + int isa; + const char * const *cp0_names; + const struct mips_cp0sel_name *cp0sel_names; + unsigned int cp0sel_names_len; + const char * const *hwr_names; +}; - case 'J': - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_CODE19) & OP_MASK_CODE19); - break; +const struct mips_arch_choice mips_arch_choices[] = { + { "numeric", 0, 0, 0, 0, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + + { "r3000", 1, bfd_mach_mips3000, CPU_R3000, ISA_MIPS1, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r3900", 1, bfd_mach_mips3900, CPU_R3900, ISA_MIPS1, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r4000", 1, bfd_mach_mips4000, CPU_R4000, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r4010", 1, bfd_mach_mips4010, CPU_R4010, ISA_MIPS2, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "vr4100", 1, bfd_mach_mips4100, CPU_VR4100, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "vr4111", 1, bfd_mach_mips4111, CPU_R4111, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "vr4120", 1, bfd_mach_mips4120, CPU_VR4120, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r4300", 1, bfd_mach_mips4300, CPU_R4300, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r4400", 1, bfd_mach_mips4400, CPU_R4400, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r4600", 1, bfd_mach_mips4600, CPU_R4600, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r4650", 1, bfd_mach_mips4650, CPU_R4650, ISA_MIPS3, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r5000", 1, bfd_mach_mips5000, CPU_R5000, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "vr5400", 1, bfd_mach_mips5400, CPU_VR5400, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "vr5500", 1, bfd_mach_mips5500, CPU_VR5500, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r6000", 1, bfd_mach_mips6000, CPU_R6000, ISA_MIPS2, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r8000", 1, bfd_mach_mips8000, CPU_R8000, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r10000", 1, bfd_mach_mips10000, CPU_R10000, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "r12000", 1, bfd_mach_mips12000, CPU_R12000, ISA_MIPS4, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + { "mips5", 1, bfd_mach_mips5, CPU_MIPS5, ISA_MIPS5, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, + + /* For stock MIPS32, disassemble all applicable MIPS-specified ASEs. + Note that MIPS-3D and MDMX are not applicable to MIPS32. (See + _MIPS32 Architecture For Programmers Volume I: Introduction to the + MIPS32 Architecture_ (MIPS Document Number MD00082, Revision 0.95), + page 1. */ + { "mips32", 1, bfd_mach_mipsisa32, CPU_MIPS32, + ISA_MIPS32 | INSN_MIPS16, + mips_cp0_names_mips3264, + mips_cp0sel_names_mips3264, ARRAY_SIZE (mips_cp0sel_names_mips3264), + mips_hwr_names_numeric }, + + { "mips32r2", 1, bfd_mach_mipsisa32r2, CPU_MIPS32R2, + ISA_MIPS32R2 | INSN_MIPS16, + mips_cp0_names_mips3264r2, + mips_cp0sel_names_mips3264r2, ARRAY_SIZE (mips_cp0sel_names_mips3264r2), + mips_hwr_names_mips3264r2 }, + + /* For stock MIPS64, disassemble all applicable MIPS-specified ASEs. */ + { "mips64", 1, bfd_mach_mipsisa64, CPU_MIPS64, + ISA_MIPS64 | INSN_MIPS16 | INSN_MIPS3D | INSN_MDMX, + mips_cp0_names_mips3264, + mips_cp0sel_names_mips3264, ARRAY_SIZE (mips_cp0sel_names_mips3264), + mips_hwr_names_numeric }, + + { "sb1", 1, bfd_mach_mips_sb1, CPU_SB1, + ISA_MIPS64 | INSN_MIPS3D | INSN_SB1, + mips_cp0_names_sb1, + mips_cp0sel_names_sb1, ARRAY_SIZE (mips_cp0sel_names_sb1), + mips_hwr_names_numeric }, + + /* This entry, mips16, is here only for ISA/processor selection; do + not print its name. */ + { "", 1, bfd_mach_mips16, CPU_MIPS16, ISA_MIPS3 | INSN_MIPS16, + mips_cp0_names_numeric, NULL, 0, mips_hwr_names_numeric }, +}; - case 'S': - case 'V': - (*info->fprintf_func) (info->stream, "$f%d", - (l >> OP_SH_FS) & OP_MASK_FS); - break; +/* ISA and processor type to disassemble for, and register names to use. + set_default_mips_dis_options and parse_mips_dis_options fill in these + values. */ +static int mips_processor; +static int mips_isa; +static const char * const *mips_gpr_names; +static const char * const *mips_fpr_names; +static const char * const *mips_cp0_names; +static const struct mips_cp0sel_name *mips_cp0sel_names; +static int mips_cp0sel_names_len; +static const char * const *mips_hwr_names; + +static const struct mips_abi_choice *choose_abi_by_name + PARAMS ((const char *, unsigned int)); +static const struct mips_arch_choice *choose_arch_by_name + PARAMS ((const char *, unsigned int)); +static const struct mips_arch_choice *choose_arch_by_number + PARAMS ((unsigned long)); +static const struct mips_cp0sel_name *lookup_mips_cp0sel_name + PARAMS ((const struct mips_cp0sel_name *, unsigned int, unsigned int, + unsigned int)); + +static const struct mips_abi_choice * +choose_abi_by_name (name, namelen) + const char *name; + unsigned int namelen; +{ + const struct mips_abi_choice *c; + unsigned int i; - case 'T': - case 'W': - (*info->fprintf_func) (info->stream, "$f%d", - (l >> OP_SH_FT) & OP_MASK_FT); - break; + for (i = 0, c = NULL; i < ARRAY_SIZE (mips_abi_choices) && c == NULL; i++) + { + if (strncmp (mips_abi_choices[i].name, name, namelen) == 0 + && strlen (mips_abi_choices[i].name) == namelen) + c = &mips_abi_choices[i]; + } + return c; +} - case 'D': - (*info->fprintf_func) (info->stream, "$f%d", - (l >> OP_SH_FD) & OP_MASK_FD); - break; +static const struct mips_arch_choice * +choose_arch_by_name (name, namelen) + const char *name; + unsigned int namelen; +{ + const struct mips_arch_choice *c = NULL; + unsigned int i; - case 'R': - (*info->fprintf_func) (info->stream, "$f%d", - (l >> OP_SH_FR) & OP_MASK_FR); - break; + for (i = 0, c = NULL; i < ARRAY_SIZE (mips_arch_choices) && c == NULL; i++) + { + if (strncmp (mips_arch_choices[i].name, name, namelen) == 0 + && strlen (mips_arch_choices[i].name) == namelen) + c = &mips_arch_choices[i]; + } + return c; +} - case 'E': - (*info->fprintf_func) (info->stream, "$%d", - (l >> OP_SH_RT) & OP_MASK_RT); - break; +static const struct mips_arch_choice * +choose_arch_by_number (mach) + unsigned long mach; +{ + static unsigned long hint_bfd_mach; + static const struct mips_arch_choice *hint_arch_choice; + const struct mips_arch_choice *c; + unsigned int i; + + /* We optimize this because even if the user specifies no + flags, this will be done for every instruction! */ + if (hint_bfd_mach == mach + && hint_arch_choice != NULL + && hint_arch_choice->bfd_mach == hint_bfd_mach) + return hint_arch_choice; - case 'G': - (*info->fprintf_func) (info->stream, "$%d", - (l >> OP_SH_RD) & OP_MASK_RD); - break; + for (i = 0, c = NULL; i < ARRAY_SIZE (mips_arch_choices) && c == NULL; i++) + { + if (mips_arch_choices[i].bfd_mach_valid + && mips_arch_choices[i].bfd_mach == mach) + { + c = &mips_arch_choices[i]; + hint_bfd_mach = mach; + hint_arch_choice = c; + } + } + return c; +} - case 'N': - (*info->fprintf_func) (info->stream, "$fcc%d", - (l >> OP_SH_BCC) & OP_MASK_BCC); - break; +void +set_default_mips_dis_options (info) + struct disassemble_info *info; +{ + const struct mips_arch_choice *chosen_arch; - case 'M': - (*info->fprintf_func) (info->stream, "$fcc%d", - (l >> OP_SH_CCC) & OP_MASK_CCC); - break; + /* Defaults: mipsIII/r3000 (?!), (o)32-style ("oldabi") GPR names, + and numeric FPR, CP0 register, and HWR names. */ + mips_isa = ISA_MIPS3; + mips_processor = CPU_R3000; + mips_gpr_names = mips_gpr_names_oldabi; + mips_fpr_names = mips_fpr_names_numeric; + mips_cp0_names = mips_cp0_names_numeric; + mips_cp0sel_names = NULL; + mips_cp0sel_names_len = 0; + mips_hwr_names = mips_hwr_names_numeric; - case 'P': - (*info->fprintf_func) (info->stream, "%d", - (l >> OP_SH_PERFREG) & OP_MASK_PERFREG); - break; + /* If an ELF "newabi" binary, use the n32/(n)64 GPR names. */ + if (info->flavour == bfd_target_elf_flavour && info->symbols != NULL) + { + Elf_Internal_Ehdr *header; - case 'e': - (*info->fprintf_func) (info->stream, "%d", - (l >> OP_SH_VECBYTE) & OP_MASK_VECBYTE); - break; + header = elf_elfheader (bfd_asymbol_bfd (*(info->symbols))); + if (is_newabi (header)) + mips_gpr_names = mips_gpr_names_newabi; + } - case '%': - (*info->fprintf_func) (info->stream, "%d", - (l >> OP_SH_VECALIGN) & OP_MASK_VECALIGN); - break; + /* Set ISA, architecture, and cp0 register names as best we can. */ +#if ! SYMTAB_AVAILABLE + /* This is running out on a target machine, not in a host tool. + FIXME: Where does mips_target_info come from? */ + target_processor = mips_target_info.processor; + mips_isa = mips_target_info.isa; +#else + chosen_arch = choose_arch_by_number (info->mach); + if (chosen_arch != NULL) + { + mips_processor = chosen_arch->processor; + mips_isa = chosen_arch->isa; + mips_cp0_names = chosen_arch->cp0_names; + mips_cp0sel_names = chosen_arch->cp0sel_names; + mips_cp0sel_names_len = chosen_arch->cp0sel_names_len; + mips_hwr_names = chosen_arch->hwr_names; + } +#endif +} - case 'H': - (*info->fprintf_func) (info->stream, "%d", - (l >> OP_SH_SEL) & OP_MASK_SEL); - break; +void +parse_mips_dis_option (option, len) + const char *option; + unsigned int len; +{ + unsigned int i, optionlen, vallen; + const char *val; + const struct mips_abi_choice *chosen_abi; + const struct mips_arch_choice *chosen_arch; - case 'O': - (*info->fprintf_func) (info->stream, "%d", - (l >> OP_SH_ALN) & OP_MASK_ALN); - break; + /* Look for the = that delimits the end of the option name. */ + for (i = 0; i < len; i++) + { + if (option[i] == '=') + break; + } + if (i == 0) /* Invalid option: no name before '='. */ + return; + if (i == len) /* Invalid option: no '='. */ + return; + if (i == (len - 1)) /* Invalid option: no value after '='. */ + return; + + optionlen = i; + val = option + (optionlen + 1); + vallen = len - (optionlen + 1); - case 'Q': - { - unsigned int vsel = (l >> OP_SH_VSEL) & OP_MASK_VSEL; - if ((vsel & 0x10) == 0) - { - int fmt; - vsel &= 0x0f; - for (fmt = 0; fmt < 3; fmt++, vsel >>= 1) - if ((vsel & 1) == 0) - break; - (*info->fprintf_func) (info->stream, "$v%d[%d]", - (l >> OP_SH_FT) & OP_MASK_FT, - vsel >> 1); - } - else if ((vsel & 0x08) == 0) - { - (*info->fprintf_func) (info->stream, "$v%d", - (l >> OP_SH_FT) & OP_MASK_FT); - } - else - { - (*info->fprintf_func) (info->stream, "0x%x", - (l >> OP_SH_FT) & OP_MASK_FT); - } - } - break; + if (strncmp("gpr-names", option, optionlen) == 0 + && strlen("gpr-names") == optionlen) + { + chosen_abi = choose_abi_by_name (val, vallen); + if (chosen_abi != NULL) + mips_gpr_names = chosen_abi->gpr_names; + return; + } - case 'X': - (*info->fprintf_func) (info->stream, "$v%d", - (l >> OP_SH_FD) & OP_MASK_FD); - break; + if (strncmp("fpr-names", option, optionlen) == 0 + && strlen("fpr-names") == optionlen) + { + chosen_abi = choose_abi_by_name (val, vallen); + if (chosen_abi != NULL) + mips_fpr_names = chosen_abi->fpr_names; + return; + } - case 'Y': - (*info->fprintf_func) (info->stream, "$v%d", - (l >> OP_SH_FS) & OP_MASK_FS); - break; + if (strncmp("cp0-names", option, optionlen) == 0 + && strlen("cp0-names") == optionlen) + { + chosen_arch = choose_arch_by_name (val, vallen); + if (chosen_arch != NULL) + { + mips_cp0_names = chosen_arch->cp0_names; + mips_cp0sel_names = chosen_arch->cp0sel_names; + mips_cp0sel_names_len = chosen_arch->cp0sel_names_len; + } + return; + } - case 'Z': - (*info->fprintf_func) (info->stream, "$v%d", - (l >> OP_SH_FT) & OP_MASK_FT); - break; + if (strncmp("hwr-names", option, optionlen) == 0 + && strlen("hwr-names") == optionlen) + { + chosen_arch = choose_arch_by_name (val, vallen); + if (chosen_arch != NULL) + mips_hwr_names = chosen_arch->hwr_names; + return; + } - default: - /* xgettext:c-format */ - (*info->fprintf_func) (info->stream, - _("# internal error, undefined modifier(%c)"), - *d); - break; + if (strncmp("reg-names", option, optionlen) == 0 + && strlen("reg-names") == optionlen) + { + /* We check both ABI and ARCH here unconditionally, so + that "numeric" will do the desirable thing: select + numeric register names for all registers. Other than + that, a given name probably won't match both. */ + chosen_abi = choose_abi_by_name (val, vallen); + if (chosen_abi != NULL) + { + mips_gpr_names = chosen_abi->gpr_names; + mips_fpr_names = chosen_abi->fpr_names; + } + chosen_arch = choose_arch_by_name (val, vallen); + if (chosen_arch != NULL) + { + mips_cp0_names = chosen_arch->cp0_names; + mips_cp0sel_names = chosen_arch->cp0sel_names; + mips_cp0sel_names_len = chosen_arch->cp0sel_names_len; + mips_hwr_names = chosen_arch->hwr_names; + } + return; + } + + /* Invalid option. */ +} + +void +parse_mips_dis_options (options) + const char *options; +{ + const char *option_end; + + if (options == NULL) + return; + + while (*options != '\0') + { + /* Skip empty options. */ + if (*options == ',') + { + options++; + continue; + } + + /* We know that *options is neither NUL or a comma. */ + option_end = options + 1; + while (*option_end != ',' && *option_end != '\0') + option_end++; + + parse_mips_dis_option (options, option_end - options); + + /* Go on to the next one. If option_end points to a comma, it + will be skipped above. */ + options = option_end; } } + +static const struct mips_cp0sel_name * +lookup_mips_cp0sel_name(names, len, cp0reg, sel) + const struct mips_cp0sel_name *names; + unsigned int len, cp0reg, sel; +{ + unsigned int i; + + for (i = 0; i < len; i++) + if (names[i].cp0reg == cp0reg && names[i].sel == sel) + return &names[i]; + return NULL; +} -/* Figure out the MIPS ISA and CPU based on the machine number. */ +/* Print insn arguments for 32/64-bit code. */ static void -mips_isa_type (mach, isa, cputype) - int mach; - int *isa; - int *cputype; +print_insn_args (d, l, pc, info) + const char *d; + register unsigned long int l; + bfd_vma pc; + struct disassemble_info *info; { - switch (mach) + int op, delta; + unsigned int lsb, msb, msbd; + + lsb = 0; + + for (; *d != '\0'; d++) { - case bfd_mach_mips3000: - *cputype = CPU_R3000; - *isa = ISA_MIPS1; - break; - case bfd_mach_mips3900: - *cputype = CPU_R3900; - *isa = ISA_MIPS1; - break; - case bfd_mach_mips4000: - *cputype = CPU_R4000; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips4010: - *cputype = CPU_R4010; - *isa = ISA_MIPS2; - break; - case bfd_mach_mips4100: - *cputype = CPU_VR4100; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips4111: - *cputype = CPU_R4111; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips4120: - *cputype = CPU_VR4120; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips4300: - *cputype = CPU_R4300; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips4400: - *cputype = CPU_R4400; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips4600: - *cputype = CPU_R4600; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips4650: - *cputype = CPU_R4650; - *isa = ISA_MIPS3; - break; - case bfd_mach_mips5000: - *cputype = CPU_R5000; - *isa = ISA_MIPS4; - break; - case bfd_mach_mips5400: - *cputype = CPU_VR5400; - *isa = ISA_MIPS4; - break; - case bfd_mach_mips5500: - *cputype = CPU_VR5500; - *isa = ISA_MIPS4; - break; - case bfd_mach_mips6000: - *cputype = CPU_R6000; - *isa = ISA_MIPS2; - break; - case bfd_mach_mips8000: - *cputype = CPU_R8000; - *isa = ISA_MIPS4; - break; - case bfd_mach_mips10000: - *cputype = CPU_R10000; - *isa = ISA_MIPS4; - break; - case bfd_mach_mips12000: - *cputype = CPU_R12000; - *isa = ISA_MIPS4; - break; - case bfd_mach_mips16: - *cputype = CPU_MIPS16; - *isa = ISA_MIPS3 | INSN_MIPS16; - break; - case bfd_mach_mips5: - *cputype = CPU_MIPS5; - *isa = ISA_MIPS5; - break; - case bfd_mach_mips_sb1: - *cputype = CPU_SB1; - *isa = ISA_MIPS64 | INSN_MIPS3D | INSN_SB1; - break; - case bfd_mach_mipsisa32: - *cputype = CPU_MIPS32; - /* For stock MIPS32, disassemble all applicable MIPS-specified ASEs. - Note that MIPS-3D and MDMX are not applicable to MIPS32. (See - _MIPS32 Architecture For Programmers Volume I: Introduction to the - MIPS32 Architecture_ (MIPS Document Number MD00082, Revision 0.95), - page 1. */ - *isa = ISA_MIPS32 | INSN_MIPS16; - break; - case bfd_mach_mipsisa64: - *cputype = CPU_MIPS64; - /* For stock MIPS64, disassemble all applicable MIPS-specified ASEs. */ - *isa = ISA_MIPS64 | INSN_MIPS16 | INSN_MIPS3D | INSN_MDMX; - break; + switch (*d) + { + case ',': + case '(': + case ')': + case '[': + case ']': + (*info->fprintf_func) (info->stream, "%c", *d); + break; + + case '+': + /* Extension character; switch for second char. */ + d++; + switch (*d) + { + case '\0': + /* xgettext:c-format */ + (*info->fprintf_func) (info->stream, + _("# internal error, incomplete extension sequence (+)")); + return; + + case 'A': + lsb = (l >> OP_SH_SHAMT) & OP_MASK_SHAMT; + (*info->fprintf_func) (info->stream, "0x%x", lsb); + break; + + case 'B': + msb = (l >> OP_SH_INSMSB) & OP_MASK_INSMSB; + (*info->fprintf_func) (info->stream, "0x%x", msb - lsb + 1); + break; + + case 'C': + msbd = (l >> OP_SH_EXTMSBD) & OP_MASK_EXTMSBD; + (*info->fprintf_func) (info->stream, "0x%x", msbd + 1); + break; - default: - *cputype = CPU_R3000; - *isa = ISA_MIPS3; - break; + case 'D': + { + const struct mips_cp0sel_name *n; + unsigned int cp0reg, sel; + + cp0reg = (l >> OP_SH_RD) & OP_MASK_RD; + sel = (l >> OP_SH_SEL) & OP_MASK_SEL; + + /* CP0 register including 'sel' code for mtcN (et al.), to be + printed textually if known. If not known, print both + CP0 register name and sel numerically since CP0 register + with sel 0 may have a name unrelated to register being + printed. */ + n = lookup_mips_cp0sel_name(mips_cp0sel_names, + mips_cp0sel_names_len, cp0reg, sel); + if (n != NULL) + (*info->fprintf_func) (info->stream, "%s", n->name); + else + (*info->fprintf_func) (info->stream, "$%d,%d", cp0reg, sel); + break; + } + + default: + /* xgettext:c-format */ + (*info->fprintf_func) (info->stream, + _("# internal error, undefined extension sequence (+%c)"), + *d); + return; + } + break; + + case 's': + case 'b': + case 'r': + case 'v': + (*info->fprintf_func) (info->stream, "%s", + mips_gpr_names[(l >> OP_SH_RS) & OP_MASK_RS]); + break; + + case 't': + case 'w': + (*info->fprintf_func) (info->stream, "%s", + mips_gpr_names[(l >> OP_SH_RT) & OP_MASK_RT]); + break; + + case 'i': + case 'u': + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_IMMEDIATE) & OP_MASK_IMMEDIATE); + break; + + case 'j': /* Same as i, but sign-extended. */ + case 'o': + delta = (l >> OP_SH_DELTA) & OP_MASK_DELTA; + if (delta & 0x8000) + delta |= ~0xffff; + (*info->fprintf_func) (info->stream, "%d", + delta); + break; + + case 'h': + (*info->fprintf_func) (info->stream, "0x%x", + (unsigned int) ((l >> OP_SH_PREFX) + & OP_MASK_PREFX)); + break; + + case 'k': + (*info->fprintf_func) (info->stream, "0x%x", + (unsigned int) ((l >> OP_SH_CACHE) + & OP_MASK_CACHE)); + break; + + case 'a': + info->target = (((pc + 4) & ~(bfd_vma) 0x0fffffff) + | (((l >> OP_SH_TARGET) & OP_MASK_TARGET) << 2)); + (*info->print_address_func) (info->target, info); + break; + + case 'p': + /* Sign extend the displacement. */ + delta = (l >> OP_SH_DELTA) & OP_MASK_DELTA; + if (delta & 0x8000) + delta |= ~0xffff; + info->target = (delta << 2) + pc + INSNLEN; + (*info->print_address_func) (info->target, info); + break; + + case 'd': + (*info->fprintf_func) (info->stream, "%s", + mips_gpr_names[(l >> OP_SH_RD) & OP_MASK_RD]); + break; + + case 'U': + { + /* First check for both rd and rt being equal. */ + unsigned int reg = (l >> OP_SH_RD) & OP_MASK_RD; + if (reg == ((l >> OP_SH_RT) & OP_MASK_RT)) + (*info->fprintf_func) (info->stream, "%s", + mips_gpr_names[reg]); + else + { + /* If one is zero use the other. */ + if (reg == 0) + (*info->fprintf_func) (info->stream, "%s", + mips_gpr_names[(l >> OP_SH_RT) & OP_MASK_RT]); + else if (((l >> OP_SH_RT) & OP_MASK_RT) == 0) + (*info->fprintf_func) (info->stream, "%s", + mips_gpr_names[reg]); + else /* Bogus, result depends on processor. */ + (*info->fprintf_func) (info->stream, "%s or %s", + mips_gpr_names[reg], + mips_gpr_names[(l >> OP_SH_RT) & OP_MASK_RT]); + } + } + break; + + case 'z': + (*info->fprintf_func) (info->stream, "%s", mips_gpr_names[0]); + break; + + case '<': + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_SHAMT) & OP_MASK_SHAMT); + break; + + case 'c': + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_CODE) & OP_MASK_CODE); + break; + + case 'q': + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_CODE2) & OP_MASK_CODE2); + break; + + case 'C': + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_COPZ) & OP_MASK_COPZ); + break; + + case 'B': + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_CODE20) & OP_MASK_CODE20); + break; + + case 'J': + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_CODE19) & OP_MASK_CODE19); + break; + + case 'S': + case 'V': + (*info->fprintf_func) (info->stream, "%s", + mips_fpr_names[(l >> OP_SH_FS) & OP_MASK_FS]); + break; + + case 'T': + case 'W': + (*info->fprintf_func) (info->stream, "%s", + mips_fpr_names[(l >> OP_SH_FT) & OP_MASK_FT]); + break; + + case 'D': + (*info->fprintf_func) (info->stream, "%s", + mips_fpr_names[(l >> OP_SH_FD) & OP_MASK_FD]); + break; + + case 'R': + (*info->fprintf_func) (info->stream, "%s", + mips_fpr_names[(l >> OP_SH_FR) & OP_MASK_FR]); + break; + + case 'E': + /* Coprocessor register for lwcN instructions, et al. + + Note that there is no load/store cp0 instructions, and + that FPU (cp1) instructions disassemble this field using + 'T' format. Therefore, until we gain understanding of + cp2 register names, we can simply print the register + numbers. */ + (*info->fprintf_func) (info->stream, "$%d", + (l >> OP_SH_RT) & OP_MASK_RT); + break; + + case 'G': + /* Coprocessor register for mtcN instructions, et al. Note + that FPU (cp1) instructions disassemble this field using + 'S' format. Therefore, we only need to worry about cp0, + cp2, and cp3. */ + op = (l >> OP_SH_OP) & OP_MASK_OP; + if (op == OP_OP_COP0) + (*info->fprintf_func) (info->stream, "%s", + mips_cp0_names[(l >> OP_SH_RD) & OP_MASK_RD]); + else + (*info->fprintf_func) (info->stream, "$%d", + (l >> OP_SH_RD) & OP_MASK_RD); + break; + + case 'K': + (*info->fprintf_func) (info->stream, "%s", + mips_hwr_names[(l >> OP_SH_RD) & OP_MASK_RD]); + break; + + case 'N': + (*info->fprintf_func) (info->stream, "$fcc%d", + (l >> OP_SH_BCC) & OP_MASK_BCC); + break; + + case 'M': + (*info->fprintf_func) (info->stream, "$fcc%d", + (l >> OP_SH_CCC) & OP_MASK_CCC); + break; + + case 'P': + (*info->fprintf_func) (info->stream, "%d", + (l >> OP_SH_PERFREG) & OP_MASK_PERFREG); + break; + + case 'e': + (*info->fprintf_func) (info->stream, "%d", + (l >> OP_SH_VECBYTE) & OP_MASK_VECBYTE); + break; + + case '%': + (*info->fprintf_func) (info->stream, "%d", + (l >> OP_SH_VECALIGN) & OP_MASK_VECALIGN); + break; + + case 'H': + (*info->fprintf_func) (info->stream, "%d", + (l >> OP_SH_SEL) & OP_MASK_SEL); + break; + + case 'O': + (*info->fprintf_func) (info->stream, "%d", + (l >> OP_SH_ALN) & OP_MASK_ALN); + break; + + case 'Q': + { + unsigned int vsel = (l >> OP_SH_VSEL) & OP_MASK_VSEL; + if ((vsel & 0x10) == 0) + { + int fmt; + vsel &= 0x0f; + for (fmt = 0; fmt < 3; fmt++, vsel >>= 1) + if ((vsel & 1) == 0) + break; + (*info->fprintf_func) (info->stream, "$v%d[%d]", + (l >> OP_SH_FT) & OP_MASK_FT, + vsel >> 1); + } + else if ((vsel & 0x08) == 0) + { + (*info->fprintf_func) (info->stream, "$v%d", + (l >> OP_SH_FT) & OP_MASK_FT); + } + else + { + (*info->fprintf_func) (info->stream, "0x%x", + (l >> OP_SH_FT) & OP_MASK_FT); + } + } + break; + + case 'X': + (*info->fprintf_func) (info->stream, "$v%d", + (l >> OP_SH_FD) & OP_MASK_FD); + break; + + case 'Y': + (*info->fprintf_func) (info->stream, "$v%d", + (l >> OP_SH_FS) & OP_MASK_FS); + break; + + case 'Z': + (*info->fprintf_func) (info->stream, "$v%d", + (l >> OP_SH_FT) & OP_MASK_FT); + break; + + default: + /* xgettext:c-format */ + (*info->fprintf_func) (info->stream, + _("# internal error, undefined modifier(%c)"), + *d); + return; + } } } - + /* Check if the object uses NewABI conventions. */ static int @@ -497,8 +1033,7 @@ print_insn_mips (memaddr, word, info) struct disassemble_info *info; { register const struct mips_opcode *op; - int target_processor, mips_isa; - static boolean init = 0; + static bfd_boolean init = 0; static const struct mips_opcode *mips_hash[OP_MASK_OP + 1]; /* Build a hash table to shorten the search time. */ @@ -523,15 +1058,6 @@ print_insn_mips (memaddr, word, info) init = 1; } -#if ! SYMTAB_AVAILABLE - /* This is running out on a target machine, not in a host tool. - FIXME: Where does mips_target_info come from? */ - target_processor = mips_target_info.processor; - mips_isa = mips_target_info.isa; -#else - mips_isa_type (info->mach, &mips_isa, &target_processor); -#endif - info->bytes_per_chunk = INSNLEN; info->display_endian = info->endian; info->insn_info_valid = 1; @@ -551,7 +1077,7 @@ print_insn_mips (memaddr, word, info) register const char *d; /* We always allow to disassemble the jalx instruction. */ - if (! OPCODE_IS_MEMBER (op, mips_isa, target_processor) + if (! OPCODE_IS_MEMBER (op, mips_isa, mips_processor) && strcmp (op->name, "jalx")) continue; @@ -583,8 +1109,7 @@ print_insn_mips (memaddr, word, info) if (d != NULL && *d != '\0') { (*info->fprintf_func) (info->stream, "\t"); - for (; *d != '\0'; d++) - print_insn_arg (d, word, memaddr, info); + print_insn_args (d, word, memaddr, info); } return INSNLEN; @@ -613,6 +1138,9 @@ _print_insn_mips (memaddr, info, endiann bfd_byte buffer[INSNLEN]; int status; + set_default_mips_dis_options (info); + parse_mips_dis_options (info->disassembler_options); + #if 1 /* FIXME: If odd address, this is CLEARLY a mips 16 instruction. */ /* Only a few tools will work this way. */ @@ -629,18 +1157,6 @@ _print_insn_mips (memaddr, info, endiann return print_insn_mips16 (memaddr, info); #endif - /* Use mips64_reg_names for new ABI. */ - reg_names = mips32_reg_names; - - if (info->flavour == bfd_target_elf_flavour && info->symbols != NULL) - { - Elf_Internal_Ehdr *header; - - header = elf_elfheader (bfd_asymbol_bfd (*(info->symbols))); - if (is_newabi (header)) - reg_names = mips64_reg_names; - } - status = (*info->read_memory_func) (memaddr, buffer, INSNLEN, info); if (status == 0) { @@ -687,7 +1203,7 @@ print_insn_mips16 (memaddr, info) bfd_byte buffer[2]; int length; int insn; - boolean use_extend; + bfd_boolean use_extend; int extend = 0; const struct mips_opcode *op, *opend; @@ -715,10 +1231,10 @@ print_insn_mips16 (memaddr, info) insn = bfd_getl16 (buffer); /* Handle the extend opcode specially. */ - use_extend = false; + use_extend = FALSE; if ((insn & 0xf800) == 0xf000) { - use_extend = true; + use_extend = TRUE; extend = insn & 0x7ff; memaddr += 2; @@ -768,7 +1284,7 @@ print_insn_mips16 (memaddr, info) return length - 2; } - use_extend = false; + use_extend = FALSE; memaddr += 2; @@ -776,7 +1292,7 @@ print_insn_mips16 (memaddr, info) info); if (status == 0) { - use_extend = true; + use_extend = TRUE; if (info->endian == BFD_ENDIAN_BIG) extend = bfd_getb16 (buffer); else @@ -839,7 +1355,7 @@ print_mips16_insn_arg (type, op, l, use_ char type; const struct mips_opcode *op; int l; - boolean use_extend; + bfd_boolean use_extend; int extend; bfd_vma memaddr; struct disassemble_info *info; @@ -879,11 +1395,11 @@ print_mips16_insn_arg (type, op, l, use_ break; case '0': - (*info->fprintf_func) (info->stream, "%s", mips32_reg_names[0]); + (*info->fprintf_func) (info->stream, "%s", mips_gpr_names[0]); break; case 'S': - (*info->fprintf_func) (info->stream, "%s", mips32_reg_names[29]); + (*info->fprintf_func) (info->stream, "%s", mips_gpr_names[29]); break; case 'P': @@ -891,18 +1407,18 @@ print_mips16_insn_arg (type, op, l, use_ break; case 'R': - (*info->fprintf_func) (info->stream, "%s", mips32_reg_names[31]); + (*info->fprintf_func) (info->stream, "%s", mips_gpr_names[31]); break; case 'X': (*info->fprintf_func) (info->stream, "%s", - mips32_reg_names[((l >> MIPS16OP_SH_REGR32) - & MIPS16OP_MASK_REGR32)]); + mips_gpr_names[((l >> MIPS16OP_SH_REGR32) + & MIPS16OP_MASK_REGR32)]); break; case 'Y': (*info->fprintf_func) (info->stream, "%s", - mips32_reg_names[MIPS16OP_EXTRACT_REG32R (l)]); + mips_gpr_names[MIPS16OP_EXTRACT_REG32R (l)]); break; case '<': @@ -1185,10 +1701,10 @@ print_mips16_insn_arg (type, op, l, use_ if (amask > 0 && amask < 5) { - (*info->fprintf_func) (info->stream, "%s", mips32_reg_names[4]); + (*info->fprintf_func) (info->stream, "%s", mips_gpr_names[4]); if (amask > 1) (*info->fprintf_func) (info->stream, "-%s", - mips32_reg_names[amask + 3]); + mips_gpr_names[amask + 3]); need_comma = 1; } @@ -1203,10 +1719,10 @@ print_mips16_insn_arg (type, op, l, use_ { (*info->fprintf_func) (info->stream, "%s%s", need_comma ? "," : "", - mips32_reg_names[16]); + mips_gpr_names[16]); if (smask > 1) (*info->fprintf_func) (info->stream, "-%s", - mips32_reg_names[smask + 15]); + mips_gpr_names[smask + 15]); need_comma = 1; } @@ -1214,7 +1730,7 @@ print_mips16_insn_arg (type, op, l, use_ { (*info->fprintf_func) (info->stream, "%s%s", need_comma ? "," : "", - mips32_reg_names[31]); + mips_gpr_names[31]); need_comma = 1; } @@ -1237,3 +1753,57 @@ print_mips16_insn_arg (type, op, l, use_ abort (); } } + +void +print_mips_disassembler_options (stream) + FILE *stream; +{ + int i; + + fprintf (stream, _("\n\ +The following MIPS specific disassembler options are supported for use\n\ +with the -M switch (multiple options should be separated by commas):\n")); + + fprintf (stream, _("\n\ + gpr-names=ABI Print GPR names according to specified ABI.\n\ + Default: based on binary being disassembled.\n")); + + fprintf (stream, _("\n\ + fpr-names=ABI Print FPR names according to specified ABI.\n\ + Default: numeric.\n")); + + fprintf (stream, _("\n\ + cp0-names=ARCH Print CP0 register names according to\n\ + specified architecture.\n\ + Default: based on binary being disassembled.\n")); + + fprintf (stream, _("\n\ + hwr-names=ARCH Print HWR names according to specified \n\ + architecture.\n\ + Default: based on binary being disassembled.\n")); + + fprintf (stream, _("\n\ + reg-names=ABI Print GPR and FPR names according to\n\ + specified ABI.\n")); + + fprintf (stream, _("\n\ + reg-names=ARCH Print CP0 register and HWR names according to\n\ + specified architecture.\n")); + + fprintf (stream, _("\n\ + For the options above, the following values are supported for \"ABI\":\n\ + ")); + for (i = 0; mips_abi_choices[i].name != NULL; i++) + fprintf (stream, " %s", mips_abi_choices[i].name); + fprintf (stream, _("\n")); + + fprintf (stream, _("\n\ + For the options above, The following values are supported for \"ARCH\":\n\ + ")); + for (i = 0; mips_arch_choices[i].name != NULL; i++) + if (*mips_arch_choices[i].name != '\0') + fprintf (stream, " %s", mips_arch_choices[i].name); + fprintf (stream, _("\n")); + + fprintf (stream, _("\n")); +} diff -uprN binutils-2.13.90.0.16/opcodes/mips-opc.c binutils-2.13.90.0.18/opcodes/mips-opc.c --- binutils-2.13.90.0.16/opcodes/mips-opc.c Wed Oct 2 10:17:20 2002 +++ binutils-2.13.90.0.18/opcodes/mips-opc.c Tue Jan 21 10:21:34 2003 @@ -4,7 +4,8 @@ Contributed by Ralph Campbell and OSF Commented and modified by Ian Lance Taylor, Cygnus Support Extended for MIPS32 support by Anders Norlander, and by SiByte, Inc. - MIPS-3D and MDMX support added by Broadcom Corporation (SiByte). + MIPS-3D, MDMX, and MIPS32 Release 2 support added by Broadcom + Corporation (SiByte). This file is part of GDB, GAS, and the GNU binutils. @@ -85,6 +86,7 @@ Software Foundation, 59 Temple Place - S #define I5 INSN_ISA5 #define I32 INSN_ISA32 #define I64 INSN_ISA64 +#define I33 INSN_ISA32R2 /* MIPS64 MIPS-3D ASE support. */ #define I16 INSN_MIPS16 @@ -137,8 +139,9 @@ const struct mips_opcode mips_builtin_op /* name, args, match, mask, pinfo, membership */ {"pref", "k,o(b)", 0xcc000000, 0xfc000000, RD_b, I4|I32|G3 }, {"prefx", "h,t(b)", 0x4c00000f, 0xfc0007ff, RD_b|RD_t, I4 }, -{"nop", "", 0x00000000, 0xffffffff, 0, I1 }, -{"ssnop", "", 0x00000040, 0xffffffff, 0, I32|N55 }, +{"nop", "", 0x00000000, 0xffffffff, 0, I1 }, /* sll */ +{"ssnop", "", 0x00000040, 0xffffffff, 0, I32|N55 }, /* sll */ +{"ehb", "", 0x000000c0, 0xffffffff, 0, I33 }, /* sll */ {"li", "t,j", 0x24000000, 0xffe00000, WR_t, I1 }, /* addiu */ {"li", "t,i", 0x34000000, 0xffe00000, WR_t, I1 }, /* ori */ {"li", "t,I", 0, (int) M_LI, INSN_MACRO, I1 }, @@ -486,6 +489,8 @@ const struct mips_opcode mips_builtin_op {"ddivu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HILO, I3 }, {"ddivu", "d,v,t", 0, (int) M_DDIVU_3, INSN_MACRO, I3 }, {"ddivu", "d,v,I", 0, (int) M_DDIVU_3I, INSN_MACRO, I3 }, +{"di", "", 0x41606000, 0xffffffff, WR_t|WR_C0, I33 }, +{"di", "t", 0x41606000, 0xffe0ffff, WR_t|WR_C0, I33 }, /* The MIPS assembler treats the div opcode with two operands as though the first operand appeared twice (the first operand is both a source and a destination). To get the div machine instruction, @@ -516,8 +521,10 @@ const struct mips_opcode mips_builtin_op {"dmaccus", "d,s,t", 0x00000469, 0xfc0007ff, RD_s|RD_t|WR_LO|WR_d, N412 }, {"dmadd16", "s,t", 0x00000029, 0xfc00ffff, RD_s|RD_t|MOD_LO, N411 }, {"dmfc0", "t,G", 0x40200000, 0xffe007ff, LCD|WR_t|RD_C0, I3 }, +{"dmfc0", "t,+D", 0x40200000, 0xffe007f8, LCD|WR_t|RD_C0, I64 }, {"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, LCD|WR_t|RD_C0, I64 }, {"dmtc0", "t,G", 0x40a00000, 0xffe007ff, COD|RD_t|WR_C0|WR_CC, I3 }, +{"dmtc0", "t,+D", 0x40a00000, 0xffe007f8, COD|RD_t|WR_C0|WR_CC, I64 }, {"dmtc0", "t,G,H", 0x40a00000, 0xffe007f8, COD|RD_t|WR_C0|WR_CC, I64 }, {"dmfc1", "t,S", 0x44200000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I3 }, {"dmfc1", "t,G", 0x44200000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I3 }, @@ -550,13 +557,11 @@ const struct mips_opcode mips_builtin_op {"dret", "", 0x7000003e, 0xffffffff, 0, N5 }, {"drol", "d,v,t", 0, (int) M_DROL, INSN_MACRO, I3 }, {"drol", "d,v,I", 0, (int) M_DROL_I, INSN_MACRO, I3 }, -{"drorv", "d,t,s", 0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, -{"dror32", "d,w,<", 0x0020003e, 0xffe0003f, WR_d|RD_t, N5 }, -{"dror", "d,w,s", 0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, /* drorv */ -{"dror", "d,w,>", 0x0020003e, 0xffe0003f, WR_d|RD_t, N5 }, -{"dror", "d,w,<", 0x0020003a, 0xffe0003f, WR_d|RD_t, N5 }, {"dror", "d,v,t", 0, (int) M_DROR, INSN_MACRO, I3 }, {"dror", "d,v,I", 0, (int) M_DROR_I, INSN_MACRO, I3 }, +{"dror", "d,w,<", 0x0020003a, 0xffe0003f, WR_d|RD_t, N5 }, +{"drorv", "d,t,s", 0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, +{"dror32", "d,w,<", 0x0020003e, 0xffe0003f, WR_d|RD_t, N5 }, {"dsllv", "d,t,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, {"dsll32", "d,w,<", 0x0000003c, 0xffe0003f, WR_d|RD_t, I3 }, {"dsll", "d,w,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, /* dsllv */ @@ -576,7 +581,10 @@ const struct mips_opcode mips_builtin_op {"dsub", "d,v,I", 0, (int) M_DSUB_I, INSN_MACRO, I3 }, {"dsubu", "d,v,t", 0x0000002f, 0xfc0007ff, WR_d|RD_s|RD_t, I3 }, {"dsubu", "d,v,I", 0, (int) M_DSUBU_I, INSN_MACRO, I3 }, +{"ei", "", 0x41606020, 0xffffffff, WR_t|WR_C0, I33 }, +{"ei", "t", 0x41606020, 0xffe0ffff, WR_t|WR_C0, I33 }, {"eret", "", 0x42000018, 0xffffffff, 0, I3|I32 }, +{"ext", "t,r,+A,+C", 0x7c000000, 0xfc00003f, WR_t|RD_s, I33 }, {"floor.l.d", "D,S", 0x4620000b, 0xffff003f, WR_D|RD_S|FP_D, I3 }, {"floor.l.s", "D,S", 0x4600000b, 0xffff003f, WR_D|RD_S|FP_S, I3 }, {"floor.w.d", "D,S", 0x4620000f, 0xffff003f, WR_D|RD_S|FP_D, I2 }, @@ -585,7 +593,9 @@ const struct mips_opcode mips_builtin_op {"flushd", "", 0xbc020000, 0xffffffff, 0, L1 }, {"flushid", "", 0xbc030000, 0xffffffff, 0, L1 }, {"hibernate","", 0x42000023, 0xffffffff, 0, V1 }, +{"ins", "t,r,+A,+B", 0x7c000004, 0xfc00003f, WR_t|RD_s, I33 }, {"jr", "s", 0x00000008, 0xfc1fffff, UBD|RD_s, I1 }, +{"jr.hb", "s", 0x00000408, 0xfc1fffff, UBD|RD_s, I33 }, {"j", "s", 0x00000008, 0xfc1fffff, UBD|RD_s, I1 }, /* jr */ /* SVR4 PIC code requires special handling for j, so it must be a macro. */ @@ -596,6 +606,8 @@ const struct mips_opcode mips_builtin_op {"j", "a", 0x08000000, 0xfc000000, UBD, I1 }, {"jalr", "s", 0x0000f809, 0xfc1fffff, UBD|RD_s|WR_d, I1 }, {"jalr", "d,s", 0x00000009, 0xfc1f07ff, UBD|RD_s|WR_d, I1 }, +{"jalr.hb", "s", 0x0000fc09, 0xfc1fffff, UBD|RD_s|WR_d, I33 }, +{"jalr.hb", "d,s", 0x00000409, 0xfc1f07ff, UBD|RD_s|WR_d, I33 }, /* SVR4 PIC code requires special handling for jal, so it must be a macro. */ {"jal", "d,s", 0, (int) M_JAL_2, INSN_MACRO, I1 }, @@ -704,11 +716,15 @@ const struct mips_opcode mips_builtin_op {"mfpc", "t,P", 0x4000c801, 0xffe0ffc1, LCD|WR_t|RD_C0, M1|N5 }, {"mfps", "t,P", 0x4000c800, 0xffe0ffc1, LCD|WR_t|RD_C0, M1|N5 }, {"mfc0", "t,G", 0x40000000, 0xffe007ff, LCD|WR_t|RD_C0, I1 }, +{"mfc0", "t,+D", 0x40000000, 0xffe007f8, LCD|WR_t|RD_C0, I32 }, {"mfc0", "t,G,H", 0x40000000, 0xffe007f8, LCD|WR_t|RD_C0, I32 }, {"mfc1", "t,S", 0x44000000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I1 }, {"mfc1", "t,G", 0x44000000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I1 }, +{"mfhc1", "t,S", 0x44600000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I33 }, +{"mfhc1", "t,G", 0x44600000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I33 }, {"mfc2", "t,G", 0x48000000, 0xffe007ff, LCD|WR_t|RD_C2, I1 }, {"mfc2", "t,G,H", 0x48000000, 0xffe007f8, LCD|WR_t|RD_C2, I32 }, +{"mfhc2", "t,i", 0x48600000, 0xffe00000, LCD|WR_t|RD_C2, I33 }, {"mfc3", "t,G", 0x4c000000, 0xffe007ff, LCD|WR_t|RD_C3, I1 }, {"mfc3", "t,G,H", 0x4c000000, 0xffe007f8, LCD|WR_t|RD_C3, I32 }, {"mfdr", "t,G", 0x7000003d, 0xffe007ff, LCD|WR_t|RD_C0, N5 }, @@ -764,11 +780,15 @@ const struct mips_opcode mips_builtin_op {"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, COD|RD_t|WR_C0, M1|N5 }, {"mtps", "t,P", 0x4080c800, 0xffe0ffc1, COD|RD_t|WR_C0, M1|N5 }, {"mtc0", "t,G", 0x40800000, 0xffe007ff, COD|RD_t|WR_C0|WR_CC, I1 }, +{"mtc0", "t,+D", 0x40800000, 0xffe007f8, COD|RD_t|WR_C0|WR_CC, I32 }, {"mtc0", "t,G,H", 0x40800000, 0xffe007f8, COD|RD_t|WR_C0|WR_CC, I32 }, {"mtc1", "t,S", 0x44800000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I1 }, {"mtc1", "t,G", 0x44800000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I1 }, +{"mthc1", "t,S", 0x44e00000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I33 }, +{"mthc1", "t,G", 0x44e00000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I33 }, {"mtc2", "t,G", 0x48800000, 0xffe007ff, COD|RD_t|WR_C2|WR_CC, I1 }, {"mtc2", "t,G,H", 0x48800000, 0xffe007f8, COD|RD_t|WR_C2|WR_CC, I32 }, +{"mthc2", "t,i", 0x48e00000, 0xffe00000, COD|RD_t|WR_C2|WR_CC, I33 }, {"mtc3", "t,G", 0x4c800000, 0xffe007ff, COD|RD_t|WR_C3|WR_CC, I1 }, {"mtc3", "t,G,H", 0x4c800000, 0xffe007f8, COD|RD_t|WR_C3|WR_CC, I32 }, {"mtdr", "t,G", 0x7080003d, 0xffe007ff, COD|RD_t|WR_C0, N5 }, @@ -892,6 +912,8 @@ const struct mips_opcode mips_builtin_op {"remu", "z,s,t", 0x0000001b, 0xfc00ffff, RD_s|RD_t|WR_HILO, I1 }, {"remu", "d,v,t", 0, (int) M_REMU_3, INSN_MACRO, I1 }, {"remu", "d,v,I", 0, (int) M_REMU_3I, INSN_MACRO, I1 }, +{"rdhwr", "t,K", 0x7c00003b, 0xffe007ff, WR_t, I33 }, +{"rdpgpr", "d,w", 0x41400000, 0xffe007ff, WR_d, I33 }, {"rfe", "", 0x42000010, 0xffffffff, 0, I1|T3 }, {"rnas.qh", "X,Q", 0x78200025, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX }, {"rnau.ob", "X,Q", 0x78000021, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX|SB1 }, @@ -901,11 +923,15 @@ const struct mips_opcode mips_builtin_op {"rneu.qh", "X,Q", 0x78200022, 0xfc20f83f, WR_D|RD_MACC|RD_T|FP_D, MX }, {"rol", "d,v,t", 0, (int) M_ROL, INSN_MACRO, I1 }, {"rol", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, I1 }, -{"rorv", "d,t,s", 0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, -{"ror", "d,w,s", 0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d, N5 }, /* rorv */ -{"ror", "d,w,<", 0x00200002, 0xffe0003f, WR_d|RD_t, N5 }, {"ror", "d,v,t", 0, (int) M_ROR, INSN_MACRO, I1 }, {"ror", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, I1 }, +{"ror", "d,w,<", 0x00200002, 0xffe0003f, WR_d|RD_t, N5|I33 }, +{"rorv", "d,t,s", 0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d, N5|I33 }, +{"rotl", "d,v,t", 0, (int) M_ROL, INSN_MACRO, I33 }, +{"rotl", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, I33 }, +{"rotr", "d,v,t", 0, (int) M_ROR, INSN_MACRO, I33 }, +{"rotr", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, I33 }, +{"rotrv", "d,t,s", 0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d, I33 }, {"round.l.d", "D,S", 0x46200008, 0xffff003f, WR_D|RD_S|FP_D, I3 }, {"round.l.s", "D,S", 0x46000008, 0xffff003f, WR_D|RD_S|FP_S, I3 }, {"round.w.d", "D,S", 0x4620000c, 0xffff003f, WR_D|RD_S|FP_D, I2 }, @@ -953,6 +979,8 @@ const struct mips_opcode mips_builtin_op {"sdr", "t,o(b)", 0xb4000000, 0xfc000000, SM|RD_t|RD_b, I3 }, {"sdr", "t,A(b)", 0, (int) M_SDR_AB, INSN_MACRO, I3 }, {"sdxc1", "S,t(b)", 0x4c000009, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I4 }, +{"seb", "d,w", 0x7c000420, 0xffe007ff, WR_d|RD_t, I33 }, +{"seh", "d,w", 0x7c000620, 0xffe007ff, WR_d|RD_t, I33 }, {"selsl", "d,v,t", 0x00000005, 0xfc0007ff, WR_d|RD_s|RD_t, L1 }, {"selsr", "d,v,t", 0x00000001, 0xfc0007ff, WR_d|RD_s|RD_t, L1 }, {"seq", "d,v,t", 0, (int) M_SEQ, INSN_MACRO, I1 }, @@ -1060,6 +1088,7 @@ const struct mips_opcode mips_builtin_op {"sync", "", 0x0000000f, 0xffffffff, INSN_SYNC, I2|G1 }, {"sync.p", "", 0x0000040f, 0xffffffff, INSN_SYNC, I2 }, {"sync.l", "", 0x0000000f, 0xffffffff, INSN_SYNC, I2 }, +{"synci", "o(b)", 0x041f0000, 0xfc1f0000, SM|RD_b, I33 }, {"syscall", "", 0x0000000c, 0xffffffff, TRAP, I1 }, {"syscall", "B", 0x0000000c, 0xfc00003f, TRAP, I1 }, {"teqi", "s,j", 0x040c0000, 0xfc1f0000, RD_s|TRAP, I2 }, @@ -1128,6 +1157,8 @@ const struct mips_opcode mips_builtin_op {"wait", "J", 0x42000020, 0xfe00003f, TRAP, I32|N55 }, {"waiti", "", 0x42000020, 0xffffffff, TRAP, L1 }, {"wb", "o(b)", 0xbc040000, 0xfc1f0000, SM|RD_b, L1 }, +{"wrpgpr", "d,w", 0x41c00000, 0xffe007ff, RD_t, I33 }, +{"wsbh", "d,w", 0x7c0000a0, 0xffe007ff, WR_d|RD_t, I33 }, {"xor", "d,v,t", 0x00000026, 0xfc0007ff, WR_d|RD_s|RD_t, I1 }, {"xor", "t,r,I", 0, (int) M_XOR_I, INSN_MACRO, I1 }, {"xor.ob", "X,Y,Q", 0x7800000d, 0xfc20003f, WR_D|RD_S|RD_T|FP_D, MX|SB1 }, diff -uprN binutils-2.13.90.0.16/opcodes/mmix-dis.c binutils-2.13.90.0.18/opcodes/mmix-dis.c --- binutils-2.13.90.0.16/opcodes/mmix-dis.c Fri Nov 16 14:05:55 2001 +++ binutils-2.13.90.0.18/opcodes/mmix-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* mmix-dis.c -- Disassemble MMIX instructions. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Written by Hans-Peter Nilsson (hp@bitrange.com) This file is part of GDB and the GNU binutils. @@ -66,13 +66,15 @@ struct mmix_dis_info char basic_reg_name[256][sizeof ("$255")]; }; -static boolean initialize_mmix_dis_info PARAMS ((struct disassemble_info *)); -static const struct mmix_opcode *get_opcode PARAMS ((unsigned long)); +static bfd_boolean initialize_mmix_dis_info + PARAMS ((struct disassemble_info *)); +static const struct mmix_opcode *get_opcode + PARAMS ((unsigned long)); /* Initialize a target-specific array in INFO. */ -static boolean +static bfd_boolean initialize_mmix_dis_info (info) struct disassemble_info *info; { @@ -80,7 +82,7 @@ initialize_mmix_dis_info (info) int i; if (minfop == NULL) - return false; + return FALSE; memset (minfop, 0, sizeof (*minfop)); @@ -107,7 +109,7 @@ initialize_mmix_dis_info (info) if (syms == NULL) { FATAL_DEBUG; free (minfop); - return false; + return FALSE; } nsyms = bfd_canonicalize_symtab (abfd, syms); @@ -137,7 +139,7 @@ initialize_mmix_dis_info (info) minfop->spec_reg_name[mmix_spec_regs[i].number] = mmix_spec_regs[i].name; info->private_data = (PTR) minfop; - return true; + return TRUE; } /* A table indexed by the first byte is constructed as we disassemble each diff -uprN binutils-2.13.90.0.16/opcodes/msp430-dis.c binutils-2.13.90.0.18/opcodes/msp430-dis.c --- binutils-2.13.90.0.16/opcodes/msp430-dis.c Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/opcodes/msp430-dis.c Tue Jan 21 10:21:34 2003 @@ -0,0 +1,805 @@ +/* Disassemble MSP430 instructions. + Copyright (C) 2002 Free Software Foundation, Inc. + + Contributed by Dmitry Diky + + 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. */ + +#include +#include +#include +#include + +#include "dis-asm.h" +#include "opintl.h" +#include "libiberty.h" + +#define DASM_SECTION +#include "opcode/msp430.h" +#undef DASM_SECTION + + +static unsigned short msp430dis_opcode + PARAMS ((bfd_vma, disassemble_info *)); +int print_insn_msp430 + PARAMS ((bfd_vma, disassemble_info *)); +int msp430_nooperands + PARAMS ((struct msp430_opcode_s *, bfd_vma, unsigned short, char *, int *)); +int msp430_singleoperand + PARAMS ((disassemble_info *, struct msp430_opcode_s *, bfd_vma, unsigned short, + char *, char *, int *)); +int msp430_doubleoperand + PARAMS ((disassemble_info *, struct msp430_opcode_s *, bfd_vma, unsigned short, + char *, char *, char *, char *, int *)); +int msp430_branchinstr + PARAMS ((disassemble_info *, struct msp430_opcode_s *, bfd_vma, unsigned short, + char *, char *, int *)); + +#define PS(x) (0xffff & (x)) + +static unsigned short +msp430dis_opcode (addr, info) + bfd_vma addr; + disassemble_info *info; +{ + bfd_byte buffer[2]; + int status; + + status = info->read_memory_func (addr, buffer, 2, info); + if (status != 0) + { + info->memory_error_func (status, addr, info); + return -1; + } + return bfd_getl16 (buffer); +} + +int +print_insn_msp430 (addr, info) + bfd_vma addr; + disassemble_info *info; +{ + void *stream = info->stream; + fprintf_ftype prin = info->fprintf_func; + struct msp430_opcode_s *opcode; + char op1[32], op2[32], comm1[64], comm2[64]; + int cmd_len = 0; + unsigned short insn; + int cycles = 0; + char *bc = ""; + char dinfo[32]; /* Debug purposes. */ + + insn = msp430dis_opcode (addr, info); + sprintf (dinfo, "0x%04x", insn); + + if (((int) addr & 0xffff) > 0xffdf) + { + (*prin) (stream, "interrupt service routine at 0x%04x", 0xffff & insn); + return 2; + } + + *comm1 = 0; + *comm2 = 0; + + for (opcode = msp430_opcodes; opcode->name; opcode++) + { + if ((insn & opcode->bin_mask) == opcode->bin_opcode + && opcode->bin_opcode != 0x9300) + { + *op1 = 0; + *op2 = 0; + *comm1 = 0; + *comm2 = 0; + + /* r0 as destination. Ad should be zero. */ + if (opcode->insn_opnumb == 3 && (insn & 0x000f) == 0 + && (0x0080 & insn) == 0) + { + cmd_len = + msp430_branchinstr (info, opcode, addr, insn, op1, comm1, + &cycles); + if (cmd_len) + break; + } + + switch (opcode->insn_opnumb) + { + case 0: + cmd_len = msp430_nooperands (opcode, addr, insn, comm1, &cycles); + break; + case 2: + cmd_len = + msp430_doubleoperand (info, opcode, addr, insn, op1, op2, + comm1, comm2, &cycles); + if (insn & BYTE_OPERATION) + bc = ".b"; + break; + case 1: + cmd_len = + msp430_singleoperand (info, opcode, addr, insn, op1, comm1, + &cycles); + if (insn & BYTE_OPERATION && opcode->fmt != 3) + bc = ".b"; + break; + default: + break; + } + } + + if (cmd_len) + break; + } + + dinfo[5] = 0; + + if (cmd_len < 1) + { + /* Unknown opcode, or invalid combination of operands. */ + (*prin) (stream, ".word 0x%04x; ????", PS (insn)); + return 2; + } + + (*prin) (stream, "%s%s", opcode->name, bc); + + if (*op1) + (*prin) (stream, "\t%s", op1); + if (*op2) + (*prin) (stream, ","); + + if (strlen (op1) < 7) + (*prin) (stream, "\t"); + if (!strlen (op1)) + (*prin) (stream, "\t"); + + if (*op2) + (*prin) (stream, "%s", op2); + if (strlen (op2) < 8) + (*prin) (stream, "\t"); + + if (*comm1 || *comm2) + (*prin) (stream, ";"); + else if (cycles) + { + if (*op2) + (*prin) (stream, ";"); + else + { + if (strlen (op1) < 7) + (*prin) (stream, ";"); + else + (*prin) (stream, "\t;"); + } + } + if (*comm1) + (*prin) (stream, "%s", comm1); + if (*comm1 && *comm2) + (*prin) (stream, ","); + if (*comm2) + (*prin) (stream, " %s", comm2); + return cmd_len; +} + +int +msp430_nooperands (opcode, addr, insn, comm, cycles) + struct msp430_opcode_s *opcode; + bfd_vma addr ATTRIBUTE_UNUSED; + unsigned short insn ATTRIBUTE_UNUSED; + char *comm; + int *cycles; +{ + /* Pop with constant. */ + if (insn == 0x43b2) + return 0; + if (insn == opcode->bin_opcode) + return 2; + + if (opcode->fmt == 0) + { + if ((insn & 0x0f00) != 3 || (insn & 0x0f00) != 2) + return 0; + + strcpy (comm, "emulated..."); + *cycles = 1; + } + else + { + strcpy (comm, "return from interupt"); + *cycles = 5; + } + + return 2; +} + + +int +msp430_singleoperand (info, opcode, addr, insn, op, comm, cycles) + disassemble_info *info; + struct msp430_opcode_s *opcode; + bfd_vma addr; + unsigned short insn; + char *op; + char *comm; + int *cycles; +{ + int regs = 0, regd = 0; + int ad = 0, as = 0; + int where = 0; + int cmd_len = 2; + short dst = 0; + + regd = insn & 0x0f; + regs = (insn & 0x0f00) >> 8; + as = (insn & 0x0030) >> 4; + ad = (insn & 0x0080) >> 7; + + switch (opcode->fmt) + { + case 0: /* Emulated work with dst register. */ + if (regs != 2 && regs != 3 && regs != 1) + return 0; + + /* Check if not clr insn. */ + if (opcode->bin_opcode == 0x4300 && (ad || as)) + return 0; + + /* Check if really inc, incd insns. */ + if ((opcode->bin_opcode & 0xff00) == 0x5300 && as == 3) + return 0; + + if (ad == 0) + { + *cycles = 1; + + /* Register. */ + if (regd == 0) + { + *cycles += 1; + sprintf (op, "r0"); + } + else if (regd == 1) + sprintf (op, "r1"); + + else if (regd == 2) + sprintf (op, "r2"); + + else + sprintf (op, "r%d", regd); + } + else /* ad == 1 msp430dis_opcode. */ + { + if (regd == 0) + { + /* PC relative. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + *cycles = 4; + sprintf (op, "0x%04x", dst); + sprintf (comm, "PC rel. abs addr 0x%04x", + PS ((short) (addr + 2) + dst)); + } + else if (regd == 2) + { + /* Absolute. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + *cycles = 4; + sprintf (op, "&0x%04x", PS (dst)); + } + else + { + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + *cycles = 4; + sprintf (op, "%d(r%d)", dst, regd); + } + } + break; + + case 2: /* rrc, push, call, swpb, rra, sxt, push, call, reti etc... */ + + if (as == 0) + { + if (regd == 3) + { + /* Constsnts. */ + sprintf (op, "#0"); + sprintf (comm, "r3 As==00"); + } + else + { + /* Register. */ + sprintf (op, "r%d", regd); + } + *cycles = 1; + } + else if (as == 2) + { + *cycles = 1; + if (regd == 2) + { + sprintf (op, "#4"); + sprintf (comm, "r2 As==10"); + } + else if (regd == 3) + { + sprintf (op, "#2"); + sprintf (comm, "r3 As==10"); + } + else + { + *cycles = 3; + /* Indexed register mode @Rn. */ + sprintf (op, "@r%d", regd); + } + } + else if (as == 3) + { + *cycles = 1; + if (regd == 2) + { + sprintf (op, "#8"); + sprintf (comm, "r2 As==11"); + } + else if (regd == 3) + { + sprintf (op, "#-1"); + sprintf (comm, "r3 As==11"); + } + else if (regd == 0) + { + *cycles = 3; + /* absolute. @pc+ */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op, "#%d", dst); + sprintf (comm, "#0x%04x", PS (dst)); + } + else + { + *cycles = 3; + sprintf (op, "@r%d+", regd); + } + } + else if (as == 1) + { + *cycles = 4; + if (regd == 0) + { + /* PC relative. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op, "0x%04x", PS (dst)); + sprintf (comm, "PC rel. 0x%04x", + PS ((short) addr + 2 + dst)); + } + else if (regd == 2) + { + /* Absolute. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op, "&0x%04x", PS (dst)); + } + else if (regd == 3) + { + *cycles = 1; + sprintf (op, "#1"); + sprintf (comm, "r3 As==01"); + } + else + { + /* Indexd. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op, "%d(r%d)", dst, regd); + } + } + break; + + case 3: /* Jumps. */ + where = insn & 0x03ff; + if (where & 0x200) + where |= ~0x03ff; + if (where > 512 || where < -511) + return 0; + + where *= 2; + sprintf (op, "$%+-8d", where + 2); + sprintf (comm, "abs 0x%x", PS ((short) (addr) + 2 + where)); + *cycles = 2; + return 2; + break; + default: + cmd_len = 0; + } + + return cmd_len; +} + +int +msp430_doubleoperand (info, opcode, addr, insn, op1, op2, comm1, comm2, cycles) + disassemble_info *info; + struct msp430_opcode_s *opcode; + bfd_vma addr; + unsigned short insn; + char *op1, *op2; + char *comm1, *comm2; + int *cycles; +{ + int regs = 0, regd = 0; + int ad = 0, as = 0; + int cmd_len = 2; + short dst = 0; + + regd = insn & 0x0f; + regs = (insn & 0x0f00) >> 8; + as = (insn & 0x0030) >> 4; + ad = (insn & 0x0080) >> 7; + + if (opcode->fmt == 0) + { + /* Special case: rla and rlc are the only 2 emulated instructions that + fall into two operand instructions. */ + /* With dst, there are only: + Rm Register, + x(Rm) Indexed, + 0xXXXX Relative, + &0xXXXX Absolute + emulated_ins dst + basic_ins dst, dst. */ + + if (regd != regs || as != ad) + return 0; /* May be 'data' section. */ + + if (ad == 0) + { + /* Register mode. */ + if (regd == 3) + { + strcpy (comm1, "Illegal as emulation instr"); + return -1; + } + + sprintf (op1, "r%d", regd); + *cycles = 1; + } + else /* ad == 1 */ + { + if (regd == 0) + { + /* PC relative, Symbolic. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 4; + *cycles = 6; + sprintf (op1, "0x%04x", PS (dst)); + sprintf (comm1, "PC rel. 0x%04x", + PS ((short) addr + 2 + dst)); + + } + else if (regd == 2) + { + /* Absolute. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 4; + *cycles = 6; + sprintf (op1, "&0x%04x", PS (dst)); + } + else + { + /* Indexed. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 4; + *cycles = 6; + sprintf (op1, "%d(r%d)", dst, regd); + } + } + + *op2 = 0; + *comm2 = 0; + return cmd_len; + } + + /* Two operands exactly. */ + if (ad == 0 && regd == 3) + { + /* R2/R3 are illegal as dest: may be data section. */ + strcpy (comm1, "Illegal as 2-op instr"); + return -1; + } + + /* Source. */ + if (as == 0) + { + *cycles = 1; + if (regs == 3) + { + /* Constsnts. */ + sprintf (op1, "#0"); + sprintf (comm1, "r3 As==00"); + } + else + { + /* Register. */ + sprintf (op1, "r%d", regs); + } + } + else if (as == 2) + { + *cycles = 1; + + if (regs == 2) + { + sprintf (op1, "#4"); + sprintf (comm1, "r2 As==10"); + } + else if (regs == 3) + { + sprintf (op1, "#2"); + sprintf (comm1, "r3 As==10"); + } + else + { + *cycles = 2; + + /* Indexed register mode @Rn. */ + sprintf (op1, "@r%d", regs); + } + if (!regs) + *cycles = 3; + } + else if (as == 3) + { + if (regs == 2) + { + sprintf (op1, "#8"); + sprintf (comm1, "r2 As==11"); + *cycles = 1; + } + else if (regs == 3) + { + sprintf (op1, "#-1"); + sprintf (comm1, "r3 As==11"); + *cycles = 1; + } + else if (regs == 0) + { + *cycles = 3; + /* Absolute. @pc+ */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op1, "#%d", dst); + sprintf (comm1, "#0x%04x", PS (dst)); + } + else + { + *cycles = 2; + sprintf (op1, "@r%d+", regs); + } + } + else if (as == 1) + { + if (regs == 0) + { + *cycles = 4; + /* PC relative. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op1, "0x%04x", PS (dst)); + sprintf (comm1, "PC rel. 0x%04x", + PS ((short) addr + 2 + dst)); + } + else if (regs == 2) + { + *cycles = 2; + /* Absolute. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op1, "&0x%04x", PS (dst)); + sprintf (comm1, "0x%04x", PS (dst)); + } + else if (regs == 3) + { + *cycles = 1; + sprintf (op1, "#1"); + sprintf (comm1, "r3 As==01"); + } + else + { + *cycles = 3; + /* Indexed. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op1, "%d(r%d)", dst, regs); + } + } + + /* Destination. Special care needed on addr + XXXX. */ + + if (ad == 0) + { + /* Register. */ + if (regd == 0) + { + *cycles += 1; + sprintf (op2, "r0"); + } + else if (regd == 1) + sprintf (op2, "r1"); + + else if (regd == 2) + sprintf (op2, "r2"); + + else + sprintf (op2, "r%d", regd); + } + else /* ad == 1. */ + { + * cycles += 3; + + if (regd == 0) + { + /* PC relative. */ + *cycles += 1; + dst = msp430dis_opcode (addr + cmd_len, info); + sprintf (op2, "0x%04x", PS (dst)); + sprintf (comm2, "PC rel. 0x%04x", + PS ((short) addr + cmd_len + dst)); + cmd_len += 2; + } + else if (regd == 2) + { + /* Absolute. */ + dst = msp430dis_opcode (addr + cmd_len, info); + cmd_len += 2; + sprintf (op2, "&0x%04x", PS (dst)); + } + else + { + dst = msp430dis_opcode (addr + cmd_len, info); + cmd_len += 2; + sprintf (op2, "%d(r%d)", dst, regd); + } + } + + return cmd_len; +} + + +int +msp430_branchinstr (info, opcode, addr, insn, op1, comm1, cycles) + disassemble_info *info; + struct msp430_opcode_s *opcode ATTRIBUTE_UNUSED; + bfd_vma addr ATTRIBUTE_UNUSED; + unsigned short insn; + char *op1; + char *comm1; + int *cycles; +{ + int regs = 0, regd = 0; + int ad = 0, as = 0; + int cmd_len = 2; + short dst = 0; + + regd = insn & 0x0f; + regs = (insn & 0x0f00) >> 8; + as = (insn & 0x0030) >> 4; + ad = (insn & 0x0080) >> 7; + + if (regd != 0) /* Destination register is not a PC. */ + return 0; + + /* dst is a source register. */ + if (as == 0) + { + /* Constants. */ + if (regs == 3) + { + *cycles = 1; + sprintf (op1, "#0"); + sprintf (comm1, "r3 As==00"); + } + else + { + /* Register. */ + *cycles = 1; + sprintf (op1, "r%d", regs); + } + } + else if (as == 2) + { + if (regs == 2) + { + *cycles = 2; + sprintf (op1, "#4"); + sprintf (comm1, "r2 As==10"); + } + else if (regs == 3) + { + *cycles = 1; + sprintf (op1, "#2"); + sprintf (comm1, "r3 As==10"); + } + else + { + /* Indexed register mode @Rn. */ + *cycles = 2; + sprintf (op1, "@r%d", regs); + } + } + else if (as == 3) + { + if (regs == 2) + { + *cycles = 1; + sprintf (op1, "#8"); + sprintf (comm1, "r2 As==11"); + } + else if (regs == 3) + { + *cycles = 1; + sprintf (op1, "#-1"); + sprintf (comm1, "r3 As==11"); + } + else if (regs == 0) + { + /* Absolute. @pc+ */ + *cycles = 3; + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op1, "#0x%04x", PS (dst)); + } + else + { + *cycles = 2; + sprintf (op1, "@r%d+", regs); + } + } + else if (as == 1) + { + * cycles = 3; + + if (regs == 0) + { + /* PC relative. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + (*cycles)++; + sprintf (op1, "0x%04x", PS (dst)); + sprintf (comm1, "PC rel. 0x%04x", + PS ((short) addr + 2 + dst)); + } + else if (regs == 2) + { + /* Absolute. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op1, "&0x%04x", PS (dst)); + } + else if (regs == 3) + { + (*cycles)--; + sprintf (op1, "#1"); + sprintf (comm1, "r3 As==01"); + } + else + { + /* Indexd. */ + dst = msp430dis_opcode (addr + 2, info); + cmd_len += 2; + sprintf (op1, "%d(r%d)", dst, regs); + } + } + + return cmd_len; +} diff -uprN binutils-2.13.90.0.16/opcodes/ns32k-dis.c binutils-2.13.90.0.18/opcodes/ns32k-dis.c --- binutils-2.13.90.0.16/opcodes/ns32k-dis.c Mon Oct 1 15:25:26 2001 +++ binutils-2.13.90.0.18/opcodes/ns32k-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Print National Semiconductor 32000 instructions. - Copyright 1986, 1988, 1991, 1992, 1994, 1998, 2001 + Copyright 1986, 1988, 1991, 1992, 1994, 1998, 2001, 2002 Free Software Foundation, Inc. This file is part of opcodes library. @@ -405,8 +405,8 @@ print_insn_ns32k (memaddr, info) bfd_vma memaddr; disassemble_info *info; { - register unsigned int i; - register char *d; + unsigned int i; + const char *d; unsigned short first_word; int ioffset; /* bits into instruction */ int aoffset; /* bits into arguments */ @@ -556,10 +556,13 @@ print_insn_arg (d, ioffset, aoffsetp, bu char *result; int index_offset; { - int addr_mode; - float Fvalue; - double Lvalue; + union { + float f; + double d; + int i[2]; + } value; int Ivalue; + int addr_mode; int disp1, disp2; int index; int size; @@ -647,23 +650,23 @@ print_insn_arg (d, ioffset, aoffsetp, bu sprintf (result, "$%d", Ivalue); break; case 'F': - bit_copy (buffer, *aoffsetp, 32, (char *) &Fvalue); - flip_bytes ((char *) & Fvalue, 4); + bit_copy (buffer, *aoffsetp, 32, (char *) &value.f); + flip_bytes ((char *) &value.f, 4); *aoffsetp += 32; - if (INVALID_FLOAT (&Fvalue, 4)) - sprintf (result, "<>", *(int *) &Fvalue); + if (INVALID_FLOAT (&value.f, 4)) + sprintf (result, "<>", value.i[0]); else /* assume host has ieee float */ - sprintf (result, "$%g", Fvalue); + sprintf (result, "$%g", value.f); break; case 'L': - bit_copy (buffer, *aoffsetp, 64, (char *) &Lvalue); - flip_bytes ((char *) & Lvalue, 8); + bit_copy (buffer, *aoffsetp, 64, (char *) &value.d); + flip_bytes ((char *) &value.d, 8); *aoffsetp += 64; - if (INVALID_FLOAT (&Lvalue, 8)) - sprintf (result, "<>", - *(((int *) &Lvalue) + 1), *(int *) &Lvalue); + if (INVALID_FLOAT (&value.d, 8)) + sprintf (result, "<>", + value.i[1], value.i[0]); else /* assume host has ieee float */ - sprintf (result, "$%g", Lvalue); + sprintf (result, "$%g", value.d); break; } break; diff -uprN binutils-2.13.90.0.16/opcodes/openrisc-desc.c binutils-2.13.90.0.18/opcodes/openrisc-desc.c --- binutils-2.13.90.0.16/opcodes/openrisc-desc.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/openrisc-desc.c Mon Dec 16 12:22:53 2002 @@ -32,6 +32,7 @@ with this program; if not, write to the #include "openrisc-opc.h" #include "opintl.h" #include "libiberty.h" +#include "xregex.h" /* Attributes. */ @@ -263,9 +264,9 @@ const CGEN_MAYBE_MULTI_IFLD OPENRISC_F_I const CGEN_MAYBE_MULTI_IFLD OPENRISC_F_I16NC_MULTI_IFIELD [] = { - { 0, &(openrisc_cgen_ifld_table[19]) }, - { 0, &(openrisc_cgen_ifld_table[20]) }, - {0,0} + { 0, { (const PTR) &openrisc_cgen_ifld_table[19] } }, + { 0, { (const PTR) &openrisc_cgen_ifld_table[20] } }, + { 0, { (const PTR) 0 } } }; /* The operand table. */ @@ -285,69 +286,72 @@ const CGEN_OPERAND openrisc_cgen_operand { /* pc: program counter */ { "pc", OPENRISC_OPERAND_PC, HW_H_PC, 0, 0, - { 0, &(openrisc_cgen_ifld_table[0]) }, + { 0, { (const PTR) &openrisc_cgen_ifld_table[0] } }, { 0|A(SEM_ONLY), { (1<macro_insn_table.init_entries) { @@ -1026,7 +1030,7 @@ openrisc_cgen_cpu_close (cd) for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX ((insns))) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } @@ -1036,7 +1040,7 @@ openrisc_cgen_cpu_close (cd) for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX (insns)) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } diff -uprN binutils-2.13.90.0.16/opcodes/openrisc-dis.c binutils-2.13.90.0.18/opcodes/openrisc-dis.c --- binutils-2.13.90.0.16/opcodes/openrisc-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/openrisc-dis.c Mon Dec 16 12:22:53 2002 @@ -4,7 +4,8 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -31,6 +32,7 @@ along with this program; if not, write t #include "dis-asm.h" #include "bfd.h" #include "symcat.h" +#include "libiberty.h" #include "openrisc-desc.h" #include "openrisc-opc.h" #include "opintl.h" diff -uprN binutils-2.13.90.0.16/opcodes/pdp11-dis.c binutils-2.13.90.0.18/opcodes/pdp11-dis.c --- binutils-2.13.90.0.16/opcodes/pdp11-dis.c Thu Mar 7 11:52:40 2002 +++ binutils-2.13.90.0.18/opcodes/pdp11-dis.c Mon Dec 16 12:22:53 2002 @@ -84,7 +84,7 @@ print_reg (reg, info) FPRINTF (F, "r%d", reg); break; case 6: FPRINTF (F, "sp"); break; case 7: FPRINTF (F, "pc"); break; - default: /* error */ + default: ; /* error */ } } diff -uprN binutils-2.13.90.0.16/opcodes/pj-dis.c binutils-2.13.90.0.18/opcodes/pj-dis.c --- binutils-2.13.90.0.16/opcodes/pj-dis.c Mon Aug 27 11:44:52 2001 +++ binutils-2.13.90.0.18/opcodes/pj-dis.c Mon Dec 16 12:22:53 2002 @@ -62,7 +62,7 @@ print_insn_pj (addr, info) unsigned char byte_2; if ((status = info->read_memory_func (addr + 1, &byte_2, 1, info))) goto fail; - fprintf_fn (stream, "%s\t", pj_opc_info[opcode + byte_2].name); + fprintf_fn (stream, "%s\t", pj_opc_info[opcode + byte_2].u.name); return 2; } else @@ -72,12 +72,12 @@ print_insn_pj (addr, info) const pj_opc_info_t *op = &pj_opc_info[opcode]; int a; addr++; - fprintf_fn (stream, "%s", op->name); + fprintf_fn (stream, "%s", op->u.name); /* The tableswitch instruction is followed by the default address, low value, high value and the destinations. */ - if (strcmp (op->name, "tableswitch") == 0) + if (strcmp (op->u.name, "tableswitch") == 0) { int lowval; int highval; @@ -116,7 +116,7 @@ print_insn_pj (addr, info) address, element count and pairs of values and addresses. */ - if (strcmp (op->name, "lookupswitch") == 0) + if (strcmp (op->u.name, "lookupswitch") == 0) { int count; int val; diff -uprN binutils-2.13.90.0.16/opcodes/pj-opc.c binutils-2.13.90.0.18/opcodes/pj-opc.c --- binutils-2.13.90.0.16/opcodes/pj-opc.c Thu Mar 15 14:52:13 2001 +++ binutils-2.13.90.0.18/opcodes/pj-opc.c Mon Dec 16 12:22:53 2002 @@ -22,515 +22,515 @@ Foundation, Inc., 59 Temple Place - Suit const pj_opc_info_t pj_opc_info[512] = { -{ 0x00, -1, 1, {O_N, O_N}, "nop"}, -{ 0x01, -1, 1, {O_N, O_N}, "aconst_null"}, -{ 0x02, -1, 1, {O_N, O_N}, "iconst_m1"}, -{ 0x03, -1, 1, {O_N, O_N}, "iconst_0"}, -{ 0x04, -1, 1, {O_N, O_N}, "iconst_1"}, -{ 0x05, -1, 1, {O_N, O_N}, "iconst_2"}, -{ 0x06, -1, 1, {O_N, O_N}, "iconst_3"}, -{ 0x07, -1, 1, {O_N, O_N}, "iconst_4"}, -{ 0x08, -1, 1, {O_N, O_N}, "iconst_5"}, -{ 0x09, -1, 1, {O_N, O_N}, "lconst_0"}, -{ 0x0a, -1, 1, {O_N, O_N}, "lconst_1"}, -{ 0x0b, -1, 1, {O_N, O_N}, "fconst_0"}, -{ 0x0c, -1, 1, {O_N, O_N}, "fconst_1"}, -{ 0x0d, -1, 1, {O_N, O_N}, "fconst_2"}, -{ 0x0e, -1, 1, {O_N, O_N}, "dconst_0"}, -{ 0x0f, -1, 1, {O_N, O_N}, "dconst_1"}, -{ 0x10, -1, 2, {O_8, O_N}, "bipush"}, -{ 0x11, -1, 3, {O_16, O_N}, "sipush"}, -{ 0x12, -1, 2, {O_N, O_N}, "ldc"}, -{ 0x13, -1, 3, {O_N, O_N}, "ldc_w"}, -{ 0x14, -1, 3, {O_N, O_N}, "ldc2_w"}, -{ 0x15, -1, 2, {O_U8, O_N}, "iload"}, -{ 0x16, -1, 2, {O_U8, O_N}, "lload"}, -{ 0x17, -1, 2, {O_U8, O_N}, "fload"}, -{ 0x18, -1, 2, {O_U8, O_N}, "dload"}, -{ 0x19, -1, 2, {O_U8, O_N}, "aload"}, -{ 0x1a, -1, 1, {O_N, O_N}, "iload_0"}, -{ 0x1b, -1, 1, {O_N, O_N}, "iload_1"}, -{ 0x1c, -1, 1, {O_N, O_N}, "iload_2"}, -{ 0x1d, -1, 1, {O_N, O_N}, "iload_3"}, -{ 0x1e, -1, 1, {O_N, O_N}, "lload_0"}, -{ 0x1f, -1, 1, {O_N, O_N}, "lload_1"}, -{ 0x20, -1, 1, {O_N, O_N}, "lload_2"}, -{ 0x21, -1, 1, {O_N, O_N}, "lload_3"}, -{ 0x22, -1, 1, {O_N, O_N}, "fload_0"}, -{ 0x23, -1, 1, {O_N, O_N}, "fload_1"}, -{ 0x24, -1, 1, {O_N, O_N}, "fload_2"}, -{ 0x25, -1, 1, {O_N, O_N}, "fload_3"}, -{ 0x26, -1, 1, {O_N, O_N}, "dload_0"}, -{ 0x27, -1, 1, {O_N, O_N}, "dload_1"}, -{ 0x28, -1, 1, {O_N, O_N}, "dload_2"}, -{ 0x29, -1, 1, {O_N, O_N}, "dload_3"}, -{ 0x2a, -1, 1, {O_N, O_N}, "aload_0"}, -{ 0x2b, -1, 1, {O_N, O_N}, "aload_1"}, -{ 0x2c, -1, 1, {O_N, O_N}, "aload_2"}, -{ 0x2d, -1, 1, {O_N, O_N}, "aload_3"}, -{ 0x2e, -1, 1, {O_N, O_N}, "iaload"}, -{ 0x2f, -1, 1, {O_N, O_N}, "laload"}, -{ 0x30, -1, 1, {O_N, O_N}, "faload"}, -{ 0x31, -1, 1, {O_N, O_N}, "daload"}, -{ 0x32, -1, 1, {O_N, O_N}, "aaload"}, -{ 0x33, -1, 1, {O_N, O_N}, "baload"}, -{ 0x34, -1, 1, {O_N, O_N}, "caload"}, -{ 0x35, -1, 1, {O_N, O_N}, "saload"}, -{ 0x36, -1, 2, {O_U8, O_N}, "istore"}, -{ 0x37, -1, 2, {O_U8, O_N}, "lstore"}, -{ 0x38, -1, 2, {O_U8, O_N}, "fstore"}, -{ 0x39, -1, 2, {O_U8, O_N}, "dstore"}, -{ 0x3a, -1, 2, {O_U8, O_N}, "astore"}, -{ 0x3b, -1, 1, {O_N, O_N}, "istore_0"}, -{ 0x3c, -1, 1, {O_N, O_N}, "istore_1"}, -{ 0x3d, -1, 1, {O_N, O_N}, "istore_2"}, -{ 0x3e, -1, 1, {O_N, O_N}, "istore_3"}, -{ 0x3f, -1, 1, {O_N, O_N}, "lstore_0"}, -{ 0x40, -1, 1, {O_N, O_N}, "lstore_1"}, -{ 0x41, -1, 1, {O_N, O_N}, "lstore_2"}, -{ 0x42, -1, 1, {O_N, O_N}, "lstore_3"}, -{ 0x43, -1, 1, {O_N, O_N}, "fstore_0"}, -{ 0x44, -1, 1, {O_N, O_N}, "fstore_1"}, -{ 0x45, -1, 1, {O_N, O_N}, "fstore_2"}, -{ 0x46, -1, 1, {O_N, O_N}, "fstore_3"}, -{ 0x47, -1, 1, {O_N, O_N}, "dstore_0"}, -{ 0x48, -1, 1, {O_N, O_N}, "dstore_1"}, -{ 0x49, -1, 1, {O_N, O_N}, "dstore_2"}, -{ 0x4a, -1, 1, {O_N, O_N}, "dstore_3"}, -{ 0x4b, -1, 1, {O_N, O_N}, "astore_0"}, -{ 0x4c, -1, 1, {O_N, O_N}, "astore_1"}, -{ 0x4d, -1, 1, {O_N, O_N}, "astore_2"}, -{ 0x4e, -1, 1, {O_N, O_N}, "astore_3"}, -{ 0x4f, -1, 1, {O_N, O_N}, "iastore"}, -{ 0x50, -1, 1, {O_N, O_N}, "lastore"}, -{ 0x51, -1, 1, {O_N, O_N}, "fastore"}, -{ 0x52, -1, 1, {O_N, O_N}, "dastore"}, -{ 0x53, -1, 1, {O_N, O_N}, "aastore"}, -{ 0x54, -1, 1, {O_N, O_N}, "bastore"}, -{ 0x55, -1, 1, {O_N, O_N}, "castore"}, -{ 0x56, -1, 1, {O_N, O_N}, "sastore"}, -{ 0x57, -1, 1, {O_N, O_N}, "pop"}, -{ 0x58, -1, 1, {O_N, O_N}, "pop2"}, -{ 0x59, -1, 1, {O_N, O_N}, "dup"}, -{ 0x5a, -1, 1, {O_N, O_N}, "dup_x1"}, -{ 0x5b, -1, 1, {O_N, O_N}, "dup_x2"}, -{ 0x5c, -1, 1, {O_N, O_N}, "dup2"}, -{ 0x5d, -1, 1, {O_N, O_N}, "dup2_x1"}, -{ 0x5e, -1, 1, {O_N, O_N}, "dup2_x2"}, -{ 0x5f, -1, 1, {O_N, O_N}, "swap"}, -{ 0x60, -1, 1, {O_N, O_N}, "iadd"}, -{ 0x61, -1, 1, {O_N, O_N}, "ladd"}, -{ 0x62, -1, 1, {O_N, O_N}, "fadd"}, -{ 0x63, -1, 1, {O_N, O_N}, "dadd"}, -{ 0x64, -1, 1, {O_N, O_N}, "isub"}, -{ 0x65, -1, 1, {O_N, O_N}, "lsub"}, -{ 0x66, -1, 1, {O_N, O_N}, "fsub"}, -{ 0x67, -1, 1, {O_N, O_N}, "dsub"}, -{ 0x68, -1, 1, {O_N, O_N}, "imul"}, -{ 0x69, -1, 1, {O_N, O_N}, "lmul"}, -{ 0x6a, -1, 1, {O_N, O_N}, "fmul"}, -{ 0x6b, -1, 1, {O_N, O_N}, "dmul"}, -{ 0x6c, -1, 1, {O_N, O_N}, "idiv"}, -{ 0x6d, -1, 1, {O_N, O_N}, "ldiv"}, -{ 0x6e, -1, 1, {O_N, O_N}, "fdiv"}, -{ 0x6f, -1, 1, {O_N, O_N}, "ddiv"}, -{ 0x70, -1, 1, {O_N, O_N}, "irem"}, -{ 0x71, -1, 1, {O_N, O_N}, "lrem"}, -{ 0x72, -1, 1, {O_N, O_N}, "frem"}, -{ 0x73, -1, 1, {O_N, O_N}, "drem"}, -{ 0x74, -1, 1, {O_N, O_N}, "ineg"}, -{ 0x75, -1, 1, {O_N, O_N}, "lneg"}, -{ 0x76, -1, 1, {O_N, O_N}, "fneg"}, -{ 0x77, -1, 1, {O_N, O_N}, "dneg"}, -{ 0x78, -1, 1, {O_N, O_N}, "ishl"}, -{ 0x79, -1, 1, {O_N, O_N}, "lshl"}, -{ 0x7a, -1, 1, {O_N, O_N}, "ishr"}, -{ 0x7b, -1, 1, {O_N, O_N}, "lshr"}, -{ 0x7c, -1, 1, {O_N, O_N}, "iushr"}, -{ 0x7d, -1, 1, {O_N, O_N}, "lushr"}, -{ 0x7e, -1, 1, {O_N, O_N}, "iand"}, -{ 0x7f, -1, 1, {O_N, O_N}, "land"}, -{ 0x80, -1, 1, {O_N, O_N}, "ior"}, -{ 0x81, -1, 1, {O_N, O_N}, "lor"}, -{ 0x82, -1, 1, {O_N, O_N}, "ixor"}, -{ 0x83, -1, 1, {O_N, O_N}, "lxor"}, -{ 0x84, -1, 3, {O_U8, O_8}, "iinc"}, -{ 0x85, -1, 1, {O_N, O_N}, "i2l"}, -{ 0x86, -1, 1, {O_N, O_N}, "i2f"}, -{ 0x87, -1, 1, {O_N, O_N}, "i2d"}, -{ 0x88, -1, 1, {O_N, O_N}, "l2i"}, -{ 0x89, -1, 1, {O_N, O_N}, "l2f"}, -{ 0x8a, -1, 1, {O_N, O_N}, "l2d"}, -{ 0x8b, -1, 1, {O_N, O_N}, "f2i"}, -{ 0x8c, -1, 1, {O_N, O_N}, "f2l"}, -{ 0x8d, -1, 1, {O_N, O_N}, "f2d"}, -{ 0x8e, -1, 1, {O_N, O_N}, "d2i"}, -{ 0x8f, -1, 1, {O_N, O_N}, "d2l"}, -{ 0x90, -1, 1, {O_N, O_N}, "d2f"}, -{ 0x91, -1, 1, {O_N, O_N}, "i2b"}, -{ 0x92, -1, 1, {O_N, O_N}, "i2c"}, -{ 0x93, -1, 1, {O_N, O_N}, "i2s"}, -{ 0x94, -1, 1, {O_N, O_N}, "lcmp"}, -{ 0x95, -1, 1, {O_N, O_N}, "fcmpl"}, -{ 0x96, -1, 1, {O_N, O_N}, "fcmpg"}, -{ 0x97, -1, 1, {O_N, O_N}, "dcmpl"}, -{ 0x98, -1, 1, {O_N, O_N}, "dcmpg"}, -{ 0x99, -1, 3, {O_R16, O_N}, "ifeq"}, -{ 0x9a, -1, 3, {O_R16, O_N}, "ifne"}, -{ 0x9b, -1, 3, {O_R16, O_N}, "iflt"}, -{ 0x9c, -1, 3, {O_R16, O_N}, "ifge"}, -{ 0x9d, -1, 3, {O_R16, O_N}, "ifgt"}, -{ 0x9e, -1, 3, {O_R16, O_N}, "ifle"}, -{ 0x9f, -1, 3, {O_R16, O_N}, "if_icmpeq"}, -{ 0xa0, -1, 3, {O_R16, O_N}, "if_icmpne"}, -{ 0xa1, -1, 3, {O_R16, O_N}, "if_icmplt"}, -{ 0xa2, -1, 3, {O_R16, O_N}, "if_icmpge"}, -{ 0xa3, -1, 3, {O_R16, O_N}, "if_icmpgt"}, -{ 0xa4, -1, 3, {O_R16, O_N}, "if_icmple"}, -{ 0xa5, -1, 3, {O_R16, O_N}, "if_acmpeq"}, -{ 0xa6, -1, 3, {O_R16, O_N}, "if_acmpne"}, -{ 0xa7, -1, 3, {O_R16, O_N}, "goto"}, -{ 0xa8, -1, 3, {O_N, O_N}, "jsr"}, -{ 0xa9, -1, 2, {O_N, O_N}, "ret"}, -{ 0xaa, -1, 1, {O_N, O_N}, "tableswitch"}, -{ 0xab, -1, 1, {O_N, O_N}, "lookupswitch"}, -{ 0xac, -1, 1, {O_N, O_N}, "ireturn"}, -{ 0xad, -1, 1, {O_N, O_N}, "lreturn"}, -{ 0xae, -1, 1, {O_N, O_N}, "freturn"}, -{ 0xaf, -1, 1, {O_N, O_N}, "dreturn"}, -{ 0xb0, -1, 1, {O_N, O_N}, "areturn"}, -{ 0xb1, -1, 1, {O_N, O_N}, "return"}, -{ 0xb2, -1, 3, {O_N, O_N}, "getstatic"}, -{ 0xb3, -1, 3, {O_N, O_N}, "putstatic"}, -{ 0xb4, -1, 3, {O_N, O_N}, "getfield"}, -{ 0xb5, -1, 3, {O_N, O_N}, "putfield"}, -{ 0xb6, -1, 3, {O_N, O_N}, "invokevirtual"}, -{ 0xb7, -1, 3, {O_N, O_N}, "invokespecial"}, -{ 0xb8, -1, 3, {O_N, O_N}, "invokestatic"}, -{ 0xb9, -1, 5, {O_N, O_N}, "invokeinterface"}, -{ 0xba, -1, 1, {O_N, O_N}, "bad_ba"}, -{ 0xbb, -1, 3, {O_N, O_N}, "new"}, -{ 0xbc, -1, 2, {O_N, O_N}, "newarray"}, -{ 0xbd, -1, 3, {O_N, O_N}, "anewarray"}, -{ 0xbe, -1, 1, {O_N, O_N}, "arraylength"}, -{ 0xbf, -1, 1, {O_N, O_N}, "athrow"}, -{ 0xc0, -1, 3, {O_N, O_N}, "checkcast"}, -{ 0xc1, -1, 3, {O_N, O_N}, "instanceof"}, -{ 0xc2, -1, 1, {O_N, O_N}, "monitorenter"}, -{ 0xc3, -1, 1, {O_N, O_N}, "monitorexit"}, -{ 0xc4, -1, 1, {O_N, O_N}, "wide"}, -{ 0xc5, -1, 4, {O_N, O_N}, "multianewarray"}, -{ 0xc6, -1, 3, {O_N, O_N}, "ifnull"}, -{ 0xc7, -1, 3, {O_N, O_N}, "ifnonnull"}, -{ 0xc8, -1, 5, {O_N, O_N}, "goto_w"}, -{ 0xc9, -1, 5, {O_N, O_N}, "jsr_w"}, -{ 0xca, -1, 1, {O_N, O_N}, "breakpoint"}, -{ 0xcb, -1, 1, {O_N, O_N}, "bytecode"}, -{ 0xcc, -1, 1, {O_N, O_N}, "try"}, -{ 0xcd, -1, 1, {O_N, O_N}, "endtry"}, -{ 0xce, -1, 1, {O_N, O_N}, "catch"}, -{ 0xcf, -1, 1, {O_N, O_N}, "var"}, -{ 0xd0, -1, 1, {O_N, O_N}, "endvar"}, -{ 0xd1, -1, 1, {O_N, O_N}, "bad_d1"}, -{ 0xd2, -1, 1, {O_N, O_N}, "bad_d2"}, -{ 0xd3, -1, 1, {O_N, O_N}, "bad_d3"}, -{ 0xd4, -1, 1, {O_N, O_N}, "bad_d4"}, -{ 0xd5, -1, 1, {O_N, O_N}, "bad_d5"}, -{ 0xd6, -1, 1, {O_N, O_N}, "bad_d6"}, -{ 0xd7, -1, 1, {O_N, O_N}, "bad_d7"}, -{ 0xd8, -1, 1, {O_N, O_N}, "bad_d8"}, -{ 0xd9, -1, 1, {O_N, O_N}, "bad_d9"}, -{ 0xda, -1, 1, {O_N, O_N}, "bad_da"}, -{ 0xdb, -1, 1, {O_N, O_N}, "bad_db"}, -{ 0xdc, -1, 1, {O_N, O_N}, "bad_dc"}, -{ 0xdd, -1, 1, {O_N, O_N}, "bad_dd"}, -{ 0xde, -1, 1, {O_N, O_N}, "bad_de"}, -{ 0xdf, -1, 1, {O_N, O_N}, "bad_df"}, -{ 0xe0, -1, 1, {O_N, O_N}, "bad_e0"}, -{ 0xe1, -1, 1, {O_N, O_N}, "bad_e1"}, -{ 0xe2, -1, 1, {O_N, O_N}, "bad_e2"}, -{ 0xe3, -1, 1, {O_N, O_N}, "bad_e3"}, -{ 0xe4, -1, 1, {O_N, O_N}, "bad_e4"}, -{ 0xe5, -1, 1, {O_N, O_N}, "bad_e5"}, -{ 0xe6, -1, 1, {O_N, O_N}, "bad_e6"}, -{ 0xe7, -1, 1, {O_N, O_N}, "bad_e7"}, -{ 0xe8, -1, 1, {O_N, O_N}, "bad_e8"}, -{ 0xe9, -1, 1, {O_N, O_N}, "bad_e9"}, -{ 0xea, -1, 1, {O_N, O_N}, "bad_ea"}, -{ 0xeb, -1, 1, {O_N, O_N}, "bad_eb"}, -{ 0xec, -1, 1, {O_N, O_N}, "bad_ec"}, -{ 0xed, -1, 3, {O_16, O_N}, "sethi"}, -{ 0xee, -1, 3, {O_U8, O_8}, "load_word_index"}, -{ 0xef, -1, 3, {O_U8, O_8}, "load_short_index"}, -{ 0xf0, -1, 3, {O_U8, O_8}, "load_char_index"}, -{ 0xf1, -1, 3, {O_U8, O_8}, "load_byte_index"}, -{ 0xf2, -1, 3, {O_U8, O_8}, "load_ubyte_index"}, -{ 0xf3, -1, 3, {O_U8, O_8}, "store_word_index"}, -{ 0xf4, -1, 3, {O_U8, O_8}, "na_store_word_index"}, -{ 0xf5, -1, 3, {O_U8, O_8}, "store_short_index"}, -{ 0xf6, -1, 3, {O_U8, O_8}, "store_byte_index"}, -{ 0xf7, -1, 1, {O_N, O_N}, "bad_f7"}, -{ 0xf8, -1, 1, {O_N, O_N}, "bad_f8"}, -{ 0xf9, -1, 1, {O_N, O_N}, "bad_f9"}, -{ 0xfa, -1, 1, {O_N, O_N}, "bad_fa"}, -{ 0xfb, -1, 1, {O_N, O_N}, "bad_fb"}, -{ 0xfc, -1, 1, {O_N, O_N}, "bad_fc"}, -{ 0xfd, -1, 1, {O_N, O_N}, "bad_fd"}, -{ 0xfe, -1, 1, {O_N, O_N}, "bad_fe"}, -{ 0xff, 0x00, 2, {O_N, O_N}, "load_ubyte"}, -{ 0xff, 0x01, 2, {O_N, O_N}, "load_byte"}, -{ 0xff, 0x02, 2, {O_N, O_N}, "load_char"}, -{ 0xff, 0x03, 2, {O_N, O_N}, "load_short"}, -{ 0xff, 0x04, 2, {O_N, O_N}, "load_word"}, -{ 0xff, 0x05, 2, {O_N, O_N}, "priv_ret_from_trap"}, -{ 0xff, 0x06, 2, {O_N, O_N}, "priv_read_dcache_tag"}, -{ 0xff, 0x07, 2, {O_N, O_N}, "priv_read_dcache_data"}, -{ 0xff, 0x08, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x09, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x0a, 2, {O_N, O_N}, "load_char_oe"}, -{ 0xff, 0x0b, 2, {O_N, O_N}, "load_short_oe"}, -{ 0xff, 0x0c, 2, {O_N, O_N}, "load_word_oe"}, -{ 0xff, 0x0d, 2, {O_N, O_N}, "return0"}, -{ 0xff, 0x0e, 2, {O_N, O_N}, "priv_read_icache_tag"}, -{ 0xff, 0x0f, 2, {O_N, O_N}, "priv_read_icache_data"}, -{ 0xff, 0x10, 2, {O_N, O_N}, "ncload_ubyte"}, -{ 0xff, 0x11, 2, {O_N, O_N}, "ncload_byte"}, -{ 0xff, 0x12, 2, {O_N, O_N}, "ncload_char"}, -{ 0xff, 0x13, 2, {O_N, O_N}, "ncload_short"}, -{ 0xff, 0x14, 2, {O_N, O_N}, "ncload_word"}, -{ 0xff, 0x15, 2, {O_N, O_N}, "iucmp"}, -{ 0xff, 0x16, 2, {O_N, O_N}, "priv_powerdown"}, -{ 0xff, 0x17, 2, {O_N, O_N}, "cache_invalidate"}, -{ 0xff, 0x18, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x19, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x1a, 2, {O_N, O_N}, "ncload_char_oe"}, -{ 0xff, 0x1b, 2, {O_N, O_N}, "ncload_short_oe"}, -{ 0xff, 0x1c, 2, {O_N, O_N}, "ncload_word_oe"}, -{ 0xff, 0x1d, 2, {O_N, O_N}, "return1"}, -{ 0xff, 0x1e, 2, {O_N, O_N}, "cache_flush"}, -{ 0xff, 0x1f, 2, {O_N, O_N}, "cache_index_flush"}, -{ 0xff, 0x20, 2, {O_N, O_N}, "store_byte"}, -{ 0xff, 0x21, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x22, 2, {O_N, O_N}, "store_short"}, -{ 0xff, 0x23, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x24, 2, {O_N, O_N}, "store_word"}, -{ 0xff, 0x25, 2, {O_N, O_N}, "soft_trap"}, -{ 0xff, 0x26, 2, {O_N, O_N}, "priv_write_dcache_tag"}, -{ 0xff, 0x27, 2, {O_N, O_N}, "priv_write_dcache_data"}, -{ 0xff, 0x28, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x29, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x2a, 2, {O_N, O_N}, "store_short_oe"}, -{ 0xff, 0x2b, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x2c, 2, {O_N, O_N}, "store_word_oe"}, -{ 0xff, 0x2d, 2, {O_N, O_N}, "return2"}, -{ 0xff, 0x2e, 2, {O_N, O_N}, "priv_write_icache_tag"}, -{ 0xff, 0x2f, 2, {O_N, O_N}, "priv_write_icache_data"}, -{ 0xff, 0x30, 2, {O_N, O_N}, "ncstore_byte"}, -{ 0xff, 0x31, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x32, 2, {O_N, O_N}, "ncstore_short"}, -{ 0xff, 0x33, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x34, 2, {O_N, O_N}, "ncstore_word"}, -{ 0xff, 0x35, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x36, 2, {O_N, O_N}, "priv_reset"}, -{ 0xff, 0x37, 2, {O_N, O_N}, "get_current_class"}, -{ 0xff, 0x38, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x39, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x3a, 2, {O_N, O_N}, "ncstore_short_oe"}, -{ 0xff, 0x3b, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x3c, 2, {O_N, O_N}, "ncstore_word_oe"}, -{ 0xff, 0x3d, 2, {O_N, O_N}, "call"}, -{ 0xff, 0x3e, 2, {O_N, O_N}, "zero_line"}, -{ 0xff, 0x3f, 2, {O_N, O_N}, "priv_update_optop"}, -{ 0xff, 0x40, 2, {O_N, O_N}, "read_pc"}, -{ 0xff, 0x41, 2, {O_N, O_N}, "read_vars"}, -{ 0xff, 0x42, 2, {O_N, O_N}, "read_frame"}, -{ 0xff, 0x43, 2, {O_N, O_N}, "read_optop"}, -{ 0xff, 0x44, 2, {O_N, O_N}, "priv_read_oplim"}, -{ 0xff, 0x45, 2, {O_N, O_N}, "read_const_pool"}, -{ 0xff, 0x46, 2, {O_N, O_N}, "priv_read_psr"}, -{ 0xff, 0x47, 2, {O_N, O_N}, "priv_read_trapbase"}, -{ 0xff, 0x48, 2, {O_N, O_N}, "priv_read_lockcount0"}, -{ 0xff, 0x49, 2, {O_N, O_N}, "priv_read_lockcount1"}, -{ 0xff, 0x4a, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x4b, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x4c, 2, {O_N, O_N}, "priv_read_lockaddr0"}, -{ 0xff, 0x4d, 2, {O_N, O_N}, "priv_read_lockaddr1"}, -{ 0xff, 0x4e, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x4f, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x50, 2, {O_N, O_N}, "priv_read_userrange1"}, -{ 0xff, 0x51, 2, {O_N, O_N}, "priv_read_gc_config"}, -{ 0xff, 0x52, 2, {O_N, O_N}, "priv_read_brk1a"}, -{ 0xff, 0x53, 2, {O_N, O_N}, "priv_read_brk2a"}, -{ 0xff, 0x54, 2, {O_N, O_N}, "priv_read_brk12c"}, -{ 0xff, 0x55, 2, {O_N, O_N}, "priv_read_userrange2"}, -{ 0xff, 0x56, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x57, 2, {O_N, O_N}, "priv_read_versionid"}, -{ 0xff, 0x58, 2, {O_N, O_N}, "priv_read_hcr"}, -{ 0xff, 0x59, 2, {O_N, O_N}, "priv_read_sc_bottom"}, -{ 0xff, 0x5a, 2, {O_N, O_N}, "read_global0"}, -{ 0xff, 0x5b, 2, {O_N, O_N}, "read_global1"}, -{ 0xff, 0x5c, 2, {O_N, O_N}, "read_global2"}, -{ 0xff, 0x5d, 2, {O_N, O_N}, "read_global3"}, -{ 0xff, 0x5e, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x5f, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x60, 2, {O_N, O_N}, "write_pc"}, -{ 0xff, 0x61, 2, {O_N, O_N}, "write_vars"}, -{ 0xff, 0x62, 2, {O_N, O_N}, "write_frame"}, -{ 0xff, 0x63, 2, {O_N, O_N}, "write_optop"}, -{ 0xff, 0x64, 2, {O_N, O_N}, "priv_write_oplim"}, -{ 0xff, 0x65, 2, {O_N, O_N}, "write_const_pool"}, -{ 0xff, 0x66, 2, {O_N, O_N}, "priv_write_psr"}, -{ 0xff, 0x67, 2, {O_N, O_N}, "priv_write_trapbase"}, -{ 0xff, 0x68, 2, {O_N, O_N}, "priv_write_lockcount0"}, -{ 0xff, 0x69, 2, {O_N, O_N}, "priv_write_lockcount1"}, -{ 0xff, 0x6a, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x6b, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x6c, 2, {O_N, O_N}, "priv_write_lockaddr0"}, -{ 0xff, 0x6d, 2, {O_N, O_N}, "priv_write_lockaddr1"}, -{ 0xff, 0x6e, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x6f, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x70, 2, {O_N, O_N}, "priv_write_userrange1"}, -{ 0xff, 0x71, 2, {O_N, O_N}, "priv_write_gc_config"}, -{ 0xff, 0x72, 2, {O_N, O_N}, "priv_write_brk1a"}, -{ 0xff, 0x73, 2, {O_N, O_N}, "priv_write_brk2a"}, -{ 0xff, 0x74, 2, {O_N, O_N}, "priv_write_brk12c"}, -{ 0xff, 0x75, 2, {O_N, O_N}, "priv_write_userrange2"}, -{ 0xff, 0x76, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x77, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x78, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x79, 2, {O_N, O_N}, "priv_write_sc_bottom"}, -{ 0xff, 0x7a, 2, {O_N, O_N}, "write_global0"}, -{ 0xff, 0x7b, 2, {O_N, O_N}, "write_global1"}, -{ 0xff, 0x7c, 2, {O_N, O_N}, "write_global2"}, -{ 0xff, 0x7d, 2, {O_N, O_N}, "write_global3"}, -{ 0xff, 0x7e, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x7f, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x80, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x81, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x82, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x83, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x84, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x85, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x86, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x87, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x88, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x89, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x8a, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x8b, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x8c, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x8d, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x8e, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x8f, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x90, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x91, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x92, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x93, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x94, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x95, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x96, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x97, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x98, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x99, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x9a, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x9b, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x9c, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x9d, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x9e, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0x9f, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa0, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa1, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa2, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa3, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa4, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa5, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa6, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa7, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa8, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xa9, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xaa, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xab, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xac, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xad, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xae, 2, {O_N, O_N}, "tm_putchar"}, -{ 0xff, 0xaf, 2, {O_N, O_N}, "tm_exit"}, -{ 0xff, 0xb0, 2, {O_N, O_N}, "tm_trap"}, -{ 0xff, 0xb1, 2, {O_N, O_N}, "tm_minfo"}, -{ 0xff, 0xb2, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xb3, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xb4, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xb5, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xb6, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xb7, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xb8, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xb9, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xba, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xbb, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xbc, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xbd, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xbe, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xbf, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc0, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc1, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc2, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc3, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc4, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc5, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc6, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc7, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc8, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xc9, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xca, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xcb, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xcc, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xcd, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xce, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xcf, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd0, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd1, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd2, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd3, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd4, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd5, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd6, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd7, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd8, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xd9, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xda, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xdb, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xdc, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xdd, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xde, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xdf, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe0, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe1, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe2, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe3, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe4, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe5, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe6, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe7, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe8, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xe9, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xea, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xeb, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xec, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xed, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xee, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xef, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf0, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf1, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf2, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf3, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf4, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf5, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf6, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf7, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf8, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xf9, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xfa, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xfb, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xfc, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xfd, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xfe, 2, {O_N, O_N}, "bad"}, -{ 0xff, 0xff, 2, {O_N, O_N}, "bad"}, +{ 0x00, -1, 1, {O_N, O_N}, {"nop"}}, +{ 0x01, -1, 1, {O_N, O_N}, {"aconst_null"}}, +{ 0x02, -1, 1, {O_N, O_N}, {"iconst_m1"}}, +{ 0x03, -1, 1, {O_N, O_N}, {"iconst_0"}}, +{ 0x04, -1, 1, {O_N, O_N}, {"iconst_1"}}, +{ 0x05, -1, 1, {O_N, O_N}, {"iconst_2"}}, +{ 0x06, -1, 1, {O_N, O_N}, {"iconst_3"}}, +{ 0x07, -1, 1, {O_N, O_N}, {"iconst_4"}}, +{ 0x08, -1, 1, {O_N, O_N}, {"iconst_5"}}, +{ 0x09, -1, 1, {O_N, O_N}, {"lconst_0"}}, +{ 0x0a, -1, 1, {O_N, O_N}, {"lconst_1"}}, +{ 0x0b, -1, 1, {O_N, O_N}, {"fconst_0"}}, +{ 0x0c, -1, 1, {O_N, O_N}, {"fconst_1"}}, +{ 0x0d, -1, 1, {O_N, O_N}, {"fconst_2"}}, +{ 0x0e, -1, 1, {O_N, O_N}, {"dconst_0"}}, +{ 0x0f, -1, 1, {O_N, O_N}, {"dconst_1"}}, +{ 0x10, -1, 2, {O_8, O_N}, {"bipush"}}, +{ 0x11, -1, 3, {O_16, O_N}, {"sipush"}}, +{ 0x12, -1, 2, {O_N, O_N}, {"ldc"}}, +{ 0x13, -1, 3, {O_N, O_N}, {"ldc_w"}}, +{ 0x14, -1, 3, {O_N, O_N}, {"ldc2_w"}}, +{ 0x15, -1, 2, {O_U8, O_N}, {"iload"}}, +{ 0x16, -1, 2, {O_U8, O_N}, {"lload"}}, +{ 0x17, -1, 2, {O_U8, O_N}, {"fload"}}, +{ 0x18, -1, 2, {O_U8, O_N}, {"dload"}}, +{ 0x19, -1, 2, {O_U8, O_N}, {"aload"}}, +{ 0x1a, -1, 1, {O_N, O_N}, {"iload_0"}}, +{ 0x1b, -1, 1, {O_N, O_N}, {"iload_1"}}, +{ 0x1c, -1, 1, {O_N, O_N}, {"iload_2"}}, +{ 0x1d, -1, 1, {O_N, O_N}, {"iload_3"}}, +{ 0x1e, -1, 1, {O_N, O_N}, {"lload_0"}}, +{ 0x1f, -1, 1, {O_N, O_N}, {"lload_1"}}, +{ 0x20, -1, 1, {O_N, O_N}, {"lload_2"}}, +{ 0x21, -1, 1, {O_N, O_N}, {"lload_3"}}, +{ 0x22, -1, 1, {O_N, O_N}, {"fload_0"}}, +{ 0x23, -1, 1, {O_N, O_N}, {"fload_1"}}, +{ 0x24, -1, 1, {O_N, O_N}, {"fload_2"}}, +{ 0x25, -1, 1, {O_N, O_N}, {"fload_3"}}, +{ 0x26, -1, 1, {O_N, O_N}, {"dload_0"}}, +{ 0x27, -1, 1, {O_N, O_N}, {"dload_1"}}, +{ 0x28, -1, 1, {O_N, O_N}, {"dload_2"}}, +{ 0x29, -1, 1, {O_N, O_N}, {"dload_3"}}, +{ 0x2a, -1, 1, {O_N, O_N}, {"aload_0"}}, +{ 0x2b, -1, 1, {O_N, O_N}, {"aload_1"}}, +{ 0x2c, -1, 1, {O_N, O_N}, {"aload_2"}}, +{ 0x2d, -1, 1, {O_N, O_N}, {"aload_3"}}, +{ 0x2e, -1, 1, {O_N, O_N}, {"iaload"}}, +{ 0x2f, -1, 1, {O_N, O_N}, {"laload"}}, +{ 0x30, -1, 1, {O_N, O_N}, {"faload"}}, +{ 0x31, -1, 1, {O_N, O_N}, {"daload"}}, +{ 0x32, -1, 1, {O_N, O_N}, {"aaload"}}, +{ 0x33, -1, 1, {O_N, O_N}, {"baload"}}, +{ 0x34, -1, 1, {O_N, O_N}, {"caload"}}, +{ 0x35, -1, 1, {O_N, O_N}, {"saload"}}, +{ 0x36, -1, 2, {O_U8, O_N}, {"istore"}}, +{ 0x37, -1, 2, {O_U8, O_N}, {"lstore"}}, +{ 0x38, -1, 2, {O_U8, O_N}, {"fstore"}}, +{ 0x39, -1, 2, {O_U8, O_N}, {"dstore"}}, +{ 0x3a, -1, 2, {O_U8, O_N}, {"astore"}}, +{ 0x3b, -1, 1, {O_N, O_N}, {"istore_0"}}, +{ 0x3c, -1, 1, {O_N, O_N}, {"istore_1"}}, +{ 0x3d, -1, 1, {O_N, O_N}, {"istore_2"}}, +{ 0x3e, -1, 1, {O_N, O_N}, {"istore_3"}}, +{ 0x3f, -1, 1, {O_N, O_N}, {"lstore_0"}}, +{ 0x40, -1, 1, {O_N, O_N}, {"lstore_1"}}, +{ 0x41, -1, 1, {O_N, O_N}, {"lstore_2"}}, +{ 0x42, -1, 1, {O_N, O_N}, {"lstore_3"}}, +{ 0x43, -1, 1, {O_N, O_N}, {"fstore_0"}}, +{ 0x44, -1, 1, {O_N, O_N}, {"fstore_1"}}, +{ 0x45, -1, 1, {O_N, O_N}, {"fstore_2"}}, +{ 0x46, -1, 1, {O_N, O_N}, {"fstore_3"}}, +{ 0x47, -1, 1, {O_N, O_N}, {"dstore_0"}}, +{ 0x48, -1, 1, {O_N, O_N}, {"dstore_1"}}, +{ 0x49, -1, 1, {O_N, O_N}, {"dstore_2"}}, +{ 0x4a, -1, 1, {O_N, O_N}, {"dstore_3"}}, +{ 0x4b, -1, 1, {O_N, O_N}, {"astore_0"}}, +{ 0x4c, -1, 1, {O_N, O_N}, {"astore_1"}}, +{ 0x4d, -1, 1, {O_N, O_N}, {"astore_2"}}, +{ 0x4e, -1, 1, {O_N, O_N}, {"astore_3"}}, +{ 0x4f, -1, 1, {O_N, O_N}, {"iastore"}}, +{ 0x50, -1, 1, {O_N, O_N}, {"lastore"}}, +{ 0x51, -1, 1, {O_N, O_N}, {"fastore"}}, +{ 0x52, -1, 1, {O_N, O_N}, {"dastore"}}, +{ 0x53, -1, 1, {O_N, O_N}, {"aastore"}}, +{ 0x54, -1, 1, {O_N, O_N}, {"bastore"}}, +{ 0x55, -1, 1, {O_N, O_N}, {"castore"}}, +{ 0x56, -1, 1, {O_N, O_N}, {"sastore"}}, +{ 0x57, -1, 1, {O_N, O_N}, {"pop"}}, +{ 0x58, -1, 1, {O_N, O_N}, {"pop2"}}, +{ 0x59, -1, 1, {O_N, O_N}, {"dup"}}, +{ 0x5a, -1, 1, {O_N, O_N}, {"dup_x1"}}, +{ 0x5b, -1, 1, {O_N, O_N}, {"dup_x2"}}, +{ 0x5c, -1, 1, {O_N, O_N}, {"dup2"}}, +{ 0x5d, -1, 1, {O_N, O_N}, {"dup2_x1"}}, +{ 0x5e, -1, 1, {O_N, O_N}, {"dup2_x2"}}, +{ 0x5f, -1, 1, {O_N, O_N}, {"swap"}}, +{ 0x60, -1, 1, {O_N, O_N}, {"iadd"}}, +{ 0x61, -1, 1, {O_N, O_N}, {"ladd"}}, +{ 0x62, -1, 1, {O_N, O_N}, {"fadd"}}, +{ 0x63, -1, 1, {O_N, O_N}, {"dadd"}}, +{ 0x64, -1, 1, {O_N, O_N}, {"isub"}}, +{ 0x65, -1, 1, {O_N, O_N}, {"lsub"}}, +{ 0x66, -1, 1, {O_N, O_N}, {"fsub"}}, +{ 0x67, -1, 1, {O_N, O_N}, {"dsub"}}, +{ 0x68, -1, 1, {O_N, O_N}, {"imul"}}, +{ 0x69, -1, 1, {O_N, O_N}, {"lmul"}}, +{ 0x6a, -1, 1, {O_N, O_N}, {"fmul"}}, +{ 0x6b, -1, 1, {O_N, O_N}, {"dmul"}}, +{ 0x6c, -1, 1, {O_N, O_N}, {"idiv"}}, +{ 0x6d, -1, 1, {O_N, O_N}, {"ldiv"}}, +{ 0x6e, -1, 1, {O_N, O_N}, {"fdiv"}}, +{ 0x6f, -1, 1, {O_N, O_N}, {"ddiv"}}, +{ 0x70, -1, 1, {O_N, O_N}, {"irem"}}, +{ 0x71, -1, 1, {O_N, O_N}, {"lrem"}}, +{ 0x72, -1, 1, {O_N, O_N}, {"frem"}}, +{ 0x73, -1, 1, {O_N, O_N}, {"drem"}}, +{ 0x74, -1, 1, {O_N, O_N}, {"ineg"}}, +{ 0x75, -1, 1, {O_N, O_N}, {"lneg"}}, +{ 0x76, -1, 1, {O_N, O_N}, {"fneg"}}, +{ 0x77, -1, 1, {O_N, O_N}, {"dneg"}}, +{ 0x78, -1, 1, {O_N, O_N}, {"ishl"}}, +{ 0x79, -1, 1, {O_N, O_N}, {"lshl"}}, +{ 0x7a, -1, 1, {O_N, O_N}, {"ishr"}}, +{ 0x7b, -1, 1, {O_N, O_N}, {"lshr"}}, +{ 0x7c, -1, 1, {O_N, O_N}, {"iushr"}}, +{ 0x7d, -1, 1, {O_N, O_N}, {"lushr"}}, +{ 0x7e, -1, 1, {O_N, O_N}, {"iand"}}, +{ 0x7f, -1, 1, {O_N, O_N}, {"land"}}, +{ 0x80, -1, 1, {O_N, O_N}, {"ior"}}, +{ 0x81, -1, 1, {O_N, O_N}, {"lor"}}, +{ 0x82, -1, 1, {O_N, O_N}, {"ixor"}}, +{ 0x83, -1, 1, {O_N, O_N}, {"lxor"}}, +{ 0x84, -1, 3, {O_U8, O_8}, {"iinc"}}, +{ 0x85, -1, 1, {O_N, O_N}, {"i2l"}}, +{ 0x86, -1, 1, {O_N, O_N}, {"i2f"}}, +{ 0x87, -1, 1, {O_N, O_N}, {"i2d"}}, +{ 0x88, -1, 1, {O_N, O_N}, {"l2i"}}, +{ 0x89, -1, 1, {O_N, O_N}, {"l2f"}}, +{ 0x8a, -1, 1, {O_N, O_N}, {"l2d"}}, +{ 0x8b, -1, 1, {O_N, O_N}, {"f2i"}}, +{ 0x8c, -1, 1, {O_N, O_N}, {"f2l"}}, +{ 0x8d, -1, 1, {O_N, O_N}, {"f2d"}}, +{ 0x8e, -1, 1, {O_N, O_N}, {"d2i"}}, +{ 0x8f, -1, 1, {O_N, O_N}, {"d2l"}}, +{ 0x90, -1, 1, {O_N, O_N}, {"d2f"}}, +{ 0x91, -1, 1, {O_N, O_N}, {"i2b"}}, +{ 0x92, -1, 1, {O_N, O_N}, {"i2c"}}, +{ 0x93, -1, 1, {O_N, O_N}, {"i2s"}}, +{ 0x94, -1, 1, {O_N, O_N}, {"lcmp"}}, +{ 0x95, -1, 1, {O_N, O_N}, {"fcmpl"}}, +{ 0x96, -1, 1, {O_N, O_N}, {"fcmpg"}}, +{ 0x97, -1, 1, {O_N, O_N}, {"dcmpl"}}, +{ 0x98, -1, 1, {O_N, O_N}, {"dcmpg"}}, +{ 0x99, -1, 3, {O_R16, O_N}, {"ifeq"}}, +{ 0x9a, -1, 3, {O_R16, O_N}, {"ifne"}}, +{ 0x9b, -1, 3, {O_R16, O_N}, {"iflt"}}, +{ 0x9c, -1, 3, {O_R16, O_N}, {"ifge"}}, +{ 0x9d, -1, 3, {O_R16, O_N}, {"ifgt"}}, +{ 0x9e, -1, 3, {O_R16, O_N}, {"ifle"}}, +{ 0x9f, -1, 3, {O_R16, O_N}, {"if_icmpeq"}}, +{ 0xa0, -1, 3, {O_R16, O_N}, {"if_icmpne"}}, +{ 0xa1, -1, 3, {O_R16, O_N}, {"if_icmplt"}}, +{ 0xa2, -1, 3, {O_R16, O_N}, {"if_icmpge"}}, +{ 0xa3, -1, 3, {O_R16, O_N}, {"if_icmpgt"}}, +{ 0xa4, -1, 3, {O_R16, O_N}, {"if_icmple"}}, +{ 0xa5, -1, 3, {O_R16, O_N}, {"if_acmpeq"}}, +{ 0xa6, -1, 3, {O_R16, O_N}, {"if_acmpne"}}, +{ 0xa7, -1, 3, {O_R16, O_N}, {"goto"}}, +{ 0xa8, -1, 3, {O_N, O_N}, {"jsr"}}, +{ 0xa9, -1, 2, {O_N, O_N}, {"ret"}}, +{ 0xaa, -1, 1, {O_N, O_N}, {"tableswitch"}}, +{ 0xab, -1, 1, {O_N, O_N}, {"lookupswitch"}}, +{ 0xac, -1, 1, {O_N, O_N}, {"ireturn"}}, +{ 0xad, -1, 1, {O_N, O_N}, {"lreturn"}}, +{ 0xae, -1, 1, {O_N, O_N}, {"freturn"}}, +{ 0xaf, -1, 1, {O_N, O_N}, {"dreturn"}}, +{ 0xb0, -1, 1, {O_N, O_N}, {"areturn"}}, +{ 0xb1, -1, 1, {O_N, O_N}, {"return"}}, +{ 0xb2, -1, 3, {O_N, O_N}, {"getstatic"}}, +{ 0xb3, -1, 3, {O_N, O_N}, {"putstatic"}}, +{ 0xb4, -1, 3, {O_N, O_N}, {"getfield"}}, +{ 0xb5, -1, 3, {O_N, O_N}, {"putfield"}}, +{ 0xb6, -1, 3, {O_N, O_N}, {"invokevirtual"}}, +{ 0xb7, -1, 3, {O_N, O_N}, {"invokespecial"}}, +{ 0xb8, -1, 3, {O_N, O_N}, {"invokestatic"}}, +{ 0xb9, -1, 5, {O_N, O_N}, {"invokeinterface"}}, +{ 0xba, -1, 1, {O_N, O_N}, {"bad_ba"}}, +{ 0xbb, -1, 3, {O_N, O_N}, {"new"}}, +{ 0xbc, -1, 2, {O_N, O_N}, {"newarray"}}, +{ 0xbd, -1, 3, {O_N, O_N}, {"anewarray"}}, +{ 0xbe, -1, 1, {O_N, O_N}, {"arraylength"}}, +{ 0xbf, -1, 1, {O_N, O_N}, {"athrow"}}, +{ 0xc0, -1, 3, {O_N, O_N}, {"checkcast"}}, +{ 0xc1, -1, 3, {O_N, O_N}, {"instanceof"}}, +{ 0xc2, -1, 1, {O_N, O_N}, {"monitorenter"}}, +{ 0xc3, -1, 1, {O_N, O_N}, {"monitorexit"}}, +{ 0xc4, -1, 1, {O_N, O_N}, {"wide"}}, +{ 0xc5, -1, 4, {O_N, O_N}, {"multianewarray"}}, +{ 0xc6, -1, 3, {O_N, O_N}, {"ifnull"}}, +{ 0xc7, -1, 3, {O_N, O_N}, {"ifnonnull"}}, +{ 0xc8, -1, 5, {O_N, O_N}, {"goto_w"}}, +{ 0xc9, -1, 5, {O_N, O_N}, {"jsr_w"}}, +{ 0xca, -1, 1, {O_N, O_N}, {"breakpoint"}}, +{ 0xcb, -1, 1, {O_N, O_N}, {"bytecode"}}, +{ 0xcc, -1, 1, {O_N, O_N}, {"try"}}, +{ 0xcd, -1, 1, {O_N, O_N}, {"endtry"}}, +{ 0xce, -1, 1, {O_N, O_N}, {"catch"}}, +{ 0xcf, -1, 1, {O_N, O_N}, {"var"}}, +{ 0xd0, -1, 1, {O_N, O_N}, {"endvar"}}, +{ 0xd1, -1, 1, {O_N, O_N}, {"bad_d1"}}, +{ 0xd2, -1, 1, {O_N, O_N}, {"bad_d2"}}, +{ 0xd3, -1, 1, {O_N, O_N}, {"bad_d3"}}, +{ 0xd4, -1, 1, {O_N, O_N}, {"bad_d4"}}, +{ 0xd5, -1, 1, {O_N, O_N}, {"bad_d5"}}, +{ 0xd6, -1, 1, {O_N, O_N}, {"bad_d6"}}, +{ 0xd7, -1, 1, {O_N, O_N}, {"bad_d7"}}, +{ 0xd8, -1, 1, {O_N, O_N}, {"bad_d8"}}, +{ 0xd9, -1, 1, {O_N, O_N}, {"bad_d9"}}, +{ 0xda, -1, 1, {O_N, O_N}, {"bad_da"}}, +{ 0xdb, -1, 1, {O_N, O_N}, {"bad_db"}}, +{ 0xdc, -1, 1, {O_N, O_N}, {"bad_dc"}}, +{ 0xdd, -1, 1, {O_N, O_N}, {"bad_dd"}}, +{ 0xde, -1, 1, {O_N, O_N}, {"bad_de"}}, +{ 0xdf, -1, 1, {O_N, O_N}, {"bad_df"}}, +{ 0xe0, -1, 1, {O_N, O_N}, {"bad_e0"}}, +{ 0xe1, -1, 1, {O_N, O_N}, {"bad_e1"}}, +{ 0xe2, -1, 1, {O_N, O_N}, {"bad_e2"}}, +{ 0xe3, -1, 1, {O_N, O_N}, {"bad_e3"}}, +{ 0xe4, -1, 1, {O_N, O_N}, {"bad_e4"}}, +{ 0xe5, -1, 1, {O_N, O_N}, {"bad_e5"}}, +{ 0xe6, -1, 1, {O_N, O_N}, {"bad_e6"}}, +{ 0xe7, -1, 1, {O_N, O_N}, {"bad_e7"}}, +{ 0xe8, -1, 1, {O_N, O_N}, {"bad_e8"}}, +{ 0xe9, -1, 1, {O_N, O_N}, {"bad_e9"}}, +{ 0xea, -1, 1, {O_N, O_N}, {"bad_ea"}}, +{ 0xeb, -1, 1, {O_N, O_N}, {"bad_eb"}}, +{ 0xec, -1, 1, {O_N, O_N}, {"bad_ec"}}, +{ 0xed, -1, 3, {O_16, O_N}, {"sethi"}}, +{ 0xee, -1, 3, {O_U8, O_8}, {"load_word_index"}}, +{ 0xef, -1, 3, {O_U8, O_8}, {"load_short_index"}}, +{ 0xf0, -1, 3, {O_U8, O_8}, {"load_char_index"}}, +{ 0xf1, -1, 3, {O_U8, O_8}, {"load_byte_index"}}, +{ 0xf2, -1, 3, {O_U8, O_8}, {"load_ubyte_index"}}, +{ 0xf3, -1, 3, {O_U8, O_8}, {"store_word_index"}}, +{ 0xf4, -1, 3, {O_U8, O_8}, {"na_store_word_index"}}, +{ 0xf5, -1, 3, {O_U8, O_8}, {"store_short_index"}}, +{ 0xf6, -1, 3, {O_U8, O_8}, {"store_byte_index"}}, +{ 0xf7, -1, 1, {O_N, O_N}, {"bad_f7"}}, +{ 0xf8, -1, 1, {O_N, O_N}, {"bad_f8"}}, +{ 0xf9, -1, 1, {O_N, O_N}, {"bad_f9"}}, +{ 0xfa, -1, 1, {O_N, O_N}, {"bad_fa"}}, +{ 0xfb, -1, 1, {O_N, O_N}, {"bad_fb"}}, +{ 0xfc, -1, 1, {O_N, O_N}, {"bad_fc"}}, +{ 0xfd, -1, 1, {O_N, O_N}, {"bad_fd"}}, +{ 0xfe, -1, 1, {O_N, O_N}, {"bad_fe"}}, +{ 0xff, 0x00, 2, {O_N, O_N}, {"load_ubyte"}}, +{ 0xff, 0x01, 2, {O_N, O_N}, {"load_byte"}}, +{ 0xff, 0x02, 2, {O_N, O_N}, {"load_char"}}, +{ 0xff, 0x03, 2, {O_N, O_N}, {"load_short"}}, +{ 0xff, 0x04, 2, {O_N, O_N}, {"load_word"}}, +{ 0xff, 0x05, 2, {O_N, O_N}, {"priv_ret_from_trap"}}, +{ 0xff, 0x06, 2, {O_N, O_N}, {"priv_read_dcache_tag"}}, +{ 0xff, 0x07, 2, {O_N, O_N}, {"priv_read_dcache_data"}}, +{ 0xff, 0x08, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x09, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x0a, 2, {O_N, O_N}, {"load_char_oe"}}, +{ 0xff, 0x0b, 2, {O_N, O_N}, {"load_short_oe"}}, +{ 0xff, 0x0c, 2, {O_N, O_N}, {"load_word_oe"}}, +{ 0xff, 0x0d, 2, {O_N, O_N}, {"return0"}}, +{ 0xff, 0x0e, 2, {O_N, O_N}, {"priv_read_icache_tag"}}, +{ 0xff, 0x0f, 2, {O_N, O_N}, {"priv_read_icache_data"}}, +{ 0xff, 0x10, 2, {O_N, O_N}, {"ncload_ubyte"}}, +{ 0xff, 0x11, 2, {O_N, O_N}, {"ncload_byte"}}, +{ 0xff, 0x12, 2, {O_N, O_N}, {"ncload_char"}}, +{ 0xff, 0x13, 2, {O_N, O_N}, {"ncload_short"}}, +{ 0xff, 0x14, 2, {O_N, O_N}, {"ncload_word"}}, +{ 0xff, 0x15, 2, {O_N, O_N}, {"iucmp"}}, +{ 0xff, 0x16, 2, {O_N, O_N}, {"priv_powerdown"}}, +{ 0xff, 0x17, 2, {O_N, O_N}, {"cache_invalidate"}}, +{ 0xff, 0x18, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x19, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x1a, 2, {O_N, O_N}, {"ncload_char_oe"}}, +{ 0xff, 0x1b, 2, {O_N, O_N}, {"ncload_short_oe"}}, +{ 0xff, 0x1c, 2, {O_N, O_N}, {"ncload_word_oe"}}, +{ 0xff, 0x1d, 2, {O_N, O_N}, {"return1"}}, +{ 0xff, 0x1e, 2, {O_N, O_N}, {"cache_flush"}}, +{ 0xff, 0x1f, 2, {O_N, O_N}, {"cache_index_flush"}}, +{ 0xff, 0x20, 2, {O_N, O_N}, {"store_byte"}}, +{ 0xff, 0x21, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x22, 2, {O_N, O_N}, {"store_short"}}, +{ 0xff, 0x23, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x24, 2, {O_N, O_N}, {"store_word"}}, +{ 0xff, 0x25, 2, {O_N, O_N}, {"soft_trap"}}, +{ 0xff, 0x26, 2, {O_N, O_N}, {"priv_write_dcache_tag"}}, +{ 0xff, 0x27, 2, {O_N, O_N}, {"priv_write_dcache_data"}}, +{ 0xff, 0x28, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x29, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x2a, 2, {O_N, O_N}, {"store_short_oe"}}, +{ 0xff, 0x2b, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x2c, 2, {O_N, O_N}, {"store_word_oe"}}, +{ 0xff, 0x2d, 2, {O_N, O_N}, {"return2"}}, +{ 0xff, 0x2e, 2, {O_N, O_N}, {"priv_write_icache_tag"}}, +{ 0xff, 0x2f, 2, {O_N, O_N}, {"priv_write_icache_data"}}, +{ 0xff, 0x30, 2, {O_N, O_N}, {"ncstore_byte"}}, +{ 0xff, 0x31, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x32, 2, {O_N, O_N}, {"ncstore_short"}}, +{ 0xff, 0x33, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x34, 2, {O_N, O_N}, {"ncstore_word"}}, +{ 0xff, 0x35, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x36, 2, {O_N, O_N}, {"priv_reset"}}, +{ 0xff, 0x37, 2, {O_N, O_N}, {"get_current_class"}}, +{ 0xff, 0x38, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x39, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x3a, 2, {O_N, O_N}, {"ncstore_short_oe"}}, +{ 0xff, 0x3b, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x3c, 2, {O_N, O_N}, {"ncstore_word_oe"}}, +{ 0xff, 0x3d, 2, {O_N, O_N}, {"call"}}, +{ 0xff, 0x3e, 2, {O_N, O_N}, {"zero_line"}}, +{ 0xff, 0x3f, 2, {O_N, O_N}, {"priv_update_optop"}}, +{ 0xff, 0x40, 2, {O_N, O_N}, {"read_pc"}}, +{ 0xff, 0x41, 2, {O_N, O_N}, {"read_vars"}}, +{ 0xff, 0x42, 2, {O_N, O_N}, {"read_frame"}}, +{ 0xff, 0x43, 2, {O_N, O_N}, {"read_optop"}}, +{ 0xff, 0x44, 2, {O_N, O_N}, {"priv_read_oplim"}}, +{ 0xff, 0x45, 2, {O_N, O_N}, {"read_const_pool"}}, +{ 0xff, 0x46, 2, {O_N, O_N}, {"priv_read_psr"}}, +{ 0xff, 0x47, 2, {O_N, O_N}, {"priv_read_trapbase"}}, +{ 0xff, 0x48, 2, {O_N, O_N}, {"priv_read_lockcount0"}}, +{ 0xff, 0x49, 2, {O_N, O_N}, {"priv_read_lockcount1"}}, +{ 0xff, 0x4a, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x4b, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x4c, 2, {O_N, O_N}, {"priv_read_lockaddr0"}}, +{ 0xff, 0x4d, 2, {O_N, O_N}, {"priv_read_lockaddr1"}}, +{ 0xff, 0x4e, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x4f, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x50, 2, {O_N, O_N}, {"priv_read_userrange1"}}, +{ 0xff, 0x51, 2, {O_N, O_N}, {"priv_read_gc_config"}}, +{ 0xff, 0x52, 2, {O_N, O_N}, {"priv_read_brk1a"}}, +{ 0xff, 0x53, 2, {O_N, O_N}, {"priv_read_brk2a"}}, +{ 0xff, 0x54, 2, {O_N, O_N}, {"priv_read_brk12c"}}, +{ 0xff, 0x55, 2, {O_N, O_N}, {"priv_read_userrange2"}}, +{ 0xff, 0x56, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x57, 2, {O_N, O_N}, {"priv_read_versionid"}}, +{ 0xff, 0x58, 2, {O_N, O_N}, {"priv_read_hcr"}}, +{ 0xff, 0x59, 2, {O_N, O_N}, {"priv_read_sc_bottom"}}, +{ 0xff, 0x5a, 2, {O_N, O_N}, {"read_global0"}}, +{ 0xff, 0x5b, 2, {O_N, O_N}, {"read_global1"}}, +{ 0xff, 0x5c, 2, {O_N, O_N}, {"read_global2"}}, +{ 0xff, 0x5d, 2, {O_N, O_N}, {"read_global3"}}, +{ 0xff, 0x5e, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x5f, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x60, 2, {O_N, O_N}, {"write_pc"}}, +{ 0xff, 0x61, 2, {O_N, O_N}, {"write_vars"}}, +{ 0xff, 0x62, 2, {O_N, O_N}, {"write_frame"}}, +{ 0xff, 0x63, 2, {O_N, O_N}, {"write_optop"}}, +{ 0xff, 0x64, 2, {O_N, O_N}, {"priv_write_oplim"}}, +{ 0xff, 0x65, 2, {O_N, O_N}, {"write_const_pool"}}, +{ 0xff, 0x66, 2, {O_N, O_N}, {"priv_write_psr"}}, +{ 0xff, 0x67, 2, {O_N, O_N}, {"priv_write_trapbase"}}, +{ 0xff, 0x68, 2, {O_N, O_N}, {"priv_write_lockcount0"}}, +{ 0xff, 0x69, 2, {O_N, O_N}, {"priv_write_lockcount1"}}, +{ 0xff, 0x6a, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x6b, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x6c, 2, {O_N, O_N}, {"priv_write_lockaddr0"}}, +{ 0xff, 0x6d, 2, {O_N, O_N}, {"priv_write_lockaddr1"}}, +{ 0xff, 0x6e, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x6f, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x70, 2, {O_N, O_N}, {"priv_write_userrange1"}}, +{ 0xff, 0x71, 2, {O_N, O_N}, {"priv_write_gc_config"}}, +{ 0xff, 0x72, 2, {O_N, O_N}, {"priv_write_brk1a"}}, +{ 0xff, 0x73, 2, {O_N, O_N}, {"priv_write_brk2a"}}, +{ 0xff, 0x74, 2, {O_N, O_N}, {"priv_write_brk12c"}}, +{ 0xff, 0x75, 2, {O_N, O_N}, {"priv_write_userrange2"}}, +{ 0xff, 0x76, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x77, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x78, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x79, 2, {O_N, O_N}, {"priv_write_sc_bottom"}}, +{ 0xff, 0x7a, 2, {O_N, O_N}, {"write_global0"}}, +{ 0xff, 0x7b, 2, {O_N, O_N}, {"write_global1"}}, +{ 0xff, 0x7c, 2, {O_N, O_N}, {"write_global2"}}, +{ 0xff, 0x7d, 2, {O_N, O_N}, {"write_global3"}}, +{ 0xff, 0x7e, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x7f, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x80, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x81, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x82, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x83, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x84, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x85, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x86, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x87, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x88, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x89, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x8a, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x8b, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x8c, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x8d, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x8e, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x8f, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x90, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x91, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x92, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x93, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x94, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x95, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x96, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x97, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x98, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x99, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x9a, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x9b, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x9c, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x9d, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x9e, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0x9f, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa0, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa1, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa2, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa3, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa4, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa5, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa6, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa7, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa8, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xa9, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xaa, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xab, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xac, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xad, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xae, 2, {O_N, O_N}, {"tm_putchar"}}, +{ 0xff, 0xaf, 2, {O_N, O_N}, {"tm_exit"}}, +{ 0xff, 0xb0, 2, {O_N, O_N}, {"tm_trap"}}, +{ 0xff, 0xb1, 2, {O_N, O_N}, {"tm_minfo"}}, +{ 0xff, 0xb2, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xb3, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xb4, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xb5, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xb6, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xb7, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xb8, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xb9, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xba, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xbb, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xbc, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xbd, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xbe, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xbf, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc0, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc1, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc2, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc3, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc4, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc5, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc6, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc7, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc8, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xc9, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xca, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xcb, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xcc, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xcd, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xce, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xcf, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd0, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd1, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd2, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd3, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd4, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd5, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd6, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd7, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd8, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xd9, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xda, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xdb, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xdc, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xdd, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xde, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xdf, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe0, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe1, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe2, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe3, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe4, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe5, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe6, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe7, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe8, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xe9, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xea, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xeb, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xec, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xed, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xee, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xef, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf0, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf1, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf2, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf3, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf4, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf5, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf6, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf7, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf8, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xf9, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xfa, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xfb, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xfc, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xfd, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xfe, 2, {O_N, O_N}, {"bad"}}, +{ 0xff, 0xff, 2, {O_N, O_N}, {"bad"}}, }; diff -uprN binutils-2.13.90.0.16/opcodes/po/POTFILES.in binutils-2.13.90.0.18/opcodes/po/POTFILES.in --- binutils-2.13.90.0.16/opcodes/po/POTFILES.in Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/opcodes/po/POTFILES.in Tue Jan 21 10:21:34 2003 @@ -61,6 +61,13 @@ ip2k-dis.c ip2k-ibld.c ip2k-opc.c ip2k-opc.h +iq2000-asm.c +iq2000-desc.c +iq2000-desc.h +iq2000-dis.c +iq2000-ibld.c +iq2000-opc.c +iq2000-opc.h m10200-dis.c m10200-opc.c m10300-dis.c diff -uprN binutils-2.13.90.0.16/opcodes/ppc-opc.c binutils-2.13.90.0.18/opcodes/ppc-opc.c --- binutils-2.13.90.0.16/opcodes/ppc-opc.c Sat Nov 9 11:08:31 2002 +++ binutils-2.13.90.0.18/opcodes/ppc-opc.c Tue Jan 21 10:21:34 2003 @@ -100,10 +100,6 @@ static unsigned long insert_nsi PARAMS ((unsigned long, long, int, const char **)); static long extract_nsi PARAMS ((unsigned long, int, int *)); -static unsigned long insert_pmrn - PARAMS ((unsigned long, long, int, const char **)); -static long extract_pmrn - PARAMS ((unsigned long, int, int *)); static unsigned long insert_ral PARAMS ((unsigned long, long, int, const char **)); static unsigned long insert_ram @@ -265,7 +261,6 @@ const struct powerpc_operand powerpc_ope /* The CT field in an X form instruction. */ #define CT CRFS + 1 -#define RD CT { 5, 21, 0, 0, PPC_OPERAND_OPTIONAL }, /* The D field in a D form instruction. This is a displacement off @@ -394,12 +389,8 @@ const struct powerpc_operand powerpc_ope { 16, 0, insert_nsi, extract_nsi, PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED }, - /* The PMRN field in an X form instruction. */ -#define PMRN NSI + 1 - { 16, 0, insert_pmrn, extract_pmrn, PPC_OPERAND_GPR }, - /* The RA field in an D, DS, X, XO, M, or MDS form instruction. */ -#define RA PMRN + 1 +#define RA NSI + 1 #define RA_MASK (0x1f << 16) { 5, 16, 0, 0, PPC_OPERAND_GPR }, @@ -461,6 +452,7 @@ const struct powerpc_operand powerpc_ope /* The SPR field in an XFX form instruction. This is flipped--the lower 5 bits are stored in the upper 5 and vice- versa. */ #define SPR SISIGNOPT + 1 +#define PMR SPR #define SPR_MASK (0x3ff << 11) { 10, 11, insert_spr, extract_spr, 0 }, @@ -889,7 +881,7 @@ insert_ev2 (insn, value, dialect, errmsg *errmsg = _("offset not a multiple of 2"); if ((value > 62) != 0 && errmsg != NULL) *errmsg = _("offset greater than 62"); - return insn | ((value & 0xf8) << 8); + return insn | ((value & 0x3e) << 10); } static long @@ -898,7 +890,7 @@ extract_ev2 (insn, dialect, invalid) int dialect ATTRIBUTE_UNUSED; int * invalid ATTRIBUTE_UNUSED; { - return (insn >> 8) & 0xf8; + return (insn >> 10) & 0x3e; } static unsigned long @@ -912,7 +904,7 @@ insert_ev4 (insn, value, dialect, errmsg *errmsg = _("offset not a multiple of 4"); if ((value > 124) != 0 && errmsg != NULL) *errmsg = _("offset greater than 124"); - return insn | ((value & 0xf8) << 8); + return insn | ((value & 0x7c) << 9); } static long @@ -921,7 +913,7 @@ extract_ev4 (insn, dialect, invalid) int dialect ATTRIBUTE_UNUSED; int * invalid ATTRIBUTE_UNUSED; { - return (insn >> 8) & 0xf8; + return (insn >> 9) & 0x7c; } static unsigned long @@ -1229,28 +1221,6 @@ extract_nsi (insn, dialect, invalid) return - (((insn & 0xffff) ^ 0x8000) - 0x8000); } -/* The PMRN field in a X form instruction. - This has 5+5 bits switched around. */ - -static unsigned long -insert_pmrn (insn, value, dialect, errmsg) - unsigned long insn; - long value; - int dialect ATTRIBUTE_UNUSED; - const char **errmsg ATTRIBUTE_UNUSED; -{ - return insn | ((value & 0x1f) << 16) | ((value & 0x3e) << 11); -} - -static long -extract_pmrn (insn, dialect, invalid) - unsigned long insn; - int dialect ATTRIBUTE_UNUSED; - int *invalid ATTRIBUTE_UNUSED; -{ - return ((insn >> 16) & 0x1f) | ((insn >> 11) & 0x3e); -} - /* The RA field in a D or X form instruction which is an updating load, which means that the RA field may not be zero and may not equal the RT field. */ @@ -2087,43 +2057,43 @@ const struct powerpc_opcode powerpc_opco { "vupklsh", VX(4, 718), VX_MASK, PPCVEC, { VD, VB } }, { "vxor", VX(4, 1220), VX_MASK, PPCVEC, { VD, VA, VB } }, -{ "evaddw", VX(4, 512), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evaddiw", VX(4, 514), VX_MASK, PPCSPE, { RD, RB, UIMM } }, -{ "evsubfw", VX(4, 516), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evsubw", VX(4, 516), VX_MASK, PPCSPE, { RD, RB, RA } }, -{ "evsubifw", VX(4, 518), VX_MASK, PPCSPE, { RD, UIMM, RB } }, -{ "evsubiw", VX(4, 518), VX_MASK, PPCSPE, { RD, RB, UIMM } }, -{ "evabs", VX(4, 520), VX_MASK, PPCSPE, { RD, RA } }, -{ "evneg", VX(4, 521), VX_MASK, PPCSPE, { RD, RA } }, -{ "evextsb", VX(4, 522), VX_MASK, PPCSPE, { RD, RA } }, -{ "evextsh", VX(4, 523), VX_MASK, PPCSPE, { RD, RA } }, -{ "evrndw", VX(4, 524), VX_MASK, PPCSPE, { RD, RA } }, -{ "evcntlzw", VX(4, 525), VX_MASK, PPCSPE, { RD, RA } }, -{ "evcntlsw", VX(4, 526), VX_MASK, PPCSPE, { RD, RA } }, +{ "evaddw", VX(4, 512), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evaddiw", VX(4, 514), VX_MASK, PPCSPE, { RS, RB, UIMM } }, +{ "evsubfw", VX(4, 516), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evsubw", VX(4, 516), VX_MASK, PPCSPE, { RS, RB, RA } }, +{ "evsubifw", VX(4, 518), VX_MASK, PPCSPE, { RS, UIMM, RB } }, +{ "evsubiw", VX(4, 518), VX_MASK, PPCSPE, { RS, RB, UIMM } }, +{ "evabs", VX(4, 520), VX_MASK, PPCSPE, { RS, RA } }, +{ "evneg", VX(4, 521), VX_MASK, PPCSPE, { RS, RA } }, +{ "evextsb", VX(4, 522), VX_MASK, PPCSPE, { RS, RA } }, +{ "evextsh", VX(4, 523), VX_MASK, PPCSPE, { RS, RA } }, +{ "evrndw", VX(4, 524), VX_MASK, PPCSPE, { RS, RA } }, +{ "evcntlzw", VX(4, 525), VX_MASK, PPCSPE, { RS, RA } }, +{ "evcntlsw", VX(4, 526), VX_MASK, PPCSPE, { RS, RA } }, -{ "brinc", VX(4, 527), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "brinc", VX(4, 527), VX_MASK, PPCSPE, { RS, RA, RB } }, -{ "evand", VX(4, 529), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evandc", VX(4, 530), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evand", VX(4, 529), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evandc", VX(4, 530), VX_MASK, PPCSPE, { RS, RA, RB } }, { "evmr", VX(4, 535), VX_MASK, PPCSPE, { RS, RA, BBA } }, -{ "evor", VX(4, 535), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evorc", VX(4, 539), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evxor", VX(4, 534), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "eveqv", VX(4, 537), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evnand", VX(4, 542), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evor", VX(4, 535), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evorc", VX(4, 539), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evxor", VX(4, 534), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "eveqv", VX(4, 537), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evnand", VX(4, 542), VX_MASK, PPCSPE, { RS, RA, RB } }, { "evnot", VX(4, 536), VX_MASK, PPCSPE, { RS, RA, BBA } }, -{ "evnor", VX(4, 536), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evnor", VX(4, 536), VX_MASK, PPCSPE, { RS, RA, RB } }, -{ "evrlw", VX(4, 552), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evrlwi", VX(4, 554), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, -{ "evslw", VX(4, 548), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evslwi", VX(4, 550), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, -{ "evsrws", VX(4, 545), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evsrwu", VX(4, 544), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evsrwis", VX(4, 547), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, -{ "evsrwiu", VX(4, 546), VX_MASK, PPCSPE, { RD, RA, EVUIMM } }, -{ "evsplati", VX(4, 553), VX_MASK, PPCSPE, { RD, SIMM } }, -{ "evsplatfi", VX(4, 555), VX_MASK, PPCSPE, { RD, SIMM } }, +{ "evrlw", VX(4, 552), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evrlwi", VX(4, 554), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, +{ "evslw", VX(4, 548), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evslwi", VX(4, 550), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, +{ "evsrws", VX(4, 545), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evsrwu", VX(4, 544), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evsrwis", VX(4, 547), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, +{ "evsrwiu", VX(4, 546), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, +{ "evsplati", VX(4, 553), VX_MASK, PPCSPE, { RS, SIMM } }, +{ "evsplatfi", VX(4, 555), VX_MASK, PPCSPE, { RS, SIMM } }, { "evmergehi", VX(4, 556), VX_MASK, PPCSPE, { RS, RA, RB } }, { "evmergelo", VX(4, 557), VX_MASK, PPCSPE, { RS, RA, RB } }, { "evmergehilo",VX(4,558), VX_MASK, PPCSPE, { RS, RA, RB } }, @@ -2134,7 +2104,7 @@ const struct powerpc_opcode powerpc_opco { "evcmplts", VX(4, 563), VX_MASK, PPCSPE, { CRFD, RA, RB } }, { "evcmpltu", VX(4, 562), VX_MASK, PPCSPE, { CRFD, RA, RB } }, { "evcmpeq", VX(4, 564), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evsel", EVSEL(4,79),EVSEL_MASK, PPCSPE, { RD, RA, RB, CRFS } }, +{ "evsel", EVSEL(4,79),EVSEL_MASK, PPCSPE, { RS, RA, RB, CRFS } }, { "evldd", VX(4, 769), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, { "evlddx", VX(4, 768), VX_MASK, PPCSPE, { RS, RA, RB } }, @@ -2174,222 +2144,166 @@ const struct powerpc_opcode powerpc_opco { "evstwho", VX(4, 821), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, { "evstwhox", VX(4, 820), VX_MASK, PPCSPE, { RS, RA, RB } }, -{ "evfsabs", VX(4, 644), VX_MASK, PPCSPE, { RD, RA } }, -{ "evfsnabs", VX(4, 645), VX_MASK, PPCSPE, { RD, RA } }, -{ "evfsneg", VX(4, 646), VX_MASK, PPCSPE, { RD, RA } }, -{ "evfsadd", VX(4, 640), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evfssub", VX(4, 641), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evfsmul", VX(4, 648), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evfsdiv", VX(4, 649), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evfsabs", VX(4, 644), VX_MASK, PPCSPE, { RS, RA } }, +{ "evfsnabs", VX(4, 645), VX_MASK, PPCSPE, { RS, RA } }, +{ "evfsneg", VX(4, 646), VX_MASK, PPCSPE, { RS, RA } }, +{ "evfsadd", VX(4, 640), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evfssub", VX(4, 641), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evfsmul", VX(4, 648), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evfsdiv", VX(4, 649), VX_MASK, PPCSPE, { RS, RA, RB } }, { "evfscmpgt", VX(4, 652), VX_MASK, PPCSPE, { CRFD, RA, RB } }, { "evfscmplt", VX(4, 653), VX_MASK, PPCSPE, { CRFD, RA, RB } }, { "evfscmpeq", VX(4, 654), VX_MASK, PPCSPE, { CRFD, RA, RB } }, { "evfststgt", VX(4, 668), VX_MASK, PPCSPE, { CRFD, RA, RB } }, { "evfststlt", VX(4, 669), VX_MASK, PPCSPE, { CRFD, RA, RB } }, { "evfststeq", VX(4, 670), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evfscfui", VX(4, 656), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfsctuiz", VX(4, 664), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfscfsi", VX(4, 657), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfscfuf", VX(4, 658), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfscfsf", VX(4, 659), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfsctui", VX(4, 660), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfsctsi", VX(4, 661), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfsctsiz", VX(4, 666), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfsctuf", VX(4, 662), VX_MASK, PPCSPE, { RD, RB } }, -{ "evfsctsf", VX(4, 663), VX_MASK, PPCSPE, { RD, RB } }, - -{ "efsabs", VX(4, 708), VX_MASK, PPCEFS, { RD, RA } }, -{ "efsnabs", VX(4, 709), VX_MASK, PPCEFS, { RD, RA } }, -{ "efsneg", VX(4, 710), VX_MASK, PPCEFS, { RD, RA } }, -{ "efsadd", VX(4, 704), VX_MASK, PPCEFS, { RD, RA, RB } }, -{ "efssub", VX(4, 705), VX_MASK, PPCEFS, { RD, RA, RB } }, -{ "efsmul", VX(4, 712), VX_MASK, PPCEFS, { RD, RA, RB } }, -{ "efsdiv", VX(4, 713), VX_MASK, PPCEFS, { RD, RA, RB } }, +{ "evfscfui", VX(4, 656), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfsctuiz", VX(4, 664), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfscfsi", VX(4, 657), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfscfuf", VX(4, 658), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfscfsf", VX(4, 659), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfsctui", VX(4, 660), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfsctsi", VX(4, 661), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfsctsiz", VX(4, 666), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfsctuf", VX(4, 662), VX_MASK, PPCSPE, { RS, RB } }, +{ "evfsctsf", VX(4, 663), VX_MASK, PPCSPE, { RS, RB } }, + +{ "efsabs", VX(4, 708), VX_MASK, PPCEFS, { RS, RA } }, +{ "efsnabs", VX(4, 709), VX_MASK, PPCEFS, { RS, RA } }, +{ "efsneg", VX(4, 710), VX_MASK, PPCEFS, { RS, RA } }, +{ "efsadd", VX(4, 704), VX_MASK, PPCEFS, { RS, RA, RB } }, +{ "efssub", VX(4, 705), VX_MASK, PPCEFS, { RS, RA, RB } }, +{ "efsmul", VX(4, 712), VX_MASK, PPCEFS, { RS, RA, RB } }, +{ "efsdiv", VX(4, 713), VX_MASK, PPCEFS, { RS, RA, RB } }, { "efscmpgt", VX(4, 716), VX_MASK, PPCEFS, { CRFD, RA, RB } }, { "efscmplt", VX(4, 717), VX_MASK, PPCEFS, { CRFD, RA, RB } }, { "efscmpeq", VX(4, 718), VX_MASK, PPCEFS, { CRFD, RA, RB } }, { "efststgt", VX(4, 732), VX_MASK, PPCEFS, { CRFD, RA, RB } }, { "efststlt", VX(4, 733), VX_MASK, PPCEFS, { CRFD, RA, RB } }, { "efststeq", VX(4, 734), VX_MASK, PPCEFS, { CRFD, RA, RB } }, -{ "efscfui", VX(4, 720), VX_MASK, PPCEFS, { RD, RB } }, -{ "efsctuiz", VX(4, 728), VX_MASK, PPCEFS, { RD, RB } }, -{ "efscfsi", VX(4, 721), VX_MASK, PPCEFS, { RD, RB } }, -{ "efscfuf", VX(4, 722), VX_MASK, PPCEFS, { RD, RB } }, -{ "efscfsf", VX(4, 723), VX_MASK, PPCEFS, { RD, RB } }, -{ "efsctui", VX(4, 724), VX_MASK, PPCEFS, { RD, RB } }, -{ "efsctsi", VX(4, 725), VX_MASK, PPCEFS, { RD, RB } }, -{ "efsctsiz", VX(4, 730), VX_MASK, PPCEFS, { RD, RB } }, -{ "efsctuf", VX(4, 726), VX_MASK, PPCEFS, { RD, RB } }, -{ "efsctsf", VX(4, 727), VX_MASK, PPCEFS, { RD, RB } }, - -{ "evsabs", VX(4, 708), VX_MASK, PPCSPE, { RD, RA } }, -{ "evsnabs", VX(4, 709), VX_MASK, PPCSPE, { RD, RA } }, -{ "evsneg", VX(4, 710), VX_MASK, PPCSPE, { RD, RA } }, -{ "evsadd", VX(4, 704), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evssub", VX(4, 705), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evsmul", VX(4, 712), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evsdiv", VX(4, 713), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evscmpgt", VX(4, 716), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evsgmplt", VX(4, 717), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evsgmpeq", VX(4, 718), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evststgt", VX(4, 732), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evststlt", VX(4, 733), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evststeq", VX(4, 734), VX_MASK, PPCSPE, { CRFD, RA, RB } }, -{ "evscfui", VX(4, 720), VX_MASK, PPCSPE, { RD, RB } }, -{ "evscfsi", VX(4, 721), VX_MASK, PPCSPE, { RD, RB } }, -{ "evscfuf", VX(4, 722), VX_MASK, PPCSPE, { RD, RB } }, -{ "evscfsf", VX(4, 723), VX_MASK, PPCSPE, { RD, RB } }, -{ "evsctui", VX(4, 724), VX_MASK, PPCSPE, { RD, RB } }, -{ "evsctuiz", VX(4, 728), VX_MASK, PPCSPE, { RD, RB } }, -{ "evsctsi", VX(4, 725), VX_MASK, PPCSPE, { RD, RB } }, -{ "evsctsiz", VX(4, 730), VX_MASK, PPCSPE, { RD, RB } }, -{ "evsctuf", VX(4, 726), VX_MASK, PPCSPE, { RD, RB } }, -{ "evsctsf", VX(4, 727), VX_MASK, PPCSPE, { RD, RB } }, - -{ "evmhossf", VX(4, 1031), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhossfa", VX(4, 1063), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmf", VX(4, 1039), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmfa", VX(4, 1071), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmi", VX(4, 1037), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmia", VX(4, 1069), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhoumi", VX(4, 1036), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhoumia", VX(4, 1068), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhessf", VX(4, 1027), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhessfa", VX(4, 1059), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmf", VX(4, 1035), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmfa", VX(4, 1067), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmi", VX(4, 1033), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmia", VX(4, 1065), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmheumi", VX(4, 1032), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmheumia", VX(4, 1064), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmhossfaaw",VX(4, 1287), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhossiaaw",VX(4, 1285), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmfaaw",VX(4, 1295), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmiaaw",VX(4, 1293), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhousiaaw",VX(4, 1284), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhoumiaaw",VX(4, 1292), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhessfaaw",VX(4, 1283), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhessiaaw",VX(4, 1281), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmfaaw",VX(4, 1291), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmiaaw",VX(4, 1289), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmheusiaaw",VX(4, 1280), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmheumiaaw",VX(4, 1288), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmhossfanw",VX(4, 1415), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhossianw",VX(4, 1413), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmfanw",VX(4, 1423), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhosmianw",VX(4, 1421), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhousianw",VX(4, 1412), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhoumianw",VX(4, 1420), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhessfanw",VX(4, 1411), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhessianw",VX(4, 1409), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmfanw",VX(4, 1419), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhesmianw",VX(4, 1417), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmheusianw",VX(4, 1408), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmheumianw",VX(4, 1416), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmhogsmfaa",VX(4, 1327), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhogsmiaa",VX(4, 1325), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhogumiaa",VX(4, 1324), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhegsmfaa",VX(4, 1323), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhegsmiaa",VX(4, 1321), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhegumiaa",VX(4, 1320), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmhogsmfan",VX(4, 1455), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhogsmian",VX(4, 1453), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhogumian",VX(4, 1452), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhegsmfan",VX(4, 1451), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhegsmian",VX(4, 1449), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmhegumian",VX(4, 1448), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwhssf", VX(4, 1095), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhssfa", VX(4, 1127), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmf", VX(4, 1103), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmfa", VX(4, 1135), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmi", VX(4, 1101), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmia", VX(4, 1133), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhumi", VX(4, 1100), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhumia", VX(4, 1132), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwlssf", VX(4, 1091), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlssfa", VX(4, 1123), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlsmf", VX(4, 1099), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlsmfa", VX(4, 1131), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlumi", VX(4, 1096), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlumia", VX(4, 1128), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwhssfaa",VX(4, 1351), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhssmaa",VX(4, 1349), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmfaa",VX(4, 1359), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmiaa",VX(4, 1357), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhusiaa",VX(4, 1348), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhumiaa",VX(4, 1356), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwlssfaaw",VX(4, 1347), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlssiaaw",VX(4, 1345), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlsmfaaw",VX(4, 1355), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlsmiaaw",VX(4, 1353), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlusiaaw",VX(4, 1344), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlumiaaw",VX(4, 1352), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwhssfan",VX(4, 1479), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhssian",VX(4, 1477), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmfan",VX(4, 1487), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhsmian",VX(4, 1485), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhusian",VX(4, 1476), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhumian",VX(4, 1484), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwlssfanw",VX(4, 1475), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlssianw",VX(4, 1473), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlsmfanw",VX(4, 1483), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlsmianw",VX(4, 1481), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlusianw",VX(4, 1472), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwlumianw",VX(4, 1480), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwhgssfaa",VX(4, 1383), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhgsmfaa",VX(4, 1391), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhgsmiaa",VX(4, 1381), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhgumiaa",VX(4, 1380), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwhgssfan",VX(4, 1511), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhgsmfan",VX(4, 1519), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhgsmian",VX(4, 1509), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwhgumian",VX(4, 1508), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwssf", VX(4, 1107), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwssfa", VX(4, 1139), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmf", VX(4, 1115), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmfa", VX(4, 1147), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmi", VX(4, 1113), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmia", VX(4, 1145), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwumi", VX(4, 1112), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwumia", VX(4, 1144), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwssfaa", VX(4, 1363), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmfaa", VX(4, 1371), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmiaa", VX(4, 1369), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwumiaa", VX(4, 1368), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evmwssfan", VX(4, 1491), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmfan", VX(4, 1499), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwsmian", VX(4, 1497), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evmwumian", VX(4, 1496), VX_MASK, PPCSPE, { RD, RA, RB } }, - -{ "evaddssiaaw",VX(4, 1217), VX_MASK, PPCSPE, { RD, RA } }, -{ "evaddsmiaaw",VX(4, 1225), VX_MASK, PPCSPE, { RD, RA } }, -{ "evaddusiaaw",VX(4, 1216), VX_MASK, PPCSPE, { RD, RA } }, -{ "evaddumiaaw",VX(4, 1224), VX_MASK, PPCSPE, { RD, RA } }, - -{ "evsubfssiaaw",VX(4, 1219), VX_MASK, PPCSPE, { RD, RA } }, -{ "evsubfsmiaaw",VX(4, 1227), VX_MASK, PPCSPE, { RD, RA } }, -{ "evsubfusiaaw",VX(4, 1218), VX_MASK, PPCSPE, { RD, RA } }, -{ "evsubfumiaaw",VX(4, 1226), VX_MASK, PPCSPE, { RD, RA } }, +{ "efscfui", VX(4, 720), VX_MASK, PPCEFS, { RS, RB } }, +{ "efsctuiz", VX(4, 728), VX_MASK, PPCEFS, { RS, RB } }, +{ "efscfsi", VX(4, 721), VX_MASK, PPCEFS, { RS, RB } }, +{ "efscfuf", VX(4, 722), VX_MASK, PPCEFS, { RS, RB } }, +{ "efscfsf", VX(4, 723), VX_MASK, PPCEFS, { RS, RB } }, +{ "efsctui", VX(4, 724), VX_MASK, PPCEFS, { RS, RB } }, +{ "efsctsi", VX(4, 725), VX_MASK, PPCEFS, { RS, RB } }, +{ "efsctsiz", VX(4, 730), VX_MASK, PPCEFS, { RS, RB } }, +{ "efsctuf", VX(4, 726), VX_MASK, PPCEFS, { RS, RB } }, +{ "efsctsf", VX(4, 727), VX_MASK, PPCEFS, { RS, RB } }, + +{ "evmhossf", VX(4, 1031), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhossfa", VX(4, 1063), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmf", VX(4, 1039), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmfa", VX(4, 1071), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmi", VX(4, 1037), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmia", VX(4, 1069), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhoumi", VX(4, 1036), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhoumia", VX(4, 1068), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhessf", VX(4, 1027), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhessfa", VX(4, 1059), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmf", VX(4, 1035), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmfa", VX(4, 1067), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmi", VX(4, 1033), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmia", VX(4, 1065), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmheumi", VX(4, 1032), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmheumia", VX(4, 1064), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmhossfaaw",VX(4, 1287), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhossiaaw",VX(4, 1285), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmfaaw",VX(4, 1295), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmiaaw",VX(4, 1293), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhousiaaw",VX(4, 1284), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhoumiaaw",VX(4, 1292), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhessfaaw",VX(4, 1283), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhessiaaw",VX(4, 1281), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmfaaw",VX(4, 1291), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmiaaw",VX(4, 1289), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmheusiaaw",VX(4, 1280), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmheumiaaw",VX(4, 1288), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmhossfanw",VX(4, 1415), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhossianw",VX(4, 1413), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmfanw",VX(4, 1423), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhosmianw",VX(4, 1421), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhousianw",VX(4, 1412), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhoumianw",VX(4, 1420), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhessfanw",VX(4, 1411), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhessianw",VX(4, 1409), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmfanw",VX(4, 1419), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhesmianw",VX(4, 1417), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmheusianw",VX(4, 1408), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmheumianw",VX(4, 1416), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmhogsmfaa",VX(4, 1327), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhogsmiaa",VX(4, 1325), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhogumiaa",VX(4, 1324), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhegsmfaa",VX(4, 1323), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhegsmiaa",VX(4, 1321), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhegumiaa",VX(4, 1320), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmhogsmfan",VX(4, 1455), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhogsmian",VX(4, 1453), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhogumian",VX(4, 1452), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhegsmfan",VX(4, 1451), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhegsmian",VX(4, 1449), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmhegumian",VX(4, 1448), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmwhssf", VX(4, 1095), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwhssfa", VX(4, 1127), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwhsmf", VX(4, 1103), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwhsmfa", VX(4, 1135), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwhsmi", VX(4, 1101), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwhsmia", VX(4, 1133), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwhumi", VX(4, 1100), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwhumia", VX(4, 1132), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmwlumi", VX(4, 1096), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwlumia", VX(4, 1128), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmwlssiaaw",VX(4, 1345), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwlsmiaaw",VX(4, 1353), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwlusiaaw",VX(4, 1344), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwlumiaaw",VX(4, 1352), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmwlssianw",VX(4, 1473), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwlsmianw",VX(4, 1481), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwlusianw",VX(4, 1472), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwlumianw",VX(4, 1480), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmwssf", VX(4, 1107), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwssfa", VX(4, 1139), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmf", VX(4, 1115), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmfa", VX(4, 1147), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmi", VX(4, 1113), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmia", VX(4, 1145), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwumi", VX(4, 1112), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwumia", VX(4, 1144), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmwssfaa", VX(4, 1363), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmfaa", VX(4, 1371), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmiaa", VX(4, 1369), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwumiaa", VX(4, 1368), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evmwssfan", VX(4, 1491), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmfan", VX(4, 1499), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwsmian", VX(4, 1497), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evmwumian", VX(4, 1496), VX_MASK, PPCSPE, { RS, RA, RB } }, + +{ "evaddssiaaw",VX(4, 1217), VX_MASK, PPCSPE, { RS, RA } }, +{ "evaddsmiaaw",VX(4, 1225), VX_MASK, PPCSPE, { RS, RA } }, +{ "evaddusiaaw",VX(4, 1216), VX_MASK, PPCSPE, { RS, RA } }, +{ "evaddumiaaw",VX(4, 1224), VX_MASK, PPCSPE, { RS, RA } }, + +{ "evsubfssiaaw",VX(4, 1219), VX_MASK, PPCSPE, { RS, RA } }, +{ "evsubfsmiaaw",VX(4, 1227), VX_MASK, PPCSPE, { RS, RA } }, +{ "evsubfusiaaw",VX(4, 1218), VX_MASK, PPCSPE, { RS, RA } }, +{ "evsubfumiaaw",VX(4, 1226), VX_MASK, PPCSPE, { RS, RA } }, -{ "evmra", VX(4, 1220), VX_MASK, PPCSPE, { RD, RA } }, +{ "evmra", VX(4, 1220), VX_MASK, PPCSPE, { RS, RA } }, -{ "evdivws", VX(4, 1222), VX_MASK, PPCSPE, { RD, RA, RB } }, -{ "evdivwu", VX(4, 1223), VX_MASK, PPCSPE, { RD, RA, RB } }, +{ "evdivws", VX(4, 1222), VX_MASK, PPCSPE, { RS, RA, RB } }, +{ "evdivwu", VX(4, 1223), VX_MASK, PPCSPE, { RS, RA, RB } }, { "mulli", OP(7), OP_MASK, PPCCOM, { RT, RA, SI } }, { "muli", OP(7), OP_MASK, PWRCOM, { RT, RA, SI } }, @@ -3627,7 +3541,7 @@ const struct powerpc_opcode powerpc_opco { "divo", XO(31,331,1,0), XO_MASK, M601, { RT, RA, RB } }, { "divo.", XO(31,331,1,1), XO_MASK, M601, { RT, RA, RB } }, -{ "mfpmr", X(31,334), X_MASK, PPCPMR, { RT, PMRN }}, +{ "mfpmr", X(31,334), X_MASK, PPCPMR, { RT, PMR }}, { "mfmq", XSPR(31,339,0), XSPR_MASK, M601, { RT } }, { "mfxer", XSPR(31,339,1), XSPR_MASK, COM, { RT } }, @@ -3672,6 +3586,7 @@ const struct powerpc_opcode powerpc_opco { "mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405, { RT } }, { "mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405, { RT } }, { "mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405, { RT } }, +{ "mftb", XSPR(31,339,268), XSPR_MASK, BOOKE, { RT } }, { "mftbl", XSPR(31,339,268), XSPR_MASK, BOOKE, { RT } }, { "mftbu", XSPR(31,339,269), XSPR_MASK, BOOKE, { RT } }, { "mfsprg", XSPR(31,339,272), XSPRG_MASK, PPC, { RT, SPRG } }, @@ -3715,6 +3630,7 @@ const struct powerpc_opcode powerpc_opco { "mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, { RT } }, { "mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, { RT } }, { "mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, { RT } }, +{ "mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, { RT } }, { "mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, { "mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, { "mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, @@ -3835,7 +3751,6 @@ const struct powerpc_opcode powerpc_opco { "mftbl", XSPR(31,371,268), XSPR_MASK, CLASSIC, { RT } }, { "mftbu", XSPR(31,371,269), XSPR_MASK, CLASSIC, { RT } }, -{ "mftb", X(31,371), X_MASK, BOOKE, { RT, TBR } }, { "mftb", X(31,371), X_MASK, CLASSIC, { RT, TBR } }, { "lwaux", X(31,373), X_MASK, PPC64, { RT, RAL, RB } }, @@ -4028,8 +3943,9 @@ const struct powerpc_opcode powerpc_opco { "mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, { RS } }, { "mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, { RS } }, { "mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, { RS } }, -{ "mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, { RT } }, +{ "mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, { RS } }, { "mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, { RS } }, +{ "mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, { RS } }, { "mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, { "mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, { "mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, @@ -4103,7 +4019,7 @@ const struct powerpc_opcode powerpc_opco { "dcread", X(31,486), X_MASK, PPC403, { RT, RA, RB }}, -{ "mtpmr", X(31,462), X_MASK, PPCPMR, { PMRN, RS }}, +{ "mtpmr", X(31,462), X_MASK, PPCPMR, { PMR, RS }}, { "icbtls", X(31,486), X_MASK, PPCCHLK, { CT, RA, RB }}, @@ -4182,9 +4098,9 @@ const struct powerpc_opcode powerpc_opco { "lwsync", XSYNC(31,598,1), 0xffffffff, PPCONLY, { 0 } }, { "ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, { 0 } }, +{ "msync", X(31,598), 0xffffffff, BOOKE, { 0 } }, { "sync", X(31,598), XSYNC_MASK, PPCCOM, { LS } }, { "dcs", X(31,598), 0xffffffff, PWRCOM, { 0 } }, -{ "msync", X(31,598), 0xf80007fe, BOOKE, { 0 } }, { "lfdx", X(31,599), X_MASK, COM, { FRT, RA, RB } }, @@ -4280,8 +4196,8 @@ const struct powerpc_opcode powerpc_opco { "slbmfev", X(31,851), XRA_MASK, PPC64, { RT, RB } }, +{ "mbar", X(31,854), X_MASK, BOOKE, { MO } }, { "eieio", X(31,854), 0xffffffff, PPC, { 0 } }, -{ "mbar", X(31,854), 0xffffffff, BOOKE, { MO } }, { "tlbsx", XRC(31,914,0), X_MASK, PPC403, { RT, RA, RB } }, { "tlbsx.", XRC(31,914,1), X_MASK, PPC403, { RT, RA, RB } }, @@ -4636,8 +4552,8 @@ const struct powerpc_macro powerpc_macro { "extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1" }, { "extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1" }, -{ "extrwi", 4, PPCCOM, "rlwinm %0,%1,(%2)+(%3),32-(%2),31" }, -{ "extrwi.", 4, PPCCOM, "rlwinm. %0,%1,(%2)+(%3),32-(%2),31" }, +{ "extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31" }, +{ "extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31" }, { "inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1" }, { "inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, { "insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1" }, diff -uprN binutils-2.13.90.0.16/opcodes/sh-dis.c binutils-2.13.90.0.18/opcodes/sh-dis.c --- binutils-2.13.90.0.16/opcodes/sh-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/sh-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Disassemble SH instructions. - Copyright 1993, 1994, 1995, 1997, 1998, 2000, 2001 + Copyright 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -24,15 +24,19 @@ Foundation, Inc., 59 Temple Place - Suit #include "sh-opc.h" #include "dis-asm.h" +#ifdef ARCH_all +#define INCLUDE_SHMEDIA +#endif + static void print_movxy - PARAMS ((sh_opcode_info *, int, int, fprintf_ftype, void *)); + PARAMS ((const sh_opcode_info *, int, int, fprintf_ftype, void *)); static void print_insn_ddt PARAMS ((int, struct disassemble_info *)); static void print_dsp_reg PARAMS ((int, fprintf_ftype, void *)); static void print_insn_ppi PARAMS ((int, struct disassemble_info *)); static void print_movxy (op, rn, rm, fprintf_fn, stream) - sh_opcode_info *op; + const sh_opcode_info *op; int rn, rm; fprintf_ftype fprintf_fn; void *stream; @@ -101,8 +105,8 @@ print_insn_ddt (insn, info) fprintf_fn (stream, ".word 0x%x", insn); else { - static sh_opcode_info *first_movx, *first_movy; - sh_opcode_info *opx, *opy; + static const sh_opcode_info *first_movx, *first_movy; + const sh_opcode_info *opx, *opy; unsigned int insn_x, insn_y; if (! first_movx) @@ -188,7 +192,7 @@ print_insn_ppi (field_b, info) void *stream = info->stream; unsigned int nib1, nib2, nib3; char *dc = NULL; - sh_opcode_info *op; + const sh_opcode_info *op; if ((field_b & 0xe800) == 0) { @@ -294,7 +298,7 @@ print_insn_sh (memaddr, info) unsigned char nibs[4]; int status; bfd_vma relmask = ~(bfd_vma) 0; - sh_opcode_info *op; + const sh_opcode_info *op; int target_arch; switch (info->mach) diff -uprN binutils-2.13.90.0.16/opcodes/sh64-dis.c binutils-2.13.90.0.18/opcodes/sh64-dis.c --- binutils-2.13.90.0.16/opcodes/sh64-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/sh64-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Disassemble SH64 instructions. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright 2000, 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,7 +48,7 @@ struct sh64_disassemble_info }; /* Each item in the table is a mask to indicate which bits to be set - to determine an instruction's operator. + to determine an instruction's operator. The index is as same as the instruction in the opcode table. Note that some archs have this as a field in the opcode table. */ static unsigned long *shmedia_opcode_mask_table; @@ -56,7 +56,7 @@ static unsigned long *shmedia_opcode_mas static void initialize_shmedia_opcode_mask_table PARAMS ((void)); static int print_insn_shmedia PARAMS ((bfd_vma, disassemble_info *)); static const char *creg_name PARAMS ((int)); -static boolean init_sh64_disasm_info PARAMS ((struct disassemble_info *)); +static bfd_boolean init_sh64_disasm_info PARAMS ((struct disassemble_info *)); static enum sh64_elf_cr_type sh64_get_contents_type_disasm PARAMS ((bfd_vma, struct disassemble_info *)); @@ -86,7 +86,7 @@ initialize_shmedia_opcode_mask_table () { int offset = shmedia_table[n].nibbles[i]; int length; - + switch (shmedia_table[n].arg[i]) { case A_GREG_M: @@ -118,7 +118,7 @@ initialize_shmedia_opcode_mask_table () length = 3; break; - case A_IMMM: + case A_IMMM: abort (); break; @@ -511,7 +511,7 @@ sh64_get_contents_type_disasm (memaddr, /* Initialize static and dynamic disassembly state. */ -static boolean +static bfd_boolean init_sh64_disasm_info (info) struct disassemble_info *info; { @@ -519,7 +519,7 @@ init_sh64_disasm_info (info) = calloc (sizeof (*sh64_infop), 1); if (sh64_infop == NULL) - return false; + return FALSE; info->private_data = sh64_infop; @@ -529,14 +529,14 @@ init_sh64_disasm_info (info) if (shmedia_opcode_mask_table == NULL) initialize_shmedia_opcode_mask_table (); - return true; + return TRUE; } /* Main entry to disassemble SHmedia instructions, given an endian set in INFO. Note that the simulator uses this as the main entry and does not use any of the functions further below. */ -int +int print_insn_sh64x_media (memaddr, info) bfd_vma memaddr; struct disassemble_info *info; @@ -554,7 +554,7 @@ print_insn_sh64x_media (memaddr, info) /* Main entry to disassemble SHmedia insns. If we see an SHcompact instruction, return -2. */ -int +int print_insn_sh64 (memaddr, info) bfd_vma memaddr; struct disassemble_info *info; diff -uprN binutils-2.13.90.0.16/opcodes/tic30-dis.c binutils-2.13.90.0.18/opcodes/tic30-dis.c --- binutils-2.13.90.0.16/opcodes/tic30-dis.c Thu Mar 15 14:52:15 2001 +++ binutils-2.13.90.0.18/opcodes/tic30-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Disassembly routines for TMS320C30 architecture - Copyright 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by Steven Haworth (steve@pm.cse.rmit.edu.au) This program is free software; you can redistribute it and/or modify @@ -663,6 +663,10 @@ cnvt_tmsfloat_ieee (tmsfloat, size, ieee float *ieeefloat; { unsigned long exp, sign, mant; + union { + unsigned long l; + float f; + } val; if (size == 2) { @@ -705,6 +709,7 @@ cnvt_tmsfloat_ieee (tmsfloat, size, ieee if (tmsfloat == 0x80000000) sign = mant = exp = 0; tmsfloat = sign | exp | mant; - *ieeefloat = *((float *) &tmsfloat); + val.l = tmsfloat; + *ieeefloat = val.f; return 1; } diff -uprN binutils-2.13.90.0.16/opcodes/v850-dis.c binutils-2.13.90.0.18/opcodes/v850-dis.c --- binutils-2.13.90.0.16/opcodes/v850-dis.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/opcodes/v850-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,6 @@ /* Disassemble V850 instructions. - Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1996, 1997, 1998, 2000, 2001, 2002 + Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -50,16 +51,16 @@ disassemble (memaddr, info, insn) struct disassemble_info *info; unsigned long insn; { - struct v850_opcode * op = (struct v850_opcode *)v850_opcodes; - const struct v850_operand * operand; - int match = 0; - int short_op = ((insn & 0x0600) != 0x0600); - int bytes_read; - int target_processor; + struct v850_opcode *op = (struct v850_opcode *)v850_opcodes; + const struct v850_operand *operand; + int match = 0; + int short_op = ((insn & 0x0600) != 0x0600); + int bytes_read; + int target_processor; /* Special case: 32 bit MOV */ if ((insn & 0xffe0) == 0x0620) - short_op = true; + short_op = 1; bytes_read = short_op ? 2 : 4; @@ -85,9 +86,9 @@ disassemble (memaddr, info, insn) if ((op->mask & insn) == op->opcode && (op->processors & target_processor)) { - const unsigned char * opindex_ptr; - unsigned int opnum; - unsigned int memop; + const unsigned char *opindex_ptr; + unsigned int opnum; + unsigned int memop; match = 1; (*info->fprintf_func) (info->stream, "%s\t", op->name); @@ -111,10 +112,10 @@ disassemble (memaddr, info, insn) *opindex_ptr != 0; opindex_ptr++, opnum++) { - long value; - int flag; - int status; - bfd_byte buffer[ 4 ]; + long value; + int flag; + int status; + bfd_byte buffer[4]; operand = &v850_operands[*opindex_ptr]; @@ -203,11 +204,11 @@ disassemble (memaddr, info, insn) static int list12_regs[32] = { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 29, 28, 23, 22, 21, 20, 27, 26, 25, 24 }; static int list18_h_regs[32] = { 19, 18, 17, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 30, 31, 29, 28, 23, 22, 21, 20, 27, 26, 25, 24 }; static int list18_l_regs[32] = { 3, 2, 1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 14, 15, 13, 12, 7, 6, 5, 4, 11, 10, 9, 8 }; - int * regs; - int i; + int *regs; + int i; unsigned long int mask = 0; - int pc = false; - int sr = false; + int pc = 0; + int sr = 0; switch (operand->shift) @@ -230,8 +231,8 @@ disassemble (memaddr, info, insn) default: mask |= (1 << regs[ i ]); break; /* xgettext:c-format */ case 0: fprintf (stderr, _("unknown pop reg: %d\n"), i ); abort(); - case -1: pc = true; break; - case -2: sr = true; break; + case -1: pc = 1; break; + case -2: sr = 1; break; } } } @@ -243,7 +244,7 @@ disassemble (memaddr, info, insn) if (mask) { unsigned int bit; - int shown_one = false; + int shown_one = 0; for (bit = 0; bit < 32; bit++) if (mask & (1 << bit)) @@ -254,7 +255,7 @@ disassemble (memaddr, info, insn) if (shown_one) info->fprintf_func (info->stream, ", "); else - shown_one = true; + shown_one = 1; info->fprintf_func (info->stream, v850_reg_names[first]); @@ -347,8 +348,8 @@ print_insn_v850 (memaddr, info) bfd_vma memaddr; struct disassemble_info * info; { - int status; - bfd_byte buffer[ 4 ]; + int status; + bfd_byte buffer[4]; unsigned long insn = 0; /* First figure out how big the opcode is. */ diff -uprN binutils-2.13.90.0.16/opcodes/w65-dis.c binutils-2.13.90.0.18/opcodes/w65-dis.c --- binutils-2.13.90.0.16/opcodes/w65-dis.c Mon Aug 27 11:44:52 2001 +++ binutils-2.13.90.0.18/opcodes/w65-dis.c Mon Dec 16 12:22:53 2002 @@ -1,5 +1,5 @@ /* Disassemble WDC 65816 instructions. - Copyright 1995, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright 1995, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -84,7 +84,7 @@ print_insn_w65 (memaddr, info) { int status = 0; unsigned char insn[4]; - register struct opinfo *op; + const struct opinfo *op; int i; int X = 0; int M = 0; diff -uprN binutils-2.13.90.0.16/opcodes/xstormy16-asm.c binutils-2.13.90.0.18/opcodes/xstormy16-asm.c --- binutils-2.13.90.0.16/opcodes/xstormy16-asm.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/xstormy16-asm.c Tue Jan 21 10:21:34 2003 @@ -52,6 +52,8 @@ static const char * parse_mem8 PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); static const char * parse_small_immediate PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); +static const char * parse_immediate16 + PARAMS ((CGEN_CPU_DESC, const char **, int, unsigned long *)); /* The machine-independent code doesn't know how to disambiguate mov (foo),r3 @@ -73,7 +75,7 @@ parse_mem8 (cd, strp, opindex, valuep) if (s[1] == '-' && s[2] == '-') return _("Bad register in preincrement"); - while (isalnum (*++s)) + while (ISALNUM (*++s)) ; if (s[0] == '+' && s[1] == '+' && (s[2] == ')' || s[2] == ',')) return _("Bad register in postincrement"); @@ -109,6 +111,9 @@ parse_small_immediate (cd, strp, opindex enum cgen_parse_operand_result result; const char *errmsg; + if (**strp == '@') + return _("No relocation for small immediate"); + errmsg = (* cd->parse_operand_fn) (cd, CGEN_PARSE_OPERAND_INTEGER, strp, opindex, BFD_RELOC_NONE, &result, &value); @@ -122,6 +127,54 @@ parse_small_immediate (cd, strp, opindex *valuep = value; return NULL; } + +/* Literal scan be either a normal literal, a @hi() or @lo relocation. */ + +static const char * +parse_immediate16 (cd, strp, opindex, valuep) + CGEN_CPU_DESC cd; + const char **strp; + int opindex; + unsigned long *valuep; +{ + const char *errmsg; + enum cgen_parse_operand_result result; + bfd_reloc_code_real_type code = BFD_RELOC_NONE; + bfd_vma value; + + if (strncmp (*strp, "@hi(", 4) == 0) + { + *strp += 4; + code = BFD_RELOC_HI16; + } + else + if (strncmp (*strp, "@lo(", 4) == 0) + { + *strp += 4; + code = BFD_RELOC_LO16; + } + + if (code == BFD_RELOC_NONE) + errmsg = cgen_parse_unsigned_integer (cd, strp, opindex, valuep); + else + { + errmsg = cgen_parse_address (cd, strp, opindex, code, &result, &value); + if ((errmsg == NULL) && + (result != CGEN_PARSE_OPERAND_RESULT_QUEUED)) + errmsg = _("Operand is not a symbol"); + + *valuep = value; + if ((code == BFD_RELOC_HI16 || code == BFD_RELOC_LO16) + && **strp == ')') + *strp += 1; + else + { + errmsg = _("Syntax error: No trailing ')'"); + return errmsg; + } + } + return errmsg; +} /* -- */ const char * xstormy16_cgen_parse_operand @@ -187,7 +240,7 @@ xstormy16_cgen_parse_operand (cd, opinde errmsg = cgen_parse_signed_integer (cd, strp, XSTORMY16_OPERAND_IMM12, &fields->f_imm12); break; case XSTORMY16_OPERAND_IMM16 : - errmsg = cgen_parse_unsigned_integer (cd, strp, XSTORMY16_OPERAND_IMM16, &fields->f_imm16); + errmsg = parse_immediate16 (cd, strp, XSTORMY16_OPERAND_IMM16, &fields->f_imm16); break; case XSTORMY16_OPERAND_IMM2 : errmsg = cgen_parse_unsigned_integer (cd, strp, XSTORMY16_OPERAND_IMM2, &fields->f_imm2); diff -uprN binutils-2.13.90.0.16/opcodes/xstormy16-desc.c binutils-2.13.90.0.18/opcodes/xstormy16-desc.c --- binutils-2.13.90.0.16/opcodes/xstormy16-desc.c Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/opcodes/xstormy16-desc.c Mon Dec 16 12:22:53 2002 @@ -32,6 +32,7 @@ with this program; if not, write to the #include "xstormy16-opc.h" #include "opintl.h" #include "libiberty.h" +#include "xregex.h" /* Attributes. */ @@ -312,9 +313,9 @@ const CGEN_MAYBE_MULTI_IFLD XSTORMY16_F_ const CGEN_MAYBE_MULTI_IFLD XSTORMY16_F_ABS24_MULTI_IFIELD [] = { - { 0, &(xstormy16_cgen_ifld_table[34]) }, - { 0, &(xstormy16_cgen_ifld_table[35]) }, - {0,0} + { 0, { (const PTR) &xstormy16_cgen_ifld_table[34] } }, + { 0, { (const PTR) &xstormy16_cgen_ifld_table[35] } }, + { 0, { (const PTR) 0 } } }; /* The operand table. */ @@ -334,161 +335,164 @@ const CGEN_OPERAND xstormy16_cgen_operan { /* pc: program counter */ { "pc", XSTORMY16_OPERAND_PC, HW_H_PC, 0, 0, - { 0, &(xstormy16_cgen_ifld_table[0]) }, + { 0, { (const PTR) &xstormy16_cgen_ifld_table[0] } }, { 0|A(SEM_ONLY), { (1<macro_insn_table.init_entries) { @@ -1482,7 +1486,7 @@ xstormy16_cgen_cpu_close (cd) for (i = 0; i < cd->macro_insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX ((insns))) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } @@ -1492,7 +1496,7 @@ xstormy16_cgen_cpu_close (cd) for (i = 0; i < cd->insn_table.num_init_entries; ++i, ++insns) { if (CGEN_INSN_RX (insns)) - regfree(CGEN_INSN_RX (insns)); + regfree (CGEN_INSN_RX (insns)); } } diff -uprN binutils-2.13.90.0.16/opcodes/xstormy16-dis.c binutils-2.13.90.0.18/opcodes/xstormy16-dis.c --- binutils-2.13.90.0.16/opcodes/xstormy16-dis.c Thu May 23 15:10:11 2002 +++ binutils-2.13.90.0.18/opcodes/xstormy16-dis.c Mon Dec 16 12:22:53 2002 @@ -4,7 +4,8 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. - the resultant file is machine generated, cgen-dis.in isn't -Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. This file is part of the GNU Binutils and GDB, the GNU debugger. @@ -31,6 +32,7 @@ along with this program; if not, write t #include "dis-asm.h" #include "bfd.h" #include "symcat.h" +#include "libiberty.h" #include "xstormy16-desc.h" #include "xstormy16-opc.h" #include "opintl.h" diff -uprN binutils-2.13.90.0.16/opcodes/z8k-opc.h binutils-2.13.90.0.18/opcodes/z8k-opc.h --- binutils-2.13.90.0.16/opcodes/z8k-opc.h Tue Nov 26 09:20:33 2002 +++ binutils-2.13.90.0.18/opcodes/z8k-opc.h Mon Dec 16 12:22:53 2002 @@ -1,4 +1,6 @@ - /* THIS FILE IS AUTOMAGICALLY GENERATED, DON'T EDIT IT */ +/* DO NOT EDIT! -*- buffer-read-only: t -*- + This file is automatically generated by z8kgen. */ + #define ARG_MASK 0x0f #define ARG_SRC 0x01 #define ARG_DST 0x02 @@ -241,4234 +243,3394 @@ #define OPC_ldctlb 174 #define OPC_sin 175 #define OPC_trtdb 176 + typedef struct { #ifdef NICENAMES -char *nicename; -int type; -int cycles; -int flags; -#endif -char *name; -unsigned char opcode; -void (*func) PARAMS ((void)); -unsigned int arg_info[4]; -unsigned int byte_info[10]; -int noperands; -int length; -int idx; + const char *nicename; + int type; + int cycles; + int flags; +#endif + const char *name; + unsigned char opcode; + void (*func) PARAMS ((void)); + unsigned int arg_info[4]; + unsigned int byte_info[10]; + int noperands; + int length; + int idx; } opcode_entry_type; + #ifdef DEFINE_TABLE const opcode_entry_type z8k_table[] = { - /* 1011 0101 ssss dddd *** adc rd,rs */ { #ifdef NICENAMES -"adc rd,rs",16,5, -0x3c, +"adc rd,rs",16,5,0x3c, #endif "adc",OPC_adc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, {CLASS_BIT+0xb,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,0}, - /* 1011 0100 ssss dddd *** adcb rbd,rbs */ { #ifdef NICENAMES -"adcb rbd,rbs",8,5, -0x3f, +"adcb rbd,rbs",8,5,0x3f, #endif "adcb",OPC_adcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, {CLASS_BIT+0xb,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,1}, - /* 0000 0001 ssN0 dddd *** add rd,@rs */ { #ifdef NICENAMES -"add rd,@rs",16,7, -0x3c, +"add rd,@rs",16,7,0x3c, #endif "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, {CLASS_BIT+0,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2}, - /* 0100 0001 0000 dddd address_src *** add rd,address_src */ { #ifdef NICENAMES -"add rd,address_src",16,9, -0x3c, +"add rd,address_src",16,9,0x3c, #endif "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3}, - + {CLASS_BIT+4,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2}, /* 0100 0001 ssN0 dddd address_src *** add rd,address_src(rs) */ { #ifdef NICENAMES -"add rd,address_src(rs)",16,10, -0x3c, +"add rd,address_src(rs)",16,10,0x3c, #endif "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4}, - + {CLASS_BIT+4,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2}, /* 0000 0001 0000 dddd imm16 *** add rd,imm16 */ { #ifdef NICENAMES -"add rd,imm16",16,7, -0x3c, +"add rd,imm16",16,7,0x3c, #endif "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,5}, - + {CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,2}, /* 1000 0001 ssss dddd *** add rd,rs */ { #ifdef NICENAMES -"add rd,rs",16,4, -0x3c, +"add rd,rs",16,4,0x3c, #endif "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6}, - + {CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2}, /* 0000 0000 ssN0 dddd *** addb rbd,@rs */ { #ifdef NICENAMES -"addb rbd,@rs",8,7, -0x3f, +"addb rbd,@rs",8,7,0x3f, #endif "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,7}, - + {CLASS_BIT+0,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3}, /* 0100 0000 0000 dddd address_src *** addb rbd,address_src */ { #ifdef NICENAMES -"addb rbd,address_src",8,9, -0x3f, +"addb rbd,address_src",8,9,0x3f, #endif "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,8}, - + {CLASS_BIT+4,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3}, /* 0100 0000 ssN0 dddd address_src *** addb rbd,address_src(rs) */ { #ifdef NICENAMES -"addb rbd,address_src(rs)",8,10, -0x3f, +"addb rbd,address_src(rs)",8,10,0x3f, #endif "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,9}, - + {CLASS_BIT+4,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3}, /* 0000 0000 0000 dddd imm8 imm8 *** addb rbd,imm8 */ { #ifdef NICENAMES -"addb rbd,imm8",8,7, -0x3f, +"addb rbd,imm8",8,7,0x3f, #endif "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,10}, - + {CLASS_BIT+0,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,3}, /* 1000 0000 ssss dddd *** addb rbd,rbs */ { #ifdef NICENAMES -"addb rbd,rbs",8,4, -0x3f, +"addb rbd,rbs",8,4,0x3f, #endif "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,11}, - + {CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3}, /* 0001 0110 ssN0 dddd *** addl rrd,@rs */ { #ifdef NICENAMES -"addl rrd,@rs",32,14, -0x3c, +"addl rrd,@rs",32,14,0x3c, #endif "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,12}, - + {CLASS_BIT+1,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4}, /* 0101 0110 0000 dddd address_src *** addl rrd,address_src */ { #ifdef NICENAMES -"addl rrd,address_src",32,15, -0x3c, +"addl rrd,address_src",32,15,0x3c, #endif "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,13}, - + {CLASS_BIT+5,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4}, /* 0101 0110 ssN0 dddd address_src *** addl rrd,address_src(rs) */ { #ifdef NICENAMES -"addl rrd,address_src(rs)",32,16, -0x3c, +"addl rrd,address_src(rs)",32,16,0x3c, #endif "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,14}, - + {CLASS_BIT+5,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4}, /* 0001 0110 0000 dddd imm32 *** addl rrd,imm32 */ { #ifdef NICENAMES -"addl rrd,imm32",32,14, -0x3c, +"addl rrd,imm32",32,14,0x3c, #endif "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),}, - {CLASS_BIT+1,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,15}, - + {CLASS_BIT+1,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,4}, /* 1001 0110 ssss dddd *** addl rrd,rrs */ { #ifdef NICENAMES -"addl rrd,rrs",32,8, -0x3c, +"addl rrd,rrs",32,8,0x3c, #endif "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,16}, - + {CLASS_BIT+9,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4}, /* 0000 0111 ssN0 dddd *** and rd,@rs */ { #ifdef NICENAMES -"and rd,@rs",16,7, -0x18, +"and rd,@rs",16,7,0x18, #endif "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17}, - + {CLASS_BIT+0,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5}, /* 0100 0111 0000 dddd address_src *** and rd,address_src */ { #ifdef NICENAMES -"and rd,address_src",16,9, -0x18, +"and rd,address_src",16,9,0x18, #endif "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18}, - + {CLASS_BIT+4,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5}, /* 0100 0111 ssN0 dddd address_src *** and rd,address_src(rs) */ { #ifdef NICENAMES -"and rd,address_src(rs)",16,10, -0x18, +"and rd,address_src(rs)",16,10,0x18, #endif "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,19}, - + {CLASS_BIT+4,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5}, /* 0000 0111 0000 dddd imm16 *** and rd,imm16 */ { #ifdef NICENAMES -"and rd,imm16",16,7, -0x18, +"and rd,imm16",16,7,0x18, #endif "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,20}, - + {CLASS_BIT+0,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,5}, /* 1000 0111 ssss dddd *** and rd,rs */ { #ifdef NICENAMES -"and rd,rs",16,4, -0x18, +"and rd,rs",16,4,0x18, #endif "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,21}, - + {CLASS_BIT+8,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5}, /* 0000 0110 ssN0 dddd *** andb rbd,@rs */ { #ifdef NICENAMES -"andb rbd,@rs",8,7, -0x1c, +"andb rbd,@rs",8,7,0x1c, #endif "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,22}, - + {CLASS_BIT+0,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6}, /* 0100 0110 0000 dddd address_src *** andb rbd,address_src */ { #ifdef NICENAMES -"andb rbd,address_src",8,9, -0x1c, +"andb rbd,address_src",8,9,0x1c, #endif "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,23}, - + {CLASS_BIT+4,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6}, /* 0100 0110 ssN0 dddd address_src *** andb rbd,address_src(rs) */ { #ifdef NICENAMES -"andb rbd,address_src(rs)",8,10, -0x1c, +"andb rbd,address_src(rs)",8,10,0x1c, #endif "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,24}, - + {CLASS_BIT+4,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6}, /* 0000 0110 0000 dddd imm8 imm8 *** andb rbd,imm8 */ { #ifdef NICENAMES -"andb rbd,imm8",8,7, -0x1c, +"andb rbd,imm8",8,7,0x1c, #endif "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,25}, - + {CLASS_BIT+0,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,6}, /* 1000 0110 ssss dddd *** andb rbd,rbs */ { #ifdef NICENAMES -"andb rbd,rbs",8,4, -0x1c, +"andb rbd,rbs",8,4,0x1c, #endif "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,26}, - + {CLASS_BIT+8,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6}, /* 0010 0111 ddN0 imm4 *** bit @rd,imm4 */ { #ifdef NICENAMES -"bit @rd,imm4",16,8, -0x10, +"bit @rd,imm4",16,8,0x10, #endif "bit",OPC_bit,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+2,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,27}, - + {CLASS_BIT+2,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7}, /* 0110 0111 ddN0 imm4 address_dst *** bit address_dst(rd),imm4 */ { #ifdef NICENAMES -"bit address_dst(rd),imm4",16,11, -0x10, +"bit address_dst(rd),imm4",16,11,0x10, #endif "bit",OPC_bit,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,28}, - + {CLASS_BIT+6,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7}, /* 0110 0111 0000 imm4 address_dst *** bit address_dst,imm4 */ { #ifdef NICENAMES -"bit address_dst,imm4",16,10, -0x10, +"bit address_dst,imm4",16,10,0x10, #endif "bit",OPC_bit,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+7,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,29}, - + {CLASS_BIT+6,CLASS_BIT+7,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7}, /* 1010 0111 dddd imm4 *** bit rd,imm4 */ { #ifdef NICENAMES -"bit rd,imm4",16,4, -0x10, +"bit rd,imm4",16,4,0x10, #endif "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xa,CLASS_BIT+7,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,30}, - + {CLASS_BIT+0xa,CLASS_BIT+7,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7}, /* 0010 0111 0000 ssss 0000 dddd 0000 0000 *** bit rd,rs */ { #ifdef NICENAMES -"bit rd,rs",16,10, -0x10, +"bit rd,rs",16,10,0x10, #endif "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,31}, - + {CLASS_BIT+2,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,7}, /* 0010 0110 ddN0 imm4 *** bitb @rd,imm4 */ { #ifdef NICENAMES -"bitb @rd,imm4",8,8, -0x10, +"bitb @rd,imm4",8,8,0x10, #endif "bitb",OPC_bitb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+2,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,32}, - + {CLASS_BIT+2,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8}, /* 0110 0110 ddN0 imm4 address_dst *** bitb address_dst(rd),imm4 */ { #ifdef NICENAMES -"bitb address_dst(rd),imm4",8,11, -0x10, +"bitb address_dst(rd),imm4",8,11,0x10, #endif "bitb",OPC_bitb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,33}, - + {CLASS_BIT+6,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8}, /* 0110 0110 0000 imm4 address_dst *** bitb address_dst,imm4 */ { #ifdef NICENAMES -"bitb address_dst,imm4",8,10, -0x10, +"bitb address_dst,imm4",8,10,0x10, #endif "bitb",OPC_bitb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+6,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,34}, - + {CLASS_BIT+6,CLASS_BIT+6,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8}, /* 1010 0110 dddd imm4 *** bitb rbd,imm4 */ { #ifdef NICENAMES -"bitb rbd,imm4",8,4, -0x10, +"bitb rbd,imm4",8,4,0x10, #endif "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xa,CLASS_BIT+6,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,35}, - + {CLASS_BIT+0xa,CLASS_BIT+6,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8}, /* 0010 0110 0000 ssss 0000 dddd 0000 0000 *** bitb rbd,rs */ { #ifdef NICENAMES -"bitb rbd,rs",8,10, -0x10, +"bitb rbd,rs",8,10,0x10, #endif "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,36}, - + {CLASS_BIT+2,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,8}, /* 0011 0110 0000 0000 *** bpt */ { #ifdef NICENAMES -"bpt",8,2, -0x00, +"bpt",8,2,0x00, #endif "bpt",OPC_bpt,0,{0}, - {CLASS_BIT+3,CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,37}, - + {CLASS_BIT+3,CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,9}, /* 0001 1111 ddN0 0000 *** call @rd */ { #ifdef NICENAMES -"call @rd",32,10, -0x00, +"call @rd",32,10,0x00, #endif "call",OPC_call,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,38}, - + {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,10}, /* 0101 1111 0000 0000 address_dst *** call address_dst */ { #ifdef NICENAMES -"call address_dst",32,12, -0x00, +"call address_dst",32,12,0x00, #endif "call",OPC_call,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,39}, - + {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,10}, /* 0101 1111 ddN0 0000 address_dst *** call address_dst(rd) */ { #ifdef NICENAMES -"call address_dst(rd)",32,13, -0x00, +"call address_dst(rd)",32,13,0x00, #endif "call",OPC_call,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,40}, - + {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,10}, /* 1101 disp12 *** calr disp12 */ { #ifdef NICENAMES -"calr disp12",16,10, -0x00, +"calr disp12",16,10,0x00, #endif "calr",OPC_calr,0,{CLASS_DISP,}, - {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,41}, - + {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,11}, /* 0000 1101 ddN0 1000 *** clr @rd */ { #ifdef NICENAMES -"clr @rd",16,8, -0x00, +"clr @rd",16,8,0x00, #endif "clr",OPC_clr,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,42}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,12}, /* 0100 1101 0000 1000 address_dst *** clr address_dst */ { #ifdef NICENAMES -"clr address_dst",16,11, -0x00, +"clr address_dst",16,11,0x00, #endif "clr",OPC_clr,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,43}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,12}, /* 0100 1101 ddN0 1000 address_dst *** clr address_dst(rd) */ { #ifdef NICENAMES -"clr address_dst(rd)",16,12, -0x00, +"clr address_dst(rd)",16,12,0x00, #endif "clr",OPC_clr,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,44}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,12}, /* 1000 1101 dddd 1000 *** clr rd */ { #ifdef NICENAMES -"clr rd",16,7, -0x00, +"clr rd",16,7,0x00, #endif "clr",OPC_clr,0,{CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,45}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,12}, /* 0000 1100 ddN0 1000 *** clrb @rd */ { #ifdef NICENAMES -"clrb @rd",8,8, -0x00, +"clrb @rd",8,8,0x00, #endif "clrb",OPC_clrb,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,46}, - + {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13}, /* 0100 1100 0000 1000 address_dst *** clrb address_dst */ { #ifdef NICENAMES -"clrb address_dst",8,11, -0x00, +"clrb address_dst",8,11,0x00, #endif "clrb",OPC_clrb,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,47}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13}, /* 0100 1100 ddN0 1000 address_dst *** clrb address_dst(rd) */ { #ifdef NICENAMES -"clrb address_dst(rd)",8,12, -0x00, +"clrb address_dst(rd)",8,12,0x00, #endif "clrb",OPC_clrb,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,48}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13}, /* 1000 1100 dddd 1000 *** clrb rbd */ { #ifdef NICENAMES -"clrb rbd",8,7, -0x00, +"clrb rbd",8,7,0x00, #endif "clrb",OPC_clrb,0,{CLASS_REG_BYTE+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,49}, - + {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13}, /* 0000 1101 ddN0 0000 *** com @rd */ { #ifdef NICENAMES -"com @rd",16,12, -0x18, +"com @rd",16,12,0x18, #endif "com",OPC_com,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,50}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,14}, /* 0100 1101 0000 0000 address_dst *** com address_dst */ { #ifdef NICENAMES -"com address_dst",16,15, -0x18, +"com address_dst",16,15,0x18, #endif "com",OPC_com,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,51}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14}, /* 0100 1101 ddN0 0000 address_dst *** com address_dst(rd) */ { #ifdef NICENAMES -"com address_dst(rd)",16,16, -0x18, +"com address_dst(rd)",16,16,0x18, #endif "com",OPC_com,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,52}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14}, /* 1000 1101 dddd 0000 *** com rd */ { #ifdef NICENAMES -"com rd",16,7, -0x18, +"com rd",16,7,0x18, #endif "com",OPC_com,0,{CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,53}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,14}, /* 0000 1100 ddN0 0000 *** comb @rd */ { #ifdef NICENAMES -"comb @rd",8,12, -0x1c, +"comb @rd",8,12,0x1c, #endif "comb",OPC_comb,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,54}, - + {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15}, /* 0100 1100 0000 0000 address_dst *** comb address_dst */ { #ifdef NICENAMES -"comb address_dst",8,15, -0x1c, +"comb address_dst",8,15,0x1c, #endif "comb",OPC_comb,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,55}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15}, /* 0100 1100 ddN0 0000 address_dst *** comb address_dst(rd) */ { #ifdef NICENAMES -"comb address_dst(rd)",8,16, -0x1c, +"comb address_dst(rd)",8,16,0x1c, #endif "comb",OPC_comb,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,56}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15}, /* 1000 1100 dddd 0000 *** comb rbd */ { #ifdef NICENAMES -"comb rbd",8,7, -0x1c, +"comb rbd",8,7,0x1c, #endif "comb",OPC_comb,0,{CLASS_REG_BYTE+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,57}, - + {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15}, /* 1000 1101 flags 0101 *** comflg flags */ { #ifdef NICENAMES -"comflg flags",16,7, -0x3c, +"comflg flags",16,7,0x3c, #endif "comflg",OPC_comflg,0,{CLASS_FLAGS,}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,58}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,16}, /* 0000 1101 ddN0 0001 imm16 *** cp @rd,imm16 */ { #ifdef NICENAMES -"cp @rd,imm16",16,11, -0x3c, +"cp @rd,imm16",16,11,0x3c, #endif "cp",OPC_cp,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,59}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,17}, /* 0100 1101 ddN0 0001 address_dst imm16 *** cp address_dst(rd),imm16 */ { #ifdef NICENAMES -"cp address_dst(rd),imm16",16,15, -0x3c, +"cp address_dst(rd),imm16",16,15,0x3c, #endif "cp",OPC_cp,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,60}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,17}, /* 0100 1101 0000 0001 address_dst imm16 *** cp address_dst,imm16 */ { #ifdef NICENAMES -"cp address_dst,imm16",16,14, -0x3c, +"cp address_dst,imm16",16,14,0x3c, #endif "cp",OPC_cp,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,61}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,17}, /* 0000 1011 ssN0 dddd *** cp rd,@rs */ { #ifdef NICENAMES -"cp rd,@rs",16,7, -0x3c, +"cp rd,@rs",16,7,0x3c, #endif "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,62}, - + {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17}, /* 0100 1011 0000 dddd address_src *** cp rd,address_src */ { #ifdef NICENAMES -"cp rd,address_src",16,9, -0x3c, +"cp rd,address_src",16,9,0x3c, #endif "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,63}, - + {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,17}, /* 0100 1011 ssN0 dddd address_src *** cp rd,address_src(rs) */ { #ifdef NICENAMES -"cp rd,address_src(rs)",16,10, -0x3c, +"cp rd,address_src(rs)",16,10,0x3c, #endif "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,64}, - + {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,17}, /* 0000 1011 0000 dddd imm16 *** cp rd,imm16 */ { #ifdef NICENAMES -"cp rd,imm16",16,7, -0x3c, +"cp rd,imm16",16,7,0x3c, #endif "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,65}, - + {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,17}, /* 1000 1011 ssss dddd *** cp rd,rs */ { #ifdef NICENAMES -"cp rd,rs",16,4, -0x3c, +"cp rd,rs",16,4,0x3c, #endif "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66}, - + {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17}, /* 0000 1100 ddN0 0001 imm8 imm8 *** cpb @rd,imm8 */ { #ifdef NICENAMES -"cpb @rd,imm8",8,11, -0x3c, +"cpb @rd,imm8",8,11,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,67}, - + {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,18}, /* 0100 1100 ddN0 0001 address_dst imm8 imm8 *** cpb address_dst(rd),imm8 */ { #ifdef NICENAMES -"cpb address_dst(rd),imm8",8,15, -0x3c, +"cpb address_dst(rd),imm8",8,15,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,68}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,18}, /* 0100 1100 0000 0001 address_dst imm8 imm8 *** cpb address_dst,imm8 */ { #ifdef NICENAMES -"cpb address_dst,imm8",8,14, -0x3c, +"cpb address_dst,imm8",8,14,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,18}, /* 0000 1010 ssN0 dddd *** cpb rbd,@rs */ { #ifdef NICENAMES -"cpb rbd,@rs",8,7, -0x3c, +"cpb rbd,@rs",8,7,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,70}, - + {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18}, /* 0100 1010 0000 dddd address_src *** cpb rbd,address_src */ { #ifdef NICENAMES -"cpb rbd,address_src",8,9, -0x3c, +"cpb rbd,address_src",8,9,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,71}, - + {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18}, /* 0100 1010 ssN0 dddd address_src *** cpb rbd,address_src(rs) */ { #ifdef NICENAMES -"cpb rbd,address_src(rs)",8,10, -0x3c, +"cpb rbd,address_src(rs)",8,10,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,72}, - + {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18}, /* 0000 1010 0000 dddd imm8 imm8 *** cpb rbd,imm8 */ { #ifdef NICENAMES -"cpb rbd,imm8",8,7, -0x3c, +"cpb rbd,imm8",8,7,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,73}, - + {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,18}, /* 1000 1010 ssss dddd *** cpb rbd,rbs */ { #ifdef NICENAMES -"cpb rbd,rbs",8,4, -0x3c, +"cpb rbd,rbs",8,4,0x3c, #endif "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74}, - + {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18}, /* 1011 1011 ssN0 1000 0000 rrrr dddd cccc *** cpd rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpd rd,@rs,rr,cc",16,11, -0x3c, +"cpd rd,@rs,rr,cc",16,11,0x3c, #endif "cpd",OPC_cpd,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,75}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,19}, /* 1011 1010 ssN0 1000 0000 rrrr dddd cccc *** cpdb rbd,@rs,rr,cc */ { #ifdef NICENAMES -"cpdb rbd,@rs,rr,cc",8,11, -0x3c, +"cpdb rbd,@rs,rr,cc",8,11,0x3c, #endif "cpdb",OPC_cpdb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,76}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,20}, /* 1011 1011 ssN0 1100 0000 rrrr dddd cccc *** cpdr rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpdr rd,@rs,rr,cc",16,11, -0x3c, +"cpdr rd,@rs,rr,cc",16,11,0x3c, #endif "cpdr",OPC_cpdr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,77}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,21}, /* 1011 1010 ssN0 1100 0000 rrrr dddd cccc *** cpdrb rbd,@rs,rr,cc */ { #ifdef NICENAMES -"cpdrb rbd,@rs,rr,cc",8,11, -0x3c, +"cpdrb rbd,@rs,rr,cc",8,11,0x3c, #endif "cpdrb",OPC_cpdrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,78}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,22}, /* 1011 1011 ssN0 0000 0000 rrrr dddd cccc *** cpi rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpi rd,@rs,rr,cc",16,11, -0x3c, +"cpi rd,@rs,rr,cc",16,11,0x3c, #endif "cpi",OPC_cpi,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,79}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,23}, /* 1011 1010 ssN0 0000 0000 rrrr dddd cccc *** cpib rbd,@rs,rr,cc */ { #ifdef NICENAMES -"cpib rbd,@rs,rr,cc",8,11, -0x3c, +"cpib rbd,@rs,rr,cc",8,11,0x3c, #endif "cpib",OPC_cpib,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,80}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,24}, /* 1011 1011 ssN0 0100 0000 rrrr dddd cccc *** cpir rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpir rd,@rs,rr,cc",16,11, -0x3c, +"cpir rd,@rs,rr,cc",16,11,0x3c, #endif "cpir",OPC_cpir,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,81}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,25}, /* 1011 1010 ssN0 0100 0000 rrrr dddd cccc *** cpirb rbd,@rs,rr,cc */ { #ifdef NICENAMES -"cpirb rbd,@rs,rr,cc",8,11, -0x3c, +"cpirb rbd,@rs,rr,cc",8,11,0x3c, #endif "cpirb",OPC_cpirb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,82}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,26}, /* 0001 0000 ssN0 dddd *** cpl rrd,@rs */ { #ifdef NICENAMES -"cpl rrd,@rs",32,14, -0x3c, +"cpl rrd,@rs",32,14,0x3c, #endif "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,83}, - + {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,27}, /* 0101 0000 0000 dddd address_src *** cpl rrd,address_src */ { #ifdef NICENAMES -"cpl rrd,address_src",32,15, -0x3c, +"cpl rrd,address_src",32,15,0x3c, #endif "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,84}, - + {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,27}, /* 0101 0000 ssN0 dddd address_src *** cpl rrd,address_src(rs) */ { #ifdef NICENAMES -"cpl rrd,address_src(rs)",32,16, -0x3c, +"cpl rrd,address_src(rs)",32,16,0x3c, #endif "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,85}, - + {CLASS_BIT+5,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,27}, /* 0001 0000 0000 dddd imm32 *** cpl rrd,imm32 */ { #ifdef NICENAMES -"cpl rrd,imm32",32,14, -0x3c, +"cpl rrd,imm32",32,14,0x3c, #endif "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),}, - {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,86}, - + {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,27}, /* 1001 0000 ssss dddd *** cpl rrd,rrs */ { #ifdef NICENAMES -"cpl rrd,rrs",32,8, -0x3c, +"cpl rrd,rrs",32,8,0x3c, #endif "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,87}, - + {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,27}, /* 1011 1011 ssN0 1010 0000 rrrr ddN0 cccc *** cpsd @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsd @rd,@rs,rr,cc",16,11, -0x3c, +"cpsd @rd,@rs,rr,cc",16,11,0x3c, #endif "cpsd",OPC_cpsd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,88}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,28}, /* 1011 1010 ssN0 1010 0000 rrrr ddN0 cccc *** cpsdb @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsdb @rd,@rs,rr,cc",8,11, -0x3c, +"cpsdb @rd,@rs,rr,cc",8,11,0x3c, #endif "cpsdb",OPC_cpsdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,89}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,29}, /* 1011 1011 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdr @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsdr @rd,@rs,rr,cc",16,11, -0x3c, +"cpsdr @rd,@rs,rr,cc",16,11,0x3c, #endif "cpsdr",OPC_cpsdr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,90}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,30}, /* 1011 1010 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdrb @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsdrb @rd,@rs,rr,cc",8,11, -0x3c, +"cpsdrb @rd,@rs,rr,cc",8,11,0x3c, #endif "cpsdrb",OPC_cpsdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,91}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,31}, /* 1011 1011 ssN0 0010 0000 rrrr ddN0 cccc *** cpsi @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsi @rd,@rs,rr,cc",16,11, -0x3c, +"cpsi @rd,@rs,rr,cc",16,11,0x3c, #endif "cpsi",OPC_cpsi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,92}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,32}, /* 1011 1010 ssN0 0010 0000 rrrr ddN0 cccc *** cpsib @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsib @rd,@rs,rr,cc",8,11, -0x3c, +"cpsib @rd,@rs,rr,cc",8,11,0x3c, #endif "cpsib",OPC_cpsib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,93}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,33}, /* 1011 1011 ssN0 0110 0000 rrrr ddN0 cccc *** cpsir @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsir @rd,@rs,rr,cc",16,11, -0x3c, +"cpsir @rd,@rs,rr,cc",16,11,0x3c, #endif "cpsir",OPC_cpsir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,94}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,34}, /* 1011 1010 ssN0 0110 0000 rrrr ddN0 cccc *** cpsirb @rd,@rs,rr,cc */ { #ifdef NICENAMES -"cpsirb @rd,@rs,rr,cc",8,11, -0x3c, +"cpsirb @rd,@rs,rr,cc",8,11,0x3c, #endif "cpsirb",OPC_cpsirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,95}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,35}, /* 1011 0000 dddd 0000 *** dab rbd */ { #ifdef NICENAMES -"dab rbd",8,5, -0x38, +"dab rbd",8,5,0x38, #endif "dab",OPC_dab,0,{CLASS_REG_BYTE+(ARG_RD),}, - {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,96}, - + {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,36}, /* 1111 dddd 0disp7 *** dbjnz rbd,disp7 */ { #ifdef NICENAMES -"dbjnz rbd,disp7",16,11, -0x00, +"dbjnz rbd,disp7",16,11,0x00, #endif "dbjnz",OPC_dbjnz,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,}, - {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,97}, - + {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,37}, /* 0010 1011 ddN0 imm4m1 *** dec @rd,imm4m1 */ { #ifdef NICENAMES -"dec @rd,imm4m1",16,11, -0x1c, +"dec @rd,imm4m1",16,11,0x1c, #endif "dec",OPC_dec,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,98}, - + {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,38}, /* 0110 1011 ddN0 imm4m1 address_dst *** dec address_dst(rd),imm4m1 */ { #ifdef NICENAMES -"dec address_dst(rd),imm4m1",16,14, -0x1c, +"dec address_dst(rd),imm4m1",16,14,0x1c, #endif "dec",OPC_dec,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,99}, - + {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,38}, /* 0110 1011 0000 imm4m1 address_dst *** dec address_dst,imm4m1 */ { #ifdef NICENAMES -"dec address_dst,imm4m1",16,13, -0x1c, +"dec address_dst,imm4m1",16,13,0x1c, #endif "dec",OPC_dec,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,100}, - + {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,38}, /* 1010 1011 dddd imm4m1 *** dec rd,imm4m1 */ { #ifdef NICENAMES -"dec rd,imm4m1",16,4, -0x1c, +"dec rd,imm4m1",16,4,0x1c, #endif "dec",OPC_dec,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,101}, - + {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,38}, /* 0010 1010 ddN0 imm4m1 *** decb @rd,imm4m1 */ { #ifdef NICENAMES -"decb @rd,imm4m1",8,11, -0x1c, +"decb @rd,imm4m1",8,11,0x1c, #endif "decb",OPC_decb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,102}, - + {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39}, /* 0110 1010 ddN0 imm4m1 address_dst *** decb address_dst(rd),imm4m1 */ { #ifdef NICENAMES -"decb address_dst(rd),imm4m1",8,14, -0x1c, +"decb address_dst(rd),imm4m1",8,14,0x1c, #endif "decb",OPC_decb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,103}, - + {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39}, /* 0110 1010 0000 imm4m1 address_dst *** decb address_dst,imm4m1 */ { #ifdef NICENAMES -"decb address_dst,imm4m1",8,13, -0x1c, +"decb address_dst,imm4m1",8,13,0x1c, #endif "decb",OPC_decb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,104}, - + {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39}, /* 1010 1010 dddd imm4m1 *** decb rbd,imm4m1 */ { #ifdef NICENAMES -"decb rbd,imm4m1",8,4, -0x1c, +"decb rbd,imm4m1",8,4,0x1c, #endif "decb",OPC_decb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,105}, - + {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39}, /* 0111 1100 0000 00ii *** di i2 */ { #ifdef NICENAMES -"di i2",16,7, -0x00, +"di i2",16,7,0x00, #endif "di",OPC_di,0,{CLASS_IMM+(ARG_IMM2),}, - {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,106}, - + {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,40}, /* 0001 1011 ssN0 dddd *** div rrd,@rs */ { #ifdef NICENAMES -"div rrd,@rs",16,107, -0x3c, +"div rrd,@rs",16,107,0x3c, #endif "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,107}, - + {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,41}, /* 0101 1011 0000 dddd address_src *** div rrd,address_src */ { #ifdef NICENAMES -"div rrd,address_src",16,107, -0x3c, +"div rrd,address_src",16,107,0x3c, #endif "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108}, - + {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,41}, /* 0101 1011 ssN0 dddd address_src *** div rrd,address_src(rs) */ { #ifdef NICENAMES -"div rrd,address_src(rs)",16,107, -0x3c, +"div rrd,address_src(rs)",16,107,0x3c, #endif "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,109}, - + {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,41}, /* 0001 1011 0000 dddd imm16 *** div rrd,imm16 */ { #ifdef NICENAMES -"div rrd,imm16",16,107, -0x3c, +"div rrd,imm16",16,107,0x3c, #endif "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,110}, - + {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,41}, /* 1001 1011 ssss dddd *** div rrd,rs */ { #ifdef NICENAMES -"div rrd,rs",16,107, -0x3c, +"div rrd,rs",16,107,0x3c, #endif "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,111}, - + {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,41}, /* 0001 1010 ssN0 dddd *** divl rqd,@rs */ { #ifdef NICENAMES -"divl rqd,@rs",32,744, -0x3c, +"divl rqd,@rs",32,744,0x3c, #endif "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,112}, - + {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42}, /* 0101 1010 0000 dddd address_src *** divl rqd,address_src */ { #ifdef NICENAMES -"divl rqd,address_src",32,745, -0x3c, +"divl rqd,address_src",32,745,0x3c, #endif "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,113}, - + {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42}, /* 0101 1010 ssN0 dddd address_src *** divl rqd,address_src(rs) */ { #ifdef NICENAMES -"divl rqd,address_src(rs)",32,746, -0x3c, +"divl rqd,address_src(rs)",32,746,0x3c, #endif "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,114}, - + {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42}, /* 0001 1010 0000 dddd imm32 *** divl rqd,imm32 */ { #ifdef NICENAMES -"divl rqd,imm32",32,744, -0x3c, +"divl rqd,imm32",32,744,0x3c, #endif "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),}, - {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,115}, - + {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,42}, /* 1001 1010 ssss dddd *** divl rqd,rrs */ { #ifdef NICENAMES -"divl rqd,rrs",32,744, -0x3c, +"divl rqd,rrs",32,744,0x3c, #endif "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,116}, - + {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42}, /* 1111 dddd 1disp7 *** djnz rd,disp7 */ { #ifdef NICENAMES -"djnz rd,disp7",16,11, -0x00, +"djnz rd,disp7",16,11,0x00, #endif "djnz",OPC_djnz,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,}, - {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,117}, - + {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,43}, /* 0111 1100 0000 01ii *** ei i2 */ { #ifdef NICENAMES -"ei i2",16,7, -0x00, +"ei i2",16,7,0x00, #endif "ei",OPC_ei,0,{CLASS_IMM+(ARG_IMM2),}, - {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,118}, - + {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,44}, /* 0010 1101 ssN0 dddd *** ex rd,@rs */ { #ifdef NICENAMES -"ex rd,@rs",16,12, -0x00, +"ex rd,@rs",16,12,0x00, #endif "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,119}, - + {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,45}, /* 0110 1101 0000 dddd address_src *** ex rd,address_src */ { #ifdef NICENAMES -"ex rd,address_src",16,15, -0x00, +"ex rd,address_src",16,15,0x00, #endif "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,120}, - + {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,45}, /* 0110 1101 ssN0 dddd address_src *** ex rd,address_src(rs) */ { #ifdef NICENAMES -"ex rd,address_src(rs)",16,16, -0x00, +"ex rd,address_src(rs)",16,16,0x00, #endif "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,121}, - + {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,45}, /* 1010 1101 ssss dddd *** ex rd,rs */ { #ifdef NICENAMES -"ex rd,rs",16,6, -0x00, +"ex rd,rs",16,6,0x00, #endif "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,122}, - + {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,45}, /* 0010 1100 ssN0 dddd *** exb rbd,@rs */ { #ifdef NICENAMES -"exb rbd,@rs",8,12, -0x00, +"exb rbd,@rs",8,12,0x00, #endif "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,123}, - + {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46}, /* 0110 1100 0000 dddd address_src *** exb rbd,address_src */ { #ifdef NICENAMES -"exb rbd,address_src",8,15, -0x00, +"exb rbd,address_src",8,15,0x00, #endif "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,124}, - + {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46}, /* 0110 1100 ssN0 dddd address_src *** exb rbd,address_src(rs) */ { #ifdef NICENAMES -"exb rbd,address_src(rs)",8,16, -0x00, +"exb rbd,address_src(rs)",8,16,0x00, #endif "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,125}, - + {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46}, /* 1010 1100 ssss dddd *** exb rbd,rbs */ { #ifdef NICENAMES -"exb rbd,rbs",8,6, -0x00, +"exb rbd,rbs",8,6,0x00, #endif "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,126}, - + {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46}, /* 0000 1110 imm8 *** ext0e imm8 */ { #ifdef NICENAMES -"ext0e imm8",8,10, -0x00, +"ext0e imm8",8,10,0x00, #endif "ext0e",OPC_ext0e,0,{CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,127}, - + {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,47}, /* 0000 1111 imm8 *** ext0f imm8 */ { #ifdef NICENAMES -"ext0f imm8",8,10, -0x00, +"ext0f imm8",8,10,0x00, #endif "ext0f",OPC_ext0f,0,{CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,128}, - + {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,48}, /* 1000 1110 imm8 *** ext8e imm8 */ { #ifdef NICENAMES -"ext8e imm8",8,10, -0x00, +"ext8e imm8",8,10,0x00, #endif "ext8e",OPC_ext8e,0,{CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,129}, - + {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,49}, /* 1000 1111 imm8 *** ext8f imm8 */ { #ifdef NICENAMES -"ext8f imm8",8,10, -0x00, +"ext8f imm8",8,10,0x00, #endif "ext8f",OPC_ext8f,0,{CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,130}, - + {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,50}, /* 1011 0001 dddd 1010 *** exts rrd */ { #ifdef NICENAMES -"exts rrd",16,11, -0x00, +"exts rrd",16,11,0x00, #endif "exts",OPC_exts,0,{CLASS_REG_LONG+(ARG_RD),}, - {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,131}, - + {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,51}, /* 1011 0001 dddd 0000 *** extsb rd */ { #ifdef NICENAMES -"extsb rd",8,11, -0x00, +"extsb rd",8,11,0x00, #endif "extsb",OPC_extsb,0,{CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,132}, - + {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,52}, /* 1011 0001 dddd 0111 *** extsl rqd */ { #ifdef NICENAMES -"extsl rqd",32,11, -0x00, +"extsl rqd",32,11,0x00, #endif "extsl",OPC_extsl,0,{CLASS_REG_QUAD+(ARG_RD),}, - {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,133}, - + {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,53}, /* 0111 1010 0000 0000 *** halt */ { #ifdef NICENAMES -"halt",16,8, -0x00, +"halt",16,8,0x00, #endif "halt",OPC_halt,0,{0}, - {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,134}, - + {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,54}, /* 0011 1101 ssN0 dddd *** in rd,@rs */ { #ifdef NICENAMES -"in rd,@rs",16,10, -0x00, +"in rd,@rs",16,10,0x00, #endif "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,135}, - + {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,55}, /* 0011 1011 dddd 0100 imm16 *** in rd,imm16 */ { #ifdef NICENAMES -"in rd,imm16",16,12, -0x00, +"in rd,imm16",16,12,0x00, #endif "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,136}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,55}, /* 0011 1100 ssN0 dddd *** inb rbd,@rs */ { #ifdef NICENAMES -"inb rbd,@rs",8,12, -0x00, +"inb rbd,@rs",8,12,0x00, #endif "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,137}, - + {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,56}, /* 0011 1010 dddd 0100 imm16 *** inb rbd,imm16 */ { #ifdef NICENAMES -"inb rbd,imm16",8,10, -0x00, +"inb rbd,imm16",8,10,0x00, #endif "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,138}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,56}, /* 0010 1001 ddN0 imm4m1 *** inc @rd,imm4m1 */ { #ifdef NICENAMES -"inc @rd,imm4m1",16,11, -0x1c, +"inc @rd,imm4m1",16,11,0x1c, #endif "inc",OPC_inc,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,139}, - + {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,57}, /* 0110 1001 ddN0 imm4m1 address_dst *** inc address_dst(rd),imm4m1 */ { #ifdef NICENAMES -"inc address_dst(rd),imm4m1",16,14, -0x1c, +"inc address_dst(rd),imm4m1",16,14,0x1c, #endif "inc",OPC_inc,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140}, - + {CLASS_BIT+6,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,57}, /* 0110 1001 0000 imm4m1 address_dst *** inc address_dst,imm4m1 */ { #ifdef NICENAMES -"inc address_dst,imm4m1",16,13, -0x1c, +"inc address_dst,imm4m1",16,13,0x1c, #endif "inc",OPC_inc,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141}, - + {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,57}, /* 1010 1001 dddd imm4m1 *** inc rd,imm4m1 */ { #ifdef NICENAMES -"inc rd,imm4m1",16,4, -0x1c, +"inc rd,imm4m1",16,4,0x1c, #endif "inc",OPC_inc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,142}, - + {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,57}, /* 0010 1000 ddN0 imm4m1 *** incb @rd,imm4m1 */ { #ifdef NICENAMES -"incb @rd,imm4m1",8,11, -0x1c, +"incb @rd,imm4m1",8,11,0x1c, #endif "incb",OPC_incb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,143}, - + {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58}, /* 0110 1000 ddN0 imm4m1 address_dst *** incb address_dst(rd),imm4m1 */ { #ifdef NICENAMES -"incb address_dst(rd),imm4m1",8,14, -0x1c, +"incb address_dst(rd),imm4m1",8,14,0x1c, #endif "incb",OPC_incb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,144}, - + {CLASS_BIT+6,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58}, /* 0110 1000 0000 imm4m1 address_dst *** incb address_dst,imm4m1 */ { #ifdef NICENAMES -"incb address_dst,imm4m1",8,13, -0x1c, +"incb address_dst,imm4m1",8,13,0x1c, #endif "incb",OPC_incb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,145}, - + {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58}, /* 1010 1000 dddd imm4m1 *** incb rbd,imm4m1 */ { #ifdef NICENAMES -"incb rbd,imm4m1",8,4, -0x1c, +"incb rbd,imm4m1",8,4,0x1c, #endif "incb",OPC_incb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),}, - {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,146}, - + {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58}, /* 0011 1011 ssN0 1000 0000 aaaa ddN0 1000 *** ind @rd,@rs,ra */ { #ifdef NICENAMES -"ind @rd,@rs,ra",16,21, -0x04, +"ind @rd,@rs,ra",16,21,0x04, #endif "ind",OPC_ind,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,147}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,59}, /* 0011 1010 ssN0 1000 0000 aaaa ddN0 1000 *** indb @rd,@rs,rba */ { #ifdef NICENAMES -"indb @rd,@rs,rba",8,21, -0x04, +"indb @rd,@rs,rba",8,21,0x04, #endif "indb",OPC_indb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,148}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,60}, /* 0011 1010 ssN0 0000 0000 aaaa ddN0 1000 *** inib @rd,@rs,ra */ { #ifdef NICENAMES -"inib @rd,@rs,ra",8,21, -0x04, +"inib @rd,@rs,ra",8,21,0x04, #endif "inib",OPC_inib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,149}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,61}, /* 0011 1010 ssN0 0000 0000 aaaa ddN0 0000 *** inibr @rd,@rs,ra */ { #ifdef NICENAMES -"inibr @rd,@rs,ra",16,21, -0x04, +"inibr @rd,@rs,ra",16,21,0x04, #endif "inibr",OPC_inibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,150}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,62}, /* 0111 1011 0000 0000 *** iret */ { #ifdef NICENAMES -"iret",16,13, -0x3f, +"iret",16,13,0x3f, #endif "iret",OPC_iret,0,{0}, - {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,151}, - + {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,63}, /* 0001 1110 ddN0 cccc *** jp cc,@rd */ { #ifdef NICENAMES -"jp cc,@rd",16,10, -0x00, +"jp cc,@rd",16,10,0x00, #endif "jp",OPC_jp,0,{CLASS_CC,CLASS_IR+(ARG_RD),}, - {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,152}, - + {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,64}, /* 0101 1110 0000 cccc address_dst *** jp cc,address_dst */ { #ifdef NICENAMES -"jp cc,address_dst",16,7, -0x00, +"jp cc,address_dst",16,7,0x00, #endif "jp",OPC_jp,0,{CLASS_CC,CLASS_DA+(ARG_DST),}, - {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,153}, - + {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,64}, /* 0101 1110 ddN0 cccc address_dst *** jp cc,address_dst(rd) */ { #ifdef NICENAMES -"jp cc,address_dst(rd)",16,8, -0x00, +"jp cc,address_dst(rd)",16,8,0x00, #endif "jp",OPC_jp,0,{CLASS_CC,CLASS_X+(ARG_RD),}, - {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,154}, - + {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,64}, /* 1110 cccc disp8 *** jr cc,disp8 */ { #ifdef NICENAMES -"jr cc,disp8",16,6, -0x00, +"jr cc,disp8",16,6,0x00, #endif "jr",OPC_jr,0,{CLASS_CC,CLASS_DISP,}, - {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,155}, - + {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,65}, /* 0000 1101 ddN0 0101 imm16 *** ld @rd,imm16 */ { #ifdef NICENAMES -"ld @rd,imm16",16,7, -0x00, +"ld @rd,imm16",16,7,0x00, #endif "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,156}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66}, /* 0010 1111 ddN0 ssss *** ld @rd,rs */ { #ifdef NICENAMES -"ld @rd,rs",16,8, -0x00, +"ld @rd,rs",16,8,0x00, #endif "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,157}, - + {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,66}, /* 0100 1101 ddN0 0101 address_dst imm16 *** ld address_dst(rd),imm16 */ { #ifdef NICENAMES -"ld address_dst(rd),imm16",16,15, -0x00, +"ld address_dst(rd),imm16",16,15,0x00, #endif "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,158}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,66}, /* 0110 1111 ddN0 ssss address_dst *** ld address_dst(rd),rs */ { #ifdef NICENAMES -"ld address_dst(rd),rs",16,12, -0x00, +"ld address_dst(rd),rs",16,12,0x00, #endif "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,159}, - + {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,66}, /* 0100 1101 0000 0101 address_dst imm16 *** ld address_dst,imm16 */ { #ifdef NICENAMES -"ld address_dst,imm16",16,14, -0x00, +"ld address_dst,imm16",16,14,0x00, #endif "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,160}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,66}, /* 0110 1111 0000 ssss address_dst *** ld address_dst,rs */ { #ifdef NICENAMES -"ld address_dst,rs",16,11, -0x00, +"ld address_dst,rs",16,11,0x00, #endif "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,161}, - + {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,66}, /* 0011 0011 ddN0 ssss imm16 *** ld rd(imm16),rs */ { #ifdef NICENAMES -"ld rd(imm16),rs",16,14, -0x00, +"ld rd(imm16),rs",16,14,0x00, #endif "ld",OPC_ld,0,{CLASS_BA+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,162}, - + {CLASS_BIT+3,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66}, /* 0111 0011 ddN0 ssss 0000 xxxx 0000 0000 *** ld rd(rx),rs */ { #ifdef NICENAMES -"ld rd(rx),rs",16,14, -0x00, +"ld rd(rx),rs",16,14,0x00, #endif "ld",OPC_ld,0,{CLASS_BX+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,163}, - + {CLASS_BIT+7,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,66}, /* 0010 0001 ssN0 dddd *** ld rd,@rs */ { #ifdef NICENAMES -"ld rd,@rs",16,7, -0x00, +"ld rd,@rs",16,7,0x00, #endif "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,164}, - + {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66}, /* 0110 0001 0000 dddd address_src *** ld rd,address_src */ { #ifdef NICENAMES -"ld rd,address_src",16,9, -0x00, +"ld rd,address_src",16,9,0x00, #endif "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,165}, - + {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,66}, /* 0110 0001 ssN0 dddd address_src *** ld rd,address_src(rs) */ { #ifdef NICENAMES -"ld rd,address_src(rs)",16,10, -0x00, +"ld rd,address_src(rs)",16,10,0x00, #endif "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,166}, - + {CLASS_BIT+6,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,66}, /* 0010 0001 0000 dddd imm16 *** ld rd,imm16 */ { #ifdef NICENAMES -"ld rd,imm16",16,7, -0x00, +"ld rd,imm16",16,7,0x00, #endif "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,167}, - + {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66}, /* 1010 0001 ssss dddd *** ld rd,rs */ { #ifdef NICENAMES -"ld rd,rs",16,3, -0x00, +"ld rd,rs",16,3,0x00, #endif "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168}, - + {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66}, /* 0011 0001 ssN0 dddd imm16 *** ld rd,rs(imm16) */ { #ifdef NICENAMES -"ld rd,rs(imm16)",16,14, -0x00, +"ld rd,rs(imm16)",16,14,0x00, #endif "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BA+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,169}, - + {CLASS_BIT+3,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66}, /* 0111 0001 ssN0 dddd 0000 xxxx 0000 0000 *** ld rd,rs(rx) */ { #ifdef NICENAMES -"ld rd,rs(rx)",16,14, -0x00, +"ld rd,rs(rx)",16,14,0x00, #endif "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BX+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,170}, - + {CLASS_BIT+7,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,66}, /* 0111 0110 0000 dddd address_src *** lda prd,address_src */ { #ifdef NICENAMES -"lda prd,address_src",16,12, -0x00, +"lda prd,address_src",16,12,0x00, #endif "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,171}, - + {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,67}, /* 0111 0110 ssN0 dddd address_src *** lda prd,address_src(rs) */ { #ifdef NICENAMES -"lda prd,address_src(rs)",16,13, -0x00, +"lda prd,address_src(rs)",16,13,0x00, #endif "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,172}, - + {CLASS_BIT+7,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,67}, /* 0011 0100 ssN0 dddd imm16 *** lda prd,rs(imm16) */ { #ifdef NICENAMES -"lda prd,rs(imm16)",16,15, -0x00, +"lda prd,rs(imm16)",16,15,0x00, #endif "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BA+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,173}, - + {CLASS_BIT+3,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,67}, /* 0111 0100 ssN0 dddd 0000 xxxx 0000 0000 *** lda prd,rs(rx) */ { #ifdef NICENAMES -"lda prd,rs(rx)",16,15, -0x00, +"lda prd,rs(rx)",16,15,0x00, #endif "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BX+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,174}, - + {CLASS_BIT+7,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,67}, /* 0011 0100 0000 dddd disp16 *** ldar prd,disp16 */ { #ifdef NICENAMES -"ldar prd,disp16",16,15, -0x00, +"ldar prd,disp16",16,15,0x00, #endif "ldar",OPC_ldar,0,{CLASS_PR+(ARG_RD),CLASS_DISP,}, - {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,175}, - + {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,68}, /* 0000 1100 ddN0 0101 imm8 imm8 *** ldb @rd,imm8 */ { #ifdef NICENAMES -"ldb @rd,imm8",8,7, -0x00, +"ldb @rd,imm8",8,7,0x00, #endif "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,176}, - + {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,69}, /* 0010 1110 ddN0 ssss *** ldb @rd,rbs */ { #ifdef NICENAMES -"ldb @rd,rbs",8,8, -0x00, +"ldb @rd,rbs",8,8,0x00, #endif "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,177}, - + {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,69}, /* 0100 1100 ddN0 0101 address_dst imm8 imm8 *** ldb address_dst(rd),imm8 */ { #ifdef NICENAMES -"ldb address_dst(rd),imm8",8,15, -0x00, +"ldb address_dst(rd),imm8",8,15,0x00, #endif "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,178}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69}, /* 0110 1110 ddN0 ssss address_dst *** ldb address_dst(rd),rbs */ { #ifdef NICENAMES -"ldb address_dst(rd),rbs",8,12, -0x00, +"ldb address_dst(rd),rbs",8,12,0x00, #endif "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,179}, - + {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69}, /* 0100 1100 0000 0101 address_dst imm8 imm8 *** ldb address_dst,imm8 */ { #ifdef NICENAMES -"ldb address_dst,imm8",8,14, -0x00, +"ldb address_dst,imm8",8,14,0x00, #endif "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,180}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69}, /* 0110 1110 0000 ssss address_dst *** ldb address_dst,rbs */ { #ifdef NICENAMES -"ldb address_dst,rbs",8,11, -0x00, +"ldb address_dst,rbs",8,11,0x00, #endif "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,181}, - + {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69}, /* 0010 0000 ssN0 dddd *** ldb rbd,@rs */ { #ifdef NICENAMES -"ldb rbd,@rs",8,7, -0x00, +"ldb rbd,@rs",8,7,0x00, #endif "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,182}, - + {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,69}, /* 0110 0000 0000 dddd address_src *** ldb rbd,address_src */ { #ifdef NICENAMES -"ldb rbd,address_src",8,9, -0x00, +"ldb rbd,address_src",8,9,0x00, #endif "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,183}, - + {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,69}, /* 0110 0000 ssN0 dddd address_src *** ldb rbd,address_src(rs) */ { #ifdef NICENAMES -"ldb rbd,address_src(rs)",8,10, -0x00, +"ldb rbd,address_src(rs)",8,10,0x00, #endif "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+6,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,184}, - + {CLASS_BIT+6,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,69}, /* 1100 dddd imm8 *** ldb rbd,imm8 */ { #ifdef NICENAMES -"ldb rbd,imm8",8,5, -0x00, +"ldb rbd,imm8",8,5,0x00, #endif "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,185}, - + {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,69}, /* 1010 0000 ssss dddd *** ldb rbd,rbs */ { #ifdef NICENAMES -"ldb rbd,rbs",8,3, -0x00, +"ldb rbd,rbs",8,3,0x00, #endif "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186}, - + {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,69}, /* 0011 0000 ssN0 dddd imm16 *** ldb rbd,rs(imm16) */ { #ifdef NICENAMES -"ldb rbd,rs(imm16)",8,14, -0x00, +"ldb rbd,rs(imm16)",8,14,0x00, #endif "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BA+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,187}, - + {CLASS_BIT+3,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,69}, /* 0111 0000 ssN0 dddd 0000 xxxx 0000 0000 *** ldb rbd,rs(rx) */ { #ifdef NICENAMES -"ldb rbd,rs(rx)",8,14, -0x00, +"ldb rbd,rs(rx)",8,14,0x00, #endif "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BX+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,188}, - + {CLASS_BIT+7,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,69}, /* 0011 0010 ddN0 ssss imm16 *** ldb rd(imm16),rbs */ { #ifdef NICENAMES -"ldb rd(imm16),rbs",8,14, -0x00, +"ldb rd(imm16),rbs",8,14,0x00, #endif "ldb",OPC_ldb,0,{CLASS_BA+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,189}, - + {CLASS_BIT+3,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,69}, /* 0111 0010 ddN0 ssss 0000 xxxx 0000 0000 *** ldb rd(rx),rbs */ { #ifdef NICENAMES -"ldb rd(rx),rbs",8,14, -0x00, +"ldb rd(rx),rbs",8,14,0x00, #endif "ldb",OPC_ldb,0,{CLASS_BX+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,190}, - + {CLASS_BIT+7,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,69}, /* 0111 1101 ssss 1ccc *** ldctl ctrl,rs */ { #ifdef NICENAMES -"ldctl ctrl,rs",32,7, -0x00, +"ldctl ctrl,rs",32,7,0x00, #endif "ldctl",OPC_ldctl,0,{CLASS_CTRL,CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,191}, - + {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,70}, /* 0111 1101 dddd 0ccc *** ldctl rd,ctrl */ { #ifdef NICENAMES -"ldctl rd,ctrl",32,7, -0x00, +"ldctl rd,ctrl",32,7,0x00, #endif "ldctl",OPC_ldctl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_CTRL,}, - {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,192}, - + {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,70}, /* 1000 1100 ssss 1001 *** ldctlb ctrl,rbs */ { #ifdef NICENAMES -"ldctlb ctrl,rbs",32,7, -0x3f, +"ldctlb ctrl,rbs",32,7,0x3f, #endif "ldctlb",OPC_ldctlb,0,{CLASS_CTRL,CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,193}, - + {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,71}, /* 1000 1100 dddd 0001 *** ldctlb rbd,ctrl */ { #ifdef NICENAMES -"ldctlb rbd,ctrl",32,7, -0x00, +"ldctlb rbd,ctrl",32,7,0x00, #endif "ldctlb",OPC_ldctlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_CTRL,}, - {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,194}, - + {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,71}, /* 1011 1011 ssN0 1001 0000 rrrr ddN0 1000 *** ldd @rd,@rs,rr */ { #ifdef NICENAMES -"ldd @rd,@rs,rr",16,11, -0x04, +"ldd @rd,@rs,rr",16,11,0x04, #endif "ldd",OPC_ldd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,195}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,72}, /* 1011 1010 ssN0 1001 0000 rrrr ddN0 1000 *** lddb @rd,@rs,rr */ { #ifdef NICENAMES -"lddb @rd,@rs,rr",8,11, -0x04, +"lddb @rd,@rs,rr",8,11,0x04, #endif "lddb",OPC_lddb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,196}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,73}, /* 1011 1011 ssN0 1001 0000 rrrr ddN0 0000 *** lddr @rd,@rs,rr */ { #ifdef NICENAMES -"lddr @rd,@rs,rr",16,11, -0x04, +"lddr @rd,@rs,rr",16,11,0x04, #endif "lddr",OPC_lddr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,197}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,74}, /* 1011 1010 ssN0 1001 0000 rrrr ddN0 0000 *** lddrb @rd,@rs,rr */ { #ifdef NICENAMES -"lddrb @rd,@rs,rr",8,11, -0x04, +"lddrb @rd,@rs,rr",8,11,0x04, #endif "lddrb",OPC_lddrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,198}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,75}, /* 1011 1011 ssN0 0001 0000 rrrr ddN0 1000 *** ldi @rd,@rs,rr */ { #ifdef NICENAMES -"ldi @rd,@rs,rr",16,11, -0x04, +"ldi @rd,@rs,rr",16,11,0x04, #endif "ldi",OPC_ldi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,199}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,76}, /* 1011 1010 ssN0 0001 0000 rrrr ddN0 1000 *** ldib @rd,@rs,rr */ { #ifdef NICENAMES -"ldib @rd,@rs,rr",8,11, -0x04, +"ldib @rd,@rs,rr",8,11,0x04, #endif "ldib",OPC_ldib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,200}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,77}, /* 1011 1011 ssN0 0001 0000 rrrr ddN0 0000 *** ldir @rd,@rs,rr */ { #ifdef NICENAMES -"ldir @rd,@rs,rr",16,11, -0x04, +"ldir @rd,@rs,rr",16,11,0x04, #endif "ldir",OPC_ldir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,201}, - + {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,78}, /* 1011 1010 ssN0 0001 0000 rrrr ddN0 0000 *** ldirb @rd,@rs,rr */ { #ifdef NICENAMES -"ldirb @rd,@rs,rr",8,11, -0x04, +"ldirb @rd,@rs,rr",8,11,0x04, #endif "ldirb",OPC_ldirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,202}, - + {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,79}, /* 1011 1101 dddd imm4 *** ldk rd,imm4 */ { #ifdef NICENAMES -"ldk rd,imm4",16,5, -0x00, +"ldk rd,imm4",16,5,0x00, #endif "ldk",OPC_ldk,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,203}, - + {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,80}, /* 0001 1101 ddN0 ssss *** ldl @rd,rrs */ { #ifdef NICENAMES -"ldl @rd,rrs",32,11, -0x00, +"ldl @rd,rrs",32,11,0x00, #endif "ldl",OPC_ldl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,204}, - + {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,81}, /* 0101 1101 ddN0 ssss address_dst *** ldl address_dst(rd),rrs */ { #ifdef NICENAMES -"ldl address_dst(rd),rrs",32,14, -0x00, +"ldl address_dst(rd),rrs",32,14,0x00, #endif "ldl",OPC_ldl,0,{CLASS_X+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,205}, - + {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,81}, /* 0101 1101 0000 ssss address_dst *** ldl address_dst,rrs */ { #ifdef NICENAMES -"ldl address_dst,rrs",32,15, -0x00, +"ldl address_dst,rrs",32,15,0x00, #endif "ldl",OPC_ldl,0,{CLASS_DA+(ARG_DST),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,206}, - + {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,81}, /* 0011 0111 ddN0 ssss imm16 *** ldl rd(imm16),rrs */ { #ifdef NICENAMES -"ldl rd(imm16),rrs",32,17, -0x00, +"ldl rd(imm16),rrs",32,17,0x00, #endif "ldl",OPC_ldl,0,{CLASS_BA+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,207}, - + {CLASS_BIT+3,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,81}, /* 0111 0111 ddN0 ssss 0000 xxxx 0000 0000 *** ldl rd(rx),rrs */ { #ifdef NICENAMES -"ldl rd(rx),rrs",32,17, -0x00, +"ldl rd(rx),rrs",32,17,0x00, #endif "ldl",OPC_ldl,0,{CLASS_BX+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,208}, - + {CLASS_BIT+7,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,81}, /* 0001 0100 ssN0 dddd *** ldl rrd,@rs */ { #ifdef NICENAMES -"ldl rrd,@rs",32,11, -0x00, +"ldl rrd,@rs",32,11,0x00, #endif "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,209}, - + {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,81}, /* 0101 0100 0000 dddd address_src *** ldl rrd,address_src */ { #ifdef NICENAMES -"ldl rrd,address_src",32,12, -0x00, +"ldl rrd,address_src",32,12,0x00, #endif "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,210}, - + {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,81}, /* 0101 0100 ssN0 dddd address_src *** ldl rrd,address_src(rs) */ { #ifdef NICENAMES -"ldl rrd,address_src(rs)",32,13, -0x00, +"ldl rrd,address_src(rs)",32,13,0x00, #endif "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,211}, - + {CLASS_BIT+5,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,81}, /* 0001 0100 0000 dddd imm32 *** ldl rrd,imm32 */ { #ifdef NICENAMES -"ldl rrd,imm32",32,11, -0x00, +"ldl rrd,imm32",32,11,0x00, #endif "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),}, - {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,212}, - + {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,81}, /* 1001 0100 ssss dddd *** ldl rrd,rrs */ { #ifdef NICENAMES -"ldl rrd,rrs",32,5, -0x00, +"ldl rrd,rrs",32,5,0x00, #endif "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,213}, - + {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,81}, /* 0011 0101 ssN0 dddd imm16 *** ldl rrd,rs(imm16) */ { #ifdef NICENAMES -"ldl rrd,rs(imm16)",32,17, -0x00, +"ldl rrd,rs(imm16)",32,17,0x00, #endif "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BA+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,214}, - + {CLASS_BIT+3,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,81}, /* 0111 0101 ssN0 dddd 0000 xxxx 0000 0000 *** ldl rrd,rs(rx) */ { #ifdef NICENAMES -"ldl rrd,rs(rx)",32,17, -0x00, +"ldl rrd,rs(rx)",32,17,0x00, #endif "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BX+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,215}, - + {CLASS_BIT+7,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,81}, /* 0001 1100 ddN0 1001 0000 ssss 0000 imm4m1 *** ldm @rd,rs,n */ { #ifdef NICENAMES -"ldm @rd,rs,n",16,11, -0x00, +"ldm @rd,rs,n",16,11,0x00, #endif "ldm",OPC_ldm,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),}, - {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,216}, - + {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,82}, /* 0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst(rd),rs,n */ { #ifdef NICENAMES -"ldm address_dst(rd),rs,n",16,15, -0x00, +"ldm address_dst(rd),rs,n",16,15,0x00, #endif "ldm",OPC_ldm,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),}, - {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,217}, - + {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,82}, /* 0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst,rs,n */ { #ifdef NICENAMES -"ldm address_dst,rs,n",16,14, -0x00, +"ldm address_dst,rs,n",16,14,0x00, #endif "ldm",OPC_ldm,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),}, - {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,218}, - + {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,82}, /* 0001 1100 ssN0 0001 0000 dddd 0000 imm4m1 *** ldm rd,@rs,n */ { #ifdef NICENAMES -"ldm rd,@rs,n",16,11, -0x00, +"ldm rd,@rs,n",16,11,0x00, #endif "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),}, - {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,219}, - + {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,82}, /* 0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src(rs),n */ { #ifdef NICENAMES -"ldm rd,address_src(rs),n",16,15, -0x00, +"ldm rd,address_src(rs),n",16,15,0x00, #endif "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),}, - {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,220}, - + {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,82}, /* 0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src,n */ { #ifdef NICENAMES -"ldm rd,address_src,n",16,14, -0x00, +"ldm rd,address_src,n",16,14,0x00, #endif "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),CLASS_IMM + (ARG_IMM4M1),}, - {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,221}, - + {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,82}, /* 0011 1001 ssN0 0000 *** ldps @rs */ { #ifdef NICENAMES -"ldps @rs",16,12, -0x3f, +"ldps @rs",16,12,0x3f, #endif "ldps",OPC_ldps,0,{CLASS_IR+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,222}, - + {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,83}, /* 0111 1001 0000 0000 address_src *** ldps address_src */ { #ifdef NICENAMES -"ldps address_src",16,16, -0x3f, +"ldps address_src",16,16,0x3f, #endif "ldps",OPC_ldps,0,{CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,223}, - + {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,83}, /* 0111 1001 ssN0 0000 address_src *** ldps address_src(rs) */ { #ifdef NICENAMES -"ldps address_src(rs)",16,17, -0x3f, +"ldps address_src(rs)",16,17,0x3f, #endif "ldps",OPC_ldps,0,{CLASS_X+(ARG_RS),}, - {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,224}, - + {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,83}, /* 0011 0011 0000 ssss disp16 *** ldr disp16,rs */ { #ifdef NICENAMES -"ldr disp16,rs",16,14, -0x00, +"ldr disp16,rs",16,14,0x00, #endif "ldr",OPC_ldr,0,{CLASS_DISP,CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,225}, - + {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,84}, /* 0011 0001 0000 dddd disp16 *** ldr rd,disp16 */ { #ifdef NICENAMES -"ldr rd,disp16",16,14, -0x00, +"ldr rd,disp16",16,14,0x00, #endif "ldr",OPC_ldr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,}, - {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,226}, - + {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,84}, /* 0011 0010 0000 ssss disp16 *** ldrb disp16,rbs */ { #ifdef NICENAMES -"ldrb disp16,rbs",8,14, -0x00, +"ldrb disp16,rbs",8,14,0x00, #endif "ldrb",OPC_ldrb,0,{CLASS_DISP,CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,227}, - + {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,85}, /* 0011 0000 0000 dddd disp16 *** ldrb rbd,disp16 */ { #ifdef NICENAMES -"ldrb rbd,disp16",8,14, -0x00, +"ldrb rbd,disp16",8,14,0x00, #endif "ldrb",OPC_ldrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,}, - {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,228}, - + {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,85}, /* 0011 0111 0000 ssss disp16 *** ldrl disp16,rrs */ { #ifdef NICENAMES -"ldrl disp16,rrs",32,17, -0x00, +"ldrl disp16,rrs",32,17,0x00, #endif "ldrl",OPC_ldrl,0,{CLASS_DISP,CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,229}, - + {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,86}, /* 0011 0101 0000 dddd disp16 *** ldrl rrd,disp16 */ { #ifdef NICENAMES -"ldrl rrd,disp16",32,17, -0x00, +"ldrl rrd,disp16",32,17,0x00, #endif "ldrl",OPC_ldrl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DISP,}, - {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,230}, - + {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,86}, /* 0111 1011 0000 1010 *** mbit */ { #ifdef NICENAMES -"mbit",16,7, -0x38, +"mbit",16,7,0x38, #endif "mbit",OPC_mbit,0,{0}, - {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,231}, - + {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,87}, /* 0111 1011 dddd 1101 *** mreq rd */ { #ifdef NICENAMES -"mreq rd",16,12, -0x18, +"mreq rd",16,12,0x18, #endif "mreq",OPC_mreq,0,{CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,232}, - + {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,88}, /* 0111 1011 0000 1001 *** mres */ { #ifdef NICENAMES -"mres",16,5, -0x00, +"mres",16,5,0x00, #endif "mres",OPC_mres,0,{0}, - {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,233}, - + {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,89}, /* 0111 1011 0000 1000 *** mset */ { #ifdef NICENAMES -"mset",16,5, -0x00, +"mset",16,5,0x00, #endif "mset",OPC_mset,0,{0}, - {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,234}, - + {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,90}, /* 0001 1001 ssN0 dddd *** mult rrd,@rs */ { #ifdef NICENAMES -"mult rrd,@rs",16,70, -0x3c, +"mult rrd,@rs",16,70,0x3c, #endif "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,235}, - + {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,91}, /* 0101 1001 0000 dddd address_src *** mult rrd,address_src */ { #ifdef NICENAMES -"mult rrd,address_src",16,70, -0x3c, +"mult rrd,address_src",16,70,0x3c, #endif "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,236}, - + {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,91}, /* 0101 1001 ssN0 dddd address_src *** mult rrd,address_src(rs) */ { #ifdef NICENAMES -"mult rrd,address_src(rs)",16,70, -0x3c, +"mult rrd,address_src(rs)",16,70,0x3c, #endif "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,237}, - + {CLASS_BIT+5,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,91}, /* 0001 1001 0000 dddd imm16 *** mult rrd,imm16 */ { #ifdef NICENAMES -"mult rrd,imm16",16,70, -0x3c, +"mult rrd,imm16",16,70,0x3c, #endif "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,238}, - + {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,91}, /* 1001 1001 ssss dddd *** mult rrd,rs */ { #ifdef NICENAMES -"mult rrd,rs",16,70, -0x3c, +"mult rrd,rs",16,70,0x3c, #endif "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,239}, - + {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,91}, /* 0001 1000 ssN0 dddd *** multl rqd,@rs */ { #ifdef NICENAMES -"multl rqd,@rs",32,282, -0x3c, +"multl rqd,@rs",32,282,0x3c, #endif "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,240}, - + {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,92}, /* 0101 1000 0000 dddd address_src *** multl rqd,address_src */ { #ifdef NICENAMES -"multl rqd,address_src",32,282, -0x3c, +"multl rqd,address_src",32,282,0x3c, #endif "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,241}, - + {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,92}, /* 0101 1000 ssN0 dddd address_src *** multl rqd,address_src(rs) */ { #ifdef NICENAMES -"multl rqd,address_src(rs)",32,282, -0x3c, +"multl rqd,address_src(rs)",32,282,0x3c, #endif "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,242}, - + {CLASS_BIT+5,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,92}, /* 0001 1000 0000 dddd imm32 *** multl rqd,imm32 */ { #ifdef NICENAMES -"multl rqd,imm32",32,282, -0x3c, +"multl rqd,imm32",32,282,0x3c, #endif "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),}, - {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,243}, - + {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,92}, /* 1001 1000 ssss dddd *** multl rqd,rrs */ { #ifdef NICENAMES -"multl rqd,rrs",32,282, -0x3c, +"multl rqd,rrs",32,282,0x3c, #endif "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,244}, - + {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,92}, /* 0000 1101 ddN0 0010 *** neg @rd */ { #ifdef NICENAMES -"neg @rd",16,12, -0x3c, +"neg @rd",16,12,0x3c, #endif "neg",OPC_neg,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,245}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,93}, /* 0100 1101 0000 0010 address_dst *** neg address_dst */ { #ifdef NICENAMES -"neg address_dst",16,15, -0x3c, +"neg address_dst",16,15,0x3c, #endif "neg",OPC_neg,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,246}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,93}, /* 0100 1101 ddN0 0010 address_dst *** neg address_dst(rd) */ { #ifdef NICENAMES -"neg address_dst(rd)",16,16, -0x3c, +"neg address_dst(rd)",16,16,0x3c, #endif "neg",OPC_neg,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,247}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,93}, /* 1000 1101 dddd 0010 *** neg rd */ { #ifdef NICENAMES -"neg rd",16,7, -0x3c, +"neg rd",16,7,0x3c, #endif "neg",OPC_neg,0,{CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,248}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,93}, /* 0000 1100 ddN0 0010 *** negb @rd */ { #ifdef NICENAMES -"negb @rd",8,12, -0x3c, +"negb @rd",8,12,0x3c, #endif "negb",OPC_negb,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,249}, - + {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,94}, /* 0100 1100 0000 0010 address_dst *** negb address_dst */ { #ifdef NICENAMES -"negb address_dst",8,15, -0x3c, +"negb address_dst",8,15,0x3c, #endif "negb",OPC_negb,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,250}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,94}, /* 0100 1100 ddN0 0010 address_dst *** negb address_dst(rd) */ { #ifdef NICENAMES -"negb address_dst(rd)",8,16, -0x3c, +"negb address_dst(rd)",8,16,0x3c, #endif "negb",OPC_negb,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,251}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,94}, /* 1000 1100 dddd 0010 *** negb rbd */ { #ifdef NICENAMES -"negb rbd",8,7, -0x3c, +"negb rbd",8,7,0x3c, #endif "negb",OPC_negb,0,{CLASS_REG_BYTE+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,252}, - + {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,94}, /* 1000 1101 0000 0111 *** nop */ { #ifdef NICENAMES -"nop",16,7, -0x00, +"nop",16,7,0x00, #endif "nop",OPC_nop,0,{0}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,253}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,95}, /* 0000 0101 ssN0 dddd *** or rd,@rs */ { #ifdef NICENAMES -"or rd,@rs",16,7, -0x38, +"or rd,@rs",16,7,0x38, #endif "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,254}, - + {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96}, /* 0100 0101 0000 dddd address_src *** or rd,address_src */ { #ifdef NICENAMES -"or rd,address_src",16,9, -0x38, +"or rd,address_src",16,9,0x38, #endif "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,255}, - + {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96}, /* 0100 0101 ssN0 dddd address_src *** or rd,address_src(rs) */ { #ifdef NICENAMES -"or rd,address_src(rs)",16,10, -0x38, +"or rd,address_src(rs)",16,10,0x38, #endif "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,256}, - + {CLASS_BIT+4,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96}, /* 0000 0101 0000 dddd imm16 *** or rd,imm16 */ { #ifdef NICENAMES -"or rd,imm16",16,7, -0x38, +"or rd,imm16",16,7,0x38, #endif "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,257}, - + {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,96}, /* 1000 0101 ssss dddd *** or rd,rs */ { #ifdef NICENAMES -"or rd,rs",16,4, -0x38, +"or rd,rs",16,4,0x38, #endif "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,258}, - + {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96}, /* 0000 0100 ssN0 dddd *** orb rbd,@rs */ { #ifdef NICENAMES -"orb rbd,@rs",8,7, -0x3c, +"orb rbd,@rs",8,7,0x3c, #endif "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,259}, - + {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97}, /* 0100 0100 0000 dddd address_src *** orb rbd,address_src */ { #ifdef NICENAMES -"orb rbd,address_src",8,9, -0x3c, +"orb rbd,address_src",8,9,0x3c, #endif "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,260}, - + {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97}, /* 0100 0100 ssN0 dddd address_src *** orb rbd,address_src(rs) */ { #ifdef NICENAMES -"orb rbd,address_src(rs)",8,10, -0x3c, +"orb rbd,address_src(rs)",8,10,0x3c, #endif "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,261}, - + {CLASS_BIT+4,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97}, /* 0000 0100 0000 dddd imm8 imm8 *** orb rbd,imm8 */ { #ifdef NICENAMES -"orb rbd,imm8",8,7, -0x3c, +"orb rbd,imm8",8,7,0x3c, #endif "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,262}, - + {CLASS_BIT+0,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,97}, /* 1000 0100 ssss dddd *** orb rbd,rbs */ { #ifdef NICENAMES -"orb rbd,rbs",8,4, -0x3c, +"orb rbd,rbs",8,4,0x3c, #endif "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,263}, - + {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97}, /* 0011 1111 ddN0 ssss *** out @rd,rs */ { #ifdef NICENAMES -"out @rd,rs",16,0, -0x04, +"out @rd,rs",16,0,0x04, #endif "out",OPC_out,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,264}, - + {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,98}, /* 0011 1011 ssss 0110 imm16 *** out imm16,rs */ { #ifdef NICENAMES -"out imm16,rs",16,0, -0x04, +"out imm16,rs",16,0,0x04, #endif "out",OPC_out,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,265}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,98}, /* 0011 1110 ddN0 ssss *** outb @rd,rbs */ { #ifdef NICENAMES -"outb @rd,rbs",8,0, -0x04, +"outb @rd,rbs",8,0,0x04, #endif "outb",OPC_outb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,266}, - + {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,99}, /* 0011 1010 ssss 0110 imm16 *** outb imm16,rbs */ { #ifdef NICENAMES -"outb imm16,rbs",8,0, -0x04, +"outb imm16,rbs",8,0,0x04, #endif "outb",OPC_outb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,267}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,99}, /* 0011 1011 ssN0 1010 0000 aaaa ddN0 1000 *** outd @rd,@rs,ra */ { #ifdef NICENAMES -"outd @rd,@rs,ra",16,0, -0x04, +"outd @rd,@rs,ra",16,0,0x04, #endif "outd",OPC_outd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,268}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,100}, /* 0011 1010 ssN0 1010 0000 aaaa ddN0 1000 *** outdb @rd,@rs,rba */ { #ifdef NICENAMES -"outdb @rd,@rs,rba",16,0, -0x04, +"outdb @rd,@rs,rba",16,0,0x04, #endif "outdb",OPC_outdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,269}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,101}, /* 0011 1011 ssN0 0010 0000 aaaa ddN0 1000 *** outi @rd,@rs,ra */ { #ifdef NICENAMES -"outi @rd,@rs,ra",16,0, -0x04, +"outi @rd,@rs,ra",16,0,0x04, #endif "outi",OPC_outi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,270}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,102}, /* 0011 1010 ssN0 0010 0000 aaaa ddN0 1000 *** outib @rd,@rs,ra */ { #ifdef NICENAMES -"outib @rd,@rs,ra",16,0, -0x04, +"outib @rd,@rs,ra",16,0,0x04, #endif "outib",OPC_outib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,271}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,103}, /* 0011 1010 ssN0 0010 0000 aaaa ddN0 0000 *** outibr @rd,@rs,ra */ { #ifdef NICENAMES -"outibr @rd,@rs,ra",16,0, -0x04, +"outibr @rd,@rs,ra",16,0,0x04, #endif "outibr",OPC_outibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,272}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,104}, /* 0001 0111 ssN0 ddN0 *** pop @rd,@rs */ { #ifdef NICENAMES -"pop @rd,@rs",16,12, -0x00, +"pop @rd,@rs",16,12,0x00, #endif "pop",OPC_pop,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,273}, - + {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,105}, /* 0101 0111 ssN0 ddN0 address_dst *** pop address_dst(rd),@rs */ { #ifdef NICENAMES -"pop address_dst(rd),@rs",16,16, -0x00, +"pop address_dst(rd),@rs",16,16,0x00, #endif "pop",OPC_pop,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,274}, - + {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,105}, /* 0101 0111 ssN0 0000 address_dst *** pop address_dst,@rs */ { #ifdef NICENAMES -"pop address_dst,@rs",16,16, -0x00, +"pop address_dst,@rs",16,16,0x00, #endif "pop",OPC_pop,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,275}, - + {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,105}, /* 1001 0111 ssN0 dddd *** pop rd,@rs */ { #ifdef NICENAMES -"pop rd,@rs",16,8, -0x00, +"pop rd,@rs",16,8,0x00, #endif "pop",OPC_pop,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,276}, - + {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,105}, /* 0001 0101 ssN0 ddN0 *** popl @rd,@rs */ { #ifdef NICENAMES -"popl @rd,@rs",32,19, -0x00, +"popl @rd,@rs",32,19,0x00, #endif "popl",OPC_popl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,277}, - + {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,106}, /* 0101 0101 ssN0 ddN0 address_dst *** popl address_dst(rd),@rs */ { #ifdef NICENAMES -"popl address_dst(rd),@rs",32,23, -0x00, +"popl address_dst(rd),@rs",32,23,0x00, #endif "popl",OPC_popl,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,278}, - + {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,106}, /* 0101 0101 ssN0 0000 address_dst *** popl address_dst,@rs */ { #ifdef NICENAMES -"popl address_dst,@rs",32,23, -0x00, +"popl address_dst,@rs",32,23,0x00, #endif "popl",OPC_popl,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,279}, - + {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,106}, /* 1001 0101 ssN0 dddd *** popl rrd,@rs */ { #ifdef NICENAMES -"popl rrd,@rs",32,12, -0x00, +"popl rrd,@rs",32,12,0x00, #endif "popl",OPC_popl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,280}, - + {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,106}, /* 0001 0011 ddN0 ssN0 *** push @rd,@rs */ { #ifdef NICENAMES -"push @rd,@rs",16,13, -0x00, +"push @rd,@rs",16,13,0x00, #endif "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,281}, - + {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,107}, /* 0101 0011 ddN0 0000 address_src *** push @rd,address_src */ { #ifdef NICENAMES -"push @rd,address_src",16,14, -0x00, +"push @rd,address_src",16,14,0x00, #endif "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,282}, - + {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,107}, /* 0101 0011 ddN0 ssN0 address_src *** push @rd,address_src(rs) */ { #ifdef NICENAMES -"push @rd,address_src(rs)",16,14, -0x00, +"push @rd,address_src(rs)",16,14,0x00, #endif "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,283}, - + {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,107}, /* 0000 1101 ddN0 1001 imm16 *** push @rd,imm16 */ { #ifdef NICENAMES -"push @rd,imm16",16,12, -0x00, +"push @rd,imm16",16,12,0x00, #endif "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,284}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,107}, /* 1001 0011 ddN0 ssss *** push @rd,rs */ { #ifdef NICENAMES -"push @rd,rs",16,9, -0x00, +"push @rd,rs",16,9,0x00, #endif "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,285}, - + {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,107}, /* 0001 0001 ddN0 ssN0 *** pushl @rd,@rs */ { #ifdef NICENAMES -"pushl @rd,@rs",32,20, -0x00, +"pushl @rd,@rs",32,20,0x00, #endif "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,286}, - + {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,108}, /* 0101 0001 ddN0 0000 address_src *** pushl @rd,address_src */ { #ifdef NICENAMES -"pushl @rd,address_src",32,21, -0x00, +"pushl @rd,address_src",32,21,0x00, #endif "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,287}, - + {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108}, /* 0101 0001 ddN0 ssN0 address_src *** pushl @rd,address_src(rs) */ { #ifdef NICENAMES -"pushl @rd,address_src(rs)",32,21, -0x00, +"pushl @rd,address_src(rs)",32,21,0x00, #endif "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,288}, - + {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108}, /* 1001 0001 ddN0 ssss *** pushl @rd,rrs */ { #ifdef NICENAMES -"pushl @rd,rrs",32,12, -0x00, +"pushl @rd,rrs",32,12,0x00, #endif "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,289}, - + {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,108}, /* 0010 0011 ddN0 imm4 *** res @rd,imm4 */ { #ifdef NICENAMES -"res @rd,imm4",16,11, -0x00, +"res @rd,imm4",16,11,0x00, #endif "res",OPC_res,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,290}, - + {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,109}, /* 0110 0011 ddN0 imm4 address_dst *** res address_dst(rd),imm4 */ { #ifdef NICENAMES -"res address_dst(rd),imm4",16,14, -0x00, +"res address_dst(rd),imm4",16,14,0x00, #endif "res",OPC_res,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,291}, - + {CLASS_BIT+6,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,109}, /* 0110 0011 0000 imm4 address_dst *** res address_dst,imm4 */ { #ifdef NICENAMES -"res address_dst,imm4",16,13, -0x00, +"res address_dst,imm4",16,13,0x00, #endif "res",OPC_res,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,292}, - + {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,109}, /* 1010 0011 dddd imm4 *** res rd,imm4 */ { #ifdef NICENAMES -"res rd,imm4",16,4, -0x00, +"res rd,imm4",16,4,0x00, #endif "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,293}, - + {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,109}, /* 0010 0011 0000 ssss 0000 dddd 0000 0000 *** res rd,rs */ { #ifdef NICENAMES -"res rd,rs",16,10, -0x00, +"res rd,rs",16,10,0x00, #endif "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,294}, - + {CLASS_BIT+2,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,109}, /* 0010 0010 ddN0 imm4 *** resb @rd,imm4 */ { #ifdef NICENAMES -"resb @rd,imm4",8,11, -0x00, +"resb @rd,imm4",8,11,0x00, #endif "resb",OPC_resb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,295}, - + {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,110}, /* 0110 0010 ddN0 imm4 address_dst *** resb address_dst(rd),imm4 */ { #ifdef NICENAMES -"resb address_dst(rd),imm4",8,14, -0x00, +"resb address_dst(rd),imm4",8,14,0x00, #endif "resb",OPC_resb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,296}, - + {CLASS_BIT+6,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,110}, /* 0110 0010 0000 imm4 address_dst *** resb address_dst,imm4 */ { #ifdef NICENAMES -"resb address_dst,imm4",8,13, -0x00, +"resb address_dst,imm4",8,13,0x00, #endif "resb",OPC_resb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,297}, - + {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,110}, /* 1010 0010 dddd imm4 *** resb rbd,imm4 */ { #ifdef NICENAMES -"resb rbd,imm4",8,4, -0x00, +"resb rbd,imm4",8,4,0x00, #endif "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,298}, - + {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,110}, /* 0010 0010 0000 ssss 0000 dddd 0000 0000 *** resb rbd,rs */ { #ifdef NICENAMES -"resb rbd,rs",8,10, -0x00, +"resb rbd,rs",8,10,0x00, #endif "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,299}, - + {CLASS_BIT+2,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,110}, /* 1000 1101 flags 0011 *** resflg flags */ { #ifdef NICENAMES -"resflg flags",16,7, -0x3c, +"resflg flags",16,7,0x3c, #endif "resflg",OPC_resflg,0,{CLASS_FLAGS,}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,300}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,111}, /* 1001 1110 0000 cccc *** ret cc */ { #ifdef NICENAMES -"ret cc",16,10, -0x00, +"ret cc",16,10,0x00, #endif "ret",OPC_ret,0,{CLASS_CC,}, - {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,301}, - + {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,112}, /* 1011 0011 dddd 00I0 *** rl rd,imm1or2 */ { #ifdef NICENAMES -"rl rd,imm1or2",16,6, -0x3c, +"rl rd,imm1or2",16,6,0x3c, #endif "rl",OPC_rl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,302}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,113}, /* 1011 0010 dddd 00I0 *** rlb rbd,imm1or2 */ { #ifdef NICENAMES -"rlb rbd,imm1or2",8,6, -0x3c, +"rlb rbd,imm1or2",8,6,0x3c, #endif "rlb",OPC_rlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,303}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,114}, /* 1011 0011 dddd 10I0 *** rlc rd,imm1or2 */ { #ifdef NICENAMES -"rlc rd,imm1or2",16,6, -0x3c, +"rlc rd,imm1or2",16,6,0x3c, #endif "rlc",OPC_rlc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,304}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,115}, /* 1011 0010 dddd 10I0 *** rlcb rbd,imm1or2 */ { #ifdef NICENAMES -"rlcb rbd,imm1or2",8,9, -0x10, +"rlcb rbd,imm1or2",8,9,0x10, #endif "rlcb",OPC_rlcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,305}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,116}, /* 1011 1110 aaaa bbbb *** rldb rbb,rba */ { #ifdef NICENAMES -"rldb rbb,rba",8,9, -0x10, +"rldb rbb,rba",8,9,0x10, #endif "rldb",OPC_rldb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,306}, - + {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,117}, /* 1011 0011 dddd 01I0 *** rr rd,imm1or2 */ { #ifdef NICENAMES -"rr rd,imm1or2",16,6, -0x3c, +"rr rd,imm1or2",16,6,0x3c, #endif "rr",OPC_rr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,307}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,118}, /* 1011 0010 dddd 01I0 *** rrb rbd,imm1or2 */ { #ifdef NICENAMES -"rrb rbd,imm1or2",8,6, -0x3c, +"rrb rbd,imm1or2",8,6,0x3c, #endif "rrb",OPC_rrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,308}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,119}, /* 1011 0011 dddd 11I0 *** rrc rd,imm1or2 */ { #ifdef NICENAMES -"rrc rd,imm1or2",16,6, -0x3c, +"rrc rd,imm1or2",16,6,0x3c, #endif "rrc",OPC_rrc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,309}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,120}, /* 1011 0010 dddd 11I0 *** rrcb rbd,imm1or2 */ { #ifdef NICENAMES -"rrcb rbd,imm1or2",8,9, -0x10, +"rrcb rbd,imm1or2",8,9,0x10, #endif "rrcb",OPC_rrcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,310}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,121}, /* 1011 1100 aaaa bbbb *** rrdb rbb,rba */ { #ifdef NICENAMES -"rrdb rbb,rba",8,9, -0x10, +"rrdb rbb,rba",8,9,0x10, #endif "rrdb",OPC_rrdb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,311}, - + {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,122}, /* 0011 0110 imm8 *** rsvd36 */ { #ifdef NICENAMES -"rsvd36",8,10, -0x00, +"rsvd36",8,10,0x00, #endif "rsvd36",OPC_rsvd36,0,{0}, - {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,312}, - + {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,123}, /* 0011 1000 imm8 *** rsvd38 */ { #ifdef NICENAMES -"rsvd38",8,10, -0x00, +"rsvd38",8,10,0x00, #endif "rsvd38",OPC_rsvd38,0,{0}, - {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,313}, - + {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,124}, /* 0111 1000 imm8 *** rsvd78 */ { #ifdef NICENAMES -"rsvd78",8,10, -0x00, +"rsvd78",8,10,0x00, #endif "rsvd78",OPC_rsvd78,0,{0}, - {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,314}, - + {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,125}, /* 0111 1110 imm8 *** rsvd7e */ { #ifdef NICENAMES -"rsvd7e",8,10, -0x00, +"rsvd7e",8,10,0x00, #endif "rsvd7e",OPC_rsvd7e,0,{0}, - {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,315}, - + {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,126}, /* 1001 1101 imm8 *** rsvd9d */ { #ifdef NICENAMES -"rsvd9d",8,10, -0x00, +"rsvd9d",8,10,0x00, #endif "rsvd9d",OPC_rsvd9d,0,{0}, - {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,316}, - + {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,127}, /* 1001 1111 imm8 *** rsvd9f */ { #ifdef NICENAMES -"rsvd9f",8,10, -0x00, +"rsvd9f",8,10,0x00, #endif "rsvd9f",OPC_rsvd9f,0,{0}, - {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,317}, - + {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,128}, /* 1011 1001 imm8 *** rsvdb9 */ { #ifdef NICENAMES -"rsvdb9",8,10, -0x00, +"rsvdb9",8,10,0x00, #endif "rsvdb9",OPC_rsvdb9,0,{0}, - {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,318}, - + {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,129}, /* 1011 1111 imm8 *** rsvdbf */ { #ifdef NICENAMES -"rsvdbf",8,10, -0x00, +"rsvdbf",8,10,0x00, #endif "rsvdbf",OPC_rsvdbf,0,{0}, - {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,319}, - + {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,130}, /* 1011 0111 ssss dddd *** sbc rd,rs */ { #ifdef NICENAMES -"sbc rd,rs",16,5, -0x3c, +"sbc rd,rs",16,5,0x3c, #endif "sbc",OPC_sbc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,320}, - + {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,131}, /* 1011 0110 ssss dddd *** sbcb rbd,rbs */ { #ifdef NICENAMES -"sbcb rbd,rbs",8,5, -0x3f, +"sbcb rbd,rbs",8,5,0x3f, #endif "sbcb",OPC_sbcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,321}, - + {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,132}, /* 0111 1111 imm8 *** sc imm8 */ { #ifdef NICENAMES -"sc imm8",8,33, -0x3f, +"sc imm8",8,33,0x3f, #endif "sc",OPC_sc,0,{CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,322}, - + {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,133}, /* 1011 0011 dddd 1011 0000 ssss 0000 0000 *** sda rd,rs */ { #ifdef NICENAMES -"sda rd,rs",16,15, -0x3c, +"sda rd,rs",16,15,0x3c, #endif "sda",OPC_sda,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,323}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,134}, /* 1011 0010 dddd 1011 0000 ssss 0000 0000 *** sdab rbd,rs */ { #ifdef NICENAMES -"sdab rbd,rs",8,15, -0x3c, +"sdab rbd,rs",8,15,0x3c, #endif "sdab",OPC_sdab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,324}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,135}, /* 1011 0011 dddd 1111 0000 ssss 0000 0000 *** sdal rrd,rs */ { #ifdef NICENAMES -"sdal rrd,rs",32,15, -0x3c, +"sdal rrd,rs",32,15,0x3c, #endif "sdal",OPC_sdal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,325}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,136}, /* 1011 0011 dddd 0011 0000 ssss 0000 0000 *** sdl rd,rs */ { #ifdef NICENAMES -"sdl rd,rs",16,15, -0x38, +"sdl rd,rs",16,15,0x38, #endif "sdl",OPC_sdl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,326}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,137}, /* 1011 0010 dddd 0011 0000 ssss 0000 0000 *** sdlb rbd,rs */ { #ifdef NICENAMES -"sdlb rbd,rs",8,15, -0x38, +"sdlb rbd,rs",8,15,0x38, #endif "sdlb",OPC_sdlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,327}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,138}, /* 1011 0011 dddd 0111 0000 ssss 0000 0000 *** sdll rrd,rs */ { #ifdef NICENAMES -"sdll rrd,rs",32,15, -0x38, +"sdll rrd,rs",32,15,0x38, #endif "sdll",OPC_sdll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,328}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,139}, /* 0010 0101 ddN0 imm4 *** set @rd,imm4 */ { #ifdef NICENAMES -"set @rd,imm4",16,11, -0x00, +"set @rd,imm4",16,11,0x00, #endif "set",OPC_set,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,329}, - + {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,140}, /* 0110 0101 ddN0 imm4 address_dst *** set address_dst(rd),imm4 */ { #ifdef NICENAMES -"set address_dst(rd),imm4",16,14, -0x00, +"set address_dst(rd),imm4",16,14,0x00, #endif "set",OPC_set,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,330}, - + {CLASS_BIT+6,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140}, /* 0110 0101 0000 imm4 address_dst *** set address_dst,imm4 */ { #ifdef NICENAMES -"set address_dst,imm4",16,13, -0x00, +"set address_dst,imm4",16,13,0x00, #endif "set",OPC_set,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,331}, - + {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140}, /* 1010 0101 dddd imm4 *** set rd,imm4 */ { #ifdef NICENAMES -"set rd,imm4",16,4, -0x00, +"set rd,imm4",16,4,0x00, #endif "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,332}, - + {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,140}, /* 0010 0101 0000 ssss 0000 dddd 0000 0000 *** set rd,rs */ { #ifdef NICENAMES -"set rd,rs",16,10, -0x00, +"set rd,rs",16,10,0x00, #endif "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,333}, - + {CLASS_BIT+2,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,140}, /* 0010 0100 ddN0 imm4 *** setb @rd,imm4 */ { #ifdef NICENAMES -"setb @rd,imm4",8,11, -0x00, +"setb @rd,imm4",8,11,0x00, #endif "setb",OPC_setb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,334}, - + {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,141}, /* 0110 0100 ddN0 imm4 address_dst *** setb address_dst(rd),imm4 */ { #ifdef NICENAMES -"setb address_dst(rd),imm4",8,14, -0x00, +"setb address_dst(rd),imm4",8,14,0x00, #endif "setb",OPC_setb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,335}, - + {CLASS_BIT+6,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141}, /* 0110 0100 0000 imm4 address_dst *** setb address_dst,imm4 */ { #ifdef NICENAMES -"setb address_dst,imm4",8,13, -0x00, +"setb address_dst,imm4",8,13,0x00, #endif "setb",OPC_setb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,336}, - + {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141}, /* 1010 0100 dddd imm4 *** setb rbd,imm4 */ { #ifdef NICENAMES -"setb rbd,imm4",8,4, -0x00, +"setb rbd,imm4",8,4,0x00, #endif "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,337}, - + {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,141}, /* 0010 0100 0000 ssss 0000 dddd 0000 0000 *** setb rbd,rs */ { #ifdef NICENAMES -"setb rbd,rs",8,10, -0x00, +"setb rbd,rs",8,10,0x00, #endif "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+2,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,338}, - + {CLASS_BIT+2,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,141}, /* 1000 1101 flags 0001 *** setflg flags */ { #ifdef NICENAMES -"setflg flags",16,7, -0x3c, +"setflg flags",16,7,0x3c, #endif "setflg",OPC_setflg,0,{CLASS_FLAGS,}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,339}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,142}, /* 0011 1011 dddd 0101 imm16 *** sin rd,imm16 */ { #ifdef NICENAMES -"sin rd,imm16",8,0, -0x00, +"sin rd,imm16",8,0,0x00, #endif "sin",OPC_sin,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,340}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,143}, /* 0011 1010 dddd 0101 imm16 *** sinb rbd,imm16 */ { #ifdef NICENAMES -"sinb rbd,imm16",8,0, -0x00, +"sinb rbd,imm16",8,0,0x00, #endif "sinb",OPC_sinb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,341}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,144}, /* 0011 1011 ssN0 1000 0001 aaaa ddN0 1000 *** sind @rd,@rs,ra */ { #ifdef NICENAMES -"sind @rd,@rs,ra",16,0, -0x00, +"sind @rd,@rs,ra",16,0,0x00, #endif "sind",OPC_sind,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,342}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,145}, /* 0011 1010 ssN0 1000 0001 aaaa ddN0 1000 *** sindb @rd,@rs,rba */ { #ifdef NICENAMES -"sindb @rd,@rs,rba",8,0, -0x00, +"sindb @rd,@rs,rba",8,0,0x00, #endif "sindb",OPC_sindb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,343}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,146}, /* 0011 1010 ssN0 0001 0000 aaaa ddN0 1000 *** sinib @rd,@rs,ra */ { #ifdef NICENAMES -"sinib @rd,@rs,ra",8,0, -0x00, +"sinib @rd,@rs,ra",8,0,0x00, #endif "sinib",OPC_sinib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,344}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,147}, /* 0011 1010 ssN0 0001 0000 aaaa ddN0 0000 *** sinibr @rd,@rs,ra */ { #ifdef NICENAMES -"sinibr @rd,@rs,ra",16,0, -0x00, +"sinibr @rd,@rs,ra",16,0,0x00, #endif "sinibr",OPC_sinibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,345}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,148}, /* 1011 0011 dddd 1001 0000 0000 imm8 *** sla rd,imm8 */ { #ifdef NICENAMES -"sla rd,imm8",16,13, -0x3c, +"sla rd,imm8",16,13,0x3c, #endif "sla",OPC_sla,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,346}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,149}, /* 1011 0010 dddd 1001 iiii iiii 0000 imm4 *** slab rbd,imm4 */ { #ifdef NICENAMES -"slab rbd,imm4",8,13, -0x3c, +"slab rbd,imm4",8,13,0x3c, #endif "slab",OPC_slab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,347}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,150}, /* 1011 0011 dddd 1101 0000 0000 imm8 *** slal rrd,imm8 */ { #ifdef NICENAMES -"slal rrd,imm8",32,13, -0x3c, +"slal rrd,imm8",32,13,0x3c, #endif "slal",OPC_slal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,348}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,151}, /* 1011 0011 dddd 0001 0000 0000 imm8 *** sll rd,imm8 */ { #ifdef NICENAMES -"sll rd,imm8",16,13, -0x38, +"sll rd,imm8",16,13,0x38, #endif "sll",OPC_sll,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,349}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,152}, /* 1011 0010 dddd 0001 iiii iiii 0000 imm4 *** sllb rbd,imm4 */ { #ifdef NICENAMES -"sllb rbd,imm4",8,13, -0x38, +"sllb rbd,imm4",8,13,0x38, #endif "sllb",OPC_sllb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,350}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,153}, /* 1011 0011 dddd 0101 0000 0000 imm8 *** slll rrd,imm8 */ { #ifdef NICENAMES -"slll rrd,imm8",32,13, -0x38, +"slll rrd,imm8",32,13,0x38, #endif "slll",OPC_slll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,351}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,154}, /* 0011 1011 ssss 0111 imm16 *** sout imm16,rs */ { #ifdef NICENAMES -"sout imm16,rs",16,0, -0x00, +"sout imm16,rs",16,0,0x00, #endif "sout",OPC_sout,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,352}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,155}, /* 0011 1010 ssss 0111 imm16 *** soutb imm16,rbs */ { #ifdef NICENAMES -"soutb imm16,rbs",8,0, -0x00, +"soutb imm16,rbs",8,0,0x00, #endif "soutb",OPC_soutb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,353}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,156}, /* 0011 1011 ssN0 1011 0000 aaaa ddN0 1000 *** soutd @rd,@rs,ra */ { #ifdef NICENAMES -"soutd @rd,@rs,ra",16,0, -0x00, +"soutd @rd,@rs,ra",16,0,0x00, #endif "soutd",OPC_soutd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,354}, - + {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,157}, /* 0011 1010 ssN0 1011 0000 aaaa ddN0 1000 *** soutdb @rd,@rs,rba */ { #ifdef NICENAMES -"soutdb @rd,@rs,rba",8,0, -0x00, +"soutdb @rd,@rs,rba",8,0,0x00, #endif "soutdb",OPC_soutdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,355}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,158}, /* 0011 1010 ssN0 0011 0000 aaaa ddN0 1000 *** soutib @rd,@rs,ra */ { #ifdef NICENAMES -"soutib @rd,@rs,ra",8,0, -0x00, +"soutib @rd,@rs,ra",8,0,0x00, #endif "soutib",OPC_soutib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,356}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,159}, /* 0011 1010 ssN0 0011 0000 aaaa ddN0 0000 *** soutibr @rd,@rs,ra */ { #ifdef NICENAMES -"soutibr @rd,@rs,ra",16,0, -0x00, +"soutibr @rd,@rs,ra",16,0,0x00, #endif "soutibr",OPC_soutibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),}, - {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,357}, - + {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,160}, /* 1011 0011 dddd 1001 1111 1111 nim8 *** sra rd,imm8 */ { #ifdef NICENAMES -"sra rd,imm8",16,13, -0x3c, +"sra rd,imm8",16,13,0x3c, #endif "sra",OPC_sra,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,358}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,161}, /* 1011 0010 dddd 1001 iiii iiii 1111 nim4 *** srab rbd,imm4 */ { #ifdef NICENAMES -"srab rbd,imm4",8,13, -0x3c, +"srab rbd,imm4",8,13,0x3c, #endif "srab",OPC_srab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,359}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,162}, /* 1011 0011 dddd 1101 1111 1111 nim8 *** sral rrd,imm8 */ { #ifdef NICENAMES -"sral rrd,imm8",32,13, -0x3c, +"sral rrd,imm8",32,13,0x3c, #endif "sral",OPC_sral,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,360}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,163}, /* 1011 0011 dddd 0001 1111 1111 nim8 *** srl rd,imm8 */ { #ifdef NICENAMES -"srl rd,imm8",16,13, -0x3c, +"srl rd,imm8",16,13,0x3c, #endif "srl",OPC_srl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,361}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,164}, /* 1011 0010 dddd 0001 iiii iiii 1111 nim4 *** srlb rbd,imm4 */ { #ifdef NICENAMES -"srlb rbd,imm4",8,13, -0x3c, +"srlb rbd,imm4",8,13,0x3c, #endif "srlb",OPC_srlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),}, - {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,362}, - + {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,165}, /* 1011 0011 dddd 0101 1111 1111 nim8 *** srll rrd,imm8 */ { #ifdef NICENAMES -"srll rrd,imm8",32,13, -0x3c, +"srll rrd,imm8",32,13,0x3c, #endif "srll",OPC_srll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,363}, - + {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,166}, /* 0000 0011 ssN0 dddd *** sub rd,@rs */ { #ifdef NICENAMES -"sub rd,@rs",16,7, -0x3c, +"sub rd,@rs",16,7,0x3c, #endif "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,364}, - + {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,167}, /* 0100 0011 0000 dddd address_src *** sub rd,address_src */ { #ifdef NICENAMES -"sub rd,address_src",16,9, -0x3c, +"sub rd,address_src",16,9,0x3c, #endif "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,365}, - + {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,167}, /* 0100 0011 ssN0 dddd address_src *** sub rd,address_src(rs) */ { #ifdef NICENAMES -"sub rd,address_src(rs)",16,10, -0x3c, +"sub rd,address_src(rs)",16,10,0x3c, #endif "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,366}, - + {CLASS_BIT+4,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,167}, /* 0000 0011 0000 dddd imm16 *** sub rd,imm16 */ { #ifdef NICENAMES -"sub rd,imm16",16,7, -0x3c, +"sub rd,imm16",16,7,0x3c, #endif "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,367}, - + {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,167}, /* 1000 0011 ssss dddd *** sub rd,rs */ { #ifdef NICENAMES -"sub rd,rs",16,4, -0x3c, +"sub rd,rs",16,4,0x3c, #endif "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,368}, - + {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,167}, /* 0000 0010 ssN0 dddd *** subb rbd,@rs */ { #ifdef NICENAMES -"subb rbd,@rs",8,7, -0x3f, +"subb rbd,@rs",8,7,0x3f, #endif "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,369}, - + {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168}, /* 0100 0010 0000 dddd address_src *** subb rbd,address_src */ { #ifdef NICENAMES -"subb rbd,address_src",8,9, -0x3f, +"subb rbd,address_src",8,9,0x3f, #endif "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,370}, - + {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,168}, /* 0100 0010 ssN0 dddd address_src *** subb rbd,address_src(rs) */ { #ifdef NICENAMES -"subb rbd,address_src(rs)",8,10, -0x3f, +"subb rbd,address_src(rs)",8,10,0x3f, #endif "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,371}, - + {CLASS_BIT+4,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,168}, /* 0000 0010 0000 dddd imm8 imm8 *** subb rbd,imm8 */ { #ifdef NICENAMES -"subb rbd,imm8",8,7, -0x3f, +"subb rbd,imm8",8,7,0x3f, #endif "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,372}, - + {CLASS_BIT+0,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,168}, /* 1000 0010 ssss dddd *** subb rbd,rbs */ { #ifdef NICENAMES -"subb rbd,rbs",8,4, -0x3f, +"subb rbd,rbs",8,4,0x3f, #endif "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,373}, - + {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168}, /* 0001 0010 ssN0 dddd *** subl rrd,@rs */ { #ifdef NICENAMES -"subl rrd,@rs",32,14, -0x3c, +"subl rrd,@rs",32,14,0x3c, #endif "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,374}, - + {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,169}, /* 0101 0010 0000 dddd address_src *** subl rrd,address_src */ { #ifdef NICENAMES -"subl rrd,address_src",32,15, -0x3c, +"subl rrd,address_src",32,15,0x3c, #endif "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,375}, - + {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,169}, /* 0101 0010 ssN0 dddd address_src *** subl rrd,address_src(rs) */ { #ifdef NICENAMES -"subl rrd,address_src(rs)",32,16, -0x3c, +"subl rrd,address_src(rs)",32,16,0x3c, #endif "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+5,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,376}, - + {CLASS_BIT+5,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,169}, /* 0001 0010 0000 dddd imm32 *** subl rrd,imm32 */ { #ifdef NICENAMES -"subl rrd,imm32",32,14, -0x3c, +"subl rrd,imm32",32,14,0x3c, #endif "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),}, - {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,377}, - + {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,169}, /* 1001 0010 ssss dddd *** subl rrd,rrs */ { #ifdef NICENAMES -"subl rrd,rrs",32,8, -0x3c, +"subl rrd,rrs",32,8,0x3c, #endif "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),}, - {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,378}, - + {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,169}, /* 1010 1111 dddd cccc *** tcc cc,rd */ { #ifdef NICENAMES -"tcc cc,rd",16,5, -0x00, +"tcc cc,rd",16,5,0x00, #endif "tcc",OPC_tcc,0,{CLASS_CC,CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,379}, - + {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,170}, /* 1010 1110 dddd cccc *** tccb cc,rbd */ { #ifdef NICENAMES -"tccb cc,rbd",8,5, -0x00, +"tccb cc,rbd",8,5,0x00, #endif "tccb",OPC_tccb,0,{CLASS_CC,CLASS_REG_BYTE+(ARG_RD),}, - {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,380}, - + {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,171}, /* 0000 1101 ddN0 0100 *** test @rd */ { #ifdef NICENAMES -"test @rd",16,8, -0x18, +"test @rd",16,8,0x18, #endif "test",OPC_test,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,381}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,172}, /* 0100 1101 0000 0100 address_dst *** test address_dst */ { #ifdef NICENAMES -"test address_dst",16,11, -0x00, +"test address_dst",16,11,0x00, #endif "test",OPC_test,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,382}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,172}, /* 0100 1101 ddN0 0100 address_dst *** test address_dst(rd) */ { #ifdef NICENAMES -"test address_dst(rd)",16,12, -0x00, +"test address_dst(rd)",16,12,0x00, #endif "test",OPC_test,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,383}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,172}, /* 1000 1101 dddd 0100 *** test rd */ { #ifdef NICENAMES -"test rd",16,7, -0x00, +"test rd",16,7,0x00, #endif "test",OPC_test,0,{CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,384}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,172}, /* 0000 1100 ddN0 0100 *** testb @rd */ { #ifdef NICENAMES -"testb @rd",8,8, -0x1c, +"testb @rd",8,8,0x1c, #endif "testb",OPC_testb,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,385}, - + {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,173}, /* 0100 1100 0000 0100 address_dst *** testb address_dst */ { #ifdef NICENAMES -"testb address_dst",8,11, -0x1c, +"testb address_dst",8,11,0x1c, #endif "testb",OPC_testb,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,386}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,173}, /* 0100 1100 ddN0 0100 address_dst *** testb address_dst(rd) */ { #ifdef NICENAMES -"testb address_dst(rd)",8,12, -0x1c, +"testb address_dst(rd)",8,12,0x1c, #endif "testb",OPC_testb,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,387}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,173}, /* 1000 1100 dddd 0100 *** testb rbd */ { #ifdef NICENAMES -"testb rbd",8,7, -0x1c, +"testb rbd",8,7,0x1c, #endif "testb",OPC_testb,0,{CLASS_REG_BYTE+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,388}, - + {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,173}, /* 0001 1100 ddN0 1000 *** testl @rd */ { #ifdef NICENAMES -"testl @rd",32,13, -0x18, +"testl @rd",32,13,0x18, #endif "testl",OPC_testl,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,389}, - + {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,174}, /* 0101 1100 0000 1000 address_dst *** testl address_dst */ { #ifdef NICENAMES -"testl address_dst",32,16, -0x18, +"testl address_dst",32,16,0x18, #endif "testl",OPC_testl,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,390}, - + {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,174}, /* 0101 1100 ddN0 1000 address_dst *** testl address_dst(rd) */ { #ifdef NICENAMES -"testl address_dst(rd)",32,17, -0x18, +"testl address_dst(rd)",32,17,0x18, #endif "testl",OPC_testl,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,391}, - + {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,174}, /* 1001 1100 dddd 1000 *** testl rrd */ { #ifdef NICENAMES -"testl rrd",32,13, -0x18, +"testl rrd",32,13,0x18, #endif "testl",OPC_testl,0,{CLASS_REG_LONG+(ARG_RD),}, - {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,392}, - + {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,174}, /* 1011 1000 ddN0 1000 0000 aaaa ssN0 0000 *** trdb @rd,@rs,rba */ { #ifdef NICENAMES -"trdb @rd,@rs,rba",8,25, -0x1c, +"trdb @rd,@rs,rba",8,25,0x1c, #endif "trdb",OPC_trdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,393}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,175}, /* 1011 1000 ddN0 1100 0000 aaaa ssN0 0000 *** trdrb @rd,@rs,rba */ { #ifdef NICENAMES -"trdrb @rd,@rs,rba",8,25, -0x1c, +"trdrb @rd,@rs,rba",8,25,0x1c, #endif "trdrb",OPC_trdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,394}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,176}, /* 1011 1000 ddN0 0000 0000 rrrr ssN0 0000 *** trib @rd,@rs,rbr */ { #ifdef NICENAMES -"trib @rd,@rs,rbr",8,25, -0x1c, +"trib @rd,@rs,rbr",8,25,0x1c, #endif "trib",OPC_trib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,395}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,177}, /* 1011 1000 ddN0 0100 0000 rrrr ssN0 0000 *** trirb @rd,@rs,rbr */ { #ifdef NICENAMES -"trirb @rd,@rs,rbr",8,25, -0x1c, +"trirb @rd,@rs,rbr",8,25,0x1c, #endif "trirb",OPC_trirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,396}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,178}, /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtdb @ra,@rb,rbr */ { #ifdef NICENAMES -"trtdb @ra,@rb,rbr",8,25, -0x1c, +"trtdb @ra,@rb,rbr",8,25,0x1c, #endif "trtdb",OPC_trtdb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,397}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,179}, /* 1011 1000 aaN0 1110 0000 rrrr bbN0 1110 *** trtdrb @ra,@rb,rbr */ { #ifdef NICENAMES -"trtdrb @ra,@rb,rbr",8,25, -0x1c, +"trtdrb @ra,@rb,rbr",8,25,0x1c, #endif "trtdrb",OPC_trtdrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,398}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,180}, /* 1011 1000 aaN0 0010 0000 rrrr bbN0 0000 *** trtib @ra,@rb,rbr */ { #ifdef NICENAMES -"trtib @ra,@rb,rbr",8,25, -0x1c, +"trtib @ra,@rb,rbr",8,25,0x1c, #endif "trtib",OPC_trtib,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,399}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,181}, /* 1011 1000 aaN0 0110 0000 rrrr bbN0 1110 *** trtirb @ra,@rb,rbr */ { #ifdef NICENAMES -"trtirb @ra,@rb,rbr",8,25, -0x1c, +"trtirb @ra,@rb,rbr",8,25,0x1c, #endif "trtirb",OPC_trtirb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,400}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,182}, /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtrb @ra,@rb,rbr */ { #ifdef NICENAMES -"trtrb @ra,@rb,rbr",8,25, -0x1c, +"trtrb @ra,@rb,rbr",8,25,0x1c, #endif "trtrb",OPC_trtrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),}, - {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,401}, - + {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,183}, /* 0000 1101 ddN0 0110 *** tset @rd */ { #ifdef NICENAMES -"tset @rd",16,11, -0x08, +"tset @rd",16,11,0x08, #endif "tset",OPC_tset,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,402}, - + {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,184}, /* 0100 1101 0000 0110 address_dst *** tset address_dst */ { #ifdef NICENAMES -"tset address_dst",16,14, -0x08, +"tset address_dst",16,14,0x08, #endif "tset",OPC_tset,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,403}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,184}, /* 0100 1101 ddN0 0110 address_dst *** tset address_dst(rd) */ { #ifdef NICENAMES -"tset address_dst(rd)",16,15, -0x08, +"tset address_dst(rd)",16,15,0x08, #endif "tset",OPC_tset,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,404}, - + {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,184}, /* 1000 1101 dddd 0110 *** tset rd */ { #ifdef NICENAMES -"tset rd",16,7, -0x08, +"tset rd",16,7,0x08, #endif "tset",OPC_tset,0,{CLASS_REG_WORD+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,405}, - + {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,184}, /* 0000 1100 ddN0 0110 *** tsetb @rd */ { #ifdef NICENAMES -"tsetb @rd",8,11, -0x08, +"tsetb @rd",8,11,0x08, #endif "tsetb",OPC_tsetb,0,{CLASS_IR+(ARG_RD),}, - {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,406}, - + {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,185}, /* 0100 1100 0000 0110 address_dst *** tsetb address_dst */ { #ifdef NICENAMES -"tsetb address_dst",8,14, -0x08, +"tsetb address_dst",8,14,0x08, #endif "tsetb",OPC_tsetb,0,{CLASS_DA+(ARG_DST),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,407}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,185}, /* 0100 1100 ddN0 0110 address_dst *** tsetb address_dst(rd) */ { #ifdef NICENAMES -"tsetb address_dst(rd)",8,15, -0x08, +"tsetb address_dst(rd)",8,15,0x08, #endif "tsetb",OPC_tsetb,0,{CLASS_X+(ARG_RD),}, - {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,408}, - + {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,185}, /* 1000 1100 dddd 0110 *** tsetb rbd */ { #ifdef NICENAMES -"tsetb rbd",8,7, -0x08, +"tsetb rbd",8,7,0x08, #endif "tsetb",OPC_tsetb,0,{CLASS_REG_BYTE+(ARG_RD),}, - {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,409}, - + {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,185}, /* 0000 1001 ssN0 dddd *** xor rd,@rs */ { #ifdef NICENAMES -"xor rd,@rs",16,7, -0x18, +"xor rd,@rs",16,7,0x18, #endif "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,410}, - + {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186}, /* 0100 1001 0000 dddd address_src *** xor rd,address_src */ { #ifdef NICENAMES -"xor rd,address_src",16,9, -0x18, +"xor rd,address_src",16,9,0x18, #endif "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,411}, - + {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,186}, /* 0100 1001 ssN0 dddd address_src *** xor rd,address_src(rs) */ { #ifdef NICENAMES -"xor rd,address_src(rs)",16,10, -0x18, +"xor rd,address_src(rs)",16,10,0x18, #endif "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,412}, - + {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,186}, /* 0000 1001 0000 dddd imm16 *** xor rd,imm16 */ { #ifdef NICENAMES -"xor rd,imm16",16,7, -0x18, +"xor rd,imm16",16,7,0x18, #endif "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),}, - {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,413}, - + {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,186}, /* 1000 1001 ssss dddd *** xor rd,rs */ { #ifdef NICENAMES -"xor rd,rs",16,4, -0x18, +"xor rd,rs",16,4,0x18, #endif "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,414}, - + {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186}, /* 0000 1000 ssN0 dddd *** xorb rbd,@rs */ { #ifdef NICENAMES -"xorb rbd,@rs",8,7, -0x1c, +"xorb rbd,@rs",8,7,0x1c, #endif "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),}, - {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,415}, - + {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187}, /* 0100 1000 0000 dddd address_src *** xorb rbd,address_src */ { #ifdef NICENAMES -"xorb rbd,address_src",8,9, -0x1c, +"xorb rbd,address_src",8,9,0x1c, #endif "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),}, - {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,416}, - + {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,187}, /* 0100 1000 ssN0 dddd address_src *** xorb rbd,address_src(rs) */ { #ifdef NICENAMES -"xorb rbd,address_src(rs)",8,10, -0x1c, +"xorb rbd,address_src(rs)",8,10,0x1c, #endif "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),}, - {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,417}, - + {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,187}, /* 0000 1000 0000 dddd imm8 imm8 *** xorb rbd,imm8 */ { #ifdef NICENAMES -"xorb rbd,imm8",8,7, -0x1c, +"xorb rbd,imm8",8,7,0x1c, #endif "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),}, - {CLASS_BIT+0,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,418}, - + {CLASS_BIT+0,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,187}, /* 1000 1000 ssss dddd *** xorb rbd,rbs */ { #ifdef NICENAMES -"xorb rbd,rbs",8,4, -0x1c, +"xorb rbd,rbs",8,4,0x1c, #endif "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,419}, - + {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187}, /* 1000 1000 ssss dddd *** xorb rbd,rbs */ { #ifdef NICENAMES -"xorb rbd,rbs",8,4, -0x01, +"xorb rbd,rbs",8,4,0x01, #endif "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),}, - {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,420}, + {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187}, /* end marker */ { diff -uprN binutils-2.13.90.0.16/opcodes/z8kgen.c binutils-2.13.90.0.18/opcodes/z8kgen.c --- binutils-2.13.90.0.16/opcodes/z8kgen.c Fri Sep 27 08:33:09 2002 +++ binutils-2.13.90.0.18/opcodes/z8kgen.c Mon Dec 16 12:22:53 2002 @@ -21,6 +21,7 @@ #include #include "sysdep.h" +#include "libiberty.h" #define BYTE_INFO_LEN 10 @@ -37,498 +38,498 @@ struct op #define iswhite(x) ((x) == ' ' || (x) == '\t') struct op opt[] = { - "------", 10, 8, "0000 1110 imm8", "ext0e imm8", 0, - "------", 10, 8, "0000 1111 imm8", "ext0f imm8", 0, - "------", 10, 8, "1000 1110 imm8", "ext8e imm8", 0, - "------", 10, 8, "1000 1111 imm8", "ext8f imm8", 0, - - "------", 10, 8, "0011 0110 imm8", "rsvd36", 0, - "------", 10, 8, "0011 1000 imm8", "rsvd38", 0, - "------", 10, 8, "0111 1000 imm8", "rsvd78", 0, - "------", 10, 8, "0111 1110 imm8", "rsvd7e", 0, - - "------", 10, 8, "1001 1101 imm8", "rsvd9d", 0, - "------", 10, 8, "1001 1111 imm8", "rsvd9f", 0, - - "------", 10, 8, "1011 1001 imm8", "rsvdb9", 0, - "------", 10, 8, "1011 1111 imm8", "rsvdbf", 0, - - "---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 1000", "ldd @rd,@rs,rr", 0, - "---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 0000", "lddr @rd,@rs,rr", 0, - "---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 0000", "lddrb @rd,@rs,rr", 0, - "---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 0000", "ldir @rd,@rs,rr", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 0000 0000 rrrr dddd cccc", "cpi rd,@rs,rr,cc", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 0100 0000 rrrr dddd cccc", "cpir rd,@rs,rr,cc", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 1100 0000 rrrr dddd cccc", "cpdr rd,@rs,rr,cc", 0, - "---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 1000", "ldi @rd,@rs,rr", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 1000 0000 rrrr dddd cccc", "cpd rd,@rs,rr,cc", 0, - "---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 0000", "ldirb @rd,@rs,rr", 0, - "---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 1000", "lddb @rd,@rs,rr", 0, - "---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 1000", "ldib @rd,@rs,rr", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 1000 0000 rrrr dddd cccc", "cpdb rbd,@rs,rr,cc", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 1100 0000 rrrr dddd cccc", "cpdrb rbd,@rs,rr,cc", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 0000 0000 rrrr dddd cccc", "cpib rbd,@rs,rr,cc", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 0100 0000 rrrr dddd cccc", "cpirb rbd,@rs,rr,cc", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 1010 0000 rrrr ddN0 cccc", "cpsd @rd,@rs,rr,cc", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 1010 0000 rrrr ddN0 cccc", "cpsdb @rd,@rs,rr,cc", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdr @rd,@rs,rr,cc", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdrb @rd,@rs,rr,cc", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 0010 0000 rrrr ddN0 cccc", "cpsi @rd,@rs,rr,cc", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 0010 0000 rrrr ddN0 cccc", "cpsib @rd,@rs,rr,cc", 0, - "CZSV--", 11, 16, "1011 1011 ssN0 0110 0000 rrrr ddN0 cccc", "cpsir @rd,@rs,rr,cc", 0, - "CZSV--", 11, 8, "1011 1010 ssN0 0110 0000 rrrr ddN0 cccc", "cpsirb @rd,@rs,rr,cc", 0, - - "------", 2, 8, "0011 0110 0000 0000", "bpt", 0, - "CZSV--", 5, 16, "1011 0101 ssss dddd", "adc rd,rs", 0, - "CZSVDH", 5, 8, "1011 0100 ssss dddd", "adcb rbd,rbs", 0, - "CZSV--", 7, 16, "0000 0001 ssN0 dddd", "add rd,@rs", 0, - "CZSV--", 9, 16, "0100 0001 0000 dddd address_src", "add rd,address_src", 0, - "CZSV--", 10, 16, "0100 0001 ssN0 dddd address_src", "add rd,address_src(rs)", 0, - "CZSV--", 7, 16, "0000 0001 0000 dddd imm16", "add rd,imm16", 0, - "CZSV--", 4, 16, "1000 0001 ssss dddd", "add rd,rs", 0, - "CZSVDH", 7, 8, "0000 0000 ssN0 dddd", "addb rbd,@rs", 0, - "CZSVDH", 9, 8, "0100 0000 0000 dddd address_src", "addb rbd,address_src", 0, - "CZSVDH", 10, 8, "0100 0000 ssN0 dddd address_src", "addb rbd,address_src(rs)", 0, - "CZSVDH", 7, 8, "0000 0000 0000 dddd imm8 imm8", "addb rbd,imm8", 0, - "CZSVDH", 4, 8, "1000 0000 ssss dddd", "addb rbd,rbs", 0, - "CZSV--", 14, 32, "0001 0110 ssN0 dddd", "addl rrd,@rs", 0, - "CZSV--", 15, 32, "0101 0110 0000 dddd address_src", "addl rrd,address_src", 0, - "CZSV--", 16, 32, "0101 0110 ssN0 dddd address_src", "addl rrd,address_src(rs)", 0, - "CZSV--", 14, 32, "0001 0110 0000 dddd imm32", "addl rrd,imm32", 0, - "CZSV--", 8, 32, "1001 0110 ssss dddd", "addl rrd,rrs", 0, - - "-ZS---", 7, 16, "0000 0111 ssN0 dddd", "and rd,@rs", 0, - "-ZS---", 9, 16, "0100 0111 0000 dddd address_src", "and rd,address_src", 0, - "-ZS---", 10, 16, "0100 0111 ssN0 dddd address_src", "and rd,address_src(rs)", 0, - "-ZS---", 7, 16, "0000 0111 0000 dddd imm16", "and rd,imm16", 0, - "-ZS---", 4, 16, "1000 0111 ssss dddd", "and rd,rs", 0, - "-ZSP--", 7, 8, "0000 0110 ssN0 dddd", "andb rbd,@rs", 0, - "-ZSP--", 9, 8, "0100 0110 0000 dddd address_src", "andb rbd,address_src", 0, - "-ZSP--", 10, 8, "0100 0110 ssN0 dddd address_src", "andb rbd,address_src(rs)", 0, - "-ZSP--", 7, 8, "0000 0110 0000 dddd imm8 imm8", "andb rbd,imm8", 0, - "-ZSP--", 4, 8, "1000 0110 ssss dddd", "andb rbd,rbs", 0, - - "-Z----", 8, 16, "0010 0111 ddN0 imm4", "bit @rd,imm4", 0, - "-Z----", 11, 16, "0110 0111 ddN0 imm4 address_dst", "bit address_dst(rd),imm4", 0, - "-Z----", 10, 16, "0110 0111 0000 imm4 address_dst", "bit address_dst,imm4", 0, - "-Z----", 4, 16, "1010 0111 dddd imm4", "bit rd,imm4", 0, - "-Z----", 10, 16, "0010 0111 0000 ssss 0000 dddd 0000 0000", "bit rd,rs", 0, - - "-Z----", 8, 8, "0010 0110 ddN0 imm4", "bitb @rd,imm4", 0, - "-Z----", 11, 8, "0110 0110 ddN0 imm4 address_dst", "bitb address_dst(rd),imm4", 0, - "-Z----", 10, 8, "0110 0110 0000 imm4 address_dst", "bitb address_dst,imm4", 0, - "-Z----", 4, 8, "1010 0110 dddd imm4", "bitb rbd,imm4", 0, - "-Z----", 10, 8, "0010 0110 0000 ssss 0000 dddd 0000 0000", "bitb rbd,rs", 0, - - "------", 10, 32, "0001 1111 ddN0 0000", "call @rd", 0, - "------", 12, 32, "0101 1111 0000 0000 address_dst", "call address_dst", 0, - "------", 13, 32, "0101 1111 ddN0 0000 address_dst", "call address_dst(rd)", 0, - "------", 10, 16, "1101 disp12", "calr disp12", 0, - - "------", 8, 16, "0000 1101 ddN0 1000", "clr @rd", 0, - "------", 11, 16, "0100 1101 0000 1000 address_dst", "clr address_dst", 0, - "------", 12, 16, "0100 1101 ddN0 1000 address_dst", "clr address_dst(rd)", 0, - "------", 7, 16, "1000 1101 dddd 1000", "clr rd", 0, - "------", 8, 8, "0000 1100 ddN0 1000", "clrb @rd", 0, - "------", 11, 8, "0100 1100 0000 1000 address_dst", "clrb address_dst", 0, - "------", 12, 8, "0100 1100 ddN0 1000 address_dst", "clrb address_dst(rd)", 0, - "------", 7, 8, "1000 1100 dddd 1000", "clrb rbd", 0, - "-ZS---", 12, 16, "0000 1101 ddN0 0000", "com @rd", 0, - "-ZS---", 15, 16, "0100 1101 0000 0000 address_dst", "com address_dst", 0, - "-ZS---", 16, 16, "0100 1101 ddN0 0000 address_dst", "com address_dst(rd)", 0, - "-ZS---", 7, 16, "1000 1101 dddd 0000", "com rd", 0, - "-ZSP--", 12, 8, "0000 1100 ddN0 0000", "comb @rd", 0, - "-ZSP--", 15, 8, "0100 1100 0000 0000 address_dst", "comb address_dst", 0, - "-ZSP--", 16, 8, "0100 1100 ddN0 0000 address_dst", "comb address_dst(rd)", 0, - "-ZSP--", 7, 8, "1000 1100 dddd 0000", "comb rbd", 0, - "CZSP--", 7, 16, "1000 1101 flags 0101", "comflg flags", 0, - - "CZSV--", 11, 16, "0000 1101 ddN0 0001 imm16", "cp @rd,imm16", 0, - "CZSV--", 15, 16, "0100 1101 ddN0 0001 address_dst imm16", "cp address_dst(rd),imm16", 0, - "CZSV--", 14, 16, "0100 1101 0000 0001 address_dst imm16", "cp address_dst,imm16", 0, - - "CZSV--", 7, 16, "0000 1011 ssN0 dddd", "cp rd,@rs", 0, - "CZSV--", 9, 16, "0100 1011 0000 dddd address_src", "cp rd,address_src", 0, - "CZSV--", 10, 16, "0100 1011 ssN0 dddd address_src", "cp rd,address_src(rs)", 0, - "CZSV--", 7, 16, "0000 1011 0000 dddd imm16", "cp rd,imm16", 0, - "CZSV--", 4, 16, "1000 1011 ssss dddd", "cp rd,rs", 0, - - "CZSV--", 11, 8, "0000 1100 ddN0 0001 imm8 imm8", "cpb @rd,imm8", 0, - "CZSV--", 15, 8, "0100 1100 ddN0 0001 address_dst imm8 imm8", "cpb address_dst(rd),imm8", 0, - "CZSV--", 14, 8, "0100 1100 0000 0001 address_dst imm8 imm8", "cpb address_dst,imm8", 0, - "CZSV--", 7, 8, "0000 1010 ssN0 dddd", "cpb rbd,@rs", 0, - "CZSV--", 9, 8, "0100 1010 0000 dddd address_src", "cpb rbd,address_src", 0, - "CZSV--", 10, 8, "0100 1010 ssN0 dddd address_src", "cpb rbd,address_src(rs)", 0, - "CZSV--", 7, 8, "0000 1010 0000 dddd imm8 imm8", "cpb rbd,imm8", 0, - "CZSV--", 4, 8, "1000 1010 ssss dddd", "cpb rbd,rbs", 0, - - "CZSV--", 14, 32, "0001 0000 ssN0 dddd", "cpl rrd,@rs", 0, - "CZSV--", 15, 32, "0101 0000 0000 dddd address_src", "cpl rrd,address_src", 0, - "CZSV--", 16, 32, "0101 0000 ssN0 dddd address_src", "cpl rrd,address_src(rs)", 0, - "CZSV--", 14, 32, "0001 0000 0000 dddd imm32", "cpl rrd,imm32", 0, - "CZSV--", 8, 32, "1001 0000 ssss dddd", "cpl rrd,rrs", 0, - - "CZS---", 5, 8, "1011 0000 dddd 0000", "dab rbd", 0, - "------", 11, 16, "1111 dddd 0disp7", "dbjnz rbd,disp7", 0, - "-ZSV--", 11, 16, "0010 1011 ddN0 imm4m1", "dec @rd,imm4m1", 0, - "-ZSV--", 14, 16, "0110 1011 ddN0 imm4m1 address_dst", "dec address_dst(rd),imm4m1", 0, - "-ZSV--", 13, 16, "0110 1011 0000 imm4m1 address_dst", "dec address_dst,imm4m1", 0, - "-ZSV--", 4, 16, "1010 1011 dddd imm4m1", "dec rd,imm4m1", 0, - "-ZSV--", 11, 8, "0010 1010 ddN0 imm4m1", "decb @rd,imm4m1", 0, - "-ZSV--", 14, 8, "0110 1010 ddN0 imm4m1 address_dst", "decb address_dst(rd),imm4m1", 0, - "-ZSV--", 13, 8, "0110 1010 0000 imm4m1 address_dst", "decb address_dst,imm4m1", 0, - "-ZSV--", 4, 8, "1010 1010 dddd imm4m1", "decb rbd,imm4m1", 0, - - "------", 7, 16, "0111 1100 0000 00ii", "di i2", 0, - "CZSV--", 107, 16, "0001 1011 ssN0 dddd", "div rrd,@rs", 0, - "CZSV--", 107, 16, "0101 1011 0000 dddd address_src", "div rrd,address_src", 0, - "CZSV--", 107, 16, "0101 1011 ssN0 dddd address_src", "div rrd,address_src(rs)", 0, - "CZSV--", 107, 16, "0001 1011 0000 dddd imm16", "div rrd,imm16", 0, - "CZSV--", 107, 16, "1001 1011 ssss dddd", "div rrd,rs", 0, - "CZSV--", 744, 32, "0001 1010 ssN0 dddd", "divl rqd,@rs", 0, - "CZSV--", 745, 32, "0101 1010 0000 dddd address_src", "divl rqd,address_src", 0, - "CZSV--", 746, 32, "0101 1010 ssN0 dddd address_src", "divl rqd,address_src(rs)", 0, - "CZSV--", 744, 32, "0001 1010 0000 dddd imm32", "divl rqd,imm32", 0, - "CZSV--", 744, 32, "1001 1010 ssss dddd", "divl rqd,rrs", 0, - - "------", 11, 16, "1111 dddd 1disp7", "djnz rd,disp7", 0, - "------", 7, 16, "0111 1100 0000 01ii", "ei i2", 0, - "------", 6, 16, "1010 1101 ssss dddd", "ex rd,rs", 0, - "------", 12, 16, "0010 1101 ssN0 dddd", "ex rd,@rs", 0, - "------", 15, 16, "0110 1101 0000 dddd address_src", "ex rd,address_src", 0, - "------", 16, 16, "0110 1101 ssN0 dddd address_src", "ex rd,address_src(rs)", 0, - - "------", 12, 8, "0010 1100 ssN0 dddd", "exb rbd,@rs", 0, - "------", 15, 8, "0110 1100 0000 dddd address_src", "exb rbd,address_src", 0, - "------", 16, 8, "0110 1100 ssN0 dddd address_src", "exb rbd,address_src(rs)", 0, - "------", 6, 8, "1010 1100 ssss dddd", "exb rbd,rbs", 0, - - "------", 11, 16, "1011 0001 dddd 1010", "exts rrd", 0, - "------", 11, 8, "1011 0001 dddd 0000", "extsb rd", 0, - "------", 11, 32, "1011 0001 dddd 0111", "extsl rqd", 0, - - "------", 8, 16, "0111 1010 0000 0000", "halt", 0, - "------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0, - "------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0, - "------", 12, 16, "0011 1011 dddd 0100 imm16", "in rd,imm16", 0, - "------", 10, 8, "0011 1010 dddd 0100 imm16", "inb rbd,imm16", 0, - "-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0, - "-ZSV--", 14, 16, "0110 1001 ddN0 imm4m1 address_dst", "inc address_dst(rd),imm4m1", 0, - "-ZSV--", 13, 16, "0110 1001 0000 imm4m1 address_dst", "inc address_dst,imm4m1", 0, - "-ZSV--", 4, 16, "1010 1001 dddd imm4m1", "inc rd,imm4m1", 0, - "-ZSV--", 11, 8, "0010 1000 ddN0 imm4m1", "incb @rd,imm4m1", 0, - "-ZSV--", 14, 8, "0110 1000 ddN0 imm4m1 address_dst", "incb address_dst(rd),imm4m1", 0, - "-ZSV--", 13, 8, "0110 1000 0000 imm4m1 address_dst", "incb address_dst,imm4m1", 0, - "-ZSV--", 4, 8, "1010 1000 dddd imm4m1", "incb rbd,imm4m1", 0, - "---V--", 21, 16, "0011 1011 ssN0 1000 0000 aaaa ddN0 1000", "ind @rd,@rs,ra", 0, - "---V--", 21, 8, "0011 1010 ssN0 1000 0000 aaaa ddN0 1000", "indb @rd,@rs,rba", 0, - "---V--", 21, 8, "0011 1010 ssN0 0000 0000 aaaa ddN0 1000", "inib @rd,@rs,ra", 0, - "---V--", 21, 16, "0011 1010 ssN0 0000 0000 aaaa ddN0 0000", "inibr @rd,@rs,ra", 0, - "CZSVDH", 13, 16, "0111 1011 0000 0000", "iret", 0, - "------", 10, 16, "0001 1110 ddN0 cccc", "jp cc,@rd", 0, - "------", 7, 16, "0101 1110 0000 cccc address_dst", "jp cc,address_dst", 0, - "------", 8, 16, "0101 1110 ddN0 cccc address_dst", "jp cc,address_dst(rd)", 0, - "------", 6, 16, "1110 cccc disp8", "jr cc,disp8", 0, - - "------", 7, 16, "0000 1101 ddN0 0101 imm16", "ld @rd,imm16", 0, - "------", 8, 16, "0010 1111 ddN0 ssss", "ld @rd,rs", 0, - "------", 15, 16, "0100 1101 ddN0 0101 address_dst imm16", "ld address_dst(rd),imm16", 0, - "------", 12, 16, "0110 1111 ddN0 ssss address_dst", "ld address_dst(rd),rs", 0, - "------", 14, 16, "0100 1101 0000 0101 address_dst imm16", "ld address_dst,imm16", 0, - "------", 11, 16, "0110 1111 0000 ssss address_dst", "ld address_dst,rs", 0, - "------", 14, 16, "0011 0011 ddN0 ssss imm16", "ld rd(imm16),rs", 0, - "------", 14, 16, "0111 0011 ddN0 ssss 0000 xxxx 0000 0000", "ld rd(rx),rs", 0, - "------", 7, 16, "0010 0001 ssN0 dddd", "ld rd,@rs", 0, - "------", 9, 16, "0110 0001 0000 dddd address_src", "ld rd,address_src", 0, - "------", 10, 16, "0110 0001 ssN0 dddd address_src", "ld rd,address_src(rs)", 0, - "------", 7, 16, "0010 0001 0000 dddd imm16", "ld rd,imm16", 0, - "------", 3, 16, "1010 0001 ssss dddd", "ld rd,rs", 0, - "------", 14, 16, "0011 0001 ssN0 dddd imm16", "ld rd,rs(imm16)", 0, - "------", 14, 16, "0111 0001 ssN0 dddd 0000 xxxx 0000 0000", "ld rd,rs(rx)", 0, - - "------", 7, 8, "0000 1100 ddN0 0101 imm8 imm8", "ldb @rd,imm8", 0, - "------", 8, 8, "0010 1110 ddN0 ssss", "ldb @rd,rbs", 0, - "------", 15, 8, "0100 1100 ddN0 0101 address_dst imm8 imm8", "ldb address_dst(rd),imm8", 0, - "------", 12, 8, "0110 1110 ddN0 ssss address_dst", "ldb address_dst(rd),rbs", 0, - "------", 14, 8, "0100 1100 0000 0101 address_dst imm8 imm8", "ldb address_dst,imm8", 0, - "------", 11, 8, "0110 1110 0000 ssss address_dst", "ldb address_dst,rbs", 0, - "------", 14, 8, "0011 0010 ddN0 ssss imm16", "ldb rd(imm16),rbs", 0, - "------", 14, 8, "0111 0010 ddN0 ssss 0000 xxxx 0000 0000", "ldb rd(rx),rbs", 0, - "------", 7, 8, "0010 0000 ssN0 dddd", "ldb rbd,@rs", 0, - "------", 9, 8, "0110 0000 0000 dddd address_src", "ldb rbd,address_src", 0, - "------", 10, 8, "0110 0000 ssN0 dddd address_src", "ldb rbd,address_src(rs)", 0, - "------", 5, 8, "1100 dddd imm8", "ldb rbd,imm8", 0, - "------", 3, 8, "1010 0000 ssss dddd", "ldb rbd,rbs", 0, - "------", 14, 8, "0011 0000 ssN0 dddd imm16", "ldb rbd,rs(imm16)", 0, - "------", 14, 8, "0111 0000 ssN0 dddd 0000 xxxx 0000 0000", "ldb rbd,rs(rx)", 0, - - "------", 11, 32, "0001 1101 ddN0 ssss", "ldl @rd,rrs", 0, - "------", 14, 32, "0101 1101 ddN0 ssss address_dst", "ldl address_dst(rd),rrs", 0, - "------", 15, 32, "0101 1101 0000 ssss address_dst", "ldl address_dst,rrs", 0, - "------", 17, 32, "0011 0111 ddN0 ssss imm16", "ldl rd(imm16),rrs", 0, - "------", 17, 32, "0111 0111 ddN0 ssss 0000 xxxx 0000 0000", "ldl rd(rx),rrs", 0, - "------", 11, 32, "0001 0100 ssN0 dddd", "ldl rrd,@rs", 0, - "------", 12, 32, "0101 0100 0000 dddd address_src", "ldl rrd,address_src", 0, - "------", 13, 32, "0101 0100 ssN0 dddd address_src", "ldl rrd,address_src(rs)", 0, - "------", 11, 32, "0001 0100 0000 dddd imm32", "ldl rrd,imm32", 0, - "------", 5, 32, "1001 0100 ssss dddd", "ldl rrd,rrs", 0, - "------", 17, 32, "0011 0101 ssN0 dddd imm16", "ldl rrd,rs(imm16)", 0, - "------", 17, 32, "0111 0101 ssN0 dddd 0000 xxxx 0000 0000", "ldl rrd,rs(rx)", 0, - - "------", 12, 16, "0111 0110 0000 dddd address_src", "lda prd,address_src", 0, - "------", 13, 16, "0111 0110 ssN0 dddd address_src", "lda prd,address_src(rs)", 0, - "------", 15, 16, "0011 0100 ssN0 dddd imm16", "lda prd,rs(imm16)", 0, - "------", 15, 16, "0111 0100 ssN0 dddd 0000 xxxx 0000 0000", "lda prd,rs(rx)", 0, - "------", 15, 16, "0011 0100 0000 dddd disp16", "ldar prd,disp16", 0, - "------", 7, 32, "0111 1101 ssss 1ccc", "ldctl ctrl,rs", 0, - "------", 7, 32, "0111 1101 dddd 0ccc", "ldctl rd,ctrl", 0, - - "------", 5, 16, "1011 1101 dddd imm4", "ldk rd,imm4", 0, - - "------", 11, 16, "0001 1100 ddN0 1001 0000 ssss 0000 imm4m1", "ldm @rd,rs,n", 0, - "------", 15, 16, "0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst(rd),rs,n", 0, - "------", 14, 16, "0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst,rs,n", 0, - "------", 11, 16, "0001 1100 ssN0 0001 0000 dddd 0000 imm4m1", "ldm rd,@rs,n", 0, - "------", 15, 16, "0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src(rs),n", 0, - "------", 14, 16, "0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src,n", 0, - - "CZSVDH", 12, 16, "0011 1001 ssN0 0000", "ldps @rs", 0, - "CZSVDH", 16, 16, "0111 1001 0000 0000 address_src", "ldps address_src", 0, - "CZSVDH", 17, 16, "0111 1001 ssN0 0000 address_src", "ldps address_src(rs)", 0, - - "------", 14, 16, "0011 0011 0000 ssss disp16", "ldr disp16,rs", 0, - "------", 14, 16, "0011 0001 0000 dddd disp16", "ldr rd,disp16", 0, - "------", 14, 8, "0011 0010 0000 ssss disp16", "ldrb disp16,rbs", 0, - "------", 14, 8, "0011 0000 0000 dddd disp16", "ldrb rbd,disp16", 0, - "------", 17, 32, "0011 0111 0000 ssss disp16", "ldrl disp16,rrs", 0, - "------", 17, 32, "0011 0101 0000 dddd disp16", "ldrl rrd,disp16", 0, - - "CZS---", 7, 16, "0111 1011 0000 1010", "mbit", 0, - "-ZS---", 12, 16, "0111 1011 dddd 1101", "mreq rd", 0, - "------", 5, 16, "0111 1011 0000 1001", "mres", 0, - "------", 5, 16, "0111 1011 0000 1000", "mset", 0, - - "CZSV--", 70, 16, "0001 1001 ssN0 dddd", "mult rrd,@rs", 0, - "CZSV--", 70, 16, "0101 1001 0000 dddd address_src", "mult rrd,address_src", 0, - "CZSV--", 70, 16, "0101 1001 ssN0 dddd address_src", "mult rrd,address_src(rs)", 0, - "CZSV--", 70, 16, "0001 1001 0000 dddd imm16", "mult rrd,imm16", 0, - "CZSV--", 70, 16, "1001 1001 ssss dddd", "mult rrd,rs", 0, - "CZSV--", 282, 32, "0001 1000 ssN0 dddd", "multl rqd,@rs", 0, - "CZSV--", 282, 32, "0101 1000 0000 dddd address_src", "multl rqd,address_src", 0, - "CZSV--", 282, 32, "0101 1000 ssN0 dddd address_src", "multl rqd,address_src(rs)", 0, - "CZSV--", 282, 32, "0001 1000 0000 dddd imm32", "multl rqd,imm32", 0, - "CZSV--", 282, 32, "1001 1000 ssss dddd", "multl rqd,rrs", 0, - "CZSV--", 12, 16, "0000 1101 ddN0 0010", "neg @rd", 0, - "CZSV--", 15, 16, "0100 1101 0000 0010 address_dst", "neg address_dst", 0, - "CZSV--", 16, 16, "0100 1101 ddN0 0010 address_dst", "neg address_dst(rd)", 0, - "CZSV--", 7, 16, "1000 1101 dddd 0010", "neg rd", 0, - "CZSV--", 12, 8, "0000 1100 ddN0 0010", "negb @rd", 0, - "CZSV--", 15, 8, "0100 1100 0000 0010 address_dst", "negb address_dst", 0, - "CZSV--", 16, 8, "0100 1100 ddN0 0010 address_dst", "negb address_dst(rd)", 0, - "CZSV--", 7, 8, "1000 1100 dddd 0010", "negb rbd", 0, - - "------", 7, 16, "1000 1101 0000 0111", "nop", 0, - - "CZS---", 7, 16, "0000 0101 ssN0 dddd", "or rd,@rs", 0, - "CZS---", 9, 16, "0100 0101 0000 dddd address_src", "or rd,address_src", 0, - "CZS---", 10, 16, "0100 0101 ssN0 dddd address_src", "or rd,address_src(rs)", 0, - "CZS---", 7, 16, "0000 0101 0000 dddd imm16", "or rd,imm16", 0, - "CZS---", 4, 16, "1000 0101 ssss dddd", "or rd,rs", 0, - - "CZSP--", 7, 8, "0000 0100 ssN0 dddd", "orb rbd,@rs", 0, - "CZSP--", 9, 8, "0100 0100 0000 dddd address_src", "orb rbd,address_src", 0, - "CZSP--", 10, 8, "0100 0100 ssN0 dddd address_src", "orb rbd,address_src(rs)", 0, - "CZSP--", 7, 8, "0000 0100 0000 dddd imm8 imm8", "orb rbd,imm8", 0, - "CZSP--", 4, 8, "1000 0100 ssss dddd", "orb rbd,rbs", 0, - - "---V--", 0, 16, "0011 1111 ddN0 ssss", "out @rd,rs", 0, - "---V--", 0, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0, - "---V--", 0, 8, "0011 1110 ddN0 ssss", "outb @rd,rbs", 0, - "---V--", 0, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0, - "---V--", 0, 16, "0011 1011 ssN0 1010 0000 aaaa ddN0 1000", "outd @rd,@rs,ra", 0, - "---V--", 0, 16, "0011 1010 ssN0 1010 0000 aaaa ddN0 1000", "outdb @rd,@rs,rba", 0, - "---V--", 0, 16, "0011 1011 ssN0 0010 0000 aaaa ddN0 1000", "outi @rd,@rs,ra", 0, - "---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 1000", "outib @rd,@rs,ra", 0, - "---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 0000", "outibr @rd,@rs,ra", 0, - - "------", 12, 16, "0001 0111 ssN0 ddN0", "pop @rd,@rs", 0, - "------", 16, 16, "0101 0111 ssN0 ddN0 address_dst", "pop address_dst(rd),@rs", 0, - "------", 16, 16, "0101 0111 ssN0 0000 address_dst", "pop address_dst,@rs", 0, - "------", 8, 16, "1001 0111 ssN0 dddd", "pop rd,@rs", 0, - - "------", 19, 32, "0001 0101 ssN0 ddN0", "popl @rd,@rs", 0, - "------", 23, 32, "0101 0101 ssN0 ddN0 address_dst", "popl address_dst(rd),@rs", 0, - "------", 23, 32, "0101 0101 ssN0 0000 address_dst", "popl address_dst,@rs", 0, - "------", 12, 32, "1001 0101 ssN0 dddd", "popl rrd,@rs", 0, - - "------", 13, 16, "0001 0011 ddN0 ssN0", "push @rd,@rs", 0, - "------", 14, 16, "0101 0011 ddN0 0000 address_src", "push @rd,address_src", 0, - "------", 14, 16, "0101 0011 ddN0 ssN0 address_src", "push @rd,address_src(rs)", 0, - "------", 12, 16, "0000 1101 ddN0 1001 imm16", "push @rd,imm16", 0, - "------", 9, 16, "1001 0011 ddN0 ssss", "push @rd,rs", 0, - - "------", 20, 32, "0001 0001 ddN0 ssN0", "pushl @rd,@rs", 0, - "------", 21, 32, "0101 0001 ddN0 ssN0 address_src", "pushl @rd,address_src(rs)", 0, - "------", 21, 32, "0101 0001 ddN0 0000 address_src", "pushl @rd,address_src", 0, - "------", 12, 32, "1001 0001 ddN0 ssss", "pushl @rd,rrs", 0, - - "------", 11, 16, "0010 0011 ddN0 imm4", "res @rd,imm4", 0, - "------", 14, 16, "0110 0011 ddN0 imm4 address_dst", "res address_dst(rd),imm4", 0, - "------", 13, 16, "0110 0011 0000 imm4 address_dst", "res address_dst,imm4", 0, - "------", 4, 16, "1010 0011 dddd imm4", "res rd,imm4", 0, - "------", 10, 16, "0010 0011 0000 ssss 0000 dddd 0000 0000", "res rd,rs", 0, - - "------", 11, 8, "0010 0010 ddN0 imm4", "resb @rd,imm4", 0, - "------", 14, 8, "0110 0010 ddN0 imm4 address_dst", "resb address_dst(rd),imm4", 0, - "------", 13, 8, "0110 0010 0000 imm4 address_dst", "resb address_dst,imm4", 0, - "------", 4, 8, "1010 0010 dddd imm4", "resb rbd,imm4", 0, - "------", 10, 8, "0010 0010 0000 ssss 0000 dddd 0000 0000", "resb rbd,rs", 0, - - "CZSV--", 7, 16, "1000 1101 flags 0011", "resflg flags", 0, - "------", 10, 16, "1001 1110 0000 cccc", "ret cc", 0, - - "CZSV--", 6, 16, "1011 0011 dddd 00I0", "rl rd,imm1or2", 0, - "CZSV--", 6, 8, "1011 0010 dddd 00I0", "rlb rbd,imm1or2", 0, - "CZSV--", 6, 16, "1011 0011 dddd 10I0", "rlc rd,imm1or2", 0, - - "-Z----", 9, 8, "1011 0010 dddd 10I0", "rlcb rbd,imm1or2", 0, - "-Z----", 9, 8, "1011 1110 aaaa bbbb", "rldb rbb,rba", 0, - - "CZSV--", 6, 16, "1011 0011 dddd 01I0", "rr rd,imm1or2", 0, - "CZSV--", 6, 8, "1011 0010 dddd 01I0", "rrb rbd,imm1or2", 0, - "CZSV--", 6, 16, "1011 0011 dddd 11I0", "rrc rd,imm1or2", 0, - - "-Z----", 9, 8, "1011 0010 dddd 11I0", "rrcb rbd,imm1or2", 0, - "-Z----", 9, 8, "1011 1100 aaaa bbbb", "rrdb rbb,rba", 0, - "CZSV--", 5, 16, "1011 0111 ssss dddd", "sbc rd,rs", 0, - "CZSVDH", 5, 8, "1011 0110 ssss dddd", "sbcb rbd,rbs", 0, - - "CZSVDH", 33, 8, "0111 1111 imm8", "sc imm8", 0, - - "CZSV--", 15, 16, "1011 0011 dddd 1011 0000 ssss 0000 0000", "sda rd,rs", 0, - "CZSV--", 15, 8, "1011 0010 dddd 1011 0000 ssss 0000 0000", "sdab rbd,rs", 0, - "CZSV--", 15, 32, "1011 0011 dddd 1111 0000 ssss 0000 0000", "sdal rrd,rs", 0, - - "CZS---", 15, 16, "1011 0011 dddd 0011 0000 ssss 0000 0000", "sdl rd,rs", 0, - "CZS---", 15, 8, "1011 0010 dddd 0011 0000 ssss 0000 0000", "sdlb rbd,rs", 0, - "CZS---", 15, 32, "1011 0011 dddd 0111 0000 ssss 0000 0000", "sdll rrd,rs", 0, - - "------", 11, 16, "0010 0101 ddN0 imm4", "set @rd,imm4", 0, - "------", 14, 16, "0110 0101 ddN0 imm4 address_dst", "set address_dst(rd),imm4", 0, - "------", 13, 16, "0110 0101 0000 imm4 address_dst", "set address_dst,imm4", 0, - "------", 4, 16, "1010 0101 dddd imm4", "set rd,imm4", 0, - "------", 10, 16, "0010 0101 0000 ssss 0000 dddd 0000 0000", "set rd,rs", 0, - "------", 11, 8, "0010 0100 ddN0 imm4", "setb @rd,imm4", 0, - "------", 14, 8, "0110 0100 ddN0 imm4 address_dst", "setb address_dst(rd),imm4", 0, - "------", 13, 8, "0110 0100 0000 imm4 address_dst", "setb address_dst,imm4", 0, - "------", 4, 8, "1010 0100 dddd imm4", "setb rbd,imm4", 0, - "------", 10, 8, "0010 0100 0000 ssss 0000 dddd 0000 0000", "setb rbd,rs", 0, - - "CZSV--", 7, 16, "1000 1101 flags 0001", "setflg flags", 0, - - "------", 0, 8, "0011 1010 dddd 0101 imm16", "sinb rbd,imm16", 0, - "------", 0, 8, "0011 1011 dddd 0101 imm16", "sin rd,imm16", 0, - "------", 0, 16, "0011 1011 ssN0 1000 0001 aaaa ddN0 1000", "sind @rd,@rs,ra", 0, - "------", 0, 8, "0011 1010 ssN0 1000 0001 aaaa ddN0 1000", "sindb @rd,@rs,rba", 0, - "------", 0, 8, "0011 1010 ssN0 0001 0000 aaaa ddN0 1000", "sinib @rd,@rs,ra", 0, - "------", 0, 16, "0011 1010 ssN0 0001 0000 aaaa ddN0 0000", "sinibr @rd,@rs,ra", 0, - - "CZSV--", 13, 16, "1011 0011 dddd 1001 0000 0000 imm8", "sla rd,imm8", 0, - "CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 0000 imm4", "slab rbd,imm4", 0, - "CZSV--", 13, 32, "1011 0011 dddd 1101 0000 0000 imm8", "slal rrd,imm8", 0, - - "CZS---", 13, 16, "1011 0011 dddd 0001 0000 0000 imm8", "sll rd,imm8", 0, - "CZS---", 13, 8, "1011 0010 dddd 0001 iiii iiii 0000 imm4", "sllb rbd,imm4", 0, - "CZS---", 13, 32, "1011 0011 dddd 0101 0000 0000 imm8", "slll rrd,imm8", 0, - - "------", 0, 16, "0011 1011 ssss 0111 imm16", "sout imm16,rs", 0, - "------", 0, 8, "0011 1010 ssss 0111 imm16", "soutb imm16,rbs", 0, - "------", 0, 16, "0011 1011 ssN0 1011 0000 aaaa ddN0 1000", "soutd @rd,@rs,ra", 0, - "------", 0, 8, "0011 1010 ssN0 1011 0000 aaaa ddN0 1000", "soutdb @rd,@rs,rba", 0, - "------", 0, 8, "0011 1010 ssN0 0011 0000 aaaa ddN0 1000", "soutib @rd,@rs,ra", 0, - "------", 0, 16, "0011 1010 ssN0 0011 0000 aaaa ddN0 0000", "soutibr @rd,@rs,ra", 0, - - "CZSV--", 13, 16, "1011 0011 dddd 1001 1111 1111 nim8", "sra rd,imm8", 0, - "CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 1111 nim4", "srab rbd,imm4", 0, - "CZSV--", 13, 32, "1011 0011 dddd 1101 1111 1111 nim8", "sral rrd,imm8", 0, - - "CZSV--", 13, 16, "1011 0011 dddd 0001 1111 1111 nim8", "srl rd,imm8", 0, - "CZSV--", 13, 8, "1011 0010 dddd 0001 iiii iiii 1111 nim4", "srlb rbd,imm4", 0, - "CZSV--", 13, 32, "1011 0011 dddd 0101 1111 1111 nim8", "srll rrd,imm8", 0, - - "CZSV--", 7, 16, "0000 0011 ssN0 dddd", "sub rd,@rs", 0, - "CZSV--", 9, 16, "0100 0011 0000 dddd address_src", "sub rd,address_src", 0, - "CZSV--", 10, 16, "0100 0011 ssN0 dddd address_src", "sub rd,address_src(rs)", 0, - "CZSV--", 7, 16, "0000 0011 0000 dddd imm16", "sub rd,imm16", 0, - "CZSV--", 4, 16, "1000 0011 ssss dddd", "sub rd,rs", 0, - - "CZSVDH", 7, 8, "0000 0010 ssN0 dddd", "subb rbd,@rs", 0, - "CZSVDH", 9, 8, "0100 0010 0000 dddd address_src", "subb rbd,address_src", 0, - "CZSVDH", 10, 8, "0100 0010 ssN0 dddd address_src", "subb rbd,address_src(rs)", 0, - "CZSVDH", 7, 8, "0000 0010 0000 dddd imm8 imm8", "subb rbd,imm8", 0, - "CZSVDH", 4, 8, "1000 0010 ssss dddd", "subb rbd,rbs", 0, - - "CZSV--", 14, 32, "0001 0010 ssN0 dddd", "subl rrd,@rs", 0, - "CZSV--", 15, 32, "0101 0010 0000 dddd address_src", "subl rrd,address_src", 0, - "CZSV--", 16, 32, "0101 0010 ssN0 dddd address_src", "subl rrd,address_src(rs)", 0, - "CZSV--", 14, 32, "0001 0010 0000 dddd imm32", "subl rrd,imm32", 0, - "CZSV--", 8, 32, "1001 0010 ssss dddd", "subl rrd,rrs", 0, - - "------", 5, 16, "1010 1111 dddd cccc", "tcc cc,rd", 0, - "------", 5, 8, "1010 1110 dddd cccc", "tccb cc,rbd", 0, - - "-ZS---", 8, 16, "0000 1101 ddN0 0100", "test @rd", 0, - "------", 11, 16, "0100 1101 0000 0100 address_dst", "test address_dst", 0, - "------", 12, 16, "0100 1101 ddN0 0100 address_dst", "test address_dst(rd)", 0, - "------", 7, 16, "1000 1101 dddd 0100", "test rd", 0, - - "-ZSP--", 8, 8, "0000 1100 ddN0 0100", "testb @rd", 0, - "-ZSP--", 11, 8, "0100 1100 0000 0100 address_dst", "testb address_dst", 0, - "-ZSP--", 12, 8, "0100 1100 ddN0 0100 address_dst", "testb address_dst(rd)", 0, - "-ZSP--", 7, 8, "1000 1100 dddd 0100", "testb rbd", 0, - - "-ZS---", 13, 32, "0001 1100 ddN0 1000", "testl @rd", 0, - "-ZS---", 16, 32, "0101 1100 0000 1000 address_dst", "testl address_dst", 0, - "-ZS---", 17, 32, "0101 1100 ddN0 1000 address_dst", "testl address_dst(rd)", 0, - "-ZS---", 13, 32, "1001 1100 dddd 1000", "testl rrd", 0, - - "-ZSV--", 25, 8, "1011 1000 ddN0 1000 0000 aaaa ssN0 0000", "trdb @rd,@rs,rba", 0, - "-ZSV--", 25, 8, "1011 1000 ddN0 1100 0000 aaaa ssN0 0000", "trdrb @rd,@rs,rba", 0, - "-ZSV--", 25, 8, "1011 1000 ddN0 0000 0000 rrrr ssN0 0000", "trib @rd,@rs,rbr", 0, - "-ZSV--", 25, 8, "1011 1000 ddN0 0100 0000 rrrr ssN0 0000", "trirb @rd,@rs,rbr", 0, - "-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtdb @ra,@rb,rbr", 0, - "-ZSV--", 25, 8, "1011 1000 aaN0 1110 0000 rrrr bbN0 1110", "trtdrb @ra,@rb,rbr", 0, - "-ZSV--", 25, 8, "1011 1000 aaN0 0010 0000 rrrr bbN0 0000", "trtib @ra,@rb,rbr", 0, - "-ZSV--", 25, 8, "1011 1000 aaN0 0110 0000 rrrr bbN0 1110", "trtirb @ra,@rb,rbr", 0, - "-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtrb @ra,@rb,rbr", 0, - - "--S---", 11, 16, "0000 1101 ddN0 0110", "tset @rd", 0, - "--S---", 14, 16, "0100 1101 0000 0110 address_dst", "tset address_dst", 0, - "--S---", 15, 16, "0100 1101 ddN0 0110 address_dst", "tset address_dst(rd)", 0, - "--S---", 7, 16, "1000 1101 dddd 0110", "tset rd", 0, - - "--S---", 11, 8, "0000 1100 ddN0 0110", "tsetb @rd", 0, - "--S---", 14, 8, "0100 1100 0000 0110 address_dst", "tsetb address_dst", 0, - "--S---", 15, 8, "0100 1100 ddN0 0110 address_dst", "tsetb address_dst(rd)", 0, - "--S---", 7, 8, "1000 1100 dddd 0110", "tsetb rbd", 0, - - "-ZS---", 7, 16, "0000 1001 ssN0 dddd", "xor rd,@rs", 0, - "-ZS---", 9, 16, "0100 1001 0000 dddd address_src", "xor rd,address_src", 0, - "-ZS---", 10, 16, "0100 1001 ssN0 dddd address_src", "xor rd,address_src(rs)", 0, - "-ZS---", 7, 16, "0000 1001 0000 dddd imm16", "xor rd,imm16", 0, - "-ZS---", 4, 16, "1000 1001 ssss dddd", "xor rd,rs", 0, - - "-ZSP--", 7, 8, "0000 1000 ssN0 dddd", "xorb rbd,@rs", 0, - "-ZSP--", 9, 8, "0100 1000 0000 dddd address_src", "xorb rbd,address_src", 0, - "-ZSP--", 10, 8, "0100 1000 ssN0 dddd address_src", "xorb rbd,address_src(rs)", 0, - "-ZSP--", 7, 8, "0000 1000 0000 dddd imm8 imm8", "xorb rbd,imm8", 0, - "-ZSP--", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0, + {"------", 10, 8, "0000 1110 imm8", "ext0e imm8", 0}, + {"------", 10, 8, "0000 1111 imm8", "ext0f imm8", 0}, + {"------", 10, 8, "1000 1110 imm8", "ext8e imm8", 0}, + {"------", 10, 8, "1000 1111 imm8", "ext8f imm8", 0}, + + {"------", 10, 8, "0011 0110 imm8", "rsvd36", 0}, + {"------", 10, 8, "0011 1000 imm8", "rsvd38", 0}, + {"------", 10, 8, "0111 1000 imm8", "rsvd78", 0}, + {"------", 10, 8, "0111 1110 imm8", "rsvd7e", 0}, + + {"------", 10, 8, "1001 1101 imm8", "rsvd9d", 0}, + {"------", 10, 8, "1001 1111 imm8", "rsvd9f", 0}, + + {"------", 10, 8, "1011 1001 imm8", "rsvdb9", 0}, + {"------", 10, 8, "1011 1111 imm8", "rsvdbf", 0}, + + {"---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 1000", "ldd @rd,@rs,rr", 0}, + {"---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 0000", "lddr @rd,@rs,rr", 0}, + {"---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 0000", "lddrb @rd,@rs,rr", 0}, + {"---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 0000", "ldir @rd,@rs,rr", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 0000 0000 rrrr dddd cccc", "cpi rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 0100 0000 rrrr dddd cccc", "cpir rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 1100 0000 rrrr dddd cccc", "cpdr rd,@rs,rr,cc", 0}, + {"---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 1000", "ldi @rd,@rs,rr", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 1000 0000 rrrr dddd cccc", "cpd rd,@rs,rr,cc", 0}, + {"---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 0000", "ldirb @rd,@rs,rr", 0}, + {"---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 1000", "lddb @rd,@rs,rr", 0}, + {"---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 1000", "ldib @rd,@rs,rr", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 1000 0000 rrrr dddd cccc", "cpdb rbd,@rs,rr,cc", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 1100 0000 rrrr dddd cccc", "cpdrb rbd,@rs,rr,cc", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 0000 0000 rrrr dddd cccc", "cpib rbd,@rs,rr,cc", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 0100 0000 rrrr dddd cccc", "cpirb rbd,@rs,rr,cc", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 1010 0000 rrrr ddN0 cccc", "cpsd @rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 1010 0000 rrrr ddN0 cccc", "cpsdb @rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdr @rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdrb @rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 0010 0000 rrrr ddN0 cccc", "cpsi @rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 0010 0000 rrrr ddN0 cccc", "cpsib @rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 16, "1011 1011 ssN0 0110 0000 rrrr ddN0 cccc", "cpsir @rd,@rs,rr,cc", 0}, + {"CZSV--", 11, 8, "1011 1010 ssN0 0110 0000 rrrr ddN0 cccc", "cpsirb @rd,@rs,rr,cc", 0}, + + {"------", 2, 8, "0011 0110 0000 0000", "bpt", 0}, + {"CZSV--", 5, 16, "1011 0101 ssss dddd", "adc rd,rs", 0}, + {"CZSVDH", 5, 8, "1011 0100 ssss dddd", "adcb rbd,rbs", 0}, + {"CZSV--", 7, 16, "0000 0001 ssN0 dddd", "add rd,@rs", 0}, + {"CZSV--", 9, 16, "0100 0001 0000 dddd address_src", "add rd,address_src", 0}, + {"CZSV--", 10, 16, "0100 0001 ssN0 dddd address_src", "add rd,address_src(rs)", 0}, + {"CZSV--", 7, 16, "0000 0001 0000 dddd imm16", "add rd,imm16", 0}, + {"CZSV--", 4, 16, "1000 0001 ssss dddd", "add rd,rs", 0}, + {"CZSVDH", 7, 8, "0000 0000 ssN0 dddd", "addb rbd,@rs", 0}, + {"CZSVDH", 9, 8, "0100 0000 0000 dddd address_src", "addb rbd,address_src", 0}, + {"CZSVDH", 10, 8, "0100 0000 ssN0 dddd address_src", "addb rbd,address_src(rs)", 0}, + {"CZSVDH", 7, 8, "0000 0000 0000 dddd imm8 imm8", "addb rbd,imm8", 0}, + {"CZSVDH", 4, 8, "1000 0000 ssss dddd", "addb rbd,rbs", 0}, + {"CZSV--", 14, 32, "0001 0110 ssN0 dddd", "addl rrd,@rs", 0}, + {"CZSV--", 15, 32, "0101 0110 0000 dddd address_src", "addl rrd,address_src", 0}, + {"CZSV--", 16, 32, "0101 0110 ssN0 dddd address_src", "addl rrd,address_src(rs)", 0}, + {"CZSV--", 14, 32, "0001 0110 0000 dddd imm32", "addl rrd,imm32", 0}, + {"CZSV--", 8, 32, "1001 0110 ssss dddd", "addl rrd,rrs", 0}, + + {"-ZS---", 7, 16, "0000 0111 ssN0 dddd", "and rd,@rs", 0}, + {"-ZS---", 9, 16, "0100 0111 0000 dddd address_src", "and rd,address_src", 0}, + {"-ZS---", 10, 16, "0100 0111 ssN0 dddd address_src", "and rd,address_src(rs)", 0}, + {"-ZS---", 7, 16, "0000 0111 0000 dddd imm16", "and rd,imm16", 0}, + {"-ZS---", 4, 16, "1000 0111 ssss dddd", "and rd,rs", 0}, + {"-ZSP--", 7, 8, "0000 0110 ssN0 dddd", "andb rbd,@rs", 0}, + {"-ZSP--", 9, 8, "0100 0110 0000 dddd address_src", "andb rbd,address_src", 0}, + {"-ZSP--", 10, 8, "0100 0110 ssN0 dddd address_src", "andb rbd,address_src(rs)", 0}, + {"-ZSP--", 7, 8, "0000 0110 0000 dddd imm8 imm8", "andb rbd,imm8", 0}, + {"-ZSP--", 4, 8, "1000 0110 ssss dddd", "andb rbd,rbs", 0}, + + {"-Z----", 8, 16, "0010 0111 ddN0 imm4", "bit @rd,imm4", 0}, + {"-Z----", 11, 16, "0110 0111 ddN0 imm4 address_dst", "bit address_dst(rd),imm4", 0}, + {"-Z----", 10, 16, "0110 0111 0000 imm4 address_dst", "bit address_dst,imm4", 0}, + {"-Z----", 4, 16, "1010 0111 dddd imm4", "bit rd,imm4", 0}, + {"-Z----", 10, 16, "0010 0111 0000 ssss 0000 dddd 0000 0000", "bit rd,rs", 0}, + + {"-Z----", 8, 8, "0010 0110 ddN0 imm4", "bitb @rd,imm4", 0}, + {"-Z----", 11, 8, "0110 0110 ddN0 imm4 address_dst", "bitb address_dst(rd),imm4", 0}, + {"-Z----", 10, 8, "0110 0110 0000 imm4 address_dst", "bitb address_dst,imm4", 0}, + {"-Z----", 4, 8, "1010 0110 dddd imm4", "bitb rbd,imm4", 0}, + {"-Z----", 10, 8, "0010 0110 0000 ssss 0000 dddd 0000 0000", "bitb rbd,rs", 0}, + + {"------", 10, 32, "0001 1111 ddN0 0000", "call @rd", 0}, + {"------", 12, 32, "0101 1111 0000 0000 address_dst", "call address_dst", 0}, + {"------", 13, 32, "0101 1111 ddN0 0000 address_dst", "call address_dst(rd)", 0}, + {"------", 10, 16, "1101 disp12", "calr disp12", 0}, + + {"------", 8, 16, "0000 1101 ddN0 1000", "clr @rd", 0}, + {"------", 11, 16, "0100 1101 0000 1000 address_dst", "clr address_dst", 0}, + {"------", 12, 16, "0100 1101 ddN0 1000 address_dst", "clr address_dst(rd)", 0}, + {"------", 7, 16, "1000 1101 dddd 1000", "clr rd", 0}, + {"------", 8, 8, "0000 1100 ddN0 1000", "clrb @rd", 0}, + {"------", 11, 8, "0100 1100 0000 1000 address_dst", "clrb address_dst", 0}, + {"------", 12, 8, "0100 1100 ddN0 1000 address_dst", "clrb address_dst(rd)", 0}, + {"------", 7, 8, "1000 1100 dddd 1000", "clrb rbd", 0}, + {"-ZS---", 12, 16, "0000 1101 ddN0 0000", "com @rd", 0}, + {"-ZS---", 15, 16, "0100 1101 0000 0000 address_dst", "com address_dst", 0}, + {"-ZS---", 16, 16, "0100 1101 ddN0 0000 address_dst", "com address_dst(rd)", 0}, + {"-ZS---", 7, 16, "1000 1101 dddd 0000", "com rd", 0}, + {"-ZSP--", 12, 8, "0000 1100 ddN0 0000", "comb @rd", 0}, + {"-ZSP--", 15, 8, "0100 1100 0000 0000 address_dst", "comb address_dst", 0}, + {"-ZSP--", 16, 8, "0100 1100 ddN0 0000 address_dst", "comb address_dst(rd)", 0}, + {"-ZSP--", 7, 8, "1000 1100 dddd 0000", "comb rbd", 0}, + {"CZSP--", 7, 16, "1000 1101 flags 0101", "comflg flags", 0}, + + {"CZSV--", 11, 16, "0000 1101 ddN0 0001 imm16", "cp @rd,imm16", 0}, + {"CZSV--", 15, 16, "0100 1101 ddN0 0001 address_dst imm16", "cp address_dst(rd),imm16", 0}, + {"CZSV--", 14, 16, "0100 1101 0000 0001 address_dst imm16", "cp address_dst,imm16", 0}, + + {"CZSV--", 7, 16, "0000 1011 ssN0 dddd", "cp rd,@rs", 0}, + {"CZSV--", 9, 16, "0100 1011 0000 dddd address_src", "cp rd,address_src", 0}, + {"CZSV--", 10, 16, "0100 1011 ssN0 dddd address_src", "cp rd,address_src(rs)", 0}, + {"CZSV--", 7, 16, "0000 1011 0000 dddd imm16", "cp rd,imm16", 0}, + {"CZSV--", 4, 16, "1000 1011 ssss dddd", "cp rd,rs", 0}, + + {"CZSV--", 11, 8, "0000 1100 ddN0 0001 imm8 imm8", "cpb @rd,imm8", 0}, + {"CZSV--", 15, 8, "0100 1100 ddN0 0001 address_dst imm8 imm8", "cpb address_dst(rd),imm8", 0}, + {"CZSV--", 14, 8, "0100 1100 0000 0001 address_dst imm8 imm8", "cpb address_dst,imm8", 0}, + {"CZSV--", 7, 8, "0000 1010 ssN0 dddd", "cpb rbd,@rs", 0}, + {"CZSV--", 9, 8, "0100 1010 0000 dddd address_src", "cpb rbd,address_src", 0}, + {"CZSV--", 10, 8, "0100 1010 ssN0 dddd address_src", "cpb rbd,address_src(rs)", 0}, + {"CZSV--", 7, 8, "0000 1010 0000 dddd imm8 imm8", "cpb rbd,imm8", 0}, + {"CZSV--", 4, 8, "1000 1010 ssss dddd", "cpb rbd,rbs", 0}, + + {"CZSV--", 14, 32, "0001 0000 ssN0 dddd", "cpl rrd,@rs", 0}, + {"CZSV--", 15, 32, "0101 0000 0000 dddd address_src", "cpl rrd,address_src", 0}, + {"CZSV--", 16, 32, "0101 0000 ssN0 dddd address_src", "cpl rrd,address_src(rs)", 0}, + {"CZSV--", 14, 32, "0001 0000 0000 dddd imm32", "cpl rrd,imm32", 0}, + {"CZSV--", 8, 32, "1001 0000 ssss dddd", "cpl rrd,rrs", 0}, + + {"CZS---", 5, 8, "1011 0000 dddd 0000", "dab rbd", 0}, + {"------", 11, 16, "1111 dddd 0disp7", "dbjnz rbd,disp7", 0}, + {"-ZSV--", 11, 16, "0010 1011 ddN0 imm4m1", "dec @rd,imm4m1", 0}, + {"-ZSV--", 14, 16, "0110 1011 ddN0 imm4m1 address_dst", "dec address_dst(rd),imm4m1", 0}, + {"-ZSV--", 13, 16, "0110 1011 0000 imm4m1 address_dst", "dec address_dst,imm4m1", 0}, + {"-ZSV--", 4, 16, "1010 1011 dddd imm4m1", "dec rd,imm4m1", 0}, + {"-ZSV--", 11, 8, "0010 1010 ddN0 imm4m1", "decb @rd,imm4m1", 0}, + {"-ZSV--", 14, 8, "0110 1010 ddN0 imm4m1 address_dst", "decb address_dst(rd),imm4m1", 0}, + {"-ZSV--", 13, 8, "0110 1010 0000 imm4m1 address_dst", "decb address_dst,imm4m1", 0}, + {"-ZSV--", 4, 8, "1010 1010 dddd imm4m1", "decb rbd,imm4m1", 0}, + + {"------", 7, 16, "0111 1100 0000 00ii", "di i2", 0}, + {"CZSV--", 107, 16, "0001 1011 ssN0 dddd", "div rrd,@rs", 0}, + {"CZSV--", 107, 16, "0101 1011 0000 dddd address_src", "div rrd,address_src", 0}, + {"CZSV--", 107, 16, "0101 1011 ssN0 dddd address_src", "div rrd,address_src(rs)", 0}, + {"CZSV--", 107, 16, "0001 1011 0000 dddd imm16", "div rrd,imm16", 0}, + {"CZSV--", 107, 16, "1001 1011 ssss dddd", "div rrd,rs", 0}, + {"CZSV--", 744, 32, "0001 1010 ssN0 dddd", "divl rqd,@rs", 0}, + {"CZSV--", 745, 32, "0101 1010 0000 dddd address_src", "divl rqd,address_src", 0}, + {"CZSV--", 746, 32, "0101 1010 ssN0 dddd address_src", "divl rqd,address_src(rs)", 0}, + {"CZSV--", 744, 32, "0001 1010 0000 dddd imm32", "divl rqd,imm32", 0}, + {"CZSV--", 744, 32, "1001 1010 ssss dddd", "divl rqd,rrs", 0}, + + {"------", 11, 16, "1111 dddd 1disp7", "djnz rd,disp7", 0}, + {"------", 7, 16, "0111 1100 0000 01ii", "ei i2", 0}, + {"------", 6, 16, "1010 1101 ssss dddd", "ex rd,rs", 0}, + {"------", 12, 16, "0010 1101 ssN0 dddd", "ex rd,@rs", 0}, + {"------", 15, 16, "0110 1101 0000 dddd address_src", "ex rd,address_src", 0}, + {"------", 16, 16, "0110 1101 ssN0 dddd address_src", "ex rd,address_src(rs)", 0}, + + {"------", 12, 8, "0010 1100 ssN0 dddd", "exb rbd,@rs", 0}, + {"------", 15, 8, "0110 1100 0000 dddd address_src", "exb rbd,address_src", 0}, + {"------", 16, 8, "0110 1100 ssN0 dddd address_src", "exb rbd,address_src(rs)", 0}, + {"------", 6, 8, "1010 1100 ssss dddd", "exb rbd,rbs", 0}, + + {"------", 11, 16, "1011 0001 dddd 1010", "exts rrd", 0}, + {"------", 11, 8, "1011 0001 dddd 0000", "extsb rd", 0}, + {"------", 11, 32, "1011 0001 dddd 0111", "extsl rqd", 0}, + + {"------", 8, 16, "0111 1010 0000 0000", "halt", 0}, + {"------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0}, + {"------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0}, + {"------", 12, 16, "0011 1011 dddd 0100 imm16", "in rd,imm16", 0}, + {"------", 10, 8, "0011 1010 dddd 0100 imm16", "inb rbd,imm16", 0}, + {"-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0}, + {"-ZSV--", 14, 16, "0110 1001 ddN0 imm4m1 address_dst", "inc address_dst(rd),imm4m1", 0}, + {"-ZSV--", 13, 16, "0110 1001 0000 imm4m1 address_dst", "inc address_dst,imm4m1", 0}, + {"-ZSV--", 4, 16, "1010 1001 dddd imm4m1", "inc rd,imm4m1", 0}, + {"-ZSV--", 11, 8, "0010 1000 ddN0 imm4m1", "incb @rd,imm4m1", 0}, + {"-ZSV--", 14, 8, "0110 1000 ddN0 imm4m1 address_dst", "incb address_dst(rd),imm4m1", 0}, + {"-ZSV--", 13, 8, "0110 1000 0000 imm4m1 address_dst", "incb address_dst,imm4m1", 0}, + {"-ZSV--", 4, 8, "1010 1000 dddd imm4m1", "incb rbd,imm4m1", 0}, + {"---V--", 21, 16, "0011 1011 ssN0 1000 0000 aaaa ddN0 1000", "ind @rd,@rs,ra", 0}, + {"---V--", 21, 8, "0011 1010 ssN0 1000 0000 aaaa ddN0 1000", "indb @rd,@rs,rba", 0}, + {"---V--", 21, 8, "0011 1010 ssN0 0000 0000 aaaa ddN0 1000", "inib @rd,@rs,ra", 0}, + {"---V--", 21, 16, "0011 1010 ssN0 0000 0000 aaaa ddN0 0000", "inibr @rd,@rs,ra", 0}, + {"CZSVDH", 13, 16, "0111 1011 0000 0000", "iret", 0}, + {"------", 10, 16, "0001 1110 ddN0 cccc", "jp cc,@rd", 0}, + {"------", 7, 16, "0101 1110 0000 cccc address_dst", "jp cc,address_dst", 0}, + {"------", 8, 16, "0101 1110 ddN0 cccc address_dst", "jp cc,address_dst(rd)", 0}, + {"------", 6, 16, "1110 cccc disp8", "jr cc,disp8", 0}, + + {"------", 7, 16, "0000 1101 ddN0 0101 imm16", "ld @rd,imm16", 0}, + {"------", 8, 16, "0010 1111 ddN0 ssss", "ld @rd,rs", 0}, + {"------", 15, 16, "0100 1101 ddN0 0101 address_dst imm16", "ld address_dst(rd),imm16", 0}, + {"------", 12, 16, "0110 1111 ddN0 ssss address_dst", "ld address_dst(rd),rs", 0}, + {"------", 14, 16, "0100 1101 0000 0101 address_dst imm16", "ld address_dst,imm16", 0}, + {"------", 11, 16, "0110 1111 0000 ssss address_dst", "ld address_dst,rs", 0}, + {"------", 14, 16, "0011 0011 ddN0 ssss imm16", "ld rd(imm16),rs", 0}, + {"------", 14, 16, "0111 0011 ddN0 ssss 0000 xxxx 0000 0000", "ld rd(rx),rs", 0}, + {"------", 7, 16, "0010 0001 ssN0 dddd", "ld rd,@rs", 0}, + {"------", 9, 16, "0110 0001 0000 dddd address_src", "ld rd,address_src", 0}, + {"------", 10, 16, "0110 0001 ssN0 dddd address_src", "ld rd,address_src(rs)", 0}, + {"------", 7, 16, "0010 0001 0000 dddd imm16", "ld rd,imm16", 0}, + {"------", 3, 16, "1010 0001 ssss dddd", "ld rd,rs", 0}, + {"------", 14, 16, "0011 0001 ssN0 dddd imm16", "ld rd,rs(imm16)", 0}, + {"------", 14, 16, "0111 0001 ssN0 dddd 0000 xxxx 0000 0000", "ld rd,rs(rx)", 0}, + + {"------", 7, 8, "0000 1100 ddN0 0101 imm8 imm8", "ldb @rd,imm8", 0}, + {"------", 8, 8, "0010 1110 ddN0 ssss", "ldb @rd,rbs", 0}, + {"------", 15, 8, "0100 1100 ddN0 0101 address_dst imm8 imm8", "ldb address_dst(rd),imm8", 0}, + {"------", 12, 8, "0110 1110 ddN0 ssss address_dst", "ldb address_dst(rd),rbs", 0}, + {"------", 14, 8, "0100 1100 0000 0101 address_dst imm8 imm8", "ldb address_dst,imm8", 0}, + {"------", 11, 8, "0110 1110 0000 ssss address_dst", "ldb address_dst,rbs", 0}, + {"------", 14, 8, "0011 0010 ddN0 ssss imm16", "ldb rd(imm16),rbs", 0}, + {"------", 14, 8, "0111 0010 ddN0 ssss 0000 xxxx 0000 0000", "ldb rd(rx),rbs", 0}, + {"------", 7, 8, "0010 0000 ssN0 dddd", "ldb rbd,@rs", 0}, + {"------", 9, 8, "0110 0000 0000 dddd address_src", "ldb rbd,address_src", 0}, + {"------", 10, 8, "0110 0000 ssN0 dddd address_src", "ldb rbd,address_src(rs)", 0}, + {"------", 5, 8, "1100 dddd imm8", "ldb rbd,imm8", 0}, + {"------", 3, 8, "1010 0000 ssss dddd", "ldb rbd,rbs", 0}, + {"------", 14, 8, "0011 0000 ssN0 dddd imm16", "ldb rbd,rs(imm16)", 0}, + {"------", 14, 8, "0111 0000 ssN0 dddd 0000 xxxx 0000 0000", "ldb rbd,rs(rx)", 0}, + + {"------", 11, 32, "0001 1101 ddN0 ssss", "ldl @rd,rrs", 0}, + {"------", 14, 32, "0101 1101 ddN0 ssss address_dst", "ldl address_dst(rd),rrs", 0}, + {"------", 15, 32, "0101 1101 0000 ssss address_dst", "ldl address_dst,rrs", 0}, + {"------", 17, 32, "0011 0111 ddN0 ssss imm16", "ldl rd(imm16),rrs", 0}, + {"------", 17, 32, "0111 0111 ddN0 ssss 0000 xxxx 0000 0000", "ldl rd(rx),rrs", 0}, + {"------", 11, 32, "0001 0100 ssN0 dddd", "ldl rrd,@rs", 0}, + {"------", 12, 32, "0101 0100 0000 dddd address_src", "ldl rrd,address_src", 0}, + {"------", 13, 32, "0101 0100 ssN0 dddd address_src", "ldl rrd,address_src(rs)", 0}, + {"------", 11, 32, "0001 0100 0000 dddd imm32", "ldl rrd,imm32", 0}, + {"------", 5, 32, "1001 0100 ssss dddd", "ldl rrd,rrs", 0}, + {"------", 17, 32, "0011 0101 ssN0 dddd imm16", "ldl rrd,rs(imm16)", 0}, + {"------", 17, 32, "0111 0101 ssN0 dddd 0000 xxxx 0000 0000", "ldl rrd,rs(rx)", 0}, + + {"------", 12, 16, "0111 0110 0000 dddd address_src", "lda prd,address_src", 0}, + {"------", 13, 16, "0111 0110 ssN0 dddd address_src", "lda prd,address_src(rs)", 0}, + {"------", 15, 16, "0011 0100 ssN0 dddd imm16", "lda prd,rs(imm16)", 0}, + {"------", 15, 16, "0111 0100 ssN0 dddd 0000 xxxx 0000 0000", "lda prd,rs(rx)", 0}, + {"------", 15, 16, "0011 0100 0000 dddd disp16", "ldar prd,disp16", 0}, + {"------", 7, 32, "0111 1101 ssss 1ccc", "ldctl ctrl,rs", 0}, + {"------", 7, 32, "0111 1101 dddd 0ccc", "ldctl rd,ctrl", 0}, + + {"------", 5, 16, "1011 1101 dddd imm4", "ldk rd,imm4", 0}, + + {"------", 11, 16, "0001 1100 ddN0 1001 0000 ssss 0000 imm4m1", "ldm @rd,rs,n", 0}, + {"------", 15, 16, "0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst(rd),rs,n", 0}, + {"------", 14, 16, "0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst,rs,n", 0}, + {"------", 11, 16, "0001 1100 ssN0 0001 0000 dddd 0000 imm4m1", "ldm rd,@rs,n", 0}, + {"------", 15, 16, "0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src(rs),n", 0}, + {"------", 14, 16, "0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src,n", 0}, + + {"CZSVDH", 12, 16, "0011 1001 ssN0 0000", "ldps @rs", 0}, + {"CZSVDH", 16, 16, "0111 1001 0000 0000 address_src", "ldps address_src", 0}, + {"CZSVDH", 17, 16, "0111 1001 ssN0 0000 address_src", "ldps address_src(rs)", 0}, + + {"------", 14, 16, "0011 0011 0000 ssss disp16", "ldr disp16,rs", 0}, + {"------", 14, 16, "0011 0001 0000 dddd disp16", "ldr rd,disp16", 0}, + {"------", 14, 8, "0011 0010 0000 ssss disp16", "ldrb disp16,rbs", 0}, + {"------", 14, 8, "0011 0000 0000 dddd disp16", "ldrb rbd,disp16", 0}, + {"------", 17, 32, "0011 0111 0000 ssss disp16", "ldrl disp16,rrs", 0}, + {"------", 17, 32, "0011 0101 0000 dddd disp16", "ldrl rrd,disp16", 0}, + + {"CZS---", 7, 16, "0111 1011 0000 1010", "mbit", 0}, + {"-ZS---", 12, 16, "0111 1011 dddd 1101", "mreq rd", 0}, + {"------", 5, 16, "0111 1011 0000 1001", "mres", 0}, + {"------", 5, 16, "0111 1011 0000 1000", "mset", 0}, + + {"CZSV--", 70, 16, "0001 1001 ssN0 dddd", "mult rrd,@rs", 0}, + {"CZSV--", 70, 16, "0101 1001 0000 dddd address_src", "mult rrd,address_src", 0}, + {"CZSV--", 70, 16, "0101 1001 ssN0 dddd address_src", "mult rrd,address_src(rs)", 0}, + {"CZSV--", 70, 16, "0001 1001 0000 dddd imm16", "mult rrd,imm16", 0}, + {"CZSV--", 70, 16, "1001 1001 ssss dddd", "mult rrd,rs", 0}, + {"CZSV--", 282, 32, "0001 1000 ssN0 dddd", "multl rqd,@rs", 0}, + {"CZSV--", 282, 32, "0101 1000 0000 dddd address_src", "multl rqd,address_src", 0}, + {"CZSV--", 282, 32, "0101 1000 ssN0 dddd address_src", "multl rqd,address_src(rs)", 0}, + {"CZSV--", 282, 32, "0001 1000 0000 dddd imm32", "multl rqd,imm32", 0}, + {"CZSV--", 282, 32, "1001 1000 ssss dddd", "multl rqd,rrs", 0}, + {"CZSV--", 12, 16, "0000 1101 ddN0 0010", "neg @rd", 0}, + {"CZSV--", 15, 16, "0100 1101 0000 0010 address_dst", "neg address_dst", 0}, + {"CZSV--", 16, 16, "0100 1101 ddN0 0010 address_dst", "neg address_dst(rd)", 0}, + {"CZSV--", 7, 16, "1000 1101 dddd 0010", "neg rd", 0}, + {"CZSV--", 12, 8, "0000 1100 ddN0 0010", "negb @rd", 0}, + {"CZSV--", 15, 8, "0100 1100 0000 0010 address_dst", "negb address_dst", 0}, + {"CZSV--", 16, 8, "0100 1100 ddN0 0010 address_dst", "negb address_dst(rd)", 0}, + {"CZSV--", 7, 8, "1000 1100 dddd 0010", "negb rbd", 0}, + + {"------", 7, 16, "1000 1101 0000 0111", "nop", 0}, + + {"CZS---", 7, 16, "0000 0101 ssN0 dddd", "or rd,@rs", 0}, + {"CZS---", 9, 16, "0100 0101 0000 dddd address_src", "or rd,address_src", 0}, + {"CZS---", 10, 16, "0100 0101 ssN0 dddd address_src", "or rd,address_src(rs)", 0}, + {"CZS---", 7, 16, "0000 0101 0000 dddd imm16", "or rd,imm16", 0}, + {"CZS---", 4, 16, "1000 0101 ssss dddd", "or rd,rs", 0}, + + {"CZSP--", 7, 8, "0000 0100 ssN0 dddd", "orb rbd,@rs", 0}, + {"CZSP--", 9, 8, "0100 0100 0000 dddd address_src", "orb rbd,address_src", 0}, + {"CZSP--", 10, 8, "0100 0100 ssN0 dddd address_src", "orb rbd,address_src(rs)", 0}, + {"CZSP--", 7, 8, "0000 0100 0000 dddd imm8 imm8", "orb rbd,imm8", 0}, + {"CZSP--", 4, 8, "1000 0100 ssss dddd", "orb rbd,rbs", 0}, + + {"---V--", 0, 16, "0011 1111 ddN0 ssss", "out @rd,rs", 0}, + {"---V--", 0, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0}, + {"---V--", 0, 8, "0011 1110 ddN0 ssss", "outb @rd,rbs", 0}, + {"---V--", 0, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0}, + {"---V--", 0, 16, "0011 1011 ssN0 1010 0000 aaaa ddN0 1000", "outd @rd,@rs,ra", 0}, + {"---V--", 0, 16, "0011 1010 ssN0 1010 0000 aaaa ddN0 1000", "outdb @rd,@rs,rba", 0}, + {"---V--", 0, 16, "0011 1011 ssN0 0010 0000 aaaa ddN0 1000", "outi @rd,@rs,ra", 0}, + {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 1000", "outib @rd,@rs,ra", 0}, + {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 0000", "outibr @rd,@rs,ra", 0}, + + {"------", 12, 16, "0001 0111 ssN0 ddN0", "pop @rd,@rs", 0}, + {"------", 16, 16, "0101 0111 ssN0 ddN0 address_dst", "pop address_dst(rd),@rs", 0}, + {"------", 16, 16, "0101 0111 ssN0 0000 address_dst", "pop address_dst,@rs", 0}, + {"------", 8, 16, "1001 0111 ssN0 dddd", "pop rd,@rs", 0}, + + {"------", 19, 32, "0001 0101 ssN0 ddN0", "popl @rd,@rs", 0}, + {"------", 23, 32, "0101 0101 ssN0 ddN0 address_dst", "popl address_dst(rd),@rs", 0}, + {"------", 23, 32, "0101 0101 ssN0 0000 address_dst", "popl address_dst,@rs", 0}, + {"------", 12, 32, "1001 0101 ssN0 dddd", "popl rrd,@rs", 0}, + + {"------", 13, 16, "0001 0011 ddN0 ssN0", "push @rd,@rs", 0}, + {"------", 14, 16, "0101 0011 ddN0 0000 address_src", "push @rd,address_src", 0}, + {"------", 14, 16, "0101 0011 ddN0 ssN0 address_src", "push @rd,address_src(rs)", 0}, + {"------", 12, 16, "0000 1101 ddN0 1001 imm16", "push @rd,imm16", 0}, + {"------", 9, 16, "1001 0011 ddN0 ssss", "push @rd,rs", 0}, + + {"------", 20, 32, "0001 0001 ddN0 ssN0", "pushl @rd,@rs", 0}, + {"------", 21, 32, "0101 0001 ddN0 ssN0 address_src", "pushl @rd,address_src(rs)", 0}, + {"------", 21, 32, "0101 0001 ddN0 0000 address_src", "pushl @rd,address_src", 0}, + {"------", 12, 32, "1001 0001 ddN0 ssss", "pushl @rd,rrs", 0}, + + {"------", 11, 16, "0010 0011 ddN0 imm4", "res @rd,imm4", 0}, + {"------", 14, 16, "0110 0011 ddN0 imm4 address_dst", "res address_dst(rd),imm4", 0}, + {"------", 13, 16, "0110 0011 0000 imm4 address_dst", "res address_dst,imm4", 0}, + {"------", 4, 16, "1010 0011 dddd imm4", "res rd,imm4", 0}, + {"------", 10, 16, "0010 0011 0000 ssss 0000 dddd 0000 0000", "res rd,rs", 0}, + + {"------", 11, 8, "0010 0010 ddN0 imm4", "resb @rd,imm4", 0}, + {"------", 14, 8, "0110 0010 ddN0 imm4 address_dst", "resb address_dst(rd),imm4", 0}, + {"------", 13, 8, "0110 0010 0000 imm4 address_dst", "resb address_dst,imm4", 0}, + {"------", 4, 8, "1010 0010 dddd imm4", "resb rbd,imm4", 0}, + {"------", 10, 8, "0010 0010 0000 ssss 0000 dddd 0000 0000", "resb rbd,rs", 0}, + + {"CZSV--", 7, 16, "1000 1101 flags 0011", "resflg flags", 0}, + {"------", 10, 16, "1001 1110 0000 cccc", "ret cc", 0}, + + {"CZSV--", 6, 16, "1011 0011 dddd 00I0", "rl rd,imm1or2", 0}, + {"CZSV--", 6, 8, "1011 0010 dddd 00I0", "rlb rbd,imm1or2", 0}, + {"CZSV--", 6, 16, "1011 0011 dddd 10I0", "rlc rd,imm1or2", 0}, + + {"-Z----", 9, 8, "1011 0010 dddd 10I0", "rlcb rbd,imm1or2", 0}, + {"-Z----", 9, 8, "1011 1110 aaaa bbbb", "rldb rbb,rba", 0}, + + {"CZSV--", 6, 16, "1011 0011 dddd 01I0", "rr rd,imm1or2", 0}, + {"CZSV--", 6, 8, "1011 0010 dddd 01I0", "rrb rbd,imm1or2", 0}, + {"CZSV--", 6, 16, "1011 0011 dddd 11I0", "rrc rd,imm1or2", 0}, + + {"-Z----", 9, 8, "1011 0010 dddd 11I0", "rrcb rbd,imm1or2", 0}, + {"-Z----", 9, 8, "1011 1100 aaaa bbbb", "rrdb rbb,rba", 0}, + {"CZSV--", 5, 16, "1011 0111 ssss dddd", "sbc rd,rs", 0}, + {"CZSVDH", 5, 8, "1011 0110 ssss dddd", "sbcb rbd,rbs", 0}, + + {"CZSVDH", 33, 8, "0111 1111 imm8", "sc imm8", 0}, + + {"CZSV--", 15, 16, "1011 0011 dddd 1011 0000 ssss 0000 0000", "sda rd,rs", 0}, + {"CZSV--", 15, 8, "1011 0010 dddd 1011 0000 ssss 0000 0000", "sdab rbd,rs", 0}, + {"CZSV--", 15, 32, "1011 0011 dddd 1111 0000 ssss 0000 0000", "sdal rrd,rs", 0}, + + {"CZS---", 15, 16, "1011 0011 dddd 0011 0000 ssss 0000 0000", "sdl rd,rs", 0}, + {"CZS---", 15, 8, "1011 0010 dddd 0011 0000 ssss 0000 0000", "sdlb rbd,rs", 0}, + {"CZS---", 15, 32, "1011 0011 dddd 0111 0000 ssss 0000 0000", "sdll rrd,rs", 0}, + + {"------", 11, 16, "0010 0101 ddN0 imm4", "set @rd,imm4", 0}, + {"------", 14, 16, "0110 0101 ddN0 imm4 address_dst", "set address_dst(rd),imm4", 0}, + {"------", 13, 16, "0110 0101 0000 imm4 address_dst", "set address_dst,imm4", 0}, + {"------", 4, 16, "1010 0101 dddd imm4", "set rd,imm4", 0}, + {"------", 10, 16, "0010 0101 0000 ssss 0000 dddd 0000 0000", "set rd,rs", 0}, + {"------", 11, 8, "0010 0100 ddN0 imm4", "setb @rd,imm4", 0}, + {"------", 14, 8, "0110 0100 ddN0 imm4 address_dst", "setb address_dst(rd),imm4", 0}, + {"------", 13, 8, "0110 0100 0000 imm4 address_dst", "setb address_dst,imm4", 0}, + {"------", 4, 8, "1010 0100 dddd imm4", "setb rbd,imm4", 0}, + {"------", 10, 8, "0010 0100 0000 ssss 0000 dddd 0000 0000", "setb rbd,rs", 0}, + + {"CZSV--", 7, 16, "1000 1101 flags 0001", "setflg flags", 0}, + + {"------", 0, 8, "0011 1010 dddd 0101 imm16", "sinb rbd,imm16", 0}, + {"------", 0, 8, "0011 1011 dddd 0101 imm16", "sin rd,imm16", 0}, + {"------", 0, 16, "0011 1011 ssN0 1000 0001 aaaa ddN0 1000", "sind @rd,@rs,ra", 0}, + {"------", 0, 8, "0011 1010 ssN0 1000 0001 aaaa ddN0 1000", "sindb @rd,@rs,rba", 0}, + {"------", 0, 8, "0011 1010 ssN0 0001 0000 aaaa ddN0 1000", "sinib @rd,@rs,ra", 0}, + {"------", 0, 16, "0011 1010 ssN0 0001 0000 aaaa ddN0 0000", "sinibr @rd,@rs,ra", 0}, + + {"CZSV--", 13, 16, "1011 0011 dddd 1001 0000 0000 imm8", "sla rd,imm8", 0}, + {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 0000 imm4", "slab rbd,imm4", 0}, + {"CZSV--", 13, 32, "1011 0011 dddd 1101 0000 0000 imm8", "slal rrd,imm8", 0}, + + {"CZS---", 13, 16, "1011 0011 dddd 0001 0000 0000 imm8", "sll rd,imm8", 0}, + {"CZS---", 13, 8, "1011 0010 dddd 0001 iiii iiii 0000 imm4", "sllb rbd,imm4", 0}, + {"CZS---", 13, 32, "1011 0011 dddd 0101 0000 0000 imm8", "slll rrd,imm8", 0}, + + {"------", 0, 16, "0011 1011 ssss 0111 imm16", "sout imm16,rs", 0}, + {"------", 0, 8, "0011 1010 ssss 0111 imm16", "soutb imm16,rbs", 0}, + {"------", 0, 16, "0011 1011 ssN0 1011 0000 aaaa ddN0 1000", "soutd @rd,@rs,ra", 0}, + {"------", 0, 8, "0011 1010 ssN0 1011 0000 aaaa ddN0 1000", "soutdb @rd,@rs,rba", 0}, + {"------", 0, 8, "0011 1010 ssN0 0011 0000 aaaa ddN0 1000", "soutib @rd,@rs,ra", 0}, + {"------", 0, 16, "0011 1010 ssN0 0011 0000 aaaa ddN0 0000", "soutibr @rd,@rs,ra", 0}, + + {"CZSV--", 13, 16, "1011 0011 dddd 1001 1111 1111 nim8", "sra rd,imm8", 0}, + {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 1111 nim4", "srab rbd,imm4", 0}, + {"CZSV--", 13, 32, "1011 0011 dddd 1101 1111 1111 nim8", "sral rrd,imm8", 0}, + + {"CZSV--", 13, 16, "1011 0011 dddd 0001 1111 1111 nim8", "srl rd,imm8", 0}, + {"CZSV--", 13, 8, "1011 0010 dddd 0001 iiii iiii 1111 nim4", "srlb rbd,imm4", 0}, + {"CZSV--", 13, 32, "1011 0011 dddd 0101 1111 1111 nim8", "srll rrd,imm8", 0}, + + {"CZSV--", 7, 16, "0000 0011 ssN0 dddd", "sub rd,@rs", 0}, + {"CZSV--", 9, 16, "0100 0011 0000 dddd address_src", "sub rd,address_src", 0}, + {"CZSV--", 10, 16, "0100 0011 ssN0 dddd address_src", "sub rd,address_src(rs)", 0}, + {"CZSV--", 7, 16, "0000 0011 0000 dddd imm16", "sub rd,imm16", 0}, + {"CZSV--", 4, 16, "1000 0011 ssss dddd", "sub rd,rs", 0}, + + {"CZSVDH", 7, 8, "0000 0010 ssN0 dddd", "subb rbd,@rs", 0}, + {"CZSVDH", 9, 8, "0100 0010 0000 dddd address_src", "subb rbd,address_src", 0}, + {"CZSVDH", 10, 8, "0100 0010 ssN0 dddd address_src", "subb rbd,address_src(rs)", 0}, + {"CZSVDH", 7, 8, "0000 0010 0000 dddd imm8 imm8", "subb rbd,imm8", 0}, + {"CZSVDH", 4, 8, "1000 0010 ssss dddd", "subb rbd,rbs", 0}, + + {"CZSV--", 14, 32, "0001 0010 ssN0 dddd", "subl rrd,@rs", 0}, + {"CZSV--", 15, 32, "0101 0010 0000 dddd address_src", "subl rrd,address_src", 0}, + {"CZSV--", 16, 32, "0101 0010 ssN0 dddd address_src", "subl rrd,address_src(rs)", 0}, + {"CZSV--", 14, 32, "0001 0010 0000 dddd imm32", "subl rrd,imm32", 0}, + {"CZSV--", 8, 32, "1001 0010 ssss dddd", "subl rrd,rrs", 0}, + + {"------", 5, 16, "1010 1111 dddd cccc", "tcc cc,rd", 0}, + {"------", 5, 8, "1010 1110 dddd cccc", "tccb cc,rbd", 0}, + + {"-ZS---", 8, 16, "0000 1101 ddN0 0100", "test @rd", 0}, + {"------", 11, 16, "0100 1101 0000 0100 address_dst", "test address_dst", 0}, + {"------", 12, 16, "0100 1101 ddN0 0100 address_dst", "test address_dst(rd)", 0}, + {"------", 7, 16, "1000 1101 dddd 0100", "test rd", 0}, + + {"-ZSP--", 8, 8, "0000 1100 ddN0 0100", "testb @rd", 0}, + {"-ZSP--", 11, 8, "0100 1100 0000 0100 address_dst", "testb address_dst", 0}, + {"-ZSP--", 12, 8, "0100 1100 ddN0 0100 address_dst", "testb address_dst(rd)", 0}, + {"-ZSP--", 7, 8, "1000 1100 dddd 0100", "testb rbd", 0}, + + {"-ZS---", 13, 32, "0001 1100 ddN0 1000", "testl @rd", 0}, + {"-ZS---", 16, 32, "0101 1100 0000 1000 address_dst", "testl address_dst", 0}, + {"-ZS---", 17, 32, "0101 1100 ddN0 1000 address_dst", "testl address_dst(rd)", 0}, + {"-ZS---", 13, 32, "1001 1100 dddd 1000", "testl rrd", 0}, + + {"-ZSV--", 25, 8, "1011 1000 ddN0 1000 0000 aaaa ssN0 0000", "trdb @rd,@rs,rba", 0}, + {"-ZSV--", 25, 8, "1011 1000 ddN0 1100 0000 aaaa ssN0 0000", "trdrb @rd,@rs,rba", 0}, + {"-ZSV--", 25, 8, "1011 1000 ddN0 0000 0000 rrrr ssN0 0000", "trib @rd,@rs,rbr", 0}, + {"-ZSV--", 25, 8, "1011 1000 ddN0 0100 0000 rrrr ssN0 0000", "trirb @rd,@rs,rbr", 0}, + {"-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtdb @ra,@rb,rbr", 0}, + {"-ZSV--", 25, 8, "1011 1000 aaN0 1110 0000 rrrr bbN0 1110", "trtdrb @ra,@rb,rbr", 0}, + {"-ZSV--", 25, 8, "1011 1000 aaN0 0010 0000 rrrr bbN0 0000", "trtib @ra,@rb,rbr", 0}, + {"-ZSV--", 25, 8, "1011 1000 aaN0 0110 0000 rrrr bbN0 1110", "trtirb @ra,@rb,rbr", 0}, + {"-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtrb @ra,@rb,rbr", 0}, + + {"--S---", 11, 16, "0000 1101 ddN0 0110", "tset @rd", 0}, + {"--S---", 14, 16, "0100 1101 0000 0110 address_dst", "tset address_dst", 0}, + {"--S---", 15, 16, "0100 1101 ddN0 0110 address_dst", "tset address_dst(rd)", 0}, + {"--S---", 7, 16, "1000 1101 dddd 0110", "tset rd", 0}, + + {"--S---", 11, 8, "0000 1100 ddN0 0110", "tsetb @rd", 0}, + {"--S---", 14, 8, "0100 1100 0000 0110 address_dst", "tsetb address_dst", 0}, + {"--S---", 15, 8, "0100 1100 ddN0 0110 address_dst", "tsetb address_dst(rd)", 0}, + {"--S---", 7, 8, "1000 1100 dddd 0110", "tsetb rbd", 0}, + + {"-ZS---", 7, 16, "0000 1001 ssN0 dddd", "xor rd,@rs", 0}, + {"-ZS---", 9, 16, "0100 1001 0000 dddd address_src", "xor rd,address_src", 0}, + {"-ZS---", 10, 16, "0100 1001 ssN0 dddd address_src", "xor rd,address_src(rs)", 0}, + {"-ZS---", 7, 16, "0000 1001 0000 dddd imm16", "xor rd,imm16", 0}, + {"-ZS---", 4, 16, "1000 1001 ssss dddd", "xor rd,rs", 0}, + + {"-ZSP--", 7, 8, "0000 1000 ssN0 dddd", "xorb rbd,@rs", 0}, + {"-ZSP--", 9, 8, "0100 1000 0000 dddd address_src", "xorb rbd,address_src", 0}, + {"-ZSP--", 10, 8, "0100 1000 ssN0 dddd address_src", "xorb rbd,address_src(rs)", 0}, + {"-ZSP--", 7, 8, "0000 1000 0000 dddd imm8 imm8", "xorb rbd,imm8", 0}, + {"-ZSP--", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0}, - "------", 7, 32, "1000 1100 dddd 0001", "ldctlb rbd,ctrl", 0, - "CZSVDH", 7, 32, "1000 1100 ssss 1001", "ldctlb ctrl,rbs", 0, + {"------", 7, 32, "1000 1100 dddd 0001", "ldctlb rbd,ctrl", 0}, + {"CZSVDH", 7, 32, "1000 1100 ssss 1001", "ldctlb ctrl,rbs", 0}, - "*", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0, - "*", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + {"*", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0}, + {"*", 0, 0, 0, 0, 0} }; int @@ -627,86 +628,86 @@ struct tok_struct args[] = {"1", "CLASS_IMM+(ARG_IMM_1)",}, {"2", "CLASS_IMM+(ARG_IMM_2)",}, - 0, 0 + {0, 0} }; struct tok_struct toks[] = { - "0000", "CLASS_BIT+0", 1, - "0001", "CLASS_BIT+1", 1, - "0010", "CLASS_BIT+2", 1, - "0011", "CLASS_BIT+3", 1, - "0100", "CLASS_BIT+4", 1, - "0101", "CLASS_BIT+5", 1, - "0110", "CLASS_BIT+6", 1, - "0111", "CLASS_BIT+7", 1, - "1000", "CLASS_BIT+8", 1, - "1001", "CLASS_BIT+9", 1, - "1010", "CLASS_BIT+0xa", 1, - "1011", "CLASS_BIT+0xb", 1, - "1100", "CLASS_BIT+0xc", 1, - "1101", "CLASS_BIT+0xd", 1, - "1110", "CLASS_BIT+0xe", 1, - "1111", "CLASS_BIT+0xf", 1, - - "00I0", "CLASS_BIT_1OR2+0", 1, - "00I0", "CLASS_BIT_1OR2+1", 1, - "00I0", "CLASS_BIT_1OR2+2", 1, - "00I0", "CLASS_BIT_1OR2+3", 1, - "01I0", "CLASS_BIT_1OR2+4", 1, - "01I0", "CLASS_BIT_1OR2+5", 1, - "01I0", "CLASS_BIT_1OR2+6", 1, - "01I0", "CLASS_BIT_1OR2+7", 1, - "10I0", "CLASS_BIT_1OR2+8", 1, - "10I0", "CLASS_BIT_1OR2+9", 1, - "10I0", "CLASS_BIT_1OR2+0xa", 1, - "10I0", "CLASS_BIT_1OR2+0xb", 1, - "11I0", "CLASS_BIT_1OR2+0xc", 1, - "11I0", "CLASS_BIT_1OR2+0xd", 1, - "11I0", "CLASS_BIT_1OR2+0xe", 1, - "11I0", "CLASS_BIT_1OR2+0xf", 1, - - "ssss", "CLASS_REG+(ARG_RS)", 1, - "dddd", "CLASS_REG+(ARG_RD)", 1, - "aaaa", "CLASS_REG+(ARG_RA)", 1, - "bbbb", "CLASS_REG+(ARG_RB)", 1, - "rrrr", "CLASS_REG+(ARG_RR)", 1, - - "ssN0", "CLASS_REGN0+(ARG_RS)", 1, - "ddN0", "CLASS_REGN0+(ARG_RD)", 1, - "aaN0", "CLASS_REGN0+(ARG_RA)", 1, - "bbN0", "CLASS_REGN0+(ARG_RB)", 1, - "rrN0", "CLASS_REGN0+(ARG_RR)", 1, - - "cccc", "CLASS_CC", 1, - "nnnn", "CLASS_IMM+(ARG_IMMN)", 1, - "xxxx", "CLASS_REG+(ARG_RX)", 1, - "xxN0", "CLASS_REGN0+(ARG_RX)", 1, - "nminus1", "CLASS_IMM+(ARG_IMMNMINUS1)", 1, - - "disp16", "CLASS_DISP+(ARG_DISP16)", 4, - "disp12", "CLASS_DISP+(ARG_DISP12)", 3, - "flags", "CLASS_FLAGS", 1, - "address_dst", "CLASS_ADDRESS+(ARG_DST)", 4, - "address_src", "CLASS_ADDRESS+(ARG_SRC)", 4, - "imm4m1", "CLASS_IMM+(ARG_IMM4M1)", 1, - "imm4", "CLASS_IMM+(ARG_IMM4)", 1, - - "imm8", "CLASS_IMM+(ARG_IMM8)", 2, - "imm16", "CLASS_IMM+(ARG_IMM16)", 4, - "imm32", "CLASS_IMM+(ARG_IMM32)", 8, - "nim4", "CLASS_IMM+(ARG_NIM4)", 2, - "nim8", "CLASS_IMM+(ARG_NIM8)", 2, - "0ccc", "CLASS_0CCC", 1, - "1ccc", "CLASS_1CCC", 1, - "disp8", "CLASS_DISP8", 2, - "0disp7", "CLASS_0DISP7", 2, - "1disp7", "CLASS_1DISP7", 2, - "01ii", "CLASS_01II", 1, - "00ii", "CLASS_00II", 1, + {"0000", "CLASS_BIT+0", 1}, + {"0001", "CLASS_BIT+1", 1}, + {"0010", "CLASS_BIT+2", 1}, + {"0011", "CLASS_BIT+3", 1}, + {"0100", "CLASS_BIT+4", 1}, + {"0101", "CLASS_BIT+5", 1}, + {"0110", "CLASS_BIT+6", 1}, + {"0111", "CLASS_BIT+7", 1}, + {"1000", "CLASS_BIT+8", 1}, + {"1001", "CLASS_BIT+9", 1}, + {"1010", "CLASS_BIT+0xa", 1}, + {"1011", "CLASS_BIT+0xb", 1}, + {"1100", "CLASS_BIT+0xc", 1}, + {"1101", "CLASS_BIT+0xd", 1}, + {"1110", "CLASS_BIT+0xe", 1}, + {"1111", "CLASS_BIT+0xf", 1}, + + {"00I0", "CLASS_BIT_1OR2+0", 1}, + {"00I0", "CLASS_BIT_1OR2+1", 1}, + {"00I0", "CLASS_BIT_1OR2+2", 1}, + {"00I0", "CLASS_BIT_1OR2+3", 1}, + {"01I0", "CLASS_BIT_1OR2+4", 1}, + {"01I0", "CLASS_BIT_1OR2+5", 1}, + {"01I0", "CLASS_BIT_1OR2+6", 1}, + {"01I0", "CLASS_BIT_1OR2+7", 1}, + {"10I0", "CLASS_BIT_1OR2+8", 1}, + {"10I0", "CLASS_BIT_1OR2+9", 1}, + {"10I0", "CLASS_BIT_1OR2+0xa", 1}, + {"10I0", "CLASS_BIT_1OR2+0xb", 1}, + {"11I0", "CLASS_BIT_1OR2+0xc", 1}, + {"11I0", "CLASS_BIT_1OR2+0xd", 1}, + {"11I0", "CLASS_BIT_1OR2+0xe", 1}, + {"11I0", "CLASS_BIT_1OR2+0xf", 1}, + + {"ssss", "CLASS_REG+(ARG_RS)", 1}, + {"dddd", "CLASS_REG+(ARG_RD)", 1}, + {"aaaa", "CLASS_REG+(ARG_RA)", 1}, + {"bbbb", "CLASS_REG+(ARG_RB)", 1}, + {"rrrr", "CLASS_REG+(ARG_RR)", 1}, + + {"ssN0", "CLASS_REGN0+(ARG_RS)", 1}, + {"ddN0", "CLASS_REGN0+(ARG_RD)", 1}, + {"aaN0", "CLASS_REGN0+(ARG_RA)", 1}, + {"bbN0", "CLASS_REGN0+(ARG_RB)", 1}, + {"rrN0", "CLASS_REGN0+(ARG_RR)", 1}, + + {"cccc", "CLASS_CC", 1}, + {"nnnn", "CLASS_IMM+(ARG_IMMN)", 1}, + {"xxxx", "CLASS_REG+(ARG_RX)", 1}, + {"xxN0", "CLASS_REGN0+(ARG_RX)", 1}, + {"nminus1", "CLASS_IMM+(ARG_IMMNMINUS1)", 1}, + + {"disp16", "CLASS_DISP+(ARG_DISP16)", 4}, + {"disp12", "CLASS_DISP+(ARG_DISP12)", 3}, + {"flags", "CLASS_FLAGS", 1}, + {"address_dst", "CLASS_ADDRESS+(ARG_DST)", 4}, + {"address_src", "CLASS_ADDRESS+(ARG_SRC)", 4}, + {"imm4m1", "CLASS_IMM+(ARG_IMM4M1)", 1}, + {"imm4", "CLASS_IMM+(ARG_IMM4)", 1}, + + {"imm8", "CLASS_IMM+(ARG_IMM8)", 2}, + {"imm16", "CLASS_IMM+(ARG_IMM16)", 4}, + {"imm32", "CLASS_IMM+(ARG_IMM32)", 8}, + {"nim4", "CLASS_IMM+(ARG_NIM4)", 2}, + {"nim8", "CLASS_IMM+(ARG_NIM8)", 2}, + {"0ccc", "CLASS_0CCC", 1}, + {"1ccc", "CLASS_1CCC", 1}, + {"disp8", "CLASS_DISP8", 2}, + {"0disp7", "CLASS_0DISP7", 2}, + {"1disp7", "CLASS_1DISP7", 2}, + {"01ii", "CLASS_01II", 1}, + {"00ii", "CLASS_00II", 1}, - "iiii", "CLASS_IGNORE", 1, - 0, 0 + {"iiii", "CLASS_IGNORE", 1}, + {0, 0} }; char * @@ -772,30 +773,28 @@ chewbits (bits, length) static int chewname (name) - char *name; + char **name; { char *n; int nargs = 0; - n = name; - printf ("\""); + n = *name; while (*n && !iswhite (*n)) - { - printf ("%c", *n); - n++; - } - printf ("\","); /* Scan the operands and make entires for - them -remember indirect things */ + n++; - n = name; - printf ("OPC_"); - while (*n && !iswhite (*n)) + if (*n) { - printf ("%c", *n); - n++; + size_t len = n - *name; + char *newname = xmalloc (len + 1); + memcpy (newname, *name, len); + newname[len] = 0; + *name = newname; } - printf (",0,{"); + printf ("\"%s\",OPC_%s,0,{", *name, *name); + + /* Scan the operands and make entries for them. + Remember indirect things. */ while (*n) { int d; @@ -814,7 +813,7 @@ chewname (name) return nargs; } -static +static void sub (x, c) char *x; @@ -953,13 +952,13 @@ internal () } } -static +static void gas () { int c = count (); struct op *p = opt; - int idx = 0; + int idx = -1; char *oldname = ""; struct op *new = (struct op *) xmalloc (sizeof (struct op) * c); @@ -968,7 +967,8 @@ gas () /* sort all names in table alphabetically */ qsort (new, c, sizeof (struct op), func); - printf (" /* THIS FILE IS AUTOMAGICALLY GENERATED, DON'T EDIT IT */\n"); + printf ("/* DO NOT EDIT! -*- buffer-read-only: t -*-\n"); + printf (" This file is automatically generated by z8kgen. */\n\n"); printf ("#define ARG_MASK 0x0f\n"); @@ -1222,36 +1222,36 @@ gas () for (i = 0; toks[i].token; i++) printf ("#define %s\t0x%x\n", toks[i].token, i * 16); #endif - printf ("typedef struct {\n"); + printf ("\ntypedef struct {\n"); printf ("#ifdef NICENAMES\n"); - printf ("char *nicename;\n"); - printf ("int type;\n"); - printf ("int cycles;\n"); - printf ("int flags;\n"); + printf (" const char *nicename;\n"); + printf (" int type;\n"); + printf (" int cycles;\n"); + printf (" int flags;\n"); printf ("#endif\n"); - printf ("char *name;\n"); - printf ("unsigned char opcode;\n"); - printf ("void (*func) PARAMS ((void));\n"); - printf ("unsigned int arg_info[4];\n"); - printf ("unsigned int byte_info[%d];\n", BYTE_INFO_LEN); - printf ("int noperands;\n"); - printf ("int length;\n"); - printf ("int idx;\n"); - printf ("} opcode_entry_type;\n"); + printf (" const char *name;\n"); + printf (" unsigned char opcode;\n"); + printf (" void (*func) PARAMS ((void));\n"); + printf (" unsigned int arg_info[4];\n"); + printf (" unsigned int byte_info[%d];\n", BYTE_INFO_LEN); + printf (" int noperands;\n"); + printf (" int length;\n"); + printf (" int idx;\n"); + printf ("} opcode_entry_type;\n\n"); printf ("#ifdef DEFINE_TABLE\n"); - printf ("opcode_entry_type z8k_table[] = {\n"); + printf ("const opcode_entry_type z8k_table[] = {\n"); while (new->flags && new->flags[0]) { int nargs; int length; - printf ("\n\n/* %s *** %s */\n", new->bits, new->name); + printf ("\n/* %s *** %s */\n", new->bits, new->name); printf ("{\n"); printf ("#ifdef NICENAMES\n"); - printf ("\"%s\",%d,%d,\n", new->name, new->type, new->cycles); + printf ("\"%s\",%d,%d,", new->name, new->type, new->cycles); { int answer = 0; char *p = new->flags; @@ -1269,7 +1269,7 @@ gas () printf ("#endif\n"); - nargs = chewname (new->name); + nargs = chewname (&new->name); printf ("\n\t"); chewbits (new->bits, &length); @@ -1277,8 +1277,9 @@ gas () if (length & 1) abort(); + if (strcmp (oldname, new->name) != 0) + idx++; printf (",%d,%d,%d", nargs, length, idx); - idx++; oldname = new->name; printf ("},\n"); new++; diff -uprN binutils-2.13.90.0.16/patches/ld-multilib.patch binutils-2.13.90.0.18/patches/ld-multilib.patch --- binutils-2.13.90.0.16/patches/ld-multilib.patch Wed Dec 31 16:00:00 1969 +++ binutils-2.13.90.0.18/patches/ld-multilib.patch Tue Jan 21 10:21:34 2003 @@ -0,0 +1,633 @@ +2001-08-17 H.J. Lu + + * ldfile.h (ldfile_open_command_file): Return void again; + * ldfile.c (ldfile_open_command_file): Return if failed to open + the file and command_line.multilib_dir is not NULL. + +2001-06-29 H.J. Lu + + * ldfile.c (ldfile_open_file_search): Don't try + command_line.multilib_dir if it starts with a `slash'. + * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): + Likewise. + + * ldmain.c (set_scripts_dir): Allow the absolute path. + +2001-04-25 H.J. Lu + + * ldfile.h (ldfile_open_command_file): Return FILE *; + * ldfile.c (ldfile_open_command_file): Return NULL if failed + to open the file and command_line.multilib_dir is not NULL. + Return ldlex_input_stack if ok. + + * ldmain.c (main): Print out the external linker script for + --verbose. Try internal linker script if the external linker + script doesn't exist. + +2001-04-24 H.J. Lu + + * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Search + command_line.multilib_dir first if it is not NULL. + +2001-04-24 H.J. Lu + + * ldfile.h (slash): Declared. + + * ldfile.c (ldfile_try_open_file): New functon. Try to open + a file in a search directory. + (ldfile_open_file_search): Search command_line.multilib_dir + first if it is not NULL. + + * ldmain.c (set_scripts_dir): Use the relative path only. + +Thu Sep 24 21:06:07 1998 H.J. Lu (hjl@gnu.org) + + From "Brad M. Garcia" on Wed Sep 23 10:21:17 1998. + * emultempl/sunos.em (gld${EMULATION_NAME}_set_symbols): + Calling ldfile_add_library_path with one more argument, true. + * emultempl/gld960.em (gld960_before_parse): Likewise. + * emultempl/gld960c.em (gld960_before_parse): Likewise. + * emultempl/lnk960.em (lnk960_before_parse): Likewise. + +Wed Sep 16 07:32:44 1998 H.J. Lu (hjl@gnu.org) + + * ld.h (args_type): Add one field, multilib_dir. + + * ldfile.c (ldfile_add_library_path): Add one argument, append. + * ldfile.h (ldfile_add_library_path): Likewise. + + * ldgram.y: Calling ldfile_add_library_path with one more + argument, true. + * ldmain.c: Likewise. + * lexsup.c: Likewise. + + * ldmain.c (check_for_scripts_dir): Add one argument, append. + (main): Initialize command_line.multilib_dir to NULL. + (set_scripts_dir): If command_line.multilib_dir is not NULL, + prepend it to search path. + + * lexsup.c (OPTION_MULTILIB_DIR): New. + (parse_args): Handle OPTION_MULTILIB_DIR. + + * emultempl/elf32.em (gld${EMULATION_NAME}_get_script): If + command_line.multilib_dir != NULL, get linker scripts from + files. + +--- ld/emultempl/elf32.em.multilib Fri Jan 17 09:23:13 2003 ++++ ld/emultempl/elf32.em Fri Jan 17 09:33:31 2003 +@@ -704,6 +704,22 @@ cat >>e${EMULATION_NAME}.c <cmdline) + continue; ++ ++ if (command_line.multilib_dir != NULL ++ && *command_line.multilib_dir != '/') ++ { ++ filename = (char *) xmalloc (strlen (search->name) ++ + strlen (command_line.multilib_dir) ++ + len ++ + 3); ++ sprintf (filename, "%s/%s/%s", search->name, ++ command_line.multilib_dir, l->name); ++ ++ if (gld${EMULATION_NAME}_try_needed (filename, force)) ++ break; ++ free (filename); ++ } ++ + filename = (char *) xmalloc (strlen (search->name) + len + 2); + sprintf (filename, "%s/%s", search->name, l->name); + if (gld${EMULATION_NAME}_try_needed (filename, force)) +@@ -1413,10 +1429,12 @@ sc="-f stringify.sed" + + cat >>e${EMULATION_NAME}.c <> e${EMULATION_NAME}.c + echo ' ; else if (link_info.relocateable) return' >> e${EMULATION_NAME}.c +@@ -1443,11 +1461,17 @@ echo ' ; else return' + sed $sc ldscripts/${EMULATION_NAME}.x >> e${EMULATION_NAME}.c + echo '; }' >> e${EMULATION_NAME}.c + +-else ++fi + # Scripts read from the filesystem. + ++if test -z "$COMPILE_IN" ++then + cat >>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <>e${EMULATION_NAME}.c <next = NULL; + new->name = name; + new->cmdline = cmdline; +- *search_tail_ptr = new; +- search_tail_ptr = &new->next; ++ if (append) ++ { ++ new->next = NULL; ++ *search_tail_ptr = new; ++ search_tail_ptr = &new->next; ++ } ++ else ++ { ++ new->next = search_head; ++ search_head = new; ++ if (search_tail_ptr == &search_head) ++ search_tail_ptr = &new->next; ++ } + } + + /* Try to open a BFD for a lang_input_statement. */ +@@ -244,6 +259,55 @@ ldfile_try_open_bfd (attempt, entry) + return TRUE; + } + ++static bfd_boolean ++ldfile_try_open_file (arch, entry, search, lib, suffix) ++ const char *arch; ++ lang_input_statement_type *entry; ++ search_dirs_type *search; ++ const char *lib; ++ const char *suffix; ++{ ++ char *string; ++ ++ if (entry->dynamic && ! link_info.relocateable) ++ { ++ if (ldemul_open_dynamic_archive (arch, search, entry)) ++ return TRUE; ++ } ++ ++ string = (char *) xmalloc (strlen (search->name) ++ + strlen (slash) ++ + strlen (lib) ++ + strlen (entry->filename) ++ + strlen (arch) ++ + strlen (suffix) ++ + 1); ++ ++ if (entry->is_archive) ++ sprintf (string, "%s%s%s%s%s%s", search->name, slash, ++ lib, entry->filename, arch, suffix); ++ else if (entry->filename[0] == '/' || entry->filename[0] == '.' ++#if defined (__MSDOS__) || defined (_WIN32) ++ || entry->filename[0] == '\\' ++ || (ISALPHA (entry->filename[0]) ++ && entry->filename[1] == ':') ++#endif ++ ) ++ strcpy (string, entry->filename); ++ else ++ sprintf (string, "%s%s%s", search->name, slash, entry->filename); ++ ++ if (ldfile_try_open_bfd (string, entry)) ++ { ++ entry->filename = string; ++ return TRUE; ++ } ++ ++ free (string); ++ ++ return FALSE; ++} ++ + /* Search for and open the file specified by ENTRY. If it is an + archive, use ARCH, LIB and SUFFIX to modify the file name. */ + +@@ -268,43 +332,33 @@ ldfile_open_file_search (arch, entry, li + search != (search_dirs_type *) NULL; + search = search->next) + { +- char *string; +- +- if (entry->dynamic && ! link_info.relocateable) ++ if (command_line.multilib_dir != NULL ++ && *command_line.multilib_dir != *slash) + { +- if (ldemul_open_dynamic_archive (arch, search, entry)) +- return TRUE; +- } ++ const char *saved_name; ++ char *name; ++ bfd_boolean found; ++ ++ saved_name = search->name; ++ name = (char *) xmalloc (strlen (search->name) ++ + strlen (slash) ++ + strlen (command_line.multilib_dir) ++ + 1); ++ sprintf (name, "%s%s%s", saved_name, slash, ++ command_line.multilib_dir); ++ ++ search->name = name; ++ found = ldfile_try_open_file (arch, entry, search, lib, ++ suffix); ++ search->name = saved_name; + +- string = (char *) xmalloc (strlen (search->name) +- + strlen (slash) +- + strlen (lib) +- + strlen (entry->filename) +- + strlen (arch) +- + strlen (suffix) +- + 1); +- +- if (entry->is_archive) +- sprintf (string, "%s%s%s%s%s%s", search->name, slash, +- lib, entry->filename, arch, suffix); +- else if (entry->filename[0] == '/' || entry->filename[0] == '.' +-#if defined (__MSDOS__) || defined (_WIN32) +- || entry->filename[0] == '\\' +- || (ISALPHA (entry->filename[0]) +- && entry->filename[1] == ':') +-#endif +- ) +- strcpy (string, entry->filename); +- else +- sprintf (string, "%s%s%s", search->name, slash, entry->filename); +- +- if (ldfile_try_open_bfd (string, entry)) +- { +- entry->filename = string; +- return TRUE; ++ free (name); ++ if (found) ++ return found; + } + +- free (string); ++ if (ldfile_try_open_file (arch, entry, search, lib, suffix)) ++ return TRUE; + } + + return FALSE; +@@ -442,8 +496,14 @@ ldfile_open_command_file (name) + + if (ldlex_input_stack == (FILE *) NULL) + { +- bfd_set_error (bfd_error_system_call); +- einfo (_("%P%F: cannot open linker script file %s: %E\n"), name); ++ if (command_line.multilib_dir == NULL) ++ { ++ bfd_set_error (bfd_error_system_call); ++ einfo (_("%P%F: cannot open linker script file %s: %E\n"), ++ name); ++ } ++ else ++ return; + } + + lex_push_file (ldlex_input_stack, name); +--- ld/ldfile.h.multilib Fri Jan 17 09:23:13 2003 ++++ ld/ldfile.h Fri Jan 17 09:33:31 2003 +@@ -21,6 +21,7 @@ + #ifndef LDFILE_H + #define LDFILE_H + ++extern char *slash; + extern const char *ldfile_input_filename; + extern bfd_boolean ldfile_assumed_script; + extern unsigned long ldfile_output_machine; +@@ -44,7 +45,7 @@ extern search_dirs_type *search_head; + extern void ldfile_add_arch + PARAMS ((const char *)); + extern void ldfile_add_library_path +- PARAMS ((const char *, bfd_boolean cmdline)); ++ PARAMS ((const char *, bfd_boolean cmdline, bfd_boolean append)); + extern void ldfile_open_command_file + PARAMS ((const char *name)); + extern void ldfile_open_file +--- ld/ldgram.y.multilib Fri Jan 17 09:23:13 2003 ++++ ld/ldgram.y Fri Jan 17 09:33:31 2003 +@@ -319,7 +319,7 @@ ifile_p1: + | TARGET_K '(' NAME ')' + { lang_add_target($3); } + | SEARCH_DIR '(' filename ')' +- { ldfile_add_library_path ($3, FALSE); } ++ { ldfile_add_library_path ($3, FALSE, TRUE); } + | OUTPUT '(' filename ')' + { lang_add_output($3, 1); } + | OUTPUT_FORMAT '(' NAME ')' +--- ld/ldmain.c.multilib Fri Jan 17 09:23:13 2003 ++++ ld/ldmain.c Fri Jan 17 09:33:31 2003 +@@ -95,7 +95,7 @@ args_type command_line; + ld_config_type config; + + static void remove_output PARAMS ((void)); +-static bfd_boolean check_for_scripts_dir PARAMS ((char *dir)); ++static bfd_boolean check_for_scripts_dir PARAMS ((char *dir, bfd_boolean append)); + static bfd_boolean add_archive_element PARAMS ((struct bfd_link_info *, bfd *, + const char *)); + static bfd_boolean multiple_definition PARAMS ((struct bfd_link_info *, +@@ -221,6 +221,7 @@ main (argc, argv) + command_line.warn_mismatch = TRUE; + command_line.check_section_addresses = TRUE; + command_line.accept_unknown_input_arch = FALSE; ++ command_line.multilib_dir = NULL; + + /* We initialize DEMANGLING based on the environment variable + COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the +@@ -331,12 +332,34 @@ main (argc, argv) + char *s = ldemul_get_script (&isfile); + + if (isfile) +- ldfile_open_command_file (s); +- else +- { ++ { ++ ldfile_open_command_file (s); ++ ++ if (saved_script_handle == NULL) ++ { ++ /* We thought there was an external linker script. But ++ we couldn't find it. Let's try again for the internal ++ one without command_line.multilib_dir. */ ++ char *saved = command_line.multilib_dir; ++ command_line.multilib_dir = NULL; ++ s = ldemul_get_script (&isfile); ++ command_line.multilib_dir = saved; ++ if (isfile) ++ { ++ /* It should never happen. */ ++ bfd_set_error (bfd_error_system_call); ++ einfo (_("%P%F: cannot open linker script file %s: %E\n"), ++ s); ++ } ++ } ++ } ++ ++ if (!isfile) ++ { + lex_string = s; + lex_redirect (s); + } ++ + parser_input = input_script; + yyparse (); + lex_string = NULL; +@@ -587,8 +610,9 @@ get_emulation (argc, argv) + else return FALSE. */ + + static bfd_boolean +-check_for_scripts_dir (dir) ++check_for_scripts_dir (dir, append) + char *dir; ++ bfd_boolean append; + { + size_t dirlen; + char *buf; +@@ -603,7 +627,7 @@ check_for_scripts_dir (dir) + res = stat (buf, &s) == 0 && S_ISDIR (s.st_mode); + free (buf); + if (res) +- ldfile_add_library_path (dir, FALSE); ++ ldfile_add_library_path (dir, FALSE, append); + return res; + } + +@@ -621,7 +645,32 @@ set_scripts_dir () + char *end, *dir; + size_t dirlen; + +- if (check_for_scripts_dir (SCRIPTDIR)) ++ if (command_line.multilib_dir != NULL) ++ { ++ bfd_boolean found; ++ ++ if (*command_line.multilib_dir == *slash) ++ { ++ found = check_for_scripts_dir (command_line.multilib_dir, ++ FALSE); ++ } ++ else ++ { ++ dir = xmalloc (strlen (SCRIPTDIR) ++ + strlen (slash) ++ + strlen (command_line.multilib_dir) + 1); ++ sprintf (dir, "%s%s%s", SCRIPTDIR, slash, ++ command_line.multilib_dir); ++ ++ found = check_for_scripts_dir (dir, FALSE); ++ free (dir); ++ } ++ ++ if (found) ++ return; ++ } ++ ++ if (check_for_scripts_dir (SCRIPTDIR, TRUE)) + /* We've been installed normally. */ + return; + +@@ -650,13 +699,13 @@ set_scripts_dir () + strncpy (dir, program_name, dirlen); + dir[dirlen] = '\0'; + +- if (check_for_scripts_dir (dir)) ++ if (check_for_scripts_dir (dir, TRUE)) + /* Don't free dir. */ + return; + + /* Look for "ldscripts" in /../lib. */ + strcpy (dir + dirlen, "/../lib"); +- if (check_for_scripts_dir (dir)) ++ if (check_for_scripts_dir (dir, TRUE)) + return; + + /* Well, we tried. */ +--- ld/lexsup.c.multilib Fri Jan 17 09:23:13 2003 ++++ ld/lexsup.c Fri Jan 17 09:33:31 2003 +@@ -138,6 +138,7 @@ int parsing_defsym = 0; + #define OPTION_NO_STRIP_DISCARDED (OPTION_STRIP_DISCARDED + 1) + #define OPTION_ACCEPT_UNKNOWN_INPUT_ARCH (OPTION_NO_STRIP_DISCARDED + 1) + #define OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH (OPTION_ACCEPT_UNKNOWN_INPUT_ARCH + 1) ++#define OPTION_MULTILIB_DIR (OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH + 1) + + /* The long options. This structure is used for both the option + parsing and the help text. */ +@@ -329,6 +330,8 @@ static const struct ld_option ld_options + '\0', N_("SYMBOL"), N_("Call SYMBOL at load-time"), ONE_DASH }, + { {"Map", required_argument, NULL, OPTION_MAP}, + '\0', N_("FILE"), N_("Write a map file"), ONE_DASH }, ++ { {"multilib-dir", required_argument, NULL, OPTION_MULTILIB_DIR}, ++ '\0', N_("PATH"), N_("Specify a target directory"), TWO_DASHES }, + { {"no-define-common", no_argument, NULL, OPTION_NO_DEFINE_COMMON}, + '\0', NULL, N_("Do not define Common storage"), TWO_DASHES }, + { {"no-demangle", no_argument, NULL, OPTION_NO_DEMANGLE }, +@@ -739,7 +742,7 @@ parse_args (argc, argv) + xexit (0); + break; + case 'L': +- ldfile_add_library_path (optarg, TRUE); ++ ldfile_add_library_path (optarg, TRUE, TRUE); + break; + case 'l': + lang_add_input_file (optarg, lang_input_file_is_l_enum, +@@ -962,6 +965,9 @@ parse_args (argc, argv) + parser_input = input_script; + yyparse (); + break; ++ case OPTION_MULTILIB_DIR: ++ command_line.multilib_dir = xstrdup (optarg); ++ break; + case OPTION_SECTION_START: + { + char *optarg2; +@@ -1195,7 +1201,7 @@ set_default_dirlist (dirlist_ptr) + if (p != NULL) + *p = '\0'; + if (*dirlist_ptr != '\0') +- ldfile_add_library_path (dirlist_ptr, TRUE); ++ ldfile_add_library_path (dirlist_ptr, TRUE, TRUE); + if (p == NULL) + break; + dirlist_ptr = p + 1; diff -uprN binutils-2.13.90.0.16/src-release binutils-2.13.90.0.18/src-release --- binutils-2.13.90.0.16/src-release Wed Oct 2 10:17:19 2002 +++ binutils-2.13.90.0.18/src-release Tue Jan 21 10:21:32 2003 @@ -1,5 +1,5 @@ # Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002 Free Software Foundation +# 1999, 2000, 2001, 2002, 2003 Free Software Foundation # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -55,7 +55,7 @@ DEVO_SUPPORT= README Makefile.in configu # distribution (perhaps it would be better to include it anyway). ETC_SUPPORT= Makefile.in configure configure.in standards.texi \ make-stds.texi standards.info* configure.texi configure.info* \ - configbuild.* configdev.* + configbuild.* configdev.* fdl.texi texi2pod.pl # When you use `make setup-dirs' or `make taz' you should always redefine @@ -136,7 +136,7 @@ do-proto-toplev: $(DEVO_SUPPORT) $(SUPPO mv -f tmp Makefile.in # ./configure sun4 - $(MAKE) configure-target \ + $(MAKE) configure-host configure-target \ ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \ CC_FOR_TARGET="$(CC)" CXX_FOR_TARGET="$(CXX)" # Make links, and run "make diststuff" or "make info" when needed.