gem5 v24.0.0.0
Loading...
Searching...
No Matches
gpu_registers.hh File Reference
#include <array>
#include <cstdint>
#include <string>
#include "arch/generic/vec_reg.hh"
#include "base/intmath.hh"
#include "base/logging.hh"

Go to the source code of this file.

Classes

struct  gem5::VegaISA::StatusReg
 

Namespaces

namespace  gem5
 Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
 
namespace  gem5::VegaISA
 classes that represnt vector/scalar operands in VEGA ISA.
 

Typedefs

typedef uint8_t gem5::VegaISA::ScalarRegU8
 
typedef int8_t gem5::VegaISA::ScalarRegI8
 
typedef uint16_t gem5::VegaISA::ScalarRegU16
 
typedef int16_t gem5::VegaISA::ScalarRegI16
 
typedef uint32_t gem5::VegaISA::ScalarRegU32
 
typedef int32_t gem5::VegaISA::ScalarRegI32
 
typedef float gem5::VegaISA::ScalarRegF32
 
typedef uint64_t gem5::VegaISA::ScalarRegU64
 
typedef int64_t gem5::VegaISA::ScalarRegI64
 
typedef double gem5::VegaISA::ScalarRegF64
 
typedef uint8_t gem5::VegaISA::VecElemU8
 
typedef int8_t gem5::VegaISA::VecElemI8
 
typedef uint16_t gem5::VegaISA::VecElemU16
 
typedef int16_t gem5::VegaISA::VecElemI16
 
typedef uint32_t gem5::VegaISA::VecElemU32
 
typedef int32_t gem5::VegaISA::VecElemI32
 
typedef float gem5::VegaISA::VecElemF32
 
typedef uint64_t gem5::VegaISA::VecElemU64
 
typedef int64_t gem5::VegaISA::VecElemI64
 
typedef double gem5::VegaISA::VecElemF64
 
using gem5::VegaISA::VecRegContainerU32
 
using gem5::VegaISA::VecRegContainerU64
 

Enumerations

