blob: 811fa8a1997ef43ecc4dc87cd03acd99f85e4ce1 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Emulator (OpenJ9 JDK 11)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator interface">
<meta name="keywords" content="registerCallbackFunction()">
<meta name="keywords" content="saveState()">
<meta name="keywords" content="restoreState()">
<meta name="keywords" content="stop()">
<meta name="keywords" content="resume()">
<meta name="keywords" content="setTraceListener()">
<meta name="keywords" content="setAllowSVC()">
<meta name="keywords" content="setBranchTraceListener()">
<meta name="keywords" content="setFunctionReplacer()">
<meta name="keywords" content="setInvertStores()">
<meta name="keywords" content="setIgnoreExceptions()">
<meta name="keywords" content="setAllowSAC()">
<meta name="keywords" content="setForkOnBranches()">
<meta name="keywords" content="run()">
<meta name="keywords" content="runAllPaths()">
<meta name="keywords" content="getRegister()">
<meta name="keywords" content="setRegister()">
<meta name="keywords" content="setPswKey()">
<meta name="keywords" content="getConditionCode()">
<link rel="stylesheet" type="text/css" href="../../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Emulator (OpenJ9 JDK 11)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../index.html">Overview</a></li>
<li><a href="../../../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Emulator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="moduleLabelInType">Module</span>&nbsp;<a href="../../../../../../../module-summary.html">openj9.dtfj</a></div>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.ibm.j9ddr.corereaders.tdump.zebedee.util</a></div>
<h2 title="Interface Emulator" class="title">Interface Emulator</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<pre>public interface <span class="typeNameLabel">Emulator</span></pre>
<div class="block">This interface represents a zSeries emulator.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Emulator.BranchRelative.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.BranchRelative</a></span></code></th>
<td class="colLast">
<div class="block">This class represents one of the branch relative family of instructions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Emulator.BranchTraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.BranchTraceListener</a></span></code></th>
<td class="colLast">
<div class="block">This interface is implemented by users who want to receive branch trace events.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Emulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.CallbackFunction</a></span></code></th>
<td class="colLast">
<div class="block">Call back interface used by Emulator to call user registered function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Emulator.FunctionReplacer.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.FunctionReplacer</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></span></code></th>
<td class="colLast">
<div class="block">This interface represents a mutable address space.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Emulator.Instruction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.Instruction</a></span></code></th>
<td class="colLast">
<div class="block">The base class of all instructions.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Emulator.TraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.TraceListener</a></span></code></th>
<td class="colLast">
<div class="block">This interface is implemented by users who want to receive trace events.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConditionCode()">getConditionCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current condition code.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRegister(int)">getRegister</a></span>&#8203;(int&nbsp;reg)</code></th>
<td class="colLast">
<div class="block">Returns the current value of the given register.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerCallbackFunction(long,com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.CallbackFunction)">registerCallbackFunction</a></span>&#8203;(long&nbsp;address,
<a href="Emulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.CallbackFunction</a>&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Register a callback function for the given address.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#restoreState()">restoreState</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#resume()">resume</a></span>()</code></th>
<td class="colLast">
<div class="block">Resume the emulator.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#run(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.ImageSpace,long)">run</a></span>&#8203;(<a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a>&nbsp;space,
long&nbsp;address)</code></th>
<td class="colLast">
<div class="block">Run the emulator starting at the given address.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#runAllPaths(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.ImageSpace,long)">runAllPaths</a></span>&#8203;(<a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a>&nbsp;space,
long&nbsp;address)</code></th>
<td class="colLast">
<div class="block">Run all possible paths in the emulator starting at the given address.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#saveState()">saveState</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAllowSAC(boolean)">setAllowSAC</a></span>&#8203;(boolean&nbsp;allowSAC)</code></th>
<td class="colLast">
<div class="block">Sets whether the emulator should allow the unimplemented (so far) "Set Address Space
Control" instruction to do nothing.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setAllowSVC(boolean)">setAllowSVC</a></span>&#8203;(boolean&nbsp;allowSVC)</code></th>
<td class="colLast">
<div class="block">Allow SVC calls (which are just ignored).</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setBranchTraceListener(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.BranchTraceListener)">setBranchTraceListener</a></span>&#8203;(<a href="Emulator.BranchTraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.BranchTraceListener</a>&nbsp;branchTraceListener)</code></th>
<td class="colLast">
<div class="block">Sets a BranchTraceListener</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setForkOnBranches(boolean)">setForkOnBranches</a></span>&#8203;(boolean&nbsp;forkOnBranches)</code></th>
<td class="colLast">
<div class="block">Sets whether the emulator should fork on conditional branches.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFunctionReplacer(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.FunctionReplacer)">setFunctionReplacer</a></span>&#8203;(<a href="Emulator.FunctionReplacer.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.FunctionReplacer</a>&nbsp;functionReplacer)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setIgnoreExceptions(boolean)">setIgnoreExceptions</a></span>&#8203;(boolean&nbsp;ignoreExceptions)</code></th>
<td class="colLast">
<div class="block">Sets whether the emulator should ignore exceptions caused by bad memory accesses.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInvertStores(boolean)">setInvertStores</a></span>&#8203;(boolean&nbsp;invertStores)</code></th>
<td class="colLast">
<div class="block">Turns stores into loads.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setPswKey(int)">setPswKey</a></span>&#8203;(int&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Sets the four-bit PSW key.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRegister(int,int)">setRegister</a></span>&#8203;(int&nbsp;reg,
int&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Sets the register to the given int value.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRegister(int,long)">setRegister</a></span>&#8203;(int&nbsp;reg,
long&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Sets the register to the given long value.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTraceListener(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.TraceListener)">setTraceListener</a></span>&#8203;(<a href="Emulator.TraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.TraceListener</a>&nbsp;traceListener)</code></th>
<td class="colLast">
<div class="block">Sets a TraceListener</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#stop()">stop</a></span>()</code></th>
<td class="colLast">
<div class="block">Stop the emulator.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="registerCallbackFunction(long,com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.CallbackFunction)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerCallbackFunction</h4>
<pre class="methodSignature">void&nbsp;registerCallbackFunction&#8203;(long&nbsp;address,
<a href="Emulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.CallbackFunction</a>&nbsp;function)</pre>
<div class="block">Register a callback function for the given address. When the emulator encounters
a branch to this address it will call the given callback instruction rather than
the branch to the address itself. For a branch and save this results in the entire
target subroutine being skipped with the supplied function being called in its place.
Upon return, execution continues at the current instruction address plus 4 (for a
branch and save - for a simple branch it is assumed that this is only used for
exit from the emulator).</div>
</li>
</ul>
<a id="saveState()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveState</h4>
<pre class="methodSignature">void&nbsp;saveState()</pre>
</li>
</ul>
<a id="restoreState()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>restoreState</h4>
<pre class="methodSignature">void&nbsp;restoreState()</pre>
</li>
</ul>
<a id="stop()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre class="methodSignature">void&nbsp;stop()</pre>
<div class="block">Stop the emulator.</div>
</li>
</ul>
<a id="resume()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resume</h4>
<pre class="methodSignature">void&nbsp;resume()</pre>
<div class="block">Resume the emulator.</div>
</li>
</ul>
<a id="setTraceListener(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.TraceListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTraceListener</h4>
<pre class="methodSignature">void&nbsp;setTraceListener&#8203;(<a href="Emulator.TraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.TraceListener</a>&nbsp;traceListener)</pre>
<div class="block">Sets a TraceListener</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>traceListener</code> - used to inform the user of each instruction as it is executed. If
null then no tracing is performed.</dd>
</dl>
</li>
</ul>
<a id="setAllowSVC(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAllowSVC</h4>
<pre class="methodSignature">void&nbsp;setAllowSVC&#8203;(boolean&nbsp;allowSVC)</pre>
<div class="block">Allow SVC calls (which are just ignored). The default is to throw an IOException
when they are encountered.</div>
</li>
</ul>
<a id="setBranchTraceListener(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.BranchTraceListener)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBranchTraceListener</h4>
<pre class="methodSignature">void&nbsp;setBranchTraceListener&#8203;(<a href="Emulator.BranchTraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.BranchTraceListener</a>&nbsp;branchTraceListener)</pre>
<div class="block">Sets a BranchTraceListener</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>branchTraceListener</code> - used to inform the user of each branch instruction as it is executed. If
null then no tracing is performed.</dd>
</dl>
</li>
</ul>
<a id="setFunctionReplacer(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.FunctionReplacer)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFunctionReplacer</h4>
<pre class="methodSignature">void&nbsp;setFunctionReplacer&#8203;(<a href="Emulator.FunctionReplacer.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.FunctionReplacer</a>&nbsp;functionReplacer)</pre>
</li>
</ul>
<a id="setInvertStores(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInvertStores</h4>
<pre class="methodSignature">void&nbsp;setInvertStores&#8203;(boolean&nbsp;invertStores)</pre>
<div class="block">Turns stores into loads. Special convenience mode for disassembly.</div>
</li>
</ul>
<a id="setIgnoreExceptions(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIgnoreExceptions</h4>
<pre class="methodSignature">void&nbsp;setIgnoreExceptions&#8203;(boolean&nbsp;ignoreExceptions)</pre>
<div class="block">Sets whether the emulator should ignore exceptions caused by bad memory accesses. This
can be useful when using the emulator as a disassembler.</div>
</li>
</ul>
<a id="setAllowSAC(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAllowSAC</h4>
<pre class="methodSignature">void&nbsp;setAllowSAC&#8203;(boolean&nbsp;allowSAC)</pre>
<div class="block">Sets whether the emulator should allow the unimplemented (so far) "Set Address Space
Control" instruction to do nothing. If not set the emulator will throw an unrecognized
instruction exception.</div>
</li>
</ul>
<a id="setForkOnBranches(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setForkOnBranches</h4>
<pre class="methodSignature">void&nbsp;setForkOnBranches&#8203;(boolean&nbsp;forkOnBranches)</pre>
<div class="block">Sets whether the emulator should fork on conditional branches. This puts the emulator in
a special mode where it will execute all possible paths. A given path is only executed
once. Useful when using the emulator as a disassembler.
XXX Note that callback functions will still be called to enable return from a function.</div>
</li>
</ul>
<a id="run(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.ImageSpace,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre class="methodSignature">void&nbsp;run&#8203;(<a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a>&nbsp;space,
long&nbsp;address)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre>
<div class="block">Run the emulator starting at the given address.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>space</code> - an instance of <a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util"><code>Emulator.ImageSpace</code></a>.</dd>
<dd><code>address</code> - the address of the first instruction to execute. Normally this would be at
the start of a function.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd>
</dl>
</li>
</ul>
<a id="runAllPaths(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.ImageSpace,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>runAllPaths</h4>
<pre class="methodSignature">void&nbsp;runAllPaths&#8203;(<a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a>&nbsp;space,
long&nbsp;address)
throws <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></pre>
<div class="block">Run all possible paths in the emulator starting at the given address. (For disassembler
use). This also sets ignoreExceptions and forkOnBranches.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>space</code> - an instance of <a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util"><code>Emulator.ImageSpace</code></a>.</dd>
<dd><code>address</code> - the address of the first instruction to execute. Normally this would be at
the start of a function.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/IOException.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">IOException</a></code></dd>
</dl>
</li>
</ul>
<a id="getRegister(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegister</h4>
<pre class="methodSignature">long&nbsp;getRegister&#8203;(int&nbsp;reg)</pre>
<div class="block">Returns the current value of the given register.</div>
</li>
</ul>
<a id="setRegister(int,int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRegister</h4>
<pre class="methodSignature">void&nbsp;setRegister&#8203;(int&nbsp;reg,
int&nbsp;value)</pre>
<div class="block">Sets the register to the given int value.</div>
</li>
</ul>
<a id="setRegister(int,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRegister</h4>
<pre class="methodSignature">void&nbsp;setRegister&#8203;(int&nbsp;reg,
long&nbsp;value)</pre>
<div class="block">Sets the register to the given long value.</div>
</li>
</ul>
<a id="setPswKey(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPswKey</h4>
<pre class="methodSignature">void&nbsp;setPswKey&#8203;(int&nbsp;key)</pre>
<div class="block">Sets the four-bit PSW key.</div>
</li>
</ul>
<a id="getConditionCode()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getConditionCode</h4>
<pre class="methodSignature">int&nbsp;getConditionCode()</pre>
<div class="block">Returns the current condition code.</div>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../../index.html">Overview</a></li>
<li><a href="../../../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Emulator.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</body>
</html>