From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9692 invoked by alias); 3 Nov 2002 12:43:55 -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 9542 invoked from network); 3 Nov 2002 12:43:53 -0000 Received: from unknown (HELO walton.kettenis.dyndns.org) (62.163.169.250) by sources.redhat.com with SMTP; 3 Nov 2002 12:43:53 -0000 Received: from elgar.kettenis.dyndns.org (elgar.kettenis.dyndns.org [192.168.0.2]) by walton.kettenis.dyndns.org (8.12.6/8.12.5) with ESMTP id gA3ChpKo000482 for ; Sun, 3 Nov 2002 13:43:51 +0100 (CET) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: from elgar.kettenis.dyndns.org (localhost [127.0.0.1]) by elgar.kettenis.dyndns.org (8.12.6/8.12.6) with ESMTP id gA3ChpmU006475 for ; Sun, 3 Nov 2002 13:43:51 +0100 (CET) (envelope-from kettenis@elgar.kettenis.dyndns.org) Received: (from kettenis@localhost) by elgar.kettenis.dyndns.org (8.12.6/8.12.6/Submit) id gA3ChoG7006472; Sun, 3 Nov 2002 13:43:50 +0100 (CET) Date: Sun, 03 Nov 2002 04:43:00 -0000 Message-Id: <200211031243.gA3ChoG7006472@elgar.kettenis.dyndns.org> From: Mark Kettenis To: gdb-patches@sources.redhat.com Subject: [PATCH/RFC] Get rid of deprectated_read_register_gen in i387-tdep.c X-SW-Source: 2002-11/txt/msg00021.txt.bz2 I checked in the attached patch. Unfortunately this introduces a FAIL: gdb.base/default.exp: info float in the testsuite. The output now is: info float No registers. Which makes sense to me since it's the truth. However, "info registers" and "info vector" print a slightly different message: info registers The program has no registers now. The reason is that the bit of code that prints this message: if (!target_has_registers) error ("The program has no registers now."); if (selected_frame == NULL) error ("No selected frame."); isn't executed if a print_float_info method exists in the target vector. Is there any reason not to move these statements up such that they're executed even if a target provides the print_float_info method? Mark Index: ChangeLog from Mark Kettenis * i387-tdep.c (i387_print_float_info): Replace calls to register_read and deprecated_read_register_gen with calls to frame_register_read, and make the necessary adjustments to the surrounding code. Index: i387-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/i387-tdep.c,v retrieving revision 1.24 diff -u -p -r1.24 i387-tdep.c --- i387-tdep.c 2 Nov 2002 14:59:10 -0000 1.24 +++ i387-tdep.c 3 Nov 2002 12:31:46 -0000 @@ -321,26 +321,35 @@ void i387_print_float_info (struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args) { - unsigned int fctrl; - unsigned int fstat; - unsigned int ftag; - unsigned int fiseg; - unsigned int fioff; - unsigned int foseg; - unsigned int fooff; - unsigned int fop; + char buf[4]; + ULONGEST fctrl; + ULONGEST fstat; + ULONGEST ftag; + ULONGEST fiseg; + ULONGEST fioff; + ULONGEST foseg; + ULONGEST fooff; + ULONGEST fop; int fpreg; int top; - fctrl = read_register (FCTRL_REGNUM); - fstat = read_register (FSTAT_REGNUM); - ftag = read_register (FTAG_REGNUM); - fiseg = read_register (FCS_REGNUM); - fioff = read_register (FCOFF_REGNUM); - foseg = read_register (FDS_REGNUM); - fooff = read_register (FDOFF_REGNUM); - fop = read_register (FOP_REGNUM); - + frame_register_read (frame, FCTRL_REGNUM, buf); + fctrl = extract_unsigned_integer (buf, 4); + frame_register_read (frame, FSTAT_REGNUM, buf); + fstat = extract_unsigned_integer (buf, 4); + frame_register_read (frame, FTAG_REGNUM, buf); + ftag = extract_unsigned_integer (buf, 4); + frame_register_read (frame, FISEG_REGNUM, buf); + fiseg = extract_unsigned_integer (buf, 4); + frame_register_read (frame, FIOFF_REGNUM, buf); + fioff = extract_unsigned_integer (buf, 4); + frame_register_read (frame, FOSEG_REGNUM, buf); + foseg = extract_unsigned_integer (buf, 4); + frame_register_read (frame, FOOFF_REGNUM, buf); + fooff = extract_unsigned_integer (buf, 4); + frame_register_read (frame, FOP_REGNUM, buf); + fop = extract_unsigned_integer (buf, 4); + top = ((fstat >> 11) & 7); for (fpreg = 7; fpreg >= 0; fpreg--) @@ -367,7 +376,7 @@ i387_print_float_info (struct gdbarch *g break; } - deprecated_read_register_gen ((fpreg + 8 - top) % 8 + FP0_REGNUM, raw); + frame_register_read (frame, (fpreg + 8 - top) % 8 + FP0_REGNUM, raw); fputs_filtered ("0x", file); for (i = 9; i >= 0; i--)