Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Oct 2002 17:14:37 +0100 (CET)
From:      Mark Kettenis <kettenis@chello.nl>
To:        thorpej@wasabisystems.com
Cc:        freebsd-arch@freebsd.org, bsd-api-discuss@wasabisystems.com
Subject:   Re: ptrace(2) and vector registers
Message-ID:  <200210271614.g9RGEbFD005532@elgar.kettenis.dyndns.org>
In-Reply-To: <20021026091608.L19682@dhcp7.wlan.shagadelic.org> (message from Jason R Thorpe on Sat, 26 Oct 2002 09:16:08 -0700)
References:  <200210212039.g9LKdMjS001116@elgar.kettenis.dyndns.org> <20021026091608.L19682@dhcp7.wlan.shagadelic.org>

next in thread | previous in thread | raw e-mail | index | archive | help
   Date: Sat, 26 Oct 2002 09:16:08 -0700
   From: Jason R Thorpe <thorpej@wasabisystems.com>

   That "s" on the end is my fault -- guess I got a little carried away
   (it's certainly possible that my brain silently added the "s" without
   my knowledge every time I typed it :-)

I've been known to do that myself from time to time too ;-).

   I suppose a "struct vreg" would be fine.  I could certainly change
   NetBSD/i386 to use that name (keeping the "xmmregs" name around for
   backward compatibility).

Right now GDB doesn't use `struct xmmregs', and never has.  Instead it
uses a 512-byte character array.  I've no intention to change that.
So feel free to punt backwards compatibility.

   The danger is, of course, that at some point in the future, the XMM stuff
   will be extended yet again, leaving us with a useless generic name.

If only I had that crystal ball :-(.  You never know what Intel is
going to put in the remaining bytes of the "FXSAVE/FXRSTOR Memory
Region".  One could argue that XMMREGS is "useless" already, since the
MMX registers are also included.

Anyway, I'll try to get the PT_GETVREGS request integrated in FreeBSD
-current.  I'll drop you a note when/if I've succeeded.  There's no
point in changing NetBSD if we don't know if my patch is going to be
accepted.

   In fact, NetBSD/arm already has this problem -- there are two distinct
   types of floating point register sets -- the FPA (old floating point
   accelerator available for e.g. ARM7) and VFP (the vector floating point
   defined by ARMv5).  Don't let the "vector" in VFP fool you -- it is also
   used to plain old IEEE FP -- so in your world, would that be "fpreg" or
   "vreg"?

Most likely fpreg.  If an architecture has floating-point registers,
they should be made available via the PT_GETFPREGS request (unless
they're already included with the general-purpose registers in the
PT_GETREGS request).  And I don't think we should artificially create
a seperate PT_GETVREGS request if the FPU also provides some sort of
vector operations.  However if 

Actually on the i386 `struct vreg' will also contain the plain old FP
registers, fortunately for me they also get used for the MMX registers
which do have the `vector' charcter :-).

Mark

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210271614.g9RGEbFD005532>