Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/config_min.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/config_min.cfg	(revision 142)
+++ 	(revision )
@@ -1,9 +1,0 @@
-Context_State
-1	1	+1	# nb_context
-1	1	+1	# nb_decod_unit
-1	1	+1	# nb_inst_branch_complete
-1	1	+1	# nb_inst_branch_speculated     [0] [nb_context]
-32	32	+1	# size_general_data		
-1	1	+1	# size_inst_decod               [0] [nb_decod_unit]
-1	1	+1	# size_inst_commit
-0	0	+1	# link_context_to_decod_unit    [0] [nb_context]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/config_mono_context.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/config_mono_context.cfg	(revision 142)
+++ 	(revision )
@@ -1,9 +1,0 @@
-Context_State
-1	1	+1	# nb_context
-1	1	*4	# nb_decod_unit
-1	4	*4	# nb_inst_branch_complete
-1	4	*2	# nb_inst_branch_speculated     [0] [nb_context]
-32	32	+1	# size_general_data		
-1	4	*4	# size_inst_decod               [0] [nb_decod_unit]
-1	4	*4	# size_inst_commit
-0	0	+1	# link_context_to_decod_unit    [0] [nb_context]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/config_multi_context.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/config_multi_context.cfg	(revision 142)
+++ 	(revision )
@@ -1,26 +1,0 @@
-Context_State
-8	8	+1	# nb_context
-4	4	*4	# nb_decod_unit
-2	2	*4	# nb_inst_branch_complete
-6	6	+1	# nb_inst_branch_speculated     [0] [nb_context]
-3	3	+1	# nb_inst_branch_speculated     [1] [nb_context]
-2	2	+1	# nb_inst_branch_speculated     [2] [nb_context]
-1	1	+1	# nb_inst_branch_speculated     [3] [nb_context]
-8	8	+1	# nb_inst_branch_speculated     [4] [nb_context]
-4	4	+1	# nb_inst_branch_speculated     [5] [nb_context]
-2	2	+1	# nb_inst_branch_speculated     [6] [nb_context]
-1	1	+1	# nb_inst_branch_speculated     [7] [nb_context]
-32	32	+1	# size_general_data		
-4	4	*4	# size_inst_decod               [0] [nb_decod_unit]
-1	1	*4	# size_inst_decod               [1] [nb_decod_unit]
-2	2	*4	# size_inst_decod               [2] [nb_decod_unit]
-4	4	*4	# size_inst_decod               [3] [nb_decod_unit]
-8	8	*4	# size_inst_commit
-0	0	+1	# link_context_to_decod_unit    [0] [nb_context]
-1	1	+1	# link_context_to_decod_unit    [1] [nb_context]
-2	2	+1	# link_context_to_decod_unit    [2] [nb_context]
-3	3	+1	# link_context_to_decod_unit    [3] [nb_context]
-0	0	+1	# link_context_to_decod_unit    [4] [nb_context]
-1	1	+1	# link_context_to_decod_unit    [5] [nb_context]
-2	2	+1	# link_context_to_decod_unit    [6] [nb_context]
-3	3	+1	# link_context_to_decod_unit    [7] [nb_context]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_min.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_min.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_min.gen	(revision 145)
@@ -0,0 +1,9 @@
+Context_State
+1	1	+1	# nb_context
+1	1	+1	# nb_decod_unit
+1	1	+1	# nb_inst_branch_complete
+1	1	+1	# nb_inst_branch_speculated     [0] [nb_context]
+32	32	+1	# size_general_data		
+1	1	+1	# size_inst_decod               [0] [nb_decod_unit]
+1	1	+1	# size_inst_commit
+0	0	+1	# link_context_to_decod_unit    [0] [nb_context]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_mono_context.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_mono_context.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_mono_context.gen	(revision 145)
@@ -0,0 +1,9 @@
+Context_State
+1	1	+1	# nb_context
+1	1	*4	# nb_decod_unit
+1	4	*4	# nb_inst_branch_complete
+1	4	*2	# nb_inst_branch_speculated     [0] [nb_context]
+32	32	+1	# size_general_data		
+1	4	*4	# size_inst_decod               [0] [nb_decod_unit]
+1	4	*4	# size_inst_commit
+0	0	+1	# link_context_to_decod_unit    [0] [nb_context]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_multi_context.gen
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_multi_context.gen	(revision 145)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/SelfTest/configuration/config_multi_context.gen	(revision 145)
@@ -0,0 +1,26 @@
+Context_State
+8	8	+1	# nb_context
+4	4	*4	# nb_decod_unit
+2	2	*4	# nb_inst_branch_complete
+6	6	+1	# nb_inst_branch_speculated     [0] [nb_context]
+3	3	+1	# nb_inst_branch_speculated     [1] [nb_context]
+2	2	+1	# nb_inst_branch_speculated     [2] [nb_context]
+1	1	+1	# nb_inst_branch_speculated     [3] [nb_context]
+8	8	+1	# nb_inst_branch_speculated     [4] [nb_context]
+4	4	+1	# nb_inst_branch_speculated     [5] [nb_context]
+2	2	+1	# nb_inst_branch_speculated     [6] [nb_context]
+1	1	+1	# nb_inst_branch_speculated     [7] [nb_context]
+32	32	+1	# size_general_data		
+4	4	*4	# size_inst_decod               [0] [nb_decod_unit]
+1	1	*4	# size_inst_decod               [1] [nb_decod_unit]
+2	2	*4	# size_inst_decod               [2] [nb_decod_unit]
+4	4	*4	# size_inst_decod               [3] [nb_decod_unit]
+8	8	*4	# size_inst_commit
+0	0	+1	# link_context_to_decod_unit    [0] [nb_context]
+1	1	+1	# link_context_to_decod_unit    [1] [nb_context]
+2	2	+1	# link_context_to_decod_unit    [2] [nb_context]
+3	3	+1	# link_context_to_decod_unit    [3] [nb_context]
+0	0	+1	# link_context_to_decod_unit    [4] [nb_context]
+1	1	+1	# link_context_to_decod_unit    [5] [nb_context]
+2	2	+1	# link_context_to_decod_unit    [6] [nb_context]
+3	3	+1	# link_context_to_decod_unit    [7] [nb_context]
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Types.h	(revision 142)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Types.h	(revision 145)
@@ -32,4 +32,5 @@
       CONTEXT_STATE_KO_MISS_BRANCH_ADDR                , // update address manager
       CONTEXT_STATE_KO_MISS_BRANCH_WAITEND             , // wait end of event (miss branch)
+      CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE          , // wait end of event (miss branch)
       CONTEXT_STATE_KO_MISS_LOAD_ADDR                  , // update address manager
       CONTEXT_STATE_KO_MISS_LOAD_WAITEND               , // wait end of event (miss load))
@@ -69,4 +70,5 @@
       case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_BRANCH_ADDR                 : return "context_state_ko_miss_branch_addr"                ; break;
       case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_BRANCH_WAITEND              : return "context_state_ko_miss_branch_waitend"             ; break;
+      case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE           : return "context_state_ko_miss_branch_inaccurate"          ; break;
       case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_WAIT_UPDATE : return "context_state_ko_miss_load_and_branch_wait_update"; break;
       case morpheo::behavioural::core::multi_front_end::front_end::context_state::CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_ADDR        : return "context_state_ko_miss_load_and_branch_addr"       ; break;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_statistics_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_statistics_allocation.cpp	(revision 142)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_statistics_allocation.cpp	(revision 145)
@@ -40,14 +40,13 @@
     for (uint32_t i=0; i<_param->_nb_context; ++i)
       {
-        _stat_nb_cycle_state_ok                      [i] = _stat->create_counter("nb_cycle_state_ok_"                     +toString(i),"",toString(_("Number of cycle in state ok                      (context %d)"),i));
-        _stat_nb_cycle_state_ko_excep                [i] = _stat->create_counter("nb_cycle_state_ko_excep_"               +toString(i),"",toString(_("Number of cycle in state ko_excep                (context %d)"),i));
-        _stat_nb_cycle_state_ko_miss_branch          [i] = _stat->create_counter("nb_cycle_state_ko_miss_branch_"         +toString(i),"",toString(_("Number of cycle in state ko_miss_branch          (context %d)"),i));
-        _stat_nb_cycle_state_ko_miss_load            [i] = _stat->create_counter("nb_cycle_state_ko_miss_load_"           +toString(i),"",toString(_("Number of cycle in state ko_miss_load            (context %d)"),i));
-        _stat_nb_cycle_state_ko_miss_load_and_branch [i] = _stat->create_counter("nb_cycle_state_ko_miss_load_and_branch_"+toString(i),"",toString(_("Number of cycle in state ko_miss_load_and_branch (context %d)"),i));
-        _stat_nb_cycle_state_ko_msync                [i] = _stat->create_counter("nb_cycle_state_ko_msync_"               +toString(i),"",toString(_("Number of cycle in state ko_msync                (context %d)"),i));
-        _stat_nb_cycle_state_ko_psync                [i] = _stat->create_counter("nb_cycle_state_ko_psync_"               +toString(i),"",toString(_("Number of cycle in state ko_psync                (context %d)"),i));
-        _stat_nb_cycle_state_ko_csync                [i] = _stat->create_counter("nb_cycle_state_ko_csync_"               +toString(i),"",toString(_("Number of cycle in state ko_csync                (context %d)"),i));
-        _stat_nb_cycle_state_ko_spr                  [i] = _stat->create_counter("nb_cycle_state_ko_spr_"                 +toString(i),"",toString(_("Number of cycle in state ko_spr                  (context %d)"),i));
-
+        _stat_nb_cycle_state_ok                      [i] = _stat->create_variable("nb_cycle_state_ok_"                     +toString(i));
+        _stat_nb_cycle_state_ko_excep                [i] = _stat->create_variable("nb_cycle_state_ko_excep_"               +toString(i));
+        _stat_nb_cycle_state_ko_miss_branch          [i] = _stat->create_variable("nb_cycle_state_ko_miss_branch_"         +toString(i));
+        _stat_nb_cycle_state_ko_miss_load            [i] = _stat->create_variable("nb_cycle_state_ko_miss_load_"           +toString(i));
+        _stat_nb_cycle_state_ko_miss_load_and_branch [i] = _stat->create_variable("nb_cycle_state_ko_miss_load_and_branch_"+toString(i));
+        _stat_nb_cycle_state_ko_msync                [i] = _stat->create_variable("nb_cycle_state_ko_msync_"               +toString(i));
+        _stat_nb_cycle_state_ko_psync                [i] = _stat->create_variable("nb_cycle_state_ko_psync_"               +toString(i));
+        _stat_nb_cycle_state_ko_csync                [i] = _stat->create_variable("nb_cycle_state_ko_csync_"               +toString(i));
+        _stat_nb_cycle_state_ko_spr                  [i] = _stat->create_variable("nb_cycle_state_ko_spr_"                 +toString(i));
 
         _stat->create_expr_percent("percent_state_ok_"                     +toString(i),"nb_cycle_state_ok_"                     +toString(i),"cycle",toString(_("Percent of cycle in state ok                      (context %d)"),i));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_transition.cpp	(revision 142)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State_transition.cpp	(revision 145)
@@ -33,4 +33,5 @@
   (((state == CONTEXT_STATE_KO_MISS_BRANCH_ADDR                ) or  \
     (state == CONTEXT_STATE_KO_MISS_BRANCH_WAITEND             ) or  \
+    (state == CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE          ) or  \
     (state == CONTEXT_STATE_KO_MISS_BRANCH_WAIT_UPDATE         ))?PRIORITY_MISS_BRANCH: \
    ((state == EVENT_TYPE_EXCEPTION)?PRIORITY_EXCEPTION:                           \
@@ -112,4 +113,11 @@
 //                  state = CONTEXT_STATE_OK;
                     state = CONTEXT_STATE_KO_MISS_BRANCH_ADDR;
+                  break;
+                }
+              case CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE :
+                {
+                  if (inst_all == 0)
+//                  state = CONTEXT_STATE_OK;
+                    state = CONTEXT_STATE_OK;
                   break;
                 }
@@ -321,12 +329,8 @@
                       if (can_continue)
                         reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_ADDR;
-                      else
-                        {
-// #if (MANAGE_EVENT == MANAGE_EVENT_NO_WAIT)
-//                           reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_ADDR;
-// #else
-                          reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_WAITEND;
-// #endif
-                        }
+                      else 
+                        // cf UPT : dest_val = direction, accurate depend of jump type (e.g. jr is inacurate)
+                        // reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_WAITEND;
+                        reg_STATE                [i] =  CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE;
 
                       reg_EVENT_ADDRESS          [i] = PORT_READ(in_BRANCH_EVENT_ADDRESS_SRC  [i])+1; // address delay slot
@@ -647,4 +651,5 @@
                         case CONTEXT_STATE_KO_MISS_BRANCH_ADDR             :
                         case CONTEXT_STATE_KO_MISS_BRANCH_WAITEND          :
+                        case CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE       :
                         case CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_ADDR    :
                         case CONTEXT_STATE_KO_MISS_LOAD_AND_BRANCH_WAITEND :
@@ -752,4 +757,5 @@
           case CONTEXT_STATE_KO_EXCEP_SPR                       : (*_stat_nb_cycle_state_ko_excep                [i])++; break;
 
+          case CONTEXT_STATE_KO_MISS_BRANCH_INACCURATE          : 
           case CONTEXT_STATE_KO_MISS_BRANCH_WAIT_UPDATE         : 
           case CONTEXT_STATE_KO_MISS_BRANCH_ADDR                : 
