Fix from Dave Korn in case a backend does not declare any define_register_constraints

From-SVN: r147020
This commit is contained in:
Dave Korn 2009-04-30 21:52:15 +00:00 committed by Michael Meissner
parent 70ccbedbb1
commit b65d674492
3 changed files with 15 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
* ira.c (setup_cover_and_important_classes): Use safe macro
REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
directly.
* genpreds.c (write_tm_preds_h): Output suitable definition of
REG_CLASS_FOR_CONSTRAINT.
2009-04-30 Rafael Avila de Espindola <espindola@google.com>
* alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value

View File

@ -1280,9 +1280,13 @@ write_tm_preds_h (void)
puts ("extern enum reg_class regclass_for_constraint "
"(enum constraint_num);\n"
"#define REG_CLASS_FROM_CONSTRAINT(c_,s_) \\\n"
" regclass_for_constraint (lookup_constraint (s_))\n");
" regclass_for_constraint (lookup_constraint (s_))\n"
"#define REG_CLASS_FOR_CONSTRAINT(x_) \\\n"
" regclass_for_constraint (x_)\n");
else
puts ("#define REG_CLASS_FROM_CONSTRAINT(c_,s_) NO_REGS");
puts ("#define REG_CLASS_FROM_CONSTRAINT(c_,s_) NO_REGS\n"
"#define REG_CLASS_FOR_CONSTRAINT(x_) \\\n"
" NO_REGS\n");
if (have_const_int_constraints)
puts ("extern bool insn_const_int_ok_for_constraint "
"(HOST_WIDE_INT, enum constraint_num);\n"

View File

@ -756,7 +756,7 @@ setup_cover_and_important_classes (void)
continue;
#ifdef CONSTRAINT_NUM_DEFINED_P
for (j = 0; j < CONSTRAINT__LIMIT; j++)
if ((int) regclass_for_constraint ((enum constraint_num) j) == i)
if ((int) REG_CLASS_FOR_CONSTRAINT ((enum constraint_num) j) == i)
break;
if (j < CONSTRAINT__LIMIT)
{