From b75fa906301f4d57dccd185a8c45375c968b5417 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Tue, 7 May 2024 16:11:24 +0100 Subject: [PATCH] Add DoStringise(const DXIL::Operation &el) --- renderdoc/driver/shaders/dxil/dxil_bytecode.h | 1 + .../driver/shaders/dxil/dxil_disassemble.cpp | 98 +++++++++++++++++++ 2 files changed, 99 insertions(+) diff --git a/renderdoc/driver/shaders/dxil/dxil_bytecode.h b/renderdoc/driver/shaders/dxil/dxil_bytecode.h index 55cf92133..08a97f3cd 100644 --- a/renderdoc/driver/shaders/dxil/dxil_bytecode.h +++ b/renderdoc/driver/shaders/dxil/dxil_bytecode.h @@ -1395,3 +1395,4 @@ rdcstr escapeStringIfNeeded(const rdcstr &name); DECLARE_REFLECTION_ENUM(DXIL::Attribute); DECLARE_STRINGISE_TYPE(DXIL::InstructionFlags); DECLARE_STRINGISE_TYPE(DXIL::AtomicBinOpCode); +DECLARE_STRINGISE_TYPE(DXIL::Operation); diff --git a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp index d2e9c8be5..6cd9e49ef 100644 --- a/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_disassemble.cpp @@ -4732,4 +4732,102 @@ rdcstr DoStringise(const DXIL::AtomicBinOpCode &el) STRINGISE_ENUM_CLASS(Invalid) } END_ENUM_STRINGISE(); +} + +template <> +rdcstr DoStringise(const DXIL::Operation &el) +{ + BEGIN_ENUM_STRINGISE(DXIL::Operation) + { + STRINGISE_ENUM_CLASS(NoOp) + STRINGISE_ENUM_CLASS(Call) + STRINGISE_ENUM_CLASS(Trunc) + STRINGISE_ENUM_CLASS(ZExt) + STRINGISE_ENUM_CLASS(SExt) + STRINGISE_ENUM_CLASS(FToU) + STRINGISE_ENUM_CLASS(FToS) + STRINGISE_ENUM_CLASS(UToF) + STRINGISE_ENUM_CLASS(SToF) + STRINGISE_ENUM_CLASS(FPTrunc) + STRINGISE_ENUM_CLASS(FPExt) + STRINGISE_ENUM_CLASS(PtrToI) + STRINGISE_ENUM_CLASS(IToPtr) + STRINGISE_ENUM_CLASS(Bitcast) + STRINGISE_ENUM_CLASS(AddrSpaceCast) + STRINGISE_ENUM_CLASS(ExtractVal) + STRINGISE_ENUM_CLASS(Ret) + STRINGISE_ENUM_CLASS(FAdd) + STRINGISE_ENUM_CLASS(FSub) + STRINGISE_ENUM_CLASS(FMul) + STRINGISE_ENUM_CLASS(FDiv) + STRINGISE_ENUM_CLASS(FRem) + STRINGISE_ENUM_CLASS(Add) + STRINGISE_ENUM_CLASS(Sub) + STRINGISE_ENUM_CLASS(Mul) + STRINGISE_ENUM_CLASS(UDiv) + STRINGISE_ENUM_CLASS(SDiv) + STRINGISE_ENUM_CLASS(URem) + STRINGISE_ENUM_CLASS(SRem) + STRINGISE_ENUM_CLASS(ShiftLeft) + STRINGISE_ENUM_CLASS(LogicalShiftRight) + STRINGISE_ENUM_CLASS(ArithShiftRight) + STRINGISE_ENUM_CLASS(And) + STRINGISE_ENUM_CLASS(Or) + STRINGISE_ENUM_CLASS(Xor) + STRINGISE_ENUM_CLASS(Unreachable) + STRINGISE_ENUM_CLASS(Alloca) + STRINGISE_ENUM_CLASS(GetElementPtr) + STRINGISE_ENUM_CLASS(Load) + STRINGISE_ENUM_CLASS(Store) + STRINGISE_ENUM_CLASS(FOrdFalse) + STRINGISE_ENUM_CLASS(FOrdEqual) + STRINGISE_ENUM_CLASS(FOrdGreater) + STRINGISE_ENUM_CLASS(FOrdGreaterEqual) + STRINGISE_ENUM_CLASS(FOrdLess) + STRINGISE_ENUM_CLASS(FOrdLessEqual) + STRINGISE_ENUM_CLASS(FOrdNotEqual) + STRINGISE_ENUM_CLASS(FOrd) + STRINGISE_ENUM_CLASS(FUnord) + STRINGISE_ENUM_CLASS(FUnordEqual) + STRINGISE_ENUM_CLASS(FUnordGreater) + STRINGISE_ENUM_CLASS(FUnordGreaterEqual) + STRINGISE_ENUM_CLASS(FUnordLess) + STRINGISE_ENUM_CLASS(FUnordLessEqual) + STRINGISE_ENUM_CLASS(FUnordNotEqual) + STRINGISE_ENUM_CLASS(FOrdTrue) + STRINGISE_ENUM_CLASS(IEqual) + STRINGISE_ENUM_CLASS(INotEqual) + STRINGISE_ENUM_CLASS(UGreater) + STRINGISE_ENUM_CLASS(UGreaterEqual) + STRINGISE_ENUM_CLASS(ULess) + STRINGISE_ENUM_CLASS(ULessEqual) + STRINGISE_ENUM_CLASS(SGreater) + STRINGISE_ENUM_CLASS(SGreaterEqual) + STRINGISE_ENUM_CLASS(SLess) + STRINGISE_ENUM_CLASS(SLessEqual) + STRINGISE_ENUM_CLASS(Select) + STRINGISE_ENUM_CLASS(ExtractElement) + STRINGISE_ENUM_CLASS(InsertElement) + STRINGISE_ENUM_CLASS(ShuffleVector) + STRINGISE_ENUM_CLASS(InsertValue) + STRINGISE_ENUM_CLASS(Branch) + STRINGISE_ENUM_CLASS(Phi) + STRINGISE_ENUM_CLASS(Switch) + STRINGISE_ENUM_CLASS(Fence) + STRINGISE_ENUM_CLASS(CompareExchange) + STRINGISE_ENUM_CLASS(LoadAtomic) + STRINGISE_ENUM_CLASS(StoreAtomic) + STRINGISE_ENUM_CLASS(AtomicExchange) + STRINGISE_ENUM_CLASS(AtomicAdd) + STRINGISE_ENUM_CLASS(AtomicSub) + STRINGISE_ENUM_CLASS(AtomicAnd) + STRINGISE_ENUM_CLASS(AtomicNand) + STRINGISE_ENUM_CLASS(AtomicOr) + STRINGISE_ENUM_CLASS(AtomicXor) + STRINGISE_ENUM_CLASS(AtomicMax) + STRINGISE_ENUM_CLASS(AtomicMin) + STRINGISE_ENUM_CLASS(AtomicUMax) + STRINGISE_ENUM_CLASS(AtomicUMin) + } + END_ENUM_STRINGISE(); } \ No newline at end of file