From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9541 invoked by alias); 21 Nov 2014 10:21:21 -0000 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 Received: (qmail 9527 invoked by uid 89); 21 Nov 2014 10:21:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e06smtp14.uk.ibm.com Received: from e06smtp14.uk.ibm.com (HELO e06smtp14.uk.ibm.com) (195.75.94.110) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Fri, 21 Nov 2014 10:21:18 +0000 Received: from /spool/local by e06smtp14.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 21 Nov 2014 10:21:15 -0000 Received: from d06dlp03.portsmouth.uk.ibm.com (9.149.20.15) by e06smtp14.uk.ibm.com (192.168.101.144) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Fri, 21 Nov 2014 10:21:13 -0000 Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id 08C551B08061 for ; Fri, 21 Nov 2014 10:21:26 +0000 (GMT) Received: from d06av09.portsmouth.uk.ibm.com (d06av09.portsmouth.uk.ibm.com [9.149.37.250]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id sALALDns18547004 for ; Fri, 21 Nov 2014 10:21:13 GMT Received: from d06av09.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id sALALCok019716 for ; Fri, 21 Nov 2014 03:21:13 -0700 Received: from br87z6lw.de.ibm.com (dyn-9-152-212-196.boeblingen.de.ibm.com [9.152.212.196]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id sALALBrc019687; Fri, 21 Nov 2014 03:21:12 -0700 From: Andreas Arnez To: Michael Sturm Cc: palves@redhat.com, eliz@gnu.org, mark.kettenis@xs4all.nl, walfred.tedeschi@intel.com, gdb-patches@sourceware.org Subject: Re: [PATCH V5 2/3] Add AVX512 register support to gdbserver. References: <1398258160-9070-1-git-send-email-michael.sturm@intel.com> <1398258160-9070-3-git-send-email-michael.sturm@intel.com> Date: Fri, 21 Nov 2014 10:21:00 -0000 In-Reply-To: <1398258160-9070-3-git-send-email-michael.sturm@intel.com> (Michael Sturm's message of "Wed, 23 Apr 2014 15:02:39 +0200") Message-ID: <87ppcgrh0o.fsf@br87z6lw.de.ibm.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14112110-0017-0000-0000-000001EC6A48 X-IsSubscribed: yes X-SW-Source: 2014-11/txt/msg00504.txt.bz2 Hi, While building GDB I encountered a gcc warning (array subscript above array bounds) and tracked it down to the patch below. On Wed, Apr 23 2014, Michael Sturm wrote: > # Linux object files. This is so we don't have to repeat > diff --git a/gdb/gdbserver/i387-fp.c b/gdb/gdbserver/i387-fp.c > index e655f74..c2d0bdf 100644 > --- a/gdb/gdbserver/i387-fp.c > +++ b/gdb/gdbserver/i387-fp.c > @@ -22,6 +22,11 @@ > > static const int num_mpx_bnd_registers = 4; > static const int num_mpx_cfg_registers = 2; > +static const int num_avx512_k_registers = 8; > +static const int num_avx512_zmmh_low_registers = 16; > +static const int num_avx512_zmmh_high_registers = 16; > +static const int num_avx512_ymmh_registers = 16; > +static const int num_avx512_xmm_registers = 16; > > /* Note: These functions preserve the reserved bits in control registers. > However, gdbserver promptly throws away that information. */ > @@ -120,6 +125,17 @@ struct i387_xsave { > /* Space for 2 MPX configuration registers of 64 bits > plus reserved space. */ > unsigned char mpx_cfg_space[16]; > + > + unsigned char reserved5[48]; > + > + /* Space for 8 OpMask register values of 64 bits. */ > + unsigned char k_space[64]; > + > + /* Space for 16 256-bit zmm0-15. */ > + unsigned char zmmh_low_space[512]; > + > + /* Space for 16 512-bit zmm16-31 values. */ > + unsigned char zmmh_high_space[1024]; > }; > > [...] > + > + /* Check if any of ZMM16H-ZMM31H registers are changed. */ > + if ((x86_xcr0 & I386_XSTATE_ZMM)) > + { > + int zmm16h_regnum = find_regno (regcache->tdesc, "zmm16h"); > + > + for (i = 0; i < num_avx512_zmmh_high_registers; i++) > + { > + collect_register (regcache, i + zmm16h_regnum, raw); > + p = ((char *) &fp->zmmh_low_space[0]) + 32 + i * 64; ^^^^^^^^^^^^^^ Should this really mean 'zmm_high_space'? > + if (memcmp (raw, p, 32) != 0) The warning occurs for this memcmp(). > + { > + xstate_bv |= I386_XSTATE_ZMM; > + memcpy (p, raw, 32); > + } > + } > + }