From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16090 invoked by alias); 13 Feb 2002 04:08:59 -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 15950 invoked from network); 13 Feb 2002 04:08:51 -0000 Received: from unknown (HELO sydmr01.au.aunz.csc.com) (20.139.1.26) by sources.redhat.com with SMTP; 13 Feb 2002 04:08:51 -0000 Received: from aus-syd11.int.csc.com.au (mailgw.int.csc.com.au [20.10.3.50] (may be forged)) by sydmr01.au.aunz.csc.com (Mirapoint) with ESMTP id AKW30236; Wed, 13 Feb 2002 15:30:58 +1100 (EST) Subject: Re: Additional patches for UnixWare {2.1.3,7.1.0} support To: Mark Kettenis Cc: gdb-patches@sources.redhat.com X-Mailer: Lotus Notes Release 5.0.4a July 24, 2000 Message-ID: From: rbrown64@csc.com.au Date: Tue, 12 Feb 2002 20:08:00 -0000 X-MIMETrack: Serialize by Router on AUS-SYD11/AUST/CSC(Release 5.0.9a |January 7, 2002) at 13-02-2002 15:10:12 MIME-Version: 1.0 Content-type: text/plain; charset=us-ascii X-SW-Source: 2002-02/txt/msg00345.txt.bz2 Please apply the i387_*_fsave parts of the patch to i386v4-nat.c . --- i386v4-nat.c.orig Thu Jan 31 09:32:37 2002 +++ i386v4-nat.c Wed Feb 13 15:11:07 2002 @@ -152,28 +152,9 @@ idea of the current floating point register values. */ /* FIXME: Assumes that fpregsetp contains an i387 FSAVE area. */ -static const int freg_offset_map[] = -{ #if !defined(FPREGSET_FSAVE_OFFSET) #define FPREGSET_FSAVE_OFFSET 0 #endif - FPREGSET_FSAVE_OFFSET + 28 + 0 * 10, - FPREGSET_FSAVE_OFFSET + 28 + 1 * 10, - FPREGSET_FSAVE_OFFSET + 28 + 2 * 10, - FPREGSET_FSAVE_OFFSET + 28 + 3 * 10, - FPREGSET_FSAVE_OFFSET + 28 + 4 * 10, - FPREGSET_FSAVE_OFFSET + 28 + 5 * 10, - FPREGSET_FSAVE_OFFSET + 28 + 6 * 10, - FPREGSET_FSAVE_OFFSET + 28 + 7 * 10, - FPREGSET_FSAVE_OFFSET + 0, - FPREGSET_FSAVE_OFFSET + 4, - FPREGSET_FSAVE_OFFSET + 8, - FPREGSET_FSAVE_OFFSET + 16, - FPREGSET_FSAVE_OFFSET + 12, - FPREGSET_FSAVE_OFFSET + 24, - FPREGSET_FSAVE_OFFSET + 20, - FPREGSET_FSAVE_OFFSET + 16 -}; void supply_fpregset (fpregset_t *fpregsetp) @@ -182,27 +163,7 @@ if (NUM_FREGS == 0) return; - for (regi = FP0_REGNUM; regi <= LAST_FPU_CTRL_REGNUM; regi++) - { - char tbuf[4]; - ULONGEST tval; - char *from = (char *) fpregsetp + freg_offset_map[regi - FP0_REGNUM]; - - if (regi == FCS_REGNUM) - { - tval = extract_unsigned_integer (from, 4) & 0xffff; - store_unsigned_integer (tbuf, 4, tval); - supply_register (regi, tbuf); - } - else if (regi == FOP_REGNUM) - { - tval = (extract_unsigned_integer (from, 4) >> 16) & ((1 << 11) - 1); - store_unsigned_integer (tbuf, 4, tval); - supply_register (regi, tbuf); - } - else - supply_register (regi, from); - } + i387_supply_fsave ((char *) fpregsetp + FPREGSET_FSAVE_OFFSET); } /* Given a pointer to a floating point register set in /proc format @@ -217,35 +178,7 @@ if (NUM_FREGS == 0) return; - for (regi = FP0_REGNUM; regi <= LAST_FPU_CTRL_REGNUM; regi++) - { - if ((regno == -1) || (regno == regi)) - { - char *to = (char *) fpregsetp + freg_offset_map[regi - FP0_REGNUM]; - char *from = (char *) ®isters[REGISTER_BYTE (regi)]; - ULONGEST valto; - ULONGEST valfrom; - - if (regi == FCS_REGNUM) - { - valto = extract_unsigned_integer (to, 4); - valfrom = extract_unsigned_integer (from, 4); - valto = (valto & ~0xffff) | (valfrom & 0xffff); - store_unsigned_integer (to, 4, valto); - } - else if (regi == FOP_REGNUM) - { - valto = extract_unsigned_integer (to, 4); - valfrom = extract_unsigned_integer (from, 4); - valto = (valto & 0xffff) | ((valfrom & ((1 << 11) - 1)) << 16); - store_unsigned_integer (to, 4, valto); - } - else - { - memcpy (to, from, REGISTER_RAW_SIZE (regi)); - } - } - } + i387_fill_fsave ((char *) fpregsetp + FPREGSET_FSAVE_OFFSET, regno); } #endif /* defined (HAVE_FPREGSET_T) */ Mark Kettenis on 27/01/2002 04:03:33 To: rbrown64@csc.com.au cc: gdb-patches@sources.redhat.com Subject: Re: Additional patches for UnixWare {2.1.3,7.1.0} support rbrown64@csc.com.au writes: > 2002-01-15 Rodney Brown > > * config/i386/tm-i386v4.h: Define HAVE_I387_REGS. > * config/i386/i386v42mp.mh: Add i387-nat.o . > * i386v4-nat.c: Include i387-nat.h. > (supply_fpregset): Use i387_supply_fsave. > (fill_fpregset): Use i387_fill_fsave. > * procfs.c(procfs_do_thread_registers): Use elfcore_write_pstatus > if pstatus_t is available. Sorry for the delay, but the i386 bits of these patch are approved. Mark