This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: PATCH: Extend gdb remote protocol for AVX
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: hjl dot tools at gmail dot com
- Cc: gdb-patches at sourceware dot org, dan at codesourcery dot com
- Date: Thu, 18 Sep 2008 19:47:50 +0200 (CEST)
- Subject: Re: PATCH: Extend gdb remote protocol for AVX
- References: <20080918172728.GA12703@lucon.org>
> Date: Thu, 18 Sep 2008 10:27:28 -0700
> From: "H.J. Lu" <hongjiu.lu@intel.com>
>
> Hi,
>
> Intel AVX extends 128bit XMM registers to 256bit YMM registers. I
> am enclosing a propose to add YMM register support in gdb. Since
> there is no AVX hardware, we can only implement the remote debug
> with AVX emulator.
>
> This patch extends gdb remote protocol for AVX, based on Daniel's
> patch to auto-detect ia32 and x86-64 executables:
>
> http://sources.redhat.com/ml/gdb-patches/2006-11/msg00056.html
>
> I tested it by setting x86_sse_unit to avx in gdbserver/i387-fp.c. OK
> to install?
Let's wait until there is actual hardware.
> 2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
>
> * amd64-linux-tdep.c (amd64_linux_init_abi): Call
> i386_register_g_packet_guesses.
> * i386-linux-tdep.c (i386_linux_init_abi): Likewise.
>
> * amd64-tdep.c (amd64_register_names): Renamed to ...
> (amd64_sse_register_names): This.
> (amd64_avx_register_names): New.
> (AMD64_NUM_REGS): Updated.
> (amd64_register_name): Handle sse_unit.
> (amd64_init_abi): Call i386_gdbarch_sse_unit_init.
>
> * amd64-tdep.h (AMD64_G_PACKET_SIZE_SSE): New.
> (AMD64_G_PACKET_SIZE_AVX): Likewise.
>
> * i386-tdep.c: Include "remote.h" and "target-descriptions.h".
> (I386_PROPERTY_SSE): New.
> (I386_PROPERTY_AVX): Likewise.
> (i386_tdesc_sse): Likewise.
> (i386_tdesc_avx): Likewise.
> (i386_avx_register_names): Likewise.
> (i386_vec128_type): Likewise.
> (i386_vec256_type): Likewise.
> (i386_init_tdesc): Likewise.
> (i386_register_g_packet_guesses): Likewise.
> (i386_gdbarch_sse_unit_init): Likewise.
> (i386_register_names): Renamed to ...
> (i386_sse_register_names): This.
> (i386_num_register_names): Updated.
> (i386_register_name): Handle sse_unit.
> (i386_sse_type): Likewise.
> (i386_gdbarch_init): Call i386_gdbarch_sse_unit_init and
> i386_register_g_packet_guesses.
> (_initialize_i386_tdep): Call i386_init_tdesc.
>
> * i386-tdep.h (x86_sse_unit): New.
> (I386_G_PACKET_SIZE_SSE): Likewise.
> (I386_G_PACKET_SIZE_AVX): Likewise.
> (i386_register_g_packet_guesses): Likewise.
> (i386_gdbarch_sse_unit_init): Likewise.
> (gdbarch_tdep): Add sse_unit.
> (I386_MAX_REGISTER_SIZE): Increase to 32.
>
> * i387-tdep.c (i387_supply_fxsave): Assert sse_unit on SSE
> registers.
>
> * defs.h (MAX_REGISTER_SIZE): Increase to 32.
>
> * regformats/reg-i386-avx.dat: New.
> * regformats/reg-i386-avx-linux.dat: Likewise.
> * regformats/reg-x86-64-avx.dat: Likewise.
> * regformats/reg-x86-64-avx-linux.dat: Likewise.
>
> * regformats/reg-x86-64.dat: Add xmlarch.