source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/src/Two_Level_Branch_Predictor_Glue_genMealy_branch_complete_pht_address.cpp @ 2

Last change on this file since 2 was 2, checked in by kane, 17 years ago

Import Morpheo

File size: 1.5 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Stage_1_Ifetch/Predictor/Meta_Predictor/Two_Level_Branch_Predictor/Two_Level_Branch_Predictor_Glue/include/Two_Level_Branch_Predictor_Glue.h"
10#include "Include/BitManipulation.h"
11
12namespace morpheo {
13namespace behavioural {
14namespace stage_1_ifetch {
15namespace predictor {
16namespace meta_predictor {
17namespace two_level_branch_predictor {
18namespace two_level_branch_predictor_glue {
19
20  void Two_Level_Branch_Predictor_Glue::genMealy_branch_complete_pht_address (void)
21  {
22    log_printf(FUNC,Two_Level_Branch_Predictor_Glue,"genMealy_branch_complete_address","Begin");
23
24    if (_param._have_pht)
25      for (uint32_t i=0; i<_param._nb_branch_complete; i++)
26        {
27          // Address
28          Taddress_t address = PORT_READ(in_BRANCH_COMPLETE_ADDRESS [i]);
29          Tbht_history_t history = 0;
30         
31          if (_param._have_bht)
32            {
33              history = PORT_READ (in_BRANCH_COMPLETE_BHT_HISTORY [i]);
34              address = address << _param._pht_size_address_shift;
35            }
36         
37          PORT_WRITE (out_BRANCH_COMPLETE_PHT_ADDRESS [i], (history xor address) & gen_mask<Taddress_t>(_param._pht_size_address));
38        }
39   
40    log_printf(FUNC,Two_Level_Branch_Predictor_Glue,"genMealy_branch_complete_address","End");
41  };
42
43}; // end namespace two_level_branch_predictor_glue
44}; // end namespace two_level_branch_predictor
45}; // end namespace meta_predictor
46}; // end namespace predictor
47}; // end namespace stage_1_ifetch
48}; // end namespace behavioural
49}; // end namespace morpheo             
50#endif
Note: See TracBrowser for help on using the repository browser.