From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29359 invoked by alias); 18 Mar 2003 18:28: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 29262 invoked from network); 18 Mar 2003 18:28:52 -0000 Received: from unknown (HELO takamaka.act-europe.fr) (142.179.108.108) by sources.redhat.com with SMTP; 18 Mar 2003 18:28:52 -0000 Received: by takamaka.act-europe.fr (Postfix, from userid 507) id 320B8D34B8; Tue, 18 Mar 2003 10:28:55 -0800 (PST) Date: Tue, 18 Mar 2003 18:28:00 -0000 From: Joel Brobecker To: Andrew Cagney Cc: gdb-patches@sources.redhat.com Subject: Re: [RFA/hppa] Remove hack in hppa_push_dummy_frame... Message-ID: <20030318182855.GU16507@gnat.com> References: <20030318023007.GN16507@gnat.com> <3E76A49D.4070607@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="QDd5rp1wjxlDmy9q" Content-Disposition: inline In-Reply-To: <3E76A49D.4070607@redhat.com> User-Agent: Mutt/1.4i X-SW-Source: 2003-03/txt/msg00405.txt.bz2 --QDd5rp1wjxlDmy9q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 307 > >2003-03-17 J. Brobecker > > > > * hppa-tdep.c (hppa_push_dummy_frame): Remove hack which does not > > appear to be working in any case. > > > Yes! I knew you'd like it :-). But did I forget to attach the patch? :-(. Here is the change I just checked in. -- Joel --QDd5rp1wjxlDmy9q Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="hppa-tdep.c.diff" Content-length: 2164 Index: hppa-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/hppa-tdep.c,v retrieving revision 1.56 diff -c -3 -p -r1.56 hppa-tdep.c *** hppa-tdep.c 17 Mar 2003 23:25:08 -0000 1.56 --- hppa-tdep.c 18 Mar 2003 02:18:23 -0000 *************** hppa_push_dummy_frame (struct inferior_s *** 1440,1470 **** CORE_ADDR int_buffer; double freg_buffer; - /* Oh, what a hack. If we're trying to perform an inferior call - while the inferior is asleep, we have to make sure to clear - the "in system call" bit in the flag register (the call will - start after the syscall returns, so we're no longer in the system - call!) This state is kept in "inf_status", change it there. - - We also need a number of horrid hacks to deal with lossage in the - PC queue registers (apparently they're not valid when the in syscall - bit is set). */ pc = hppa_target_read_pc (inferior_ptid); int_buffer = read_register (FLAGS_REGNUM); if (int_buffer & 0x2) { ! unsigned int sid; ! int_buffer &= ~0x2; ! write_inferior_status_register (inf_status, 0, int_buffer); ! write_inferior_status_register (inf_status, PCOQ_HEAD_REGNUM, pc + 0); ! write_inferior_status_register (inf_status, PCOQ_TAIL_REGNUM, pc + 4); ! sid = (pc >> 30) & 0x3; if (sid == 0) pcspace = read_register (SR4_REGNUM); else pcspace = read_register (SR4_REGNUM + 4 + sid); - write_inferior_status_register (inf_status, PCSQ_HEAD_REGNUM, pcspace); - write_inferior_status_register (inf_status, PCSQ_TAIL_REGNUM, pcspace); } else pcspace = read_register (PCSQ_HEAD_REGNUM); --- 1440,1454 ---- CORE_ADDR int_buffer; double freg_buffer; pc = hppa_target_read_pc (inferior_ptid); int_buffer = read_register (FLAGS_REGNUM); if (int_buffer & 0x2) { ! const unsigned int sid = (pc >> 30) & 0x3; if (sid == 0) pcspace = read_register (SR4_REGNUM); else pcspace = read_register (SR4_REGNUM + 4 + sid); } else pcspace = read_register (PCSQ_HEAD_REGNUM); --QDd5rp1wjxlDmy9q--