Commit Graph

175 Commits

Author SHA1 Message Date
phx 1872c0f94c Applied a patch from Roman Zippel to fix jump table addressing in the M68k
codegen.

Taken from the gcc mailing list January 2007:
http://gcc.gnu.org/ml/gcc-patches/2007-01/msg02476.html

2007-01-30  Roman Zippel <zippel@linux-m68k.org>

        * config/m68k/m68k.c (output_move_himode)
	config/m68k/m68k.md: remove jump table recognition
	* config/m68k/m68k.c (ASM_OUTPUT_CASE_FETCH): use simple pc
	relative addressing

Approved by Christos Zoulas, Alistair Crooks and Matthew Green.
2008-11-20 22:53:17 +00:00
phx 8fea32b8ab Reverted my last modification, because it included GPLv3 code. Sorry. 2008-11-13 18:10:56 +00:00
phx b933ea4d67 Fixed jump table bugs (e.g. detected when compiling lang/php5 for m68k).
The patch was suggested by Gunther Nikl <gnikl@baltic.net> and is part
of gcc 4.3.x.

	Backport from mainline (SVN 128601):
	2007-09-19  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.c (output_move_himode): Remove jump table
	recognition.
	config/m68k/m68k.md (lea): Likewise.
	* config/m68k/m68k.c (print_operand_address): Use simple pc
	relative addressing.
2008-11-12 21:40:03 +00:00
mrg 9917d709a8 - add a i386/t-netbsd64 makefile fragment to build 32/64 bit
libgcc/multilib on amd64
- enable the 32/64 bit libgcc/multilib support on sparc64
- adapt mknative-gcc to grab multilib.h
- use --enable-multilib on amd64 and sparc64

none of this affects the installed tools yet, just the src/tools one.
2008-10-11 05:03:43 +00:00
mrg 5e3d72fe31 move the code that sets ld_vers and other variables so that it is
always executed, regardless of cached values.  this lets the comdat
version test for gas work properly.
2008-10-06 00:07:08 +00:00
mrg 983106fbb3 fix a 2 year old fix that broke genmultilib. ${CONFIG_SHELL}
wasn't expanded inside cat >tmpmultilib<<\EOF due to the \.
use two cat's to generate these files now, one with EOF and
one with \EOF.
2008-10-05 23:04:00 +00:00
mrg 674db90903 merge cornflakes from gcc-4-1-20080831-139820 2008-08-31 09:51:31 +00:00
mrg d85c56d01b import GCC 4.1-branch from 20080831 / svn 139820.
this fixes at least these GCC PR's:

	middle-end/35163
	target/34393
	middle_end/34150
	middle-end/34627
	middle-end/33631
	c++/34950
	c++/34774
	c++/35007
	libstdc++/20448
	libstdc++/20451
2008-08-31 09:39:12 +00:00
mrg 603b7728c3 import GCC 4.1-branch from 20080831 / svn 139820.
this fixes at least these GCC PR's:

	middle-end/35163
	target/34393
	middle_end/34150
	middle-end/34627
	middle-end/33631
	c++/34950
	c++/34774
	c++/35007
	libstdc++/20448
	libstdc++/20451
2008-08-31 09:28:43 +00:00
mrg e03df4d47b regen for this commit:
revision 1.9
date: 2008/08/31 08:16:45;  author: mrg;  state: Exp;  lines: +11 -17
move the AC_CACHE_CHECK(__stack_chk_fail, [ ... ]) code out
of the linux-specific section, so that it will be used by
everyone.

use AC_CHECK_FUNS() to check for __stack_chk_guard on netbsd.

now this test is properly cross-compile friendly.
2008-08-31 08:17:21 +00:00
mrg 556a5211d2 move the AC_CACHE_CHECK(__stack_chk_fail, [ ... ]) code out
of the linux-specific section, so that it will be used by
everyone.

use AC_CHECK_FUNS() to check for __stack_chk_guard on netbsd.

