public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: David Brownell <david-b@pacbell.net>
To: Felipe Balbi <me@felipebalbi.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: rdhi, rdlo and rm must all be different:  say what??
Date: Thu, 13 Mar 2008 02:20:45 -0800	[thread overview]
Message-ID: <200803130320.46227.david-b@pacbell.net> (raw)
In-Reply-To: <c3756a11e4164ac843d68e9be0d6112a@felipebalbi.com>

On Thursday 13 March 2008, Felipe Balbi wrote:
> >   sched_clock:
> >   16:     umull   r0, r1, r0, r3  @ tmp136, jiffies.371, tmp137
> >
> >   sched_slice:
> >           ...
> >   1243:   umull   r0, r1, r0, r2  @ slice.2262, slice,
> > <variable>.load.weight
> >
> > So this all looks suspiciously buglike.  Does anyone know how
> > to fix this issue?  Is it really a problem?
> 
> It doesn't look like an issue:
> 
> UMULL rdlo, rdhi, rn, rm

The ARM DDI (Rev I is handy) says different stuff than Keil:

  UMULL{<cond>}{S} <RdLo>, <RdHi>, <Rm>, <Rs>

Making the warning about rdlo vs rm:  both use r0.


> rdlo and rdhi really must be different, but they are. Maybe CodeSourcery's
> toolchain is complaining about r0 appearing twice (as rdlo and rn) but
> that's not really an issue. We can multipply r0 and r3 and place the result
> in r0 and r1.

The DDI casts light on the issue:

  Operand restriction
    <RdHi> and <RdLo> must be distinct registers, or the results are UNPREDICTABLE.
    Specifying the same register for either <RdHi> and <Rm>, or <RdLo> and <Rm>, was
    previously described as producing UNPREDICTABLE results. There is no restriction
    in ARMv6, and it is believed all relevant ARMv4 and ARMv5 implementations do
    not require this restriction either, because high performance multipliers read
    all their operands prior to writing back any results.

And indeed, that's what Rev E said:  "UNPREDICTABLE".  (It also did
not cover v6...)

So it looks like this warning is a definite bug:  should not issue
on v6, or with "-mcpu=arm926ej-s" (a "relevant" v5 implementation).

So I agree about ignoring this, but I'm still puzzled about why this
warning appeared.  Maybe the issue is that I upgraded to q3-53 from
an older toolchain, and just didn't do an H4 build since then... and
this bug didn't exist in that older toolchain.

- Dave



--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2008-03-13 10:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-13  0:58 rdhi, rdlo and rm must all be different: say what?? David Brownell
2008-03-13  7:35 ` Felipe Balbi
2008-03-13 10:20   ` David Brownell [this message]
2008-03-13 15:54     ` Woodruff, Richard

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=200803130320.46227.david-b@pacbell.net \
    --to=david-b@pacbell.net \
    --cc=linux-omap@vger.kernel.org \
    --cc=me@felipebalbi.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