diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2014-06-11 16:58:51 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2014-06-11 16:58:51 +0000 |
commit | d9c35eee65f97e368a89148572ca8a43d0eb071c (patch) | |
tree | 3d0591f6b1eb26e1dda4162bf800619545af750e /gcc/recog.c | |
parent | 3c4c42e826b61d7b99e6be965dd1187784d2228c (diff) | |
download | gcc-d9c35eee65f97e368a89148572ca8a43d0eb071c.zip gcc-d9c35eee65f97e368a89148572ca8a43d0eb071c.tar.gz gcc-d9c35eee65f97e368a89148572ca8a43d0eb071c.tar.bz2 |
genpreds.c (const_int_start, [...]): New variables.
gcc/
* genpreds.c (const_int_start, const_int_end): New variables.
(choose_enum_order): Output CONST_INT constraints before memory
constraints.
(write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
Add CT_CONST_INT.
* ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
* ira.c (ira_setup_alts): Likewise.
* lra-constraints.c (process_alt_operands): Likewise.
* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
* reload.c (find_reloads): Likewise.
From-SVN: r211473
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index 9d9fa77..2b62167 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -1920,6 +1920,13 @@ asm_operand_ok (rtx op, const char *constraint, const char **constraints) goto reg; break; + case CT_CONST_INT: + if (!result + && CONST_INT_P (op) + && insn_const_int_ok_for_constraint (INTVAL (op), cn)) + result = 1; + break; + case CT_MEMORY: /* Every memory operand can be reloaded to fit. */ result = result || memory_operand (op, VOIDmode); @@ -2443,6 +2450,9 @@ preprocess_constraints (int n_operands, int n_alternatives, op_alt[i].cl = reg_class_subunion[op_alt[i].cl][cl]; break; + case CT_CONST_INT: + break; + case CT_MEMORY: op_alt[i].memory_ok = 1; break; |