From 4404cf7dd98a5e662eb408a5fd6ad125f8814df0 Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Tue, 6 Jul 2004 07:12:32 +0000 Subject: [PATCH] mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. * config/mcore/mcore.md: Model memory latency with a simple DFA pipeline description instead of a define_function_unit. From-SVN: r84146 --- gcc/ChangeLog | 7 +++++++ gcc/config/mcore/mcore.c | 3 +++ gcc/config/mcore/mcore.md | 14 ++++++++------ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 878bc56..9255926 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-07-06 Steven Bosscher + + * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): + Define. + * config/mcore/mcore.md: Model memory latency with a simple DFA + pipeline description instead of a define_function_unit. + 2004-07-05 Richard Kenner * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg. diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c index 468b7d1f..97d06d0 100644 --- a/gcc/config/mcore/mcore.c +++ b/gcc/config/mcore/mcore.c @@ -196,6 +196,9 @@ static bool mcore_return_in_memory (tree, tree); #undef TARGET_SETUP_INCOMING_VARARGS #define TARGET_SETUP_INCOMING_VARARGS mcore_setup_incoming_varargs +#undef TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE +#define TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE hook_int_void_1 + struct gcc_target targetm = TARGET_INITIALIZER; /* Adjust the stack and return the number of bytes taken to do it. */ diff --git a/gcc/config/mcore/mcore.md b/gcc/config/mcore/mcore.md index f57da64..32cb71c 100644 --- a/gcc/config/mcore/mcore.md +++ b/gcc/config/mcore/mcore.md @@ -41,15 +41,17 @@ ;; calculations and the literal table placement into the assembler, ;; where their interactions can be managed in a single place. -; All MCORE instructions are two bytes long. +;; All MCORE instructions are two bytes long. (define_attr "length" "" (const_int 2)) -;; (define_function_unit {name} {num-units} {n-users} {test} -;; {ready-delay} {issue-delay} [{conflict-list}]) - - -(define_function_unit "memory" 1 1 (eq_attr "type" "load") 2 0) +;; Scheduling. We only model a simple load latency. +(define_insn_reservation "any_insn" 1 + (eq_attr "type" "!load") + "nothing") +(define_insn_reservation "memory" 2 + (eq_attr "type" "load") + "nothing") ;; ------------------------------------------------------------------------- ;; Test and bit test -- 2.7.4