Ignore:
Timestamp:
Dec 4, 2007, 2:33:31 PM (17 years ago)
Author:
rosiere
Message:

par rapport au commit precedent : commit des include commun et un petit (vraiment petit) peu de doc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Common/include/BitManipulation.h

    r2 r63  
    1515namespace morpheo              {
    1616
    17   // gen_mask .....................................
    18 
     17  // gen_mask ..................................................................
     18 
    1919  template <typename T>
    2020  T gen_mask       (uint32_t size)
     
    2929  };
    3030
    31   // shift_left_logic, shift_right_logic ..........
     31  // mask, mask_not ............................................................
     32  template <typename T>
     33  T mask           (uint32_t data, uint32_t index_max, uint32_t index_min) 
     34  {
     35    return     (gen_mask<T>(index_max-index_min+1)<<index_min) & data;
     36  }
     37
     38  template <typename T>
     39  T mask_not       (uint32_t data, uint32_t index_max, uint32_t index_min) 
     40  {
     41    return (~(gen_mask<T>(index_max-index_min+1)<<index_min)) & data;
     42  }
     43
     44  // shift_left_logic, shift_right_logic .......................................
    3245  template <typename T>
    3346  T shift_logic_left (uint32_t size, uint32_t data, uint32_t value) 
     
    4659  }
    4760
    48   // shift_logic ..................................
     61  // shift_logic ...............................................................
    4962  template <typename T>
    5063  T shift_logic      (uint32_t size, uint32_t data, uint32_t value, bool is_direction_left)
     
    5669  }
    5770
    58   // shift_left_arithmetic, shift_right_arithmetic
     71  // shift_left_arithmetic, shift_right_arithmetic .............................
    5972  template <typename T>
    6073  T shift_arithmetic_left (uint32_t size, uint32_t data, uint32_t value) 
     
    92105  }
    93106
    94   // shift_arithmetic .............................
     107  // shift_arithmetic ..........................................................
    95108  template <typename T>
    96109  T shift_arithmetic      (uint32_t size, uint32_t data, uint32_t value, bool is_direction_left)
     
    102115  }
    103116
    104   // shift ........................................
     117  // shift .....................................................................
    105118  template <typename T>
    106119  T shift            (uint32_t size, uint32_t data, uint32_t value, bool is_direction_left, bool is_shift_arithmetic)
     
    112125  }
    113126
    114   // rotate_left, rotate_right ....................
     127  // rotate_left, rotate_right .................................................
    115128
    116129  template <typename T>
     
    132145  }
    133146
    134   // rotate .......................................
     147  // rotate ....................................................................
    135148  template <typename T>
    136149  T rotate         (uint32_t size, uint32_t data, uint32_t value, bool is_direction_left) 
     
    142155  }
    143156
    144   // range ........................................
     157  // range .....................................................................
    145158  template <typename T>
    146   T range          (uint32_t size, uint32_t data, uint32_t index_max, uint32_t index_min) 
     159  T range          (uint32_t data, uint32_t index_max, uint32_t index_min) 
    147160  {
    148     return gen_mask<T>(index_max-index_min+1) & shift_logic_left<T> (size, data, index_min);
     161    return gen_mask<T>(index_max-index_min+1) & (data << index_min);
    149162  }
    150163
    151164  template <typename T>
    152   T range          (uint32_t size, uint32_t data, uint32_t nb_bits) 
     165  T range          (uint32_t data, uint32_t nb_bits) 
    153166  {
    154167    return gen_mask<T>(nb_bits) & data;
    155168  }
    156 
    157 
    158169}; // end namespace morpheo             
    159170
Note: See TracChangeset for help on using the changeset viewer.