Commit Graph

391 Commits

Author SHA1 Message Date
David E. O'Brien
83728effa9 Fix C++ exception handling. GCC was using the older BSD DBX register numbers
rather than the ELF ABI/SVR4 ones in its DWARF unwinding.

Submitted by:	Alexander Kabaev <ak03@gte.com>
2002-07-12 17:44:24 +00:00
David E. O'Brien
d08a3fc2bc When I decided to use a stock dbxout.c rather than merge the rev 1.2 change
(put the function stabs in traditional order on a.out, or gdb doesn't see
function local variables), I failed to remove the related knobs here.

Effectively were overrode the ELF-wide definition in elfos.h w/o providing
new infrastructure.  This is what caused GDB to fail to debug applications
compiled and linked with -stabs.  This is because GCC was unconditionally
inserts .stabs instruction for functions after the function body.  GDB was
getting confused because what it thinks is function beginning address is
actually function ending address.

Submitted by:	Alexander Kabaev <ak03@gte.com>
2002-07-12 17:35:35 +00:00
David E. O'Brien
568fc330a7 Yep, revision 1.3 was 1/2assed.
This time use the right attribute for null_format_ok.

Submitted by:	bde
2002-07-12 00:49:52 +00:00
David E. O'Brien
fffe57845a Allow XFree86-4 to build
by not creating paradoxical FLOAT_MODE subregs.

Tested by:	se
Obtained from:	http://gcc.gnu.org/ml/gcc/2002-06/msg01709.html
2002-07-03 23:35:06 +00:00
David E. O'Brien
6c8ce4b3c7 Tweaks to make these files live beside our hacked config. 2002-06-21 22:54:24 +00:00
David E. O'Brien
d9adce40ed Tweaks for the 64-bit compiler. 2002-06-21 22:53:03 +00:00
David E. O'Brien
4396d0e99f cc -O0 and -O1 didn't do the easy optimization of alignment for space.
Instead it attempted to do the easy optimization of alignment for time,
which should be to 1-byte alignment on i386's.

Submitted by:	bde
2002-06-21 18:21:30 +00:00
David E. O'Brien
9fc5b9d958 BDE prefers this organization.
Submitted by:	bde
2002-06-21 18:11:22 +00:00
David E. O'Brien
85441ab5f2 cvs -j -j gave me two copies of TARGET_VERSION and I didn't notice
it before committing.
2002-06-10 15:48:23 +00:00
David E. O'Brien
60f9b09d26 Allow one to profile FORTRAN77 programs. 2002-06-09 00:03:56 +00:00
David E. O'Brien
4467cfa4b4 Match the DBX_OUTPUT_MAIN_SOURCE_FILE_END definition in dbxelf.h.
Bug found by:	bde
2002-06-06 18:00:58 +00:00
David E. O'Brien
0d68a433ae Allow the specification of LONG_TYPE_SIZE on the command line.
Submitted by:	bde
2002-06-06 03:39:03 +00:00
David E. O'Brien
670fd7ad58 Implement "-mno-align-long-strings" which prevents pessimization of strings
for space.  -Os could do this, but it was easy to hack an MD version.
This saves a whole 32 bytes in boot2, so I think it is worth using it.
(keep how much worse gcc 3.2 will compile boot2...)

Submitted by:	bde (minus gcc 3.2 commentary)
2002-06-06 03:36:32 +00:00
David E. O'Brien
a56822dd07 Didn't get them all in revision 1.50. 2002-06-06 03:30:40 +00:00
David E. O'Brien
c48e5a6b24 Fix excessive alignment for the aout case, and unbreak genassym for that case.
Our aout linker has alignment hacks and doesn't need gcc to do anything special.

Tested for a year by:	bde :-)
2002-06-06 03:28:49 +00:00
David E. O'Brien
3c3942fcfc Tidy do-while.
Requested by:	bde
2002-06-06 03:26:36 +00:00
David E. O'Brien
74d3af89ef Read specs from /usr/libdata/gcc/specs if it exists. 2002-06-06 00:49:58 +00:00
David E. O'Brien
3a77dcde47 The brokenness in ix86_expand_clrstr is quite visible when you
compare the function with ix86_expand_movstr.

Submitted by:	Tor Egge
2002-06-04 18:06:12 +00:00
David E. O'Brien
ec9ec8af6a Gcc 3.1 (-O) now generates broken inline code for memset in some cases.
This broke newfs (newfs left some garbage in a bitmap).

The ASM for:

	#include <string.h>
	int x, foo[100];
	main()
	{
		memset(&foo[0], 0, x);
	}

is (at least if you have fixed function alignment):

	.file	"z.c"
	.text
	.p2align 2,,3
.globl main
	.type	main,@function
main:
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%edi
	pushl	%eax
	movl	x, %ecx
	xorl	%eax, %eax
	shrl	$2, %ecx
	movl	$foo, %edi
	cld
	rep
	stosl
	andl	$-16, %esp
				<-- the lower bits of `len' should be loaded
				    near here
	testl	$2, %edi	<-- this seems to be meant to test the 2^1
				    bit in `len' (not alignment of the pointer
				    like it actually does).  %edi is the wrong
				    register for holding the bits, since it is
				    still needed for the pointer.
	je	.L2
	stosw
.L2:
	testl	$1, %edi	<-- similarly for the 2^0 bit.
	je	.L3
	stosb
.L3:
	movl	-4(%ebp), %edi
	leave
	ret
.Lfe1:
	.size	main,.Lfe1-main
	.comm	foo,400,32
	.comm	x,4,4
	.ident	"GCC: (GNU) 3.1 [FreeBSD] 20020509 (prerelease)"

