📄 asmdata.html
字号:
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>B::Asmdata - Autogenerated data about Perl ops, used to generate bytecode</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body>
<script>writelinks('__top__',2);</script>
<h1><a>B::Asmdata - Autogenerated data about Perl ops, used to generate bytecode</a></h1>
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#name">NAME</a></li>
<li><a href="#synopsis">SYNOPSIS</a></li>
<li><a href="#description">DESCRIPTION</a></li>
<li><a href="#author">AUTHOR</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>B::Asmdata - Autogenerated data about Perl ops, used to generate bytecode</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
<span class="keyword">use</span> <span class="variable">B::Asmdata</span> <span class="string">qw(%insn_data @insn_name @optype @specialsv_name)</span><span class="operator">;</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>Provides information about Perl ops in order to generate bytecode via
a bunch of exported variables. Its mostly used by B::Assembler and
B::Disassembler.</p>
<dl>
<dt><strong><a name="item__insn_data">%insn_data</a></strong>
<dd>
<pre>
<span class="keyword">my</span><span class="operator">(</span><span class="variable">$bytecode_num</span><span class="operator">,</span> <span class="variable">$put_sub</span><span class="operator">,</span> <span class="variable">$get_meth</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">@$insn_data</span><span class="operator">{</span><span class="variable">$op_name</span><span class="operator">}</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>For a given $op_name (for example, 'cop_label', 'sv_flags', etc...)
you get an array ref containing the bytecode number of the op, a
reference to the subroutine used to 'PUT', and the name of the method
used to 'GET'.</p>
</dd>
<dt><strong><a name="item__insn_name">@insn_name</a></strong>
<dd>
<pre>
<span class="keyword">my</span> <span class="variable">$op_name</span> <span class="operator">=</span> <span class="variable">$insn_name</span><span class="operator">[</span><span class="variable">$bytecode_num</span><span class="operator">]</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>A simple mapping of the bytecode number to the name of the op.
Suitable for using with %insn_data like so:</p>
</dd>
<dd>
<pre>
<span class="keyword">my</span> <span class="variable">$op_info</span> <span class="operator">=</span> <span class="variable">$insn_data</span><span class="operator">{</span><span class="variable">$insn_name</span><span class="operator">[</span><span class="variable">$bytecode_num</span><span class="operator">]}</span><span class="operator">;</span>
</pre>
</dd>
<dt><strong><a name="item__optype">@optype</a></strong>
<dd>
<pre>
<span class="keyword">my</span> <span class="variable">$op_type</span> <span class="operator">=</span> <span class="variable">$optype</span><span class="operator">[</span><span class="variable">$op_type_num</span><span class="operator">]</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>A simple mapping of the op type number to its type (like 'COP' or 'BINOP').</p>
</dd>
<dt><strong><a name="item__specialsv_name">@specialsv_name</a></strong>
<dd>
<pre>
<span class="keyword">my</span> <span class="variable">$sv_name</span> <span class="operator">=</span> <span class="variable">$specialsv_name</span><span class="operator">[</span><span class="variable">$sv_index</span><span class="operator">]</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>Certain SV types are considered 'special'. They're represented by
B::SPECIAL and are referred to by a number from the specialsv_list.
This array maps that number back to the name of the SV (like 'Nullsv'
or '&PL_sv_undef').</p>
</dd>
</dl>
<p>
</p>
<hr />
<h1><a name="author">AUTHOR</a></h1>
<p>Malcolm Beattie, <code>mbeattie@sable.ox.ac.uk</code></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -