From: Ralf Baechle <ralf@oss.sgi.com>
To: Daniel Jacobowitz <dan@debian.org>
Cc: linux-mips@oss.sgi.com
Subject: Re: Can't build a CONFIG_CPU_NEVADA kernel
Date: Wed, 14 Mar 2001 19:59:19 +0100 [thread overview]
Message-ID: <20010314195919.A1911@bacchus.dhis.org> (raw)
In-Reply-To: <20010314084633.A25674@nevyn.them.org>; from dan@debian.org on Wed, Mar 14, 2001 at 08:46:33AM -0500
On Wed, Mar 14, 2001 at 08:46:33AM -0500, Daniel Jacobowitz wrote:
> I've been trying for a couple of days now to build a MIPS kernel with
> CONFIG_CPU_NEVADA, and I can't get it to work. r4k_switch.S produces a
> pile of "opcode not supported by processor" errors.
Known and unsolved problem.
> First, I figured out where the problem is coming from:
>
> r4k_switch.S is included for all processors but the r3000 and r3912.
> Is that really correct? Then, it references FPU_SAVE_DOUBLE, which
> includes:
Yes. Originally written for the R4000 the Dr. Franksteins at MIPS in the
meantime also have taken r4k-style fpus and put them into 32-bit processors,
> cfc1 tmp, fcr31; \
> sdc1 $f0, (THREAD_FPU + 0x000)(thread); \
> sdc1 $f2, (THREAD_FPU + 0x010)(thread); \
>
>
> The sdc1 instruction in binutils is flagged like this:
> if (mips_cpu == CPU_R4650)
> {
> as_bad (_("opcode not supported on this processor"));
> return;
> }
>
> And the IVR sets CONFIG_CPU_NEVADA, which produces
> ifdef CONFIG_CPU_NEVADA
> GCCFLAGS += -mcpu=r8000 -mips2 -Wa,--trap -mmad
> endif
>
> and -mmad becomes -m4650 to the assembler.
Which is pretty much bs because mmad may have been introduced with the
R4640 / R4650 but isn't only available on this processor. From an ISA
view it's a processor specific extension and as such it should be
controlled by a separate option. Gcc has -mmad which is fine but passing
it on to as as -m4650 is borken.
> Something is fishy here. Anyone know what? I have a suspicion that we
> need to change the way we invoke binutils. Making -mmad imply -m4650
> just seems lame, since -m4650 also implies -msingle-float, and I don't
> think that's right for the r8000.
R8000 is serious fp, indeed.
> I worked back in time in gcc, binutils, and kernel sources and I
> couldn't figure out what's changed - I'm sure this worked at some
> point.
You'll have to go back far in time. I introduced the use of -mmad for
Nevada-class CPUs in late summor '97.
As a second bug which makes this one even more annoying something like
.set mips3
sdc1 $f2, (a0)
.set mips0
also doesn't work - the assembler will still throw an "opcode not supported
on this processor" message. After all MIPS III means double precission fp.
And passing additional assembler options with -Wa,foo doesn't help either
in this case so without the necessary gcc / assembler changes this
optimization is lost for now.
Ralf
next prev parent reply other threads:[~2001-03-14 18:59 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-03-14 13:46 Can't build a CONFIG_CPU_NEVADA kernel Daniel Jacobowitz
2001-03-14 18:59 ` Ralf Baechle [this message]
2001-03-14 19:05 ` Daniel Jacobowitz
2001-03-14 19:20 ` Ralf Baechle
2001-03-14 19:48 ` Jun Sun
2001-03-14 20:02 ` Ralf Baechle
2001-03-14 20:56 ` Daniel Jacobowitz
2001-03-14 22:11 ` Kevin D. Kissell
2001-03-14 22:11 ` Kevin D. Kissell
2001-03-14 22:47 ` Kevin D. Kissell
2001-03-14 22:47 ` Kevin D. Kissell
2001-03-15 1:50 ` Pete Popov
2001-03-15 8:01 ` Kevin D. Kissell
2001-03-15 8:01 ` Kevin D. Kissell
2001-03-16 14:04 ` Ralf Baechle
2001-03-16 14:04 ` Ralf Baechle
2001-03-16 18:02 ` Daniel Jacobowitz
2001-03-16 18:16 ` Ralf Baechle
2001-03-16 18:46 ` Kevin D. Kissell
2001-03-16 18:46 ` Kevin D. Kissell
2001-03-16 19:35 ` Ralf Baechle
2001-03-16 19:35 ` Ralf Baechle
2001-03-16 15:34 ` Ralf Baechle
2001-03-16 15:34 ` Ralf Baechle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010314195919.A1911@bacchus.dhis.org \
--to=ralf@oss.sgi.com \
--cc=dan@debian.org \
--cc=linux-mips@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox