From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7728 invoked by alias); 28 Jan 2011 13:03:08 -0000 Received: (qmail 7709 invoked by uid 22791); 28 Jan 2011 13:03:07 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,TW_EG,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 28 Jan 2011 13:02:59 +0000 Received: (qmail 31447 invoked from network); 28 Jan 2011 13:02:57 -0000 Received: from unknown (HELO scottsdale.localnet) (pedro@127.0.0.2) by mail.codesourcery.com with ESMTPA; 28 Jan 2011 13:02:57 -0000 To: gdb-patches@sourceware.org Subject: [gdbserver] make regcache_supply (..., NULL) use more obvious From: Pedro Alves Date: Fri, 28 Jan 2011 13:38:00 -0000 MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201101281302.55960.pedro@codesourcery.com> 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: 2011-01/txt/msg00543.txt.bz2 regcache_supply when passed in a NULL buffer, memset's the register value instead. I had to ask H.J. before where was this being used, as my grep foo wasn't find it: This makes that NULL use more obvious (and simplifies the following patch). Tested on x86_64-linux gdbserver and applied. -- Pedro Alves 2011-01-28 Pedro Alves gdb/gdbserver/ * i387-fp.c (i387_xsave_to_cache): Make passing NULL as register buffer explicit. --- gdb/gdbserver/i387-fp.c | 54 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) Index: src/gdb/gdbserver/i387-fp.c =================================================================== --- src.orig/gdb/gdbserver/i387-fp.c 2011-01-13 15:07:52.516075004 +0000 +++ src/gdb/gdbserver/i387-fp.c 2011-01-28 12:05:59.311415002 +0000 @@ -468,61 +468,61 @@ i387_xsave_to_cache (struct regcache *re int i, top; unsigned long val; unsigned int clear_bv; - char *p; + gdb_byte *p; /* The supported bits in `xstat_bv' are 1 byte. Clear part in vector registers if its bit in xstat_bv is zero. */ clear_bv = (~fp->xstate_bv) & x86_xcr0; /* Check if any x87 registers are changed. */ - if ((x86_xcr0 & I386_XSTATE_X87)) + if ((x86_xcr0 & I386_XSTATE_X87) != 0) { int st0_regnum = find_regno ("st0"); - if ((clear_bv & I386_XSTATE_X87)) - p = NULL; + if ((clear_bv & I386_XSTATE_X87) != 0) + { + for (i = 0; i < 8; i++) + supply_register (regcache, i + st0_regnum, NULL); + } else - p = (char *) buf; - - for (i = 0; i < 8; i++) { - if (p) - p = ((char *) &fp->st_space[0]) + i * 16; - supply_register (regcache, i + st0_regnum, p); + p = (gdb_byte *) &fp->st_space[0]; + for (i = 0; i < 8; i++) + supply_register (regcache, i + st0_regnum, p + i * 16); } } - if ((x86_xcr0 & I386_XSTATE_SSE)) + if ((x86_xcr0 & I386_XSTATE_SSE) != 0) { int xmm0_regnum = find_regno ("xmm0"); if ((clear_bv & I386_XSTATE_SSE)) - p = NULL; + { + for (i = 0; i < num_xmm_registers; i++) + supply_register (regcache, i + xmm0_regnum, NULL); + } else - p = (char *) buf; - - for (i = 0; i < num_xmm_registers; i++) { - if (p) - p = ((char *) &fp->xmm_space[0]) + i * 16; - supply_register (regcache, i + xmm0_regnum, p); + p = (gdb_byte *) &fp->xmm_space[0]; + for (i = 0; i < num_xmm_registers; i++) + supply_register (regcache, i + xmm0_regnum, p + i * 16); } } - if ((x86_xcr0 & I386_XSTATE_AVX)) + if ((x86_xcr0 & I386_XSTATE_AVX) != 0) { int ymm0h_regnum = find_regno ("ymm0h"); - if ((clear_bv & I386_XSTATE_AVX)) - p = NULL; + if ((clear_bv & I386_XSTATE_AVX) != 0) + { + for (i = 0; i < num_xmm_registers; i++) + supply_register (regcache, i + ymm0h_regnum, NULL); + } else - p = (char *) buf; - - for (i = 0; i < num_xmm_registers; i++) { - if (p) - p = ((char *) &fp->ymmh_space[0]) + i * 16; - supply_register (regcache, i + ymm0h_regnum, p); + p = (gdb_byte *) &fp->ymmh_space[0]; + for (i = 0; i < num_xmm_registers; i++) + supply_register (regcache, i + ymm0h_regnum, p + i * 16); } }