Commit Graph

133 Commits

Author SHA1 Message Date
thorpej 3ef3a0aa2f Be a little more careful when calling _mcount() (to prevent
clobbering $27).
2002-01-22 02:09:39 +00:00
thorpej 6c4e00eadf Apply the patch from:
http://gcc.gnu.org/ml/gcc-patches/2000-06/msg00389.html

ChangeLog for this change (which was never committed to the master
GCC sources; the bug still exists in GCC 3.x!):

2000-05-09  Ethan Solomita  ethan@cs.columbia.edu

	* config/mips/mips.h (FUNCTION_PROFILER): Deal with
	the case where jal is expanded as a macro.

This is done by removing the .reorder/.noreorder, and moving the
call to _mcount to after the stack adjust, thereby letting the
assembler deal with the delay slot, etc.

This fixes profiling with libraries built -mabicalls (default on
NetBSD).

I can't believe how long this problem has been discussed-but-not-fixed
on the GCC mailing list...
2002-01-04 05:29:39 +00:00
tv f14c689431 Fix %{p*:} botch, as described in toolchain/15024. (What specs need is an
if/then/else type construct....)
2001-12-29 20:24:37 +00:00
matt 46cf0c1543 Incorporate some gcc3.0 vax.md changes 2001-12-24 01:56:55 +00:00
scw 568cb5d556 Revert the last change following yesterday's commit to ../netbsd.h
(Hi Jason!)
2001-12-20 18:14:35 +00:00
rearnsha 2bc7fae481 Avoid generating code sequences that might cause alignment faults. 2001-12-20 00:50:27 +00:00
thorpej c3af5af42b Redo previous differently: Put the ASM_DECLARE_OBJECT_NAME
and ASM_FINISH_DECLARE_OBJECT macros in <alpha/netbsd.h>,
and remove ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_OBJECT_NAME,
ASM_FINISH_DECLARE_OBJECT, and ASM_DECLARE_FUNCTION_SIZE from
<netbsd.h>.
2001-12-20 00:18:01 +00:00
thorpej 19241b97b5 Recent change to <netbsd.h> broke ASM_DECLARE_FUNCTION_NAME. Re-define
it here to what it should be.
2001-12-19 23:30:53 +00:00
rearnsha 0e644c95f7 Implement ATPCS stack-alignment rules, and enable on arm-netbsdelf
configuration.
2001-12-19 23:14:50 +00:00
tv 0a1ba8ecaa When NETBSD_NATIVE, use the appropriate version of libgcc for the compile
mode:  libgcc_pic.a for -shared, and libgcc_p.a for -p[g].
2001-12-19 21:38:24 +00:00
tv a3aeedcdb7 Tag all version strings with "nb1" to make FSF/binutils/gcc/gdb people
happy.  (This flags the version as deviating from the official FSF
distribution inside the NetBSD source tree.)
2001-12-19 21:32:49 +00:00
scw 37f114189c G/C some #define's which are already in ../netbsd.h.
Gets libgcc compiling again.
2001-12-19 18:14:20 +00:00
thorpej e93b1005a7 Apply rev 1.4 of gnu/dist/gcc/config/sh/sh.h:
fix REGISTER_MOVE_COST bug (gcc original rev. 1.43):

> *sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS
2001-12-16 18:56:45 +00:00
thorpej 3274936f9b Apply rev 1.3 of gnu/dist/gcc/config/sh/sh.h (fix ASM_OUTPUT_REG_PUSH
and ASM_OUTPUT_REG_POP):

fix two bugs:
	- cc1 dumps core when "-pg" is used
	- gas produces a syntax error
2001-12-16 18:54:10 +00:00
thorpej d63c80c2c6 Apply rev. 1.2 of gnu/dist/gcc/config/sh/sh.h:
set DWARF_LINE_MIN_INSTR_LENGTH to 2 because the length of instruction
is fixed to 16bits.
2001-12-16 18:50:16 +00:00
thorpej c8a285e813 Apply rev. 1.7 of gnu/dist/config/sh/sh.c:
apply gcc original rev. 1.59:

 > * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
 > sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
 > const0_rtx.
