aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernd.schmidt@codesourcery.com>2010-04-16 09:32:21 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2010-04-16 09:32:21 +0000
commit6ddfdb0f7e310a026479c484e32d020b1cbeedf8 (patch)
treee2e650590b499c11d4614b72675674b86849b851 /gcc/recog.c
parent5312b0660e6f24145896e84382d184c16c884bf1 (diff)
downloadgcc-6ddfdb0f7e310a026479c484e32d020b1cbeedf8.zip
gcc-6ddfdb0f7e310a026479c484e32d020b1cbeedf8.tar.gz
gcc-6ddfdb0f7e310a026479c484e32d020b1cbeedf8.tar.bz2
recog.h (struct recog_data): New field is_operator.
* recog.h (struct recog_data): New field is_operator. (struct insn_operand_data): New field is_operator. * recog.c (extract_insn): Set recog_data.is_operator. * genoutput.c (output_operand_data): Emit code to set the is_operator field. * reload.c (find_reloads): Use it rather than testing for an empty constraint string. From-SVN: r158403
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 254e83a..0dea35f 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -2082,6 +2082,7 @@ extract_insn (rtx insn)
recog_data.operand_loc,
recog_data.constraints,
recog_data.operand_mode, NULL);
+ memset (recog_data.is_operator, 0, sizeof recog_data.is_operator);
if (noperands > 0)
{
const char *p = recog_data.constraints[0];
@@ -2111,6 +2112,7 @@ extract_insn (rtx insn)
for (i = 0; i < noperands; i++)
{
recog_data.constraints[i] = insn_data[icode].operand[i].constraint;
+ recog_data.is_operator[i] = insn_data[icode].operand[i].is_operator;
recog_data.operand_mode[i] = insn_data[icode].operand[i].mode;
/* VOIDmode match_operands gets mode from their real operand. */
if (recog_data.operand_mode[i] == VOIDmode)