This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[STORMY16] Hookize REGISTER_MOVE_COST and MEMORY_MOVE_COST
- From: Anatoly Sokolov <aesok at post dot ru>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Cc: nickc at redhat dot com
- Date: Wed, 2 Mar 2011 00:42:13 +0300
- Subject: [STORMY16] Hookize REGISTER_MOVE_COST and MEMORY_MOVE_COST
Hi.
This patch removes obsolete REGISTER_MOVE_COST and MEMORY_MOVE_COST
macros from the STORMY16 back end in the GCC and introduces equivalent
TARGET_MEMORY_MOVE_COST target hook. Default version of the
TARGET_REGISTER_MOVE_COST target hook is used.
Regression tested on xstormy16-unknown-elf.
OK to install?
* config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
Remove.
* config/stormy16/stormy16.c: Include reload.h.
(xstormy16_memory_move_cost): New function.
(TARGET_MEMORY_MOVE_COST): Define.
Index: gcc/config/stormy16/stormy16.c
===================================================================
--- gcc/config/stormy16/stormy16.c (revision 170573)
+++ gcc/config/stormy16/stormy16.c (working copy)
@@ -46,6 +46,7 @@
#include "langhooks.h"
#include "gimple.h"
#include "df.h"
+#include "reload.h"
#include "ggc.h"
static rtx emit_addhi3_postreload (rtx, rtx, rtx);
@@ -108,6 +109,16 @@
: 5);
}
+/* Worker function for TARGET_MEMORY_MOVE_COST. */
+
+static int
+xstormy16_memory_move_cost (enum machine_mode mode, reg_class_t rclass,
+ bool in)
+{
+ return (5 + memory_move_secondary_cost (mode, rclass, in));
+}
+
+
/* Branches are handled as follows:
1. HImode compare-and-branches. The machine supports these
@@ -2598,6 +2609,8 @@
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall
+#undef TARGET_MEMORY_MOVE_COST
+#define TARGET_MEMORY_MOVE_COST xstormy16_memory_move_cost
#undef TARGET_RTX_COSTS
#define TARGET_RTX_COSTS xstormy16_rtx_costs
#undef TARGET_ADDRESS_COST
Index: gcc/config/stormy16/stormy16.h
===================================================================
--- gcc/config/stormy16/stormy16.h (revision 170573)
+++ gcc/config/stormy16/stormy16.h (working copy)
@@ -354,10 +354,6 @@
/* Describing Relative Costs of Operations. */
-#define REGISTER_MOVE_COST(MODE, FROM, TO) 2
-
-#define MEMORY_MOVE_COST(M,C,I) (5 + memory_move_secondary_cost (M, C, I))
-
#define BRANCH_COST(speed_p, predictable_p) 5
#define SLOW_BYTE_ACCESS 0
Anatoly.