Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: cgd@broadcom.com
To: "Andrew Cagney" <ac131313@redhat.com>
Cc: "Kevin Buettner" <kevinb@redhat.com>, gdb-patches@sources.redhat.com
Subject: Re: [WIP/RFC] MIPS registers overhaul
Date: Tue, 20 May 2003 20:32:00 -0000	[thread overview]
Message-ID: <yov5llx1mkab.fsf@broadcom.com> (raw)
In-Reply-To: "Andrew Cagney"'s message of "Tue, 20 May 2003 16:23:34 -0400"

At Tue, 20 May 2003 16:23:34 -0400, Andrew Cagney wrote:
> When a 64 bit kernel goes to save/resume an o32 process, how does it do 
> it?  Does it have a choice?

it has limited choice.


> For instance, do a 64 bit FP restore then clear the FR bit; the reverse; 
> some other variant; ...?

So, if the process is running with FR=0, then the save/restore should
("must" i believe) be done with FR=0.

When FR=0, there are two options as to how to do it:

	for (i = 0; i < 32; i++)
	   move/store word from c1 reg $i (i.e., dmfc1/sdc1)

OR:

	for (i = 0; i < 32; i += 2)
	   move/store dword from c1 reg $i (i.e., dmfc1/sdc1)

(move to / load for the state restore, of course.)

(of course, these will typically be written in assembly code, and
"fully unrolled" -- the pseudo-C-code is to demonstrate the concept
only.)

either one is valid, though all implementations that I know of choose
the latter because it's fewer instructions and almost certainly more
efficient.


the linux kernel presents that to o32 userland (o32 ptrace syscall) as
an array of 32 32-bit values, but IIRC it's stored internally as (8
byte reg, 8 byte pad) * 16.



cgd


  reply	other threads:[~2003-05-20 20:32 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-10  0:25 Kevin Buettner
2003-05-10 20:30 ` Andrew Cagney
2003-05-10 20:40   ` Daniel Jacobowitz
2003-05-14 22:00   ` Kevin Buettner
     [not found]     ` <mailpost.1052949911.28802@news-sj1-1>
2003-05-14 23:35       ` cgd
2003-05-15  0:07         ` Kevin Buettner
2003-05-15  0:15           ` Daniel Jacobowitz
2003-05-15 22:01     ` Kevin Buettner
2003-05-16  3:24       ` Andrew Cagney
2003-05-16  4:00     ` Andrew Cagney
2003-05-16 17:20       ` Kevin Buettner
     [not found]       ` <mailpost.1053057614.17325@news-sj1-1>
2003-05-16 22:25         ` cgd
     [not found]           ` <mailpost.1053123913.16634@news-sj1-1>
2003-05-16 22:50             ` cgd
2003-05-16 23:05               ` Kevin Buettner
     [not found]                 ` <mailpost.1053126410.17856@news-sj1-1>
2003-05-16 23:24                   ` cgd
2003-05-17  0:41                     ` Kevin Buettner
2003-05-17 20:59                       ` Daniel Jacobowitz
2003-05-20 20:18                         ` Always remote: " Andrew Cagney
2003-05-20 20:26                           ` Daniel Jacobowitz
     [not found]                       ` <mailpost.1053132070.20348@news-sj1-1>
2003-05-20 20:37                         ` cgd
2003-05-20 20:51                           ` Kevin Buettner
2003-05-20 20:52                           ` Andrew Cagney
2003-05-20 21:57                             ` cgd
2003-05-21 15:34                               ` Andrew Cagney
2003-05-21 15:41                                 ` Daniel Jacobowitz
2003-05-21 16:38                                   ` Andrew Cagney
2003-05-21 16:58                                     ` Daniel Jacobowitz
2003-05-21 18:32                                       ` Kevin Buettner
2003-05-21 19:15                                         ` Andrew Cagney
2003-05-21 19:45                                           ` Kevin Buettner
2003-05-22  0:32                                           ` Daniel Jacobowitz
2003-05-23 18:39                                             ` Andrew Cagney
2003-05-23 19:02                                               ` Daniel Jacobowitz
2003-05-23 20:45                                                 ` Andrew Cagney
2003-05-20 20:25               ` Andrew Cagney
2003-05-20 20:32                 ` cgd [this message]
2003-05-21 15:40                   ` Andrew Cagney
2003-06-15  1:44                     ` Andrew Cagney
2003-06-16 18:06                       ` cgd
2003-06-16 18:47                         ` Andrew Cagney
2003-06-15 17:23                   ` Andrew Cagney
2003-06-16 20:06                     ` cgd
2003-06-16 20:41                       ` Andrew Cagney
     [not found]                         ` <mailpost.1055796186.4097@news-sj1-1>
2003-06-17  5:04                           ` cgd
2003-06-17 14:27                             ` Andrew Cagney
     [not found]                               ` <mailpost.1055860052.3406@news-sj1-1>
2003-06-17 16:27                                 ` cgd
2003-05-21 20:58 David Anderson

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=yov5llx1mkab.fsf@broadcom.com \
    --to=cgd@broadcom.com \
    --cc=ac131313@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=kevinb@redhat.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