now this test is properly cross-compile friendly.
2008-08-31 08:16:45 +00:00
drochner 15efbe0f34 Back out an old local modification (originating from PR lib/29832)
which effectively disables *wprintf and *wscanf functions in
the std namespace. We have wchar support now.
(It might be necessary to do a "make clean" in
src/gnu/lib/libstdc++-v3_4/include for this to have effect.)
2008-08-27 14:38:58 +00:00
martin 92ee6fcbd5 Do not completely overwrite tm_defines in m68k specific target selection,
it may have been set globaly before for NETBSD_ENABLE_PTHREADS.
This caused wrong (old, pre NetBSD 2.0) builtin specs for m68k.
Fixes PR toolchain/38931.
2008-08-24 08:38:14 +00:00
lukem 18a7b6ae04 Tweak rules to disable generation of .c files from .l / .y.
(Goal is to minimize differences with the vendor file)
Fix PR 38152.
2008-08-12 10:09:31 +00:00
christos a81b2a4e6c Restore functionality lost during the libcpp conversion: cpp -CC should convert
// comments to /* comments */ not only during macro definition, but also
macro argument collection. Otherwise the following:

    #define b(a) a
    main {
	b(
	// 1);
	0);
    }

gets expanded to:

    main()
    {
	    return //          1); 0;
    }

instead of:

    main()
    {
	    return /*          1);*/ 0;
    }
2008-05-30 15:12:24 +00:00
tsutsui 407e634a58 Pull the follwoing fix from upstream:
http://gcc.gnu.org/viewcvs/trunk/gcc/config/m68k/m68k.md#rev117181
>       * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
>       -2147483647 - 1 instead of 0x80000000.

Fixes "internal compiler error: in do_SUBST" on compiling
floating point ops with -msoft-float or -m68010 on LP64 hosts,
and may also close PR toolchain/38359.  Tested on alpha.
2008-05-01 23:50:32 +00:00
christos 29c39f7ad5 Add -lc when -shared so that all shared libraries built by the compiler
have a dependency to -lc. To avoid adding that dependency in -lc and -lgcc*
we add -nostdlib to the compile rules.
2008-04-27 23:49:27 +00:00
uwe 95c5c2aebe Defer wide int L/LL suffix choice in insn-*.c until we compile for
host using correct set of HOST_WIDE_INT* defines.  Fixes compilation
of native sh3 gcc on 64-bit build machines.

Background and details in NetBSD PR 34549 and GCC bug 32497.
Tested by Joerg and myself.

Approved by "looks ok, but let some other guy decide" from ~all of our
gcc folks.
2008-04-22 22:06:01 +00:00
tls 804778b0a3 Fix build issue on modern OS/X (particularly 10.5 on powerpc) 2008-03-07 14:57:09 +00:00
mrg 62eb13e7b7 add a NetBSD_DISABLED_foo rule for arm-tune.md. 2008-02-05 02:21:59 +00:00
mrg 399266cb7b use C comments, not C++ comments. 2008-02-04 04:20:51 +00:00
mrg c2b313f307 bump NetBSD date. 2008-02-03 22:15:38 +00:00
mrg 9805c65117 merge gcc-4-1-20080202-132073. 2008-02-03 02:48:44 +00:00
mrg a67241065b upgrade to GCC-4.1 20080202 (svn 132073). this includes fixes for
these GCC PR's:

	c++/17763
	middle-end/25445
	c++/27177
	target/28307
	rtl-optimization/30113
	target/31331
	c++/31941
	rtl-optimization/31944
	tree-optimization/31966
	c++/32112
	c++/32113
	rtl-optimization/32450
	target/32506
	tree-optimization/32533
	target/32641
	target/32660
	tree-optimization/32681
	middle-end/32912
	c++/32992
	tree-optimization/33142
	target/33256
	bootstrap/33418
	c++/33744
	driver/33772
	rtl-optimization/33822
	middle-end/33826
	c++/33959
	bootstrap/34003
	middle-end/34030
	middle-end/34130
	rtl-optimization/34456
	libgfortran/34699
	c/34993
	c++/35007
2008-02-03 00:08:23 +00:00
mrg b8deac4d69 upgrade to GCC-4.1 20080202 (svn 132073). this includes fixes for
these GCC PR's:

	c++/17763
	middle-end/25445
	c++/27177
	target/28307
	rtl-optimization/30113
	target/31331
	c++/31941
	rtl-optimization/31944
	tree-optimization/31966
	c++/32112
	c++/32113
	rtl-optimization/32450
	target/32506
	tree-optimization/32533
	target/32641
	target/32660
	tree-optimization/32681
	middle-end/32912
	c++/32992
	tree-optimization/33142
	target/33256
	bootstrap/33418
	c++/33744
	driver/33772
	rtl-optimization/33822
	middle-end/33826
	c++/33959
	bootstrap/34003
	middle-end/34030
	middle-end/34130
	rtl-optimization/34456
	libgfortran/34699
	c/34993
	c++/35007
2008-02-02 23:40:02 +00:00
mrg 987268dd69 upgrade to GCC-4.1 20080202 (svn 132073). this includes fixes for
these GCC PR's:

	c++/17763
	middle-end/25445
	c++/27177
	target/28307
	rtl-optimization/30113
	target/31331
	c++/31941
	rtl-optimization/31944
	tree-optimization/31966
	c++/32112
	c++/32113
	rtl-optimization/32450
	target/32506
	tree-optimization/32533
	target/32641
	target/32660
	tree-optimization/32681
	middle-end/32912
	c++/32992
	tree-optimization/33142
	target/33256
	bootstrap/33418
	c++/33744
	driver/33772
	rtl-optimization/33822
	middle-end/33826
	c++/33959
	bootstrap/34003
	middle-end/34030
	middle-end/34130
	rtl-optimization/34456
	libgfortran/34699
	c/34993
	c++/35007
2008-02-02 22:46:12 +00:00
drochner ad37bd5da3 fix gcc bug #34130 (wrong multiplication with negative constants
inside abs()) which got some attention in the linux kernel mailing
list recently
2007-11-20 23:27:56 +00:00
skrll c1e4ee94be Fix kernel profiling on HPPA.
- stop gcc emitting stuff that HPUX requires
- don't use splhigh() in MCOUNT_ENTER as a call to _mcount will be
  generated at the moment. Disable interrupts in hardware instead.
- Fix _PROF_PROLOGUE to save/restore all the register args when calling
  _mcount.
- Fixup LEAF_ENTRY to dtrt (I think) in the GPROF case.
- Provide LEAF_ENTRY_NOPROFILE and sprinkle its use where i) profiling
  causes problems, e.g. trap handlers, and ii) where it just doesn't
  make sense, e.g. start.
2007-11-12 12:58:10 +00:00
christos 2872c55cb0 Add a hack to handle that the __stack_chk_fail_local call is not generated
properly for pic code; more explained in the code.
2007-09-15 16:24:06 +00:00
mrg 70d2e95cee merge GCC 4.1-20070620. 2007-06-21 04:01:59 +00:00
mrg f73a50514d import GCC-4.1 branch from 20070620 (revision 125891). this fixes 78
GCC PR's listed below, and also fixes some netbsd PR's.

	30370
	C++/28988
	C++/30016
	C++/30168
	C++/30221
	c++/28999
	c++/30536
	c++/30847
	c++/30852
	c++/30895
	c++/31074
	c++/31449
	c++/31517
	c++/31806
	c++/31809
	c/31520
	debug/29906
	debug/30189
	inline-asm/32109
	libstdc++/28125
	libstdc++/30586
	middle-end/24427
	middle-end/29683
	middle-end/30313
	middle-end/30364
	middle-end/30433
	middle-end/30473
	middle-end/30729
	middle-end/30761
	middle-end/31448
	middle-end/32285
	objc/27438
	objc/30479
	other/27843
	preprocessor/30468:
	rtl-optimization/28011
	rtl-optimization/28173
	rtl-optimization/28772
	rtl-optimization/29329
	rtl-optimization/29599
	rtl-optimization/30643
	rtl-optimization/30787
	rtl-optimization/30931
	rtl-optimization/31691
	target/18989
	target/19087
	target/25448
	target/26090
	target/28623
	target/28675
	target/29487
	target/30289
	target/30483
	target/30848
	target/31022
	target/31123
	target/31137
	target/31245
	target/31361
	target/31380
	target/31480
	target/31582
	target/31641
	target/31701
	target/31876
	target/32163
	tree-opt/30045
	tree-optimization/26643
	tree-optimization/26854
	tree-optimization/26998
	tree-optimization/27087
	tree-optimization/29446
	tree-optimization/29925
	tree-optimization/30212
	tree-optimization/30590
	tree-optimization/30823
	tree-optimization/31632
	tree-optimization/32353
