aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb@suse.de>2004-06-05 16:35:55 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2004-06-05 16:35:55 +0000
commitdbeff3e56d566719bb3f0c1ba29362d61fe3ff85 (patch)
tree80ec3d108875c06f85c4bca54d6aae260283af01 /gcc
parent9fc3ed51d05dc76edb1f7f0ac7a52df24c9738ef (diff)
downloadgcc-dbeff3e56d566719bb3f0c1ba29362d61fe3ff85.zip
gcc-dbeff3e56d566719bb3f0c1ba29362d61fe3ff85.tar.gz
gcc-dbeff3e56d566719bb3f0c1ba29362d61fe3ff85.tar.bz2
v850.c (v850_use_dfa_pipeline_interface): New.
* config/v850/v850.c (v850_use_dfa_pipeline_interface): New. * config/v850/v850.md: Convert to DFA scheduler description. From-SVN: r82653
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/v850/v850.c11
-rw-r--r--gcc/config/v850/v850.md12
3 files changed, 25 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 94c4dea..9fb018e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-06-05 Steven Bosscher <stevenb@suse.de>
+
+ * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
+ * config/v850/v850.md: Convert to DFA scheduler description.
+
2004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/15478
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index f9e54cc..5bd8ce4 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -64,6 +64,7 @@ static void v850_insert_attributes (tree, tree *);
static void v850_select_section (tree, int, unsigned HOST_WIDE_INT);
static void v850_encode_data_area (tree, rtx);
static void v850_encode_section_info (tree, rtx, int);
+static int v850_use_dfa_pipeline_interface (void);
static bool v850_return_in_memory (tree, tree);
static void v850_setup_incoming_varargs (CUMULATIVE_ARGS *, enum machine_mode,
tree, int *, int);
@@ -113,9 +114,13 @@ static int v850_interrupt_p = FALSE;
#undef TARGET_RTX_COSTS
#define TARGET_RTX_COSTS v850_rtx_costs
+
#undef TARGET_ADDRESS_COST
#define TARGET_ADDRESS_COST hook_int_rtx_0
+#undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE
+#define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE v850_use_dfa_pipeline_interface
+
#undef TARGET_MACHINE_DEPENDENT_REORG
#define TARGET_MACHINE_DEPENDENT_REORG v850_reorg
@@ -2340,6 +2345,12 @@ v850_encode_section_info (tree decl, rtx rtl, int first)
v850_encode_data_area (decl, XEXP (rtl, 0));
}
+static int
+v850_use_dfa_pipeline_interface (void)
+{
+ return 1;
+}
+
/* Return true if the given RTX is a register which can be restored
by a function epilogue. */
int
diff --git a/gcc/config/v850/v850.md b/gcc/config/v850/v850.md
index 44ca8a9..503f1fe 100644
--- a/gcc/config/v850/v850.md
+++ b/gcc/config/v850/v850.md
@@ -61,10 +61,16 @@
;; Function units for the V850. As best as I can tell, there's
;; a traditional memory load/use stall as well as a stall if
;; the result of a multiply is used too early.
-;;
-(define_function_unit "memory" 1 0 (eq_attr "type" "load") 2 0)
-(define_function_unit "mult" 1 0 (eq_attr "type" "mult") 2 0)
+(define_insn_reservation "v850_other" 1
+ (eq_attr "type" "other")
+ "nothing")
+(define_insn_reservation "v850_mult" 2
+ (eq_attr "type" "mult")
+ "nothing")
+(define_insn_reservation "v850_memory" 2
+ (eq_attr "type" "load")
+ "nothing")
;; ----------------------------------------------------------------------
;; MOVE INSTRUCTIONS