gem5 v24.0.0.0
Loading...
Searching...
No Matches
sc_nbdefs.hh File Reference
#include <stdint.h>
#include <climits>

Go to the source code of this file.

Namespaces

namespace  sc_dt
 

Macros

#define SC_NEG   -1
 
#define SC_ZERO   0
 
#define SC_POS   1
 
#define SC_NOSIGN   2
 
#define BITS_PER_BYTE   8
 
#define BYTE_RADIX   256
 
#define BYTE_MASK   255
 
#define LOG2_BITS_PER_BYTE   3
 
#define BYTES_PER_DIGIT_TYPE   4
 
#define BITS_PER_DIGIT_TYPE   32
 
#define BYTES_PER_DIGIT   4
 
#define BITS_PER_DIGIT   30
 
#define DIGIT_RADIX   (1ul << BITS_PER_DIGIT)
 
#define DIGIT_MASK   (DIGIT_RADIX - 1)
 
#define BITS_PER_HALF_DIGIT   (BITS_PER_DIGIT / 2)
 
#define HALF_DIGIT_RADIX   (1ul << BITS_PER_HALF_DIGIT)
 
#define HALF_DIGIT_MASK   (HALF_DIGIT_RADIX - 1)
 
#define DIV_CEIL2(x, y)   (((x) - 1) / (y) + 1)
 
#define DIV_CEIL(x)   DIV_CEIL2(x, BITS_PER_DIGIT)
 
#define BITS_PER_CHAR   8
 
#define BITS_PER_INT   (sizeof(int) * BITS_PER_CHAR)
 
#define BITS_PER_LONG   (sizeof(long) * BITS_PER_CHAR)
 
#define BITS_PER_INT64   (sizeof(::sc_dt::int64) * BITS_PER_CHAR)
 
#define BITS_PER_UINT   (sizeof(unsigned int) * BITS_PER_CHAR)
 
#define BITS_PER_ULONG   (sizeof(unsigned long) * BITS_PER_CHAR)
 
#define BITS_PER_UINT64   (sizeof(::sc_dt::uint64) * BITS_PER_CHAR)
 
#define DIGITS_PER_CHAR   1
 
#define DIGITS_PER_INT   ((BITS_PER_INT + 29) / 30)
 
#define DIGITS_PER_LONG   ((BITS_PER_LONG + 29) / 30)
 
#define DIGITS_PER_INT64   ((BITS_PER_INT64 + 29) / 30)
 
#define DIGITS_PER_UINT   ((BITS_PER_UINT + 29) / 30)
 
#define DIGITS_PER_ULONG   ((BITS_PER_ULONG + 29) / 30)
 
#define DIGITS_PER_UINT64   ((BITS_PER_UINT64 + 29) / 30)
 
#define SC_INTWIDTH   64
 

Typedefs

typedef unsigned char sc_dt::uchar
 
typedef int sc_dt::small_type
 
typedef unsigned int sc_dt::sc_digit
 
typedef int64_t sc_dt::int64
 
typedef uint64_t sc_dt::uint64
 
typedef int64 sc_dt::int_type
 
typedef uint64 sc_dt::uint_type
 

Enumerations

enum  sc_dt::sc_numrep {
  sc_dt::SC_NOBASE = 0 , sc_dt::SC_BIN = 2 , sc_dt::SC_OCT = 8 , sc_dt::SC_DEC = 10 ,
  sc_dt::SC_HEX = 16 , sc_dt::SC_BIN_US , sc_dt::SC_BIN_SM , sc_dt::SC_OCT_US ,
  sc_dt::SC_OCT_SM , sc_dt::SC_HEX_US , sc_dt::SC_HEX_SM , sc_dt::SC_CSD
}
 

Variables

static const uint64 sc_dt::UINT64_ZERO = 0ULL
 
static const uint64 sc_dt::UINT64_ONE = 1ULL
 
static const uint64 sc_dt::UINT64_32ONES = 0x00000000ffffffffULL
 
static const small_type sc_dt::NB_DEFAULT_BASE = SC_DEC
 
static const uint64 sc_dt::UINT_ZERO = UINT64_ZERO
 
