asmjit.natvis 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- asmjit visualizer for Visual Studio (natvis) -->
  3. <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  4. <Type Name="asmjit::String">
  5. <Intrinsic Name="isSmall" Expression="(_type &lt; 0x1F)"/>
  6. <DisplayString Condition="isSmall()">{_small.data, s8}</DisplayString>
  7. <DisplayString Condition="!isSmall()">{_large.data, s8}</DisplayString>
  8. <Expand HideRawView="true">
  9. <Synthetic Name="_type">
  10. <DisplayString Condition="(_type &lt; 0x1F)">Small</DisplayString>
  11. <DisplayString Condition="(_type == 0x1F)">Large</DisplayString>
  12. <DisplayString Condition="(_type &gt; 0x1F)">External</DisplayString>
  13. </Synthetic>
  14. <Item Name="_size" Condition="isSmall()" ExcludeView="simple">(int)_small.type, d</Item>
  15. <Item Name="_size" Condition="!isSmall()" ExcludeView="simple">_large.size, d</Item>
  16. <Item Name="_capacity" Condition="isSmall()" ExcludeView="simple">asmjit::String::kSSOCapacity, d</Item>
  17. <Item Name="_capacity" Condition="!isSmall()" ExcludeView="simple">_large.capacity, d</Item>
  18. <Item Name="_data" Condition="isSmall()" ExcludeView="simple">_small.data, s8</Item>
  19. <Item Name="_data" Condition="!isSmall()" ExcludeView="simple">_large.data, s8</Item>
  20. </Expand>
  21. </Type>
  22. <Type Name="asmjit::ZoneVector&lt;*&gt;">
  23. <DisplayString>{{ [size={_size, d} capacity={_capacity, d}] }}</DisplayString>
  24. <Expand>
  25. <Item Name="_size" ExcludeView="simple">_size, d</Item>
  26. <Item Name="_capacity" ExcludeView="simple">_capacity, d</Item>
  27. <ArrayItems>
  28. <Size>_size</Size>
  29. <ValuePointer>(($T1*)_data)</ValuePointer>
  30. </ArrayItems>
  31. </Expand>
  32. </Type>
  33. <Type Name="asmjit::Operand_">
  34. <Intrinsic Name="opType" Expression="(unsigned int)(_any.signature &amp; 0x7)"/>
  35. <DisplayString Condition="opType() == 0">[None]</DisplayString>
  36. <DisplayString Condition="opType() == 1">[Reg] {{ id={_reg.id, d} group={(_reg.signature &gt;&gt; 8) &amp; 0xF, d} type={(_reg.signature &gt;&gt; 4) &amp; 0x1F, d} size={(_reg.signature &gt;&gt; 24) &amp; 0xFF, d} }}</DisplayString>
  37. <DisplayString Condition="opType() == 2">[Mem] {{ }}</DisplayString>
  38. <DisplayString Condition="opType() == 3">[Imm] {{ val={_imm.value.i64, d} hex={_imm.value.u64, X} f64={_imm.value.f64} }}</DisplayString>
  39. <DisplayString Condition="opType() == 4">[Label] {{ id={_label.id} }}</DisplayString>
  40. <DisplayString Condition="opType() &gt; 4">[Unknown]</DisplayString>
  41. <Expand HideRawView="true">
  42. <ExpandedItem Condition="opType() == 0">_any</ExpandedItem>
  43. <ExpandedItem Condition="opType() == 1">_reg</ExpandedItem>
  44. <ExpandedItem Condition="opType() == 2">_mem</ExpandedItem>
  45. <ExpandedItem Condition="opType() == 3">_imm</ExpandedItem>
  46. <ExpandedItem Condition="opType() == 4">_label</ExpandedItem>
  47. <ExpandedItem Condition="opType() &gt; 4">_any</ExpandedItem>
  48. </Expand>
  49. </Type>
  50. </AutoVisualizer>