From: Paul Mackerras <paulus@samba.org>
To: olof@lixom.net (Olof Johansson)
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] powerpc: Don't use long for 32-bit temp variables in spin lock ops
Date: Wed, 13 Jun 2007 14:33:03 +1000 [thread overview]
Message-ID: <18031.29567.757635.864638@cargo.ozlabs.ibm.com> (raw)
In-Reply-To: <20070607170816.GA4273@lixom.net>
Olof Johansson writes:
> The spinlock ops have long as their return type (as well as for some
> of the temporary types internally). All locks are 32-bit, so it makes
> no sense to do 64-bit ops on them.
>
> For example, this is how my compiler built _spin_lock() for me:
>
> c0000000004b2050: li r0,0
> c0000000004b2054: stb r0,460(r13)
> c0000000004b2058: lwz r0,8(r13)
> c0000000004b205c: lwarx r9,0,r3
> c0000000004b2060: cmpwi r9,0
> c0000000004b2064: bne- c0000000004b2078 <._spin_lock+0x28>
> c0000000004b2068: stwcx. r0,0,r3
> c0000000004b206c: nop
> c0000000004b2070: bne+ c0000000004b205c <._spin_lock+0xc>
> c0000000004b2074: isync
> c0000000004b2078: cmpdi cr7,r9,0
> c0000000004b207c: .long 0x4dfe0020
> c0000000004b2080: mr r1,r1
> c0000000004b2084: lwz r0,0(r3)
> c0000000004b2088: cmpdi cr7,r0,0
> c0000000004b208c: bne+ cr7,c0000000004b2080 <._spin_lock+0x30>
> c0000000004b2090: mr r2,r2
> c0000000004b2094: b c0000000004b2058 <._spin_lock+0x8>
>
> Note the cmpdi at ..78 when r9 was loaded with lwarx.
That's OK; the lwarx is defined to zero-extend the value to 64 bits.
Or are you implying that cmpdi is slower than cmpwi on some 64-bit
processors? :)
Paul.
next prev parent reply other threads:[~2007-06-13 4:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-07 17:08 [PATCH] powerpc: Don't use long for 32-bit temp variables in spin lock ops Olof Johansson
2007-06-13 4:33 ` Paul Mackerras [this message]
2007-06-13 14:14 ` Olof Johansson
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=18031.29567.757635.864638@cargo.ozlabs.ibm.com \
--to=paulus@samba.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=olof@lixom.net \
/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;
as well as URLs for NNTP newsgroup(s).