mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-23 02:10:40 +00:00
Add special zeroinitializer disassembly
This commit is contained in:
@@ -243,6 +243,7 @@ void ParseConstant(const LLVMBC::BlockOrRecord &constant, const Type *&curType,
|
||||
{
|
||||
Value v;
|
||||
v.type = curType;
|
||||
v.nullconst = IS_KNOWN(constant.id, ConstantsRecord::CONST_NULL);
|
||||
v.undef = IS_KNOWN(constant.id, ConstantsRecord::UNDEF);
|
||||
addValue(v);
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ struct Value
|
||||
ShaderValue val = {};
|
||||
rdcarray<Value> members;
|
||||
rdcstr str;
|
||||
bool undef = false, symbol = false;
|
||||
bool undef = false, nullconst = true, symbol = false;
|
||||
|
||||
rdcstr toString() const;
|
||||
};
|
||||
|
||||
@@ -387,9 +387,17 @@ void Program::MakeDisassemblyString()
|
||||
case SymbolType::Literal: ret = "???"; break;
|
||||
case SymbolType::Metadata:
|
||||
if(s.idx < m_Metadata.size())
|
||||
ret += StringFormat::Fmt("metadata !%u", GetOrAssignMetaID(&m_Metadata[s.idx]));
|
||||
{
|
||||
Metadata &m = m_Metadata[s.idx];
|
||||
if(m.value && m.val && m.val->nullconst)
|
||||
ret += StringFormat::Fmt("metadata %s zeroinitializer", m.val->type->toString());
|
||||
else
|
||||
ret += StringFormat::Fmt("metadata !%u", GetOrAssignMetaID(&m));
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = "metadata " + GetFunctionMetadata(func, s.idx)->refString();
|
||||
}
|
||||
break;
|
||||
case SymbolType::Function: ret = "@" + escapeStringIfNeeded(m_Functions[s.idx].name); break;
|
||||
case SymbolType::GlobalVar:
|
||||
|
||||
Reference in New Issue
Block a user