diff options
author | Thomas Schwinge <tschwinge@gnu.org> | 2009-08-07 00:02:34 +0200 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gcc.gnu.org> | 2009-08-07 00:02:34 +0200 |
commit | 48c4de16460fcecdef33c59f2fdfdb40b4f829c9 (patch) | |
tree | 8dcdc5645e362db9fb80eb891461282868c75fa2 | |
parent | f36d140ec568d9474c1a991c3bab831c6d868fd6 (diff) | |
download | gcc-48c4de16460fcecdef33c59f2fdfdb40b4f829c9.zip gcc-48c4de16460fcecdef33c59f2fdfdb40b4f829c9.tar.gz gcc-48c4de16460fcecdef33c59f2fdfdb40b4f829c9.tar.bz2 |
2009-08-06 Thomas Schwinge <tschwinge@gnu.org>
* gcc/doc/extend.texi (__builtin_extract_return_address)
(__builtin_frob_return_address): Document.
From-SVN: r150546
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/doc/extend.texi | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 24920f0..879b9d1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-08-06 Thomas Schwinge <tschwinge@gnu.org> + + * gcc/doc/extend.texi (__builtin_extract_return_address) + (__builtin_frob_return_address): Document. + 2009-08-06 Paul Brook <paul@codesourcery.com> * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation. diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 3435e2c..c0fed80 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -5844,10 +5844,27 @@ of the stack has been reached, this function will return @code{0} or a random value. In addition, @code{__builtin_frame_address} may be used to determine if the top of the stack has been reached. +Additional post-processing of the returned value may be needed, see +@code{__builtin_extract_return_address}. + This function should only be used with a nonzero argument for debugging purposes. @end deftypefn +@deftypefn {Built-in Function} {void *} __builtin_extract_return_address (void *@var{addr}) +The address as returned by @code{__builtin_return_address} may have to be fed +through this function to get the actual encoded address. For example, on the +31-bit S/390 platform the highest bit has to be masked out, or on SPARC +platforms an offset has to be added for the true next instruction to be +executed. + +If no fixup is needed, this function simply passes through @var{addr}. +@end deftypefn + +@deftypefn {Built-in Function} {void *} __builtin_frob_return_address (void *@var{addr}) +This function does the reverse of @code{__builtin_extract_return_address}. +@end deftypefn + @deftypefn {Built-in Function} {void *} __builtin_frame_address (unsigned int @var{level}) This function is similar to @code{__builtin_return_address}, but it returns the address of the function frame rather than the return address |