/*
 * $Id: Parameters_msg_error.cpp 81 2008-04-15 18:40:01Z rosiere $
 *
 * [ Description ]
 * 
 */

#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/include/Parameters.h"
#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/include/Types.h"
#include <sstream>
using namespace std;

namespace morpheo                    {
namespace behavioural {
namespace core {
namespace multi_front_end {
namespace front_end {
namespace prediction_unit {
namespace direction {

namespace meta_predictor {
namespace two_level_branch_predictor {
namespace two_level_branch_predictor_glue {


  string Parameters::msg_error(void)
  {
    log_printf(FUNC,Two_Level_Branch_Predictor_Glue,"msg_error","Begin");

    string msg = "";
    
    if ((_have_bht and _have_pht) and (_pht_size_address_share >= _pht_size_address))
      {
	msg += "  - You can't have higher pht_size_address_share >= pht_size_address\n";
	msg += "    * pht_size_address                : " + toString(_pht_size_address      ) + "\n";
	msg += "    * pht_size_address_share          : " + toString(_pht_size_address_share) + "\n";
      }
    if ((_have_bht and _have_pht) and (_bht_size_history > _pht_size_address))
      {
	msg += "  - You can't have higher bht_size_history > pht_size_address\n";
	msg += "    * bht_size_history                : " + toString(_bht_size_history      ) + "\n";
	msg += "    * pht_size_address                : " + toString(_pht_size_address      ) + "\n";
      }

    return msg;

    log_printf(FUNC,Two_Level_Branch_Predictor_Glue,"msg_error","End");
  };

}; // end namespace two_level_branch_predictor_glue
}; // end namespace two_level_branch_predictor
}; // end namespace meta_predictor

}; // end namespace core
}; // end namespace multi_front_end
}; // end namespace front_end
}; // end namespace prediction_unit
}; // end namespace direction

}; // end namespace behavioural
}; // end namespace morpheo              
