From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2431 invoked by alias); 1 Dec 2004 13:32:29 -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 30450 invoked from network); 1 Dec 2004 13:20:26 -0000 Received: from unknown (HELO rwcrmhc13.comcast.net) (204.127.198.39) by sourceware.org with SMTP; 1 Dec 2004 13:20:26 -0000 Received: from [10.0.1.2] (h000393256f12.ne.client2.attbi.com[24.61.199.96]) by comcast.net (rwcrmhc13) with SMTP id <2004120113202501500d9su0e>; Wed, 1 Dec 2004 13:20:25 +0000 User-Agent: Microsoft-Entourage/11.1.0.040913 Date: Wed, 01 Dec 2004 13:32:00 -0000 Subject: Re: [patch/RFA] multiarch INSTRUCTION_NULLIFIED From: Paul Schlie To: Message-ID: Mime-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit X-SW-Source: 2004-12/txt/msg00014.txt.bz2 > Randolph wrote: >> >well, first i want to understand the problem. because i'm still not >> >yet 100% convinced that step_through_delay will work. simply using the >> >"instruction_nullified" method in hppa-tdep as the "step_through_delay" >> >method certainly is not working... >> >> When doing a stepi? step_through_delay certainly won't help when it >> comes to doing a backtrace from the nullified instruction. > > when doing a step. A point that may be worth considering is that on architectures which support jump/branch delay slots, the branch and delay slot is actually logically executed as single compound instruction, treated by the machine as a unified whole. i.e. if an interrupt is received, the machine will break either at the jump/branch, or at it's target (after logically completing execution of it's delay slot, conditionally or otherwise, but never in between, as the control flow through the delay slot is bound to the preceding jump/branch.) Therefore it's likely ill advised to attempt to logically single step through a corresponding instruction pair any differently, as although coded as two separate instructions, execution can't be literally interrupted between the jump/branch and it's delay slot on most machines, I believe.