From: Jun Sun <jsun@mvista.com>
To: Ralf Baechle <ralf@oss.sgi.com>
Cc: "Kevin D. Kissell" <kevink@mips.com>,
Dominic Sweetman <dom@algor.co.uk>,
linux-mips@oss.sgi.com, linux-mips@fnet.fr
Subject: Re: load_unaligned() and "uld" instruction
Date: Thu, 05 Oct 2000 18:11:40 -0700 [thread overview]
Message-ID: <39DD26CC.3805FFE8@mvista.com> (raw)
In-Reply-To: 20001005141354.E30075@bacchus.dhis.org
Ralf Baechle wrote:
>
> On Tue, Sep 26, 2000 at 11:04:12AM -0700, Jun Sun wrote:
>
> > > > If we have to use "-mips2" option, is there a clean way which allows us
> > > > to "uld/usw" instructions (instead of manually twicking the compilation
> > > > for each file that uses them)?
> > >
> >
> > Ralf, before the perfect solution is found, the following patch makes
> > the gcc complain go away. It just use ".set mips3" pragma.
>
> It's still perfectly broken. Uld is a 64-bit instruction meaning you still
> could get into problems with register corruption or even reserved instruction
> exceptions on 32-bit cpus. Not too mention that nobody did notice that
> the constraints of the inline assembler were broken for all access sizes
> plus a cast that would have cut off the upper 32 bit of a 64 bit access in
> any case. That's fixed now.
>
With my limited wisdom, I am totally confused by this paragraph.
I think you mentioned a couple of times before where 64-bit instructions
corrupt registers in 32-bit mode. I think I have done that before with
R5000 R4500. I did not notice any corruption. What exactly is the
corruption you are referring to?
With the second half, are you saying the "cut-off-upper-32-bit" bug
actually hides the register corruption problem? If so, maybe we need
the "cut-off-upper_32-bit" bug for the 32-bit MIPS tree.
Anyway, in short, what is your suggestion for fixing this bug?
Maciej suggested that we use packed struct of gcc (I assume gcc will
generate two loads and get the results with some bit masking and
shifting). That does not sound too bad, although that does require one
to use the newer gcc.
> > I am pretty close to get USB running with the v2.4-test5. The unaligned
> > access is the minor problem. The bigger problem I am fighting with now
> > is bus_to_virt()/virt_to_bus() and USB interrupt.
>
> The unaligned exception handler is fairly expensive. I suggest you should
> try to get proper alignment and where that is not possible go through
> the entire code and use get_unaligned. It's going to make a noticable
> difference in performance.
>
Fortunately, the USB guys have already used get_unaligned() in all the
places - I hope.
Jun
next prev parent reply other threads:[~2000-10-05 18:12 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-09-25 18:48 load_unaligned() and "uld" instruction Jun Sun
2000-09-25 21:16 ` Dominic Sweetman
2000-09-25 21:36 ` Jun Sun
2000-09-25 23:29 ` Ralf Baechle
2000-09-26 6:22 ` Kevin D. Kissell
2000-09-26 6:22 ` Kevin D. Kissell
2000-09-26 9:08 ` Dominic Sweetman
2000-09-26 9:08 ` Dominic Sweetman
2000-09-29 17:22 ` Ralf Baechle
2000-10-09 14:49 ` Dominic Sweetman
2000-09-26 18:04 ` Jun Sun
2000-09-27 10:06 ` Maciej W. Rozycki
2000-10-06 0:43 ` Ralf Baechle
2000-10-06 9:54 ` Maciej W. Rozycki
2000-10-06 16:21 ` Ralf Baechle
2000-10-05 12:13 ` Ralf Baechle
2000-10-06 1:11 ` Jun Sun [this message]
2000-10-05 19:41 ` Kevin D. Kissell
2000-10-05 19:41 ` Kevin D. Kissell
2000-10-06 4:32 ` Jun Sun
2000-10-05 22:10 ` Kevin D. Kissell
2000-10-05 22:10 ` Kevin D. Kissell
2000-10-06 5:53 ` Jun Sun
2000-10-05 23:14 ` Kevin D. Kissell
2000-10-05 23:14 ` Kevin D. Kissell
2000-10-06 16:32 ` Ralf Baechle
2000-10-07 1:35 ` Jun Sun
2000-10-06 22:26 ` Ralf Baechle
2000-10-06 16:28 ` Ralf Baechle
2000-10-07 1:24 ` Jun Sun
2000-10-06 20:46 ` Kevin D. Kissell
2000-10-06 20:46 ` Kevin D. Kissell
2000-10-07 7:16 ` Jun Sun
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=39DD26CC.3805FFE8@mvista.com \
--to=jsun@mvista.com \
--cc=dom@algor.co.uk \
--cc=kevink@mips.com \
--cc=linux-mips@fnet.fr \
--cc=linux-mips@oss.sgi.com \
--cc=ralf@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