DXIL Debugger Implement DXOp::MakeDouble

This commit is contained in:
Jake Turner
2024-12-15 12:04:54 +00:00
parent 2f3d7e092c
commit 742ddeb185
2 changed files with 13 additions and 2 deletions
+13 -1
View File
@@ -3441,8 +3441,20 @@ bool ThreadState::ExecuteInstruction(DebugAPIWrapper *apiWrapper,
(uint32_t)(((c.value.u32v[0] << offset) & bitmask) | (d.value.u32v[0] & ~bitmask));
break;
}
// Likely to implement when required
case DXOp::MakeDouble:
{
// MakeDouble(lo,hi)
RDCASSERTEQUAL(inst.args[1]->type->type, Type::TypeKind::Scalar);
RDCASSERTEQUAL(inst.args[2]->type->type, Type::TypeKind::Scalar);
ShaderVariable a;
ShaderVariable b;
RDCASSERT(GetShaderVariable(inst.args[1], opCode, dxOpCode, a));
RDCASSERT(GetShaderVariable(inst.args[2], opCode, dxOpCode, b));
RDCASSERTEQUAL(a.type, b.type);
result.value.u64v[0] = ((uint64_t)b.value.u32v[0] << 32) | a.value.u32v[0];
break;
}
// Likely to implement when required
case DXOp::SplitDouble:
case DXOp::BitcastI16toF16:
case DXOp::BitcastF16toI16:
@@ -1826,7 +1826,6 @@ rdcstr Program::GetDebugStatus()
case DXOp::CutStream:
case DXOp::EmitThenCutStream:
case DXOp::GSInstanceID:
case DXOp::MakeDouble:
case DXOp::SplitDouble:
case DXOp::LoadOutputControlPoint:
case DXOp::LoadPatchConstant: