From: Richard Mortimer <richm@oldelvet.org.uk>
To: sparclinux@vger.kernel.org
Subject: Re: [PATCH 1/3] sparc64: correctly recognise M7 cpu type
Date: Thu, 21 Aug 2014 12:29:36 +0000 [thread overview]
Message-ID: <53F5E630.6050700@oldelvet.org.uk> (raw)
In-Reply-To: <1408424013-20390-1-git-send-email-allen.pais@oracle.com>
On 21/08/2014 13:14, Sam Ravnborg wrote:
> On Thu, Aug 21, 2014 at 03:33:27PM +0530, Allen Pais wrote:
>>
>>>> diff --git a/arch/sparc/kernel/head_64.S b/arch/sparc/kernel/head_64.S
>>>> index 452f04f..508a542 100644
>>>> --- a/arch/sparc/kernel/head_64.S
>>>> +++ b/arch/sparc/kernel/head_64.S
>>>> @@ -414,6 +414,7 @@ sun4v_chip_type:
>>>> cmp %g2, 'T'
>>>> be,pt %xcc, 70f
>>>> cmp %g2, 'M'
>>>> + be,pt %xcc, 71f
>>>> bne,pn %xcc, 49f
>>> Looks like you are missing a nop in the delay slot?
>>
>> I don't think so. I have tested the patch on M7 and I have had no issues with it.
> Even if it works as expected then it is confusing.
> I read the code like this:
>
> if xcc equals pt then jump to 71 but if pn is not equal to xcc then jump to 49
>
> Maybe the second opcode is ignored because it is a conditional jump or maybe
> they are always equal.
The two branches are the logical opposite of each other so only one is
ever taken and that is why the code "works".
> But whatever it is confusing.
>
> Adding an extra nop would help the readability.
>
Agreed. This isn't performance sensitive code.
Regards
Richard
P.S. Historical note - SPARC V8 didn't define what happens in the above
case as noted on page 77 of the SPARC v9 manual)
"V8 Compatibility Note:
SPARC-V8 left as undefined the result of executing a delayed conditional
branch that had a delayed control transfer in its delay slot. For this
reason, programmers should avoid such constructs when
backwards compatibility is an issue."
next prev parent reply other threads:[~2014-08-21 12:29 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-19 4:53 [PATCH 1/3] sparc64: correctly recognise M7 cpu type Allen Pais
2014-08-19 15:21 ` Sam Ravnborg
2014-08-21 10:15 ` Allen Pais
2014-08-21 12:14 ` Sam Ravnborg
2014-08-21 12:29 ` Richard Mortimer [this message]
2014-08-21 13:52 ` Allen Pais
2014-08-22 5:09 ` David Miller
2014-08-22 5:10 ` David Miller
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=53F5E630.6050700@oldelvet.org.uk \
--to=richm@oldelvet.org.uk \
--cc=sparclinux@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.