This seems to only result in (len % 3) bytes not being cleared, since gcc
doesn't seem to use the builtin memset unless it knows that the pointer is
aligned.  If %edi could be misaligned, then too many bytes would be set.

Submitted by:	BDE
2002-06-04 18:04:27 +00:00
David E. O'Brien
e07ec61d37 Seems we are not ready for revision 1.8. 2002-05-30 06:04:14 +00:00
David E. O'Brien
69eafeae74 Make our default predefines ANSI clean. 2002-05-30 00:58:35 +00:00
David E. O'Brien
79a702e6f3 The special checks for %b and %D in rev 1.1 were done before skipping over
any characters between the % and the [bD], so only plain %b and %B worked.
This may un-1/2ass our -fformat-extensions support.

Submitted by:	bde
2002-05-26 16:04:37 +00:00
David E. O'Brien
dcbd867c36 1/2assed reimplementation of c-common.c revs 1.2 (-fformat-extensions)
and 1.3 (printf0) for GCC 3.1.
2002-05-22 16:37:09 +00:00
David E. O'Brien
424cbfd989 the processed hash file 2002-05-17 19:47:48 +00:00
Ruslan Ermilov
35abacef2a MD_EXEC_PREFIX doesn't work for the cross-arch compiler.
The change also makes the `cc -print-search-dirs' output
sane (the pre-3.1 way) in the non-cross case.

Draft reviewed by:	obrien
2002-05-16 15:22:58 +00:00
David E. O'Brien
4e3e26a2ed Merge c-common.c rev 1.10 into GCC 3.1
Clarify that the "yields only last 2 digits of year in some locales" warning
does not apply to BSD.

Submitted by:	ache
2002-05-14 01:53:53 +00:00
David E. O'Brien
8a75a69eaf If you want to not warn on K&R main(); this is how it should be implemented. 2002-05-14 01:44:02 +00:00
David E. O'Brien
a353d6a0f1 Merge choose-temp.c rev 1.2 (use /tmp 1st, and then /var/tmp) into GCC 3.1. 2002-05-14 00:33:44 +00:00
David E. O'Brien
2e0c661e02 Add framework for our kernel printf enhancements. 2002-05-14 00:30:25 +00:00
David E. O'Brien
f0ab1657e0 do-while ASM_OUTPUT_ALIGN to enable its use in more places. 2002-05-12 17:31:12 +00:00
David E. O'Brien
79c021244b Fixes for building a.out bits.
Submitted by:	bde
2002-05-12 12:01:12 +00:00
David E. O'Brien
8e4199296c Localize the version number at the request of the GCC developers. 2002-05-11 00:25:50 +00:00
David E. O'Brien
be42e63aec Add tweaks needed when using as the system compiler. 2002-05-10 19:05:07 +00:00
David E. O'Brien
3b2b7c3e7a Change symbol values to match freebsd.h to avoid warnings. 2002-05-10 09:02:14 +00:00
David E. O'Brien
f35f6d5d45 Remove files not part of GCC 3.1. 2002-05-10 05:26:57 +00:00
David E. O'Brien
c16b9cb4c2 Import data for 3.0.2. 2002-05-10 05:21:15 +00:00
David E. O'Brien
df9426806f Use the stock (3.1 pre) file. 2002-05-09 22:44:32 +00:00
David E. O'Brien
2311abec95 Use the stock file for now (but leave a note behind about our OBE changes). 2002-05-09 22:42:39 +00:00
David E. O'Brien
f8263b4181 Merge rev 1.2 (printf format error fixes) in its 1.8 form into Gcc 3.1 pre. 2002-05-09 22:39:46 +00:00
David E. O'Brien
4a81869631 Use the stock (3.1) file. 2002-05-09 22:38:33 +00:00
David E. O'Brien
1c7d68f037 We use the stock (3.1) file. 2002-05-09 22:16:22 +00:00
David E. O'Brien
d89ca98b1b Merge rev 1.2 (-fformat-extensions) and rev 1.7 (optimization downgrade)
into the Gcc 3.1 prerelease.
2002-05-09 22:15:04 +00:00
David E. O'Brien
e913f56bba Use the stock (3.1 pre) file. 2002-05-09 22:08:26 +00:00
David E. O'Brien
e9d2a91a8b Use the stock (3.1) version. 2002-05-09 22:05:33 +00:00
David E. O'Brien
b2eb577abd Merge rev 1.2 [_exit() over exit()] into the Gcc 3.1 prerelease. 2002-05-09 22:04:44 +00:00
David E. O'Brien
aa12b755c1 Merge revs 1.{2,15} (FREEBSD_NATIVE); 1.{5,13} (ELF, and objformat support);
1.{16,23,25} (better cross building control); 1.21 ("GCC_OPTIONS")
into the GCC 3.1 prerelease.
2002-05-09 22:02:01 +00:00
David E. O'Brien
6a38fe7c3a Merge rev 1.2 (a.out support) into the GCC 3.1 prerelease. 2002-05-09 21:44:15 +00:00
David E. O'Brien
bf6ecf8c61 Use the stock 3.1 prerelease version of this for now. 2002-05-09 21:42:32 +00:00
David E. O'Brien
6e85a4c56a Use the stock 3.1 prerelease file now. Rev 1.2 (add_bb) just doesn't
cleanly fit in any more.
2002-05-09 21:41:12 +00:00
David E. O'Brien
ea73da804b Use the stock (3.1) file. 2002-05-09 21:24:44 +00:00