| 
    gem5
    
   | 
 
#include <decl.hh>
  
 Public Member Functions | |
| void | calcAddr (Wavefront *w, GPUDynInstPtr m) | 
| void | generateDisassembly () | 
| bool | isPseudoOp () | 
| void | execPseudoInst (Wavefront *w, GPUDynInstPtr gpuDynInst) | 
| void | MagicPrintLane (Wavefront *w) | 
| void | MagicPrintLane64 (Wavefront *w) | 
| void | MagicPrintWF32 (Wavefront *w) | 
| void | MagicPrintWF64 (Wavefront *w) | 
| void | MagicPrintWFFloat (Wavefront *w) | 
| void | MagicSimBreak (Wavefront *w) | 
| void | MagicPrefixSum (Wavefront *w) | 
| void | MagicReduction (Wavefront *w) | 
| void | MagicMaskLower (Wavefront *w) | 
| void | MagicMaskUpper (Wavefront *w) | 
| void | MagicJoinWFBar (Wavefront *w) | 
| void | MagicWaitWFBar (Wavefront *w) | 
| void | MagicPanic (Wavefront *w) | 
| void | MagicAtomicNRAddGlobalU32Reg (Wavefront *w, GPUDynInstPtr gpuDynInst) | 
| void | MagicAtomicNRAddGroupU32Reg (Wavefront *w, GPUDynInstPtr gpuDynInst) | 
| void | MagicLoadGlobalU32Reg (Wavefront *w, GPUDynInstPtr gpuDynInst) | 
| void | MagicXactCasLd (Wavefront *w) | 
| void | MagicMostSigThread (Wavefront *w) | 
| void | MagicMostSigBroadcast (Wavefront *w) | 
| void | MagicPrintWF32ID (Wavefront *w) | 
| void | MagicPrintWFID64 (Wavefront *w) | 
| Call (const Brig::BrigInstBase *ib, const BrigObject *obj) | |
| bool | isVectorRegister (int operandIndex) | 
| bool | isCondRegister (int operandIndex) | 
| bool | isScalarRegister (int operandIndex) | 
| bool | isSrcOperand (int operandIndex) | 
| bool | isDstOperand (int operandIndex) | 
| int | getOperandSize (int operandIndex) | 
| int | getRegisterIndex (int operandIndex, GPUDynInstPtr gpuDynInst) | 
| void | execute (GPUDynInstPtr gpuDynInst) | 
| int | numSrcRegOperands () | 
| int | numDstRegOperands () | 
| int | getNumOperands () | 
  Public Member Functions inherited from HsailISA::HsailGPUStaticInst | |
| HsailGPUStaticInst (const BrigObject *obj, const std::string &opcode) | |
| void | generateDisassembly () override | 
| int | instSize () const override | 
| bool | isValid () const override | 
  Public Member Functions inherited from GPUStaticInst | |
