From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4158 invoked by alias); 2 Oct 2008 10:29:45 -0000 Received: (qmail 4149 invoked by uid 22791); 2 Oct 2008 10:29:45 -0000 X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 02 Oct 2008 10:28:59 +0000 Received: from brahms.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by brahms.sibelius.xs4all.nl (8.14.3/8.14.3) with ESMTP id m92AQMXe027781; Thu, 2 Oct 2008 12:26:23 +0200 (CEST) Received: (from kettenis@localhost) by brahms.sibelius.xs4all.nl (8.14.3/8.14.3/Submit) id m92AQMqC006955; Thu, 2 Oct 2008 12:26:22 +0200 (CEST) Date: Thu, 02 Oct 2008 10:29:00 -0000 Message-Id: <200810021026.m92AQMqC006955@brahms.sibelius.xs4all.nl> From: Mark Kettenis To: hjl.tools@gmail.com CC: gdb-patches@sourceware.org, dan@codesourcery.com In-reply-to: <20080918172728.GA12703@lucon.org> (hongjiu.lu@intel.com) Subject: Re: PATCH: Extend gdb remote protocol for AVX References: <20080918172728.GA12703@lucon.org> 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: 2008-10/txt/msg00047.txt.bz2 > Date: Thu, 18 Sep 2008 10:27:28 -0700 > From: "H.J. Lu" > > 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? Had some time to learn about AVX yesterday. I noticed that the %ymm registers partially overlap with the %xmm registers, and that while Intel obviously is trying to deprecate the old SSE stuff, the instructions will still be present. As such, I think the goal: > 1. Only display YMM registers, no XMM registers if the execution > environment supports AVX, independent of executables. is wrong. People should still be able to debug traditional SSE code even if the execution environment supports AVX. Since the following goals follow from #1: > 2. Native: > a. Check native AVX support at run-time. > b. Use AVX registers only if native environment supports AVX. > Otherwise use XMM registers. > 3. Remote: > a. Check remote AVX support when setting up connection. > b. Use AVX registers only if remote environment supports AVX. > Otherwise use XMM registers. I disagree with those as well. We probably need to play pseudo-register tricks to make sure %xmm and %ymm share the data for the lower 128 bits in the register cache, and perhaps some option to choose between showing %xmm, %ymm or both in the "info registers" output.