[Patch 2/7 s390] Deprecate *_BY_PIECES_P, move to hookized version
authorJames Greenhalgh <james.greenhalgh@arm.com>
Sat, 1 Nov 2014 08:38:36 +0000 (08:38 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Sat, 1 Nov 2014 08:38:36 +0000 (08:38 +0000)
gcc/

* config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
* config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
(CLEAR_BY_PIECES): Likewise.
(SET_BY_PIECES): Likewise.
(STORE_BY_PIECES): Likewise.

From-SVN: r216998

gcc/ChangeLog
gcc/config/s390/s390.c
gcc/config/s390/s390.h

index 7ed09eb093e4324e7cc5fc511c6866eacb513958..2412bab9c5edecc6a9cd8be31d79100f2c969cb2 100644 (file)
@@ -1,3 +1,12 @@
+2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
+
+       * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
+       (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
+       * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
+       (CLEAR_BY_PIECES): Likewise.
+       (SET_BY_PIECES): Likewise.
+       (STORE_BY_PIECES): Likewise.
+
 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
 
        * target.def (use_by_pieces_infrastructure_p): New.
index 874eb7c32dc17696374506c7571c8a38ab7d5d32..51ae90c97cc1365dc6b46674c2bb34221ecaf08b 100644 (file)
@@ -12032,6 +12032,18 @@ s390_option_override (void)
   register_pass (&insert_pass_s390_early_mach);
 }
 
+/* Implement TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.  */
+
+static bool
+s390_use_by_pieces_infrastructure_p (unsigned int size,
+                                    unsigned int align ATTRIBUTE_UNUSED,
+                                    enum by_pieces_operation op ATTRIBUTE_UNUSED,
+                                    bool speed_p ATTRIBUTE_UNUSED)
+{
+  return (size == 1 || size == 2
+         || size == 4 || (TARGET_ZARCH && size == 8));
+}
+
 /* Initialize GCC target structure.  */
 
 #undef  TARGET_ASM_ALIGNED_HI_OP
@@ -12217,6 +12229,10 @@ s390_option_override (void)
 #undef TARGET_SET_UP_BY_PROLOGUE
 #define TARGET_SET_UP_BY_PROLOGUE s300_set_up_by_prologue
 
+#undef TARGET_USE_BY_PIECES_INFRASTRUCTURE_P
+#define TARGET_USE_BY_PIECES_INFRASTRUCTURE_P \
+  s390_use_by_pieces_infrastructure_p
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 
 #include "gt-s390.h"
index 0a935eec7816420fc2425253051d714181e92f1b..d933b8d9126df26311c754e8c5851a3a2bd5c740 100644 (file)
@@ -744,24 +744,6 @@ do {                                                                       \
 #define MOVE_MAX_PIECES (TARGET_ZARCH ? 8 : 4)
 #define MAX_MOVE_MAX 16
 
-/* Determine whether to use move_by_pieces or block move insn.  */
-#define MOVE_BY_PIECES_P(SIZE, ALIGN)          \
-  ( (SIZE) == 1 || (SIZE) == 2 || (SIZE) == 4  \
-    || (TARGET_ZARCH && (SIZE) == 8) )
-
-/* Determine whether to use clear_by_pieces or block clear insn.  */
-#define CLEAR_BY_PIECES_P(SIZE, ALIGN)         \
-  ( (SIZE) == 1 || (SIZE) == 2 || (SIZE) == 4  \
-    || (TARGET_ZARCH && (SIZE) == 8) )
-
-/* This macro is used to determine whether store_by_pieces should be
-   called to "memcpy" storage when the source is a constant string.  */
-#define STORE_BY_PIECES_P(SIZE, ALIGN) MOVE_BY_PIECES_P (SIZE, ALIGN)
-
-/* Likewise to decide whether to "memset" storage with byte values
-   other than zero.  */
-#define SET_BY_PIECES_P(SIZE, ALIGN) STORE_BY_PIECES_P (SIZE, ALIGN)
-
 /* Don't perform CSE on function addresses.  */
 #define NO_FUNCTION_CSE