<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>My Project: fspec.hh Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">My Project
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">fspec.hh</div>  </div>
</div><!--header-->
<div class="contents">
<a href="fspec_8hh.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/* ###</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * IP: GHIDRA</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * You may obtain a copy of the License at</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * </span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *      http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * </span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * limitations under the License.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#ifndef __CPUI_FSPEC__</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#define __CPUI_FSPEC__</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="op_8hh.html">op.hh</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="rangemap_8hh.html">rangemap.hh</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">class </span><a class="code" href="classJoinRecord.html">JoinRecord</a>;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structParamUnassignedError.html">   28</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structParamUnassignedError.html">ParamUnassignedError</a> : <span class="keyword">public</span> <a class="code" href="structLowlevelError.html">LowlevelError</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structParamUnassignedError.html#a07aae61447f2c586e1a66667ea150615">   29</a></span>&#160;  <a class="code" href="structParamUnassignedError.html#a07aae61447f2c586e1a66667ea150615">ParamUnassignedError</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;s) : <a class="code" href="structLowlevelError.html">LowlevelError</a>(s) {}   </div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classParamEntry.html">   48</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamEntry.html">ParamEntry</a> {</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;  <span class="keyword">enum</span> {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3a6445d0ea4550d0f61d3fd399ce0b132c">   51</a></span>&#160;    force_left_justify = 1, </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3a45b2f9c4e8d3b35690dc840d2166fe51">   52</a></span>&#160;    reverse_stack = 2,      </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3a073a14d23a40a6d2755460a4bce6e2e9">   53</a></span>&#160;    smallsize_zext = 4,     </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3a21054b237603831d14b82b9d16b5baeb">   54</a></span>&#160;    smallsize_sext = 8,     </div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">//    is_big_endian = 16,       ///&lt; Set if this value should be treated as big endian</span></div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3adf66695cb7eff34dbf4d2ef63d09174d">   56</a></span>&#160;    smallsize_inttype = 32, </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3a5fcca54ba25ce326bb9c9a58264bed88">   57</a></span>&#160;    smallsize_floatext = 64,    </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3a99f501dbe12bd1271a10979776d61a47">   58</a></span>&#160;    extracheck_high = 128,  </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac2717c4cafbf14b70f326ae8bac627c3a1faec835456469d104135ab2d0aa915e">   59</a></span>&#160;    extracheck_low = 256    </div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  };</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  uint4 flags;          </div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <a class="code" href="type_8hh.html#aef6429f2523cdf4d415ba04a0209e61f">type_metatype</a> type;       </div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  int4 group;           </div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  int4 groupsize;       </div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;  <a class="code" href="classAddrSpace.html">AddrSpace</a> *spaceid;       </div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  uintb addressbase;        </div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  int4 size;            </div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  int4 minsize;         </div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  int4 alignment;       </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  int4 numslots;        </div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <a class="code" href="classJoinRecord.html">JoinRecord</a> *joinrec;      </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  <span class="keywordtype">void</span> resolveJoin(<span class="keywordtype">void</span>);   </div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  <span class="keywordtype">bool</span> isLeftJustified(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (((flags&amp;force_left_justify)!=0)||(!spaceid-&gt;<a class="code" href="classAddrSpace.html#af5683c0d7e42edec80b97bcb9fb3dc11">isBigEndian</a>())); }</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classParamEntry.html#a786d0b461f789499e59b84f91c4e4185">   78</a></span>&#160;  <a class="code" href="classParamEntry.html#a786d0b461f789499e59b84f91c4e4185">ParamEntry</a>(int4 grp) { group=grp; }           </div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  <a class="code" href="classParamEntry.html">ParamEntry</a>(<a class="code" href="type_8hh.html#aef6429f2523cdf4d415ba04a0209e61f">type_metatype</a> t,int4 grp,int4 grpsize,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 sz,int4 mnsz,int4 align,<span class="keywordtype">bool</span> normalstack);</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classParamEntry.html#a8bc3366591bc6e9a39cfa851052dc684">   80</a></span>&#160;  int4 <a class="code" href="classParamEntry.html#a8bc3366591bc6e9a39cfa851052dc684">getGroup</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> group; }       </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classParamEntry.html#aa260212ed69b0efb8fc52aba0930ab11">   81</a></span>&#160;  int4 <a class="code" href="classParamEntry.html#aa260212ed69b0efb8fc52aba0930ab11">getGroupSize</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> groupsize; }   </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classParamEntry.html#a14b9358afc509b2d9df494ea6ecfbe31">   82</a></span>&#160;  int4 <a class="code" href="classParamEntry.html#a14b9358afc509b2d9df494ea6ecfbe31">getSize</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> size; }     </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classParamEntry.html#a6cf83bdd06247d2ca0f6b5c663f94ecb">   83</a></span>&#160;  int4 <a class="code" href="classParamEntry.html#a6cf83bdd06247d2ca0f6b5c663f94ecb">getMinSize</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> minsize; }   </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classParamEntry.html#a7366c85d2d63bc5a2495d8597b1f977a">   84</a></span>&#160;  int4 <a class="code" href="classParamEntry.html#a7366c85d2d63bc5a2495d8597b1f977a">getAlign</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> alignment; }   </div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classParamEntry.html#aeb33e71b09562418a0a2a88650d6403a">   85</a></span>&#160;  <a class="code" href="type_8hh.html#aef6429f2523cdf4d415ba04a0209e61f">type_metatype</a> <a class="code" href="classParamEntry.html#aeb33e71b09562418a0a2a88650d6403a">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type; }    </div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classParamEntry.html#a1c72a43ac9238f9fae35f38b88ef2010">   86</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamEntry.html#a1c72a43ac9238f9fae35f38b88ef2010">isExclusion</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (alignment==0); }   </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classParamEntry.html#a9bacf2dac015159e70a62bb611abe0f4">   87</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamEntry.html#a9bacf2dac015159e70a62bb611abe0f4">isReverseStack</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; reverse_stack)!=0); }  </div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  <span class="keywordtype">bool</span> contains(<span class="keyword">const</span> <a class="code" href="classParamEntry.html">ParamEntry</a> &amp;op2) <span class="keyword">const</span>;       </div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <span class="keywordtype">bool</span> containedBy(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz) <span class="keyword">const</span>;  </div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  int4 justifiedContain(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz) <span class="keyword">const</span>; </div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  <span class="keywordtype">bool</span> getContainer(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <a class="code" href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a> assumedExtension(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  int4 getSlot(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 skip) <span class="keyword">const</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classParamEntry.html#a498cd78bbe7fa439beeaf8243eed9177">   94</a></span>&#160;  <a class="code" href="classAddrSpace.html">AddrSpace</a> *<a class="code" href="classParamEntry.html#a498cd78bbe7fa439beeaf8243eed9177">getSpace</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> spaceid; }   </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classParamEntry.html#addf545facfb18d6e4f4a0ae3aea203a8">   95</a></span>&#160;  uintb <a class="code" href="classParamEntry.html#addf545facfb18d6e4f4a0ae3aea203a8">getBase</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> addressbase; } </div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;  <a class="code" href="classAddress.html">Address</a> getAddrBySlot(int4 &amp;slot,int4 sz) <span class="keyword">const</span>;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;  <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<span class="keyword">const</span> <a class="code" href="classAddrSpaceManager.html">AddrSpaceManager</a> *manage,<span class="keywordtype">bool</span> normalstack);</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <span class="keywordtype">void</span> extraChecks(list&lt;ParamEntry&gt; &amp;entry);</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classParamEntry.html#ac4acfd4bea55a34fedd04931b29b4f8c">   99</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamEntry.html#ac4acfd4bea55a34fedd04931b29b4f8c">isParamCheckHigh</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; extracheck_high)!=0); }  </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classParamEntry.html#a7dd16288914ec41f8936095d74d943f1">  100</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamEntry.html#a7dd16288914ec41f8936095d74d943f1">isParamCheckLow</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; extracheck_low)!=0); }    </div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;};</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classParamEntryRange.html">  104</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamEntryRange.html">ParamEntryRange</a> {</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  uintb first;      </div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  uintb last;       </div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  int4 position;    </div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  <a class="code" href="classParamEntry.html">ParamEntry</a> *entry;    </div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <span class="keyword">class </span>InitData {</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classParamEntryRange.html">ParamEntryRange</a>;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    int4 position;  </div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <a class="code" href="classParamEntry.html">ParamEntry</a> *entry;  </div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    InitData(int4 pos,<a class="code" href="classParamEntry.html">ParamEntry</a> *e) { position = pos; entry = e; } </div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  };</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  <span class="keyword">class </span>SubsortPosition {</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    int4 position;  </div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    SubsortPosition(<span class="keywordtype">void</span>) {}                    </div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    SubsortPosition(int4 pos) { position = pos; }       </div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    SubsortPosition(<span class="keywordtype">bool</span> val) { position = val ? 1000000 : 0; } </div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> SubsortPosition &amp;op2) { <span class="keywordflow">return</span> position &lt; op2.position; }  </div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;  };</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#a42e664be5369363b39ea5b6e58fb9e5b">  129</a></span>&#160;  <span class="keyword">typedef</span> uintb <a class="code" href="classParamEntryRange.html#a42e664be5369363b39ea5b6e58fb9e5b">linetype</a>;       </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#a06535ace41d575323a459b955ddcbe43">  130</a></span>&#160;  <span class="keyword">typedef</span> SubsortPosition <a class="code" href="classParamEntryRange.html#a06535ace41d575323a459b955ddcbe43">subsorttype</a>;  </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#ab0243349c682948ae3d3747f231b4dcc">  131</a></span>&#160;  <span class="keyword">typedef</span> InitData <a class="code" href="classParamEntryRange.html#ab0243349c682948ae3d3747f231b4dcc">inittype</a>;        </div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#a276b0dc91f54120564ce47db22da32c2">  133</a></span>&#160;  <a class="code" href="classParamEntryRange.html#a276b0dc91f54120564ce47db22da32c2">ParamEntryRange</a>(<span class="keywordtype">void</span>) {}      </div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#ad89c2d1390b85e38470b85895712223c">  134</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamEntryRange.html#ad89c2d1390b85e38470b85895712223c">initialize</a>(<span class="keyword">const</span> inittype &amp;data,uintb f,uintb l) {</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    first = f; last = l; position = data.position; entry = data.entry; }    </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#abea8f5ecb774384169913af003a112a8">  136</a></span>&#160;  uintb <a class="code" href="classParamEntryRange.html#abea8f5ecb774384169913af003a112a8">getFirst</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> first; }  </div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#a29e1a3497f5a009c45e9bde36fe097a9">  137</a></span>&#160;  uintb <a class="code" href="classParamEntryRange.html#a29e1a3497f5a009c45e9bde36fe097a9">getLast</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> last; }        </div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#a7512c2c20824a9889da95ea23ae385a5">  138</a></span>&#160;  subsorttype <a class="code" href="classParamEntryRange.html#a7512c2c20824a9889da95ea23ae385a5">getSubsort</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> SubsortPosition(position); }  </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classParamEntryRange.html#aaaa9f211db293e18b94976bd6e9c42b5">  139</a></span>&#160;  <a class="code" href="classParamEntry.html">ParamEntry</a> *<a class="code" href="classParamEntryRange.html#aaaa9f211db293e18b94976bd6e9c42b5">getParamEntry</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entry; }   </div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;};</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="fspec_8hh.html#a034dd951d43e43b9e7d26f7326000992">  141</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classrangemap.html">rangemap&lt;ParamEntryRange&gt;</a> <a class="code" href="fspec_8hh.html#a034dd951d43e43b9e7d26f7326000992">ParamEntryResolver</a>;   </div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classParamTrial.html">  157</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamTrial.html">ParamTrial</a> {</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="keyword">enum</span> {</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2a2c072d9a2e3bc49347559e8f24c31829">  160</a></span>&#160;    checked = 1,        </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2a279ad7257dfc9d26818a1ad80a54fbe9">  161</a></span>&#160;    used = 2,           </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2a3798c0aef21d0245d1e9fb23be020d20">  162</a></span>&#160;    defnouse = 4,       </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2aa197ba7c3d3418cb220e911b24022a07">  163</a></span>&#160;    active = 8,         </div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2adb2ef4c29bcffea45f89d69b30a31253">  164</a></span>&#160;    unref = 16,         </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2a7da8fea4839c73b4671fc73fd02e103b">  165</a></span>&#160;    killedbycall = 32,      </div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2aff924d3ea43eb53717814ce587b45a76">  166</a></span>&#160;    rem_formed = 64,        </div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2ad3954f5b872e0e9bb1fb5a8b3fb78ac0">  167</a></span>&#160;    indcreate_formed = 128, </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classParamTrial.html#a716f03faac64ddccab096ba19364ffa2a78f62aca0c665a96ccb34c92e196ca60">  168</a></span>&#160;    condexe_effect = 256    </div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  };</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  uint4 flags;          </div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <a class="code" href="classAddress.html">Address</a> addr;         </div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  int4 size;            </div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  int4 slot;            </div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <span class="keyword">const</span> <a class="code" href="classParamEntry.html">ParamEntry</a> *entry;  </div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  int4 offset;          </div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classParamTrial.html#ac5046f61b5daca7e64e282d2552ba5c8">  179</a></span>&#160;  <a class="code" href="classParamTrial.html#ac5046f61b5daca7e64e282d2552ba5c8">ParamTrial</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;ad,int4 sz,int4 sl) { addr = ad; size = sz; slot = sl; flags=0; entry=(<a class="code" href="classParamEntry.html">ParamEntry</a> *)0; offset=-1; }</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classParamTrial.html#aad40b54a44a9eae8890e6d6ebbb6d5bb">  180</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;<a class="code" href="classParamTrial.html#aad40b54a44a9eae8890e6d6ebbb6d5bb">getAddress</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> addr; }    </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classParamTrial.html#a92758568d74f243b6680258fa8cb440a">  181</a></span>&#160;  int4 <a class="code" href="classParamTrial.html#a92758568d74f243b6680258fa8cb440a">getSize</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> size; }         </div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classParamTrial.html#a54cb5c24617993dc4f2a6548059d2e10">  182</a></span>&#160;  int4 <a class="code" href="classParamTrial.html#a54cb5c24617993dc4f2a6548059d2e10">getSlot</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> slot; }         </div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classParamTrial.html#a64a57d4768366a15b920f0670ad2e83d">  183</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a64a57d4768366a15b920f0670ad2e83d">setSlot</a>(int4 val) { slot = val; }            </div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classParamTrial.html#aa4c4b22cd813b218292b6bc7db4e00e1">  184</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classParamEntry.html">ParamEntry</a> *<a class="code" href="classParamTrial.html#aa4c4b22cd813b218292b6bc7db4e00e1">getEntry</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entry; }  </div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classParamTrial.html#a7f3302664c5c80a9d9f6ca3ce4ae38d7">  185</a></span>&#160;  int4 <a class="code" href="classParamTrial.html#a7f3302664c5c80a9d9f6ca3ce4ae38d7">getOffset</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> offset; }         </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classParamTrial.html#aed34fdf0eec82c9a56fc7ff105bad618">  186</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#aed34fdf0eec82c9a56fc7ff105bad618">setEntry</a>(<span class="keyword">const</span> <a class="code" href="classParamEntry.html">ParamEntry</a> *ent,int4 off) { entry=ent; offset=off; }  </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classParamTrial.html#aa4ffa0c04adb864a3cfcff61f5b75051">  187</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#aa4ffa0c04adb864a3cfcff61f5b75051">markUsed</a>(<span class="keywordtype">void</span>) { flags |= used; }            </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classParamTrial.html#aa929e7464a8b48843ba7e03f7a741e0a">  188</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#aa929e7464a8b48843ba7e03f7a741e0a">markActive</a>(<span class="keywordtype">void</span>) { flags |= (active|checked); }      </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classParamTrial.html#a2739d29f090bc6f5751dd10aa6cc9a65">  189</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a2739d29f090bc6f5751dd10aa6cc9a65">markInactive</a>(<span class="keywordtype">void</span>) { flags &amp;= ~((uint4)active); flags |= checked; }  </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classParamTrial.html#a7006ab058b4af10027cc87ee1b81b476">  190</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a7006ab058b4af10027cc87ee1b81b476">markNoUse</a>(<span class="keywordtype">void</span>) { flags &amp;= ~((uint4)(active|used)); flags |= (checked|defnouse); }   </div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classParamTrial.html#a7ede623de85ba60fc1b3e463de10b0fc">  191</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a7ede623de85ba60fc1b3e463de10b0fc">markUnref</a>(<span class="keywordtype">void</span>) { flags |= (unref|checked); slot = -1; } </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classParamTrial.html#a8b08e858cac5d750f527a673be97e322">  192</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a8b08e858cac5d750f527a673be97e322">markKilledByCall</a>(<span class="keywordtype">void</span>) { flags |= killedbycall; }    </div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classParamTrial.html#a4ed0aada38fe913da929f7d29e47e61c">  193</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a4ed0aada38fe913da929f7d29e47e61c">isChecked</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; checked)!=0); } </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classParamTrial.html#a2b98b8c531ad081df9e4eb703ece9dc3">  194</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a2b98b8c531ad081df9e4eb703ece9dc3">isActive</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; active)!=0); }   </div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classParamTrial.html#a55ddad64a188a6513272a284098aea23">  195</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a55ddad64a188a6513272a284098aea23">isDefinitelyNotUsed</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; defnouse)!=0); }  </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classParamTrial.html#a77ad2e667e0525e2417845e389dcfa9f">  196</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a77ad2e667e0525e2417845e389dcfa9f">isUsed</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; used)!=0); }   </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classParamTrial.html#a13bb1c434cce645e25a0a26359d6c889">  197</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a13bb1c434cce645e25a0a26359d6c889">isUnref</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; unref)!=0); } </div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classParamTrial.html#af67e7b4a445f7069a2680c63afe0a28c">  198</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#af67e7b4a445f7069a2680c63afe0a28c">isKilledByCall</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; killedbycall)!=0); }   </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classParamTrial.html#a3fa95bb637e208d366f70cecaa6c331d">  199</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a3fa95bb637e208d366f70cecaa6c331d">setRemFormed</a>(<span class="keywordtype">void</span>) { flags |= rem_formed; }      </div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classParamTrial.html#a997491aac899992e8b17459b06af0149">  200</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a997491aac899992e8b17459b06af0149">isRemFormed</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; rem_formed)!=0); }    </div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classParamTrial.html#a6a4ace8cab74a380e92b62505c70046a">  201</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a6a4ace8cab74a380e92b62505c70046a">setIndCreateFormed</a>(<span class="keywordtype">void</span>) { flags |= indcreate_formed; }  </div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classParamTrial.html#a70fbfc1bdd9e76295700b6b45f86f7da">  202</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a70fbfc1bdd9e76295700b6b45f86f7da">isIndCreateFormed</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; indcreate_formed)!=0); }    </div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classParamTrial.html#a32ff81889bdb636331549123ac1ca2e6">  203</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#a32ff81889bdb636331549123ac1ca2e6">setCondExeEffect</a>(<span class="keywordtype">void</span>) { flags |= condexe_effect; }  </div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classParamTrial.html#a89e3ae18b8365695196d1202d3851e98">  204</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamTrial.html#a89e3ae18b8365695196d1202d3851e98">hasCondExeEffect</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; condexe_effect)!=0); }   </div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classParamTrial.html#a827f24578c88cbcd001d49ac820c12c2">  205</a></span>&#160;  int4 <a class="code" href="classParamTrial.html#a827f24578c88cbcd001d49ac820c12c2">slotGroup</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entry-&gt;<a class="code" href="classParamEntry.html#af5f3ce2b0cce7b2400a14ab3abc37cd9">getSlot</a>(addr,size-1); }    </div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classParamTrial.html#ad7ca7f738c822caea264fb6bf7b2738d">  206</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamTrial.html#ad7ca7f738c822caea264fb6bf7b2738d">setAddress</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;ad,int4 sz) { addr=ad; size=sz; }  </div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;  <a class="code" href="classParamTrial.html">ParamTrial</a> splitHi(int4 sz) <span class="keyword">const</span>;            </div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  <a class="code" href="classParamTrial.html">ParamTrial</a> splitLo(int4 sz) <span class="keyword">const</span>;            </div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  <span class="keywordtype">bool</span> testShrink(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;newaddr,int4 sz) <span class="keyword">const</span>;    </div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> <a class="code" href="classParamTrial.html">ParamTrial</a> &amp;b) <span class="keyword">const</span>;        </div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;};</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classParamActive.html">  223</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamActive.html">ParamActive</a> {</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;  vector&lt;ParamTrial&gt; trial; </div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;  int4 slotbase;        </div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;  int4 stackplaceholder;    </div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;  int4 numpasses;       </div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  int4 maxpass;         </div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;  <span class="keywordtype">bool</span> isfullychecked;      </div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;  <span class="keywordtype">bool</span> needsfinalcheck;     </div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;  <span class="keywordtype">bool</span> recoversubcall;      </div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;  <a class="code" href="classParamActive.html">ParamActive</a>(<span class="keywordtype">bool</span> recoversub); </div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  <span class="keywordtype">void</span> clear(<span class="keywordtype">void</span>);     </div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;  <span class="keywordtype">void</span> registerTrial(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz);      </div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classParamActive.html#aef5c24a78fbfe7a847eceec2c8854fbb">  236</a></span>&#160;  int4 <a class="code" href="classParamActive.html#aef5c24a78fbfe7a847eceec2c8854fbb">getNumTrials</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> trial.size(); }    </div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classParamActive.html#a88fb46565155de0123b634951a186f74">  237</a></span>&#160;  <a class="code" href="classParamTrial.html">ParamTrial</a> &amp;<a class="code" href="classParamActive.html#a88fb46565155de0123b634951a186f74">getTrial</a>(int4 i) { <span class="keywordflow">return</span> trial[i]; }     </div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;  <span class="keyword">const</span> <a class="code" href="classParamTrial.html">ParamTrial</a> &amp;getTrialForInputVarnode(int4 slot) <span class="keyword">const</span>;   </div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;  int4 whichTrial(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz) <span class="keyword">const</span>;       </div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classParamActive.html#a3b308bb5dafd2bafc5e425991deab476">  240</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamActive.html#a3b308bb5dafd2bafc5e425991deab476">needsFinalCheck</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> needsfinalcheck; }  </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classParamActive.html#a7cf85723002b79c4500f3eba9159b7fa">  241</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamActive.html#a7cf85723002b79c4500f3eba9159b7fa">markNeedsFinalCheck</a>(<span class="keywordtype">void</span>) { needsfinalcheck = <span class="keyword">true</span>; }    </div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classParamActive.html#a3335a98aec79bc7b683f6edc0e954c96">  242</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamActive.html#a3335a98aec79bc7b683f6edc0e954c96">isRecoverSubcall</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> recoversubcall; }  </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classParamActive.html#a77a0cc16f6a28aeb1fae38416ed2c3ed">  243</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamActive.html#a77a0cc16f6a28aeb1fae38416ed2c3ed">isFullyChecked</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> isfullychecked; }    </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classParamActive.html#a139fd20617eb3a88e32bc960e03b9ad1">  244</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamActive.html#a139fd20617eb3a88e32bc960e03b9ad1">markFullyChecked</a>(<span class="keywordtype">void</span>) { isfullychecked = <span class="keyword">true</span>; }    </div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classParamActive.html#ad5e20b21265e1788deb66b2f30b3b55b">  245</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamActive.html#ad5e20b21265e1788deb66b2f30b3b55b">setPlaceholderSlot</a>(<span class="keywordtype">void</span>) { stackplaceholder = slotbase; slotbase += 1; } </div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;  <span class="keywordtype">void</span> freePlaceholderSlot(<span class="keywordtype">void</span>);               </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classParamActive.html#af2221b328688426d4a192c0704ed787e">  247</a></span>&#160;  int4 <a class="code" href="classParamActive.html#af2221b328688426d4a192c0704ed787e">getNumPasses</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> numpasses; }       </div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classParamActive.html#a3d3a20decd7830cd778d890f6a41e83b">  248</a></span>&#160;  int4 <a class="code" href="classParamActive.html#a3d3a20decd7830cd778d890f6a41e83b">getMaxPass</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> maxpass; }       </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classParamActive.html#ad4a9012547b34e47de3645ad5e062f4f">  249</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamActive.html#ad4a9012547b34e47de3645ad5e062f4f">setMaxPass</a>(int4 val) { maxpass = val; }          </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classParamActive.html#a0cc6c52ae0d0c76d38fb603a10a7b53e">  250</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamActive.html#a0cc6c52ae0d0c76d38fb603a10a7b53e">finishPass</a>(<span class="keywordtype">void</span>) { numpasses += 1; }         </div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classParamActive.html#ac0e9c62853e05738a55adfec7f626726">  251</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamActive.html#ac0e9c62853e05738a55adfec7f626726">sortTrials</a>(<span class="keywordtype">void</span>) { sort(trial.begin(),trial.end()); }    </div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;  <span class="keywordtype">void</span> deleteUnusedTrials(<span class="keywordtype">void</span>);                </div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;  <span class="keywordtype">void</span> splitTrial(int4 i,int4 sz);              </div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;  <span class="keywordtype">void</span> joinTrial(int4 slot,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz);    </div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;  int4 getNumUsed(<span class="keywordtype">void</span>) <span class="keyword">const</span>;                  </div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classParamActive.html#aa8aaa478177b4ce6d94c4a988059ab3f">  263</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamActive.html#aa8aaa478177b4ce6d94c4a988059ab3f">testShrink</a>(int4 i,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> trial[i].testShrink(addr,sz); }</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="classParamActive.html#abce147faf761497f43582dbed22b57c0">  270</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamActive.html#abce147faf761497f43582dbed22b57c0">shrink</a>(int4 i,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz) { trial[i].setAddress(addr,sz); }</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;};</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classFspecSpace.html">  283</a></span>&#160;<span class="keyword">class </span><a class="code" href="classFspecSpace.html">FspecSpace</a> : <span class="keyword">public</span> <a class="code" href="classAddrSpace.html">AddrSpace</a> {</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;  <a class="code" href="classFspecSpace.html">FspecSpace</a>(<a class="code" href="classAddrSpaceManager.html">AddrSpaceManager</a> *m,<span class="keyword">const</span> <a class="code" href="classTranslate.html">Translate</a> *t,<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;nm,int4 ind); </div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> saveXmlAttributes(ostream &amp;s,uintb offset) <span class="keyword">const</span>;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> saveXmlAttributes(ostream &amp;s,uintb offset,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> printRaw(ostream &amp;s,uintb offset) <span class="keyword">const</span>;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> saveXml(ostream &amp;s) <span class="keyword">const</span>;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;};</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structParameterPieces.html">  294</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structParameterPieces.html">ParameterPieces</a> {</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structParameterPieces.html#a64a8ea85886ffa493a625e75cb5b01e0">  295</a></span>&#160;  <a class="code" href="classAddress.html">Address</a> <a class="code" href="structParameterPieces.html#a64a8ea85886ffa493a625e75cb5b01e0">addr</a>;         </div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="structParameterPieces.html#a628fd8428a2331db63516291840e8409">  296</a></span>&#160;  <a class="code" href="classDatatype.html">Datatype</a> *<a class="code" href="structParameterPieces.html#a628fd8428a2331db63516291840e8409">type</a>;       </div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structParameterPieces.html#aedb19159c26f9137c4ec68238f25933a">  297</a></span>&#160;  uint4 <a class="code" href="structParameterPieces.html#aedb19159c26f9137c4ec68238f25933a">flags</a>;          </div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;};</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classEffectRecord.html">  305</a></span>&#160;<span class="keyword">class </span><a class="code" href="classEffectRecord.html">EffectRecord</a> {</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;  <span class="keyword">enum</span> {</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a9a77875d39274819c56d6e4df5f23ab0a3488da6d6b149499cbe384f7b57d0564">  308</a></span>&#160;    unaffected = 1, </div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a9a77875d39274819c56d6e4df5f23ab0aacd8991c4ebdeb4057e15faf1d08abc2">  309</a></span>&#160;    killedbycall = 2,   </div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a9a77875d39274819c56d6e4df5f23ab0afa04c6c617a1044c79c7bc9b7d661be2">  310</a></span>&#160;    return_address = 3, </div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a9a77875d39274819c56d6e4df5f23ab0a02697f294ad0f4b53317da792c577a10">  311</a></span>&#160;    unknown_effect = 4  </div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;  };</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  <a class="code" href="structVarnodeData.html">VarnodeData</a> address;      </div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;  uint4 type;           </div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a1a7281494fb82c6ee35958e9d98d3160">  317</a></span>&#160;  <a class="code" href="classEffectRecord.html#a1a7281494fb82c6ee35958e9d98d3160">EffectRecord</a>(<span class="keywordtype">void</span>) {}     </div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classEffectRecord.html#ab05dcd1cc8377142d6a1427fedddcf21">  318</a></span>&#160;  <a class="code" href="classEffectRecord.html#ab05dcd1cc8377142d6a1427fedddcf21">EffectRecord</a>(<span class="keyword">const</span> <a class="code" href="classEffectRecord.html">EffectRecord</a> &amp;op2) { address = op2.address; type = op2.type; } </div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;  <a class="code" href="classEffectRecord.html">EffectRecord</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size);      </div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;  <a class="code" href="classEffectRecord.html">EffectRecord</a>(<span class="keyword">const</span> <a class="code" href="classParamEntry.html">ParamEntry</a> &amp;entry,uint4 t);    </div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;  <a class="code" href="classEffectRecord.html">EffectRecord</a>(<span class="keyword">const</span> <a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;addr,uint4 t);    </div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a524045f2df2655c5d37c99e4297acfdf">  322</a></span>&#160;  uint4 <a class="code" href="classEffectRecord.html#a524045f2df2655c5d37c99e4297acfdf">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type; }        </div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a121118c3ba7a9efc73b04ce710af8dfe">  323</a></span>&#160;  <a class="code" href="classAddress.html">Address</a> <a class="code" href="classEffectRecord.html#a121118c3ba7a9efc73b04ce710af8dfe">getAddress</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classAddress.html">Address</a>(address.<a class="code" href="structVarnodeData.html#a1a69a5187f7a6376c0c93c08962ea68d">space</a>,address.<a class="code" href="structVarnodeData.html#a1a511384ee72e847b51423cc99c8233e">offset</a>); }  </div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a30bb645ee7f1a917b62cb9adb3f5dc75">  324</a></span>&#160;  int4 <a class="code" href="classEffectRecord.html#a30bb645ee7f1a917b62cb9adb3f5dc75">getSize</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> address.<a class="code" href="structVarnodeData.html#a50d39ae46d51c8854b962f3ec4ee4e25">size</a>; } </div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;  <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> <a class="code" href="classEffectRecord.html">EffectRecord</a> &amp;op2) <span class="keyword">const</span>;    </div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;  <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="classEffectRecord.html">EffectRecord</a> &amp;op2) <span class="keyword">const</span>;   </div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;  <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="classEffectRecord.html">EffectRecord</a> &amp;op2) <span class="keyword">const</span>;   </div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;  <span class="keywordtype">void</span> saveXml(ostream &amp;s) <span class="keyword">const</span>;           </div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;  <span class="keywordtype">void</span> restoreXml(uint4 grouptype,<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<span class="keyword">const</span> <a class="code" href="classAddrSpaceManager.html">AddrSpaceManager</a> *manage);    </div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;};</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classParamList.html">  339</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamList.html">ParamList</a> {</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;  <span class="keyword">enum</span> {</div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aab453d87526025f49089a32288f6348df">  342</a></span>&#160;    <a class="code" href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aab453d87526025f49089a32288f6348df">p_standard</a>,     </div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aa7fb6a81d3016db3c978ba684a8b6d84d">  343</a></span>&#160;    <a class="code" href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aa7fb6a81d3016db3c978ba684a8b6d84d">p_standard_out</a>, </div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aae70ffa842058a730402c0c51be6093a7">  344</a></span>&#160;    <a class="code" href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aae70ffa842058a730402c0c51be6093a7">p_register</a>,     </div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aa563fe0da99c126228910fbcd01a2bbf0">  345</a></span>&#160;    p_merged        </div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;  };</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classParamList.html#ae628b7e9e0e780197b86fa312d52b1c8">  347</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classParamList.html#ae628b7e9e0e780197b86fa312d52b1c8">~ParamList</a>(<span class="keywordtype">void</span>) {}           </div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;  <span class="keyword">virtual</span> uint4 getType(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> assignMap(<span class="keyword">const</span> vector&lt;Datatype *&gt; &amp;proto,<span class="keywordtype">bool</span> isinput,</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;             <a class="code" href="classTypeFactory.html">TypeFactory</a> &amp;typefactory,vector&lt;ParameterPieces&gt; &amp;res) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillinMap(<a class="code" href="classParamActive.html">ParamActive</a> *active) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> checkJoin(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;hiaddr,int4 hisize,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loaddr,int4 losize) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> checkSplit(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 splitpoint) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;  <span class="keyword">virtual</span> int4 characterizeAsParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> possibleParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> possibleParamWithSlot(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 &amp;slot,int4 &amp;slotsize) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getBiggestContainedParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> unjustifiedContainer(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a> assumedExtension(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classAddrSpace.html">AddrSpace</a> *getSpacebase(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getRangeList(<a class="code" href="classAddrSpace.html">AddrSpace</a> *spc,<a class="code" href="classRangeList.html">RangeList</a> &amp;res) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;  <span class="keyword">virtual</span> int4 getMaxDelay(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<span class="keyword">const</span> <a class="code" href="classAddrSpaceManager.html">AddrSpaceManager</a> *manage,vector&lt;EffectRecord&gt; &amp;effectlist,<span class="keywordtype">bool</span> normalstack)=0;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classParamList.html">ParamList</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;   </div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;};</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classParamListStandard.html">  491</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamListStandard.html">ParamListStandard</a> : <span class="keyword">public</span> <a class="code" href="classParamList.html">ParamList</a> {</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classParamListStandard.html#ae129a4db3bb767656a32daeffee806a5">  493</a></span>&#160;  int4 <a class="code" href="classParamListStandard.html#ae129a4db3bb767656a32daeffee806a5">numgroup</a>;            </div><div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classParamListStandard.html#afe373fd5fb7807b7bba1d83649469cab">  494</a></span>&#160;  int4 <a class="code" href="classParamListStandard.html#afe373fd5fb7807b7bba1d83649469cab">maxdelay</a>;            </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classParamListStandard.html#aef1c07a708c2278a4a51705a4601035c">  495</a></span>&#160;  int4 <a class="code" href="classParamListStandard.html#aef1c07a708c2278a4a51705a4601035c">pointermax</a>;          </div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classParamListStandard.html#a65af086fa366444a788721fecc8afc86">  496</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classParamListStandard.html#a65af086fa366444a788721fecc8afc86">thisbeforeret</a>;           </div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classParamListStandard.html#a512864be48d391ee4903d0a38147438c">  497</a></span>&#160;  int4 <a class="code" href="classParamListStandard.html#a512864be48d391ee4903d0a38147438c">nonfloatgroup</a>;           </div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classParamListStandard.html#aab273cce362411690e324331d03d959f">  498</a></span>&#160;  list&lt;ParamEntry&gt; <a class="code" href="classParamListStandard.html#aab273cce362411690e324331d03d959f">entry</a>;       </div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="classParamListStandard.html#abb7014b3098269d3534cd9738f70fd7e">  499</a></span>&#160;  vector&lt;ParamEntryResolver *&gt; <a class="code" href="classParamListStandard.html#abb7014b3098269d3534cd9738f70fd7e">resolverMap</a>; </div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classParamListStandard.html#a23eb96cd5ffb8cc27ffb71caed2d96ca">  500</a></span>&#160;  <a class="code" href="classAddrSpace.html">AddrSpace</a> *<a class="code" href="classParamListStandard.html#a23eb96cd5ffb8cc27ffb71caed2d96ca">spacebase</a>;         </div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;  <span class="keyword">const</span> <a class="code" href="classParamEntry.html">ParamEntry</a> *findEntry(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size) <span class="keyword">const</span>;  </div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;  <a class="code" href="classAddress.html">Address</a> assignAddress(<span class="keyword">const</span> <a class="code" href="classDatatype.html">Datatype</a> *tp,vector&lt;int4&gt; &amp;status) <span class="keyword">const</span>; </div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;  <span class="keywordtype">void</span> buildTrialMap(<a class="code" href="classParamActive.html">ParamActive</a> *active) <span class="keyword">const</span>;    </div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;  <span class="keywordtype">void</span> separateFloat(<a class="code" href="classParamActive.html">ParamActive</a> *active,int4 &amp;floatstart,int4 &amp;floatstop,int4 &amp;start,int4 &amp;stop) <span class="keyword">const</span>;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;  <span class="keywordtype">void</span> forceExclusionGroup(<a class="code" href="classParamActive.html">ParamActive</a> *active) <span class="keyword">const</span>;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;  <span class="keywordtype">void</span> forceNoUse(<a class="code" href="classParamActive.html">ParamActive</a> *active,int4 start,int4 stop) <span class="keyword">const</span>;</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;  <span class="keywordtype">void</span> forceInactiveChain(<a class="code" href="classParamActive.html">ParamActive</a> *active,int4 maxchain,int4 start,int4 stop) <span class="keyword">const</span>;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;  <span class="keywordtype">void</span> calcDelay(<span class="keywordtype">void</span>);     </div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;  <span class="keywordtype">void</span> populateResolver(<span class="keywordtype">void</span>);  </div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="classParamListStandard.html#a78acde89ba28272697adefdf14f13a11">  511</a></span>&#160;  <a class="code" href="classParamListStandard.html#a78acde89ba28272697adefdf14f13a11">ParamListStandard</a>(<span class="keywordtype">void</span>) {}                        </div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;  <a class="code" href="classParamListStandard.html">ParamListStandard</a>(<span class="keyword">const</span> <a class="code" href="classParamListStandard.html">ParamListStandard</a> &amp;op2);          </div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classParamListStandard.html">ParamListStandard</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classParamListStandard.html#a5d7bc165654ee2900b52bbc6f9c596a1">  514</a></span>&#160;  <span class="keyword">const</span> list&lt;ParamEntry&gt; &amp;<a class="code" href="classParamListStandard.html#a5d7bc165654ee2900b52bbc6f9c596a1">getEntry</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entry; }    </div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classParamListStandard.html#a37193293ffb24b1206944e35ef64973c">  515</a></span>&#160;  <span class="keyword">virtual</span> uint4 <a class="code" href="classParamListStandard.html#a37193293ffb24b1206944e35ef64973c">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> p_standard; }</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> assignMap(<span class="keyword">const</span> vector&lt;Datatype *&gt; &amp;proto,<span class="keywordtype">bool</span> isinput,</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;             <a class="code" href="classTypeFactory.html">TypeFactory</a> &amp;typefactory,vector&lt;ParameterPieces&gt; &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillinMap(<a class="code" href="classParamActive.html">ParamActive</a> *active) <span class="keyword">const</span>;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> checkJoin(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;hiaddr,int4 hisize,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loaddr,int4 losize) <span class="keyword">const</span>;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> checkSplit(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 splitpoint) <span class="keyword">const</span>;</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;  <span class="keyword">virtual</span> int4 characterizeAsParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> possibleParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> possibleParamWithSlot(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 &amp;slot,int4 &amp;slotsize) <span class="keyword">const</span>;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getBiggestContainedParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> unjustifiedContainer(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a> assumedExtension(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classParamListStandard.html#a8c6910cf8fb253c2f64361dbf92901c5">  527</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classAddrSpace.html">AddrSpace</a> *<a class="code" href="classParamListStandard.html#a8c6910cf8fb253c2f64361dbf92901c5">getSpacebase</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> spacebase; }</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getRangeList(<a class="code" href="classAddrSpace.html">AddrSpace</a> *spc,<a class="code" href="classRangeList.html">RangeList</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classParamListStandard.html#aeb0fe74f815ad09f021ace22eb60d06a">  529</a></span>&#160;  <span class="keyword">virtual</span> int4 <a class="code" href="classParamListStandard.html#aeb0fe74f815ad09f021ace22eb60d06a">getMaxDelay</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> maxdelay; }</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<span class="keyword">const</span> <a class="code" href="classAddrSpaceManager.html">AddrSpaceManager</a> *manage,vector&lt;EffectRecord&gt; &amp;effectlist,<span class="keywordtype">bool</span> normalstack);</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classParamList.html">ParamList</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;};</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classParamListStandardOut.html">  541</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamListStandardOut.html">ParamListStandardOut</a> : <span class="keyword">public</span> <a class="code" href="classParamListStandard.html">ParamListStandard</a> {</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="classParamListStandardOut.html#aab54e2b42115e402ac062b4c774ff960">  543</a></span>&#160;  <a class="code" href="classParamListStandardOut.html#aab54e2b42115e402ac062b4c774ff960">ParamListStandardOut</a>(<span class="keywordtype">void</span>) : <a class="code" href="classParamListStandard.html">ParamListStandard</a>() {}       </div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classParamListStandardOut.html#a3dabd4d3d1aaf7c4690ec3c45e8a6392">  544</a></span>&#160;  <a class="code" href="classParamListStandardOut.html#a3dabd4d3d1aaf7c4690ec3c45e8a6392">ParamListStandardOut</a>(<span class="keyword">const</span> <a class="code" href="classParamListStandardOut.html">ParamListStandardOut</a> &amp;op2) : <a class="code" href="classParamListStandard.html">ParamListStandard</a>(op2) {} </div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="classParamListStandardOut.html#a8d0f947ba2b94e2921712114d986f74f">  545</a></span>&#160;  <span class="keyword">virtual</span> uint4 <a class="code" href="classParamListStandardOut.html#a8d0f947ba2b94e2921712114d986f74f">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> p_standard_out; }</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> assignMap(<span class="keyword">const</span> vector&lt;Datatype *&gt; &amp;proto,<span class="keywordtype">bool</span> isinput,</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;             <a class="code" href="classTypeFactory.html">TypeFactory</a> &amp;typefactory,vector&lt;ParameterPieces&gt; &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillinMap(<a class="code" href="classParamActive.html">ParamActive</a> *active) <span class="keyword">const</span>;</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> possibleParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<span class="keyword">const</span> <a class="code" href="classAddrSpaceManager.html">AddrSpaceManager</a> *manage,vector&lt;EffectRecord&gt; &amp;effectlist,<span class="keywordtype">bool</span> normalstack);</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classParamList.html">ParamList</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;};</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classParamListRegister.html">  561</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamListRegister.html">ParamListRegister</a> : <span class="keyword">public</span> <a class="code" href="classParamListStandard.html">ParamListStandard</a> {</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="classParamListRegister.html#aca64ac19f3dc898fc7d12062c76acf59">  563</a></span>&#160;  <a class="code" href="classParamListRegister.html#aca64ac19f3dc898fc7d12062c76acf59">ParamListRegister</a>(<span class="keywordtype">void</span>) : <a class="code" href="classParamListStandard.html">ParamListStandard</a>() {}  </div><div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="classParamListRegister.html#ab6c82537acb4d9e382dcbf438baebd0d">  564</a></span>&#160;  <a class="code" href="classParamListRegister.html#ab6c82537acb4d9e382dcbf438baebd0d">ParamListRegister</a>(<span class="keyword">const</span> <a class="code" href="classParamListRegister.html">ParamListRegister</a> &amp;op2) : <a class="code" href="classParamListStandard.html">ParamListStandard</a>(op2) {}   </div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="classParamListRegister.html#af11af105230d3d6bf2824ae8b6a527a6">  565</a></span>&#160;  <span class="keyword">virtual</span> uint4 <a class="code" href="classParamListRegister.html#af11af105230d3d6bf2824ae8b6a527a6">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> p_register; }</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillinMap(<a class="code" href="classParamActive.html">ParamActive</a> *active) <span class="keyword">const</span>;</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classParamList.html">ParamList</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;};</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classParamListMerged.html">  578</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParamListMerged.html">ParamListMerged</a> : <span class="keyword">public</span> <a class="code" href="classParamListStandard.html">ParamListStandard</a> {</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classParamListMerged.html#a5b9e6c47a1d11673ab94fedd7bce15ba">  580</a></span>&#160;  <a class="code" href="classParamListMerged.html#a5b9e6c47a1d11673ab94fedd7bce15ba">ParamListMerged</a>(<span class="keywordtype">void</span>) : <a class="code" href="classParamListStandard.html">ParamListStandard</a>() {}            </div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classParamListMerged.html#aeaa59d5b53fdbcf3b3f669aef70de20f">  581</a></span>&#160;  <a class="code" href="classParamListMerged.html#aeaa59d5b53fdbcf3b3f669aef70de20f">ParamListMerged</a>(<span class="keyword">const</span> <a class="code" href="classParamListMerged.html">ParamListMerged</a> &amp;op2) : <a class="code" href="classParamListStandard.html">ParamListStandard</a>(op2) {}   </div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;  <span class="keywordtype">void</span> foldIn(<span class="keyword">const</span> <a class="code" href="classParamListStandard.html">ParamListStandard</a> &amp;op2);                </div><div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classParamListMerged.html#aa003f357681a0a9e905fe1f3a9c82a19">  583</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classParamListMerged.html#aa003f357681a0a9e905fe1f3a9c82a19">finalize</a>(<span class="keywordtype">void</span>) { populateResolver(); }               </div><div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="classParamListMerged.html#a39f0621f7d34c4aa4d591fd51b2ab5fe">  584</a></span>&#160;  <span class="keyword">virtual</span> uint4 <a class="code" href="classParamListMerged.html#a39f0621f7d34c4aa4d591fd51b2ab5fe">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> p_merged; }</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classParamListMerged.html#aaa36cc98e675c86ee6842b1802650790">  585</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classParamListMerged.html#aaa36cc98e675c86ee6842b1802650790">assignMap</a>(<span class="keyword">const</span> vector&lt;Datatype *&gt; &amp;proto,<span class="keywordtype">bool</span> isinput,</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;             <a class="code" href="classTypeFactory.html">TypeFactory</a> &amp;typefactory,vector&lt;ParameterPieces&gt; &amp;res)<span class="keyword"> const </span>{</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="structLowlevelError.html#a73f4fa337533b013009b50f2bb68f57a">LowlevelError</a>(<span class="stringliteral">&quot;Cannot assign prototype before model has been resolved&quot;</span>); }</div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="classParamListMerged.html#aa4252b6768505e059edfe83ebdbf2065">  588</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classParamListMerged.html#aa4252b6768505e059edfe83ebdbf2065">fillinMap</a>(<a class="code" href="classParamActive.html">ParamActive</a> *active)<span class="keyword"> const </span>{</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="keywordflow">throw</span> <a class="code" href="structLowlevelError.html#a73f4fa337533b013009b50f2bb68f57a">LowlevelError</a>(<span class="stringliteral">&quot;Cannot determine prototype before model has been resolved&quot;</span>); }</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classParamList.html">ParamList</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;};</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="classProtoModel.html">  615</a></span>&#160;<span class="keyword">class </span><a class="code" href="classProtoModel.html">ProtoModel</a> {</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classProtoModelMerged.html">ProtoModelMerged</a>;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;  <a class="code" href="classArchitecture.html">Architecture</a> *glb;        </div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;  <span class="keywordtype">string</span> name;          </div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;  int4 extrapop;        </div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;  <a class="code" href="classParamList.html">ParamList</a> *input;     </div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;  <a class="code" href="classParamList.html">ParamList</a> *output;        </div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;  vector&lt;EffectRecord&gt; effectlist; </div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;  vector&lt;VarnodeData&gt; likelytrash;  </div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;  int4 injectUponEntry;     </div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;  int4 injectUponReturn;    </div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;  <a class="code" href="classRangeList.html">RangeList</a> localrange;     </div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;  <a class="code" href="classRangeList.html">RangeList</a> paramrange;     </div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;  <span class="keywordtype">bool</span> stackgrowsnegative;  </div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;  <span class="keywordtype">bool</span> hasThis;         </div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;  <span class="keywordtype">bool</span> isConstruct;     </div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;  <span class="keywordtype">void</span> defaultLocalRange(<span class="keywordtype">void</span>); </div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;  <span class="keywordtype">void</span> defaultParamRange(<span class="keywordtype">void</span>); </div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;  <span class="keywordtype">void</span> buildParamList(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;strategy);   </div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;  <span class="keyword">enum</span> {</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classProtoModel.html#ab532221dd4a9946b2dea90be44c79879ab0874d825448e7c731717fad59bbec92">  636</a></span>&#160;    <a class="code" href="classProtoModel.html#ab532221dd4a9946b2dea90be44c79879ab0874d825448e7c731717fad59bbec92">extrapop_unknown</a> = 0x8000   </div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;  };</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  <a class="code" href="classProtoModel.html#a4ef7db884a8c5bcdea92ed7b2d6a9ac0">ProtoModel</a>(<a class="code" href="classArchitecture.html">Architecture</a> *g);  </div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;  <a class="code" href="classProtoModel.html#a4ef7db884a8c5bcdea92ed7b2d6a9ac0">ProtoModel</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;nm,<span class="keyword">const</span> <a class="code" href="classProtoModel.html">ProtoModel</a> &amp;op2);   </div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoModel.html#ae253f61258ac2ad8f165200d1737e7a3">~ProtoModel</a>(<span class="keywordtype">void</span>);                </div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="classProtoModel.html#a19f8d9a9dbc7fb8d52aa180410cddc8b">  641</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;<a class="code" href="classProtoModel.html#a19f8d9a9dbc7fb8d52aa180410cddc8b">getName</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name; }    </div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classProtoModel.html#a256b9f054603fd6d166fdf86689467bf">  642</a></span>&#160;  <a class="code" href="classArchitecture.html">Architecture</a> *<a class="code" href="classProtoModel.html#a256b9f054603fd6d166fdf86689467bf">getArch</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> glb; } </div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;  uint4 <a class="code" href="classProtoModel.html#a5bd9f07bc75fc5f2497f1d4de685a8cf">hasEffect</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size) <span class="keyword">const</span>; </div><div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="classProtoModel.html#a640ae87320b6d6781639643057e61e1d">  644</a></span>&#160;  int4 <a class="code" href="classProtoModel.html#a640ae87320b6d6781639643057e61e1d">getExtraPop</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> extrapop; } </div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classProtoModel.html#a42eb0adf6bb66f15bbbde19c02c931ca">  645</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classProtoModel.html#a42eb0adf6bb66f15bbbde19c02c931ca">setExtraPop</a>(int4 ep) { extrapop = ep; }      </div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="classProtoModel.html#af505f8d493ab0dcefca9e94941c13658">  646</a></span>&#160;  int4 <a class="code" href="classProtoModel.html#af505f8d493ab0dcefca9e94941c13658">getInjectUponEntry</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> injectUponEntry; }   </div><div class="line"><a name="l00647"></a><span class="lineno"><a class="line" href="classProtoModel.html#a2e8994c68acebcf5c0278d86be39a530">  647</a></span>&#160;  int4 <a class="code" href="classProtoModel.html#a2e8994c68acebcf5c0278d86be39a530">getInjectUponReturn</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> injectUponReturn; } </div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="classProtoModel.html#a7f6da17343cb12b0e798fe7211441c58">  653</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classProtoModel.html#a7f6da17343cb12b0e798fe7211441c58">deriveInputMap</a>(<a class="code" href="classParamActive.html">ParamActive</a> *active)<span class="keyword"> const </span>{</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    input-&gt;<a class="code" href="classParamList.html#aaf2680343e933767d7ffd38e22e84011">fillinMap</a>(active); }</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="classProtoModel.html#a463595607985ec774f3df35dfbd7ca94">  660</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classProtoModel.html#a463595607985ec774f3df35dfbd7ca94">deriveOutputMap</a>(<a class="code" href="classParamActive.html">ParamActive</a> *active)<span class="keyword"> const </span>{</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;    output-&gt;<a class="code" href="classParamList.html#aaf2680343e933767d7ffd38e22e84011">fillinMap</a>(active); }</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classProtoModel.html#a13c2a4e9e1a7a13ef948c8a9c55dd831">assignParameterStorage</a>(<span class="keyword">const</span> vector&lt;Datatype *&gt; &amp;typelist,vector&lt;ParameterPieces&gt; &amp;res,<span class="keywordtype">bool</span> ignoreOutputError);</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classProtoModel.html#a06031cb84a876e36a3648362c4af8662">  674</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a06031cb84a876e36a3648362c4af8662">checkInputJoin</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;hiaddr,int4 hisize,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loaddr,int4 losize)<span class="keyword"> const </span>{</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#afbd77bcf71722f89a9ad9f4d9d20bdc5">checkJoin</a>(hiaddr,hisize,loaddr,losize); }</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classProtoModel.html#a0e0ae91c9fa12f548418c469f63c9d1d">  686</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a0e0ae91c9fa12f548418c469f63c9d1d">checkOutputJoin</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;hiaddr,int4 hisize,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loaddr,int4 losize)<span class="keyword"> const </span>{</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <span class="keywordflow">return</span> output-&gt;<a class="code" href="classParamList.html#afbd77bcf71722f89a9ad9f4d9d20bdc5">checkJoin</a>(hiaddr,hisize,loaddr,losize); }</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;</div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classProtoModel.html#a6ddc6e7d218491b657d1f5e5bb997592">  697</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a6ddc6e7d218491b657d1f5e5bb997592">checkInputSplit</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 splitpoint)<span class="keyword"> const </span>{</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#af27b49e05fbcbaa4e833e2e4f68d41ee">checkSplit</a>(loc,size,splitpoint); }</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classProtoModel.html#a4736d007016235f93ae81100f8312e26">  700</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classRangeList.html">RangeList</a> &amp;<a class="code" href="classProtoModel.html#a4736d007016235f93ae81100f8312e26">getLocalRange</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> localrange; } </div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classProtoModel.html#a2a83c006b588fad0b0842c6f9862e66b">  701</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classRangeList.html">RangeList</a> &amp;<a class="code" href="classProtoModel.html#a2a83c006b588fad0b0842c6f9862e66b">getParamRange</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> paramrange; } </div><div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classProtoModel.html#a5c9fa95940e32b03d475257ca177cfaa">  702</a></span>&#160;  vector&lt;EffectRecord&gt;::const_iterator <a class="code" href="classProtoModel.html#a5c9fa95940e32b03d475257ca177cfaa">effectBegin</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> effectlist.begin(); }   </div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classProtoModel.html#ac5eccb4ede5b877d6256cbbc2b9f4666">  703</a></span>&#160;  vector&lt;EffectRecord&gt;::const_iterator <a class="code" href="classProtoModel.html#ac5eccb4ede5b877d6256cbbc2b9f4666">effectEnd</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> effectlist.end(); }   </div><div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="classProtoModel.html#a8d1f841c8f099cc2f124b8257c51d50f">  704</a></span>&#160;  int4 <a class="code" href="classProtoModel.html#a8d1f841c8f099cc2f124b8257c51d50f">numLikelyTrash</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> likelytrash.size(); }    </div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="classProtoModel.html#a1e6449c1c7d16d6ec396d29e58042cad">  705</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;<a class="code" href="classProtoModel.html#a1e6449c1c7d16d6ec396d29e58042cad">getLikelyTrash</a>(int4 i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> likelytrash[i]; }    </div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;</div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classProtoModel.html#ac691b583d93e89de88e6185e251768d0">  717</a></span>&#160;  int4 <a class="code" href="classProtoModel.html#ac691b583d93e89de88e6185e251768d0">characterizeAsInputParam</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size)<span class="keyword"> const </span>{</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#a79a541cc056240c613a28e5aa5a795f0">characterizeAsParam</a>(loc, size);</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;  }</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="classProtoModel.html#a1c0e6fe360413702b20cd04367dc477f">  727</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a1c0e6fe360413702b20cd04367dc477f">possibleInputParam</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size)<span class="keyword"> const </span>{</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#a77bf29c2bd3fe17be0e8200af97c50d9">possibleParam</a>(loc,size); }</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classProtoModel.html#aea2696911b81cc71cc68d927d7c02204">  736</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#aea2696911b81cc71cc68d927d7c02204">possibleOutputParam</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size)<span class="keyword"> const </span>{</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;    <span class="keywordflow">return</span> output-&gt;<a class="code" href="classParamList.html#a77bf29c2bd3fe17be0e8200af97c50d9">possibleParam</a>(loc,size); }</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;</div><div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="classProtoModel.html#a6577cdf023ed6a660ba804e43e356b4e">  748</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a6577cdf023ed6a660ba804e43e356b4e">possibleInputParamWithSlot</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 &amp;slot,int4 &amp;slotsize)<span class="keyword"> const </span>{</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#a612c46c0ba7aca424885c566b4c965fc">possibleParamWithSlot</a>(loc,size,slot,slotsize); }</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classProtoModel.html#afd3283c9f718ce1e521186810f48ce6f">  760</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#afd3283c9f718ce1e521186810f48ce6f">possibleOutputParamWithSlot</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 &amp;slot,int4 &amp;slotsize)<span class="keyword"> const </span>{</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    <span class="keywordflow">return</span> output-&gt;<a class="code" href="classParamList.html#a612c46c0ba7aca424885c566b4c965fc">possibleParamWithSlot</a>(loc,size,slot,slotsize); }</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="classProtoModel.html#a8c0c20931a1fe2c0d3cf4fb3f8fe7c02">  772</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a8c0c20931a1fe2c0d3cf4fb3f8fe7c02">unjustifiedInputParam</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res)<span class="keyword"> const </span>{</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#a6e43243a4f88cb16925d6a785b6f8289">unjustifiedContainer</a>(loc,size,res); }</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;</div><div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="classProtoModel.html#a4fcf1b51c0ce470e353e798b9eaa8603">  785</a></span>&#160;  <a class="code" href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a> <a class="code" href="classProtoModel.html#a4fcf1b51c0ce470e353e798b9eaa8603">assumedInputExtension</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res)<span class="keyword"> const </span>{</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#a10bf678b80a0e6737a955706418ab645">assumedExtension</a>(addr,size,res); }</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;</div><div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="classProtoModel.html#a74ad1cd29d07b30a4525049a6b2ee270">  798</a></span>&#160;  <a class="code" href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a> <a class="code" href="classProtoModel.html#a74ad1cd29d07b30a4525049a6b2ee270">assumedOutputExtension</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res)<span class="keyword"> const </span>{</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    <span class="keywordflow">return</span> output-&gt;<a class="code" href="classParamList.html#a10bf678b80a0e6737a955706418ab645">assumedExtension</a>(addr,size,res); }</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="classProtoModel.html#a66b4e24eaff01c41d6316407a2dde2e1">  807</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a66b4e24eaff01c41d6316407a2dde2e1">getBiggestContainedInputParam</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res)<span class="keyword"> const </span>{</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;    <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#a518a03c6e6dffaf5ab98abe39d1c358d">getBiggestContainedParam</a>(loc, size, res);</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;  }</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;</div><div class="line"><a name="l00811"></a><span class="lineno"><a class="line" href="classProtoModel.html#a9918d9e7595d9f33f53bd9ffd3118f19">  811</a></span>&#160;  <a class="code" href="classAddrSpace.html">AddrSpace</a> *<a class="code" href="classProtoModel.html#a9918d9e7595d9f33f53bd9ffd3118f19">getSpacebase</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#ae42fc70d73e1143e5dad67766e413f05">getSpacebase</a>(); } </div><div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="classProtoModel.html#a9fd453910b4e750e3c67f26969c17001">  812</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a9fd453910b4e750e3c67f26969c17001">isStackGrowsNegative</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stackgrowsnegative; }  </div><div class="line"><a name="l00813"></a><span class="lineno"><a class="line" href="classProtoModel.html#aace107c2668bbd0091159f5c9e5a9042">  813</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#aace107c2668bbd0091159f5c9e5a9042">hasThisPointer</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> hasThis; }           </div><div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="classProtoModel.html#a8699b4b61ebc7565dbfd7ec7ab600eca">  814</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a8699b4b61ebc7565dbfd7ec7ab600eca">isConstructor</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> isConstruct; }        </div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"><a class="line" href="classProtoModel.html#a0a6e71fa168f7af91d6b658516a61326">  822</a></span>&#160;  int4 <a class="code" href="classProtoModel.html#a0a6e71fa168f7af91d6b658516a61326">getMaxInputDelay</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> input-&gt;<a class="code" href="classParamList.html#af3d5640d0912fca118219d8213ed3a28">getMaxDelay</a>(); }</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"><a class="line" href="classProtoModel.html#a6692a33595e306f23f23d98093a006bf">  830</a></span>&#160;  int4 <a class="code" href="classProtoModel.html#a6692a33595e306f23f23d98093a006bf">getMaxOutputDelay</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> output-&gt;<a class="code" href="classParamList.html#af3d5640d0912fca118219d8213ed3a28">getMaxDelay</a>(); }</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="classProtoModel.html#a580207b945d3734b6f1e6023b3ca2678">  832</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classProtoModel.html#a580207b945d3734b6f1e6023b3ca2678">isMerged</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }   </div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classProtoModelMerged.html#a1c80c617c086b0edacb483f8315d12e9">restoreXml</a>(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el);       </div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;  <span class="keyword">static</span> uint4 <a class="code" href="classProtoModel.html#aec744a55c36bed8f08fa923fad80df46">lookupEffect</a>(<span class="keyword">const</span> vector&lt;EffectRecord&gt; &amp;efflist,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size);</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;};</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno"><a class="line" href="classScoreProtoModel.html">  843</a></span>&#160;<span class="keyword">class </span><a class="code" href="classScoreProtoModel.html">ScoreProtoModel</a> {</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;  <span class="keyword">class </span>PEntry {</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;  <span class="keyword">public</span>:</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    int4 origIndex;     </div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    int4 slot;          </div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    int4 size;          </div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;    <span class="keywordtype">bool</span> operator&lt;(<span class="keyword">const</span> PEntry &amp;op2)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (slot &lt; op2.slot); }</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;  };</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;  <span class="keywordtype">bool</span> isinputscore;        </div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;  vector&lt;PEntry&gt; entry;     </div><div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;  <span class="keyword">const</span> <a class="code" href="classProtoModel.html">ProtoModel</a> *model;  </div><div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;  int4 finalscore;      </div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;  int4 mismatch;        </div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;  <a class="code" href="classScoreProtoModel.html">ScoreProtoModel</a>(<span class="keywordtype">bool</span> isinput,<span class="keyword">const</span> <a class="code" href="classProtoModel.html">ProtoModel</a> *mod,int4 numparam);    </div><div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;  <span class="keywordtype">void</span> addParameter(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 sz);           </div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;  <span class="keywordtype">void</span> doScore(<span class="keywordtype">void</span>);                           </div><div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="classScoreProtoModel.html#a3dec47bf8f824704151759848f50ddc7">  865</a></span>&#160;  int4 <a class="code" href="classScoreProtoModel.html#a3dec47bf8f824704151759848f50ddc7">getScore</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> finalscore; }          </div><div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="classScoreProtoModel.html#aeb55589e04d1f68f9bd2d2eebb4a5710">  866</a></span>&#160;  int4 <a class="code" href="classScoreProtoModel.html#aeb55589e04d1f68f9bd2d2eebb4a5710">getNumMismatch</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mismatch; }          </div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;};</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"><a class="line" href="classProtoModelMerged.html">  880</a></span>&#160;<span class="keyword">class </span><a class="code" href="classProtoModelMerged.html">ProtoModelMerged</a> : <span class="keyword">public</span> <a class="code" href="classProtoModel.html">ProtoModel</a> {</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;  vector&lt;ProtoModel *&gt; modellist;                   </div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;  <span class="keywordtype">void</span> intersectEffects(<span class="keyword">const</span> vector&lt;EffectRecord&gt; &amp;efflist);       </div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;  <span class="keywordtype">void</span> intersectLikelyTrash(<span class="keyword">const</span> vector&lt;VarnodeData&gt; &amp;trashlist);  </div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="classProtoModelMerged.html#a89ae5cb14a23eedeba04de6475d46f70">  885</a></span>&#160;  <a class="code" href="classProtoModelMerged.html#a89ae5cb14a23eedeba04de6475d46f70">ProtoModelMerged</a>(<a class="code" href="classArchitecture.html">Architecture</a> *g) : <a class="code" href="classProtoModel.html">ProtoModel</a>(g) {}          </div><div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="classProtoModelMerged.html#ae9e2963a988d626416b0020fe1229a47">  886</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoModelMerged.html#ae9e2963a988d626416b0020fe1229a47">~ProtoModelMerged</a>(<span class="keywordtype">void</span>) {}                    </div><div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="classProtoModelMerged.html#a529627f8459b79d8f6d0e70210425ba2">  887</a></span>&#160;  int4 <a class="code" href="classProtoModelMerged.html#a529627f8459b79d8f6d0e70210425ba2">numModels</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> modellist.size(); }       </div><div class="line"><a name="l00888"></a><span class="lineno"><a class="line" href="classProtoModelMerged.html#a661295ea5cf3542cfc25b28fefb6a264">  888</a></span>&#160;  <a class="code" href="classProtoModel.html">ProtoModel</a> *<a class="code" href="classProtoModelMerged.html#a661295ea5cf3542cfc25b28fefb6a264">getModel</a>(int4 i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> modellist[i]; }       </div><div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;  <span class="keywordtype">void</span> foldIn(<a class="code" href="classProtoModel.html">ProtoModel</a> *model);                   </div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;  <a class="code" href="classProtoModel.html">ProtoModel</a> *selectModel(<a class="code" href="classParamActive.html">ParamActive</a> *active) <span class="keyword">const</span>;           </div><div class="line"><a name="l00891"></a><span class="lineno"><a class="line" href="classProtoModelMerged.html#aea3dceb1497499800015607bbfd2d863">  891</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classProtoModelMerged.html#aea3dceb1497499800015607bbfd2d863">isMerged</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el);</div><div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;};</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;</div><div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;<span class="keyword">class </span><a class="code" href="classSymbol.html">Symbol</a>;</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;<span class="keyword">class </span><a class="code" href="classAliasChecker.html">AliasChecker</a>;</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="classProtoParameter.html">  903</a></span>&#160;<span class="keyword">class </span><a class="code" href="classProtoParameter.html">ProtoParameter</a> {</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="classProtoParameter.html#a60a3aefc8f1ddf935990d4c9e6cc1367">  905</a></span>&#160;  <a class="code" href="classProtoParameter.html#a60a3aefc8f1ddf935990d4c9e6cc1367">ProtoParameter</a>(<span class="keywordtype">void</span>) {}               </div><div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="classProtoParameter.html#a63533cc17e94e8b022414ca5b03a101e">  906</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html#a63533cc17e94e8b022414ca5b03a101e">~ProtoParameter</a>(<span class="keywordtype">void</span>) {}          </div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;getName(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classDatatype.html">Datatype</a> *getType(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classAddress.html">Address</a> getAddress(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;     </div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;  <span class="keyword">virtual</span> int4 getSize(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;           </div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isTypeLocked(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isNameLocked(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSizeTypeLocked(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isIndirectStorage(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;     </div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isHiddenReturn(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;        </div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isNameUndefined(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;       </div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setTypeLock(<span class="keywordtype">bool</span> val)=0;         </div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNameLock(<span class="keywordtype">bool</span> val)=0;         </div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> overrideSizeLockType(<a class="code" href="classDatatype.html">Datatype</a> *ct)=0;</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetSizeLockType(<a class="code" href="classTypeFactory.html">TypeFactory</a> *factory)=0;</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classSymbol.html">Symbol</a> *getSymbol(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="classProtoParameter.html#a61ce8ecb7464780b491a8e1ceb7144e8">  945</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoParameter.html#a61ce8ecb7464780b491a8e1ceb7144e8">operator==</a>(<span class="keyword">const</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> &amp;op2)<span class="keyword"> const </span>{</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    <span class="keywordflow">if</span> (getAddress() != op2.<a class="code" href="classProtoParameter.html#a33c604ed7e06ae0ca6ac491b46739343">getAddress</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <span class="keywordflow">if</span> (getType() != op2.<a class="code" href="classProtoParameter.html#a05bfe5b4fe563c1e4e93bf2648239061">getType</a>()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;  }</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;</div><div class="line"><a name="l00955"></a><span class="lineno"><a class="line" href="classProtoParameter.html#a82ceb5d7de4394d1e0760bc38a78fe0c">  955</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classProtoParameter.html#a82ceb5d7de4394d1e0760bc38a78fe0c">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> &amp;op2)<span class="keyword"> const </span>{</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    <span class="keywordflow">return</span> !(*<span class="keyword">this</span>==op2); }</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;};</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"><a class="line" href="classParameterBasic.html">  964</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParameterBasic.html">ParameterBasic</a> : <span class="keyword">public</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> {</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;  <span class="keywordtype">string</span> name;          </div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;  <a class="code" href="classAddress.html">Address</a> addr;         </div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;  <a class="code" href="classDatatype.html">Datatype</a> *type;       </div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;  uint4 flags;          </div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00970"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a2b84d49e6b4eca382a863567de942193">  970</a></span>&#160;  <a class="code" href="classParameterBasic.html#a2b84d49e6b4eca382a863567de942193">ParameterBasic</a>(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;nm,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;ad,<a class="code" href="classDatatype.html">Datatype</a> *tp,uint4 fl) {</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;    name = nm; addr = ad; type = tp; flags=fl; }        </div><div class="line"><a name="l00972"></a><span class="lineno"><a class="line" href="classParameterBasic.html#aa8bfb0e008ccc1953627e5415e64fadb">  972</a></span>&#160;  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;<a class="code" href="classParameterBasic.html#aa8bfb0e008ccc1953627e5415e64fadb">getName</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name; }</div><div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a0120ba1a51396ed32a1ff0638f795146">  973</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classDatatype.html">Datatype</a> *<a class="code" href="classParameterBasic.html#a0120ba1a51396ed32a1ff0638f795146">getType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type; }</div><div class="line"><a name="l00974"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a0d007e8a1720e88d34aa139d62000c1a">  974</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classAddress.html">Address</a> <a class="code" href="classParameterBasic.html#a0d007e8a1720e88d34aa139d62000c1a">getAddress</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> addr; }</div><div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a96b3cef1901c8f4b7591551ea7b4d407">  975</a></span>&#160;  <span class="keyword">virtual</span> int4 <a class="code" href="classParameterBasic.html#a96b3cef1901c8f4b7591551ea7b4d407">getSize</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type-&gt;<a class="code" href="classDatatype.html#aadd1006bf1bfff07a3230c2062e7fa52">getSize</a>(); }</div><div class="line"><a name="l00976"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a837bdcd23e9bdfad0b8ba0b6b78b9752">  976</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classParameterBasic.html#a837bdcd23e9bdfad0b8ba0b6b78b9752">isTypeLocked</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;<a class="code" href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8cae49e063a1b1e7de4592afd3f19abbdc7">Varnode::typelock</a>)!=0); }</div><div class="line"><a name="l00977"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a5356f1c78cedff7576c3cd5d04c3ae91">  977</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classParameterBasic.html#a5356f1c78cedff7576c3cd5d04c3ae91">isNameLocked</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;<a class="code" href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca0b1de824f917f0c708db4fa4b8caaeb8">Varnode::namelock</a>)!=0); }</div><div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="classParameterBasic.html#ab8644a632a02193f26e4499bbfa7dbc9">  978</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classParameterBasic.html#ab8644a632a02193f26e4499bbfa7dbc9">isSizeTypeLocked</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;<a class="code" href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca342d968e37003a12f9026a15dda2e8f6">Varnode::mark</a>)!=0); }</div><div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a9f09a6b3c75b4a3161b789fda98edc4a">  979</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classParameterBasic.html#a9f09a6b3c75b4a3161b789fda98edc4a">isIndirectStorage</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;<a class="code" href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca8bc73667e547486cbabc443d0c90f2c5">Varnode::indirectstorage</a>)!=0); }</div><div class="line"><a name="l00980"></a><span class="lineno"><a class="line" href="classParameterBasic.html#aace2399bb8a2f988757037b1b62862e3">  980</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classParameterBasic.html#aace2399bb8a2f988757037b1b62862e3">isHiddenReturn</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;<a class="code" href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca98c9b8ae27e32db19e64422a37b8be74">Varnode::hiddenretparm</a>)!=0); }</div><div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="classParameterBasic.html#a0385f1293c9dffdb691c479e7b82a239">  981</a></span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classParameterBasic.html#a0385f1293c9dffdb691c479e7b82a239">isNameUndefined</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (name.size()==0); }</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setTypeLock(<span class="keywordtype">bool</span> val);</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNameLock(<span class="keywordtype">bool</span> val);</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> overrideSizeLockType(<a class="code" href="classDatatype.html">Datatype</a> *ct);</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetSizeLockType(<a class="code" href="classTypeFactory.html">TypeFactory</a> *factory);</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00987"></a><span class="lineno"><a class="line" href="classParameterBasic.html#ae3b74f1e127c354b6baabf69d2f36056">  987</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classSymbol.html">Symbol</a> *<a class="code" href="classParameterBasic.html#ae3b74f1e127c354b6baabf69d2f36056">getSymbol</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">throw</span> <a class="code" href="structLowlevelError.html#a73f4fa337533b013009b50f2bb68f57a">LowlevelError</a>(<span class="stringliteral">&quot;Parameter is not a real symbol&quot;</span>); }</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;};</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno"><a class="line" href="classProtoStore.html">  995</a></span>&#160;<span class="keyword">class </span><a class="code" href="classProtoStore.html">ProtoStore</a> {</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="classProtoStore.html#aefbc7f56e4d2f26b043bbdf74b6a8553">  997</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoStore.html#aefbc7f56e4d2f26b043bbdf74b6a8553">~ProtoStore</a>(<span class="keywordtype">void</span>) {}      </div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *setInput(int4 i,<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;nm,<span class="keyword">const</span> <a class="code" href="structParameterPieces.html">ParameterPieces</a> &amp;pieces)=0;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearInput(int4 i)=0;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearAllInputs(<span class="keywordtype">void</span>)=0;          </div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;  <span class="keyword">virtual</span> int4 getNumInputs(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *getInput(int4 i)=0;       </div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *setOutput(<span class="keyword">const</span> <a class="code" href="structParameterPieces.html">ParameterPieces</a> &amp;piece)=0;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearOutput(<span class="keywordtype">void</span>)=0;         </div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *getOutput(<span class="keywordtype">void</span>)=0;        </div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoStore.html">ProtoStore</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>=0;      </div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> saveXml(ostream &amp;s) <span class="keyword">const</span>=0;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<a class="code" href="classProtoModel.html">ProtoModel</a> *model)=0;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;};</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classParameterSymbol.html"> 1052</a></span>&#160;<span class="keyword">class </span><a class="code" href="classParameterSymbol.html">ParameterSymbol</a> : <span class="keyword">public</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> {</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classProtoStoreSymbol.html">ProtoStoreSymbol</a>;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;  <a class="code" href="classSymbol.html">Symbol</a> *sym;      </div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="classParameterSymbol.html#a918d24c31eef2a92f8af3d5047d97659"> 1056</a></span>&#160;  <a class="code" href="classParameterSymbol.html#a918d24c31eef2a92f8af3d5047d97659">ParameterSymbol</a>(<span class="keywordtype">void</span>) { sym = (<a class="code" href="classSymbol.html">Symbol</a> *)0; }      </div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;  <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;getName(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classDatatype.html">Datatype</a> *getType(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classAddress.html">Address</a> getAddress(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;  <span class="keyword">virtual</span> int4 getSize(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isTypeLocked(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isNameLocked(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSizeTypeLocked(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isIndirectStorage(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isHiddenReturn(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isNameUndefined(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setTypeLock(<span class="keywordtype">bool</span> val);</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setNameLock(<span class="keywordtype">bool</span> val);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> overrideSizeLockType(<a class="code" href="classDatatype.html">Datatype</a> *ct);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> resetSizeLockType(<a class="code" href="classTypeFactory.html">TypeFactory</a> *factory);</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *<a class="code" href="classProtoStoreSymbol.html#aa6631290325889edb7ef7699fdd8a90f">clone</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classSymbol.html">Symbol</a> *getSymbol(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;};</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"><a class="line" href="classProtoStoreSymbol.html"> 1080</a></span>&#160;<span class="keyword">class </span><a class="code" href="classProtoStoreSymbol.html">ProtoStoreSymbol</a> : <span class="keyword">public</span> <a class="code" href="classProtoStore.html">ProtoStore</a> {</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;  <a class="code" href="classScope.html">Scope</a> *scope;             </div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;  <a class="code" href="classAddress.html">Address</a> restricted_usepoint;      </div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;  vector&lt;ProtoParameter *&gt; inparam; </div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;  <a class="code" href="classProtoParameter.html">ProtoParameter</a> *outparam;     </div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;  <a class="code" href="classParameterSymbol.html">ParameterSymbol</a> *getSymbolBacked(int4 i); </div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;  <a class="code" href="classProtoStoreSymbol.html">ProtoStoreSymbol</a>(<a class="code" href="classScope.html">Scope</a> *sc,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;usepoint);  </div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classProtoStoreSymbol.html">ProtoStoreSymbol</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *setInput(int4 i,<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;nm,<span class="keyword">const</span> <a class="code" href="structParameterPieces.html">ParameterPieces</a> &amp;pieces);</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearInput(int4 i);</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearAllInputs(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;  <span class="keyword">virtual</span> int4 getNumInputs(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *getInput(int4 i);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *setOutput(<span class="keyword">const</span> <a class="code" href="structParameterPieces.html">ParameterPieces</a> &amp;piece);</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearOutput(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *getOutput(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoStore.html">ProtoStore</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> saveXml(ostream &amp;s) <span class="keyword">const</span>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<a class="code" href="classProtoModel.html">ProtoModel</a> *model);</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;};</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01106"></a><span class="lineno"><a class="line" href="classProtoStoreInternal.html"> 1106</a></span>&#160;<span class="keyword">class </span><a class="code" href="classProtoStoreInternal.html">ProtoStoreInternal</a> : <span class="keyword">public</span> <a class="code" href="classProtoStore.html">ProtoStore</a> {</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;  <a class="code" href="classDatatype.html">Datatype</a> *voidtype;           </div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;  vector&lt;ProtoParameter *&gt; inparam; </div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;  <a class="code" href="classProtoParameter.html">ProtoParameter</a> *outparam;     </div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;  <a class="code" href="classProtoStoreInternal.html">ProtoStoreInternal</a>(<a class="code" href="classDatatype.html">Datatype</a> *vt); </div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;  <span class="keyword">virtual</span> ~<a class="code" href="classProtoStoreInternal.html">ProtoStoreInternal</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *setInput(int4 i,<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;nm,<span class="keyword">const</span> <a class="code" href="structParameterPieces.html">ParameterPieces</a> &amp;pieces);</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearInput(int4 i);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearAllInputs(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;  <span class="keyword">virtual</span> int4 getNumInputs(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *getInput(int4 i);</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *setOutput(<span class="keyword">const</span> <a class="code" href="structParameterPieces.html">ParameterPieces</a> &amp;piece);</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearOutput(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoParameter.html">ProtoParameter</a> *getOutput(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classProtoStore.html">ProtoStore</a> *clone(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> saveXml(ostream &amp;s) <span class="keyword">const</span>;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;  <span class="keyword">virtual</span> <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<a class="code" href="classProtoModel.html">ProtoModel</a> *model);</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;};</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01127"></a><span class="lineno"><a class="line" href="structPrototypePieces.html"> 1127</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structPrototypePieces.html">PrototypePieces</a> {</div><div class="line"><a name="l01128"></a><span class="lineno"><a class="line" href="structPrototypePieces.html#a35b3c9fbc711e8623021f4e21284de13"> 1128</a></span>&#160;  <a class="code" href="classProtoModel.html">ProtoModel</a> *<a class="code" href="structPrototypePieces.html#a35b3c9fbc711e8623021f4e21284de13">model</a>;        </div><div class="line"><a name="l01129"></a><span class="lineno"><a class="line" href="structPrototypePieces.html#ac0eadd4acbffa119e16210b39e32623e"> 1129</a></span>&#160;  <span class="keywordtype">string</span> <a class="code" href="structPrototypePieces.html#ac0eadd4acbffa119e16210b39e32623e">name</a>;          </div><div class="line"><a name="l01130"></a><span class="lineno"><a class="line" href="structPrototypePieces.html#ab145dec69a82cf13bef723679f6800b0"> 1130</a></span>&#160;  <a class="code" href="classDatatype.html">Datatype</a> *<a class="code" href="structPrototypePieces.html#ab145dec69a82cf13bef723679f6800b0">outtype</a>;        </div><div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="structPrototypePieces.html#aca89ccc6fb7ef4527613909e341efe64"> 1131</a></span>&#160;  vector&lt;Datatype *&gt; <a class="code" href="structPrototypePieces.html#aca89ccc6fb7ef4527613909e341efe64">intypes</a>;   </div><div class="line"><a name="l01132"></a><span class="lineno"><a class="line" href="structPrototypePieces.html#ab424fb1bcab5c7d008b590a24a3ad34e"> 1132</a></span>&#160;  vector&lt;string&gt; <a class="code" href="structPrototypePieces.html#ab424fb1bcab5c7d008b590a24a3ad34e">innames</a>;   </div><div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="structPrototypePieces.html#a06df4f0bbd4f67847962c3ae35e8945d"> 1133</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="structPrototypePieces.html#a06df4f0bbd4f67847962c3ae35e8945d">dotdotdot</a>;       </div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;};</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div><div class="line"><a name="l01147"></a><span class="lineno"><a class="line" href="classFuncProto.html"> 1147</a></span>&#160;<span class="keyword">class </span><a class="code" href="classFuncProto.html">FuncProto</a> {</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;  <span class="keyword">enum</span> {</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;    dotdotdot = 1,      </div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;    voidinputlock = 2,      </div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;    modellock = 4,      </div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;    is_inline = 8,      </div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    no_return = 16,     </div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    paramshift_applied = 32,    </div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;    error_inputparam = 64,  </div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;    error_outputparam = 128,    </div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    custom_storage = 256,   </div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;    unknown_model = 512,    </div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    is_constructor = 0x400, </div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    is_destructor = 0x800,  </div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    has_thisptr= 0x1000,    </div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    is_override = 0x2000    </div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;  };</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;  <a class="code" href="classProtoModel.html">ProtoModel</a> *model;        </div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;  <a class="code" href="classProtoStore.html">ProtoStore</a> *store;        </div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;  int4 extrapop;        </div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;  uint4 flags;          </div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;  vector&lt;EffectRecord&gt; effectlist;  </div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;  vector&lt;VarnodeData&gt; likelytrash;  </div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;  int4 injectid;        </div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;  int4 returnBytesConsumed; </div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;  <span class="keywordtype">void</span> paramShift(int4 paramshift); </div><div class="line"><a name="l01174"></a><span class="lineno"><a class="line" href="classFuncProto.html#a7b7a58bea827081d275ae6112df7dce5"> 1174</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a7b7a58bea827081d275ae6112df7dce5">isParamshiftApplied</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;paramshift_applied)!=0); }  </div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;  <span class="keywordtype">void</span> setParamshiftApplied(<span class="keywordtype">bool</span> val) { flags = val ? (flags|paramshift_applied) : (flags &amp; ~((uint4)paramshift_applied)); }</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;  <a class="code" href="classFuncProto.html">FuncProto</a>(<span class="keywordtype">void</span>);      </div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;  ~<a class="code" href="classFuncProto.html">FuncProto</a>(<span class="keywordtype">void</span>);     </div><div class="line"><a name="l01180"></a><span class="lineno"><a class="line" href="classFuncProto.html#ac21659d866e78bb27aca67f1cb2df390"> 1180</a></span>&#160;  <a class="code" href="classArchitecture.html">Architecture</a> *<a class="code" href="classFuncProto.html#ac21659d866e78bb27aca67f1cb2df390">getArch</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a256b9f054603fd6d166fdf86689467bf">getArch</a>(); }    </div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;  <span class="keywordtype">void</span> copy(<span class="keyword">const</span> <a class="code" href="classFuncProto.html">FuncProto</a> &amp;op2);                  </div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;  <span class="keywordtype">void</span> copyFlowEffects(<span class="keyword">const</span> <a class="code" href="classFuncProto.html">FuncProto</a> &amp;op2);               </div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;  <span class="keywordtype">void</span> getPieces(<a class="code" href="structPrototypePieces.html">PrototypePieces</a> &amp;pieces) <span class="keyword">const</span>;            </div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;  <span class="keywordtype">void</span> setPieces(<span class="keyword">const</span> <a class="code" href="structPrototypePieces.html">PrototypePieces</a> &amp;pieces);            </div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;  <span class="keywordtype">void</span> setScope(<a class="code" href="classScope.html">Scope</a> *s,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;startpoint);            </div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;  <span class="keywordtype">void</span> setInternal(<a class="code" href="classProtoModel.html">ProtoModel</a> *m,<a class="code" href="classDatatype.html">Datatype</a> *vt);             </div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;  <span class="keywordtype">void</span> setModel(<a class="code" href="classProtoModel.html">ProtoModel</a> *m);                     </div><div class="line"><a name="l01188"></a><span class="lineno"><a class="line" href="classFuncProto.html#a6ccc21837d768462cd2abca84a5ffd59"> 1188</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a6ccc21837d768462cd2abca84a5ffd59">hasModel</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (model != (<a class="code" href="classProtoModel.html">ProtoModel</a> *)0); }  </div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div><div class="line"><a name="l01190"></a><span class="lineno"><a class="line" href="classFuncProto.html#afeebd3dd7e300e1361977b93c72a8eed"> 1190</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#afeebd3dd7e300e1361977b93c72a8eed">hasMatchingModel</a>(<span class="keyword">const</span> <a class="code" href="classFuncProto.html">FuncProto</a> *op2)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (model == op2-&gt;model); }   </div><div class="line"><a name="l01191"></a><span class="lineno"><a class="line" href="classFuncProto.html#a6a86f7c68b557f329ab6193ffadfb768"> 1191</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a6a86f7c68b557f329ab6193ffadfb768">hasMatchingModel</a>(<span class="keyword">const</span> <a class="code" href="classProtoModel.html">ProtoModel</a> *op2)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (model == op2); } </div><div class="line"><a name="l01192"></a><span class="lineno"><a class="line" href="classFuncProto.html#abd50bddd2379651954a05e2015ab907e"> 1192</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;<a class="code" href="classFuncProto.html#abd50bddd2379651954a05e2015ab907e">getModelName</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a19f8d9a9dbc7fb8d52aa180410cddc8b">getName</a>(); }   </div><div class="line"><a name="l01193"></a><span class="lineno"><a class="line" href="classFuncProto.html#a36076943e0845125efffbd7d1d1e46ef"> 1193</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a36076943e0845125efffbd7d1d1e46ef">getModelExtraPop</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a640ae87320b6d6781639643057e61e1d">getExtraPop</a>(); }    </div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;  <span class="keywordtype">bool</span> isInputLocked(<span class="keywordtype">void</span>) <span class="keyword">const</span>;                   </div><div class="line"><a name="l01196"></a><span class="lineno"><a class="line" href="classFuncProto.html#aa8e57d21d21d08253f67cb201e83c5e4"> 1196</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#aa8e57d21d21d08253f67cb201e83c5e4">isOutputLocked</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> store-&gt;<a class="code" href="classProtoStore.html#aeb240f8e1b797060196c4bb7be000197">getOutput</a>()-&gt;<a class="code" href="classProtoParameter.html#a155b564b34ae0b36d39d5a1caf5d0014">isTypeLocked</a>(); }    </div><div class="line"><a name="l01197"></a><span class="lineno"><a class="line" href="classFuncProto.html#a34162359ab3bd910a376bdad196f52e0"> 1197</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a34162359ab3bd910a376bdad196f52e0">isModelLocked</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;modellock)!=0); } </div><div class="line"><a name="l01198"></a><span class="lineno"><a class="line" href="classFuncProto.html#ac002aea4a1495011c1a577d343755c21"> 1198</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#ac002aea4a1495011c1a577d343755c21">isUnknownModel</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;unknown_model)!=0); }    </div><div class="line"><a name="l01199"></a><span class="lineno"><a class="line" href="classFuncProto.html#a662b2cce15487591fabd9632a335986c"> 1199</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a662b2cce15487591fabd9632a335986c">hasCustomStorage</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;custom_storage)!=0); } </div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;  <span class="keywordtype">void</span> setInputLock(<span class="keywordtype">bool</span> val);              </div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;  <span class="keywordtype">void</span> setOutputLock(<span class="keywordtype">bool</span> val);             </div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;</div><div class="line"><a name="l01208"></a><span class="lineno"><a class="line" href="classFuncProto.html#acc303c449c418dd875319c6f6cd9436f"> 1208</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#acc303c449c418dd875319c6f6cd9436f">setModelLock</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|modellock) : (flags &amp; ~((uint4)modellock)); }</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div><div class="line"><a name="l01210"></a><span class="lineno"><a class="line" href="classFuncProto.html#a1195921be7caf4244970a23b0eafef67"> 1210</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a1195921be7caf4244970a23b0eafef67">isInline</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; is_inline)!=0); }    </div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01216"></a><span class="lineno"><a class="line" href="classFuncProto.html#a843bc3ca11536028c5cb00ce5479182d"> 1216</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#a843bc3ca11536028c5cb00ce5479182d">setInline</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|is_inline) : (flags &amp; ~((uint4)is_inline)); }</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01222"></a><span class="lineno"><a class="line" href="classFuncProto.html#a88af8e37c1ddb25fd9d6d8322ec436c6"> 1222</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a88af8e37c1ddb25fd9d6d8322ec436c6">getInjectId</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> injectid; }</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;</div><div class="line"><a name="l01228"></a><span class="lineno"><a class="line" href="classFuncProto.html#a93a764c6b7aa6f4718a38df9881666df"> 1228</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a93a764c6b7aa6f4718a38df9881666df">getReturnBytesConsumed</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> returnBytesConsumed; }</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;  <span class="keywordtype">bool</span> setReturnBytesConsumed(int4 val);    </div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;</div><div class="line"><a name="l01233"></a><span class="lineno"><a class="line" href="classFuncProto.html#a2f1510914c66b2201248a6a06d282948"> 1233</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a2f1510914c66b2201248a6a06d282948">isNoReturn</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; no_return)!=0); }</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;</div><div class="line"><a name="l01238"></a><span class="lineno"><a class="line" href="classFuncProto.html#aacaf0bda9b424dfd5c6a28d3a45fb100"> 1238</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#aacaf0bda9b424dfd5c6a28d3a45fb100">setNoReturn</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|no_return) : (flags &amp; ~((uint4)no_return)); }</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div><div class="line"><a name="l01241"></a><span class="lineno"><a class="line" href="classFuncProto.html#a2a274b3ff58e50e73e4eaa82cb08bae3"> 1241</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a2a274b3ff58e50e73e4eaa82cb08bae3">hasThisPointer</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; has_thisptr)!=0); }</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;</div><div class="line"><a name="l01246"></a><span class="lineno"><a class="line" href="classFuncProto.html#a4b4b02b22968723dcdb23ba51955e96e"> 1246</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#a4b4b02b22968723dcdb23ba51955e96e">setThisPointer</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|has_thisptr) : (flags &amp; ~((uint4)has_thisptr)); }</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;</div><div class="line"><a name="l01249"></a><span class="lineno"><a class="line" href="classFuncProto.html#a007c1b4a9c33831738e3ac9bc283c5a4"> 1249</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a007c1b4a9c33831738e3ac9bc283c5a4">isConstructor</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; is_constructor)!=0); }</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"><a class="line" href="classFuncProto.html#a1ff2f80e5cf4043147ccd83a863ee83f"> 1254</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#a1ff2f80e5cf4043147ccd83a863ee83f">setConstructor</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|is_constructor) : (flags &amp; ~((uint4)is_constructor)); }</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;</div><div class="line"><a name="l01257"></a><span class="lineno"><a class="line" href="classFuncProto.html#aed492939de15e4ea60f9970f2ec685ac"> 1257</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#aed492939de15e4ea60f9970f2ec685ac">isDestructor</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags &amp; is_destructor)!=0); }</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"><a class="line" href="classFuncProto.html#aa191f5c52ce98ba14ef14f63a763a7da"> 1262</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#aa191f5c52ce98ba14ef14f63a763a7da">setDestructor</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|is_destructor) : (flags &amp; ~((uint4)is_destructor)); }</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;</div><div class="line"><a name="l01265"></a><span class="lineno"><a class="line" href="classFuncProto.html#abeba6c216afa6ad43160d69a10433fab"> 1265</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#abeba6c216afa6ad43160d69a10433fab">hasInputErrors</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;error_inputparam)!=0); }</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;</div><div class="line"><a name="l01268"></a><span class="lineno"><a class="line" href="classFuncProto.html#ace0306cd7ee2a040dd783bd5e7606370"> 1268</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#ace0306cd7ee2a040dd783bd5e7606370">hasOutputErrors</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;error_outputparam)!=0); }</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;</div><div class="line"><a name="l01273"></a><span class="lineno"><a class="line" href="classFuncProto.html#ad5f36aaa3e2d1d7cdc90d101065abbc0"> 1273</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#ad5f36aaa3e2d1d7cdc90d101065abbc0">setInputErrors</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|error_inputparam) : (flags &amp; ~((uint4)error_inputparam)); }</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;</div><div class="line"><a name="l01278"></a><span class="lineno"><a class="line" href="classFuncProto.html#ac8eacd70fbc6e4cd5d694d2ae5b1ed64"> 1278</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#ac8eacd70fbc6e4cd5d694d2ae5b1ed64">setOutputErrors</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|error_outputparam) : (flags &amp; ~((uint4)error_outputparam)); }</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;</div><div class="line"><a name="l01280"></a><span class="lineno"><a class="line" href="classFuncProto.html#a256f0d04256e214c44b653501514c3e0"> 1280</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a256f0d04256e214c44b653501514c3e0">getExtraPop</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> extrapop; }     </div><div class="line"><a name="l01281"></a><span class="lineno"><a class="line" href="classFuncProto.html#af32fa24642ff5423ec167e6f8bca065a"> 1281</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#af32fa24642ff5423ec167e6f8bca065a">setExtraPop</a>(int4 ep) { extrapop = ep; }          </div><div class="line"><a name="l01282"></a><span class="lineno"><a class="line" href="classFuncProto.html#aa68fc3fa0f616ed233026bcb415a1143"> 1282</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#aa68fc3fa0f616ed233026bcb415a1143">getInjectUponEntry</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#af505f8d493ab0dcefca9e94941c13658">getInjectUponEntry</a>(); }   </div><div class="line"><a name="l01283"></a><span class="lineno"><a class="line" href="classFuncProto.html#a3c835c084a2714801d06d68631aa52ec"> 1283</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a3c835c084a2714801d06d68631aa52ec">getInjectUponReturn</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a2e8994c68acebcf5c0278d86be39a530">getInjectUponReturn</a>(); } </div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;  <span class="keywordtype">void</span> resolveExtraPop(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;  <span class="keywordtype">void</span> clearUnlockedInput(<span class="keywordtype">void</span>);        </div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;  <span class="keywordtype">void</span> clearUnlockedOutput(<span class="keywordtype">void</span>);       </div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;  <span class="keywordtype">void</span> clearInput(<span class="keywordtype">void</span>);            </div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;  <span class="keywordtype">void</span> cancelInjectId(<span class="keywordtype">void</span>);            </div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;  <span class="keywordtype">void</span> resolveModel(<a class="code" href="classParamActive.html">ParamActive</a> *active);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"><a class="line" href="classFuncProto.html#a06ef0c088573715372df24ef978bd610"> 1297</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#a06ef0c088573715372df24ef978bd610">deriveInputMap</a>(<a class="code" href="classParamActive.html">ParamActive</a> *active)<span class="keyword"> const </span>{</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;    model-&gt;<a class="code" href="classProtoModel.html#a7f6da17343cb12b0e798fe7211441c58">deriveInputMap</a>(active); }</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;</div><div class="line"><a name="l01304"></a><span class="lineno"><a class="line" href="classFuncProto.html#a750224dcda509d76d01e3f45a3d38117"> 1304</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#a750224dcda509d76d01e3f45a3d38117">deriveOutputMap</a>(<a class="code" href="classParamActive.html">ParamActive</a> *active)<span class="keyword"> const </span>{</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    model-&gt;<a class="code" href="classProtoModel.html#a463595607985ec774f3df35dfbd7ca94">deriveOutputMap</a>(active); }</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;</div><div class="line"><a name="l01316"></a><span class="lineno"><a class="line" href="classFuncProto.html#a961837591bf1445a8db9d7604c1e5046"> 1316</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a961837591bf1445a8db9d7604c1e5046">checkInputJoin</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;hiaddr,int4 hisz,<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loaddr,int4 losz)<span class="keyword"> const </span>{</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;    <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a06031cb84a876e36a3648362c4af8662">checkInputJoin</a>(hiaddr,hisz,loaddr,losz); }</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;</div><div class="line"><a name="l01327"></a><span class="lineno"><a class="line" href="classFuncProto.html#a768d557c966fc2f59c8ae0f09777b4fe"> 1327</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a768d557c966fc2f59c8ae0f09777b4fe">checkInputSplit</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,int4 splitpoint)<span class="keyword"> const </span>{</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a6ddc6e7d218491b657d1f5e5bb997592">checkInputSplit</a>(loc,size,splitpoint); }</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;  <span class="keywordtype">void</span> updateInputTypes(<span class="keyword">const</span> vector&lt;Varnode *&gt; &amp;triallist,<a class="code" href="classParamActive.html">ParamActive</a> *activeinput);</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;  <span class="keywordtype">void</span> updateInputNoTypes(<span class="keyword">const</span> vector&lt;Varnode *&gt; &amp;triallist,<a class="code" href="classParamActive.html">ParamActive</a> *activeinput,<a class="code" href="classTypeFactory.html">TypeFactory</a> *factory);</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;  <span class="keywordtype">void</span> updateOutputTypes(<span class="keyword">const</span> vector&lt;Varnode *&gt; &amp;triallist);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;  <span class="keywordtype">void</span> updateOutputNoTypes(<span class="keyword">const</span> vector&lt;Varnode *&gt; &amp;triallist,<a class="code" href="classTypeFactory.html">TypeFactory</a> *factory);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;  <span class="keywordtype">void</span> updateAllTypes(<span class="keyword">const</span> vector&lt;string&gt; &amp;namelist,<span class="keyword">const</span> vector&lt;Datatype *&gt; &amp;typelist,<span class="keywordtype">bool</span> dtdtdt);</div><div class="line"><a name="l01335"></a><span class="lineno"><a class="line" href="classFuncProto.html#a3c9f97f81ec970bcd40d37f093a1765e"> 1335</a></span>&#160;  <a class="code" href="classProtoParameter.html">ProtoParameter</a> *<a class="code" href="classFuncProto.html#a3c9f97f81ec970bcd40d37f093a1765e">getParam</a>(int4 i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> store-&gt;<a class="code" href="classProtoStore.html#a97623d0ed5720f94d7c671edccbd9142">getInput</a>(i); } </div><div class="line"><a name="l01336"></a><span class="lineno"><a class="line" href="classFuncProto.html#abc9a8f192846b36ba99ed0464bb10862"> 1336</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#abc9a8f192846b36ba99ed0464bb10862">removeParam</a>(int4 i) { store-&gt;<a class="code" href="classProtoStore.html#afa6361ac313cdd2ccef1531209389cdc">clearInput</a>(i); }        </div><div class="line"><a name="l01337"></a><span class="lineno"><a class="line" href="classFuncProto.html#a8151d0b73aa51650515ba3f26e73e903"> 1337</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a8151d0b73aa51650515ba3f26e73e903">numParams</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> store-&gt;<a class="code" href="classProtoStore.html#a641e1b680e3a7c67b65a964d06d60187">getNumInputs</a>(); }  </div><div class="line"><a name="l01338"></a><span class="lineno"><a class="line" href="classFuncProto.html#a92e6871d7ee764e7c5aa8b10bf47705a"> 1338</a></span>&#160;  <a class="code" href="classProtoParameter.html">ProtoParameter</a> *<a class="code" href="classFuncProto.html#a92e6871d7ee764e7c5aa8b10bf47705a">getOutput</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> store-&gt;<a class="code" href="classProtoStore.html#aeb240f8e1b797060196c4bb7be000197">getOutput</a>(); }  </div><div class="line"><a name="l01339"></a><span class="lineno"><a class="line" href="classFuncProto.html#ad457e79208b6e7f4f030c2c325db1dba"> 1339</a></span>&#160;  <a class="code" href="classDatatype.html">Datatype</a> *<a class="code" href="classFuncProto.html#ad457e79208b6e7f4f030c2c325db1dba">getOutputType</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> store-&gt;<a class="code" href="classProtoStore.html#aeb240f8e1b797060196c4bb7be000197">getOutput</a>()-&gt;<a class="code" href="classProtoParameter.html#a05bfe5b4fe563c1e4e93bf2648239061">getType</a>(); } </div><div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="classFuncProto.html#ad8bbc6db7bc4ae8105688a0321fa1ae4"> 1340</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classRangeList.html">RangeList</a> &amp;<a class="code" href="classFuncProto.html#ad8bbc6db7bc4ae8105688a0321fa1ae4">getLocalRange</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a4736d007016235f93ae81100f8312e26">getLocalRange</a>(); } </div><div class="line"><a name="l01341"></a><span class="lineno"><a class="line" href="classFuncProto.html#a147ea3f4d50df93a0ff16f17ea204ac9"> 1341</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classRangeList.html">RangeList</a> &amp;<a class="code" href="classFuncProto.html#a147ea3f4d50df93a0ff16f17ea204ac9">getParamRange</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a2a83c006b588fad0b0842c6f9862e66b">getParamRange</a>(); } </div><div class="line"><a name="l01342"></a><span class="lineno"><a class="line" href="classFuncProto.html#a2cb0c5a60d2cfd70462d8e9f75aa9819"> 1342</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a2cb0c5a60d2cfd70462d8e9f75aa9819">isStackGrowsNegative</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a9fd453910b4e750e3c67f26969c17001">isStackGrowsNegative</a>(); }   </div><div class="line"><a name="l01343"></a><span class="lineno"><a class="line" href="classFuncProto.html#a4f4e0521c603ad73b2d73ad96f8cb954"> 1343</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a4f4e0521c603ad73b2d73ad96f8cb954">isDotdotdot</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;dotdotdot)!=0); }   </div><div class="line"><a name="l01344"></a><span class="lineno"><a class="line" href="classFuncProto.html#a6d237b521223b740d5d052b68966b556"> 1344</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#a6d237b521223b740d5d052b68966b556">setDotdotdot</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|dotdotdot) : (flags &amp; ~((uint4)dotdotdot)); }  </div><div class="line"><a name="l01345"></a><span class="lineno"><a class="line" href="classFuncProto.html#a079e52c493d00604502c27fe6264fe1b"> 1345</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncProto.html#a079e52c493d00604502c27fe6264fe1b">isOverride</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((flags&amp;is_override)!=0); }  </div><div class="line"><a name="l01346"></a><span class="lineno"><a class="line" href="classFuncProto.html#a827a8f9335cbb8587a566d8e1765d5a2"> 1346</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncProto.html#a827a8f9335cbb8587a566d8e1765d5a2">setOverride</a>(<span class="keywordtype">bool</span> val) { flags = val ? (flags|is_override) : (flags &amp; ~((uint4)is_override)); }   </div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;  uint4 hasEffect(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;  vector&lt;EffectRecord&gt;::const_iterator effectBegin(<span class="keywordtype">void</span>) <span class="keyword">const</span>; </div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;  vector&lt;EffectRecord&gt;::const_iterator effectEnd(<span class="keywordtype">void</span>) <span class="keyword">const</span>;   </div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;  int4 numLikelyTrash(<span class="keywordtype">void</span>) <span class="keyword">const</span>;              </div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;  <span class="keyword">const</span> <a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;getLikelyTrash(int4 i) <span class="keyword">const</span>;      </div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;  int4 characterizeAsInputParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;  <span class="keywordtype">bool</span> possibleInputParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;  <span class="keywordtype">bool</span> possibleOutputParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;</div><div class="line"><a name="l01362"></a><span class="lineno"><a class="line" href="classFuncProto.html#a07b4705cc5b9695e8c96e1e9294f0cfb"> 1362</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a07b4705cc5b9695e8c96e1e9294f0cfb">getMaxInputDelay</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a0a6e71fa168f7af91d6b658516a61326">getMaxInputDelay</a>(); }</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;</div><div class="line"><a name="l01370"></a><span class="lineno"><a class="line" href="classFuncProto.html#a79cb1fac9b0d2d2c55d3ff4fa7db5c27"> 1370</a></span>&#160;  int4 <a class="code" href="classFuncProto.html#a79cb1fac9b0d2d2c55d3ff4fa7db5c27">getMaxOutputDelay</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a6692a33595e306f23f23d98093a006bf">getMaxOutputDelay</a>(); }</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;  <span class="keywordtype">bool</span> unjustifiedInputParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div><div class="line"><a name="l01384"></a><span class="lineno"><a class="line" href="classFuncProto.html#ace1a73b8df1756f6945df97319270508"> 1384</a></span>&#160;  <a class="code" href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a> <a class="code" href="classFuncProto.html#ace1a73b8df1756f6945df97319270508">assumedInputExtension</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res)<span class="keyword"> const </span>{</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;    <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a4fcf1b51c0ce470e353e798b9eaa8603">assumedInputExtension</a>(addr,size,res); }</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"><a class="line" href="classFuncProto.html#a2550a272235e295512ee5eb7a2674638"> 1397</a></span>&#160;  <a class="code" href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a> <a class="code" href="classFuncProto.html#a2550a272235e295512ee5eb7a2674638">assumedOutputExtension</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res)<span class="keyword"> const </span>{</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;    <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a74ad1cd29d07b30a4525049a6b2ee270">assumedOutputExtension</a>(addr,size,res); }</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;  <span class="keywordtype">bool</span> getBiggestContainedInputParam(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;loc,int4 size,<a class="code" href="structVarnodeData.html">VarnodeData</a> &amp;res) <span class="keyword">const</span>;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;  <span class="keywordtype">bool</span> isCompatible(<span class="keyword">const</span> <a class="code" href="classFuncProto.html">FuncProto</a> &amp;op2) <span class="keyword">const</span>;</div><div class="line"><a name="l01404"></a><span class="lineno"><a class="line" href="classFuncProto.html#a41cf46f20373d37b4a7cf22201112abb"> 1404</a></span>&#160;  <a class="code" href="classAddrSpace.html">AddrSpace</a> *<a class="code" href="classFuncProto.html#a41cf46f20373d37b4a7cf22201112abb">getSpacebase</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model-&gt;<a class="code" href="classProtoModel.html#a9918d9e7595d9f33f53bd9ffd3118f19">getSpacebase</a>(); }     </div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;  <span class="keywordtype">void</span> printRaw(<span class="keyword">const</span> <span class="keywordtype">string</span> &amp;funcname,ostream &amp;s) <span class="keyword">const</span>;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01411"></a><span class="lineno"><a class="line" href="classFuncProto.html#aeb1c9aa013921f2738ad28dce59867e6"> 1411</a></span>&#160;  uint4 <a class="code" href="classFuncProto.html#aeb1c9aa013921f2738ad28dce59867e6">getComparableFlags</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (flags &amp; (dotdotdot | is_constructor | is_destructor | has_thisptr )); }</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;  <span class="keywordtype">void</span> saveXml(ostream &amp;s) <span class="keyword">const</span>;</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;  <span class="keywordtype">void</span> restoreXml(<span class="keyword">const</span> <a class="code" href="classElement.html">Element</a> *el,<a class="code" href="classArchitecture.html">Architecture</a> *glb);</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;};</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;<span class="keyword">class </span><a class="code" href="classFuncdata.html">Funcdata</a>;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;</div><div class="line"><a name="l01436"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html"> 1436</a></span>&#160;<span class="keyword">class </span><a class="code" href="classFuncCallSpecs.html">FuncCallSpecs</a> : <span class="keyword">public</span> <a class="code" href="classFuncProto.html">FuncProto</a> {</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;  <a class="code" href="classPcodeOp.html">PcodeOp</a> *op;          </div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;  <span class="keywordtype">string</span> name;          </div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;  <a class="code" href="classAddress.html">Address</a> entryaddress;     </div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;  <a class="code" href="classFuncdata.html">Funcdata</a> *fd;         </div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;  int4 effective_extrapop;  </div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;  uintb stackoffset;        </div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;  int4 stackPlaceholderSlot;    </div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;  int4 paramshift;      </div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;  int4 matchCallCount;      </div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;  <a class="code" href="classParamActive.html">ParamActive</a> activeinput;  </div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;  <a class="code" href="classParamActive.html">ParamActive</a> activeoutput; </div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;  <span class="keyword">mutable</span> vector&lt;int4&gt; inputConsume;    </div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;  <span class="keywordtype">bool</span> isinputactive;       </div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;  <span class="keywordtype">bool</span> isoutputactive;      </div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;  <span class="keywordtype">bool</span> isbadjumptable;      </div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;  <a class="code" href="classVarnode.html">Varnode</a> *getSpacebaseRelative(<span class="keywordtype">void</span>) <span class="keyword">const</span>;    </div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;  <a class="code" href="classVarnode.html">Varnode</a> *buildParam(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,<a class="code" href="classVarnode.html">Varnode</a> *vn,<a class="code" href="classProtoParameter.html">ProtoParameter</a> *param,<a class="code" href="classVarnode.html">Varnode</a> *stackref);</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;  int4 transferLockedInputParam(<a class="code" href="classProtoParameter.html">ProtoParameter</a> *param);</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;  <a class="code" href="classPcodeOp.html">PcodeOp</a> *transferLockedOutputParam(<a class="code" href="classProtoParameter.html">ProtoParameter</a> *param);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;  <span class="keywordtype">bool</span> transferLockedInput(vector&lt;Varnode *&gt; &amp;newinput);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;  <span class="keywordtype">bool</span> transferLockedOutput(<a class="code" href="classVarnode.html">Varnode</a> *&amp;newoutput);</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;  <span class="keywordtype">void</span> commitNewInputs(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,vector&lt;Varnode *&gt; &amp;newinput);</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;  <span class="keywordtype">void</span> commitNewOutputs(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,<a class="code" href="classVarnode.html">Varnode</a> *newout);</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;  <span class="keywordtype">void</span> collectOutputTrialVarnodes(vector&lt;Varnode *&gt; &amp;trialvn);</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;  <span class="keyword">enum</span> {</div><div class="line"><a name="l01463"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a5f7aaec10dc1e68d73a07eaf4cac2542a584ec7401809588c22798803bff5b796"> 1463</a></span>&#160;    offset_unknown = 0xBADBEEF                  </div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;  };</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;  <a class="code" href="classFuncCallSpecs.html">FuncCallSpecs</a>(<a class="code" href="classPcodeOp.html">PcodeOp</a> *call_op);                  </div><div class="line"><a name="l01466"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a9dbc2ae7d43e62971751d96cbddf1b32"> 1466</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#a9dbc2ae7d43e62971751d96cbddf1b32">setAddress</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr) { entryaddress = addr; } </div><div class="line"><a name="l01467"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#ad88ee3058ece9a8b19f4e25566c03121"> 1467</a></span>&#160;  <a class="code" href="classPcodeOp.html">PcodeOp</a> *<a class="code" href="classFuncCallSpecs.html#ad88ee3058ece9a8b19f4e25566c03121">getOp</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> op; }         </div><div class="line"><a name="l01468"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a860b42c7f272e40dae078854e101b6bc"> 1468</a></span>&#160;  <a class="code" href="classFuncdata.html">Funcdata</a> *<a class="code" href="classFuncCallSpecs.html#a860b42c7f272e40dae078854e101b6bc">getFuncdata</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fd; }      </div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;  <span class="keywordtype">void</span> setFuncdata(<a class="code" href="classFuncdata.html">Funcdata</a> *f);                </div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;  <a class="code" href="classFuncCallSpecs.html">FuncCallSpecs</a> *clone(<a class="code" href="classPcodeOp.html">PcodeOp</a> *newop) <span class="keyword">const</span>;           </div><div class="line"><a name="l01471"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a5c5bb2445140cdde864320679ba347b0"> 1471</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">string</span> &amp;<a class="code" href="classFuncCallSpecs.html#a5c5bb2445140cdde864320679ba347b0">getName</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name; }        </div><div class="line"><a name="l01472"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a0a5d18be6037559397af11e6764abbcd"> 1472</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;<a class="code" href="classFuncCallSpecs.html#a0a5d18be6037559397af11e6764abbcd">getEntryAddress</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> entryaddress; }   </div><div class="line"><a name="l01473"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a41d9cc82055fdcbc01f0a37ae3a56a01"> 1473</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#a41d9cc82055fdcbc01f0a37ae3a56a01">setEffectiveExtraPop</a>(int4 epop) { effective_extrapop = epop; }   </div><div class="line"><a name="l01474"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#ade3352e35ffd4ed59bbc78f4b43c2998"> 1474</a></span>&#160;  int4 <a class="code" href="classFuncCallSpecs.html#ade3352e35ffd4ed59bbc78f4b43c2998">getEffectiveExtraPop</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> effective_extrapop; }  </div><div class="line"><a name="l01475"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#ad8990f080a96809b347656d7331236c5"> 1475</a></span>&#160;  uintb <a class="code" href="classFuncCallSpecs.html#ad8990f080a96809b347656d7331236c5">getSpacebaseOffset</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stackoffset; }  </div><div class="line"><a name="l01476"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#ac1c86fdb931fd085ca45ff39a091552a"> 1476</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#ac1c86fdb931fd085ca45ff39a091552a">setParamshift</a>(int4 val) { paramshift = val; }        </div><div class="line"><a name="l01477"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#adc330a0897cbe51cd961095d77d7a6f0"> 1477</a></span>&#160;  int4 <a class="code" href="classFuncCallSpecs.html#adc330a0897cbe51cd961095d77d7a6f0">getParamshift</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> paramshift; }     </div><div class="line"><a name="l01478"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a3eae717564dd4884c28623d4a7a7b182"> 1478</a></span>&#160;  int4 <a class="code" href="classFuncCallSpecs.html#a3eae717564dd4884c28623d4a7a7b182">getMatchCallCount</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> matchCallCount; } </div><div class="line"><a name="l01479"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#abfda84c2a3919927503193ce9595efd6"> 1479</a></span>&#160;  int4 <a class="code" href="classFuncCallSpecs.html#abfda84c2a3919927503193ce9595efd6">getStackPlaceholderSlot</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> stackPlaceholderSlot; } </div><div class="line"><a name="l01480"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#ab398038b75b6f13b865384da3fd143b9"> 1480</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#ab398038b75b6f13b865384da3fd143b9">setStackPlaceholderSlot</a>(int4 slot) { stackPlaceholderSlot = slot;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;      <span class="keywordflow">if</span> (isinputactive) activeinput.<a class="code" href="classParamActive.html#ad5e20b21265e1788deb66b2f30b3b55b">setPlaceholderSlot</a>(); }    </div><div class="line"><a name="l01482"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a571062bec4389e2602577b6eed10cbf5"> 1482</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#a571062bec4389e2602577b6eed10cbf5">clearStackPlaceholderSlot</a>(<span class="keywordtype">void</span>) {</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;    stackPlaceholderSlot = -1; <span class="keywordflow">if</span> (isinputactive) activeinput.<a class="code" href="classParamActive.html#a42ec2498ce1d913aaed22b67b479d6e5">freePlaceholderSlot</a>(); }  </div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;  <span class="keywordtype">void</span> initActiveInput(<span class="keywordtype">void</span>);            </div><div class="line"><a name="l01486"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#af24a93644abe9ee56a9aa86ba4cb0c9f"> 1486</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#af24a93644abe9ee56a9aa86ba4cb0c9f">clearActiveInput</a>(<span class="keywordtype">void</span>) { isinputactive = <span class="keyword">false</span>; }    </div><div class="line"><a name="l01487"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a87904aacb6678c8bde4c0c2c781db830"> 1487</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#a87904aacb6678c8bde4c0c2c781db830">initActiveOutput</a>(<span class="keywordtype">void</span>) { isoutputactive = <span class="keyword">true</span>; }    </div><div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a5c13854db24718357b5ce7de7802b4ed"> 1488</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#a5c13854db24718357b5ce7de7802b4ed">clearActiveOutput</a>(<span class="keywordtype">void</span>) { isoutputactive = <span class="keyword">false</span>; }  </div><div class="line"><a name="l01489"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a4145c5e63b80ece45a2a4f0fd5949138"> 1489</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncCallSpecs.html#a4145c5e63b80ece45a2a4f0fd5949138">isInputActive</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> isinputactive; }  </div><div class="line"><a name="l01490"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a81e8386ebb901a273ef40d8e8430fb57"> 1490</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncCallSpecs.html#a81e8386ebb901a273ef40d8e8430fb57">isOutputActive</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> isoutputactive; }    </div><div class="line"><a name="l01491"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#abe07c5f01eaa2171a4d8c4c832910022"> 1491</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classFuncCallSpecs.html#abe07c5f01eaa2171a4d8c4c832910022">setBadJumpTable</a>(<span class="keywordtype">bool</span> val) { isbadjumptable = val; }  </div><div class="line"><a name="l01492"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#ae9f1afc18ffb30d43e25b0065823f366"> 1492</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classFuncCallSpecs.html#ae9f1afc18ffb30d43e25b0065823f366">isBadJumpTable</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> isbadjumptable; }    </div><div class="line"><a name="l01493"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a32432a6c7b201dc160ae0b2480a1b8b9"> 1493</a></span>&#160;  <a class="code" href="classParamActive.html">ParamActive</a> *<a class="code" href="classFuncCallSpecs.html#a32432a6c7b201dc160ae0b2480a1b8b9">getActiveInput</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> &amp;activeinput; }    </div><div class="line"><a name="l01494"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a866e9a9406614829224612035f28d311"> 1494</a></span>&#160;  <a class="code" href="classParamActive.html">ParamActive</a> *<a class="code" href="classFuncCallSpecs.html#a866e9a9406614829224612035f28d311">getActiveOutput</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> &amp;activeoutput; }  </div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;  <span class="keywordtype">bool</span> checkInputJoin(int4 slot1,<span class="keywordtype">bool</span> ishislot,<a class="code" href="classVarnode.html">Varnode</a> *vn1,<a class="code" href="classVarnode.html">Varnode</a> *vn2) <span class="keyword">const</span>;</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;  <span class="keywordtype">void</span> doInputJoin(int4 slot1,<span class="keywordtype">bool</span> ishislot);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;  <span class="keywordtype">bool</span> lateRestriction(<span class="keyword">const</span> <a class="code" href="classFuncProto.html">FuncProto</a> &amp;restrictedProto,vector&lt;Varnode *&gt; &amp;newinput,<a class="code" href="classVarnode.html">Varnode</a> *&amp;newoutput);</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;  <span class="keywordtype">void</span> deindirect(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,<a class="code" href="classFuncdata.html">Funcdata</a> *newfd);</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;  <span class="keywordtype">void</span> forceSet(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,<span class="keyword">const</span> <a class="code" href="classFuncProto.html">FuncProto</a> &amp;fp);</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;  <span class="keywordtype">void</span> insertPcode(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data);</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;  <span class="keywordtype">void</span> resolveSpacebaseRelative(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,<a class="code" href="classVarnode.html">Varnode</a> *phvn);</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160;  <span class="keywordtype">void</span> abortSpacebaseRelative(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data);</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;  <span class="keywordtype">void</span> finalInputCheck(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;  <span class="keywordtype">void</span> checkInputTrialUse(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,<a class="code" href="classAliasChecker.html">AliasChecker</a> &amp;aliascheck);</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;  <span class="keywordtype">void</span> checkOutputTrialUse(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,vector&lt;Varnode *&gt; &amp;trialvn);</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;  <span class="keywordtype">void</span> buildInputFromTrials(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data);</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;  <span class="keywordtype">void</span> buildOutputFromTrials(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data,vector&lt;Varnode *&gt; &amp;trialvn);</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;  int4 getInputBytesConsumed(int4 slot) <span class="keyword">const</span>;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;  <span class="keywordtype">bool</span> setInputBytesConsumed(int4 slot,int4 val) <span class="keyword">const</span>;</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;  <span class="keywordtype">void</span> paramshiftModifyStart(<span class="keywordtype">void</span>);</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;  <span class="keywordtype">bool</span> paramshiftModifyStop(<a class="code" href="classFuncdata.html">Funcdata</a> &amp;data);</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;  uint4 hasEffectTranslate(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr,int4 size) <span class="keyword">const</span>;</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;  <span class="keyword">static</span> <a class="code" href="classVarnode.html">Varnode</a> *findPreexistingWhole(<a class="code" href="classVarnode.html">Varnode</a> *vn1,<a class="code" href="classVarnode.html">Varnode</a> *vn2);</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;</div><div class="line"><a name="l01520"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#aa1d084c81a9ae8656d7ef79c84398dc8"> 1520</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="classFuncCallSpecs.html">FuncCallSpecs</a> *<a class="code" href="classFuncCallSpecs.html#aa1d084c81a9ae8656d7ef79c84398dc8">getFspecFromConst</a>(<span class="keyword">const</span> <a class="code" href="classAddress.html">Address</a> &amp;addr) { <span class="keywordflow">return</span> (<a class="code" href="classFuncCallSpecs.html">FuncCallSpecs</a> *)(uintp)addr.<a class="code" href="classAddress.html#a208ce07ecf27e5c148d8395913831c2a">getOffset</a>(); }</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;</div><div class="line"><a name="l01527"></a><span class="lineno"><a class="line" href="classFuncCallSpecs.html#a57f3844d92136d3ab6b67ea9ea316aa7"> 1527</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classFuncCallSpecs.html#a57f3844d92136d3ab6b67ea9ea316aa7">compareByEntryAddress</a>(<span class="keyword">const</span> <a class="code" href="classFuncCallSpecs.html">FuncCallSpecs</a> *a,<span class="keyword">const</span> <a class="code" href="classFuncCallSpecs.html">FuncCallSpecs</a> *b) { <span class="keywordflow">return</span> a-&gt;entryaddress &lt; b-&gt;entryaddress; }</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> countMatchingCalls(<span class="keyword">const</span> vector&lt;FuncCallSpecs *&gt; &amp;qlst);</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;};</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;</div><div class="line"><a name="l01536"></a><span class="lineno"><a class="line" href="classParamActive.html#a4ce9f8640c32eb48df409ff71a6e15eb"> 1536</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classParamTrial.html">ParamTrial</a> &amp;<a class="code" href="classParamActive.html#a4ce9f8640c32eb48df409ff71a6e15eb">ParamActive::getTrialForInputVarnode</a>(int4 slot)<span class="keyword"> const</span></div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;<span class="keyword"></span></div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160;  slot -= ((stackplaceholder&lt;0)||(slot&lt;stackplaceholder)) ? 1 : 2;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;  <span class="keywordflow">return</span> trial[slot];</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;}</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;</div><div class="line"><a name="l01546"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a2d5a13546e325d96f0224cb5a8b09403"> 1546</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classEffectRecord.html#a2d5a13546e325d96f0224cb5a8b09403">EffectRecord::operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classEffectRecord.html">EffectRecord</a> &amp;op2)<span class="keyword"> const</span></div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;<span class="keyword"></span></div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160;  <span class="keywordflow">if</span> (address &lt; op2.address) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;  <span class="keywordflow">if</span> (address != op2.address) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;  <span class="keywordflow">return</span> (type &lt; op2.type);</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;}</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01554"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a2836f374f09e7ed7839505f5dd8b17b7"> 1554</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classEffectRecord.html#a2836f374f09e7ed7839505f5dd8b17b7">EffectRecord::operator==</a>(<span class="keyword">const</span> <a class="code" href="classEffectRecord.html">EffectRecord</a> &amp;op2)<span class="keyword"> const</span></div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;<span class="keyword"></span></div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;  <span class="keywordflow">if</span> (address != op2.address) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;  <span class="keywordflow">return</span> (type == op2.type);</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;}</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;</div><div class="line"><a name="l01561"></a><span class="lineno"><a class="line" href="classEffectRecord.html#a5291ec5070dde1ee06f3cfefb2fcc21a"> 1561</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classEffectRecord.html#a5291ec5070dde1ee06f3cfefb2fcc21a">EffectRecord::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classEffectRecord.html">EffectRecord</a> &amp;op2)<span class="keyword"> const</span></div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="keyword"></span></div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;  <span class="keywordflow">if</span> (address != op2.address) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;  <span class="keywordflow">return</span> (type != op2.type);</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;}</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="classFuncProto_html_a662b2cce15487591fabd9632a335986c"><div class="ttname"><a href="classFuncProto.html#a662b2cce15487591fabd9632a335986c">FuncProto::hasCustomStorage</a></div><div class="ttdeci">bool hasCustomStorage(void) const</div><div class="ttdoc">Is this a &quot;custom&quot; function prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1199</div></div>
<div class="ttc" id="classParamActive_html_ac0e9c62853e05738a55adfec7f626726"><div class="ttname"><a href="classParamActive.html#ac0e9c62853e05738a55adfec7f626726">ParamActive::sortTrials</a></div><div class="ttdeci">void sortTrials(void)</div><div class="ttdoc">Sort the trials in formal parameter order. </div><div class="ttdef"><b>Definition:</b> fspec.hh:251</div></div>
<div class="ttc" id="classParameterSymbol_html_a918d24c31eef2a92f8af3d5047d97659"><div class="ttname"><a href="classParameterSymbol.html#a918d24c31eef2a92f8af3d5047d97659">ParameterSymbol::ParameterSymbol</a></div><div class="ttdeci">ParameterSymbol(void)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1056</div></div>
<div class="ttc" id="structPrototypePieces_html_a06df4f0bbd4f67847962c3ae35e8945d"><div class="ttname"><a href="structPrototypePieces.html#a06df4f0bbd4f67847962c3ae35e8945d">PrototypePieces::dotdotdot</a></div><div class="ttdeci">bool dotdotdot</div><div class="ttdoc">True if prototype takes variable arguments. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1133</div></div>
<div class="ttc" id="classAddrSpace_html"><div class="ttname"><a href="classAddrSpace.html">AddrSpace</a></div><div class="ttdoc">A region where processor data is stored. </div><div class="ttdef"><b>Definition:</b> space.hh:73</div></div>
<div class="ttc" id="classParamListStandard_html_afe373fd5fb7807b7bba1d83649469cab"><div class="ttname"><a href="classParamListStandard.html#afe373fd5fb7807b7bba1d83649469cab">ParamListStandard::maxdelay</a></div><div class="ttdeci">int4 maxdelay</div><div class="ttdoc">Maximum heritage delay across all parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:494</div></div>
<div class="ttc" id="classFuncCallSpecs_html"><div class="ttname"><a href="classFuncCallSpecs.html">FuncCallSpecs</a></div><div class="ttdoc">A class for analyzing parameters to a sub-function call. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1436</div></div>
<div class="ttc" id="classProtoModel_html_a580207b945d3734b6f1e6023b3ca2678"><div class="ttname"><a href="classProtoModel.html#a580207b945d3734b6f1e6023b3ca2678">ProtoModel::isMerged</a></div><div class="ttdeci">virtual bool isMerged(void) const</div><div class="ttdoc">Is this a merged prototype model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:832</div></div>
<div class="ttc" id="classProtoModelMerged_html_a89ae5cb14a23eedeba04de6475d46f70"><div class="ttname"><a href="classProtoModelMerged.html#a89ae5cb14a23eedeba04de6475d46f70">ProtoModelMerged::ProtoModelMerged</a></div><div class="ttdeci">ProtoModelMerged(Architecture *g)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:885</div></div>
<div class="ttc" id="classParamList_html_a2aa16823d6e3b1c3c709e5540a8dcc3aa7fb6a81d3016db3c978ba684a8b6d84d"><div class="ttname"><a href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aa7fb6a81d3016db3c978ba684a8b6d84d">ParamList::p_standard_out</a></div><div class="ttdoc">Standard output (return value) model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:343</div></div>
<div class="ttc" id="classEffectRecord_html_a524045f2df2655c5d37c99e4297acfdf"><div class="ttname"><a href="classEffectRecord.html#a524045f2df2655c5d37c99e4297acfdf">EffectRecord::getType</a></div><div class="ttdeci">uint4 getType(void) const</div><div class="ttdoc">Get the type of effect. </div><div class="ttdef"><b>Definition:</b> fspec.hh:322</div></div>
<div class="ttc" id="classProtoParameter_html_a63533cc17e94e8b022414ca5b03a101e"><div class="ttname"><a href="classProtoParameter.html#a63533cc17e94e8b022414ca5b03a101e">ProtoParameter::~ProtoParameter</a></div><div class="ttdeci">virtual ~ProtoParameter(void)</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:906</div></div>
<div class="ttc" id="classScoreProtoModel_html_aeb55589e04d1f68f9bd2d2eebb4a5710"><div class="ttname"><a href="classScoreProtoModel.html#aeb55589e04d1f68f9bd2d2eebb4a5710">ScoreProtoModel::getNumMismatch</a></div><div class="ttdeci">int4 getNumMismatch(void) const</div><div class="ttdoc">Get the number of mismatched trials. </div><div class="ttdef"><b>Definition:</b> fspec.hh:866</div></div>
<div class="ttc" id="classParamListStandard_html_ae129a4db3bb767656a32daeffee806a5"><div class="ttname"><a href="classParamListStandard.html#ae129a4db3bb767656a32daeffee806a5">ParamListStandard::numgroup</a></div><div class="ttdeci">int4 numgroup</div><div class="ttdoc">Number of groups in this parameter convention. </div><div class="ttdef"><b>Definition:</b> fspec.hh:493</div></div>
<div class="ttc" id="classParamTrial_html_a827f24578c88cbcd001d49ac820c12c2"><div class="ttname"><a href="classParamTrial.html#a827f24578c88cbcd001d49ac820c12c2">ParamTrial::slotGroup</a></div><div class="ttdeci">int4 slotGroup(void) const</div><div class="ttdoc">Get position of this within its parameter group. </div><div class="ttdef"><b>Definition:</b> fspec.hh:205</div></div>
<div class="ttc" id="classProtoModel_html_a463595607985ec774f3df35dfbd7ca94"><div class="ttname"><a href="classProtoModel.html#a463595607985ec774f3df35dfbd7ca94">ProtoModel::deriveOutputMap</a></div><div class="ttdeci">void deriveOutputMap(ParamActive *active) const</div><div class="ttdoc">Given a list of output trials, derive the most likely output prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:660</div></div>
<div class="ttc" id="structParamUnassignedError_html"><div class="ttname"><a href="structParamUnassignedError.html">ParamUnassignedError</a></div><div class="ttdoc">Exception thrown when a prototype can&amp;#39;t be modeled properly. </div><div class="ttdef"><b>Definition:</b> fspec.hh:28</div></div>
<div class="ttc" id="classFuncCallSpecs_html_ad8990f080a96809b347656d7331236c5"><div class="ttname"><a href="classFuncCallSpecs.html#ad8990f080a96809b347656d7331236c5">FuncCallSpecs::getSpacebaseOffset</a></div><div class="ttdeci">uintb getSpacebaseOffset(void) const</div><div class="ttdoc">Get the stack-pointer relative offset at the point of this call site. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1475</div></div>
<div class="ttc" id="classDatatype_html"><div class="ttname"><a href="classDatatype.html">Datatype</a></div><div class="ttdoc">The base datatype class for the decompiler. </div><div class="ttdef"><b>Definition:</b> type.hh:62</div></div>
<div class="ttc" id="structParamUnassignedError_html_a07aae61447f2c586e1a66667ea150615"><div class="ttname"><a href="structParamUnassignedError.html#a07aae61447f2c586e1a66667ea150615">ParamUnassignedError::ParamUnassignedError</a></div><div class="ttdeci">ParamUnassignedError(const string &amp;s)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:29</div></div>
<div class="ttc" id="classParamTrial_html_a6a4ace8cab74a380e92b62505c70046a"><div class="ttname"><a href="classParamTrial.html#a6a4ace8cab74a380e92b62505c70046a">ParamTrial::setIndCreateFormed</a></div><div class="ttdeci">void setIndCreateFormed(void)</div><div class="ttdoc">Mark this trial as formed by indirect creation. </div><div class="ttdef"><b>Definition:</b> fspec.hh:201</div></div>
<div class="ttc" id="classFuncProto_html_a4b4b02b22968723dcdb23ba51955e96e"><div class="ttname"><a href="classFuncProto.html#a4b4b02b22968723dcdb23ba51955e96e">FuncProto::setThisPointer</a></div><div class="ttdeci">void setThisPointer(bool val)</div><div class="ttdoc">Toggle the this-call setting for this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1246</div></div>
<div class="ttc" id="classProtoModel_html_a7f6da17343cb12b0e798fe7211441c58"><div class="ttname"><a href="classProtoModel.html#a7f6da17343cb12b0e798fe7211441c58">ProtoModel::deriveInputMap</a></div><div class="ttdeci">void deriveInputMap(ParamActive *active) const</div><div class="ttdoc">Given a list of input trials, derive the most likely input prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:653</div></div>
<div class="ttc" id="classParamActive_html_a3335a98aec79bc7b683f6edc0e954c96"><div class="ttname"><a href="classParamActive.html#a3335a98aec79bc7b683f6edc0e954c96">ParamActive::isRecoverSubcall</a></div><div class="ttdeci">bool isRecoverSubcall(void) const</div><div class="ttdoc">Are these trials for a call to a sub-function. </div><div class="ttdef"><b>Definition:</b> fspec.hh:242</div></div>
<div class="ttc" id="classProtoStoreSymbol_html_aa6631290325889edb7ef7699fdd8a90f"><div class="ttname"><a href="classProtoStoreSymbol.html#aa6631290325889edb7ef7699fdd8a90f">ProtoStoreSymbol::clone</a></div><div class="ttdeci">virtual ProtoStore * clone(void) const</div><div class="ttdoc">Clone the entire collection of parameter descriptions. </div><div class="ttdef"><b>Definition:</b> fspec.cc:2573</div></div>
<div class="ttc" id="classFuncProto_html_a256f0d04256e214c44b653501514c3e0"><div class="ttname"><a href="classFuncProto.html#a256f0d04256e214c44b653501514c3e0">FuncProto::getExtraPop</a></div><div class="ttdeci">int4 getExtraPop(void) const</div><div class="ttdoc">Get the general extrapop setting for this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1280</div></div>
<div class="ttc" id="classParamEntry_html_aa260212ed69b0efb8fc52aba0930ab11"><div class="ttname"><a href="classParamEntry.html#aa260212ed69b0efb8fc52aba0930ab11">ParamEntry::getGroupSize</a></div><div class="ttdeci">int4 getGroupSize(void) const</div><div class="ttdoc">Get the number of groups occupied by this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:81</div></div>
<div class="ttc" id="classParamEntryRange_html_a06535ace41d575323a459b955ddcbe43"><div class="ttname"><a href="classParamEntryRange.html#a06535ace41d575323a459b955ddcbe43">ParamEntryRange::subsorttype</a></div><div class="ttdeci">SubsortPosition subsorttype</div><div class="ttdoc">The sub-sort object for a rangemap. </div><div class="ttdef"><b>Definition:</b> fspec.hh:130</div></div>
<div class="ttc" id="opcodes_8hh_html_abeb7dfb0e9e2b3114e240a405d046ea7"><div class="ttname"><a href="opcodes_8hh.html#abeb7dfb0e9e2b3114e240a405d046ea7">OpCode</a></div><div class="ttdeci">OpCode</div><div class="ttdoc">The op-code defining a specific p-code operation (PcodeOp) </div><div class="ttdef"><b>Definition:</b> opcodes.hh:35</div></div>
<div class="ttc" id="classAddrSpaceManager_html"><div class="ttname"><a href="classAddrSpaceManager.html">AddrSpaceManager</a></div><div class="ttdoc">A manager for different address spaces. </div><div class="ttdef"><b>Definition:</b> translate.hh:218</div></div>
<div class="ttc" id="classEffectRecord_html_a1a7281494fb82c6ee35958e9d98d3160"><div class="ttname"><a href="classEffectRecord.html#a1a7281494fb82c6ee35958e9d98d3160">EffectRecord::EffectRecord</a></div><div class="ttdeci">EffectRecord(void)</div><div class="ttdoc">Constructor for use with restoreXml() </div><div class="ttdef"><b>Definition:</b> fspec.hh:317</div></div>
<div class="ttc" id="classParamTrial_html_a7ede623de85ba60fc1b3e463de10b0fc"><div class="ttname"><a href="classParamTrial.html#a7ede623de85ba60fc1b3e463de10b0fc">ParamTrial::markUnref</a></div><div class="ttdeci">void markUnref(void)</div><div class="ttdoc">Mark that this trial has no Varnode representative. </div><div class="ttdef"><b>Definition:</b> fspec.hh:191</div></div>
<div class="ttc" id="classParamEntry_html_a498cd78bbe7fa439beeaf8243eed9177"><div class="ttname"><a href="classParamEntry.html#a498cd78bbe7fa439beeaf8243eed9177">ParamEntry::getSpace</a></div><div class="ttdeci">AddrSpace * getSpace(void) const</div><div class="ttdoc">Get the address space containing this entry. </div><div class="ttdef"><b>Definition:</b> fspec.hh:94</div></div>
<div class="ttc" id="classParamEntry_html_aeb33e71b09562418a0a2a88650d6403a"><div class="ttname"><a href="classParamEntry.html#aeb33e71b09562418a0a2a88650d6403a">ParamEntry::getType</a></div><div class="ttdeci">type_metatype getType(void) const</div><div class="ttdoc">Get the data-type class associated with this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:85</div></div>
<div class="ttc" id="classFuncProto_html_a41cf46f20373d37b4a7cf22201112abb"><div class="ttname"><a href="classFuncProto.html#a41cf46f20373d37b4a7cf22201112abb">FuncProto::getSpacebase</a></div><div class="ttdeci">AddrSpace * getSpacebase(void) const</div><div class="ttdoc">Get the stack address space. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1404</div></div>
<div class="ttc" id="classFuncProto_html_a6d237b521223b740d5d052b68966b556"><div class="ttname"><a href="classFuncProto.html#a6d237b521223b740d5d052b68966b556">FuncProto::setDotdotdot</a></div><div class="ttdeci">void setDotdotdot(bool val)</div><div class="ttdoc">Toggle whether this takes variable arguments. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1344</div></div>
<div class="ttc" id="fspec_8hh_html_a034dd951d43e43b9e7d26f7326000992"><div class="ttname"><a href="fspec_8hh.html#a034dd951d43e43b9e7d26f7326000992">ParamEntryResolver</a></div><div class="ttdeci">rangemap&lt; ParamEntryRange &gt; ParamEntryResolver</div><div class="ttdoc">A map from offset to ParamEntry. </div><div class="ttdef"><b>Definition:</b> fspec.hh:141</div></div>
<div class="ttc" id="structPrototypePieces_html_aca89ccc6fb7ef4527613909e341efe64"><div class="ttname"><a href="structPrototypePieces.html#aca89ccc6fb7ef4527613909e341efe64">PrototypePieces::intypes</a></div><div class="ttdeci">vector&lt; Datatype * &gt; intypes</div><div class="ttdoc">Input data-types. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1131</div></div>
<div class="ttc" id="classParamListStandard_html_a8c6910cf8fb253c2f64361dbf92901c5"><div class="ttname"><a href="classParamListStandard.html#a8c6910cf8fb253c2f64361dbf92901c5">ParamListStandard::getSpacebase</a></div><div class="ttdeci">virtual AddrSpace * getSpacebase(void) const</div><div class="ttdoc">Get the address space associated with any stack based parameters in this list. </div><div class="ttdef"><b>Definition:</b> fspec.hh:527</div></div>
<div class="ttc" id="classParamListStandard_html_a512864be48d391ee4903d0a38147438c"><div class="ttname"><a href="classParamListStandard.html#a512864be48d391ee4903d0a38147438c">ParamListStandard::nonfloatgroup</a></div><div class="ttdeci">int4 nonfloatgroup</div><div class="ttdoc">Group of first entry which is not marked float. </div><div class="ttdef"><b>Definition:</b> fspec.hh:497</div></div>
<div class="ttc" id="classParamListMerged_html_a39f0621f7d34c4aa4d591fd51b2ab5fe"><div class="ttname"><a href="classParamListMerged.html#a39f0621f7d34c4aa4d591fd51b2ab5fe">ParamListMerged::getType</a></div><div class="ttdeci">virtual uint4 getType(void) const</div><div class="ttdoc">Get the type of parameter list. </div><div class="ttdef"><b>Definition:</b> fspec.hh:584</div></div>
<div class="ttc" id="classParamEntry_html_a7dd16288914ec41f8936095d74d943f1"><div class="ttname"><a href="classParamEntry.html#a7dd16288914ec41f8936095d74d943f1">ParamEntry::isParamCheckLow</a></div><div class="ttdeci">bool isParamCheckLow(void) const</div><div class="ttdoc">Return true if there is a low overlap. </div><div class="ttdef"><b>Definition:</b> fspec.hh:100</div></div>
<div class="ttc" id="classParamListRegister_html_aca64ac19f3dc898fc7d12062c76acf59"><div class="ttname"><a href="classParamListRegister.html#aca64ac19f3dc898fc7d12062c76acf59">ParamListRegister::ParamListRegister</a></div><div class="ttdeci">ParamListRegister(void)</div><div class="ttdoc">Constructor for use with restoreXml() </div><div class="ttdef"><b>Definition:</b> fspec.hh:563</div></div>
<div class="ttc" id="classFuncProto_html_abc9a8f192846b36ba99ed0464bb10862"><div class="ttname"><a href="classFuncProto.html#abc9a8f192846b36ba99ed0464bb10862">FuncProto::removeParam</a></div><div class="ttdeci">void removeParam(int4 i)</div><div class="ttdoc">Remove the i-th input parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1336</div></div>
<div class="ttc" id="classFuncProto_html_a768d557c966fc2f59c8ae0f09777b4fe"><div class="ttname"><a href="classFuncProto.html#a768d557c966fc2f59c8ae0f09777b4fe">FuncProto::checkInputSplit</a></div><div class="ttdeci">bool checkInputSplit(const Address &amp;loc, int4 size, int4 splitpoint) const</div><div class="ttdoc">Check if it makes sense to split a single storage location into two input parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1327</div></div>
<div class="ttc" id="classFuncdata_html"><div class="ttname"><a href="classFuncdata.html">Funcdata</a></div><div class="ttdoc">Container for data structures associated with a single function. </div><div class="ttdef"><b>Definition:</b> funcdata.hh:45</div></div>
<div class="ttc" id="classParamList_html_afbd77bcf71722f89a9ad9f4d9d20bdc5"><div class="ttname"><a href="classParamList.html#afbd77bcf71722f89a9ad9f4d9d20bdc5">ParamList::checkJoin</a></div><div class="ttdeci">virtual bool checkJoin(const Address &amp;hiaddr, int4 hisize, const Address &amp;loaddr, int4 losize) const =0</div><div class="ttdoc">Check if the given two storage locations can represent a single logical parameter. </div></div>
<div class="ttc" id="classParamTrial_html_a92758568d74f243b6680258fa8cb440a"><div class="ttname"><a href="classParamTrial.html#a92758568d74f243b6680258fa8cb440a">ParamTrial::getSize</a></div><div class="ttdeci">int4 getSize(void) const</div><div class="ttdoc">Get the number of bytes in this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:181</div></div>
<div class="ttc" id="classFuncProto_html_ad5f36aaa3e2d1d7cdc90d101065abbc0"><div class="ttname"><a href="classFuncProto.html#ad5f36aaa3e2d1d7cdc90d101065abbc0">FuncProto::setInputErrors</a></div><div class="ttdeci">void setInputErrors(bool val)</div><div class="ttdoc">Toggle the input error setting for this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1273</div></div>
<div class="ttc" id="classParamActive_html_a4ce9f8640c32eb48df409ff71a6e15eb"><div class="ttname"><a href="classParamActive.html#a4ce9f8640c32eb48df409ff71a6e15eb">ParamActive::getTrialForInputVarnode</a></div><div class="ttdeci">const ParamTrial &amp; getTrialForInputVarnode(int4 slot) const</div><div class="ttdoc">Get trial corresponding to the given input Varnode. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1536</div></div>
<div class="ttc" id="classParamEntry_html_a9bacf2dac015159e70a62bb611abe0f4"><div class="ttname"><a href="classParamEntry.html#a9bacf2dac015159e70a62bb611abe0f4">ParamEntry::isReverseStack</a></div><div class="ttdeci">bool isReverseStack(void) const</div><div class="ttdoc">Return true if parameters are allocated in reverse order. </div><div class="ttdef"><b>Definition:</b> fspec.hh:87</div></div>
<div class="ttc" id="classParamEntryRange_html_ad89c2d1390b85e38470b85895712223c"><div class="ttname"><a href="classParamEntryRange.html#ad89c2d1390b85e38470b85895712223c">ParamEntryRange::initialize</a></div><div class="ttdeci">void initialize(const inittype &amp;data, uintb f, uintb l)</div><div class="ttdoc">Initialize the range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:134</div></div>
<div class="ttc" id="classProtoModel_html_a13c2a4e9e1a7a13ef948c8a9c55dd831"><div class="ttname"><a href="classProtoModel.html#a13c2a4e9e1a7a13ef948c8a9c55dd831">ProtoModel::assignParameterStorage</a></div><div class="ttdeci">void assignParameterStorage(const vector&lt; Datatype *&gt; &amp;typelist, vector&lt; ParameterPieces &gt; &amp;res, bool ignoreOutputError)</div><div class="ttdoc">Calculate input and output storage locations given a function prototype. </div><div class="ttdef"><b>Definition:</b> fspec.cc:1828</div></div>
<div class="ttc" id="classParamActive_html_ad4a9012547b34e47de3645ad5e062f4f"><div class="ttname"><a href="classParamActive.html#ad4a9012547b34e47de3645ad5e062f4f">ParamActive::setMaxPass</a></div><div class="ttdeci">void setMaxPass(int4 val)</div><div class="ttdoc">Set the maximum number of passes. </div><div class="ttdef"><b>Definition:</b> fspec.hh:249</div></div>
<div class="ttc" id="classParamListStandard_html_a23eb96cd5ffb8cc27ffb71caed2d96ca"><div class="ttname"><a href="classParamListStandard.html#a23eb96cd5ffb8cc27ffb71caed2d96ca">ParamListStandard::spacebase</a></div><div class="ttdeci">AddrSpace * spacebase</div><div class="ttdoc">Address space containing relative offset parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:500</div></div>
<div class="ttc" id="classProtoParameter_html_a155b564b34ae0b36d39d5a1caf5d0014"><div class="ttname"><a href="classProtoParameter.html#a155b564b34ae0b36d39d5a1caf5d0014">ProtoParameter::isTypeLocked</a></div><div class="ttdeci">virtual bool isTypeLocked(void) const =0</div><div class="ttdoc">Is the parameter data-type locked. </div></div>
<div class="ttc" id="classFuncProto_html_a06ef0c088573715372df24ef978bd610"><div class="ttname"><a href="classFuncProto.html#a06ef0c088573715372df24ef978bd610">FuncProto::deriveInputMap</a></div><div class="ttdeci">void deriveInputMap(ParamActive *active) const</div><div class="ttdoc">Given a list of input trials, derive the most likely inputs for this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1297</div></div>
<div class="ttc" id="classParamEntryRange_html_a7512c2c20824a9889da95ea23ae385a5"><div class="ttname"><a href="classParamEntryRange.html#a7512c2c20824a9889da95ea23ae385a5">ParamEntryRange::getSubsort</a></div><div class="ttdeci">subsorttype getSubsort(void) const</div><div class="ttdoc">Get the sub-subsort object. </div><div class="ttdef"><b>Definition:</b> fspec.hh:138</div></div>
<div class="ttc" id="classParamListStandardOut_html_a3dabd4d3d1aaf7c4690ec3c45e8a6392"><div class="ttname"><a href="classParamListStandardOut.html#a3dabd4d3d1aaf7c4690ec3c45e8a6392">ParamListStandardOut::ParamListStandardOut</a></div><div class="ttdeci">ParamListStandardOut(const ParamListStandardOut &amp;op2)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:544</div></div>
<div class="ttc" id="classFuncCallSpecs_html_ad88ee3058ece9a8b19f4e25566c03121"><div class="ttname"><a href="classFuncCallSpecs.html#ad88ee3058ece9a8b19f4e25566c03121">FuncCallSpecs::getOp</a></div><div class="ttdeci">PcodeOp * getOp(void) const</div><div class="ttdoc">Get the CALL or CALLIND corresponding to this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1467</div></div>
<div class="ttc" id="classFuncProto_html_acc303c449c418dd875319c6f6cd9436f"><div class="ttname"><a href="classFuncProto.html#acc303c449c418dd875319c6f6cd9436f">FuncProto::setModelLock</a></div><div class="ttdeci">void setModelLock(bool val)</div><div class="ttdoc">Toggle the lock on the prototype model for this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1208</div></div>
<div class="ttc" id="classParameterBasic_html_ae3b74f1e127c354b6baabf69d2f36056"><div class="ttname"><a href="classParameterBasic.html#ae3b74f1e127c354b6baabf69d2f36056">ParameterBasic::getSymbol</a></div><div class="ttdeci">virtual Symbol * getSymbol(void) const</div><div class="ttdoc">Retrieve the formal Symbol associated with this parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:987</div></div>
<div class="ttc" id="classProtoParameter_html_a05bfe5b4fe563c1e4e93bf2648239061"><div class="ttname"><a href="classProtoParameter.html#a05bfe5b4fe563c1e4e93bf2648239061">ProtoParameter::getType</a></div><div class="ttdeci">virtual Datatype * getType(void) const =0</div><div class="ttdoc">Get the data-type associate with this. </div></div>
<div class="ttc" id="classProtoModel_html_ac5eccb4ede5b877d6256cbbc2b9f4666"><div class="ttname"><a href="classProtoModel.html#ac5eccb4ede5b877d6256cbbc2b9f4666">ProtoModel::effectEnd</a></div><div class="ttdeci">vector&lt; EffectRecord &gt;::const_iterator effectEnd(void) const</div><div class="ttdoc">Get an iterator to the last EffectRecord. </div><div class="ttdef"><b>Definition:</b> fspec.hh:703</div></div>
<div class="ttc" id="classProtoModel_html"><div class="ttname"><a href="classProtoModel.html">ProtoModel</a></div><div class="ttdoc">A prototype model: a model for passing parameters between functions. </div><div class="ttdef"><b>Definition:</b> fspec.hh:615</div></div>
<div class="ttc" id="classFuncProto_html_a34162359ab3bd910a376bdad196f52e0"><div class="ttname"><a href="classFuncProto.html#a34162359ab3bd910a376bdad196f52e0">FuncProto::isModelLocked</a></div><div class="ttdeci">bool isModelLocked(void) const</div><div class="ttdoc">Is the prototype model for this locked. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1197</div></div>
<div class="ttc" id="classParamEntryRange_html_a42e664be5369363b39ea5b6e58fb9e5b"><div class="ttname"><a href="classParamEntryRange.html#a42e664be5369363b39ea5b6e58fb9e5b">ParamEntryRange::linetype</a></div><div class="ttdeci">uintb linetype</div><div class="ttdoc">The linear element for a rangemap. </div><div class="ttdef"><b>Definition:</b> fspec.hh:129</div></div>
<div class="ttc" id="classProtoModel_html_a6ddc6e7d218491b657d1f5e5bb997592"><div class="ttname"><a href="classProtoModel.html#a6ddc6e7d218491b657d1f5e5bb997592">ProtoModel::checkInputSplit</a></div><div class="ttdeci">bool checkInputSplit(const Address &amp;loc, int4 size, int4 splitpoint) const</div><div class="ttdoc">Check if it makes sense to split a single storage location into two input parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:697</div></div>
<div class="ttc" id="classParamTrial_html_a3fa95bb637e208d366f70cecaa6c331d"><div class="ttname"><a href="classParamTrial.html#a3fa95bb637e208d366f70cecaa6c331d">ParamTrial::setRemFormed</a></div><div class="ttdeci">void setRemFormed(void)</div><div class="ttdoc">Mark that this is formed by a INT_REM operation. </div><div class="ttdef"><b>Definition:</b> fspec.hh:199</div></div>
<div class="ttc" id="classParamTrial_html_a8b08e858cac5d750f527a673be97e322"><div class="ttname"><a href="classParamTrial.html#a8b08e858cac5d750f527a673be97e322">ParamTrial::markKilledByCall</a></div><div class="ttdeci">void markKilledByCall(void)</div><div class="ttdoc">Mark that this storage is killed-by-call. </div><div class="ttdef"><b>Definition:</b> fspec.hh:192</div></div>
<div class="ttc" id="classFuncProto_html_a07b4705cc5b9695e8c96e1e9294f0cfb"><div class="ttname"><a href="classFuncProto.html#a07b4705cc5b9695e8c96e1e9294f0cfb">FuncProto::getMaxInputDelay</a></div><div class="ttdeci">int4 getMaxInputDelay(void) const</div><div class="ttdoc">Return the maximum heritage delay across all possible input parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1362</div></div>
<div class="ttc" id="classFuncCallSpecs_html_abe07c5f01eaa2171a4d8c4c832910022"><div class="ttname"><a href="classFuncCallSpecs.html#abe07c5f01eaa2171a4d8c4c832910022">FuncCallSpecs::setBadJumpTable</a></div><div class="ttdeci">void setBadJumpTable(bool val)</div><div class="ttdoc">Toggle whether call site looked like an indirect jump. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1491</div></div>
<div class="ttc" id="classParamEntry_html_addf545facfb18d6e4f4a0ae3aea203a8"><div class="ttname"><a href="classParamEntry.html#addf545facfb18d6e4f4a0ae3aea203a8">ParamEntry::getBase</a></div><div class="ttdeci">uintb getBase(void) const</div><div class="ttdoc">Get the starting offset of this entry. </div><div class="ttdef"><b>Definition:</b> fspec.hh:95</div></div>
<div class="ttc" id="classParamEntry_html_a8bc3366591bc6e9a39cfa851052dc684"><div class="ttname"><a href="classParamEntry.html#a8bc3366591bc6e9a39cfa851052dc684">ParamEntry::getGroup</a></div><div class="ttdeci">int4 getGroup(void) const</div><div class="ttdoc">Get the group id this belongs to. </div><div class="ttdef"><b>Definition:</b> fspec.hh:80</div></div>
<div class="ttc" id="classParamListStandard_html_aeb0fe74f815ad09f021ace22eb60d06a"><div class="ttname"><a href="classParamListStandard.html#aeb0fe74f815ad09f021ace22eb60d06a">ParamListStandard::getMaxDelay</a></div><div class="ttdeci">virtual int4 getMaxDelay(void) const</div><div class="ttdoc">Return the maximum heritage delay across all possible parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:529</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a87904aacb6678c8bde4c0c2c781db830"><div class="ttname"><a href="classFuncCallSpecs.html#a87904aacb6678c8bde4c0c2c781db830">FuncCallSpecs::initActiveOutput</a></div><div class="ttdeci">void initActiveOutput(void)</div><div class="ttdoc">Turn on analysis recovering the return value. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1487</div></div>
<div class="ttc" id="classFuncProto_html_a2550a272235e295512ee5eb7a2674638"><div class="ttname"><a href="classFuncProto.html#a2550a272235e295512ee5eb7a2674638">FuncProto::assumedOutputExtension</a></div><div class="ttdeci">OpCode assumedOutputExtension(const Address &amp;addr, int4 size, VarnodeData &amp;res) const</div><div class="ttdoc">Get the type of extension and containing return value location for the given storage. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1397</div></div>
<div class="ttc" id="classProtoModel_html_a640ae87320b6d6781639643057e61e1d"><div class="ttname"><a href="classProtoModel.html#a640ae87320b6d6781639643057e61e1d">ProtoModel::getExtraPop</a></div><div class="ttdeci">int4 getExtraPop(void) const</div><div class="ttdoc">Get the stack-pointer extrapop for this model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:644</div></div>
<div class="ttc" id="classParamListStandardOut_html_aab54e2b42115e402ac062b4c774ff960"><div class="ttname"><a href="classParamListStandardOut.html#aab54e2b42115e402ac062b4c774ff960">ParamListStandardOut::ParamListStandardOut</a></div><div class="ttdeci">ParamListStandardOut(void)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:543</div></div>
<div class="ttc" id="classProtoModel_html_a74ad1cd29d07b30a4525049a6b2ee270"><div class="ttname"><a href="classProtoModel.html#a74ad1cd29d07b30a4525049a6b2ee270">ProtoModel::assumedOutputExtension</a></div><div class="ttdeci">OpCode assumedOutputExtension(const Address &amp;addr, int4 size, VarnodeData &amp;res) const</div><div class="ttdoc">Get the type of extension and containing return value location for the given storage. </div><div class="ttdef"><b>Definition:</b> fspec.hh:798</div></div>
<div class="ttc" id="classParamTrial_html_a13bb1c434cce645e25a0a26359d6c889"><div class="ttname"><a href="classParamTrial.html#a13bb1c434cce645e25a0a26359d6c889">ParamTrial::isUnref</a></div><div class="ttdeci">bool isUnref(void) const</div><div class="ttdoc">Does this trial not have a Varnode representative. </div><div class="ttdef"><b>Definition:</b> fspec.hh:197</div></div>
<div class="ttc" id="type_8hh_html_aef6429f2523cdf4d415ba04a0209e61f"><div class="ttname"><a href="type_8hh.html#aef6429f2523cdf4d415ba04a0209e61f">type_metatype</a></div><div class="ttdeci">type_metatype</div><div class="ttdef"><b>Definition:</b> type.hh:33</div></div>
<div class="ttc" id="classParameterBasic_html_aace2399bb8a2f988757037b1b62862e3"><div class="ttname"><a href="classParameterBasic.html#aace2399bb8a2f988757037b1b62862e3">ParameterBasic::isHiddenReturn</a></div><div class="ttdeci">virtual bool isHiddenReturn(void) const</div><div class="ttdoc">Is this a pointer to storage for a return value. </div><div class="ttdef"><b>Definition:</b> fspec.hh:980</div></div>
<div class="ttc" id="classScoreProtoModel_html_a3dec47bf8f824704151759848f50ddc7"><div class="ttname"><a href="classScoreProtoModel.html#a3dec47bf8f824704151759848f50ddc7">ScoreProtoModel::getScore</a></div><div class="ttdeci">int4 getScore(void) const</div><div class="ttdoc">Get the fitness score. </div><div class="ttdef"><b>Definition:</b> fspec.hh:865</div></div>
<div class="ttc" id="classFuncProto_html_a1ff2f80e5cf4043147ccd83a863ee83f"><div class="ttname"><a href="classFuncProto.html#a1ff2f80e5cf4043147ccd83a863ee83f">FuncProto::setConstructor</a></div><div class="ttdeci">void setConstructor(bool val)</div><div class="ttdoc">Toggle whether this prototype is a constructor method. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1254</div></div>
<div class="ttc" id="classProtoParameter_html_a33c604ed7e06ae0ca6ac491b46739343"><div class="ttname"><a href="classProtoParameter.html#a33c604ed7e06ae0ca6ac491b46739343">ProtoParameter::getAddress</a></div><div class="ttdeci">virtual Address getAddress(void) const =0</div><div class="ttdoc">Get the storage address for this parameter. </div></div>
<div class="ttc" id="classParamList_html_aaf2680343e933767d7ffd38e22e84011"><div class="ttname"><a href="classParamList.html#aaf2680343e933767d7ffd38e22e84011">ParamList::fillinMap</a></div><div class="ttdeci">virtual void fillinMap(ParamActive *active) const =0</div><div class="ttdoc">Given an unordered list of storage locations, calculate a function prototype. </div></div>
<div class="ttc" id="classProtoModel_html_a8c0c20931a1fe2c0d3cf4fb3f8fe7c02"><div class="ttname"><a href="classProtoModel.html#a8c0c20931a1fe2c0d3cf4fb3f8fe7c02">ProtoModel::unjustifiedInputParam</a></div><div class="ttdeci">bool unjustifiedInputParam(const Address &amp;loc, int4 size, VarnodeData &amp;res) const</div><div class="ttdoc">Check if the given storage location looks like an unjustified input parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:772</div></div>
<div class="ttc" id="classProtoParameter_html_a82ceb5d7de4394d1e0760bc38a78fe0c"><div class="ttname"><a href="classProtoParameter.html#a82ceb5d7de4394d1e0760bc38a78fe0c">ProtoParameter::operator!=</a></div><div class="ttdeci">bool operator!=(const ProtoParameter &amp;op2) const</div><div class="ttdoc">Compare storage location and data-type for inequality. </div><div class="ttdef"><b>Definition:</b> fspec.hh:955</div></div>
<div class="ttc" id="classParamActive_html_a3d3a20decd7830cd778d890f6a41e83b"><div class="ttname"><a href="classParamActive.html#a3d3a20decd7830cd778d890f6a41e83b">ParamActive::getMaxPass</a></div><div class="ttdeci">int4 getMaxPass(void) const</div><div class="ttdoc">What is the maximum number of passes. </div><div class="ttdef"><b>Definition:</b> fspec.hh:248</div></div>
<div class="ttc" id="classFuncProto_html_a750224dcda509d76d01e3f45a3d38117"><div class="ttname"><a href="classFuncProto.html#a750224dcda509d76d01e3f45a3d38117">FuncProto::deriveOutputMap</a></div><div class="ttdeci">void deriveOutputMap(ParamActive *active) const</div><div class="ttdoc">Given a list of output trials, derive the most likely return value for this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1304</div></div>
<div class="ttc" id="structLowlevelError_html_a73f4fa337533b013009b50f2bb68f57a"><div class="ttname"><a href="structLowlevelError.html#a73f4fa337533b013009b50f2bb68f57a">LowlevelError::LowlevelError</a></div><div class="ttdeci">LowlevelError(const string &amp;s)</div><div class="ttdoc">Initialize the error with an explanatory string. </div><div class="ttdef"><b>Definition:</b> error.hh:47</div></div>
<div class="ttc" id="classProtoStoreInternal_html"><div class="ttname"><a href="classProtoStoreInternal.html">ProtoStoreInternal</a></div><div class="ttdoc">A collection of parameter descriptions without backing symbols. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1106</div></div>
<div class="ttc" id="classParamTrial_html_a7f3302664c5c80a9d9f6ca3ce4ae38d7"><div class="ttname"><a href="classParamTrial.html#a7f3302664c5c80a9d9f6ca3ce4ae38d7">ParamTrial::getOffset</a></div><div class="ttdeci">int4 getOffset(void) const</div><div class="ttdoc">Get the offset associated with this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:185</div></div>
<div class="ttc" id="classRangeList_html"><div class="ttname"><a href="classRangeList.html">RangeList</a></div><div class="ttdoc">A disjoint set of Ranges, possibly across multiple address spaces. </div><div class="ttdef"><b>Definition:</b> address.hh:203</div></div>
<div class="ttc" id="classParamEntryRange_html_a276b0dc91f54120564ce47db22da32c2"><div class="ttname"><a href="classParamEntryRange.html#a276b0dc91f54120564ce47db22da32c2">ParamEntryRange::ParamEntryRange</a></div><div class="ttdeci">ParamEntryRange(void)</div><div class="ttdoc">Constructor for use with rangemap. </div><div class="ttdef"><b>Definition:</b> fspec.hh:133</div></div>
<div class="ttc" id="classParamTrial_html_a2739d29f090bc6f5751dd10aa6cc9a65"><div class="ttname"><a href="classParamTrial.html#a2739d29f090bc6f5751dd10aa6cc9a65">ParamTrial::markInactive</a></div><div class="ttdeci">void markInactive(void)</div><div class="ttdoc">Mark that trial is not actively used. </div><div class="ttdef"><b>Definition:</b> fspec.hh:189</div></div>
<div class="ttc" id="classProtoStore_html_afa6361ac313cdd2ccef1531209389cdc"><div class="ttname"><a href="classProtoStore.html#afa6361ac313cdd2ccef1531209389cdc">ProtoStore::clearInput</a></div><div class="ttdeci">virtual void clearInput(int4 i)=0</div><div class="ttdoc">Clear the input parameter at the specified slot. </div></div>
<div class="ttc" id="classParamListMerged_html_aaa36cc98e675c86ee6842b1802650790"><div class="ttname"><a href="classParamListMerged.html#aaa36cc98e675c86ee6842b1802650790">ParamListMerged::assignMap</a></div><div class="ttdeci">virtual void assignMap(const vector&lt; Datatype *&gt; &amp;proto, bool isinput, TypeFactory &amp;typefactory, vector&lt; ParameterPieces &gt; &amp;res) const</div><div class="ttdoc">Given list of data-types, map the list positions to storage locations. </div><div class="ttdef"><b>Definition:</b> fspec.hh:585</div></div>
<div class="ttc" id="classScoreProtoModel_html"><div class="ttname"><a href="classScoreProtoModel.html">ScoreProtoModel</a></div><div class="ttdoc">Class for calculating &quot;goodness of fit&quot; of parameter trials against a prototype model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:843</div></div>
<div class="ttc" id="classFuncProto_html_a8151d0b73aa51650515ba3f26e73e903"><div class="ttname"><a href="classFuncProto.html#a8151d0b73aa51650515ba3f26e73e903">FuncProto::numParams</a></div><div class="ttdeci">int4 numParams(void) const</div><div class="ttdoc">Get the number of input parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1337</div></div>
<div class="ttc" id="classParamEntry_html_ac4acfd4bea55a34fedd04931b29b4f8c"><div class="ttname"><a href="classParamEntry.html#ac4acfd4bea55a34fedd04931b29b4f8c">ParamEntry::isParamCheckHigh</a></div><div class="ttdeci">bool isParamCheckHigh(void) const</div><div class="ttdoc">Return true if there is a high overlap. </div><div class="ttdef"><b>Definition:</b> fspec.hh:99</div></div>
<div class="ttc" id="classParameterBasic_html_a0385f1293c9dffdb691c479e7b82a239"><div class="ttname"><a href="classParameterBasic.html#a0385f1293c9dffdb691c479e7b82a239">ParameterBasic::isNameUndefined</a></div><div class="ttdeci">virtual bool isNameUndefined(void) const</div><div class="ttdoc">Is the name of this parameter undefined. </div><div class="ttdef"><b>Definition:</b> fspec.hh:981</div></div>
<div class="ttc" id="structPrototypePieces_html"><div class="ttname"><a href="structPrototypePieces.html">PrototypePieces</a></div><div class="ttdoc">Raw components of a function prototype (obtained from parsing source code) </div><div class="ttdef"><b>Definition:</b> fspec.hh:1127</div></div>
<div class="ttc" id="classParamTrial_html_a89e3ae18b8365695196d1202d3851e98"><div class="ttname"><a href="classParamTrial.html#a89e3ae18b8365695196d1202d3851e98">ParamTrial::hasCondExeEffect</a></div><div class="ttdeci">bool hasCondExeEffect(void) const</div><div class="ttdoc">Is this trial possibly affected by conditional execution. </div><div class="ttdef"><b>Definition:</b> fspec.hh:204</div></div>
<div class="ttc" id="classParamTrial_html_a997491aac899992e8b17459b06af0149"><div class="ttname"><a href="classParamTrial.html#a997491aac899992e8b17459b06af0149">ParamTrial::isRemFormed</a></div><div class="ttdeci">bool isRemFormed(void) const</div><div class="ttdoc">Is this formed by a INT_REM operation. </div><div class="ttdef"><b>Definition:</b> fspec.hh:200</div></div>
<div class="ttc" id="classParamListMerged_html"><div class="ttname"><a href="classParamListMerged.html">ParamListMerged</a></div><div class="ttdoc">A union of other input parameter passing models. </div><div class="ttdef"><b>Definition:</b> fspec.hh:578</div></div>
<div class="ttc" id="classFuncProto_html_a3c835c084a2714801d06d68631aa52ec"><div class="ttname"><a href="classFuncProto.html#a3c835c084a2714801d06d68631aa52ec">FuncProto::getInjectUponReturn</a></div><div class="ttdeci">int4 getInjectUponReturn(void) const</div><div class="ttdoc">Get any upon-return injection id (or -1) </div><div class="ttdef"><b>Definition:</b> fspec.hh:1283</div></div>
<div class="ttc" id="classParamListStandard_html_a78acde89ba28272697adefdf14f13a11"><div class="ttname"><a href="classParamListStandard.html#a78acde89ba28272697adefdf14f13a11">ParamListStandard::ParamListStandard</a></div><div class="ttdeci">ParamListStandard(void)</div><div class="ttdoc">Construct for use with restoreXml() </div><div class="ttdef"><b>Definition:</b> fspec.hh:511</div></div>
<div class="ttc" id="structVarnodeData_html_a1a69a5187f7a6376c0c93c08962ea68d"><div class="ttname"><a href="structVarnodeData.html#a1a69a5187f7a6376c0c93c08962ea68d">VarnodeData::space</a></div><div class="ttdeci">AddrSpace * space</div><div class="ttdoc">The address space. </div><div class="ttdef"><b>Definition:</b> pcoderaw.hh:34</div></div>
<div class="ttc" id="classProtoModel_html_a0a6e71fa168f7af91d6b658516a61326"><div class="ttname"><a href="classProtoModel.html#a0a6e71fa168f7af91d6b658516a61326">ProtoModel::getMaxInputDelay</a></div><div class="ttdeci">int4 getMaxInputDelay(void) const</div><div class="ttdoc">Return the maximum heritage delay across all possible input parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:822</div></div>
<div class="ttc" id="classParamActive_html_a42ec2498ce1d913aaed22b67b479d6e5"><div class="ttname"><a href="classParamActive.html#a42ec2498ce1d913aaed22b67b479d6e5">ParamActive::freePlaceholderSlot</a></div><div class="ttdeci">void freePlaceholderSlot(void)</div><div class="ttdoc">Free the stack placeholder slot. </div><div class="ttdef"><b>Definition:</b> fspec.cc:1439</div></div>
<div class="ttc" id="classParamList_html_ae42fc70d73e1143e5dad67766e413f05"><div class="ttname"><a href="classParamList.html#ae42fc70d73e1143e5dad67766e413f05">ParamList::getSpacebase</a></div><div class="ttdeci">virtual AddrSpace * getSpacebase(void) const =0</div><div class="ttdoc">Get the address space associated with any stack based parameters in this list. </div></div>
<div class="ttc" id="classFuncCallSpecs_html_adc330a0897cbe51cd961095d77d7a6f0"><div class="ttname"><a href="classFuncCallSpecs.html#adc330a0897cbe51cd961095d77d7a6f0">FuncCallSpecs::getParamshift</a></div><div class="ttdeci">int4 getParamshift(void) const</div><div class="ttdoc">Get the parameter shift for this call site. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1477</div></div>
<div class="ttc" id="classFuncProto_html_ad457e79208b6e7f4f030c2c325db1dba"><div class="ttname"><a href="classFuncProto.html#ad457e79208b6e7f4f030c2c325db1dba">FuncProto::getOutputType</a></div><div class="ttdeci">Datatype * getOutputType(void) const</div><div class="ttdoc">Get the return value data-type. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1339</div></div>
<div class="ttc" id="classParamList_html_af3d5640d0912fca118219d8213ed3a28"><div class="ttname"><a href="classParamList.html#af3d5640d0912fca118219d8213ed3a28">ParamList::getMaxDelay</a></div><div class="ttdeci">virtual int4 getMaxDelay(void) const =0</div><div class="ttdoc">Return the maximum heritage delay across all possible parameters. </div></div>
<div class="ttc" id="classParamList_html_a2aa16823d6e3b1c3c709e5540a8dcc3aae70ffa842058a730402c0c51be6093a7"><div class="ttname"><a href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aae70ffa842058a730402c0c51be6093a7">ParamList::p_register</a></div><div class="ttdoc">Unordered parameter passing locations model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:344</div></div>
<div class="ttc" id="classProtoModel_html_aec744a55c36bed8f08fa923fad80df46"><div class="ttname"><a href="classProtoModel.html#aec744a55c36bed8f08fa923fad80df46">ProtoModel::lookupEffect</a></div><div class="ttdeci">static uint4 lookupEffect(const vector&lt; EffectRecord &gt; &amp;efflist, const Address &amp;addr, int4 size)</div><div class="ttdoc">Look up an effect from the given EffectRecord list. </div><div class="ttdef"><b>Definition:</b> fspec.cc:1857</div></div>
<div class="ttc" id="classFuncProto_html_a2a274b3ff58e50e73e4eaa82cb08bae3"><div class="ttname"><a href="classFuncProto.html#a2a274b3ff58e50e73e4eaa82cb08bae3">FuncProto::hasThisPointer</a></div><div class="ttdeci">bool hasThisPointer(void) const</div><div class="ttdoc">Is this a prototype for a class method, taking a this pointer. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1241</div></div>
<div class="ttc" id="classFuncProto_html_a4f4e0521c603ad73b2d73ad96f8cb954"><div class="ttname"><a href="classFuncProto.html#a4f4e0521c603ad73b2d73ad96f8cb954">FuncProto::isDotdotdot</a></div><div class="ttdeci">bool isDotdotdot(void) const</div><div class="ttdoc">Return true if this takes a variable number of arguments. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1343</div></div>
<div class="ttc" id="classProtoModel_html_a06031cb84a876e36a3648362c4af8662"><div class="ttname"><a href="classProtoModel.html#a06031cb84a876e36a3648362c4af8662">ProtoModel::checkInputJoin</a></div><div class="ttdeci">bool checkInputJoin(const Address &amp;hiaddr, int4 hisize, const Address &amp;loaddr, int4 losize) const</div><div class="ttdoc">Check if the given two input storage locations can represent a single logical parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:674</div></div>
<div class="ttc" id="classProtoModelMerged_html_a529627f8459b79d8f6d0e70210425ba2"><div class="ttname"><a href="classProtoModelMerged.html#a529627f8459b79d8f6d0e70210425ba2">ProtoModelMerged::numModels</a></div><div class="ttdeci">int4 numModels(void) const</div><div class="ttdoc">Get the number of constituent models. </div><div class="ttdef"><b>Definition:</b> fspec.hh:887</div></div>
<div class="ttc" id="classParameterSymbol_html"><div class="ttname"><a href="classParameterSymbol.html">ParameterSymbol</a></div><div class="ttdoc">A parameter with a formal backing Symbol. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1052</div></div>
<div class="ttc" id="classParamTrial_html_a32ff81889bdb636331549123ac1ca2e6"><div class="ttname"><a href="classParamTrial.html#a32ff81889bdb636331549123ac1ca2e6">ParamTrial::setCondExeEffect</a></div><div class="ttdeci">void setCondExeEffect(void)</div><div class="ttdoc">Mark this trial as possibly affected by conditional execution. </div><div class="ttdef"><b>Definition:</b> fspec.hh:203</div></div>
<div class="ttc" id="classProtoModelMerged_html_a661295ea5cf3542cfc25b28fefb6a264"><div class="ttname"><a href="classProtoModelMerged.html#a661295ea5cf3542cfc25b28fefb6a264">ProtoModelMerged::getModel</a></div><div class="ttdeci">ProtoModel * getModel(int4 i) const</div><div class="ttdoc">Get the i-th model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:888</div></div>
<div class="ttc" id="classProtoModel_html_ac691b583d93e89de88e6185e251768d0"><div class="ttname"><a href="classProtoModel.html#ac691b583d93e89de88e6185e251768d0">ProtoModel::characterizeAsInputParam</a></div><div class="ttdeci">int4 characterizeAsInputParam(const Address &amp;loc, int4 size) const</div><div class="ttdoc">Characterize whether the given range overlaps parameter storage. </div><div class="ttdef"><b>Definition:</b> fspec.hh:717</div></div>
<div class="ttc" id="rangemap_8hh_html"><div class="ttname"><a href="rangemap_8hh.html">rangemap.hh</a></div><div class="ttdoc">Templates to define interval map containers. </div></div>
<div class="ttc" id="classParamListStandard_html_aef1c07a708c2278a4a51705a4601035c"><div class="ttname"><a href="classParamListStandard.html#aef1c07a708c2278a4a51705a4601035c">ParamListStandard::pointermax</a></div><div class="ttdeci">int4 pointermax</div><div class="ttdoc">If non-zero, maximum size of a data-type before converting to a pointer. </div><div class="ttdef"><b>Definition:</b> fspec.hh:495</div></div>
<div class="ttc" id="classProtoModel_html_a2a83c006b588fad0b0842c6f9862e66b"><div class="ttname"><a href="classProtoModel.html#a2a83c006b588fad0b0842c6f9862e66b">ProtoModel::getParamRange</a></div><div class="ttdeci">const RangeList &amp; getParamRange(void) const</div><div class="ttdoc">Get the range of (possible) stack parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:701</div></div>
<div class="ttc" id="structParameterPieces_html_a628fd8428a2331db63516291840e8409"><div class="ttname"><a href="structParameterPieces.html#a628fd8428a2331db63516291840e8409">ParameterPieces::type</a></div><div class="ttdeci">Datatype * type</div><div class="ttdoc">The datatype of the parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:296</div></div>
<div class="ttc" id="classProtoModelMerged_html_ae9e2963a988d626416b0020fe1229a47"><div class="ttname"><a href="classProtoModelMerged.html#ae9e2963a988d626416b0020fe1229a47">ProtoModelMerged::~ProtoModelMerged</a></div><div class="ttdeci">virtual ~ProtoModelMerged(void)</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:886</div></div>
<div class="ttc" id="classEffectRecord_html_a121118c3ba7a9efc73b04ce710af8dfe"><div class="ttname"><a href="classEffectRecord.html#a121118c3ba7a9efc73b04ce710af8dfe">EffectRecord::getAddress</a></div><div class="ttdeci">Address getAddress(void) const</div><div class="ttdoc">Get the starting address of the affected range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:323</div></div>
<div class="ttc" id="classDatatype_html_aadd1006bf1bfff07a3230c2062e7fa52"><div class="ttname"><a href="classDatatype.html#aadd1006bf1bfff07a3230c2062e7fa52">Datatype::getSize</a></div><div class="ttdeci">int4 getSize(void) const</div><div class="ttdoc">Get the type size. </div><div class="ttdef"><b>Definition:</b> type.hh:106</div></div>
<div class="ttc" id="classParameterBasic_html_a837bdcd23e9bdfad0b8ba0b6b78b9752"><div class="ttname"><a href="classParameterBasic.html#a837bdcd23e9bdfad0b8ba0b6b78b9752">ParameterBasic::isTypeLocked</a></div><div class="ttdeci">virtual bool isTypeLocked(void) const</div><div class="ttdoc">Is the parameter data-type locked. </div><div class="ttdef"><b>Definition:</b> fspec.hh:976</div></div>
<div class="ttc" id="classPcodeOp_html"><div class="ttname"><a href="classPcodeOp.html">PcodeOp</a></div><div class="ttdoc">Lowest level operation of the p-code language. </div><div class="ttdef"><b>Definition:</b> op.hh:58</div></div>
<div class="ttc" id="classParamList_html_a2aa16823d6e3b1c3c709e5540a8dcc3aab453d87526025f49089a32288f6348df"><div class="ttname"><a href="classParamList.html#a2aa16823d6e3b1c3c709e5540a8dcc3aab453d87526025f49089a32288f6348df">ParamList::p_standard</a></div><div class="ttdoc">Standard input parameter model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:342</div></div>
<div class="ttc" id="classFuncProto_html_ad8bbc6db7bc4ae8105688a0321fa1ae4"><div class="ttname"><a href="classFuncProto.html#ad8bbc6db7bc4ae8105688a0321fa1ae4">FuncProto::getLocalRange</a></div><div class="ttdeci">const RangeList &amp; getLocalRange(void) const</div><div class="ttdoc">Get the range of potential local stack variables. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1340</div></div>
<div class="ttc" id="classFuncProto_html_afeebd3dd7e300e1361977b93c72a8eed"><div class="ttname"><a href="classFuncProto.html#afeebd3dd7e300e1361977b93c72a8eed">FuncProto::hasMatchingModel</a></div><div class="ttdeci">bool hasMatchingModel(const FuncProto *op2) const</div><div class="ttdoc">Does this have a matching model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1190</div></div>
<div class="ttc" id="classParamEntry_html_a786d0b461f789499e59b84f91c4e4185"><div class="ttname"><a href="classParamEntry.html#a786d0b461f789499e59b84f91c4e4185">ParamEntry::ParamEntry</a></div><div class="ttdeci">ParamEntry(int4 grp)</div><div class="ttdoc">Constructor for use with restoreXml. </div><div class="ttdef"><b>Definition:</b> fspec.hh:78</div></div>
<div class="ttc" id="classParamActive_html_abce147faf761497f43582dbed22b57c0"><div class="ttname"><a href="classParamActive.html#abce147faf761497f43582dbed22b57c0">ParamActive::shrink</a></div><div class="ttdeci">void shrink(int4 i, const Address &amp;addr, int4 sz)</div><div class="ttdoc">Shrink the given trial to a new given range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:270</div></div>
<div class="ttc" id="classFuncProto_html_ac002aea4a1495011c1a577d343755c21"><div class="ttname"><a href="classFuncProto.html#ac002aea4a1495011c1a577d343755c21">FuncProto::isUnknownModel</a></div><div class="ttdeci">bool isUnknownModel(void) const</div><div class="ttdoc">Is prototype model officially &quot;unknown&quot;. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1198</div></div>
<div class="ttc" id="classAddress_html"><div class="ttname"><a href="classAddress.html">Address</a></div><div class="ttdoc">A low-level machine address for labelling bytes and data. </div><div class="ttdef"><b>Definition:</b> address.hh:46</div></div>
<div class="ttc" id="classFuncProto_html_a7b7a58bea827081d275ae6112df7dce5"><div class="ttname"><a href="classFuncProto.html#a7b7a58bea827081d275ae6112df7dce5">FuncProto::isParamshiftApplied</a></div><div class="ttdeci">bool isParamshiftApplied(void) const</div><div class="ttdef"><b>Definition:</b> fspec.hh:1174</div></div>
<div class="ttc" id="structParameterPieces_html_a64a8ea85886ffa493a625e75cb5b01e0"><div class="ttname"><a href="structParameterPieces.html#a64a8ea85886ffa493a625e75cb5b01e0">ParameterPieces::addr</a></div><div class="ttdeci">Address addr</div><div class="ttdoc">Storage address of the parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:295</div></div>
<div class="ttc" id="classParamListRegister_html"><div class="ttname"><a href="classParamListRegister.html">ParamListRegister</a></div><div class="ttdoc">An unstructured model for passing input parameters to a function. </div><div class="ttdef"><b>Definition:</b> fspec.hh:561</div></div>
<div class="ttc" id="classParamTrial_html_aa4ffa0c04adb864a3cfcff61f5b75051"><div class="ttname"><a href="classParamTrial.html#aa4ffa0c04adb864a3cfcff61f5b75051">ParamTrial::markUsed</a></div><div class="ttdeci">void markUsed(void)</div><div class="ttdoc">Mark the trial as a formal parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:187</div></div>
<div class="ttc" id="classVarnode_html_ad367c0ac3c08b6f41e7334e90a138e8ca342d968e37003a12f9026a15dda2e8f6"><div class="ttname"><a href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca342d968e37003a12f9026a15dda2e8f6">Varnode::mark</a></div><div class="ttdoc">Prevents infinite loops. </div><div class="ttdef"><b>Definition:</b> varnode.hh:71</div></div>
<div class="ttc" id="classFuncCallSpecs_html_ac1c86fdb931fd085ca45ff39a091552a"><div class="ttname"><a href="classFuncCallSpecs.html#ac1c86fdb931fd085ca45ff39a091552a">FuncCallSpecs::setParamshift</a></div><div class="ttdeci">void setParamshift(int4 val)</div><div class="ttdoc">Set a parameter shift for this call site. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1476</div></div>
<div class="ttc" id="classProtoModel_html_aace107c2668bbd0091159f5c9e5a9042"><div class="ttname"><a href="classProtoModel.html#aace107c2668bbd0091159f5c9e5a9042">ProtoModel::hasThisPointer</a></div><div class="ttdeci">bool hasThisPointer(void) const</div><div class="ttdoc">Is this a model for (non-static) class methods. </div><div class="ttdef"><b>Definition:</b> fspec.hh:813</div></div>
<div class="ttc" id="classParamActive_html_a0cc6c52ae0d0c76d38fb603a10a7b53e"><div class="ttname"><a href="classParamActive.html#a0cc6c52ae0d0c76d38fb603a10a7b53e">ParamActive::finishPass</a></div><div class="ttdeci">void finishPass(void)</div><div class="ttdoc">Mark that an analysis pass has completed. </div><div class="ttdef"><b>Definition:</b> fspec.hh:250</div></div>
<div class="ttc" id="classFuncProto_html_a007c1b4a9c33831738e3ac9bc283c5a4"><div class="ttname"><a href="classFuncProto.html#a007c1b4a9c33831738e3ac9bc283c5a4">FuncProto::isConstructor</a></div><div class="ttdeci">bool isConstructor(void) const</div><div class="ttdoc">Is this prototype for a class constructor method. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1249</div></div>
<div class="ttc" id="classParamEntry_html"><div class="ttname"><a href="classParamEntry.html">ParamEntry</a></div><div class="ttdoc">A contiguous range of memory that can be used to pass parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:48</div></div>
<div class="ttc" id="classParamTrial_html_a70fbfc1bdd9e76295700b6b45f86f7da"><div class="ttname"><a href="classParamTrial.html#a70fbfc1bdd9e76295700b6b45f86f7da">ParamTrial::isIndCreateFormed</a></div><div class="ttdeci">bool isIndCreateFormed(void) const</div><div class="ttdoc">Is this trial formed by indirect creation. </div><div class="ttdef"><b>Definition:</b> fspec.hh:202</div></div>
<div class="ttc" id="classParamActive_html_aa8aaa478177b4ce6d94c4a988059ab3f"><div class="ttname"><a href="classParamActive.html#aa8aaa478177b4ce6d94c4a988059ab3f">ParamActive::testShrink</a></div><div class="ttdeci">bool testShrink(int4 i, const Address &amp;addr, int4 sz) const</div><div class="ttdoc">Test if the given trial can be shrunk to the given range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:263</div></div>
<div class="ttc" id="classFuncCallSpecs_html_aa1d084c81a9ae8656d7ef79c84398dc8"><div class="ttname"><a href="classFuncCallSpecs.html#aa1d084c81a9ae8656d7ef79c84398dc8">FuncCallSpecs::getFspecFromConst</a></div><div class="ttdeci">static FuncCallSpecs * getFspecFromConst(const Address &amp;addr)</div><div class="ttdoc">Convert FspecSpace addresses to the underlying FuncCallSpecs object. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1520</div></div>
<div class="ttc" id="classFuncProto_html_ac21659d866e78bb27aca67f1cb2df390"><div class="ttname"><a href="classFuncProto.html#ac21659d866e78bb27aca67f1cb2df390">FuncProto::getArch</a></div><div class="ttdeci">Architecture * getArch(void) const</div><div class="ttdoc">Get the Architecture owning this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1180</div></div>
<div class="ttc" id="classParamTrial_html_aa4c4b22cd813b218292b6bc7db4e00e1"><div class="ttname"><a href="classParamTrial.html#aa4c4b22cd813b218292b6bc7db4e00e1">ParamTrial::getEntry</a></div><div class="ttdeci">const ParamEntry * getEntry(void) const</div><div class="ttdoc">Get the model entry associated with this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:184</div></div>
<div class="ttc" id="classParamListRegister_html_ab6c82537acb4d9e382dcbf438baebd0d"><div class="ttname"><a href="classParamListRegister.html#ab6c82537acb4d9e382dcbf438baebd0d">ParamListRegister::ParamListRegister</a></div><div class="ttdeci">ParamListRegister(const ParamListRegister &amp;op2)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:564</div></div>
<div class="ttc" id="structVarnodeData_html_a1a511384ee72e847b51423cc99c8233e"><div class="ttname"><a href="structVarnodeData.html#a1a511384ee72e847b51423cc99c8233e">VarnodeData::offset</a></div><div class="ttdeci">uintb offset</div><div class="ttdoc">The offset within the space. </div><div class="ttdef"><b>Definition:</b> pcoderaw.hh:35</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a81e8386ebb901a273ef40d8e8430fb57"><div class="ttname"><a href="classFuncCallSpecs.html#a81e8386ebb901a273ef40d8e8430fb57">FuncCallSpecs::isOutputActive</a></div><div class="ttdeci">bool isOutputActive(void) const</div><div class="ttdoc">Return true if return value recovery analysis is active. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1490</div></div>
<div class="ttc" id="classParameterBasic_html_a0d007e8a1720e88d34aa139d62000c1a"><div class="ttname"><a href="classParameterBasic.html#a0d007e8a1720e88d34aa139d62000c1a">ParameterBasic::getAddress</a></div><div class="ttdeci">virtual Address getAddress(void) const</div><div class="ttdoc">Get the storage address for this parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:974</div></div>
<div class="ttc" id="classTranslate_html"><div class="ttname"><a href="classTranslate.html">Translate</a></div><div class="ttdoc">The interface to a translation engine for a processor. </div><div class="ttdef"><b>Definition:</b> translate.hh:293</div></div>
<div class="ttc" id="classProtoModel_html_a5bd9f07bc75fc5f2497f1d4de685a8cf"><div class="ttname"><a href="classProtoModel.html#a5bd9f07bc75fc5f2497f1d4de685a8cf">ProtoModel::hasEffect</a></div><div class="ttdeci">uint4 hasEffect(const Address &amp;addr, int4 size) const</div><div class="ttdoc">Determine side-effect of this on the given memory range. </div><div class="ttdef"><b>Definition:</b> fspec.cc:1888</div></div>
<div class="ttc" id="classProtoModel_html_a5c9fa95940e32b03d475257ca177cfaa"><div class="ttname"><a href="classProtoModel.html#a5c9fa95940e32b03d475257ca177cfaa">ProtoModel::effectBegin</a></div><div class="ttdeci">vector&lt; EffectRecord &gt;::const_iterator effectBegin(void) const</div><div class="ttdoc">Get an iterator to the first EffectRecord. </div><div class="ttdef"><b>Definition:</b> fspec.hh:702</div></div>
<div class="ttc" id="classVarnode_html_ad367c0ac3c08b6f41e7334e90a138e8ca8bc73667e547486cbabc443d0c90f2c5"><div class="ttname"><a href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca8bc73667e547486cbabc443d0c90f2c5">Varnode::indirectstorage</a></div><div class="ttdoc">Is this Varnode storing a pointer to the actual symbol. </div><div class="ttdef"><b>Definition:</b> varnode.hh:105</div></div>
<div class="ttc" id="classParamListStandardOut_html"><div class="ttname"><a href="classParamListStandardOut.html">ParamListStandardOut</a></div><div class="ttdoc">A standard model for passing back return values from a function. </div><div class="ttdef"><b>Definition:</b> fspec.hh:541</div></div>
<div class="ttc" id="classParamList_html_a518a03c6e6dffaf5ab98abe39d1c358d"><div class="ttname"><a href="classParamList.html#a518a03c6e6dffaf5ab98abe39d1c358d">ParamList::getBiggestContainedParam</a></div><div class="ttdeci">virtual bool getBiggestContainedParam(const Address &amp;loc, int4 size, VarnodeData &amp;res) const =0</div><div class="ttdoc">Pass-back the biggest parameter contained within the given range. </div></div>
<div class="ttc" id="classFuncCallSpecs_html_af24a93644abe9ee56a9aa86ba4cb0c9f"><div class="ttname"><a href="classFuncCallSpecs.html#af24a93644abe9ee56a9aa86ba4cb0c9f">FuncCallSpecs::clearActiveInput</a></div><div class="ttdeci">void clearActiveInput(void)</div><div class="ttdoc">Turn off analysis recovering input parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1486</div></div>
<div class="ttc" id="classFuncProto_html_a3c9f97f81ec970bcd40d37f093a1765e"><div class="ttname"><a href="classFuncProto.html#a3c9f97f81ec970bcd40d37f093a1765e">FuncProto::getParam</a></div><div class="ttdeci">ProtoParameter * getParam(int4 i) const</div><div class="ttdoc">Get the i-th input parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1335</div></div>
<div class="ttc" id="classArchitecture_html"><div class="ttname"><a href="classArchitecture.html">Architecture</a></div><div class="ttdoc">Manager for all the major decompiler subsystems. </div><div class="ttdef"><b>Definition:</b> architecture.hh:117</div></div>
<div class="ttc" id="classParamEntry_html_a7366c85d2d63bc5a2495d8597b1f977a"><div class="ttname"><a href="classParamEntry.html#a7366c85d2d63bc5a2495d8597b1f977a">ParamEntry::getAlign</a></div><div class="ttdeci">int4 getAlign(void) const</div><div class="ttdoc">Get the alignment of this entry. </div><div class="ttdef"><b>Definition:</b> fspec.hh:84</div></div>
<div class="ttc" id="classProtoModel_html_a8699b4b61ebc7565dbfd7ec7ab600eca"><div class="ttname"><a href="classProtoModel.html#a8699b4b61ebc7565dbfd7ec7ab600eca">ProtoModel::isConstructor</a></div><div class="ttdeci">bool isConstructor(void) const</div><div class="ttdoc">Is this model for class constructors. </div><div class="ttdef"><b>Definition:</b> fspec.hh:814</div></div>
<div class="ttc" id="classFuncCallSpecs_html_ab398038b75b6f13b865384da3fd143b9"><div class="ttname"><a href="classFuncCallSpecs.html#ab398038b75b6f13b865384da3fd143b9">FuncCallSpecs::setStackPlaceholderSlot</a></div><div class="ttdeci">void setStackPlaceholderSlot(int4 slot)</div><div class="ttdoc">Set the slot of the stack-pointer placeholder. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1480</div></div>
<div class="ttc" id="classProtoModelMerged_html_aea3dceb1497499800015607bbfd2d863"><div class="ttname"><a href="classProtoModelMerged.html#aea3dceb1497499800015607bbfd2d863">ProtoModelMerged::isMerged</a></div><div class="ttdeci">virtual bool isMerged(void) const</div><div class="ttdoc">Is this a merged prototype model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:891</div></div>
<div class="ttc" id="classParamListStandardOut_html_a8d0f947ba2b94e2921712114d986f74f"><div class="ttname"><a href="classParamListStandardOut.html#a8d0f947ba2b94e2921712114d986f74f">ParamListStandardOut::getType</a></div><div class="ttdeci">virtual uint4 getType(void) const</div><div class="ttdoc">Get the type of parameter list. </div><div class="ttdef"><b>Definition:</b> fspec.hh:545</div></div>
<div class="ttc" id="classParamTrial_html_a4ed0aada38fe913da929f7d29e47e61c"><div class="ttname"><a href="classParamTrial.html#a4ed0aada38fe913da929f7d29e47e61c">ParamTrial::isChecked</a></div><div class="ttdeci">bool isChecked(void) const</div><div class="ttdoc">Has this trial been checked. </div><div class="ttdef"><b>Definition:</b> fspec.hh:193</div></div>
<div class="ttc" id="classParamEntryRange_html_ab0243349c682948ae3d3747f231b4dcc"><div class="ttname"><a href="classParamEntryRange.html#ab0243349c682948ae3d3747f231b4dcc">ParamEntryRange::inittype</a></div><div class="ttdeci">InitData inittype</div><div class="ttdoc">Initialization data for a ScopeMapper. </div><div class="ttdef"><b>Definition:</b> fspec.hh:131</div></div>
<div class="ttc" id="structLowlevelError_html"><div class="ttname"><a href="structLowlevelError.html">LowlevelError</a></div><div class="ttdoc">The lowest level error generated by the decompiler. </div><div class="ttdef"><b>Definition:</b> error.hh:44</div></div>
<div class="ttc" id="classEffectRecord_html"><div class="ttname"><a href="classEffectRecord.html">EffectRecord</a></div><div class="ttdoc">Description of the indirect effect a sub-function has on a memory range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:305</div></div>
<div class="ttc" id="classJoinRecord_html"><div class="ttname"><a href="classJoinRecord.html">JoinRecord</a></div><div class="ttdoc">A record describing how logical values are split. </div><div class="ttdef"><b>Definition:</b> translate.hh:195</div></div>
<div class="ttc" id="classVarnode_html_ad367c0ac3c08b6f41e7334e90a138e8ca0b1de824f917f0c708db4fa4b8caaeb8"><div class="ttname"><a href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca0b1de824f917f0c708db4fa4b8caaeb8">Varnode::namelock</a></div><div class="ttdoc">The Name of the Varnode is locked. </div><div class="ttdef"><b>Definition:</b> varnode.hh:83</div></div>
<div class="ttc" id="classFuncProto_html_abeba6c216afa6ad43160d69a10433fab"><div class="ttname"><a href="classFuncProto.html#abeba6c216afa6ad43160d69a10433fab">FuncProto::hasInputErrors</a></div><div class="ttdeci">bool hasInputErrors(void) const</div><div class="ttdoc">Has this prototype been marked as having an incorrect input parameter descriptions. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1265</div></div>
<div class="ttc" id="classProtoModel_html_afd3283c9f718ce1e521186810f48ce6f"><div class="ttname"><a href="classProtoModel.html#afd3283c9f718ce1e521186810f48ce6f">ProtoModel::possibleOutputParamWithSlot</a></div><div class="ttdeci">bool possibleOutputParamWithSlot(const Address &amp;loc, int4 size, int4 &amp;slot, int4 &amp;slotsize) const</div><div class="ttdoc">Pass-back the slot and slot size for the given storage location as a return value. </div><div class="ttdef"><b>Definition:</b> fspec.hh:760</div></div>
<div class="ttc" id="classFuncProto_html_af32fa24642ff5423ec167e6f8bca065a"><div class="ttname"><a href="classFuncProto.html#af32fa24642ff5423ec167e6f8bca065a">FuncProto::setExtraPop</a></div><div class="ttdeci">void setExtraPop(int4 ep)</div><div class="ttdoc">Set the general extrapop for this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1281</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a3eae717564dd4884c28623d4a7a7b182"><div class="ttname"><a href="classFuncCallSpecs.html#a3eae717564dd4884c28623d4a7a7b182">FuncCallSpecs::getMatchCallCount</a></div><div class="ttdeci">int4 getMatchCallCount(void) const</div><div class="ttdoc">Get the number of calls the caller makes to this sub-function. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1478</div></div>
<div class="ttc" id="classProtoParameter_html_a60a3aefc8f1ddf935990d4c9e6cc1367"><div class="ttname"><a href="classProtoParameter.html#a60a3aefc8f1ddf935990d4c9e6cc1367">ProtoParameter::ProtoParameter</a></div><div class="ttdeci">ProtoParameter(void)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:905</div></div>
<div class="ttc" id="classVarnode_html"><div class="ttname"><a href="classVarnode.html">Varnode</a></div><div class="ttdoc">A low-level variable or contiguous set of bytes described by an Address and a size. </div><div class="ttdef"><b>Definition:</b> varnode.hh:65</div></div>
<div class="ttc" id="classParamActive_html_a139fd20617eb3a88e32bc960e03b9ad1"><div class="ttname"><a href="classParamActive.html#a139fd20617eb3a88e32bc960e03b9ad1">ParamActive::markFullyChecked</a></div><div class="ttdeci">void markFullyChecked(void)</div><div class="ttdoc">Mark that all trials are checked. </div><div class="ttdef"><b>Definition:</b> fspec.hh:244</div></div>
<div class="ttc" id="classParamTrial_html_a54cb5c24617993dc4f2a6548059d2e10"><div class="ttname"><a href="classParamTrial.html#a54cb5c24617993dc4f2a6548059d2e10">ParamTrial::getSlot</a></div><div class="ttdeci">int4 getSlot(void) const</div><div class="ttdoc">Get the slot associated with this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:182</div></div>
<div class="ttc" id="classParameterBasic_html_a0120ba1a51396ed32a1ff0638f795146"><div class="ttname"><a href="classParameterBasic.html#a0120ba1a51396ed32a1ff0638f795146">ParameterBasic::getType</a></div><div class="ttdeci">virtual Datatype * getType(void) const</div><div class="ttdoc">Get the data-type associate with this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:973</div></div>
<div class="ttc" id="classParamListRegister_html_af11af105230d3d6bf2824ae8b6a527a6"><div class="ttname"><a href="classParamListRegister.html#af11af105230d3d6bf2824ae8b6a527a6">ParamListRegister::getType</a></div><div class="ttdeci">virtual uint4 getType(void) const</div><div class="ttdoc">Get the type of parameter list. </div><div class="ttdef"><b>Definition:</b> fspec.hh:565</div></div>
<div class="ttc" id="classParamEntryRange_html"><div class="ttname"><a href="classParamEntryRange.html">ParamEntryRange</a></div><div class="ttdoc">Class for storing ParamEntry objects in an interval range (rangemap) </div><div class="ttdef"><b>Definition:</b> fspec.hh:104</div></div>
<div class="ttc" id="structPrototypePieces_html_a35b3c9fbc711e8623021f4e21284de13"><div class="ttname"><a href="structPrototypePieces.html#a35b3c9fbc711e8623021f4e21284de13">PrototypePieces::model</a></div><div class="ttdeci">ProtoModel * model</div><div class="ttdoc">(Optional) model on which prototype is based </div><div class="ttdef"><b>Definition:</b> fspec.hh:1128</div></div>
<div class="ttc" id="classProtoModel_html_ae253f61258ac2ad8f165200d1737e7a3"><div class="ttname"><a href="classProtoModel.html#ae253f61258ac2ad8f165200d1737e7a3">ProtoModel::~ProtoModel</a></div><div class="ttdeci">virtual ~ProtoModel(void)</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> fspec.cc:1802</div></div>
<div class="ttc" id="classFuncProto_html_aeb1c9aa013921f2738ad28dce59867e6"><div class="ttname"><a href="classFuncProto.html#aeb1c9aa013921f2738ad28dce59867e6">FuncProto::getComparableFlags</a></div><div class="ttdeci">uint4 getComparableFlags(void) const</div><div class="ttdoc">Get the comparable properties of this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1411</div></div>
<div class="ttc" id="classProtoModel_html_aea2696911b81cc71cc68d927d7c02204"><div class="ttname"><a href="classProtoModel.html#aea2696911b81cc71cc68d927d7c02204">ProtoModel::possibleOutputParam</a></div><div class="ttdeci">bool possibleOutputParam(const Address &amp;loc, int4 size) const</div><div class="ttdoc">Does the given storage location make sense as a return value. </div><div class="ttdef"><b>Definition:</b> fspec.hh:736</div></div>
<div class="ttc" id="classFuncProto_html_aa8e57d21d21d08253f67cb201e83c5e4"><div class="ttname"><a href="classFuncProto.html#aa8e57d21d21d08253f67cb201e83c5e4">FuncProto::isOutputLocked</a></div><div class="ttdeci">bool isOutputLocked(void) const</div><div class="ttdoc">Is the output data-type locked. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1196</div></div>
<div class="ttc" id="classElement_html"><div class="ttname"><a href="classElement.html">Element</a></div><div class="ttdoc">An XML element. A node in the DOM tree. </div><div class="ttdef"><b>Definition:</b> xml.hh:150</div></div>
<div class="ttc" id="classFuncProto_html_a147ea3f4d50df93a0ff16f17ea204ac9"><div class="ttname"><a href="classFuncProto.html#a147ea3f4d50df93a0ff16f17ea204ac9">FuncProto::getParamRange</a></div><div class="ttdeci">const RangeList &amp; getParamRange(void) const</div><div class="ttdoc">Get the range of potential stack parameters. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1341</div></div>
<div class="ttc" id="classParamEntry_html_a1c72a43ac9238f9fae35f38b88ef2010"><div class="ttname"><a href="classParamEntry.html#a1c72a43ac9238f9fae35f38b88ef2010">ParamEntry::isExclusion</a></div><div class="ttdeci">bool isExclusion(void) const</div><div class="ttdoc">Return true if this holds a single parameter exclusively. </div><div class="ttdef"><b>Definition:</b> fspec.hh:86</div></div>
<div class="ttc" id="classProtoModel_html_a6577cdf023ed6a660ba804e43e356b4e"><div class="ttname"><a href="classProtoModel.html#a6577cdf023ed6a660ba804e43e356b4e">ProtoModel::possibleInputParamWithSlot</a></div><div class="ttdeci">bool possibleInputParamWithSlot(const Address &amp;loc, int4 size, int4 &amp;slot, int4 &amp;slotsize) const</div><div class="ttdoc">Pass-back the slot and slot size for the given storage location as an input parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:748</div></div>
<div class="ttc" id="classFuncProto_html_a93a764c6b7aa6f4718a38df9881666df"><div class="ttname"><a href="classFuncProto.html#a93a764c6b7aa6f4718a38df9881666df">FuncProto::getReturnBytesConsumed</a></div><div class="ttdeci">int4 getReturnBytesConsumed(void) const</div><div class="ttdoc">Get an estimate of the number of bytes consumed by callers of this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1228</div></div>
<div class="ttc" id="classFuncCallSpecs_html_ae9f1afc18ffb30d43e25b0065823f366"><div class="ttname"><a href="classFuncCallSpecs.html#ae9f1afc18ffb30d43e25b0065823f366">FuncCallSpecs::isBadJumpTable</a></div><div class="ttdeci">bool isBadJumpTable(void) const</div><div class="ttdoc">Return true if this call site looked like an indirect jump. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1492</div></div>
<div class="ttc" id="classParamListStandard_html_abb7014b3098269d3534cd9738f70fd7e"><div class="ttname"><a href="classParamListStandard.html#abb7014b3098269d3534cd9738f70fd7e">ParamListStandard::resolverMap</a></div><div class="ttdeci">vector&lt; ParamEntryResolver * &gt; resolverMap</div><div class="ttdoc">Map from space id to resolver. </div><div class="ttdef"><b>Definition:</b> fspec.hh:499</div></div>
<div class="ttc" id="classAddress_html_a208ce07ecf27e5c148d8395913831c2a"><div class="ttname"><a href="classAddress.html#a208ce07ecf27e5c148d8395913831c2a">Address::getOffset</a></div><div class="ttdeci">uintb getOffset(void) const</div><div class="ttdoc">Get the address offset. </div><div class="ttdef"><b>Definition:</b> address.hh:300</div></div>
<div class="ttc" id="structParameterPieces_html_aedb19159c26f9137c4ec68238f25933a"><div class="ttname"><a href="structParameterPieces.html#aedb19159c26f9137c4ec68238f25933a">ParameterPieces::flags</a></div><div class="ttdeci">uint4 flags</div><div class="ttdoc">additional attributes of the parameter </div><div class="ttdef"><b>Definition:</b> fspec.hh:297</div></div>
<div class="ttc" id="classParamListStandard_html_aab273cce362411690e324331d03d959f"><div class="ttname"><a href="classParamListStandard.html#aab273cce362411690e324331d03d959f">ParamListStandard::entry</a></div><div class="ttdeci">list&lt; ParamEntry &gt; entry</div><div class="ttdoc">The ordered list of parameter entries. </div><div class="ttdef"><b>Definition:</b> fspec.hh:498</div></div>
<div class="ttc" id="classParamTrial_html_aed34fdf0eec82c9a56fc7ff105bad618"><div class="ttname"><a href="classParamTrial.html#aed34fdf0eec82c9a56fc7ff105bad618">ParamTrial::setEntry</a></div><div class="ttdeci">void setEntry(const ParamEntry *ent, int4 off)</div><div class="ttdoc">Set the model entry for this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:186</div></div>
<div class="ttc" id="classParamList_html_a79a541cc056240c613a28e5aa5a795f0"><div class="ttname"><a href="classParamList.html#a79a541cc056240c613a28e5aa5a795f0">ParamList::characterizeAsParam</a></div><div class="ttdeci">virtual int4 characterizeAsParam(const Address &amp;loc, int4 size) const =0</div><div class="ttdoc">Characterize whether the given range overlaps parameter storage. </div></div>
<div class="ttc" id="classFuncProto_html_a88af8e37c1ddb25fd9d6d8322ec436c6"><div class="ttname"><a href="classFuncProto.html#a88af8e37c1ddb25fd9d6d8322ec436c6">FuncProto::getInjectId</a></div><div class="ttdeci">int4 getInjectId(void) const</div><div class="ttdoc">Get the injection id associated with this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1222</div></div>
<div class="ttc" id="classFuncProto_html_a6a86f7c68b557f329ab6193ffadfb768"><div class="ttname"><a href="classFuncProto.html#a6a86f7c68b557f329ab6193ffadfb768">FuncProto::hasMatchingModel</a></div><div class="ttdeci">bool hasMatchingModel(const ProtoModel *op2) const</div><div class="ttdoc">Does this use the given model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1191</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a571062bec4389e2602577b6eed10cbf5"><div class="ttname"><a href="classFuncCallSpecs.html#a571062bec4389e2602577b6eed10cbf5">FuncCallSpecs::clearStackPlaceholderSlot</a></div><div class="ttdeci">void clearStackPlaceholderSlot(void)</div><div class="ttdoc">Release the stack-pointer placeholder. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1482</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a57f3844d92136d3ab6b67ea9ea316aa7"><div class="ttname"><a href="classFuncCallSpecs.html#a57f3844d92136d3ab6b67ea9ea316aa7">FuncCallSpecs::compareByEntryAddress</a></div><div class="ttdeci">static bool compareByEntryAddress(const FuncCallSpecs *a, const FuncCallSpecs *b)</div><div class="ttdoc">Compare FuncCallSpecs by function entry address. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1527</div></div>
<div class="ttc" id="structPrototypePieces_html_ab145dec69a82cf13bef723679f6800b0"><div class="ttname"><a href="structPrototypePieces.html#ab145dec69a82cf13bef723679f6800b0">PrototypePieces::outtype</a></div><div class="ttdeci">Datatype * outtype</div><div class="ttdoc">Return data-type. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1130</div></div>
<div class="ttc" id="classVarnode_html_ad367c0ac3c08b6f41e7334e90a138e8ca98c9b8ae27e32db19e64422a37b8be74"><div class="ttname"><a href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8ca98c9b8ae27e32db19e64422a37b8be74">Varnode::hiddenretparm</a></div><div class="ttdoc">Does this varnode point to the return value storage location. </div><div class="ttdef"><b>Definition:</b> varnode.hh:106</div></div>
<div class="ttc" id="classAliasChecker_html"><div class="ttname"><a href="classAliasChecker.html">AliasChecker</a></div><div class="ttdoc">A light-weight class for analyzing pointers and aliasing on the stack. </div><div class="ttdef"><b>Definition:</b> varmap.hh:108</div></div>
<div class="ttc" id="classProtoModel_html_a2e8994c68acebcf5c0278d86be39a530"><div class="ttname"><a href="classProtoModel.html#a2e8994c68acebcf5c0278d86be39a530">ProtoModel::getInjectUponReturn</a></div><div class="ttdeci">int4 getInjectUponReturn(void) const</div><div class="ttdoc">Get the inject uponreturn id. </div><div class="ttdef"><b>Definition:</b> fspec.hh:647</div></div>
<div class="ttc" id="classParamListStandard_html_a65af086fa366444a788721fecc8afc86"><div class="ttname"><a href="classParamListStandard.html#a65af086fa366444a788721fecc8afc86">ParamListStandard::thisbeforeret</a></div><div class="ttdeci">bool thisbeforeret</div><div class="ttdoc">Does a this parameter come before a hidden return parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:496</div></div>
<div class="ttc" id="classParamTrial_html_a77ad2e667e0525e2417845e389dcfa9f"><div class="ttname"><a href="classParamTrial.html#a77ad2e667e0525e2417845e389dcfa9f">ParamTrial::isUsed</a></div><div class="ttdeci">bool isUsed(void) const</div><div class="ttdoc">Is this trial as a formal parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:196</div></div>
<div class="ttc" id="classParamListStandard_html_a37193293ffb24b1206944e35ef64973c"><div class="ttname"><a href="classParamListStandard.html#a37193293ffb24b1206944e35ef64973c">ParamListStandard::getType</a></div><div class="ttdeci">virtual uint4 getType(void) const</div><div class="ttdoc">Get the type of parameter list. </div><div class="ttdef"><b>Definition:</b> fspec.hh:515</div></div>
<div class="ttc" id="classParamEntry_html_a14b9358afc509b2d9df494ea6ecfbe31"><div class="ttname"><a href="classParamEntry.html#a14b9358afc509b2d9df494ea6ecfbe31">ParamEntry::getSize</a></div><div class="ttdeci">int4 getSize(void) const</div><div class="ttdoc">Get the size of the memory range in bytes. </div><div class="ttdef"><b>Definition:</b> fspec.hh:82</div></div>
<div class="ttc" id="structVarnodeData_html_a50d39ae46d51c8854b962f3ec4ee4e25"><div class="ttname"><a href="structVarnodeData.html#a50d39ae46d51c8854b962f3ec4ee4e25">VarnodeData::size</a></div><div class="ttdeci">uint4 size</div><div class="ttdoc">The number of bytes in the location. </div><div class="ttdef"><b>Definition:</b> pcoderaw.hh:36</div></div>
<div class="ttc" id="classParamEntry_html_a6cf83bdd06247d2ca0f6b5c663f94ecb"><div class="ttname"><a href="classParamEntry.html#a6cf83bdd06247d2ca0f6b5c663f94ecb">ParamEntry::getMinSize</a></div><div class="ttdeci">int4 getMinSize(void) const</div><div class="ttdoc">Get the minimum size of a logical value contained in this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:83</div></div>
<div class="ttc" id="classProtoStoreSymbol_html"><div class="ttname"><a href="classProtoStoreSymbol.html">ProtoStoreSymbol</a></div><div class="ttdoc">A collection of parameter descriptions backed by Symbol information. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1080</div></div>
<div class="ttc" id="classFuncProto_html_a961837591bf1445a8db9d7604c1e5046"><div class="ttname"><a href="classFuncProto.html#a961837591bf1445a8db9d7604c1e5046">FuncProto::checkInputJoin</a></div><div class="ttdeci">bool checkInputJoin(const Address &amp;hiaddr, int4 hisz, const Address &amp;loaddr, int4 losz) const</div><div class="ttdoc">Check if the given two input storage locations can represent a single logical parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1316</div></div>
<div class="ttc" id="classFuncProto_html_abd50bddd2379651954a05e2015ab907e"><div class="ttname"><a href="classFuncProto.html#abd50bddd2379651954a05e2015ab907e">FuncProto::getModelName</a></div><div class="ttdeci">const string &amp; getModelName(void) const</div><div class="ttdoc">Get the prototype model name. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1192</div></div>
<div class="ttc" id="classParameterBasic_html_ab8644a632a02193f26e4499bbfa7dbc9"><div class="ttname"><a href="classParameterBasic.html#ab8644a632a02193f26e4499bbfa7dbc9">ParameterBasic::isSizeTypeLocked</a></div><div class="ttdeci">virtual bool isSizeTypeLocked(void) const</div><div class="ttdoc">Is the size of the parameter locked. </div><div class="ttdef"><b>Definition:</b> fspec.hh:978</div></div>
<div class="ttc" id="classProtoParameter_html_a61ce8ecb7464780b491a8e1ceb7144e8"><div class="ttname"><a href="classProtoParameter.html#a61ce8ecb7464780b491a8e1ceb7144e8">ProtoParameter::operator==</a></div><div class="ttdeci">bool operator==(const ProtoParameter &amp;op2) const</div><div class="ttdoc">Compare storage location and data-type for equality. </div><div class="ttdef"><b>Definition:</b> fspec.hh:945</div></div>
<div class="ttc" id="classProtoModel_html_a9fd453910b4e750e3c67f26969c17001"><div class="ttname"><a href="classProtoModel.html#a9fd453910b4e750e3c67f26969c17001">ProtoModel::isStackGrowsNegative</a></div><div class="ttdeci">bool isStackGrowsNegative(void) const</div><div class="ttdoc">Return true if the stack grows toward smaller addresses. </div><div class="ttdef"><b>Definition:</b> fspec.hh:812</div></div>
<div class="ttc" id="classParamTrial_html_a2b98b8c531ad081df9e4eb703ece9dc3"><div class="ttname"><a href="classParamTrial.html#a2b98b8c531ad081df9e4eb703ece9dc3">ParamTrial::isActive</a></div><div class="ttdeci">bool isActive(void) const</div><div class="ttdoc">Is this trial actively used in data-flow. </div><div class="ttdef"><b>Definition:</b> fspec.hh:194</div></div>
<div class="ttc" id="classProtoStore_html_aeb240f8e1b797060196c4bb7be000197"><div class="ttname"><a href="classProtoStore.html#aeb240f8e1b797060196c4bb7be000197">ProtoStore::getOutput</a></div><div class="ttdeci">virtual ProtoParameter * getOutput(void)=0</div><div class="ttdoc">Get the return-value description. </div></div>
<div class="ttc" id="classrangemap_html"><div class="ttname"><a href="classrangemap.html">rangemap</a></div><div class="ttdoc">An interval map container. </div><div class="ttdef"><b>Definition:</b> rangemap.hh:65</div></div>
<div class="ttc" id="classParamTrial_html_ac5046f61b5daca7e64e282d2552ba5c8"><div class="ttname"><a href="classParamTrial.html#ac5046f61b5daca7e64e282d2552ba5c8">ParamTrial::ParamTrial</a></div><div class="ttdeci">ParamTrial(const Address &amp;ad, int4 sz, int4 sl)</div><div class="ttdoc">Construct from components. </div><div class="ttdef"><b>Definition:</b> fspec.hh:179</div></div>
<div class="ttc" id="classParameterBasic_html_aa8bfb0e008ccc1953627e5415e64fadb"><div class="ttname"><a href="classParameterBasic.html#aa8bfb0e008ccc1953627e5415e64fadb">ParameterBasic::getName</a></div><div class="ttdeci">virtual const string &amp; getName(void) const</div><div class="ttdoc">Get the name of the parameter (&quot;&quot; for return value) </div><div class="ttdef"><b>Definition:</b> fspec.hh:972</div></div>
<div class="ttc" id="classParamActive_html_a3b308bb5dafd2bafc5e425991deab476"><div class="ttname"><a href="classParamActive.html#a3b308bb5dafd2bafc5e425991deab476">ParamActive::needsFinalCheck</a></div><div class="ttdeci">bool needsFinalCheck(void) const</div><div class="ttdoc">Is a final check required. </div><div class="ttdef"><b>Definition:</b> fspec.hh:240</div></div>
<div class="ttc" id="classFuncProto_html_a79cb1fac9b0d2d2c55d3ff4fa7db5c27"><div class="ttname"><a href="classFuncProto.html#a79cb1fac9b0d2d2c55d3ff4fa7db5c27">FuncProto::getMaxOutputDelay</a></div><div class="ttdeci">int4 getMaxOutputDelay(void) const</div><div class="ttdoc">Return the maximum heritage delay across all possible return values. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1370</div></div>
<div class="ttc" id="classParamList_html_a612c46c0ba7aca424885c566b4c965fc"><div class="ttname"><a href="classParamList.html#a612c46c0ba7aca424885c566b4c965fc">ParamList::possibleParamWithSlot</a></div><div class="ttdeci">virtual bool possibleParamWithSlot(const Address &amp;loc, int4 size, int4 &amp;slot, int4 &amp;slotsize) const =0</div><div class="ttdoc">Pass-back the slot and slot size for the given storage location as a parameter. </div></div>
<div class="ttc" id="classParamListMerged_html_aa003f357681a0a9e905fe1f3a9c82a19"><div class="ttname"><a href="classParamListMerged.html#aa003f357681a0a9e905fe1f3a9c82a19">ParamListMerged::finalize</a></div><div class="ttdeci">void finalize(void)</div><div class="ttdoc">Fold-ins are finished, finalize this. </div><div class="ttdef"><b>Definition:</b> fspec.hh:583</div></div>
<div class="ttc" id="classParamEntryRange_html_aaaa9f211db293e18b94976bd6e9c42b5"><div class="ttname"><a href="classParamEntryRange.html#aaaa9f211db293e18b94976bd6e9c42b5">ParamEntryRange::getParamEntry</a></div><div class="ttdeci">ParamEntry * getParamEntry(void) const</div><div class="ttdoc">Get pointer to actual ParamEntry. </div><div class="ttdef"><b>Definition:</b> fspec.hh:139</div></div>
<div class="ttc" id="classParameterBasic_html_a5356f1c78cedff7576c3cd5d04c3ae91"><div class="ttname"><a href="classParameterBasic.html#a5356f1c78cedff7576c3cd5d04c3ae91">ParameterBasic::isNameLocked</a></div><div class="ttdeci">virtual bool isNameLocked(void) const</div><div class="ttdoc">Is the parameter name locked. </div><div class="ttdef"><b>Definition:</b> fspec.hh:977</div></div>
<div class="ttc" id="classParamActive_html_aef5c24a78fbfe7a847eceec2c8854fbb"><div class="ttname"><a href="classParamActive.html#aef5c24a78fbfe7a847eceec2c8854fbb">ParamActive::getNumTrials</a></div><div class="ttdeci">int4 getNumTrials(void) const</div><div class="ttdoc">Get the number of trials in this container. </div><div class="ttdef"><b>Definition:</b> fspec.hh:236</div></div>
<div class="ttc" id="classEffectRecord_html_ab05dcd1cc8377142d6a1427fedddcf21"><div class="ttname"><a href="classEffectRecord.html#ab05dcd1cc8377142d6a1427fedddcf21">EffectRecord::EffectRecord</a></div><div class="ttdeci">EffectRecord(const EffectRecord &amp;op2)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:318</div></div>
<div class="ttc" id="classParamEntryRange_html_abea8f5ecb774384169913af003a112a8"><div class="ttname"><a href="classParamEntryRange.html#abea8f5ecb774384169913af003a112a8">ParamEntryRange::getFirst</a></div><div class="ttdeci">uintb getFirst(void) const</div><div class="ttdoc">Get the first address in the range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:136</div></div>
<div class="ttc" id="classFuncProto_html_a2cb0c5a60d2cfd70462d8e9f75aa9819"><div class="ttname"><a href="classFuncProto.html#a2cb0c5a60d2cfd70462d8e9f75aa9819">FuncProto::isStackGrowsNegative</a></div><div class="ttdeci">bool isStackGrowsNegative(void) const</div><div class="ttdoc">Return true if the stack grows toward smaller addresses. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1342</div></div>
<div class="ttc" id="classProtoModel_html_a66b4e24eaff01c41d6316407a2dde2e1"><div class="ttname"><a href="classProtoModel.html#a66b4e24eaff01c41d6316407a2dde2e1">ProtoModel::getBiggestContainedInputParam</a></div><div class="ttdeci">bool getBiggestContainedInputParam(const Address &amp;loc, int4 size, VarnodeData &amp;res) const</div><div class="ttdoc">Pass-back the biggest input parameter contained within the given range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:807</div></div>
<div class="ttc" id="classParamList_html_af27b49e05fbcbaa4e833e2e4f68d41ee"><div class="ttname"><a href="classParamList.html#af27b49e05fbcbaa4e833e2e4f68d41ee">ParamList::checkSplit</a></div><div class="ttdeci">virtual bool checkSplit(const Address &amp;loc, int4 size, int4 splitpoint) const =0</div><div class="ttdoc">Check if it makes sense to split a single storage location into two parameters. </div></div>
<div class="ttc" id="classProtoModel_html_af505f8d493ab0dcefca9e94941c13658"><div class="ttname"><a href="classProtoModel.html#af505f8d493ab0dcefca9e94941c13658">ProtoModel::getInjectUponEntry</a></div><div class="ttdeci">int4 getInjectUponEntry(void) const</div><div class="ttdoc">Get the inject uponentry id. </div><div class="ttdef"><b>Definition:</b> fspec.hh:646</div></div>
<div class="ttc" id="classFuncProto_html"><div class="ttname"><a href="classFuncProto.html">FuncProto</a></div><div class="ttdoc">A function prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1147</div></div>
<div class="ttc" id="classTypeFactory_html"><div class="ttname"><a href="classTypeFactory.html">TypeFactory</a></div><div class="ttdoc">Container class for all Datatype objects in an Architecture. </div><div class="ttdef"><b>Definition:</b> type.hh:380</div></div>
<div class="ttc" id="classParamActive_html_af2221b328688426d4a192c0704ed787e"><div class="ttname"><a href="classParamActive.html#af2221b328688426d4a192c0704ed787e">ParamActive::getNumPasses</a></div><div class="ttdeci">int4 getNumPasses(void) const</div><div class="ttdoc">How many trial analysis passes were performed. </div><div class="ttdef"><b>Definition:</b> fspec.hh:247</div></div>
<div class="ttc" id="classParamList_html_a10bf678b80a0e6737a955706418ab645"><div class="ttname"><a href="classParamList.html#a10bf678b80a0e6737a955706418ab645">ParamList::assumedExtension</a></div><div class="ttdeci">virtual OpCode assumedExtension(const Address &amp;addr, int4 size, VarnodeData &amp;res) const =0</div><div class="ttdoc">Get the type of extension and containing parameter for the given storage. </div></div>
<div class="ttc" id="classFuncProto_html_a36076943e0845125efffbd7d1d1e46ef"><div class="ttname"><a href="classFuncProto.html#a36076943e0845125efffbd7d1d1e46ef">FuncProto::getModelExtraPop</a></div><div class="ttdeci">int4 getModelExtraPop(void) const</div><div class="ttdoc">Get the extrapop of the prototype model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1193</div></div>
<div class="ttc" id="classParamTrial_html_ad7ca7f738c822caea264fb6bf7b2738d"><div class="ttname"><a href="classParamTrial.html#ad7ca7f738c822caea264fb6bf7b2738d">ParamTrial::setAddress</a></div><div class="ttdeci">void setAddress(const Address &amp;ad, int4 sz)</div><div class="ttdoc">Reset the memory range of this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:206</div></div>
<div class="ttc" id="classProtoModel_html_a42eb0adf6bb66f15bbbde19c02c931ca"><div class="ttname"><a href="classProtoModel.html#a42eb0adf6bb66f15bbbde19c02c931ca">ProtoModel::setExtraPop</a></div><div class="ttdeci">void setExtraPop(int4 ep)</div><div class="ttdoc">Set the stack-pointer extrapop. </div><div class="ttdef"><b>Definition:</b> fspec.hh:645</div></div>
<div class="ttc" id="classProtoModel_html_a256b9f054603fd6d166fdf86689467bf"><div class="ttname"><a href="classProtoModel.html#a256b9f054603fd6d166fdf86689467bf">ProtoModel::getArch</a></div><div class="ttdeci">Architecture * getArch(void) const</div><div class="ttdoc">Get the owning Architecture. </div><div class="ttdef"><b>Definition:</b> fspec.hh:642</div></div>
<div class="ttc" id="classProtoModel_html_a8d1f841c8f099cc2f124b8257c51d50f"><div class="ttname"><a href="classProtoModel.html#a8d1f841c8f099cc2f124b8257c51d50f">ProtoModel::numLikelyTrash</a></div><div class="ttdeci">int4 numLikelyTrash(void) const</div><div class="ttdoc">Get the number of likelytrash locations. </div><div class="ttdef"><b>Definition:</b> fspec.hh:704</div></div>
<div class="ttc" id="classProtoModel_html_a0e0ae91c9fa12f548418c469f63c9d1d"><div class="ttname"><a href="classProtoModel.html#a0e0ae91c9fa12f548418c469f63c9d1d">ProtoModel::checkOutputJoin</a></div><div class="ttdeci">bool checkOutputJoin(const Address &amp;hiaddr, int4 hisize, const Address &amp;loaddr, int4 losize) const</div><div class="ttdoc">Check if the given two output storage locations can represent a single logical return value...</div><div class="ttdef"><b>Definition:</b> fspec.hh:686</div></div>
<div class="ttc" id="classFuncCallSpecs_html_abfda84c2a3919927503193ce9595efd6"><div class="ttname"><a href="classFuncCallSpecs.html#abfda84c2a3919927503193ce9595efd6">FuncCallSpecs::getStackPlaceholderSlot</a></div><div class="ttdeci">int4 getStackPlaceholderSlot(void) const</div><div class="ttdoc">Get the slot of the stack-pointer placeholder. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1479</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a5c13854db24718357b5ce7de7802b4ed"><div class="ttname"><a href="classFuncCallSpecs.html#a5c13854db24718357b5ce7de7802b4ed">FuncCallSpecs::clearActiveOutput</a></div><div class="ttdeci">void clearActiveOutput(void)</div><div class="ttdoc">Turn off analysis recovering the return value. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1488</div></div>
<div class="ttc" id="classParamList_html"><div class="ttname"><a href="classParamList.html">ParamList</a></div><div class="ttdef"><b>Definition:</b> fspec.hh:339</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a4145c5e63b80ece45a2a4f0fd5949138"><div class="ttname"><a href="classFuncCallSpecs.html#a4145c5e63b80ece45a2a4f0fd5949138">FuncCallSpecs::isInputActive</a></div><div class="ttdeci">bool isInputActive(void) const</div><div class="ttdoc">Return true if input parameter recovery analysis is active. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1489</div></div>
<div class="ttc" id="classParamTrial_html_aa929e7464a8b48843ba7e03f7a741e0a"><div class="ttname"><a href="classParamTrial.html#aa929e7464a8b48843ba7e03f7a741e0a">ParamTrial::markActive</a></div><div class="ttdeci">void markActive(void)</div><div class="ttdoc">Mark that trial is actively used (in data-flow) </div><div class="ttdef"><b>Definition:</b> fspec.hh:188</div></div>
<div class="ttc" id="classFuncProto_html_aed492939de15e4ea60f9970f2ec685ac"><div class="ttname"><a href="classFuncProto.html#aed492939de15e4ea60f9970f2ec685ac">FuncProto::isDestructor</a></div><div class="ttdeci">bool isDestructor(void) const</div><div class="ttdoc">Is this prototype for a class destructor method. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1257</div></div>
<div class="ttc" id="classSymbol_html"><div class="ttname"><a href="classSymbol.html">Symbol</a></div><div class="ttdoc">The base class for a symbol in a symbol table or scope. </div><div class="ttdef"><b>Definition:</b> database.hh:153</div></div>
<div class="ttc" id="classProtoModel_html_ab532221dd4a9946b2dea90be44c79879ab0874d825448e7c731717fad59bbec92"><div class="ttname"><a href="classProtoModel.html#ab532221dd4a9946b2dea90be44c79879ab0874d825448e7c731717fad59bbec92">ProtoModel::extrapop_unknown</a></div><div class="ttdoc">Reserved extrapop value meaning the function&amp;#39;s extrapop is unknown. </div><div class="ttdef"><b>Definition:</b> fspec.hh:636</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a866e9a9406614829224612035f28d311"><div class="ttname"><a href="classFuncCallSpecs.html#a866e9a9406614829224612035f28d311">FuncCallSpecs::getActiveOutput</a></div><div class="ttdeci">ParamActive * getActiveOutput(void)</div><div class="ttdoc">Get the analysis object for return value recovery. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1494</div></div>
<div class="ttc" id="classProtoModel_html_a19f8d9a9dbc7fb8d52aa180410cddc8b"><div class="ttname"><a href="classProtoModel.html#a19f8d9a9dbc7fb8d52aa180410cddc8b">ProtoModel::getName</a></div><div class="ttdeci">const string &amp; getName(void) const</div><div class="ttdoc">Get the name of the prototype model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:641</div></div>
<div class="ttc" id="classParamListStandard_html"><div class="ttname"><a href="classParamListStandard.html">ParamListStandard</a></div><div class="ttdoc">A standard model for parameters as an ordered list of storage resources. </div><div class="ttdef"><b>Definition:</b> fspec.hh:491</div></div>
<div class="ttc" id="classParamTrial_html_a64a57d4768366a15b920f0670ad2e83d"><div class="ttname"><a href="classParamTrial.html#a64a57d4768366a15b920f0670ad2e83d">ParamTrial::setSlot</a></div><div class="ttdeci">void setSlot(int4 val)</div><div class="ttdoc">Set the slot associated with this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:183</div></div>
<div class="ttc" id="classProtoStore_html_aefbc7f56e4d2f26b043bbdf74b6a8553"><div class="ttname"><a href="classProtoStore.html#aefbc7f56e4d2f26b043bbdf74b6a8553">ProtoStore::~ProtoStore</a></div><div class="ttdeci">virtual ~ProtoStore(void)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:997</div></div>
<div class="ttc" id="classParamListMerged_html_a5b9e6c47a1d11673ab94fedd7bce15ba"><div class="ttname"><a href="classParamListMerged.html#a5b9e6c47a1d11673ab94fedd7bce15ba">ParamListMerged::ParamListMerged</a></div><div class="ttdeci">ParamListMerged(void)</div><div class="ttdoc">Constructor for use with restoreXml. </div><div class="ttdef"><b>Definition:</b> fspec.hh:580</div></div>
<div class="ttc" id="classParamTrial_html_a7006ab058b4af10027cc87ee1b81b476"><div class="ttname"><a href="classParamTrial.html#a7006ab058b4af10027cc87ee1b81b476">ParamTrial::markNoUse</a></div><div class="ttdeci">void markNoUse(void)</div><div class="ttdoc">Mark trial as definitely not a parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:190</div></div>
<div class="ttc" id="classParamActive_html"><div class="ttname"><a href="classParamActive.html">ParamActive</a></div><div class="ttdoc">Container class for ParamTrial objects. </div><div class="ttdef"><b>Definition:</b> fspec.hh:223</div></div>
<div class="ttc" id="classProtoModel_html_a4fcf1b51c0ce470e353e798b9eaa8603"><div class="ttname"><a href="classProtoModel.html#a4fcf1b51c0ce470e353e798b9eaa8603">ProtoModel::assumedInputExtension</a></div><div class="ttdeci">OpCode assumedInputExtension(const Address &amp;addr, int4 size, VarnodeData &amp;res) const</div><div class="ttdoc">Get the type of extension and containing input parameter for the given storage. </div><div class="ttdef"><b>Definition:</b> fspec.hh:785</div></div>
<div class="ttc" id="structPrototypePieces_html_ac0eadd4acbffa119e16210b39e32623e"><div class="ttname"><a href="structPrototypePieces.html#ac0eadd4acbffa119e16210b39e32623e">PrototypePieces::name</a></div><div class="ttdeci">string name</div><div class="ttdoc">Identifier (function name) associated with prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1129</div></div>
<div class="ttc" id="classParamTrial_html_a55ddad64a188a6513272a284098aea23"><div class="ttname"><a href="classParamTrial.html#a55ddad64a188a6513272a284098aea23">ParamTrial::isDefinitelyNotUsed</a></div><div class="ttdeci">bool isDefinitelyNotUsed(void) const</div><div class="ttdoc">Is this trial as definitely not a parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:195</div></div>
<div class="ttc" id="classParamListMerged_html_aa4252b6768505e059edfe83ebdbf2065"><div class="ttname"><a href="classParamListMerged.html#aa4252b6768505e059edfe83ebdbf2065">ParamListMerged::fillinMap</a></div><div class="ttdeci">virtual void fillinMap(ParamActive *active) const</div><div class="ttdoc">Given an unordered list of storage locations, calculate a function prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:588</div></div>
<div class="ttc" id="classParamListMerged_html_aeaa59d5b53fdbcf3b3f669aef70de20f"><div class="ttname"><a href="classParamListMerged.html#aeaa59d5b53fdbcf3b3f669aef70de20f">ParamListMerged::ParamListMerged</a></div><div class="ttdeci">ParamListMerged(const ParamListMerged &amp;op2)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:581</div></div>
<div class="ttc" id="classParamList_html_a6e43243a4f88cb16925d6a785b6f8289"><div class="ttname"><a href="classParamList.html#a6e43243a4f88cb16925d6a785b6f8289">ParamList::unjustifiedContainer</a></div><div class="ttdeci">virtual bool unjustifiedContainer(const Address &amp;loc, int4 size, VarnodeData &amp;res) const =0</div><div class="ttdoc">Check if the given storage location looks like an unjustified parameter. </div></div>
<div class="ttc" id="classParamListStandard_html_a5d7bc165654ee2900b52bbc6f9c596a1"><div class="ttname"><a href="classParamListStandard.html#a5d7bc165654ee2900b52bbc6f9c596a1">ParamListStandard::getEntry</a></div><div class="ttdeci">const list&lt; ParamEntry &gt; &amp; getEntry(void) const</div><div class="ttdoc">Get the list of parameter entries. </div><div class="ttdef"><b>Definition:</b> fspec.hh:514</div></div>
<div class="ttc" id="classProtoModel_html_a1e6449c1c7d16d6ec396d29e58042cad"><div class="ttname"><a href="classProtoModel.html#a1e6449c1c7d16d6ec396d29e58042cad">ProtoModel::getLikelyTrash</a></div><div class="ttdeci">const VarnodeData &amp; getLikelyTrash(int4 i) const</div><div class="ttdoc">Get the i-th likelytrashh location. </div><div class="ttdef"><b>Definition:</b> fspec.hh:705</div></div>
<div class="ttc" id="classVarnode_html_ad367c0ac3c08b6f41e7334e90a138e8cae49e063a1b1e7de4592afd3f19abbdc7"><div class="ttname"><a href="classVarnode.html#ad367c0ac3c08b6f41e7334e90a138e8cae49e063a1b1e7de4592afd3f19abbdc7">Varnode::typelock</a></div><div class="ttdoc">The Dataype of the Varnode is locked. </div><div class="ttdef"><b>Definition:</b> varnode.hh:82</div></div>
<div class="ttc" id="classParameterBasic_html"><div class="ttname"><a href="classParameterBasic.html">ParameterBasic</a></div><div class="ttdoc">A stand-alone parameter with no backing symbol. </div><div class="ttdef"><b>Definition:</b> fspec.hh:964</div></div>
<div class="ttc" id="classProtoModel_html_a4736d007016235f93ae81100f8312e26"><div class="ttname"><a href="classProtoModel.html#a4736d007016235f93ae81100f8312e26">ProtoModel::getLocalRange</a></div><div class="ttdeci">const RangeList &amp; getLocalRange(void) const</div><div class="ttdoc">Get the range of (possible) local stack variables. </div><div class="ttdef"><b>Definition:</b> fspec.hh:700</div></div>
<div class="ttc" id="classParamEntryRange_html_a29e1a3497f5a009c45e9bde36fe097a9"><div class="ttname"><a href="classParamEntryRange.html#a29e1a3497f5a009c45e9bde36fe097a9">ParamEntryRange::getLast</a></div><div class="ttdeci">uintb getLast(void) const</div><div class="ttdoc">Get the last address in the range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:137</div></div>
<div class="ttc" id="classFspecSpace_html"><div class="ttname"><a href="classFspecSpace.html">FspecSpace</a></div><div class="ttdoc">A special space for encoding FuncCallSpecs. </div><div class="ttdef"><b>Definition:</b> fspec.hh:283</div></div>
<div class="ttc" id="classParamTrial_html"><div class="ttname"><a href="classParamTrial.html">ParamTrial</a></div><div class="ttdoc">A register or memory register that may be used to pass a parameter or return value. </div><div class="ttdef"><b>Definition:</b> fspec.hh:157</div></div>
<div class="ttc" id="classFuncProto_html_aa68fc3fa0f616ed233026bcb415a1143"><div class="ttname"><a href="classFuncProto.html#aa68fc3fa0f616ed233026bcb415a1143">FuncProto::getInjectUponEntry</a></div><div class="ttdeci">int4 getInjectUponEntry(void) const</div><div class="ttdoc">Get any upon-entry injection id (or -1) </div><div class="ttdef"><b>Definition:</b> fspec.hh:1282</div></div>
<div class="ttc" id="classFuncProto_html_a843bc3ca11536028c5cb00ce5479182d"><div class="ttname"><a href="classFuncProto.html#a843bc3ca11536028c5cb00ce5479182d">FuncProto::setInline</a></div><div class="ttdeci">void setInline(bool val)</div><div class="ttdoc">Toggle the in-line setting for functions with this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1216</div></div>
<div class="ttc" id="classProtoModel_html_a4ef7db884a8c5bcdea92ed7b2d6a9ac0"><div class="ttname"><a href="classProtoModel.html#a4ef7db884a8c5bcdea92ed7b2d6a9ac0">ProtoModel::ProtoModel</a></div><div class="ttdeci">ProtoModel(Architecture *g)</div><div class="ttdoc">Constructor for use with restoreXml() </div><div class="ttdef"><b>Definition:</b> fspec.cc:1756</div></div>
<div class="ttc" id="classFuncProto_html_a827a8f9335cbb8587a566d8e1765d5a2"><div class="ttname"><a href="classFuncProto.html#a827a8f9335cbb8587a566d8e1765d5a2">FuncProto::setOverride</a></div><div class="ttdeci">void setOverride(bool val)</div><div class="ttdoc">Toggle whether this is a call site override. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1346</div></div>
<div class="ttc" id="classParamTrial_html_af67e7b4a445f7069a2680c63afe0a28c"><div class="ttname"><a href="classParamTrial.html#af67e7b4a445f7069a2680c63afe0a28c">ParamTrial::isKilledByCall</a></div><div class="ttdeci">bool isKilledByCall(void) const</div><div class="ttdoc">Is this storage killed-by-call. </div><div class="ttdef"><b>Definition:</b> fspec.hh:198</div></div>
<div class="ttc" id="classParamActive_html_a77a0cc16f6a28aeb1fae38416ed2c3ed"><div class="ttname"><a href="classParamActive.html#a77a0cc16f6a28aeb1fae38416ed2c3ed">ParamActive::isFullyChecked</a></div><div class="ttdeci">bool isFullyChecked(void) const</div><div class="ttdoc">Are all trials checked with no new trials expected. </div><div class="ttdef"><b>Definition:</b> fspec.hh:243</div></div>
<div class="ttc" id="classEffectRecord_html_a5291ec5070dde1ee06f3cfefb2fcc21a"><div class="ttname"><a href="classEffectRecord.html#a5291ec5070dde1ee06f3cfefb2fcc21a">EffectRecord::operator!=</a></div><div class="ttdeci">bool operator!=(const EffectRecord &amp;op2) const</div><div class="ttdoc">Inequality operator. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1561</div></div>
<div class="ttc" id="classParameterBasic_html_a2b84d49e6b4eca382a863567de942193"><div class="ttname"><a href="classParameterBasic.html#a2b84d49e6b4eca382a863567de942193">ParameterBasic::ParameterBasic</a></div><div class="ttdeci">ParameterBasic(const string &amp;nm, const Address &amp;ad, Datatype *tp, uint4 fl)</div><div class="ttdoc">Construct from components. </div><div class="ttdef"><b>Definition:</b> fspec.hh:970</div></div>
<div class="ttc" id="classParamTrial_html_aad40b54a44a9eae8890e6d6ebbb6d5bb"><div class="ttname"><a href="classParamTrial.html#aad40b54a44a9eae8890e6d6ebbb6d5bb">ParamTrial::getAddress</a></div><div class="ttdeci">const Address &amp; getAddress(void) const</div><div class="ttdoc">Get the starting address of this trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:180</div></div>
<div class="ttc" id="classProtoParameter_html"><div class="ttname"><a href="classProtoParameter.html">ProtoParameter</a></div><div class="ttdoc">A function parameter viewed as a name, data-type, and storage address. </div><div class="ttdef"><b>Definition:</b> fspec.hh:903</div></div>
<div class="ttc" id="classProtoModelMerged_html_a1c80c617c086b0edacb483f8315d12e9"><div class="ttname"><a href="classProtoModelMerged.html#a1c80c617c086b0edacb483f8315d12e9">ProtoModelMerged::restoreXml</a></div><div class="ttdeci">virtual void restoreXml(const Element *el)</div><div class="ttdoc">Restore this model from an XML stream. </div><div class="ttdef"><b>Definition:</b> fspec.cc:2247</div></div>
<div class="ttc" id="classParamList_html_ae628b7e9e0e780197b86fa312d52b1c8"><div class="ttname"><a href="classParamList.html#ae628b7e9e0e780197b86fa312d52b1c8">ParamList::~ParamList</a></div><div class="ttdeci">virtual ~ParamList(void)</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> fspec.hh:347</div></div>
<div class="ttc" id="classFuncProto_html_aa191f5c52ce98ba14ef14f63a763a7da"><div class="ttname"><a href="classFuncProto.html#aa191f5c52ce98ba14ef14f63a763a7da">FuncProto::setDestructor</a></div><div class="ttdeci">void setDestructor(bool val)</div><div class="ttdoc">Toggle whether this prototype is a destructor method. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1262</div></div>
<div class="ttc" id="classAddrSpace_html_af5683c0d7e42edec80b97bcb9fb3dc11"><div class="ttname"><a href="classAddrSpace.html#af5683c0d7e42edec80b97bcb9fb3dc11">AddrSpace::isBigEndian</a></div><div class="ttdeci">bool isBigEndian(void) const</div><div class="ttdoc">Return true if values in this space are big endian. </div><div class="ttdef"><b>Definition:</b> space.hh:408</div></div>
<div class="ttc" id="op_8hh_html"><div class="ttname"><a href="op_8hh.html">op.hh</a></div><div class="ttdoc">The PcodeOp and PcodeOpBank classes. </div></div>
<div class="ttc" id="classFuncCallSpecs_html_a0a5d18be6037559397af11e6764abbcd"><div class="ttname"><a href="classFuncCallSpecs.html#a0a5d18be6037559397af11e6764abbcd">FuncCallSpecs::getEntryAddress</a></div><div class="ttdeci">const Address &amp; getEntryAddress(void) const</div><div class="ttdoc">Get the entry address of the callee. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1472</div></div>
<div class="ttc" id="classProtoModel_html_a9918d9e7595d9f33f53bd9ffd3118f19"><div class="ttname"><a href="classProtoModel.html#a9918d9e7595d9f33f53bd9ffd3118f19">ProtoModel::getSpacebase</a></div><div class="ttdeci">AddrSpace * getSpacebase(void) const</div><div class="ttdoc">Get the stack space associated with this model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:811</div></div>
<div class="ttc" id="classFuncCallSpecs_html_ade3352e35ffd4ed59bbc78f4b43c2998"><div class="ttname"><a href="classFuncCallSpecs.html#ade3352e35ffd4ed59bbc78f4b43c2998">FuncCallSpecs::getEffectiveExtraPop</a></div><div class="ttdeci">int4 getEffectiveExtraPop(void) const</div><div class="ttdoc">Get the specific extrapop associate with this call site. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1474</div></div>
<div class="ttc" id="structParameterPieces_html"><div class="ttname"><a href="structParameterPieces.html">ParameterPieces</a></div><div class="ttdoc">Basic elements of a parameter: address, data-type, properties. </div><div class="ttdef"><b>Definition:</b> fspec.hh:294</div></div>
<div class="ttc" id="classFuncProto_html_a2f1510914c66b2201248a6a06d282948"><div class="ttname"><a href="classFuncProto.html#a2f1510914c66b2201248a6a06d282948">FuncProto::isNoReturn</a></div><div class="ttdeci">bool isNoReturn(void) const</div><div class="ttdoc">Does a function with this prototype never return. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1233</div></div>
<div class="ttc" id="classFuncProto_html_ace1a73b8df1756f6945df97319270508"><div class="ttname"><a href="classFuncProto.html#ace1a73b8df1756f6945df97319270508">FuncProto::assumedInputExtension</a></div><div class="ttdeci">OpCode assumedInputExtension(const Address &amp;addr, int4 size, VarnodeData &amp;res) const</div><div class="ttdoc">Get the type of extension and containing input parameter for the given storage. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1384</div></div>
<div class="ttc" id="classProtoModel_html_a1c0e6fe360413702b20cd04367dc477f"><div class="ttname"><a href="classProtoModel.html#a1c0e6fe360413702b20cd04367dc477f">ProtoModel::possibleInputParam</a></div><div class="ttdeci">bool possibleInputParam(const Address &amp;loc, int4 size) const</div><div class="ttdoc">Does the given storage location make sense as an input parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:727</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a9dbc2ae7d43e62971751d96cbddf1b32"><div class="ttname"><a href="classFuncCallSpecs.html#a9dbc2ae7d43e62971751d96cbddf1b32">FuncCallSpecs::setAddress</a></div><div class="ttdeci">void setAddress(const Address &amp;addr)</div><div class="ttdoc">Set (override) the callee&amp;#39;s entry address. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1466</div></div>
<div class="ttc" id="classParamActive_html_a7cf85723002b79c4500f3eba9159b7fa"><div class="ttname"><a href="classParamActive.html#a7cf85723002b79c4500f3eba9159b7fa">ParamActive::markNeedsFinalCheck</a></div><div class="ttdeci">void markNeedsFinalCheck(void)</div><div class="ttdoc">Mark that a final check is required. </div><div class="ttdef"><b>Definition:</b> fspec.hh:241</div></div>
<div class="ttc" id="classProtoModelMerged_html"><div class="ttname"><a href="classProtoModelMerged.html">ProtoModelMerged</a></div><div class="ttdoc">A prototype model made by merging together other models. </div><div class="ttdef"><b>Definition:</b> fspec.hh:880</div></div>
<div class="ttc" id="classParameterBasic_html_a9f09a6b3c75b4a3161b789fda98edc4a"><div class="ttname"><a href="classParameterBasic.html#a9f09a6b3c75b4a3161b789fda98edc4a">ParameterBasic::isIndirectStorage</a></div><div class="ttdeci">virtual bool isIndirectStorage(void) const</div><div class="ttdoc">Is this really a pointer to the true parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:979</div></div>
<div class="ttc" id="classFuncProto_html_a92e6871d7ee764e7c5aa8b10bf47705a"><div class="ttname"><a href="classFuncProto.html#a92e6871d7ee764e7c5aa8b10bf47705a">FuncProto::getOutput</a></div><div class="ttdeci">ProtoParameter * getOutput(void) const</div><div class="ttdoc">Get the return value. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1338</div></div>
<div class="ttc" id="classParamEntry_html_af5f3ce2b0cce7b2400a14ab3abc37cd9"><div class="ttname"><a href="classParamEntry.html#af5f3ce2b0cce7b2400a14ab3abc37cd9">ParamEntry::getSlot</a></div><div class="ttdeci">int4 getSlot(const Address &amp;addr, int4 skip) const</div><div class="ttdoc">Calculate the slot occupied by a specific address. </div><div class="ttdef"><b>Definition:</b> fspec.cc:231</div></div>
<div class="ttc" id="classEffectRecord_html_a2d5a13546e325d96f0224cb5a8b09403"><div class="ttname"><a href="classEffectRecord.html#a2d5a13546e325d96f0224cb5a8b09403">EffectRecord::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const EffectRecord &amp;op2) const</div><div class="ttdoc">Comparator for EffectRecords. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1546</div></div>
<div class="ttc" id="classProtoStore_html_a97623d0ed5720f94d7c671edccbd9142"><div class="ttname"><a href="classProtoStore.html#a97623d0ed5720f94d7c671edccbd9142">ProtoStore::getInput</a></div><div class="ttdeci">virtual ProtoParameter * getInput(int4 i)=0</div><div class="ttdoc">Get the i-th input parameter (or NULL if it doesn&amp;#39;t exist) </div></div>
<div class="ttc" id="classFuncProto_html_ace0306cd7ee2a040dd783bd5e7606370"><div class="ttname"><a href="classFuncProto.html#ace0306cd7ee2a040dd783bd5e7606370">FuncProto::hasOutputErrors</a></div><div class="ttdeci">bool hasOutputErrors(void) const</div><div class="ttdoc">Has this prototype been marked as having an incorrect return value description. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1268</div></div>
<div class="ttc" id="classProtoStore_html_a641e1b680e3a7c67b65a964d06d60187"><div class="ttname"><a href="classProtoStore.html#a641e1b680e3a7c67b65a964d06d60187">ProtoStore::getNumInputs</a></div><div class="ttdeci">virtual int4 getNumInputs(void) const =0</div><div class="ttdoc">Get the number of input parameters for this prototype. </div></div>
<div class="ttc" id="classParamList_html_a77bf29c2bd3fe17be0e8200af97c50d9"><div class="ttname"><a href="classParamList.html#a77bf29c2bd3fe17be0e8200af97c50d9">ParamList::possibleParam</a></div><div class="ttdeci">virtual bool possibleParam(const Address &amp;loc, int4 size) const =0</div><div class="ttdoc">Does the given storage location make sense as a parameter. </div></div>
<div class="ttc" id="classFuncProto_html_a079e52c493d00604502c27fe6264fe1b"><div class="ttname"><a href="classFuncProto.html#a079e52c493d00604502c27fe6264fe1b">FuncProto::isOverride</a></div><div class="ttdeci">bool isOverride(void) const</div><div class="ttdoc">Return true if this is a call site override. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1345</div></div>
<div class="ttc" id="classParameterBasic_html_a96b3cef1901c8f4b7591551ea7b4d407"><div class="ttname"><a href="classParameterBasic.html#a96b3cef1901c8f4b7591551ea7b4d407">ParameterBasic::getSize</a></div><div class="ttdeci">virtual int4 getSize(void) const</div><div class="ttdoc">Get the number of bytes occupied by this parameter. </div><div class="ttdef"><b>Definition:</b> fspec.hh:975</div></div>
<div class="ttc" id="classProtoStore_html"><div class="ttname"><a href="classProtoStore.html">ProtoStore</a></div><div class="ttdoc">A collection parameter descriptions making up a function prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:995</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a41d9cc82055fdcbc01f0a37ae3a56a01"><div class="ttname"><a href="classFuncCallSpecs.html#a41d9cc82055fdcbc01f0a37ae3a56a01">FuncCallSpecs::setEffectiveExtraPop</a></div><div class="ttdeci">void setEffectiveExtraPop(int4 epop)</div><div class="ttdoc">Set the specific extrapop associate with this call site. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1473</div></div>
<div class="ttc" id="classParamActive_html_ad5e20b21265e1788deb66b2f30b3b55b"><div class="ttname"><a href="classParamActive.html#ad5e20b21265e1788deb66b2f30b3b55b">ParamActive::setPlaceholderSlot</a></div><div class="ttdeci">void setPlaceholderSlot(void)</div><div class="ttdoc">Establish a stack placedholder slot. </div><div class="ttdef"><b>Definition:</b> fspec.hh:245</div></div>
<div class="ttc" id="classParamActive_html_a88fb46565155de0123b634951a186f74"><div class="ttname"><a href="classParamActive.html#a88fb46565155de0123b634951a186f74">ParamActive::getTrial</a></div><div class="ttdeci">ParamTrial &amp; getTrial(int4 i)</div><div class="ttdoc">Get the i-th trial. </div><div class="ttdef"><b>Definition:</b> fspec.hh:237</div></div>
<div class="ttc" id="classFuncProto_html_a1195921be7caf4244970a23b0eafef67"><div class="ttname"><a href="classFuncProto.html#a1195921be7caf4244970a23b0eafef67">FuncProto::isInline</a></div><div class="ttdeci">bool isInline(void) const</div><div class="ttdoc">Does this function get in-lined during decompilation. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1210</div></div>
<div class="ttc" id="structPrototypePieces_html_ab424fb1bcab5c7d008b590a24a3ad34e"><div class="ttname"><a href="structPrototypePieces.html#ab424fb1bcab5c7d008b590a24a3ad34e">PrototypePieces::innames</a></div><div class="ttdeci">vector&lt; string &gt; innames</div><div class="ttdoc">Identifiers for input types. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1132</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a32432a6c7b201dc160ae0b2480a1b8b9"><div class="ttname"><a href="classFuncCallSpecs.html#a32432a6c7b201dc160ae0b2480a1b8b9">FuncCallSpecs::getActiveInput</a></div><div class="ttdeci">ParamActive * getActiveInput(void)</div><div class="ttdoc">Get the analysis object for input parameter recovery. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1493</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a5c5bb2445140cdde864320679ba347b0"><div class="ttname"><a href="classFuncCallSpecs.html#a5c5bb2445140cdde864320679ba347b0">FuncCallSpecs::getName</a></div><div class="ttdeci">const string &amp; getName(void) const</div><div class="ttdoc">Get the function name associated with the callee. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1471</div></div>
<div class="ttc" id="classEffectRecord_html_a2836f374f09e7ed7839505f5dd8b17b7"><div class="ttname"><a href="classEffectRecord.html#a2836f374f09e7ed7839505f5dd8b17b7">EffectRecord::operator==</a></div><div class="ttdeci">bool operator==(const EffectRecord &amp;op2) const</div><div class="ttdoc">Equality operator. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1554</div></div>
<div class="ttc" id="structVarnodeData_html"><div class="ttname"><a href="structVarnodeData.html">VarnodeData</a></div><div class="ttdoc">Data defining a specific memory location. </div><div class="ttdef"><b>Definition:</b> pcoderaw.hh:33</div></div>
<div class="ttc" id="classFuncCallSpecs_html_a860b42c7f272e40dae078854e101b6bc"><div class="ttname"><a href="classFuncCallSpecs.html#a860b42c7f272e40dae078854e101b6bc">FuncCallSpecs::getFuncdata</a></div><div class="ttdeci">Funcdata * getFuncdata(void) const</div><div class="ttdoc">Get the Funcdata object associated with the called function. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1468</div></div>
<div class="ttc" id="classFuncProto_html_ac8eacd70fbc6e4cd5d694d2ae5b1ed64"><div class="ttname"><a href="classFuncProto.html#ac8eacd70fbc6e4cd5d694d2ae5b1ed64">FuncProto::setOutputErrors</a></div><div class="ttdeci">void setOutputErrors(bool val)</div><div class="ttdoc">Toggle the output error setting for this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1278</div></div>
<div class="ttc" id="classScope_html"><div class="ttname"><a href="classScope.html">Scope</a></div><div class="ttdoc">A collection of Symbol objects within a single (namespace or functional) scope. </div><div class="ttdef"><b>Definition:</b> database.hh:413</div></div>
<div class="ttc" id="classEffectRecord_html_a30bb645ee7f1a917b62cb9adb3f5dc75"><div class="ttname"><a href="classEffectRecord.html#a30bb645ee7f1a917b62cb9adb3f5dc75">EffectRecord::getSize</a></div><div class="ttdeci">int4 getSize(void) const</div><div class="ttdoc">Get the size of the affected range. </div><div class="ttdef"><b>Definition:</b> fspec.hh:324</div></div>
<div class="ttc" id="classProtoModel_html_a6692a33595e306f23f23d98093a006bf"><div class="ttname"><a href="classProtoModel.html#a6692a33595e306f23f23d98093a006bf">ProtoModel::getMaxOutputDelay</a></div><div class="ttdeci">int4 getMaxOutputDelay(void) const</div><div class="ttdoc">Return the maximum heritage delay across all possible return values. </div><div class="ttdef"><b>Definition:</b> fspec.hh:830</div></div>
<div class="ttc" id="classFuncProto_html_aacaf0bda9b424dfd5c6a28d3a45fb100"><div class="ttname"><a href="classFuncProto.html#aacaf0bda9b424dfd5c6a28d3a45fb100">FuncProto::setNoReturn</a></div><div class="ttdeci">void setNoReturn(bool val)</div><div class="ttdoc">Toggle the no-return setting for functions with this prototype. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1238</div></div>
<div class="ttc" id="classFuncProto_html_a6ccc21837d768462cd2abca84a5ffd59"><div class="ttname"><a href="classFuncProto.html#a6ccc21837d768462cd2abca84a5ffd59">FuncProto::hasModel</a></div><div class="ttdeci">bool hasModel(void) const</div><div class="ttdoc">Does this prototype have a model. </div><div class="ttdef"><b>Definition:</b> fspec.hh:1188</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>