From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Chris Friesen <cfriesen@nortelnetworks.com>
Cc: linuxppc-dev list <linuxppc-dev@lists.linuxppc.org>,
Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: want to clarify powerpc assembly conventions in head.S and entry.S
Date: Sat, 10 Apr 2004 20:05:59 +1000 [thread overview]
Message-ID: <1081591559.25144.174.camel@gaston> (raw)
In-Reply-To: <4077A542.8030108@nortelnetworks.com>
On Sat, 2004-04-10 at 17:41, Chris Friesen wrote:
> I'm doing some work in head.S and entry.S, and I just wanted to make
> sure that I had the conventions down.
>
> According to the docs I read, r0 and r3-12 are caller-saves. They seem
> to be saved in EXCEPTION_PROLOG_2 (head.S) and restored in
> ret_from_except() (entry.S). Thus, if I add code in entry.S I should be
> able to use any of those registers, without having to worry about
> restoring them myself--correct?
Yes. For interrupts or faults that's right. Syscalls are a bit special
though.
> Also, I'm a bit confused about the three instances of the following line
> in entry.S:
>
> stwcx. r0,0,r1 /* to clear the reservation */
>
> I don't see the corresponding lwarx instruction. What reservation is it
> referring to?
This is to clear any possible pending reservation if any. The problem is
that the reservation mecanism only works accross multiple CPUs. A normal
store at an address covered by a reservation on the same CPU will not break
the reservation. Thus, to protect from that, any interrupt or exception
makes sure to return to the normal code flow with any pending reservation
cleared.
Ben.
next prev parent reply other threads:[~2004-04-10 10:08 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-10 7:41 Chris Friesen
2004-04-10 10:05 ` Benjamin Herrenschmidt [this message]
2004-04-11 5:14 ` Chris Friesen
2004-04-11 5:25 ` Benjamin Herrenschmidt
2004-04-12 14:31 ` Chris Friesen
2004-04-12 22:54 ` Benjamin Herrenschmidt
2004-04-13 4:06 ` Chris Friesen
2004-04-13 4:31 ` Chris Friesen
2004-04-12 23:30 ` want to clarify powerpc assembly conventions inhead.S " Benjamin Herrenschmidt
2004-04-12 15:01 ` want to clarify powerpc assembly conventions in head.S " Chris Friesen
2004-04-11 6:00 ` want to clarify powerpc assembly conventions in head.Sand entry.S Benjamin Herrenschmidt
2004-04-11 5:45 ` want to clarify powerpc assembly conventions in head.S and entry.S Chris Friesen
2004-04-13 15:10 ` Segher Boessenkool
2004-04-13 15:45 ` Segher Boessenkool
2004-04-10 10:30 ` want to clarify powerpc assembly conventions in head.S andentry.S Benjamin Herrenschmidt
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=1081591559.25144.174.camel@gaston \
--to=benh@kernel.crashing.org \
--cc=cfriesen@nortelnetworks.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.linuxppc.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®