This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/14053] second stage build errors (--with-cpu=601)
- From: "stefaan dot simoens at tiscali dot be" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Feb 2004 02:00:57 -0000
- Subject: [Bug optimization/14053] second stage build errors (--with-cpu=601)
- References: <20040206230200.14053.stefaan.simoens@tiscali.be>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From stefaan dot simoens at tiscali dot be 2004-02-21 02:00 -------
I've got an Apple PowerMacintosh 7200/75; this has the 601 chip.
I don't know if my kernel (2.4.25-rc1 for the moment) is the best kernel to run
on a 601; I know my kernel works just fine right now (I compiled the kernel
myself; the rest of my system is Mandrake 9.1). The kernel is NOT compiled with
the "601 Bug Workaround" (I had previous versions compiled with and without the
workaround (which inserts sync and isyncs in before and after some
instructions) and my system runs fine with or without the workarounds -- I
chose to run without).
I learned the 601 has PowerPC and POWER instructions; I'm quite sure my 601
does both. (I think all Mandrake PPC binaries are compiled for PowerPC; but
when I compile something myself with --mcpu=601 it runs and executes POWER
instructions (like nabs, cfr my other post). So, I don't think the kernel
disables the "POWER" instructions.
However, I think there are a few problems with -mcpu=601 [I was using this
switch to gain the most performance as possible...].
I started my optimization-quest compiling the latest binutils -mcpu=601; the
build succeeded; all but 5 (ld) tests succeeded (all tests succeeded without
the -mcpu=601). (The binutils I use right now are the binutils without the -
mcpu=601).
I can't tell for sure the kernel saves and restores the MQ register on "context
switch" correctly (how can I tell?).
Starting from the "good" assembler code (without -mcpu=601) the 'error' in
arith-rand-ll.c enters when I replace the divw/mullw/subf with divs/mfmq.
The error doesn't always occur (as far as I can read the code, it uses
calculations with random numbers...?) -- I ran the compiled 'bad' code for 20
times and I got 10 times 'Aborted' and the other times the program didn't
complain at all -- which makes me conclude that it is an error that only
sometimes happens, an exception?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14053