Commit b5e3200c by James Greenhalgh Committed by James Greenhalgh

[Patch 2/7 s390] Deprecate *_BY_PIECES_P, move to hookized version

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
parent 7cbed008
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.
* doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
is deprecated.
......@@ -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"
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment