Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp	(revision 139)
@@ -90,4 +90,5 @@
       ALLOC1_SIGNAL_OUT(out_DECOD_NO_EXECUTE   ,"no_execute"   ,Tcontrol_t        ,1                                   );
       ALLOC1_SIGNAL_OUT(out_DECOD_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t        ,1                                   );
+      ALLOC1_SIGNAL_OUT(out_DECOD_SAVE_RAT     ,"save_rat"     ,Tcontrol_t        ,1                                   );
 #ifdef DEBUG
       ALLOC1_SIGNAL_OUT(out_DECOD_ADDRESS      ,"address"      ,Tgeneral_data_t   ,_param->_size_instruction_address   );
@@ -165,8 +166,10 @@
     ALLOC1(reg_CONTEXT_ADDRESS_PREVIOUS      ,Tgeneral_data_t,_param->_nb_context);
     ALLOC1(reg_CONTEXT_IS_DELAY_SLOT         ,Tcontrol_t     ,_param->_nb_context);
+//  ALLOC1(reg_CONTEXT_SAVE_RAT              ,Tcontrol_t     ,_param->_nb_context);
 
     ALLOC1(internal_CONTEXT_HAVE_TRANSACTION ,Tcontrol_t     ,_param->_nb_context);
     ALLOC1(internal_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context);
     ALLOC1(internal_CONTEXT_IS_DELAY_SLOT    ,Tcontrol_t     ,_param->_nb_context);
+//  ALLOC1(internal_CONTEXT_SAVE_RAT         ,Tcontrol_t     ,_param->_nb_context);
 
 #ifdef STATISTICS
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp	(revision 139)
@@ -51,4 +51,5 @@
         DELETE1_SIGNAL(out_DECOD_NO_EXECUTE   ,_param->_nb_inst_decod,1                                   );
         DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT,_param->_nb_inst_decod,1                                   );
+        DELETE1_SIGNAL(out_DECOD_SAVE_RAT     ,_param->_nb_inst_decod,1                                   );
 #ifdef DEBUG
         DELETE1_SIGNAL(out_DECOD_ADDRESS      ,_param->_nb_inst_decod,_param->_size_instruction_address   );
@@ -99,7 +100,10 @@
         DELETE1(reg_CONTEXT_ADDRESS_PREVIOUS      ,_param->_nb_context);
         DELETE1(reg_CONTEXT_IS_DELAY_SLOT         ,_param->_nb_context);
+//      DELETE1(reg_CONTEXT_SAVE_RAT              ,_param->_nb_context);
+
         DELETE1(internal_CONTEXT_HAVE_TRANSACTION ,_param->_nb_context);
         DELETE1(internal_CONTEXT_ADDRESS_PREVIOUS ,_param->_nb_context);
         DELETE1(internal_CONTEXT_IS_DELAY_SLOT    ,_param->_nb_context);
+//      DELETE1(internal_CONTEXT_SAVE_RAT         ,_param->_nb_context);
 
 #ifdef STATISTICS
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_genMealy.cpp	(revision 139)
@@ -59,4 +59,5 @@
 	internal_CONTEXT_ADDRESS_PREVIOUS [i] = reg_CONTEXT_ADDRESS_PREVIOUS [i];
 	internal_CONTEXT_IS_DELAY_SLOT    [i] = reg_CONTEXT_IS_DELAY_SLOT    [i];
+//      internal_CONTEXT_SAVE_RAT         [i] = reg_CONTEXT_SAVE_RAT         [i];
 	
 	can_continue                      [i] = PORT_READ(in_CONTEXT_DECOD_ENABLE [i]);
@@ -169,4 +170,6 @@
                 // Depth current. If have decod a branch and i can continue : depth = depth_next
                 Tdepth_t     depth     = (_param->_have_port_depth)?PORT_READ(in_CONTEXT_DEPTH [x]):0;
+                // Tcontrol_t   save_rat  = internal_CONTEXT_SAVE_RAT [x];
+                Tcontrol_t   no_execute = _decod_instruction->_no_execute;
 
                 if ((_param->_nb_branch_speculated[x] > 0) and have_decod_branch [x])
@@ -182,6 +185,8 @@
 		PORT_WRITE(out_DECOD_TYPE          [i], type);
 		PORT_WRITE(out_DECOD_OPERATION     [i], _decod_instruction->_operation     );
- 		PORT_WRITE(out_DECOD_NO_EXECUTE    [i], _decod_instruction->_no_execute    );
+ 		PORT_WRITE(out_DECOD_NO_EXECUTE    [i], no_execute);
 		PORT_WRITE(out_DECOD_IS_DELAY_SLOT [i], _decod_instruction->_is_delay_slot );
+		// PORT_WRITE(out_DECOD_SAVE_RAT      [i], save_rat);
+                PORT_WRITE(out_DECOD_SAVE_RAT      [i], ((type == TYPE_BRANCH) and not no_execute));
 #ifdef DEBUG
  		PORT_WRITE(out_DECOD_ADDRESS       [i], addr);
@@ -288,4 +293,5 @@
 		    internal_CONTEXT_ADDRESS_PREVIOUS [x] = addr;
 		    internal_CONTEXT_IS_DELAY_SLOT    [x] = (type == TYPE_BRANCH); // next is a delay slot if current have branch type
+                    // internal_CONTEXT_SAVE_RAT         [x] = ((type == TYPE_BRANCH) and not no_execute);
 		  }
 
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_transition.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_transition.cpp	(revision 137)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_transition.cpp	(revision 139)
@@ -32,4 +32,5 @@
 	    reg_CONTEXT_ADDRESS_PREVIOUS [i] = 0xfc; // 0x100-4. (0x100 : reset address)
 	    reg_CONTEXT_IS_DELAY_SLOT    [i] = 0;
+	    // reg_CONTEXT_SAVE_RAT         [i] = 0;
 	  }
       }
@@ -44,4 +45,5 @@
 	      reg_CONTEXT_ADDRESS_PREVIOUS [i] = internal_CONTEXT_ADDRESS_PREVIOUS [i];
 	      reg_CONTEXT_IS_DELAY_SLOT    [i] = internal_CONTEXT_IS_DELAY_SLOT    [i];
+	      // reg_CONTEXT_SAVE_RAT         [i] = internal_CONTEXT_SAVE_RAT         [i];
 	    }
 
