diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-29 12:37:05 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-29 12:37:05 +0000 |
commit | 12cb78d1cca1387a092ec0bd49c250340bff4afc (patch) | |
tree | 1eab97da96906e0a2786d51d9f25f20de02befcf /gcc/ira-lives.c | |
parent | 31879e18aea3222fe3e56f2c0319c9f230645ff3 (diff) | |
download | gcc-12cb78d1cca1387a092ec0bd49c250340bff4afc.tar.gz |
2012-08-29 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 190745 using svnmerge, notably
C++ conversion.
[gcc/]
2012-08-29 Basile Starynkevitch <basile@starynkevitch.net>
{{merging with trunk, converted to C++}}
* melt-runtime.h (MELT_FLEXIBLE_DIM): Set when C++.
* melt-runtime.c (melt_tempdir_path): Don't use choose_tmpdir from
libiberty.
(meltgc_start_module_by_index): Use address-of & on VEC_index.
(melt_really_initialize): When printing builtin settings, handle
GCC 4.8 as with implicit ENABLE_BUILD_WITH_CXX.
(meltgc_out_edge): Provide additional flag TDF_DETAILS for dump_edge_info.
(melt_val2passflag): Handle PROP_referenced_vars only when defined.
* melt-module.mk: Use GCCMELT_COMPILER instead of GCCMELT_CC.
* melt-build-script.tpl: Transmit GCCMELT_COMPILER on every make
using melt-module.mk and improve the error message.
* melt-build-script.sh: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@190778 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-lives.c')
-rw-r--r-- | gcc/ira-lives.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c index 5eb13c1425d..0de1b81b73f 100644 --- a/gcc/ira-lives.c +++ b/gcc/ira-lives.c @@ -780,22 +780,21 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const) case 'n': if (CONST_INT_P (op) - || (GET_CODE (op) == CONST_DOUBLE && GET_MODE (op) == VOIDmode) + || CONST_DOUBLE_AS_INT_P (op) || (equiv_const != NULL_RTX && (CONST_INT_P (equiv_const) - || (GET_CODE (equiv_const) == CONST_DOUBLE - && GET_MODE (equiv_const) == VOIDmode)))) + || CONST_DOUBLE_AS_INT_P (equiv_const)))) return NO_REGS; break; case 's': - if ((CONSTANT_P (op) && !CONST_INT_P (op) - && (GET_CODE (op) != CONST_DOUBLE || GET_MODE (op) != VOIDmode)) + if ((CONSTANT_P (op) + && !CONST_INT_P (op) + && !CONST_DOUBLE_AS_INT_P (op)) || (equiv_const != NULL_RTX && CONSTANT_P (equiv_const) && !CONST_INT_P (equiv_const) - && (GET_CODE (equiv_const) != CONST_DOUBLE - || GET_MODE (equiv_const) != VOIDmode))) + && !CONST_DOUBLE_AS_INT_P (equiv_const))) return NO_REGS; break; @@ -818,11 +817,11 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const) case 'E': case 'F': - if (GET_CODE (op) == CONST_DOUBLE + if (CONST_DOUBLE_AS_FLOAT_P (op) || (GET_CODE (op) == CONST_VECTOR && GET_MODE_CLASS (GET_MODE (op)) == MODE_VECTOR_FLOAT) || (equiv_const != NULL_RTX - && (GET_CODE (equiv_const) == CONST_DOUBLE + && (CONST_DOUBLE_AS_FLOAT_P (equiv_const) || (GET_CODE (equiv_const) == CONST_VECTOR && (GET_MODE_CLASS (GET_MODE (equiv_const)) == MODE_VECTOR_FLOAT))))) @@ -831,10 +830,10 @@ single_reg_class (const char *constraints, rtx op, rtx equiv_const) case 'G': case 'H': - if ((GET_CODE (op) == CONST_DOUBLE + if ((CONST_DOUBLE_AS_FLOAT_P (op) && CONST_DOUBLE_OK_FOR_CONSTRAINT_P (op, c, constraints)) || (equiv_const != NULL_RTX - && GET_CODE (equiv_const) == CONST_DOUBLE + && CONST_DOUBLE_AS_FLOAT_P (equiv_const) && CONST_DOUBLE_OK_FOR_CONSTRAINT_P (equiv_const, c, constraints))) return NO_REGS; |