diff options
author | aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-30 21:38:46 +0000 |
---|---|---|
committer | aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-30 21:38:46 +0000 |
commit | 5cb06fbbebd8155782baf71fdb146fda920f9a95 (patch) | |
tree | df34bc368011bb905fd3aa7aa99e7bc62cf10268 /gcc/config/sh/sh.h | |
parent | 0735af8d71db1517f14d80a184c9edb92b301c17 (diff) | |
download | gcc-5cb06fbbebd8155782baf71fdb146fda920f9a95.tar.gz |
* config/sh/sh.c (sh_promote_prototypes): Make static.
(sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
functions.
(TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
* config/sh/sh.h: (FUNCTION_VALUE_REGNO_P): Redefine, use
sh_function_value_regno_p.
(FUNCTION_VALUE, LIBCALL_VALUE): Remove.
* config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
(sh_promote_prototypes) : Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154842 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/sh.h')
-rw-r--r-- | gcc/config/sh/sh.h | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index c24555f9796..697138f57ce 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -1453,37 +1453,7 @@ extern enum reg_class regno_reg_class[FIRST_PSEUDO_REGISTER]; ? FIRST_FP_PARM_REG \ : FIRST_PARM_REG) -/* Define how to find the value returned by a function. - VALTYPE is the data type of the value (as a tree). - If the precise function being called is known, FUNC is its FUNCTION_DECL; - otherwise, FUNC is 0. - For the SH, this is like LIBCALL_VALUE, except that we must change the - mode like PROMOTE_MODE does. - ??? PROMOTE_MODE is ignored for non-scalar types. The set of types - tested here has to be kept in sync with the one in explow.c:promote_mode. */ - -#define FUNCTION_VALUE(VALTYPE, FUNC) \ - gen_rtx_REG ( \ - ((GET_MODE_CLASS (TYPE_MODE (VALTYPE)) == MODE_INT \ - && GET_MODE_SIZE (TYPE_MODE (VALTYPE)) < 4 \ - && (TREE_CODE (VALTYPE) == INTEGER_TYPE \ - || TREE_CODE (VALTYPE) == ENUMERAL_TYPE \ - || TREE_CODE (VALTYPE) == BOOLEAN_TYPE \ - || TREE_CODE (VALTYPE) == REAL_TYPE \ - || TREE_CODE (VALTYPE) == OFFSET_TYPE)) \ - && sh_promote_prototypes (FUNC) \ - ? (TARGET_SHMEDIA64 ? DImode : SImode) : TYPE_MODE (VALTYPE)), \ - BASE_RETURN_VALUE_REG (TYPE_MODE (VALTYPE))) - -/* Define how to find the value returned by a library function - assuming the value has mode MODE. */ -#define LIBCALL_VALUE(MODE) \ - gen_rtx_REG ((MODE), BASE_RETURN_VALUE_REG (MODE)); - -/* 1 if N is a possible register number for a function value. */ -#define FUNCTION_VALUE_REGNO_P(REGNO) \ - ((REGNO) == FIRST_RET_REG || (TARGET_SH2E && (REGNO) == FIRST_FP_RET_REG) \ - || (TARGET_SHMEDIA_FPU && (REGNO) == FIRST_FP_RET_REG)) +#define FUNCTION_VALUE_REGNO_P(REGNO) sh_function_value_regno_p (REGNO) /* 1 if N is a possible register number for function argument passing. */ /* ??? There are some callers that pass REGNO as int, and others that pass |