OSDN Git Service

* cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Aug 2000 15:27:11 +0000 (15:27 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Aug 2000 15:27:11 +0000 (15:27 +0000)
        (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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35713 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/tm.texi

index 6f714ad..468e8cf 100644 (file)
@@ -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