public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Cary Coutant <cary@cup.hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] Unwind problem for __attribute__ noreturn
Date: Sat, 24 Mar 2001 00:58:59 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590693005348@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590693005303@msgid-missing>

>I don't know who Cary is

For those who don't know me, I'm responsible for the HP-UX runtime 
architecture on both PA-RISC and IA-64. I've worked with Intel on IA-64 
from the beginning, contributed to the hardware architecture, co-led the 
development of the runtime architecture, and wrote a large part of the 
Software Conventions and Runtime Architecture document, including all of 
the unwind chapter. (Sometimes I don't like to admit that when it becomes 
evident that I neglected a corner case such as the one we're now 
discussing!)

While I don't participate in the Linux implementation effort (though I'd 
like to), I keep an eye on this mailing list to catch and correct issues 
like this one.


>When unwinding, we are doing a table lookup.  The address space is split into
>a bunch of separate unwind regions, each one stopping where the next one
>starts.  This leaves us vulnerable to boundary crossing problems.  If a call
>occurs in the last bundle of an unwind region, then the return address points
>to the next unwind region.

Except for calls to noreturn procedures (which I failed to anticipate in 
the design and specification of the unwind architecture), the return 
point must always be in the same unwind region as the call, because 
nothing can happen to change the unwind state between the call and the 
return point.


>Similarly, when doing C++ exception handling, we are doing a table lookup.
>The address space in split into a bunch of separate exception regions, and
>there is a boundary-crossing problem if a call is the last instruction of an
>exception region.

To me, the EH model is better thought of not as a set of regions, but as 
a set of discrete points in the code where an exception can be raised. 
Each of these points, most of which are return points following calls, 
can be described in the EH tables without any ambiguity about what region 
the IP address belongs to.


-cary


  parent reply	other threads:[~2001-03-24  0:58 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
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 [this message]
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-105590693005348@msgid-missing \
    --to=cary@cup.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