2019-09-06 15:57:44 -07:00

49 lines
13 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `wasmer_clif_fork_wasm` crate."><meta name="keywords" content="rust, rustlang, rust-lang, wasmer_clif_fork_wasm"><title>wasmer_clif_fork_wasm - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../wasmer_clif_fork_wasm/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Crate wasmer_clif_fork_wasm</p><div class="sidebar-elems"><a id='all-types' href='all.html'><p>See all wasmer_clif_fork_wasm's items</p></a><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#constants">Constants</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class='location'></p><script>window.sidebarCurrent = {name: 'wasmer_clif_fork_wasm', ty: 'mod', relpath: '../'};</script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../src/wasmer_clif_fork_wasm/lib.rs.html#1-75' title='goto source code'>[src]</a></span><span class='in-band'>Crate <a class="mod" href=''>wasmer_clif_fork_wasm</a></span></h1><div class='docblock'><p>Performs translation from a wasm module in binary format to the in-memory form
of Cranelift IR. More particularly, it translates the code of all the functions bodies and
interacts with an environment implementing the
<a href="trait.ModuleEnvironment.html"><code>ModuleEnvironment</code></a>
trait to deal with tables, globals and linear memory.</p>
<p>The crate provides a <code>DummyEnvironment</code> struct that will allow to translate the code of the
functions but will fail at execution.</p>
<p>The main function of this module is <a href="fn.translate_module.html"><code>translate_module</code></a>.</p>
</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table><tr class='module-item'><td><a class="struct" href="struct.DefinedFuncIndex.html" title='wasmer_clif_fork_wasm::DefinedFuncIndex struct'>DefinedFuncIndex</a></td><td class='docblock-short'><p>Index type of a defined function inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DefinedGlobalIndex.html" title='wasmer_clif_fork_wasm::DefinedGlobalIndex struct'>DefinedGlobalIndex</a></td><td class='docblock-short'><p>Index type of a defined global inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DefinedMemoryIndex.html" title='wasmer_clif_fork_wasm::DefinedMemoryIndex struct'>DefinedMemoryIndex</a></td><td class='docblock-short'><p>Index type of a defined memory inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DefinedTableIndex.html" title='wasmer_clif_fork_wasm::DefinedTableIndex struct'>DefinedTableIndex</a></td><td class='docblock-short'><p>Index type of a defined table inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.DummyEnvironment.html" title='wasmer_clif_fork_wasm::DummyEnvironment struct'>DummyEnvironment</a></td><td class='docblock-short'><p>This <code>ModuleEnvironment</code> implementation is a &quot;naïve&quot; one, doing essentially nothing and
emitting placeholders when forced to. Don't try to execute code translated for this
environment, essentially here for translation debug purposes.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.FuncIndex.html" title='wasmer_clif_fork_wasm::FuncIndex struct'>FuncIndex</a></td><td class='docblock-short'><p>Index type of a function (imported or defined) inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.FuncTranslator.html" title='wasmer_clif_fork_wasm::FuncTranslator struct'>FuncTranslator</a></td><td class='docblock-short'><p>WebAssembly to Cranelift IR function translator.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Global.html" title='wasmer_clif_fork_wasm::Global struct'>Global</a></td><td class='docblock-short'><p>WebAssembly global.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.GlobalIndex.html" title='wasmer_clif_fork_wasm::GlobalIndex struct'>GlobalIndex</a></td><td class='docblock-short'><p>Index type of a global variable (imported or defined) inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Memory.html" title='wasmer_clif_fork_wasm::Memory struct'>Memory</a></td><td class='docblock-short'><p>WebAssembly linear memory.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.MemoryIndex.html" title='wasmer_clif_fork_wasm::MemoryIndex struct'>MemoryIndex</a></td><td class='docblock-short'><p>Index type of a linear memory (imported or defined) inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SignatureIndex.html" title='wasmer_clif_fork_wasm::SignatureIndex struct'>SignatureIndex</a></td><td class='docblock-short'><p>Index type of a signature (imported or defined) inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Table.html" title='wasmer_clif_fork_wasm::Table struct'>Table</a></td><td class='docblock-short'><p>WebAssembly table.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.TableIndex.html" title='wasmer_clif_fork_wasm::TableIndex struct'>TableIndex</a></td><td class='docblock-short'><p>Index type of a table (imported or defined) inside the WebAssembly module.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.TranslationState.html" title='wasmer_clif_fork_wasm::TranslationState struct'>TranslationState</a></td><td class='docblock-short'><p>Contains information passed along during the translation and that records:</p>
</td></tr></table><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<table><tr class='module-item'><td><a class="enum" href="enum.GlobalInit.html" title='wasmer_clif_fork_wasm::GlobalInit enum'>GlobalInit</a></td><td class='docblock-short'><p>Globals are initialized via the four <code>const</code> operators or by referring to another import.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.GlobalVariable.html" title='wasmer_clif_fork_wasm::GlobalVariable enum'>GlobalVariable</a></td><td class='docblock-short'><p>The value of a WebAssembly global variable.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.ReturnMode.html" title='wasmer_clif_fork_wasm::ReturnMode enum'>ReturnMode</a></td><td class='docblock-short'><p>How to return from functions.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.TableElementType.html" title='wasmer_clif_fork_wasm::TableElementType enum'>TableElementType</a></td><td class='docblock-short'><p>WebAssembly table element. Can be a function or a scalar type.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.WasmError.html" title='wasmer_clif_fork_wasm::WasmError enum'>WasmError</a></td><td class='docblock-short'><p>A WebAssembly translation error.</p>
</td></tr></table><h2 id='constants' class='section-header'><a href="#constants">Constants</a></h2>
<table><tr class='module-item'><td><a class="constant" href="constant.VERSION.html" title='wasmer_clif_fork_wasm::VERSION constant'>VERSION</a></td><td class='docblock-short'><p>Version number of this crate.</p>
</td></tr></table><h2 id='traits' class='section-header'><a href="#traits">Traits</a></h2>
<table><tr class='module-item'><td><a class="trait" href="trait.FuncEnvironment.html" title='wasmer_clif_fork_wasm::FuncEnvironment trait'>FuncEnvironment</a></td><td class='docblock-short'><p>Environment affecting the translation of a single WebAssembly function.</p>
</td></tr><tr class='module-item'><td><a class="trait" href="trait.ModuleEnvironment.html" title='wasmer_clif_fork_wasm::ModuleEnvironment trait'>ModuleEnvironment</a></td><td class='docblock-short'><p>An object satisfying the <code>ModuleEnvironment</code> trait can be passed as argument to the
<a href="fn.translate_module.html"><code>translate_module</code></a> function. These methods should not be called
by the user, they are only for <code>wasmer-clif-fork-wasm</code> internal use.</p>
</td></tr></table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table><tr class='module-item'><td><a class="fn" href="fn.declare_locals.html" title='wasmer_clif_fork_wasm::declare_locals fn'>declare_locals</a></td><td class='docblock-short'><p>Declare <code>count</code> local variables of the same type, starting from <code>next_local</code>.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.get_vmctx_value_label.html" title='wasmer_clif_fork_wasm::get_vmctx_value_label fn'>get_vmctx_value_label</a></td><td class='docblock-short'><p>Special VMContext value label. It is tracked as 0xffff_fffe label.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.translate_module.html" title='wasmer_clif_fork_wasm::translate_module fn'>translate_module</a></td><td class='docblock-short'><p>Translate a sequence of bytes forming a valid Wasm binary into a list of valid Cranelift IR
<a href="../codegen/ir/function/struct.Function.html"><code>Function</code></a>.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.translate_operator.html" title='wasmer_clif_fork_wasm::translate_operator fn'>translate_operator</a></td><td class='docblock-short'><p>Translates wasm operators into Cranelift IR instructions. Returns <code>true</code> if it inserted
a return.</p>
</td></tr></table><h2 id='types' class='section-header'><a href="#types">Type Definitions</a></h2>
<table><tr class='module-item'><td><a class="type" href="type.WasmResult.html" title='wasmer_clif_fork_wasm::WasmResult type'>WasmResult</a></td><td class='docblock-short'><p>A convenient alias for a <code>Result</code> that uses <code>WasmError</code> as the error type.</p>
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../";window.currentCrate = "wasmer_clif_fork_wasm";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>