From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16141 invoked by alias); 30 Jan 2002 13:57:52 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 16029 invoked from network); 30 Jan 2002 13:57:44 -0000 Received: from unknown (HELO Cantor.suse.de) (213.95.15.193) by sources.redhat.com with SMTP; 30 Jan 2002 13:57:44 -0000 Received: from Hermes.suse.de (Hermes.suse.de [213.95.15.136]) by Cantor.suse.de (Postfix) with ESMTP id 89DED1EE3F; Wed, 30 Jan 2002 14:57:43 +0100 (MET) X-Authentication-Warning: sykes.suse.de: schwab set sender to schwab@suse.de using -f To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: Updates for m68k-linux target References: <3C5049BD.6070407@cygnus.com> <3C5716E7.2010209@cygnus.com> X-Yow: I want you to MEMORIZE the collected poems of EDNA ST VINCENT MILLAY.. BACKWARDS!! From: Andreas Schwab Date: Wed, 30 Jan 2002 05:57:00 -0000 In-Reply-To: <3C5716E7.2010209@cygnus.com> (Andrew Cagney's message of "Tue, 29 Jan 2002 16:40:55 -0500") Message-ID: User-Agent: Gnus/5.090005 (Oort Gnus v0.05) Emacs/21.2.50 (ia64-suse-linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-SW-Source: 2002-01/txt/msg00775.txt.bz2 Andrew Cagney writes: |> > + for (i = FPC_REGNUM; i <= FPI_REGNUM; i++) |> > + if (regno == -1 || regno == i) |> > + fpregsetp->fpcntl[regno - FPC_REGNUM] |> > + = *(int *) ®isters[REGISTER_BYTE (regno)]; |> > |> BTW, there were a few registers[] references still lurking in there. Thanks for noticing, I have fixed it and installed the patch below for being obvious. Andreas. 2002-01-30 Andreas Schwab * m68klinux-nat.c: Fix last change to use regcache_collect instead of referencing registers[] directly. Index: m68klinux-nat.c =================================================================== RCS file: /cvs/src/src/gdb/m68klinux-nat.c,v retrieving revision 1.7 diff -u -a -r1.7 m68klinux-nat.c --- m68klinux-nat.c 2002/01/26 22:23:22 1.7 +++ m68klinux-nat.c 2002/01/30 13:55:22 @@ -195,6 +195,7 @@ register int i; unsigned int offset; /* Offset of registers within the u area. */ int tid; + char *buf = alloca (MAX_REGISTER_RAW_SIZE); if (CANNOT_STORE_REGISTER (regno)) { @@ -208,11 +209,16 @@ offset = U_REGS_OFFSET; regaddr = register_addr (regno, offset); + + /* Put the contents of regno into a local buffer */ + regcache_collect (regno, buf); + + /* Store the local buffer into the inferior a chunk at the time. */ for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (PTRACE_XFER_TYPE)) { errno = 0; ptrace (PT_WRITE_U, tid, (PTRACE_ARG3_TYPE) regaddr, - *(PTRACE_XFER_TYPE *) & registers[REGISTER_BYTE (regno) + i]); + *(PTRACE_XFER_TYPE *) (buf + i)); regaddr += sizeof (PTRACE_XFER_TYPE); if (errno != 0) { @@ -370,15 +376,12 @@ /* Fill in the floating-point registers. */ for (i = FP0_REGNUM; i < FP0_REGNUM + 8; i++) if (regno == -1 || regno == i) - memcpy (FPREG_ADDR (fpregsetp, regno - FP0_REGNUM), - ®isters[REGISTER_BYTE (regno)], - REGISTER_RAW_SIZE(regno)); + regcache_collect (regno, FPREG_ADDR (fpregsetp, regno - FP0_REGNUM)); /* Fill in the floating-point control registers. */ for (i = FPC_REGNUM; i <= FPI_REGNUM; i++) if (regno == -1 || regno == i) - fpregsetp->fpcntl[regno - FPC_REGNUM] - = *(int *) ®isters[REGISTER_BYTE (regno)]; + regcache_collect (regno, fpregsetp->fpcntl[regno - FPC_REGNUM]); } #ifdef HAVE_PTRACE_GETREGS -- Andreas Schwab, SuSE Labs, schwab@suse.de SuSE GmbH, Deutschherrnstr. 15-19, D-90429 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."