mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 23:37:42 +08:00
regrename.c: Rewrite to handle multi-register modes and cond_exec instructions.
* regrename.c: Rewrite to handle multi-register modes and cond_exec instructions. * Makefile.in (regrename.o): Update dependancies. * recog.h (struct operand_alternative): Add is_address. * recog.c (preprocess_constraints) [case 'p']: Set it. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r37089
This commit is contained in:
parent
b8dad04b68
commit
541f7d5629
@ -1,3 +1,12 @@
|
||||
2000-10-27 Bernd Schmidt <bernds@redhat.co.uk>
|
||||
Richard Henderson <rth@redhat.com>
|
||||
|
||||
* regrename.c: Rewrite to handle multi-register modes and
|
||||
cond_exec instructions.
|
||||
* Makefile.in (regrename.o): Update dependancies.
|
||||
* recog.h (struct operand_alternative): Add is_address.
|
||||
* recog.c (preprocess_constraints) [case 'p']: Set it.
|
||||
|
||||
2000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
|
||||
|
||||
* configure.in: If not NO_MINUS_C_MINUS_O, substitute
|
||||
|
@ -1452,9 +1452,9 @@ bb-reorder.o : bb-reorder.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
|
||||
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h \
|
||||
$(RECOG_H) insn-flags.h function.h except.h $(EXPR_H)
|
||||
timevar.o : timevar.c $(CONFIG_H) system.h $(TIMEVAR_H) flags.h intl.h
|
||||
regrename.o : regrename.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
|
||||
insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h \
|
||||
$(RECOG_H) function.h resource.h
|
||||
regrename.o : regrename.c $(CONFIG_H) system.h $(RTL_H) insn-config.h \
|
||||
$(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h $(RECOG_H) function.h \
|
||||
resource.h $(OBSTACK_H) flags.h
|
||||
ifcvt.o : ifcvt.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) \
|
||||
flags.h insn-config.h function.h $(RECOG_H) $(BASIC_BLOCK_H) $(EXPR_H) \
|
||||
output.h
|
||||
|
@ -2272,6 +2272,7 @@ preprocess_constraints ()
|
||||
break;
|
||||
|
||||
case 'p':
|
||||
op_alt[j].is_address = 1;
|
||||
op_alt[j].class = reg_class_subunion[(int) op_alt[j].class][(int) BASE_REG_CLASS];
|
||||
break;
|
||||
|
||||
|
@ -63,6 +63,8 @@ struct operand_alternative
|
||||
unsigned int decmem_ok:1;
|
||||
/* Nonzero if '>' was found in the constraint string. */
|
||||
unsigned int incmem_ok:1;
|
||||
/* Nonzero if 'p' was found in the constraint string. */
|
||||
unsigned int is_address:1;
|
||||
/* Nonzero if 'X' was found in the constraint string, or if the constraint
|
||||
string for this alternative was empty. */
|
||||
unsigned int anything_ok:1;
|
||||
|
1659
gcc/regrename.c
1659
gcc/regrename.c
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user