enum  gem5::VegaISA::OpSelector : int {
  gem5::VegaISA::REG_SGPR_MIN = 0 , gem5::VegaISA::REG_SGPR_MAX = 101 , gem5::VegaISA::REG_FLAT_SCRATCH_LO = 102 , gem5::VegaISA::REG_FLAT_SCRATCH_HI = 103 ,
  gem5::VegaISA::REG_XNACK_MASK_LO = 104 , gem5::VegaISA::REG_XNACK_MASK_HI = 105 , gem5::VegaISA::REG_VCC_LO = 106 , gem5::VegaISA::REG_VCC_HI = 107 ,
  gem5::VegaISA::REG_TBA_LO = 108 , gem5::VegaISA::REG_TBA_HI = 109 , gem5::VegaISA::REG_TMA_LO = 110 , gem5::VegaISA::REG_TMA_HI = 111 ,
  gem5::VegaISA::REG_TTMP_0 = 112 , gem5::VegaISA::REG_TTMP_1 = 113 , gem5::VegaISA::REG_TTMP_2 = 114 , gem5::VegaISA::REG_TTMP_3 = 115 ,
  gem5::VegaISA::REG_TTMP_4 = 116 , gem5::VegaISA::REG_TTMP_5 = 117 , gem5::VegaISA::REG_TTMP_6 = 118 , gem5::VegaISA::REG_TTMP_7 = 119 ,
  gem5::VegaISA::REG_TTMP_8 = 120 , gem5::VegaISA::REG_TTMP_9 = 121 , gem5::VegaISA::REG_TTMP_10 = 122 , gem5::VegaISA::REG_TTMP_11 = 123 ,
  gem5::VegaISA::REG_M0 = 124 , gem5::VegaISA::REG_RESERVED_1 = 125 , gem5::VegaISA::REG_EXEC_LO = 126 , gem5::VegaISA::REG_EXEC_HI = 127 ,
  gem5::VegaISA::REG_ZERO = 128 , gem5::VegaISA::REG_INT_CONST_POS_MIN = 129 , gem5::VegaISA::REG_INT_CONST_POS_MAX = 192 , gem5::VegaISA::REG_INT_CONST_NEG_MIN = 193 ,
  gem5::VegaISA::REG_INT_CONST_NEG_MAX = 208 , gem5::VegaISA::REG_RESERVED_2 = 209 , gem5::VegaISA::REG_RESERVED_3 = 210 , gem5::VegaISA::REG_RESERVED_4 = 211 ,
  gem5::VegaISA::REG_RESERVED_5 = 212 , gem5::VegaISA::REG_RESERVED_6 = 213 , gem5::VegaISA::REG_RESERVED_7 = 214 , gem5::VegaISA::REG_RESERVED_8 = 215 ,
  gem5::VegaISA::REG_RESERVED_9 = 216 , gem5::VegaISA::REG_RESERVED_10 = 217 , gem5::VegaISA::REG_RESERVED_11 = 218 , gem5::VegaISA::REG_RESERVED_12 = 219 ,
  gem5::VegaISA::REG_RESERVED_13 = 220 , gem5::VegaISA::REG_RESERVED_14 = 221 , gem5::VegaISA::REG_RESERVED_15 = 222 , gem5::VegaISA::REG_RESERVED_16 = 223 ,
  gem5::VegaISA::REG_RESERVED_17 = 224 , gem5::VegaISA::REG_RESERVED_18 = 225 , gem5::VegaISA::REG_RESERVED_19 = 226 , gem5::VegaISA::REG_RESERVED_20 = 227 ,
  gem5::VegaISA::REG_RESERVED_21 = 228 , gem5::VegaISA::REG_RESERVED_22 = 229 , gem5::VegaISA::REG_RESERVED_23 = 230 , gem5::VegaISA::REG_RESERVED_24 = 231 ,
  gem5::VegaISA::REG_RESERVED_25 = 232 , gem5::VegaISA::REG_RESERVED_26 = 233 , gem5::VegaISA::REG_RESERVED_27 = 234 , gem5::VegaISA::REG_SHARED_BASE = 235 ,
  gem5::VegaISA::REG_SHARED_LIMIT = 236 , gem5::VegaISA::REG_PRIVATE_BASE = 237 , gem5::VegaISA::REG_PRIVATE_LIMIT = 238 , gem5::VegaISA::REG_RESERVED_32 = 239 ,
  gem5::VegaISA::REG_POS_HALF = 240 , gem5::VegaISA::REG_NEG_HALF = 241 , gem5::VegaISA::REG_POS_ONE = 242 , gem5::VegaISA::REG_NEG_ONE = 243 ,
  gem5::VegaISA::REG_POS_TWO = 244 , gem5::VegaISA::REG_NEG_TWO = 245 , gem5::VegaISA::REG_POS_FOUR = 246 , gem5::VegaISA::REG_NEG_FOUR = 247 ,
  gem5::VegaISA::REG_PI = 248 , gem5::VegaISA::REG_SRC_SWDA = 249 , gem5::VegaISA::REG_SRC_DPP = 250 , gem5::VegaISA::REG_VCCZ = 251 ,
  gem5::VegaISA::REG_EXECZ = 252 , gem5::VegaISA::REG_SCC = 253 , gem5::VegaISA::REG_LDS_DIRECT = 254 , gem5::VegaISA::REG_SRC_LITERAL = 255 ,
  gem5::VegaISA::REG_VGPR_MIN = 256 , gem5::VegaISA::REG_VGPR_MAX = 767
}
 

Functions

constexpr size_t gem5::VegaISA::MaxOperandDwords (16)
 
const int gem5::VegaISA::NumVecElemPerVecReg (64)
 
std::string gem5::VegaISA::opSelectorToRegSym (int idx, int numRegs)
 
int gem5::VegaISA::opSelectorToRegIdx (int idx, int numScalarRegs)
 
bool gem5::VegaISA::isPosConstVal (int opIdx)
 
bool gem5::VegaISA::isNegConstVal (int opIdx)
 
bool gem5::VegaISA::isConstVal (int opIdx)
 
bool gem5::VegaISA::isLiteral (int opIdx)
 
bool gem5::VegaISA::isScalarReg (int opIdx)
 
bool gem5::VegaISA::isVectorReg (int opIdx)
 
bool gem5::VegaISA::isFlatScratchReg (int opIdx)
 
bool gem5::VegaISA::isExecMask (int opIdx)
 
bool gem5::VegaISA::isVccReg (int opIdx)
 

Variables

const int gem5::VegaISA::NumPosConstRegs
 
const int gem5::VegaISA::NumNegConstRegs
 
const int gem5::VegaISA::BITS_PER_BYTE = 8
 
const int gem5::VegaISA::BITS_PER_WORD = 16
 
const int gem5::VegaISA::MSB_PER_BYTE = (BITS_PER_BYTE - 1)
 
const int gem5::VegaISA::MSB_PER_WORD = (BITS_PER_WORD - 1)
 
const int gem5::VegaISA::DWordSize = sizeof(VecElemU32)
 
const int gem5::VegaISA::RegSizeDWords = sizeof(VecElemU32) / DWordSize
 Size of a single-precision register in DWords.
 

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