OSDN Git Service

* config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Dec 2011 09:40:02 +0000 (09:40 +0000)
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Dec 2011 09:40:02 +0000 (09:40 +0000)
        (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
        (USE_STORE_POST_DECREMENT): Likewise.

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

gcc/ChangeLog
gcc/config/epiphany/epiphany.h

index 7d29091..5113f16 100644 (file)
@@ -1,3 +1,9 @@
+2011-12-10  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       * config/epiphany/epiphany.h (USE_LOAD_POST_INCREMENT): Define.
+       (USE_LOAD_POST_DECREMENT, USE_STORE_POST_INCREMENT): Likewise.
+       (USE_STORE_POST_DECREMENT): Likewise.
+
 2011-12-10  Nathan Sidwell  <nathan@acm.org>
 
        PR gcov-profile/51449
index 9d03ee9..08b121b 100644 (file)
@@ -602,6 +602,21 @@ typedef struct GTY (()) machine_function
 #define HAVE_POST_MODIFY_DISP TARGET_POST_MODIFY
 #define HAVE_POST_MODIFY_REG TARGET_POST_MODIFY
 
+/* Currently, the only users of the USE_*CREMENT macros are
+   move_by_pieces / store_by_pieces_1 .  We don't want them to use
+   POST_MODIFY modes, because we got ample addressing range for the
+   reg+offset addressing mode; besides, there are short index+offset loads,
+   but the only short post-modify load uses POST_MODIFY_REG.
+   Moreover, using auto-increment in move_by_pieces from structure copying
+   in the prologue causes confused debug output.
+   If another pass starts using these macros where the use of these
+   addressing modes would make more sense, we can try checking the
+   current pass.  */
+#define USE_LOAD_POST_INCREMENT(MODE) 0
+#define USE_LOAD_POST_DECREMENT(MODE) 0
+#define USE_STORE_POST_INCREMENT(MODE) 0
+#define USE_STORE_POST_DECREMENT(MODE) 0
+
 /* Recognize any constant value that is a valid address.  */
 #define CONSTANT_ADDRESS_P(X) \
 (GET_CODE (X) == LABEL_REF || GET_CODE (X) == SYMBOL_REF       \