diff options
author | Steven Bosscher <stevenb@suse.de> | 2004-06-05 16:35:55 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2004-06-05 16:35:55 +0000 |
commit | dbeff3e56d566719bb3f0c1ba29362d61fe3ff85 (patch) | |
tree | 80ec3d108875c06f85c4bca54d6aae260283af01 /gcc | |
parent | 9fc3ed51d05dc76edb1f7f0ac7a52df24c9738ef (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/v850/v850.c | 11 | ||||
-rw-r--r-- | gcc/config/v850/v850.md | 12 |
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 |