blob: 6bbad2ff16b208f0b123da0b270b19fd46134120 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>Emulator (OpenJ9 JDK 16)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: module: openj9.dtfj, package: com.ibm.j9ddr.corereaders.tdump.zebedee.util, interface: Emulator">
<meta name="generator" content="javadoc/ClassWriterImpl">
<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="../../../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar.top">
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 16</strong></div></div>
<ul id="navbar.top.firstrow" class="nav-list" 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="nav-bar-cell1-rev">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>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip.navbar.top">
<!-- -->
</span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../../../module-summary.html">openj9.dtfj</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.ibm.j9ddr.corereaders.tdump.zebedee.util</a></div>
<h1 title="Interface Emulator" class="title">Interface Emulator</h1>
</div>
<section class="description">
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">Emulator</span></div>
<div class="block">This interface represents a zSeries emulator.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested.class.summary">
<h2>Nested Class Summary</h2>
<div class="caption"><span>Nested Classes</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Interface</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="Emulator.BranchRelative.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.BranchRelative</a></span></code></div>
<div class="col-last even-row-color">
<div class="block">This class represents one of the branch relative family of instructions.</div>
</div>
<div class="col-first odd-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="Emulator.BranchTraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.BranchTraceListener</a></span></code></div>
<div class="col-last odd-row-color">
<div class="block">This interface is implemented by users who want to receive branch trace events.</div>
</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="Emulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.CallbackFunction</a></span></code></div>
<div class="col-last even-row-color">
<div class="block">Call back interface used by Emulator to call user registered function.</div>
</div>
<div class="col-first odd-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="Emulator.FunctionReplacer.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.FunctionReplacer</a></span></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a></span></code></div>
<div class="col-last even-row-color">
<div class="block">This interface represents a mutable address space.</div>
</div>
<div class="col-first odd-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="Emulator.Instruction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.Instruction</a></span></code></div>
<div class="col-last odd-row-color">
<div class="block">The base class of all instructions.</div>
</div>
<div class="col-first even-row-color"><code>static interface&nbsp;</code></div>
<div class="col-second even-row-color"><code><span class="member-name-link"><a href="Emulator.TraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.TraceListener</a></span></code></div>
<div class="col-last even-row-color">
<div class="block">This interface is implemented by users who want to receive trace events.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method.summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>int</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getConditionCode()">getConditionCode</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Returns the current condition code.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>long</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getRegister(int)">getRegister</a></span>&#8203;(int&nbsp;reg)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Returns the current value of the given register.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><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></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Register a callback function for the given address.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#restoreState()">restoreState</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#resume()">resume</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Resume the emulator.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><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></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Run the emulator starting at the given address.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><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></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Run all possible paths in the emulator starting at the given address.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#saveState()">saveState</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setAllowSAC(boolean)">setAllowSAC</a></span>&#8203;(boolean&nbsp;allowSAC)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets whether the emulator should allow the unimplemented (so far) "Set Address Space
Control" instruction to do nothing.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setAllowSVC(boolean)">setAllowSVC</a></span>&#8203;(boolean&nbsp;allowSVC)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Allow SVC calls (which are just ignored).</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><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></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets a BranchTraceListener</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setForkOnBranches(boolean)">setForkOnBranches</a></span>&#8203;(boolean&nbsp;forkOnBranches)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets whether the emulator should fork on conditional branches.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><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></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setIgnoreExceptions(boolean)">setIgnoreExceptions</a></span>&#8203;(boolean&nbsp;ignoreExceptions)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets whether the emulator should ignore exceptions caused by bad memory accesses.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setInvertStores(boolean)">setInvertStores</a></span>&#8203;(boolean&nbsp;invertStores)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Turns stores into loads.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setPswKey(int)">setPswKey</a></span>&#8203;(int&nbsp;key)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets the four-bit PSW key.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setRegister(int,int)">setRegister</a></span>&#8203;(int&nbsp;reg,
int&nbsp;value)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets the register to the given int value.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#setRegister(int,long)">setRegister</a></span>&#8203;(int&nbsp;reg,
long&nbsp;value)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets the register to the given long value.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><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></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Sets a TraceListener</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#stop()">stop</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Stop the emulator.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method.detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="registerCallbackFunction(long,com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.CallbackFunction)">
<h3>registerCallbackFunction</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">registerCallbackFunction</span>&#8203;<span class="parameters">(long&nbsp;address,
<a href="Emulator.CallbackFunction.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.CallbackFunction</a>&nbsp;function)</span></div>
<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>
</section>
</li>
<li>
<section class="detail" id="saveState()">
<h3>saveState</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">saveState</span>()</div>
</section>
</li>
<li>
<section class="detail" id="restoreState()">
<h3>restoreState</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">restoreState</span>()</div>
</section>
</li>
<li>
<section class="detail" id="stop()">
<h3>stop</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">stop</span>()</div>
<div class="block">Stop the emulator.</div>
</section>
</li>
<li>
<section class="detail" id="resume()">
<h3>resume</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">resume</span>()</div>
<div class="block">Resume the emulator.</div>
</section>
</li>
<li>
<section class="detail" id="setTraceListener(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.TraceListener)">
<h3>setTraceListener</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setTraceListener</span>&#8203;<span class="parameters">(<a href="Emulator.TraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.TraceListener</a>&nbsp;traceListener)</span></div>
<div class="block">Sets a TraceListener</div>
<dl class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="setAllowSVC(boolean)">
<h3>setAllowSVC</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setAllowSVC</span>&#8203;<span class="parameters">(boolean&nbsp;allowSVC)</span></div>
<div class="block">Allow SVC calls (which are just ignored). The default is to throw an IOException
when they are encountered.</div>
</section>
</li>
<li>
<section class="detail" id="setBranchTraceListener(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.BranchTraceListener)">
<h3>setBranchTraceListener</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setBranchTraceListener</span>&#8203;<span class="parameters">(<a href="Emulator.BranchTraceListener.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.BranchTraceListener</a>&nbsp;branchTraceListener)</span></div>
<div class="block">Sets a BranchTraceListener</div>
<dl class="notes">
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="setFunctionReplacer(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.FunctionReplacer)">
<h3>setFunctionReplacer</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setFunctionReplacer</span>&#8203;<span class="parameters">(<a href="Emulator.FunctionReplacer.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.FunctionReplacer</a>&nbsp;functionReplacer)</span></div>
</section>
</li>
<li>
<section class="detail" id="setInvertStores(boolean)">
<h3>setInvertStores</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setInvertStores</span>&#8203;<span class="parameters">(boolean&nbsp;invertStores)</span></div>
<div class="block">Turns stores into loads. Special convenience mode for disassembly.</div>
</section>
</li>
<li>
<section class="detail" id="setIgnoreExceptions(boolean)">
<h3>setIgnoreExceptions</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setIgnoreExceptions</span>&#8203;<span class="parameters">(boolean&nbsp;ignoreExceptions)</span></div>
<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>
</section>
</li>
<li>
<section class="detail" id="setAllowSAC(boolean)">
<h3>setAllowSAC</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setAllowSAC</span>&#8203;<span class="parameters">(boolean&nbsp;allowSAC)</span></div>
<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>
</section>
</li>
<li>
<section class="detail" id="setForkOnBranches(boolean)">
<h3>setForkOnBranches</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setForkOnBranches</span>&#8203;<span class="parameters">(boolean&nbsp;forkOnBranches)</span></div>
<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>
</section>
</li>
<li>
<section class="detail" id="run(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.ImageSpace,long)">
<h3>run</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">run</span>&#8203;<span class="parameters">(<a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a>&nbsp;space,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<div class="block">Run the emulator starting at the given address.</div>
<dl class="notes">
<dt>Parameters:</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>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="runAllPaths(com.ibm.j9ddr.corereaders.tdump.zebedee.util.Emulator.ImageSpace,long)">
<h3>runAllPaths</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">runAllPaths</span>&#8203;<span class="parameters">(<a href="Emulator.ImageSpace.html" title="interface in com.ibm.j9ddr.corereaders.tdump.zebedee.util">Emulator.ImageSpace</a>&nbsp;space,
long&nbsp;address)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></span></div>
<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 class="notes">
<dt>Parameters:</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>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link" target="_blank">IOException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getRegister(int)">
<h3>getRegister</h3>
<div class="member-signature"><span class="return-type">long</span>&nbsp;<span class="element-name">getRegister</span>&#8203;<span class="parameters">(int&nbsp;reg)</span></div>
<div class="block">Returns the current value of the given register.</div>
</section>
</li>
<li>
<section class="detail" id="setRegister(int,int)">
<h3>setRegister</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setRegister</span>&#8203;<span class="parameters">(int&nbsp;reg,
int&nbsp;value)</span></div>
<div class="block">Sets the register to the given int value.</div>
</section>
</li>
<li>
<section class="detail" id="setRegister(int,long)">
<h3>setRegister</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setRegister</span>&#8203;<span class="parameters">(int&nbsp;reg,
long&nbsp;value)</span></div>
<div class="block">Sets the register to the given long value.</div>
</section>
</li>
<li>
<section class="detail" id="setPswKey(int)">
<h3>setPswKey</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setPswKey</span>&#8203;<span class="parameters">(int&nbsp;key)</span></div>
<div class="block">Sets the four-bit PSW key.</div>
</section>
</li>
<li>
<section class="detail" id="getConditionCode()">
<h3>getConditionCode</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">getConditionCode</span>()</div>
<div class="block">Returns the current condition code.</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><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>
</div>
</div>
</body>
</html>