diff options
author | Tristan Gingold <gingold@adacore.com> | 2011-12-22 16:40:11 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@gcc.gnu.org> | 2011-12-22 16:40:11 +0000 |
commit | 8ee957277277dd4efb39d5d828f2bfa5573c2fc8 (patch) | |
tree | 7bf3daa55d25df3c0217a9acf9699af3680700a4 /gcc/config/ia64/vms.h | |
parent | 64729d8c5d47f1d2f50f508f61303e3be0c1b64a (diff) | |
download | gcc-8ee957277277dd4efb39d5d828f2bfa5573c2fc8.zip gcc-8ee957277277dd4efb39d5d828f2bfa5573c2fc8.tar.gz gcc-8ee957277277dd4efb39d5d828f2bfa5573c2fc8.tar.bz2 |
ia64.c (ia64_promote_function_mode): Remove.
2011-12-22 Tristan Gingold <gingold@adacore.com>
* config/ia64/ia64.c (ia64_promote_function_mode): Remove.
(TARGET_PROMOTE_FUNCTION_MODE): Remove.
(ia64_function_value): Call promote_function_mode instead of
ia64_promote_function_mode.
* config/ia64/vms.h (PROMOTE_MODE): Define.
(TARGET_PROMOTE_FUNCTION_MODE): Define.
From-SVN: r182627
Diffstat (limited to 'gcc/config/ia64/vms.h')
-rw-r--r-- | gcc/config/ia64/vms.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/config/ia64/vms.h b/gcc/config/ia64/vms.h index 75ea4ad..f34ee78 100644 --- a/gcc/config/ia64/vms.h +++ b/gcc/config/ia64/vms.h @@ -135,3 +135,25 @@ STATIC func_ptr __CTOR_LIST__[1] \ #undef TARGET_ASM_NAMED_SECTION #define TARGET_ASM_NAMED_SECTION ia64_vms_elf_asm_named_section + +/* Define this macro if it is advisable to hold scalars in registers + in a wider mode than that declared by the program. In such cases, + the value is constrained to be within the bounds of the declared + type, but kept valid in the wider mode. The signedness of the + extension may differ from that of the type. + + For ia64, we always store objects in a full register. 32-bit integers + are always sign-extended, but smaller objects retain their signedness. */ + +#undef PROMOTE_MODE +#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \ + if (GET_MODE_CLASS (MODE) == MODE_INT \ + && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ + { \ + if ((MODE) == SImode) \ + (UNSIGNEDP) = 0; \ + (MODE) = DImode; \ + } + +#undef TARGET_PROMOTE_FUNCTION_MODE +#define TARGET_PROMOTE_FUNCTION_MODE default_promote_function_mode_always_promote |