obrien
6e1cb4b9ca
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
obrien
d047bea9fd
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
obrien
c2beebb55b
Seems we are not ready for revision 1.8.
2002-05-30 06:04:14 +00:00
obrien
f3e84ff8bd
Make our default predefines ANSI clean.
2002-05-30 00:58:35 +00:00
obrien
c63b7df4ec
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
obrien
25711d6191
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
obrien
80b0d5d606
the processed hash file
2002-05-17 19:47:48 +00:00
ru
af2650e805
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
obrien
069c7c8d3a
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
obrien
7d64ac0ab2
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
obrien
b028831d22
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
obrien
1e93bf0871
Add framework for our kernel printf enhancements.
2002-05-14 00:30:25 +00:00
obrien
532536cdd5
do-while ASM_OUTPUT_ALIGN to enable its use in more places.
2002-05-12 17:31:12 +00:00
obrien
29ad76a5ac
Fixes for building a.out bits.
...
Submitted by: bde
2002-05-12 12:01:12 +00:00
obrien
a8e2e6d6bb
Localize the version number at the request of the GCC developers.
2002-05-11 00:25:50 +00:00
obrien
f4aad0fe00
Add tweaks needed when using as the system compiler.
2002-05-10 19:05:07 +00:00
obrien
5eb5239e7b
Change symbol values to match freebsd.h to avoid warnings.
2002-05-10 09:02:14 +00:00
obrien
4af4f4a28b
Remove files not part of GCC 3.1.
2002-05-10 05:26:57 +00:00
obrien
9465775461
Import data for 3.0.2.
2002-05-10 05:21:15 +00:00
obrien
c95b4b5523
Use the stock (3.1 pre) file.
2002-05-09 22:44:32 +00:00
obrien
e40513279f
Use the stock file for now (but leave a note behind about our OBE changes).
2002-05-09 22:42:39 +00:00
obrien
3519dd389b
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
obrien
37ab630335
Use the stock (3.1) file.
2002-05-09 22:38:33 +00:00
obrien
5dab80497a
We use the stock (3.1) file.
2002-05-09 22:16:22 +00:00
obrien
65e2ec7693
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
obrien
0ac4840cc7
Use the stock (3.1 pre) file.
2002-05-09 22:08:26 +00:00
obrien
7d3f59c051
Use the stock (3.1) version.
2002-05-09 22:05:33 +00:00
obrien
ec81e43ce5
Merge rev 1.2 [_exit() over exit()] into the Gcc 3.1 prerelease.
2002-05-09 22:04:44 +00:00
obrien
286b84aa7c
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
obrien
b7d19d3348
Merge rev 1.2 (a.out support) into the GCC 3.1 prerelease.
2002-05-09 21:44:15 +00:00
obrien
603733766c
Use the stock 3.1 prerelease version of this for now.
2002-05-09 21:42:32 +00:00
obrien
65d1b51533
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
obrien
03d718bf25
Use the stock (3.1) file.
2002-05-09 21:24:44 +00:00
obrien
da84150b6c
We use the stock (3.1) file now.
2002-05-09 21:19:23 +00:00
obrien
67d7740f78
Use the stock (3.1) file now.
...
The choosing of TMPDIR has moved to make-temp-file.c.
2002-05-09 21:15:23 +00:00
obrien
e93c006736
Use the stock 3.1 prerelease file.
2002-05-09 21:12:10 +00:00
obrien
43f5e99714
Use the stock 3.1-prerelease file.
2002-05-09 21:11:21 +00:00
obrien
d6b5d86ff9
Use stock file.
2002-05-09 21:06:15 +00:00
obrien
98051db4df
This commit was generated by cvs2svn to compensate for changes in r96263,
...
which included commits to RCS files with non-trunk default branches.
2002-05-09 20:02:13 +00:00
obrien
c8f5fc7032
Gcc 3.1.0 pre-release from the FSF anoncvs repo on 9-May-2002 15:57:15 EDT.
2002-05-09 20:02:13 +00:00
obrien
3c0c831761
Alpha MD bits for Gcc 3.1.
2002-05-07 23:28:45 +00:00
obrien
21304809df
Comment a knob.
2002-05-07 02:26:40 +00:00
obrien
9ced709070
The default ASM_OUTPUT_ADDR_DIFF_ELT will now handle our mixed a.out/ELF.
2002-05-07 02:25:52 +00:00
obrien
1e3fa59089
MI bits for Gcc 3.1.
2002-04-30 17:22:42 +00:00
obrien
9a9ba1484f
i386 MD bits for Gcc 3.1.
...
These are totally untested. Do these work? Hell if I know, I have yet to
bootstrap using these bits. But people want them, so here they are.
2002-04-30 17:15:01 +00:00
obrien
257900c741
Style changes to reduce diff to things I did in the FSF repo.
2002-04-24 04:49:34 +00:00
obrien
638b01d99e
Fix bug where we were loosing our platform-wide ASM_COMMENT_START
...
definition due to pollution in i386/unix.h.
2002-04-24 04:48:00 +00:00
obrien
3e278e7acd
GCC 3.1 uses crtstuff.c on Alpha now. [yay!]
2002-03-27 22:18:22 +00:00
obrien
9b5143f94f
Switch register numbers for DWARF2_DEBUG also.
2002-03-27 05:22:35 +00:00
obrien
95b6324d69
Allow for better control over the GCC front-end when building a cross
...
compiler.
* Undo the diking out of cross compiler logic from gcc.c rev 1.16.
* Add the `CROSS_STARTFILE_PREFIX' knob.
* Add our own definition of `STANDARD_INCLUDE_DIR'. This should have been
included in freebsd-native.h rev 1.5.
2002-03-05 00:17:24 +00:00