static const uint64 sc_dt::UINT_ONE = UINT64_ONE
 

Macro Definition Documentation

◆ BITS_PER_BYTE

#define BITS_PER_BYTE   8

◆ BITS_PER_CHAR

#define BITS_PER_CHAR   8

Definition at line 182 of file sc_nbdefs.hh.

◆ BITS_PER_DIGIT

#define BITS_PER_DIGIT   30

Definition at line 127 of file sc_nbdefs.hh.

Referenced by sc_dt::and_on_help(), sc_dt::sc_signed::and_reduce(), sc_dt::sc_unsigned::and_reduce(), sc_dt::bit_ord(), sc_dt::sc_concat_bool::concat_get_ctrl(), sc_dt::sc_int_base::concat_get_ctrl(), sc_dt::sc_int_bitref_r::concat_get_ctrl(), sc_dt::sc_int_subref_r::concat_get_ctrl(), sc_dt::sc_signed::concat_get_ctrl(), sc_dt::sc_signed_bitref_r::concat_get_ctrl(), sc_dt::sc_uint_base::concat_get_ctrl(), sc_dt::sc_uint_bitref_r::concat_get_ctrl(), sc_dt::sc_uint_subref_r::concat_get_ctrl(), sc_dt::sc_unsigned::concat_get_ctrl(), sc_dt::sc_unsigned_bitref_r::concat_get_ctrl(), sc_dt::sc_concat_bool::concat_get_data(), sc_dt::sc_int_base::concat_get_data(), sc_dt::sc_int_bitref_r::concat_get_data(), sc_dt::sc_int_subref_r::concat_get_data(), sc_dt::sc_signed::concat_get_data(), sc_dt::sc_signed_bitref_r::concat_get_data(), sc_dt::sc_uint_base::concat_get_data(), sc_dt::sc_uint_bitref_r::concat_get_data(), sc_dt::sc_uint_subref_r::concat_get_data(), sc_dt::sc_unsigned::concat_get_data(), sc_dt::sc_unsigned_bitref_r::concat_get_data(), sc_dt::sc_signed::concat_get_uint64(), sc_dt::sc_unsigned::concat_get_uint64(), sc_dt::digit_ord(), sc_dt::from_uint(), sc_dt::or_on_help(), sc_dt::parse_binary_bits(), sc_dt::parse_hex_bits(), sc_dt::vec_add(), sc_dt::vec_add_on(), sc_dt::vec_add_on2(), sc_dt::vec_add_small(), sc_dt::vec_add_small_on(), sc_dt::vec_complement(), sc_dt::vec_div_large(), sc_dt::vec_from_char(), sc_dt::vec_rem_large(), sc_dt::vec_shift_left(), sc_dt::vec_shift_right(), sc_dt::vec_sub(), sc_dt::vec_sub_on(), sc_dt::vec_sub_on2(), sc_dt::vec_sub_small(), sc_dt::vec_sub_small_on(), sc_dt::vec_to_char(), and sc_dt::xor_on_help().

◆ BITS_PER_DIGIT_TYPE

#define BITS_PER_DIGIT_TYPE   32

Definition at line 123 of file sc_nbdefs.hh.

◆ BITS_PER_HALF_DIGIT

#define BITS_PER_HALF_DIGIT   (BITS_PER_DIGIT / 2)

Definition at line 135 of file sc_nbdefs.hh.

Referenced by sc_dt::concat(), and sc_dt::high_half().

◆ BITS_PER_INT

#define BITS_PER_INT   (sizeof(int) * BITS_PER_CHAR)

Definition at line 183 of file sc_nbdefs.hh.

◆ BITS_PER_INT64

#define BITS_PER_INT64   (sizeof(::sc_dt::int64) * BITS_PER_CHAR)

Definition at line 185 of file sc_nbdefs.hh.

Referenced by sc_dt::sc_signed::operator=(), and sc_dt::sc_signed::operator=().

◆ BITS_PER_LONG

#define BITS_PER_LONG   (sizeof(long) * BITS_PER_CHAR)

