summaryrefslogtreecommitdiffstats
path: root/ue4/doxygen/classCInstruction.html
diff options
context:
space:
mode:
Diffstat (limited to 'ue4/doxygen/classCInstruction.html')
-rw-r--r--ue4/doxygen/classCInstruction.html615
1 files changed, 615 insertions, 0 deletions
diff --git a/ue4/doxygen/classCInstruction.html b/ue4/doxygen/classCInstruction.html
new file mode 100644
index 0000000..2cb1e9b
--- /dev/null
+++ b/ue4/doxygen/classCInstruction.html
@@ -0,0 +1,615 @@
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>mycpu: CInstruction&lt; T &gt; Class Template Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.3 -->
8<div class="tabs">
9 <ul>
10 <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11 <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
12 <li><a href="files.html"><span>Files</span></a></li>
13 </ul>
14</div>
15<div class="tabs">
16 <ul>
17 <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
18 <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
19 <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
20 </ul>
21</div>
22<h1>CInstruction&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="CInstruction" --><code>#include &lt;<a class="el" href="cinstruction_8h-source.html">cinstruction.h</a>&gt;</code>
23<p>
24<div class="dynheader">
25Inheritance diagram for CInstruction&lt; T &gt;:</div>
26<div class="dynsection">
27
28<p><center><img src="classCInstruction.png" usemap="#CInstruction< T >_map" border="0" alt=""></center>
29<map name="CInstruction< T >_map">
30<area href="classCInstructionAdd.html" alt="CInstructionAdd< T >" shape="rect" coords="159,56,308,80">
31<area href="classCInstructionDec.html" alt="CInstructionDec< T >" shape="rect" coords="159,112,308,136">
32<area href="classCInstructionDiv.html" alt="CInstructionDiv< T >" shape="rect" coords="159,168,308,192">
33<area href="classCInstructionInc.html" alt="CInstructionInc< T >" shape="rect" coords="159,224,308,248">
34<area href="classCInstructionJumpA.html" alt="CInstructionJumpA< T >" shape="rect" coords="159,280,308,304">
35<area href="classCInstructionJumpS.html" alt="CInstructionJumpS< T >" shape="rect" coords="159,336,308,360">
36<area href="classCInstructionJumpZ.html" alt="CInstructionJumpZ< T >" shape="rect" coords="159,392,308,416">
37<area href="classCInstructionLabel.html" alt="CInstructionLabel< T >" shape="rect" coords="159,448,308,472">
38<area href="classCInstructionLoad.html" alt="CInstructionLoad< T >" shape="rect" coords="159,504,308,528">
39<area href="classCInstructionMul.html" alt="CInstructionMul< T >" shape="rect" coords="159,560,308,584">
40<area href="classCInstructionStore.html" alt="CInstructionStore< T >" shape="rect" coords="159,616,308,640">
41<area href="classCInstructionSub.html" alt="CInstructionSub< T >" shape="rect" coords="159,672,308,696">
42<area href="classCInstructionTest.html" alt="CInstructionTest< T >" shape="rect" coords="159,728,308,752">
43<area href="classCInstructionWrite.html" alt="CInstructionWrite< T >" shape="rect" coords="159,784,308,808">
44</map>
45</div>
46
47<p>
48<a href="classCInstruction-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
49<tr><td></td></tr>
50<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
51<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#0bdc94fd4728d4035e1f13923376e450">CInstruction</a> (std::string name)</td></tr>
52
53<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default ctor. <a href="#0bdc94fd4728d4035e1f13923376e450"></a><br></td></tr>
54<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#ca5a5edd9b94718f1eb37b4269ade54e">~CInstruction</a> ()</td></tr>
55
56<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default dtor. <a href="#ca5a5edd9b94718f1eb37b4269ade54e"></a><br></td></tr>
57<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#a62545e40a91e8f7b301ffdeaff7d04f">operator==</a> (std::string &amp;name)</td></tr>
58
59<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implementation of operator == <a href="#a62545e40a91e8f7b301ffdeaff7d04f"></a><br></td></tr>
60<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCInstruction.html">CInstruction</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#334cc56829717b5946b9b42324aa26fe">operator()</a> (<a class="el" href="classCCPU.html">CCPU</a>&lt; T &gt; *cpu)</td></tr>
61
62<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implementation of operator (<a class="el" href="classCCPU.html">CCPU</a>) <a href="#334cc56829717b5946b9b42324aa26fe"></a><br></td></tr>
63<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <br>
64std::string &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#b240d30bea3acf8d4150f1a5b5f766ef">getName</a> ()</td></tr>
65
66<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">returns instruction name <a href="#b240d30bea3acf8d4150f1a5b5f766ef"></a><br></td></tr>
67<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#4338f7ce91bca9c6bbcceb83a3212068">dump</a> (std::ostream &amp;stream)</td></tr>
68
69<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">dumps information about instruction to outputstream <a href="#4338f7ce91bca9c6bbcceb83a3212068"></a><br></td></tr>
70<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#70bbbf095733b8e51ea43597d082445e">parseRegister</a> (const std::string &amp;str)</td></tr>
71
72<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">parses register syntax Rx (e.g. "R1") <a href="#70bbbf095733b8e51ea43597d082445e"></a><br></td></tr>
73<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#a03c72bae5244d808f5c045d2dc26f3b">checkRegister</a> (<a class="el" href="classCCPU.html">CCPU</a>&lt; T &gt; *cpu, const unsigned regidx)</td></tr>
74
75<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">performs a register boundary check does the register exist in cpu? <a href="#a03c72bae5244d808f5c045d2dc26f3b"></a><br></td></tr>
76<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classCInstruction.html">CInstruction</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#3362efb71ca3d9237c66952201564027">factory</a> ()=0</td></tr>
77
78<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">creates a new instance of this instruction <a href="#3362efb71ca3d9237c66952201564027"></a><br></td></tr>
79<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#caab509da9dd1f300293d6fa5501049a">compile</a> (std::list&lt; std::string &gt; &amp;params)=0</td></tr>
80
81<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">parses instruction parameters and prepares the instruction for executing <a href="#caab509da9dd1f300293d6fa5501049a"></a><br></td></tr>
82<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#7732a6024a2329d5d3f82b3093be42eb">execute</a> (<a class="el" href="classCCPU.html">CCPU</a>&lt; T &gt; *cpu)=0</td></tr>
83
84<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">executes the instruction <a href="#7732a6024a2329d5d3f82b3093be42eb"></a><br></td></tr>
85<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
86<tr><td class="memItemLeft" nowrap align="right" valign="top">std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#18a74815caf3645a3368d185d38bf9bc">m_name</a></td></tr>
87
88<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
89<tr><td class="memItemLeft" nowrap align="right" valign="top">std::ostream &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCInstruction.html#7651b4c147411bca34a0393adf03507d">operator&lt;&lt;</a> (std::ostream &amp;stream, <a class="el" href="classCInstruction.html">CInstruction</a> &amp;instr)</td></tr>
90
91<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Shift/output operator for outputstream. <a href="#7651b4c147411bca34a0393adf03507d"></a><br></td></tr>
92</table>
93<hr><a name="_details"></a><h2>Detailed Description</h2>
94<h3>template&lt;class T&gt;<br>
95 class CInstruction&lt; T &gt;</h3>
96
97Abstract class for instructions <hr><h2>Constructor &amp; Destructor Documentation</h2>
98<a class="anchor" name="0bdc94fd4728d4035e1f13923376e450"></a><!-- doxytag: member="CInstruction::CInstruction" ref="0bdc94fd4728d4035e1f13923376e450" args="(std::string name)" -->
99<div class="memitem">
100<div class="memproto">
101<div class="memtemplate">
102template&lt;class T&gt; </div>
103 <table class="memname">
104 <tr>
105 <td class="memname"><a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::<a class="el" href="classCInstruction.html">CInstruction</a> </td>
106 <td>(</td>
107 <td class="paramtype">std::string&nbsp;</td>
108 <td class="paramname"> <em>name</em> </td>
109 <td>&nbsp;)&nbsp;</td>
110 <td width="100%"><code> [inline]</code></td>
111 </tr>
112 </table>
113</div>
114<div class="memdoc">
115
116<p>
117Default ctor.
118<p>
119<dl class="user" compact><dt><b>Methodname:</b></dt><dd><a class="el" href="classCInstruction.html">CInstruction</a> </dd></dl>
120<dl compact><dt><b>Parameters:</b></dt><dd>
121 <table border="0" cellspacing="2" cellpadding="0">
122 <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of instruction </td></tr>
123 </table>
124</dl>
125<dl class="return" compact><dt><b>Returns:</b></dt><dd>- </dd></dl>
126<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
127<dl compact><dt><b>Exceptions:</b></dt><dd>
128 <table border="0" cellspacing="2" cellpadding="0">
129 <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td></td></tr>
130 </table>
131</dl>
132<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
133<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
134
135</div>
136</div><p>
137<a class="anchor" name="ca5a5edd9b94718f1eb37b4269ade54e"></a><!-- doxytag: member="CInstruction::~CInstruction" ref="ca5a5edd9b94718f1eb37b4269ade54e" args="()" -->
138<div class="memitem">
139<div class="memproto">
140<div class="memtemplate">
141template&lt;class T&gt; </div>
142 <table class="memname">
143 <tr>
144 <td class="memname">virtual <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::~<a class="el" href="classCInstruction.html">CInstruction</a> </td>
145 <td>(</td>
146 <td class="paramname"> </td>
147 <td>&nbsp;)&nbsp;</td>
148 <td width="100%"><code> [inline, virtual]</code></td>
149 </tr>
150 </table>
151</div>
152<div class="memdoc">
153
154<p>
155Default dtor.
156<p>
157<dl class="user" compact><dt><b>Methodname:</b></dt><dd>~CInstruction </dd></dl>
158<dl compact><dt><b>Parameters:</b></dt><dd>
159 <table border="0" cellspacing="2" cellpadding="0">
160 <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td></td></tr>
161 </table>
162</dl>
163<dl class="return" compact><dt><b>Returns:</b></dt><dd>- </dd></dl>
164<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
165<dl compact><dt><b>Exceptions:</b></dt><dd>
166 <table border="0" cellspacing="2" cellpadding="0">
167 <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td></td></tr>
168 </table>
169</dl>
170<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
171<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
172
173</div>
174</div><p>
175<hr><h2>Member Function Documentation</h2>
176<a class="anchor" name="a62545e40a91e8f7b301ffdeaff7d04f"></a><!-- doxytag: member="CInstruction::operator==" ref="a62545e40a91e8f7b301ffdeaff7d04f" args="(std::string &amp;name)" -->
177<div class="memitem">
178<div class="memproto">
179<div class="memtemplate">
180template&lt;class T&gt; </div>
181 <table class="memname">
182 <tr>
183 <td class="memname">virtual bool <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::operator== </td>
184 <td>(</td>
185 <td class="paramtype">std::string &amp;&nbsp;</td>
186 <td class="paramname"> <em>name</em> </td>
187 <td>&nbsp;)&nbsp;</td>
188 <td width="100%"><code> [inline, virtual]</code></td>
189 </tr>
190 </table>
191</div>
192<div class="memdoc">
193
194<p>
195implementation of operator ==
196<p>
197<dl class="user" compact><dt><b>Methodname:</b></dt><dd>operator== </dd></dl>
198<dl compact><dt><b>Parameters:</b></dt><dd>
199 <table border="0" cellspacing="2" cellpadding="0">
200 <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>reference to std::string </td></tr>
201 </table>
202</dl>
203<dl class="return" compact><dt><b>Returns:</b></dt><dd>true if instructionname is name </dd></dl>
204<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
205<dl compact><dt><b>Exceptions:</b></dt><dd>
206 <table border="0" cellspacing="2" cellpadding="0">
207 <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td></td></tr>
208 </table>
209</dl>
210<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
211<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
212
213</div>
214</div><p>
215<a class="anchor" name="334cc56829717b5946b9b42324aa26fe"></a><!-- doxytag: member="CInstruction::operator()" ref="334cc56829717b5946b9b42324aa26fe" args="(CCPU&lt; T &gt; *cpu)" -->
216<div class="memitem">
217<div class="memproto">
218<div class="memtemplate">
219template&lt;class T&gt; </div>
220 <table class="memname">
221 <tr>
222 <td class="memname">virtual <a class="el" href="classCInstruction.html">CInstruction</a>&amp; <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::operator() </td>
223 <td>(</td>
224 <td class="paramtype"><a class="el" href="classCCPU.html">CCPU</a>&lt; T &gt; *&nbsp;</td>
225 <td class="paramname"> <em>cpu</em> </td>
226 <td>&nbsp;)&nbsp;</td>
227 <td width="100%"><code> [inline, virtual]</code></td>
228 </tr>
229 </table>
230</div>
231<div class="memdoc">
232
233<p>
234implementation of operator (<a class="el" href="classCCPU.html">CCPU</a>)
235<p>
236<dl class="user" compact><dt><b>Methodname:</b></dt><dd>operator() </dd></dl>
237<dl compact><dt><b>Parameters:</b></dt><dd>
238 <table border="0" cellspacing="2" cellpadding="0">
239 <tr><td valign="top"></td><td valign="top"><em>cpu</em>&nbsp;</td><td>pointer to cpu </td></tr>
240 </table>
241</dl>
242<dl class="return" compact><dt><b>Returns:</b></dt><dd>- </dd></dl>
243<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
244<dl compact><dt><b>Exceptions:</b></dt><dd>
245 <table border="0" cellspacing="2" cellpadding="0">
246 <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classCInstructionError.html">CInstructionError</a></em>&nbsp;</td><td></td></tr>
247 </table>
248</dl>
249<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
250<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
251
252</div>
253</div><p>
254<a class="anchor" name="b240d30bea3acf8d4150f1a5b5f766ef"></a><!-- doxytag: member="CInstruction::getName" ref="b240d30bea3acf8d4150f1a5b5f766ef" args="()" -->
255<div class="memitem">
256<div class="memproto">
257<div class="memtemplate">
258template&lt;class T&gt; </div>
259 <table class="memname">
260 <tr>
261 <td class="memname">virtual const std::string&amp; <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::getName </td>
262 <td>(</td>
263 <td class="paramname"> </td>
264 <td>&nbsp;)&nbsp;</td>
265 <td width="100%"><code> [inline, virtual]</code></td>
266 </tr>
267 </table>
268</div>
269<div class="memdoc">
270
271<p>
272returns instruction name
273<p>
274<dl class="user" compact><dt><b>Methodname:</b></dt><dd>getName </dd></dl>
275<dl compact><dt><b>Parameters:</b></dt><dd>
276 <table border="0" cellspacing="2" cellpadding="0">
277 <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td></td></tr>
278 </table>
279</dl>
280<dl class="return" compact><dt><b>Returns:</b></dt><dd>name of instruction </dd></dl>
281<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
282<dl compact><dt><b>Exceptions:</b></dt><dd>
283 <table border="0" cellspacing="2" cellpadding="0">
284 <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td></td></tr>
285 </table>
286</dl>
287<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
288<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
289
290</div>
291</div><p>
292<a class="anchor" name="4338f7ce91bca9c6bbcceb83a3212068"></a><!-- doxytag: member="CInstruction::dump" ref="4338f7ce91bca9c6bbcceb83a3212068" args="(std::ostream &amp;stream)" -->
293<div class="memitem">
294<div class="memproto">
295<div class="memtemplate">
296template&lt;class T&gt; </div>
297 <table class="memname">
298 <tr>
299 <td class="memname">virtual std::ostream&amp; <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::dump </td>
300 <td>(</td>
301 <td class="paramtype">std::ostream &amp;&nbsp;</td>
302 <td class="paramname"> <em>stream</em> </td>
303 <td>&nbsp;)&nbsp;</td>
304 <td width="100%"><code> [inline, virtual]</code></td>
305 </tr>
306 </table>
307</div>
308<div class="memdoc">
309
310<p>
311dumps information about instruction to outputstream
312<p>
313<dl class="user" compact><dt><b>Methodname:</b></dt><dd>dump </dd></dl>
314<dl compact><dt><b>Parameters:</b></dt><dd>
315 <table border="0" cellspacing="2" cellpadding="0">
316 <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>outputstream </td></tr>
317 </table>
318</dl>
319<dl class="return" compact><dt><b>Returns:</b></dt><dd>reference to outputstream </dd></dl>
320<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
321<dl compact><dt><b>Exceptions:</b></dt><dd>
322 <table border="0" cellspacing="2" cellpadding="0">
323 <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td></td></tr>
324 </table>
325</dl>
326<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
327<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
328
329</div>
330</div><p>
331<a class="anchor" name="70bbbf095733b8e51ea43597d082445e"></a><!-- doxytag: member="CInstruction::parseRegister" ref="70bbbf095733b8e51ea43597d082445e" args="(const std::string &amp;str)" -->
332<div class="memitem">
333<div class="memproto">
334<div class="memtemplate">
335template&lt;class T&gt; </div>
336 <table class="memname">
337 <tr>
338 <td class="memname">const unsigned <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::parseRegister </td>
339 <td>(</td>
340 <td class="paramtype">const std::string &amp;&nbsp;</td>
341 <td class="paramname"> <em>str</em> </td>
342 <td>&nbsp;)&nbsp;</td>
343 <td width="100%"><code> [inline, virtual]</code></td>
344 </tr>
345 </table>
346</div>
347<div class="memdoc">
348
349<p>
350parses register syntax Rx (e.g. "R1")
351<p>
352<dl class="user" compact><dt><b>Methodname:</b></dt><dd>parseRegister </dd></dl>
353<dl compact><dt><b>Parameters:</b></dt><dd>
354 <table border="0" cellspacing="2" cellpadding="0">
355 <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>register in assembler syntax </td></tr>
356 </table>
357</dl>
358<dl class="return" compact><dt><b>Returns:</b></dt><dd>registernumber </dd></dl>
359<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
360<dl compact><dt><b>Exceptions:</b></dt><dd>
361 <table border="0" cellspacing="2" cellpadding="0">
362 <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classCInstructionError.html">CInstructionError</a></em>&nbsp;</td><td></td></tr>
363 </table>
364</dl>
365<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>str != NULL </dd></dl>
366<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
367
368</div>
369</div><p>
370<a class="anchor" name="a03c72bae5244d808f5c045d2dc26f3b"></a><!-- doxytag: member="CInstruction::checkRegister" ref="a03c72bae5244d808f5c045d2dc26f3b" args="(CCPU&lt; T &gt; *cpu, const unsigned regidx)" -->
371<div class="memitem">
372<div class="memproto">
373<div class="memtemplate">
374template&lt;class T&gt; </div>
375 <table class="memname">
376 <tr>
377 <td class="memname">void <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::checkRegister </td>
378 <td>(</td>
379 <td class="paramtype"><a class="el" href="classCCPU.html">CCPU</a>&lt; T &gt; *&nbsp;</td>
380 <td class="paramname"> <em>cpu</em>, </td>
381 </tr>
382 <tr>
383 <td class="paramkey"></td>
384 <td></td>
385 <td class="paramtype">const unsigned&nbsp;</td>
386 <td class="paramname"> <em>regidx</em></td><td>&nbsp;</td>
387 </tr>
388 <tr>
389 <td></td>
390 <td>)</td>
391 <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td>
392 </tr>
393 </table>
394</div>
395<div class="memdoc">
396
397<p>
398performs a register boundary check does the register exist in cpu?
399<p>
400<dl class="user" compact><dt><b>Methodname:</b></dt><dd>checkRegister </dd></dl>
401<dl compact><dt><b>Parameters:</b></dt><dd>
402 <table border="0" cellspacing="2" cellpadding="0">
403 <tr><td valign="top"></td><td valign="top"><em>cpu</em>&nbsp;</td><td>pointer to cpu </td></tr>
404 <tr><td valign="top"></td><td valign="top"><em>regidx</em>&nbsp;</td><td>registernumber </td></tr>
405 </table>
406</dl>
407<dl class="return" compact><dt><b>Returns:</b></dt><dd>- </dd></dl>
408<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
409<dl compact><dt><b>Exceptions:</b></dt><dd>
410 <table border="0" cellspacing="2" cellpadding="0">
411 <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classCInstructionError.html">CInstructionError</a></em>&nbsp;</td><td></td></tr>
412 </table>
413</dl>
414<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
415<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
416
417</div>
418</div><p>
419<a class="anchor" name="3362efb71ca3d9237c66952201564027"></a><!-- doxytag: member="CInstruction::factory" ref="3362efb71ca3d9237c66952201564027" args="()=0" -->
420<div class="memitem">
421<div class="memproto">
422<div class="memtemplate">
423template&lt;class T&gt; </div>
424 <table class="memname">
425 <tr>
426 <td class="memname">virtual <a class="el" href="classCInstruction.html">CInstruction</a>* <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::factory </td>
427 <td>(</td>
428 <td class="paramname"> </td>
429 <td>&nbsp;)&nbsp;</td>
430 <td width="100%"><code> [pure virtual]</code></td>
431 </tr>
432 </table>
433</div>
434<div class="memdoc">
435
436<p>
437creates a new instance of this instruction
438<p>
439<dl class="user" compact><dt><b>Methodname:</b></dt><dd>factory </dd></dl>
440<dl compact><dt><b>Parameters:</b></dt><dd>
441 <table border="0" cellspacing="2" cellpadding="0">
442 <tr><td valign="top"></td><td valign="top"><em>-</em>&nbsp;</td><td></td></tr>
443 </table>
444</dl>
445<dl class="return" compact><dt><b>Returns:</b></dt><dd>new instruction instance </dd></dl>
446<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
447<dl compact><dt><b>Exceptions:</b></dt><dd>
448 <table border="0" cellspacing="2" cellpadding="0">
449 <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td></td></tr>
450 </table>
451</dl>
452<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
453<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
454
455<p>Implemented in <a class="el" href="classCInstructionInc.html#f556b01208bb2c7a1a9e116365d3b094">CInstructionInc&lt; T &gt;</a>, <a class="el" href="classCInstructionDec.html#3fb78e4289bed054394f0b186c76d12f">CInstructionDec&lt; T &gt;</a>, <a class="el" href="classCInstructionAdd.html#d964d1e7ede00ee12b8d8768db4fde3e">CInstructionAdd&lt; T &gt;</a>, <a class="el" href="classCInstructionSub.html#07e7a95548ffa6b16fde4af21f6974eb">CInstructionSub&lt; T &gt;</a>, <a class="el" href="classCInstructionMul.html#a8965040e952736b4a6c0927241eac34">CInstructionMul&lt; T &gt;</a>, <a class="el" href="classCInstructionDiv.html#37893855d88bdd2607f10543fd4aadbc">CInstructionDiv&lt; T &gt;</a>, <a class="el" href="classCInstructionLoad.html#6f42217be849c83a114e71e2f45c75a3">CInstructionLoad&lt; T &gt;</a>, <a class="el" href="classCInstructionStore.html#451ec5bffdef06776cf5876b44b756bc">CInstructionStore&lt; T &gt;</a>, <a class="el" href="classCInstructionTest.html#9d9f28f5be45f089259032bbf947b06e">CInstructionTest&lt; T &gt;</a>, <a class="el" href="classCInstructionLabel.html#2b8633ca1c29200b7db2eea6ce6296dc">CInstructionLabel&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpA.html#ee967e2ff6d2851ce4950e20716f7803">CInstructionJumpA&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpZ.html#f5e15d121589a1e3545f260cd7ee4363">CInstructionJumpZ&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpS.html#8b57e4f536aa12e46e90b240a28be7e4">CInstructionJumpS&lt; T &gt;</a>, and <a class="el" href="classCInstructionWrite.html#dc63f42b44fb552b9e091270b14a4eb6">CInstructionWrite&lt; T &gt;</a>.</p>
456
457</div>
458</div><p>
459<a class="anchor" name="caab509da9dd1f300293d6fa5501049a"></a><!-- doxytag: member="CInstruction::compile" ref="caab509da9dd1f300293d6fa5501049a" args="(std::list&lt; std::string &gt; &amp;params)=0" -->
460<div class="memitem">
461<div class="memproto">
462<div class="memtemplate">
463template&lt;class T&gt; </div>
464 <table class="memname">
465 <tr>
466 <td class="memname">virtual void <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::compile </td>
467 <td>(</td>
468 <td class="paramtype">std::list&lt; std::string &gt; &amp;&nbsp;</td>
469 <td class="paramname"> <em>params</em> </td>
470 <td>&nbsp;)&nbsp;</td>
471 <td width="100%"><code> [pure virtual]</code></td>
472 </tr>
473 </table>
474</div>
475<div class="memdoc">
476
477<p>
478parses instruction parameters and prepares the instruction for executing
479<p>
480<dl class="user" compact><dt><b>Methodname:</b></dt><dd>compile </dd></dl>
481<dl compact><dt><b>Parameters:</b></dt><dd>
482 <table border="0" cellspacing="2" cellpadding="0">
483 <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>list of parameters of this instruction </td></tr>
484 </table>
485</dl>
486<dl class="return" compact><dt><b>Returns:</b></dt><dd>- </dd></dl>
487<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
488<dl compact><dt><b>Exceptions:</b></dt><dd>
489 <table border="0" cellspacing="2" cellpadding="0">
490 <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classCInstructionError.html">CInstructionError</a></em>&nbsp;</td><td></td></tr>
491 </table>
492</dl>
493<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
494<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
495
496<p>Implemented in <a class="el" href="classCInstructionInc.html#58639820dac10e44455e2b4ee03c16a4">CInstructionInc&lt; T &gt;</a>, <a class="el" href="classCInstructionDec.html#7d71e63eda1fc908481919e54f219df9">CInstructionDec&lt; T &gt;</a>, <a class="el" href="classCInstructionAdd.html#1e3aaea6e2d3a969f3a271e9206f3793">CInstructionAdd&lt; T &gt;</a>, <a class="el" href="classCInstructionSub.html#a06f12adcf971f2815353eee22186cda">CInstructionSub&lt; T &gt;</a>, <a class="el" href="classCInstructionMul.html#d44d0cc3f52602c2a8b6c76a6346826b">CInstructionMul&lt; T &gt;</a>, <a class="el" href="classCInstructionDiv.html#b4d0c2cd45ec584a16f23ed16f6a1831">CInstructionDiv&lt; T &gt;</a>, <a class="el" href="classCInstructionLoad.html#77025a0fb65898352167258f191ef9ea">CInstructionLoad&lt; T &gt;</a>, <a class="el" href="classCInstructionStore.html#7e0849084dbd7a73ac19c3797de6077c">CInstructionStore&lt; T &gt;</a>, <a class="el" href="classCInstructionTest.html#e986a4a3a2f445cb672e056a263e02f4">CInstructionTest&lt; T &gt;</a>, <a class="el" href="classCInstructionLabel.html#01fc1fd49c590243834df8089138b273">CInstructionLabel&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpA.html#f942c3cfc7e69c5a888ee4a6b6d7cc15">CInstructionJumpA&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpZ.html#a7bc6b0a7fba975d8b3a2b7c15f6485e">CInstructionJumpZ&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpS.html#faa43fddd5272a085b84b5e67a6021fc">CInstructionJumpS&lt; T &gt;</a>, and <a class="el" href="classCInstructionWrite.html#b18bcbc02a62090f97d2085cdc0ffe01">CInstructionWrite&lt; T &gt;</a>.</p>
497
498</div>
499</div><p>
500<a class="anchor" name="7732a6024a2329d5d3f82b3093be42eb"></a><!-- doxytag: member="CInstruction::execute" ref="7732a6024a2329d5d3f82b3093be42eb" args="(CCPU&lt; T &gt; *cpu)=0" -->
501<div class="memitem">
502<div class="memproto">
503<div class="memtemplate">
504template&lt;class T&gt; </div>
505 <table class="memname">
506 <tr>
507 <td class="memname">virtual void <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::execute </td>
508 <td>(</td>
509 <td class="paramtype"><a class="el" href="classCCPU.html">CCPU</a>&lt; T &gt; *&nbsp;</td>
510 <td class="paramname"> <em>cpu</em> </td>
511 <td>&nbsp;)&nbsp;</td>
512 <td width="100%"><code> [pure virtual]</code></td>
513 </tr>
514 </table>
515</div>
516<div class="memdoc">
517
518<p>
519executes the instruction
520<p>
521<dl class="user" compact><dt><b>Methodname:</b></dt><dd>execute </dd></dl>
522<dl compact><dt><b>Parameters:</b></dt><dd>
523 <table border="0" cellspacing="2" cellpadding="0">
524 <tr><td valign="top"></td><td valign="top"><em>cpu</em>&nbsp;</td><td>pointer to cpu </td></tr>
525 </table>
526</dl>
527<dl class="return" compact><dt><b>Returns:</b></dt><dd>- </dd></dl>
528<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
529<dl compact><dt><b>Exceptions:</b></dt><dd>
530 <table border="0" cellspacing="2" cellpadding="0">
531 <tr><td valign="top"></td><td valign="top"><em><a class="el" href="classCInstructionError.html">CInstructionError</a></em>&nbsp;</td><td></td></tr>
532 </table>
533</dl>
534<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>cpu valid (memory, program, registers valid) </dd></dl>
535<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
536
537<p>Implemented in <a class="el" href="classCInstructionInc.html#95685bd60c72f5e99f4c74946fc17d24">CInstructionInc&lt; T &gt;</a>, <a class="el" href="classCInstructionDec.html#85000776f57be3f298f4707d712d1e29">CInstructionDec&lt; T &gt;</a>, <a class="el" href="classCInstructionAdd.html#ae1f8adc22bd3257ad3a52eb9f0f1dbc">CInstructionAdd&lt; T &gt;</a>, <a class="el" href="classCInstructionSub.html#56e1918846036e631d75423d628ec795">CInstructionSub&lt; T &gt;</a>, <a class="el" href="classCInstructionMul.html#c6655475fdc386f6553a674e928faeef">CInstructionMul&lt; T &gt;</a>, <a class="el" href="classCInstructionDiv.html#62b6351aa17d0a8f5ac420f6dcabab65">CInstructionDiv&lt; T &gt;</a>, <a class="el" href="classCInstructionLoad.html#96e0f7e931c3d7716add468ac35af296">CInstructionLoad&lt; T &gt;</a>, <a class="el" href="classCInstructionStore.html#d3cd7956705076da3d87b5187ec1ddfb">CInstructionStore&lt; T &gt;</a>, <a class="el" href="classCInstructionTest.html#9f219f782c3752f53b60d3e37477a128">CInstructionTest&lt; T &gt;</a>, <a class="el" href="classCInstructionLabel.html#14beb571121b02585e706b44ae6d515e">CInstructionLabel&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpA.html#8b3d178c2ababca94db12a117ca31f8c">CInstructionJumpA&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpZ.html#966b002a12af320fab9ccd3576ddfac4">CInstructionJumpZ&lt; T &gt;</a>, <a class="el" href="classCInstructionJumpS.html#371031231e11febb40fea15078f6869e">CInstructionJumpS&lt; T &gt;</a>, and <a class="el" href="classCInstructionWrite.html#b2961a0e0bcbe69cc51601dab7278085">CInstructionWrite&lt; T &gt;</a>.</p>
538
539</div>
540</div><p>
541<hr><h2>Friends And Related Function Documentation</h2>
542<a class="anchor" name="7651b4c147411bca34a0393adf03507d"></a><!-- doxytag: member="CInstruction::operator&lt;&lt;" ref="7651b4c147411bca34a0393adf03507d" args="(std::ostream &amp;stream, CInstruction &amp;instr)" -->
543<div class="memitem">
544<div class="memproto">
545<div class="memtemplate">
546template&lt;class T&gt; </div>
547 <table class="memname">
548 <tr>
549 <td class="memname">std::ostream&amp; operator&lt;&lt; </td>
550 <td>(</td>
551 <td class="paramtype">std::ostream &amp;&nbsp;</td>
552 <td class="paramname"> <em>stream</em>, </td>
553 </tr>
554 <tr>
555 <td class="paramkey"></td>
556 <td></td>
557 <td class="paramtype"><a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt; &amp;&nbsp;</td>
558 <td class="paramname"> <em>instr</em></td><td>&nbsp;</td>
559 </tr>
560 <tr>
561 <td></td>
562 <td>)</td>
563 <td></td><td></td><td width="100%"><code> [friend]</code></td>
564 </tr>
565 </table>
566</div>
567<div class="memdoc">
568
569<p>
570Shift/output operator for outputstream.
571<p>
572<dl class="user" compact><dt><b>Methodname:</b></dt><dd>operator&lt;&lt; </dd></dl>
573<dl compact><dt><b>Parameters:</b></dt><dd>
574 <table border="0" cellspacing="2" cellpadding="0">
575 <tr><td valign="top"></td><td valign="top"><em>stream</em>&nbsp;</td><td>reference to outputstream </td></tr>
576 <tr><td valign="top"></td><td valign="top"><em>instr</em>&nbsp;</td><td>object which will be printed to stream </td></tr>
577 </table>
578</dl>
579<dl class="return" compact><dt><b>Returns:</b></dt><dd>reference to outputstream </dd></dl>
580<dl class="user" compact><dt><b>Global variables used:</b></dt><dd>none </dd></dl>
581<dl compact><dt><b>Exceptions:</b></dt><dd>
582 <table border="0" cellspacing="2" cellpadding="0">
583 <tr><td valign="top"></td><td valign="top"><em>none</em>&nbsp;</td><td></td></tr>
584 </table>
585</dl>
586<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>none </dd></dl>
587<dl class="post" compact><dt><b>Postcondition:</b></dt><dd>none </dd></dl>
588
589</div>
590</div><p>
591<hr><h2>Member Data Documentation</h2>
592<a class="anchor" name="18a74815caf3645a3368d185d38bf9bc"></a><!-- doxytag: member="CInstruction::m_name" ref="18a74815caf3645a3368d185d38bf9bc" args="" -->
593<div class="memitem">
594<div class="memproto">
595<div class="memtemplate">
596template&lt;class T&gt; </div>
597 <table class="memname">
598 <tr>
599 <td class="memname">std::string <a class="el" href="classCInstruction.html">CInstruction</a>&lt; T &gt;::<a class="el" href="classCInstruction.html#18a74815caf3645a3368d185d38bf9bc">m_name</a><code> [protected]</code> </td>
600 </tr>
601 </table>
602</div>
603<div class="memdoc">
604
605<p>
606name of instruction
607</div>
608</div><p>
609<hr>The documentation for this class was generated from the following file:<ul>
610<li>mycpu/<a class="el" href="cinstruction_8h-source.html">cinstruction.h</a></ul>
611<hr size="1"><address style="text-align: right;"><small>Generated on Sat May 30 16:32:35 2009 for mycpu by&nbsp;
612<a href="http://www.doxygen.org/index.html">
613<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
614</body>
615</html>