From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18629 invoked by alias); 29 Nov 2001 23:59:03 -0000 Mailing-List: contact gdb-patches-help@sourceware.cygnus.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 17953 invoked from network); 29 Nov 2001 23:57:43 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by hostedprojects.ges.redhat.com with SMTP; 29 Nov 2001 23:57:43 -0000 Received: from drow by nevyn.them.org with local (Exim 3.32 #1 (Debian)) id 169b46-0004p3-00; Thu, 29 Nov 2001 18:58:02 -0500 Date: Tue, 20 Nov 2001 11:07:00 -0000 From: Daniel Jacobowitz To: Kevin Buettner Cc: Elena Zannoni , gdb-patches@sources.redhat.com Subject: Re: [RFA] W.I.P. AltiVec ppc registers support. Message-ID: <20011129185802.A18421@nevyn.them.org> Mail-Followup-To: Kevin Buettner , Elena Zannoni , gdb-patches@sources.redhat.com References: <15365.39495.801289.497931@krustylu.cygnus.com> <1011129183830.ZM18856@ocotillo.lan> <15366.44991.616576.411278@krustylu.cygnus.com> <1011129222000.ZM19585@ocotillo.lan> <20011129174621.B15429@nevyn.them.org> <1011129231229.ZM19791@ocotillo.lan> <20011129183732.A17705@nevyn.them.org> <1011129234527.ZM19890@ocotillo.lan> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1011129234527.ZM19890@ocotillo.lan> User-Agent: Mutt/1.3.23i X-SW-Source: 2001-11/txt/msg00372.txt.bz2 Message-ID: <20011120110700.xDMrfHpiVWn8l3sRuAL1CzL8zpjNZm2mCh3Ypai84YY@z> On Thu, Nov 29, 2001 at 04:45:27PM -0700, Kevin Buettner wrote: > On Nov 29, 6:37pm, Daniel Jacobowitz wrote: > > > On Thu, Nov 29, 2001 at 04:12:29PM -0700, Kevin Buettner wrote: > > > > My still-unsubmitted cross-core patches for PowerPC remove > > > > core-regset.o also, and very unpleasantly turn ppc-linux-nat.c into a > > > > target-dependant rather than native-dependant file, so that we can grub > > > > through the gregsets by hand. If you've got a better idea I'd love to > > > > hear it :) It will be made somewhat easier by the destruction of > > > > regmap[]. > > > > > > I haven't seen your patches, but I imagine you have a table of > > > constants or some such that represent offsets and sizes of members in > > > the regsets? (I.e, something similar to what I did for SVR4 shared > > > library offsets.) If that's the approach, then the only real problem I > > > have with it is accurately generating (and maintaining) the tables. > > > The SVR4 shared library tables are compact enough to easily generate > > > by hand. The regset data is quite a lot larger and I would think > > > you'd want to generate this data through more automatic means. (I.e, > > > via a program that you'd compile and and then run on the target.) > > > > Nothing that abstracted. I copy the necessary type definitions and > > constants from target headers; they are "relatively" guaranteed never > > to change. It's a mess. > > How does the "cross" part of it work then? Won't the sizes of the > fundamental types, struct alignment, etc. change depending upon > which host you compile it on? How does it work? Badly. The types look like this right now: +typedef unsigned char elf_greg_t[4]; +typedef unsigned char elf_fpreg_t[8]; +typedef struct { + unsigned char u[16]; +} __attribute((aligned(16))) __uint128_t; +/* Altivec registers */ +typedef __uint128_t elf_vrreg_t; Barring the GCC extension to get __uint128_t aligned, which I don't actually need for anything, I can do what I need to with these; I use explicitly target alignment. No platform other than (IIRC) x86 is broken enough to require the tdep to do computation on elf_greg_t's while fetching them. The current version also has a _ppc_pt_regs struct which contains only unsigned longs; but the only thing it's doing there is providing struct user, and the only thing that cares is the kernel_u_size function, and the only reason that's there is because it was quicker at the time for me to copy struct user than figure out the constant :) Arrays of arrays of unsigned char have no alignment issues. -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer