aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>2000-08-15 09:27:11 -0600
committerJeff Law <law@gcc.gnu.org>2000-08-15 09:27:11 -0600
commit864bcaa7cf5acbb711a9fd68b2865b2ac036ccee (patch)
tree57cc6bfd778d9916332a7c8d2c15ed158aa440cd
parent980e2067790a3972283b3eab5923802ef92bc185 (diff)
downloadgcc-864bcaa7cf5acbb711a9fd68b2865b2ac036ccee.zip
gcc-864bcaa7cf5acbb711a9fd68b2865b2ac036ccee.tar.gz
gcc-864bcaa7cf5acbb711a9fd68b2865b2ac036ccee.tar.bz2
cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
* cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY. (cse_insn): Likewise. (addr_affects_sp_p): Likewise. * expr.c (move_by_pieces): Likewise. (clear_by_pieces): Likewise. * gcse.c (oprs_unchanged_p): Likewise. * haifa-sched.c (sched_analyze_2): Likewise. * recog.c (offsettable_address_p): Likewise. * regclass.c (record_address_regs): Likewise. * reload.c (find_reusable_reload): Likewise. (push_reload): Likewise. (operands_match_p): Likewise. (decompose): Likewise. (find_reloads_address_1): Likewise. (find_inc_amount): Likewise. * reload1.c (elimination_effects): Likewise. * resource.c (mark_set_resources): Likewise. * flow.c (attempt_auto_inc): New function; mostly broken out of find_auto_inc. (find_auto_inc): Split into two functions and enhanced to generate POST_MODIFY. * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment. * rtl.h (count_all_occurrences): Declare. (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not defined. * rtlanal.c (count_all_occurrences): New function. * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP, HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document. * config/ia64/ia64-protos.h (destination_operand): Declare. * config/ia64/ia64.c (destination_operand): New function. (ia64_print_operand): Handle POST_MODIFY. (rtx_needs_barrier): Likewise. * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1. (HAVE_POST_MODIFY_REG): Define to 1. (MAX_REGS_PER_ADDRESS): Change to 2. (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too. (LEGITIMATE_ADDRESS_REG): New helper macro. (LEGITIMATE_ADDRESS_DISP): Likewise. (PREDICATE_CODES): Add entry for destination_operand. * config/ia64/ia64.md (all mov patterns): Use destination_operand predicate for operand 0. Restoring tm.texi after corruption. From-SVN: r35713
-rw-r--r--gcc/tm.texi20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/tm.texi b/gcc/tm.texi
index 6f714ad..468e8cf 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -4289,6 +4289,26 @@ A C expression that is nonzero the machine supports post-increment addressing.
@itemx HAVE_PRE_DECREMENT
Similar for other kinds of addressing.
+@findex HAVE_POST_MODIFY_DISP
+@item HAVE_POST_MODIFY_DISP
+Define this macro if the machine supports post-modify addressing
+with a constant displacement.
+
+@findex HAVE_PRE_MODIFY_DISP
+@item HAVE_PRE_MODIFY_DISP
+Define this macro if the machine supports pre-modify addressing
+with a constant displacement.
+
+@findex HAVE_POST_MODIFY_REG
+@item HAVE_POST_MODIFY_REG
+Define this macro if the machine supports post-modify addressing
+by the contents of a register.
+
+@findex HAVE_PRE_MODIFY_REG
+@item HAVE_PRE_MODIFY_REG
+Define this macro if the machine supports pre-modify addressing
+by the contents of a register.
+
@findex CONSTANT_ADDRESS_P
@item CONSTANT_ADDRESS_P (@var{x})
A C expression that is 1 if the RTX @var{x} is a constant which