From mboxrd@z Thu Jan 1 00:00:00 1970 From: "riedel" Date: Wed, 25 Oct 2000 02:47:41 +0000 Subject: [Linux-ia64] static registers during a context switch MIME-Version: 1 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0004_01C03E04.090B4A20" Message-Id: List-Id: To: linux-ia64@vger.kernel.org This is a multi-part message in MIME format. ------=_NextPart_000_0004_01C03E04.090B4A20 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable hi everybody, does anybody know what happens to static registers (gr0-gr31) in case of = a context switch. in the manual, it says static registers are visible to all procedures(i = guess it shouldn't otherwise on a context switch another process would = have the same static registers) On the other hand, stacked registers are = local to procedures and saved and restored by RSE which makes sense to = me. ------=_NextPart_000_0004_01C03E04.090B4A20 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
hi everybody,
does anybody know what happens to = static=20 registers (gr0-gr31) in case of a context switch.
in the manual, it says static = registers are=20 visible to all procedures(i guess it shouldn't otherwise on a context = switch=20 another process would have the same static registers) On the other hand, = stacked=20 registers are local to procedures and saved and restored by RSE which = makes=20 sense to me.
------=_NextPart_000_0004_01C03E04.090B4A20-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Doug Rabson Date: Wed, 25 Oct 2000 10:16:59 +0000 Subject: Re: [Linux-ia64] static registers during a context switch Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-ia64@vger.kernel.org On Tue, 24 Oct 2000, riedel wrote: > hi everybody, does anybody know what happens to static registers > (gr0-gr31) in case of a context switch. in the manual, it says static > registers are visible to all procedures(i guess it shouldn't otherwise > on a context switch another process would have the same static > registers) On the other hand, stacked registers are local to > procedures and saved and restored by RSE which makes sense to me. Normally on a context switch, only the callee saved registers are preserved (since the context switch appears as a function call to the process which initiates it). In the case of ia64, this means that gr4-gr7 are preserved from the static register set. -- Doug Rabson Mail: dfr@nlsystems.com Phone: +44 20 8348 6160 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Don Dugger Date: Wed, 25 Oct 2000 14:28:06 +0000 Subject: Re: [Linux-ia64] static registers during a context switch Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-ia64@vger.kernel.org If you are thinking of a context switch in the sense of switching from one process to another then ALL registers, static and stacked, are saved and restored. If you are talking about making a subroutine call then the uses of the static registers are covered by software convention and registers R4-R7 are preserved across a function call. Conceptually the static registers are similar to the X86 registers EAX, EBX and so on. These registers are also saved and restored across context switches and have software conventions that control which ones are saved across subroutine calls. On Tue, Oct 24, 2000 at 09:47:41PM -0500, riedel wrote: > hi everybody, > does anybody know what happens to static registers (gr0-gr31) in case of a context switch. > in the manual, it says static registers are visible to all procedures(i guess it shouldn't otherwise on a context switch another process would have the same static registers) On the other hand, stacked registers are local to procedures and saved and restored by RSE which makes sense to me. -- Don Dugger "Censeo Toto nos in Kansa esse decisse." - D. Gale n0ano@valinux.com Ph: 303/938-9838