2001-12-16 18:47:47 +00:00
thorpej ff7287ad08 Apply change from rev 1.5 of gnu/dist/gcc/config/sh.c:
fix output_ieee_ccmpeq() bug:

- 2nd argument is not rtx but rtx *
- return value of output_ieee_ccmpeq is not void but char *
2001-12-16 18:38:19 +00:00
scw f87b859f0d After a discussion with Richard Henderson (rth at redhat dot com), add
the patch I posted to tech-toolchain@netbsd.org as a workaround for the
GOT bug whereby the callee-saved register %a5 can be trashed in certain
optimised -fPIC functions.

This may yet need to be fixed a different way, pending input from
Andreas Schwab on his change in revison 1.33 of this file in the
FSF source...

In the meantime, I've built and installed several NetBSD shared libraries
(including libc) with my change and found no problems.
2001-12-16 18:28:15 +00:00
thorpej 037cacf7e2 Define __NO_LEADING_UNDERSCORES__, since this sh-elf toolchain doesn't
use them.
2001-12-16 18:09:46 +00:00
thorpej c17876b1d2 Use the elf64alpha_nbsd linker emulation. 2001-12-16 04:26:17 +00:00
thorpej e3e5021be2 We need the versions of ASM_DECLARE_FUNCTION_NAME and
ASM_DECLARE_FUNCTION_SIZE from <alpha/alpha.h>, but <netbsd.h>
re-defines them.  So, re-define them again here to what
we need.
2001-12-16 04:02:48 +00:00
thorpej 72a263b8f7 Catch up with other Alpha-ELF changes. This will get cleaned up
even more somtime soon.
2001-12-16 03:09:19 +00:00
thorpej 80ed7d6a42 Clean up a bunch of the ELF support (looks like there was some sort
of merge error), and make the function/object type/size macros work
with the Alpha.
2001-12-16 03:07:59 +00:00
thorpej f589c8c881 Make sure SET_ASM_OP is undefined; the Alpha assembler uses .set
for assembler options.
2001-12-15 16:49:57 +00:00
thorpej 6ed87749ed Add support for building sh-*-netbsdelf (elf32-sh-big) and
shle-*-netbsdelf (elf32-sh-little).
2001-12-15 02:18:24 +00:00
jmc 8e9f3cf335 Account for possible alignment space before the exception table pointer when
dealing with the "eh" frames
2001-12-07 02:41:13 +00:00
jmc 39faa9cf1e Make sure the reloc for __EXCEPTION_TABLE__ in the "eh" exception frames is
fully aligned for the given arch. The sparc64 ld can't handle unaligned
relocs.
2001-12-07 02:40:36 +00:00
fredette 3ec17be693 Applied a strength-reduction patch from gcc-current. The patch
is in their revision 1.186, from schwab@suse.de, and said:

  Don't call reg_used_between_p if the insn from BL2 is after
  the insn from BL.

