odin-blend2d

Odin bindings to Blend2D
Log | Files | Refs | README | LICENSE

asmjit.natvis (18084B)


      1 <?xml version="1.0" encoding="utf-8"?>
      2 
      3 <!-- asmjit visualizer for Visual Studio (natvis) -->
      4 
      5 <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
      6   <Type Name="asmjit::String">
      7     <Intrinsic Name="isSmall" Expression="(_type &lt; 0x1F)"/>
      8     <DisplayString Condition="isSmall()">{_small.data, s8}</DisplayString>
      9     <DisplayString Condition="!isSmall()">{_large.data, s8}</DisplayString>
     10     <Expand HideRawView="true">
     11       <Synthetic Name="_type">
     12         <DisplayString Condition="(_type &lt; 0x1F)">Small</DisplayString>
     13         <DisplayString Condition="(_type == 0x1F)">Large</DisplayString>
     14         <DisplayString Condition="(_type &gt; 0x1F)">External</DisplayString>
     15       </Synthetic>
     16       <Item Name="_size" Condition="isSmall()" ExcludeView="simple">(int)_small.type, d</Item>
     17       <Item Name="_size" Condition="!isSmall()" ExcludeView="simple">_large.size, d</Item>
     18       <Item Name="_capacity" Condition="isSmall()" ExcludeView="simple">asmjit::String::kSSOCapacity, d</Item>
     19       <Item Name="_capacity" Condition="!isSmall()" ExcludeView="simple">_large.capacity, d</Item>
     20       <Item Name="_data" Condition="isSmall()" ExcludeView="simple">_small.data, s8</Item>
     21       <Item Name="_data" Condition="!isSmall()" ExcludeView="simple">_large.data, s8</Item>
     22     </Expand>
     23   </Type>
     24 
     25   <Type Name="asmjit::ArenaVector&lt;*&gt;">
     26     <DisplayString>{{ [size={_size, d} capacity={_capacity, d}] }}</DisplayString>
     27     <Expand>
     28       <Item Name="_size" ExcludeView="simple">_size, d</Item>
     29       <Item Name="_capacity" ExcludeView="simple">_capacity, d</Item>
     30       <ArrayItems>
     31         <Size>_size</Size>
     32         <ValuePointer>(($T1*)_data)</ValuePointer>
     33       </ArrayItems>
     34     </Expand>
     35   </Type>
     36 
     37   <Type Name="asmjit::OperandSignature">
     38     <Intrinsic Name="op_type" Expression="(asmjit::OperandType)(_bits &amp; 0x7)" />
     39     <Intrinsic Name="opSize" Expression="(_bits &gt;&gt; 24) &amp; 0xFF" />
     40     <Intrinsic Name="reg_type" Expression="(asmjit::RegType)((_bits &gt;&gt; 3) &amp; 0x1F)" />
     41     <Intrinsic Name="reg_group" Expression="(asmjit::RegGroup)((_bits &gt;&gt; 8) &amp; 0xF)" />
     42     <Intrinsic Name="memBaseType" Expression="(asmjit::RegType)((_bits &gt;&gt; 3) &amp; 0x1F)" />
     43     <Intrinsic Name="memIndexType" Expression="(asmjit::RegType)((_bits &gt;&gt; 8) &amp; 0x1F)" />
     44     <Intrinsic Name="memRegHome" Expression="(bool)((_bits &gt;&gt; 13) &amp; 0x1)" />
     45     <Intrinsic Name="memX86Segment" Expression="(asmjit::x86::SReg::Id)((_bits &gt;&gt; 18) &amp; 0x7)" />
     46     <Intrinsic Name="memX86AddrType" Expression="(asmjit::x86::Mem::AddrType)((_bits &gt;&gt; 14) &amp; 0x3)" />
     47     <Intrinsic Name="memX86ShiftValue" Expression="((_bits &gt;&gt; 16) &amp; 0x3)" />
     48     <Intrinsic Name="memX86Broadcast" Expression="(asmjit::x86::Mem::Broadcast)((_bits &gt;&gt; 21) &amp; 0x7)" />
     49     <Intrinsic Name="immType" Expression="(asmjit::ImmType)((_bits &gt;&gt; 3) &amp; 0x1)" />
     50 
     51     <DisplayString Condition="op_type() == asmjit::OperandType::kNone">[None]</DisplayString>
     52     <DisplayString Condition="op_type() == asmjit::OperandType::kReg">[Reg] {{ type={reg_type()} group={reg_group()} size={opSize(), d} }}</DisplayString>
     53     <DisplayString Condition="op_type() == asmjit::OperandType::kMem">[Mem] {{ base={memBaseType()} index={memIndexType()} }}</DisplayString>
     54     <DisplayString Condition="op_type() == asmjit::OperandType::kImm">[Imm] {{ type={immType()} }}</DisplayString>
     55     <DisplayString Condition="op_type() == asmjit::OperandType::kLabel">[Label]</DisplayString>
     56     <DisplayString Condition="op_type() &gt; asmjit::OperandType::kMaxValue">[Unknown]</DisplayString>
     57 
     58     <Expand HideRawView="true">
     59       <Item Name="bits">_bits, X</Item>
     60       <Item Name="op.type">op_type()</Item>
     61       <Item Name="reg.type" Condition="op_type() == asmjit::OperandType::kReg">reg_type()</Item>
     62       <Item Name="reg.group" Condition="op_type() == asmjit::OperandType::kReg">reg_group()</Item>
     63       <Item Name="reg.size" Condition="op_type() == asmjit::OperandType::kReg">opSize(), d</Item>
     64       <Item Name="mem.base_type" Condition="op_type() == asmjit::OperandType::kMem">memBaseType()</Item>
     65       <Item Name="mem.index_type" Condition="op_type() == asmjit::OperandType::kMem">memIndexType()</Item>
     66       <Item Name="mem.regHome" Condition="op_type() == asmjit::OperandType::kMem">memRegHome()</Item>
     67       <Item Name="mem.size" Condition="op_type() == asmjit::OperandType::kMem">opSize(), d</Item>
     68       <Item Name="mem.x86.segment" Condition="op_type() == asmjit::OperandType::kMem">memX86Segment()</Item>
     69       <Item Name="mem.x86.addr_type" Condition="op_type() == asmjit::OperandType::kMem">memX86AddrType()</Item>
     70       <Item Name="mem.x86.shift" Condition="op_type() == asmjit::OperandType::kMem">memX86ShiftValue()</Item>
     71       <Item Name="mem.x86.broadcast" Condition="op_type() == asmjit::OperandType::kMem">memX86Broadcast()</Item>
     72       <Item Name="imm.type" Condition="op_type() == asmjit::OperandType::kImm">immType()</Item>
     73     </Expand>
     74   </Type>
     75 
     76   <Type Name="asmjit::Operand_">
     77     <Intrinsic Name="op_type" Expression="(asmjit::OperandType)(_signature._bits &amp; 0x7)" />
     78     <Intrinsic Name="opSize" Expression="(_signature._bits &gt;&gt; 24) &amp; 0xFF" />
     79     <Intrinsic Name="reg_type" Expression="(asmjit::RegType)((_signature._bits &gt;&gt; 3) &amp; 0x1F)" />
     80     <Intrinsic Name="reg_group" Expression="(asmjit::RegGroup)((_signature._bits &gt;&gt; 8) &amp; 0xF)" />
     81     <Intrinsic Name="memBaseType" Expression="(asmjit::RegType)((_signature._bits &gt;&gt; 3) &amp; 0x1F)" />
     82     <Intrinsic Name="memIndexType" Expression="(asmjit::RegType)((_signature._bits &gt;&gt; 8) &amp; 0x1F)" />
     83     <Intrinsic Name="memRegHome" Expression="(bool)((_signature._bits &gt;&gt; 13) &amp; 0x1)" />
     84     <Intrinsic Name="memX86Segment" Expression="(asmjit::x86::SReg::Id)((_signature._bits &gt;&gt; 18) &amp; 0x7)" />
     85     <Intrinsic Name="memX86AddrType" Expression="(asmjit::x86::Mem::AddrType)((_signature._bits &gt;&gt; 14) &amp; 0x3)" />
     86     <Intrinsic Name="memX86ShiftValue" Expression="((_signature._bits &gt;&gt; 16) &amp; 0x3)" />
     87     <Intrinsic Name="memX86Broadcast" Expression="(asmjit::x86::Mem::Broadcast)((_signature._bits &gt;&gt; 21) &amp; 0x7)" />
     88     <Intrinsic Name="memBaseId" Expression="_base_id" />
     89     <Intrinsic Name="memIndexId" Expression="_data[0]" />
     90     <Intrinsic Name="memOffset32b" Expression="(__int64)int(_data[1])" />
     91     <Intrinsic Name="memOffset64b" Expression="(__int64) ((unsigned __int64)_base_id &lt;&lt; 32) | ((unsigned __int64)_data[1])" />
     92     <Intrinsic Name="memOffset" Expression="memBaseType() != asmjit::RegType::kNone ? memOffset32b() : memOffset64b()" />
     93     <Intrinsic Name="immType" Expression="(asmjit::ImmType)((_signature._bits &gt;&gt; 3) &amp; 0x1)" />
     94     <Intrinsic Name="immValue" Expression="((__int64)_data[1] &lt;&lt; 32) | (__int64)_data[0]" />
     95 
     96     <DisplayString Condition="op_type() == asmjit::OperandType::kNone">[None]</DisplayString>
     97     <DisplayString Condition="op_type() == asmjit::OperandType::kReg">[Reg] {{ id={_base_id, d} group={reg_group(), d} type={reg_type(), d} size={opSize(), d} }}</DisplayString>
     98     <DisplayString Condition="op_type() == asmjit::OperandType::kMem">[Mem] {{ base_id={memBaseId(), d} index_id={memIndexId(), d} offset={(__int64)memOffset(), d} }}</DisplayString>
     99     <DisplayString Condition="op_type() == asmjit::OperandType::kImm">[Imm] {{ val={immValue(), d} hex={immValue(), X} }}</DisplayString>
    100     <DisplayString Condition="op_type() == asmjit::OperandType::kLabel">[Label] {{ id={_base_id} }}</DisplayString>
    101     <DisplayString Condition="op_type() &gt; 4">[Unknown]</DisplayString>
    102     <Expand HideRawView="true">
    103       <Item Name="_signature">_signature._bits, X</Item>
    104       <Item Name="op.type">op_type()</Item>
    105       <Item Name="op.size">opSize(), d</Item>
    106       <Item Name="reg.type" Condition="op_type() == asmjit::OperandType::kReg">reg_type()</Item>
    107       <Item Name="reg.group" Condition="op_type() == asmjit::OperandType::kReg">reg_group()</Item>
    108       <Item Name="reg.id" Condition="op_type() == asmjit::OperandType::kReg">_base_id, d</Item>
    109       <Item Name="mem.base_type" Condition="op_type() == asmjit::OperandType::kMem">memBaseType()</Item>
    110       <Item Name="mem.base_id" Condition="op_type() == asmjit::OperandType::kMem &amp;&amp; memBaseType() != asmjit::RegType::kNone">memBaseId()</Item>
    111       <Item Name="mem.index_type" Condition="op_type() == asmjit::OperandType::kMem">memIndexType()</Item>
    112       <Item Name="mem.index_id" Condition="op_type() == asmjit::OperandType::kMem &amp;&amp; memIndexType() != asmjit::RegType::kNone">memIndexId()</Item>
    113       <Item Name="mem.regHome" Condition="op_type() == asmjit::OperandType::kMem">memRegHome()</Item>
    114       <Item Name="mem.offset" Condition="op_type() == asmjit::OperandType::kMem">memOffset(), d</Item>
    115       <Item Name="mem.x86.segment" Condition="op_type() == asmjit::OperandType::kMem">memX86Segment()</Item>
    116       <Item Name="mem.x86.addr_type" Condition="op_type() == asmjit::OperandType::kMem">memX86AddrType()</Item>
    117       <Item Name="mem.x86.shift" Condition="op_type() == asmjit::OperandType::kMem">memX86ShiftValue()</Item>
    118       <Item Name="mem.x86.broadcast" Condition="op_type() == asmjit::OperandType::kMem">memX86Broadcast()</Item>
    119       <Item Name="imm.type" Condition="op_type() == asmjit::OperandType::kImm">immType()</Item>
    120       <Item Name="imm.value" Condition="op_type() == asmjit::OperandType::kImm">immValue(), X</Item>
    121       <Item Name="label.id" Condition="op_type() == asmjit::OperandType::kLabel">_base_id, d</Item>
    122       <Item Name="raw.base_id">_base_id</Item>
    123       <Item Name="raw.data[0]">_data[0]</Item>
    124       <Item Name="raw.data[1]">_data[1]</Item>
    125     </Expand>
    126   </Type>
    127 
    128   <Type Name="asmjit::FuncValue">
    129     <Intrinsic Name="is_reg" Expression="(_data &amp; asmjit::FuncValue::kFlagIsReg) != 0" />
    130     <Intrinsic Name="isStack" Expression="(_data &amp; asmjit::FuncValue::kFlagIsStack) != 0" />
    131     <Intrinsic Name="isIndirect" Expression="(_data &amp; asmjit::FuncValue::kFlagIsIndirect) != 0" />
    132     <Intrinsic Name="is_done" Expression="(_data &amp; asmjit::FuncValue::kFlagIsDone) != 0" />
    133 
    134     <Intrinsic Name="type_id" Expression="((_data &amp; asmjit::FuncValue::kTypeIdMask) &gt;&gt; asmjit::FuncValue::kTypeIdShift)" />
    135     <Intrinsic Name="reg_id" Expression="((_data &amp; asmjit::FuncValue::kRegIdMask) &gt;&gt; asmjit::FuncValue::kRegIdShift)" />
    136     <Intrinsic Name="reg_type" Expression="((_data &amp; asmjit::FuncValue::kRegTypeMask) &gt;&gt; asmjit::FuncValue::kRegTypeShift)" />
    137     <Intrinsic Name="stack_offset" Expression="((_data &amp; asmjit::FuncValue::kStackOffsetMask) &gt;&gt; asmjit::FuncValue::kStackOffsetShift)" />
    138 
    139     <DisplayString Condition="is_reg()">[RegValue {{ reg_type={reg_type()} indirect={isIndirect()} done={is_done()} }}]</DisplayString>
    140     <DisplayString Condition="isStack()">[StackValue {{ indirect={isIndirect()} done={is_done()} }}]</DisplayString>
    141     <DisplayString Condition="!is_reg() &amp;&amp; !isStack()">[Unknown]</DisplayString>
    142 
    143     <Expand HideRawView="true">
    144       <Item Name="data">_data</Item>
    145       <Item Name="type_id">(asmjit::TypeId)(type_id())</Item>
    146       <Item Name="reg_type" Condition="is_reg()">(asmjit::RegType)reg_type()</Item>
    147       <Item Name="reg_id" Condition="is_reg()">reg_id()</Item>
    148       <Item Name="stack_offset" Condition="isStack()">stack_offset()</Item>
    149     </Expand>
    150   </Type>
    151 
    152   <Type Name="asmjit::BaseNode">
    153     <Intrinsic Name="nodeType" Expression="_node_type" />
    154 
    155     <Intrinsic Name="is_inst" Expression="nodeType() == asmjit::NodeType::kInst"></Intrinsic>
    156     <Intrinsic Name="is_section" Expression="nodeType() == asmjit::NodeType::kSection"></Intrinsic>
    157     <Intrinsic Name="is_label" Expression="nodeType() == asmjit::NodeType::kLabel"></Intrinsic>
    158     <Intrinsic Name="is_align" Expression="nodeType() == asmjit::NodeType::kAlign"></Intrinsic>
    159     <Intrinsic Name="is_embed_data" Expression="nodeType() == asmjit::NodeType::kEmbedData"></Intrinsic>
    160     <Intrinsic Name="is_embed_label" Expression="nodeType() == asmjit::NodeType::kEmbedLabel"></Intrinsic>
    161     <Intrinsic Name="is_embed_label_delta" Expression="nodeType() == asmjit::NodeType::kEmbedLabelDelta"></Intrinsic>
    162     <Intrinsic Name="is_const_pool" Expression="nodeType() == asmjit::NodeType::kConstPool"></Intrinsic>
    163     <Intrinsic Name="is_comment" Expression="nodeType() == asmjit::NodeType::kComment"></Intrinsic>
    164     <Intrinsic Name="is_sentinel" Expression="nodeType() == asmjit::NodeType::kSentinel"></Intrinsic>
    165     <Intrinsic Name="isJump" Expression="nodeType() == asmjit::NodeType::kJump"></Intrinsic>
    166     <Intrinsic Name="is_func" Expression="nodeType() == asmjit::NodeType::kFunc"></Intrinsic>
    167     <Intrinsic Name="is_func_ret" Expression="nodeType() == asmjit::NodeType::kFuncRet"></Intrinsic>
    168     <Intrinsic Name="is_invoke" Expression="nodeType() == asmjit::NodeType::kInvoke"></Intrinsic>
    169 
    170     <Intrinsic Name="actsAsInst" Expression="is_inst() || isJump() || is_func() || is_func_ret() || is_invoke()" />
    171     <Intrinsic Name="actsAsLabel" Expression="is_label() || is_func()" />
    172 
    173     <DisplayString Condition="is_inst()">[InstNode]</DisplayString>
    174     <DisplayString Condition="is_section()">[SectionNode]</DisplayString>
    175     <DisplayString Condition="is_label()">[LabelNode]</DisplayString>
    176     <DisplayString Condition="is_align()">[AlignNode]</DisplayString>
    177     <DisplayString Condition="is_embed_data()">[EmbedDataNode]</DisplayString>
    178     <DisplayString Condition="is_embed_label()">[EmbedLabelNode]</DisplayString>
    179     <DisplayString Condition="is_embed_label_delta()">[EmbedLabelDeltaNode]</DisplayString>
    180     <DisplayString Condition="is_const_pool()">[ConstPoolNode]</DisplayString>
    181     <DisplayString Condition="is_comment()">[CommentNode]</DisplayString>
    182     <DisplayString Condition="is_sentinel()">[SentinelNode]</DisplayString>
    183     <DisplayString Condition="isJump()">[JumpNode]</DisplayString>
    184     <DisplayString Condition="is_func()">[FuncNode]</DisplayString>
    185     <DisplayString Condition="is_func_ret()">[FuncRetNode]</DisplayString>
    186     <DisplayString Condition="is_invoke()">[InvokeNode]</DisplayString>
    187     <DisplayString Condition="nodeType() == asmjit::NodeType::kNone || nodeType() &gt; 18">[UnknownNode {nodeType(), d}]</DisplayString>
    188 
    189     <Expand HideRawView="true">
    190       <Item Name="prev">_prev</Item>
    191       <Item Name="next">_next</Item>
    192 
    193       <Item Name="nodeType">_node_type</Item>
    194       <Item Name="nodeFlags">_node_flags</Item>
    195 
    196       <Item Name="position">_position</Item>
    197       <Item Name="user_data.u64">_userDataU64</Item>
    198       <Item Name="user_data.ptr">_userDataPtr</Item>
    199       <Item Name="pass_data">_passData</Item>
    200       <Item Name="inline_comment">_inline_comment, s8</Item>
    201 
    202       <Item Name="baseInst" Condition="actsAsInst()">((asmjit::InstNode*)this)-&gt;_baseInst</Item>
    203       <Item Name="op_count" Condition="actsAsInst()">_inst._op_count</Item>
    204       <Item Name="op_capacity" Condition="actsAsInst()">_inst._op_capacity</Item>
    205       <Item Name="op_array" Condition="actsAsInst()">((asmjit::InstNode*)this)-&gt;_opArray, [_inst._op_count]</Item>
    206 
    207       <Item Name="section_id" Condition="is_section()">((asmjit::SectionNode*)this)-&gt;_section_id</Item>
    208       <Item Name="nextSection" Condition="is_section()">((asmjit::SectionNode*)this)-&gt;_nextSection</Item>
    209 
    210       <Item Name="label_id" Condition="is_label()">((asmjit::LabelNode*)this)-&gt;_label_id</Item>
    211 
    212       <Item Name="align_mode" Condition="is_align()">((asmjit::AlignNode*)this)-&gt;_align_data._align_mode</Item>
    213       <Item Name="alignment" Condition="is_align()">((asmjit::AlignNode*)this)-&gt;_alignment</Item>
    214 
    215       <Item Name="type_id" Condition="is_embed_data()">_embed._type_id, d</Item>
    216       <Item Name="type_size" Condition="is_embed_data()">_embed._type_size, d</Item>
    217       <Item Name="item_count" Condition="is_embed_data()">((asmjit::EmbedDataNode*)this)-&gt;_item_count</Item>
    218       <Item Name="repeat_count" Condition="is_embed_data()">((asmjit::EmbedDataNode*)this)-&gt;_repeat_count</Item>
    219       <Item Name="inlineData" Condition="is_embed_data()">((asmjit::EmbedDataNode*)this)-&gt;_inlineData</Item>
    220       <Item Name="externalData" Condition="is_embed_data()">((asmjit::EmbedDataNode*)this)-&gt;_externalData</Item>
    221 
    222       <Item Name="label_id" Condition="is_embed_label()">((asmjit::EmbedLabelNode*)this)-&gt;_label_id</Item>
    223 
    224       <Item Name="label_id" Condition="is_embed_label_delta()">((asmjit::EmbedLabelDeltaNode*)this)-&gt;_label_id</Item>
    225       <Item Name="base_label_id" Condition="is_embed_label_delta()">((asmjit::EmbedLabelDeltaNode*)this)-&gt;_base_label_id</Item>
    226       <Item Name="data_size" Condition="is_embed_label_delta()">((asmjit::EmbedLabelDeltaNode*)this)-&gt;_data_size</Item>
    227 
    228       <Item Name="const_pool" Condition="is_const_pool()">((asmjit::ConstPoolNode*)this)-&gt;_const_pool</Item>
    229 
    230       <Item Name="sentinel.sentinel_type" Condition="is_sentinel()">_sentinel._sentinel_type</Item>
    231 
    232       <Item Name="annotation" Condition="isJump()">((asmjit::JumpNode*)this)-&gt;_annotation</Item>
    233 
    234       <Item Name="func_detail" Condition="is_func()">((asmjit::FuncNode*)this)-&gt;_func_detail</Item>
    235       <Item Name="frame" Condition="is_func()">((asmjit::FuncNode*)this)-&gt;_frame</Item>
    236       <Item Name="exit_node" Condition="is_func()">((asmjit::FuncNode*)this)-&gt;_exit_node</Item>
    237       <Item Name="end" Condition="is_func()">((asmjit::FuncNode*)this)-&gt;_end</Item>
    238       <Item Name="args" Condition="is_func()">((asmjit::FuncNode*)this)-&gt;_args, [((asmjit::FuncNode*)this)-&gt;_func_detail._arg_count]</Item>
    239 
    240       <Item Name="func_detail" Condition="is_invoke()">((asmjit::InvokeNode*)this)-&gt;_func_detail</Item>
    241       <Item Name="rets" Condition="is_invoke()">((asmjit::InvokeNode*)this)-&gt;_rets</Item>
    242       <Item Name="args" Condition="is_invoke()">((asmjit::InvokeNode*)this)-&gt;_args, [((asmjit::InvokeNode*)this)-&gt;_func_detail._arg_count]</Item>
    243     </Expand>
    244   </Type>
    245 </AutoVisualizer>