provide default for RETURN_ADDR_OFFSET

gcc/ChangeLog:

2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (RETURN_ADDR_OFFSET): New definition.
	* except.c (expand_builtin_extract_return_addr): Remove ifdef
	RETURN_ADDR_OFFSET.
	(expand_builtin_frob_return_addr): Likewise.

From-SVN: r222298
This commit is contained in:
Trevor Saunders 2015-04-22 00:44:43 +00:00 committed by Trevor Saunders
parent 058eb3b07a
commit a8a6b3dfd3
3 changed files with 19 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* defaults.h (RETURN_ADDR_OFFSET): New definition.
* except.c (expand_builtin_extract_return_addr): Remove ifdef
RETURN_ADDR_OFFSET.
(expand_builtin_frob_return_addr): Likewise.
2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)

View File

@ -383,6 +383,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM
#endif
/* Offset between the eh handler address and entry in eh tables. */
#ifndef RETURN_ADDR_OFFSET
#define RETURN_ADDR_OFFSET 0
#endif
/* If we have named section and we support weak symbols, then use the
.jcr section for recording java classes which need to be registered
at program start-up time. */

View File

@ -2190,9 +2190,8 @@ expand_builtin_extract_return_addr (tree addr_tree)
#endif
/* Then adjust to find the real return address. */
#if defined (RETURN_ADDR_OFFSET)
addr = plus_constant (Pmode, addr, RETURN_ADDR_OFFSET);
#endif
if (RETURN_ADDR_OFFSET)
addr = plus_constant (Pmode, addr, RETURN_ADDR_OFFSET);
return addr;
}
@ -2208,10 +2207,11 @@ expand_builtin_frob_return_addr (tree addr_tree)
addr = convert_memory_address (Pmode, addr);
#ifdef RETURN_ADDR_OFFSET
addr = force_reg (Pmode, addr);
addr = plus_constant (Pmode, addr, -RETURN_ADDR_OFFSET);
#endif
if (RETURN_ADDR_OFFSET)
{
addr = force_reg (Pmode, addr);
addr = plus_constant (Pmode, addr, -RETURN_ADDR_OFFSET);
}
return addr;
}