diff --git a/renderdoc/driver/shaders/dxil/dxil_debuginfo.h b/renderdoc/driver/shaders/dxil/dxil_debuginfo.h index b0a6743c1..e7813c1d2 100644 --- a/renderdoc/driver/shaders/dxil/dxil_debuginfo.h +++ b/renderdoc/driver/shaders/dxil/dxil_debuginfo.h @@ -760,3 +760,4 @@ struct DIImportedEntity : public DIBase }; // namespace DXIL DECLARE_REFLECTION_ENUM(DXIL::DW_LANG); +DECLARE_STRINGISE_TYPE(DXIL::DW_OP); diff --git a/renderdoc/driver/shaders/dxil/dxil_stringise.cpp b/renderdoc/driver/shaders/dxil/dxil_stringise.cpp index c39a103a7..046da2d11 100644 --- a/renderdoc/driver/shaders/dxil/dxil_stringise.cpp +++ b/renderdoc/driver/shaders/dxil/dxil_stringise.cpp @@ -24,6 +24,7 @@ #include "dxil_bytecode.h" #include "dxil_common.h" +#include "dxil_debuginfo.h" template <> rdcstr DoStringise(const DXIL::InstructionFlags &el) @@ -559,3 +560,170 @@ rdcstr DoStringise(const DXIL::DIBase::Type &el) } END_ENUM_STRINGISE(); }; + +template <> +rdcstr DoStringise(const DXIL::DW_OP &el) +{ + BEGIN_ENUM_STRINGISE(DXIL::DW_OP); + { + STRINGISE_ENUM_CLASS(DW_OP_none); + STRINGISE_ENUM_CLASS(DW_OP_addr); + STRINGISE_ENUM_CLASS(DW_OP_deref); + STRINGISE_ENUM_CLASS(DW_OP_const1u); + STRINGISE_ENUM_CLASS(DW_OP_const1s); + STRINGISE_ENUM_CLASS(DW_OP_const2u); + STRINGISE_ENUM_CLASS(DW_OP_const2s); + STRINGISE_ENUM_CLASS(DW_OP_const4u); + STRINGISE_ENUM_CLASS(DW_OP_const4s); + STRINGISE_ENUM_CLASS(DW_OP_const8u); + STRINGISE_ENUM_CLASS(DW_OP_const8s); + STRINGISE_ENUM_CLASS(DW_OP_constu); + STRINGISE_ENUM_CLASS(DW_OP_consts); + STRINGISE_ENUM_CLASS(DW_OP_dup); + STRINGISE_ENUM_CLASS(DW_OP_drop); + STRINGISE_ENUM_CLASS(DW_OP_over); + STRINGISE_ENUM_CLASS(DW_OP_pick); + STRINGISE_ENUM_CLASS(DW_OP_swap); + STRINGISE_ENUM_CLASS(DW_OP_rot); + STRINGISE_ENUM_CLASS(DW_OP_xderef); + STRINGISE_ENUM_CLASS(DW_OP_abs); + STRINGISE_ENUM_CLASS(DW_OP_and); + STRINGISE_ENUM_CLASS(DW_OP_div); + STRINGISE_ENUM_CLASS(DW_OP_minus); + STRINGISE_ENUM_CLASS(DW_OP_mod); + STRINGISE_ENUM_CLASS(DW_OP_mul); + STRINGISE_ENUM_CLASS(DW_OP_neg); + STRINGISE_ENUM_CLASS(DW_OP_not); + STRINGISE_ENUM_CLASS(DW_OP_or); + STRINGISE_ENUM_CLASS(DW_OP_plus); + STRINGISE_ENUM_CLASS(DW_OP_plus_uconst); + STRINGISE_ENUM_CLASS(DW_OP_shl); + STRINGISE_ENUM_CLASS(DW_OP_shr); + STRINGISE_ENUM_CLASS(DW_OP_shra); + STRINGISE_ENUM_CLASS(DW_OP_xor); + STRINGISE_ENUM_CLASS(DW_OP_skip); + STRINGISE_ENUM_CLASS(DW_OP_bra); + STRINGISE_ENUM_CLASS(DW_OP_eq); + STRINGISE_ENUM_CLASS(DW_OP_ge); + STRINGISE_ENUM_CLASS(DW_OP_gt); + STRINGISE_ENUM_CLASS(DW_OP_le); + STRINGISE_ENUM_CLASS(DW_OP_lt); + STRINGISE_ENUM_CLASS(DW_OP_ne); + STRINGISE_ENUM_CLASS(DW_OP_lit0); + STRINGISE_ENUM_CLASS(DW_OP_lit1); + STRINGISE_ENUM_CLASS(DW_OP_lit2); + STRINGISE_ENUM_CLASS(DW_OP_lit3); + STRINGISE_ENUM_CLASS(DW_OP_lit4); + STRINGISE_ENUM_CLASS(DW_OP_lit5); + STRINGISE_ENUM_CLASS(DW_OP_lit6); + STRINGISE_ENUM_CLASS(DW_OP_lit7); + STRINGISE_ENUM_CLASS(DW_OP_lit8); + STRINGISE_ENUM_CLASS(DW_OP_lit9); + STRINGISE_ENUM_CLASS(DW_OP_lit10); + STRINGISE_ENUM_CLASS(DW_OP_lit11); + STRINGISE_ENUM_CLASS(DW_OP_lit12); + STRINGISE_ENUM_CLASS(DW_OP_lit13); + STRINGISE_ENUM_CLASS(DW_OP_lit14); + STRINGISE_ENUM_CLASS(DW_OP_lit15); + STRINGISE_ENUM_CLASS(DW_OP_lit16); + STRINGISE_ENUM_CLASS(DW_OP_lit17); + STRINGISE_ENUM_CLASS(DW_OP_lit18); + STRINGISE_ENUM_CLASS(DW_OP_lit19); + STRINGISE_ENUM_CLASS(DW_OP_lit20); + STRINGISE_ENUM_CLASS(DW_OP_lit21); + STRINGISE_ENUM_CLASS(DW_OP_lit22); + STRINGISE_ENUM_CLASS(DW_OP_lit23); + STRINGISE_ENUM_CLASS(DW_OP_lit24); + STRINGISE_ENUM_CLASS(DW_OP_lit25); + STRINGISE_ENUM_CLASS(DW_OP_lit26); + STRINGISE_ENUM_CLASS(DW_OP_lit27); + STRINGISE_ENUM_CLASS(DW_OP_lit28); + STRINGISE_ENUM_CLASS(DW_OP_lit29); + STRINGISE_ENUM_CLASS(DW_OP_lit30); + STRINGISE_ENUM_CLASS(DW_OP_lit31); + STRINGISE_ENUM_CLASS(DW_OP_reg0); + STRINGISE_ENUM_CLASS(DW_OP_reg1); + STRINGISE_ENUM_CLASS(DW_OP_reg2); + STRINGISE_ENUM_CLASS(DW_OP_reg3); + STRINGISE_ENUM_CLASS(DW_OP_reg4); + STRINGISE_ENUM_CLASS(DW_OP_reg5); + STRINGISE_ENUM_CLASS(DW_OP_reg6); + STRINGISE_ENUM_CLASS(DW_OP_reg7); + STRINGISE_ENUM_CLASS(DW_OP_reg8); + STRINGISE_ENUM_CLASS(DW_OP_reg9); + STRINGISE_ENUM_CLASS(DW_OP_reg10); + STRINGISE_ENUM_CLASS(DW_OP_reg11); + STRINGISE_ENUM_CLASS(DW_OP_reg12); + STRINGISE_ENUM_CLASS(DW_OP_reg13); + STRINGISE_ENUM_CLASS(DW_OP_reg14); + STRINGISE_ENUM_CLASS(DW_OP_reg15); + STRINGISE_ENUM_CLASS(DW_OP_reg16); + STRINGISE_ENUM_CLASS(DW_OP_reg17); + STRINGISE_ENUM_CLASS(DW_OP_reg18); + STRINGISE_ENUM_CLASS(DW_OP_reg19); + STRINGISE_ENUM_CLASS(DW_OP_reg20); + STRINGISE_ENUM_CLASS(DW_OP_reg21); + STRINGISE_ENUM_CLASS(DW_OP_reg22); + STRINGISE_ENUM_CLASS(DW_OP_reg23); + STRINGISE_ENUM_CLASS(DW_OP_reg24); + STRINGISE_ENUM_CLASS(DW_OP_reg25); + STRINGISE_ENUM_CLASS(DW_OP_reg26); + STRINGISE_ENUM_CLASS(DW_OP_reg27); + STRINGISE_ENUM_CLASS(DW_OP_reg28); + STRINGISE_ENUM_CLASS(DW_OP_reg29); + STRINGISE_ENUM_CLASS(DW_OP_reg30); + STRINGISE_ENUM_CLASS(DW_OP_reg31); + STRINGISE_ENUM_CLASS(DW_OP_breg0); + STRINGISE_ENUM_CLASS(DW_OP_breg1); + STRINGISE_ENUM_CLASS(DW_OP_breg2); + STRINGISE_ENUM_CLASS(DW_OP_breg3); + STRINGISE_ENUM_CLASS(DW_OP_breg4); + STRINGISE_ENUM_CLASS(DW_OP_breg5); + STRINGISE_ENUM_CLASS(DW_OP_breg6); + STRINGISE_ENUM_CLASS(DW_OP_breg7); + STRINGISE_ENUM_CLASS(DW_OP_breg8); + STRINGISE_ENUM_CLASS(DW_OP_breg9); + STRINGISE_ENUM_CLASS(DW_OP_breg10); + STRINGISE_ENUM_CLASS(DW_OP_breg11); + STRINGISE_ENUM_CLASS(DW_OP_breg12); + STRINGISE_ENUM_CLASS(DW_OP_breg13); + STRINGISE_ENUM_CLASS(DW_OP_breg14); + STRINGISE_ENUM_CLASS(DW_OP_breg15); + STRINGISE_ENUM_CLASS(DW_OP_breg16); + STRINGISE_ENUM_CLASS(DW_OP_breg17); + STRINGISE_ENUM_CLASS(DW_OP_breg18); + STRINGISE_ENUM_CLASS(DW_OP_breg19); + STRINGISE_ENUM_CLASS(DW_OP_breg20); + STRINGISE_ENUM_CLASS(DW_OP_breg21); + STRINGISE_ENUM_CLASS(DW_OP_breg22); + STRINGISE_ENUM_CLASS(DW_OP_breg23); + STRINGISE_ENUM_CLASS(DW_OP_breg24); + STRINGISE_ENUM_CLASS(DW_OP_breg25); + STRINGISE_ENUM_CLASS(DW_OP_breg26); + STRINGISE_ENUM_CLASS(DW_OP_breg27); + STRINGISE_ENUM_CLASS(DW_OP_breg28); + STRINGISE_ENUM_CLASS(DW_OP_breg29); + STRINGISE_ENUM_CLASS(DW_OP_breg30); + STRINGISE_ENUM_CLASS(DW_OP_breg31); + STRINGISE_ENUM_CLASS(DW_OP_regx); + STRINGISE_ENUM_CLASS(DW_OP_fbreg); + STRINGISE_ENUM_CLASS(DW_OP_bregx); + STRINGISE_ENUM_CLASS(DW_OP_piece); + STRINGISE_ENUM_CLASS(DW_OP_deref_size); + STRINGISE_ENUM_CLASS(DW_OP_xderef_size); + STRINGISE_ENUM_CLASS(DW_OP_nop); + STRINGISE_ENUM_CLASS(DW_OP_push_object_address); + STRINGISE_ENUM_CLASS(DW_OP_call2); + STRINGISE_ENUM_CLASS(DW_OP_call4); + STRINGISE_ENUM_CLASS(DW_OP_call_ref); + STRINGISE_ENUM_CLASS(DW_OP_form_tls_address); + STRINGISE_ENUM_CLASS(DW_OP_call_frame_cfa); + STRINGISE_ENUM_CLASS(DW_OP_bit_piece); + STRINGISE_ENUM_CLASS(DW_OP_implicit_value); + STRINGISE_ENUM_CLASS(DW_OP_stack_value); + STRINGISE_ENUM_CLASS(DW_OP_GNU_push_tls_address); + STRINGISE_ENUM_CLASS(DW_OP_GNU_addr_index); + STRINGISE_ENUM_CLASS(DW_OP_GNU_const_index); + } + END_ENUM_STRINGISE(); +};