From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28506 invoked by alias); 28 Feb 2010 15:40:57 -0000 Received: (qmail 28477 invoked by uid 22791); 28 Feb 2010 15:40:55 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40 X-Spam-Check-By: sourceware.org Received: from mail-ww0-f41.google.com (HELO mail-ww0-f41.google.com) (74.125.82.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 28 Feb 2010 15:40:48 +0000 Received: by wwb24 with SMTP id 24so834224wwb.0 for ; Sun, 28 Feb 2010 07:40:43 -0800 (PST) MIME-Version: 1.0 Received: by 10.216.89.130 with SMTP id c2mr2279415wef.44.1267371643797; Sun, 28 Feb 2010 07:40:43 -0800 (PST) Date: Sun, 28 Feb 2010 15:40:00 -0000 Message-ID: <6dc9ffc81002280740j229c0cfq54491979f4811bd4@mail.gmail.com> Subject: PING: PATCH: Enable x86 XML target descriptions From: "H.J. Lu" To: GDB Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-02/txt/msg00679.txt.bz2 On Mon, Feb 22, 2010 at 1:03 PM, H.J. Lu wrote: > On Thu, Feb 18, 2010 at 03:01:35PM -0800, H.J. Lu wrote: >> On Thu, Feb 18, 2010 at 07:34:02AM -0800, H.J. Lu wrote: >> > On Wed, Feb 17, 2010 at 09:43:12PM -0800, H.J. Lu wrote: >> > > On Wed, Feb 10, 2010 at 12:03:03PM -0800, H.J. Lu wrote: >> > > > Hi, >> > > > >> > > > This patch enables x86 XML target descriptions. =A0I used >> > > > i386_linux_init_orig_eax to support the old gdbserver which doesn't >> > > > have XML target descriptions. >> > > > >> > > > The register description processing is handled in i386_gdbarch_init >> > > > for 32bit/64bit as well as all ABIs to avoid code duplication and >> > > > unnecessary complexity. >> > > > >> > > > OK to install? >> > > > >> > > >> > > Here is the updated patch. I removed all BFD64 from i386 files. =A0I >> > > renamed I386_NUM_FREGS to I387_NUM_REGS and put it in i387-tdep.h. >> > > I use it in amd64-tdep.c. =A0I added a few fields to gdbarch_tdep so >> > > that I can pass values from xxx_abit_init to i386_gdbarch_init. =A0OK >> > > to install? >> > > >> > > Thanks. >> > > >> > > >> > >> > A small update. I added I386_MXCSR_REGNUM so that "i387-tdep.h" >> > isn't added for amd64-linux-nat.c, amd64-linux-tdep.c and >> > i386-linux-tdep.c. OK to install? >> > >> >> A small bug fix. =A0amd64_linux_read_description should return >> tdesc_i386_linux for 32bit. >> > > Here is the updated patch. I have addressed all issues raised so far > as mush as I can. =A0Any comments/suggestions? > > Thanks. > > > H.J. > --- > gdb/ > > 2010-02-22 =A0H.J. Lu =A0 > > =A0 =A0 =A0 =A0* amd64-linux-nat.c (amd64_linux_read_description): New. > =A0 =A0 =A0 =A0(_initialize_amd64_linux_nat): Set to_read_description to > =A0 =A0 =A0 =A0amd64_linux_read_description. > > =A0 =A0 =A0 =A0* amd64-linux-tdep.c: Include "features/i386/amd64-linux.c= ". > =A0 =A0 =A0 =A0(amd64_linux_register_name): Removed. > =A0 =A0 =A0 =A0(amd64_linux_register_type): Likewise. > =A0 =A0 =A0 =A0(amd64_linux_core_read_description): New. > =A0 =A0 =A0 =A0(amd64_linux_init_abi): Set target description to > =A0 =A0 =A0 =A0tdesc_amd64_linux if needed. =A0Support orig_rax in target > =A0 =A0 =A0 =A0description. =A0Don't call set_gdbarch_register_name nor > =A0 =A0 =A0 =A0set_gdbarch_register_type. =A0Call > =A0 =A0 =A0 =A0set_gdbarch_core_read_description. > =A0 =A0 =A0 =A0(_initialize_amd64_linux_tdep): Call > =A0 =A0 =A0 =A0initialize_tdesc_amd64_linux. > > =A0 =A0 =A0 =A0* amd64-linux-tdep.h (tdesc_amd64_linux): New. > > =A0 =A0 =A0 =A0* amd64-tdep.c: =A0Include "features/i386/amd64.c". > =A0 =A0 =A0 =A0(amd64_register_names): Removed. > =A0 =A0 =A0 =A0(amd64_register_name): Likewise. > =A0 =A0 =A0 =A0(amd64_register_type): Likewise. > =A0 =A0 =A0 =A0(amd64_init_abi): =A0Set num_core_regs and register_names.= =A0Set > =A0 =A0 =A0 =A0target description to tdesc_amd64 if needed. =A0Don't call > =A0 =A0 =A0 =A0set_gdbarch_register_name nor set_gdbarch_register_type. > =A0 =A0 =A0 =A0(_initialize_amd64_tdep): New. > > =A0 =A0 =A0 =A0* i386-linux-nat.c (i386_linux_read_description): New. > =A0 =A0 =A0 =A0(_initialize_i386_linux_nat): Set to_read_description to > =A0 =A0 =A0 =A0i386_linux_read_description. > > =A0 =A0 =A0 =A0* i386-linux-tdep.c: Include "features/i386/i386-linux.c". > =A0 =A0 =A0 =A0(i386_linux_register_name): Removed. > =A0 =A0 =A0 =A0(i386_linux_core_read_description): New. > =A0 =A0 =A0 =A0(i386_linux_read_description): Likewise. > =A0 =A0 =A0 =A0(i386_linux_init_abi): Don't call set_gdbarch_register_nam= e. > =A0 =A0 =A0 =A0Set target description to tdesc_i386_linux if needed. =A0S= upport > =A0 =A0 =A0 =A0orig_eax. =A0Set register_reggroup_p. =A0Call > =A0 =A0 =A0 =A0set_gdbarch_core_read_description. > =A0 =A0 =A0 =A0(_initialize_i386_linux_tdep): Call initialize_tdesc_i386_= linux. > > =A0 =A0 =A0 =A0* i386-linux-tdep.h (tdesc_i386_linux): New. > > =A0 =A0 =A0 =A0* i386-nto-tdep.c (i386nto_regset_id): Replace I386_NUM_FR= EGS > =A0 =A0 =A0 =A0with I387_NUM_REGS. > > =A0 =A0 =A0 =A0* i386-tdep.c: Include "features/i386/i386.c". > =A0 =A0 =A0 =A0(i386_register_names): Make it const. > =A0 =A0 =A0 =A0(i386_mmx_names): Likewise. > =A0 =A0 =A0 =A0(i386_num_register_names): Removed. > =A0 =A0 =A0 =A0(i386_register_name): Likewise. > =A0 =A0 =A0 =A0(i386_eflags_type): Likewise. > =A0 =A0 =A0 =A0(i386_mxcsr_type): Likewise. > =A0 =A0 =A0 =A0(i386_sse_type): Likewise. > =A0 =A0 =A0 =A0(i386_register_type): Likewise. > =A0 =A0 =A0 =A0(i387_ext_type): Call tdesc_find_type instead of arch_floa= t_type. > =A0 =A0 =A0 =A0(i386_pseudo_register_name): New. > =A0 =A0 =A0 =A0(i386_pseudo_register_type): Likewise. > =A0 =A0 =A0 =A0(i386_mmx_type): Make it static. > =A0 =A0 =A0 =A0(i386_gdbarch_init): Check arch. =A0Replace I386_NUM_FREGS= with > =A0 =A0 =A0 =A0I387_NUM_REGS. =A0Set num_core_regs and register_names. = =A0Don't > =A0 =A0 =A0 =A0call set_gdbarch_register_name nor set_gdbarch_register_ty= pe. > =A0 =A0 =A0 =A0Set register_reggroup_p. =A0Set target description to tdes= c_i386 > =A0 =A0 =A0 =A0if needed. =A0Call set_tdesc_pseudo_register_type, > =A0 =A0 =A0 =A0set_tdesc_pseudo_register_name and tdesc_use_registers. > =A0 =A0 =A0 =A0(_initialize_i386_tdep): Call initialize_tdesc_i386. > =A0 =A0 =A0 =A0initialize_tdesc_x86_64. > > =A0 =A0 =A0 =A0* i386-tdep.h (gdbarch_tdep): Remove i386_eflags_type, > =A0 =A0 =A0 =A0i386_mxcsr_type and i386_sse_type. =A0Add num_core_regs, > =A0 =A0 =A0 =A0register_names, tdesc and register_reggroup_p. > =A0 =A0 =A0 =A0(I386_NUM_FREGS): Removed. > =A0 =A0 =A0 =A0(i386_eflags_type): Likewise. > =A0 =A0 =A0 =A0(i386_mxcsr_type): Likewise. > =A0 =A0 =A0 =A0(i386_mmx_type): Likewise. > =A0 =A0 =A0 =A0(i386_sse_type): Likewise. > =A0 =A0 =A0 =A0(i386_register_name): Likewise. > =A0 =A0 =A0 =A0(i386_regnum): Add I386_MXCSR_REGNUM. > =A0 =A0 =A0 =A0(I386_SSE_NUM_REGS): Defined with I386_MXCSR_REGNUM. > > =A0 =A0 =A0 =A0* i387-tdep.h (I387_NUM_REGS): New. > > =A0 =A0 =A0 =A0* regformats/i386/i386-linux.dat: Generated. > =A0 =A0 =A0 =A0* regformats/i386/i386.dat: Likewise. > =A0 =A0 =A0 =A0* regformats/i386/amd64-linux.dat: Likewise. > =A0 =A0 =A0 =A0* regformats/i386/amd64.dat: Likewise. > > =A0 =A0 =A0 =A0* regformats/reg-i386-linux.dat: Removed. > =A0 =A0 =A0 =A0* regformats/reg-i386.dat: Likewise. > =A0 =A0 =A0 =A0* regformats/reg-x86-64-linux.dat: Likewise. > =A0 =A0 =A0 =A0* regformats/reg-x86-64.dat: Likewise. > > gdb/gdbserver/ > > 2010-02-22 =A0H.J. Lu =A0 > > =A0 =A0 =A0 =A0* Makefile.in (clean): Replace reg-i386.c, reg-x86-64.c, > =A0 =A0 =A0 =A0reg-i386-linux.c and reg-x86-64-linux.c with i386.c, amd64= .c, > =A0 =A0 =A0 =A0i386-linux.c and amd64-linux.c. > =A0 =A0 =A0 =A0(reg-i386.o): Removed. > =A0 =A0 =A0 =A0(reg-i386.c): Likewise. > =A0 =A0 =A0 =A0(reg-i386-linux.o): Likewise. > =A0 =A0 =A0 =A0(reg-i386-linux.c): Likewise. > =A0 =A0 =A0 =A0(reg-x86-64.o): Likewise. > =A0 =A0 =A0 =A0(reg-x86-64.c): Likewise. > =A0 =A0 =A0 =A0(reg-x86-64-linux.o): Likewise. > =A0 =A0 =A0 =A0(reg-x86-64-linux.c): Likewise. > =A0 =A0 =A0 =A0(i386.o): New. > =A0 =A0 =A0 =A0(i386.c): Likewise. > =A0 =A0 =A0 =A0(i386-linux.o): Likewise. > =A0 =A0 =A0 =A0(i386-linux.c): Likewise. > =A0 =A0 =A0 =A0(amd64.o): Likewise. > =A0 =A0 =A0 =A0(amd64.c): Likewise. > =A0 =A0 =A0 =A0(amd64-linux.o): Likewise. > =A0 =A0 =A0 =A0(amd64-linux.c): Likewise. > > =A0 =A0 =A0 =A0* configure.srv (srv_i386_regobj): New. > =A0 =A0 =A0 =A0(srv_i386_linux_regobj): Likewise. > =A0 =A0 =A0 =A0(srv_amd64_regobj): Likewise. > =A0 =A0 =A0 =A0(srv_amd64_linux_regobj): Likewise. > =A0 =A0 =A0 =A0(srv_i386_32bit_xmlfiles): Likewise. > =A0 =A0 =A0 =A0(srv_i386_64bit_xmlfiles): Likewise. > =A0 =A0 =A0 =A0(srv_i386_xmlfiles): Likewise. > =A0 =A0 =A0 =A0(srv_amd64_xmlfiles): Likewise. > =A0 =A0 =A0 =A0(srv_i386_linux_xmlfiles): Likewise. > =A0 =A0 =A0 =A0(srv_amd64_linux_xmlfiles): Likewise. > =A0 =A0 =A0 =A0(i[34567]86-*-cygwin*): Set srv_regobj to $srv_i386_regobj= . =A0Set > =A0 =A0 =A0 =A0srv_xmlfiles to $srv_i386_xmlfiles. > =A0 =A0 =A0 =A0(i[34567]86-*-mingw32ce*): Likewise. > =A0 =A0 =A0 =A0(i[34567]86-*-mingw*): Likewise. > =A0 =A0 =A0 =A0(i[34567]86-*-nto*): Likewise. > =A0 =A0 =A0 =A0(i[34567]86-*-linux*): Set srv_regobj to $srv_i386_linux_r= egobj > =A0 =A0 =A0 =A0and $srv_amd64_linux_regobj. =A0Set srv_xmlfiles to > =A0 =A0 =A0 =A0$srv_i386_linux_xmlfiles and $srv_amd64_linux_xmlfiles. > =A0 =A0 =A0 =A0(x86_64-*-linux*): Likewise. > > =A0 =A0 =A0 =A0* linux-x86-low.c (init_registers_x86_64_linux): Removed. > =A0 =A0 =A0 =A0(init_registers_amd64_linux): New. > =A0 =A0 =A0 =A0(x86_arch_setup): Replace init_registers_x86_64_linux with > =A0 =A0 =A0 =A0init_registers_amd64_linux. > > gdb/testsuite/ > > 2010-02-22 =A0H.J. Lu =A0 > > =A0 =A0 =A0 =A0* gdb.xml/tdesc-regs.exp (architecture): New. =A0Set it fo= r x86. > =A0 =A0 =A0 =A0(load_description): Set architecture if defined. > Are there any comments/suggestions for my latest patch: http://sourceware.org/ml/gdb-patches/2010-02/msg00556.html to enable XML for x86? Thanks. --=20 H.J.