2007-06-20 22:55:47 +00:00
he 47b1d7c5c4 Commit generated file after correcting to use the "standardized"
variable for overriding SSP functionality location test.
2007-06-07 15:56:48 +00:00
he 678b5429b3 Instead of inventing a new environment variable to override the
SSP functionality location test, use gcc_cv_libc_provides_ssp instead,
as hinted by freza@ and uwe@.
2007-06-07 14:36:27 +00:00
he 20237a6fdb Commit autoconf-generated file after modifying configure.ac to allow
override of the TARGET_LIBC_PROVIDES_SSP test.
2007-06-07 08:59:53 +00:00
he bd8f620dfb Modify the gcc configure script to allow override of the "target libc
has ssp functions built-in" test via the TARGET_LIBC_PROVIDES_SSP environment
variable, to allow us to configure a cross-compiler appropriately without
having to try to find out by looking in the target's source directory.

Tweak our build to tell gcc that the ssp bits are now in libc.

The native compiler appears to already think that the ssp bits
live in libc, so no change appears to be needed there.

The autoconf-generated configure script will be committed separately shortly.
2007-06-07 08:58:58 +00:00
uwe 86fd3cca3a Fix gcc codegen bug that manifests during generation of stack
protector code for sh3.  Details in gcc pr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32163

Author: kkojima
Date: Sun Jun  3 04:38:52 2007
New Revision: 125292

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125292
Log:
        PR target/32163
        * config/sh/sh.md (symGOT_load): Don't schedule insns when
        the symbol is generated with the stack protector.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/sh.md
2007-06-03 21:02:44 +00:00
matt 3649c80dc2 Fix LP64 issue with invalid register names. When printing a register name,
look in reg_renumber if the register >= FIRST_PSEUDO_REGISTER.
Add code to not use movc3 for small fixed (<= 48 byte) moves.  Instead
expand them to the proper series of mov[qlwb] instructions.
2007-04-20 16:30:32 +00:00
matt 517c8a8b40 Make movmemhi insn pattern use "o" constraint to avoid codegen bugs.
Fix some non-use of MEM_P, REG_P, CONST_INT_P.
2007-04-18 22:55:24 +00:00
matt d96c1bd9b7 At lower optimization levels, constants can tricle to subdi3. Deal with it. 2007-04-14 20:43:03 +00:00
matt e449ba3363 Change tst<mode> pattern to use nrmT for constraints instead of g. 2007-04-13 20:02:42 +00:00
matt c9e6e23717 If possible, adjust extzv/insv to not cross int boundaries. 2007-04-11 02:21:07 +00:00
matt 0606d1948b when pic, symbol [ + offset ] + reg is indexed so it's mode dependent.
Make sure we indicate that.  (fixes the as bug)
2007-04-09 03:44:14 +00:00
matt 2d3546bb65 Fix a optimize_size problem in the correct (and smaller) manner. 2007-04-08 10:32:42 +00:00
matt 768e321a24 Switch back to mnegl hi, mnegl lo, sbwc and prevent split_quadword_operands
from using POST_INC in the case of negation.  Fix reversal of operands in
-Os use of ashq.
2007-04-08 03:07:23 +00:00
matt 2c37c6c8f1 Fix a problem with -Os. 2007-04-07 22:50:27 +00:00
matt 43a709f886 2006-08-24 Richard Guenther <rguenther@suse.de>
* builtins.c (fold_builtin_classify): Fix typo.
2007-04-07 06:13:15 +00:00
matt 4fab8ae973 Fix addition of negative 64bit constants. Don't optimize the instructions
too much otherwise we might use some that don't affect the carry bit.  Make
sure we are using paired instructions (add/adwc, sub/sbwc).
2007-04-06 22:46:36 +00:00
matt 5db28f425f When mova[lq] to a push operand, do a pusha[lq] instead. 2007-04-06 20:50:33 +00:00
matt 4af7958221 Fix 64-bit negation. 2007-04-06 20:49:02 +00:00
matt 086f0329dc Fix constraints on ffs. 2007-04-02 16:45:39 +00:00