-
Notifications
You must be signed in to change notification settings - Fork 0
/
BaseSemantics_2MemoryCellState_8h_source.html
228 lines (228 loc) · 48.4 KB
/
BaseSemantics_2MemoryCellState_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ROSE: MemoryCellState.h 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/search.js"></script>
<link rel="search" href="search_opensearch.php?v=opensearch.xml" type="application/opensearchdescription+xml" title="ROSE"/>
<link href="roseDoxygen.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 id="projectrow">
<td id="projectalign">
<div id="projectname">ROSE<span id="projectnumber"> 0.11.145.141</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,true,'search.html','Search');
$(document).ready(function() {
if ($('.searchresults').length > 0) { searchBox.DOMSearchField().focus(); }
});
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_9e62d0ec1b5e35066c963e582c20357f.html">Rose</a></li><li class="navelem"><a class="el" href="dir_b6b36e208517412b6f28695766cc080b.html">BinaryAnalysis</a></li><li class="navelem"><a class="el" href="dir_57fb5b4f5e3be817552f672cb5411a2b.html">InstructionSemantics</a></li><li class="navelem"><a class="el" href="dir_db8a862ab6092a20ec229df1197e25d3.html">BaseSemantics</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">BaseSemantics/MemoryCellState.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef ROSE_BinaryAnalysis_InstructionSemantics_BaseSemantics_MemoryCellState_H</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define ROSE_BinaryAnalysis_InstructionSemantics_BaseSemantics_MemoryCellState_H</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include <featureTests.h></span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#ifdef ROSE_ENABLE_BINARY_ANALYSIS</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span> </div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/MemoryCell.h></span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/MemoryState.h></span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h></span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> </div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include <boost/serialization/access.hpp></span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="preprocessor">#include <boost/serialization/base_object.hpp></span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include <boost/serialization/export.hpp></span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceRose.html">Rose</a> {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">namespace </span>BinaryAnalysis {</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="keyword">namespace </span>InstructionSemantics {</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html">BaseSemantics</a> {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ab9750a0c3830c74c55a99019d17d3a55"> 20</a></span><span class="keyword">typedef</span> boost::shared_ptr<class MemoryCellState> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ab9750a0c3830c74c55a99019d17d3a55">MemoryCellStatePtr</a>;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="foldopen" id="foldopen00025" data-start="{" data-end="};">
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html"> 25</a></span><span class="keyword">class </span><a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html">MemoryCellState</a>: <span class="keyword">public</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryState.html">MemoryState</a> {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a6dbffda2837635d7d8a2ccd18698ca07"> 28</a></span> <span class="keyword">using </span><a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryState.html">Super</a> = <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryState.html">MemoryState</a>;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a7646d68b1487d772eae60df98af01280"> 31</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a7646d68b1487d772eae60df98af01280">Ptr</a> = <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ab9750a0c3830c74c55a99019d17d3a55">MemoryCellStatePtr</a>;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0f404ce2e7c82e25b07c91b59afc563e">MemoryCellPtr</a> protocell; <span class="comment">// prototypical memory cell used for its virtual constructors</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0f404ce2e7c82e25b07c91b59afc563e">MemoryCellPtr</a> latestWrittenCell_; <span class="comment">// the cell whose value was most recently written to, if any</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">friend</span> <span class="keyword">class </span>boost::serialization::access;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">template</span><<span class="keyword">class</span> S></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordtype">void</span> serialize(S &s, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="comment">/*version*/</span>) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> s & BOOST_SERIALIZATION_BASE_OBJECT_NVP(<a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryState.html">MemoryState</a>);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> s & BOOST_SERIALIZATION_NVP(protocell);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> s & BOOST_SERIALIZATION_NVP(latestWrittenCell_);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> }</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="keyword">protected</span>:</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html">MemoryCellState</a>() {} <span class="comment">// for serialization</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">explicit</span> MemoryCellState(<span class="keyword">const</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0f404ce2e7c82e25b07c91b59afc563e">MemoryCellPtr</a> &protocell);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> MemoryCellState(<span class="keyword">const</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ae281182bb99b033e6087f27309dcf603">SValuePtr</a> &addrProtoval, <span class="keyword">const</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ae281182bb99b033e6087f27309dcf603">SValuePtr</a> &valProtoval);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> MemoryCellState(<span class="keyword">const</span> MemoryCellState &other);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> ~MemoryCellState();</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00064" data-start="{" data-end="}">
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ac5cf0dec045b3a2f3e11838eea2784ab"> 64</a></span> <span class="keyword">static</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ab9750a0c3830c74c55a99019d17d3a55">MemoryCellStatePtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ac5cf0dec045b3a2f3e11838eea2784ab">promote</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0e041dec7b5ca22d15dd473f0c4fd825">BaseSemantics::MemoryStatePtr</a> &m) {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ab9750a0c3830c74c55a99019d17d3a55">MemoryCellStatePtr</a> retval = boost::dynamic_pointer_cast<MemoryCellState>(m);</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> ASSERT_not_null(retval);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">return</span> retval;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> }</div>
</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ada67b33bfe88d2cda09141fe5f9814c9"> 71</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ada67b33bfe88d2cda09141fe5f9814c9">clear</a>() <span class="keyword">override</span>;</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00077" data-start="{" data-end="}">
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a74c8853672a69b17e048f175d3377868"> 77</a></span> <span class="keyword">virtual</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0f404ce2e7c82e25b07c91b59afc563e">MemoryCellPtr</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a74c8853672a69b17e048f175d3377868">latestWrittenCell</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span> latestWrittenCell_;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
</div>
<div class="foldopen" id="foldopen00080" data-start="{" data-end="}">
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a3a845c69c0ee743da8c54ba3101604e7"> 80</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a3a845c69c0ee743da8c54ba3101604e7">latestWrittenCell</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0f404ce2e7c82e25b07c91b59afc563e">MemoryCellPtr</a> &cell) {</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> latestWrittenCell_ = cell;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> }</div>
</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ae11997a58387bb90ab0a71a5b4de0407"> 91</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Set.html">AddressSet</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ae11997a58387bb90ab0a71a5b4de0407">getWritersUnion</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">SValuePtr</a> &addr, <span class="keywordtype">size_t</span> nBits, <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1RiscOperators.html">RiscOperators</a> *addrOps,</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1RiscOperators.html">RiscOperators</a> *valOps) = 0;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a74b98c668e507704cef857dd964e88e0"> 100</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classSawyer_1_1Container_1_1Set.html">AddressSet</a> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a74b98c668e507704cef857dd964e88e0">getWritersIntersection</a>(<span class="keyword">const</span> <a class="code hl_class" href="classSawyer_1_1SharedPointer.html">SValuePtr</a> &addr, <span class="keywordtype">size_t</span> nBits, <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1RiscOperators.html">RiscOperators</a> *addrOps,</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1RiscOperators.html">RiscOperators</a> *valOps) = 0;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a2f8d1ead98738511a2c40dc0e891041b"> 106</a></span> <span class="keyword">virtual</span> std::vector<MemoryCellPtr> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a2f8d1ead98738511a2c40dc0e891041b">matchingCells</a>(<a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Predicate.html">MemoryCell::Predicate</a>&) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#aa4e63ae0c6e50c54dce33f6257ecefbf"> 113</a></span> <span class="keyword">virtual</span> std::vector<MemoryCellPtr> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#aa4e63ae0c6e50c54dce33f6257ecefbf">leadingCells</a>(<a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Predicate.html">MemoryCell::Predicate</a>&) <span class="keyword">const</span> = 0;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a7d3532a9b1bb5288bb3533f6eaa1067b"> 118</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a7d3532a9b1bb5288bb3533f6eaa1067b">eraseMatchingCells</a>(<a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Predicate.html">MemoryCell::Predicate</a>&) = 0;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a8fcbba5c3d21dad5760000ec4132d0b6"> 124</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a8fcbba5c3d21dad5760000ec4132d0b6">eraseLeadingCells</a>(<a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Predicate.html">MemoryCell::Predicate</a>&) = 0;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#acf10aae39833ff7f50607d11d1fac27b"> 129</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#acf10aae39833ff7f50607d11d1fac27b">traverse</a>(<a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Visitor.html">MemoryCell::Visitor</a>&) = 0;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a5f10e248ce23e574d31af70407ce6bbe"> 136</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a5f10e248ce23e574d31af70407ce6bbe">updateReadProperties</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a134f983ad9231b7bf34e76a6018d8347">CellList</a>&);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a9bee6c625c1643015d5783fb8aa3dcbb"> 142</a></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a9bee6c625c1643015d5783fb8aa3dcbb">updateWriteProperties</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a134f983ad9231b7bf34e76a6018d8347">CellList</a>&, <a class="code hl_class" href="classSawyer_1_1Container_1_1Set.html">InputOutputPropertySet</a>);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="foldopen" id="foldopen00145" data-start="{" data-end="}">
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a4d3a31878325bf0e31dfa34c8071de5f"> 145</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a4d3a31878325bf0e31dfa34c8071de5f">eraseNonWritten</a>() {</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1NonWrittenCells.html">MemoryCell::NonWrittenCells</a> p;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a7d3532a9b1bb5288bb3533f6eaa1067b">eraseMatchingCells</a>(p);</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> }</div>
</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="foldopen" id="foldopen00151" data-start="{" data-end="}">
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"><a class="line" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a6ec750a21dc3a616985b1b1271fd9e09"> 151</a></span> std::vector<MemoryCellPtr> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a6ec750a21dc3a616985b1b1271fd9e09">allCells</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1AllCells.html">MemoryCell::AllCells</a> p;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a2f8d1ead98738511a2c40dc0e891041b">matchingCells</a>(p);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span>};</div>
</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> </div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span>} <span class="comment">// namespace</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="preprocessor">#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span>BOOST_CLASS_EXPORT_KEY(<a class="code hl_class" href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState</a>);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState</a></div><div class="ttdoc">Cell-based memory state.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00025">BaseSemantics/MemoryCellState.h:25</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a2f8d1ead98738511a2c40dc0e891041b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a2f8d1ead98738511a2c40dc0e891041b">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::matchingCells</a></div><div class="ttdeci">virtual std::vector< MemoryCellPtr > matchingCells(MemoryCell::Predicate &) const =0</div><div class="ttdoc">Find all matching cells.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a3a845c69c0ee743da8c54ba3101604e7"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a3a845c69c0ee743da8c54ba3101604e7">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::latestWrittenCell</a></div><div class="ttdeci">virtual void latestWrittenCell(const MemoryCellPtr &cell)</div><div class="ttdoc">Property: Cell most recently written.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00080">BaseSemantics/MemoryCellState.h:80</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a4d3a31878325bf0e31dfa34c8071de5f"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a4d3a31878325bf0e31dfa34c8071de5f">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::eraseNonWritten</a></div><div class="ttdeci">void eraseNonWritten()</div><div class="ttdoc">Erase cells that have no writers.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00145">BaseSemantics/MemoryCellState.h:145</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a5f10e248ce23e574d31af70407ce6bbe"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a5f10e248ce23e574d31af70407ce6bbe">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::updateReadProperties</a></div><div class="ttdeci">virtual void updateReadProperties(const CellList &)</div><div class="ttdoc">Adjust I/O properties after reading memory.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a6ec750a21dc3a616985b1b1271fd9e09"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a6ec750a21dc3a616985b1b1271fd9e09">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::allCells</a></div><div class="ttdeci">std::vector< MemoryCellPtr > allCells() const</div><div class="ttdoc">All cells.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00151">BaseSemantics/MemoryCellState.h:151</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a74b98c668e507704cef857dd964e88e0"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a74b98c668e507704cef857dd964e88e0">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::getWritersIntersection</a></div><div class="ttdeci">virtual AddressSet getWritersIntersection(const SValuePtr &addr, size_t nBits, RiscOperators *addrOps, RiscOperators *valOps)=0</div><div class="ttdoc">Writers for an address.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a74c8853672a69b17e048f175d3377868"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a74c8853672a69b17e048f175d3377868">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::latestWrittenCell</a></div><div class="ttdeci">virtual MemoryCellPtr latestWrittenCell() const</div><div class="ttdoc">Property: Cell most recently written.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00077">BaseSemantics/MemoryCellState.h:77</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a7646d68b1487d772eae60df98af01280"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a7646d68b1487d772eae60df98af01280">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::Ptr</a></div><div class="ttdeci">MemoryCellStatePtr Ptr</div><div class="ttdoc">Shared-ownership pointer.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00031">BaseSemantics/MemoryCellState.h:31</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a7d3532a9b1bb5288bb3533f6eaa1067b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a7d3532a9b1bb5288bb3533f6eaa1067b">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::eraseMatchingCells</a></div><div class="ttdeci">virtual void eraseMatchingCells(MemoryCell::Predicate &)=0</div><div class="ttdoc">Remove all matching cells.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a8fcbba5c3d21dad5760000ec4132d0b6"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a8fcbba5c3d21dad5760000ec4132d0b6">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::eraseLeadingCells</a></div><div class="ttdeci">virtual void eraseLeadingCells(MemoryCell::Predicate &)=0</div><div class="ttdoc">Remove leading matching cells.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_a9bee6c625c1643015d5783fb8aa3dcbb"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#a9bee6c625c1643015d5783fb8aa3dcbb">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::updateWriteProperties</a></div><div class="ttdeci">virtual void updateWriteProperties(const CellList &, InputOutputPropertySet)</div><div class="ttdoc">Adjust I/O properties after writing memory.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_aa4e63ae0c6e50c54dce33f6257ecefbf"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#aa4e63ae0c6e50c54dce33f6257ecefbf">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::leadingCells</a></div><div class="ttdeci">virtual std::vector< MemoryCellPtr > leadingCells(MemoryCell::Predicate &) const =0</div><div class="ttdoc">Find leading matching cells.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_ac5cf0dec045b3a2f3e11838eea2784ab"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ac5cf0dec045b3a2f3e11838eea2784ab">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::promote</a></div><div class="ttdeci">static MemoryCellStatePtr promote(const BaseSemantics::MemoryStatePtr &m)</div><div class="ttdoc">Promote a base memory state pointer to a BaseSemantics::MemoryCellState pointer.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00064">BaseSemantics/MemoryCellState.h:64</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_acf10aae39833ff7f50607d11d1fac27b"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#acf10aae39833ff7f50607d11d1fac27b">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::traverse</a></div><div class="ttdeci">virtual void traverse(MemoryCell::Visitor &)=0</div><div class="ttdoc">Traverse and modify cells.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_ada67b33bfe88d2cda09141fe5f9814c9"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ada67b33bfe88d2cda09141fe5f9814c9">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::clear</a></div><div class="ttdeci">virtual void clear() override</div><div class="ttdoc">Clear memory.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState_html_ae11997a58387bb90ab0a71a5b4de0407"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCellState.html#ae11997a58387bb90ab0a71a5b4de0407">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellState::getWritersUnion</a></div><div class="ttdeci">virtual AddressSet getWritersUnion(const SValuePtr &addr, size_t nBits, RiscOperators *addrOps, RiscOperators *valOps)=0</div><div class="ttdoc">Writers for an address.</div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1AllCells_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1AllCells.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCell::AllCells</a></div><div class="ttdoc">Predicate that always returns true.</div><div class="ttdef"><b>Definition</b> <a href="MemoryCell_8h_source.html#l00055">MemoryCell.h:55</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1NonWrittenCells_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1NonWrittenCells.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCell::NonWrittenCells</a></div><div class="ttdoc">Predicate for non-written cells.</div><div class="ttdef"><b>Definition</b> <a href="MemoryCell_8h_source.html#l00065">MemoryCell.h:65</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Predicate_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Predicate.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCell::Predicate</a></div><div class="ttdoc">Predicate for matching cells.</div><div class="ttdef"><b>Definition</b> <a href="MemoryCell_8h_source.html#l00044">MemoryCell.h:44</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Visitor_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryCell_1_1Visitor.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCell::Visitor</a></div><div class="ttdoc">Visitor for traversing a cells.</div><div class="ttdef"><b>Definition</b> <a href="MemoryCell_8h_source.html#l00037">MemoryCell.h:37</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryState_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1MemoryState.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryState</a></div><div class="ttdoc">Represents all memory in the state.</div><div class="ttdef"><b>Definition</b> <a href="MemoryState_8h_source.html#l00027">MemoryState.h:27</a></div></div>
<div class="ttc" id="aclassRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1RiscOperators_html"><div class="ttname"><a href="classRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_1_1RiscOperators.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RiscOperators</a></div><div class="ttdoc">Base class for most instruction semantics RISC operators.</div><div class="ttdef"><b>Definition</b> <a href="RiscOperators_8h_source.html#l00049">RiscOperators.h:49</a></div></div>
<div class="ttc" id="aclassSawyer_1_1Container_1_1Set_html"><div class="ttname"><a href="classSawyer_1_1Container_1_1Set.html">Sawyer::Container::Set< Address ></a></div></div>
<div class="ttc" id="aclassSawyer_1_1SharedPointer_html"><div class="ttname"><a href="classSawyer_1_1SharedPointer.html">Sawyer::SharedPointer< SValue ></a></div></div>
<div class="ttc" id="anamespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_html"><div class="ttname"><a href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics</a></div><div class="ttdoc">Base classes for instruction semantics.</div><div class="ttdef"><b>Definition</b> <a href="Rose_2BinaryAnalysis_2InstructionSemantics_2BaseSemantics_2BasicTypes_8h_source.html#l00022">Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h:22</a></div></div>
<div class="ttc" id="anamespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_html_a0e041dec7b5ca22d15dd473f0c4fd825"><div class="ttname"><a href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0e041dec7b5ca22d15dd473f0c4fd825">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryStatePtr</a></div><div class="ttdeci">boost::shared_ptr< MemoryState > MemoryStatePtr</div><div class="ttdoc">Shared-ownership pointer to a memory state.</div><div class="ttdef"><b>Definition</b> <a href="Rose_2BinaryAnalysis_2InstructionSemantics_2BaseSemantics_2BasicTypes_8h_source.html#l00057">Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h:57</a></div></div>
<div class="ttc" id="anamespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_html_a0f404ce2e7c82e25b07c91b59afc563e"><div class="ttname"><a href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a0f404ce2e7c82e25b07c91b59afc563e">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellPtr</a></div><div class="ttdeci">boost::shared_ptr< MemoryCell > MemoryCellPtr</div><div class="ttdoc">Shared-ownership pointer to a memory cell.</div><div class="ttdef"><b>Definition</b> <a href="Rose_2BinaryAnalysis_2InstructionSemantics_2BaseSemantics_2BasicTypes_8h_source.html#l00060">Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h:60</a></div></div>
<div class="ttc" id="anamespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_html_a134f983ad9231b7bf34e76a6018d8347"><div class="ttname"><a href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#a134f983ad9231b7bf34e76a6018d8347">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::CellList</a></div><div class="ttdeci">std::list< MemoryCellPtr > CellList</div><div class="ttdoc">List of memory cells.</div><div class="ttdef"><b>Definition</b> <a href="MemoryCell_8h_source.html#l00276">MemoryCell.h:276</a></div></div>
<div class="ttc" id="anamespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_html_ab9750a0c3830c74c55a99019d17d3a55"><div class="ttname"><a href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ab9750a0c3830c74c55a99019d17d3a55">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellStatePtr</a></div><div class="ttdeci">boost::shared_ptr< class MemoryCellState > MemoryCellStatePtr</div><div class="ttdoc">Shared-ownership pointer to a cell-based memory state.</div><div class="ttdef"><b>Definition</b> <a href="BaseSemantics_2MemoryCellState_8h_source.html#l00020">BaseSemantics/MemoryCellState.h:20</a></div></div>
<div class="ttc" id="anamespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics_html_ae281182bb99b033e6087f27309dcf603"><div class="ttname"><a href="namespaceRose_1_1BinaryAnalysis_1_1InstructionSemantics_1_1BaseSemantics.html#ae281182bb99b033e6087f27309dcf603">Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::SValuePtr</a></div><div class="ttdeci">Sawyer::SharedPointer< SValue > SValuePtr</div><div class="ttdoc">Shared-ownership pointer to a semantic value in any domain.</div><div class="ttdef"><b>Definition</b> <a href="Rose_2BinaryAnalysis_2InstructionSemantics_2BaseSemantics_2BasicTypes_8h_source.html#l00048">Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h:48</a></div></div>
<div class="ttc" id="anamespaceRose_html"><div class="ttname"><a href="namespaceRose.html">Rose</a></div><div class="ttdoc">The ROSE library.</div><div class="ttdef"><b>Definition</b> <a href="BinaryTutorial_8dox_source.html#l00003">BinaryTutorial.dox:3</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Oct 2 2024 00:08:24 for ROSE by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>