| GPUStaticInst (const std::string &opcode) | |
| void | instAddr (int inst_addr) | 
| int | instAddr () const | 
| int | nextInstAddr () const | 
| void | instNum (int num) | 
| int | instNum () | 
| void | ipdInstNum (int num) | 
| int | ipdInstNum () const | 
| const std::string & | disassemble () | 
| bool | isALU () const | 
| bool | isBranch () const | 
| bool | isNop () const | 
| bool | isReturn () const | 
| bool | isUnconditionalJump () const | 
| bool | isSpecialOp () const | 
| bool | isWaitcnt () const | 
| bool | isBarrier () const | 
| bool | isMemFence () const | 
| bool | isMemRef () const | 
| bool | isFlat () const | 
| bool | isLoad () const | 
| bool | isStore () const | 
| bool | isAtomic () const | 
| bool | isAtomicNoRet () const | 
| bool | isAtomicRet () const | 
| bool | isScalar () const | 
| bool | readsSCC () const | 
| bool | writesSCC () const | 
| bool | readsVCC () const | 
| bool | writesVCC () const | 
| bool | isAtomicAnd () const | 
| bool | isAtomicOr () const | 
| bool | isAtomicXor () const | 
| bool | isAtomicCAS () const | 
| bool | isAtomicExch () const | 
| bool | isAtomicAdd () const | 
| bool | isAtomicSub () const | 
| bool | isAtomicInc () const | 
| bool | isAtomicDec () const | 
| bool | isAtomicMax () const | 
| bool | isAtomicMin () const | 
| bool | isArgLoad () const | 
| bool | isGlobalMem () const | 
| bool | isLocalMem () const | 
| bool | isArgSeg () const | 
| bool | isGlobalSeg () const | 
| bool | isGroupSeg () const | 
| bool | isKernArgSeg () const | 
| bool | isPrivateSeg () const | 
| bool | isReadOnlySeg () const | 
| bool | isSpillSeg () const | 
| bool | isWorkitemScope () const | 
| bool | isWavefrontScope () const | 
| bool | isWorkgroupScope () const | 
| bool | isDeviceScope () const | 
| bool | isSystemScope () const | 
| bool | isNoScope () const | 
| bool | isRelaxedOrder () const | 
| bool | isAcquire () const | 
| bool | isRelease () const | 
| bool | isAcquireRelease () const | 
| bool | isNoOrder () const | 
| bool | isGloballyCoherent () const | 
| Coherence domain of a memory instruction.  More... | |
| bool | isSystemCoherent () const | 
| virtual void | initiateAcc (GPUDynInstPtr gpuDynInst) | 
| virtual void | completeAcc (GPUDynInstPtr gpuDynInst) | 
| virtual uint32_t | getTargetPc () | 
| void | setFlag (Flags flag) | 
| virtual void | execLdAcq (GPUDynInstPtr gpuDynInst) | 
| virtual void | execSt (GPUDynInstPtr gpuDynInst) | 
| virtual void | execAtomic (GPUDynInstPtr gpuDynInst) | 
| virtual void | execAtomicAcq (GPUDynInstPtr gpuDynInst) | 
Public Attributes | |
| ListOperand | dest | 
| FunctionRefOperand | src0 | 
| ListOperand | src1 | 
| HsailCode * | func_ptr | 
  Public Attributes inherited from GPUStaticInst | |
| Enums::StorageClassType | executed_as | 
Additional Inherited Members | |
  Static Public Attributes inherited from GPUStaticInst | |
| static uint64_t | dynamic_id_count | 
  Protected Attributes inherited from HsailISA::HsailGPUStaticInst | |
| HsailCode * | hsailCode | 
  Protected Attributes inherited from GPUStaticInst | |
| const std::string | opcode | 
| std::string | disassembly | 
| int | _instNum | 
| int | _instAddr | 
| int | _ipdInstNum | 
| Identifier of the immediate post-dominator instruction.  More... | |
| std::bitset< Num_Flags > | _flags | 
      
  | 
  inline | 
