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.
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.
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.
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
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
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.
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.
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.)
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.
// 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;
}
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.
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.
- 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.
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.
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.