summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/gcc
AgeCommit message (Collapse)Author
2013-12-03Backport from gcc4 (mostly): make collect2 preserve ld's stdout andPhilip Guenther
stderr separately so that redirections of gcc's stdout/stderr act as expected. ok and testing miod@
2013-09-05gcc4 has phased out -W in favor of -Wextra. Teach gcc3 to recognize -WextraMiod Vallat
as an ersatz for -W. Now that more and more third-party software assumes the compiler supports -Wextra, this is definitely worth doing.
2013-09-05Explicitely define USE_GAS for OpenBSD targets; the configure machinery inMiod Vallat
gcc 3 no longer defines this for us.
2013-08-07don't warn on missing newline at eofJonathan Gray
matches the behaviour of gcc >= 4.3 and clang ok miod@
2003-11-29Import gcc-3.3.2. Only the compiler. ada frontend removed for space Marc Espie
considerations.
2013-08-06One major difference between gcc 2.95 and gcc 3, is that the latter comesMiod Vallat
with an optimization pass which attemps to identify and remove dead stores. Unfortunately, this logic assumes that a given rtl MEM reference can only refer to register contents and values, but not further dereference memory. This is not true of all addressing modes on vax, and this causes gcc 3 to consider as dead stores everything which can be expressed as *offset(register) in vax assembly. The canonical example of this is linked list insertion or removal, with instructions such as "item->prev->next = item->next" being wrongly optimized out, and cause double frees or other funny linking problems later on. Add a knob to disable the troublesome part of that optimization pass, and only enable this knob on vax. This gives a native vax gcc 3 compiler able to rebuild the world.
2003-11-29Import gcc-3.3.2. Only the compiler. ada frontend removed for space Marc Espie
considerations.
2003-11-29Import gcc-3.3.2. Only the compiler. ada frontend removed for space Marc Espie
considerations.
2013-07-11ELF configuration for gcc3 on vax.Miod Vallat
2013-07-04Add support for the GCC binary integer constants extension.Jonathan Gray
From Joerg Wunsch in GCC PR 23479, under the GPLv2. This is required to build the i965 backend with newer versions of mesa. ok kettenis@ espie@ miod@
2003-11-29Import gcc-3.3.2. Only the compiler. ada frontend removed for space Marc Espie
considerations.
2013-06-04classify_integer(): test whether the value can be built using the `set'Miod Vallat
instruction, before testing whether it can be built with `or.u'; this allows further optimization. condition_value(): handle ORDERED and UNORDERED condition codes. print_operand(): remove support for no longer used `w' qualifier.
2013-06-04Add "length" attribute to "weird" class instructions of small length: userMiod Vallat
inline assembly, tb/tbnd instructions. Don't use `r' qualifier for "register_operand", it's redundant.
2013-05-08In block_move_sequence(), use emit_move_insn() instead of rolling our ownMiod Vallat
incomplete equivalent. The ugly BLK<->{QI,HI,SI,DI} load and store insns in m88k.md can thus get removed, and there was much rejoicing (as well as fewer warnings when building).
2013-05-08Do not define OBSD_NO_DYNAMIC_LIBRARIES when building an ELF m88k compiler.Miod Vallat
2013-04-20Define PIC_OFFSET_TABLE_REGNUM as INVALID_REGNUM when not compiling PIC.Miod Vallat
Also, when compiling PIC, do not force PIC_OFFSET_TABLE_REGNUM to be set in global_regs[], there is no reason to do this (on the other hand, forcing it to be set in fixed_regs[] and call_used_regs[] is still necessary and correct).
2013-04-20remove dead code in print_operand()Miod Vallat
2013-04-18Use __guard_local as the stack protector canary symbol, as already done inMiod Vallat
gcc 4.
2013-04-11Do not abuse -finhibit-size-directive to control tight code alignment:Miod Vallat
- turn FUNCTION_BOUNDARY into a constant, as intended, since its value is used (among other things) to decide the alignment to expect from a function pointer value. - remove LABEL_ALIGN_AFTER_BARRIER. There is no reason to align jump destinations on half a cache line, and the MI default for this value is good enough. However, in order to preserve the intent of what FUNCTION_BOUNDARY used to be defined as, initialize align_functions to sensible values in m88k_override_options(), unless -falign-functions=... is specified.
2013-02-12Reenable the stack protector code, the last varargs change fixed the issue.Miod Vallat
2013-02-08Replace the dummy definition of FUNCTION_ARG_PASS_BY_REFERENCE(). The newMiod Vallat
definition forces variable-sized types to always be passed by reference. Update the varargs code to cope with this. gcc.c-torture/execute/20020412-1 finally passes.
2013-02-08Stop providing our own EXPAND_BUILTIN_SAVEREGS(). Instead, do the necessaryMiod Vallat
RTL generation in SETUP_INCOMING_VARARGS(...,0). This means we no longer need to explicitely allocate room on the stack for the saved register area (which we did in EXPAND_BUILTIN_SAVEREGS). We were returning the correct size in SETUP_INCOMING_VARARGS's ``pretend_size'' argument anyway, causing this space to be allocated twice. This change should also allow for the stack protector to be reenabled (after more testing).
2013-02-06gcc3 configuration for OpenBSD/m68k/ELF. Apparently, with the ELF toolchainMiod Vallat
configuration, the wrong life analysis bug leading to removal of half the code of ISDOT() in libc's fts.c fts_stat() no longer triggers.
2013-02-06Apply the fix for gcc PR #9812, which fixes generation of XFmode (long double)Miod Vallat
code on m68k. In pure gcc tradition, even though the issue has been acknowledged as a bug introduced around gcc 2.5, it was considered as `not a regression' with subtle semantics tricks, and only fixed in 3.4.x although the fix was available for a long time. Although this changes an MI file, this chunk actually removes a no longer used function which was only ever used on m68k.
2003-11-29Import gcc-3.3.2. Only the compiler. ada frontend removed for space Marc Espie
considerations.
2003-11-29Import gcc-3.3.2. Only the compiler. ada frontend removed for space Marc Espie
considerations.
2013-01-30Revert m88k.md 1.7 and m88k.c 1.27, 1.26 and 1.24 (partially) to restore theMiod Vallat
existing behaviour of wrapping big PIC addresses in `unspec's to prevent the cse pass from modifying them. However, instead of building the unspec ourselves in the C code, rely upon explicitely named define_insn() constructs in the .md description. Then, fix the ambiguity this introduces between the locate1 and movsi_high_pic insns by defining symbolic constants as the unspec selector, and using them, instead of 0.
2013-01-28Use symbolic_address_p() instead of simply checking whether GET_CODE() isMiod Vallat
SYMBOL_REF or LABEL_REF, when deciding to put #got_rel relocations. This allows (symbol + constant) to be correctly relocated when building PIC.
2013-01-27The removal of the wrapping of PIC symbol references in an UNSPEC vectorMiod Vallat
caused the code responsible for adding the proper #got_rel relocation to the second part of the PIC symbol address load. Instead of using an UNSPEC for that purpose (which violates assumptions made by the MI code anyway), check for the the second operand of a LO_SUM being either a SYMBOL_REF or a LABEL_REF, to output the #got_rel relocation, and drop the remaining bits of UNSPEC handling.
2013-01-24Fix unused local and missing initializer warnings.Miod Vallat
2013-01-24Get rid of a few warnings by pouring prototypes and punctuation.Miod Vallat
2013-01-23m88k_expand_prologue(): add a REG_MAYBE_DEAD note to the insns loading theMiod Vallat
PIC base register, it case it turns out to not be necessary. This should not be needed because this sequence is only generated if current_function_uses_pic_offset_table is set, but it can't hurt to expect the worse (from rs6000). legitimize_address(): do not coerce the address using (unspec:SI gen_rtvec() ), but rather use it unmodified, in the -fPIC case. This lets libstdc++.so build (and probably anything else being compiled with -fPIC rather than -fpic).
2013-01-20Enable multilib to build -fpic and -fPIC versions of libgcc.a, in addition toMiod Vallat
the fully static one. Update the compiler specs to allow for dynamic linking of libraries and binaries.
2013-01-15Simplify OBSD_LIB_SPEC a bit for gcc3/4.Brad Smith
ok miod@
2013-01-15Bring back symbol visibility support. This had been done, then backed out,Miod Vallat
a long time ago, because I had not realized symbol visibility required a lot of shared library major bumps to avoid mixed binaries. However, at the moment, none of the platforms using gcc 3 supports shared libraries (this is being worked on), and the remaining gcc 2 platforms won't support gcc 3 until switching from a.out to ELF, which makes the risk of mixing visibility-unaware binaries with visibility-aware binaries moot. Reminded by brad@.
2013-01-11Automagically define __PIC__ and __pic__ to 1 or 2, when building withMiod Vallat
-fpic or -fPIC. Same for __PIE__ and __pie__; matches the behaviour of the in-tree gcc 4.
2013-01-05Switch m88k ports to ELF.Miod Vallat
2013-01-05Remove the -mno-underscores, -msvr3 and -msvr4 options. They suppose theMiod Vallat
compiler can be built on one particular m88k system and output code for another with the proper options, but it only does half the job since there is too much knowledge of the native toolchain embedded (at compile-time) in the compiler. Building code for a different operating system and toolchain is what cross-compiler are for. Remove support for SDB debug information (only used by SVR3) and tdesc debug information (only used by SVR4). The latter is questionable, but this helps making the code less entangled. Tell m88k.h to not rewrite almost all ASM_WHATEVER macros gratuitously on the false pretense that `all m88k assemblers use the same syntax for pseudo-ops'. This was already not true with SVR4, and is getting worse with our ELF toolchain.
2013-01-05Rename m88k_pound_sign to m88k_register_prefix (even though the prefix isMiod Vallat
used for more than registers). Convert all output of registers to asm_fprintf with %R. Stop altering reg_names[] at runtime depending on the selected register prefix.
2013-01-04Remove extern declarations redundant with "flags.h"Miod Vallat
2013-01-03The removal of sdata support also removed the only use of SYMBOL_REF_FLAGMiod Vallat
in the m88k backend; as a result, SHORT_ADDRESS_P() will always return 0, therefore remove all code depending on it being nonzero.
2013-01-02More dead features recycling: -mwarn-passed-struct doesn't do anything, andMiod Vallat
-m{no-,}optimize-arg-area doesn't do anything either since the arg area has been removed in gcc 2.95.
2013-01-02Help the DWARF code to handle our prologues correctly:Miod Vallat
- add the frame pointer to EPILOGUE_USES when profiling - when the initial stack adjustement is larger than 64KB and requires a temporary register to be used, add a REG_FRAME_RELATED_EXPR of the original computation (not constrained by the adjustement size) to the REG_NOTES of the stack pointer adjustement sequence. Borrowed from alpha which has a similar issue.
2013-01-02Remove last boolean argumont of output_function_profiler(), it is always invokedMiod Vallat
with the same value.
2013-01-02Start removing obsolete features from the m88k backend (it's not like we'llMiod Vallat
need to sync with upstream anymore) to make things a bit simpler and get rid of unintended bitrotting. This time: - remove the small-data feature. It was only supported for COFF binaries anyway. This allows us to stop providing TARGET_ASM_SELECT_SECTION and use the default flavour, from which this backend had derived a bit in addition to sdata support, so this is a good thing... - remove the -midentify-version option - remove the -mbig-pic option, it has been superseded by -fPIC since years and was supposed to be removed `in a future version' since a long time as well. - remove the old MONITOR_GCC debug hooks.
2012-12-31Make use of OPENBSD_OS_CPP_BUILTINS_COMMON here as well.Brad Smith
ok miod@
2012-12-30Stop including other files in m88k/openbsd.h; instead specific the complete listMiod Vallat
of files to include, in proper order, as tm_file at configure time. This requires openbsd.h to be split, as also encountered on other platforms, and will make further work easier. No functional change introduced.
2012-12-25Fix longstanding bug in FRAME_POINTER_REQUIRED; unless -fomit-frame-pointerMiod Vallat
is used, a frame pointer is required for all non-leaf functions, and for leaf functions unless -momit-leaf-frame-pointer is specified. Also, a frame pointer is mandatory when profiling. This used to be mostly harmless with gcc 2.95, but is required with gcc 3 to get profiling to work.
2012-12-25Define INCOMING_RETURN_ADDR_RTX and DWARF_FRAME_RETURN_COLUMN to allow forMiod Vallat
DWARF debugging information to be produced, but define DWARF2_UNWIND_INFO to zero to prevent it from being output yet. This exposes dire weaknesses in the way the dwarf unwinder recognizes stack frame setup instructions, so borrow code from rs6000 to rewrite and annotate them as dwarf-edible instructions. No functional change intended - although this enables one more optimization code path in gcc.
2012-12-12Previous commit introduced a bug; only return early from m88k_layout_frame()Miod Vallat
if reload_completed; INITIAL_ELIMINATION_OFFSET() invokes it (which is very likely a source for more bugs, to be investigated)