Definition at line 1219 of file decl.hh.
References dest, FunctionRefOperand::disassemble(), fatal, func_ptr, BrigObject::getOperandPtr(), ListOperand::init(), FunctionRefOperand::init(), isPseudoOp(), Brig::BrigInstBase::operands, GPUStaticInst::setFlag(), src0, and src1.
| void HsailISA::Call::calcAddr | ( | Wavefront * | w, | 
| GPUDynInstPtr | m | ||
| ) | 
Definition at line 606 of file pseudo_inst.cc.
References addr, Wavefront::computeUnit, ListOperand::get(), src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by MagicAtomicNRAddGlobalU32Reg(), MagicAtomicNRAddGroupU32Reg(), and MagicLoadGlobalU32Reg().
| void HsailISA::Call::execPseudoInst | ( | Wavefront * | w, | 
| GPUDynInstPtr | gpuDynInst | ||
| ) | 
Definition at line 80 of file pseudo_inst.cc.
References Wavefront::computeUnit, fatal, ListOperand::get(), Wavefront::getPred(), HsailISA::MAGIC_ATOMIC_NR_ADD_GLOBAL_U32_REG, HsailISA::MAGIC_ATOMIC_NR_ADD_GROUP_U32_REG, HsailISA::MAGIC_JOIN_WF_BAR, HsailISA::MAGIC_LOAD_GLOBAL_U32_REG, HsailISA::MAGIC_MASKLANE_LOWER, HsailISA::MAGIC_MASKLANE_UPPER, HsailISA::MAGIC_MOST_SIG_BROADCAST, HsailISA::MAGIC_MOST_SIG_THD, HsailISA::MAGIC_PANIC, HsailISA::MAGIC_PREF_SUM, HsailISA::MAGIC_PRINT_LANE, HsailISA::MAGIC_PRINT_LANE_64, HsailISA::MAGIC_PRINT_WF_32, HsailISA::MAGIC_PRINT_WF_64, HsailISA::MAGIC_PRINT_WF_FLOAT, HsailISA::MAGIC_PRINT_WFID_32, HsailISA::MAGIC_PRINT_WFID_64, HsailISA::MAGIC_REDUCTION, HsailISA::MAGIC_SIM_BREAK, HsailISA::MAGIC_WAIT_WF_BAR, HsailISA::MAGIC_XACT_CAS_LD, MagicAtomicNRAddGlobalU32Reg(), MagicAtomicNRAddGroupU32Reg(), MagicJoinWFBar(), MagicLoadGlobalU32Reg(), MagicMaskLower(), MagicMaskUpper(), MagicMostSigBroadcast(), MagicMostSigThread(), MagicPanic(), MagicPrefixSum(), MagicPrintLane(), MagicPrintLane64(), MagicPrintWF32(), MagicPrintWF32ID(), MagicPrintWF64(), MagicPrintWFFloat(), MagicPrintWFID64(), MagicReduction(), MagicSimBreak(), MagicWaitWFBar(), MagicXactCasLd(), ArmISA::mask, X86ISA::op, src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execute().
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
Definition at line 1256 of file decl.hh.
References FunctionRefOperand::disassemble(), execPseudoInst(), fatal, isPseudoOp(), and src0.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
Definition at line 1158 of file decl.hh.
References csprintf(), dest, ListOperand::disassemble(), FunctionRefOperand::disassemble(), GPUStaticInst::disassembly, GPUStaticInst::opcode, src0, and src1.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inline | 
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
| void HsailISA::Call::MagicAtomicNRAddGlobalU32Reg | ( | Wavefront * | w, | 
| GPUDynInstPtr | gpuDynInst | ||
| ) | 
Definition at line 620 of file pseudo_inst.cc.
References calcAddr(), Wavefront::computeUnit, Wavefront::execMask(), ListOperand::get(), GLBMEM_PIPE, ComputeUnit::globalMemoryPipe, GlobalMemPipeline::issueRequest(), ArmISA::m, Wavefront::memReqsInPipe, HsailISA::HsailDataType< _OperandType, _CType, _memType, _vgprType, IsBits >::memType, Wavefront::outstandingReqs, Wavefront::outstandingReqsRdGm, Wavefront::outstandingReqsWrGm, Wavefront::rdGmReqsInPipe, GPUStaticInst::setFlag(), ComputeUnit::shader, Wavefront::simdId, src1, Shader::tick_cnt, Shader::ticks(), HsailISA::HsailDataType< _OperandType, _CType, _memType, _vgprType, IsBits >::vgprType, MipsISA::w, Wavefront::wfDynId, ComputeUnit::wfSize(), Wavefront::wfSlotId, and Wavefront::wrGmReqsInPipe.
Referenced by execPseudoInst().
| void HsailISA::Call::MagicAtomicNRAddGroupU32Reg | ( | Wavefront * | w, | 
| GPUDynInstPtr | gpuDynInst | ||
| ) | 
Definition at line 661 of file pseudo_inst.cc.
References calcAddr(), Wavefront::computeUnit, Wavefront::execMask(), ListOperand::get(), GLBMEM_PIPE, ComputeUnit::globalMemoryPipe, GlobalMemPipeline::issueRequest(), ArmISA::m, Wavefront::memReqsInPipe, HsailISA::HsailDataType< _OperandType, _CType, _memType, _vgprType, IsBits >::memType, Wavefront::outstandingReqs, Wavefront::outstandingReqsRdGm, Wavefront::outstandingReqsWrGm, Wavefront::rdGmReqsInPipe, GPUStaticInst::setFlag(), ComputeUnit::shader, Wavefront::simdId, src1, Shader::tick_cnt, Shader::ticks(), HsailISA::HsailDataType< _OperandType, _CType, _memType, _vgprType, IsBits >::vgprType, MipsISA::w, Wavefront::wfDynId, ComputeUnit::wfSize(), Wavefront::wfSlotId, and Wavefront::wrGmReqsInPipe.
Referenced by execPseudoInst().
| void HsailISA::Call::MagicJoinWFBar | ( | Wavefront * | w | ) | 
Definition at line 545 of file pseudo_inst.cc.
References Wavefront::barCnt, Wavefront::computeUnit, Wavefront::getPred(), ArmISA::mask, Wavefront::maxBarCnt, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicLoadGlobalU32Reg | ( | Wavefront * | w, | 
| GPUDynInstPtr | gpuDynInst | ||
| ) | 
Definition at line 701 of file pseudo_inst.cc.
References calcAddr(), Wavefront::computeUnit, Wavefront::execMask(), GLBMEM_PIPE, ComputeUnit::globalMemoryPipe, GlobalMemPipeline::issueRequest(), ArmISA::m, Wavefront::memReqsInPipe, HsailISA::HsailDataType< _OperandType, _CType, _memType, _vgprType, IsBits >::memType, Wavefront::outstandingReqs, Wavefront::outstandingReqsRdGm, Wavefront::rdGmReqsInPipe, GPUStaticInst::setFlag(), ComputeUnit::shader, Wavefront::simdId, Shader::tick_cnt, Shader::ticks(), HsailISA::HsailDataType< _OperandType, _CType, _memType, _vgprType, IsBits >::vgprType, Wavefront::wfDynId, and Wavefront::wfSlotId.
Referenced by execPseudoInst().
| void HsailISA::Call::MagicMaskLower | ( | Wavefront * | w | ) | 
Definition at line 495 of file pseudo_inst.cc.
References Wavefront::computeUnit, dest, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, ListOperand::set(), src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicMaskUpper | ( | Wavefront * | w | ) | 
Definition at line 520 of file pseudo_inst.cc.
References Wavefront::computeUnit, dest, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, ListOperand::set(), src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicMostSigBroadcast | ( | Wavefront * | w | ) | 
Definition at line 774 of file pseudo_inst.cc.
References Wavefront::computeUnit, dest, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, ListOperand::set(), src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicMostSigThread | ( | Wavefront * | w | ) | 
Definition at line 760 of file pseudo_inst.cc.
References Wavefront::computeUnit, dest, Wavefront::getPred(), ArmISA::mask, ListOperand::set(), MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPanic | ( | Wavefront * | w | ) | 
Definition at line 592 of file pseudo_inst.cc.
References Wavefront::computeUnit, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, panic, src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrefixSum | ( | Wavefront * | w | ) | 
Definition at line 456 of file pseudo_inst.cc.
References Wavefront::computeUnit, dest, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, ListOperand::set(), src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrintLane | ( | Wavefront * | w | ) | 
Definition at line 181 of file pseudo_inst.cc.
References Wavefront::computeUnit, GPUStaticInst::disassemble(), DPRINTFN, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrintLane64 | ( | Wavefront * | w | ) | 
Definition at line 204 of file pseudo_inst.cc.
References Wavefront::computeUnit, GPUStaticInst::disassemble(), DPRINTFN, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrintWF32 | ( | Wavefront * | w | ) | 
Definition at line 227 of file pseudo_inst.cc.
References Wavefront::computeUnit, csprintf(), GPUStaticInst::disassemble(), DPRINTFN, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, src1, MipsISA::w, Wavefront::wfDynId, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrintWF32ID | ( | Wavefront * | w | ) | 
Definition at line 265 of file pseudo_inst.cc.
References Wavefront::computeUnit, csprintf(), GPUStaticInst::disassemble(), DPRINTFN, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, src1, MipsISA::w, Wavefront::wfDynId, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrintWF64 | ( | Wavefront * | w | ) | 
Definition at line 307 of file pseudo_inst.cc.
References Wavefront::computeUnit, csprintf(), GPUStaticInst::disassemble(), DPRINTFN, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, src1, MipsISA::w, Wavefront::wfDynId, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrintWFFloat | ( | Wavefront * | w | ) | 
Definition at line 387 of file pseudo_inst.cc.
References Wavefront::computeUnit, csprintf(), GPUStaticInst::disassemble(), DPRINTFN, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, src1, MipsISA::w, Wavefront::wfDynId, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicPrintWFID64 | ( | Wavefront * | w | ) | 
Definition at line 345 of file pseudo_inst.cc.
References Wavefront::computeUnit, csprintf(), GPUStaticInst::disassemble(), DPRINTFN, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, src1, MipsISA::w, Wavefront::wfDynId, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicReduction | ( | Wavefront * | w | ) | 
Definition at line 471 of file pseudo_inst.cc.
References Wavefront::computeUnit, dest, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, ListOperand::set(), src1, MipsISA::w, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicSimBreak | ( | Wavefront * | w | ) | 
Definition at line 421 of file pseudo_inst.cc.
References Wavefront::computeUnit, csprintf(), ComputeUnit::cu_id, DPRINTFN, Wavefront::execMask(), ArmISA::i, Wavefront::kernId, Wavefront::simdId, ComputeUnit::wfSize(), and Wavefront::wfSlotId.
Referenced by execPseudoInst().
| void HsailISA::Call::MagicWaitWFBar | ( | Wavefront * | w | ) | 
Definition at line 566 of file pseudo_inst.cc.
References Wavefront::barCnt, Wavefront::computeUnit, Wavefront::dropFetch, Wavefront::getPred(), Wavefront::instructionBuffer, ArmISA::mask, Wavefront::maxBarCnt, Wavefront::pendingFetch, and ComputeUnit::wfSize().
Referenced by execPseudoInst().
| void HsailISA::Call::MagicXactCasLd | ( | Wavefront * | w | ) | 
Definition at line 738 of file pseudo_inst.cc.
References Wavefront::computeUnit, ListOperand::get(), Wavefront::getPred(), ArmISA::mask, Wavefront::simdId, src1, MipsISA::w, ComputeUnit::wfSize(), Wavefront::wfSlotId, and ComputeUnit::xactCasLoadMap.
Referenced by execPseudoInst().
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
      
  | 
  inlinevirtual | 
Implements GPUStaticInst.
| ListOperand HsailISA::Call::dest | 
Definition at line 1181 of file decl.hh.
Referenced by Call(), generateDisassembly(), MagicMaskLower(), MagicMaskUpper(), MagicMostSigBroadcast(), MagicMostSigThread(), MagicPrefixSum(), and MagicReduction().
| FunctionRefOperand HsailISA::Call::src0 | 
Definition at line 1182 of file decl.hh.
Referenced by Call(), execute(), generateDisassembly(), and isPseudoOp().
| ListOperand HsailISA::Call::src1 | 
Definition at line 1183 of file decl.hh.
Referenced by calcAddr(), Call(), execPseudoInst(), generateDisassembly(), MagicAtomicNRAddGlobalU32Reg(), MagicAtomicNRAddGroupU32Reg(), MagicMaskLower(), MagicMaskUpper(), MagicMostSigBroadcast(), MagicPanic(), MagicPrefixSum(), MagicPrintLane(), MagicPrintLane64(), MagicPrintWF32(), MagicPrintWF32ID(), MagicPrintWF64(), MagicPrintWFFloat(), MagicPrintWFID64(), MagicReduction(), and MagicXactCasLd().