public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: David Mosberger <davidm@hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] Unwind problem for __attribute__ noreturn
Date: Wed, 21 Mar 2001 22:54:23 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590693005329@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590693005303@msgid-missing>

>>>>> On Wed, 21 Mar 2001 12:38:47 -0800, Jim Wilson <wilson@cygnus.com> said:

  Jim> Also, if gcc does have to change, then I need a good
  Jim> explanation of why.  I can't go to the other gcc developers and
  Jim> tell them that the way we've been doing things for 3-4 years is
  Jim> now suddenly wrong, without also explaining exactly why it is
  Jim> wrong.  As yet, I do not have any explanation I can use.

Fair enough.  But I hope are not discounting the usefulness of a
short-circuit return just because gcc happens not to generate such
code at the moment.  It's certainly a common idiom for assembly
programming and clearly useful.  So, the example that Keith gave is
one valid example:

	mov rp = common_exit_path_code
	br.call b6 = handler

A second example is:

{ .bbb
   (p8)	br.call rp = function-that-doesn't-return
	nop.b 0
	cover
}

The cover does affect the current frame state, as it allocates a NULL
register frame.  If you were to just decrement the ip, you'd pick up
the frame state for cover (in all likelihood).  Note that according to
Cary, the above example would be illegal because the frame state
changes between the point of br.call and the address that "rp" points
to.  But it shows that even without Cary's rule you'd could still get
into trouble with decrementing the IP.

Also, I'd like to point out that if X is a valid bundle address, then
X-1 is NOT a valid instruction address as it contains 0xf in the least
significant four bits.  I suspect that if you pass such an address to
an unwind library, you end up relying on implementation specific
behavior.

	--david


  parent reply	other threads:[~2001-03-21 22:54 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-20  2:10 [Linux-ia64] Unwind problem for __attribute__ noreturn Keith Owens
2001-03-21  0:24 ` Jim Wilson
2001-03-21  6:03 ` Keith Owens
2001-03-21  6:53 ` David Mosberger
2001-03-21  7:12 ` Jim Wilson
2001-03-21  7:54 ` David Mosberger
2001-03-21  8:54 ` Keith Owens
2001-03-21 17:54 ` David Mosberger
2001-03-21 18:48 ` Cary Coutant
2001-03-21 19:07 ` Jim Wilson
2001-03-21 19:13 ` David Mosberger
2001-03-21 19:13 ` Jim Wilson
2001-03-21 19:26 ` Cary Coutant
2001-03-21 19:40 ` Jim Wilson
2001-03-21 19:58 ` David Mosberger
2001-03-21 20:00 ` Jim Wilson
2001-03-21 20:38 ` Jim Wilson
2001-03-21 22:54 ` David Mosberger [this message]
2001-03-21 23:42 ` Cary Coutant
2001-03-22 17:00 ` Rich Altmaier
2001-03-23 20:28 ` Jim Wilson
2001-03-24  0:58 ` Cary Coutant
2001-03-24  1:27 ` Keith Owens
2001-03-24  1:37 ` Jim Wilson
2001-03-26 22:06 ` DE-DINECHIN,CHRISTOPHE (HP-Cupertino,ex1)
2001-03-26 22:58 ` Cary Coutant

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-ia64-105590693005329@msgid-missing \
    --to=davidm@hpl.hp.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox