summaryrefslogtreecommitdiff
path: root/gnu/egcs/gcc
AgeCommit message (Collapse)Author
2011-04-15Implement the -MP, -MT, and -MF options so that all our platformsPhilip Guenthe
can support so-called "advanced automatic dependency generation" "lovely" deraadt@
2011-04-05Allow GCC2 to be used as a cross compiler from amd64 (can build m68k and sparcDale Rahn
with some additional assistance). ok miod@ Useful to quickly build kernels, say at hackathons.
2010-05-25unlink g77 from the build.Marc Espie
as discussed with Theo, so that he can synch set. (eventual gcc2 fallout to fix later)
2010-03-27Prevent uninitialized use of prev in replace_return_reg() and useOtto Moerbeek
prev_nonnote_insn() in push_frame_in_operand; ok miod@
2010-01-10Fix use of `enumeral_type' in template type unification error as seenFederico G. Schwindt
when compiling boost 1.41. From http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17327 via Markus Hennecke <markus-hennecke at markus-hennecke dot de>. miod@ tested and ok
2009-06-24Correct the prototype of ffecom_gfrt_basictype() to match theJonathan Gray
function, this change was made in the 3.4.0 release of gcc. ok deraadt@
2009-04-05- accept l modifier for %fMartynas Venckus
- while here; also accept %F fixes devel/libconfuse on gcc2 archs tested by naddy@ on VAX "no objection" miod@
2009-03-09Needed dependencies for make -j to behave correctly, backported from gcc 3;Miod Vallat
ok espie@
2008-11-04Reintroduce the extendsidi2 optimized sequence, but as a define_splitMiod Vallat
construct, so that it is still written in rtl statements, and part of it can be put in a delay slot. And the way it's written now, it does not create bogus uninitialized warnings.
2008-10-28Remove extendsidi2 expansion for now. It works, but since it only fillsMiod Vallat
the two SImode subregs of the DImode destination operand, this confuses the register life analysis and causes gcc to emit wrong warning about values not being initialized. Unfortunately, the fallback logic infers a worse sequence (mov + cmp against zero + ext of the cmp signedness bit, instead of mov + ext of the sign bit), which wastes an instruction and a register. This is hopefully a temporary measure until a nonconfusing flavour of the fast expansion is devised (preferrably one which does not expose the optimize_reg_copy_3 big-endian bug as well).
2008-10-27disable dependency that would run autoheader with better makes.Marc Espie
okay kettenis@, miod@, otto@
2008-08-06Unconditionnaly disable -fcse-skip-blocks at -O2 on m68k, for it causes NULLMiod Vallat
derefs in at least one case and I do not have time to debug this before the release. ok deraadt@
2008-07-26Recognize an explicit + sign in exponent of hex float constants, needed toMiod Vallat
compile current libm. ok martynas@
2008-06-12accept f in mantissa of hex float constant. from gcc svnMartynas Venckus
unbreaks libm on gcc2 ok miod@ (who created almost the same diff)
2008-04-25reg_renumber[] values are valid if >= 0, not > 0.Miod Vallat
2008-03-28Remove unnecessary whitespace on .type foo,@object lines, which confuse gasMiod Vallat
on some (not in-tree) configurations. ok espie@ kettenis@
2008-02-15Really enable weak aliases by disabling the unwanted SUPPORTS_WEAK override, theMiod Vallat
default logic works better.
2007-11-26Add a new warning to gcc, -Wvariable-decl, which causes it to warn forMiod Vallat
auto declarations which size are not known at compile time. This flag will eventually be added to the kernel makefiles so that we can rely on -Wstack-larger-than work. ok deraadt@ mbalmer@ otto@ marco@
2007-07-16Backport a gcc3 fix:Miod Vallat
* cse.c (cse_end_of_basic_block): Don't return the end of a basi block reached by a branch if we're not going to actually process this block
2007-05-31convert to new .Dd format;Jason McIntyre
2006-11-22Definitions for the fast block move routines were missing registers in theirMiod Vallat
clobbered list. Still not enabled by default, there are still bugs in their usage (perl does not build), but it's much better. No functional change yet.
2006-07-20Introduce a new compiler warning, -Wstack-larger-than-N, to reportMiod Vallat
functions which are too greedy in stack variables. This is intended to be used for kernel compiles, where this warning will be enabled for a reasonable size (after a few weeks grace period so that people can upgrade their compiler). Please note that this warning relies upon md code, and as such is only available on platforms OpenBSD runs on; also, the stack size being warned on is only the local variables size, regardless of the ABI stack usage requirements and the callee-saved registers; which means a function may be warning-clean yet need more stack space than meets the eye; the actual size being checked on may change to include these extras in the future.
2006-07-17make sure we pass makeinfo --no-split around, fixes gcc.info/g77.infoMarc Espie
generation issues.
2006-07-12makeinfo --no-split, simplifies sets immensely.Marc Espie
Approved deraadt@, kettenis@
2006-04-06Add limited support for -CC option. In particular, this does not workMarc Espie
with cpp -traditional, but it should be enough for lint. okay miod@
2006-03-09Recognize %z in addition to %Z as a printf format specifier; from espie@Miod Vallat
who is too shy to commit it.
2006-01-13Adapt to the machine/_types.h changes; size_t and ptrdiff_t are nowTodd C. Miller
defined in terms of long, not int on all architectures.
2006-01-06Include <sys/types.h> and don't define away __size_tTodd C. Miller
Based on existing bits for FreeBSD 5
2005-04-27Working trampolines for m88k, with the help of the kernel; now passes theMiod Vallat
921215-1 gcc testsuite.
2005-04-27Provide -ftrampolines and -Wtrampoline to the gcc 2.95 codebase.Miod Vallat
ok espie@
2005-02-20Change defaults on m68k platforms from -m68020 to -m68020-60.Miod Vallat
This makes a noticeable performance improvement on 68060, especially for crypto operations (such as ssh), with basically no loss on 680[234]0. ok deraadt@
2005-02-05-dynamic-linker ld.so is NOT a normal object file. Fixes issues in tryingMarc Espie
to build a gcc3 sparc. (reviewed and accepted upstream)
2005-01-09in cross builds, don't test non existent libgcc1.Marc Espie
"doh! ok!" niklas@ ;-)
2004-12-01Prevent -fno-builtin-{abort,exit} from causing cc1 to dump core.Miod Vallat
Spotted by espie@
2004-11-16Bring exec-stack.h correctly on i386/ELF; spotted by pageexec@freemail.huMiod Vallat
2004-09-06Correctly account for the %a5 register in function prologues; fixesMiod Vallat
inter-library function calls where the callee would change the GOT register but not restore it when returning to its caller. Helps immensely libpthread, as well as dynamically-linked X11 clients. Fromm gcc 3; tested by matthieu@, nick@ and todd@; ok deraadt@
2004-08-25typos from -f (PR #3907);Jason McIntyre
2004-08-08Make sure that format variable is not a variable sized array correctlyAnil Madhavapeddy
when doing bounds checking (bug revealed by mmap malloc). Noticed by krause@, tested otto@
2004-07-28In the never-ending saga of getting gcc to work reliably on m88k, today'sMiod Vallat
changes address incorrect stack usage, when optimization needs more nameless temporary values than available registers, and has to save them on stack. In some (rare) circumstances, it will compute a stack address _outside_ the current function local storage space, overwriting the caller's stack. Most of the time, this only affects the "outgoing argument area", which is harmless if it has not been populated; this explains why it has not been noticed earlier. Since I see no easy way to fix this, I decided to go the simpler way of removing this ougoing argument area. This not only reduces stack usage, but also makes varargs/stdarg code smaller and faster; also functions which get their first few arguments in registers, then some on the stack, then some in registers again, will not allocate stack space for the second set of arguments passed through registers. This is an ABI change, we are no longer 88Open compliant (have we ever been?).
2004-07-25Always build a stack frame when profiling. Otherwise profiling would onlyMiod Vallat
work for code compiled at -O0...
2004-07-21In builtin_saveregs(), try to save registers with double store instructions,Miod Vallat
knowing that the area we are using is correctly aligned. Produces smaller and faster code (about 0.8% time decrease in a complete build, which amounts to roughly 15 minutes).
2004-07-19In builtin_saveregs(), do not systematically allocate 8 words on the stackMiod Vallat
for registers if at least one nameless argument is passed through registers; instead, only allocate as many bytes as necessary. Slightly reduces stack usage; no ABI change.
2004-07-17Minor cleanups (remove duplicated extern lines, useMiod Vallat
current_function_{stdarg,varargs} instead of homegrown implementation, etc. No functional change.
2004-07-13switch sparc to setjmp/longjmp exceptions as DWARF2 handling is not present.Peter Valchev
fixes C++ exceptions. this relies on an earlier libstdc++ bump
2004-07-13A better fix for the m68k optimize_reg_copy_3() problem.Miod Vallat
The problem really only arises when optimize_reg_copy_3() attempts to merge a load which fits in a register and a load which does not fit - in the m68k case, merging an int32_t foo and (int64_t)foo two lines later. In this case, and only if the backend provides its own expansion of the extendsidi2 insn (usually for performance and code size reasons) as embedded assembly statements but not rtl operations, then gcc at this point will ``fail to realize'' that when sign-extending (or zero-extending) the value of rN into rN and r(N+1), the value of rN is not preserved on big-endian architectures, and the optimization will produce bad code. Of all the OpenBSD-supported platforms, arm and m68k are the only affected; but further optimizations in gcc3 (on arm) apparently neuter this bug, which I have been unable to reproduce in an arm build with gcc3. This commit works around the problem by preventing expansions larger than the width of a general register, on m68k only. Other platforms are not affected.
2004-07-12Oops, adjust for __va_list size increase.Miod Vallat
2004-07-04Disable optimize_reg_copy_3() on m68k platforms.Miod Vallat
This is a workaround for lines 1055-1057 of tcp_input.c being miscompiled, though the problem looks like missing use/clobber qualifiers in the extendplussidi insn, rather than a specific optimize_reg_copy_3() issue. A proper fix may be devised in the future, in the meantime this allows m68k platforms to be back in track.
2004-06-15Use gen_rtx_REG and gen_rtx_MEM instead of gen_rtx(REG,..) and gen_rtx(MEM,..).Miod Vallat
No functional change, it's just faster.
2004-06-12Revert 1.10 - there are still bad interactions between block_move_no_loop()Miod Vallat
and the reload phase when compiling complex code, and the fix is non-trivial.
2004-06-10Typos in option descriptions; fixed in gcc 3.Miod Vallat