diff options
author | Anatoly Sokolov <aesok@post.ru> | 2011-02-28 23:48:06 +0300 |
---|---|---|
committer | Anatoly Sokolov <aesok@gcc.gnu.org> | 2011-02-28 23:48:06 +0300 |
commit | 998871e99f606ee7c70f86e3e4edaeb0fecf88a8 (patch) | |
tree | 29e37d75b01c486f2df22a90045897281dd0d531 /gcc/config | |
parent | 9926de2cd8da73d5d949211455df6b0aea65dee5 (diff) | |
download | gcc-998871e99f606ee7c70f86e3e4edaeb0fecf88a8.zip gcc-998871e99f606ee7c70f86e3e4edaeb0fecf88a8.tar.gz gcc-998871e99f606ee7c70f86e3e4edaeb0fecf88a8.tar.bz2 |
stormy16.h (FUNCTION_VALUE, [...]): Remove.
* config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
FUNCTION_VALUE_REGNO_P): Remove.
* config/stormy16/stormy16-protos.h (xstormy16_function_value):
Remove.
* config/stormy16/stormy16.c (xstormy16_function_value): Make static.
Add 'outgoing' argument.
(xstormy16_libcall_value, xstormy16_function_value_regno_p): New
function.
(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
TARGET_FUNCTION_VALUE_REGNO_P): Define.
From-SVN: r170573
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/stormy16/stormy16-protos.h | 1 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.c | 31 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.h | 7 |
3 files changed, 28 insertions, 11 deletions
diff --git a/gcc/config/stormy16/stormy16-protos.h b/gcc/config/stormy16/stormy16-protos.h index e9842ea..bd0b581 100644 --- a/gcc/config/stormy16/stormy16-protos.h +++ b/gcc/config/stormy16/stormy16-protos.h @@ -37,7 +37,6 @@ extern void xstormy16_asm_output_aligned_common (FILE *, tree, const char *, #if defined (TREE_CODE) && defined (RTX_CODE) extern void xstormy16_initialize_trampoline (rtx, rtx, rtx); -extern rtx xstormy16_function_value (const_tree, const_tree); #endif #ifdef RTX_CODE diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c index 03253dd..66cd145 100644 --- a/gcc/config/stormy16/stormy16.c +++ b/gcc/config/stormy16/stormy16.c @@ -1419,10 +1419,12 @@ xstormy16_trampoline_init (rtx m_tramp, tree fndecl, rtx static_chain) emit_move_insn (reg_addr_mem, reg_fnaddr); } -/* Worker function for FUNCTION_VALUE. */ +/* Worker function for TARGET_FUNCTION_VALUE. */ -rtx -xstormy16_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED) +static rtx +xstormy16_function_value (const_tree valtype, + const_tree func ATTRIBUTE_UNUSED, + bool outgoing ATTRIBUTE_UNUSED) { enum machine_mode mode; mode = TYPE_MODE (valtype); @@ -1430,6 +1432,23 @@ xstormy16_function_value (const_tree valtype, const_tree func ATTRIBUTE_UNUSED) return gen_rtx_REG (mode, RETURN_VALUE_REGNUM); } +/* Worker function for TARGET_LIBCALL_VALUE. */ + +static rtx +xstormy16_libcall_value (enum machine_mode mode, + const_rtx fun ATTRIBUTE_UNUSED) +{ + return gen_rtx_REG (mode, RETURN_VALUE_REGNUM); +} + +/* Worker function for TARGET_FUNCTION_VALUE_REGNO_P. */ + +static bool +xstormy16_function_value_regno_p (const unsigned int regno) +{ + return (regno == RETURN_VALUE_REGNUM); +} + /* A C compound statement that outputs the assembler code for a thunk function, used to implement C++ virtual function calls with multiple inheritance. The thunk acts as a wrapper around a virtual function, adjusting the implicit @@ -2603,6 +2622,12 @@ static const struct default_options xstorym16_option_optimization_table[] = #undef TARGET_RETURN_IN_MEMORY #define TARGET_RETURN_IN_MEMORY xstormy16_return_in_memory +#undef TARGET_FUNCTION_VALUE +#define TARGET_FUNCTION_VALUE xstormy16_function_value +#undef TARGET_LIBCALL_VALUE +#define TARGET_LIBCALL_VALUE xstormy16_libcall_value +#undef TARGET_FUNCTION_VALUE_REGNO_P +#define TARGET_FUNCTION_VALUE_REGNO_P xstormy16_function_value_regno_p #undef TARGET_MACHINE_DEPENDENT_REORG #define TARGET_MACHINE_DEPENDENT_REORG xstormy16_reorg diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h index 7b8f507..daec8a2 100644 --- a/gcc/config/stormy16/stormy16.h +++ b/gcc/config/stormy16/stormy16.h @@ -319,13 +319,6 @@ enum reg_class /* The number of the hard register that is used to return a scalar value from a function call. */ #define RETURN_VALUE_REGNUM FIRST_ARGUMENT_REGISTER - -#define FUNCTION_VALUE(VALTYPE, FUNC) \ - xstormy16_function_value (VALTYPE, FUNC) - -#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, RETURN_VALUE_REGNUM) - -#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RETURN_VALUE_REGNUM) /* Function Entry and Exit. */ |