From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14178 invoked by alias); 27 Jul 2011 19:08:59 -0000 Received: (qmail 14169 invoked by uid 22791); 27 Jul 2011 19:08:58 -0000 X-SWARE-Spam-Status: No, hits=-7.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_EG X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 27 Jul 2011 19:08:39 +0000 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6RJ8TuB002801 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 27 Jul 2011 15:08:29 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p6RJ8SBM019256; Wed, 27 Jul 2011 15:08:29 -0400 Received: from barimba (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p6RJ8Rnx020236; Wed, 27 Jul 2011 15:08:27 -0400 From: Tom Tromey To: Pedro Alves Cc: gdb-patches@sourceware.org, Daniel Jacobowitz , hjl@gnu.org Subject: Re: RFC: partially available registers References: <201107222010.23822.pedro@codesourcery.com> <201107261631.18672.pedro@codesourcery.com> Date: Wed, 27 Jul 2011 19:30:00 -0000 In-Reply-To: (Tom Tromey's message of "Wed, 27 Jul 2011 11:41:24 -0600") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain 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: 2011-07/txt/msg00779.txt.bz2 Pedro> ... but I think that we should go with 0, instead of , Pedro> meaning changing x87-tdep.c:i387_supply_xsave to supply Pedro> explicity zeroed buffer, instead of a NULL pointer, like Pedro> gdbserver does. Tom> I will do this. Here's the patch. In absence of comment I will check it in, in a couple of days. Built and regtested by the buildbot. Tom 2011-07-27 Tom Tromey * i387-tdep.c (i387_supply_xsave): Supply zero for high bits of AVX registers. diff --git a/gdb/i387-tdep.c b/gdb/i387-tdep.c index c4ace82..332d491 100644 --- a/gdb/i387-tdep.c +++ b/gdb/i387-tdep.c @@ -798,17 +798,26 @@ i387_supply_xsave (struct regcache *regcache, int regnum, /* Handle the upper YMM registers. */ if ((tdep->xcr0 & I386_XSTATE_AVX)) { + gdb_byte buf[MAX_REGISTER_SIZE]; + if ((clear_bv & I386_XSTATE_AVX)) - p = NULL; + { + memset (buf, 0, sizeof (buf)); + p = NULL; + } else p = regs; for (i = I387_YMM0H_REGNUM (tdep); i < I387_YMMENDH_REGNUM (tdep); i++) { + const void *arg; + if (p != NULL) - p = XSAVE_AVXH_ADDR (tdep, regs, i); - regcache_raw_supply (regcache, i, p); + arg = XSAVE_AVXH_ADDR (tdep, regs, i); + else + arg = buf; + regcache_raw_supply (regcache, i, arg); } }