This fixes a cc1 SEGV on sys/dev/scsipi/ch.c rev 1.48 under -O2 or -Os,
seen on m68k and vax.
2001-12-06 18:50:34 +00:00
jmc e134e4e037 Add sh in front of all calls to move-if-change as it might no have execute
permission turned on
2001-12-02 04:10:11 +00:00
bjh21 7bdb61e034 Fix from Richard Earnshaw to make MASK_RETURN_ADDR work on both 26-bit and
32-bit ARMs, switching at run time.
2001-11-08 20:47:56 +00:00
rafal f317d28b1a New toolchain files for mipseb. Mainly toolchain2netbsd output with some
changes to configuration stuff to (a) recognize `mipseb', and (b) build a
BE-default GCC on mipseb.  gprof and gdb still not done.

WARNING: Binutils 2.11.2 (maybe earlier) changed the MIPS ABI, so any
shared libs built by this toolchain WILL NOT WORK without either a whack
to BFD to fix that or a patch to ld_elf.so to work around it.  I need to
chase the binutils folks on this issue still.

That said, the new toolchain seems to work quite well once the ABI change
is worked around/fixed -- I'm committing from a machine running a user-
land built with the new compiler.
2001-11-08 07:21:53 +00:00
mrg 857523fed5 fix a compile error when _not_:
#if HOST_BITS_PER_WIDE_INT == 32

found building cross powerpc compiler on sparc64 host.
2001-10-26 03:14:55 +00:00
matt 73b0a5ab88 disable minmax_arithsi pattern (from Richard Earnshaw). 2001-10-15 20:54:06 +00:00
thorpej 4e3296004c Need <string.h> for memset()/memcpy(). 2001-10-05 07:35:04 +00:00
thorpej 044932d6cc Need <string.h> when building the exception handler stuff on LP64
systems (like sparc64).
2001-10-05 07:04:04 +00:00
simonb b77ae95a9e For ns32k-netbsd, don't add ns32k/xm-netbsd.h to $xm_file; it gets
included in tconfig.h anyway.
2001-09-23 13:55:13 +00:00
simonb 8e868c5d17 Don't define mem{cmp,cpy,set}; from gcc-current after the 2.95.3 release. 2001-09-23 13:42:39 +00:00
mrg 3a6f34a1f2 fix part of previous: do pass -mcmodel=medlow to the 64 bit cc1 if -p*. 2001-09-07 07:19:52 +00:00
mrg 6e2daf5a64 fix the -m32 code to use /usr/lib/32 paths. don't pass -mcmodel to the 32bit cc1, it doesn't like that. 2001-08-30 09:30:40 +00:00
tv 7157e2832f XXX - force handing down of -no-gcc to off, so that cpp will predefine
__GNUC__ automatically.

Note that this is probably not the Right solution; we should fix any in-tree
uses of /usr/bin/cpp to use $CC -E.  However, this is being added for now
for backwards compatibility.
2001-08-14 13:46:14 +00:00
tv 0bcc7933e9 Trim the gcc frontend's paths way down to size. We know where system-supplied
libraries and so forth are, so we don't need to go looking in 9+ locations
for it.
2001-08-14 13:36:09 +00:00
tv 6c78eab38c Add the LINTCOMMENT hack, unconditional (no #ifdefs). Since gcc 3.0's cpp
does this Right (without even the overwrite-with-whitespace kludge), we
don't need to worry about breaking anything here.  Both -C and -CC will
result in full lint-capable comments.
2001-08-14 01:13:34 +00:00
mrg 4ccab74b56 enable dwarf2 exception handling. 2001-08-09 16:08:46 +00:00
mrg a630fd8b23 dwarf2 exceptions work on sparc & sparc64 now. 2001-08-05 18:45:57 +00:00
matt 36dc943f75 Change ARM-ELF to LP64 friendly types. 2001-07-28 07:42:28 +00:00
eeh 508945a491 Let profiling binaries be built without requiring special options. 2001-07-27 23:05:11 +00:00
matt 9edddea9c5 Nuke -D__KPRINTF_ATTRIBUTE__ 2001-07-26 07:27:59 +00:00
mrg 041c56a6d7 fix LINK_SPEC 2001-07-21 13:48:40 +00:00
mrg febe7ce944 - clean up more after <mips/elf.h> lossage, including killing the forced
support for "__main" (really __gccmain for mips), and the ctors/dtors
lists associated with this.
- add -G to SWITCH_TAKES_ARG(), so `-G 0' works as well as `-G0'
- add support for .init, .fini and .rodata (const) sections (basically
merging the generic ELF support with the MIPS support.)

kernel links and runs happily now.
2001-07-20 18:15:33 +00:00
matt cdb827bd00 Fix the polarity of a test. 2001-07-20 07:12:06 +00:00