Definition at line 184 of file sc_nbdefs.hh.

Referenced by sc_dt::sc_signed::operator=(), and sc_dt::sc_signed::operator=().

◆ BITS_PER_UINT

#define BITS_PER_UINT   (sizeof(unsigned int) * BITS_PER_CHAR)

Definition at line 186 of file sc_nbdefs.hh.

◆ BITS_PER_UINT64

#define BITS_PER_UINT64   (sizeof(::sc_dt::uint64) * BITS_PER_CHAR)

Definition at line 188 of file sc_nbdefs.hh.

◆ BITS_PER_ULONG

#define BITS_PER_ULONG   (sizeof(unsigned long) * BITS_PER_CHAR)

Definition at line 187 of file sc_nbdefs.hh.

◆ BYTE_MASK

#define BYTE_MASK   255

Definition at line 113 of file sc_nbdefs.hh.

Referenced by sc_dt::vec_div_large(), sc_dt::vec_rem_large(), and sc_dt::vec_to_char().

◆ BYTE_RADIX

#define BYTE_RADIX   256

Definition at line 112 of file sc_nbdefs.hh.

Referenced by sc_dt::vec_div_large(), and sc_dt::vec_rem_large().

◆ BYTES_PER_DIGIT

#define BYTES_PER_DIGIT   4

Definition at line 126 of file sc_nbdefs.hh.

Referenced by sc_dt::vec_div_large(), and sc_dt::vec_rem_large().

◆ BYTES_PER_DIGIT_TYPE

#define BYTES_PER_DIGIT_TYPE   4

Definition at line 122 of file sc_nbdefs.hh.

◆ DIGIT_MASK

◆ DIGIT_RADIX

◆ DIGITS_PER_CHAR

#define DIGITS_PER_CHAR   1

Definition at line 191 of file sc_nbdefs.hh.

◆ DIGITS_PER_INT

#define DIGITS_PER_INT   ((BITS_PER_INT + 29) / 30)

Definition at line 192 of file sc_nbdefs.hh.

◆ DIGITS_PER_INT64

#define DIGITS_PER_INT64   ((BITS_PER_INT64 + 29) / 30)

Definition at line 194 of file sc_nbdefs.hh.

◆ DIGITS_PER_LONG

#define DIGITS_PER_LONG   ((BITS_PER_LONG + 29) / 30)

Definition at line 193 of file sc_nbdefs.hh.

◆ DIGITS_PER_UINT

#define DIGITS_PER_UINT   ((BITS_PER_UINT + 29) / 30)

Definition at line 195 of file sc_nbdefs.hh.

◆ DIGITS_PER_UINT64

#define DIGITS_PER_UINT64   ((BITS_PER_UINT64 + 29) / 30)

Definition at line 197 of file sc_nbdefs.hh.

◆ DIGITS_PER_ULONG

#define DIGITS_PER_ULONG   ((BITS_PER_ULONG + 29) / 30)

Definition at line 196 of file sc_nbdefs.hh.

◆ DIV_CEIL

◆ DIV_CEIL2

#define DIV_CEIL2 ( x,
y )   (((x) - 1) / (y) + 1)

Definition at line 140 of file sc_nbdefs.hh.

Referenced by sc_dt::vec_div_large(), and sc_dt::vec_rem_large().

◆ HALF_DIGIT_MASK

#define HALF_DIGIT_MASK   (HALF_DIGIT_RADIX - 1)

Definition at line 137 of file sc_nbdefs.hh.

Referenced by sc_dt::high_half_masked(), sc_dt::low_half(), and sc_dt::vec_mul().

◆ HALF_DIGIT_RADIX

◆ LOG2_BITS_PER_BYTE

#define LOG2_BITS_PER_BYTE   3

Definition at line 117 of file sc_nbdefs.hh.

Referenced by sc_dt::vec_to_char().

◆ SC_INTWIDTH

◆ SC_NEG

◆ SC_NOSIGN

#define SC_NOSIGN   2

◆ SC_POS

◆ SC_ZERO


Generated on Tue Jun 18 2024 16:24:08 for gem5 by doxygen 1.11.0